| 25 | `).filter(O=>O.trim());if(t.length===0)return null;let s=t.length>ms?t.slice(0,ms):t,{messages:i,firstTimestamp:r,lastTimestamp:n}=oc(s);if(i.length===0)return null;let o=i.find(O=>O.role==="human"),l=o?o.text.slice(0,120).replace(/\n/g," "):"(empty conversation)";return{id:a.uuid,uuid:a.uuid,project:a.project,projectPath:a.projectPath,title:l,messages:i,messageCount:i.length,firstTimestamp:r,lastTimestamp:n,tags:[],customTags:[],isFavorite:!1,filePath:a.filePath}}catch{return null}}async function cc(a){return new Promise(e=>{let t=[],s="",i="",r=0,n=(0,fn.createInterface)({input:(0,re.createReadStream)(a.filePath,{encoding:"utf-8"}),crlfDelay:Number.POSITIVE_INFINITY});n.on("line",o=>{if(o.trim()){if(r++,r>ms){n.close();return}try{let l=JSON.parse(o),O=typeof l.timestamp=="string"?l.timestamp:void 0;if(O&&(s||(s=O),i=O),l.type==="user"){let c=l.message;if(!c)return;let d=Bt(c.content);d&&t.push({role:"human",text:d,timestamp:O||""})}if(l.type==="assistant"){let c=l.message;if(!c)return;let d=Bt(c.content),p=gn(c.content);d&&t.push({role:"assistant",text:d,timestamp:O||"",toolCalls:p.length>0?p:void 0})}}catch{}}}),n.on("close",()=>{if(t.length===0){e(null);return}let o=t.find(O=>O.role==="human"),l=o?o.text.slice(0,120).replace(/\n/g," "):"(empty conversation)";e({id:a.uuid,uuid:a.uuid,project:a.project,projectPath:a.projectPath,title:l,messages:t,messageCount:t.length,firstTimestamp:s,lastTimestamp:i,tags:[],customTags:[],isFavorite:!1,filePath:a.filePath})}),n.on("error",()=>e(null))})}async function Qn(){let a=lc(),e=[],t=20;a.sort((s,i)=>i.fileSize-s.fileSize);for(let s=0;s<a.length;s+=t){let i=a.slice(s,s+t),r=await Promise.all(i.map(n=>n.fileSize>rc?cc(n):Promise.resolve(Oc(n))));for(let n of r)n&&e.push(n)}return e.sort((s,i)=>(i.lastTimestamp||"").localeCompare(s.lastTimestamp||"")),e}var dc=[{tag:"react",patterns:[/\breact\b/i,/\.tsx\b/,/\.jsx\b/,/usestate|useeffect|useref/i]},{tag:"react-native",patterns:[/react.native/i,/\bexpo\b/i,/react-navigation/i]},{tag:"nextjs",patterns:[/next\.js/i,/\bnextjs\b/i,/next\.config/i]},{tag:"vue",patterns:[/\bvue\b/i,/\.vue\b/,/vuex|pinia/i]},{tag:"angular",patterns:[/\bangular\b/i,/\.component\.ts/i]},{tag:"svelte",patterns:[/\bsvelte\b/i,/\.svelte\b/]},{tag:"typescript",patterns:[/typescript/i,/tsconfig/i,/\.tsx\b/]},{tag:"javascript",patterns:[/javascript/i,/\.js\b/,/\.mjs\b/]},{tag:"python",patterns:[/\bpython\b/i,/\.py\b/,/\bpip\b/i,/django|flask|fastapi/i]},{tag:"rust",patterns:[/\brust\b/i,/\.rs\b/,/cargo\.toml/i]},{tag:"go",patterns:[/\bgolang\b/i,/\.go\b/,/go\.mod/i]},{tag:"java",patterns:[/\bjava\b/i,/\.java\b/,/gradle|maven/i]},{tag:"csharp",patterns:[/\bc#\b/i,/\.cs\b/,/unity|dotnet/i]},{tag:"swift",patterns:[/\bswift\b/i,/\.swift\b/,/swiftui/i]},{tag:"nestjs",patterns:[/nestjs/i,/\bnest\b/i,/@nestjs\//]},{tag:"tailwind",patterns:[/tailwind/i,/tailwindcss/i]},{tag:"css",patterns:[/\.css\b/,/\.scss\b/,/\.sass\b/,/styled-components/i]},{tag:"node",patterns:[/node\.js/i,/\bnodejs\b/i,/package\.json/i,/\bnpm\b/i]},{tag:"docker",patterns:[/\bdocker\b/i,/dockerfile/i,/docker-compose/i]},{tag:"sql",patterns:[/\bsql\b/i,/postgres|mysql|sqlite/i,/prisma|typeorm|sequelize/i]},{tag:"mongodb",patterns:[/\bmongo\b/i,/mongodb/i,/mongoose/i]},{tag:"graphql",patterns:[/graphql/i,/\.graphql\b/,/apollo/i]},{tag:"git",patterns:[/\bgit\s+(commit|push|pull|merge|rebase|checkout|branch)/i]},{tag:"unity",patterns:[/\bunity\b/i,/gameobject|monobehaviour/i,/\.unity\b/]},{tag:"blender",patterns:[/\bblender\b/i,/\.blend\b/,/bpy\./i]},{tag:"threejs",patterns:[/three\.js/i,/threejs/i,/\br3f\b/i,/react-three/i]},{tag:"aws",patterns:[/\baws\b/i,/lambda|s3|ec2|dynamodb/i]},{tag:"firebase",patterns:[/firebase/i,/firestore/i]},{tag:"testing",patterns:[/\bjest\b/i,/\bvitest\b/i,/\.test\.|\.spec\./i,/testing/i]}],pc=[{tag:"bug-fix",patterns:[/\bfix\b/i,/\bbug\b/i,/\berror\b/i,/broken/i,/not working/i,/no funciona/i,/arregl/i]},{tag:"feature",patterns:[/\badd\b/i,/\bcreate\b/i,/\bimplement\b/i,/\bnew\b/i,/agreg/i,/crea /i]},{tag:"refactor",patterns:[/refactor/i,/restructur/i,/reorganiz/i,/clean.?up/i]},{tag:"styling",patterns:[/\bcss\b/i,/\bstyle\b/i,/\bdesign\b/i,/layout/i,/responsive/i,/color/i,/estilo/i]},{tag:"config",patterns:[/config/i,/setup/i,/install/i,/\.env\b/i,/configur/i]},{tag:"api",patterns:[/\bapi\b/i,/endpoint/i,/fetch|axios/i,/request/i,/rest\b/i]},{tag:"auth",patterns:[/auth/i,/login/i,/password/i,/token/i,/session/i,/jwt/i]},{tag:"database",patterns:[/database/i,/migration/i,/schema/i,/seed/i,/query/i]},{tag:"deployment",patterns:[/deploy/i,/ci.?cd/i,/pipeline/i,/production/i,/vercel|netlify|heroku/i]},{tag:"documentation",patterns:[/\bdocs?\b/i,/readme/i,/documentation/i,/comment/i]},{tag:"performance",patterns:[/performance/i,/optimi[zs]/i,/slow/i,/fast/i,/cache/i,/lazy/i]},{tag:"ui-ux",patterns:[/\bui\b/i,/\bux\b/i,/component/i,/button|modal|dialog|form/i,/animation/i]}];function uc(a,e){let t=new RegExp(e.source,e.flags.includes("g")?e.flags:e.flags+"g"),s=a.match(t);return s?s.length:0}function Sn(a,e,t=1){let s=[];for(let i of e){let r=0;for(let n of i.patterns)r+=uc(a,n);r>=t&&s.push(i.tag)}return s}function hc(a){let e=new Set;a.project&&a.project!=="root"&&e.add(a.project);let s=a.messages.filter(n=>n.role==="human").slice(0,5).map(n=>n.text.replace(/<system-reminder>[\s\S]*?<\/system-reminder>/g,"")).join(" "),r=a.messages.filter(n=>n.role==="assistant").flatMap(n=>n.toolCalls||[]);for(let n of Sn(s,dc,3))e.add(n);for(let n of Sn(s,pc,2))e.add(n);return r.some(n=>n.includes("mcp__blender"))&&e.add("blender"),r.some(n=>n.includes("mcp-unity")||n.includes("mcp__mcp-unity"))&&e.add("unity"),Array.from(e).sort()}function vn(a){for(let e of a)e.tags=hc(e)}var gs=(0,bn.join)((0,kn.homedir)(),".claude","agentfiles-conversations.json"),Ft=class extends $n.Events{items=[];_filter={kind:"all-conversations"};_sort="date";_dateRange="today";_activeTags=[];_searchQuery="";_loading=!1;tagData={...ps};get filter(){return this._filter}get sort(){return this._sort}get dateRange(){return this._dateRange}get activeTags(){return this._activeTags}get searchQuery(){return this._searchQuery}get loading(){return this._loading}get allItems(){return this.items}get filteredItems(){let e=this.items;switch(this._filter.kind){case"conversation-project":{let t=this._filter.project;e=e.filter(s=>s.project===t);break}case"conversation-tag":{let t=this._filter.tag;e=e.filter(s=>s.tags.includes(t)||s.customTags.includes(t));break}case"conversation-favorites":e=e.filter(t=>t.isFavorite);break}if(this._dateRange!=="all"){let t=Date.now(),s={today:1,"7d":7,"30d":30,"90d":90,"180d":180}[this._dateRange],i=t-s*864e5;e=e.filter(r=>new Date(r.lastTimestamp).getTime()>=i)}if(this._activeTags.length>0&&(e=e.filter(t=>{let s=[...t.tags,...t.customTags];return this._activeTags.every(i=>s.includes(i))})),this._searchQuery){let t=this._searchQuery.toLowerCase();e=e.filter(s=>s.title.toLowerCase().includes(t)||s.project.toLowerCase().includes(t)||s.tags.some(i=>i.includes(t))||s.customTags.some(i=>i.includes(t))||s.messages.some(i=>i.text.toLowerCase().includes(t)))}return this._sort==="messages"&&(e=[...e].sort((t,s)=>s.messageCount-t.messageCount)),e}getProjectCounts(){let e=new Map;for(let t of this.items)e.set(t.project,(e.get(t.project)||0)+1);return e}getAllTags(){let e=new Map;for(let t of this.items)for(let s of[...t.tags,...t.customTags])e.set(s,(e.get(s)||0)+1);return e}refresh(){this._loading=!0,this.trigger("conversations-updated"),this.refreshAsync()}async refreshAsync(){this.loadTagData(),this.items=await Qn(),vn(this.items),this.applyTagData(),this._loading=!1,this.trigger("conversations-updated")}loadTagData(){try{(0,Ue.existsSync)(gs)&&(this.tagData=JSON.parse((0,Ue.readFileSync)(gs,"utf-8")))}catch{this.tagData={...ps}}}saveTagData(){try{(0,Ue.writeFileSync)(gs,JSON.stringify(this.tagData,null,2),"utf-8")}catch{}}applyTagData(){for(let e of this.items)e.customTags=this.tagData.customTags[e.uuid]||[],e.isFavorite=this.tagData.favorites.includes(e.uuid)}setFilter(e){this._filter=e,this.trigger("conversations-updated")}setSort(e){this._sort=e,this.trigger("conversations-updated")}setDateRange(e){this._dateRange=e,this.trigger("conversations-updated")}toggleTag(e){let t=this._activeTags.indexOf(e);t>=0?this._activeTags.splice(t,1):this._activeTags.push(e),this.trigger("conversations-updated")}clearTags(){this._activeTags=[],this.trigger("conversations-updated")}setSearch(e){this._searchQuery=e,this.trigger("conversations-updated")}toggleFavorite(e){let t=this.tagData.favorites.indexOf(e);t>=0?this.tagData.favorites.splice(t,1):this.tagData.favorites.push(e),this.saveTagData();let s=this.items.find(i=>i.uuid===e);s&&(s.isFavorite=!s.isFavorite),this.trigger("conversations-updated")}addCustomTag(e,t){this.tagData.customTags[e]||(this.tagData.customTags[e]=[]);let s=this.tagData.customTags[e];s.includes(t)||s.push(t),this.saveTagData();let i=this.items.find(r=>r.uuid===e);i&&!i.customTags.includes(t)&&i.customTags.push(t),this.trigger("conversations-updated")}removeCustomTag(e,t){this.tagData.customTags[e]&&(this.tagData.customTags[e]=this.tagData.customTags[e].filter(i=>i!==t)),this.saveTagData();let s=this.items.find(i=>i.uuid===e);s&&(s.customTags=s.customTags.filter(i=>i!==t)),this.trigger("conversations-updated")}getItem(e){return this.items.find(t=>t.uuid===e)}};var be=require("obsidian");function mc(a){return a.replace(/<[^>]+>/g,"").replace(/\[Image #?\d*\]/gi,"").replace(/\s+/g," ").trim()||"(untitled)"}function fc(a){if(!a)return"";let e=Date.now()-new Date(a).getTime(),t=Math.floor(e/6e4);if(t<60)return`${t}m ago`;let s=Math.floor(t/60);if(s<24)return`${s}h ago`;let i=Math.floor(s/24);return i<30?`${i}d ago`:`${Math.floor(i/30)}mo ago`}function gc(a){return a?new Date(a).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"}):""}var Ht=class{containerEl;store;onSelect;selectedUuid=null;inputEl=null;toolbarEl=null;listEl=null;constructor(e,t,s){this.containerEl=e,this.store=t,this.onSelect=s}setSelected(e){this.selectedUuid=e}render(){this.inputEl||(this.containerEl.empty(),this.containerEl.addClass("as-list"),this.searchRowEl=this.containerEl.createDiv("as-search"),this.inputEl=this.searchRowEl.createEl("input",{type:"text",placeholder:"Search conversations...",cls:"as-search-input"}),this.inputEl.addEventListener("input",()=>{this.store.setSearch(this.inputEl.value)}),this.toolbarEl=this.containerEl.createDiv("as-conv-toolbar"),this.listEl=this.containerEl.createDiv("as-list-items as-conv-list")),this.inputEl.value=this.store.searchQuery,this.renderSearchActions(),this.renderTagStrip(),this.renderList()}searchRowEl=null;searchActionsEl=null;outsideClickCleanup=null;dateDropdownEl=null;tagDropdownEl=null;openDropdown=null;closeAllDropdowns(){this.openDropdown=null,this.dateDropdownEl?.removeClass("is-open"),this.tagDropdownEl?.removeClass("is-open"),this.outsideClickCleanup&&(this.outsideClickCleanup(),this.outsideClickCleanup=null)}toggleDropdown(e,t){if(this.openDropdown===e){this.closeAllDropdowns();return}this.closeAllDropdowns(),this.openDropdown=e,(e==="date"?this.dateDropdownEl:this.tagDropdownEl)?.addClass("is-open");let i=r=>{t.contains(r.target)||this.closeAllDropdowns()};window.setTimeout(()=>activeDocument.addEventListener("click",i),0),this.outsideClickCleanup=()=>activeDocument.removeEventListener("click",i)}renderSearchActions(){if(!this.searchRowEl)return;this.searchActionsEl&&this.searchActionsEl.remove(),this.searchActionsEl=this.searchRowEl.createDiv("as-conv-search-actions");let e=this.searchActionsEl.createDiv("as-conv-dropdown-wrap"),t=e.createEl("button",{cls:"as-conv-icon-btn"}),s=t.createSpan("as-conv-icon-btn-icon");(0,be.setIcon)(s,"calendar"),this.dateDropdownEl=e.createDiv("as-conv-dropdown"),this.openDropdown==="date"&&this.dateDropdownEl.addClass("is-open");let i=[{label:"Today",value:"today"},{label:"Last 7 days",value:"7d"},{label:"Last 30 days",value:"30d"},{label:"Last 90 days",value:"90d"},{label:"Last 6 months",value:"180d"},{label:"All time",value:"all"}];for(let g of i){let f=this.store.dateRange===g.value,w=this.dateDropdownEl.createDiv(`as-conv-dropdown-item ${f?"is-active":""}`),P=w.createSpan("as-conv-dropdown-check");f&&(0,be.setIcon)(P,"check"),w.createSpan({cls:"as-conv-dropdown-item-label",text:g.label}),w.addEventListener("click",Z=>{Z.stopPropagation(),this.store.setDateRange(g.value),this.closeAllDropdowns()})}t.addEventListener("click",g=>{g.stopPropagation(),this.toggleDropdown("date",e)});let r=this.store.getAllTags(),n=this.store.activeTags,o=r.size>0,l=this.searchActionsEl.createDiv("as-conv-dropdown-wrap"),O=l.createEl("button",{cls:"as-conv-icon-btn"});o||O.addClass("is-disabled"),n.length>0&&O.addClass("has-active");let c=O.createSpan("as-conv-icon-btn-icon");if((0,be.setIcon)(c,"tag"),this.tagDropdownEl=l.createDiv("as-conv-dropdown"),this.openDropdown==="tag"&&this.tagDropdownEl.addClass("is-open"),o){if(n.length>0){let f=this.tagDropdownEl.createDiv("as-conv-dropdown-item as-conv-dropdown-clear"),w=f.createSpan("as-conv-dropdown-item-icon");(0,be.setIcon)(w,"x"),f.createSpan({text:"Clear filters"}),f.addEventListener("click",P=>{P.stopPropagation(),this.store.clearTags()})}let g=Array.from(r.entries()).sort((f,w)=>w[1]-f[1]).slice(0,25);for(let[f,w]of g){let P=n.includes(f),Z=this.tagDropdownEl.createDiv(`as-conv-dropdown-item ${P?"is-active":""}`),Y=Z.createSpan("as-conv-dropdown-check");P&&(0,be.setIcon)(Y,"check"),Z.createSpan({cls:"as-conv-dropdown-item-label",text:f}),Z.createSpan({cls:"as-conv-dropdown-item-count",text:String(w)}),Z.addEventListener("click",ge=>{ge.stopPropagation(),this.store.toggleTag(f)})}}O.addEventListener("click",g=>{g.stopPropagation(),o&&this.toggleDropdown("tag",l)});let d=this.store.sort==="date"?"messages":"date",p=this.searchActionsEl.createEl("button",{cls:"as-conv-icon-btn"}),u=p.createSpan("as-conv-icon-btn-icon");(0,be.setIcon)(u,this.store.sort==="date"?"clock":"hash"),p.setAttribute("aria-label",`Sort by ${d}`),p.addEventListener("click",()=>this.store.setSort(d))}renderTagStrip(){if(!this.toolbarEl)return;this.toolbarEl.empty();let e=this.store.activeTags,t=this.store.filteredItems.length;if(e.length===0&&t===this.store.allItems.length)return;let s=this.toolbarEl.createDiv("as-conv-tag-strip");s.createSpan({cls:"as-conv-result-count",text:`${t} results`});for(let i of e){let r=s.createEl("button",{cls:"as-conv-tag-pill is-active"});r.createSpan({text:i});let n=r.createSpan("as-conv-tag-pill-x");(0,be.setIcon)(n,"x"),r.addEventListener("click",()=>this.store.toggleTag(i))}if(e.length>0){let i=s.createEl("button",{cls:"as-conv-tag-pill as-conv-tag-clear"});i.createSpan({text:"Clear all"}),i.addEventListener("click",()=>this.store.clearTags())}}renderList(){if(!this.listEl)return;if(this.listEl.empty(),this.store.loading){this.listEl.createDiv({cls:"as-list-empty",text:"Loading conversations..."});return}let e=this.store.filteredItems;if(e.length===0){this.listEl.createDiv({cls:"as-list-empty",text:"No conversations found"});return}let t="";for(let s of e){let i=gc(s.lastTimestamp);i!==t&&(t=i,this.listEl.createDiv({cls:"as-conv-date-header",text:i})),this.renderCard(this.listEl,s)}}renderCard(e,t){let s=e.createDiv("as-skill-card");t.uuid===this.selectedUuid&&s.addClass("is-selected");let i=s.createDiv("as-skill-header"),r=mc(t.title),n=r.length>60?r.slice(0,60)+"...":r;if(i.createSpan({cls:"as-skill-name",text:n}),t.isFavorite){let O=i.createSpan("as-skill-star");(0,be.setIcon)(O,"star")}let o=[t.project,fc(t.lastTimestamp),`${t.messageCount} msgs`].filter(Boolean).join(" \xB7 ");s.createDiv({cls:"as-skill-desc",text:o});let l=[...t.tags,...t.customTags].filter(O=>O!==t.project);if(l.length>0){let O=s.createDiv("as-skill-meta"),c=3;for(let d of l.slice(0,c)){let p=t.customTags.includes(d);O.createSpan({cls:`as-conv-tag ${p?"as-conv-tag-custom":""}`,text:d})}l.length>c&&O.createSpan({cls:"as-conv-tag as-conv-tag-more",text:`+${l.length-c}`})}s.addEventListener("click",()=>{this.selectedUuid=t.uuid,this.onSelect(t)})}};var z=require("obsidian"),Ne=require("fs"),dt=require("path");function Qs(a){return a?new Date(a).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):""}function Qc(a){return a.replace(/[<>:"/\\|?*]/g,"").replace(/\.{2,}/g,"").replace(/\s+/g,"-").slice(0,80)}function Pn(a,e){let t=a.firstTimestamp?new Date(a.firstTimestamp).toISOString().slice(0,10):"unknown-date",s=Qc(a.title.slice(0,60));return`${e}/Claude Sessions/${t}-${s}.md`}function yn(a){let{selectedMessages:e,conversation:t}=a,s=[...t.tags,...t.customTags],i=s.map(n=>`"${n}"`).join(", "),r=[];if(r.push("---"),r.push(`tags: [claude-session, ${i}]`),r.push(`session: ${t.uuid}`),r.push(`project: ${t.project}`),r.push(`date: ${t.firstTimestamp?new Date(t.firstTimestamp).toISOString().slice(0,10):"unknown"}`),r.push(`messages: ${t.messageCount}`),r.push("---"),r.push(""),r.push(`# ${t.title.slice(0,100)}`),r.push(""),r.push("## Context"),r.push(`- **Project:** ${t.project}`),r.push(`- **Started:** ${Qs(t.firstTimestamp)}`),r.push(`- **Last activity:** ${Qs(t.lastTimestamp)}`),r.push(`- **Messages:** ${t.messageCount}`),s.length>0&&r.push(`- **Tags:** ${s.map(n=>`\`${n}\``).join(" ")}`),r.push(""),e.length>0){r.push("## Key Snippets"),r.push("");for(let n of e){let o=n.role==="human"?"You":"Claude",l=Qs(n.timestamp);r.push(`### ${o} ${l?`(${l})`:""}`),r.push(""),n.role==="human"?r.push(`> ${n.text.replace(/\n/g,` |
| 27 | `)}function Sc(a){return a?new Date(a).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):""}var Jt=class{containerEl;store;app;vaultPath;currentItem=null;selectedMessages=new Set;visibleCount=20;renderComponent=new z.Component;constructor(e,t,s,i){this.containerEl=e,this.store=t,this.app=s,this.vaultPath=i}show(e){this.currentItem=e,this.selectedMessages.clear(),this.visibleCount=20,this.render()}clear(){this.currentItem=null,this.containerEl.empty(),this.containerEl.addClass("as-detail");let e=this.containerEl.createDiv("as-detail-empty");(0,z.setIcon)(e.createDiv("as-detail-empty-icon"),"message-circle"),e.createDiv({text:"Select a conversation to view"})}render(){this.containerEl.empty(),this.containerEl.addClass("as-detail");let e=this.currentItem;if(!e)return this.clear();this.renderToolbar(e),this.renderBody(e)}renderToolbar(e){let t=this.containerEl.createDiv("as-detail-toolbar"),s=t.createDiv("as-toolbar-top"),i=s.createDiv("as-toolbar-left"),r=e.title.length>100?e.title.slice(0,100)+"...":e.title;i.createSpan({cls:"as-detail-title",text:r});let n=s.createDiv("as-toolbar-right"),o=n.createEl("button",{cls:"as-toolbar-btn",attr:{"aria-label":"Toggle favorite"}});(0,z.setIcon)(o,e.isFavorite?"star":"star-off"),o.addEventListener("click",()=>{this.store.toggleFavorite(e.uuid),this.render()});let l=n.createEl("button",{cls:"as-toolbar-btn",attr:{"aria-label":"Copy resume command"}});(0,z.setIcon)(l,"terminal"),l.addEventListener("click",()=>{navigator.clipboard.writeText(`claude --resume ${e.uuid}`),new z.Notice("Resume command copied!",3e3)});let O=n.createEl("button",{cls:"as-toolbar-btn as-toolbar-btn-primary",attr:{"aria-label":"Save to vault"}});(0,z.setIcon)(O,"download"),O.addEventListener("click",()=>this.saveToVault(e));let c=t.createDiv("as-detail-meta-bar");c.createSpan({cls:"as-meta-item",text:e.project}),c.createSpan({cls:"as-meta-item",text:`${e.messageCount} messages`}),e.firstTimestamp&&c.createSpan({cls:"as-meta-item",text:new Date(e.firstTimestamp).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})});let d=[...e.tags,...e.customTags];if(d.length>0){let p=t.createDiv("as-conv-detail-tags");for(let g of d){let f=e.customTags.includes(g),w=p.createSpan({cls:`as-conv-tag ${f?"as-conv-tag-custom":""}`,text:g});if(f){let P=w.createSpan("as-conv-tag-remove");(0,z.setIcon)(P,"x"),P.addEventListener("click",Z=>{Z.stopPropagation(),this.store.removeCustomTag(e.uuid,g),this.render()})}}let u=p.createSpan("as-conv-tag as-conv-tag-add");(0,z.setIcon)(u,"plus"),u.addEventListener("click",()=>this.promptAddTag(e))}}renderBody(e){let t=this.containerEl.createDiv("as-detail-body");if(this.selectedMessages.size>0){let l=t.createDiv("as-conv-selection-bar");l.createSpan({text:`${this.selectedMessages.size} message${this.selectedMessages.size>1?"s":""} selected`}),l.createEl("button",{cls:"as-conv-save-selected-btn",text:"Save selected to vault"}).addEventListener("click",()=>this.saveToVault(e))}let s=20,i=e.messages.length,r=e.messages.slice(0,this.visibleCount);for(let l=0;l<r.length;l++)this.renderMessage(t,r[l],l);if(this.visibleCount<i){let l=i-this.visibleCount,O=Math.min(s,l),c=t.createDiv("as-conv-show-more");c.createEl("button",{text:`Show next ${O} messages`,cls:"as-conv-show-more-btn"}).addEventListener("click",()=>{this.visibleCount+=s,this.render()}),c.createEl("button",{text:`Show all ${i} messages`,cls:"as-conv-show-all-btn"}).addEventListener("click",()=>{this.visibleCount=i,this.render()})}let n=t.createDiv("as-conv-resume-section");n.createDiv({cls:"as-section-title",text:"Resume this conversation"}),n.createEl("code",{cls:"as-conv-resume-cmd",text:`claude --resume ${e.uuid}`}).addEventListener("click",()=>{navigator.clipboard.writeText(`claude --resume ${e.uuid}`),new z.Notice("Copied!",2e3)})}renderMessage(e,t,s){let i=t.role==="human",r=e.createDiv(`as-conv-msg ${i?"as-conv-msg-human":"as-conv-msg-assistant"}`);this.selectedMessages.has(s)&&r.addClass("as-conv-msg-selected");let n=r.createDiv("as-conv-msg-header"),o=n.createSpan("as-conv-msg-role-icon");(0,z.setIcon)(o,i?"user":"bot"),n.createSpan({cls:"as-conv-msg-role",text:i?"You":"Claude"}),t.timestamp&&n.createSpan({cls:"as-conv-msg-time",text:Sc(t.timestamp)});let l=n.createSpan("as-conv-msg-select");(0,z.setIcon)(l,this.selectedMessages.has(s)?"check-square":"square"),l.setAttribute("aria-label","Select message for export"),l.addEventListener("click",d=>{d.stopPropagation(),this.selectedMessages.has(s)?this.selectedMessages.delete(s):this.selectedMessages.add(s),this.render()});let O=r.createDiv("as-conv-msg-content"),c=t.text.length>2e3&&!i?t.text.slice(0,2e3)+` |