cc-chats 0.2.10 → 0.2.13

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 (80) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +38 -24
  3. package/.next/app-path-routes-manifest.json +5 -3
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  7. package/.next/server/app/_not-found.html +1 -1
  8. package/.next/server/app/_not-found.rsc +2 -2
  9. package/.next/server/app/api/project/export/route.js +9 -0
  10. package/.next/server/app/api/project/export/route.js.nft.json +1 -0
  11. package/.next/server/app/api/project/export/route_client-reference-manifest.js +1 -0
  12. package/.next/server/app/api/project/rename/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/projects/memory/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/projects/sessions/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/session/delete/route.js +1 -1
  18. package/.next/server/app/api/session/delete/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/session/duplicate/route.js +1 -1
  20. package/.next/server/app/api/session/duplicate/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/session/export/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/session/restore/route.js +1 -0
  23. package/.next/server/app/api/session/restore/route.js.nft.json +1 -0
  24. package/.next/server/app/api/session/restore/route_client-reference-manifest.js +1 -0
  25. package/.next/server/app/api/summary/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/sync/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/index.html +1 -1
  28. package/.next/server/app/index.rsc +7 -7
  29. package/.next/server/app/page_client-reference-manifest.js +1 -1
  30. package/.next/server/app/project/[projectPath]/page.js +1 -1
  31. package/.next/server/app/project/[projectPath]/page_client-reference-manifest.js +1 -1
  32. package/.next/server/app/project/[projectPath]/session/[sessionId]/page.js +1 -1
  33. package/.next/server/app/project/[projectPath]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  34. package/.next/server/app/project/[projectPath]/session/[sessionId]/subagent/[agentId]/page_client-reference-manifest.js +1 -1
  35. package/.next/server/app/search/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app-paths-manifest.json +5 -3
  37. package/.next/server/chunks/138.js +11 -11
  38. package/.next/server/chunks/976.js +1 -1
  39. package/.next/server/pages/404.html +1 -1
  40. package/.next/server/pages/500.html +1 -1
  41. package/.next/server/pages-manifest.json +1 -1
  42. package/.next/server/server-reference-manifest.json +1 -1
  43. package/.next/static/_aPBSJE0J647wYai5sVny/_buildManifest.js +1 -0
  44. package/.next/static/chunks/350-dfb508cd2d7a25bc.js +1 -0
  45. package/.next/static/chunks/app/api/project/export/route-2684bf32d26d6ddf.js +1 -0
  46. package/.next/static/chunks/app/api/project/rename/route-2684bf32d26d6ddf.js +1 -0
  47. package/.next/static/chunks/app/api/projects/memory/route-2684bf32d26d6ddf.js +1 -0
  48. package/.next/static/chunks/app/api/projects/route-2684bf32d26d6ddf.js +1 -0
  49. package/.next/static/chunks/app/api/projects/sessions/route-2684bf32d26d6ddf.js +1 -0
  50. package/.next/static/chunks/app/api/search/route-2684bf32d26d6ddf.js +1 -0
  51. package/.next/static/chunks/app/api/session/delete/route-2684bf32d26d6ddf.js +1 -0
  52. package/.next/static/chunks/app/api/session/duplicate/route-2684bf32d26d6ddf.js +1 -0
  53. package/.next/static/chunks/app/api/session/export/route-2684bf32d26d6ddf.js +1 -0
  54. package/.next/static/chunks/app/api/session/restore/route-2684bf32d26d6ddf.js +1 -0
  55. package/.next/static/chunks/app/api/summary/route-2684bf32d26d6ddf.js +1 -0
  56. package/.next/static/chunks/app/api/sync/route-2684bf32d26d6ddf.js +1 -0
  57. package/.next/static/chunks/app/page-71c671f0866da9b1.js +1 -0
  58. package/.next/static/chunks/app/project/[projectPath]/page-63bd63a4dbaea406.js +1 -0
  59. package/.next/static/chunks/app/project/[projectPath]/session/[sessionId]/page-6e8e75916b007a44.js +1 -0
  60. package/.next/static/chunks/app/project/[projectPath]/session/[sessionId]/subagent/[agentId]/{page-85cdf2a5b0b48877.js → page-6acb419eba018881.js} +1 -1
  61. package/.next/static/chunks/app/search/page-2fc0058200ac229e.js +1 -0
  62. package/.next/static/css/{9b30e272714585a0.css → 0f3f916f8451ef18.css} +1 -1
  63. package/package.json +1 -1
  64. package/.next/static/acJnwHSwMextiN1qnwxJc/_buildManifest.js +0 -1
  65. package/.next/static/chunks/969-7dc742bf07b75abf.js +0 -1
  66. package/.next/static/chunks/app/api/project/rename/route-ebc63ab88ecc0d35.js +0 -1
  67. package/.next/static/chunks/app/api/projects/memory/route-ebc63ab88ecc0d35.js +0 -1
  68. package/.next/static/chunks/app/api/projects/route-ebc63ab88ecc0d35.js +0 -1
  69. package/.next/static/chunks/app/api/projects/sessions/route-ebc63ab88ecc0d35.js +0 -1
  70. package/.next/static/chunks/app/api/search/route-ebc63ab88ecc0d35.js +0 -1
  71. package/.next/static/chunks/app/api/session/delete/route-ebc63ab88ecc0d35.js +0 -1
  72. package/.next/static/chunks/app/api/session/duplicate/route-ebc63ab88ecc0d35.js +0 -1
  73. package/.next/static/chunks/app/api/session/export/route-ebc63ab88ecc0d35.js +0 -1
  74. package/.next/static/chunks/app/api/summary/route-ebc63ab88ecc0d35.js +0 -1
  75. package/.next/static/chunks/app/api/sync/route-ebc63ab88ecc0d35.js +0 -1
  76. package/.next/static/chunks/app/page-b13da6aa72092cda.js +0 -1
  77. package/.next/static/chunks/app/project/[projectPath]/page-07140be0577e6ff6.js +0 -1
  78. package/.next/static/chunks/app/project/[projectPath]/session/[sessionId]/page-f237cb096030d860.js +0 -1
  79. package/.next/static/chunks/app/search/page-11c21f17d1c20ed9.js +0 -1
  80. /package/.next/static/{acJnwHSwMextiN1qnwxJc → _aPBSJE0J647wYai5sVny}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[653],{4580:(e,t,n)=>{"use strict";n.d(t,{ExportButton:()=>r});var s=n(5155);function r(e){let{encodedPath:t,sessionId:n,agentId:r}=e;return(0,s.jsxs)("button",{onClick:function(){let e=new URLSearchParams({encodedPath:t,sessionId:n});r&&e.set("agentId",r),window.location.href="/api/session/export?".concat(e.toString())},className:"px-3 py-1.5 text-sm text-content-secondary hover:text-content-primary hover:bg-surface-elevated border border-edge-subtle rounded-lg transition-all flex items-center gap-2",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:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})}),"Export"]})}},6221:(e,t,n)=>{"use strict";n.d(t,{ChatView:()=>u});var s=n(5155),r=n(2115),o=n(856),l=n(467);function a(e){let{message:t,compact:n=!1}=e,[a,i]=(0,r.useState)(!1),c="user"===t.type,d=function(e,t){if("string"==typeof e)return e;let n=[];for(let s of e)if("text"===s.type)n.push(s.text);else if("tool_use"===s.type)n.push("[Tool: ".concat(s.name,"]"));else if("tool_result"===s.type&&t){let e="string"==typeof s.content?s.content:JSON.stringify(s.content);n.push("[Tool Result: ".concat(e.slice(0,500)).concat(e.length>500?"...":"","]"))}return n.join("\n\n")}(t.message.content,a),m=n&&!a&&d.length>300?d.slice(0,300)+"...":d,u=n&&d.length>300;return(0,s.jsx)("div",{className:"flex ".concat(c?"justify-end":"justify-start"),children:(0,s.jsxs)("div",{className:"max-w-[85%] rounded-2xl px-4 py-3 ".concat(c?"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,s.jsxs)("div",{className:"text-[11px] mb-1.5 ".concat(c?"text-accent/60":"text-content-tertiary"),children:[c?"You":"Claude"," \xb7 ",(0,l.r6)(t.timestamp)]}),c?(0,s.jsx)("div",{className:"text-sm whitespace-pre-wrap break-words leading-relaxed",children:a?d:m}):(0,s.jsx)("div",{className:"text-sm leading-relaxed [&>*:first-child]:mt-0 [&>*:last-child]:mb-0 [&_p]:mb-2 [&_ul]:mb-2 [&_ol]:mb-2 [&_ul]:pl-4 [&_ol]:pl-4 [&_ul]:list-disc [&_ol]:list-decimal [&_li]:mb-0.5 [&_h1]:text-base [&_h1]:font-semibold [&_h1]:mb-1.5 [&_h2]:text-sm [&_h2]:font-semibold [&_h2]:mb-1 [&_h3]:text-sm [&_h3]:font-medium [&_h3]:mb-1 [&_code]:bg-surface-base [&_code]:px-1 [&_code]:py-0.5 [&_code]:rounded [&_code]:text-xs [&_code]:font-mono [&_pre]:bg-surface-base [&_pre]:p-3 [&_pre]:rounded-lg [&_pre]:overflow-x-auto [&_pre]:text-xs [&_pre]:mb-2 [&_blockquote]:border-l-2 [&_blockquote]:border-edge-subtle [&_blockquote]:pl-3 [&_blockquote]:text-content-secondary [&_hr]:border-edge-subtle [&_hr]:my-2",children:(0,s.jsx)(o.oz,{children:a?d:m})}),u&&(0,s.jsx)("button",{onClick:()=>i(!a),className:"mt-2 text-xs font-medium ".concat(c?"text-accent/70 hover:text-accent":"text-accent hover:text-accent-hover"," transition-colors"),children:a?"Show less":"Show more"})]})})}function i(e){let{name:t,args:n,timestamp:r}=e;return(0,s.jsx)("div",{className:"flex justify-end py-1",children:(0,s.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-full bg-surface border border-edge-subtle text-xs",children:[(0,s.jsx)("svg",{className:"w-3 h-3 text-accent shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 9l3 3-3 3m5 0h3"})}),(0,s.jsx)("span",{className:"text-accent font-mono font-medium",children:t}),n&&(0,s.jsx)("span",{className:"text-content-secondary font-mono",children:n}),(0,s.jsx)("span",{className:"text-content-tertiary ml-1",children:(0,l.r6)(r)})]})})}function c(e){var t;let{content:n,timestamp:r}=e,o=function(e){let t=e.match(/^<([\w-]+)>([\s\S]*?)<\/[\w-]+>/);return t?{tag:t[1],body:t[2].trim()}:null}(n),a=o?o.tag.replace(/^local-command-/,"").replace(/-/g," "):"system",i=null!=(t=null==o?void 0:o.body)?t:"",c=i.length>80?i.slice(0,80)+"…":i;return(0,s.jsx)("div",{className:"flex justify-end py-1",children:(0,s.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-full bg-surface border border-edge-subtle text-xs text-content-tertiary max-w-[85%]",children:[(0,s.jsx)("span",{className:"font-medium shrink-0",children:a}),c&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"opacity-40",children:"\xb7"}),(0,s.jsx)("span",{className:"font-mono truncate",children:c})]}),(0,s.jsx)("span",{className:"opacity-40 shrink-0 ml-1",children:(0,l.r6)(r)})]})})}var d=n(931);function m(e){let{agent:t}=e;return(0,s.jsxs)("button",{onClick:()=>{let e=document.getElementById("subagent-".concat(t.agentId));if(e){let t=e.getBoundingClientRect().top+window.scrollY-80;window.scrollTo({top:t,behavior:"smooth"})}},className:"flex items-center gap-2 mt-1 mb-1 ml-4 px-3 py-1.5 text-xs text-accent hover:text-accent-hover bg-surface hover:bg-surface-elevated border border-edge-subtle hover:border-edge-hover rounded-lg transition-all",children:[(0,s.jsx)("svg",{className:"w-3.5 h-3.5 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 3H5a2 2 0 00-2 2v4m6-6h10a2 2 0 012 2v4M9 3v18m0 0h10a2 2 0 002-2V9M9 21H5a2 2 0 01-2-2V9m0 0h18"})}),(0,s.jsx)("span",{className:"font-mono",children:t.slug}),(0,s.jsx)("span",{className:"text-content-tertiary",children:"\xb7"}),(0,s.jsx)("span",{className:"text-content-tertiary truncate max-w-xs",children:t.firstMessage}),(0,s.jsx)("svg",{className:"w-3.5 h-3.5 flex-shrink-0 text-content-tertiary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})}function u(e){let{messages:t,previewCount:n=50,highlightMessageId:o,showHidden:u=!1,subagents:h}=e,[x,p]=(0,r.useState)(!!o),f=(0,r.useRef)(null),g=[...(0,r.useMemo)(()=>u?t:t.filter(e=>!(0,d.X4)(e)&&!(0,d.B1)(e)),[t,u])].sort((e,t)=>(0,l.EH)(e.timestamp)-(0,l.EH)(t.timestamp)),b=x?g:g.slice(0,n),v=g.length>n;(0,r.useEffect)(()=>{o&&f.current&&f.current.scrollIntoView({behavior:"smooth",block:"center"})},[o]);let j=new Map;if(h&&h.length>0){let e=[...t].sort((e,t)=>(0,l.EH)(e.timestamp)-(0,l.EH)(t.timestamp)),n=new Set(b.map(e=>e.uuid)),s=0;for(let t=0;t<e.length;t++){var k;let r=e[t],o="string"==typeof r.message.content?0:r.message.content.filter(e=>"tool_use"===e.type&&"Task"===e.name).length;if(0===o)continue;let l=n.has(r.uuid)?r.uuid:null;if(!l){for(let s=t-1;s>=0;s--)if(n.has(e[s].uuid)){l=e[s].uuid;break}}if(!l){for(let s=t+1;s<e.length;s++)if(n.has(e[s].uuid)){l=e[s].uuid;break}}if(l){let e=null!=(k=j.get(l))?k:[];for(let t=0;t<o&&s<h.length;t++)e.push(h[s++]);j.set(l,e)}else s+=o}}return(0,s.jsxs)("div",{className:"space-y-4",children:[b.map((e,t)=>{var n;let r=o===e.uuid,l=null!=(n=j.get(e.uuid))?n:[];return(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{ref:r?f:void 0,className:"".concat(r?"ring-2 ring-accent ring-offset-2 ring-offset-base rounded-2xl":""," animate-in stagger-").concat(Math.min(t+1,10)),children:(()=>{let t=(0,d.iP)(e.message.content),n=(0,d.Tc)(t);return n?(0,s.jsx)(i,{name:n.name,args:n.args,timestamp:e.timestamp}):u&&(0,d.X4)(e)?(0,s.jsx)(c,{content:t,timestamp:e.timestamp}):(0,s.jsx)(a,{message:e,compact:!x})})()}),l.map(e=>(0,s.jsx)(m,{agent:e},e.agentId))]},e.uuid)}),v&&(0,s.jsx)("div",{className:"flex justify-center pt-4",children:(0,s.jsx)("button",{onClick:()=>p(!x),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:x?(0,s.jsxs)(s.Fragment,{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:"M5 15l7-7 7 7"})}),"Show preview only"]}):(0,s.jsxs)(s.Fragment,{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:"M19 9l-7 7-7-7"})}),"Show all ",g.length," messages"]})})}),0===b.length&&(0,s.jsx)("div",{className:"text-center py-16 text-content-tertiary animate-fade",children:"No messages in this session"})]})}},7940:(e,t,n)=>{Promise.resolve().then(n.t.bind(n,2619,23)),Promise.resolve().then(n.bind(n,6221)),Promise.resolve().then(n.bind(n,4580)),Promise.resolve().then(n.bind(n,6229)),Promise.resolve().then(n.bind(n,6281)),Promise.resolve().then(n.bind(n,7625)),Promise.resolve().then(n.bind(n,3389)),Promise.resolve().then(n.bind(n,449))}},e=>{e.O(0,[176,856,969,441,255,358],()=>e(e.s=7940)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[653],{4580:(e,t,n)=>{"use strict";n.d(t,{ExportButton:()=>r});var s=n(5155);function r(e){let{encodedPath:t,sessionId:n,agentId:r}=e;return(0,s.jsxs)("button",{onClick:function(){let e=new URLSearchParams({encodedPath:t,sessionId:n});r&&e.set("agentId",r),window.location.href="/api/session/export?".concat(e.toString())},className:"px-3 py-1.5 text-sm text-content-secondary hover:text-content-primary hover:bg-surface-elevated border border-edge-subtle rounded-lg transition-all flex items-center gap-2",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:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})}),"Export"]})}},6221:(e,t,n)=>{"use strict";n.d(t,{ChatView:()=>u});var s=n(5155),r=n(2115),o=n(856),l=n(467);function a(e){let{message:t,compact:n=!1}=e,[a,i]=(0,r.useState)(!1),c="user"===t.type,d=function(e,t){if("string"==typeof e)return e;let n=[];for(let s of e)if("text"===s.type)n.push(s.text);else if("tool_use"===s.type)n.push("[Tool: ".concat(s.name,"]"));else if("tool_result"===s.type&&t){let e="string"==typeof s.content?s.content:JSON.stringify(s.content);n.push("[Tool Result: ".concat(e.slice(0,500)).concat(e.length>500?"...":"","]"))}return n.join("\n\n")}(t.message.content,a),m=n&&!a&&d.length>300?d.slice(0,300)+"...":d,u=n&&d.length>300;return(0,s.jsx)("div",{className:"flex ".concat(c?"justify-end":"justify-start"),children:(0,s.jsxs)("div",{className:"max-w-[85%] rounded-2xl px-4 py-3 ".concat(c?"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,s.jsxs)("div",{className:"text-[11px] mb-1.5 ".concat(c?"text-accent/60":"text-content-tertiary"),children:[c?"You":"Claude"," \xb7 ",(0,l.r6)(t.timestamp)]}),c?(0,s.jsx)("div",{className:"text-sm whitespace-pre-wrap break-words leading-relaxed",children:a?d:m}):(0,s.jsx)("div",{className:"text-sm leading-relaxed [&>*:first-child]:mt-0 [&>*:last-child]:mb-0 [&_p]:mb-2 [&_ul]:mb-2 [&_ol]:mb-2 [&_ul]:pl-4 [&_ol]:pl-4 [&_ul]:list-disc [&_ol]:list-decimal [&_li]:mb-0.5 [&_h1]:text-base [&_h1]:font-semibold [&_h1]:mb-1.5 [&_h2]:text-sm [&_h2]:font-semibold [&_h2]:mb-1 [&_h3]:text-sm [&_h3]:font-medium [&_h3]:mb-1 [&_code]:bg-surface-base [&_code]:px-1 [&_code]:py-0.5 [&_code]:rounded [&_code]:text-xs [&_code]:font-mono [&_pre]:bg-surface-base [&_pre]:p-3 [&_pre]:rounded-lg [&_pre]:overflow-x-auto [&_pre]:text-xs [&_pre]:mb-2 [&_blockquote]:border-l-2 [&_blockquote]:border-edge-subtle [&_blockquote]:pl-3 [&_blockquote]:text-content-secondary [&_hr]:border-edge-subtle [&_hr]:my-2",children:(0,s.jsx)(o.oz,{children:a?d:m})}),u&&(0,s.jsx)("button",{onClick:()=>i(!a),className:"mt-2 text-xs font-medium ".concat(c?"text-accent/70 hover:text-accent":"text-accent hover:text-accent-hover"," transition-colors"),children:a?"Show less":"Show more"})]})})}function i(e){let{name:t,args:n,timestamp:r}=e;return(0,s.jsx)("div",{className:"flex justify-end py-1",children:(0,s.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-full bg-surface border border-edge-subtle text-xs",children:[(0,s.jsx)("svg",{className:"w-3 h-3 text-accent shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 9l3 3-3 3m5 0h3"})}),(0,s.jsx)("span",{className:"text-accent font-mono font-medium",children:t}),n&&(0,s.jsx)("span",{className:"text-content-secondary font-mono",children:n}),(0,s.jsx)("span",{className:"text-content-tertiary ml-1",children:(0,l.r6)(r)})]})})}function c(e){var t;let{content:n,timestamp:r}=e,o=function(e){let t=e.match(/^<([\w-]+)>([\s\S]*?)<\/[\w-]+>/);return t?{tag:t[1],body:t[2].trim()}:null}(n),a=o?o.tag.replace(/^local-command-/,"").replace(/-/g," "):"system",i=null!=(t=null==o?void 0:o.body)?t:"",c=i.length>80?i.slice(0,80)+"…":i;return(0,s.jsx)("div",{className:"flex justify-end py-1",children:(0,s.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-full bg-surface border border-edge-subtle text-xs text-content-tertiary max-w-[85%]",children:[(0,s.jsx)("span",{className:"font-medium shrink-0",children:a}),c&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"opacity-40",children:"\xb7"}),(0,s.jsx)("span",{className:"font-mono truncate",children:c})]}),(0,s.jsx)("span",{className:"opacity-40 shrink-0 ml-1",children:(0,l.r6)(r)})]})})}var d=n(931);function m(e){let{agent:t}=e;return(0,s.jsxs)("button",{onClick:()=>{let e=document.getElementById("subagent-".concat(t.agentId));if(e){let t=e.getBoundingClientRect().top+window.scrollY-80;window.scrollTo({top:t,behavior:"smooth"})}},className:"flex items-center gap-2 mt-1 mb-1 ml-4 px-3 py-1.5 text-xs text-accent hover:text-accent-hover bg-surface hover:bg-surface-elevated border border-edge-subtle hover:border-edge-hover rounded-lg transition-all",children:[(0,s.jsx)("svg",{className:"w-3.5 h-3.5 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 3H5a2 2 0 00-2 2v4m6-6h10a2 2 0 012 2v4M9 3v18m0 0h10a2 2 0 002-2V9M9 21H5a2 2 0 01-2-2V9m0 0h18"})}),(0,s.jsx)("span",{className:"font-mono",children:t.slug}),(0,s.jsx)("span",{className:"text-content-tertiary",children:"\xb7"}),(0,s.jsx)("span",{className:"text-content-tertiary truncate max-w-xs",children:t.firstMessage}),(0,s.jsx)("svg",{className:"w-3.5 h-3.5 flex-shrink-0 text-content-tertiary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})}function u(e){let{messages:t,previewCount:n=50,highlightMessageId:o,showHidden:u=!1,subagents:h}=e,[x,p]=(0,r.useState)(!!o),f=(0,r.useRef)(null),g=[...(0,r.useMemo)(()=>u?t:t.filter(e=>!(0,d.X4)(e)&&!(0,d.B1)(e)),[t,u])].sort((e,t)=>(0,l.EH)(e.timestamp)-(0,l.EH)(t.timestamp)),b=x?g:g.slice(0,n),v=g.length>n;(0,r.useEffect)(()=>{o&&f.current&&f.current.scrollIntoView({behavior:"smooth",block:"center"})},[o]);let j=new Map;if(h&&h.length>0){let e=[...t].sort((e,t)=>(0,l.EH)(e.timestamp)-(0,l.EH)(t.timestamp)),n=new Set(b.map(e=>e.uuid)),s=0;for(let t=0;t<e.length;t++){var k;let r=e[t],o="string"==typeof r.message.content?0:r.message.content.filter(e=>"tool_use"===e.type&&"Task"===e.name).length;if(0===o)continue;let l=n.has(r.uuid)?r.uuid:null;if(!l){for(let s=t-1;s>=0;s--)if(n.has(e[s].uuid)){l=e[s].uuid;break}}if(!l){for(let s=t+1;s<e.length;s++)if(n.has(e[s].uuid)){l=e[s].uuid;break}}if(l){let e=null!=(k=j.get(l))?k:[];for(let t=0;t<o&&s<h.length;t++)e.push(h[s++]);j.set(l,e)}else s+=o}}return(0,s.jsxs)("div",{className:"space-y-4",children:[b.map((e,t)=>{var n;let r=o===e.uuid,l=null!=(n=j.get(e.uuid))?n:[];return(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{ref:r?f:void 0,className:"".concat(r?"ring-2 ring-accent ring-offset-2 ring-offset-base rounded-2xl":""," animate-in stagger-").concat(Math.min(t+1,10)),children:(()=>{let t=(0,d.iP)(e.message.content),n=(0,d.Tc)(t);return n?(0,s.jsx)(i,{name:n.name,args:n.args,timestamp:e.timestamp}):u&&(0,d.X4)(e)?(0,s.jsx)(c,{content:t,timestamp:e.timestamp}):(0,s.jsx)(a,{message:e,compact:!x})})()}),l.map(e=>(0,s.jsx)(m,{agent:e},e.agentId))]},e.uuid)}),v&&(0,s.jsx)("div",{className:"flex justify-center pt-4",children:(0,s.jsx)("button",{onClick:()=>p(!x),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:x?(0,s.jsxs)(s.Fragment,{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:"M5 15l7-7 7 7"})}),"Show preview only"]}):(0,s.jsxs)(s.Fragment,{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:"M19 9l-7 7-7-7"})}),"Show all ",g.length," messages"]})})}),0===b.length&&(0,s.jsx)("div",{className:"text-center py-16 text-content-tertiary animate-fade",children:"No messages in this session"})]})}},7940:(e,t,n)=>{Promise.resolve().then(n.t.bind(n,2619,23)),Promise.resolve().then(n.bind(n,6221)),Promise.resolve().then(n.bind(n,4580)),Promise.resolve().then(n.bind(n,6229)),Promise.resolve().then(n.bind(n,6281)),Promise.resolve().then(n.bind(n,7625)),Promise.resolve().then(n.bind(n,3389)),Promise.resolve().then(n.bind(n,449))}},e=>{e.O(0,[176,856,350,441,255,358],()=>e(e.s=7940)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[959],{449:(e,t,r)=>{"use strict";r.d(t,{ThemeToggle:()=>o});var n=r(5155),s=r(1458);let a={system:"System",light:"Light",dark:"Dark"};function o(){let{theme:e,cycle:t}=(0,s.D)();return(0,n.jsx)("button",{onClick:t,className:"p-2 text-content-tertiary hover:text-content-secondary hover:bg-surface-elevated rounded-lg transition-all flex-shrink-0",title:"Theme: ".concat(a[e]),children:"system"===e?(0,n.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})}):"light"===e?(0,n.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"})}):(0,n.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"})})})}},467:(e,t,r)=>{"use strict";function n(e){if("number"==typeof e)return e;let t=Date.parse(e);return isNaN(t)?0:t}function s(e){let t=Date.now()-e,r=Math.floor(t/6e4),n=Math.floor(t/36e5),s=Math.floor(t/864e5),a=Math.floor(t/6048e5),o=Math.floor(t/2592e6);if(r<1)return"Just now";if(r<60)return"".concat(r,"m ago");if(n<24)return"".concat(n,"h ago");if(s<7)return"".concat(s,"d ago");if(s<30)return"".concat(a,"w ago");if(o<12)return"".concat(o,"mo ago");let c=Math.floor(o/12);return"".concat(c,"y ago")}function a(e){return new Date(n(e)).toLocaleString("en-GB",{day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"})}function o(e){return e>=1e6?"".concat((e/1e6).toFixed(1),"M"):e>=1e4?"".concat((e/1e3).toFixed(1),"k"):e.toLocaleString("en-GB")}r.d(t,{EH:()=>n,ap:()=>o,fw:()=>s,r6:()=>a})},1458:(e,t,r)=>{"use strict";r.d(t,{D:()=>o,ThemeProvider:()=>c});var n=r(5155),s=r(2115);let a=(0,s.createContext)({theme:"system",resolved:"dark",setTheme:()=>{},cycle:()=>{}});function o(){return(0,s.useContext)(a)}function c(e){let{children:t}=e,[r,o]=(0,s.useState)("system"),[c,i]=(0,s.useState)("dark");(0,s.useEffect)(()=>{let e=localStorage.getItem("theme");e&&["light","dark","system"].includes(e)&&o(e)},[]),(0,s.useEffect)(()=>{let e="system"===r?window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark":r;if(i(e),document.documentElement.setAttribute("data-theme",e),"system"===r){let e=window.matchMedia("(prefers-color-scheme: light)"),t=()=>{let t=e.matches?"light":"dark";i(t),document.documentElement.setAttribute("data-theme",t)};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)}},[r]);let l=(0,s.useCallback)(e=>{o(e),localStorage.setItem("theme",e)},[]),d=(0,s.useCallback)(()=>{let e=["system","light","dark"];l(e[(e.indexOf(r)+1)%e.length])},[r,l]);return(0,n.jsx)(a.Provider,{value:{theme:r,resolved:c,setTheme:l,cycle:d},children:t})}},2436:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,2619,23)),Promise.resolve().then(r.bind(r,6592)),Promise.resolve().then(r.bind(r,6281)),Promise.resolve().then(r.bind(r,3389)),Promise.resolve().then(r.bind(r,449))},3389:(e,t,r)=>{"use strict";r.d(t,{SyncButton:()=>a});var n=r(5155),s=r(2115);function a(){var e,t;let[r,a]=(0,s.useState)(!1),[o,c]=(0,s.useState)(null),i=async()=>{a(!0),c(null);try{let e=await fetch("/api/sync",{method:"POST"});if(!e.ok)throw Error("Sync failed");let t=await e.json();c(t.sync),window.dispatchEvent(new Event("sync-complete")),setTimeout(()=>c(null),3e3)}catch(e){console.error("Sync error:",e)}finally{a(!1)}};return(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("button",{onClick:i,disabled:r,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(r?"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"})})}),o&&(o.added>0||o.updated>0||o.removed>0||(null!=(e=o.archivePruned)?e:0)>0)&&(0,n.jsxs)("div",{className:"text-xs text-content-tertiary whitespace-nowrap animate-fade",children:[o.added>0&&"+".concat(o.added),o.updated>0&&" ~".concat(o.updated),o.removed>0&&" -".concat(o.removed),(null!=(t=o.archivePruned)?t:0)>0&&" pruned ".concat(o.archivePruned)]})]})}},6281:(e,t,r)=>{"use strict";r.d(t,{GlobalSearch:()=>o});var n=r(5155),s=r(2115),a=r(63);function o(e){let{projectPath:t}=e,[r,o]=(0,s.useState)(""),c=(0,a.useRouter)(),i=(0,s.useRef)(null);(0,s.useEffect)(()=>{function e(e){if((e.metaKey||e.ctrlKey)&&"k"===e.key){var t;e.preventDefault(),null==(t=i.current)||t.focus()}}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[]);let l=(0,s.useCallback)(e=>{if(e.preventDefault(),r.trim()){let e=new URLSearchParams({q:r.trim()});t&&e.set("project",t),c.push("/search?".concat(e.toString()))}},[r,c,t]),d=t?"Search this project...":"Search all chats...";return(0,n.jsxs)("form",{onSubmit:l,className:"relative",children:[(0,n.jsx)("svg",{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-content-tertiary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),(0,n.jsx)("input",{ref:i,type:"text",value:r,onChange:e=>o(e.target.value),placeholder:d,className:"w-full pl-10 pr-16 py-2 bg-surface border border-edge-subtle rounded-xl text-sm text-content-primary placeholder-content-tertiary focus:outline-none focus:border-accent focus:ring-1 focus:ring-accent/30 transition-all"}),!r&&(0,n.jsxs)("kbd",{className:"absolute right-3 top-1/2 -translate-y-1/2 hidden sm:inline-flex items-center gap-0.5 px-1.5 py-0.5 text-[10px] font-mono text-content-tertiary bg-surface-elevated border border-edge-subtle rounded",children:[(0,n.jsx)("span",{className:"text-xs",children:"⌘"}),"K"]})]})}},6592:(e,t,r)=>{"use strict";r.d(t,{SearchResults:()=>i});var n=r(5155),s=r(2115),a=r(2619),o=r.n(a),c=r(467);function i(e){let{query:t,projectPath:r}=e,[a,i]=(0,s.useState)([]),[l,d]=(0,s.useState)(null),[u,h]=(0,s.useState)(!1),[m,x]=(0,s.useState)(null);return((0,s.useEffect)(()=>{if(!t.trim())return void i([]);(async()=>{h(!0),x(null);try{let e=new URLSearchParams({q:t});r&&e.set("project",r);let n=await fetch("/api/search?".concat(e.toString()));if(!n.ok)throw Error("Search failed");let s=await n.json();i(s.results),d(s.stats)}catch(e){x("Failed to search. Please try again."),i([])}finally{h(!1)}})()},[t,r]),t.trim())?u?(0,n.jsxs)("div",{className:"text-center py-16 animate-fade",children:[(0,n.jsx)("div",{className:"w-8 h-8 mx-auto border-2 border-edge-hover border-t-accent rounded-full animate-spin mb-4"}),(0,n.jsx)("p",{className:"text-content-secondary",children:"Searching..."})]}):m?(0,n.jsxs)("div",{className:"text-center py-16 animate-fade",children:[(0,n.jsx)("svg",{className:"w-12 h-12 mx-auto text-danger mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})}),(0,n.jsx)("p",{className:"text-danger",children:m})]}):0===a.length?(0,n.jsxs)("div",{className:"text-center py-16 animate-fade",children:[(0,n.jsx)("svg",{className:"w-12 h-12 mx-auto text-content-tertiary/50 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M9.172 16.172a4 4 0 015.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,n.jsxs)("p",{className:"text-content-secondary",children:["No results found for “",t,"”"]})]}):(0,n.jsxs)("div",{children:[(0,n.jsxs)("p",{className:"text-sm text-content-tertiary mb-4 animate-fade",children:["Found ",a.length," result",1!==a.length?"s":""," for “",t,"”"]}),(0,n.jsx)("div",{className:"space-y-3",children:a.map((e,t)=>(0,n.jsxs)(o(),{href:"/project/".concat(e.projectPath,"/session/").concat(e.sessionId,"?highlight=").concat(e.messageUuid),className:"block p-4 bg-surface border border-edge-subtle rounded-xl hover:border-edge-hover hover:bg-surface-elevated transition-all duration-300 animate-in stagger-".concat(Math.min(t+1,10)),children:[(0,n.jsxs)("div",{className:"flex items-start justify-between gap-4 mb-2",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,n.jsx)("span",{className:"px-2 py-0.5 rounded text-xs font-medium ".concat("user"===e.userType?"bg-info/15 text-info":"bg-accent/15 text-accent"),children:e.userType}),(0,n.jsx)("span",{className:"text-content-secondary",children:e.projectName})]}),e.timestamp>0&&(0,n.jsx)("span",{className:"text-xs text-content-tertiary whitespace-nowrap",children:(0,c.fw)(e.timestamp)})]}),(0,n.jsx)("p",{className:"text-sm text-content-secondary line-clamp-3 [&>mark]:bg-accent/25 [&>mark]:text-accent-hover [&>mark]:px-0.5 [&>mark]:rounded",dangerouslySetInnerHTML:{__html:e.snippet}}),(0,n.jsx)("p",{className:"text-[11px] text-content-tertiary mt-2 font-mono truncate opacity-50",children:e.sessionId})]},"".concat(e.sessionId,"-").concat(e.messageUuid,"-").concat(t)))})]}):(0,n.jsxs)("div",{className:"text-center py-16 animate-fade",children:[(0,n.jsx)("svg",{className:"w-12 h-12 mx-auto text-content-tertiary/50 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),(0,n.jsxs)("p",{className:"text-content-secondary",children:["Enter a search query to find messages"," ",r?"in this project":"across all chats"]}),l&&(0,n.jsxs)("p",{className:"text-sm text-content-tertiary mt-2",children:[l.messageCount.toLocaleString()," messages indexed across ",l.fileCount," sessions"]})]})}}},e=>{e.O(0,[176,441,255,358],()=>e(e.s=2436)),_N_E=e.O()}]);
@@ -1,3 +1,3 @@
1
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
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}.visible{visibility:visible}.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-1\.5{margin-left:.375rem;margin-right:.375rem}.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{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-auto{margin-right: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}.mt-8{margin-top:2rem}.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}.max-w-xs{max-width:20rem}.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-40{opacity:.4}.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))}.group:hover .group-hover\:text-content-secondary{--tw-text-opacity:1;color:rgb(var(--text-secondary)/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))}}.\[\&\>\*\:first-child\]\:mt-0>:first-child{margin-top:0}.\[\&\>\*\:last-child\]\:mb-0>:last-child{margin-bottom:0}.\[\&\>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))}.\[\&_blockquote\]\:border-l-2 blockquote{border-left-width:2px}.\[\&_blockquote\]\:border-edge-subtle blockquote{--tw-border-opacity:1;border-color:rgb(var(--border-subtle)/var(--tw-border-opacity,1))}.\[\&_blockquote\]\:pl-3 blockquote{padding-left:.75rem}.\[\&_blockquote\]\:text-content-secondary blockquote{--tw-text-opacity:1;color:rgb(var(--text-secondary)/var(--tw-text-opacity,1))}.\[\&_code\]\:rounded code{border-radius:.25rem}.\[\&_code\]\:px-1 code{padding-left:.25rem;padding-right:.25rem}.\[\&_code\]\:py-0\.5 code{padding-top:.125rem;padding-bottom:.125rem}.\[\&_code\]\:font-mono code{font-family:var(--font-mono),Menlo,monospace}.\[\&_code\]\:text-xs code{font-size:.75rem;line-height:1rem}.\[\&_h1\]\:mb-1\.5 h1{margin-bottom:.375rem}.\[\&_h1\]\:text-base h1{font-size:1rem;line-height:1.5rem}.\[\&_h1\]\:font-semibold h1{font-weight:600}.\[\&_h1\]\:text-base h1{--tw-text-opacity:1;color:rgb(var(--bg-base)/var(--tw-text-opacity,1))}.\[\&_h2\]\:mb-1 h2{margin-bottom:.25rem}.\[\&_h2\]\:text-sm h2{font-size:.875rem;line-height:1.25rem}.\[\&_h2\]\:font-semibold h2{font-weight:600}.\[\&_h3\]\:mb-1 h3{margin-bottom:.25rem}.\[\&_h3\]\:text-sm h3{font-size:.875rem;line-height:1.25rem}.\[\&_h3\]\:font-medium h3{font-weight:500}.\[\&_hr\]\:my-2 hr{margin-top:.5rem;margin-bottom:.5rem}.\[\&_hr\]\:border-edge-subtle hr{--tw-border-opacity:1;border-color:rgb(var(--border-subtle)/var(--tw-border-opacity,1))}.\[\&_li\]\:mb-0\.5 li{margin-bottom:.125rem}.\[\&_ol\]\:mb-2 ol{margin-bottom:.5rem}.\[\&_ol\]\:list-decimal ol{list-style-type:decimal}.\[\&_ol\]\:pl-4 ol{padding-left:1rem}.\[\&_p\]\:mb-2 p,.\[\&_pre\]\:mb-2 pre{margin-bottom:.5rem}.\[\&_pre\]\:overflow-x-auto pre{overflow-x:auto}.\[\&_pre\]\:rounded-lg pre{border-radius:.5rem}.\[\&_pre\]\:p-3 pre{padding:.75rem}.\[\&_pre\]\:text-xs pre{font-size:.75rem;line-height:1rem}.\[\&_ul\]\:mb-2 ul{margin-bottom:.5rem}.\[\&_ul\]\:list-disc ul{list-style-type:disc}.\[\&_ul\]\:pl-4 ul{padding-left:1rem}
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}.visible{visibility:visible}.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-1\.5{margin-left:.375rem;margin-right:.375rem}.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{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-auto{margin-right: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}.mt-8{margin-top:2rem}.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}.max-w-xs{max-width:20rem}.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}.uppercase{text-transform:uppercase}.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}.tracking-wider{letter-spacing:.05em}.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-content-tertiary\/60{color:rgb(var(--text-tertiary)/.6)}.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-40{opacity:.4}.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\:underline:hover{text-decoration-line:underline}.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}.disabled\:opacity-60:disabled{opacity:.6}.group:hover .group-hover\:text-accent{--tw-text-opacity:1;color:rgb(var(--accent)/var(--tw-text-opacity,1))}.group:hover .group-hover\:text-content-secondary{--tw-text-opacity:1;color:rgb(var(--text-secondary)/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))}}.\[\&\>\*\:first-child\]\:mt-0>:first-child{margin-top:0}.\[\&\>\*\:last-child\]\:mb-0>:last-child{margin-bottom:0}.\[\&\>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))}.\[\&_blockquote\]\:border-l-2 blockquote{border-left-width:2px}.\[\&_blockquote\]\:border-edge-subtle blockquote{--tw-border-opacity:1;border-color:rgb(var(--border-subtle)/var(--tw-border-opacity,1))}.\[\&_blockquote\]\:pl-3 blockquote{padding-left:.75rem}.\[\&_blockquote\]\:text-content-secondary blockquote{--tw-text-opacity:1;color:rgb(var(--text-secondary)/var(--tw-text-opacity,1))}.\[\&_code\]\:rounded code{border-radius:.25rem}.\[\&_code\]\:px-1 code{padding-left:.25rem;padding-right:.25rem}.\[\&_code\]\:py-0\.5 code{padding-top:.125rem;padding-bottom:.125rem}.\[\&_code\]\:font-mono code{font-family:var(--font-mono),Menlo,monospace}.\[\&_code\]\:text-xs code{font-size:.75rem;line-height:1rem}.\[\&_h1\]\:mb-1\.5 h1{margin-bottom:.375rem}.\[\&_h1\]\:text-base h1{font-size:1rem;line-height:1.5rem}.\[\&_h1\]\:font-semibold h1{font-weight:600}.\[\&_h1\]\:text-base h1{--tw-text-opacity:1;color:rgb(var(--bg-base)/var(--tw-text-opacity,1))}.\[\&_h2\]\:mb-1 h2{margin-bottom:.25rem}.\[\&_h2\]\:text-sm h2{font-size:.875rem;line-height:1.25rem}.\[\&_h2\]\:font-semibold h2{font-weight:600}.\[\&_h3\]\:mb-1 h3{margin-bottom:.25rem}.\[\&_h3\]\:text-sm h3{font-size:.875rem;line-height:1.25rem}.\[\&_h3\]\:font-medium h3{font-weight:500}.\[\&_hr\]\:my-2 hr{margin-top:.5rem;margin-bottom:.5rem}.\[\&_hr\]\:border-edge-subtle hr{--tw-border-opacity:1;border-color:rgb(var(--border-subtle)/var(--tw-border-opacity,1))}.\[\&_li\]\:mb-0\.5 li{margin-bottom:.125rem}.\[\&_ol\]\:mb-2 ol{margin-bottom:.5rem}.\[\&_ol\]\:list-decimal ol{list-style-type:decimal}.\[\&_ol\]\:pl-4 ol{padding-left:1rem}.\[\&_p\]\:mb-2 p,.\[\&_pre\]\:mb-2 pre{margin-bottom:.5rem}.\[\&_pre\]\:overflow-x-auto pre{overflow-x:auto}.\[\&_pre\]\:rounded-lg pre{border-radius:.5rem}.\[\&_pre\]\:p-3 pre{padding:.75rem}.\[\&_pre\]\:text-xs pre{font-size:.75rem;line-height:1rem}.\[\&_ul\]\:mb-2 ul{margin-bottom:.5rem}.\[\&_ul\]\:list-disc ul{list-style-type:disc}.\[\&_ul\]\:pl-4 ul{padding-left:1rem}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cc-chats",
3
- "version": "0.2.10",
3
+ "version": "0.2.13",
4
4
  "description": "Browse and search your Claude Code chat history",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -1 +0,0 @@
1
- self.__BUILD_MANIFEST=function(e,r,t,_){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:13,errorRate:1e-4,numBits:250,numHashes:14,bitArray:[0,1,0,1,e,e,e,e,r,r,e,r,e,e,e,r,r,e,e,r,r,r,e,e,e,r,r,e,e,r,r,r,e,e,e,r,r,e,e,e,e,e,e,e,r,e,r,e,e,r,e,r,r,e,r,e,r,e,r,r,e,r,r,e,e,r,r,r,r,r,r,e,r,e,e,r,e,r,r,e,e,e,e,r,r,e,r,e,e,r,r,e,r,e,e,r,e,e,r,r,r,r,r,r,e,r,r,e,r,e,r,r,r,e,e,r,e,e,r,e,r,e,e,r,e,e,e,r,e,e,r,r,r,e,e,r,e,r,r,r,e,e,e,r,e,r,r,e,e,e,e,e,e,r,e,e,r,r,r,r,r,r,e,e,e,r,r,r,r,e,r,r,r,e,e,r,e,e,r,r,r,e,r,e,e,r,r,e,r,r,e,r,e,r,e,e,e,r,r,r,r,e,r,r,r,e,e,e,r,e,e,e,r,r,e,e,e,r,e,r,e,e,e,r,r,r,e,e,r,e,r,e,e,e,r,e,e,r,e,r,r,r,e,e,r,r,e,e,r,e]},__routerFilterDynamic:{numItems:r,errorRate:1e-4,numBits:20,numHashes:14,bitArray:[r,e,e,r,e,r,r,e,e,e,r,r,e,r,e,r,r,e,e,r]},"/_error":["static/chunks/pages/_error-cb2a52f75f2162e2.js"],sortedPages:["/_app","/_error"]}}(0,1,1e-4,14),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[969],{449:(e,t,n)=>{n.d(t,{ThemeToggle:()=>o});var r=n(5155),a=n(1458);let s={system:"System",light:"Light",dark:"Dark"};function o(){let{theme:e,cycle:t}=(0,a.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(s[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 a(e){let t=Date.now()-e,n=Math.floor(t/6e4),r=Math.floor(t/36e5),a=Math.floor(t/864e5),s=Math.floor(t/6048e5),o=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(a<7)return"".concat(a,"d ago");if(a<30)return"".concat(s,"w ago");if(o<12)return"".concat(o,"mo ago");let l=Math.floor(o/12);return"".concat(l,"y ago")}function s(e){return new Date(r(e)).toLocaleString("en-GB",{day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"})}function o(e){return e>=1e6?"".concat((e/1e6).toFixed(1),"M"):e>=1e4?"".concat((e/1e3).toFixed(1),"k"):e.toLocaleString("en-GB")}n.d(t,{EH:()=>r,ap:()=>o,fw:()=>a,r6:()=>s})},931:(e,t,n)=>{function r(e){if("string"==typeof e)return e;let t=e.find(e=>"text"===e.type);return t?t.text:""}function a(e){if(!e.startsWith("<command-name>")&&!e.startsWith("<command-message>"))return null;let t=e.match(/<command-name>([^<]+)<\/command-name>/);if(!t)return null;let n=e.match(/<command-args>([^<]*)<\/command-args>/);return{name:t[1].trim(),args:n?n[1].trim():""}}function s(e){if(e.isMeta)return!0;let t=r(e.message.content);return!!(t.startsWith("<local-command-")||t.startsWith("Caveat:")||t.startsWith("<system-reminder>"))}function o(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)}n.d(t,{B1:()=>o,Tc:()=>a,X4:()=>s,iP:()=>r})},1458:(e,t,n)=>{n.d(t,{D:()=>o,ThemeProvider:()=>l});var r=n(5155),a=n(2115);let s=(0,a.createContext)({theme:"system",resolved:"dark",setTheme:()=>{},cycle:()=>{}});function o(){return(0,a.useContext)(s)}function l(e){let{children:t}=e,[n,o]=(0,a.useState)("system"),[l,c]=(0,a.useState)("dark");(0,a.useEffect)(()=>{let e=localStorage.getItem("theme");e&&["light","dark","system"].includes(e)&&o(e)},[]),(0,a.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,a.useCallback)(e=>{o(e),localStorage.setItem("theme",e)},[]),d=(0,a.useCallback)(()=>{let e=["system","light","dark"];i(e[(e.indexOf(n)+1)%e.length])},[n,i]);return(0,r.jsx)(s.Provider,{value:{theme:n,resolved:l,setTheme:i,cycle:d},children:t})}},3389:(e,t,n)=>{n.d(t,{SyncButton:()=>s});var r=n(5155),a=n(2115);function s(){let[e,t]=(0,a.useState)(!1),[n,s]=(0,a.useState)(null),o=async()=>{t(!0),s(null);try{let e=await fetch("/api/sync",{method:"POST"});if(!e.ok)throw Error("Sync failed");let t=await e.json();s(t.sync),window.dispatchEvent(new Event("sync-complete")),setTimeout(()=>s(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: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,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)]})]})}},5014:(e,t,n)=>{n.d(t,{FontSizeProvider:()=>c,e:()=>o});var r=n(5155),a=n(2115);let s=(0,a.createContext)({fontSize:"medium",setFontSize:()=>{},cycle:()=>{}});function o(){return(0,a.useContext)(s)}let l=["small","medium","large"];function c(e){let{children:t}=e,[n,o]=(0,a.useState)("medium");(0,a.useEffect)(()=>{let e=localStorage.getItem("fontSize");e&&l.includes(e)&&o(e)},[]),(0,a.useEffect)(()=>{document.documentElement.setAttribute("data-font-size",n)},[n]);let c=(0,a.useCallback)(e=>{o(e),localStorage.setItem("fontSize",e)},[]),i=(0,a.useCallback)(()=>{c(l[(l.indexOf(n)+1)%l.length])},[n,c]);return(0,r.jsx)(s.Provider,{value:{fontSize:n,setFontSize:c,cycle:i},children:t})}},6229:(e,t,n)=>{n.d(t,{FontSizeToggle:()=>o});var r=n(5155),a=n(5014);let s={small:"Small",medium:"Medium",large:"Large"};function o(){let{fontSize:e,cycle:t}=(0,a.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(s[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:()=>o});var r=n(5155),a=n(2115),s=n(63);function o(e){let{projectPath:t}=e,[n,o]=(0,a.useState)(""),l=(0,s.useRouter)(),c=(0,a.useRef)(null);(0,a.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,a.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=>o(e.target.value),placeholder:d,className:"w-full pl-10 pr-16 py-2 bg-surface border border-edge-subtle rounded-xl text-sm text-content-primary placeholder-content-tertiary focus:outline-none focus:border-accent focus:ring-1 focus:ring-accent/30 transition-all"}),!n&&(0,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"]})]})}},7625:(e,t,n)=>{n.d(t,{SummarySection:()=>s});var r=n(5155),a=n(2115);function s(e){let{type:t,projectPath:n,sessionId:s,agentId:o,messageCount:l}=e,[c,i]=(0,a.useState)(null),[d,u]=(0,a.useState)(!1),[m,h]=(0,a.useState)(null),[x,f]=(0,a.useState)(!0);async function p(){u(!0),h(null);try{let e=await fetch("/api/summary",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:t,projectPath:n,sessionId:s,agentId:o})}),r=await e.json();if(!e.ok)throw Error(r.error||"Failed to generate summary");i(r.summary)}catch(e){h(e instanceof Error?e.message:"Unknown error")}finally{u(!1)}}if((0,a.useEffect)(()=>{!async function(){try{let e=new URLSearchParams({type:t,project:n});s&&e.append("session",s),o&&e.append("agent",o);let r=await fetch("/api/summary?".concat(e)),a=await r.json();i(a.summary||null)}catch(e){}finally{f(!1)}}()},[t,n,s]),x)return null;let g=c&&c.messageCount<l;return(0,r.jsxs)("div",{className:"p-4 bg-surface border border-edge-subtle rounded-xl",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-content-secondary flex items-center gap-2",children:[(0,r.jsx)("svg",{className:"w-4 h-4 text-accent",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",g&&(0,r.jsx)("span",{className:"text-xs text-accent/60",children:"(outdated)"})]}),(0,r.jsx)("button",{onClick:p,disabled:d,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:d?"Generating...":c?"Regenerate":"Generate"})]}),m&&(0,r.jsx)("p",{className:"text-sm text-danger mb-2",children:m}),c?(0,r.jsx)("p",{className:"text-sm text-content-secondary leading-relaxed",children:c.content}):!d&&(0,r.jsx)("p",{className:"text-sm text-content-tertiary italic",children:'No summary yet. Click "Generate" to create one.'}),d&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm text-content-tertiary",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..."]})]})}}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[60,64,202,272,291,302,364,558,711,862],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[60,64,202,272,291,302,364,558,711,862],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[60,64,202,272,291,302,364,558,711,862],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[60,64,202,272,291,302,364,558,711,862],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[60,64,202,272,291,302,364,558,711,862],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[60,64,202,272,291,302,364,558,711,862],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[60,64,202,272,291,302,364,558,711,862],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[60,64,202,272,291,302,364,558,711,862],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[60,64,202,272,291,302,364,558,711,862],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[60,64,202,272,291,302,364,558,711,862],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_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})},927:(e,t,n)=>{Promise.resolve().then(n.bind(n,6229)),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))},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:()=>a});var s=n(5155),r=n(2115),o=n(7650);function a(e){let{encodedPath:t,onClose:n}=e,[a,l]=(0,r.useState)(null),[c,i]=(0,r.useState)(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=>l(e.files)).catch(()=>i("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,o.createPortal)((0,s.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,s.jsx)("div",{className:"absolute inset-0 bg-black/70 backdrop-blur-sm animate-fade",onClick:n}),(0,s.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,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-medium text-content-primary",children:"Project Memory"}),(0,s.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,s.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,s.jsxs)("div",{className:"overflow-y-auto p-5 space-y-6 scrollbar-thin",children:[c&&(0,s.jsx)("p",{className:"text-sm text-danger",children:c}),!a&&!c&&(0,s.jsx)("p",{className:"text-sm text-content-tertiary",children:"Loading..."}),null==a?void 0:a.map(e=>(0,s.jsxs)("div",{children:[a.length>1&&(0,s.jsx)("h3",{className:"text-xs font-medium text-accent/70 mb-2 font-mono",children:e.name}),(0,s.jsx)("pre",{className:"text-sm text-content-secondary whitespace-pre-wrap font-mono leading-relaxed",children:e.content})]},e.name)),(null==a?void 0:a.length)===0&&(0,s.jsx)("p",{className:"text-sm text-content-tertiary",children:"No memory files found."})]})]})]}),document.body)}},5014:(e,t,n)=>{"use strict";n.d(t,{FontSizeProvider:()=>c,e:()=>a});var s=n(5155),r=n(2115);let o=(0,r.createContext)({fontSize:"medium",setFontSize:()=>{},cycle:()=>{}});function a(){return(0,r.useContext)(o)}let l=["small","medium","large"];function c(e){let{children:t}=e,[n,a]=(0,r.useState)("medium");(0,r.useEffect)(()=>{let e=localStorage.getItem("fontSize");e&&l.includes(e)&&a(e)},[]),(0,r.useEffect)(()=>{document.documentElement.setAttribute("data-font-size",n)},[n]);let c=(0,r.useCallback)(e=>{a(e),localStorage.setItem("fontSize",e)},[]),i=(0,r.useCallback)(()=>{c(l[(l.indexOf(n)+1)%l.length])},[n,c]);return(0,s.jsx)(o.Provider,{value:{fontSize:n,setFontSize:c,cycle:i},children:t})}},6229:(e,t,n)=>{"use strict";n.d(t,{FontSizeToggle:()=>a});var s=n(5155),r=n(5014);let o={small:"Small",medium:"Medium",large:"Large"};function a(){let{fontSize:e,cycle:t}=(0,r.e)();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:"Font size: ".concat(o[e]),children:"small"===e?(0,s.jsx)("span",{className:"w-[18px] h-[18px] flex items-center justify-center font-medium text-[11px] leading-none",children:"A"}):"medium"===e?(0,s.jsx)("span",{className:"w-[18px] h-[18px] flex items-center justify-center font-medium text-[14px] leading-none",children:"A"}):(0,s.jsx)("span",{className:"w-[18px] h-[18px] flex items-center justify-center font-medium text-[17px] leading-none",children:"A"})})}},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:()=>h});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 m(){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 h(){let[e,t]=(0,r.useState)(u),[n,o]=(0,r.useState)(""),[a,l]=(0,r.useState)("recent"),[c,h]=(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:()=>h(!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)(m,{}):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"]})]})}}},e=>{e.O(0,[176,441,255,358],()=>e(e.s=927)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[943],{1046:(e,t,s)=>{"use strict";s.d(t,{D:()=>r});var n=s(5155);function r(e){let{value:t,onChange:s,placeholder:r="Search..."}=e;return(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)("svg",{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-content-tertiary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),(0,n.jsx)("input",{type:"text",value:t,onChange:e=>s(e.target.value),placeholder:r,className:"w-full pl-10 pr-10 py-2.5 bg-surface border border-edge-subtle rounded-xl text-sm text-content-primary placeholder-content-tertiary focus:outline-none focus:border-accent focus:ring-1 focus:ring-accent/30 transition-all"}),t&&(0,n.jsx)("button",{onClick:()=>s(""),className:"absolute right-3 top-1/2 -translate-y-1/2 text-content-tertiary hover:text-content-secondary transition-colors",children:(0,n.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})}},2635:(e,t,s)=>{Promise.resolve().then(s.bind(s,8666))},5011:(e,t,s)=>{"use strict";s.d(t,{S:()=>o});var n=s(5155),r=s(2115),a=s(7650);function o(e){let{encodedPath:t,onClose:s}=e,[o,l]=(0,r.useState)(null),[c,i]=(0,r.useState)(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=>l(e.files)).catch(()=>i("Failed to load memory"))},[t]),(0,r.useEffect)(()=>{function e(e){"Escape"===e.key&&s()}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[s]),(0,a.createPortal)((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:s}),(0,n.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,n.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-edge-subtle",children:[(0,n.jsx)("h2",{className:"text-sm font-medium text-content-primary",children:"Project Memory"}),(0,n.jsx)("button",{onClick:s,className:"p-1.5 -mr-1.5 text-content-tertiary hover:text-content-primary hover:bg-surface rounded-lg transition-all",children:(0,n.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,n.jsxs)("div",{className:"overflow-y-auto p-5 space-y-6 scrollbar-thin",children:[c&&(0,n.jsx)("p",{className:"text-sm text-danger",children:c}),!o&&!c&&(0,n.jsx)("p",{className:"text-sm text-content-tertiary",children:"Loading..."}),null==o?void 0:o.map(e=>(0,n.jsxs)("div",{children:[o.length>1&&(0,n.jsx)("h3",{className:"text-xs font-medium text-accent/70 mb-2 font-mono",children:e.name}),(0,n.jsx)("pre",{className:"text-sm text-content-secondary whitespace-pre-wrap font-mono leading-relaxed",children:e.content})]},e.name)),(null==o?void 0:o.length)===0&&(0,n.jsx)("p",{className:"text-sm text-content-tertiary",children:"No memory files found."})]})]})]}),document.body)}},8666:(e,t,s)=>{"use strict";s.d(t,{ProjectPageContent:()=>w});var n=s(5155),r=s(2115),a=s(2619),o=s.n(a),l=s(467),c=s(931);function i(e){let{session:t,encodedPath:s}=e,r=t.firstMessage?(0,c.Tc)(t.firstMessage):null,a=r?r.args?"".concat(r.name," ").concat(r.args):r.name:t.firstMessage||"Empty session";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 ".concat(r?"font-mono":""),children:a})}),(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,l.fw)(t.lastActivity)]})]}),(0,n.jsx)("div",{className:"mt-2 text-[11px] text-content-tertiary font-mono truncate opacity-50",children:t.id})]})}var d=s(1046);function m(e){let{sessions:t,encodedPath:s}=e,[a,o]=(0,r.useState)(""),[l,c]=(0,r.useState)(!0),[m,x]=(0,r.useState)(30);(0,r.useEffect)(()=>{x(30)},[t]);let h=(0,r.useMemo)(()=>t.filter(e=>e.messageCount<3).length,[t]),u=(0,r.useMemo)(()=>{let e=t;if(l&&(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,l]),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)(d.D,{value:a,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:l,onChange:e=>{c(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:a?"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)(i,{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 x=s(63),h=s(6281),u=s(7650);function p(e){let{isOpen:t,onClose:s,onSuccess:a,currentPath:o,encodedPath:l}=e,[c,i]=(0,r.useState)(""),[d,m]=(0,r.useState)(!1),[x,h]=(0,r.useState)(null),p=(0,r.useRef)(null);if((0,r.useEffect)(()=>{t&&(i(function(e){let t=e.split("/").filter(Boolean);return t[t.length-1]||e}(o)),h(null),setTimeout(()=>{var e;return null==(e=p.current)?void 0:e.select()},0))},[t,o]),(0,r.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 f(e){if(e.preventDefault(),!c.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:l,newName:c.trim()})}),t=await e.json();if(!e.ok)throw Error(t.error||"Failed to rename project");a(t.newEncodedPath)}catch(e){h(e instanceof Error?e.message:"Unknown error")}finally{m(!1)}}return(0,u.createPortal)((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:f,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:p,id:"projectName",type:"text",value:c,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||!c.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"]})]})]})]})]}),document.body)}var f=s(5011),j=s(3389),v=s(449),g=s(6229);function b(e){let{projectName:t,projectPath:s,encodedPath:a,hasMemory:l}=e,[c,i]=(0,r.useState)(!1),[d,m]=(0,r.useState)(!1),u=(0,x.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:[l&&(0,n.jsxs)("button",{onClick:()=>m(!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)(h.GlobalSearch,{projectPath:a})}),(0,n.jsx)(g.FontSizeToggle,{}),(0,n.jsx)(v.ThemeToggle,{}),(0,n.jsx)(j.SyncButton,{})]})})}),(0,n.jsx)(p,{isOpen:c,onClose:()=>i(!1),onSuccess:function(e){i(!1),u.replace("/project/".concat(e))},currentPath:s,encodedPath:a}),d&&(0,n.jsx)(f.S,{encodedPath:a,onClose:()=>m(!1)})]})}var N=s(7625);let y=new Map;function k(){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 w(e){var t,s,a,o,c;let{encodedPath:i}=e,[d,x]=(0,r.useState)(null!=(t=y.get(i))?t:null);(0,r.useEffect)(()=>{let e=!1;function t(){fetch("/api/projects/sessions?path=".concat(encodeURIComponent(i))).then(e=>e.json()).then(t=>{e||(y.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==d?void 0:d.sessions.reduce((e,t)=>e+t.messageCount,0))?s:0,u=d?Math.max(...d.sessions.map(e=>e.lastActivity)):0;return(0,n.jsxs)("div",{className:"min-h-screen",children:[(0,n.jsx)(b,{projectName:null!=(a=null==d?void 0:d.projectName)?a:i,projectPath:null!=(o=null==d?void 0:d.decodedPath)?o:i,encodedPath:i,hasMemory:null!=(c=null==d?void 0:d.hasMemory)&&c}),(0,n.jsx)("main",{className:"max-w-5xl mx-auto px-4 sm:px-6 py-8",children:d?(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"})}),d.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,l.fw)(u)]})]}),(0,n.jsx)("div",{className:"mb-6 animate-in stagger-1",children:(0,n.jsx)(N.SummarySection,{type:"project",projectPath:i,messageCount:h})}),(0,n.jsx)("div",{className:"animate-in stagger-2",children:(0,n.jsx)(m,{sessions:d.sessions,encodedPath:i},i)})]}):(0,n.jsx)(k,{})})]})}}},e=>{e.O(0,[176,969,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],{4580:(e,t,s)=>{"use strict";s.d(t,{ExportButton:()=>r});var n=s(5155);function r(e){let{encodedPath:t,sessionId:s,agentId:r}=e;return(0,n.jsxs)("button",{onClick:function(){let e=new URLSearchParams({encodedPath:t,sessionId:s});r&&e.set("agentId",r),window.location.href="/api/session/export?".concat(e.toString())},className:"px-3 py-1.5 text-sm text-content-secondary hover:text-content-primary hover:bg-surface-elevated border border-edge-subtle 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:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})}),"Export"]})}},6221:(e,t,s)=>{"use strict";s.d(t,{ChatView:()=>m});var n=s(5155),r=s(2115),a=s(856),o=s(467);function c(e){let{message:t,compact:s=!1}=e,[c,l]=(0,r.useState)(!1),i="user"===t.type,d=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,c),x=s&&!c&&d.length>300?d.slice(0,300)+"...":d,m=s&&d.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,o.r6)(t.timestamp)]}),i?(0,n.jsx)("div",{className:"text-sm whitespace-pre-wrap break-words leading-relaxed",children:c?d:x}):(0,n.jsx)("div",{className:"text-sm leading-relaxed [&>*:first-child]:mt-0 [&>*:last-child]:mb-0 [&_p]:mb-2 [&_ul]:mb-2 [&_ol]:mb-2 [&_ul]:pl-4 [&_ol]:pl-4 [&_ul]:list-disc [&_ol]:list-decimal [&_li]:mb-0.5 [&_h1]:text-base [&_h1]:font-semibold [&_h1]:mb-1.5 [&_h2]:text-sm [&_h2]:font-semibold [&_h2]:mb-1 [&_h3]:text-sm [&_h3]:font-medium [&_h3]:mb-1 [&_code]:bg-surface-base [&_code]:px-1 [&_code]:py-0.5 [&_code]:rounded [&_code]:text-xs [&_code]:font-mono [&_pre]:bg-surface-base [&_pre]:p-3 [&_pre]:rounded-lg [&_pre]:overflow-x-auto [&_pre]:text-xs [&_pre]:mb-2 [&_blockquote]:border-l-2 [&_blockquote]:border-edge-subtle [&_blockquote]:pl-3 [&_blockquote]:text-content-secondary [&_hr]:border-edge-subtle [&_hr]:my-2",children:(0,n.jsx)(a.oz,{children:c?d:x})}),m&&(0,n.jsx)("button",{onClick:()=>l(!c),className:"mt-2 text-xs font-medium ".concat(i?"text-accent/70 hover:text-accent":"text-accent hover:text-accent-hover"," transition-colors"),children:c?"Show less":"Show more"})]})})}function l(e){let{name:t,args:s,timestamp:r}=e;return(0,n.jsx)("div",{className:"flex justify-end py-1",children:(0,n.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-full bg-surface border border-edge-subtle text-xs",children:[(0,n.jsx)("svg",{className:"w-3 h-3 text-accent shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 9l3 3-3 3m5 0h3"})}),(0,n.jsx)("span",{className:"text-accent font-mono font-medium",children:t}),s&&(0,n.jsx)("span",{className:"text-content-secondary font-mono",children:s}),(0,n.jsx)("span",{className:"text-content-tertiary ml-1",children:(0,o.r6)(r)})]})})}function i(e){var t;let{content:s,timestamp:r}=e,a=function(e){let t=e.match(/^<([\w-]+)>([\s\S]*?)<\/[\w-]+>/);return t?{tag:t[1],body:t[2].trim()}:null}(s),c=a?a.tag.replace(/^local-command-/,"").replace(/-/g," "):"system",l=null!=(t=null==a?void 0:a.body)?t:"",i=l.length>80?l.slice(0,80)+"…":l;return(0,n.jsx)("div",{className:"flex justify-end py-1",children:(0,n.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-full bg-surface border border-edge-subtle text-xs text-content-tertiary max-w-[85%]",children:[(0,n.jsx)("span",{className:"font-medium shrink-0",children:c}),i&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"opacity-40",children:"\xb7"}),(0,n.jsx)("span",{className:"font-mono truncate",children:i})]}),(0,n.jsx)("span",{className:"opacity-40 shrink-0 ml-1",children:(0,o.r6)(r)})]})})}var d=s(931);function x(e){let{agent:t}=e;return(0,n.jsxs)("button",{onClick:()=>{let e=document.getElementById("subagent-".concat(t.agentId));if(e){let t=e.getBoundingClientRect().top+window.scrollY-80;window.scrollTo({top:t,behavior:"smooth"})}},className:"flex items-center gap-2 mt-1 mb-1 ml-4 px-3 py-1.5 text-xs text-accent hover:text-accent-hover bg-surface hover:bg-surface-elevated border border-edge-subtle hover:border-edge-hover rounded-lg transition-all",children:[(0,n.jsx)("svg",{className:"w-3.5 h-3.5 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 3H5a2 2 0 00-2 2v4m6-6h10a2 2 0 012 2v4M9 3v18m0 0h10a2 2 0 002-2V9M9 21H5a2 2 0 01-2-2V9m0 0h18"})}),(0,n.jsx)("span",{className:"font-mono",children:t.slug}),(0,n.jsx)("span",{className:"text-content-tertiary",children:"\xb7"}),(0,n.jsx)("span",{className:"text-content-tertiary truncate max-w-xs",children:t.firstMessage}),(0,n.jsx)("svg",{className:"w-3.5 h-3.5 flex-shrink-0 text-content-tertiary",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"})})]})}function m(e){let{messages:t,previewCount:s=50,highlightMessageId:a,showHidden:m=!1,subagents:u}=e,[h,p]=(0,r.useState)(!!a),g=(0,r.useRef)(null),f=[...(0,r.useMemo)(()=>m?t:t.filter(e=>!(0,d.X4)(e)&&!(0,d.B1)(e)),[t,m])].sort((e,t)=>(0,o.EH)(e.timestamp)-(0,o.EH)(t.timestamp)),b=h?f:f.slice(0,s),j=f.length>s;(0,r.useEffect)(()=>{a&&g.current&&g.current.scrollIntoView({behavior:"smooth",block:"center"})},[a]);let v=new Map;if(u&&u.length>0){let e=[...t].sort((e,t)=>(0,o.EH)(e.timestamp)-(0,o.EH)(t.timestamp)),s=new Set(b.map(e=>e.uuid)),n=0;for(let t=0;t<e.length;t++){var y;let r=e[t],a="string"==typeof r.message.content?0:r.message.content.filter(e=>"tool_use"===e.type&&"Task"===e.name).length;if(0===a)continue;let o=s.has(r.uuid)?r.uuid:null;if(!o){for(let n=t-1;n>=0;n--)if(s.has(e[n].uuid)){o=e[n].uuid;break}}if(!o){for(let n=t+1;n<e.length;n++)if(s.has(e[n].uuid)){o=e[n].uuid;break}}if(o){let e=null!=(y=v.get(o))?y:[];for(let t=0;t<a&&n<u.length;t++)e.push(u[n++]);v.set(o,e)}else n+=a}}return(0,n.jsxs)("div",{className:"space-y-4",children:[b.map((e,t)=>{var s;let r=a===e.uuid,o=null!=(s=v.get(e.uuid))?s:[];return(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{ref:r?g:void 0,className:"".concat(r?"ring-2 ring-accent ring-offset-2 ring-offset-base rounded-2xl":""," animate-in stagger-").concat(Math.min(t+1,10)),children:(()=>{let t=(0,d.iP)(e.message.content),s=(0,d.Tc)(t);return s?(0,n.jsx)(l,{name:s.name,args:s.args,timestamp:e.timestamp}):m&&(0,d.X4)(e)?(0,n.jsx)(i,{content:t,timestamp:e.timestamp}):(0,n.jsx)(c,{message:e,compact:!h})})()}),o.map(e=>(0,n.jsx)(x,{agent:e},e.agentId))]},e.uuid)}),j&&(0,n.jsx)("div",{className:"flex justify-center pt-4",children:(0,n.jsx)("button",{onClick:()=>p(!h),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:h?(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 ",f.length," messages"]})})}),0===b.length&&(0,n.jsx)("div",{className:"text-center py-16 text-content-tertiary animate-fade",children:"No messages in this session"})]})}},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,7192)),Promise.resolve().then(s.bind(s,3389)),Promise.resolve().then(s.bind(s,449))},7192:(e,t,s)=>{"use strict";s.d(t,{SessionContent:()=>f});var n=s(5155),r=s(2115),a=s(467),o=s(6221);function c(e){let{sessionId:t}=e,[s,a]=(0,r.useState)(!0),[o,c]=(0,r.useState)(!1),l=s?"claude --dangerously-skip-permissions --resume ".concat(t):"claude --resume ".concat(t);async function i(){await navigator.clipboard.writeText(l),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:l})]}),(0,n.jsx)("button",{onClick:i,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(7650),i=s(63);function d(e){let{encodedPath:t,sessionId:s,totalMessageCount:a,strippedMessageCount:o}=e,c=(0,i.useRouter)(),[d,x]=(0,r.useState)(!1),[m,u]=(0,r.useState)(""),[h,p]=(0,r.useState)(!1),[g,f]=(0,r.useState)(!1),[b,j]=(0,r.useState)(null),v=(0,r.useRef)(null);(0,r.useEffect)(()=>{d&&(u(""),p(!1),j(null),setTimeout(()=>{var e;return null==(e=v.current)?void 0:e.focus()},0))},[d]),(0,r.useEffect)(()=>{function e(e){"Escape"===e.key&&d&&!g&&x(!1)}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[d,g]);let y=m?parseInt(m,10):void 0,k=!m||y&&y>0,N=h?o:a,w=y?Math.min(y,N):N,C=a>0?Math.round((1-w/a)*100):0;async function _(){if(!k)return void j("Please enter a valid positive number.");f(!0),j(null);try{let e=await fetch("/api/session/duplicate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({encodedPath:t,sessionId:s,keepLastN:y,stripToolResults:h})}),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){j(e instanceof Error?e.message:"Unknown error")}finally{f(!1)}}return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{onClick:()=>x(!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"]}),d&&(0,l.createPortal)((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:g?void 0:()=>x(!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:v,id:"keepLastN",type:"number",min:"1",value:m,onChange:e=>u(e.target.value),disabled:g,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:h,onChange:e=>p(e.target.checked),disabled:g,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:[w," messages"]})]}),C>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:[C,"%"]})]})]}),b&&(0,n.jsx)("p",{className:"text-sm text-danger mb-4",children:b}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-3",children:[(0,n.jsx)("button",{type:"button",onClick:()=>x(!1),disabled:g,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:_,disabled:g||!k,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:[g&&(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"})]}),g?"Duplicating...":"Duplicate"]})]})]})]}),document.body)]})}function x(e){let{encodedPath:t,sessionId:s}=e,a=(0,i.useRouter)(),[o,c]=(0,r.useState)(!1),[d,x]=(0,r.useState)(!1),[m,u]=(0,r.useState)(null);async function h(){x(!0),u(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){u(e instanceof Error?e.message:"Unknown error")}finally{x(!1)}}return(0,r.useEffect)(()=>{o&&u(null)},[o]),(0,r.useEffect)(()=>{function e(e){"Escape"===e.key&&o&&!d&&c(!1)}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[o,d]),(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,l.createPortal)((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:()=>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."}),m&&(0,n.jsx)("p",{className:"text-sm text-danger mb-4",children:m}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-3",children:[(0,n.jsx)("button",{type:"button",onClick:()=>c(!1),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",{onClick:h,disabled:d,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:[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?"Deleting...":"Delete"]})]})]})]}),document.body)]})}var m=s(7625),u=s(2619),h=s.n(u);function p(e){let{subagents:t,projectPath:s,sessionId:r}=e;return 0===t.length?null:(0,n.jsxs)("div",{id:"subagents",className:"mt-8 animate-in stagger-2",children:[(0,n.jsxs)("h2",{className:"text-sm font-medium text-content-secondary mb-3 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:"M9 3H5a2 2 0 00-2 2v4m6-6h10a2 2 0 012 2v4M9 3v18m0 0h10a2 2 0 002-2V9M9 21H5a2 2 0 01-2-2V9m0 0h18"})}),"Subagents (",t.length,")"]}),(0,n.jsx)("div",{className:"grid gap-2",children:t.map(e=>(0,n.jsx)(h(),{id:"subagent-".concat(e.agentId),href:"/project/".concat(s,"/session/").concat(r,"/subagent/").concat(e.agentId),className:"block bg-surface border border-edge-subtle rounded-lg px-4 py-3 hover:border-edge-hover hover:bg-surface-elevated transition-all group",children:(0,n.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,n.jsx)("span",{className:"text-xs font-mono text-accent",children:e.slug}),(0,n.jsx)("span",{className:"text-xs text-content-tertiary",children:"\xb7"}),(0,n.jsxs)("span",{className:"text-xs text-content-tertiary",children:[e.messageCount," messages"]}),(0,n.jsx)("span",{className:"text-xs text-content-tertiary",children:"\xb7"}),(0,n.jsx)("span",{className:"text-xs text-content-tertiary",children:(0,a.fw)(e.lastActivity)})]}),(0,n.jsx)("p",{className:"text-sm text-content-secondary truncate",children:e.firstMessage})]}),(0,n.jsx)("svg",{className:"w-4 h-4 text-content-tertiary group-hover:text-content-secondary flex-shrink-0 mt-0.5 transition-colors",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"})})]})},e.agentId))})]})}var g=s(4580);function f(e){let{projectPath:t,sessionId:s,messageCount:l,lastActivity:i,tokenUsage:u,totalMessageCount:h,strippedMessageCount:f,messages:b,highlightMessageId:j,subagents:v}=e,[y,k]=(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"})}),l," 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)(i)]}),(0,n.jsx)("span",{className:"text-xs text-content-tertiary hidden sm:inline",children:(0,a.r6)(i)}),(0,n.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-content-tertiary cursor-pointer ml-auto",children:[(0,n.jsx)("input",{type:"checkbox",checked:y,onChange:e=>k(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)(c,{sessionId:s})}),u&&(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)(u.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)(u.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)(u.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)(u.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:[v&&v.length>0&&(0,n.jsxs)("button",{onClick:()=>{let e=document.getElementById("subagents");if(e){let t=e.getBoundingClientRect().top+window.scrollY-80;window.scrollTo({top:t,behavior:"smooth"})}},className:"flex items-center gap-1.5 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 mr-auto",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 3H5a2 2 0 00-2 2v4m6-6h10a2 2 0 012 2v4M9 3v18m0 0h10a2 2 0 002-2V9M9 21H5a2 2 0 01-2-2V9m0 0h18"})}),v.length," sub-agent",1!==v.length?"s":""]}),(0,n.jsx)(g.ExportButton,{encodedPath:t,sessionId:s}),(0,n.jsx)(d,{encodedPath:t,sessionId:s,totalMessageCount:h,strippedMessageCount:f}),(0,n.jsx)(x,{encodedPath:t,sessionId:s})]})]}),(0,n.jsx)("div",{className:"mb-6 animate-in stagger-1",children:(0,n.jsx)(m.SummarySection,{type:"session",projectPath:t,sessionId:s,messageCount:l})}),(0,n.jsx)(o.ChatView,{messages:b,highlightMessageId:j,showHidden:y,subagents:v}),v&&v.length>0&&(0,n.jsx)(p,{subagents:v,projectPath:t,sessionId:s})]})}}},e=>{e.O(0,[176,856,969,441,255,358],()=>e(e.s=7054)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[959],{449:(e,t,r)=>{"use strict";r.d(t,{ThemeToggle:()=>o});var n=r(5155),s=r(1458);let a={system:"System",light:"Light",dark:"Dark"};function o(){let{theme:e,cycle:t}=(0,s.D)();return(0,n.jsx)("button",{onClick:t,className:"p-2 text-content-tertiary hover:text-content-secondary hover:bg-surface-elevated rounded-lg transition-all flex-shrink-0",title:"Theme: ".concat(a[e]),children:"system"===e?(0,n.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})}):"light"===e?(0,n.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"})}):(0,n.jsx)("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"})})})}},467:(e,t,r)=>{"use strict";function n(e){if("number"==typeof e)return e;let t=Date.parse(e);return isNaN(t)?0:t}function s(e){let t=Date.now()-e,r=Math.floor(t/6e4),n=Math.floor(t/36e5),s=Math.floor(t/864e5),a=Math.floor(t/6048e5),o=Math.floor(t/2592e6);if(r<1)return"Just now";if(r<60)return"".concat(r,"m ago");if(n<24)return"".concat(n,"h ago");if(s<7)return"".concat(s,"d ago");if(s<30)return"".concat(a,"w ago");if(o<12)return"".concat(o,"mo ago");let c=Math.floor(o/12);return"".concat(c,"y ago")}function a(e){return new Date(n(e)).toLocaleString("en-GB",{day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"})}function o(e){return e>=1e6?"".concat((e/1e6).toFixed(1),"M"):e>=1e4?"".concat((e/1e3).toFixed(1),"k"):e.toLocaleString("en-GB")}r.d(t,{EH:()=>n,ap:()=>o,fw:()=>s,r6:()=>a})},1458:(e,t,r)=>{"use strict";r.d(t,{D:()=>o,ThemeProvider:()=>c});var n=r(5155),s=r(2115);let a=(0,s.createContext)({theme:"system",resolved:"dark",setTheme:()=>{},cycle:()=>{}});function o(){return(0,s.useContext)(a)}function c(e){let{children:t}=e,[r,o]=(0,s.useState)("system"),[c,i]=(0,s.useState)("dark");(0,s.useEffect)(()=>{let e=localStorage.getItem("theme");e&&["light","dark","system"].includes(e)&&o(e)},[]),(0,s.useEffect)(()=>{let e="system"===r?window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark":r;if(i(e),document.documentElement.setAttribute("data-theme",e),"system"===r){let e=window.matchMedia("(prefers-color-scheme: light)"),t=()=>{let t=e.matches?"light":"dark";i(t),document.documentElement.setAttribute("data-theme",t)};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)}},[r]);let l=(0,s.useCallback)(e=>{o(e),localStorage.setItem("theme",e)},[]),d=(0,s.useCallback)(()=>{let e=["system","light","dark"];l(e[(e.indexOf(r)+1)%e.length])},[r,l]);return(0,n.jsx)(a.Provider,{value:{theme:r,resolved:c,setTheme:l,cycle:d},children:t})}},2436:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,2619,23)),Promise.resolve().then(r.bind(r,6592)),Promise.resolve().then(r.bind(r,6281)),Promise.resolve().then(r.bind(r,3389)),Promise.resolve().then(r.bind(r,449))},3389:(e,t,r)=>{"use strict";r.d(t,{SyncButton:()=>a});var n=r(5155),s=r(2115);function a(){let[e,t]=(0,s.useState)(!1),[r,a]=(0,s.useState)(null),o=async()=>{t(!0),a(null);try{let e=await fetch("/api/sync",{method:"POST"});if(!e.ok)throw Error("Sync failed");let t=await e.json();a(t.sync),window.dispatchEvent(new Event("sync-complete")),setTimeout(()=>a(null),3e3)}catch(e){console.error("Sync error:",e)}finally{t(!1)}};return(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("button",{onClick:o,disabled:e,className:"p-2 text-content-tertiary hover:text-content-secondary hover:bg-surface-elevated rounded-lg transition-all disabled:opacity-50 disabled:cursor-not-allowed",title:"Resync database",children:(0,n.jsx)("svg",{className:"w-5 h-5 ".concat(e?"animate-spin":""),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})})}),r&&(r.added>0||r.updated>0||r.removed>0)&&(0,n.jsxs)("div",{className:"text-xs text-content-tertiary whitespace-nowrap animate-fade",children:[r.added>0&&"+".concat(r.added),r.updated>0&&" ~".concat(r.updated),r.removed>0&&" -".concat(r.removed)]})]})}},6281:(e,t,r)=>{"use strict";r.d(t,{GlobalSearch:()=>o});var n=r(5155),s=r(2115),a=r(63);function o(e){let{projectPath:t}=e,[r,o]=(0,s.useState)(""),c=(0,a.useRouter)(),i=(0,s.useRef)(null);(0,s.useEffect)(()=>{function e(e){if((e.metaKey||e.ctrlKey)&&"k"===e.key){var t;e.preventDefault(),null==(t=i.current)||t.focus()}}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[]);let l=(0,s.useCallback)(e=>{if(e.preventDefault(),r.trim()){let e=new URLSearchParams({q:r.trim()});t&&e.set("project",t),c.push("/search?".concat(e.toString()))}},[r,c,t]),d=t?"Search this project...":"Search all chats...";return(0,n.jsxs)("form",{onSubmit:l,className:"relative",children:[(0,n.jsx)("svg",{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-content-tertiary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),(0,n.jsx)("input",{ref:i,type:"text",value:r,onChange:e=>o(e.target.value),placeholder:d,className:"w-full pl-10 pr-16 py-2 bg-surface border border-edge-subtle rounded-xl text-sm text-content-primary placeholder-content-tertiary focus:outline-none focus:border-accent focus:ring-1 focus:ring-accent/30 transition-all"}),!r&&(0,n.jsxs)("kbd",{className:"absolute right-3 top-1/2 -translate-y-1/2 hidden sm:inline-flex items-center gap-0.5 px-1.5 py-0.5 text-[10px] font-mono text-content-tertiary bg-surface-elevated border border-edge-subtle rounded",children:[(0,n.jsx)("span",{className:"text-xs",children:"⌘"}),"K"]})]})}},6592:(e,t,r)=>{"use strict";r.d(t,{SearchResults:()=>i});var n=r(5155),s=r(2115),a=r(2619),o=r.n(a),c=r(467);function i(e){let{query:t,projectPath:r}=e,[a,i]=(0,s.useState)([]),[l,d]=(0,s.useState)(null),[u,h]=(0,s.useState)(!1),[m,x]=(0,s.useState)(null);return((0,s.useEffect)(()=>{if(!t.trim())return void i([]);(async()=>{h(!0),x(null);try{let e=new URLSearchParams({q:t});r&&e.set("project",r);let n=await fetch("/api/search?".concat(e.toString()));if(!n.ok)throw Error("Search failed");let s=await n.json();i(s.results),d(s.stats)}catch(e){x("Failed to search. Please try again."),i([])}finally{h(!1)}})()},[t,r]),t.trim())?u?(0,n.jsxs)("div",{className:"text-center py-16 animate-fade",children:[(0,n.jsx)("div",{className:"w-8 h-8 mx-auto border-2 border-edge-hover border-t-accent rounded-full animate-spin mb-4"}),(0,n.jsx)("p",{className:"text-content-secondary",children:"Searching..."})]}):m?(0,n.jsxs)("div",{className:"text-center py-16 animate-fade",children:[(0,n.jsx)("svg",{className:"w-12 h-12 mx-auto text-danger mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})}),(0,n.jsx)("p",{className:"text-danger",children:m})]}):0===a.length?(0,n.jsxs)("div",{className:"text-center py-16 animate-fade",children:[(0,n.jsx)("svg",{className:"w-12 h-12 mx-auto text-content-tertiary/50 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M9.172 16.172a4 4 0 015.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,n.jsxs)("p",{className:"text-content-secondary",children:["No results found for “",t,"”"]})]}):(0,n.jsxs)("div",{children:[(0,n.jsxs)("p",{className:"text-sm text-content-tertiary mb-4 animate-fade",children:["Found ",a.length," result",1!==a.length?"s":""," for “",t,"”"]}),(0,n.jsx)("div",{className:"space-y-3",children:a.map((e,t)=>(0,n.jsxs)(o(),{href:"/project/".concat(e.projectPath,"/session/").concat(e.sessionId,"?highlight=").concat(e.messageUuid),className:"block p-4 bg-surface border border-edge-subtle rounded-xl hover:border-edge-hover hover:bg-surface-elevated transition-all duration-300 animate-in stagger-".concat(Math.min(t+1,10)),children:[(0,n.jsxs)("div",{className:"flex items-start justify-between gap-4 mb-2",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,n.jsx)("span",{className:"px-2 py-0.5 rounded text-xs font-medium ".concat("user"===e.userType?"bg-info/15 text-info":"bg-accent/15 text-accent"),children:e.userType}),(0,n.jsx)("span",{className:"text-content-secondary",children:e.projectName})]}),e.timestamp>0&&(0,n.jsx)("span",{className:"text-xs text-content-tertiary whitespace-nowrap",children:(0,c.fw)(e.timestamp)})]}),(0,n.jsx)("p",{className:"text-sm text-content-secondary line-clamp-3 [&>mark]:bg-accent/25 [&>mark]:text-accent-hover [&>mark]:px-0.5 [&>mark]:rounded",dangerouslySetInnerHTML:{__html:e.snippet}}),(0,n.jsx)("p",{className:"text-[11px] text-content-tertiary mt-2 font-mono truncate opacity-50",children:e.sessionId})]},"".concat(e.sessionId,"-").concat(e.messageUuid,"-").concat(t)))})]}):(0,n.jsxs)("div",{className:"text-center py-16 animate-fade",children:[(0,n.jsx)("svg",{className:"w-12 h-12 mx-auto text-content-tertiary/50 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),(0,n.jsxs)("p",{className:"text-content-secondary",children:["Enter a search query to find messages"," ",r?"in this project":"across all chats"]}),l&&(0,n.jsxs)("p",{className:"text-sm text-content-tertiary mt-2",children:[l.messageCount.toLocaleString()," messages indexed across ",l.fileCount," sessions"]})]})}}},e=>{e.O(0,[176,441,255,358],()=>e(e.s=2436)),_N_E=e.O()}]);