cc-chats 0.1.2 → 0.2.0
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.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +31 -31
- package/.next/app-path-routes-manifest.json +3 -3
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +10 -10
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +18 -14
- package/.next/server/app/api/project/rename/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/projects/memory/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/projects/sessions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/session/delete/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/session/duplicate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/summary/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sync/route_client-reference-manifest.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +22 -17
- package/.next/server/app/page.js +2 -2
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/project/[projectPath]/page.js +2 -2
- package/.next/server/app/project/[projectPath]/page.js.nft.json +1 -1
- package/.next/server/app/project/[projectPath]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/project/[projectPath]/session/[sessionId]/page.js +2 -2
- package/.next/server/app/project/[projectPath]/session/[sessionId]/page.js.nft.json +1 -1
- package/.next/server/app/project/[projectPath]/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/search/page.js +2 -2
- package/.next/server/app/search/page.js.nft.json +1 -1
- package/.next/server/app/search/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +3 -3
- package/.next/server/chunks/363.js +1 -0
- package/.next/server/chunks/{361.js → 707.js} +2 -2
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/app/layout-439f7d41814bd173.js +1 -0
- package/.next/static/chunks/app/page-0ca4f890b64c84b2.js +1 -0
- package/.next/static/chunks/app/project/[projectPath]/page-23243a0bb07162ab.js +1 -0
- package/.next/static/chunks/app/project/[projectPath]/session/[sessionId]/page-a834947a4b535ef5.js +1 -0
- package/.next/static/chunks/app/search/page-c0836568a011198b.js +1 -0
- package/.next/static/chunks/{webpack-2eb758dea75faf50.js → webpack-43c7aa59eaa5af49.js} +1 -1
- package/.next/static/css/6cda10ed9fa4821e.css +3 -0
- package/.next/static/media/0aa834ed78bf6d07-s.woff2 +0 -0
- package/.next/static/media/13971731025ec697-s.p.woff2 +0 -0
- package/.next/static/media/35f3de0ebb1cfc70-s.woff2 +0 -0
- package/.next/static/media/67957d42bae0796d-s.woff2 +0 -0
- package/.next/static/media/7ab938503e4547a1-s.woff2 +0 -0
- package/.next/static/media/886030b0b59bc5a7-s.woff2 +0 -0
- package/.next/static/media/939c4f875ee75fbb-s.woff2 +0 -0
- package/.next/static/media/bb3ef058b751a6ad-s.p.woff2 +0 -0
- package/.next/static/media/e6099e249fd938cc-s.p.woff2 +0 -0
- package/.next/static/media/f911b923c6adde36-s.woff2 +0 -0
- package/README.md +40 -25
- package/package.json +1 -1
- package/.next/static/chunks/app/layout-3c47de6beebd1ee5.js +0 -1
- package/.next/static/chunks/app/page-ee26475f0bf67f97.js +0 -1
- package/.next/static/chunks/app/project/[projectPath]/page-4a13bfac233bc667.js +0 -1
- package/.next/static/chunks/app/project/[projectPath]/session/[sessionId]/page-fd03f86459367e6e.js +0 -1
- package/.next/static/chunks/app/search/page-e1bdc79033baf6f9.js +0 -1
- package/.next/static/css/365667988ce961ff.css +0 -3
- /package/.next/static/{cFEqgYfU4B-PbX7GGk3Tt → LrF23DW0UBNNAs7ErsCbs}/_buildManifest.js +0 -0
- /package/.next/static/{cFEqgYfU4B-PbX7GGk3Tt → LrF23DW0UBNNAs7ErsCbs}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-
|
|
1
|
+
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-43c7aa59eaa5af49.js","static/chunks/4bd1b696-c023c6e3521b1417.js","static/chunks/255-cb395327542b56ef.js","static/chunks/main-app-f2bdb334e92ecbbb.js"],rootMainFilesTree:{},pages:{"/_app":["static/chunks/webpack-43c7aa59eaa5af49.js","static/chunks/framework-292291387d6b2e39.js","static/chunks/main-a4753544b5b73813.js","static/chunks/pages/_app-7d307437aca18ad4.js"],"/_error":["static/chunks/webpack-43c7aa59eaa5af49.js","static/chunks/framework-292291387d6b2e39.js","static/chunks/main-a4753544b5b73813.js","static/chunks/pages/_error-cb2a52f75f2162e2.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__NEXT_FONT_MANIFEST='{"pages":{},"app":{},"appUsingSizeAdjust":
|
|
1
|
+
self.__NEXT_FONT_MANIFEST='{"pages":{},"app":{"/Users/pedrosousa/Work/Personal/Code/claude-code-chats/src/app/layout":["static/media/13971731025ec697-s.p.woff2","static/media/e6099e249fd938cc-s.p.woff2","static/media/bb3ef058b751a6ad-s.p.woff2"]},"appUsingSizeAdjust":true,"pagesUsingSizeAdjust":false}';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"pages":{},"app":{},"appUsingSizeAdjust":
|
|
1
|
+
{"pages":{},"app":{"/Users/pedrosousa/Work/Personal/Code/claude-code-chats/src/app/layout":["static/media/13971731025ec697-s.p.woff2","static/media/e6099e249fd938cc-s.p.woff2","static/media/bb3ef058b751a6ad-s.p.woff2"]},"appUsingSizeAdjust":true,"pagesUsingSizeAdjust":false}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--LrF23DW0UBNNAs7ErsCbs--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/13971731025ec697-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/bb3ef058b751a6ad-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/e6099e249fd938cc-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/6cda10ed9fa4821e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-43c7aa59eaa5af49.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-cb395327542b56ef.js" async=""></script><script src="/_next/static/chunks/main-app-f2bdb334e92ecbbb.js" async=""></script><script src="/_next/static/chunks/app/layout-439f7d41814bd173.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Claude Code Chats</title><meta name="description" content="Browse your Claude Code chat history"/><script>(function(){try{var t=localStorage.getItem("theme");if(t==="light"||t==="dark"){document.documentElement.setAttribute("data-theme",t)}else{document.documentElement.setAttribute("data-theme",window.matchMedia("(prefers-color-scheme:light)").matches?"light":"dark")}}catch(e){document.documentElement.setAttribute("data-theme","dark")}})()</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_0d7163 __variable_315a98 __variable_3c557b font-sans min-h-screen antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-43c7aa59eaa5af49.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[1458,[\"177\",\"static/chunks/app/layout-439f7d41814bd173.js\"],\"ThemeProvider\"]\n3:I[9766,[],\"\"]\n4:I[8924,[],\"\"]\n5:I[4431,[],\"OutletBoundary\"]\n7:I[5278,[],\"AsyncMetadataOutlet\"]\n9:I[4431,[],\"ViewportBoundary\"]\nb:I[4431,[],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[7150,[],\"\"]\n:HL[\"/_next/static/media/13971731025ec697-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/bb3ef058b751a6ad-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/e6099e249fd938cc-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/6cda10ed9fa4821e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"LrF23DW0UBNNAs7ErsCbs\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/6cda10ed9fa4821e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem(\\\"theme\\\");if(t===\\\"light\\\"||t===\\\"dark\\\"){document.documentElement.setAttribute(\\\"data-theme\\\",t)}else{document.documentElement.setAttribute(\\\"data-theme\\\",window.matchMedia(\\\"(prefers-color-scheme:light)\\\").matches?\\\"light\\\":\\\"dark\\\")}}catch(e){document.documentElement.setAttribute(\\\"data-theme\\\",\\\"dark\\\")}})()\"}}]}],[\"$\",\"body\",null,{\"className\":\"__variable_0d7163 __variable_315a98 __variable_3c557b font-sans min-h-screen antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"8:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Claude Code Chats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Browse your Claude Code chat history\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-43c7aa59eaa5af49.js" defer=""></script><script src="/_next/static/chunks/framework-292291387d6b2e39.js" defer=""></script><script src="/_next/static/chunks/main-a4753544b5b73813.js" defer=""></script><script src="/_next/static/chunks/pages/_app-7d307437aca18ad4.js" defer=""></script><script src="/_next/static/chunks/pages/_error-cb2a52f75f2162e2.js" defer=""></script><script src="/_next/static/LrF23DW0UBNNAs7ErsCbs/_buildManifest.js" defer=""></script><script src="/_next/static/LrF23DW0UBNNAs7ErsCbs/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"LrF23DW0UBNNAs7ErsCbs","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"node":{},"edge":{},"encryptionKey":"
|
|
1
|
+
{"node":{},"edge":{},"encryptionKey":"v0yC032T0POcfM2uHpw94G5wJZHErydGmmACmljhMUE="}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{1458:(e,t,a)=>{"use strict";a.d(t,{D:()=>n,ThemeProvider:()=>o});var s=a(5155),l=a(2115);let r=(0,l.createContext)({theme:"system",resolved:"dark",setTheme:()=>{},cycle:()=>{}});function n(){return(0,l.useContext)(r)}function o(e){let{children:t}=e,[a,n]=(0,l.useState)("system"),[o,i]=(0,l.useState)("dark");(0,l.useEffect)(()=>{let e=localStorage.getItem("theme");e&&["light","dark","system"].includes(e)&&n(e)},[]),(0,l.useEffect)(()=>{let e="system"===a?window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark":a;if(i(e),document.documentElement.setAttribute("data-theme",e),"system"===a){let e=window.matchMedia("(prefers-color-scheme: light)"),t=()=>{let t=e.matches?"light":"dark";i(t),document.documentElement.setAttribute("data-theme",t)};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)}},[a]);let m=(0,l.useCallback)(e=>{n(e),localStorage.setItem("theme",e)},[]),c=(0,l.useCallback)(()=>{let e=["system","light","dark"];m(e[(e.indexOf(a)+1)%e.length])},[a,m]);return(0,s.jsx)(r.Provider,{value:{theme:a,resolved:o,setTheme:m,cycle:c},children:t})}},2590:(e,t,a)=>{Promise.resolve().then(a.t.bind(a,4179,23)),Promise.resolve().then(a.t.bind(a,2907,23)),Promise.resolve().then(a.t.bind(a,5917,23)),Promise.resolve().then(a.t.bind(a,3673,23)),Promise.resolve().then(a.bind(a,1458))},2907:e=>{e.exports={style:{fontFamily:"'Instrument Serif', 'Instrument Serif Fallback'",fontWeight:400,fontStyle:"normal"},className:"__className_315a98",variable:"__variable_315a98"}},3673:()=>{},4179:e=>{e.exports={style:{fontFamily:"'DM Sans', 'DM Sans Fallback'",fontStyle:"normal"},className:"__className_0d7163",variable:"__variable_0d7163"}},5917:e=>{e.exports={style:{fontFamily:"'JetBrains Mono', 'JetBrains Mono Fallback'",fontStyle:"normal"},className:"__className_3c557b",variable:"__variable_3c557b"}}},e=>{e.O(0,[938,441,255,358],()=>e(e.s=2590)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{449:(e,t,s)=>{"use strict";s.d(t,{ThemeToggle:()=>a});var n=s(5155),r=s(1458);let o={system:"System",light:"Light",dark:"Dark"};function a(){let{theme:e,cycle:t}=(0,r.D)();return(0,n.jsx)("button",{onClick:t,className:"p-2 text-content-tertiary hover:text-content-secondary hover:bg-surface-elevated rounded-lg transition-all flex-shrink-0",title:"Theme: ".concat(o[e]),children:"system"===e?(0,n.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})}):"light"===e?(0,n.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"})}):(0,n.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"})})})}},467:(e,t,s)=>{"use strict";function n(e){if("number"==typeof e)return e;let t=Date.parse(e);return isNaN(t)?0:t}function r(e){let t=Date.now()-e,s=Math.floor(t/6e4),n=Math.floor(t/36e5),r=Math.floor(t/864e5),o=Math.floor(t/6048e5),a=Math.floor(t/2592e6);if(s<1)return"Just now";if(s<60)return"".concat(s,"m ago");if(n<24)return"".concat(n,"h ago");if(r<7)return"".concat(r,"d ago");if(r<30)return"".concat(o,"w ago");if(a<12)return"".concat(a,"mo ago");let l=Math.floor(a/12);return"".concat(l,"y ago")}function o(e){return new Date(n(e)).toLocaleString("en-GB",{day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"})}function a(e){return e>=1e6?"".concat((e/1e6).toFixed(1),"M"):e>=1e4?"".concat((e/1e3).toFixed(1),"k"):e.toLocaleString("en-GB")}s.d(t,{EH:()=>n,ap:()=>a,fw:()=>r,r6:()=>o})},1046:(e,t,s)=>{"use strict";s.d(t,{D:()=>r});var n=s(5155);function r(e){let{value:t,onChange:s,placeholder:r="Search..."}=e;return(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)("svg",{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-content-tertiary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),(0,n.jsx)("input",{type:"text",value:t,onChange:e=>s(e.target.value),placeholder:r,className:"w-full pl-10 pr-10 py-2.5 bg-surface border border-edge-subtle rounded-xl text-sm text-content-primary placeholder-content-tertiary focus:outline-none focus:border-accent focus:ring-1 focus:ring-accent/30 transition-all"}),t&&(0,n.jsx)("button",{onClick:()=>s(""),className:"absolute right-3 top-1/2 -translate-y-1/2 text-content-tertiary hover:text-content-secondary transition-colors",children:(0,n.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})}},1458:(e,t,s)=>{"use strict";s.d(t,{D:()=>a,ThemeProvider:()=>l});var n=s(5155),r=s(2115);let o=(0,r.createContext)({theme:"system",resolved:"dark",setTheme:()=>{},cycle:()=>{}});function a(){return(0,r.useContext)(o)}function l(e){let{children:t}=e,[s,a]=(0,r.useState)("system"),[l,c]=(0,r.useState)("dark");(0,r.useEffect)(()=>{let e=localStorage.getItem("theme");e&&["light","dark","system"].includes(e)&&a(e)},[]),(0,r.useEffect)(()=>{let e="system"===s?window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark":s;if(c(e),document.documentElement.setAttribute("data-theme",e),"system"===s){let e=window.matchMedia("(prefers-color-scheme: light)"),t=()=>{let t=e.matches?"light":"dark";c(t),document.documentElement.setAttribute("data-theme",t)};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)}},[s]);let i=(0,r.useCallback)(e=>{a(e),localStorage.setItem("theme",e)},[]),d=(0,r.useCallback)(()=>{let e=["system","light","dark"];i(e[(e.indexOf(s)+1)%e.length])},[s,i]);return(0,n.jsx)(o.Provider,{value:{theme:s,resolved:l,setTheme:i,cycle:d},children:t})}},3389:(e,t,s)=>{"use strict";s.d(t,{SyncButton:()=>o});var n=s(5155),r=s(2115);function o(){let[e,t]=(0,r.useState)(!1),[s,o]=(0,r.useState)(null),a=async()=>{t(!0),o(null);try{let e=await fetch("/api/sync",{method:"POST"});if(!e.ok)throw Error("Sync failed");let t=await e.json();o(t.sync),window.dispatchEvent(new Event("sync-complete")),setTimeout(()=>o(null),3e3)}catch(e){console.error("Sync error:",e)}finally{t(!1)}};return(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("button",{onClick:a,disabled:e,className:"p-2 text-content-tertiary hover:text-content-secondary hover:bg-surface-elevated rounded-lg transition-all disabled:opacity-50 disabled:cursor-not-allowed",title:"Resync database",children:(0,n.jsx)("svg",{className:"w-5 h-5 ".concat(e?"animate-spin":""),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})})}),s&&(s.added>0||s.updated>0||s.removed>0)&&(0,n.jsxs)("div",{className:"text-xs text-content-tertiary whitespace-nowrap animate-fade",children:[s.added>0&&"+".concat(s.added),s.updated>0&&" ~".concat(s.updated),s.removed>0&&" -".concat(s.removed)]})]})}},5011:(e,t,s)=>{"use strict";s.d(t,{S:()=>o});var n=s(5155),r=s(2115);function o(e){let{encodedPath:t,onClose:s}=e,[o,a]=(0,r.useState)(null),[l,c]=(0,r.useState)(null),i=(0,r.useRef)(null);return(0,r.useEffect)(()=>{fetch("/api/projects/memory?path=".concat(encodeURIComponent(t))).then(e=>{if(!e.ok)throw Error("Failed to load");return e.json()}).then(e=>a(e.files)).catch(()=>c("Failed to load memory"))},[t]),(0,r.useEffect)(()=>{function e(e){"Escape"===e.key&&s()}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[s]),(0,n.jsx)("div",{ref:i,className:"fixed inset-0 z-50 flex items-center justify-center bg-black/70 backdrop-blur-sm animate-fade",onClick:e=>{e.target===i.current&&s()},children:(0,n.jsxs)("div",{className:"bg-surface-elevated border border-edge rounded-2xl w-full max-w-2xl max-h-[80vh] flex flex-col shadow-2xl mx-4 animate-modal",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-edge-subtle",children:[(0,n.jsx)("h2",{className:"text-sm font-serif text-content-primary",children:"Project Memory"}),(0,n.jsx)("button",{onClick:s,className:"text-content-tertiary hover:text-content-primary transition-colors",children:(0,n.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,n.jsxs)("div",{className:"overflow-y-auto p-5 space-y-6 scrollbar-thin",children:[l&&(0,n.jsx)("p",{className:"text-sm text-danger",children:l}),!o&&!l&&(0,n.jsx)("p",{className:"text-sm text-content-tertiary",children:"Loading..."}),null==o?void 0:o.map(e=>(0,n.jsxs)("div",{children:[o.length>1&&(0,n.jsx)("h3",{className:"text-xs font-medium text-accent/70 mb-2 font-mono",children:e.name}),(0,n.jsx)("pre",{className:"text-sm text-content-secondary whitespace-pre-wrap font-mono leading-relaxed",children:e.content})]},e.name)),(null==o?void 0:o.length)===0&&(0,n.jsx)("p",{className:"text-sm text-content-tertiary",children:"No memory files found."})]})]})})}},6281:(e,t,s)=>{"use strict";s.d(t,{GlobalSearch:()=>a});var n=s(5155),r=s(2115),o=s(63);function a(e){let{projectPath:t}=e,[s,a]=(0,r.useState)(""),l=(0,o.useRouter)(),c=(0,r.useRef)(null);(0,r.useEffect)(()=>{function e(e){if((e.metaKey||e.ctrlKey)&&"k"===e.key){var t;e.preventDefault(),null==(t=c.current)||t.focus()}}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[]);let i=(0,r.useCallback)(e=>{if(e.preventDefault(),s.trim()){let e=new URLSearchParams({q:s.trim()});t&&e.set("project",t),l.push("/search?".concat(e.toString()))}},[s,l,t]),d=t?"Search this project...":"Search all chats...";return(0,n.jsxs)("form",{onSubmit:i,className:"relative",children:[(0,n.jsx)("svg",{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-content-tertiary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),(0,n.jsx)("input",{ref:c,type:"text",value:s,onChange:e=>a(e.target.value),placeholder:d,className:"w-full pl-10 pr-16 py-2 bg-surface border border-edge-subtle rounded-xl text-sm text-content-primary placeholder-content-tertiary focus:outline-none focus:border-accent focus:ring-1 focus:ring-accent/30 transition-all"}),!s&&(0,n.jsxs)("kbd",{className:"absolute right-3 top-1/2 -translate-y-1/2 hidden sm:inline-flex items-center gap-0.5 px-1.5 py-0.5 text-[10px] font-mono text-content-tertiary bg-surface-elevated border border-edge-subtle rounded",children:[(0,n.jsx)("span",{className:"text-xs",children:"⌘"}),"K"]})]})}},8994:(e,t,s)=>{"use strict";s.d(t,{ProjectList:()=>m});var n=s(5155),r=s(2115),o=s(2619),a=s.n(o),l=s(467),c=s(5011);function i(e){let{project:t}=e,[s,o]=(0,r.useState)(!1);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(a(),{href:"/project/".concat(t.encodedPath),className:"block p-4 bg-surface border border-edge-subtle rounded-xl hover:border-edge-hover hover:bg-surface-elevated transition-all duration-300 group hover:shadow-lg hover:shadow-accent/[0.04]",children:[(0,n.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsx)("h3",{className:"font-medium text-content-primary truncate group-hover:text-accent transition-colors",children:t.name}),(0,n.jsx)("p",{className:"text-xs text-content-tertiary truncate mt-0.5 font-mono",children:t.path})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[t.hasMemory&&(0,n.jsxs)("button",{onClick:e=>{e.preventDefault(),e.stopPropagation(),o(!0)},className:"flex items-center gap-1 px-1.5 py-0.5 text-[10px] font-medium tracking-wide rounded bg-accent/10 text-accent/80 hover:bg-accent/20 hover:text-accent transition-colors",children:[(0,n.jsx)("svg",{className:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"})}),"MEMORY"]}),(0,n.jsx)("div",{className:"text-content-tertiary group-hover:text-accent transition-colors",children:(0,n.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})})]})]}),(0,n.jsxs)("div",{className:"flex items-center gap-4 mt-3 text-xs text-content-tertiary",children:[(0,n.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,n.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"})}),t.sessionCount," session",1!==t.sessionCount?"s":""]}),(0,n.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,n.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"})}),t.totalMessages," messages"]}),(0,n.jsxs)("span",{className:"flex items-center gap-1.5 ml-auto",children:[(0,n.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,l.fw)(t.lastActivity)]})]})]}),s&&(0,n.jsx)(c.S,{encodedPath:t.encodedPath,onClose:()=>o(!1)})]})}var d=s(1046);let u=null;function h(){return(0,n.jsx)("div",{className:"grid gap-3 lg:grid-cols-2",children:Array.from({length:6}).map((e,t)=>(0,n.jsxs)("div",{className:"p-4 bg-surface border border-edge-subtle rounded-xl animate-in stagger-".concat(t+1),children:[(0,n.jsx)("div",{className:"flex items-start justify-between gap-3",children:(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsx)("div",{className:"h-5 w-40 rounded skeleton-shimmer"}),(0,n.jsx)("div",{className:"h-3 w-64 rounded skeleton-shimmer mt-2"})]})}),(0,n.jsxs)("div",{className:"flex items-center gap-4 mt-3",children:[(0,n.jsx)("div",{className:"h-3 w-20 rounded skeleton-shimmer"}),(0,n.jsx)("div",{className:"h-3 w-24 rounded skeleton-shimmer"}),(0,n.jsx)("div",{className:"h-3 w-16 rounded skeleton-shimmer ml-auto"})]})]},t))})}function m(){let[e,t]=(0,r.useState)(u),[s,o]=(0,r.useState)(""),[a,l]=(0,r.useState)("recent");(0,r.useEffect)(()=>{let e=!1;function s(){fetch("/api/projects").then(e=>e.json()).then(s=>{e||(u=s,t(s))})}return s(),window.addEventListener("sync-complete",s),()=>{e=!0,window.removeEventListener("sync-complete",s)}},[]);let c=(0,r.useMemo)(()=>{if(!e)return[];let t=e;if(s.trim()){let n=s.toLowerCase();t=e.filter(e=>e.name.toLowerCase().includes(n)||e.path.toLowerCase().includes(n))}return[...t].sort((e,t)=>{switch(a){case"name":return e.name.localeCompare(t.name);case"messages":return t.totalMessages-e.totalMessages;case"sessions":return t.sessionCount-e.sessionCount;default:return t.lastActivity-e.lastActivity}})},[e,s,a]);return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"flex flex-col sm:flex-row gap-3 mb-6",children:[(0,n.jsx)("div",{className:"flex-1",children:(0,n.jsx)(d.D,{value:s,onChange:o,placeholder:"Search projects..."})}),(0,n.jsxs)("select",{value:a,onChange:e=>l(e.target.value),className:"px-3 py-2.5 bg-surface border border-edge-subtle rounded-xl text-sm text-content-secondary focus:outline-none focus:border-accent focus:ring-1 focus:ring-accent/30 cursor-pointer transition-all",children:[(0,n.jsx)("option",{value:"recent",children:"Most Recent"}),(0,n.jsx)("option",{value:"name",children:"Name"}),(0,n.jsx)("option",{value:"messages",children:"Most Messages"}),(0,n.jsx)("option",{value:"sessions",children:"Most Sessions"})]})]}),null===e?(0,n.jsx)(h,{}):0===c.length?(0,n.jsx)("div",{className:"text-center py-16 text-content-tertiary animate-fade",children:s?"No projects found matching your search":"No projects found"}):(0,n.jsx)("div",{className:"grid gap-3 lg:grid-cols-2",children:c.map((e,t)=>(0,n.jsx)("div",{className:"animate-in stagger-".concat(Math.min(t+1,10)),children:(0,n.jsx)(i,{project:e})},e.path))}),null!==e&&(0,n.jsxs)("div",{className:"mt-6 text-xs text-content-tertiary text-center",children:[c.length," of ",e.length," projects"]})]})}},9869:(e,t,s)=>{Promise.resolve().then(s.bind(s,6281)),Promise.resolve().then(s.bind(s,8994)),Promise.resolve().then(s.bind(s,3389)),Promise.resolve().then(s.bind(s,449))}},e=>{e.O(0,[176,441,255,358],()=>e(e.s=9869)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[943],{449:(e,t,n)=>{"use strict";n.d(t,{ThemeToggle:()=>o});var s=n(5155),r=n(1458);let a={system:"System",light:"Light",dark:"Dark"};function o(){let{theme:e,cycle:t}=(0,r.D)();return(0,s.jsx)("button",{onClick:t,className:"p-2 text-content-tertiary hover:text-content-secondary hover:bg-surface-elevated rounded-lg transition-all flex-shrink-0",title:"Theme: ".concat(a[e]),children:"system"===e?(0,s.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})}):"light"===e?(0,s.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"})}):(0,s.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"})})})}},467:(e,t,n)=>{"use strict";function s(e){if("number"==typeof e)return e;let t=Date.parse(e);return isNaN(t)?0:t}function r(e){let t=Date.now()-e,n=Math.floor(t/6e4),s=Math.floor(t/36e5),r=Math.floor(t/864e5),a=Math.floor(t/6048e5),o=Math.floor(t/2592e6);if(n<1)return"Just now";if(n<60)return"".concat(n,"m ago");if(s<24)return"".concat(s,"h ago");if(r<7)return"".concat(r,"d ago");if(r<30)return"".concat(a,"w ago");if(o<12)return"".concat(o,"mo ago");let c=Math.floor(o/12);return"".concat(c,"y ago")}function a(e){return new Date(s(e)).toLocaleString("en-GB",{day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"})}function o(e){return e>=1e6?"".concat((e/1e6).toFixed(1),"M"):e>=1e4?"".concat((e/1e3).toFixed(1),"k"):e.toLocaleString("en-GB")}n.d(t,{EH:()=>s,ap:()=>o,fw:()=>r,r6:()=>a})},1046:(e,t,n)=>{"use strict";n.d(t,{D:()=>r});var s=n(5155);function r(e){let{value:t,onChange:n,placeholder:r="Search..."}=e;return(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)("svg",{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-content-tertiary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),(0,s.jsx)("input",{type:"text",value:t,onChange:e=>n(e.target.value),placeholder:r,className:"w-full pl-10 pr-10 py-2.5 bg-surface border border-edge-subtle rounded-xl text-sm text-content-primary placeholder-content-tertiary focus:outline-none focus:border-accent focus:ring-1 focus:ring-accent/30 transition-all"}),t&&(0,s.jsx)("button",{onClick:()=>n(""),className:"absolute right-3 top-1/2 -translate-y-1/2 text-content-tertiary hover:text-content-secondary transition-colors",children:(0,s.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})}},1458:(e,t,n)=>{"use strict";n.d(t,{D:()=>o,ThemeProvider:()=>c});var s=n(5155),r=n(2115);let a=(0,r.createContext)({theme:"system",resolved:"dark",setTheme:()=>{},cycle:()=>{}});function o(){return(0,r.useContext)(a)}function c(e){let{children:t}=e,[n,o]=(0,r.useState)("system"),[c,l]=(0,r.useState)("dark");(0,r.useEffect)(()=>{let e=localStorage.getItem("theme");e&&["light","dark","system"].includes(e)&&o(e)},[]),(0,r.useEffect)(()=>{let e="system"===n?window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark":n;if(l(e),document.documentElement.setAttribute("data-theme",e),"system"===n){let e=window.matchMedia("(prefers-color-scheme: light)"),t=()=>{let t=e.matches?"light":"dark";l(t),document.documentElement.setAttribute("data-theme",t)};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)}},[n]);let i=(0,r.useCallback)(e=>{o(e),localStorage.setItem("theme",e)},[]),d=(0,r.useCallback)(()=>{let e=["system","light","dark"];i(e[(e.indexOf(n)+1)%e.length])},[n,i]);return(0,s.jsx)(a.Provider,{value:{theme:n,resolved:c,setTheme:i,cycle:d},children:t})}},2635:(e,t,n)=>{Promise.resolve().then(n.bind(n,8666))},3389:(e,t,n)=>{"use strict";n.d(t,{SyncButton:()=>a});var s=n(5155),r=n(2115);function a(){let[e,t]=(0,r.useState)(!1),[n,a]=(0,r.useState)(null),o=async()=>{t(!0),a(null);try{let e=await fetch("/api/sync",{method:"POST"});if(!e.ok)throw Error("Sync failed");let t=await e.json();a(t.sync),window.dispatchEvent(new Event("sync-complete")),setTimeout(()=>a(null),3e3)}catch(e){console.error("Sync error:",e)}finally{t(!1)}};return(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("button",{onClick:o,disabled:e,className:"p-2 text-content-tertiary hover:text-content-secondary hover:bg-surface-elevated rounded-lg transition-all disabled:opacity-50 disabled:cursor-not-allowed",title:"Resync database",children:(0,s.jsx)("svg",{className:"w-5 h-5 ".concat(e?"animate-spin":""),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})})}),n&&(n.added>0||n.updated>0||n.removed>0)&&(0,s.jsxs)("div",{className:"text-xs text-content-tertiary whitespace-nowrap animate-fade",children:[n.added>0&&"+".concat(n.added),n.updated>0&&" ~".concat(n.updated),n.removed>0&&" -".concat(n.removed)]})]})}},5011:(e,t,n)=>{"use strict";n.d(t,{S:()=>a});var s=n(5155),r=n(2115);function a(e){let{encodedPath:t,onClose:n}=e,[a,o]=(0,r.useState)(null),[c,l]=(0,r.useState)(null),i=(0,r.useRef)(null);return(0,r.useEffect)(()=>{fetch("/api/projects/memory?path=".concat(encodeURIComponent(t))).then(e=>{if(!e.ok)throw Error("Failed to load");return e.json()}).then(e=>o(e.files)).catch(()=>l("Failed to load memory"))},[t]),(0,r.useEffect)(()=>{function e(e){"Escape"===e.key&&n()}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[n]),(0,s.jsx)("div",{ref:i,className:"fixed inset-0 z-50 flex items-center justify-center bg-black/70 backdrop-blur-sm animate-fade",onClick:e=>{e.target===i.current&&n()},children:(0,s.jsxs)("div",{className:"bg-surface-elevated border border-edge rounded-2xl w-full max-w-2xl max-h-[80vh] flex flex-col shadow-2xl mx-4 animate-modal",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-edge-subtle",children:[(0,s.jsx)("h2",{className:"text-sm font-serif text-content-primary",children:"Project Memory"}),(0,s.jsx)("button",{onClick:n,className:"text-content-tertiary hover:text-content-primary transition-colors",children:(0,s.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,s.jsxs)("div",{className:"overflow-y-auto p-5 space-y-6 scrollbar-thin",children:[c&&(0,s.jsx)("p",{className:"text-sm text-danger",children:c}),!a&&!c&&(0,s.jsx)("p",{className:"text-sm text-content-tertiary",children:"Loading..."}),null==a?void 0:a.map(e=>(0,s.jsxs)("div",{children:[a.length>1&&(0,s.jsx)("h3",{className:"text-xs font-medium text-accent/70 mb-2 font-mono",children:e.name}),(0,s.jsx)("pre",{className:"text-sm text-content-secondary whitespace-pre-wrap font-mono leading-relaxed",children:e.content})]},e.name)),(null==a?void 0:a.length)===0&&(0,s.jsx)("p",{className:"text-sm text-content-tertiary",children:"No memory files found."})]})]})})}},6281:(e,t,n)=>{"use strict";n.d(t,{GlobalSearch:()=>o});var s=n(5155),r=n(2115),a=n(63);function o(e){let{projectPath:t}=e,[n,o]=(0,r.useState)(""),c=(0,a.useRouter)(),l=(0,r.useRef)(null);(0,r.useEffect)(()=>{function e(e){if((e.metaKey||e.ctrlKey)&&"k"===e.key){var t;e.preventDefault(),null==(t=l.current)||t.focus()}}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[]);let i=(0,r.useCallback)(e=>{if(e.preventDefault(),n.trim()){let e=new URLSearchParams({q:n.trim()});t&&e.set("project",t),c.push("/search?".concat(e.toString()))}},[n,c,t]),d=t?"Search this project...":"Search all chats...";return(0,s.jsxs)("form",{onSubmit:i,className:"relative",children:[(0,s.jsx)("svg",{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-content-tertiary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),(0,s.jsx)("input",{ref:l,type:"text",value:n,onChange:e=>o(e.target.value),placeholder:d,className:"w-full pl-10 pr-16 py-2 bg-surface border border-edge-subtle rounded-xl text-sm text-content-primary placeholder-content-tertiary focus:outline-none focus:border-accent focus:ring-1 focus:ring-accent/30 transition-all"}),!n&&(0,s.jsxs)("kbd",{className:"absolute right-3 top-1/2 -translate-y-1/2 hidden sm:inline-flex items-center gap-0.5 px-1.5 py-0.5 text-[10px] font-mono text-content-tertiary bg-surface-elevated border border-edge-subtle rounded",children:[(0,s.jsx)("span",{className:"text-xs",children:"⌘"}),"K"]})]})}},7625:(e,t,n)=>{"use strict";n.d(t,{m:()=>a});var s=n(5155),r=n(2115);function a(e){let{type:t,projectPath:n,sessionId:a,messageCount:o}=e,[c,l]=(0,r.useState)(null),[i,d]=(0,r.useState)(!1),[m,u]=(0,r.useState)(null),[h,x]=(0,r.useState)(!0);async function p(){d(!0),u(null);try{let e=await fetch("/api/summary",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:t,projectPath:n,sessionId:a})}),s=await e.json();if(!e.ok)throw Error(s.error||"Failed to generate summary");l(s.summary)}catch(e){u(e instanceof Error?e.message:"Unknown error")}finally{d(!1)}}if((0,r.useEffect)(()=>{!async function(){try{let e=new URLSearchParams({type:t,project:n});a&&e.append("session",a);let s=await fetch("/api/summary?".concat(e)),r=await s.json();l(r.summary||null)}catch(e){}finally{x(!1)}}()},[t,n,a]),h)return null;let f=c&&c.messageCount<o;return(0,s.jsxs)("div",{className:"p-4 bg-surface border border-edge-subtle rounded-xl",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4 mb-2",children:[(0,s.jsxs)("h3",{className:"text-sm font-medium text-content-secondary flex items-center gap-2",children:[(0,s.jsx)("svg",{className:"w-4 h-4 text-accent",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 10V3L4 14h7v7l9-11h-7z"})}),"AI Summary",f&&(0,s.jsx)("span",{className:"text-xs text-accent/60",children:"(outdated)"})]}),(0,s.jsx)("button",{onClick:p,disabled:i,className:"px-3 py-1 text-xs font-medium text-accent hover:text-accent-hover hover:bg-accent/10 rounded-lg transition-all disabled:opacity-50 disabled:cursor-not-allowed",children:i?"Generating...":c?"Regenerate":"Generate"})]}),m&&(0,s.jsx)("p",{className:"text-sm text-danger mb-2",children:m}),c?(0,s.jsx)("p",{className:"text-sm text-content-secondary leading-relaxed",children:c.content}):!i&&(0,s.jsx)("p",{className:"text-sm text-content-tertiary italic",children:'No summary yet. Click "Generate" to create one.'}),i&&(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm text-content-tertiary",children:[(0,s.jsxs)("svg",{className:"w-4 h-4 animate-spin",fill:"none",viewBox:"0 0 24 24",children:[(0,s.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,s.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Invoking Claude CLI..."]})]})}},8666:(e,t,n)=>{"use strict";n.d(t,{ProjectPageContent:()=>b});var s=n(5155),r=n(2115),a=n(2619),o=n.n(a),c=n(467);function l(e){let{session:t,encodedPath:n}=e;return(0,s.jsxs)(o(),{href:"/project/".concat(n,"/session/").concat(t.id),className:"block p-4 bg-surface border border-edge-subtle rounded-xl hover:border-edge-hover hover:bg-surface-elevated transition-all duration-300 group",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,s.jsx)("div",{className:"flex-1 min-w-0",children:(0,s.jsx)("p",{className:"text-sm text-content-primary line-clamp-2 group-hover:text-accent transition-colors",children:t.firstMessage||"Empty session"})}),(0,s.jsx)("div",{className:"flex items-center gap-1 text-content-tertiary group-hover:text-accent shrink-0 transition-colors",children:(0,s.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})})]}),(0,s.jsxs)("div",{className:"flex items-center gap-4 mt-3 text-xs text-content-tertiary",children:[(0,s.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"})}),t.messageCount," messages"]}),(0,s.jsxs)("span",{className:"flex items-center gap-1.5 ml-auto",children:[(0,s.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,c.fw)(t.lastActivity)]})]}),(0,s.jsx)("div",{className:"mt-2 text-[11px] text-content-tertiary font-mono truncate opacity-50",children:t.id})]})}var i=n(1046);function d(e){let{sessions:t,encodedPath:n}=e,[a,o]=(0,r.useState)(""),[c,d]=(0,r.useState)(!0),[m,u]=(0,r.useState)(30);(0,r.useEffect)(()=>{u(30)},[t]);let h=(0,r.useMemo)(()=>t.filter(e=>e.messageCount<3).length,[t]),x=(0,r.useMemo)(()=>{let e=t;if(c&&(e=e.filter(e=>e.messageCount>=3)),a.trim()){let t=a.toLowerCase();e=e.filter(e=>e.firstMessage.toLowerCase().includes(t)||e.id.toLowerCase().includes(t))}return e},[t,a,c]),p=x.slice(0,m),f=m<x.length;return(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"mb-6 flex items-center gap-4",children:[(0,s.jsx)("div",{className:"flex-1",children:(0,s.jsx)(i.D,{value:a,onChange:function(e){o(e),u(30)},placeholder:"Search sessions..."})}),h>0&&(0,s.jsxs)("label",{className:"flex items-center gap-2 text-xs text-content-tertiary cursor-pointer whitespace-nowrap",children:[(0,s.jsx)("input",{type:"checkbox",checked:c,onChange:e=>{d(e.target.checked),u(30)},className:"rounded border-edge-hover bg-surface-elevated text-accent focus:ring-accent focus:ring-offset-0"}),"Hide short (",h,")"]})]}),0===x.length?(0,s.jsx)("div",{className:"text-center py-16 text-content-tertiary animate-fade",children:a?"No sessions found matching your search":"No sessions found"}):(0,s.jsx)("div",{className:"grid gap-3",children:p.map((e,t)=>(0,s.jsx)("div",{className:"animate-in stagger-".concat(Math.min(t+1,10)),children:(0,s.jsx)(l,{session:e,encodedPath:n})},e.id))}),(0,s.jsxs)("div",{className:"mt-6 flex items-center justify-center gap-4 text-xs text-content-tertiary",children:[(0,s.jsxs)("span",{children:["Showing ",p.length," of ",t.length," sessions",x.length<t.length&&" (".concat(t.length-x.length," hidden)")]}),f&&(0,s.jsx)("button",{onClick:()=>u(e=>e+30),className:"px-3 py-1.5 text-accent hover:text-accent-hover hover:bg-accent/10 border border-accent/20 rounded-lg transition-all",children:"Load more"})]})]})}var m=n(63),u=n(6281);function h(e){let{isOpen:t,onClose:n,onSuccess:a,currentPath:o,encodedPath:c}=e,[l,i]=(0,r.useState)(""),[d,m]=(0,r.useState)(!1),[u,h]=(0,r.useState)(null),x=(0,r.useRef)(null);if((0,r.useEffect)(()=>{t&&(i(function(e){let t=e.split("/").filter(Boolean);return t[t.length-1]||e}(o)),h(null),setTimeout(()=>{var e;return null==(e=x.current)?void 0:e.select()},0))},[t,o]),(0,r.useEffect)(()=>{function e(e){"Escape"===e.key&&t&&!d&&n()}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t,d,n]),!t)return null;async function p(e){if(e.preventDefault(),!l.trim())return void h("Name cannot be empty.");m(!0),h(null);try{let e=await fetch("/api/project/rename",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({encodedPath:c,newName:l.trim()})}),t=await e.json();if(!e.ok)throw Error(t.error||"Failed to rename project");a(t.newEncodedPath)}catch(e){h(e instanceof Error?e.message:"Unknown error")}finally{m(!1)}}return(0,s.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,s.jsx)("div",{className:"absolute inset-0 bg-black/70 backdrop-blur-sm animate-fade",onClick:d?void 0:n}),(0,s.jsxs)("div",{className:"relative bg-surface-elevated border border-edge rounded-2xl p-6 w-full max-w-md mx-4 shadow-2xl animate-modal",children:[(0,s.jsx)("h2",{className:"text-lg font-serif text-content-primary mb-4",children:"Rename Project"}),(0,s.jsxs)("form",{onSubmit:p,children:[(0,s.jsxs)("div",{className:"mb-4",children:[(0,s.jsx)("label",{htmlFor:"projectName",className:"block text-sm text-content-secondary mb-2",children:"New folder name"}),(0,s.jsx)("input",{ref:x,id:"projectName",type:"text",value:l,onChange:e=>i(e.target.value),disabled:d,className:"w-full px-3 py-2.5 bg-surface border border-edge rounded-xl text-content-primary placeholder-content-tertiary focus:outline-none focus:border-accent focus:ring-1 focus:ring-accent/30 disabled:opacity-50 transition-all",placeholder:"Enter new name",autoComplete:"off"})]}),u&&(0,s.jsx)("p",{className:"text-sm text-danger mb-4",children:u}),(0,s.jsxs)("div",{className:"flex items-center justify-end gap-3",children:[(0,s.jsx)("button",{type:"button",onClick:n,disabled:d,className:"px-4 py-2 text-sm text-content-secondary hover:text-content-primary transition-colors disabled:opacity-50",children:"Cancel"}),(0,s.jsxs)("button",{type:"submit",disabled:d||!l.trim(),className:"px-4 py-2 text-sm font-medium bg-accent hover:bg-accent-hover text-white rounded-xl transition-all disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2",children:[d&&(0,s.jsxs)("svg",{className:"w-4 h-4 animate-spin",fill:"none",viewBox:"0 0 24 24",children:[(0,s.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,s.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),d?"Renaming...":"Rename"]})]})]})]})]})}var x=n(5011),p=n(3389),f=n(449);function v(e){let{projectName:t,projectPath:n,encodedPath:a,hasMemory:c}=e,[l,i]=(0,r.useState)(!1),[d,v]=(0,r.useState)(!1),g=(0,m.useRouter)();return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("header",{className:"border-b border-edge-subtle bg-surface/80 backdrop-blur-md sticky top-0 z-10",children:(0,s.jsx)("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 py-4",children:(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)(o(),{href:"/",className:"p-2 -ml-2 text-content-tertiary hover:text-content-primary hover:bg-surface-elevated rounded-lg transition-all flex-shrink-0",children:(0,s.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})})}),(0,s.jsxs)("div",{className:"flex-1 min-w-0 hidden sm:block",children:[(0,s.jsx)("h1",{className:"text-lg font-serif text-content-primary truncate",children:t}),(0,s.jsx)("p",{className:"text-xs text-content-tertiary truncate font-mono",children:n})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[c&&(0,s.jsxs)("button",{onClick:()=>v(!0),className:"flex items-center gap-1.5 px-2.5 py-1.5 text-xs font-medium text-accent hover:text-accent-hover hover:bg-accent/10 border border-accent/20 rounded-lg transition-all",children:[(0,s.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"})}),"Memory"]}),(0,s.jsx)("button",{onClick:()=>i(!0),className:"px-2.5 py-1.5 text-xs font-medium text-accent hover:text-accent-hover hover:bg-accent/10 border border-accent/20 rounded-lg transition-all",children:"Rename"})]}),(0,s.jsx)("div",{className:"flex-1 max-w-md",children:(0,s.jsx)(u.GlobalSearch,{projectPath:a})}),(0,s.jsx)(f.ThemeToggle,{}),(0,s.jsx)(p.SyncButton,{})]})})}),(0,s.jsx)(h,{isOpen:l,onClose:()=>i(!1),onSuccess:function(e){i(!1),g.replace("/project/".concat(e))},currentPath:n,encodedPath:a}),d&&(0,s.jsx)(x.S,{encodedPath:a,onClose:()=>v(!1)})]})}var g=n(7625);let j=new Map;function y(){return(0,s.jsx)("div",{className:"grid gap-3",children:Array.from({length:5}).map((e,t)=>(0,s.jsxs)("div",{className:"p-4 bg-surface border border-edge-subtle rounded-xl animate-in stagger-".concat(t+1),children:[(0,s.jsx)("div",{className:"h-4 w-3/4 rounded skeleton-shimmer"}),(0,s.jsxs)("div",{className:"flex items-center gap-4 mt-3",children:[(0,s.jsx)("div",{className:"h-3 w-20 rounded skeleton-shimmer"}),(0,s.jsx)("div",{className:"h-3 w-16 rounded skeleton-shimmer ml-auto"})]})]},t))})}function b(e){var t,n,a,o,l;let{encodedPath:i}=e,[m,u]=(0,r.useState)(null!=(t=j.get(i))?t:null);(0,r.useEffect)(()=>{let e=!1;function t(){fetch("/api/projects/sessions?path=".concat(encodeURIComponent(i))).then(e=>e.json()).then(t=>{e||(j.set(i,t),u(t))})}return t(),window.addEventListener("sync-complete",t),()=>{e=!0,window.removeEventListener("sync-complete",t)}},[i]);let h=null!=(n=null==m?void 0:m.sessions.reduce((e,t)=>e+t.messageCount,0))?n:0,x=m?Math.max(...m.sessions.map(e=>e.lastActivity)):0;return(0,s.jsxs)("div",{className:"min-h-screen",children:[(0,s.jsx)(v,{projectName:null!=(a=null==m?void 0:m.projectName)?a:i,projectPath:null!=(o=null==m?void 0:m.decodedPath)?o:i,encodedPath:i,hasMemory:null!=(l=null==m?void 0:m.hasMemory)&&l}),(0,s.jsx)("main",{className:"max-w-5xl mx-auto px-4 sm:px-6 py-8",children:m?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"flex items-center gap-4 mb-6 text-sm text-content-secondary animate-in",children:[(0,s.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"})}),m.sessions.length," sessions"]}),(0,s.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"})}),h," messages"]}),(0,s.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),"Last active ",(0,c.fw)(x)]})]}),(0,s.jsx)("div",{className:"mb-6 animate-in stagger-1",children:(0,s.jsx)(g.m,{type:"project",projectPath:i,messageCount:h})}),(0,s.jsx)("div",{className:"animate-in stagger-2",children:(0,s.jsx)(d,{sessions:m.sessions,encodedPath:i},i)})]}):(0,s.jsx)(y,{})})]})}}},e=>{e.O(0,[176,441,255,358],()=>e(e.s=2635)),_N_E=e.O()}]);
|
package/.next/static/chunks/app/project/[projectPath]/session/[sessionId]/page-a834947a4b535ef5.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[810],{449:(e,t,s)=>{"use strict";s.d(t,{ThemeToggle:()=>o});var n=s(5155),r=s(1458);let a={system:"System",light:"Light",dark:"Dark"};function o(){let{theme:e,cycle:t}=(0,r.D)();return(0,n.jsx)("button",{onClick:t,className:"p-2 text-content-tertiary hover:text-content-secondary hover:bg-surface-elevated rounded-lg transition-all flex-shrink-0",title:"Theme: ".concat(a[e]),children:"system"===e?(0,n.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})}):"light"===e?(0,n.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"})}):(0,n.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"})})})}},467:(e,t,s)=>{"use strict";function n(e){if("number"==typeof e)return e;let t=Date.parse(e);return isNaN(t)?0:t}function r(e){let t=Date.now()-e,s=Math.floor(t/6e4),n=Math.floor(t/36e5),r=Math.floor(t/864e5),a=Math.floor(t/6048e5),o=Math.floor(t/2592e6);if(s<1)return"Just now";if(s<60)return"".concat(s,"m ago");if(n<24)return"".concat(n,"h ago");if(r<7)return"".concat(r,"d ago");if(r<30)return"".concat(a,"w ago");if(o<12)return"".concat(o,"mo ago");let c=Math.floor(o/12);return"".concat(c,"y ago")}function a(e){return new Date(n(e)).toLocaleString("en-GB",{day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"})}function o(e){return e>=1e6?"".concat((e/1e6).toFixed(1),"M"):e>=1e4?"".concat((e/1e3).toFixed(1),"k"):e.toLocaleString("en-GB")}s.d(t,{EH:()=>n,ap:()=>o,fw:()=>r,r6:()=>a})},1458:(e,t,s)=>{"use strict";s.d(t,{D:()=>o,ThemeProvider:()=>c});var n=s(5155),r=s(2115);let a=(0,r.createContext)({theme:"system",resolved:"dark",setTheme:()=>{},cycle:()=>{}});function o(){return(0,r.useContext)(a)}function c(e){let{children:t}=e,[s,o]=(0,r.useState)("system"),[c,i]=(0,r.useState)("dark");(0,r.useEffect)(()=>{let e=localStorage.getItem("theme");e&&["light","dark","system"].includes(e)&&o(e)},[]),(0,r.useEffect)(()=>{let e="system"===s?window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark":s;if(i(e),document.documentElement.setAttribute("data-theme",e),"system"===s){let e=window.matchMedia("(prefers-color-scheme: light)"),t=()=>{let t=e.matches?"light":"dark";i(t),document.documentElement.setAttribute("data-theme",t)};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)}},[s]);let l=(0,r.useCallback)(e=>{o(e),localStorage.setItem("theme",e)},[]),d=(0,r.useCallback)(()=>{let e=["system","light","dark"];l(e[(e.indexOf(s)+1)%e.length])},[s,l]);return(0,n.jsx)(a.Provider,{value:{theme:s,resolved:c,setTheme:l,cycle:d},children:t})}},3389:(e,t,s)=>{"use strict";s.d(t,{SyncButton:()=>a});var n=s(5155),r=s(2115);function a(){let[e,t]=(0,r.useState)(!1),[s,a]=(0,r.useState)(null),o=async()=>{t(!0),a(null);try{let e=await fetch("/api/sync",{method:"POST"});if(!e.ok)throw Error("Sync failed");let t=await e.json();a(t.sync),window.dispatchEvent(new Event("sync-complete")),setTimeout(()=>a(null),3e3)}catch(e){console.error("Sync error:",e)}finally{t(!1)}};return(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("button",{onClick:o,disabled:e,className:"p-2 text-content-tertiary hover:text-content-secondary hover:bg-surface-elevated rounded-lg transition-all disabled:opacity-50 disabled:cursor-not-allowed",title:"Resync database",children:(0,n.jsx)("svg",{className:"w-5 h-5 ".concat(e?"animate-spin":""),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})})}),s&&(s.added>0||s.updated>0||s.removed>0)&&(0,n.jsxs)("div",{className:"text-xs text-content-tertiary whitespace-nowrap animate-fade",children:[s.added>0&&"+".concat(s.added),s.updated>0&&" ~".concat(s.updated),s.removed>0&&" -".concat(s.removed)]})]})}},6281:(e,t,s)=>{"use strict";s.d(t,{GlobalSearch:()=>o});var n=s(5155),r=s(2115),a=s(63);function o(e){let{projectPath:t}=e,[s,o]=(0,r.useState)(""),c=(0,a.useRouter)(),i=(0,r.useRef)(null);(0,r.useEffect)(()=>{function e(e){if((e.metaKey||e.ctrlKey)&&"k"===e.key){var t;e.preventDefault(),null==(t=i.current)||t.focus()}}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[]);let l=(0,r.useCallback)(e=>{if(e.preventDefault(),s.trim()){let e=new URLSearchParams({q:s.trim()});t&&e.set("project",t),c.push("/search?".concat(e.toString()))}},[s,c,t]),d=t?"Search this project...":"Search all chats...";return(0,n.jsxs)("form",{onSubmit:l,className:"relative",children:[(0,n.jsx)("svg",{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-content-tertiary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),(0,n.jsx)("input",{ref:i,type:"text",value:s,onChange:e=>o(e.target.value),placeholder:d,className:"w-full pl-10 pr-16 py-2 bg-surface border border-edge-subtle rounded-xl text-sm text-content-primary placeholder-content-tertiary focus:outline-none focus:border-accent focus:ring-1 focus:ring-accent/30 transition-all"}),!s&&(0,n.jsxs)("kbd",{className:"absolute right-3 top-1/2 -translate-y-1/2 hidden sm:inline-flex items-center gap-0.5 px-1.5 py-0.5 text-[10px] font-mono text-content-tertiary bg-surface-elevated border border-edge-subtle rounded",children:[(0,n.jsx)("span",{className:"text-xs",children:"⌘"}),"K"]})]})}},6776:(e,t,s)=>{Promise.resolve().then(s.t.bind(s,2619,23)),Promise.resolve().then(s.bind(s,6281)),Promise.resolve().then(s.bind(s,7314)),Promise.resolve().then(s.bind(s,3389)),Promise.resolve().then(s.bind(s,449))},7314:(e,t,s)=>{"use strict";s.d(t,{SessionContent:()=>x});var n=s(5155),r=s(2115),a=s(467);function o(e){let{message:t,compact:s=!1}=e,[o,c]=(0,r.useState)(!1),i="user"===t.type,l=function(e,t){if("string"==typeof e)return e;let s=[];for(let n of e)if("text"===n.type)s.push(n.text);else if("tool_use"===n.type)s.push("[Tool: ".concat(n.name,"]"));else if("tool_result"===n.type&&t){let e="string"==typeof n.content?n.content:JSON.stringify(n.content);s.push("[Tool Result: ".concat(e.slice(0,500)).concat(e.length>500?"...":"","]"))}return s.join("\n\n")}(t.message.content,o),d=s&&!o&&l.length>300?l.slice(0,300)+"...":l,u=s&&l.length>300;return(0,n.jsx)("div",{className:"flex ".concat(i?"justify-end":"justify-start"),children:(0,n.jsxs)("div",{className:"max-w-[85%] rounded-2xl px-4 py-3 ".concat(i?"bg-accent/15 border border-accent/20 text-content-primary rounded-br-md":"bg-surface-elevated border border-edge-subtle text-content-primary rounded-bl-md"),children:[(0,n.jsxs)("div",{className:"text-[11px] mb-1.5 ".concat(i?"text-accent/60":"text-content-tertiary"),children:[i?"You":"Claude"," \xb7 ",(0,a.r6)(t.timestamp)]}),(0,n.jsx)("div",{className:"text-sm whitespace-pre-wrap break-words leading-relaxed",children:o?l:d}),u&&(0,n.jsx)("button",{onClick:()=>c(!o),className:"mt-2 text-xs font-medium ".concat(i?"text-accent/70 hover:text-accent":"text-accent hover:text-accent-hover"," transition-colors"),children:o?"Show less":"Show more"})]})})}function c(e){let{messages:t,previewCount:s=6,highlightMessageId:c,showHidden:i=!1}=e,[l,d]=(0,r.useState)(!!c),u=(0,r.useRef)(null),m=[...(0,r.useMemo)(()=>i?t:t.filter(e=>!function(e){if(e.isMeta)return!0;let t=function(e){if("string"==typeof e)return e;let t=e.find(e=>"text"===e.type);return t?t.text:""}(e.message.content);return!!(t.startsWith("<command-name>")||t.startsWith("<local-command-")||t.startsWith("Caveat:"))}(e)&&!function(e){let t=e.message.content;return"string"==typeof t?0===t.trim().length:0===t.length||!t.some(e=>"text"===e.type&&e.text.trim().length>0)}(e)),[t,i])].sort((e,t)=>(0,a.EH)(e.timestamp)-(0,a.EH)(t.timestamp)),x=l?m:m.slice(0,s),h=m.length>s;return(0,r.useEffect)(()=>{c&&u.current&&u.current.scrollIntoView({behavior:"smooth",block:"center"})},[c]),(0,n.jsxs)("div",{className:"space-y-4",children:[x.map((e,t)=>{let s=c===e.uuid;return(0,n.jsx)("div",{ref:s?u:void 0,className:"".concat(s?"ring-2 ring-accent ring-offset-2 ring-offset-base rounded-2xl":""," animate-in stagger-").concat(Math.min(t+1,10)),children:(0,n.jsx)(o,{message:e,compact:!l})},e.uuid)}),h&&(0,n.jsx)("div",{className:"flex justify-center pt-4",children:(0,n.jsx)("button",{onClick:()=>d(!l),className:"flex items-center gap-2 px-5 py-2.5 text-sm text-accent hover:text-accent-hover bg-surface hover:bg-surface-elevated border border-edge-subtle hover:border-edge-hover rounded-xl transition-all",children:l?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 15l7-7 7 7"})}),"Show preview only"]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})}),"Show all ",m.length," messages"]})})}),0===x.length&&(0,n.jsx)("div",{className:"text-center py-16 text-content-tertiary animate-fade",children:"No messages in this session"})]})}function i(e){let{sessionId:t}=e,[s,a]=(0,r.useState)(!0),[o,c]=(0,r.useState)(!1),i=s?"claude --dangerously-skip-permissions --resume ".concat(t):"claude --resume ".concat(t);async function l(){await navigator.clipboard.writeText(i),c(!0),setTimeout(()=>c(!1),2e3)}return(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsxs)("div",{className:"flex-1 min-w-0 flex items-center gap-2 px-3 py-1.5 bg-surface-elevated border border-edge-subtle rounded-lg font-mono text-xs text-content-secondary overflow-x-auto scrollbar-thin",children:[(0,n.jsx)("span",{className:"text-accent select-none shrink-0",children:"$"}),(0,n.jsx)("span",{className:"whitespace-nowrap",children:i})]}),(0,n.jsx)("button",{onClick:l,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-all shrink-0 ".concat(o?"bg-success/15 text-success border border-success/20":"bg-accent/10 text-accent hover:bg-accent/20 border border-accent/20"),children:o?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})}),"Copied"]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})}),"Copy"]})})]}),(0,n.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-content-tertiary cursor-pointer select-none w-fit",children:[(0,n.jsx)("input",{type:"checkbox",checked:s,onChange:e=>a(e.target.checked),className:"w-3.5 h-3.5 rounded border-edge-hover bg-surface-elevated text-accent focus:ring-accent focus:ring-offset-0 cursor-pointer"}),"Skip permissions"]})]})}var l=s(63);function d(e){let{encodedPath:t,sessionId:s,totalMessageCount:a,strippedMessageCount:o}=e,c=(0,l.useRouter)(),[i,d]=(0,r.useState)(!1),[u,m]=(0,r.useState)(""),[x,h]=(0,r.useState)(!1),[p,f]=(0,r.useState)(!1),[g,y]=(0,r.useState)(null),v=(0,r.useRef)(null);(0,r.useEffect)(()=>{i&&(m(""),h(!1),y(null),setTimeout(()=>{var e;return null==(e=v.current)?void 0:e.focus()},0))},[i]),(0,r.useEffect)(()=>{function e(e){"Escape"===e.key&&i&&!p&&d(!1)}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[i,p]);let b=u?parseInt(u,10):void 0,j=!u||b&&b>0,k=x?o:a,N=b?Math.min(b,k):k,w=a>0?Math.round((1-N/a)*100):0;async function C(){if(!j)return void y("Please enter a valid positive number.");f(!0),y(null);try{let e=await fetch("/api/session/duplicate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({encodedPath:t,sessionId:s,keepLastN:b,stripToolResults:x})}),n=await e.json();if(!e.ok)throw Error(n.error||"Failed to duplicate session");c.push("/project/".concat(t,"/session/").concat(n.newSessionId))}catch(e){y(e instanceof Error?e.message:"Unknown error")}finally{f(!1)}}return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{onClick:()=>d(!0),className:"px-3 py-1.5 text-sm text-accent hover:text-accent-hover hover:bg-accent/10 border border-accent/20 rounded-lg transition-all flex items-center gap-2",children:[(0,n.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})}),"Duplicate"]}),i&&(0,n.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,n.jsx)("div",{className:"absolute inset-0 bg-black/70 backdrop-blur-sm animate-fade",onClick:p?void 0:()=>d(!1)}),(0,n.jsxs)("div",{className:"relative bg-surface-elevated border border-edge rounded-2xl p-6 w-full max-w-md mx-4 shadow-2xl animate-modal",children:[(0,n.jsx)("h2",{className:"text-lg font-serif text-content-primary mb-4",children:"Duplicate Session"}),(0,n.jsxs)("div",{className:"mb-4",children:[(0,n.jsx)("label",{htmlFor:"keepLastN",className:"block text-sm text-content-secondary mb-2",children:"Keep last N messages (optional)"}),(0,n.jsx)("input",{ref:v,id:"keepLastN",type:"number",min:"1",value:u,onChange:e=>m(e.target.value),disabled:p,className:"w-full px-3 py-2.5 bg-surface border border-edge rounded-xl text-content-primary placeholder-content-tertiary focus:outline-none focus:border-accent focus:ring-1 focus:ring-accent/30 disabled:opacity-50 transition-all",placeholder:"Leave empty for all ".concat(a," messages")})]}),(0,n.jsx)("div",{className:"mb-4",children:(0,n.jsxs)("label",{className:"flex items-center gap-2 text-sm text-content-secondary cursor-pointer",children:[(0,n.jsx)("input",{type:"checkbox",checked:x,onChange:e=>h(e.target.checked),disabled:p,className:"w-4 h-4 rounded border-edge-hover bg-surface text-accent focus:ring-accent focus:ring-offset-0 disabled:opacity-50"}),"Strip tool results & system messages"]})}),(0,n.jsxs)("div",{className:"text-sm text-content-secondary mb-4 p-3 bg-surface rounded-xl border border-edge-subtle",children:[(0,n.jsxs)("div",{className:"flex justify-between",children:[(0,n.jsx)("span",{children:"Original"}),(0,n.jsxs)("span",{className:"text-content-primary",children:[a," messages"]})]}),(0,n.jsxs)("div",{className:"flex justify-between mt-1",children:[(0,n.jsx)("span",{children:"Result"}),(0,n.jsxs)("span",{className:"text-content-primary",children:[N," messages"]})]}),w>0&&(0,n.jsxs)("div",{className:"flex justify-between mt-1 text-accent",children:[(0,n.jsx)("span",{children:"Reduction"}),(0,n.jsxs)("span",{children:[w,"%"]})]})]}),g&&(0,n.jsx)("p",{className:"text-sm text-danger mb-4",children:g}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-3",children:[(0,n.jsx)("button",{type:"button",onClick:()=>d(!1),disabled:p,className:"px-4 py-2 text-sm text-content-secondary hover:text-content-primary transition-colors disabled:opacity-50",children:"Cancel"}),(0,n.jsxs)("button",{onClick:C,disabled:p||!j,className:"px-4 py-2 text-sm font-medium bg-accent hover:bg-accent-hover text-white rounded-xl transition-all disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2",children:[p&&(0,n.jsxs)("svg",{className:"w-4 h-4 animate-spin",fill:"none",viewBox:"0 0 24 24",children:[(0,n.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,n.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),p?"Duplicating...":"Duplicate"]})]})]})]})]})}function u(e){let{encodedPath:t,sessionId:s}=e,a=(0,l.useRouter)(),[o,c]=(0,r.useState)(!1),[i,d]=(0,r.useState)(!1),[u,m]=(0,r.useState)(null);async function x(){d(!0),m(null);try{let e=await fetch("/api/session/delete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({encodedPath:t,sessionId:s})}),n=await e.json();if(!e.ok)throw Error(n.error||"Failed to delete session");a.push("/project/".concat(t))}catch(e){m(e instanceof Error?e.message:"Unknown error")}finally{d(!1)}}return(0,r.useEffect)(()=>{o&&m(null)},[o]),(0,r.useEffect)(()=>{function e(e){"Escape"===e.key&&o&&!i&&c(!1)}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[o,i]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{onClick:()=>c(!0),className:"px-3 py-1.5 text-sm text-danger hover:text-danger-hover hover:bg-danger/10 border border-danger/20 rounded-lg transition-all flex items-center gap-2",children:[(0,n.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})}),"Delete"]}),o&&(0,n.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,n.jsx)("div",{className:"absolute inset-0 bg-black/70 backdrop-blur-sm animate-fade",onClick:i?void 0:()=>c(!1)}),(0,n.jsxs)("div",{className:"relative bg-surface-elevated border border-edge rounded-2xl p-6 w-full max-w-md mx-4 shadow-2xl animate-modal",children:[(0,n.jsx)("h2",{className:"text-lg font-serif text-content-primary mb-4",children:"Delete Session"}),(0,n.jsx)("p",{className:"text-sm text-content-secondary mb-4",children:"Are you sure you want to delete this session? This action cannot be undone."}),u&&(0,n.jsx)("p",{className:"text-sm text-danger mb-4",children:u}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-3",children:[(0,n.jsx)("button",{type:"button",onClick:()=>c(!1),disabled:i,className:"px-4 py-2 text-sm text-content-secondary hover:text-content-primary transition-colors disabled:opacity-50",children:"Cancel"}),(0,n.jsxs)("button",{onClick:x,disabled:i,className:"px-4 py-2 text-sm font-medium bg-danger hover:bg-danger-hover text-white rounded-xl transition-all disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2",children:[i&&(0,n.jsxs)("svg",{className:"w-4 h-4 animate-spin",fill:"none",viewBox:"0 0 24 24",children:[(0,n.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,n.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),i?"Deleting...":"Delete"]})]})]})]})]})}var m=s(7625);function x(e){let{projectPath:t,sessionId:s,messageCount:o,lastActivity:l,tokenUsage:x,totalMessageCount:h,strippedMessageCount:p,messages:f,highlightMessageId:g}=e,[y,v]=(0,r.useState)(!1);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"mb-6 bg-surface border border-edge-subtle rounded-xl animate-in",children:[(0,n.jsxs)("div",{className:"px-4 py-3 flex items-center gap-4 text-sm text-content-secondary",children:[(0,n.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,n.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"})}),o," messages"]}),(0,n.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,n.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,a.fw)(l)]}),(0,n.jsx)("span",{className:"text-xs text-content-tertiary hidden sm:inline",children:(0,a.r6)(l)}),(0,n.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-content-tertiary cursor-pointer ml-auto",children:[(0,n.jsx)("input",{type:"checkbox",checked:y,onChange:e=>v(e.target.checked),className:"w-3.5 h-3.5 rounded border-edge-hover bg-surface-elevated text-accent focus:ring-accent focus:ring-offset-0"}),"System messages"]})]}),(0,n.jsx)("div",{className:"border-t border-edge-subtle px-4 py-3",children:(0,n.jsx)(i,{sessionId:s})}),x&&(0,n.jsxs)("div",{className:"border-t border-edge-subtle px-4 py-2.5 flex flex-wrap items-center gap-x-4 gap-y-1 text-xs",children:[(0,n.jsx)("span",{className:"text-content-tertiary font-medium",children:"Tokens"}),(0,n.jsxs)("span",{children:[(0,n.jsx)("span",{className:"text-content-tertiary",children:"in"})," ",(0,n.jsx)("span",{className:"text-content-primary font-mono",children:(0,a.ap)(x.input_tokens)})]}),(0,n.jsxs)("span",{children:[(0,n.jsx)("span",{className:"text-content-tertiary",children:"out"})," ",(0,n.jsx)("span",{className:"text-content-primary font-mono",children:(0,a.ap)(x.output_tokens)})]}),(0,n.jsxs)("span",{children:[(0,n.jsx)("span",{className:"text-content-tertiary",children:"cache read"})," ",(0,n.jsx)("span",{className:"text-content-primary font-mono",children:(0,a.ap)(x.cache_read_input_tokens)})]}),(0,n.jsxs)("span",{children:[(0,n.jsx)("span",{className:"text-content-tertiary",children:"cache write"})," ",(0,n.jsx)("span",{className:"text-content-primary font-mono",children:(0,a.ap)(x.cache_creation_input_tokens)})]})]}),(0,n.jsxs)("div",{className:"border-t border-edge-subtle px-4 py-2.5 flex items-center justify-end gap-2",children:[(0,n.jsx)(d,{encodedPath:t,sessionId:s,totalMessageCount:h,strippedMessageCount:p}),(0,n.jsx)(u,{encodedPath:t,sessionId:s})]})]}),(0,n.jsx)("div",{className:"mb-6 animate-in stagger-1",children:(0,n.jsx)(m.m,{type:"session",projectPath:t,sessionId:s,messageCount:o})}),(0,n.jsx)(c,{messages:f,highlightMessageId:g,showHidden:y})]})}},7625:(e,t,s)=>{"use strict";s.d(t,{m:()=>a});var n=s(5155),r=s(2115);function a(e){let{type:t,projectPath:s,sessionId:a,messageCount:o}=e,[c,i]=(0,r.useState)(null),[l,d]=(0,r.useState)(!1),[u,m]=(0,r.useState)(null),[x,h]=(0,r.useState)(!0);async function p(){d(!0),m(null);try{let e=await fetch("/api/summary",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:t,projectPath:s,sessionId:a})}),n=await e.json();if(!e.ok)throw Error(n.error||"Failed to generate summary");i(n.summary)}catch(e){m(e instanceof Error?e.message:"Unknown error")}finally{d(!1)}}if((0,r.useEffect)(()=>{!async function(){try{let e=new URLSearchParams({type:t,project:s});a&&e.append("session",a);let n=await fetch("/api/summary?".concat(e)),r=await n.json();i(r.summary||null)}catch(e){}finally{h(!1)}}()},[t,s,a]),x)return null;let f=c&&c.messageCount<o;return(0,n.jsxs)("div",{className:"p-4 bg-surface border border-edge-subtle rounded-xl",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-4 mb-2",children:[(0,n.jsxs)("h3",{className:"text-sm font-medium text-content-secondary flex items-center gap-2",children:[(0,n.jsx)("svg",{className:"w-4 h-4 text-accent",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 10V3L4 14h7v7l9-11h-7z"})}),"AI Summary",f&&(0,n.jsx)("span",{className:"text-xs text-accent/60",children:"(outdated)"})]}),(0,n.jsx)("button",{onClick:p,disabled:l,className:"px-3 py-1 text-xs font-medium text-accent hover:text-accent-hover hover:bg-accent/10 rounded-lg transition-all disabled:opacity-50 disabled:cursor-not-allowed",children:l?"Generating...":c?"Regenerate":"Generate"})]}),u&&(0,n.jsx)("p",{className:"text-sm text-danger mb-2",children:u}),c?(0,n.jsx)("p",{className:"text-sm text-content-secondary leading-relaxed",children:c.content}):!l&&(0,n.jsx)("p",{className:"text-sm text-content-tertiary italic",children:'No summary yet. Click "Generate" to create one.'}),l&&(0,n.jsxs)("div",{className:"flex items-center gap-2 text-sm text-content-tertiary",children:[(0,n.jsxs)("svg",{className:"w-4 h-4 animate-spin",fill:"none",viewBox:"0 0 24 24",children:[(0,n.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,n.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Invoking Claude CLI..."]})]})}}},e=>{e.O(0,[176,441,255,358],()=>e(e.s=6776)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[959],{449:(e,t,r)=>{"use strict";r.d(t,{ThemeToggle:()=>o});var n=r(5155),s=r(1458);let a={system:"System",light:"Light",dark:"Dark"};function o(){let{theme:e,cycle:t}=(0,s.D)();return(0,n.jsx)("button",{onClick:t,className:"p-2 text-content-tertiary hover:text-content-secondary hover:bg-surface-elevated rounded-lg transition-all flex-shrink-0",title:"Theme: ".concat(a[e]),children:"system"===e?(0,n.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})}):"light"===e?(0,n.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"})}):(0,n.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"})})})}},467:(e,t,r)=>{"use strict";function n(e){if("number"==typeof e)return e;let t=Date.parse(e);return isNaN(t)?0:t}function s(e){let t=Date.now()-e,r=Math.floor(t/6e4),n=Math.floor(t/36e5),s=Math.floor(t/864e5),a=Math.floor(t/6048e5),o=Math.floor(t/2592e6);if(r<1)return"Just now";if(r<60)return"".concat(r,"m ago");if(n<24)return"".concat(n,"h ago");if(s<7)return"".concat(s,"d ago");if(s<30)return"".concat(a,"w ago");if(o<12)return"".concat(o,"mo ago");let c=Math.floor(o/12);return"".concat(c,"y ago")}function a(e){return new Date(n(e)).toLocaleString("en-GB",{day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"})}function o(e){return e>=1e6?"".concat((e/1e6).toFixed(1),"M"):e>=1e4?"".concat((e/1e3).toFixed(1),"k"):e.toLocaleString("en-GB")}r.d(t,{EH:()=>n,ap:()=>o,fw:()=>s,r6:()=>a})},1458:(e,t,r)=>{"use strict";r.d(t,{D:()=>o,ThemeProvider:()=>c});var n=r(5155),s=r(2115);let a=(0,s.createContext)({theme:"system",resolved:"dark",setTheme:()=>{},cycle:()=>{}});function o(){return(0,s.useContext)(a)}function c(e){let{children:t}=e,[r,o]=(0,s.useState)("system"),[c,i]=(0,s.useState)("dark");(0,s.useEffect)(()=>{let e=localStorage.getItem("theme");e&&["light","dark","system"].includes(e)&&o(e)},[]),(0,s.useEffect)(()=>{let e="system"===r?window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark":r;if(i(e),document.documentElement.setAttribute("data-theme",e),"system"===r){let e=window.matchMedia("(prefers-color-scheme: light)"),t=()=>{let t=e.matches?"light":"dark";i(t),document.documentElement.setAttribute("data-theme",t)};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)}},[r]);let l=(0,s.useCallback)(e=>{o(e),localStorage.setItem("theme",e)},[]),d=(0,s.useCallback)(()=>{let e=["system","light","dark"];l(e[(e.indexOf(r)+1)%e.length])},[r,l]);return(0,n.jsx)(a.Provider,{value:{theme:r,resolved:c,setTheme:l,cycle:d},children:t})}},2436:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,2619,23)),Promise.resolve().then(r.bind(r,6592)),Promise.resolve().then(r.bind(r,6281)),Promise.resolve().then(r.bind(r,3389)),Promise.resolve().then(r.bind(r,449))},3389:(e,t,r)=>{"use strict";r.d(t,{SyncButton:()=>a});var n=r(5155),s=r(2115);function a(){let[e,t]=(0,s.useState)(!1),[r,a]=(0,s.useState)(null),o=async()=>{t(!0),a(null);try{let e=await fetch("/api/sync",{method:"POST"});if(!e.ok)throw Error("Sync failed");let t=await e.json();a(t.sync),window.dispatchEvent(new Event("sync-complete")),setTimeout(()=>a(null),3e3)}catch(e){console.error("Sync error:",e)}finally{t(!1)}};return(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("button",{onClick:o,disabled:e,className:"p-2 text-content-tertiary hover:text-content-secondary hover:bg-surface-elevated rounded-lg transition-all disabled:opacity-50 disabled:cursor-not-allowed",title:"Resync database",children:(0,n.jsx)("svg",{className:"w-5 h-5 ".concat(e?"animate-spin":""),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})})}),r&&(r.added>0||r.updated>0||r.removed>0)&&(0,n.jsxs)("div",{className:"text-xs text-content-tertiary whitespace-nowrap animate-fade",children:[r.added>0&&"+".concat(r.added),r.updated>0&&" ~".concat(r.updated),r.removed>0&&" -".concat(r.removed)]})]})}},6281:(e,t,r)=>{"use strict";r.d(t,{GlobalSearch:()=>o});var n=r(5155),s=r(2115),a=r(63);function o(e){let{projectPath:t}=e,[r,o]=(0,s.useState)(""),c=(0,a.useRouter)(),i=(0,s.useRef)(null);(0,s.useEffect)(()=>{function e(e){if((e.metaKey||e.ctrlKey)&&"k"===e.key){var t;e.preventDefault(),null==(t=i.current)||t.focus()}}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[]);let l=(0,s.useCallback)(e=>{if(e.preventDefault(),r.trim()){let e=new URLSearchParams({q:r.trim()});t&&e.set("project",t),c.push("/search?".concat(e.toString()))}},[r,c,t]),d=t?"Search this project...":"Search all chats...";return(0,n.jsxs)("form",{onSubmit:l,className:"relative",children:[(0,n.jsx)("svg",{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-content-tertiary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),(0,n.jsx)("input",{ref:i,type:"text",value:r,onChange:e=>o(e.target.value),placeholder:d,className:"w-full pl-10 pr-16 py-2 bg-surface border border-edge-subtle rounded-xl text-sm text-content-primary placeholder-content-tertiary focus:outline-none focus:border-accent focus:ring-1 focus:ring-accent/30 transition-all"}),!r&&(0,n.jsxs)("kbd",{className:"absolute right-3 top-1/2 -translate-y-1/2 hidden sm:inline-flex items-center gap-0.5 px-1.5 py-0.5 text-[10px] font-mono text-content-tertiary bg-surface-elevated border border-edge-subtle rounded",children:[(0,n.jsx)("span",{className:"text-xs",children:"⌘"}),"K"]})]})}},6592:(e,t,r)=>{"use strict";r.d(t,{SearchResults:()=>i});var n=r(5155),s=r(2115),a=r(2619),o=r.n(a),c=r(467);function i(e){let{query:t,projectPath:r}=e,[a,i]=(0,s.useState)([]),[l,d]=(0,s.useState)(null),[u,h]=(0,s.useState)(!1),[m,x]=(0,s.useState)(null);return((0,s.useEffect)(()=>{if(!t.trim())return void i([]);(async()=>{h(!0),x(null);try{let e=new URLSearchParams({q:t});r&&e.set("project",r);let n=await fetch("/api/search?".concat(e.toString()));if(!n.ok)throw Error("Search failed");let s=await n.json();i(s.results),d(s.stats)}catch(e){x("Failed to search. Please try again."),i([])}finally{h(!1)}})()},[t,r]),t.trim())?u?(0,n.jsxs)("div",{className:"text-center py-16 animate-fade",children:[(0,n.jsx)("div",{className:"w-8 h-8 mx-auto border-2 border-edge-hover border-t-accent rounded-full animate-spin mb-4"}),(0,n.jsx)("p",{className:"text-content-secondary",children:"Searching..."})]}):m?(0,n.jsxs)("div",{className:"text-center py-16 animate-fade",children:[(0,n.jsx)("svg",{className:"w-12 h-12 mx-auto text-danger mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})}),(0,n.jsx)("p",{className:"text-danger",children:m})]}):0===a.length?(0,n.jsxs)("div",{className:"text-center py-16 animate-fade",children:[(0,n.jsx)("svg",{className:"w-12 h-12 mx-auto text-content-tertiary/50 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M9.172 16.172a4 4 0 015.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,n.jsxs)("p",{className:"text-content-secondary",children:["No results found for “",t,"”"]})]}):(0,n.jsxs)("div",{children:[(0,n.jsxs)("p",{className:"text-sm text-content-tertiary mb-4 animate-fade",children:["Found ",a.length," result",1!==a.length?"s":""," for “",t,"”"]}),(0,n.jsx)("div",{className:"space-y-3",children:a.map((e,t)=>(0,n.jsxs)(o(),{href:"/project/".concat(e.projectPath,"/session/").concat(e.sessionId,"?highlight=").concat(e.messageUuid),className:"block p-4 bg-surface border border-edge-subtle rounded-xl hover:border-edge-hover hover:bg-surface-elevated transition-all duration-300 animate-in stagger-".concat(Math.min(t+1,10)),children:[(0,n.jsxs)("div",{className:"flex items-start justify-between gap-4 mb-2",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,n.jsx)("span",{className:"px-2 py-0.5 rounded text-xs font-medium ".concat("user"===e.userType?"bg-info/15 text-info":"bg-accent/15 text-accent"),children:e.userType}),(0,n.jsx)("span",{className:"text-content-secondary",children:e.projectName})]}),e.timestamp>0&&(0,n.jsx)("span",{className:"text-xs text-content-tertiary whitespace-nowrap",children:(0,c.fw)(e.timestamp)})]}),(0,n.jsx)("p",{className:"text-sm text-content-secondary line-clamp-3 [&>mark]:bg-accent/25 [&>mark]:text-accent-hover [&>mark]:px-0.5 [&>mark]:rounded",dangerouslySetInnerHTML:{__html:e.snippet}}),(0,n.jsx)("p",{className:"text-[11px] text-content-tertiary mt-2 font-mono truncate opacity-50",children:e.sessionId})]},"".concat(e.sessionId,"-").concat(e.messageUuid,"-").concat(t)))})]}):(0,n.jsxs)("div",{className:"text-center py-16 animate-fade",children:[(0,n.jsx)("svg",{className:"w-12 h-12 mx-auto text-content-tertiary/50 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),(0,n.jsxs)("p",{className:"text-content-secondary",children:["Enter a search query to find messages ",r?"in this project":"across all chats"]}),l&&(0,n.jsxs)("p",{className:"text-sm text-content-tertiary mt-2",children:[l.messageCount.toLocaleString()," messages indexed across ",l.fileCount," sessions"]})]})}}},e=>{e.O(0,[176,441,255,358],()=>e(e.s=2436)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var e={},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var a=t[o]={exports:{}},i=!0;try{e[o](a,a.exports,r),i=!1}finally{i&&delete t[o]}return a.exports}r.m=e,(()=>{var e=[];r.O=(t,o,n,a)=>{if(o){a=a||0;for(var i=e.length;i>0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[o,n,a];return}for(var u=1/0,i=0;i<e.length;i++){for(var[o,n,a]=e[i],l=!0,c=0;c<o.length;c++)(!1&a||u>=a)&&Object.keys(r.O).every(e=>r.O[e](o[c]))?o.splice(c--,1):(l=!1,a<u&&(u=a));if(l){e.splice(i--,1);var d=n();void 0!==d&&(t=d)}}return t}})(),r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,n){if(1&n&&(o=this(o)),8&n||"object"==typeof o&&o&&(4&n&&o.__esModule||16&n&&"function"==typeof o.then))return o;var a=Object.create(null);r.r(a);var i={};e=e||[null,t({}),t([]),t(t)];for(var u=2&n&&o;"object"==typeof u&&!~e.indexOf(u);u=t(u))Object.getOwnPropertyNames(u).forEach(e=>i[e]=()=>o[e]);return i.default=()=>o,r.d(a,i),a}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>{},r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(o,n,a,i)=>{if(e[o])return void e[o].push(n);if(void 0!==a)for(var u,l,c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var f=c[d];if(f.getAttribute("src")==o||f.getAttribute("data-webpack")==t+a){u=f;break}}u||(l=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,r.nc&&u.setAttribute("nonce",r.nc),u.setAttribute("data-webpack",t+a),u.src=r.tu(o)),e[o]=[n];var s=(t,r)=>{u.onerror=u.onload=null,clearTimeout(p);var n=e[o];if(delete e[o],u.parentNode&&u.parentNode.removeChild(u),n&&n.forEach(e=>e(r)),t)return t(r)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=s.bind(null,u.onerror),u.onload=s.bind(null,u.onload),l&&document.head.appendChild(u)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/_next/",(()=>{var e={68:0,
|
|
1
|
+
(()=>{"use strict";var e={},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var a=t[o]={exports:{}},i=!0;try{e[o](a,a.exports,r),i=!1}finally{i&&delete t[o]}return a.exports}r.m=e,(()=>{var e=[];r.O=(t,o,n,a)=>{if(o){a=a||0;for(var i=e.length;i>0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[o,n,a];return}for(var u=1/0,i=0;i<e.length;i++){for(var[o,n,a]=e[i],l=!0,c=0;c<o.length;c++)(!1&a||u>=a)&&Object.keys(r.O).every(e=>r.O[e](o[c]))?o.splice(c--,1):(l=!1,a<u&&(u=a));if(l){e.splice(i--,1);var d=n();void 0!==d&&(t=d)}}return t}})(),r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,n){if(1&n&&(o=this(o)),8&n||"object"==typeof o&&o&&(4&n&&o.__esModule||16&n&&"function"==typeof o.then))return o;var a=Object.create(null);r.r(a);var i={};e=e||[null,t({}),t([]),t(t)];for(var u=2&n&&o;"object"==typeof u&&!~e.indexOf(u);u=t(u))Object.getOwnPropertyNames(u).forEach(e=>i[e]=()=>o[e]);return i.default=()=>o,r.d(a,i),a}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>{},r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(o,n,a,i)=>{if(e[o])return void e[o].push(n);if(void 0!==a)for(var u,l,c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var f=c[d];if(f.getAttribute("src")==o||f.getAttribute("data-webpack")==t+a){u=f;break}}u||(l=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,r.nc&&u.setAttribute("nonce",r.nc),u.setAttribute("data-webpack",t+a),u.src=r.tu(o)),e[o]=[n];var s=(t,r)=>{u.onerror=u.onload=null,clearTimeout(p);var n=e[o];if(delete e[o],u.parentNode&&u.parentNode.removeChild(u),n&&n.forEach(e=>e(r)),t)return t(r)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=s.bind(null,u.onerror),u.onload=s.bind(null,u.onload),l&&document.head.appendChild(u)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/_next/",(()=>{var e={68:0,938:0};r.f.j=(t,o)=>{var n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)o.push(n[2]);else if(/^(6|93)8$/.test(t))e[t]=0;else{var a=new Promise((r,o)=>n=e[t]=[r,o]);o.push(n[2]=a);var i=r.p+r.u(t),u=Error();r.l(i,o=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=o&&("load"===o.type?"missing":o.type),i=o&&o.target&&o.target.src;u.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",u.name="ChunkLoadError",u.type=a,u.request=i,n[1](u)}},"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,o)=>{var n,a,[i,u,l]=o,c=0;if(i.some(t=>0!==e[t])){for(n in u)r.o(u,n)&&(r.m[n]=u[n]);if(l)var d=l(r)}for(t&&t(o);c<i.length;c++)a=i[c],r.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return r.O(d)},o=self.webpackChunk_N_E=self.webpackChunk_N_E||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})()})();
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(/_next/static/media/13971731025ec697-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Sans Fallback;src:local("Arial");ascent-override:94.90%;descent-override:29.66%;line-gap-override:0.00%;size-adjust:104.53%}.__className_0d7163{font-family:DM Sans,DM Sans Fallback;font-style:normal}.__variable_0d7163{--font-sans:"DM Sans","DM Sans Fallback"}@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/35f3de0ebb1cfc70-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e6099e249fd938cc-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Instrument Serif Fallback";src:local("Times New Roman");ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.00%;size-adjust:83.94%}.__className_315a98{font-family:"Instrument Serif","Instrument Serif Fallback";font-weight:400;font-style:normal}.__variable_315a98{--font-serif:"Instrument Serif","Instrument Serif Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_3c557b{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_3c557b{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
|
|
2
|
+
! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com
|
|
3
|
+
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans),system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--font-mono),Menlo,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.left-3{left:.75rem}.right-3{right:.75rem}.top-0{top:0}.top-1\/2{top:50%}.z-10{z-index:10}.z-50{z-index:50}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.-ml-2{margin-left:-.5rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-2,.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-3{-webkit-line-clamp:3}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-12{height:3rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-\[18px\]{height:18px}.max-h-\[80vh\]{max-height:80vh}.min-h-screen{min-height:100vh}.w-12{width:3rem}.w-16{width:4rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-\[18px\]{width:18px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.max-w-2xl{max-width:42rem}.max-w-5xl{max-width:64rem}.max-w-\[85\%\]{max-width:85%}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-bl-md{border-bottom-left-radius:.375rem}.rounded-br-md{border-bottom-right-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-accent\/20{border-color:rgb(var(--accent)/.2)}.border-danger\/20{border-color:rgb(var(--error)/.2)}.border-edge{--tw-border-opacity:1;border-color:rgb(var(--border-default)/var(--tw-border-opacity,1))}.border-edge-hover{--tw-border-opacity:1;border-color:rgb(var(--border-hover)/var(--tw-border-opacity,1))}.border-edge-subtle{--tw-border-opacity:1;border-color:rgb(var(--border-subtle)/var(--tw-border-opacity,1))}.border-success\/20{border-color:rgb(var(--success)/.2)}.border-t-accent{--tw-border-opacity:1;border-top-color:rgb(var(--accent)/var(--tw-border-opacity,1))}.bg-accent{--tw-bg-opacity:1;background-color:rgb(var(--accent)/var(--tw-bg-opacity,1))}.bg-accent\/10{background-color:rgb(var(--accent)/.1)}.bg-accent\/15{background-color:rgb(var(--accent)/.15)}.bg-black\/70{background-color:rgb(0 0 0/.7)}.bg-danger{--tw-bg-opacity:1;background-color:rgb(var(--error)/var(--tw-bg-opacity,1))}.bg-info\/15{background-color:rgb(var(--info)/.15)}.bg-success\/15{background-color:rgb(var(--success)/.15)}.bg-surface{--tw-bg-opacity:1;background-color:rgb(var(--bg-surface)/var(--tw-bg-opacity,1))}.bg-surface-elevated{--tw-bg-opacity:1;background-color:rgb(var(--bg-elevated)/var(--tw-bg-opacity,1))}.bg-surface\/80{background-color:rgb(var(--bg-surface)/.8)}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pl-10{padding-left:2.5rem}.pr-10{padding-right:2.5rem}.pr-16{padding-right:4rem}.pt-4{padding-top:1rem}.text-center{text-align:center}.font-mono{font-family:var(--font-mono),Menlo,monospace}.font-sans{font-family:var(--font-sans),system-ui,sans-serif}.font-serif{font-family:var(--font-serif),Georgia,serif}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-accent{--tw-text-opacity:1;color:rgb(var(--accent)/var(--tw-text-opacity,1))}.text-accent\/60{color:rgb(var(--accent)/.6)}.text-accent\/70{color:rgb(var(--accent)/.7)}.text-accent\/80{color:rgb(var(--accent)/.8)}.text-content-primary{--tw-text-opacity:1;color:rgb(var(--text-primary)/var(--tw-text-opacity,1))}.text-content-secondary{--tw-text-opacity:1;color:rgb(var(--text-secondary)/var(--tw-text-opacity,1))}.text-content-tertiary{--tw-text-opacity:1;color:rgb(var(--text-tertiary)/var(--tw-text-opacity,1))}.text-content-tertiary\/50{color:rgb(var(--text-tertiary)/.5)}.text-danger{--tw-text-opacity:1;color:rgb(var(--error)/var(--tw-text-opacity,1))}.text-info{--tw-text-opacity:1;color:rgb(var(--info)/var(--tw-text-opacity,1))}.text-success{--tw-text-opacity:1;color:rgb(var(--success)/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-content-tertiary::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(var(--text-tertiary)/var(--tw-placeholder-opacity,1))}.placeholder-content-tertiary::placeholder{--tw-placeholder-opacity:1;color:rgb(var(--text-tertiary)/var(--tw-placeholder-opacity,1))}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgb(0 0 0/0.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-accent{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--accent)/var(--tw-ring-opacity,1))}.ring-offset-2{--tw-ring-offset-width:2px}.ring-offset-base{--tw-ring-offset-color:rgb(var(--bg-base)/1)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-md,.backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}:root{--bg-base:11 10 9;--bg-surface:19 18 15;--bg-elevated:28 26 22;--bg-overlay:36 34 30;--border-subtle:38 36 32;--border-default:54 51 46;--border-hover:77 72 66;--accent:199 125 79;--accent-hover:217 154 108;--text-primary:236 232 228;--text-secondary:185 180 172;--text-tertiary:140 135 126;--success:107 143 113;--error:199 84 80;--error-hover:212 112 108;--info:107 143 179}[data-theme=light]{--bg-base:252 250 247;--bg-surface:255 254 252;--bg-elevated:245 242 237;--bg-overlay:237 233 227;--border-subtle:230 226 218;--border-default:213 208 199;--border-hover:187 181 172;--accent:175 95 45;--accent-hover:155 80 35;--text-primary:28 25 22;--text-secondary:105 99 90;--text-tertiary:160 153 143;--success:68 125 75;--error:195 65 60;--error-hover:175 50 45;--info:55 115 165}body{background-color:rgb(var(--bg-base));background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.025) 1px,transparent 0);background-size:32px 32px;color:rgb(var(--text-primary));-webkit-font-smoothing:antialiased}[data-theme=light] body{background-image:radial-gradient(circle at 1px 1px,rgba(0,0,0,.04) 1px,transparent 0)}@keyframes fade-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-in{animation:fade-in-up .45s cubic-bezier(.16,1,.3,1) both}.animate-fade{animation:fade-in .3s ease both}.animate-modal{animation:slide-up .35s cubic-bezier(.16,1,.3,1) both}.stagger-1{animation-delay:30ms}.stagger-2{animation-delay:60ms}.stagger-3{animation-delay:90ms}.stagger-4{animation-delay:.12s}.stagger-5{animation-delay:.15s}.stagger-6{animation-delay:.18s}.stagger-7{animation-delay:.21s}.stagger-8{animation-delay:.24s}.stagger-9{animation-delay:.27s}.stagger-10{animation-delay:.3s}.skeleton-shimmer{background:linear-gradient(90deg,rgb(var(--bg-elevated)) 0,rgb(var(--bg-overlay)) 50%,rgb(var(--bg-elevated)) 100%);background-size:200% 100%;animation:shimmer 2s ease-in-out infinite}.scrollbar-thin::-webkit-scrollbar{width:6px;height:6px}.scrollbar-thin::-webkit-scrollbar-track{background:transparent}.scrollbar-thin::-webkit-scrollbar-thumb{background:rgb(var(--border-default));border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:rgb(var(--border-hover))}select option{background:rgb(var(--bg-surface));color:rgb(var(--text-primary))}.hover\:border-edge-hover:hover{--tw-border-opacity:1;border-color:rgb(var(--border-hover)/var(--tw-border-opacity,1))}.hover\:bg-accent-hover:hover{--tw-bg-opacity:1;background-color:rgb(var(--accent-hover)/var(--tw-bg-opacity,1))}.hover\:bg-accent\/10:hover{background-color:rgb(var(--accent)/.1)}.hover\:bg-accent\/20:hover{background-color:rgb(var(--accent)/.2)}.hover\:bg-danger-hover:hover{--tw-bg-opacity:1;background-color:rgb(var(--error-hover)/var(--tw-bg-opacity,1))}.hover\:bg-danger\/10:hover{background-color:rgb(var(--error)/.1)}.hover\:bg-surface-elevated:hover{--tw-bg-opacity:1;background-color:rgb(var(--bg-elevated)/var(--tw-bg-opacity,1))}.hover\:text-accent:hover{--tw-text-opacity:1;color:rgb(var(--accent)/var(--tw-text-opacity,1))}.hover\:text-accent-hover:hover{--tw-text-opacity:1;color:rgb(var(--accent-hover)/var(--tw-text-opacity,1))}.hover\:text-content-primary:hover{--tw-text-opacity:1;color:rgb(var(--text-primary)/var(--tw-text-opacity,1))}.hover\:text-content-secondary:hover{--tw-text-opacity:1;color:rgb(var(--text-secondary)/var(--tw-text-opacity,1))}.hover\:text-danger-hover:hover{--tw-text-opacity:1;color:rgb(var(--error-hover)/var(--tw-text-opacity,1))}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-accent\/\[0\.04\]:hover{--tw-shadow-color:rgb(var(--accent)/0.04);--tw-shadow:var(--tw-shadow-colored)}.focus\:border-accent:focus{--tw-border-opacity:1;border-color:rgb(var(--accent)/var(--tw-border-opacity,1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-accent:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--accent)/var(--tw-ring-opacity,1))}.focus\:ring-accent\/30:focus{--tw-ring-color:rgb(var(--accent)/0.3)}.focus\:ring-offset-0:focus{--tw-ring-offset-width:0px}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent{--tw-text-opacity:1;color:rgb(var(--accent)/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:block{display:block}.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:flex-row{flex-direction:row}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.\[\&\>mark\]\:rounded>mark{border-radius:.25rem}.\[\&\>mark\]\:bg-accent\/25>mark{background-color:rgb(var(--accent)/.25)}.\[\&\>mark\]\:px-0\.5>mark{padding-left:.125rem;padding-right:.125rem}.\[\&\>mark\]\:text-accent-hover>mark{--tw-text-opacity:1;color:rgb(var(--accent-hover)/var(--tw-text-opacity,1))}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/README.md
CHANGED
|
@@ -1,53 +1,68 @@
|
|
|
1
1
|
# Claude Code Chats
|
|
2
2
|
|
|
3
|
-
A
|
|
3
|
+
A web app for browsing and searching your local [Claude Code](https://docs.anthropic.com/en/docs/claude-code) chat history.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
|
-
- **Project Browser**
|
|
8
|
-
- **Session History**
|
|
9
|
-
- **Message Viewer**
|
|
10
|
-
- **
|
|
11
|
-
- **Session
|
|
12
|
-
- **AI Summaries**
|
|
13
|
-
- **
|
|
7
|
+
- **Project Browser** — View all your Claude Code projects with search, filter, and sorting (recent, name, messages, sessions)
|
|
8
|
+
- **Session History** — Browse chat sessions for each project with timestamps and message counts
|
|
9
|
+
- **Message Viewer** — Expand full conversation threads including tool use and results
|
|
10
|
+
- **Full-Text Search** — Search across all messages with optional project-scoped filtering, powered by SQLite FTS5
|
|
11
|
+
- **Session Management** — Resume, duplicate, or delete sessions
|
|
12
|
+
- **AI Summaries** — Generate summaries for sessions and projects via the Claude CLI
|
|
13
|
+
- **Project Memory** — View project memory files when available
|
|
14
|
+
- **Database Sync** — One-click sync to index your chat history into a local SQLite database
|
|
15
|
+
|
|
16
|
+
## Quick Start
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npx cc-chats
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
This downloads, builds, and starts the app on [http://localhost:3000](http://localhost:3000).
|
|
23
|
+
|
|
24
|
+
To use a different port:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npx cc-chats --port 4000
|
|
28
|
+
```
|
|
14
29
|
|
|
15
30
|
## Prerequisites
|
|
16
31
|
|
|
17
32
|
- Node.js 18+
|
|
18
|
-
- Claude Code installed locally (
|
|
33
|
+
- Claude Code installed locally (reads from `~/.claude/projects`)
|
|
19
34
|
|
|
20
|
-
##
|
|
35
|
+
## Install Globally
|
|
21
36
|
|
|
22
37
|
```bash
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
npm install
|
|
38
|
+
npm install -g cc-chats
|
|
39
|
+
cc-chats
|
|
26
40
|
```
|
|
27
41
|
|
|
28
|
-
##
|
|
42
|
+
## Development
|
|
29
43
|
|
|
30
44
|
```bash
|
|
45
|
+
git clone https://github.com/psousa50/claude-code-chats.git
|
|
46
|
+
cd claude-code-chats
|
|
47
|
+
npm install
|
|
31
48
|
npm run dev
|
|
32
49
|
```
|
|
33
50
|
|
|
34
|
-
|
|
51
|
+
## How It Works
|
|
52
|
+
|
|
53
|
+
The app reads Claude Code's local JSONL files at `~/.claude/projects` to display your chat history. Clicking **Sync** indexes all conversations into a SQLite database at `~/.claude/chat-search.db` for fast full-text search.
|
|
35
54
|
|
|
36
55
|
## AI Summaries
|
|
37
56
|
|
|
38
|
-
|
|
57
|
+
Summaries are generated by invoking `claude -p` under the hood. This requires Claude Code to be installed and authenticated on your machine.
|
|
39
58
|
|
|
40
59
|
## Tech Stack
|
|
41
60
|
|
|
42
|
-
- [Next.js 15](https://nextjs.org/)
|
|
43
|
-
- [React 19](https://react.dev/)
|
|
44
|
-
- [Tailwind CSS](https://tailwindcss.com/)
|
|
45
|
-
- [better-sqlite3](https://github.com/WiseLibs/better-sqlite3)
|
|
46
|
-
- [TypeScript](https://www.typescriptlang.org/)
|
|
47
|
-
|
|
48
|
-
## How It Works
|
|
49
|
-
|
|
50
|
-
The app reads Claude Code's local storage at `~/.claude/projects` to display your chat history. It creates a SQLite database for fast full-text search across all your conversations.
|
|
61
|
+
- [Next.js 15](https://nextjs.org/) — React framework
|
|
62
|
+
- [React 19](https://react.dev/) — UI library
|
|
63
|
+
- [Tailwind CSS](https://tailwindcss.com/) — Styling
|
|
64
|
+
- [better-sqlite3](https://github.com/WiseLibs/better-sqlite3) — Local SQLite database
|
|
65
|
+
- [TypeScript](https://www.typescriptlang.org/) — Type safety
|
|
51
66
|
|
|
52
67
|
## Disclaimer
|
|
53
68
|
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{1492:(e,s,_)=>{Promise.resolve().then(_.t.bind(_,3673,23))},3673:()=>{}},e=>{e.O(0,[978,441,255,358],()=>e(e.s=1492)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{467:(e,t,r)=>{"use strict";function s(e){if("number"==typeof e)return e;let t=Date.parse(e);return isNaN(t)?0:t}function n(e){let t=Date.now()-e,r=Math.floor(t/6e4),s=Math.floor(t/36e5),n=Math.floor(t/864e5),a=Math.floor(t/6048e5),o=Math.floor(t/2592e6);if(r<1)return"Just now";if(r<60)return"".concat(r,"m ago");if(s<24)return"".concat(s,"h ago");if(n<7)return"".concat(n,"d ago");if(n<30)return"".concat(a,"w ago");if(o<12)return"".concat(o,"mo ago");let l=Math.floor(o/12);return"".concat(l,"y ago")}function a(e){return new Date(s(e)).toLocaleString("en-GB",{day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"})}r.d(t,{EH:()=>s,fw:()=>n,r6:()=>a})},1046:(e,t,r)=>{"use strict";r.d(t,{D:()=>n});var s=r(5155);function n(e){let{value:t,onChange:r,placeholder:n="Search..."}=e;return(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)("svg",{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-neutral-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),(0,s.jsx)("input",{type:"text",value:t,onChange:e=>r(e.target.value),placeholder:n,className:"w-full pl-10 pr-4 py-2.5 bg-neutral-900 border border-neutral-800 rounded-lg text-sm placeholder-neutral-500 focus:outline-none focus:border-amber-600 focus:ring-1 focus:ring-amber-600 transition-colors"}),t&&(0,s.jsx)("button",{onClick:()=>r(""),className:"absolute right-3 top-1/2 -translate-y-1/2 text-neutral-500 hover:text-neutral-300",children:(0,s.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})}},3389:(e,t,r)=>{"use strict";r.d(t,{SyncButton:()=>a});var s=r(5155),n=r(2115);function a(){let[e,t]=(0,n.useState)(!1),[r,a]=(0,n.useState)(null),o=async()=>{t(!0),a(null);try{let e=await fetch("/api/sync",{method:"POST"});if(!e.ok)throw Error("Sync failed");let t=await e.json();a(t.sync),window.dispatchEvent(new Event("sync-complete")),setTimeout(()=>a(null),3e3)}catch(e){console.error("Sync error:",e)}finally{t(!1)}};return(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("button",{onClick:o,disabled:e,className:"p-2 text-neutral-400 hover:text-neutral-200 hover:bg-neutral-800 rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Resync database",children:(0,s.jsx)("svg",{className:"w-5 h-5 ".concat(e?"animate-spin":""),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})})}),r&&(r.added>0||r.updated>0||r.removed>0)&&(0,s.jsxs)("div",{className:"text-xs text-neutral-500 whitespace-nowrap",children:[r.added>0&&"+".concat(r.added),r.updated>0&&" ~".concat(r.updated),r.removed>0&&" -".concat(r.removed)]})]})}},5011:(e,t,r)=>{"use strict";r.d(t,{S:()=>a});var s=r(5155),n=r(2115);function a(e){let{encodedPath:t,onClose:r}=e,[a,o]=(0,n.useState)(null),[l,i]=(0,n.useState)(null),c=(0,n.useRef)(null);return(0,n.useEffect)(()=>{fetch("/api/projects/memory?path=".concat(encodeURIComponent(t))).then(e=>{if(!e.ok)throw Error("Failed to load");return e.json()}).then(e=>o(e.files)).catch(()=>i("Failed to load memory"))},[t]),(0,n.useEffect)(()=>{function e(e){"Escape"===e.key&&r()}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[r]),(0,s.jsx)("div",{ref:c,className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm",onClick:e=>{e.target===c.current&&r()},children:(0,s.jsxs)("div",{className:"bg-neutral-900 border border-neutral-700 rounded-lg w-full max-w-2xl max-h-[80vh] flex flex-col shadow-2xl mx-4",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between px-5 py-3 border-b border-neutral-800",children:[(0,s.jsx)("h2",{className:"text-sm font-medium text-neutral-200",children:"Project Memory"}),(0,s.jsx)("button",{onClick:r,className:"text-neutral-500 hover:text-neutral-300 transition-colors",children:(0,s.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,s.jsxs)("div",{className:"overflow-y-auto p-5 space-y-6",children:[l&&(0,s.jsx)("p",{className:"text-sm text-red-400",children:l}),!a&&!l&&(0,s.jsx)("p",{className:"text-sm text-neutral-500",children:"Loading..."}),null==a?void 0:a.map(e=>(0,s.jsxs)("div",{children:[a.length>1&&(0,s.jsx)("h3",{className:"text-xs font-medium text-amber-500/80 mb-2",children:e.name}),(0,s.jsx)("pre",{className:"text-sm text-neutral-300 whitespace-pre-wrap font-mono leading-relaxed",children:e.content})]},e.name)),(null==a?void 0:a.length)===0&&(0,s.jsx)("p",{className:"text-sm text-neutral-500",children:"No memory files found."})]})]})})}},5778:(e,t,r)=>{Promise.resolve().then(r.bind(r,6281)),Promise.resolve().then(r.bind(r,8994)),Promise.resolve().then(r.bind(r,3389))},6281:(e,t,r)=>{"use strict";r.d(t,{GlobalSearch:()=>o});var s=r(5155),n=r(2115),a=r(63);function o(e){let{projectPath:t}=e,[r,o]=(0,n.useState)(""),l=(0,a.useRouter)(),i=(0,n.useCallback)(e=>{if(e.preventDefault(),r.trim()){let e=new URLSearchParams({q:r.trim()});t&&e.set("project",t),l.push("/search?".concat(e.toString()))}},[r,l,t]),c=t?"Search this project...":"Search all chats...";return(0,s.jsxs)("form",{onSubmit:i,className:"relative",children:[(0,s.jsx)("svg",{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-neutral-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),(0,s.jsx)("input",{type:"text",value:r,onChange:e=>o(e.target.value),placeholder:c,className:"w-full pl-10 pr-4 py-2 bg-neutral-900 border border-neutral-800 rounded-lg text-sm placeholder-neutral-500 focus:outline-none focus:border-amber-600 focus:ring-1 focus:ring-amber-600 transition-colors"})]})}},8994:(e,t,r)=>{"use strict";r.d(t,{ProjectList:()=>h});var s=r(5155),n=r(2115),a=r(2619),o=r.n(a),l=r(467),i=r(5011);function c(e){let{project:t}=e,[r,a]=(0,n.useState)(!1);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(o(),{href:"/project/".concat(t.encodedPath),className:"block p-4 bg-neutral-900/50 border border-neutral-800 rounded-lg hover:border-amber-600/50 hover:bg-neutral-900 transition-all group",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("h3",{className:"font-medium text-neutral-100 truncate group-hover:text-amber-500 transition-colors",children:t.name}),(0,s.jsx)("p",{className:"text-xs text-neutral-500 truncate mt-0.5",children:t.path})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[t.hasMemory&&(0,s.jsxs)("button",{onClick:e=>{e.preventDefault(),e.stopPropagation(),a(!0)},className:"flex items-center gap-1 px-1.5 py-0.5 text-[10px] font-medium tracking-wide rounded bg-amber-500/10 text-amber-500/80 hover:bg-amber-500/20 hover:text-amber-500 transition-colors",children:[(0,s.jsx)("svg",{className:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"})}),"MEMORY"]}),(0,s.jsx)("div",{className:"text-neutral-500",children:(0,s.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})})]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-4 mt-3 text-xs text-neutral-500",children:[(0,s.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"})}),t.sessionCount," session",1!==t.sessionCount?"s":""]}),(0,s.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"})}),t.totalMessages," messages"]}),(0,s.jsxs)("span",{className:"flex items-center gap-1.5 ml-auto",children:[(0,s.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,l.fw)(t.lastActivity)]})]})]}),r&&(0,s.jsx)(i.S,{encodedPath:t.encodedPath,onClose:()=>a(!1)})]})}var d=r(1046);let u=null;function m(){return(0,s.jsx)("div",{className:"grid gap-3",children:Array.from({length:6}).map((e,t)=>(0,s.jsxs)("div",{className:"p-4 bg-neutral-900/50 border border-neutral-800 rounded-lg",children:[(0,s.jsx)("div",{className:"flex items-start justify-between gap-3",children:(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("div",{className:"h-5 w-40 bg-neutral-800 rounded animate-pulse"}),(0,s.jsx)("div",{className:"h-3 w-64 bg-neutral-800/50 rounded animate-pulse mt-2"})]})}),(0,s.jsxs)("div",{className:"flex items-center gap-4 mt-3",children:[(0,s.jsx)("div",{className:"h-3 w-20 bg-neutral-800/50 rounded animate-pulse"}),(0,s.jsx)("div",{className:"h-3 w-24 bg-neutral-800/50 rounded animate-pulse"}),(0,s.jsx)("div",{className:"h-3 w-16 bg-neutral-800/50 rounded animate-pulse ml-auto"})]})]},t))})}function h(){let[e,t]=(0,n.useState)(u),[r,a]=(0,n.useState)(""),[o,l]=(0,n.useState)("recent");(0,n.useEffect)(()=>{let e=!1;function r(){fetch("/api/projects").then(e=>e.json()).then(r=>{e||(u=r,t(r))})}return r(),window.addEventListener("sync-complete",r),()=>{e=!0,window.removeEventListener("sync-complete",r)}},[]);let i=(0,n.useMemo)(()=>{if(!e)return[];let t=e;if(r.trim()){let s=r.toLowerCase();t=e.filter(e=>e.name.toLowerCase().includes(s)||e.path.toLowerCase().includes(s))}return[...t].sort((e,t)=>{switch(o){case"name":return e.name.localeCompare(t.name);case"messages":return t.totalMessages-e.totalMessages;case"sessions":return t.sessionCount-e.sessionCount;default:return t.lastActivity-e.lastActivity}})},[e,r,o]);return(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"flex flex-col sm:flex-row gap-3 mb-6",children:[(0,s.jsx)("div",{className:"flex-1",children:(0,s.jsx)(d.D,{value:r,onChange:a,placeholder:"Search projects..."})}),(0,s.jsxs)("select",{value:o,onChange:e=>l(e.target.value),className:"px-3 py-2.5 bg-neutral-900 border border-neutral-800 rounded-lg text-sm text-neutral-300 focus:outline-none focus:border-amber-600 cursor-pointer",children:[(0,s.jsx)("option",{value:"recent",children:"Most Recent"}),(0,s.jsx)("option",{value:"name",children:"Name"}),(0,s.jsx)("option",{value:"messages",children:"Most Messages"}),(0,s.jsx)("option",{value:"sessions",children:"Most Sessions"})]})]}),null===e?(0,s.jsx)(m,{}):0===i.length?(0,s.jsx)("div",{className:"text-center py-12 text-neutral-500",children:r?"No projects found matching your search":"No projects found"}):(0,s.jsx)("div",{className:"grid gap-3",children:i.map(e=>(0,s.jsx)(c,{project:e},e.path))}),null!==e&&(0,s.jsxs)("div",{className:"mt-4 text-xs text-neutral-600 text-center",children:[i.length," of ",e.length," projects"]})]})}}},e=>{e.O(0,[176,441,255,358],()=>e(e.s=5778)),_N_E=e.O()}]);
|