sparkecoder 0.1.16 → 0.1.18

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 (216) hide show
  1. package/README.md +1 -1
  2. package/dist/cli.js +15 -6
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.js +9 -2
  5. package/dist/index.js.map +1 -1
  6. package/dist/server/index.js +9 -2
  7. package/dist/server/index.js.map +1 -1
  8. package/package.json +1 -1
  9. package/web/.next/BUILD_ID +1 -1
  10. package/web/.next/standalone/web/.next/BUILD_ID +1 -1
  11. package/web/.next/standalone/web/.next/build-manifest.json +2 -2
  12. package/web/.next/standalone/web/.next/prerender-manifest.json +3 -3
  13. package/web/.next/standalone/web/.next/server/app/(main)/page.js +3 -3
  14. package/web/.next/standalone/web/.next/server/app/(main)/page.js.nft.json +1 -1
  15. package/web/.next/standalone/web/.next/server/app/(main)/page_client-reference-manifest.js +1 -1
  16. package/web/.next/standalone/web/.next/server/app/(main)/session/[id]/page.js +3 -3
  17. package/web/.next/standalone/web/.next/server/app/(main)/session/[id]/page.js.nft.json +1 -1
  18. package/web/.next/standalone/web/.next/server/app/(main)/session/[id]/page_client-reference-manifest.js +1 -1
  19. package/web/.next/standalone/web/.next/server/app/_global-error/page.js +2 -2
  20. package/web/.next/standalone/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  21. package/web/.next/standalone/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  22. package/web/.next/standalone/web/.next/server/app/_global-error.html +2 -2
  23. package/web/.next/standalone/web/.next/server/app/_global-error.rsc +1 -1
  24. package/web/.next/standalone/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  25. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  26. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  27. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  28. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  29. package/web/.next/standalone/web/.next/server/app/_not-found/page.js +3 -3
  30. package/web/.next/standalone/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  31. package/web/.next/standalone/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  32. package/web/.next/standalone/web/.next/server/app/_not-found.html +1 -1
  33. package/web/.next/standalone/web/.next/server/app/_not-found.rsc +13 -12
  34. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_full.segment.rsc +13 -12
  35. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  36. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_index.segment.rsc +4 -3
  37. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  38. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  39. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  40. package/web/.next/standalone/web/.next/server/app/api/config/route.js +1 -1
  41. package/web/.next/standalone/web/.next/server/app/api/config/route.js.nft.json +1 -1
  42. package/web/.next/standalone/web/.next/server/app/api/health/route.js +1 -1
  43. package/web/.next/standalone/web/.next/server/app/api/health/route.js.nft.json +1 -1
  44. package/web/.next/standalone/web/.next/server/app/index.html +1 -1
  45. package/web/.next/standalone/web/.next/server/app/index.rsc +20 -19
  46. package/web/.next/standalone/web/.next/server/app/index.segments/!KG1haW4p/__PAGE__.segment.rsc +2 -2
  47. package/web/.next/standalone/web/.next/server/app/index.segments/!KG1haW4p.segment.rsc +2 -2
  48. package/web/.next/standalone/web/.next/server/app/index.segments/_full.segment.rsc +20 -19
  49. package/web/.next/standalone/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
  50. package/web/.next/standalone/web/.next/server/app/index.segments/_index.segment.rsc +4 -3
  51. package/web/.next/standalone/web/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  52. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__36edac7c._.js +3 -0
  53. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__74ebc442._.js +3 -0
  54. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_1b669458._.js → 2374f_1d78db71._.js} +1 -1
  55. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_10a13bff._.js → 2374f_30f9df13._.js} +1 -1
  56. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_42ae2ff5._.js → 2374f_378282b1._.js} +1 -1
  57. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_21324e82._.js → 2374f_5de336d2._.js} +1 -1
  58. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_ba57e34a._.js → 2374f_8825dcc9._.js} +1 -1
  59. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_47e888fe._.js → 2374f_9bf3c7f3._.js} +2 -2
  60. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_63823b79._.js → 2374f_bbc99511._.js} +1 -1
  61. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_9c15fcde._.js → 2374f_d94c2b70._.js} +1 -1
  62. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__0f6b5fa7._.js +3 -0
  63. package/web/.next/standalone/web/.next/server/chunks/ssr/{[root-of-the-server]__e1f2996b._.js → [root-of-the-server]__513c6b45._.js} +2 -2
  64. package/web/.next/standalone/web/.next/server/chunks/ssr/{[root-of-the-server]__da40fb08._.js → [root-of-the-server]__7f04455b._.js} +2 -2
  65. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__be5e2967._.js +3 -0
  66. package/web/.next/standalone/web/.next/server/chunks/ssr/{[root-of-the-server]__10aab2ca._.js → [root-of-the-server]__c3a1e22c._.js} +2 -2
  67. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__d2ce4b79._.js +3 -0
  68. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__de58a952._.js +3 -0
  69. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__f18f92f4._.js +10 -0
  70. package/web/.next/standalone/web/.next/server/chunks/ssr/{web_d3c9d897._.js → web_19b6934c._.js} +2 -2
  71. package/web/.next/standalone/web/.next/server/chunks/ssr/web_96bca05b._.js +1 -1
  72. package/web/.next/standalone/web/.next/server/pages/404.html +1 -1
  73. package/web/.next/standalone/web/.next/server/pages/500.html +2 -2
  74. package/web/.next/standalone/web/.next/server/server-reference-manifest.js +1 -1
  75. package/web/.next/standalone/web/.next/server/server-reference-manifest.json +1 -1
  76. package/web/.next/standalone/web/.next/static/chunks/25a97bfee12ea1f6.js +1 -0
  77. package/web/.next/standalone/web/.next/static/chunks/2f9f08f6c6276b0f.js +1 -0
  78. package/web/.next/{static/chunks/c7e9604ccdb5cb09.js → standalone/web/.next/static/chunks/5ec82ce8f3aabaf0.js} +3 -3
  79. package/web/.next/standalone/web/.next/static/static/chunks/25a97bfee12ea1f6.js +1 -0
  80. package/web/.next/standalone/web/.next/static/static/chunks/2f9f08f6c6276b0f.js +1 -0
  81. package/web/.next/standalone/web/.next/static/{chunks/c7e9604ccdb5cb09.js → static/chunks/5ec82ce8f3aabaf0.js} +3 -3
  82. package/web/.next/standalone/web/README.md +63 -0
  83. package/web/.next/standalone/web/components.json +22 -0
  84. package/web/.next/standalone/web/eslint.config.mjs +18 -0
  85. package/web/.next/standalone/web/next.config.ts +9 -0
  86. package/web/.next/standalone/web/package-lock.json +15061 -0
  87. package/web/.next/standalone/web/postcss.config.mjs +7 -0
  88. package/web/.next/standalone/web/runtime-config.json +3 -0
  89. package/web/.next/standalone/web/src/app/(main)/layout.tsx +22 -0
  90. package/web/.next/standalone/web/src/app/(main)/page.tsx +230 -0
  91. package/web/.next/standalone/web/src/app/(main)/session/[id]/page.tsx +64 -0
  92. package/web/.next/standalone/web/src/app/api/config/route.ts +106 -0
  93. package/web/.next/standalone/web/src/app/api/health/route.ts +63 -0
  94. package/web/.next/standalone/web/src/app/apple-icon.png +0 -0
  95. package/web/.next/standalone/web/src/app/favicon.ico +0 -0
  96. package/web/.next/standalone/web/src/app/globals.css +311 -0
  97. package/web/.next/standalone/web/src/app/icon.png +0 -0
  98. package/web/.next/standalone/web/src/app/layout.tsx +100 -0
  99. package/web/.next/standalone/web/src/app/opengraph-image.png +0 -0
  100. package/web/.next/standalone/web/src/app/twitter-image.png +0 -0
  101. package/web/.next/standalone/web/src/components/ai-elements/agent.tsx +141 -0
  102. package/web/.next/standalone/web/src/components/ai-elements/artifact.tsx +147 -0
  103. package/web/.next/standalone/web/src/components/ai-elements/attachments.tsx +421 -0
  104. package/web/.next/standalone/web/src/components/ai-elements/audio-player.tsx +231 -0
  105. package/web/.next/standalone/web/src/components/ai-elements/bash-tool.tsx +299 -0
  106. package/web/.next/standalone/web/src/components/ai-elements/canvas.tsx +22 -0
  107. package/web/.next/standalone/web/src/components/ai-elements/chain-of-thought.tsx +231 -0
  108. package/web/.next/standalone/web/src/components/ai-elements/checkpoint.tsx +71 -0
  109. package/web/.next/standalone/web/src/components/ai-elements/code-block.tsx +529 -0
  110. package/web/.next/standalone/web/src/components/ai-elements/commit.tsx +448 -0
  111. package/web/.next/standalone/web/src/components/ai-elements/confirmation.tsx +176 -0
  112. package/web/.next/standalone/web/src/components/ai-elements/connection.tsx +28 -0
  113. package/web/.next/standalone/web/src/components/ai-elements/context.tsx +408 -0
  114. package/web/.next/standalone/web/src/components/ai-elements/controls.tsx +18 -0
  115. package/web/.next/standalone/web/src/components/ai-elements/conversation.tsx +104 -0
  116. package/web/.next/standalone/web/src/components/ai-elements/edge.tsx +140 -0
  117. package/web/.next/standalone/web/src/components/ai-elements/environment-variables.tsx +295 -0
  118. package/web/.next/standalone/web/src/components/ai-elements/file-tree.tsx +258 -0
  119. package/web/.next/standalone/web/src/components/ai-elements/image.tsx +24 -0
  120. package/web/.next/standalone/web/src/components/ai-elements/inline-citation.tsx +287 -0
  121. package/web/.next/standalone/web/src/components/ai-elements/linter-tool.tsx +330 -0
  122. package/web/.next/standalone/web/src/components/ai-elements/load-skill-tool.tsx +215 -0
  123. package/web/.next/standalone/web/src/components/ai-elements/loader.tsx +96 -0
  124. package/web/.next/standalone/web/src/components/ai-elements/message.tsx +421 -0
  125. package/web/.next/standalone/web/src/components/ai-elements/mic-selector.tsx +370 -0
  126. package/web/.next/standalone/web/src/components/ai-elements/model-selector.tsx +211 -0
  127. package/web/.next/standalone/web/src/components/ai-elements/node.tsx +71 -0
  128. package/web/.next/standalone/web/src/components/ai-elements/open-in-chat.tsx +365 -0
  129. package/web/.next/standalone/web/src/components/ai-elements/package-info.tsx +233 -0
  130. package/web/.next/standalone/web/src/components/ai-elements/panel.tsx +15 -0
  131. package/web/.next/standalone/web/src/components/ai-elements/persona.tsx +270 -0
  132. package/web/.next/standalone/web/src/components/ai-elements/plan.tsx +142 -0
  133. package/web/.next/standalone/web/src/components/ai-elements/prompt-input.tsx +1263 -0
  134. package/web/.next/standalone/web/src/components/ai-elements/queue.tsx +274 -0
  135. package/web/.next/standalone/web/src/components/ai-elements/read-file-tool.tsx +251 -0
  136. package/web/.next/standalone/web/src/components/ai-elements/reasoning.tsx +198 -0
  137. package/web/.next/standalone/web/src/components/ai-elements/sandbox.tsx +131 -0
  138. package/web/.next/standalone/web/src/components/ai-elements/schema-display.tsx +458 -0
  139. package/web/.next/standalone/web/src/components/ai-elements/shimmer.tsx +64 -0
  140. package/web/.next/standalone/web/src/components/ai-elements/snippet.tsx +139 -0
  141. package/web/.next/standalone/web/src/components/ai-elements/sources.tsx +77 -0
  142. package/web/.next/standalone/web/src/components/ai-elements/speech-input.tsx +300 -0
  143. package/web/.next/standalone/web/src/components/ai-elements/stack-trace.tsx +482 -0
  144. package/web/.next/standalone/web/src/components/ai-elements/suggestion.tsx +60 -0
  145. package/web/.next/standalone/web/src/components/ai-elements/task.tsx +87 -0
  146. package/web/.next/standalone/web/src/components/ai-elements/terminal.tsx +261 -0
  147. package/web/.next/standalone/web/src/components/ai-elements/test-results.tsx +485 -0
  148. package/web/.next/standalone/web/src/components/ai-elements/todo-panel.tsx +178 -0
  149. package/web/.next/standalone/web/src/components/ai-elements/todo-tool.tsx +246 -0
  150. package/web/.next/standalone/web/src/components/ai-elements/tool.tsx +174 -0
  151. package/web/.next/standalone/web/src/components/ai-elements/toolbar.tsx +16 -0
  152. package/web/.next/standalone/web/src/components/ai-elements/transcription.tsx +124 -0
  153. package/web/.next/standalone/web/src/components/ai-elements/voice-selector.tsx +479 -0
  154. package/web/.next/standalone/web/src/components/ai-elements/web-preview.tsx +263 -0
  155. package/web/.next/standalone/web/src/components/ai-elements/write-file-tool.tsx +368 -0
  156. package/web/.next/standalone/web/src/components/api-init.tsx +21 -0
  157. package/web/.next/standalone/web/src/components/chat-interface.tsx +2074 -0
  158. package/web/.next/standalone/web/src/components/sessions-sidebar.tsx +875 -0
  159. package/web/.next/standalone/web/src/components/ui/accordion.tsx +66 -0
  160. package/web/.next/standalone/web/src/components/ui/alert.tsx +66 -0
  161. package/web/.next/standalone/web/src/components/ui/avatar.tsx +109 -0
  162. package/web/.next/standalone/web/src/components/ui/badge.tsx +48 -0
  163. package/web/.next/standalone/web/src/components/ui/button-group.tsx +83 -0
  164. package/web/.next/standalone/web/src/components/ui/button.tsx +64 -0
  165. package/web/.next/standalone/web/src/components/ui/card.tsx +92 -0
  166. package/web/.next/standalone/web/src/components/ui/carousel.tsx +241 -0
  167. package/web/.next/standalone/web/src/components/ui/collapsible.tsx +33 -0
  168. package/web/.next/standalone/web/src/components/ui/command.tsx +184 -0
  169. package/web/.next/standalone/web/src/components/ui/dialog.tsx +158 -0
  170. package/web/.next/standalone/web/src/components/ui/dropdown-menu.tsx +257 -0
  171. package/web/.next/standalone/web/src/components/ui/hover-card.tsx +44 -0
  172. package/web/.next/standalone/web/src/components/ui/input-group.tsx +170 -0
  173. package/web/.next/standalone/web/src/components/ui/input.tsx +22 -0
  174. package/web/.next/standalone/web/src/components/ui/label.tsx +24 -0
  175. package/web/.next/standalone/web/src/components/ui/popover.tsx +89 -0
  176. package/web/.next/standalone/web/src/components/ui/progress.tsx +31 -0
  177. package/web/.next/standalone/web/src/components/ui/scroll-area.tsx +58 -0
  178. package/web/.next/standalone/web/src/components/ui/select.tsx +190 -0
  179. package/web/.next/standalone/web/src/components/ui/separator.tsx +28 -0
  180. package/web/.next/standalone/web/src/components/ui/sheet.tsx +143 -0
  181. package/web/.next/standalone/web/src/components/ui/sidebar.tsx +726 -0
  182. package/web/.next/standalone/web/src/components/ui/skeleton.tsx +13 -0
  183. package/web/.next/standalone/web/src/components/ui/switch.tsx +35 -0
  184. package/web/.next/standalone/web/src/components/ui/tabs.tsx +91 -0
  185. package/web/.next/standalone/web/src/components/ui/textarea.tsx +18 -0
  186. package/web/.next/standalone/web/src/components/ui/tooltip.tsx +61 -0
  187. package/web/.next/standalone/web/src/hooks/use-mobile.ts +19 -0
  188. package/web/.next/standalone/web/src/hooks/use-sessions.ts +28 -0
  189. package/web/.next/standalone/web/src/lib/api.ts +568 -0
  190. package/web/.next/standalone/web/src/lib/config.ts +178 -0
  191. package/web/.next/standalone/web/src/lib/utils.ts +6 -0
  192. package/web/.next/standalone/web/src/test/api.test.ts +125 -0
  193. package/web/.next/standalone/web/src/test/setup.ts +1 -0
  194. package/web/.next/standalone/web/tsconfig.json +43 -0
  195. package/web/.next/standalone/web/vitest.config.ts +17 -0
  196. package/web/.next/static/chunks/25a97bfee12ea1f6.js +1 -0
  197. package/web/.next/static/chunks/2f9f08f6c6276b0f.js +1 -0
  198. package/web/.next/{standalone/web/.next/static/static/chunks/c7e9604ccdb5cb09.js → static/chunks/5ec82ce8f3aabaf0.js} +3 -3
  199. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__7ba4776a._.js +0 -3
  200. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__d907af4e._.js +0 -3
  201. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__3a7ef2b7._.js +0 -3
  202. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__5369f47d._.js +0 -3
  203. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__c1f0d54f._.js +0 -3
  204. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__fd3d4d25._.js +0 -10
  205. package/web/.next/standalone/web/.next/static/chunks/85dcb2949e032468.js +0 -1
  206. package/web/.next/standalone/web/.next/static/static/chunks/85dcb2949e032468.js +0 -1
  207. package/web/.next/static/chunks/85dcb2949e032468.js +0 -1
  208. /package/web/.next/standalone/web/.next/static/{3Y3VQCOuXe9_MLEdym2IJ → omR5ZCfnSKddq7WtwIK6Y}/_buildManifest.js +0 -0
  209. /package/web/.next/standalone/web/.next/static/{3Y3VQCOuXe9_MLEdym2IJ → omR5ZCfnSKddq7WtwIK6Y}/_clientMiddlewareManifest.json +0 -0
  210. /package/web/.next/standalone/web/.next/static/{3Y3VQCOuXe9_MLEdym2IJ → omR5ZCfnSKddq7WtwIK6Y}/_ssgManifest.js +0 -0
  211. /package/web/.next/standalone/web/.next/static/static/{3Y3VQCOuXe9_MLEdym2IJ → omR5ZCfnSKddq7WtwIK6Y}/_buildManifest.js +0 -0
  212. /package/web/.next/standalone/web/.next/static/static/{3Y3VQCOuXe9_MLEdym2IJ → omR5ZCfnSKddq7WtwIK6Y}/_clientMiddlewareManifest.json +0 -0
  213. /package/web/.next/standalone/web/.next/static/static/{3Y3VQCOuXe9_MLEdym2IJ → omR5ZCfnSKddq7WtwIK6Y}/_ssgManifest.js +0 -0
  214. /package/web/.next/static/{3Y3VQCOuXe9_MLEdym2IJ → omR5ZCfnSKddq7WtwIK6Y}/_buildManifest.js +0 -0
  215. /package/web/.next/static/{3Y3VQCOuXe9_MLEdym2IJ → omR5ZCfnSKddq7WtwIK6Y}/_clientMiddlewareManifest.json +0 -0
  216. /package/web/.next/static/{3Y3VQCOuXe9_MLEdym2IJ → omR5ZCfnSKddq7WtwIK6Y}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,325203,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});var a={assign:function(){return o},searchParamsToUrlQuery:function(){return n},urlQueryToSearchParams:function(){return l}};for(var r in a)Object.defineProperty(s,r,{enumerable:!0,get:a[r]});function n(e){let t={};for(let[s,a]of e.entries()){let e=t[s];void 0===e?t[s]=a:Array.isArray(e)?e.push(a):t[s]=[e,a]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function l(e){let t=new URLSearchParams;for(let[s,a]of Object.entries(e))if(Array.isArray(a))for(let e of a)t.append(s,i(e));else t.set(s,i(a));return t}function o(e,...t){for(let s of t){for(let t of s.keys())e.delete(t);for(let[t,a]of s.entries())e.append(t,a)}return e}},971746,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});var a={formatUrl:function(){return l},formatWithValidation:function(){return d},urlObjectKeys:function(){return o}};for(var r in a)Object.defineProperty(s,r,{enumerable:!0,get:a[r]});let n=e.r(279510)._(e.r(325203)),i=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:s}=e,a=e.protocol||"",r=e.pathname||"",l=e.hash||"",o=e.query||"",d=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?d=t+e.host:s&&(d=t+(~s.indexOf(":")?`[${s}]`:s),e.port&&(d+=":"+e.port)),o&&"object"==typeof o&&(o=String(n.urlQueryToSearchParams(o)));let c=e.search||o&&`?${o}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||i.test(a))&&!1!==d?(d="//"+(d||""),r&&"/"!==r[0]&&(r="/"+r)):d||(d=""),l&&"#"!==l[0]&&(l="#"+l),c&&"?"!==c[0]&&(c="?"+c),r=r.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${a}${d}${r}${c}${l}`}let o=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return l(e)}},309008,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});var a={DecodeError:function(){return g},MiddlewareNotFoundError:function(){return y},MissingStaticPage:function(){return v},NormalizeError:function(){return j},PageNotFoundError:function(){return b},SP:function(){return x},ST:function(){return f},WEB_VITALS:function(){return n},execOnce:function(){return i},getDisplayName:function(){return u},getLocationOrigin:function(){return d},getURL:function(){return c},isAbsoluteUrl:function(){return o},isResSent:function(){return p},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return m},stringifyError:function(){return N}};for(var r in a)Object.defineProperty(s,r,{enumerable:!0,get:a[r]});let n=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,s=!1;return(...a)=>(s||(s=!0,t=e(...a)),t)}let l=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,o=e=>l.test(e);function d(){let{protocol:e,hostname:t,port:s}=window.location;return`${e}//${t}${s?":"+s:""}`}function c(){let{href:e}=window.location,t=d();return e.substring(t.length)}function u(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function p(e){return e.finished||e.headersSent}function m(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let s=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let a=await e.getInitialProps(t);if(s&&p(s))return a;if(!a)throw Object.defineProperty(Error(`"${u(e)}.getInitialProps()" should resolve to an object. But found "${a}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return a}let x="u">typeof performance,f=x&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class g extends Error{}class j extends Error{}class b extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class v extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class y extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function N(e){return JSON.stringify({message:e.message,stack:e.stack})}},868988,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"isLocalURL",{enumerable:!0,get:function(){return n}});let a=e.r(309008),r=e.r(698018);function n(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),s=new URL(e,t);return s.origin===t&&(0,r.hasBasePath)(s.pathname)}catch(e){return!1}}},312491,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"errorOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},504561,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});var a={default:function(){return g},useLinkStatus:function(){return b}};for(var r in a)Object.defineProperty(s,r,{enumerable:!0,get:a[r]});let n=e.r(279510),i=e.r(414294),l=n._(e.r(430878)),o=e.r(971746),d=e.r(369168),c=e.r(215232),u=e.r(309008),p=e.r(869343);e.r(819609);let m=e.r(93505),h=e.r(868988),x=e.r(291544);function f(e){return"string"==typeof e?e:(0,o.formatUrl)(e)}function g(t){var s;let a,r,n,[o,g]=(0,l.useOptimistic)(m.IDLE_LINK_STATUS),b=(0,l.useRef)(null),{href:v,as:y,children:N,prefetch:w=null,passHref:k,replace:C,shallow:T,scroll:S,onClick:z,onMouseEnter:P,onTouchStart:E,legacyBehavior:M=!1,onNavigate:_,ref:O,unstable_dynamicOnHover:A,...L}=t;a=N,M&&("string"==typeof a||"number"==typeof a)&&(a=(0,i.jsx)("a",{children:a}));let D=l.default.useContext(d.AppRouterContext),I=!1!==w,$=!1!==w?null===(s=w)||"auto"===s?x.FetchStrategy.PPR:x.FetchStrategy.Full:x.FetchStrategy.PPR,{href:R,as:B}=l.default.useMemo(()=>{let e=f(v);return{href:e,as:y?f(y):e}},[v,y]);if(M){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});r=l.default.Children.only(a)}let U=M?r&&"object"==typeof r&&r.ref:O,F=l.default.useCallback(e=>(null!==D&&(b.current=(0,m.mountLinkInstance)(e,R,D,$,I,g)),()=>{b.current&&((0,m.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,m.unmountPrefetchableInstance)(e)}),[I,R,D,$,g]),K={ref:(0,c.useMergedRef)(F,U),onClick(t){M||"function"!=typeof z||z(t),M&&r.props&&"function"==typeof r.props.onClick&&r.props.onClick(t),!D||t.defaultPrevented||function(t,s,a,r,n,i,o){if("u">typeof window){let d,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((d=t.currentTarget.getAttribute("target"))&&"_self"!==d||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(s)){n&&(t.preventDefault(),location.replace(s));return}if(t.preventDefault(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:u}=e.r(389867);l.default.startTransition(()=>{u(a||s,n?"replace":"push",i??!0,r.current)})}}(t,R,B,b,C,S,_)},onMouseEnter(e){M||"function"!=typeof P||P(e),M&&r.props&&"function"==typeof r.props.onMouseEnter&&r.props.onMouseEnter(e),D&&I&&(0,m.onNavigationIntent)(e.currentTarget,!0===A)},onTouchStart:function(e){M||"function"!=typeof E||E(e),M&&r.props&&"function"==typeof r.props.onTouchStart&&r.props.onTouchStart(e),D&&I&&(0,m.onNavigationIntent)(e.currentTarget,!0===A)}};return(0,u.isAbsoluteUrl)(B)?K.href=B:M&&!k&&("a"!==r.type||"href"in r.props)||(K.href=(0,p.addBasePath)(B)),n=M?l.default.cloneElement(r,K):(0,i.jsx)("a",{...L,...K,children:a}),(0,i.jsx)(j.Provider,{value:o,children:n})}e.r(312491);let j=(0,l.createContext)(m.IDLE_LINK_STATUS),b=()=>(0,l.useContext)(j);("function"==typeof s.default||"object"==typeof s.default&&null!==s.default)&&void 0===s.default.__esModule&&(Object.defineProperty(s.default,"__esModule",{value:!0}),Object.assign(s.default,s),t.exports=s.default)},138134,e=>{"use strict";var t=e.i(414294),s=e.i(430878),a=e.i(392295),r=e.i(770008),n=e.i(292511);let i=(0,n.default)("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);var l=e.i(555552),o=e.i(666904),d=e.i(77982);e.i(534432);var c=e.i(7631),u=e.i(349416);function p({...e}){return(0,t.jsx)(c.Root,{"data-slot":"sheet",...e})}function m({...e}){return(0,t.jsx)(c.Portal,{"data-slot":"sheet-portal",...e})}function h({className:e,...s}){return(0,t.jsx)(c.Overlay,{"data-slot":"sheet-overlay",className:(0,l.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...s})}function x({className:e,children:s,side:a="right",showCloseButton:r=!0,...n}){return(0,t.jsxs)(m,{children:[(0,t.jsx)(h,{}),(0,t.jsxs)(c.Content,{"data-slot":"sheet-content",className:(0,l.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500","right"===a&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm","left"===a&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm","top"===a&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b","bottom"===a&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",e),...n,children:[s,r&&(0,t.jsxs)(c.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,t.jsx)(u.XIcon,{className:"size-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function f({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"sheet-header",className:(0,l.cn)("flex flex-col gap-1.5 p-4",e),...s})}function g({className:e,...s}){return(0,t.jsx)(c.Title,{"data-slot":"sheet-title",className:(0,l.cn)("text-foreground font-semibold",e),...s})}function j({className:e,...s}){return(0,t.jsx)(c.Description,{"data-slot":"sheet-description",className:(0,l.cn)("text-muted-foreground text-sm",e),...s})}var b=e.i(87614);let v=s.createContext(null);function y(){let e=s.useContext(v);if(!e)throw Error("useSidebar must be used within a SidebarProvider.");return e}function N({defaultOpen:e=!0,open:a,onOpenChange:r,className:n,style:i,children:o,...d}){let c=function(){let[e,t]=s.useState(void 0);return s.useEffect(()=>{let e=window.matchMedia("(max-width: 767px)"),s=()=>{t(window.innerWidth<768)};return e.addEventListener("change",s),t(window.innerWidth<768),()=>e.removeEventListener("change",s)},[]),!!e}(),[u,p]=s.useState(!1),[m,h]=s.useState(e),x=a??m,f=s.useCallback(e=>{let t="function"==typeof e?e(x):e;r?r(t):h(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[r,x]),g=s.useCallback(()=>c?p(e=>!e):f(e=>!e),[c,f,p]);s.useEffect(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),g())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[g]);let j=x?"expanded":"collapsed",y=s.useMemo(()=>({state:j,open:x,setOpen:f,isMobile:c,openMobile:u,setOpenMobile:p,toggleSidebar:g}),[j,x,f,c,u,p,g]);return(0,t.jsx)(v.Provider,{value:y,children:(0,t.jsx)(b.TooltipProvider,{delayDuration:0,children:(0,t.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...i},className:(0,l.cn)("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",n),...d,children:o})})})}function w({side:e="left",variant:s="sidebar",collapsible:a="offcanvas",className:r,children:n,...i}){let{isMobile:o,state:d,openMobile:c,setOpenMobile:u}=y();return"none"===a?(0,t.jsx)("div",{"data-slot":"sidebar",className:(0,l.cn)("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",r),...i,children:n}):o?(0,t.jsx)(p,{open:c,onOpenChange:u,...i,children:(0,t.jsxs)(x,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:e,children:[(0,t.jsxs)(f,{className:"sr-only",children:[(0,t.jsx)(g,{children:"Sidebar"}),(0,t.jsx)(j,{children:"Displays the mobile sidebar."})]}),(0,t.jsx)("div",{className:"flex h-full w-full flex-col",children:n})]})}):(0,t.jsxs)("div",{className:"group peer text-sidebar-foreground hidden md:block","data-state":d,"data-collapsible":"collapsed"===d?a:"","data-variant":s,"data-side":e,"data-slot":"sidebar",children:[(0,t.jsx)("div",{"data-slot":"sidebar-gap",className:(0,l.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===s||"inset"===s?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,t.jsx)("div",{"data-slot":"sidebar-container",className:(0,l.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","left"===e?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]","floating"===s||"inset"===s?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",r),...i,children:(0,t.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",children:n})})]})}function k({className:e,...s}){return(0,t.jsx)("main",{"data-slot":"sidebar-inset",className:(0,l.cn)("bg-background relative flex w-full flex-1 flex-col","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",e),...s})}function C({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,l.cn)("flex flex-col gap-2 p-2",e),...s})}function T({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,l.cn)("flex flex-col gap-2 p-2",e),...s})}function S({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,l.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",e),...s})}function z({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,l.cn)("relative flex w-full min-w-0 flex-col p-2",e),...s})}function P({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:(0,l.cn)("w-full text-sm",e),...s})}function E({className:e,...s}){return(0,t.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,l.cn)("flex w-full min-w-0 flex-col gap-1",e),...s})}function M({className:e,...s}){return(0,t.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,l.cn)("group/menu-item relative",e),...s})}let _=(0,r.cva)("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function O({asChild:e=!1,isActive:s=!1,variant:r="default",size:n="default",tooltip:i,className:o,...d}){let c=e?a.Slot:"button",{isMobile:u,state:p}=y(),m=(0,t.jsx)(c,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":n,"data-active":s,className:(0,l.cn)(_({variant:r,size:n}),o),...d});return i?("string"==typeof i&&(i={children:i}),(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{asChild:!0,children:m}),(0,t.jsx)(b.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==p||u,...i})]})):m}var A=e.i(353913),L=e.i(504561),D=e.i(292623),I=e.i(996720);let $=(0,n.default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]),R=(0,n.default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);var B=e.i(461957),U=e.i(816187);let F=(0,n.default)("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]);var K=e.i(846193),V=e.i(719583),q=e.i(493740),q=q;let W=(0,n.default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),H=(0,n.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var X=e.i(836191),Q=e.i(634066),J=e.i(865259),Z=e.i(553880),G=e.i(524741),Y=e.i(739963),ee=e.i(300739);function et(){let e=(0,A.useRouter)(),a=(0,A.usePathname)(),{state:r,toggleSidebar:n}=y(),{sessions:c,isLoading:u}=(0,ee.useSessions)(),[p,m]=(0,s.useState)(!1),[h,x]=(0,s.useState)(!1),[f,g]=(0,s.useState)(!1),[j,v]=(0,s.useState)(null),[N,k]=(0,s.useState)(null),_=(0,s.useRef)(null),[et,es]=(0,s.useState)(""),[ea,er]=(0,s.useState)(""),[en,ei]=(0,s.useState)({}),[el,eo]=(0,s.useState)([]),[ed,ec]=(0,s.useState)(null),[eu,ep]=(0,s.useState)(""),[em,eh]=(0,s.useState)(!1),[ex,ef]=(0,s.useState)(!1),eg=a.startsWith("/session/")?a.split("/session/")[1]:null,ej=c.some(e=>e.isStreaming),eb=async()=>{let e=await (0,Y.getConfig)();v(e),er(e.defaultModel),ei(e.defaultToolApprovals)},ev=async()=>{try{let e=await (0,G.getApiKeys)();eo(e.providers)}catch(e){console.error("Failed to load API keys:",e)}};(0,s.useEffect)(()=>{eb(),ev()},[]),(0,s.useEffect)(()=>{f&&ev()},[f]);let ey=async e=>{if(eu.trim()){ef(!0);try{await (0,G.setApiKey)(e,eu),await ev(),ec(null),ep(""),eh(!1)}catch(e){console.error("Failed to save API key:",e)}finally{ef(!1)}}},eN=()=>{ec(null),ep(""),eh(!1)};(0,s.useEffect)(()=>{_.current&&(ej?_.current.play().catch(()=>{}):(_.current.pause(),_.current.currentTime=0))},[ej]);let ew=async()=>{if(!p){m(!0);try{let t=await (0,G.createSession)({name:`Session ${c.length+1}`,model:j?.defaultModel||"anthropic/claude-opus-4-5",toolApprovals:en});(0,ee.mutateSessions)(),e.push(`/session/${t.id}`)}catch(e){console.error("Failed to create session:",e)}finally{m(!1)}}},ek=async()=>{m(!0);try{let t=await (0,G.createSession)({name:et||`Session ${c.length+1}`,model:ea,toolApprovals:en});(0,ee.mutateSessions)(),eC(),x(!1),e.push(`/session/${t.id}`)}catch(e){console.error("Failed to create session:",e)}finally{m(!1)}},eC=()=>{es(""),j&&(er(j.defaultModel),ei(j.defaultToolApprovals))},eT=async(t,s)=>{t.preventDefault(),t.stopPropagation();try{await (0,G.deleteSession)(s),(0,ee.mutateSessions)(),eg===s&&e.push("/")}catch(e){console.error("Failed to delete session:",e)}},eS=e=>{ei(t=>({...t,[e]:!t[e]}))},ez="collapsed"===r;return(0,t.jsxs)(w,{collapsible:"icon",className:"border-r border-border/50",children:[(0,t.jsxs)(C,{className:(0,l.cn)(ez?"p-2 space-y-2":"p-3 space-y-3"),children:[!ez&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsxs)("div",{className:"relative shrink-0 overflow-hidden rounded-xl size-10 shadow-md ring-1 ring-white/10",children:[(0,t.jsx)(D.default,{src:"/sparke-coder.png",alt:"Sparke",width:40,height:40,className:"absolute inset-0 size-full object-cover",priority:!0}),(0,t.jsx)("video",{ref:_,src:"/sparkecode.mp4",muted:!0,loop:!0,playsInline:!0,className:(0,l.cn)("absolute inset-0 size-full object-cover transition-opacity duration-300",ej?"opacity-100":"opacity-0")})]}),(0,t.jsxs)("div",{className:"flex flex-1 items-center justify-between min-w-0",children:[(0,t.jsx)("h1",{className:"text-lg font-bold text-foreground",children:"SparkECoder"}),(0,t.jsx)(b.TooltipProvider,{children:(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(o.Button,{size:"icon",variant:"ghost",className:"size-7 hover:bg-accent transition-colors",onClick:n,children:(0,t.jsx)(F,{className:"size-4"})})}),(0,t.jsxs)(b.TooltipContent,{side:"bottom",children:["Collapse ",(0,t.jsx)("kbd",{className:"ml-1 text-[10px] opacity-60",children:"⌘B"})]})]})})]})]}),(0,t.jsxs)(o.Button,{onClick:ew,disabled:p,className:"w-full justify-center gap-2 h-9",children:[p?(0,t.jsx)(B.Loader2,{className:"size-4 animate-spin"}):(0,t.jsx)(I.Plus,{className:"size-4"}),"New Agent"]})]}),ez&&(0,t.jsxs)("div",{className:"flex flex-col items-center gap-2 w-full",children:[(0,t.jsx)(b.TooltipProvider,{children:(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(o.Button,{size:"icon",variant:"ghost",onClick:n,className:"size-8 mx-auto",children:(0,t.jsx)(i,{className:"size-4"})})}),(0,t.jsxs)(b.TooltipContent,{side:"right",children:["Expand ",(0,t.jsx)("kbd",{className:"ml-1 text-[10px] opacity-60",children:"⌘B"})]})]})}),(0,t.jsxs)("div",{className:"relative overflow-hidden rounded-xl size-8 shadow-md ring-1 ring-white/10 mx-auto",children:[(0,t.jsx)(D.default,{src:"/sparke-coder.png",alt:"SparkECoder",width:32,height:32,className:"absolute inset-0 size-full object-cover",priority:!0}),(0,t.jsx)("video",{ref:_,src:"/sparkecode.mp4",muted:!0,loop:!0,playsInline:!0,className:(0,l.cn)("absolute inset-0 size-full object-cover transition-opacity duration-300",ej?"opacity-100":"opacity-0")})]}),(0,t.jsx)(b.TooltipProvider,{children:(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(o.Button,{size:"icon",onClick:ew,disabled:p,className:"size-8 mx-auto",children:p?(0,t.jsx)(B.Loader2,{className:"size-4 animate-spin"}):(0,t.jsx)(I.Plus,{className:"size-4"})})}),(0,t.jsx)(b.TooltipContent,{side:"right",children:"New Agent"})]})})]})]}),(0,t.jsx)(X.Dialog,{open:h,onOpenChange:e=>{x(e),e&&eC()},children:(0,t.jsxs)(X.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsx)(X.DialogHeader,{children:(0,t.jsxs)(X.DialogTitle,{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"size-8 rounded-lg bg-primary flex items-center justify-center",children:(0,t.jsx)(U.Settings,{className:"size-4 text-primary-foreground"})}),"New Agent"]})}),(0,t.jsxs)("div",{className:"space-y-4 pt-2",children:[(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)(Q.Label,{htmlFor:"name",className:"text-sm font-medium",children:"Session Name"}),(0,t.jsx)(d.Input,{id:"name",placeholder:"My Coding Project (optional)",value:et,onChange:e=>es(e.target.value),className:"transition-all focus:ring-2 focus:ring-primary/20"})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)(Q.Label,{className:"text-sm font-medium",children:"Model"}),(0,t.jsxs)(Z.Select,{value:ea,onValueChange:er,children:[(0,t.jsx)(Z.SelectTrigger,{className:"transition-all hover:border-primary/50",children:(0,t.jsx)(Z.SelectValue,{placeholder:"Select a model"})}),(0,t.jsx)(Z.SelectContent,{children:j?.availableModels.map(e=>(0,t.jsx)(Z.SelectItem,{value:e.id,children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{children:e.name}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:e.provider})]})},e.id))})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(Q.Label,{className:"flex items-center gap-2 text-sm font-medium",children:"Tool Approvals"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground -mt-0.5",children:"Toggle on to require approval before tool executes"}),(0,t.jsx)("div",{className:"space-y-1 rounded-lg border p-2.5 bg-muted/30",children:j?.availableTools.map(e=>(0,t.jsxs)("div",{className:"flex items-center justify-between py-1.5 hover:bg-muted/50 rounded px-2 -mx-1 transition-colors",children:[(0,t.jsxs)("div",{className:"space-y-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:e.name}),e.dangerous&&(0,t.jsx)("span",{className:"text-[10px] bg-amber-500/20 text-amber-600 dark:text-amber-400 px-1.5 py-0.5 rounded font-medium",children:"risky"})]}),(0,t.jsx)("p",{className:"text-[11px] text-muted-foreground",children:e.description})]}),(0,t.jsx)(J.Switch,{checked:en[e.id]??!1,onCheckedChange:()=>eS(e.id)})]},e.id))})]}),(0,t.jsxs)(o.Button,{onClick:ek,disabled:p,className:"w-full",children:[p?(0,t.jsx)(B.Loader2,{className:"size-4 animate-spin mr-2"}):(0,t.jsx)(I.Plus,{className:"size-4 mr-2"}),"Create Session"]})]})]})}),(0,t.jsx)(S,{className:"px-2",children:(0,t.jsx)(z,{className:"p-0",children:(0,t.jsx)(P,{children:(0,t.jsx)(E,{className:"gap-1",children:u?(0,t.jsx)("div",{className:"flex justify-center py-8",children:(0,t.jsx)(B.Loader2,{className:"size-5 animate-spin text-muted-foreground"})}):0===c.length?!ez&&(0,t.jsxs)("div",{className:"text-center py-8 px-4",children:[(0,t.jsxs)("div",{className:"relative overflow-hidden rounded-xl size-12 mx-auto mb-3 shadow-md ring-1 ring-white/10",children:[(0,t.jsx)(D.default,{src:"/sparke-coder.png",alt:"SparkECoder",width:48,height:48,className:"absolute inset-0 size-full object-cover"}),ej&&(0,t.jsx)("video",{src:"/sparkecode.mp4",autoPlay:!0,muted:!0,loop:!0,playsInline:!0,className:"absolute inset-0 size-full object-cover"})]}),(0,t.jsx)("p",{className:"text-sm text-foreground",children:"No sessions yet"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:"Click New Agent above"})]}):c.map(e=>{let s,a,r,n,i=e.id===eg,d=N===e.id,c=!0===e.isStreaming,u=!ez&&(d||i);return(0,t.jsx)(M,{onMouseEnter:()=>k(e.id),onMouseLeave:()=>k(null),children:ez?(0,t.jsx)(b.TooltipProvider,{children:(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(L.default,{href:`/session/${e.id}`,className:(0,l.cn)("flex items-center justify-center size-8 rounded-lg transition-colors mx-auto",i?"bg-accent":"hover:bg-accent/60",c&&!i&&"bg-emerald-500/10"),children:c?(0,t.jsx)("span",{className:"size-2 rounded-full bg-emerald-500 animate-pulse"}):(0,t.jsx)($,{className:(0,l.cn)("size-4",i?"text-primary":"text-muted-foreground")})})}),(0,t.jsxs)(b.TooltipContent,{side:"right",children:[e.name||"Untitled",c&&" (Running)"]})]})}):(0,t.jsx)(O,{asChild:!0,isActive:i,className:(0,l.cn)("h-9 transition-all duration-150","hover:bg-accent/60",i&&"bg-accent",c&&!i&&"bg-emerald-500/5"),children:(0,t.jsxs)(L.default,{href:`/session/${e.id}`,className:"flex items-center gap-2.5 px-2",children:[c?(0,t.jsx)("span",{className:"size-2 rounded-full bg-emerald-500 animate-pulse shrink-0"}):(0,t.jsx)($,{className:(0,l.cn)("size-4 shrink-0",i?"text-primary":"text-muted-foreground")}),(0,t.jsx)("span",{className:(0,l.cn)("truncate flex-1 text-sm",c&&"text-emerald-600 dark:text-emerald-400"),children:e.name||"Untitled"}),u?(0,t.jsx)(b.TooltipProvider,{children:(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(o.Button,{size:"icon",variant:"ghost",className:"size-6 shrink-0 hover:bg-destructive/10 hover:text-destructive transition-colors",onClick:t=>eT(t,e.id),children:(0,t.jsx)(R,{className:"size-3.5"})})}),(0,t.jsx)(b.TooltipContent,{side:"right",children:"Delete session"})]})}):c?(0,t.jsx)("span",{className:"inline-flex items-center gap-1 text-[10px] text-emerald-600 dark:text-emerald-400 shrink-0 font-medium",children:"Active"}):"waiting"===e.status?(0,t.jsx)("span",{className:"text-[10px] text-amber-600 dark:text-amber-400 shrink-0 font-medium",children:"Waiting"}):"error"===e.status?(0,t.jsx)("span",{className:"text-[10px] text-red-600 dark:text-red-400 shrink-0 font-medium",children:"Error"}):(0,t.jsx)("span",{className:"text-[11px] text-muted-foreground shrink-0 tabular-nums",children:(s=new Date(e.createdAt),n=Math.floor((r=Math.floor((a=Math.floor(Math.floor((new Date().getTime()-s.getTime())/1e3)/60))/60))/24),a<1?"now":a<60?`${a}m`:r<24?`${r}h`:n<7?`${n}d`:`${Math.floor(n/7)}w`)})]})})},e.id)})})})})}),(0,t.jsx)(T,{className:(0,l.cn)("border-t border-border/50",ez?"p-2":"p-3"),children:(0,t.jsx)("div",{className:"flex items-center justify-between",children:ez?(0,t.jsxs)("div",{className:"flex flex-col items-center gap-2 w-full",children:[(0,t.jsx)(b.TooltipProvider,{children:(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{className:"flex items-center justify-center",children:(0,t.jsx)("span",{className:(0,l.cn)("size-2 rounded-full",j?.serverConnected?"bg-emerald-500 animate-pulse":"bg-red-500")})})}),(0,t.jsx)(b.TooltipContent,{side:"right",children:j?.serverConnected?"Connected":"Disconnected"})]})}),(0,t.jsx)(X.Dialog,{open:f,onOpenChange:g,children:(0,t.jsx)(b.TooltipProvider,{children:(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(X.DialogTrigger,{asChild:!0,children:(0,t.jsx)(o.Button,{size:"icon",variant:"ghost",className:"size-8",children:(0,t.jsx)(U.Settings,{className:"size-4"})})})}),(0,t.jsx)(b.TooltipContent,{side:"right",children:"Settings"})]})})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[j?.serverConnected?(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-emerald-600 dark:text-emerald-400",children:[(0,t.jsx)("span",{className:"size-1.5 rounded-full bg-current animate-pulse"}),(0,t.jsx)("span",{children:"Connected"})]}):(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-red-500",children:[(0,t.jsx)("span",{className:"size-1.5 rounded-full bg-current"}),(0,t.jsx)("span",{children:"Disconnected"})]}),(0,t.jsx)("span",{className:"text-muted-foreground",children:"·"}),(0,t.jsx)("span",{className:"text-muted-foreground",children:c.length})]}),(0,t.jsxs)(X.Dialog,{open:f,onOpenChange:g,children:[(0,t.jsx)(b.TooltipProvider,{children:(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(X.DialogTrigger,{asChild:!0,children:(0,t.jsx)(o.Button,{size:"icon",variant:"ghost",className:"size-7 hover:bg-accent transition-colors",children:(0,t.jsx)(U.Settings,{className:"size-4"})})})}),(0,t.jsx)(b.TooltipContent,{side:"top",children:"Settings"})]})}),(0,t.jsxs)(X.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsx)(X.DialogHeader,{children:(0,t.jsxs)(X.DialogTitle,{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"size-8 rounded-lg bg-muted flex items-center justify-center",children:(0,t.jsx)(U.Settings,{className:"size-4"})}),"Settings"]})}),(0,t.jsxs)("div",{className:"space-y-4 pt-2",children:[(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)(Q.Label,{className:"text-sm font-medium",children:"Default Model"}),(0,t.jsxs)(Z.Select,{value:ea,onValueChange:er,children:[(0,t.jsx)(Z.SelectTrigger,{className:"transition-all hover:border-primary/50",children:(0,t.jsx)(Z.SelectValue,{placeholder:"Select a model"})}),(0,t.jsx)(Z.SelectContent,{children:j?.availableModels.map(e=>(0,t.jsx)(Z.SelectItem,{value:e.id,children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{children:e.name}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:e.provider})]})},e.id))})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(Q.Label,{className:"flex items-center gap-2 text-sm font-medium",children:"Tool Approvals"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground -mt-0.5",children:"Toggle on to require approval before tool executes"}),(0,t.jsx)("div",{className:"space-y-1 rounded-lg border p-2.5 bg-muted/30",children:j?.availableTools.map(e=>(0,t.jsxs)("div",{className:"flex items-center justify-between py-1.5 hover:bg-muted/50 rounded px-2 -mx-1 transition-colors",children:[(0,t.jsxs)("div",{className:"space-y-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:e.name}),e.dangerous&&(0,t.jsx)("span",{className:"text-[10px] bg-amber-500/20 text-amber-600 dark:text-amber-400 px-1.5 py-0.5 rounded font-medium",children:"risky"})]}),(0,t.jsx)("p",{className:"text-[11px] text-muted-foreground",children:e.description})]}),(0,t.jsx)(J.Switch,{checked:en[e.id]??!1,onCheckedChange:()=>eS(e.id)})]},e.id))})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)(Q.Label,{className:"flex items-center gap-2 text-sm font-medium",children:[(0,t.jsx)(K.Key,{className:"size-4"}),"API Keys"]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground -mt-0.5",children:"Configure API keys for different providers. Keys are stored securely on your machine."}),(0,t.jsx)("div",{className:"space-y-1 rounded-lg border p-2.5 bg-muted/30",children:el.map(e=>(0,t.jsx)("div",{className:"py-1.5 hover:bg-muted/50 rounded px-2 -mx-1 transition-colors",children:ed===e.provider?(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-sm font-medium capitalize",children:e.provider}),(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground font-mono",children:e.envVar})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsxs)("div",{className:"relative flex-1",children:[(0,t.jsx)(d.Input,{type:em?"text":"password",value:eu,onChange:e=>ep(e.target.value),placeholder:"Paste your API key...",className:"pr-8 text-sm font-mono",autoFocus:!0}),(0,t.jsx)(o.Button,{type:"button",variant:"ghost",size:"icon",className:"absolute right-0 top-0 h-full px-2 hover:bg-transparent",onClick:()=>eh(!em),children:em?(0,t.jsx)(H,{className:"size-4"}):(0,t.jsx)(W,{className:"size-4"})})]}),(0,t.jsx)(o.Button,{size:"icon",variant:"ghost",className:"shrink-0",onClick:()=>ey(e.provider),disabled:ex||!eu.trim(),children:ex?(0,t.jsx)(B.Loader2,{className:"size-4 animate-spin"}):(0,t.jsx)(V.Check,{className:"size-4 text-green-500"})}),(0,t.jsx)(o.Button,{size:"icon",variant:"ghost",className:"shrink-0",onClick:eN,children:(0,t.jsx)(q.default,{className:"size-4 text-muted-foreground"})})]})]}):(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"space-y-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium capitalize",children:e.provider}),e.configured&&(0,t.jsx)("span",{className:(0,l.cn)("text-[10px] px-1.5 py-0.5 rounded font-medium","env"===e.source?"bg-blue-500/20 text-blue-600 dark:text-blue-400":"bg-green-500/20 text-green-600 dark:text-green-400"),children:"env"===e.source?"from env":"saved"})]}),(0,t.jsx)("p",{className:"text-[11px] text-muted-foreground font-mono",children:e.configured?e.maskedKey:"Not configured"})]}),(0,t.jsx)(o.Button,{size:"sm",variant:"ghost",className:"h-7 text-xs",onClick:()=>ec(e.provider),children:e.configured?"Update":"Add"})]})},e.provider))})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"These settings apply to new sessions. You can also change the model per-session in the chat header."})]})]})]})]})})})]})}function es({children:e}){return(0,t.jsxs)(N,{defaultOpen:!0,children:[(0,t.jsx)(et,{}),(0,t.jsx)(k,{className:"h-screen flex flex-col bg-background",children:(0,t.jsx)("div",{className:"flex-1 overflow-hidden",children:e})})]})}e.s(["default",()=>es],138134)}]);