vibepulse 0.2.2 → 0.3.1-beta

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 (424) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +1 -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 +8 -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 +2 -2
  32. package/.next/server/app/api/node/events/route.js.nft.json +1 -1
  33. package/.next/server/app/api/node/sessions/[id]/delete/route.js +2 -2
  34. package/.next/server/app/api/node/sessions/[id]/delete/route.js.nft.json +1 -1
  35. package/.next/server/app/api/node/sessions/[id]/open-editor/route.js +2 -2
  36. package/.next/server/app/api/node/sessions/[id]/open-editor/route.js.nft.json +1 -1
  37. package/.next/server/app/api/node/sessions/route.js +6 -4
  38. package/.next/server/app/api/node/sessions/route.js.nft.json +1 -1
  39. package/.next/server/app/api/nodes/route.js +2 -2
  40. package/.next/server/app/api/nodes/route.js.nft.json +1 -1
  41. package/.next/server/app/api/opencode-config/route.js +2 -2
  42. package/.next/server/app/api/opencode-config/route.js.nft.json +1 -1
  43. package/.next/server/app/api/opencode-config/status/route.js +2 -2
  44. package/.next/server/app/api/opencode-config/status/route.js.nft.json +1 -1
  45. package/.next/server/app/api/opencode-events/route.js +3 -3
  46. package/.next/server/app/api/opencode-events/route.js.nft.json +1 -1
  47. package/.next/server/app/api/profiles/[id]/apply/route.js +2 -2
  48. package/.next/server/app/api/profiles/[id]/apply/route.js.nft.json +1 -1
  49. package/.next/server/app/api/profiles/[id]/export/route.js +2 -2
  50. package/.next/server/app/api/profiles/[id]/export/route.js.nft.json +1 -1
  51. package/.next/server/app/api/profiles/[id]/route.js +2 -2
  52. package/.next/server/app/api/profiles/[id]/route.js.nft.json +1 -1
  53. package/.next/server/app/api/profiles/import/route.js +2 -2
  54. package/.next/server/app/api/profiles/import/route.js.nft.json +1 -1
  55. package/.next/server/app/api/profiles/route.js +2 -2
  56. package/.next/server/app/api/profiles/route.js.nft.json +1 -1
  57. package/.next/server/app/api/sessions/[id]/archive/route.js +3 -2
  58. package/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -1
  59. package/.next/server/app/api/sessions/[id]/delete/route.js +4 -3
  60. package/.next/server/app/api/sessions/[id]/delete/route.js.nft.json +1 -1
  61. package/.next/server/app/api/sessions/[id]/open-editor/route.js +2 -2
  62. package/.next/server/app/api/sessions/[id]/open-editor/route.js.nft.json +1 -1
  63. package/.next/server/app/api/sessions/[id]/restore/route/app-paths-manifest.json +3 -0
  64. package/.next/server/app/api/sessions/[id]/restore/route/build-manifest.json +11 -0
  65. package/.next/server/app/api/sessions/[id]/restore/route/server-reference-manifest.json +4 -0
  66. package/.next/server/app/api/sessions/[id]/restore/route.js +8 -0
  67. package/.next/server/app/api/sessions/[id]/restore/route.js.map +5 -0
  68. package/.next/server/app/api/sessions/[id]/restore/route.js.nft.json +1 -0
  69. package/.next/server/app/api/sessions/[id]/restore/route_client-reference-manifest.js +2 -0
  70. package/.next/server/app/api/sessions/[id]/route.js +2 -2
  71. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  72. package/.next/server/app/api/sessions/route.js +5 -3
  73. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  74. package/.next/server/app/index.html +1 -1
  75. package/.next/server/app/index.rsc +3 -3
  76. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  77. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  78. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  79. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  80. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  81. package/.next/server/app/page_client-reference-manifest.js +1 -1
  82. package/.next/server/app-paths-manifest.json +1 -0
  83. package/.next/server/chunks/[root-of-the-server]__005eb0c5._.js +3 -0
  84. package/.next/server/chunks/[root-of-the-server]__005eb0c5._.js.map +1 -0
  85. package/.next/server/chunks/[root-of-the-server]__09e90d57._.js +3 -0
  86. package/.next/server/chunks/[root-of-the-server]__09e90d57._.js.map +1 -0
  87. package/.next/server/chunks/[root-of-the-server]__18dd0ce9._.js +3 -0
  88. package/.next/server/chunks/[root-of-the-server]__18dd0ce9._.js.map +1 -0
  89. package/.next/server/chunks/[root-of-the-server]__19468536._.js +3 -0
  90. package/.next/server/chunks/[root-of-the-server]__19468536._.js.map +1 -0
  91. package/.next/server/chunks/[root-of-the-server]__1b87ec42._.js +1 -1
  92. package/.next/server/chunks/[root-of-the-server]__1b87ec42._.js.map +1 -1
  93. package/.next/server/chunks/[root-of-the-server]__2b912935._.js +3 -0
  94. package/.next/server/chunks/[root-of-the-server]__2b912935._.js.map +1 -0
  95. package/.next/server/chunks/[root-of-the-server]__303d3bac._.js +3 -0
  96. package/.next/server/chunks/[root-of-the-server]__303d3bac._.js.map +1 -0
  97. package/.next/server/chunks/[root-of-the-server]__3fac2b91._.js +5 -0
  98. package/.next/server/chunks/[root-of-the-server]__3fac2b91._.js.map +1 -0
  99. package/.next/server/chunks/[root-of-the-server]__43440b8d._.js +3 -0
  100. package/.next/server/chunks/[root-of-the-server]__43440b8d._.js.map +1 -0
  101. package/.next/server/chunks/[root-of-the-server]__438f8bbe._.js +3 -0
  102. package/.next/server/chunks/[root-of-the-server]__438f8bbe._.js.map +1 -0
  103. package/.next/server/chunks/[root-of-the-server]__4a0bfb55._.js +3 -0
  104. package/.next/server/chunks/[root-of-the-server]__4a0bfb55._.js.map +1 -0
  105. package/.next/server/chunks/[root-of-the-server]__534c3949._.js +3 -0
  106. package/.next/server/chunks/[root-of-the-server]__534c3949._.js.map +1 -0
  107. package/.next/server/chunks/[root-of-the-server]__59160266._.js +1 -1
  108. package/.next/server/chunks/[root-of-the-server]__59160266._.js.map +1 -1
  109. package/.next/server/chunks/[root-of-the-server]__6f812da0._.js +3 -0
  110. package/.next/server/chunks/[root-of-the-server]__6f812da0._.js.map +1 -0
  111. package/.next/server/chunks/[root-of-the-server]__71aac504._.js +3 -0
  112. package/.next/server/chunks/[root-of-the-server]__71aac504._.js.map +1 -0
  113. package/.next/server/chunks/[root-of-the-server]__907a8bf2._.js +3 -0
  114. package/.next/server/chunks/[root-of-the-server]__907a8bf2._.js.map +1 -0
  115. package/.next/server/chunks/[root-of-the-server]__92089220._.js +3 -0
  116. package/.next/server/chunks/[root-of-the-server]__92089220._.js.map +1 -0
  117. package/.next/server/chunks/[root-of-the-server]__9b7bc2d0._.js +3 -0
  118. package/.next/server/chunks/[root-of-the-server]__9b7bc2d0._.js.map +1 -0
  119. package/.next/server/chunks/[root-of-the-server]__b2640944._.js +3 -0
  120. package/.next/server/chunks/[root-of-the-server]__b2640944._.js.map +1 -0
  121. package/.next/server/chunks/[root-of-the-server]__c2267cf1._.js +3 -0
  122. package/.next/server/chunks/[root-of-the-server]__c2267cf1._.js.map +1 -0
  123. package/.next/server/chunks/[root-of-the-server]__d7f7e6dd._.js +3 -0
  124. package/.next/server/chunks/{[root-of-the-server]__6924c09d._.js.map → [root-of-the-server]__d7f7e6dd._.js.map} +1 -1
  125. package/.next/server/chunks/[root-of-the-server]__d8e61048._.js +1 -1
  126. package/.next/server/chunks/[root-of-the-server]__d8e61048._.js.map +1 -1
  127. package/.next/server/chunks/[root-of-the-server]__f6d0d488._.js +3 -0
  128. package/.next/server/chunks/{[root-of-the-server]__192ed2f4._.js.map → [root-of-the-server]__f6d0d488._.js.map} +1 -1
  129. package/.next/server/chunks/[root-of-the-server]__fa559e1e._.js +3 -0
  130. package/.next/server/chunks/[root-of-the-server]__fa559e1e._.js.map +1 -0
  131. package/.next/server/chunks/_next-internal_server_app_api_sessions_[id]_restore_route_actions_af7d6b6c.js +3 -0
  132. package/.next/server/chunks/_next-internal_server_app_api_sessions_[id]_restore_route_actions_af7d6b6c.js.map +1 -0
  133. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7e181e75.js +1 -1
  134. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7e181e75.js.map +1 -1
  135. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_aca45402.js +1 -1
  136. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_aca45402.js.map +1 -1
  137. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_b054aff3.js +1 -1
  138. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_b054aff3.js.map +1 -1
  139. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_fa835ac3.js +2 -2
  140. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_fa835ac3.js.map +1 -1
  141. package/.next/server/chunks/src_lib_opencodeConfig_ts_8e209941._.js +3 -0
  142. package/.next/server/chunks/src_lib_opencodeConfig_ts_8e209941._.js.map +1 -0
  143. package/.next/server/chunks/src_lib_session-providers_claudeCode_ts_0f9590ed._.js +3 -0
  144. package/.next/server/chunks/src_lib_session-providers_claudeCode_ts_0f9590ed._.js.map +1 -0
  145. package/.next/server/chunks/ssr/{[root-of-the-server]__631e12d0._.js → [root-of-the-server]__c91a8380._.js} +2 -2
  146. package/.next/server/chunks/ssr/{[root-of-the-server]__631e12d0._.js.map → [root-of-the-server]__c91a8380._.js.map} +1 -1
  147. package/.next/server/chunks/ssr/src_app_page_tsx_a7111f3e._.js +3 -3
  148. package/.next/server/chunks/ssr/src_app_page_tsx_a7111f3e._.js.map +1 -1
  149. package/.next/server/pages/404.html +1 -1
  150. package/.next/server/pages/500.html +2 -2
  151. package/.next/server/server-reference-manifest.js +1 -1
  152. package/.next/server/server-reference-manifest.json +1 -1
  153. package/.next/standalone/.next/BUILD_ID +1 -1
  154. package/.next/standalone/.next/app-path-routes-manifest.json +1 -0
  155. package/.next/standalone/.next/build-manifest.json +2 -2
  156. package/.next/standalone/.next/prerender-manifest.json +3 -3
  157. package/.next/standalone/.next/routes-manifest.json +8 -0
  158. package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
  159. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  161. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  162. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  163. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  164. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  165. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  166. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  167. package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  168. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  169. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  170. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  171. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  172. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  173. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  174. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  175. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  176. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  177. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  178. package/.next/standalone/.next/server/app/api/node/events/route.js +2 -2
  179. package/.next/standalone/.next/server/app/api/node/events/route.js.nft.json +1 -1
  180. package/.next/standalone/.next/server/app/api/node/sessions/[id]/delete/route.js +2 -2
  181. package/.next/standalone/.next/server/app/api/node/sessions/[id]/delete/route.js.nft.json +1 -1
  182. package/.next/standalone/.next/server/app/api/node/sessions/[id]/open-editor/route.js +2 -2
  183. package/.next/standalone/.next/server/app/api/node/sessions/[id]/open-editor/route.js.nft.json +1 -1
  184. package/.next/standalone/.next/server/app/api/node/sessions/route.js +6 -4
  185. package/.next/standalone/.next/server/app/api/node/sessions/route.js.nft.json +1 -1
  186. package/.next/standalone/.next/server/app/api/nodes/route.js +2 -2
  187. package/.next/standalone/.next/server/app/api/nodes/route.js.nft.json +1 -1
  188. package/.next/standalone/.next/server/app/api/opencode-config/route.js +2 -2
  189. package/.next/standalone/.next/server/app/api/opencode-config/route.js.nft.json +1 -1
  190. package/.next/standalone/.next/server/app/api/opencode-config/status/route.js +2 -2
  191. package/.next/standalone/.next/server/app/api/opencode-config/status/route.js.nft.json +1 -1
  192. package/.next/standalone/.next/server/app/api/opencode-events/route.js +3 -3
  193. package/.next/standalone/.next/server/app/api/opencode-events/route.js.nft.json +1 -1
  194. package/.next/standalone/.next/server/app/api/profiles/[id]/apply/route.js +2 -2
  195. package/.next/standalone/.next/server/app/api/profiles/[id]/apply/route.js.nft.json +1 -1
  196. package/.next/standalone/.next/server/app/api/profiles/[id]/export/route.js +2 -2
  197. package/.next/standalone/.next/server/app/api/profiles/[id]/export/route.js.nft.json +1 -1
  198. package/.next/standalone/.next/server/app/api/profiles/[id]/route.js +2 -2
  199. package/.next/standalone/.next/server/app/api/profiles/[id]/route.js.nft.json +1 -1
  200. package/.next/standalone/.next/server/app/api/profiles/import/route.js +2 -2
  201. package/.next/standalone/.next/server/app/api/profiles/import/route.js.nft.json +1 -1
  202. package/.next/standalone/.next/server/app/api/profiles/route.js +2 -2
  203. package/.next/standalone/.next/server/app/api/profiles/route.js.nft.json +1 -1
  204. package/.next/standalone/.next/server/app/api/sessions/[id]/archive/route.js +3 -2
  205. package/.next/standalone/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -1
  206. package/.next/standalone/.next/server/app/api/sessions/[id]/delete/route.js +4 -3
  207. package/.next/standalone/.next/server/app/api/sessions/[id]/delete/route.js.nft.json +1 -1
  208. package/.next/standalone/.next/server/app/api/sessions/[id]/open-editor/route.js +2 -2
  209. package/.next/standalone/.next/server/app/api/sessions/[id]/open-editor/route.js.nft.json +1 -1
  210. package/.next/standalone/.next/server/app/api/sessions/[id]/restore/route/app-paths-manifest.json +3 -0
  211. package/.next/standalone/.next/server/app/api/sessions/[id]/restore/route/build-manifest.json +11 -0
  212. package/.next/standalone/.next/server/app/api/sessions/[id]/restore/route/server-reference-manifest.json +4 -0
  213. package/.next/standalone/.next/server/app/api/sessions/[id]/restore/route.js +8 -0
  214. package/.next/standalone/.next/server/app/api/sessions/[id]/restore/route.js.map +5 -0
  215. package/.next/standalone/.next/server/app/api/sessions/[id]/restore/route.js.nft.json +1 -0
  216. package/.next/standalone/.next/server/app/api/sessions/[id]/restore/route_client-reference-manifest.js +2 -0
  217. package/.next/standalone/.next/server/app/api/sessions/[id]/route.js +2 -2
  218. package/.next/standalone/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  219. package/.next/standalone/.next/server/app/api/sessions/route.js +5 -3
  220. package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
  221. package/.next/standalone/.next/server/app/index.html +1 -1
  222. package/.next/standalone/.next/server/app/index.rsc +3 -3
  223. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  224. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  225. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  226. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  227. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  228. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  229. package/.next/standalone/.next/server/app-paths-manifest.json +1 -0
  230. package/.next/standalone/.next/server/chunks/[root-of-the-server]__005eb0c5._.js +3 -0
  231. package/.next/standalone/.next/server/chunks/[root-of-the-server]__09e90d57._.js +3 -0
  232. package/.next/standalone/.next/server/chunks/[root-of-the-server]__18dd0ce9._.js +3 -0
  233. package/.next/standalone/.next/server/chunks/[root-of-the-server]__19468536._.js +3 -0
  234. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1b87ec42._.js +1 -1
  235. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2b912935._.js +3 -0
  236. package/.next/standalone/.next/server/chunks/[root-of-the-server]__303d3bac._.js +3 -0
  237. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3fac2b91._.js +5 -0
  238. package/.next/standalone/.next/server/chunks/[root-of-the-server]__43440b8d._.js +3 -0
  239. package/.next/standalone/.next/server/chunks/[root-of-the-server]__438f8bbe._.js +3 -0
  240. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4a0bfb55._.js +3 -0
  241. package/.next/standalone/.next/server/chunks/[root-of-the-server]__534c3949._.js +3 -0
  242. package/.next/standalone/.next/server/chunks/[root-of-the-server]__59160266._.js +1 -1
  243. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6f812da0._.js +3 -0
  244. package/.next/standalone/.next/server/chunks/[root-of-the-server]__71aac504._.js +3 -0
  245. package/.next/standalone/.next/server/chunks/[root-of-the-server]__907a8bf2._.js +3 -0
  246. package/.next/standalone/.next/server/chunks/[root-of-the-server]__92089220._.js +3 -0
  247. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9b7bc2d0._.js +3 -0
  248. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b2640944._.js +3 -0
  249. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c2267cf1._.js +3 -0
  250. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d7f7e6dd._.js +3 -0
  251. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d8e61048._.js +1 -1
  252. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f6d0d488._.js +3 -0
  253. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fa559e1e._.js +3 -0
  254. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_sessions_[id]_restore_route_actions_af7d6b6c.js +3 -0
  255. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7e181e75.js +1 -1
  256. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_aca45402.js +1 -1
  257. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_b054aff3.js +1 -1
  258. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_fa835ac3.js +2 -2
  259. package/.next/standalone/.next/server/chunks/src_lib_opencodeConfig_ts_8e209941._.js +3 -0
  260. package/.next/standalone/.next/server/chunks/src_lib_session-providers_claudeCode_ts_0f9590ed._.js +3 -0
  261. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__631e12d0._.js → [root-of-the-server]__c91a8380._.js} +2 -2
  262. package/.next/standalone/.next/server/chunks/ssr/src_app_page_tsx_a7111f3e._.js +3 -3
  263. package/.next/standalone/.next/server/pages/404.html +1 -1
  264. package/.next/standalone/.next/server/pages/500.html +2 -2
  265. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  266. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  267. package/.next/standalone/.next/static/chunks/9e790b67c80f853c.js +13 -0
  268. package/.next/standalone/.next/static/chunks/c3dc8cd80979c971.css +3 -0
  269. package/.next/standalone/AGENTS.md +4 -0
  270. package/.next/standalone/README.md +54 -5
  271. package/.next/standalone/check-hsql.mjs +1 -1
  272. package/.next/standalone/docs/session-status-detection.md +36 -0
  273. package/.next/standalone/docs/superpowers/specs/2026-04-09-claude-capability-alignment-design.md +39 -0
  274. package/.next/standalone/eslint.config.mjs +1 -0
  275. package/.next/standalone/package-lock.json +74 -13
  276. package/.next/standalone/package.json +2 -2
  277. package/.next/standalone/src/app/api/node/events/route.ts +3 -3
  278. package/.next/standalone/src/app/api/node/sessions/[id]/archive/route.test.ts +60 -1
  279. package/.next/standalone/src/app/api/node/sessions/[id]/archive/route.ts +77 -22
  280. package/.next/standalone/src/app/api/node/sessions/[id]/delete/route.ts +6 -5
  281. package/.next/standalone/src/app/api/node/sessions/[id]/open-editor/route.ts +6 -5
  282. package/.next/standalone/src/app/api/node/sessions/route.test.ts +282 -0
  283. package/.next/standalone/src/app/api/node/sessions/route.ts +156 -30
  284. package/.next/standalone/src/app/api/opencode-config/route.test.ts +613 -0
  285. package/.next/standalone/src/app/api/opencode-config/route.ts +336 -185
  286. package/.next/standalone/src/app/api/opencode-events/route.test.ts +77 -1
  287. package/.next/standalone/src/app/api/opencode-events/route.ts +3 -3
  288. package/.next/standalone/src/app/api/opencode-models/route.test.ts +19 -0
  289. package/.next/standalone/src/app/api/opencode-models/route.ts +4 -1
  290. package/.next/standalone/src/app/api/profiles/[id]/apply/route.test.ts +227 -0
  291. package/.next/standalone/src/app/api/profiles/[id]/apply/route.ts +13 -9
  292. package/.next/standalone/src/app/api/sessions/[id]/archive/route.test.ts +126 -0
  293. package/.next/standalone/src/app/api/sessions/[id]/archive/route.ts +47 -12
  294. package/.next/standalone/src/app/api/sessions/[id]/delete/route.test.ts +140 -0
  295. package/.next/standalone/src/app/api/sessions/[id]/delete/route.ts +51 -16
  296. package/.next/standalone/src/app/api/sessions/[id]/open-editor/route.test.ts +74 -0
  297. package/.next/standalone/src/app/api/sessions/[id]/open-editor/route.ts +22 -2
  298. package/.next/standalone/src/app/api/sessions/[id]/restore/route.test.ts +186 -0
  299. package/.next/standalone/src/app/api/sessions/[id]/restore/route.ts +184 -0
  300. package/.next/standalone/src/app/api/sessions/[id]/route.ts +3 -3
  301. package/.next/standalone/src/app/api/sessions/route.test.ts +1955 -100
  302. package/.next/standalone/src/app/api/sessions/route.ts +361 -986
  303. package/.next/standalone/src/components/KanbanBoard.test.tsx +307 -1
  304. package/.next/standalone/src/components/KanbanBoard.tsx +106 -19
  305. package/.next/standalone/src/components/ProjectCard.test.tsx +420 -6
  306. package/.next/standalone/src/components/ProjectCard.tsx +238 -86
  307. package/.next/standalone/src/components/SessionCard.test.tsx +259 -8
  308. package/.next/standalone/src/components/SessionCard.tsx +182 -76
  309. package/.next/standalone/src/components/opencode-config/AgentConfigForm.test.tsx +141 -1
  310. package/.next/standalone/src/components/opencode-config/AgentConfigForm.tsx +99 -7
  311. package/.next/standalone/src/components/opencode-config/GeneralSettingsForm.test.tsx +11 -0
  312. package/.next/standalone/src/components/opencode-config/GeneralSettingsForm.tsx +41 -2
  313. package/.next/standalone/src/components/opencode-config/categories/CategoriesManager.tsx +3 -1
  314. package/.next/standalone/src/components/opencode-config/categories/CategoryConfigForm.test.tsx +106 -8
  315. package/.next/standalone/src/components/opencode-config/categories/CategoryConfigForm.tsx +82 -5
  316. package/.next/standalone/src/hooks/useHostSources.test.ts +0 -41
  317. package/.next/standalone/src/hooks/useOpencodeSync.test.ts +321 -1
  318. package/.next/standalone/src/hooks/useOpencodeSync.ts +16 -12
  319. package/.next/standalone/src/lib/claudeSessionOverrides.test.ts +75 -0
  320. package/.next/standalone/src/lib/claudeSessionOverrides.ts +169 -0
  321. package/.next/standalone/src/lib/fixtures/opencode-config/oh-my-openagent.v4.jsonc +70 -0
  322. package/.next/standalone/src/lib/fixtures/opencode-config/oh-my-openagent.v4.secret-like.jsonc +21 -0
  323. package/.next/standalone/src/lib/fixtures/opencode-config/oh-my-opencode.v3.jsonc +17 -0
  324. package/.next/standalone/src/lib/opencodeConfig.test.ts +430 -3
  325. package/.next/standalone/src/lib/opencodeConfig.ts +157 -4
  326. package/.next/standalone/src/lib/opencodeDiscovery.test.ts +241 -0
  327. package/.next/standalone/src/lib/opencodeDiscovery.ts +164 -9
  328. package/.next/standalone/src/lib/profiles/share.test.ts +92 -0
  329. package/.next/standalone/src/lib/profiles/share.ts +1 -0
  330. package/.next/standalone/src/lib/profiles/storage.test.ts +77 -1
  331. package/.next/standalone/src/lib/profiles/storage.ts +10 -9
  332. package/.next/standalone/src/lib/session-providers/claudeCode.test.ts +2288 -0
  333. package/.next/standalone/src/lib/session-providers/claudeCode.ts +1083 -0
  334. package/.next/standalone/src/lib/session-providers/localAggregator.test.ts +322 -0
  335. package/.next/standalone/src/lib/session-providers/localAggregator.ts +302 -0
  336. package/.next/standalone/src/lib/session-providers/opencodeProvider.test.ts +170 -0
  337. package/.next/standalone/src/lib/session-providers/opencodeProvider.ts +721 -0
  338. package/.next/standalone/src/lib/session-providers/opencodeSdkCompat.ts +92 -0
  339. package/.next/standalone/src/lib/session-providers/providerIds.test.ts +337 -0
  340. package/.next/standalone/src/lib/session-providers/providerIds.ts +176 -0
  341. package/.next/standalone/src/lib/session-providers/types.ts +131 -0
  342. package/.next/standalone/src/lib/transform.test.ts +253 -0
  343. package/.next/standalone/src/lib/transform.ts +96 -37
  344. package/.next/standalone/src/types/index.ts +23 -17
  345. package/.next/standalone/src/types/opencodeConfig.ts +55 -0
  346. package/.next/static/chunks/9e790b67c80f853c.js +13 -0
  347. package/.next/static/chunks/c3dc8cd80979c971.css +3 -0
  348. package/.next/trace +1 -1
  349. package/.next/trace-build +1 -1
  350. package/.next/types/routes.d.ts +2 -1
  351. package/.next/types/validator.ts +9 -0
  352. package/README.md +54 -5
  353. package/package.json +2 -2
  354. package/.next/server/chunks/[root-of-the-server]__1211da38._.js +0 -3
  355. package/.next/server/chunks/[root-of-the-server]__1211da38._.js.map +0 -1
  356. package/.next/server/chunks/[root-of-the-server]__192ed2f4._.js +0 -3
  357. package/.next/server/chunks/[root-of-the-server]__2b526e7a._.js +0 -3
  358. package/.next/server/chunks/[root-of-the-server]__2b526e7a._.js.map +0 -1
  359. package/.next/server/chunks/[root-of-the-server]__2f981540._.js +0 -3
  360. package/.next/server/chunks/[root-of-the-server]__2f981540._.js.map +0 -1
  361. package/.next/server/chunks/[root-of-the-server]__3745b314._.js +0 -3
  362. package/.next/server/chunks/[root-of-the-server]__3745b314._.js.map +0 -1
  363. package/.next/server/chunks/[root-of-the-server]__56690af0._.js +0 -3
  364. package/.next/server/chunks/[root-of-the-server]__56690af0._.js.map +0 -1
  365. package/.next/server/chunks/[root-of-the-server]__56f5f249._.js +0 -3
  366. package/.next/server/chunks/[root-of-the-server]__56f5f249._.js.map +0 -1
  367. package/.next/server/chunks/[root-of-the-server]__59175de4._.js +0 -3
  368. package/.next/server/chunks/[root-of-the-server]__59175de4._.js.map +0 -1
  369. package/.next/server/chunks/[root-of-the-server]__64fffc02._.js +0 -3
  370. package/.next/server/chunks/[root-of-the-server]__64fffc02._.js.map +0 -1
  371. package/.next/server/chunks/[root-of-the-server]__6924c09d._.js +0 -3
  372. package/.next/server/chunks/[root-of-the-server]__6c428a24._.js +0 -3
  373. package/.next/server/chunks/[root-of-the-server]__6c428a24._.js.map +0 -1
  374. package/.next/server/chunks/[root-of-the-server]__73a00b88._.js +0 -3
  375. package/.next/server/chunks/[root-of-the-server]__73a00b88._.js.map +0 -1
  376. package/.next/server/chunks/[root-of-the-server]__7e757f50._.js +0 -3
  377. package/.next/server/chunks/[root-of-the-server]__7e757f50._.js.map +0 -1
  378. package/.next/server/chunks/[root-of-the-server]__89c5eeab._.js +0 -3
  379. package/.next/server/chunks/[root-of-the-server]__89c5eeab._.js.map +0 -1
  380. package/.next/server/chunks/[root-of-the-server]__8da6c5a8._.js +0 -3
  381. package/.next/server/chunks/[root-of-the-server]__8da6c5a8._.js.map +0 -1
  382. package/.next/server/chunks/[root-of-the-server]__b796d06c._.js +0 -3
  383. package/.next/server/chunks/[root-of-the-server]__b796d06c._.js.map +0 -1
  384. package/.next/server/chunks/[root-of-the-server]__c2ce5c0f._.js +0 -3
  385. package/.next/server/chunks/[root-of-the-server]__c2ce5c0f._.js.map +0 -1
  386. package/.next/server/chunks/[root-of-the-server]__db285678._.js +0 -3
  387. package/.next/server/chunks/[root-of-the-server]__db285678._.js.map +0 -1
  388. package/.next/server/chunks/[root-of-the-server]__e00a9200._.js +0 -5
  389. package/.next/server/chunks/[root-of-the-server]__e00a9200._.js.map +0 -1
  390. package/.next/server/chunks/[root-of-the-server]__e5df5e5f._.js +0 -3
  391. package/.next/server/chunks/[root-of-the-server]__e5df5e5f._.js.map +0 -1
  392. package/.next/server/chunks/[root-of-the-server]__edbc8d9e._.js +0 -3
  393. package/.next/server/chunks/[root-of-the-server]__edbc8d9e._.js.map +0 -1
  394. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1211da38._.js +0 -3
  395. package/.next/standalone/.next/server/chunks/[root-of-the-server]__192ed2f4._.js +0 -3
  396. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2b526e7a._.js +0 -3
  397. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2f981540._.js +0 -3
  398. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3745b314._.js +0 -3
  399. package/.next/standalone/.next/server/chunks/[root-of-the-server]__56690af0._.js +0 -3
  400. package/.next/standalone/.next/server/chunks/[root-of-the-server]__56f5f249._.js +0 -3
  401. package/.next/standalone/.next/server/chunks/[root-of-the-server]__59175de4._.js +0 -3
  402. package/.next/standalone/.next/server/chunks/[root-of-the-server]__64fffc02._.js +0 -3
  403. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6924c09d._.js +0 -3
  404. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6c428a24._.js +0 -3
  405. package/.next/standalone/.next/server/chunks/[root-of-the-server]__73a00b88._.js +0 -3
  406. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7e757f50._.js +0 -3
  407. package/.next/standalone/.next/server/chunks/[root-of-the-server]__89c5eeab._.js +0 -3
  408. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8da6c5a8._.js +0 -3
  409. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b796d06c._.js +0 -3
  410. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c2ce5c0f._.js +0 -3
  411. package/.next/standalone/.next/server/chunks/[root-of-the-server]__db285678._.js +0 -3
  412. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e00a9200._.js +0 -5
  413. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e5df5e5f._.js +0 -3
  414. package/.next/standalone/.next/server/chunks/[root-of-the-server]__edbc8d9e._.js +0 -3
  415. package/.next/standalone/.next/static/chunks/65d5354ba0add961.js +0 -13
  416. package/.next/standalone/.next/static/chunks/f42202943f6742e5.css +0 -3
  417. package/.next/static/chunks/65d5354ba0add961.js +0 -13
  418. package/.next/static/chunks/f42202943f6742e5.css +0 -3
  419. /package/.next/standalone/.next/static/{5kq9DtuBFVxu4jsgmL5Q- → 0WaQ6UjiNBgvh531pJVh0}/_buildManifest.js +0 -0
  420. /package/.next/standalone/.next/static/{5kq9DtuBFVxu4jsgmL5Q- → 0WaQ6UjiNBgvh531pJVh0}/_clientMiddlewareManifest.json +0 -0
  421. /package/.next/standalone/.next/static/{5kq9DtuBFVxu4jsgmL5Q- → 0WaQ6UjiNBgvh531pJVh0}/_ssgManifest.js +0 -0
  422. /package/.next/static/{5kq9DtuBFVxu4jsgmL5Q- → 0WaQ6UjiNBgvh531pJVh0}/_buildManifest.js +0 -0
  423. /package/.next/static/{5kq9DtuBFVxu4jsgmL5Q- → 0WaQ6UjiNBgvh531pJVh0}/_clientMiddlewareManifest.json +0 -0
  424. /package/.next/static/{5kq9DtuBFVxu4jsgmL5Q- → 0WaQ6UjiNBgvh531pJVh0}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/isexe/mode.js","../../../node_modules/isexe/windows.js","../../../node_modules/isexe/index.js","../../../node_modules/which/which.js","../../../node_modules/path-key/index.js","../../../node_modules/cross-spawn/lib/util/resolveCommand.js","../../../node_modules/cross-spawn/lib/util/escape.js","../../../node_modules/shebang-regex/index.js","../../../node_modules/shebang-command/index.js","../../../node_modules/cross-spawn/lib/util/readShebang.js","../../../node_modules/cross-spawn/lib/parse.js","../../../node_modules/cross-spawn/lib/enoent.js","../../../node_modules/cross-spawn/index.js","../../../node_modules/%40opencode-ai/sdk/dist/gen/core/serverSentEvents.gen.js","../../../node_modules/%40opencode-ai/sdk/dist/gen/core/auth.gen.js","../../../node_modules/%40opencode-ai/sdk/dist/gen/core/bodySerializer.gen.js","../../../node_modules/%40opencode-ai/sdk/dist/gen/core/pathSerializer.gen.js","../../../node_modules/%40opencode-ai/sdk/dist/gen/core/utils.gen.js","../../../node_modules/%40opencode-ai/sdk/dist/gen/client/utils.gen.js","../../../node_modules/%40opencode-ai/sdk/dist/gen/client/client.gen.js","../../../node_modules/%40opencode-ai/sdk/dist/gen/core/params.gen.js","../../../node_modules/%40opencode-ai/sdk/dist/gen/client.gen.js","../../../node_modules/%40opencode-ai/sdk/dist/gen/sdk.gen.js","../../../node_modules/%40opencode-ai/sdk/dist/error-interceptor.js","../../../node_modules/%40opencode-ai/sdk/dist/client.js","../../../node_modules/%40opencode-ai/sdk/dist/server.js","../../../node_modules/%40opencode-ai/sdk/dist/process.js","../../../node_modules/%40opencode-ai/sdk/dist/index.js","../../../src/lib/session-providers/opencodeSdkCompat.ts"],"sourcesContent":["module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), options)\n}\n\nfunction checkStat (stat, options) {\n return stat.isFile() && checkMode(stat, options)\n}\n\nfunction checkMode (stat, options) {\n var mod = stat.mode\n var uid = stat.uid\n var gid = stat.gid\n\n var myUid = options.uid !== undefined ?\n options.uid : process.getuid && process.getuid()\n var myGid = options.gid !== undefined ?\n options.gid : process.getgid && process.getgid()\n\n var u = parseInt('100', 8)\n var g = parseInt('010', 8)\n var o = parseInt('001', 8)\n var ug = u | g\n\n var ret = (mod & o) ||\n (mod & g) && gid === myGid ||\n (mod & u) && uid === myUid ||\n (mod & ug) && myUid === 0\n\n return ret\n}\n","module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction checkPathExt (path, options) {\n var pathext = options.pathExt !== undefined ?\n options.pathExt : process.env.PATHEXT\n\n if (!pathext) {\n return true\n }\n\n pathext = pathext.split(';')\n if (pathext.indexOf('') !== -1) {\n return true\n }\n for (var i = 0; i < pathext.length; i++) {\n var p = pathext[i].toLowerCase()\n if (p && path.substr(-p.length).toLowerCase() === p) {\n return true\n }\n }\n return false\n}\n\nfunction checkStat (stat, path, options) {\n if (!stat.isSymbolicLink() && !stat.isFile()) {\n return false\n }\n return checkPathExt(path, options)\n}\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, path, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), path, options)\n}\n","var fs = require('fs')\nvar core\nif (process.platform === 'win32' || global.TESTING_WINDOWS) {\n core = require('./windows.js')\n} else {\n core = require('./mode.js')\n}\n\nmodule.exports = isexe\nisexe.sync = sync\n\nfunction isexe (path, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n if (!cb) {\n if (typeof Promise !== 'function') {\n throw new TypeError('callback not provided')\n }\n\n return new Promise(function (resolve, reject) {\n isexe(path, options || {}, function (er, is) {\n if (er) {\n reject(er)\n } else {\n resolve(is)\n }\n })\n })\n }\n\n core(path, options || {}, function (er, is) {\n // ignore EACCES because that just means we aren't allowed to run it\n if (er) {\n if (er.code === 'EACCES' || options && options.ignoreErrors) {\n er = null\n is = false\n }\n }\n cb(er, is)\n })\n}\n\nfunction sync (path, options) {\n // my kingdom for a filtered catch\n try {\n return core.sync(path, options || {})\n } catch (er) {\n if (options && options.ignoreErrors || er.code === 'EACCES') {\n return false\n } else {\n throw er\n }\n }\n}\n","const isWindows = process.platform === 'win32' ||\n process.env.OSTYPE === 'cygwin' ||\n process.env.OSTYPE === 'msys'\n\nconst path = require('path')\nconst COLON = isWindows ? ';' : ':'\nconst isexe = require('isexe')\n\nconst getNotFoundError = (cmd) =>\n Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })\n\nconst getPathInfo = (cmd, opt) => {\n const colon = opt.colon || COLON\n\n // If it has a slash, then we don't bother searching the pathenv.\n // just check the file itself, and that's it.\n const pathEnv = cmd.match(/\\//) || isWindows && cmd.match(/\\\\/) ? ['']\n : (\n [\n // windows always checks the cwd first\n ...(isWindows ? [process.cwd()] : []),\n ...(opt.path || process.env.PATH ||\n /* istanbul ignore next: very unusual */ '').split(colon),\n ]\n )\n const pathExtExe = isWindows\n ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'\n : ''\n const pathExt = isWindows ? pathExtExe.split(colon) : ['']\n\n if (isWindows) {\n if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')\n pathExt.unshift('')\n }\n\n return {\n pathEnv,\n pathExt,\n pathExtExe,\n }\n}\n\nconst which = (cmd, opt, cb) => {\n if (typeof opt === 'function') {\n cb = opt\n opt = {}\n }\n if (!opt)\n opt = {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n const step = i => new Promise((resolve, reject) => {\n if (i === pathEnv.length)\n return opt.all && found.length ? resolve(found)\n : reject(getNotFoundError(cmd))\n\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n resolve(subStep(p, i, 0))\n })\n\n const subStep = (p, i, ii) => new Promise((resolve, reject) => {\n if (ii === pathExt.length)\n return resolve(step(i + 1))\n const ext = pathExt[ii]\n isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {\n if (!er && is) {\n if (opt.all)\n found.push(p + ext)\n else\n return resolve(p + ext)\n }\n return resolve(subStep(p, i, ii + 1))\n })\n })\n\n return cb ? step(0).then(res => cb(null, res), cb) : step(0)\n}\n\nconst whichSync = (cmd, opt) => {\n opt = opt || {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (let i = 0; i < pathEnv.length; i ++) {\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n for (let j = 0; j < pathExt.length; j ++) {\n const cur = p + pathExt[j]\n try {\n const is = isexe.sync(cur, { pathExt: pathExtExe })\n if (is) {\n if (opt.all)\n found.push(cur)\n else\n return cur\n }\n } catch (ex) {}\n }\n }\n\n if (opt.all && found.length)\n return found\n\n if (opt.nothrow)\n return null\n\n throw getNotFoundError(cmd)\n}\n\nmodule.exports = which\nwhich.sync = whichSync\n","'use strict';\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports.default = pathKey;\n","'use strict';\n\nconst path = require('path');\nconst which = require('which');\nconst getPathKey = require('path-key');\n\nfunction resolveCommandAttempt(parsed, withoutPathExt) {\n const env = parsed.options.env || process.env;\n const cwd = process.cwd();\n const hasCustomCwd = parsed.options.cwd != null;\n // Worker threads do not have process.chdir()\n const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;\n\n // If a custom `cwd` was specified, we need to change the process cwd\n // because `which` will do stat calls but does not support a custom cwd\n if (shouldSwitchCwd) {\n try {\n process.chdir(parsed.options.cwd);\n } catch (err) {\n /* Empty */\n }\n }\n\n let resolved;\n\n try {\n resolved = which.sync(parsed.command, {\n path: env[getPathKey({ env })],\n pathExt: withoutPathExt ? path.delimiter : undefined,\n });\n } catch (e) {\n /* Empty */\n } finally {\n if (shouldSwitchCwd) {\n process.chdir(cwd);\n }\n }\n\n // If we successfully resolved, ensure that an absolute path is returned\n // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it\n if (resolved) {\n resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);\n }\n\n return resolved;\n}\n\nfunction resolveCommand(parsed) {\n return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);\n}\n\nmodule.exports = resolveCommand;\n","'use strict';\n\n// See http://www.robvanderwoude.com/escapechars.php\nconst metaCharsRegExp = /([()\\][%!^\"`<>&|;, *?])/g;\n\nfunction escapeCommand(arg) {\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n return arg;\n}\n\nfunction escapeArgument(arg, doubleEscapeMetaChars) {\n // Convert to string\n arg = `${arg}`;\n\n // Algorithm below is based on https://qntm.org/cmd\n // It's slightly altered to disable JS backtracking to avoid hanging on specially crafted input\n // Please see https://github.com/moxystudio/node-cross-spawn/pull/160 for more information\n\n // Sequence of backslashes followed by a double quote:\n // double up all the backslashes and escape the double quote\n arg = arg.replace(/(?=(\\\\+?)?)\\1\"/g, '$1$1\\\\\"');\n\n // Sequence of backslashes followed by the end of the string\n // (which will become a double quote later):\n // double up all the backslashes\n arg = arg.replace(/(?=(\\\\+?)?)\\1$/, '$1$1');\n\n // All other backslashes occur literally\n\n // Quote the whole thing:\n arg = `\"${arg}\"`;\n\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n // Double escape meta chars if necessary\n if (doubleEscapeMetaChars) {\n arg = arg.replace(metaCharsRegExp, '^$1');\n }\n\n return arg;\n}\n\nmodule.exports.command = escapeCommand;\nmodule.exports.argument = escapeArgument;\n","'use strict';\nmodule.exports = /^#!(.*)/;\n","'use strict';\nconst shebangRegex = require('shebang-regex');\n\nmodule.exports = (string = '') => {\n\tconst match = string.match(shebangRegex);\n\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconst [path, argument] = match[0].replace(/#! ?/, '').split(' ');\n\tconst binary = path.split('/').pop();\n\n\tif (binary === 'env') {\n\t\treturn argument;\n\t}\n\n\treturn argument ? `${binary} ${argument}` : binary;\n};\n","'use strict';\n\nconst fs = require('fs');\nconst shebangCommand = require('shebang-command');\n\nfunction readShebang(command) {\n // Read the first 150 bytes from the file\n const size = 150;\n const buffer = Buffer.alloc(size);\n\n let fd;\n\n try {\n fd = fs.openSync(command, 'r');\n fs.readSync(fd, buffer, 0, size, 0);\n fs.closeSync(fd);\n } catch (e) { /* Empty */ }\n\n // Attempt to extract shebang (null is returned if not a shebang)\n return shebangCommand(buffer.toString());\n}\n\nmodule.exports = readShebang;\n","'use strict';\n\nconst path = require('path');\nconst resolveCommand = require('./util/resolveCommand');\nconst escape = require('./util/escape');\nconst readShebang = require('./util/readShebang');\n\nconst isWin = process.platform === 'win32';\nconst isExecutableRegExp = /\\.(?:com|exe)$/i;\nconst isCmdShimRegExp = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n\nfunction detectShebang(parsed) {\n parsed.file = resolveCommand(parsed);\n\n const shebang = parsed.file && readShebang(parsed.file);\n\n if (shebang) {\n parsed.args.unshift(parsed.file);\n parsed.command = shebang;\n\n return resolveCommand(parsed);\n }\n\n return parsed.file;\n}\n\nfunction parseNonShell(parsed) {\n if (!isWin) {\n return parsed;\n }\n\n // Detect & add support for shebangs\n const commandFile = detectShebang(parsed);\n\n // We don't need a shell if the command filename is an executable\n const needsShell = !isExecutableRegExp.test(commandFile);\n\n // If a shell is required, use cmd.exe and take care of escaping everything correctly\n // Note that `forceShell` is an hidden option used only in tests\n if (parsed.options.forceShell || needsShell) {\n // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/`\n // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument\n // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called,\n // we need to double escape them\n const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);\n\n // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\\bar)\n // This is necessary otherwise it will always fail with ENOENT in those cases\n parsed.command = path.normalize(parsed.command);\n\n // Escape command & arguments\n parsed.command = escape.command(parsed.command);\n parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));\n\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.command = process.env.comspec || 'cmd.exe';\n parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped\n }\n\n return parsed;\n}\n\nfunction parse(command, args, options) {\n // Normalize arguments, similar to nodejs\n if (args && !Array.isArray(args)) {\n options = args;\n args = null;\n }\n\n args = args ? args.slice(0) : []; // Clone array to avoid changing the original\n options = Object.assign({}, options); // Clone object to avoid changing the original\n\n // Build our parsed object\n const parsed = {\n command,\n args,\n options,\n file: undefined,\n original: {\n command,\n args,\n },\n };\n\n // Delegate further parsing to shell or non-shell\n return options.shell ? parsed : parseNonShell(parsed);\n}\n\nmodule.exports = parse;\n","'use strict';\n\nconst isWin = process.platform === 'win32';\n\nfunction notFoundError(original, syscall) {\n return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {\n code: 'ENOENT',\n errno: 'ENOENT',\n syscall: `${syscall} ${original.command}`,\n path: original.command,\n spawnargs: original.args,\n });\n}\n\nfunction hookChildProcess(cp, parsed) {\n if (!isWin) {\n return;\n }\n\n const originalEmit = cp.emit;\n\n cp.emit = function (name, arg1) {\n // If emitting \"exit\" event and exit code is 1, we need to check if\n // the command exists and emit an \"error\" instead\n // See https://github.com/IndigoUnited/node-cross-spawn/issues/16\n if (name === 'exit') {\n const err = verifyENOENT(arg1, parsed);\n\n if (err) {\n return originalEmit.call(cp, 'error', err);\n }\n }\n\n return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params\n };\n}\n\nfunction verifyENOENT(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawn');\n }\n\n return null;\n}\n\nfunction verifyENOENTSync(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawnSync');\n }\n\n return null;\n}\n\nmodule.exports = {\n hookChildProcess,\n verifyENOENT,\n verifyENOENTSync,\n notFoundError,\n};\n","'use strict';\n\nconst cp = require('child_process');\nconst parse = require('./lib/parse');\nconst enoent = require('./lib/enoent');\n\nfunction spawn(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n\n // Hook into child process \"exit\" event to emit an error if the command\n // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n enoent.hookChildProcess(spawned, parsed);\n\n return spawned;\n}\n\nfunction spawnSync(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);\n\n // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);\n\n return result;\n}\n\nmodule.exports = spawn;\nmodule.exports.spawn = spawn;\nmodule.exports.sync = spawnSync;\n\nmodule.exports._parse = parse;\nmodule.exports._enoent = enoent;\n","// This file is auto-generated by @hey-api/openapi-ts\nexport const createSseClient = ({ onSseError, onSseEvent, responseTransformer, responseValidator, sseDefaultRetryDelay, sseMaxRetryAttempts, sseMaxRetryDelay, sseSleepFn, url, ...options }) => {\n let lastEventId;\n const sleep = sseSleepFn ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));\n const createStream = async function* () {\n let retryDelay = sseDefaultRetryDelay ?? 3000;\n let attempt = 0;\n const signal = options.signal ?? new AbortController().signal;\n while (true) {\n if (signal.aborted)\n break;\n attempt++;\n const headers = options.headers instanceof Headers\n ? options.headers\n : new Headers(options.headers);\n if (lastEventId !== undefined) {\n headers.set(\"Last-Event-ID\", lastEventId);\n }\n try {\n const response = await fetch(url, { ...options, headers, signal });\n if (!response.ok)\n throw new Error(`SSE failed: ${response.status} ${response.statusText}`);\n if (!response.body)\n throw new Error(\"No body in SSE response\");\n const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();\n let buffer = \"\";\n const abortHandler = () => {\n try {\n void reader.cancel();\n }\n catch {\n // noop\n }\n };\n signal.addEventListener(\"abort\", abortHandler);\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n break;\n buffer += value;\n const chunks = buffer.split(\"\\n\\n\");\n buffer = chunks.pop() ?? \"\";\n for (const chunk of chunks) {\n const lines = chunk.split(\"\\n\");\n const dataLines = [];\n let eventName;\n for (const line of lines) {\n if (line.startsWith(\"data:\")) {\n dataLines.push(line.replace(/^data:\\s*/, \"\"));\n }\n else if (line.startsWith(\"event:\")) {\n eventName = line.replace(/^event:\\s*/, \"\");\n }\n else if (line.startsWith(\"id:\")) {\n lastEventId = line.replace(/^id:\\s*/, \"\");\n }\n else if (line.startsWith(\"retry:\")) {\n const parsed = Number.parseInt(line.replace(/^retry:\\s*/, \"\"), 10);\n if (!Number.isNaN(parsed)) {\n retryDelay = parsed;\n }\n }\n }\n let data;\n let parsedJson = false;\n if (dataLines.length) {\n const rawData = dataLines.join(\"\\n\");\n try {\n data = JSON.parse(rawData);\n parsedJson = true;\n }\n catch {\n data = rawData;\n }\n }\n if (parsedJson) {\n if (responseValidator) {\n await responseValidator(data);\n }\n if (responseTransformer) {\n data = await responseTransformer(data);\n }\n }\n onSseEvent?.({\n data,\n event: eventName,\n id: lastEventId,\n retry: retryDelay,\n });\n if (dataLines.length) {\n yield data;\n }\n }\n }\n }\n finally {\n signal.removeEventListener(\"abort\", abortHandler);\n reader.releaseLock();\n }\n break; // exit loop on normal completion\n }\n catch (error) {\n // connection failed or aborted; retry after delay\n onSseError?.(error);\n if (sseMaxRetryAttempts !== undefined && attempt >= sseMaxRetryAttempts) {\n break; // stop after firing error\n }\n // exponential backoff: double retry each attempt, cap at 30s\n const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 30000);\n await sleep(backoff);\n }\n }\n };\n const stream = createStream();\n return { stream };\n};\n","// This file is auto-generated by @hey-api/openapi-ts\nexport const getAuthToken = async (auth, callback) => {\n const token = typeof callback === \"function\" ? await callback(auth) : callback;\n if (!token) {\n return;\n }\n if (auth.scheme === \"bearer\") {\n return `Bearer ${token}`;\n }\n if (auth.scheme === \"basic\") {\n return `Basic ${btoa(token)}`;\n }\n return token;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\nconst serializeFormDataPair = (data, key, value) => {\n if (typeof value === \"string\" || value instanceof Blob) {\n data.append(key, value);\n }\n else if (value instanceof Date) {\n data.append(key, value.toISOString());\n }\n else {\n data.append(key, JSON.stringify(value));\n }\n};\nconst serializeUrlSearchParamsPair = (data, key, value) => {\n if (typeof value === \"string\") {\n data.append(key, value);\n }\n else {\n data.append(key, JSON.stringify(value));\n }\n};\nexport const formDataBodySerializer = {\n bodySerializer: (body) => {\n const data = new FormData();\n Object.entries(body).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeFormDataPair(data, key, v));\n }\n else {\n serializeFormDataPair(data, key, value);\n }\n });\n return data;\n },\n};\nexport const jsonBodySerializer = {\n bodySerializer: (body) => JSON.stringify(body, (_key, value) => (typeof value === \"bigint\" ? value.toString() : value)),\n};\nexport const urlSearchParamsBodySerializer = {\n bodySerializer: (body) => {\n const data = new URLSearchParams();\n Object.entries(body).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeUrlSearchParamsPair(data, key, v));\n }\n else {\n serializeUrlSearchParamsPair(data, key, value);\n }\n });\n return data.toString();\n },\n};\n","// This file is auto-generated by @hey-api/openapi-ts\nexport const separatorArrayExplode = (style) => {\n switch (style) {\n case \"label\":\n return \".\";\n case \"matrix\":\n return \";\";\n case \"simple\":\n return \",\";\n default:\n return \"&\";\n }\n};\nexport const separatorArrayNoExplode = (style) => {\n switch (style) {\n case \"form\":\n return \",\";\n case \"pipeDelimited\":\n return \"|\";\n case \"spaceDelimited\":\n return \"%20\";\n default:\n return \",\";\n }\n};\nexport const separatorObjectExplode = (style) => {\n switch (style) {\n case \"label\":\n return \".\";\n case \"matrix\":\n return \";\";\n case \"simple\":\n return \",\";\n default:\n return \"&\";\n }\n};\nexport const serializeArrayParam = ({ allowReserved, explode, name, style, value, }) => {\n if (!explode) {\n const joinedValues = (allowReserved ? value : value.map((v) => encodeURIComponent(v))).join(separatorArrayNoExplode(style));\n switch (style) {\n case \"label\":\n return `.${joinedValues}`;\n case \"matrix\":\n return `;${name}=${joinedValues}`;\n case \"simple\":\n return joinedValues;\n default:\n return `${name}=${joinedValues}`;\n }\n }\n const separator = separatorArrayExplode(style);\n const joinedValues = value\n .map((v) => {\n if (style === \"label\" || style === \"simple\") {\n return allowReserved ? v : encodeURIComponent(v);\n }\n return serializePrimitiveParam({\n allowReserved,\n name,\n value: v,\n });\n })\n .join(separator);\n return style === \"label\" || style === \"matrix\" ? separator + joinedValues : joinedValues;\n};\nexport const serializePrimitiveParam = ({ allowReserved, name, value }) => {\n if (value === undefined || value === null) {\n return \"\";\n }\n if (typeof value === \"object\") {\n throw new Error(\"Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.\");\n }\n return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;\n};\nexport const serializeObjectParam = ({ allowReserved, explode, name, style, value, valueOnly, }) => {\n if (value instanceof Date) {\n return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;\n }\n if (style !== \"deepObject\" && !explode) {\n let values = [];\n Object.entries(value).forEach(([key, v]) => {\n values = [...values, key, allowReserved ? v : encodeURIComponent(v)];\n });\n const joinedValues = values.join(\",\");\n switch (style) {\n case \"form\":\n return `${name}=${joinedValues}`;\n case \"label\":\n return `.${joinedValues}`;\n case \"matrix\":\n return `;${name}=${joinedValues}`;\n default:\n return joinedValues;\n }\n }\n const separator = separatorObjectExplode(style);\n const joinedValues = Object.entries(value)\n .map(([key, v]) => serializePrimitiveParam({\n allowReserved,\n name: style === \"deepObject\" ? `${name}[${key}]` : key,\n value: v,\n }))\n .join(separator);\n return style === \"label\" || style === \"matrix\" ? separator + joinedValues : joinedValues;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\nimport { serializeArrayParam, serializeObjectParam, serializePrimitiveParam, } from \"./pathSerializer.gen.js\";\nexport const PATH_PARAM_RE = /\\{[^{}]+\\}/g;\nexport const defaultPathSerializer = ({ path, url: _url }) => {\n let url = _url;\n const matches = _url.match(PATH_PARAM_RE);\n if (matches) {\n for (const match of matches) {\n let explode = false;\n let name = match.substring(1, match.length - 1);\n let style = \"simple\";\n if (name.endsWith(\"*\")) {\n explode = true;\n name = name.substring(0, name.length - 1);\n }\n if (name.startsWith(\".\")) {\n name = name.substring(1);\n style = \"label\";\n }\n else if (name.startsWith(\";\")) {\n name = name.substring(1);\n style = \"matrix\";\n }\n const value = path[name];\n if (value === undefined || value === null) {\n continue;\n }\n if (Array.isArray(value)) {\n url = url.replace(match, serializeArrayParam({ explode, name, style, value }));\n continue;\n }\n if (typeof value === \"object\") {\n url = url.replace(match, serializeObjectParam({\n explode,\n name,\n style,\n value: value,\n valueOnly: true,\n }));\n continue;\n }\n if (style === \"matrix\") {\n url = url.replace(match, `;${serializePrimitiveParam({\n name,\n value: value,\n })}`);\n continue;\n }\n const replaceValue = encodeURIComponent(style === \"label\" ? `.${value}` : value);\n url = url.replace(match, replaceValue);\n }\n }\n return url;\n};\nexport const getUrl = ({ baseUrl, path, query, querySerializer, url: _url, }) => {\n const pathUrl = _url.startsWith(\"/\") ? _url : `/${_url}`;\n let url = (baseUrl ?? \"\") + pathUrl;\n if (path) {\n url = defaultPathSerializer({ path, url });\n }\n let search = query ? querySerializer(query) : \"\";\n if (search.startsWith(\"?\")) {\n search = search.substring(1);\n }\n if (search) {\n url += `?${search}`;\n }\n return url;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\nimport { getAuthToken } from \"../core/auth.gen.js\";\nimport { jsonBodySerializer } from \"../core/bodySerializer.gen.js\";\nimport { serializeArrayParam, serializeObjectParam, serializePrimitiveParam } from \"../core/pathSerializer.gen.js\";\nimport { getUrl } from \"../core/utils.gen.js\";\nexport const createQuerySerializer = ({ allowReserved, array, object } = {}) => {\n const querySerializer = (queryParams) => {\n const search = [];\n if (queryParams && typeof queryParams === \"object\") {\n for (const name in queryParams) {\n const value = queryParams[name];\n if (value === undefined || value === null) {\n continue;\n }\n if (Array.isArray(value)) {\n const serializedArray = serializeArrayParam({\n allowReserved,\n explode: true,\n name,\n style: \"form\",\n value,\n ...array,\n });\n if (serializedArray)\n search.push(serializedArray);\n }\n else if (typeof value === \"object\") {\n const serializedObject = serializeObjectParam({\n allowReserved,\n explode: true,\n name,\n style: \"deepObject\",\n value: value,\n ...object,\n });\n if (serializedObject)\n search.push(serializedObject);\n }\n else {\n const serializedPrimitive = serializePrimitiveParam({\n allowReserved,\n name,\n value: value,\n });\n if (serializedPrimitive)\n search.push(serializedPrimitive);\n }\n }\n }\n return search.join(\"&\");\n };\n return querySerializer;\n};\n/**\n * Infers parseAs value from provided Content-Type header.\n */\nexport const getParseAs = (contentType) => {\n if (!contentType) {\n // If no Content-Type header is provided, the best we can do is return the raw response body,\n // which is effectively the same as the 'stream' option.\n return \"stream\";\n }\n const cleanContent = contentType.split(\";\")[0]?.trim();\n if (!cleanContent) {\n return;\n }\n if (cleanContent.startsWith(\"application/json\") || cleanContent.endsWith(\"+json\")) {\n return \"json\";\n }\n if (cleanContent === \"multipart/form-data\") {\n return \"formData\";\n }\n if ([\"application/\", \"audio/\", \"image/\", \"video/\"].some((type) => cleanContent.startsWith(type))) {\n return \"blob\";\n }\n if (cleanContent.startsWith(\"text/\")) {\n return \"text\";\n }\n return;\n};\nconst checkForExistence = (options, name) => {\n if (!name) {\n return false;\n }\n if (options.headers.has(name) || options.query?.[name] || options.headers.get(\"Cookie\")?.includes(`${name}=`)) {\n return true;\n }\n return false;\n};\nexport const setAuthParams = async ({ security, ...options }) => {\n for (const auth of security) {\n if (checkForExistence(options, auth.name)) {\n continue;\n }\n const token = await getAuthToken(auth, options.auth);\n if (!token) {\n continue;\n }\n const name = auth.name ?? \"Authorization\";\n switch (auth.in) {\n case \"query\":\n if (!options.query) {\n options.query = {};\n }\n options.query[name] = token;\n break;\n case \"cookie\":\n options.headers.append(\"Cookie\", `${name}=${token}`);\n break;\n case \"header\":\n default:\n options.headers.set(name, token);\n break;\n }\n }\n};\nexport const buildUrl = (options) => getUrl({\n baseUrl: options.baseUrl,\n path: options.path,\n query: options.query,\n querySerializer: typeof options.querySerializer === \"function\"\n ? options.querySerializer\n : createQuerySerializer(options.querySerializer),\n url: options.url,\n});\nexport const mergeConfigs = (a, b) => {\n const config = { ...a, ...b };\n if (config.baseUrl?.endsWith(\"/\")) {\n config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n }\n config.headers = mergeHeaders(a.headers, b.headers);\n return config;\n};\nexport const mergeHeaders = (...headers) => {\n const mergedHeaders = new Headers();\n for (const header of headers) {\n if (!header || typeof header !== \"object\") {\n continue;\n }\n const iterator = header instanceof Headers ? header.entries() : Object.entries(header);\n for (const [key, value] of iterator) {\n if (value === null) {\n mergedHeaders.delete(key);\n }\n else if (Array.isArray(value)) {\n for (const v of value) {\n mergedHeaders.append(key, v);\n }\n }\n else if (value !== undefined) {\n // assume object headers are meant to be JSON stringified, i.e. their\n // content value in OpenAPI specification is 'application/json'\n mergedHeaders.set(key, typeof value === \"object\" ? JSON.stringify(value) : value);\n }\n }\n }\n return mergedHeaders;\n};\nclass Interceptors {\n _fns;\n constructor() {\n this._fns = [];\n }\n clear() {\n this._fns = [];\n }\n getInterceptorIndex(id) {\n if (typeof id === \"number\") {\n return this._fns[id] ? id : -1;\n }\n else {\n return this._fns.indexOf(id);\n }\n }\n exists(id) {\n const index = this.getInterceptorIndex(id);\n return !!this._fns[index];\n }\n eject(id) {\n const index = this.getInterceptorIndex(id);\n if (this._fns[index]) {\n this._fns[index] = null;\n }\n }\n update(id, fn) {\n const index = this.getInterceptorIndex(id);\n if (this._fns[index]) {\n this._fns[index] = fn;\n return id;\n }\n else {\n return false;\n }\n }\n use(fn) {\n this._fns = [...this._fns, fn];\n return this._fns.length - 1;\n }\n}\n// do not add `Middleware` as return type so we can use _fns internally\nexport const createInterceptors = () => ({\n error: new Interceptors(),\n request: new Interceptors(),\n response: new Interceptors(),\n});\nconst defaultQuerySerializer = createQuerySerializer({\n allowReserved: false,\n array: {\n explode: true,\n style: \"form\",\n },\n object: {\n explode: true,\n style: \"deepObject\",\n },\n});\nconst defaultHeaders = {\n \"Content-Type\": \"application/json\",\n};\nexport const createConfig = (override = {}) => ({\n ...jsonBodySerializer,\n headers: defaultHeaders,\n parseAs: \"auto\",\n querySerializer: defaultQuerySerializer,\n ...override,\n});\n","// This file is auto-generated by @hey-api/openapi-ts\nimport { createSseClient } from \"../core/serverSentEvents.gen.js\";\nimport { buildUrl, createConfig, createInterceptors, getParseAs, mergeConfigs, mergeHeaders, setAuthParams, } from \"./utils.gen.js\";\nexport const createClient = (config = {}) => {\n let _config = mergeConfigs(createConfig(), config);\n const getConfig = () => ({ ..._config });\n const setConfig = (config) => {\n _config = mergeConfigs(_config, config);\n return getConfig();\n };\n const interceptors = createInterceptors();\n const beforeRequest = async (options) => {\n const opts = {\n ..._config,\n ...options,\n fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,\n headers: mergeHeaders(_config.headers, options.headers),\n serializedBody: undefined,\n };\n if (opts.security) {\n await setAuthParams({\n ...opts,\n security: opts.security,\n });\n }\n if (opts.requestValidator) {\n await opts.requestValidator(opts);\n }\n if (opts.body && opts.bodySerializer) {\n opts.serializedBody = opts.bodySerializer(opts.body);\n }\n // remove Content-Type header if body is empty to avoid sending invalid requests\n if (opts.serializedBody === undefined || opts.serializedBody === \"\") {\n opts.headers.delete(\"Content-Type\");\n }\n const url = buildUrl(opts);\n return { opts, url };\n };\n const request = async (options) => {\n // @ts-expect-error\n const { opts, url } = await beforeRequest(options);\n const requestInit = {\n redirect: \"follow\",\n ...opts,\n body: opts.serializedBody,\n };\n let request = new Request(url, requestInit);\n for (const fn of interceptors.request._fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = opts.fetch;\n let response = await _fetch(request);\n for (const fn of interceptors.response._fns) {\n if (fn) {\n response = await fn(response, request, opts);\n }\n }\n const result = {\n request,\n response,\n };\n if (response.ok) {\n if (response.status === 204 || response.headers.get(\"Content-Length\") === \"0\") {\n return opts.responseStyle === \"data\"\n ? {}\n : {\n data: {},\n ...result,\n };\n }\n const parseAs = (opts.parseAs === \"auto\" ? getParseAs(response.headers.get(\"Content-Type\")) : opts.parseAs) ?? \"json\";\n let data;\n switch (parseAs) {\n case \"arrayBuffer\":\n case \"blob\":\n case \"formData\":\n case \"json\":\n case \"text\":\n data = await response[parseAs]();\n break;\n case \"stream\":\n return opts.responseStyle === \"data\"\n ? response.body\n : {\n data: response.body,\n ...result,\n };\n }\n if (parseAs === \"json\") {\n if (opts.responseValidator) {\n await opts.responseValidator(data);\n }\n if (opts.responseTransformer) {\n data = await opts.responseTransformer(data);\n }\n }\n return opts.responseStyle === \"data\"\n ? data\n : {\n data,\n ...result,\n };\n }\n const textError = await response.text();\n let jsonError;\n try {\n jsonError = JSON.parse(textError);\n }\n catch {\n // noop\n }\n const error = jsonError ?? textError;\n let finalError = error;\n for (const fn of interceptors.error._fns) {\n if (fn) {\n finalError = (await fn(error, response, request, opts));\n }\n }\n finalError = finalError || {};\n if (opts.throwOnError) {\n throw finalError;\n }\n // TODO: we probably want to return error and improve types\n return opts.responseStyle === \"data\"\n ? undefined\n : {\n error: finalError,\n ...result,\n };\n };\n const makeMethod = (method) => {\n const fn = (options) => request({ ...options, method });\n fn.sse = async (options) => {\n const { opts, url } = await beforeRequest(options);\n return createSseClient({\n ...opts,\n body: opts.body,\n headers: opts.headers,\n method,\n url,\n });\n };\n return fn;\n };\n return {\n buildUrl,\n connect: makeMethod(\"CONNECT\"),\n delete: makeMethod(\"DELETE\"),\n get: makeMethod(\"GET\"),\n getConfig,\n head: makeMethod(\"HEAD\"),\n interceptors,\n options: makeMethod(\"OPTIONS\"),\n patch: makeMethod(\"PATCH\"),\n post: makeMethod(\"POST\"),\n put: makeMethod(\"PUT\"),\n request,\n setConfig,\n trace: makeMethod(\"TRACE\"),\n };\n};\n","// This file is auto-generated by @hey-api/openapi-ts\nconst extraPrefixesMap = {\n $body_: \"body\",\n $headers_: \"headers\",\n $path_: \"path\",\n $query_: \"query\",\n};\nconst extraPrefixes = Object.entries(extraPrefixesMap);\nconst buildKeyMap = (fields, map) => {\n if (!map) {\n map = new Map();\n }\n for (const config of fields) {\n if (\"in\" in config) {\n if (config.key) {\n map.set(config.key, {\n in: config.in,\n map: config.map,\n });\n }\n }\n else if (config.args) {\n buildKeyMap(config.args, map);\n }\n }\n return map;\n};\nconst stripEmptySlots = (params) => {\n for (const [slot, value] of Object.entries(params)) {\n if (value && typeof value === \"object\" && !Object.keys(value).length) {\n delete params[slot];\n }\n }\n};\nexport const buildClientParams = (args, fields) => {\n const params = {\n body: {},\n headers: {},\n path: {},\n query: {},\n };\n const map = buildKeyMap(fields);\n let config;\n for (const [index, arg] of args.entries()) {\n if (fields[index]) {\n config = fields[index];\n }\n if (!config) {\n continue;\n }\n if (\"in\" in config) {\n if (config.key) {\n const field = map.get(config.key);\n const name = field.map || config.key;\n params[field.in][name] = arg;\n }\n else {\n params.body = arg;\n }\n }\n else {\n for (const [key, value] of Object.entries(arg ?? {})) {\n const field = map.get(key);\n if (field) {\n const name = field.map || key;\n params[field.in][name] = value;\n }\n else {\n const extra = extraPrefixes.find(([prefix]) => key.startsWith(prefix));\n if (extra) {\n const [prefix, slot] = extra;\n params[slot][key.slice(prefix.length)] = value;\n }\n else {\n for (const [slot, allowed] of Object.entries(config.allowExtra ?? {})) {\n if (allowed) {\n ;\n params[slot][key] = value;\n break;\n }\n }\n }\n }\n }\n }\n }\n stripEmptySlots(params);\n return params;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\nimport { createClient, createConfig } from \"./client/index.js\";\nexport const client = createClient(createConfig({\n baseUrl: \"http://localhost:4096\",\n}));\n","// This file is auto-generated by @hey-api/openapi-ts\nimport { client as _heyApiClient } from \"./client.gen.js\";\nclass _HeyApiClient {\n _client = _heyApiClient;\n constructor(args) {\n if (args?.client) {\n this._client = args.client;\n }\n }\n}\nclass Global extends _HeyApiClient {\n /**\n * Get events\n */\n event(options) {\n return (options?.client ?? this._client).get.sse({\n url: \"/global/event\",\n ...options,\n });\n }\n}\nclass Project extends _HeyApiClient {\n /**\n * List all projects\n */\n list(options) {\n return (options?.client ?? this._client).get({\n url: \"/project\",\n ...options,\n });\n }\n /**\n * Get the current project\n */\n current(options) {\n return (options?.client ?? this._client).get({\n url: \"/project/current\",\n ...options,\n });\n }\n}\nclass Pty extends _HeyApiClient {\n /**\n * List all PTY sessions\n */\n list(options) {\n return (options?.client ?? this._client).get({\n url: \"/pty\",\n ...options,\n });\n }\n /**\n * Create a new PTY session\n */\n create(options) {\n return (options?.client ?? this._client).post({\n url: \"/pty\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n });\n }\n /**\n * Remove a PTY session\n */\n remove(options) {\n return (options.client ?? this._client).delete({\n url: \"/pty/{id}\",\n ...options,\n });\n }\n /**\n * Get PTY session info\n */\n get(options) {\n return (options.client ?? this._client).get({\n url: \"/pty/{id}\",\n ...options,\n });\n }\n /**\n * Update PTY session\n */\n update(options) {\n return (options.client ?? this._client).put({\n url: \"/pty/{id}\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n }\n /**\n * Connect to a PTY session\n */\n connect(options) {\n return (options.client ?? this._client).get({\n url: \"/pty/{id}/connect\",\n ...options,\n });\n }\n}\nclass Config extends _HeyApiClient {\n /**\n * Get config info\n */\n get(options) {\n return (options?.client ?? this._client).get({\n url: \"/config\",\n ...options,\n });\n }\n /**\n * Update config\n */\n update(options) {\n return (options?.client ?? this._client).patch({\n url: \"/config\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n });\n }\n /**\n * List all providers\n */\n providers(options) {\n return (options?.client ?? this._client).get({\n url: \"/config/providers\",\n ...options,\n });\n }\n}\nclass Tool extends _HeyApiClient {\n /**\n * List all tool IDs (including built-in and dynamically registered)\n */\n ids(options) {\n return (options?.client ?? this._client).get({\n url: \"/experimental/tool/ids\",\n ...options,\n });\n }\n /**\n * List tools with JSON schema parameters for a provider/model\n */\n list(options) {\n return (options.client ?? this._client).get({\n url: \"/experimental/tool\",\n ...options,\n });\n }\n}\nclass Instance extends _HeyApiClient {\n /**\n * Dispose the current instance\n */\n dispose(options) {\n return (options?.client ?? this._client).post({\n url: \"/instance/dispose\",\n ...options,\n });\n }\n}\nclass Path extends _HeyApiClient {\n /**\n * Get the current path\n */\n get(options) {\n return (options?.client ?? this._client).get({\n url: \"/path\",\n ...options,\n });\n }\n}\nclass Vcs extends _HeyApiClient {\n /**\n * Get VCS info for the current instance\n */\n get(options) {\n return (options?.client ?? this._client).get({\n url: \"/vcs\",\n ...options,\n });\n }\n}\nclass Session extends _HeyApiClient {\n /**\n * List all sessions\n */\n list(options) {\n return (options?.client ?? this._client).get({\n url: \"/session\",\n ...options,\n });\n }\n /**\n * Create a new session\n */\n create(options) {\n return (options?.client ?? this._client).post({\n url: \"/session\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n });\n }\n /**\n * Get session status\n */\n status(options) {\n return (options?.client ?? this._client).get({\n url: \"/session/status\",\n ...options,\n });\n }\n /**\n * Delete a session and all its data\n */\n delete(options) {\n return (options.client ?? this._client).delete({\n url: \"/session/{id}\",\n ...options,\n });\n }\n /**\n * Get session\n */\n get(options) {\n return (options.client ?? this._client).get({\n url: \"/session/{id}\",\n ...options,\n });\n }\n /**\n * Update session properties\n */\n update(options) {\n return (options.client ?? this._client).patch({\n url: \"/session/{id}\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n }\n /**\n * Get a session's children\n */\n children(options) {\n return (options.client ?? this._client).get({\n url: \"/session/{id}/children\",\n ...options,\n });\n }\n /**\n * Get the todo list for a session\n */\n todo(options) {\n return (options.client ?? this._client).get({\n url: \"/session/{id}/todo\",\n ...options,\n });\n }\n /**\n * Analyze the app and create an AGENTS.md file\n */\n init(options) {\n return (options.client ?? this._client).post({\n url: \"/session/{id}/init\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n }\n /**\n * Fork an existing session at a specific message\n */\n fork(options) {\n return (options.client ?? this._client).post({\n url: \"/session/{id}/fork\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n }\n /**\n * Abort a session\n */\n abort(options) {\n return (options.client ?? this._client).post({\n url: \"/session/{id}/abort\",\n ...options,\n });\n }\n /**\n * Unshare the session\n */\n unshare(options) {\n return (options.client ?? this._client).delete({\n url: \"/session/{id}/share\",\n ...options,\n });\n }\n /**\n * Share a session\n */\n share(options) {\n return (options.client ?? this._client).post({\n url: \"/session/{id}/share\",\n ...options,\n });\n }\n /**\n * Get the diff for this session\n */\n diff(options) {\n return (options.client ?? this._client).get({\n url: \"/session/{id}/diff\",\n ...options,\n });\n }\n /**\n * Summarize the session\n */\n summarize(options) {\n return (options.client ?? this._client).post({\n url: \"/session/{id}/summarize\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n }\n /**\n * List messages for a session\n */\n messages(options) {\n return (options.client ?? this._client).get({\n url: \"/session/{id}/message\",\n ...options,\n });\n }\n /**\n * Create and send a new message to a session\n */\n prompt(options) {\n return (options.client ?? this._client).post({\n url: \"/session/{id}/message\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n }\n /**\n * Get a message from a session\n */\n message(options) {\n return (options.client ?? this._client).get({\n url: \"/session/{id}/message/{messageID}\",\n ...options,\n });\n }\n /**\n * Create and send a new message to a session, start if needed and return immediately\n */\n promptAsync(options) {\n return (options.client ?? this._client).post({\n url: \"/session/{id}/prompt_async\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n }\n /**\n * Send a new command to a session\n */\n command(options) {\n return (options.client ?? this._client).post({\n url: \"/session/{id}/command\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n }\n /**\n * Run a shell command\n */\n shell(options) {\n return (options.client ?? this._client).post({\n url: \"/session/{id}/shell\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n }\n /**\n * Revert a message\n */\n revert(options) {\n return (options.client ?? this._client).post({\n url: \"/session/{id}/revert\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n }\n /**\n * Restore all reverted messages\n */\n unrevert(options) {\n return (options.client ?? this._client).post({\n url: \"/session/{id}/unrevert\",\n ...options,\n });\n }\n}\nclass Command extends _HeyApiClient {\n /**\n * List all commands\n */\n list(options) {\n return (options?.client ?? this._client).get({\n url: \"/command\",\n ...options,\n });\n }\n}\nclass Oauth extends _HeyApiClient {\n /**\n * Authorize a provider using OAuth\n */\n authorize(options) {\n return (options.client ?? this._client).post({\n url: \"/provider/{id}/oauth/authorize\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n }\n /**\n * Handle OAuth callback for a provider\n */\n callback(options) {\n return (options.client ?? this._client).post({\n url: \"/provider/{id}/oauth/callback\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n }\n}\nclass Provider extends _HeyApiClient {\n /**\n * List all providers\n */\n list(options) {\n return (options?.client ?? this._client).get({\n url: \"/provider\",\n ...options,\n });\n }\n /**\n * Get provider authentication methods\n */\n auth(options) {\n return (options?.client ?? this._client).get({\n url: \"/provider/auth\",\n ...options,\n });\n }\n oauth = new Oauth({ client: this._client });\n}\nclass Find extends _HeyApiClient {\n /**\n * Find text in files\n */\n text(options) {\n return (options.client ?? this._client).get({\n url: \"/find\",\n ...options,\n });\n }\n /**\n * Find files\n */\n files(options) {\n return (options.client ?? this._client).get({\n url: \"/find/file\",\n ...options,\n });\n }\n /**\n * Find workspace symbols\n */\n symbols(options) {\n return (options.client ?? this._client).get({\n url: \"/find/symbol\",\n ...options,\n });\n }\n}\nclass File extends _HeyApiClient {\n /**\n * List files and directories\n */\n list(options) {\n return (options.client ?? this._client).get({\n url: \"/file\",\n ...options,\n });\n }\n /**\n * Read a file\n */\n read(options) {\n return (options.client ?? this._client).get({\n url: \"/file/content\",\n ...options,\n });\n }\n /**\n * Get file status\n */\n status(options) {\n return (options?.client ?? this._client).get({\n url: \"/file/status\",\n ...options,\n });\n }\n}\nclass App extends _HeyApiClient {\n /**\n * Write a log entry to the server logs\n */\n log(options) {\n return (options?.client ?? this._client).post({\n url: \"/log\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n });\n }\n /**\n * List all agents\n */\n agents(options) {\n return (options?.client ?? this._client).get({\n url: \"/agent\",\n ...options,\n });\n }\n}\nclass Auth extends _HeyApiClient {\n /**\n * Remove OAuth credentials for an MCP server\n */\n remove(options) {\n return (options.client ?? this._client).delete({\n url: \"/mcp/{name}/auth\",\n ...options,\n });\n }\n /**\n * Start OAuth authentication flow for an MCP server\n */\n start(options) {\n return (options.client ?? this._client).post({\n url: \"/mcp/{name}/auth\",\n ...options,\n });\n }\n /**\n * Complete OAuth authentication with authorization code\n */\n callback(options) {\n return (options.client ?? this._client).post({\n url: \"/mcp/{name}/auth/callback\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n }\n /**\n * Start OAuth flow and wait for callback (opens browser)\n */\n authenticate(options) {\n return (options.client ?? this._client).post({\n url: \"/mcp/{name}/auth/authenticate\",\n ...options,\n });\n }\n /**\n * Set authentication credentials\n */\n set(options) {\n return (options.client ?? this._client).put({\n url: \"/auth/{id}\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n }\n}\nclass Mcp extends _HeyApiClient {\n /**\n * Get MCP server status\n */\n status(options) {\n return (options?.client ?? this._client).get({\n url: \"/mcp\",\n ...options,\n });\n }\n /**\n * Add MCP server dynamically\n */\n add(options) {\n return (options?.client ?? this._client).post({\n url: \"/mcp\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n });\n }\n /**\n * Connect an MCP server\n */\n connect(options) {\n return (options.client ?? this._client).post({\n url: \"/mcp/{name}/connect\",\n ...options,\n });\n }\n /**\n * Disconnect an MCP server\n */\n disconnect(options) {\n return (options.client ?? this._client).post({\n url: \"/mcp/{name}/disconnect\",\n ...options,\n });\n }\n auth = new Auth({ client: this._client });\n}\nclass Lsp extends _HeyApiClient {\n /**\n * Get LSP server status\n */\n status(options) {\n return (options?.client ?? this._client).get({\n url: \"/lsp\",\n ...options,\n });\n }\n}\nclass Formatter extends _HeyApiClient {\n /**\n * Get formatter status\n */\n status(options) {\n return (options?.client ?? this._client).get({\n url: \"/formatter\",\n ...options,\n });\n }\n}\nclass Control extends _HeyApiClient {\n /**\n * Get the next TUI request from the queue\n */\n next(options) {\n return (options?.client ?? this._client).get({\n url: \"/tui/control/next\",\n ...options,\n });\n }\n /**\n * Submit a response to the TUI request queue\n */\n response(options) {\n return (options?.client ?? this._client).post({\n url: \"/tui/control/response\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n });\n }\n}\nclass Tui extends _HeyApiClient {\n /**\n * Append prompt to the TUI\n */\n appendPrompt(options) {\n return (options?.client ?? this._client).post({\n url: \"/tui/append-prompt\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n });\n }\n /**\n * Open the help dialog\n */\n openHelp(options) {\n return (options?.client ?? this._client).post({\n url: \"/tui/open-help\",\n ...options,\n });\n }\n /**\n * Open the session dialog\n */\n openSessions(options) {\n return (options?.client ?? this._client).post({\n url: \"/tui/open-sessions\",\n ...options,\n });\n }\n /**\n * Open the theme dialog\n */\n openThemes(options) {\n return (options?.client ?? this._client).post({\n url: \"/tui/open-themes\",\n ...options,\n });\n }\n /**\n * Open the model dialog\n */\n openModels(options) {\n return (options?.client ?? this._client).post({\n url: \"/tui/open-models\",\n ...options,\n });\n }\n /**\n * Submit the prompt\n */\n submitPrompt(options) {\n return (options?.client ?? this._client).post({\n url: \"/tui/submit-prompt\",\n ...options,\n });\n }\n /**\n * Clear the prompt\n */\n clearPrompt(options) {\n return (options?.client ?? this._client).post({\n url: \"/tui/clear-prompt\",\n ...options,\n });\n }\n /**\n * Execute a TUI command (e.g. agent_cycle)\n */\n executeCommand(options) {\n return (options?.client ?? this._client).post({\n url: \"/tui/execute-command\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n });\n }\n /**\n * Show a toast notification in the TUI\n */\n showToast(options) {\n return (options?.client ?? this._client).post({\n url: \"/tui/show-toast\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n });\n }\n /**\n * Publish a TUI event\n */\n publish(options) {\n return (options?.client ?? this._client).post({\n url: \"/tui/publish\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n });\n }\n control = new Control({ client: this._client });\n}\nclass Event extends _HeyApiClient {\n /**\n * Get events\n */\n subscribe(options) {\n return (options?.client ?? this._client).get.sse({\n url: \"/event\",\n ...options,\n });\n }\n}\nexport class OpencodeClient extends _HeyApiClient {\n /**\n * Respond to a permission request\n */\n postSessionIdPermissionsPermissionId(options) {\n return (options.client ?? this._client).post({\n url: \"/session/{id}/permissions/{permissionID}\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n }\n global = new Global({ client: this._client });\n project = new Project({ client: this._client });\n pty = new Pty({ client: this._client });\n config = new Config({ client: this._client });\n tool = new Tool({ client: this._client });\n instance = new Instance({ client: this._client });\n path = new Path({ client: this._client });\n vcs = new Vcs({ client: this._client });\n session = new Session({ client: this._client });\n command = new Command({ client: this._client });\n provider = new Provider({ client: this._client });\n find = new Find({ client: this._client });\n file = new File({ client: this._client });\n app = new App({ client: this._client });\n mcp = new Mcp({ client: this._client });\n lsp = new Lsp({ client: this._client });\n formatter = new Formatter({ client: this._client });\n tui = new Tui({ client: this._client });\n auth = new Auth({ client: this._client });\n event = new Event({ client: this._client });\n}\n","/**\n * Wrap whatever the generated client decoded from a non-2xx error body\n * into a real `Error` so downstream formatters (TUI, plugins) get a\n * useful `.message` instead of `[object Object]` or blank. The original\n * parsed body and status live under `.cause` for callers that need\n * structured fields.\n *\n * Only fires when the caller used `{ throwOnError: true }`. Callers that\n * read `result.error` directly (the result-tuple path) get the parsed\n * body unchanged so existing field-level reads (`.error.name`,\n * `JSON.stringify(error)`, etc.) are byte-for-byte identical to before.\n */\nexport function wrapClientError(error, response, request, opts) {\n if (!opts?.throwOnError)\n return error;\n if (error instanceof Error)\n return error;\n // NamedError-shaped responses (the common case for opencode 4xx) come\n // through as POJOs — extract a useful message first, then wrap.\n if (typeof error === \"object\" && error !== null && Object.keys(error).length > 0) {\n const obj = error;\n const message = (typeof obj.data?.message === \"string\" && obj.data.message) ||\n (typeof obj.message === \"string\" && obj.message) ||\n (typeof obj.name === \"string\" && obj.name) ||\n describe(request, response);\n return new Error(message, { cause: { body: error, status: response?.status } });\n }\n if (typeof error === \"string\" && error.length > 0) {\n return new Error(error, { cause: { body: error, status: response?.status } });\n }\n // Empty body / network failure / undefined / null / empty object.\n const reason = response ? \"(empty response body)\" : \"network error (no response)\";\n return new Error(`opencode server ${describe(request, response)}: ${reason}`, {\n cause: { body: error, status: response?.status },\n });\n}\nfunction describe(request, response) {\n const method = request?.method ?? \"?\";\n const url = request?.url ?? \"?\";\n const status = response?.status;\n const statusText = response?.statusText;\n return `${method} ${url}${status ? \" → \" + status : \"\"}${statusText ? \" \" + statusText : \"\"}`;\n}\n","export * from \"./gen/types.gen.js\";\nimport { createClient } from \"./gen/client/client.gen.js\";\nimport { OpencodeClient } from \"./gen/sdk.gen.js\";\nimport { wrapClientError } from \"./error-interceptor.js\";\nexport { OpencodeClient };\nfunction pick(value, fallback) {\n if (!value)\n return;\n if (!fallback)\n return value;\n if (value === fallback)\n return fallback;\n if (value === encodeURIComponent(fallback))\n return fallback;\n return value;\n}\nfunction rewrite(request, directory) {\n if (request.method !== \"GET\" && request.method !== \"HEAD\")\n return request;\n const value = pick(request.headers.get(\"x-opencode-directory\"), directory);\n if (!value)\n return request;\n const url = new URL(request.url);\n if (!url.searchParams.has(\"directory\")) {\n url.searchParams.set(\"directory\", value);\n }\n const next = new Request(url, request);\n next.headers.delete(\"x-opencode-directory\");\n return next;\n}\nexport function createOpencodeClient(config) {\n if (!config?.fetch) {\n const customFetch = (req) => {\n // @ts-ignore\n req.timeout = false;\n return fetch(req);\n };\n config = {\n ...config,\n fetch: customFetch,\n };\n }\n if (config?.directory) {\n config.headers = {\n ...config.headers,\n \"x-opencode-directory\": encodeURIComponent(config.directory),\n };\n }\n const client = createClient(config);\n client.interceptors.request.use((request) => rewrite(request, config?.directory));\n client.interceptors.error.use(wrapClientError);\n return new OpencodeClient({ client });\n}\n","import launch from \"cross-spawn\";\nimport { stop, bindAbort } from \"./process.js\";\nexport async function createOpencodeServer(options) {\n options = Object.assign({\n hostname: \"127.0.0.1\",\n port: 4096,\n timeout: 5000,\n }, options ?? {});\n const args = [`serve`, `--hostname=${options.hostname}`, `--port=${options.port}`];\n if (options.config?.logLevel)\n args.push(`--log-level=${options.config.logLevel}`);\n const proc = launch(`opencode`, args, {\n env: {\n ...process.env,\n OPENCODE_CONFIG_CONTENT: JSON.stringify(options.config ?? {}),\n },\n });\n let clear = () => { };\n const url = await new Promise((resolve, reject) => {\n const id = setTimeout(() => {\n clear();\n stop(proc);\n reject(new Error(`Timeout waiting for server to start after ${options.timeout}ms`));\n }, options.timeout);\n let output = \"\";\n let resolved = false;\n proc.stdout?.on(\"data\", (chunk) => {\n if (resolved)\n return;\n output += chunk.toString();\n const lines = output.split(\"\\n\");\n for (const line of lines) {\n if (line.startsWith(\"opencode server listening\")) {\n const match = line.match(/on\\s+(https?:\\/\\/[^\\s]+)/);\n if (!match) {\n clear();\n stop(proc);\n clearTimeout(id);\n reject(new Error(`Failed to parse server url from output: ${line}`));\n return;\n }\n clearTimeout(id);\n resolved = true;\n resolve(match[1]);\n return;\n }\n }\n });\n proc.stderr?.on(\"data\", (chunk) => {\n output += chunk.toString();\n });\n proc.on(\"exit\", (code) => {\n clearTimeout(id);\n let msg = `Server exited with code ${code}`;\n if (output.trim()) {\n msg += `\\nServer output: ${output}`;\n }\n reject(new Error(msg));\n });\n proc.on(\"error\", (error) => {\n clearTimeout(id);\n reject(error);\n });\n clear = bindAbort(proc, options.signal, () => {\n clearTimeout(id);\n reject(options.signal?.reason);\n });\n });\n return {\n url,\n close() {\n clear();\n stop(proc);\n },\n };\n}\nexport function createOpencodeTui(options) {\n const args = [];\n if (options?.project) {\n args.push(`--project=${options.project}`);\n }\n if (options?.model) {\n args.push(`--model=${options.model}`);\n }\n if (options?.session) {\n args.push(`--session=${options.session}`);\n }\n if (options?.agent) {\n args.push(`--agent=${options.agent}`);\n }\n const proc = launch(`opencode`, args, {\n stdio: \"inherit\",\n env: {\n ...process.env,\n OPENCODE_CONFIG_CONTENT: JSON.stringify(options?.config ?? {}),\n },\n });\n const clear = bindAbort(proc, options?.signal);\n return {\n close() {\n clear();\n stop(proc);\n },\n };\n}\n","import { spawnSync } from \"node:child_process\";\n// Duplicated from `packages/opencode/src/util/process.ts` because the SDK cannot\n// import `opencode` without creating a cycle (`opencode` depends on `@opencode-ai/sdk`).\nexport function stop(proc) {\n if (proc.exitCode !== null || proc.signalCode !== null)\n return;\n if (process.platform === \"win32\" && proc.pid) {\n const out = spawnSync(\"taskkill\", [\"/pid\", String(proc.pid), \"/T\", \"/F\"], { windowsHide: true });\n if (!out.error && out.status === 0)\n return;\n }\n proc.kill();\n}\nexport function bindAbort(proc, signal, onAbort) {\n if (!signal)\n return () => { };\n const abort = () => {\n clear();\n stop(proc);\n onAbort?.();\n };\n const clear = () => {\n signal.removeEventListener(\"abort\", abort);\n proc.off(\"exit\", clear);\n proc.off(\"error\", clear);\n };\n signal.addEventListener(\"abort\", abort, { once: true });\n proc.on(\"exit\", clear);\n proc.on(\"error\", clear);\n if (signal.aborted)\n abort();\n return clear;\n}\n","export * from \"./client.js\";\nexport * from \"./server.js\";\nimport { createOpencodeClient } from \"./client.js\";\nimport { createOpencodeServer } from \"./server.js\";\nexport async function createOpencode(options) {\n const server = await createOpencodeServer({\n ...options,\n });\n const client = createOpencodeClient({\n baseUrl: server.url,\n });\n return {\n client,\n server,\n };\n}\n","import { createOpencodeClient } from '@opencode-ai/sdk';\n\nexport type OpencodeSdkClient = ReturnType<typeof createOpencodeClient>;\n\nexport function createVibePulseOpencodeClient(baseUrl: string): OpencodeSdkClient {\n return createOpencodeClient({ baseUrl });\n}\n\nexport function listOpencodeSessions(client: OpencodeSdkClient, signal?: AbortSignal) {\n return client.session.list({ signal });\n}\n\nexport function getOpencodeSessionStatus(client: OpencodeSdkClient, signal?: AbortSignal) {\n return client.session.status({ signal });\n}\n\nexport function getOpencodeSessionMessages(\n client: OpencodeSdkClient,\n sessionId: string,\n limit: number,\n signal?: AbortSignal\n) {\n return client.session.messages({\n path: { id: sessionId },\n query: { limit },\n signal,\n });\n}\n\nexport function getOpencodeSession(client: OpencodeSdkClient, sessionId: string) {\n return client.session.get({ path: { id: sessionId } });\n}\n\nexport function deleteOpencodeSession(client: OpencodeSdkClient, sessionId: string) {\n return client.session.delete({ path: { id: sessionId } });\n}\n\nexport function streamOpencodeGlobalEvents(client: OpencodeSdkClient, signal?: AbortSignal) {\n return client.global.event({ signal });\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\nfunction readNestedErrorMessage(value: unknown): string | null {\n if (!isRecord(value)) {\n return null;\n }\n\n const message = value['message'];\n if (typeof message === 'string' && message.trim()) {\n return message;\n }\n\n const error = value['error'];\n if (typeof error === 'string' && error.trim()) {\n return error;\n }\n\n return null;\n}\n\nexport function formatOpencodeSdkError(error: unknown): string {\n if (error instanceof Error) {\n return error.message;\n }\n\n if (typeof error === 'string') {\n return error;\n }\n\n if (!isRecord(error)) {\n return String(error);\n }\n\n const name = typeof error['name'] === 'string' && error['name'].trim()\n ? error['name']\n : 'OpenCode SDK error';\n const status = typeof error['status'] === 'number'\n ? error['status']\n : typeof error['statusCode'] === 'number'\n ? error['statusCode']\n : undefined;\n const message =\n readNestedErrorMessage(error) ||\n readNestedErrorMessage(error['body']) ||\n readNestedErrorMessage(error['data']);\n\n const prefix = status ? `${name} ${status}` : name;\n return message ? `${prefix}: ${message}` : prefix;\n}\n"],"names":[],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]}
@@ -0,0 +1,3 @@
1
+ module.exports=[54799,(e,t,n)=>{t.exports=e.x("crypto",()=>require("crypto"))},82414,e=>{"use strict";var t=e.i(22734),n=e.i(24868),r=e.i(46786),o=e.i(14747),a=e.i(54799),s=e.i(89196);let i=(0,o.join)((0,r.homedir)(),".config","vibepulse"),d=(0,o.join)(i,"nodes.jsonc");class l extends Error{code;constructor(e,t){super(t),this.name="NodeRegistryError",this.code=e}}function u(e){let t=e.trim();if(!t)return{ok:!1,error:"empty"};try{let e=new URL(t);if("http:"!==e.protocol&&"https:"!==e.protocol)return{ok:!1,error:"unsupported_protocol"};if(e.username||e.password)return{ok:!1,error:"credentials_not_allowed"};return{ok:!0,normalizedBaseUrl:(e.search="",e.hash="",e.toString().replace(/\/+$/,""))}}catch{return{ok:!1,error:"invalid"}}}function c(e){if(!e||"object"!=typeof e||"string"!=typeof e.nodeId||"string"!=typeof e.nodeLabel||"string"!=typeof e.baseUrl||"boolean"!=typeof e.enabled||"string"!=typeof e.token||"string"!=typeof e.createdAt||"string"!=typeof e.updatedAt)return null;let t=u(e.baseUrl);if(!t.ok)return null;let n=e.nodeId.trim(),r=e.nodeLabel.trim();return n&&r?{nodeId:n,nodeLabel:r,baseUrl:t.normalizedBaseUrl,enabled:e.enabled,token:e.token.trim(),createdAt:e.createdAt,updatedAt:e.updatedAt}:null}function p(){(0,t.existsSync)(i)||(0,t.mkdirSync)(i,{recursive:!0})}function f(){return{version:1,nodes:[]}}async function h(){try{if(p(),!(0,t.existsSync)(d)){let e=f();return await b(e),e}let e=await (0,n.readFile)(d,"utf-8"),r=(0,s.parse)(e,null,!1);if(!r||"object"!=typeof r||!Array.isArray(r.nodes))return f();let o=r.nodes.map(c).filter(e=>null!==e),a=[],i=new Set;for(let e of o)i.has(e.baseUrl)||(i.add(e.baseUrl),a.push(e));return{version:"number"==typeof r.version?r.version:1,nodes:a}}catch{return f()}}async function b(e){p();let t=(0,s.stringify)(e,null,2);await (0,n.writeFile)(d,t,"utf-8")}function v(e){return{nodeId:e.nodeId,nodeLabel:e.nodeLabel,baseUrl:e.baseUrl,enabled:e.enabled,createdAt:e.createdAt,updatedAt:e.updatedAt,tokenConfigured:e.token.trim().length>0}}function w(e){if("string"!=typeof e||""===e.trim())throw new l("node_label_required","nodeLabel is required and must be a non-empty string");return e.trim()}function m(e){if("string"!=typeof e||""===e.trim())throw new l("node_id_required","nodeId is required and must be a non-empty string");return e.trim()}function R(e){if(null==e)return"";if("string"!=typeof e)throw new l("invalid_token","token must be a string when provided");return e.trim()}function y(e){if("boolean"!=typeof e)throw new l("invalid_enabled","enabled must be a boolean");return e}function g(e){if("string"!=typeof e)throw new l("invalid_base_url","baseUrl must be a string");let t=u(e);if(!t.ok)throw new l("invalid_base_url",`baseUrl validation failed: ${t.error}`);return t.normalizedBaseUrl}function _(e,t,n){if(e.find(e=>e.baseUrl===t&&e.nodeId!==n))throw new l("duplicate_base_url",`A node with baseUrl '${t}' already exists`)}async function A(){return[...(await h()).nodes]}async function E(){return(await A()).map(v)}async function S(e){let t=w(e.nodeLabel),n=g(e.baseUrl),r=R(e.token),o=void 0===e.enabled||y(e.enabled),s=await h();_(s.nodes,n);let i=new Date().toISOString(),d={nodeId:(0,a.randomUUID)(),nodeLabel:t,baseUrl:n,enabled:o,token:r,createdAt:i,updatedAt:i};return s.nodes.push(d),await b(s),v(d)}async function I(e,t){let n=m(e);if(void 0===t.nodeLabel&&void 0===t.baseUrl&&void 0===t.token&&void 0===t.enabled)throw new l("no_updates","At least one update field is required");let r=await h(),o=r.nodes.findIndex(e=>e.nodeId===n);if(-1===o)throw new l("node_not_found",`Node '${n}' not found`);let a=r.nodes[o],s=void 0===t.nodeLabel?a.nodeLabel:w(t.nodeLabel),i=void 0===t.baseUrl?a.baseUrl:g(t.baseUrl),d=void 0===t.token?a.token:R(t.token),u=void 0===t.enabled?a.enabled:y(t.enabled);_(r.nodes,i,a.nodeId);let c={...a,nodeLabel:s,baseUrl:i,token:d,enabled:u,updatedAt:new Date().toISOString()};return r.nodes[o]=c,await b(r),v(c)}async function k(e,t){let n=m(e),r=await h(),o=r.nodes.findIndex(e=>e.nodeId===n);if(-1===o)throw new l("node_not_found",`Node '${n}' not found`);let a=r.nodes[o],s=void 0===t?!a.enabled:y(t),i={...a,enabled:s,updatedAt:new Date().toISOString()};return r.nodes[o]=i,await b(r),v(i)}async function C(e){let t=m(e),n=await h(),r=n.nodes.filter(e=>e.nodeId!==t);return r.length!==n.nodes.length&&(n.nodes=r,await b(n),!0)}e.s(["NodeRegistryError",()=>l,"createNode",()=>S,"deleteNode",()=>C,"listNodeRecords",()=>A,"listNodes",()=>E,"toggleNode",()=>k,"updateNode",()=>I])},20266,e=>{"use strict";var t=e.i(47909),n=e.i(74017),r=e.i(96250),o=e.i(59756),a=e.i(61916),s=e.i(74677),i=e.i(69741),d=e.i(16795),l=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(26937),b=e.i(10372),v=e.i(93695);e.i(52474);var w=e.i(220),m=e.i(99686),R=e.i(586),y=e.i(82414),g=e.i(68817),_=e.i(39948),A=e.i(74579),E=e.i(17506);function S(){return Response.json({error:"Invalid action session id",reason:"invalid_action_session_id"},{status:400})}function I(){return Response.json({error:"Session not found",reason:"session_not_found"},{status:404})}function k(e,t,n="restore_request_failed"){return Response.json({error:"Failed to restore session",reason:n,...t?{message:t}:{}},{status:e})}async function C(e,t){let n=(await (0,y.listNodeRecords)()).find(t=>t.nodeId===e);if(!n||!n.enabled)return I();let r=new AbortController,o=!1,a=setTimeout(()=>{o=!0,r.abort()},5e3);try{let e=await fetch(`${n.baseUrl}/api/node/sessions/${t}/archive`,{method:"DELETE",headers:(0,g.createNodeRequestHeaders)(n.token),signal:r.signal});if(e.ok)return Response.json({success:!0});let o=await e.json().catch(()=>({}));return Response.json({error:"Remote restore failed",reason:"string"==typeof o.reason?o.reason:`node_request_failed_${e.status}`},{status:e.status})}catch{return Response.json({error:o?"Remote node request timed out":"Remote node request failed",reason:o?"upstream_timeout":"upstream_unreachable"},{status:o?504:503})}finally{clearTimeout(a)}}async function x(e,{params:t}){let n,r,{id:o}=await t;try{n=(0,R.parseActionSessionReference)(o)}catch{return S()}let a=(0,_.detectProviderFromRawId)(n.sessionId);if(!(0,_.getDefaultProviderContext)(a).capabilities.archive||"claude-code"===a&&n.isRemote){var s;let e;return s=n.sessionId,e=(0,_.detectProviderFromRawId)(s),Response.json({error:"Session action not supported by provider",reason:"provider_capability_unsupported",provider:e,capability:"archive"},{status:403})}if("claude-code"===a){let e=(0,R.resolveLocalActionSessionId)(o);return e&&((0,A.markSessionForceUnarchived)(e),(0,A.clearSessionStickyStatusBlocked)(e)),await (0,E.clearClaudeSessionArchived)((0,_.extractProviderRawId)(n.sessionId)),Response.json({success:!0})}let i=(0,R.resolveLocalActionSessionId)(o);if(!i&&n.isRemote)return C(n.hostId,n.sessionId);if(!i)return S();let{ports:d,timedOut:l}=(0,m.discoverOpencodePortsWithMeta)();if(!d.length)return Response.json({error:l?"OpenCode discovery timed out":"OpenCode server not found"},{status:503});let u=!1,c=null,p="restore_request_failed";for(let e of d)try{let t=await fetch(`http://localhost:${e}/session/${i}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({time:{archived:null}})});if(t.ok)return(0,A.markSessionForceUnarchived)(i),(0,A.clearSessionStickyStatusBlocked)(i),Response.json({success:!0});if(404===t.status){u=!0;continue}let n=await t.text();console.error(`Failed to restore session on port ${e}:`,n),c=t.status,r=n||void 0,p="restore_request_failed"}catch(t){console.error(`Failed to restore session on port ${e}:`,t),c=503,r=t instanceof Error?t.message:String(t),p="upstream_unreachable"}return null!==c?k(c,r,p):u?I():k(500)}e.s(["POST",()=>x],64593);var U=e.i(64593);let N=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/sessions/[id]/restore/route",pathname:"/api/sessions/[id]/restore",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sessions/[id]/restore/route.ts",nextConfigOutput:"standalone",userland:U}),{workAsyncStorage:P,workUnitAsyncStorage:T,serverHooks:O}=N;function q(){return(0,r.patchFetch)({workAsyncStorage:P,workUnitAsyncStorage:T})}async function j(e,t,r){N.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/sessions/[id]/restore/route";m=m.replace(/\/index$/,"")||"/";let R=await N.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:y,params:g,nextConfig:_,parsedUrl:A,isDraftMode:E,prerenderManifest:S,routerServerContext:I,isOnDemandRevalidate:k,revalidateOnlyGenerated:C,resolvedPathname:x,clientReferenceManifest:U,serverActionsManifest:P}=R,T=(0,i.normalizeAppPath)(m),O=!!(S.dynamicRoutes[T]||S.routes[x]),q=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,A,!1):t.end("This page could not be found"),null);if(O&&!E){let e=!!S.routes[x],t=S.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if(_.experimental.adapterPath)return await q();throw new v.NoFallbackError}}let j=null;!O||N.isDev||E||(j="/index"===(j=x)?"/":j);let $=!0===N.isDev||!O,L=O&&!$;P&&U&&(0,s.setManifestsSingleton)({page:m,clientReferenceManifest:U,serverActionsManifest:P});let D=e.method||"GET",H=(0,a.getTracer)(),F=H.getActiveScopeSpan(),M={params:g,prerenderManifest:S,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:$,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:_.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,o)=>N.onRequestError(e,t,r,o,I)},sharedContext:{buildId:y}},B=new d.NodeNextRequest(e),K=new d.NodeNextResponse(t),z=l.NextRequestAdapter.fromNodeNextRequest(B,(0,l.signalFromNodeResponse)(t));try{let s=async e=>N.handle(z,M).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=H.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=n.get("next.route");if(r){let t=`${D} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${D} ${m}`)}),i=!!(0,o.getRequestMeta)(e,"minimalMode"),d=async o=>{var a,d;let l=async({previousCacheEntry:n})=>{try{if(!i&&k&&C&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await s(o);e.fetchMetrics=M.renderOpts.fetchMetrics;let d=M.renderOpts.pendingWaitUntil;d&&r.waitUntil&&(r.waitUntil(d),d=void 0);let l=M.renderOpts.collectedTags;if(!O)return await (0,p.sendResponse)(B,K,a,M.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[b.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=b.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,r=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=b.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:r}}}}catch(t){throw(null==n?void 0:n.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:k})},!1,I),t}},u=await N.handleResponse({req:e,nextConfig:_,cacheKey:j,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:C,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:i});if(!O)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(d=u.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",k?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let v=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&O||v.delete(b.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||v.get("Cache-Control")||v.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(B,K,new Response(u.value.body,{headers:v,status:u.value.status||200})),null};F?await d(F):await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${D} ${m}`,kind:a.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},d))}catch(t){if(t instanceof v.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:k})},!1,I),O)throw t;return await (0,p.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>j,"patchFetch",()=>q,"routeModule",()=>N,"serverHooks",()=>O,"workAsyncStorage",()=>P,"workUnitAsyncStorage",()=>T],20266)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__534c3949._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/nodeRegistry.ts","../../../src/app/api/sessions/%5Bid%5D/restore/route.ts","../../../node_modules/next/dist/esm/build/templates/app-route.js"],"sourcesContent":["import { existsSync, mkdirSync } from 'fs';\nimport { readFile, writeFile } from 'fs/promises';\nimport { homedir } from 'os';\nimport { join } from 'path';\nimport { randomUUID } from 'crypto';\nimport { parse, stringify } from 'comment-json';\n\nexport const NODES_CONFIG_DIR = join(homedir(), '.config', 'vibepulse');\nexport const NODE_REGISTRY_PATH = join(NODES_CONFIG_DIR, 'nodes.jsonc');\n\nexport interface StoredNodeRecord {\n nodeId: string;\n nodeLabel: string;\n baseUrl: string;\n enabled: boolean;\n token: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface PublicNodeRecord {\n nodeId: string;\n nodeLabel: string;\n baseUrl: string;\n enabled: boolean;\n createdAt: string;\n updatedAt: string;\n tokenConfigured: boolean;\n}\n\ninterface NodeRegistryFile {\n version: number;\n nodes: StoredNodeRecord[];\n}\n\nexport type NodeBaseUrlValidationError =\n | 'empty'\n | 'invalid'\n | 'unsupported_protocol'\n | 'credentials_not_allowed';\n\ntype NodeBaseUrlValidationResult =\n | { ok: true; normalizedBaseUrl: string }\n | { ok: false; error: NodeBaseUrlValidationError };\n\nexport type NodeRegistryErrorCode =\n | 'node_not_found'\n | 'node_label_required'\n | 'node_id_required'\n | 'invalid_token'\n | 'invalid_enabled'\n | 'invalid_base_url'\n | 'duplicate_base_url'\n | 'no_updates';\n\nexport class NodeRegistryError extends Error {\n readonly code: NodeRegistryErrorCode;\n\n constructor(code: NodeRegistryErrorCode, message: string) {\n super(message);\n this.name = 'NodeRegistryError';\n this.code = code;\n }\n}\n\nfunction normalizeParsedBaseUrl(url: URL): string {\n url.search = '';\n url.hash = '';\n return url.toString().replace(/\\/+$/, '');\n}\n\nexport function validateNodeBaseUrl(url: string): NodeBaseUrlValidationResult {\n const trimmedUrl = url.trim();\n if (!trimmedUrl) {\n return { ok: false, error: 'empty' };\n }\n\n try {\n const parsed = new URL(trimmedUrl);\n if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {\n return { ok: false, error: 'unsupported_protocol' };\n }\n\n if (parsed.username || parsed.password) {\n return { ok: false, error: 'credentials_not_allowed' };\n }\n\n return { ok: true, normalizedBaseUrl: normalizeParsedBaseUrl(parsed) };\n } catch {\n return { ok: false, error: 'invalid' };\n }\n}\n\nfunction normalizeStoredNode(node: unknown): StoredNodeRecord | null {\n if (!node || typeof node !== 'object') {\n return null;\n }\n\n const candidate = node as Record<string, unknown>;\n if (\n typeof candidate.nodeId !== 'string' ||\n typeof candidate.nodeLabel !== 'string' ||\n typeof candidate.baseUrl !== 'string' ||\n typeof candidate.enabled !== 'boolean' ||\n typeof candidate.token !== 'string' ||\n typeof candidate.createdAt !== 'string' ||\n typeof candidate.updatedAt !== 'string'\n ) {\n return null;\n }\n\n const validation = validateNodeBaseUrl(candidate.baseUrl);\n if (!validation.ok) {\n return null;\n }\n\n const nodeId = candidate.nodeId.trim();\n const nodeLabel = candidate.nodeLabel.trim();\n\n if (!nodeId || !nodeLabel) {\n return null;\n }\n\n return {\n nodeId,\n nodeLabel,\n baseUrl: validation.normalizedBaseUrl,\n enabled: candidate.enabled,\n token: candidate.token.trim(),\n createdAt: candidate.createdAt,\n updatedAt: candidate.updatedAt,\n };\n}\n\nfunction ensureNodesConfigDir(): void {\n if (!existsSync(NODES_CONFIG_DIR)) {\n mkdirSync(NODES_CONFIG_DIR, { recursive: true });\n }\n}\n\nfunction defaultRegistry(): NodeRegistryFile {\n return {\n version: 1,\n nodes: [],\n };\n}\n\nasync function readRegistryFile(): Promise<NodeRegistryFile> {\n try {\n ensureNodesConfigDir();\n\n if (!existsSync(NODE_REGISTRY_PATH)) {\n const initial = defaultRegistry();\n await writeRegistryFile(initial);\n return initial;\n }\n\n const raw = await readFile(NODE_REGISTRY_PATH, 'utf-8');\n const parsed = parse(raw, null, false) as unknown;\n\n if (!parsed || typeof parsed !== 'object') {\n return defaultRegistry();\n }\n\n const registry = parsed as Record<string, unknown>;\n if (!Array.isArray(registry.nodes)) {\n return defaultRegistry();\n }\n\n const normalizedNodes = registry.nodes\n .map(normalizeStoredNode)\n .filter((node): node is StoredNodeRecord => node !== null);\n\n const dedupedNodes: StoredNodeRecord[] = [];\n const seenBaseUrls = new Set<string>();\n for (const node of normalizedNodes) {\n if (seenBaseUrls.has(node.baseUrl)) {\n continue;\n }\n seenBaseUrls.add(node.baseUrl);\n dedupedNodes.push(node);\n }\n\n return {\n version: typeof registry.version === 'number' ? registry.version : 1,\n nodes: dedupedNodes,\n };\n } catch {\n return defaultRegistry();\n }\n}\n\nasync function writeRegistryFile(registry: NodeRegistryFile): Promise<void> {\n ensureNodesConfigDir();\n const content = stringify(registry, null, 2);\n await writeFile(NODE_REGISTRY_PATH, content, 'utf-8');\n}\n\nexport function sanitizeNodeRecord(node: StoredNodeRecord): PublicNodeRecord {\n return {\n nodeId: node.nodeId,\n nodeLabel: node.nodeLabel,\n baseUrl: node.baseUrl,\n enabled: node.enabled,\n createdAt: node.createdAt,\n updatedAt: node.updatedAt,\n tokenConfigured: node.token.trim().length > 0,\n };\n}\n\nfunction assertNodeLabel(label: unknown): string {\n if (typeof label !== 'string' || label.trim() === '') {\n throw new NodeRegistryError('node_label_required', 'nodeLabel is required and must be a non-empty string');\n }\n return label.trim();\n}\n\nfunction assertNodeId(nodeId: unknown): string {\n if (typeof nodeId !== 'string' || nodeId.trim() === '') {\n throw new NodeRegistryError('node_id_required', 'nodeId is required and must be a non-empty string');\n }\n return nodeId.trim();\n}\n\nfunction normalizeOptionalToken(token: unknown): string {\n if (token === undefined || token === null) {\n return '';\n }\n\n if (typeof token !== 'string') {\n throw new NodeRegistryError('invalid_token', 'token must be a string when provided');\n }\n\n return token.trim();\n}\n\nfunction assertEnabled(value: unknown): boolean {\n if (typeof value !== 'boolean') {\n throw new NodeRegistryError('invalid_enabled', 'enabled must be a boolean');\n }\n return value;\n}\n\nfunction assertAndNormalizeBaseUrl(baseUrl: unknown): string {\n if (typeof baseUrl !== 'string') {\n throw new NodeRegistryError('invalid_base_url', 'baseUrl must be a string');\n }\n\n const validation = validateNodeBaseUrl(baseUrl);\n if (!validation.ok) {\n throw new NodeRegistryError(\n 'invalid_base_url',\n `baseUrl validation failed: ${validation.error}`\n );\n }\n\n return validation.normalizedBaseUrl;\n}\n\nfunction assertUniqueBaseUrl(nodes: StoredNodeRecord[], normalizedBaseUrl: string, ignoreNodeId?: string): void {\n const duplicate = nodes.find(node => node.baseUrl === normalizedBaseUrl && node.nodeId !== ignoreNodeId);\n if (duplicate) {\n throw new NodeRegistryError(\n 'duplicate_base_url',\n `A node with baseUrl '${normalizedBaseUrl}' already exists`\n );\n }\n}\n\nexport async function listNodeRecords(): Promise<StoredNodeRecord[]> {\n const registry = await readRegistryFile();\n return [...registry.nodes];\n}\n\nexport async function listNodes(): Promise<PublicNodeRecord[]> {\n const nodes = await listNodeRecords();\n return nodes.map(sanitizeNodeRecord);\n}\n\nexport interface CreateNodeInput {\n nodeLabel: string;\n baseUrl: string;\n token?: string;\n enabled?: boolean;\n}\n\nexport interface UpdateNodeInput {\n nodeLabel?: string;\n baseUrl?: string;\n token?: string;\n enabled?: boolean;\n}\n\nexport async function createNode(input: CreateNodeInput): Promise<PublicNodeRecord> {\n const nodeLabel = assertNodeLabel(input.nodeLabel);\n const baseUrl = assertAndNormalizeBaseUrl(input.baseUrl);\n const token = normalizeOptionalToken(input.token);\n const enabled = input.enabled === undefined ? true : assertEnabled(input.enabled);\n\n const registry = await readRegistryFile();\n assertUniqueBaseUrl(registry.nodes, baseUrl);\n\n const now = new Date().toISOString();\n const record: StoredNodeRecord = {\n nodeId: randomUUID(),\n nodeLabel,\n baseUrl,\n enabled,\n token,\n createdAt: now,\n updatedAt: now,\n };\n\n registry.nodes.push(record);\n await writeRegistryFile(registry);\n\n return sanitizeNodeRecord(record);\n}\n\nexport async function updateNode(nodeIdInput: unknown, updates: UpdateNodeInput): Promise<PublicNodeRecord> {\n const nodeId = assertNodeId(nodeIdInput);\n\n const hasAnyUpdate =\n updates.nodeLabel !== undefined ||\n updates.baseUrl !== undefined ||\n updates.token !== undefined ||\n updates.enabled !== undefined;\n\n if (!hasAnyUpdate) {\n throw new NodeRegistryError('no_updates', 'At least one update field is required');\n }\n\n const registry = await readRegistryFile();\n const index = registry.nodes.findIndex(node => node.nodeId === nodeId);\n if (index === -1) {\n throw new NodeRegistryError('node_not_found', `Node '${nodeId}' not found`);\n }\n\n const current = registry.nodes[index];\n\n const nextNodeLabel = updates.nodeLabel === undefined ? current.nodeLabel : assertNodeLabel(updates.nodeLabel);\n const nextBaseUrl = updates.baseUrl === undefined ? current.baseUrl : assertAndNormalizeBaseUrl(updates.baseUrl);\n const nextToken = updates.token === undefined ? current.token : normalizeOptionalToken(updates.token);\n const nextEnabled = updates.enabled === undefined ? current.enabled : assertEnabled(updates.enabled);\n\n assertUniqueBaseUrl(registry.nodes, nextBaseUrl, current.nodeId);\n\n const updated: StoredNodeRecord = {\n ...current,\n nodeLabel: nextNodeLabel,\n baseUrl: nextBaseUrl,\n token: nextToken,\n enabled: nextEnabled,\n updatedAt: new Date().toISOString(),\n };\n\n registry.nodes[index] = updated;\n await writeRegistryFile(registry);\n\n return sanitizeNodeRecord(updated);\n}\n\nexport async function toggleNode(nodeIdInput: unknown, enabled?: unknown): Promise<PublicNodeRecord> {\n const nodeId = assertNodeId(nodeIdInput);\n\n const registry = await readRegistryFile();\n const index = registry.nodes.findIndex(node => node.nodeId === nodeId);\n if (index === -1) {\n throw new NodeRegistryError('node_not_found', `Node '${nodeId}' not found`);\n }\n\n const current = registry.nodes[index];\n const nextEnabled = enabled === undefined ? !current.enabled : assertEnabled(enabled);\n const updated: StoredNodeRecord = {\n ...current,\n enabled: nextEnabled,\n updatedAt: new Date().toISOString(),\n };\n\n registry.nodes[index] = updated;\n await writeRegistryFile(registry);\n\n return sanitizeNodeRecord(updated);\n}\n\nexport async function deleteNode(nodeIdInput: unknown): Promise<boolean> {\n const nodeId = assertNodeId(nodeIdInput);\n\n const registry = await readRegistryFile();\n const nextNodes = registry.nodes.filter(node => node.nodeId !== nodeId);\n if (nextNodes.length === registry.nodes.length) {\n return false;\n }\n\n registry.nodes = nextNodes;\n await writeRegistryFile(registry);\n return true;\n}\n","import { discoverOpencodePortsWithMeta } from '@/lib/opencodeDiscovery';\nimport { ActionSessionReference, parseActionSessionReference, resolveLocalActionSessionId } from '@/lib/hostIdentity';\nimport { listNodeRecords } from '@/lib/nodeRegistry';\nimport { createNodeRequestHeaders } from '@/lib/nodeProtocol';\nimport { detectProviderFromRawId, extractProviderRawId, getDefaultProviderContext } from '@/lib/session-providers/providerIds';\nimport {\n clearSessionStickyStatusBlocked,\n markSessionForceUnarchived,\n} from '@/lib/sessionArchiveOverrides';\nimport { clearClaudeSessionArchived } from '@/lib/claudeSessionOverrides';\n\nconst REMOTE_NODE_ACTION_TIMEOUT_MS = 5_000;\n\nfunction createInvalidActionSessionIdResponse() {\n return Response.json({ error: 'Invalid action session id', reason: 'invalid_action_session_id' }, { status: 400 });\n}\n\nfunction createSessionNotFoundResponse() {\n return Response.json({ error: 'Session not found', reason: 'session_not_found' }, { status: 404 });\n}\n\nfunction createUnsupportedCapabilityResponse(sessionId: string) {\n const provider = detectProviderFromRawId(sessionId);\n return Response.json(\n {\n error: 'Session action not supported by provider',\n reason: 'provider_capability_unsupported',\n provider,\n capability: 'archive',\n },\n { status: 403 },\n );\n}\n\nfunction createRestoreFailureResponse(\n status: number,\n message?: string,\n reason: 'restore_request_failed' | 'upstream_unreachable' = 'restore_request_failed'\n) {\n return Response.json(\n {\n error: 'Failed to restore session',\n reason,\n ...(message ? { message } : {}),\n },\n { status },\n );\n}\n\nasync function forwardRemoteRestore(hostId: string, sessionId: string): Promise<Response> {\n const nodeRecords = await listNodeRecords();\n const nodeRecord = nodeRecords.find((node) => node.nodeId === hostId);\n if (!nodeRecord || !nodeRecord.enabled) {\n return createSessionNotFoundResponse();\n }\n\n const abortController = new AbortController();\n let timedOut = false;\n const timeoutHandle = setTimeout(() => {\n timedOut = true;\n abortController.abort();\n }, REMOTE_NODE_ACTION_TIMEOUT_MS);\n\n try {\n const response = await fetch(`${nodeRecord.baseUrl}/api/node/sessions/${sessionId}/archive`, {\n method: 'DELETE',\n headers: createNodeRequestHeaders(nodeRecord.token),\n signal: abortController.signal,\n });\n\n if (response.ok) {\n return Response.json({ success: true });\n }\n\n const body = await response.json().catch(() => ({}));\n return Response.json(\n {\n error: 'Remote restore failed',\n reason: typeof body.reason === 'string' ? body.reason : `node_request_failed_${response.status}`,\n },\n { status: response.status },\n );\n } catch {\n return Response.json(\n {\n error: timedOut ? 'Remote node request timed out' : 'Remote node request failed',\n reason: timedOut ? 'upstream_timeout' : 'upstream_unreachable',\n },\n { status: timedOut ? 504 : 503 },\n );\n } finally {\n clearTimeout(timeoutHandle);\n }\n}\n\nexport async function POST(_: Request, { params }: { params: Promise<{ id: string }> }) {\n const { id } = await params;\n let actionTarget: ActionSessionReference;\n\n try {\n actionTarget = parseActionSessionReference(id);\n } catch {\n return createInvalidActionSessionIdResponse();\n }\n\n const provider = detectProviderFromRawId(actionTarget.sessionId);\n if (!getDefaultProviderContext(provider).capabilities.archive) {\n return createUnsupportedCapabilityResponse(actionTarget.sessionId);\n }\n\n if (provider === 'claude-code' && actionTarget.isRemote) {\n return createUnsupportedCapabilityResponse(actionTarget.sessionId);\n }\n\n if (provider === 'claude-code') {\n const localSessionId = resolveLocalActionSessionId(id);\n if (localSessionId) {\n markSessionForceUnarchived(localSessionId);\n clearSessionStickyStatusBlocked(localSessionId);\n }\n await clearClaudeSessionArchived(extractProviderRawId(actionTarget.sessionId));\n return Response.json({ success: true });\n }\n\n const sessionId = resolveLocalActionSessionId(id);\n if (!sessionId && actionTarget.isRemote) {\n return forwardRemoteRestore(actionTarget.hostId, actionTarget.sessionId);\n }\n\n if (!sessionId) {\n return createInvalidActionSessionIdResponse();\n }\n\n const { ports, timedOut } = discoverOpencodePortsWithMeta();\n if (!ports.length) {\n return Response.json({ error: timedOut ? 'OpenCode discovery timed out' : 'OpenCode server not found' }, { status: 503 });\n }\n\n let sawNotFound = false;\n let lastFailureStatus: number | null = null;\n let lastFailureMessage: string | undefined;\n let lastFailureReason: 'restore_request_failed' | 'upstream_unreachable' = 'restore_request_failed';\n\n for (const port of ports) {\n try {\n const response = await fetch(`http://localhost:${port}/session/${sessionId}`, {\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ time: { archived: null } }),\n });\n if (response.ok) {\n markSessionForceUnarchived(sessionId);\n clearSessionStickyStatusBlocked(sessionId);\n return Response.json({ success: true });\n }\n\n if (response.status === 404) {\n sawNotFound = true;\n continue;\n }\n\n const responseText = await response.text();\n console.error(`Failed to restore session on port ${port}:`, responseText);\n lastFailureStatus = response.status;\n lastFailureMessage = responseText || undefined;\n lastFailureReason = 'restore_request_failed';\n } catch (error) {\n console.error(`Failed to restore session on port ${port}:`, error);\n lastFailureStatus = 503;\n lastFailureMessage = error instanceof Error ? error.message : String(error);\n lastFailureReason = 'upstream_unreachable';\n }\n }\n\n if (lastFailureStatus !== null) {\n return createRestoreFailureResponse(lastFailureStatus, lastFailureMessage, lastFailureReason);\n }\n\n if (sawNotFound) {\n return createSessionNotFoundResponse();\n }\n\n return createRestoreFailureResponse(500);\n}\n","import { AppRouteRouteModule } from \"next/dist/esm/server/route-modules/app-route/module.compiled\";\nimport { RouteKind } from \"next/dist/esm/server/route-kind\";\nimport { patchFetch as _patchFetch } from \"next/dist/esm/server/lib/patch-fetch\";\nimport { addRequestMeta, getRequestMeta } from \"next/dist/esm/server/request-meta\";\nimport { getTracer, SpanKind } from \"next/dist/esm/server/lib/trace/tracer\";\nimport { setManifestsSingleton } from \"next/dist/esm/server/app-render/manifests-singleton\";\nimport { normalizeAppPath } from \"next/dist/esm/shared/lib/router/utils/app-paths\";\nimport { NodeNextRequest, NodeNextResponse } from \"next/dist/esm/server/base-http/node\";\nimport { NextRequestAdapter, signalFromNodeResponse } from \"next/dist/esm/server/web/spec-extension/adapters/next-request\";\nimport { BaseServerSpan } from \"next/dist/esm/server/lib/trace/constants\";\nimport { getRevalidateReason } from \"next/dist/esm/server/instrumentation/utils\";\nimport { sendResponse } from \"next/dist/esm/server/send-response\";\nimport { fromNodeOutgoingHttpHeaders, toNodeOutgoingHttpHeaders } from \"next/dist/esm/server/web/utils\";\nimport { getCacheControlHeader } from \"next/dist/esm/server/lib/cache-control\";\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from \"next/dist/esm/lib/constants\";\nimport { NoFallbackError } from \"next/dist/esm/shared/lib/no-fallback-error.external\";\nimport { CachedRouteKind } from \"next/dist/esm/server/response-cache\";\nimport * as userland from \"INNER_APP_ROUTE\";\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\nconst nextConfigOutput = \"standalone\"\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: \"/api/sessions/[id]/restore/route\",\n pathname: \"/api/sessions/[id]/restore\",\n filename: \"route\",\n bundlePath: \"\"\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: \"[project]/src/app/api/sessions/[id]/restore/route.ts\",\n nextConfigOutput,\n userland\n});\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule;\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\nexport { routeModule, workAsyncStorage, workUnitAsyncStorage, serverHooks, patchFetch, };\nexport async function handler(req, res, ctx) {\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());\n }\n let srcPage = \"/api/sessions/[id]/restore/route\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/';\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = process.env.__NEXT_MULTI_ZONE_DRAFT_MODE;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, params, nextConfig, parsedUrl, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname, clientReferenceManifest, serverActionsManifest } = prepareResult;\n const normalizedSrcPage = normalizeAppPath(srcPage);\n let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || prerenderManifest.routes[resolvedPathname]);\n const render404 = async ()=>{\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return null;\n };\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]);\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.experimental.adapterPath) {\n return await render404();\n }\n throw new NoFallbackError();\n }\n }\n }\n let cacheKey = null;\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname;\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n const supportsDynamicResponse = // If we're in development, we always support dynamic HTML\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr;\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse;\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest\n });\n }\n const method = req.method || 'GET';\n const tracer = getTracer();\n const activeSpan = tracer.getActiveScopeSpan();\n const context = {\n params,\n prerenderManifest,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts)\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache: getRequestMeta(req, 'incrementalCache'),\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (error, _request, errorContext, silenceLog)=>routeModule.onRequestError(req, error, errorContext, silenceLog, routerServerContext)\n },\n sharedContext: {\n buildId\n }\n };\n const nodeNextReq = new NodeNextRequest(req);\n const nodeNextRes = new NodeNextResponse(res);\n const nextReq = NextRequestAdapter.fromNodeNextRequest(nodeNextReq, signalFromNodeResponse(res));\n try {\n const invokeRouteModule = async (span)=>{\n return routeModule.handle(nextReq, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${srcPage}`);\n }\n });\n };\n const isMinimalMode = Boolean(process.env.MINIMAL_MODE || getRequestMeta(req, 'minimalMode'));\n const handleResponse = async (currentSpan)=>{\n var _cacheEntry_value;\n const responseGenerator = async ({ previousCacheEntry })=>{\n try {\n if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n const response = await invokeRouteModule(currentSpan);\n req.fetchMetrics = context.renderOpts.fetchMetrics;\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil;\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil);\n pendingWaitUntil = undefined;\n }\n }\n const cacheTags = context.renderOpts.collectedTags;\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob();\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers);\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type;\n }\n const revalidate = typeof context.renderOpts.collectedRevalidate === 'undefined' || context.renderOpts.collectedRevalidate >= INFINITE_CACHE ? false : context.renderOpts.collectedRevalidate;\n const expire = typeof context.renderOpts.collectedExpire === 'undefined' || context.renderOpts.collectedExpire >= INFINITE_CACHE ? undefined : context.renderOpts.collectedExpire;\n // Create the cache entry for the response.\n const cacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers\n },\n cacheControl: {\n revalidate,\n expire\n }\n };\n return cacheEntry;\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, context.renderOpts.pendingWaitUntil);\n return null;\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n throw err;\n }\n };\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode\n });\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null;\n }\n if ((cacheEntry == null ? void 0 : (_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== CachedRouteKind.APP_ROUTE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant: app-route received invalid cache entry ${cacheEntry == null ? void 0 : (_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E701\",\n enumerable: false,\n configurable: true\n });\n }\n if (!isMinimalMode) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers);\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER);\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheEntry.cacheControl && !res.getHeader('Cache-Control') && !headers.get('Cache-Control')) {\n headers.set('Cache-Control', getCacheControlHeader(cacheEntry.cacheControl));\n }\n await sendResponse(nodeNextReq, nodeNextRes, // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200\n }));\n return null;\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n // If this is during static generation, throw the error again.\n if (isIsr) throw err;\n // Otherwise, send a 500 response.\n await sendResponse(nodeNextReq, nodeNextRes, new Response(null, {\n status: 500\n }));\n return null;\n }\n}\n\n//# sourceMappingURL=app-route.js.map\n"],"names":[],"mappings":"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","ignoreList":[2]}
@@ -1,3 +1,3 @@
1
- module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},32319,(e,t,r)=>{t.exports=e.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,(e,t,r)=>{t.exports=e.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,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},35628,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),o=e.i(59756),a=e.i(61916),s=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),h=e.i(70101),x=e.i(26937),m=e.i(10372),v=e.i(93695);e.i(52474);var R=e.i(220),f=e.i(89171);let g=null;function E(e){g=e}function w(e,t,r){if(e)return console.error("[opencode-models] command failed",{command:"opencode models",message:e.message,code:e.code,signal:e.signal,stderr:r||void 0,stdoutPreview:t?t.slice(0,300):void 0}),{models:[],source:"error",error:e.message||"Failed to fetch models from CLI"};r&&console.warn("[opencode-models] stderr:",r);try{let e=t.trim().split("\n").filter(e=>e.includes("/"));if(0===e.length)return{models:[],source:"error",error:"No models found. Please check your OpenCode installation."};return{models:e,source:"opencode"}}catch{return{models:[],source:"error",error:"Failed to parse models output"}}}async function C(){return new Promise(t=>{let r=Number(process.env.OPENCODE_MODELS_TIMEOUT_MS),n=Number.isFinite(r)&&r>0?r:15e3,o=`${process.env.HOME}/.opencode/bin:${process.env.PATH}`;(g||(0,e.r(33405).exec))("opencode models",{timeout:n,env:{...process.env,PATH:o}},(e,r,a)=>{e&&console.error("[opencode-models] GET failed",{timeout:n,opencodePath:o,cwd:process.cwd(),home:process.env.HOME,path:process.env.PATH});let s=w(e,r,a),i="error"===s.source?503:200;return t(f.NextResponse.json(s,{status:i}))})})}e.s(["GET",()=>C,"handleExecResult",()=>w,"setExecFn",()=>E],28248);var y=e.i(28248);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/opencode-models/route",pathname:"/api/opencode-models",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/opencode-models/route.ts",nextConfigOutput:"standalone",userland:y}),{workAsyncStorage:T,workUnitAsyncStorage:b,serverHooks:P}=A;function N(){return(0,n.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:b})}async function O(e,t,n){A.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/opencode-models/route";f=f.replace(/\/index$/,"")||"/";let g=await A.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:E,params:w,nextConfig:C,parsedUrl:y,isDraftMode:T,prerenderManifest:b,routerServerContext:P,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,resolvedPathname:_,clientReferenceManifest:k,serverActionsManifest:H}=g,q=(0,i.normalizeAppPath)(f),S=!!(b.dynamicRoutes[q]||b.routes[_]),j=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,y,!1):t.end("This page could not be found"),null);if(S&&!T){let e=!!b.routes[_],t=b.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await j();throw new v.NoFallbackError}}let I=null;!S||A.isDev||T||(I="/index"===(I=_)?"/":I);let M=!0===A.isDev||!S,U=S&&!M;H&&k&&(0,s.setManifestsSingleton)({page:f,clientReferenceManifest:k,serverActionsManifest:H});let D=e.method||"GET",F=(0,a.getTracer)(),$=F.getActiveScopeSpan(),K={params:w,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,o)=>A.onRequestError(e,t,n,o,P)},sharedContext:{buildId:E}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(L,(0,d.signalFromNodeResponse)(t));try{let s=async e=>A.handle(G,K).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=`${D} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${D} ${f}`)}),i=!!(0,o.getRequestMeta)(e,"minimalMode"),l=async o=>{var a,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&N&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await s(o);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=K.renderOpts.collectedTags;if(!S)return await (0,p.sendResponse)(L,B,a,K.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!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:R.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 A.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:N})},!1,P),t}},c=await A.handleResponse({req:e,nextConfig:C,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:i});if(!S)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",N?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let v=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return i&&S||v.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||v.get("Cache-Control")||v.set("Cache-Control",(0,x.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(L,B,new Response(c.value.body,{headers:v,status:c.value.status||200})),null};$?await l($):await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${D} ${f}`,kind:a.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},l))}catch(t){if(t instanceof v.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:N})},!1,P),S)throw t;return await (0,p.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>N,"routeModule",()=>A,"serverHooks",()=>P,"workAsyncStorage",()=>T,"workUnitAsyncStorage",()=>b],35628)}];
1
+ module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},32319,(e,t,r)=>{t.exports=e.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,(e,t,r)=>{t.exports=e.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,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},35628,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),o=e.i(59756),a=e.i(61916),s=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),h=e.i(70101),m=e.i(26937),x=e.i(10372),v=e.i(93695);e.i(52474);var R=e.i(220),f=e.i(89171);let g=null;function E(e){g=e}function w(e,t,r){if(e)return console.error("[opencode-models] command failed",{command:"opencode models",message:e.message,code:e.code,signal:e.signal,stderr:r||void 0,stdoutPreview:t?t.slice(0,300):void 0}),{models:[],source:"error",error:e.message||"Failed to fetch models from CLI"};r&&console.warn("[opencode-models] stderr:",r);try{let e=t.split("\n").map(e=>e.trim()).filter(e=>e.includes("/"));if(0===e.length)return{models:[],source:"error",error:"No models found. Please check your OpenCode installation."};return{models:e,source:"opencode"}}catch{return{models:[],source:"error",error:"Failed to parse models output"}}}async function C(){return new Promise(t=>{let r=Number(process.env.OPENCODE_MODELS_TIMEOUT_MS),n=Number.isFinite(r)&&r>0?r:15e3,o=`${process.env.HOME}/.opencode/bin:${process.env.PATH}`;(g||(0,e.r(33405).exec))("opencode models",{timeout:n,env:{...process.env,PATH:o}},(e,r,a)=>{e&&console.error("[opencode-models] GET failed",{timeout:n,opencodePath:o,cwd:process.cwd(),home:process.env.HOME,path:process.env.PATH});let s=w(e,r,a),i="error"===s.source?503:200;return t(f.NextResponse.json(s,{status:i}))})})}e.s(["GET",()=>C,"handleExecResult",()=>w,"setExecFn",()=>E],28248);var y=e.i(28248);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/opencode-models/route",pathname:"/api/opencode-models",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/opencode-models/route.ts",nextConfigOutput:"standalone",userland:y}),{workAsyncStorage:T,workUnitAsyncStorage:b,serverHooks:P}=A;function N(){return(0,n.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:b})}async function O(e,t,n){A.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/opencode-models/route";f=f.replace(/\/index$/,"")||"/";let g=await A.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:E,params:w,nextConfig:C,parsedUrl:y,isDraftMode:T,prerenderManifest:b,routerServerContext:P,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,resolvedPathname:_,clientReferenceManifest:k,serverActionsManifest:H}=g,q=(0,i.normalizeAppPath)(f),S=!!(b.dynamicRoutes[q]||b.routes[_]),j=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,y,!1):t.end("This page could not be found"),null);if(S&&!T){let e=!!b.routes[_],t=b.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await j();throw new v.NoFallbackError}}let I=null;!S||A.isDev||T||(I="/index"===(I=_)?"/":I);let M=!0===A.isDev||!S,U=S&&!M;H&&k&&(0,s.setManifestsSingleton)({page:f,clientReferenceManifest:k,serverActionsManifest:H});let D=e.method||"GET",F=(0,a.getTracer)(),$=F.getActiveScopeSpan(),K={params:w,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,o)=>A.onRequestError(e,t,n,o,P)},sharedContext:{buildId:E}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(L,(0,d.signalFromNodeResponse)(t));try{let s=async e=>A.handle(G,K).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=`${D} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${D} ${f}`)}),i=!!(0,o.getRequestMeta)(e,"minimalMode"),l=async o=>{var a,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&N&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await s(o);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=K.renderOpts.collectedTags;if(!S)return await (0,p.sendResponse)(L,B,a,K.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[x.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:R.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 A.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:N})},!1,P),t}},c=await A.handleResponse({req:e,nextConfig:C,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:i});if(!S)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",N?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let v=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return i&&S||v.delete(x.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||v.get("Cache-Control")||v.set("Cache-Control",(0,m.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(L,B,new Response(c.value.body,{headers:v,status:c.value.status||200})),null};$?await l($):await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${D} ${f}`,kind:a.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},l))}catch(t){if(t instanceof v.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:N})},!1,P),S)throw t;return await (0,p.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>N,"routeModule",()=>A,"serverHooks",()=>P,"workAsyncStorage",()=>T,"workUnitAsyncStorage",()=>b],35628)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__59160266._.js.map