cc-chats 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +31 -31
  3. package/.next/app-path-routes-manifest.json +3 -3
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +10 -10
  6. package/.next/server/app/_not-found/page.js +2 -2
  7. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  8. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_not-found.html +1 -1
  10. package/.next/server/app/_not-found.rsc +18 -14
  11. package/.next/server/app/api/project/rename/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/projects/memory/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/projects/sessions/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/session/delete/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/session/duplicate/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/summary/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/sync/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/index.html +1 -1
  21. package/.next/server/app/index.rsc +22 -17
  22. package/.next/server/app/page.js +2 -2
  23. package/.next/server/app/page.js.nft.json +1 -1
  24. package/.next/server/app/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app/project/[projectPath]/page.js +2 -2
  26. package/.next/server/app/project/[projectPath]/page.js.nft.json +1 -1
  27. package/.next/server/app/project/[projectPath]/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/project/[projectPath]/session/[sessionId]/page.js +2 -2
  29. package/.next/server/app/project/[projectPath]/session/[sessionId]/page.js.nft.json +1 -1
  30. package/.next/server/app/project/[projectPath]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  31. package/.next/server/app/search/page.js +2 -2
  32. package/.next/server/app/search/page.js.nft.json +1 -1
  33. package/.next/server/app/search/page_client-reference-manifest.js +1 -1
  34. package/.next/server/app-paths-manifest.json +3 -3
  35. package/.next/server/chunks/363.js +1 -0
  36. package/.next/server/chunks/{361.js → 707.js} +2 -2
  37. package/.next/server/middleware-build-manifest.js +1 -1
  38. package/.next/server/next-font-manifest.js +1 -1
  39. package/.next/server/next-font-manifest.json +1 -1
  40. package/.next/server/pages/404.html +1 -1
  41. package/.next/server/pages/500.html +1 -1
  42. package/.next/server/server-reference-manifest.json +1 -1
  43. package/.next/static/chunks/app/layout-439f7d41814bd173.js +1 -0
  44. package/.next/static/chunks/app/page-0ca4f890b64c84b2.js +1 -0
  45. package/.next/static/chunks/app/project/[projectPath]/page-23243a0bb07162ab.js +1 -0
  46. package/.next/static/chunks/app/project/[projectPath]/session/[sessionId]/page-a834947a4b535ef5.js +1 -0
  47. package/.next/static/chunks/app/search/page-c0836568a011198b.js +1 -0
  48. package/.next/static/chunks/{webpack-2eb758dea75faf50.js → webpack-43c7aa59eaa5af49.js} +1 -1
  49. package/.next/static/css/6cda10ed9fa4821e.css +3 -0
  50. package/.next/static/media/0aa834ed78bf6d07-s.woff2 +0 -0
  51. package/.next/static/media/13971731025ec697-s.p.woff2 +0 -0
  52. package/.next/static/media/35f3de0ebb1cfc70-s.woff2 +0 -0
  53. package/.next/static/media/67957d42bae0796d-s.woff2 +0 -0
  54. package/.next/static/media/7ab938503e4547a1-s.woff2 +0 -0
  55. package/.next/static/media/886030b0b59bc5a7-s.woff2 +0 -0
  56. package/.next/static/media/939c4f875ee75fbb-s.woff2 +0 -0
  57. package/.next/static/media/bb3ef058b751a6ad-s.p.woff2 +0 -0
  58. package/.next/static/media/e6099e249fd938cc-s.p.woff2 +0 -0
  59. package/.next/static/media/f911b923c6adde36-s.woff2 +0 -0
  60. package/README.md +40 -25
  61. package/package.json +1 -1
  62. package/.next/static/chunks/app/layout-3c47de6beebd1ee5.js +0 -1
  63. package/.next/static/chunks/app/page-ee26475f0bf67f97.js +0 -1
  64. package/.next/static/chunks/app/project/[projectPath]/page-4a13bfac233bc667.js +0 -1
  65. package/.next/static/chunks/app/project/[projectPath]/session/[sessionId]/page-fd03f86459367e6e.js +0 -1
  66. package/.next/static/chunks/app/search/page-e1bdc79033baf6f9.js +0 -1
  67. package/.next/static/css/365667988ce961ff.css +0 -3
  68. /package/.next/static/{cFEqgYfU4B-PbX7GGk3Tt → LrF23DW0UBNNAs7ErsCbs}/_buildManifest.js +0 -0
  69. /package/.next/static/{cFEqgYfU4B-PbX7GGk3Tt → LrF23DW0UBNNAs7ErsCbs}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[943],{467:(e,t,s)=>{"use strict";function r(e){if("number"==typeof e)return e;let t=Date.parse(e);return isNaN(t)?0:t}function n(e){let t=Date.now()-e,s=Math.floor(t/6e4),r=Math.floor(t/36e5),n=Math.floor(t/864e5),a=Math.floor(t/6048e5),l=Math.floor(t/2592e6);if(s<1)return"Just now";if(s<60)return"".concat(s,"m ago");if(r<24)return"".concat(r,"h ago");if(n<7)return"".concat(n,"d ago");if(n<30)return"".concat(a,"w ago");if(l<12)return"".concat(l,"mo ago");let o=Math.floor(l/12);return"".concat(o,"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"})}s.d(t,{EH:()=>r,fw:()=>n,r6:()=>a})},1046:(e,t,s)=>{"use strict";s.d(t,{D:()=>n});var r=s(5155);function n(e){let{value:t,onChange:s,placeholder:n="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-neutral-500",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=>s(e.target.value),placeholder:n,className:"w-full pl-10 pr-4 py-2.5 bg-neutral-900 border border-neutral-800 rounded-lg text-sm placeholder-neutral-500 focus:outline-none focus:border-amber-600 focus:ring-1 focus:ring-amber-600 transition-colors"}),t&&(0,r.jsx)("button",{onClick:()=>s(""),className:"absolute right-3 top-1/2 -translate-y-1/2 text-neutral-500 hover:text-neutral-300",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"})})})]})}},2635:(e,t,s)=>{Promise.resolve().then(s.bind(s,8666))},3389:(e,t,s)=>{"use strict";s.d(t,{SyncButton:()=>a});var r=s(5155),n=s(2115);function a(){let[e,t]=(0,n.useState)(!1),[s,a]=(0,n.useState)(null),l=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:l,disabled:e,className:"p-2 text-neutral-400 hover:text-neutral-200 hover:bg-neutral-800 rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Resync database",children:(0,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"})})}),s&&(s.added>0||s.updated>0||s.removed>0)&&(0,r.jsxs)("div",{className:"text-xs text-neutral-500 whitespace-nowrap",children:[s.added>0&&"+".concat(s.added),s.updated>0&&" ~".concat(s.updated),s.removed>0&&" -".concat(s.removed)]})]})}},5011:(e,t,s)=>{"use strict";s.d(t,{S:()=>a});var r=s(5155),n=s(2115);function a(e){let{encodedPath:t,onClose:s}=e,[a,l]=(0,n.useState)(null),[o,i]=(0,n.useState)(null),c=(0,n.useRef)(null);return(0,n.useEffect)(()=>{fetch("/api/projects/memory?path=".concat(encodeURIComponent(t))).then(e=>{if(!e.ok)throw Error("Failed to load");return e.json()}).then(e=>l(e.files)).catch(()=>i("Failed to load memory"))},[t]),(0,n.useEffect)(()=>{function e(e){"Escape"===e.key&&s()}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[s]),(0,r.jsx)("div",{ref:c,className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm",onClick:e=>{e.target===c.current&&s()},children:(0,r.jsxs)("div",{className:"bg-neutral-900 border border-neutral-700 rounded-lg w-full max-w-2xl max-h-[80vh] flex flex-col shadow-2xl mx-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-5 py-3 border-b border-neutral-800",children:[(0,r.jsx)("h2",{className:"text-sm font-medium text-neutral-200",children:"Project Memory"}),(0,r.jsx)("button",{onClick:s,className:"text-neutral-500 hover:text-neutral-300 transition-colors",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",children:[o&&(0,r.jsx)("p",{className:"text-sm text-red-400",children:o}),!a&&!o&&(0,r.jsx)("p",{className:"text-sm text-neutral-500",children:"Loading..."}),null==a?void 0:a.map(e=>(0,r.jsxs)("div",{children:[a.length>1&&(0,r.jsx)("h3",{className:"text-xs font-medium text-amber-500/80 mb-2",children:e.name}),(0,r.jsx)("pre",{className:"text-sm text-neutral-300 whitespace-pre-wrap font-mono leading-relaxed",children:e.content})]},e.name)),(null==a?void 0:a.length)===0&&(0,r.jsx)("p",{className:"text-sm text-neutral-500",children:"No memory files found."})]})]})})}},6281:(e,t,s)=>{"use strict";s.d(t,{GlobalSearch:()=>l});var r=s(5155),n=s(2115),a=s(63);function l(e){let{projectPath:t}=e,[s,l]=(0,n.useState)(""),o=(0,a.useRouter)(),i=(0,n.useCallback)(e=>{if(e.preventDefault(),s.trim()){let e=new URLSearchParams({q:s.trim()});t&&e.set("project",t),o.push("/search?".concat(e.toString()))}},[s,o,t]),c=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-neutral-500",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:s,onChange:e=>l(e.target.value),placeholder:c,className:"w-full pl-10 pr-4 py-2 bg-neutral-900 border border-neutral-800 rounded-lg text-sm placeholder-neutral-500 focus:outline-none focus:border-amber-600 focus:ring-1 focus:ring-amber-600 transition-colors"})]})}},7625:(e,t,s)=>{"use strict";s.d(t,{SummarySection:()=>a});var r=s(5155),n=s(2115);function a(e){let{type:t,projectPath:s,sessionId:a,messageCount:l}=e,[o,i]=(0,n.useState)(null),[c,d]=(0,n.useState)(!1),[u,m]=(0,n.useState)(null),[x,h]=(0,n.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})}),r=await e.json();if(!e.ok)throw Error(r.error||"Failed to generate summary");i(r.summary)}catch(e){m(e instanceof Error?e.message:"Unknown error")}finally{d(!1)}}if((0,n.useEffect)(()=>{!async function(){try{let e=new URLSearchParams({type:t,project:s});a&&e.append("session",a);let r=await fetch("/api/summary?".concat(e)),n=await r.json();i(n.summary||null)}catch(e){}finally{h(!1)}}()},[t,s,a]),x)return null;let f=o&&o.messageCount<l;return(0,r.jsxs)("div",{className:"p-4 bg-neutral-900/50 border border-neutral-800 rounded-lg",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-4 mb-2",children:[(0,r.jsxs)("h3",{className:"text-sm font-medium text-neutral-300 flex items-center gap-2",children:[(0,r.jsx)("svg",{className:"w-4 h-4 text-amber-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 10V3L4 14h7v7l9-11h-7z"})}),"AI Summary",f&&(0,r.jsx)("span",{className:"text-xs text-amber-500/70",children:"(outdated)"})]}),(0,r.jsx)("button",{onClick:p,disabled:c,className:"px-3 py-1 text-xs font-medium text-amber-500 hover:text-amber-400 hover:bg-amber-500/10 rounded transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:c?"Generating...":o?"Regenerate":"Generate"})]}),u&&(0,r.jsx)("p",{className:"text-sm text-red-400 mb-2",children:u}),o?(0,r.jsx)("p",{className:"text-sm text-neutral-400 leading-relaxed",children:o.content}):!c&&(0,r.jsx)("p",{className:"text-sm text-neutral-600 italic",children:'No summary yet. Click "Generate" to create one.'}),c&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm text-neutral-500",children:[(0,r.jsxs)("svg",{className:"w-4 h-4 animate-spin",fill:"none",viewBox:"0 0 24 24",children:[(0,r.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,r.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:()=>g});var r=s(5155),n=s(2115),a=s(2619),l=s.n(a),o=s(467);function i(e){let{session:t,encodedPath:s}=e;return(0,r.jsxs)(l(),{href:"/project/".concat(s,"/session/").concat(t.id),className:"block p-4 bg-neutral-900/50 border border-neutral-800 rounded-lg hover:border-amber-600/50 hover:bg-neutral-900 transition-all group",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsx)("div",{className:"flex-1 min-w-0",children:(0,r.jsx)("p",{className:"text-sm text-neutral-200 line-clamp-2 group-hover:text-amber-500 transition-colors",children:t.firstMessage||"Empty session"})}),(0,r.jsx)("div",{className:"flex items-center gap-1 text-neutral-500 shrink-0",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:"M9 5l7 7-7 7"})})})]}),(0,r.jsxs)("div",{className:"flex items-center gap-4 mt-3 text-xs text-neutral-500",children:[(0,r.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,r.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.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,r.jsxs)("span",{className:"flex items-center gap-1.5 ml-auto",children:[(0,r.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,o.fw)(t.lastActivity)]})]}),(0,r.jsx)("div",{className:"mt-2 text-xs text-neutral-600 font-mono truncate",children:t.id})]})}var c=s(1046);function d(e){let{sessions:t,encodedPath:s}=e,[a,l]=(0,n.useState)(""),[o,d]=(0,n.useState)(!0),[u,m]=(0,n.useState)(30);(0,n.useEffect)(()=>{m(30)},[t]);let x=(0,n.useMemo)(()=>t.filter(e=>e.messageCount<3).length,[t]),h=(0,n.useMemo)(()=>{let e=t;if(o&&(e=e.filter(e=>e.messageCount>=3)),a.trim()){let t=a.toLowerCase();e=e.filter(e=>e.firstMessage.toLowerCase().includes(t)||e.id.toLowerCase().includes(t))}return e},[t,a,o]),p=h.slice(0,u),f=u<h.length;return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"mb-6 flex items-center gap-4",children:[(0,r.jsx)("div",{className:"flex-1",children:(0,r.jsx)(c.D,{value:a,onChange:function(e){l(e),m(30)},placeholder:"Search sessions..."})}),x>0&&(0,r.jsxs)("label",{className:"flex items-center gap-2 text-xs text-neutral-500 cursor-pointer whitespace-nowrap",children:[(0,r.jsx)("input",{type:"checkbox",checked:o,onChange:e=>{d(e.target.checked),m(30)},className:"rounded border-neutral-600 bg-neutral-800"}),"Hide short (",x,")"]})]}),0===h.length?(0,r.jsx)("div",{className:"text-center py-12 text-neutral-500",children:a?"No sessions found matching your search":"No sessions found"}):(0,r.jsx)("div",{className:"grid gap-3",children:p.map(e=>(0,r.jsx)(i,{session:e,encodedPath:s},e.id))}),(0,r.jsxs)("div",{className:"mt-4 flex items-center justify-center gap-4 text-xs text-neutral-600",children:[(0,r.jsxs)("span",{children:["Showing ",p.length," of ",t.length," sessions",h.length<t.length&&" (".concat(t.length-h.length," hidden)")]}),f&&(0,r.jsx)("button",{onClick:()=>m(e=>e+30),className:"px-3 py-1.5 text-amber-500 hover:text-amber-400 hover:bg-amber-500/10 border border-amber-500/30 rounded-lg transition-colors",children:"Load more"})]})]})}var u=s(63),m=s(6281);function x(e){let{isOpen:t,onClose:s,onSuccess:a,currentPath:l,encodedPath:o}=e,[i,c]=(0,n.useState)(""),[d,u]=(0,n.useState)(!1),[m,x]=(0,n.useState)(null),h=(0,n.useRef)(null);if((0,n.useEffect)(()=>{t&&(c(function(e){let t=e.split("/").filter(Boolean);return t[t.length-1]||e}(l)),x(null),setTimeout(()=>{var e;return null==(e=h.current)?void 0:e.select()},0))},[t,l]),(0,n.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(),!i.trim())return void x("Name cannot be empty.");u(!0),x(null);try{let e=await fetch("/api/project/rename",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({encodedPath:o,newName:i.trim()})}),t=await e.json();if(!e.ok)throw Error(t.error||"Failed to rename project");a(t.newEncodedPath)}catch(e){x(e instanceof Error?e.message:"Unknown error")}finally{u(!1)}}return(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/60 backdrop-blur-sm",onClick:d?void 0:s}),(0,r.jsxs)("div",{className:"relative bg-neutral-900 border border-neutral-800 rounded-lg p-6 w-full max-w-md mx-4 shadow-xl",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold text-neutral-100 mb-4",children:"Rename Project"}),(0,r.jsxs)("form",{onSubmit:p,children:[(0,r.jsxs)("div",{className:"mb-4",children:[(0,r.jsx)("label",{htmlFor:"projectName",className:"block text-sm text-neutral-400 mb-2",children:"New folder name"}),(0,r.jsx)("input",{ref:h,id:"projectName",type:"text",value:i,onChange:e=>c(e.target.value),disabled:d,className:"w-full px-3 py-2 bg-neutral-800 border border-neutral-700 rounded-lg text-neutral-100 placeholder-neutral-500 focus:outline-none focus:border-amber-500 disabled:opacity-50",placeholder:"Enter new name",autoComplete:"off"})]}),m&&(0,r.jsx)("p",{className:"text-sm text-red-400 mb-4",children:m}),(0,r.jsxs)("div",{className:"flex items-center justify-end gap-3",children:[(0,r.jsx)("button",{type:"button",onClick:s,disabled:d,className:"px-4 py-2 text-sm text-neutral-400 hover:text-neutral-200 transition-colors disabled:opacity-50",children:"Cancel"}),(0,r.jsxs)("button",{type:"submit",disabled:d||!i.trim(),className:"px-4 py-2 text-sm font-medium bg-amber-600 hover:bg-amber-500 text-white rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2",children:[d&&(0,r.jsxs)("svg",{className:"w-4 h-4 animate-spin",fill:"none",viewBox:"0 0 24 24",children:[(0,r.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,r.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 h=s(5011),p=s(3389);function f(e){let{projectName:t,projectPath:s,encodedPath:a,hasMemory:o}=e,[i,c]=(0,n.useState)(!1),[d,f]=(0,n.useState)(!1),j=(0,u.useRouter)();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("header",{className:"border-b border-neutral-800 bg-neutral-900/50 backdrop-blur-sm sticky top-0 z-10",children:(0,r.jsx)("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 py-4",children:(0,r.jsxs)("div",{className:"flex items-center gap-4",children:[(0,r.jsx)(l(),{href:"/",className:"p-2 -ml-2 text-neutral-400 hover:text-neutral-200 hover:bg-neutral-800 rounded-lg transition-colors flex-shrink-0",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:"M15 19l-7-7 7-7"})})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0 hidden sm:block",children:[(0,r.jsx)("div",{className:"flex items-center gap-2",children:(0,r.jsx)("h1",{className:"text-lg font-semibold text-neutral-100 truncate",children:t})}),(0,r.jsx)("p",{className:"text-xs text-neutral-500 truncate",children:s})]}),o&&(0,r.jsxs)("button",{onClick:()=>f(!0),className:"flex items-center gap-1 px-2.5 py-1.5 text-xs font-medium text-amber-500 hover:text-amber-400 hover:bg-amber-500/10 border border-amber-500/30 rounded-lg transition-colors flex-shrink-0",children:[(0,r.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.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,r.jsx)("button",{onClick:()=>c(!0),className:"px-3 py-1.5 text-xs font-medium text-amber-500 hover:text-amber-400 hover:bg-amber-500/10 border border-amber-500/30 rounded-lg transition-colors flex-shrink-0",children:"Rename"}),(0,r.jsx)("div",{className:"flex-1 max-w-md",children:(0,r.jsx)(m.GlobalSearch,{projectPath:a})}),(0,r.jsx)(p.SyncButton,{})]})})}),(0,r.jsx)(x,{isOpen:i,onClose:()=>c(!1),onSuccess:function(e){c(!1),j.replace("/project/".concat(e))},currentPath:s,encodedPath:a}),d&&(0,r.jsx)(h.S,{encodedPath:a,onClose:()=>f(!1)})]})}var j=s(7625);let v=new Map;function b(){return(0,r.jsx)("div",{className:"grid gap-3",children:Array.from({length:5}).map((e,t)=>(0,r.jsxs)("div",{className:"p-4 bg-neutral-900/50 border border-neutral-800 rounded-lg",children:[(0,r.jsx)("div",{className:"h-4 w-3/4 bg-neutral-800 rounded animate-pulse"}),(0,r.jsxs)("div",{className:"flex items-center gap-4 mt-3",children:[(0,r.jsx)("div",{className:"h-3 w-20 bg-neutral-800/50 rounded animate-pulse"}),(0,r.jsx)("div",{className:"h-3 w-16 bg-neutral-800/50 rounded animate-pulse ml-auto"})]})]},t))})}function g(e){var t,s,a,l,i;let{encodedPath:c}=e,[u,m]=(0,n.useState)(null!=(t=v.get(c))?t:null);(0,n.useEffect)(()=>{let e=!1;function t(){fetch("/api/projects/sessions?path=".concat(encodeURIComponent(c))).then(e=>e.json()).then(t=>{e||(v.set(c,t),m(t))})}return t(),window.addEventListener("sync-complete",t),()=>{e=!0,window.removeEventListener("sync-complete",t)}},[c]);let x=null!=(s=null==u?void 0:u.sessions.reduce((e,t)=>e+t.messageCount,0))?s:0,h=u?Math.max(...u.sessions.map(e=>e.lastActivity)):0;return(0,r.jsxs)("div",{className:"min-h-screen",children:[(0,r.jsx)(f,{projectName:null!=(a=null==u?void 0:u.projectName)?a:c,projectPath:null!=(l=null==u?void 0:u.decodedPath)?l:c,encodedPath:c,hasMemory:null!=(i=null==u?void 0:u.hasMemory)&&i}),(0,r.jsx)("main",{className:"max-w-5xl mx-auto px-4 sm:px-6 py-6",children:u?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex items-center gap-4 mb-6 text-sm text-neutral-400",children:[(0,r.jsxs)("span",{className:"flex items-center gap-1.5",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:"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"})}),u.sessions.length," sessions"]}),(0,r.jsxs)("span",{className:"flex items-center gap-1.5",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:"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"})}),x," messages"]}),(0,r.jsxs)("span",{className:"flex items-center gap-1.5",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:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),"Last active ",(0,o.fw)(h)]})]}),(0,r.jsx)("div",{className:"mb-6",children:(0,r.jsx)(j.SummarySection,{type:"project",projectPath:c,messageCount:x})}),(0,r.jsx)(d,{sessions:u.sessions,encodedPath:c},c)]}):(0,r.jsx)(b,{})})]})}}},e=>{e.O(0,[176,441,255,358],()=>e(e.s=2635)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[810],{467:(e,t,s)=>{"use strict";function r(e){if("number"==typeof e)return e;let t=Date.parse(e);return isNaN(t)?0:t}function n(e){let t=Date.now()-e,s=Math.floor(t/6e4),r=Math.floor(t/36e5),n=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(r<24)return"".concat(r,"h ago");if(n<7)return"".concat(n,"d ago");if(n<30)return"".concat(a,"w ago");if(o<12)return"".concat(o,"mo ago");let l=Math.floor(o/12);return"".concat(l,"y ago")}function a(e){return new Date(r(e)).toLocaleString("en-GB",{day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"})}s.d(t,{EH:()=>r,fw:()=>n,r6:()=>a})},4200:(e,t,s)=>{"use strict";s.d(t,{DeleteSessionButton:()=>o});var r=s(5155),n=s(2115),a=s(63);function o(e){let{encodedPath:t,sessionId:s}=e,o=(0,a.useRouter)(),[l,i]=(0,n.useState)(!1),[c,d]=(0,n.useState)(!1),[u,m]=(0,n.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})}),r=await e.json();if(!e.ok)throw Error(r.error||"Failed to delete session");o.push("/project/".concat(t))}catch(e){m(e instanceof Error?e.message:"Unknown error")}finally{d(!1)}}return(0,n.useEffect)(()=>{l&&m(null)},[l]),(0,n.useEffect)(()=>{function e(e){"Escape"===e.key&&l&&!c&&i(!1)}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[l,c]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("button",{onClick:()=>i(!0),className:"px-3 py-1.5 text-sm text-red-500 hover:text-red-400 hover:bg-red-500/10 border border-red-500/30 rounded-lg transition-colors flex items-center gap-2",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:"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"]}),l&&(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/60 backdrop-blur-sm",onClick:c?void 0:()=>i(!1)}),(0,r.jsxs)("div",{className:"relative bg-neutral-900 border border-neutral-800 rounded-lg p-6 w-full max-w-md mx-4 shadow-xl",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold text-neutral-100 mb-4",children:"Delete Session"}),(0,r.jsx)("p",{className:"text-sm text-neutral-400 mb-4",children:"Are you sure you want to delete this session? This action cannot be undone."}),u&&(0,r.jsx)("p",{className:"text-sm text-red-400 mb-4",children:u}),(0,r.jsxs)("div",{className:"flex items-center justify-end gap-3",children:[(0,r.jsx)("button",{type:"button",onClick:()=>i(!1),disabled:c,className:"px-4 py-2 text-sm text-neutral-400 hover:text-neutral-200 transition-colors disabled:opacity-50",children:"Cancel"}),(0,r.jsxs)("button",{onClick:x,disabled:c,className:"px-4 py-2 text-sm font-medium bg-red-600 hover:bg-red-500 text-white rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2",children:[c&&(0,r.jsxs)("svg",{className:"w-4 h-4 animate-spin",fill:"none",viewBox:"0 0 24 24",children:[(0,r.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,r.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"})]}),c?"Deleting...":"Delete"]})]})]})]})]})}},4905:(e,t,s)=>{"use strict";s.d(t,{ResumeCommandCopy:()=>o});var r=s(5155),n=s(2115);function a(e){let{text:t,label:s="Copy"}=e,[a,o]=(0,n.useState)(!1),l=async()=>{await navigator.clipboard.writeText(t),o(!0),setTimeout(()=>o(!1),2e3)};return(0,r.jsx)("button",{onClick:l,className:"flex items-center gap-2 px-3 py-1.5 text-sm bg-neutral-800 hover:bg-neutral-700 border border-neutral-700 rounded-lg transition-colors",children:a?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("svg",{className:"w-4 h-4 text-green-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})}),(0,r.jsx)("span",{className:"text-green-500",children:"Copied!"})]}):(0,r.jsxs)(r.Fragment,{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:"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"})}),(0,r.jsx)("span",{children:s})]})})}function o(e){let{sessionId:t}=e,[s,o]=(0,n.useState)(!0);return(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-neutral-400 cursor-pointer select-none",children:[(0,r.jsx)("input",{type:"checkbox",checked:s,onChange:e=>o(e.target.checked),className:"w-3.5 h-3.5 rounded border-neutral-600 bg-neutral-800 text-orange-500 focus:ring-orange-500 focus:ring-offset-0 cursor-pointer"}),(0,r.jsx)("span",{children:"Skip permissions"})]}),(0,r.jsx)(a,{text:s?"claude --dangerously-skip-permissions --resume ".concat(t):"claude --resume ".concat(t),label:"Copy command"})]})}},6036:(e,t,s)=>{"use strict";s.d(t,{DuplicateSessionButton:()=>o});var r=s(5155),n=s(2115),a=s(63);function o(e){let{encodedPath:t,sessionId:s,totalMessageCount:o,strippedMessageCount:l}=e,i=(0,a.useRouter)(),[c,d]=(0,n.useState)(!1),[u,m]=(0,n.useState)(""),[x,h]=(0,n.useState)(!1),[p,f]=(0,n.useState)(!1),[b,g]=(0,n.useState)(null),j=(0,n.useRef)(null);(0,n.useEffect)(()=>{c&&(m(""),h(!1),g(null),setTimeout(()=>{var e;return null==(e=j.current)?void 0:e.focus()},0))},[c]),(0,n.useEffect)(()=>{function e(e){"Escape"===e.key&&c&&!p&&d(!1)}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[c,p]);let v=u?parseInt(u,10):void 0,y=!u||v&&v>0,N=x?l:o,k=v?Math.min(v,N):N,w=o>0?Math.round((1-k/o)*100):0;async function C(){if(!y)return void g("Please enter a valid positive number.");f(!0),g(null);try{let e=await fetch("/api/session/duplicate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({encodedPath:t,sessionId:s,keepLastN:v,stripToolResults:x})}),r=await e.json();if(!e.ok)throw Error(r.error||"Failed to duplicate session");i.push("/project/".concat(t,"/session/").concat(r.newSessionId))}catch(e){g(e instanceof Error?e.message:"Unknown error")}finally{f(!1)}}return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("button",{onClick:()=>d(!0),className:"px-3 py-1.5 text-sm text-amber-500 hover:text-amber-400 hover:bg-amber-500/10 border border-amber-500/30 rounded-lg transition-colors flex items-center gap-2",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:"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"]}),c&&(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/60 backdrop-blur-sm",onClick:p?void 0:()=>d(!1)}),(0,r.jsxs)("div",{className:"relative bg-neutral-900 border border-neutral-800 rounded-lg p-6 w-full max-w-md mx-4 shadow-xl",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold text-neutral-100 mb-4",children:"Duplicate Session"}),(0,r.jsxs)("div",{className:"mb-4",children:[(0,r.jsx)("label",{htmlFor:"keepLastN",className:"block text-sm text-neutral-400 mb-2",children:"Keep last N messages (optional)"}),(0,r.jsx)("input",{ref:j,id:"keepLastN",type:"number",min:"1",value:u,onChange:e=>m(e.target.value),disabled:p,className:"w-full px-3 py-2 bg-neutral-800 border border-neutral-700 rounded-lg text-neutral-100 placeholder-neutral-500 focus:outline-none focus:border-amber-500 disabled:opacity-50",placeholder:"Leave empty for all ".concat(o," messages")})]}),(0,r.jsx)("div",{className:"mb-4",children:(0,r.jsxs)("label",{className:"flex items-center gap-2 text-sm text-neutral-400 cursor-pointer",children:[(0,r.jsx)("input",{type:"checkbox",checked:x,onChange:e=>h(e.target.checked),disabled:p,className:"w-4 h-4 rounded border-neutral-600 bg-neutral-800 text-amber-500 focus:ring-amber-500 focus:ring-offset-0 disabled:opacity-50"}),"Strip tool results & system messages"]})}),(0,r.jsxs)("div",{className:"text-sm text-neutral-400 mb-4 p-3 bg-neutral-800/50 rounded-lg",children:[(0,r.jsxs)("div",{className:"flex justify-between",children:[(0,r.jsx)("span",{children:"Original"}),(0,r.jsxs)("span",{className:"text-neutral-200",children:[o," messages"]})]}),(0,r.jsxs)("div",{className:"flex justify-between mt-1",children:[(0,r.jsx)("span",{children:"Result"}),(0,r.jsxs)("span",{className:"text-neutral-200",children:[k," messages"]})]}),w>0&&(0,r.jsxs)("div",{className:"flex justify-between mt-1 text-amber-500",children:[(0,r.jsx)("span",{children:"Reduction"}),(0,r.jsxs)("span",{children:[w,"%"]})]})]}),b&&(0,r.jsx)("p",{className:"text-sm text-red-400 mb-4",children:b}),(0,r.jsxs)("div",{className:"flex items-center justify-end gap-3",children:[(0,r.jsx)("button",{type:"button",onClick:()=>d(!1),disabled:p,className:"px-4 py-2 text-sm text-neutral-400 hover:text-neutral-200 transition-colors disabled:opacity-50",children:"Cancel"}),(0,r.jsxs)("button",{onClick:C,disabled:p||!y,className:"px-4 py-2 text-sm font-medium bg-amber-600 hover:bg-amber-500 text-white rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2",children:[p&&(0,r.jsxs)("svg",{className:"w-4 h-4 animate-spin",fill:"none",viewBox:"0 0 24 24",children:[(0,r.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,r.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"]})]})]})]})]})}},6281:(e,t,s)=>{"use strict";s.d(t,{GlobalSearch:()=>o});var r=s(5155),n=s(2115),a=s(63);function o(e){let{projectPath:t}=e,[s,o]=(0,n.useState)(""),l=(0,a.useRouter)(),i=(0,n.useCallback)(e=>{if(e.preventDefault(),s.trim()){let e=new URLSearchParams({q:s.trim()});t&&e.set("project",t),l.push("/search?".concat(e.toString()))}},[s,l,t]),c=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-neutral-500",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:s,onChange:e=>o(e.target.value),placeholder:c,className:"w-full pl-10 pr-4 py-2 bg-neutral-900 border border-neutral-800 rounded-lg text-sm placeholder-neutral-500 focus:outline-none focus:border-amber-600 focus:ring-1 focus:ring-amber-600 transition-colors"})]})}},7123:(e,t,s)=>{"use strict";s.d(t,{ChatView:()=>l});var r=s(5155),n=s(2115),a=s(467);function o(e){let{message:t,compact:s=!1}=e,[o,l]=(0,n.useState)(!1),i="user"===t.type,c=function(e,t){if("string"==typeof e)return e;let s=[];for(let r of e)if("text"===r.type)s.push(r.text);else if("tool_use"===r.type)s.push("[Tool: ".concat(r.name,"]"));else if("tool_result"===r.type&&t){let e="string"==typeof r.content?r.content:JSON.stringify(r.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&&c.length>300?c.slice(0,300)+"...":c,u=s&&c.length>300;return(0,r.jsx)("div",{className:"flex ".concat(i?"justify-end":"justify-start"),children:(0,r.jsxs)("div",{className:"max-w-[85%] rounded-2xl px-4 py-3 ".concat(i?"bg-amber-600 text-white rounded-br-md":"bg-neutral-800 text-neutral-100 rounded-bl-md"),children:[(0,r.jsxs)("div",{className:"text-xs opacity-60 mb-1.5",children:[i?"You":"Claude"," \xb7 ",(0,a.r6)(t.timestamp)]}),(0,r.jsx)("div",{className:"text-sm whitespace-pre-wrap break-words",children:o?c:d}),u&&(0,r.jsx)("button",{onClick:()=>l(!o),className:"mt-2 text-xs font-medium ".concat(i?"text-amber-200 hover:text-white":"text-amber-500 hover:text-amber-400"),children:o?"Show less":"Show more"})]})})}function l(e){let{messages:t,previewCount:s=6,highlightMessageId:l}=e,[i,c]=(0,n.useState)(!!l),[d,u]=(0,n.useState)(!1),m=(0,n.useRef)(null),x=[...(0,n.useMemo)(()=>d?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,d])].sort((e,t)=>(0,a.EH)(e.timestamp)-(0,a.EH)(t.timestamp)),h=i?x:x.slice(0,s),p=x.length>s;return(0,n.useEffect)(()=>{l&&m.current&&m.current.scrollIntoView({behavior:"smooth",block:"center"})},[l]),(0,r.jsxs)("div",{className:"space-y-4",children:[h.map(e=>{let t=l===e.uuid;return(0,r.jsx)("div",{ref:t?m:void 0,className:t?"ring-2 ring-amber-500 ring-offset-2 ring-offset-neutral-950 rounded-lg":"",children:(0,r.jsx)(o,{message:e,compact:!i})},e.uuid)}),p&&(0,r.jsx)("div",{className:"flex justify-center pt-4",children:(0,r.jsx)("button",{onClick:()=>c(!i),className:"flex items-center gap-2 px-4 py-2 text-sm text-amber-500 hover:text-amber-400 bg-neutral-800/50 hover:bg-neutral-800 border border-neutral-700 rounded-lg transition-colors",children:i?(0,r.jsxs)(r.Fragment,{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:"M5 15l7-7 7 7"})}),"Show preview only"]}):(0,r.jsxs)(r.Fragment,{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:"M19 9l-7 7-7-7"})}),"Show all ",x.length," messages"]})})}),(0,r.jsx)("div",{className:"flex justify-center pt-2",children:(0,r.jsxs)("label",{className:"flex items-center gap-2 text-sm text-neutral-400 cursor-pointer",children:[(0,r.jsx)("input",{type:"checkbox",checked:d,onChange:e=>u(e.target.checked),className:"w-4 h-4 rounded border-neutral-600 bg-neutral-800 text-amber-500 focus:ring-amber-500 focus:ring-offset-0"}),"Show system messages"]})}),0===h.length&&(0,r.jsx)("div",{className:"text-center py-12 text-neutral-500",children:"No messages in this session"})]})}},7625:(e,t,s)=>{"use strict";s.d(t,{SummarySection:()=>a});var r=s(5155),n=s(2115);function a(e){let{type:t,projectPath:s,sessionId:a,messageCount:o}=e,[l,i]=(0,n.useState)(null),[c,d]=(0,n.useState)(!1),[u,m]=(0,n.useState)(null),[x,h]=(0,n.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})}),r=await e.json();if(!e.ok)throw Error(r.error||"Failed to generate summary");i(r.summary)}catch(e){m(e instanceof Error?e.message:"Unknown error")}finally{d(!1)}}if((0,n.useEffect)(()=>{!async function(){try{let e=new URLSearchParams({type:t,project:s});a&&e.append("session",a);let r=await fetch("/api/summary?".concat(e)),n=await r.json();i(n.summary||null)}catch(e){}finally{h(!1)}}()},[t,s,a]),x)return null;let f=l&&l.messageCount<o;return(0,r.jsxs)("div",{className:"p-4 bg-neutral-900/50 border border-neutral-800 rounded-lg",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-4 mb-2",children:[(0,r.jsxs)("h3",{className:"text-sm font-medium text-neutral-300 flex items-center gap-2",children:[(0,r.jsx)("svg",{className:"w-4 h-4 text-amber-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 10V3L4 14h7v7l9-11h-7z"})}),"AI Summary",f&&(0,r.jsx)("span",{className:"text-xs text-amber-500/70",children:"(outdated)"})]}),(0,r.jsx)("button",{onClick:p,disabled:c,className:"px-3 py-1 text-xs font-medium text-amber-500 hover:text-amber-400 hover:bg-amber-500/10 rounded transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:c?"Generating...":l?"Regenerate":"Generate"})]}),u&&(0,r.jsx)("p",{className:"text-sm text-red-400 mb-2",children:u}),l?(0,r.jsx)("p",{className:"text-sm text-neutral-400 leading-relaxed",children:l.content}):!c&&(0,r.jsx)("p",{className:"text-sm text-neutral-600 italic",children:'No summary yet. Click "Generate" to create one.'}),c&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm text-neutral-500",children:[(0,r.jsxs)("svg",{className:"w-4 h-4 animate-spin",fill:"none",viewBox:"0 0 24 24",children:[(0,r.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,r.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..."]})]})}},9395:(e,t,s)=>{Promise.resolve().then(s.t.bind(s,2619,23)),Promise.resolve().then(s.bind(s,7123)),Promise.resolve().then(s.bind(s,4200)),Promise.resolve().then(s.bind(s,6036)),Promise.resolve().then(s.bind(s,6281)),Promise.resolve().then(s.bind(s,4905)),Promise.resolve().then(s.bind(s,7625))}},e=>{e.O(0,[176,441,255,358],()=>e(e.s=9395)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[959],{467:(e,t,r)=>{"use strict";function s(e){if("number"==typeof e)return e;let t=Date.parse(e);return isNaN(t)?0:t}function a(e){let t=Date.now()-e,r=Math.floor(t/6e4),s=Math.floor(t/36e5),a=Math.floor(t/864e5),n=Math.floor(t/6048e5),o=Math.floor(t/2592e6);if(r<1)return"Just now";if(r<60)return"".concat(r,"m ago");if(s<24)return"".concat(s,"h ago");if(a<7)return"".concat(a,"d ago");if(a<30)return"".concat(n,"w ago");if(o<12)return"".concat(o,"mo ago");let l=Math.floor(o/12);return"".concat(l,"y ago")}function n(e){return new Date(s(e)).toLocaleString("en-GB",{day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"})}r.d(t,{EH:()=>s,fw:()=>a,r6:()=>n})},3389:(e,t,r)=>{"use strict";r.d(t,{SyncButton:()=>n});var s=r(5155),a=r(2115);function n(){let[e,t]=(0,a.useState)(!1),[r,n]=(0,a.useState)(null),o=async()=>{t(!0),n(null);try{let e=await fetch("/api/sync",{method:"POST"});if(!e.ok)throw Error("Sync failed");let t=await e.json();n(t.sync),window.dispatchEvent(new Event("sync-complete")),setTimeout(()=>n(null),3e3)}catch(e){console.error("Sync error:",e)}finally{t(!1)}};return(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("button",{onClick:o,disabled:e,className:"p-2 text-neutral-400 hover:text-neutral-200 hover:bg-neutral-800 rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Resync database",children:(0,s.jsx)("svg",{className:"w-5 h-5 ".concat(e?"animate-spin":""),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})})}),r&&(r.added>0||r.updated>0||r.removed>0)&&(0,s.jsxs)("div",{className:"text-xs text-neutral-500 whitespace-nowrap",children:[r.added>0&&"+".concat(r.added),r.updated>0&&" ~".concat(r.updated),r.removed>0&&" -".concat(r.removed)]})]})}},6281:(e,t,r)=>{"use strict";r.d(t,{GlobalSearch:()=>o});var s=r(5155),a=r(2115),n=r(63);function o(e){let{projectPath:t}=e,[r,o]=(0,a.useState)(""),l=(0,n.useRouter)(),c=(0,a.useCallback)(e=>{if(e.preventDefault(),r.trim()){let e=new URLSearchParams({q:r.trim()});t&&e.set("project",t),l.push("/search?".concat(e.toString()))}},[r,l,t]),i=t?"Search this project...":"Search all chats...";return(0,s.jsxs)("form",{onSubmit:c,className:"relative",children:[(0,s.jsx)("svg",{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-neutral-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),(0,s.jsx)("input",{type:"text",value:r,onChange:e=>o(e.target.value),placeholder:i,className:"w-full pl-10 pr-4 py-2 bg-neutral-900 border border-neutral-800 rounded-lg text-sm placeholder-neutral-500 focus:outline-none focus:border-amber-600 focus:ring-1 focus:ring-amber-600 transition-colors"})]})}},6592:(e,t,r)=>{"use strict";r.d(t,{SearchResults:()=>c});var s=r(5155),a=r(2115),n=r(2619),o=r.n(n),l=r(467);function c(e){let{query:t,projectPath:r}=e,[n,c]=(0,a.useState)([]),[i,d]=(0,a.useState)(null),[u,m]=(0,a.useState)(!1),[h,x]=(0,a.useState)(null);return((0,a.useEffect)(()=>{if(!t.trim())return void c([]);(async()=>{m(!0),x(null);try{let e=new URLSearchParams({q:t});r&&e.set("project",r);let s=await fetch("/api/search?".concat(e.toString()));if(!s.ok)throw Error("Search failed");let a=await s.json();c(a.results),d(a.stats)}catch(e){x("Failed to search. Please try again."),c([])}finally{m(!1)}})()},[t,r]),t.trim())?u?(0,s.jsxs)("div",{className:"text-center py-12",children:[(0,s.jsx)("div",{className:"w-8 h-8 mx-auto border-2 border-neutral-700 border-t-amber-500 rounded-full animate-spin mb-4"}),(0,s.jsx)("p",{className:"text-neutral-400",children:"Searching..."})]}):h?(0,s.jsxs)("div",{className:"text-center py-12",children:[(0,s.jsx)("svg",{className:"w-12 h-12 mx-auto text-red-500 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})}),(0,s.jsx)("p",{className:"text-red-400",children:h})]}):0===n.length?(0,s.jsxs)("div",{className:"text-center py-12",children:[(0,s.jsx)("svg",{className:"w-12 h-12 mx-auto text-neutral-700 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M9.172 16.172a4 4 0 015.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,s.jsxs)("p",{className:"text-neutral-400",children:["No results found for “",t,"”"]})]}):(0,s.jsxs)("div",{children:[(0,s.jsxs)("p",{className:"text-sm text-neutral-500 mb-4",children:["Found ",n.length," result",1!==n.length?"s":""," for “",t,"”"]}),(0,s.jsx)("div",{className:"space-y-3",children:n.map((e,t)=>(0,s.jsxs)(o(),{href:"/project/".concat(e.projectPath,"/session/").concat(e.sessionId,"?highlight=").concat(e.messageUuid),className:"block p-4 bg-neutral-900/50 border border-neutral-800 rounded-lg hover:border-neutral-700 hover:bg-neutral-800/50 transition-colors",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-4 mb-2",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,s.jsx)("span",{className:"px-2 py-0.5 rounded text-xs font-medium ".concat("user"===e.userType?"bg-blue-500/20 text-blue-400":"bg-amber-500/20 text-amber-400"),children:e.userType}),(0,s.jsx)("span",{className:"text-neutral-400",children:e.projectName})]}),e.timestamp>0&&(0,s.jsx)("span",{className:"text-xs text-neutral-600 whitespace-nowrap",children:(0,l.fw)(e.timestamp)})]}),(0,s.jsx)("p",{className:"text-sm text-neutral-300 line-clamp-3 [&>mark]:bg-amber-500/30 [&>mark]:text-amber-200 [&>mark]:px-0.5 [&>mark]:rounded",dangerouslySetInnerHTML:{__html:e.snippet}}),(0,s.jsx)("p",{className:"text-xs text-neutral-600 mt-2 font-mono truncate",children:e.sessionId})]},"".concat(e.sessionId,"-").concat(e.messageUuid,"-").concat(t)))})]}):(0,s.jsxs)("div",{className:"text-center py-12",children:[(0,s.jsx)("svg",{className:"w-12 h-12 mx-auto text-neutral-700 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),(0,s.jsxs)("p",{className:"text-neutral-400",children:["Enter a search query to find messages ",r?"in this project":"across all chats"]}),i&&(0,s.jsxs)("p",{className:"text-sm text-neutral-600 mt-2",children:[i.messageCount.toLocaleString()," messages indexed across ",i.fileCount," sessions"]})]})}},7821:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,2619,23)),Promise.resolve().then(r.bind(r,6592)),Promise.resolve().then(r.bind(r,6281)),Promise.resolve().then(r.bind(r,3389))}},e=>{e.O(0,[176,441,255,358],()=>e(e.s=7821)),_N_E=e.O()}]);
@@ -1,3 +0,0 @@
1
- *,: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:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.left-3{left:.75rem}.right-3{right:.75rem}.top-0{top:0}.top-1\/2{top:50%}.z-10{z-index:10}.z-50{z-index:50}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.-ml-2{margin-left:-.5rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.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}.max-h-\[80vh\]{max-height:80vh}.min-h-screen{min-height:100vh}.w-12{width:3rem}.w-16{width:4rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-full{width:100%}.min-w-0{min-width:0}.max-w-2xl{max-width:42rem}.max-w-5xl{max-width:64rem}.max-w-\[85\%\]{max-width:85%}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@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}.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-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.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))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-neutral-800>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(38 38 38/var(--tw-divide-opacity,1))}.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-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-amber-500\/30{border-color:rgb(245 158 11/.3)}.border-neutral-600{--tw-border-opacity:1;border-color:rgb(82 82 82/var(--tw-border-opacity,1))}.border-neutral-700{--tw-border-opacity:1;border-color:rgb(64 64 64/var(--tw-border-opacity,1))}.border-neutral-800{--tw-border-opacity:1;border-color:rgb(38 38 38/var(--tw-border-opacity,1))}.border-red-500\/30{border-color:rgb(239 68 68/.3)}.border-t-amber-500{--tw-border-opacity:1;border-top-color:rgb(245 158 11/var(--tw-border-opacity,1))}.bg-amber-500\/10{background-color:rgb(245 158 11/.1)}.bg-amber-500\/20{background-color:rgb(245 158 11/.2)}.bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.bg-amber-600\/10{background-color:rgb(217 119 6/.1)}.bg-black\/60{background-color:rgb(0 0 0/.6)}.bg-blue-500\/20{background-color:rgb(59 130 246/.2)}.bg-neutral-800{--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.bg-neutral-800\/50{background-color:rgb(38 38 38/.5)}.bg-neutral-900{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.bg-neutral-900\/50{background-color:rgb(23 23 23/.5)}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.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-12{padding-top:3rem;padding-bottom:3rem}.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-6{padding-top:1.5rem;padding-bottom:1.5rem}.pl-10{padding-left:2.5rem}.pr-4{padding-right:1rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-\[10px\]{font-size:10px}.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}.font-semibold{font-weight:600}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.tracking-wide{letter-spacing:.025em}.text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-amber-500\/70{color:rgb(245 158 11/.7)}.text-amber-500\/80{color:rgb(245 158 11/.8)}.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-neutral-100{--tw-text-opacity:1;color:rgb(245 245 245/var(--tw-text-opacity,1))}.text-neutral-200{--tw-text-opacity:1;color:rgb(229 229 229/var(--tw-text-opacity,1))}.text-neutral-300{--tw-text-opacity:1;color:rgb(212 212 212/var(--tw-text-opacity,1))}.text-neutral-400{--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity,1))}.text-neutral-500{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}.text-neutral-600{--tw-text-opacity:1;color:rgb(82 82 82/var(--tw-text-opacity,1))}.text-neutral-700{--tw-text-opacity:1;color:rgb(64 64 64/var(--tw-text-opacity,1))}.text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/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-neutral-500::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(115 115 115/var(--tw-placeholder-opacity,1))}.placeholder-neutral-500::placeholder{--tw-placeholder-opacity:1;color:rgb(115 115 115/var(--tw-placeholder-opacity,1))}.opacity-25{opacity:.25}.opacity-60{opacity:.6}.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)}.shadow-2xl,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgb(0 0 0/0.1),0 8px 10px -6px rgb(0 0 0/0.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.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-amber-500{--tw-ring-opacity:1;--tw-ring-color:rgb(245 158 11/var(--tw-ring-opacity,1))}.ring-offset-2{--tw-ring-offset-width:2px}.ring-offset-neutral-950{--tw-ring-offset-color:#0a0a0a}.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-sm{--tw-backdrop-blur:blur(4px);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)}.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}:root{--background:#0a0a0a;--foreground:#ededed;--card-bg:#141414;--card-border:#262626;--accent:#d97706;--accent-hover:#f59e0b;--muted:#737373}body{background:var(--background);color:var(--foreground);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.scrollbar-thin::-webkit-scrollbar{width:6px;height:6px}.scrollbar-thin::-webkit-scrollbar-track{background:transparent}.scrollbar-thin::-webkit-scrollbar-thumb{background:#404040;border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:#525252}.hover\:border-amber-600\/50:hover{border-color:rgb(217 119 6/.5)}.hover\:border-neutral-700:hover{--tw-border-opacity:1;border-color:rgb(64 64 64/var(--tw-border-opacity,1))}.hover\:bg-amber-500:hover{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.hover\:bg-amber-500\/10:hover{background-color:rgb(245 158 11/.1)}.hover\:bg-amber-500\/20:hover{background-color:rgb(245 158 11/.2)}.hover\:bg-neutral-700:hover{--tw-bg-opacity:1;background-color:rgb(64 64 64/var(--tw-bg-opacity,1))}.hover\:bg-neutral-800:hover{--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.hover\:bg-neutral-800\/50:hover{background-color:rgb(38 38 38/.5)}.hover\:bg-neutral-900:hover{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.hover\:bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.hover\:bg-red-500\/10:hover{background-color:rgb(239 68 68/.1)}.hover\:text-amber-400:hover{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.hover\:text-amber-500:hover{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.hover\:text-neutral-200:hover{--tw-text-opacity:1;color:rgb(229 229 229/var(--tw-text-opacity,1))}.hover\:text-neutral-300:hover{--tw-text-opacity:1;color:rgb(212 212 212/var(--tw-text-opacity,1))}.hover\:text-red-400:hover{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.focus\:border-amber-500:focus{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.focus\:border-amber-600:focus{--tw-border-opacity:1;border-color:rgb(217 119 6/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-amber-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(245 158 11/var(--tw-ring-opacity,1))}.focus\:ring-amber-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(217 119 6/var(--tw-ring-opacity,1))}.focus\:ring-orange-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(249 115 22/var(--tw-ring-opacity,1))}.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-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex-row{flex-direction:row}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}}.\[\&\>mark\]\:rounded>mark{border-radius:.25rem}.\[\&\>mark\]\:bg-amber-500\/30>mark{background-color:rgb(245 158 11/.3)}.\[\&\>mark\]\:px-0\.5>mark{padding-left:.125rem;padding-right:.125rem}.\[\&\>mark\]\:text-amber-200>mark{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}