cc-chats 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +37 -35
- package/.next/app-path-routes-manifest.json +5 -5
- 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 +16 -16
- 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.js +20 -20
- 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 +21 -20
- 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 +1 -1
- 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 +5 -5
- package/.next/server/chunks/138.js +47 -47
- package/.next/server/chunks/{707.js → 251.js} +2 -2
- package/.next/server/chunks/326.js +1 -0
- 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/326-29798aee14a5eca1.js +1 -0
- package/.next/static/chunks/app/layout-106c55be3e0b55bb.js +1 -0
- package/.next/static/chunks/app/page-a6be885dc8fc0a2a.js +1 -0
- package/.next/static/chunks/app/project/[projectPath]/page-73bbc99c9d96a191.js +1 -0
- package/.next/static/chunks/app/project/[projectPath]/session/[sessionId]/page-66e079191ecf162f.js +1 -0
- package/.next/static/chunks/{webpack-43c7aa59eaa5af49.js → webpack-6caf1cd8559327c9.js} +1 -1
- package/.next/static/css/58c26641c026d929.css +3 -0
- package/package.json +14 -5
- package/.next/server/chunks/363.js +0 -1
- package/.next/static/chunks/app/layout-439f7d41814bd173.js +0 -1
- package/.next/static/chunks/app/page-1ce99371e5ab9e54.js +0 -1
- package/.next/static/chunks/app/project/[projectPath]/page-23243a0bb07162ab.js +0 -1
- package/.next/static/chunks/app/project/[projectPath]/session/[sessionId]/page-a834947a4b535ef5.js +0 -1
- package/.next/static/css/c1efde6b9b6c386c.css +0 -3
- package/.next/static/media/35f3de0ebb1cfc70-s.woff2 +0 -0
- package/.next/static/media/e6099e249fd938cc-s.p.woff2 +0 -0
- /package/.next/static/{6D0TFghe5laTWW8yQrGtY → OzSL4nEX-XnunlkFt9kZq}/_buildManifest.js +0 -0
- /package/.next/static/{6D0TFghe5laTWW8yQrGtY → OzSL4nEX-XnunlkFt9kZq}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.id=326,exports.ids=[326],exports.modules={1135:()=>{},1472:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>l,metadata:()=>k});var d=c(5338),e=c(7785),f=c.n(e),g=c(7855),h=c.n(g),i=c(3340),j=c(5864);c(1135);let k={title:"Claude Code Chats",description:"Browse your Claude Code chat history"};function l({children:a}){return(0,d.jsxs)("html",{lang:"en",suppressHydrationWarning:!0,children:[(0,d.jsx)("head",{children:(0,d.jsx)("script",{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")}var f=localStorage.getItem("fontSize");if(f==="small"||f==="medium"||f==="large"){document.documentElement.setAttribute("data-font-size",f)}}catch(e){document.documentElement.setAttribute("data-theme","dark")}})()'}})}),(0,d.jsx)("body",{className:`${f().variable} ${h().variable} font-sans min-h-screen antialiased`,children:(0,d.jsx)(i.ThemeProvider,{children:(0,d.jsx)(j.FontSizeProvider,{children:a})})})]})}},2087:(a,b,c)=>{"use strict";c.d(b,{SyncButton:()=>f});var d=c(1124),e=c(8301);function f(){let[a,b]=(0,e.useState)(!1),[c,f]=(0,e.useState)(null),g=async()=>{b(!0),f(null);try{let a=await fetch("/api/sync",{method:"POST"});if(!a.ok)throw Error("Sync failed");let b=await a.json();f(b.sync),window.dispatchEvent(new Event("sync-complete")),setTimeout(()=>f(null),3e3)}catch(a){console.error("Sync error:",a)}finally{b(!1)}};return(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{onClick:g,disabled:a,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,d.jsx)("svg",{className:`w-5 h-5 ${a?"animate-spin":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.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"})})}),c&&(c.added>0||c.updated>0||c.removed>0)&&(0,d.jsxs)("div",{className:"text-xs text-content-tertiary whitespace-nowrap animate-fade",children:[c.added>0&&`+${c.added}`,c.updated>0&&` ~${c.updated}`,c.removed>0&&` -${c.removed}`]})]})}},2155:(a,b,c)=>{"use strict";function d(a){if("number"==typeof a)return a;let b=Date.parse(a);return isNaN(b)?0:b}function e(a){let b=Date.now()-a,c=Math.floor(b/6e4),d=Math.floor(b/36e5),e=Math.floor(b/864e5),f=Math.floor(b/6048e5),g=Math.floor(b/2592e6);if(c<1)return"Just now";if(c<60)return`${c}m ago`;if(d<24)return`${d}h ago`;if(e<7)return`${e}d ago`;if(e<30)return`${f}w ago`;if(g<12)return`${g}mo ago`;let h=Math.floor(g/12);return`${h}y ago`}function f(a){return new Date(d(a)).toLocaleString("en-GB",{day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"})}function g(a){return a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e4?`${(a/1e3).toFixed(1)}k`:a.toLocaleString("en-GB")}c.d(b,{EH:()=>d,ap:()=>g,fw:()=>e,r6:()=>f})},3340:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>e});var d=c(7954);(0,d.registerClientReference)(function(){throw Error("Attempted to call useTheme() from the server but useTheme is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/pedrosousa/Work/Personal/Code/claude-code-chats/src/components/theme-provider.tsx","useTheme");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/pedrosousa/Work/Personal/Code/claude-code-chats/src/components/theme-provider.tsx","ThemeProvider")},5153:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,4160,23)),Promise.resolve().then(c.t.bind(c,1603,23)),Promise.resolve().then(c.t.bind(c,8495,23)),Promise.resolve().then(c.t.bind(c,5170,23)),Promise.resolve().then(c.t.bind(c,7526,23)),Promise.resolve().then(c.t.bind(c,8922,23)),Promise.resolve().then(c.t.bind(c,9234,23)),Promise.resolve().then(c.t.bind(c,2263,23)),Promise.resolve().then(c.bind(c,2146))},5864:(a,b,c)=>{"use strict";c.d(b,{FontSizeProvider:()=>e});var d=c(7954);(0,d.registerClientReference)(function(){throw Error("Attempted to call useFontSize() from the server but useFontSize is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/pedrosousa/Work/Personal/Code/claude-code-chats/src/components/font-size-provider.tsx","useFontSize");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call FontSizeProvider() from the server but FontSizeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/pedrosousa/Work/Personal/Code/claude-code-chats/src/components/font-size-provider.tsx","FontSizeProvider")},5871:(a,b,c)=>{Promise.resolve().then(c.bind(c,7614)),Promise.resolve().then(c.bind(c,8734))},5969:(a,b,c)=>{"use strict";c.d(b,{ThemeToggle:()=>g});var d=c(1124),e=c(8734);let f={system:"System",light:"Light",dark:"Dark"};function g(){let{theme:a,cycle:b}=(0,e.D)();return(0,d.jsx)("button",{onClick:b,className:"p-2 text-content-tertiary hover:text-content-secondary hover:bg-surface-elevated rounded-lg transition-all flex-shrink-0",title:`Theme: ${f[a]}`,children:"system"===a?(0,d.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.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"===a?(0,d.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.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,d.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.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"})})})}},7614:(a,b,c)=>{"use strict";c.d(b,{FontSizeProvider:()=>i,e:()=>g});var d=c(1124),e=c(8301);let f=(0,e.createContext)({fontSize:"medium",setFontSize:()=>{},cycle:()=>{}});function g(){return(0,e.useContext)(f)}let h=["small","medium","large"];function i({children:a}){let[b,c]=(0,e.useState)("medium"),g=(0,e.useCallback)(a=>{c(a),localStorage.setItem("fontSize",a)},[]),i=(0,e.useCallback)(()=>{g(h[(h.indexOf(b)+1)%h.length])},[b,g]);return(0,d.jsx)(f.Provider,{value:{fontSize:b,setFontSize:g,cycle:i},children:a})}},8091:(a,b,c)=>{"use strict";c.d(b,{GlobalSearch:()=>g});var d=c(1124),e=c(8301),f=c(2378);function g({projectPath:a}){let[b,c]=(0,e.useState)(""),g=(0,f.useRouter)(),h=(0,e.useRef)(null),i=(0,e.useCallback)(c=>{if(c.preventDefault(),b.trim()){let c=new URLSearchParams({q:b.trim()});a&&c.set("project",a),g.push(`/search?${c.toString()}`)}},[b,g,a]),j=a?"Search this project...":"Search all chats...";return(0,d.jsxs)("form",{onSubmit:i,className:"relative",children:[(0,d.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,d.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,d.jsx)("input",{ref:h,type:"text",value:b,onChange:a=>c(a.target.value),placeholder:j,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"}),!b&&(0,d.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,d.jsx)("span",{className:"text-xs",children:"⌘"}),"K"]})]})}},8734:(a,b,c)=>{"use strict";c.d(b,{D:()=>g,ThemeProvider:()=>h});var d=c(1124),e=c(8301);let f=(0,e.createContext)({theme:"system",resolved:"dark",setTheme:()=>{},cycle:()=>{}});function g(){return(0,e.useContext)(f)}function h({children:a}){let[b,c]=(0,e.useState)("system"),[g,h]=(0,e.useState)("dark"),i=(0,e.useCallback)(a=>{c(a),localStorage.setItem("theme",a)},[]),j=(0,e.useCallback)(()=>{let a=["system","light","dark"];i(a[(a.indexOf(b)+1)%a.length])},[b,i]);return(0,d.jsx)(f.Provider,{value:{theme:b,resolved:g,setTheme:i,cycle:j},children:a})}},9079:(a,b,c)=>{Promise.resolve().then(c.bind(c,5864)),Promise.resolve().then(c.bind(c,3340))},9473:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,1170,23)),Promise.resolve().then(c.t.bind(c,3597,23)),Promise.resolve().then(c.t.bind(c,6893,23)),Promise.resolve().then(c.t.bind(c,9748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,9576,23)),Promise.resolve().then(c.t.bind(c,3041,23)),Promise.resolve().then(c.t.bind(c,1384,23))}};
|
|
@@ -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-6caf1cd8559327c9.js","static/chunks/4bd1b696-c023c6e3521b1417.js","static/chunks/255-cb395327542b56ef.js","static/chunks/main-app-f2bdb334e92ecbbb.js"],rootMainFilesTree:{},pages:{"/_app":["static/chunks/webpack-6caf1cd8559327c9.js","static/chunks/framework-292291387d6b2e39.js","static/chunks/main-a4753544b5b73813.js","static/chunks/pages/_app-7d307437aca18ad4.js"],"/_error":["static/chunks/webpack-6caf1cd8559327c9.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":{"/Users/pedrosousa/Work/Personal/Code/claude-code-chats/src/app/layout":["static/media/
|
|
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/bb3ef058b751a6ad-s.p.woff2"]},"appUsingSizeAdjust":true,"pagesUsingSizeAdjust":false}';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"pages":{},"app":{"/Users/pedrosousa/Work/Personal/Code/claude-code-chats/src/app/layout":["static/media/
|
|
1
|
+
{"pages":{},"app":{"/Users/pedrosousa/Work/Personal/Code/claude-code-chats/src/app/layout":["static/media/13971731025ec697-s.p.woff2","static/media/bb3ef058b751a6ad-s.p.woff2"]},"appUsingSizeAdjust":true,"pagesUsingSizeAdjust":false}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--OzSL4nEX_XnunlkFt9kZq--><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="stylesheet" href="/_next/static/css/58c26641c026d929.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-6caf1cd8559327c9.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-106c55be3e0b55bb.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")}var f=localStorage.getItem("fontSize");if(f==="small"||f==="medium"||f==="large"){document.documentElement.setAttribute("data-font-size",f)}}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_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-6caf1cd8559327c9.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-106c55be3e0b55bb.js\"],\"ThemeProvider\"]\n3:I[5014,[\"177\",\"static/chunks/app/layout-106c55be3e0b55bb.js\"],\"FontSizeProvider\"]\n4:I[9766,[],\"\"]\n5:I[8924,[],\"\"]\n6:I[4431,[],\"OutletBoundary\"]\n8:I[5278,[],\"AsyncMetadataOutlet\"]\na:I[4431,[],\"ViewportBoundary\"]\nc:I[4431,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf: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/css/58c26641c026d929.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"OzSL4nEX-XnunlkFt9kZq\",\"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/58c26641c026d929.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\\\")}var f=localStorage.getItem(\\\"fontSize\\\");if(f===\\\"small\\\"||f===\\\"medium\\\"||f===\\\"large\\\"){document.documentElement.setAttribute(\\\"data-font-size\\\",f)}}catch(e){document.documentElement.setAttribute(\\\"data-theme\\\",\\\"dark\\\")}})()\"}}]}],[\"$\",\"body\",null,{\"className\":\"__variable_0d7163 __variable_3c557b font-sans min-h-screen antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",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,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"9:{\"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,"e:\"$9: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-6caf1cd8559327c9.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/OzSL4nEX-XnunlkFt9kZq/_buildManifest.js" defer=""></script><script src="/_next/static/OzSL4nEX-XnunlkFt9kZq/_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":"OzSL4nEX-XnunlkFt9kZq","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"node":{},"edge":{},"encryptionKey":"
|
|
1
|
+
{"node":{},"edge":{},"encryptionKey":"5hWmUVTIxWSQcamjsoCYlVeV2p/Bwiq0FPvXZNwV2DU="}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[326],{449:(e,t,n)=>{n.d(t,{ThemeToggle:()=>s});var r=n(5155),o=n(1458);let a={system:"System",light:"Light",dark:"Dark"};function s(){let{theme:e,cycle:t}=(0,o.D)();return(0,r.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,r.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.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,r.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.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,r.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.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)=>{function r(e){if("number"==typeof e)return e;let t=Date.parse(e);return isNaN(t)?0:t}function o(e){let t=Date.now()-e,n=Math.floor(t/6e4),r=Math.floor(t/36e5),o=Math.floor(t/864e5),a=Math.floor(t/6048e5),s=Math.floor(t/2592e6);if(n<1)return"Just now";if(n<60)return"".concat(n,"m ago");if(r<24)return"".concat(r,"h ago");if(o<7)return"".concat(o,"d ago");if(o<30)return"".concat(a,"w ago");if(s<12)return"".concat(s,"mo ago");let l=Math.floor(s/12);return"".concat(l,"y ago")}function a(e){return new Date(r(e)).toLocaleString("en-GB",{day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"})}function s(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:()=>r,ap:()=>s,fw:()=>o,r6:()=>a})},1046:(e,t,n)=>{n.d(t,{D:()=>o});var r=n(5155);function o(e){let{value:t,onChange:n,placeholder:o="Search..."}=e;return(0,r.jsxs)("div",{className:"relative",children:[(0,r.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,r.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,r.jsx)("input",{type:"text",value:t,onChange:e=>n(e.target.value),placeholder:o,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,r.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,r.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})}},1458:(e,t,n)=>{n.d(t,{D:()=>s,ThemeProvider:()=>l});var r=n(5155),o=n(2115);let a=(0,o.createContext)({theme:"system",resolved:"dark",setTheme:()=>{},cycle:()=>{}});function s(){return(0,o.useContext)(a)}function l(e){let{children:t}=e,[n,s]=(0,o.useState)("system"),[l,c]=(0,o.useState)("dark");(0,o.useEffect)(()=>{let e=localStorage.getItem("theme");e&&["light","dark","system"].includes(e)&&s(e)},[]),(0,o.useEffect)(()=>{let e="system"===n?window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark":n;if(c(e),document.documentElement.setAttribute("data-theme",e),"system"===n){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)}},[n]);let i=(0,o.useCallback)(e=>{s(e),localStorage.setItem("theme",e)},[]),d=(0,o.useCallback)(()=>{let e=["system","light","dark"];i(e[(e.indexOf(n)+1)%e.length])},[n,i]);return(0,r.jsx)(a.Provider,{value:{theme:n,resolved:l,setTheme:i,cycle:d},children:t})}},3389:(e,t,n)=>{n.d(t,{SyncButton:()=>a});var r=n(5155),o=n(2115);function a(){let[e,t]=(0,o.useState)(!1),[n,a]=(0,o.useState)(null),s=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,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("button",{onClick:s,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,r.jsx)("svg",{className:"w-5 h-5 ".concat(e?"animate-spin":""),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.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,r.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)=>{n.d(t,{S:()=>s});var r=n(5155),o=n(2115),a=n(7650);function s(e){let{encodedPath:t,onClose:n}=e,[s,l]=(0,o.useState)(null),[c,i]=(0,o.useState)(null);return(0,o.useEffect)(()=>{fetch("/api/projects/memory?path=".concat(encodeURIComponent(t))).then(e=>{if(!e.ok)throw Error("Failed to load");return e.json()}).then(e=>l(e.files)).catch(()=>i("Failed to load memory"))},[t]),(0,o.useEffect)(()=>{function e(e){"Escape"===e.key&&n()}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[n]),(0,a.createPortal)((0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-black/70 backdrop-blur-sm animate-fade",onClick:n}),(0,r.jsxs)("div",{className:"relative bg-surface-elevated border border-edge rounded-2xl w-full max-w-4xl max-h-[85vh] flex flex-col shadow-2xl mx-4 animate-modal",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-edge-subtle",children:[(0,r.jsx)("h2",{className:"text-sm font-medium text-content-primary",children:"Project Memory"}),(0,r.jsx)("button",{onClick:n,className:"p-1.5 -mr-1.5 text-content-tertiary hover:text-content-primary hover:bg-surface rounded-lg transition-all",children:(0,r.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,r.jsxs)("div",{className:"overflow-y-auto p-5 space-y-6 scrollbar-thin",children:[c&&(0,r.jsx)("p",{className:"text-sm text-danger",children:c}),!s&&!c&&(0,r.jsx)("p",{className:"text-sm text-content-tertiary",children:"Loading..."}),null==s?void 0:s.map(e=>(0,r.jsxs)("div",{children:[s.length>1&&(0,r.jsx)("h3",{className:"text-xs font-medium text-accent/70 mb-2 font-mono",children:e.name}),(0,r.jsx)("pre",{className:"text-sm text-content-secondary whitespace-pre-wrap font-mono leading-relaxed",children:e.content})]},e.name)),(null==s?void 0:s.length)===0&&(0,r.jsx)("p",{className:"text-sm text-content-tertiary",children:"No memory files found."})]})]})]}),document.body)}},5014:(e,t,n)=>{n.d(t,{FontSizeProvider:()=>c,e:()=>s});var r=n(5155),o=n(2115);let a=(0,o.createContext)({fontSize:"medium",setFontSize:()=>{},cycle:()=>{}});function s(){return(0,o.useContext)(a)}let l=["small","medium","large"];function c(e){let{children:t}=e,[n,s]=(0,o.useState)("medium");(0,o.useEffect)(()=>{let e=localStorage.getItem("fontSize");e&&l.includes(e)&&s(e)},[]),(0,o.useEffect)(()=>{document.documentElement.setAttribute("data-font-size",n)},[n]);let c=(0,o.useCallback)(e=>{s(e),localStorage.setItem("fontSize",e)},[]),i=(0,o.useCallback)(()=>{c(l[(l.indexOf(n)+1)%l.length])},[n,c]);return(0,r.jsx)(a.Provider,{value:{fontSize:n,setFontSize:c,cycle:i},children:t})}},6229:(e,t,n)=>{n.d(t,{FontSizeToggle:()=>s});var r=n(5155),o=n(5014);let a={small:"Small",medium:"Medium",large:"Large"};function s(){let{fontSize:e,cycle:t}=(0,o.e)();return(0,r.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:"Font size: ".concat(a[e]),children:"small"===e?(0,r.jsx)("span",{className:"w-[18px] h-[18px] flex items-center justify-center font-medium text-[11px] leading-none",children:"A"}):"medium"===e?(0,r.jsx)("span",{className:"w-[18px] h-[18px] flex items-center justify-center font-medium text-[14px] leading-none",children:"A"}):(0,r.jsx)("span",{className:"w-[18px] h-[18px] flex items-center justify-center font-medium text-[17px] leading-none",children:"A"})})}},6281:(e,t,n)=>{n.d(t,{GlobalSearch:()=>s});var r=n(5155),o=n(2115),a=n(63);function s(e){let{projectPath:t}=e,[n,s]=(0,o.useState)(""),l=(0,a.useRouter)(),c=(0,o.useRef)(null);(0,o.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,o.useCallback)(e=>{if(e.preventDefault(),n.trim()){let e=new URLSearchParams({q:n.trim()});t&&e.set("project",t),l.push("/search?".concat(e.toString()))}},[n,l,t]),d=t?"Search this project...":"Search all chats...";return(0,r.jsxs)("form",{onSubmit:i,className:"relative",children:[(0,r.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,r.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,r.jsx)("input",{ref:c,type:"text",value:n,onChange:e=>s(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,r.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,r.jsx)("span",{className:"text-xs",children:"⌘"}),"K"]})]})}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{1177:(e,t,l)=>{Promise.resolve().then(l.t.bind(l,4179,23)),Promise.resolve().then(l.t.bind(l,5917,23)),Promise.resolve().then(l.t.bind(l,3673,23)),Promise.resolve().then(l.bind(l,5014)),Promise.resolve().then(l.bind(l,1458))},1458:(e,t,l)=>{"use strict";l.d(t,{D:()=>r,ThemeProvider:()=>o});var s=l(5155),a=l(2115);let n=(0,a.createContext)({theme:"system",resolved:"dark",setTheme:()=>{},cycle:()=>{}});function r(){return(0,a.useContext)(n)}function o(e){let{children:t}=e,[l,r]=(0,a.useState)("system"),[o,i]=(0,a.useState)("dark");(0,a.useEffect)(()=>{let e=localStorage.getItem("theme");e&&["light","dark","system"].includes(e)&&r(e)},[]),(0,a.useEffect)(()=>{let e="system"===l?window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark":l;if(i(e),document.documentElement.setAttribute("data-theme",e),"system"===l){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)}},[l]);let c=(0,a.useCallback)(e=>{r(e),localStorage.setItem("theme",e)},[]),m=(0,a.useCallback)(()=>{let e=["system","light","dark"];c(e[(e.indexOf(l)+1)%e.length])},[l,c]);return(0,s.jsx)(n.Provider,{value:{theme:l,resolved:o,setTheme:c,cycle:m},children:t})}},3673:()=>{},4179:e=>{e.exports={style:{fontFamily:"'DM Sans', 'DM Sans Fallback'",fontStyle:"normal"},className:"__className_0d7163",variable:"__variable_0d7163"}},5014:(e,t,l)=>{"use strict";l.d(t,{FontSizeProvider:()=>i,e:()=>r});var s=l(5155),a=l(2115);let n=(0,a.createContext)({fontSize:"medium",setFontSize:()=>{},cycle:()=>{}});function r(){return(0,a.useContext)(n)}let o=["small","medium","large"];function i(e){let{children:t}=e,[l,r]=(0,a.useState)("medium");(0,a.useEffect)(()=>{let e=localStorage.getItem("fontSize");e&&o.includes(e)&&r(e)},[]),(0,a.useEffect)(()=>{document.documentElement.setAttribute("data-font-size",l)},[l]);let i=(0,a.useCallback)(e=>{r(e),localStorage.setItem("fontSize",e)},[]),c=(0,a.useCallback)(()=>{i(o[(o.indexOf(l)+1)%o.length])},[l,i]);return(0,s.jsx)(n.Provider,{value:{fontSize:l,setFontSize:i,cycle:c},children:t})}},5917:e=>{e.exports={style:{fontFamily:"'JetBrains Mono', 'JetBrains Mono Fallback'",fontStyle:"normal"},className:"__className_3c557b",variable:"__variable_3c557b"}}},e=>{e.O(0,[940,441,255,358],()=>e(e.s=1177)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{927:(e,s,t)=>{Promise.resolve().then(t.bind(t,6229)),Promise.resolve().then(t.bind(t,6281)),Promise.resolve().then(t.bind(t,8994)),Promise.resolve().then(t.bind(t,3389)),Promise.resolve().then(t.bind(t,449))},8994:(e,s,t)=>{"use strict";t.d(s,{ProjectList:()=>u});var n=t(5155),r=t(2115),o=t(2619),a=t.n(o),c=t(467),i=t(5011);function l(e){let{project:s}=e,[t,o]=(0,r.useState)(!1);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(a(),{href:"/project/".concat(s.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:s.name}),(0,n.jsx)("p",{className:"text-xs text-content-tertiary truncate mt-0.5 font-mono",children:s.path})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[s.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"})}),s.sessionCount," session",1!==s.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"})}),s.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,c.fw)(s.lastActivity)]})]})]}),t&&(0,n.jsx)(i.S,{encodedPath:s.encodedPath,onClose:()=>o(!1)})]})}var d=t(1046);let h=null;function m(){return(0,n.jsx)("div",{className:"grid gap-3 lg:grid-cols-2",children:Array.from({length:6}).map((e,s)=>(0,n.jsxs)("div",{className:"p-4 bg-surface border border-edge-subtle rounded-xl animate-in stagger-".concat(s+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"})]})]},s))})}function u(){let[e,s]=(0,r.useState)(h),[t,o]=(0,r.useState)(""),[a,c]=(0,r.useState)("recent"),[i,u]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=!1;function t(){fetch("/api/projects").then(e=>e.json()).then(t=>{e||(h=t,s(t))})}return t(),window.addEventListener("sync-complete",t),()=>{e=!0,window.removeEventListener("sync-complete",t)}},[]);let x=(0,r.useMemo)(()=>{var s;return null!=(s=null==e?void 0:e.some(e=>e.isOutsideHome))&&s},[e]),p=(0,r.useMemo)(()=>{if(!e)return[];let s=e;if(i&&(s=s.filter(e=>!e.isOutsideHome)),t.trim()){let e=t.toLowerCase();s=s.filter(s=>s.name.toLowerCase().includes(e)||s.path.toLowerCase().includes(e))}return[...s].sort((e,s)=>{switch(a){case"name":return e.name.localeCompare(s.name);case"messages":return s.totalMessages-e.totalMessages;case"sessions":return s.sessionCount-e.sessionCount;default:return s.lastActivity-e.lastActivity}})},[e,t,a,i]);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:t,onChange:o,placeholder:"Search projects..."})}),x&&(0,n.jsx)("button",{onClick:()=>u(!i),className:"px-3 py-2.5 border rounded-xl text-sm transition-all whitespace-nowrap ".concat(i?"bg-accent/10 border-accent text-accent":"bg-surface border-edge-subtle text-content-secondary hover:border-accent/50"),children:i?"External hidden":"Hide external"}),(0,n.jsxs)("select",{value:a,onChange:e=>c(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)(m,{}):0===p.length?(0,n.jsx)("div",{className:"text-center py-16 text-content-tertiary animate-fade",children:t?"No projects found matching your search":"No projects found"}):(0,n.jsx)("div",{className:"grid gap-3 lg:grid-cols-2",children:p.map((e,s)=>(0,n.jsx)("div",{className:"animate-in stagger-".concat(Math.min(s+1,10)),children:(0,n.jsx)(l,{project:e})},e.path))}),null!==e&&(0,n.jsxs)("div",{className:"mt-6 text-xs text-content-tertiary text-center",children:[p.length," of ",e.length," projects"]})]})}}},e=>{e.O(0,[176,326,441,255,358],()=>e(e.s=927)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[943],{2635:(e,t,s)=>{Promise.resolve().then(s.bind(s,8666))},7625:(e,t,s)=>{"use strict";s.d(t,{m:()=>r});var n=s(5155),a=s(2115);function r(e){let{type:t,projectPath:s,sessionId:r,messageCount:o}=e,[c,l]=(0,a.useState)(null),[i,d]=(0,a.useState)(!1),[m,x]=(0,a.useState)(null),[h,u]=(0,a.useState)(!0);async function p(){d(!0),x(null);try{let e=await fetch("/api/summary",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:t,projectPath:s,sessionId:r})}),n=await e.json();if(!e.ok)throw Error(n.error||"Failed to generate summary");l(n.summary)}catch(e){x(e instanceof Error?e.message:"Unknown error")}finally{d(!1)}}if((0,a.useEffect)(()=>{!async function(){try{let e=new URLSearchParams({type:t,project:s});r&&e.append("session",r);let n=await fetch("/api/summary?".concat(e)),a=await n.json();l(a.summary||null)}catch(e){}finally{u(!1)}}()},[t,s,r]),h)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: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,n.jsx)("p",{className:"text-sm text-danger mb-2",children:m}),c?(0,n.jsx)("p",{className:"text-sm text-content-secondary leading-relaxed",children:c.content}):!i&&(0,n.jsx)("p",{className:"text-sm text-content-tertiary italic",children:'No summary yet. Click "Generate" to create one.'}),i&&(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..."]})]})}},8666:(e,t,s)=>{"use strict";s.d(t,{ProjectPageContent:()=>b});var n=s(5155),a=s(2115),r=s(2619),o=s.n(r),c=s(467);function l(e){let{session:t,encodedPath:s}=e;return(0,n.jsxs)(o(),{href:"/project/".concat(s,"/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,n.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,n.jsx)("div",{className:"flex-1 min-w-0",children:(0,n.jsx)("p",{className:"text-sm text-content-primary line-clamp-2 group-hover:text-accent transition-colors",children:t.firstMessage||"Empty session"})}),(0,n.jsx)("div",{className:"flex items-center gap-1 text-content-tertiary group-hover:text-accent shrink-0 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:"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,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,c.fw)(t.lastActivity)]})]}),(0,n.jsx)("div",{className:"mt-2 text-[11px] text-content-tertiary font-mono truncate opacity-50",children:t.id})]})}var i=s(1046);function d(e){let{sessions:t,encodedPath:s}=e,[r,o]=(0,a.useState)(""),[c,d]=(0,a.useState)(!0),[m,x]=(0,a.useState)(30);(0,a.useEffect)(()=>{x(30)},[t]);let h=(0,a.useMemo)(()=>t.filter(e=>e.messageCount<3).length,[t]),u=(0,a.useMemo)(()=>{let e=t;if(c&&(e=e.filter(e=>e.messageCount>=3)),r.trim()){let t=r.toLowerCase();e=e.filter(e=>e.firstMessage.toLowerCase().includes(t)||e.id.toLowerCase().includes(t))}return e},[t,r,c]),p=u.slice(0,m),f=m<u.length;return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"mb-6 flex items-center gap-4",children:[(0,n.jsx)("div",{className:"flex-1",children:(0,n.jsx)(i.D,{value:r,onChange:function(e){o(e),x(30)},placeholder:"Search sessions..."})}),h>0&&(0,n.jsxs)("label",{className:"flex items-center gap-2 text-xs text-content-tertiary cursor-pointer whitespace-nowrap",children:[(0,n.jsx)("input",{type:"checkbox",checked:c,onChange:e=>{d(e.target.checked),x(30)},className:"rounded border-edge-hover bg-surface-elevated text-accent focus:ring-accent focus:ring-offset-0"}),"Hide short (",h,")"]})]}),0===u.length?(0,n.jsx)("div",{className:"text-center py-16 text-content-tertiary animate-fade",children:r?"No sessions found matching your search":"No sessions found"}):(0,n.jsx)("div",{className:"grid gap-3",children:p.map((e,t)=>(0,n.jsx)("div",{className:"animate-in stagger-".concat(Math.min(t+1,10)),children:(0,n.jsx)(l,{session:e,encodedPath:s})},e.id))}),(0,n.jsxs)("div",{className:"mt-6 flex items-center justify-center gap-4 text-xs text-content-tertiary",children:[(0,n.jsxs)("span",{children:["Showing ",p.length," of ",t.length," sessions",u.length<t.length&&" (".concat(t.length-u.length," hidden)")]}),f&&(0,n.jsx)("button",{onClick:()=>x(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=s(63),x=s(6281);function h(e){let{isOpen:t,onClose:s,onSuccess:r,currentPath:o,encodedPath:c}=e,[l,i]=(0,a.useState)(""),[d,m]=(0,a.useState)(!1),[x,h]=(0,a.useState)(null),u=(0,a.useRef)(null);if((0,a.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=u.current)?void 0:e.select()},0))},[t,o]),(0,a.useEffect)(()=>{function e(e){"Escape"===e.key&&t&&!d&&s()}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t,d,s]),!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");r(t.newEncodedPath)}catch(e){h(e instanceof Error?e.message:"Unknown error")}finally{m(!1)}}return(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:d?void 0:s}),(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-medium text-content-primary mb-4",children:"Rename Project"}),(0,n.jsxs)("form",{onSubmit:p,children:[(0,n.jsxs)("div",{className:"mb-4",children:[(0,n.jsx)("label",{htmlFor:"projectName",className:"block text-sm text-content-secondary mb-2",children:"New folder name"}),(0,n.jsx)("input",{ref:u,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"})]}),x&&(0,n.jsx)("p",{className:"text-sm text-danger mb-4",children:x}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-3",children:[(0,n.jsx)("button",{type:"button",onClick:s,disabled:d,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",{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,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"})]}),d?"Renaming...":"Rename"]})]})]})]})]})}var u=s(5011),p=s(3389),f=s(449),j=s(6229);function g(e){let{projectName:t,projectPath:s,encodedPath:r,hasMemory:c}=e,[l,i]=(0,a.useState)(!1),[d,g]=(0,a.useState)(!1),v=(0,m.useRouter)();return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("header",{className:"border-b border-edge-subtle bg-surface/80 backdrop-blur-md sticky top-0 z-10",children:(0,n.jsx)("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 py-4",children:(0,n.jsxs)("div",{className:"flex items-center gap-3",children:[(0,n.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,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:"M15 19l-7-7 7-7"})})}),(0,n.jsxs)("div",{className:"flex-1 min-w-0 hidden sm:block",children:[(0,n.jsx)("h1",{className:"text-lg font-medium text-content-primary truncate",children:t}),(0,n.jsx)("p",{className:"text-xs text-content-tertiary truncate font-mono",children:s})]}),(0,n.jsxs)("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[c&&(0,n.jsxs)("button",{onClick:()=>g(!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,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:"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)("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,n.jsx)("div",{className:"flex-1 max-w-md",children:(0,n.jsx)(x.GlobalSearch,{projectPath:r})}),(0,n.jsx)(j.FontSizeToggle,{}),(0,n.jsx)(f.ThemeToggle,{}),(0,n.jsx)(p.SyncButton,{})]})})}),(0,n.jsx)(h,{isOpen:l,onClose:()=>i(!1),onSuccess:function(e){i(!1),v.replace("/project/".concat(e))},currentPath:s,encodedPath:r}),d&&(0,n.jsx)(u.S,{encodedPath:r,onClose:()=>g(!1)})]})}var v=s(7625);let N=new Map;function y(){return(0,n.jsx)("div",{className:"grid gap-3",children:Array.from({length:5}).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:"h-4 w-3/4 rounded skeleton-shimmer"}),(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-16 rounded skeleton-shimmer ml-auto"})]})]},t))})}function b(e){var t,s,r,o,l;let{encodedPath:i}=e,[m,x]=(0,a.useState)(null!=(t=N.get(i))?t:null);(0,a.useEffect)(()=>{let e=!1;function t(){fetch("/api/projects/sessions?path=".concat(encodeURIComponent(i))).then(e=>e.json()).then(t=>{e||(N.set(i,t),x(t))})}return t(),window.addEventListener("sync-complete",t),()=>{e=!0,window.removeEventListener("sync-complete",t)}},[i]);let h=null!=(s=null==m?void 0:m.sessions.reduce((e,t)=>e+t.messageCount,0))?s:0,u=m?Math.max(...m.sessions.map(e=>e.lastActivity)):0;return(0,n.jsxs)("div",{className:"min-h-screen",children:[(0,n.jsx)(g,{projectName:null!=(r=null==m?void 0:m.projectName)?r: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,n.jsx)("main",{className:"max-w-5xl mx-auto px-4 sm:px-6 py-8",children:m?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"flex items-center gap-4 mb-6 text-sm text-content-secondary animate-in",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:"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,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"})}),h," 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"})}),"Last active ",(0,c.fw)(u)]})]}),(0,n.jsx)("div",{className:"mb-6 animate-in stagger-1",children:(0,n.jsx)(v.m,{type:"project",projectPath:i,messageCount:h})}),(0,n.jsx)("div",{className:"animate-in stagger-2",children:(0,n.jsx)(d,{sessions:m.sessions,encodedPath:i},i)})]}):(0,n.jsx)(y,{})})]})}}},e=>{e.O(0,[176,326,441,255,358],()=>e(e.s=2635)),_N_E=e.O()}]);
|
package/.next/static/chunks/app/project/[projectPath]/session/[sessionId]/page-66e079191ecf162f.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)]})]})}},5014:(e,t,s)=>{"use strict";s.d(t,{FontSizeProvider:()=>i,e:()=>o});var n=s(5155),r=s(2115);let a=(0,r.createContext)({fontSize:"medium",setFontSize:()=>{},cycle:()=>{}});function o(){return(0,r.useContext)(a)}let c=["small","medium","large"];function i(e){let{children:t}=e,[s,o]=(0,r.useState)("medium");(0,r.useEffect)(()=>{let e=localStorage.getItem("fontSize");e&&c.includes(e)&&o(e)},[]),(0,r.useEffect)(()=>{document.documentElement.setAttribute("data-font-size",s)},[s]);let i=(0,r.useCallback)(e=>{o(e),localStorage.setItem("fontSize",e)},[]),l=(0,r.useCallback)(()=>{i(c[(c.indexOf(s)+1)%c.length])},[s,i]);return(0,n.jsx)(a.Provider,{value:{fontSize:s,setFontSize:i,cycle:l},children:t})}},6229:(e,t,s)=>{"use strict";s.d(t,{FontSizeToggle:()=>o});var n=s(5155),r=s(5014);let a={small:"Small",medium:"Medium",large:"Large"};function o(){let{fontSize:e,cycle:t}=(0,r.e)();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:"Font size: ".concat(a[e]),children:"small"===e?(0,n.jsx)("span",{className:"w-[18px] h-[18px] flex items-center justify-center font-medium text-[11px] leading-none",children:"A"}):"medium"===e?(0,n.jsx)("span",{className:"w-[18px] h-[18px] flex items-center justify-center font-medium text-[14px] leading-none",children:"A"}):(0,n.jsx)("span",{className:"w-[18px] h-[18px] flex items-center justify-center font-medium text-[17px] leading-none",children:"A"})})}},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"]})]})}},7054:(e,t,s)=>{Promise.resolve().then(s.t.bind(s,2619,23)),Promise.resolve().then(s.bind(s,6229)),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,v]=(0,r.useState)(null),y=(0,r.useRef)(null);(0,r.useEffect)(()=>{i&&(m(""),h(!1),v(null),setTimeout(()=>{var e;return null==(e=y.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 j=u?parseInt(u,10):void 0,b=!u||j&&j>0,k=x?o:a,N=j?Math.min(j,k):k,w=a>0?Math.round((1-N/a)*100):0;async function C(){if(!b)return void v("Please enter a valid positive number.");f(!0),v(null);try{let e=await fetch("/api/session/duplicate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({encodedPath:t,sessionId:s,keepLastN:j,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){v(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-medium 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:y,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||!b,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-medium 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,[v,y]=(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:v,onChange:e=>y(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:v})]})}},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=7054)),_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,940: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(/^(68|940)$/.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: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}.-mr-1\.5{margin-right:-.375rem}.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-\[85vh\]{max-height:85vh}.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-4xl{max-width:56rem}.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{--tw-border-opacity:1;border-color:rgb(var(--accent)/var(--tw-border-opacity,1))}.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-1\.5{padding:.375rem}.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}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[14px\]{font-size:14px}.text-\[17px\]{font-size:17px}.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-none{line-height:1}.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}:root[data-font-size=small]{font-size:14px}:root[data-font-size=large]{font-size:18px}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-accent\/50:hover{border-color:rgb(var(--accent)/.5)}.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:hover{--tw-bg-opacity:1;background-color:rgb(var(--bg-surface)/var(--tw-bg-opacity,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))}
|
package/package.json
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cc-chats",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "Browse and search your Claude Code chat history",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"keywords": [
|
|
6
|
+
"keywords": [
|
|
7
|
+
"claude",
|
|
8
|
+
"claude-code",
|
|
9
|
+
"chat",
|
|
10
|
+
"history",
|
|
11
|
+
"browser"
|
|
12
|
+
],
|
|
7
13
|
"bin": {
|
|
8
14
|
"cc-chats": "./bin/cc-chats.mjs"
|
|
9
15
|
},
|
|
@@ -23,10 +29,12 @@
|
|
|
23
29
|
"build": "next build",
|
|
24
30
|
"start": "next start",
|
|
25
31
|
"lint": "next lint",
|
|
32
|
+
"test": "vitest run",
|
|
33
|
+
"test:watch": "vitest",
|
|
26
34
|
"prepublishOnly": "npm run build && rm -rf .next/cache"
|
|
27
35
|
},
|
|
28
36
|
"dependencies": {
|
|
29
|
-
"@anthropic-ai/claude-agent-sdk": "^0.2.
|
|
37
|
+
"@anthropic-ai/claude-agent-sdk": "^0.2.47",
|
|
30
38
|
"better-sqlite3": "^12.4.6",
|
|
31
39
|
"next": "^15.0.0",
|
|
32
40
|
"react": "^19.0.0",
|
|
@@ -42,6 +50,7 @@
|
|
|
42
50
|
"eslint-config-next": "^15.0.0",
|
|
43
51
|
"postcss": "^8.4.49",
|
|
44
52
|
"tailwindcss": "^3.4.17",
|
|
45
|
-
"typescript": "^5.7.0"
|
|
53
|
+
"typescript": "^5.7.0",
|
|
54
|
+
"vitest": "^4.0.18"
|
|
46
55
|
}
|
|
47
|
-
}
|
|
56
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
exports.id=363,exports.ids=[363],exports.modules={9:(a,b,c)=>{"use strict";c.d(b,{S:()=>f});var d=c(1124),e=c(8301);function f({encodedPath:a,onClose:b}){let[c,f]=(0,e.useState)(null),[g,h]=(0,e.useState)(null),i=(0,e.useRef)(null);return(0,d.jsx)("div",{ref:i,className:"fixed inset-0 z-50 flex items-center justify-center bg-black/70 backdrop-blur-sm animate-fade",onClick:a=>{a.target===i.current&&b()},children:(0,d.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,d.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-edge-subtle",children:[(0,d.jsx)("h2",{className:"text-sm font-serif text-content-primary",children:"Project Memory"}),(0,d.jsx)("button",{onClick:b,className:"text-content-tertiary hover:text-content-primary transition-colors",children:(0,d.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,d.jsxs)("div",{className:"overflow-y-auto p-5 space-y-6 scrollbar-thin",children:[g&&(0,d.jsx)("p",{className:"text-sm text-danger",children:g}),!c&&!g&&(0,d.jsx)("p",{className:"text-sm text-content-tertiary",children:"Loading..."}),c?.map(a=>(0,d.jsxs)("div",{children:[c.length>1&&(0,d.jsx)("h3",{className:"text-xs font-medium text-accent/70 mb-2 font-mono",children:a.name}),(0,d.jsx)("pre",{className:"text-sm text-content-secondary whitespace-pre-wrap font-mono leading-relaxed",children:a.content})]},a.name)),c?.length===0&&(0,d.jsx)("p",{className:"text-sm text-content-tertiary",children:"No memory files found."})]})]})})}},1135:()=>{},1472:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>m,metadata:()=>l});var d=c(5338),e=c(7785),f=c.n(e),g=c(6785),h=c.n(g),i=c(7855),j=c.n(i),k=c(3340);c(1135);let l={title:"Claude Code Chats",description:"Browse your Claude Code chat history"};function m({children:a}){return(0,d.jsxs)("html",{lang:"en",suppressHydrationWarning:!0,children:[(0,d.jsx)("head",{children:(0,d.jsx)("script",{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")}})()'}})}),(0,d.jsx)("body",{className:`${f().variable} ${h().variable} ${j().variable} font-sans min-h-screen antialiased`,children:(0,d.jsx)(k.ThemeProvider,{children:a})})]})}},1906:(a,b,c)=>{Promise.resolve().then(c.bind(c,8734))},2087:(a,b,c)=>{"use strict";c.d(b,{SyncButton:()=>f});var d=c(1124),e=c(8301);function f(){let[a,b]=(0,e.useState)(!1),[c,f]=(0,e.useState)(null),g=async()=>{b(!0),f(null);try{let a=await fetch("/api/sync",{method:"POST"});if(!a.ok)throw Error("Sync failed");let b=await a.json();f(b.sync),window.dispatchEvent(new Event("sync-complete")),setTimeout(()=>f(null),3e3)}catch(a){console.error("Sync error:",a)}finally{b(!1)}};return(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{onClick:g,disabled:a,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,d.jsx)("svg",{className:`w-5 h-5 ${a?"animate-spin":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.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"})})}),c&&(c.added>0||c.updated>0||c.removed>0)&&(0,d.jsxs)("div",{className:"text-xs text-content-tertiary whitespace-nowrap animate-fade",children:[c.added>0&&`+${c.added}`,c.updated>0&&` ~${c.updated}`,c.removed>0&&` -${c.removed}`]})]})}},2155:(a,b,c)=>{"use strict";function d(a){if("number"==typeof a)return a;let b=Date.parse(a);return isNaN(b)?0:b}function e(a){let b=Date.now()-a,c=Math.floor(b/6e4),d=Math.floor(b/36e5),e=Math.floor(b/864e5),f=Math.floor(b/6048e5),g=Math.floor(b/2592e6);if(c<1)return"Just now";if(c<60)return`${c}m ago`;if(d<24)return`${d}h ago`;if(e<7)return`${e}d ago`;if(e<30)return`${f}w ago`;if(g<12)return`${g}mo ago`;let h=Math.floor(g/12);return`${h}y ago`}function f(a){return new Date(d(a)).toLocaleString("en-GB",{day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"})}function g(a){return a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e4?`${(a/1e3).toFixed(1)}k`:a.toLocaleString("en-GB")}c.d(b,{EH:()=>d,ap:()=>g,fw:()=>e,r6:()=>f})},2194:(a,b,c)=>{"use strict";c.d(b,{D:()=>e});var d=c(1124);function e({value:a,onChange:b,placeholder:c="Search..."}){return(0,d.jsxs)("div",{className:"relative",children:[(0,d.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,d.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,d.jsx)("input",{type:"text",value:a,onChange:a=>b(a.target.value),placeholder:c,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"}),a&&(0,d.jsx)("button",{onClick:()=>b(""),className:"absolute right-3 top-1/2 -translate-y-1/2 text-content-tertiary hover:text-content-secondary transition-colors",children:(0,d.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})}},3340:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>e});var d=c(7954);(0,d.registerClientReference)(function(){throw Error("Attempted to call useTheme() from the server but useTheme is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/pedrosousa/Work/Personal/Code/claude-code-chats/src/components/theme-provider.tsx","useTheme");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/pedrosousa/Work/Personal/Code/claude-code-chats/src/components/theme-provider.tsx","ThemeProvider")},5153:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,4160,23)),Promise.resolve().then(c.t.bind(c,1603,23)),Promise.resolve().then(c.t.bind(c,8495,23)),Promise.resolve().then(c.t.bind(c,5170,23)),Promise.resolve().then(c.t.bind(c,7526,23)),Promise.resolve().then(c.t.bind(c,8922,23)),Promise.resolve().then(c.t.bind(c,9234,23)),Promise.resolve().then(c.t.bind(c,2263,23)),Promise.resolve().then(c.bind(c,2146))},5969:(a,b,c)=>{"use strict";c.d(b,{ThemeToggle:()=>g});var d=c(1124),e=c(8734);let f={system:"System",light:"Light",dark:"Dark"};function g(){let{theme:a,cycle:b}=(0,e.D)();return(0,d.jsx)("button",{onClick:b,className:"p-2 text-content-tertiary hover:text-content-secondary hover:bg-surface-elevated rounded-lg transition-all flex-shrink-0",title:`Theme: ${f[a]}`,children:"system"===a?(0,d.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.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"===a?(0,d.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.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,d.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.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"})})})}},7626:(a,b,c)=>{Promise.resolve().then(c.bind(c,3340))},8091:(a,b,c)=>{"use strict";c.d(b,{GlobalSearch:()=>g});var d=c(1124),e=c(8301),f=c(2378);function g({projectPath:a}){let[b,c]=(0,e.useState)(""),g=(0,f.useRouter)(),h=(0,e.useRef)(null),i=(0,e.useCallback)(c=>{if(c.preventDefault(),b.trim()){let c=new URLSearchParams({q:b.trim()});a&&c.set("project",a),g.push(`/search?${c.toString()}`)}},[b,g,a]),j=a?"Search this project...":"Search all chats...";return(0,d.jsxs)("form",{onSubmit:i,className:"relative",children:[(0,d.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,d.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,d.jsx)("input",{ref:h,type:"text",value:b,onChange:a=>c(a.target.value),placeholder:j,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"}),!b&&(0,d.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,d.jsx)("span",{className:"text-xs",children:"⌘"}),"K"]})]})}},8734:(a,b,c)=>{"use strict";c.d(b,{D:()=>g,ThemeProvider:()=>h});var d=c(1124),e=c(8301);let f=(0,e.createContext)({theme:"system",resolved:"dark",setTheme:()=>{},cycle:()=>{}});function g(){return(0,e.useContext)(f)}function h({children:a}){let[b,c]=(0,e.useState)("system"),[g,h]=(0,e.useState)("dark"),i=(0,e.useCallback)(a=>{c(a),localStorage.setItem("theme",a)},[]),j=(0,e.useCallback)(()=>{let a=["system","light","dark"];i(a[(a.indexOf(b)+1)%a.length])},[b,i]);return(0,d.jsx)(f.Provider,{value:{theme:b,resolved:g,setTheme:i,cycle:j},children:a})}},9473:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,1170,23)),Promise.resolve().then(c.t.bind(c,3597,23)),Promise.resolve().then(c.t.bind(c,6893,23)),Promise.resolve().then(c.t.bind(c,9748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,9576,23)),Promise.resolve().then(c.t.bind(c,3041,23)),Promise.resolve().then(c.t.bind(c,1384,23))}};
|
|
@@ -1 +0,0 @@
|
|
|
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()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{449:(e,t,n)=>{"use strict";n.d(t,{ThemeToggle:()=>a});var s=n(5155),r=n(1458);let o={system:"System",light:"Light",dark:"Dark"};function a(){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(o[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),o=Math.floor(t/6048e5),a=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(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(s(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")}n.d(t,{EH:()=>s,ap:()=>a,fw:()=>r,r6:()=>o})},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:()=>a,ThemeProvider:()=>l});var s=n(5155),r=n(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,[n,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"===n?window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark":n;if(c(e),document.documentElement.setAttribute("data-theme",e),"system"===n){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)}},[n]);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(n)+1)%e.length])},[n,i]);return(0,s.jsx)(o.Provider,{value:{theme:n,resolved:l,setTheme:i,cycle:d},children:t})}},3389:(e,t,n)=>{"use strict";n.d(t,{SyncButton:()=>o});var s=n(5155),r=n(2115);function o(){let[e,t]=(0,r.useState)(!1),[n,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,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.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,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:()=>o});var s=n(5155),r=n(2115);function o(e){let{encodedPath:t,onClose:n}=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&&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:[l&&(0,s.jsx)("p",{className:"text-sm text-danger",children:l}),!o&&!l&&(0,s.jsx)("p",{className:"text-sm text-content-tertiary",children:"Loading..."}),null==o?void 0:o.map(e=>(0,s.jsxs)("div",{children:[o.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==o?void 0:o.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:()=>a});var s=n(5155),r=n(2115),o=n(63);function a(e){let{projectPath:t}=e,[n,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(),n.trim()){let e=new URLSearchParams({q:n.trim()});t&&e.set("project",t),l.push("/search?".concat(e.toString()))}},[n,l,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:c,type:"text",value:n,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"}),!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"]})]})}},8994:(e,t,n)=>{"use strict";n.d(t,{ProjectList:()=>m});var s=n(5155),r=n(2115),o=n(2619),a=n.n(o),l=n(467),c=n(5011);function i(e){let{project:t}=e,[n,o]=(0,r.useState)(!1);return(0,s.jsxs)(s.Fragment,{children:[(0,s.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,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-content-primary truncate group-hover:text-accent transition-colors",children:t.name}),(0,s.jsx)("p",{className:"text-xs text-content-tertiary truncate mt-0.5 font-mono",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(),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,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-content-tertiary group-hover:text-accent 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:"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)]})]})]}),n&&(0,s.jsx)(c.S,{encodedPath:t.encodedPath,onClose:()=>o(!1)})]})}var d=n(1046);let u=null;function h(){return(0,s.jsx)("div",{className:"grid gap-3 lg:grid-cols-2",children:Array.from({length:6}).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:"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 rounded skeleton-shimmer"}),(0,s.jsx)("div",{className:"h-3 w-64 rounded skeleton-shimmer mt-2"})]})}),(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-24 rounded skeleton-shimmer"}),(0,s.jsx)("div",{className:"h-3 w-16 rounded skeleton-shimmer ml-auto"})]})]},t))})}function m(){let[e,t]=(0,r.useState)(u),[n,o]=(0,r.useState)(""),[a,l]=(0,r.useState)("recent"),[c,m]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=!1;function n(){fetch("/api/projects").then(e=>e.json()).then(n=>{e||(u=n,t(n))})}return n(),window.addEventListener("sync-complete",n),()=>{e=!0,window.removeEventListener("sync-complete",n)}},[]);let x=(0,r.useMemo)(()=>{var t;return null!=(t=null==e?void 0:e.some(e=>e.isOutsideHome))&&t},[e]),f=(0,r.useMemo)(()=>{if(!e)return[];let t=e;if(c&&(t=t.filter(e=>!e.isOutsideHome)),n.trim()){let e=n.toLowerCase();t=t.filter(t=>t.name.toLowerCase().includes(e)||t.path.toLowerCase().includes(e))}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,n,a,c]);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:n,onChange:o,placeholder:"Search projects..."})}),x&&(0,s.jsx)("button",{onClick:()=>m(!c),className:"px-3 py-2.5 border rounded-xl text-sm transition-all whitespace-nowrap ".concat(c?"bg-accent/10 border-accent text-accent":"bg-surface border-edge-subtle text-content-secondary hover:border-accent/50"),children:c?"External hidden":"Hide external"}),(0,s.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,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)(h,{}):0===f.length?(0,s.jsx)("div",{className:"text-center py-16 text-content-tertiary animate-fade",children:n?"No projects found matching your search":"No projects found"}):(0,s.jsx)("div",{className:"grid gap-3 lg:grid-cols-2",children:f.map((e,t)=>(0,s.jsx)("div",{className:"animate-in stagger-".concat(Math.min(t+1,10)),children:(0,s.jsx)(i,{project:e})},e.path))}),null!==e&&(0,s.jsxs)("div",{className:"mt-6 text-xs text-content-tertiary text-center",children:[f.length," of ",e.length," projects"]})]})}},9869:(e,t,n)=>{Promise.resolve().then(n.bind(n,6281)),Promise.resolve().then(n.bind(n,8994)),Promise.resolve().then(n.bind(n,3389)),Promise.resolve().then(n.bind(n,449))}},e=>{e.O(0,[176,441,255,358],()=>e(e.s=9869)),_N_E=e.O()}]);
|