import{FD as n,GD as Fq,Vl as T,Wl as Nq,Zl as l,_l as Iq,ii as $,jk as c,kk as Mq,ni as a,yN as Tq}from"./cli-0.5.3-jbzr8k4s.mjs";import"./cli-0.5.3-me9jkw92.mjs";import"./cli-0.5.3-bqmztzjc.mjs";import"./cli-0.5.3-ytqxzjff.mjs";import"./cli-0.5.3-h6n812td.mjs";import"./cli-0.5.3-hg8c6qbh.mjs";import"./cli-0.5.3-39jr2yrx.mjs";import"./cli-0.5.3-42e2paz8.mjs";import"./cli-0.5.3-mn45xfck.mjs";import"./cli-0.5.3-m884a3pk.mjs";import"./cli-0.5.3-4f9xxrem.mjs";import"./cli-0.5.3-gr8nsa2k.mjs";import"./cli-0.5.3-yj9nbd9d.mjs";import"./cli-0.5.3-55kd38ff.mjs";import"./cli-0.5.3-e6bjcfwg.mjs";import"./cli-0.5.3-4dbxtwh3.mjs";import"./cli-0.5.3-m0kfmb79.mjs";import"./cli-0.5.3-8zq9vdtg.mjs";import"./cli-0.5.3-vmx7agj7.mjs";import"./cli-0.5.3-h8xs2818.mjs";import"./cli-0.5.3-wcx7cnw5.mjs";import"./cli-0.5.3-9zbakvbf.mjs";import{VU as s,WU as vq}from"./cli-0.5.3-hx550gz2.mjs";import{IW as i,KW as u,jV as d,nX as Hq,oV as Yq,pV as Gq}from"./cli-0.5.3-842pf3t4.mjs";import"./cli-0.5.3-wxead1ct.mjs";import"./cli-0.5.3-s1hz35ye.mjs";import"./cli-0.5.3-g0svn6bx.mjs";import"./cli-0.5.3-sfdh3pkx.mjs";import"./cli-0.5.3-d8tjnxcj.mjs";import"./cli-0.5.3-6zfw1732.mjs";import"./cli-0.5.3-ptjdgcsy.mjs";import"./cli-0.5.3-tp3jye12.mjs";import{NY as I,OY as h,PY as k}from"./cli-0.5.3-vqmxwet2.mjs";import{QY as zq}from"./cli-0.5.3-rch86nhn.mjs";import"./cli-0.5.3-zg2apr51.mjs";import"./cli-0.5.3-ngnshpb7.mjs";import"./cli-0.5.3-e58xste9.mjs";import"./cli-0.5.3-6163zevg.mjs";import"./cli-0.5.3-jmkkd5ph.mjs";import"./cli-0.5.3-1vt6twff.mjs";import"./cli-0.5.3-7017ez65.mjs";import"./cli-0.5.3-ea94acj4.mjs";import"./cli-0.5.3-3k22nqvy.mjs";import"./cli-0.5.3-63q4g3zt.mjs";import"./cli-0.5.3-dyhbm5kp.mjs";import"./cli-0.5.3-vpcrbd8n.mjs";import"./cli-0.5.3-jdw3ajfv.mjs";import"./cli-0.5.3-qg4a557t.mjs";import{Caa as r,Faa as _,Yaa as Xq,Z_ as b,d$ as Uq}from"./cli-0.5.3-t65dek0m.mjs";import"./cli-0.5.3-kavpx97n.mjs";import{Nca as f,Oca as Zq}from"./cli-0.5.3-9bdwhdys.mjs";import"./cli-0.5.3-ttc72eq3.mjs";import"./cli-0.5.3-g75gdzrp.mjs";import"./cli-0.5.3-1rg2r7n7.mjs";import"./cli-0.5.3-6j2jk6dt.mjs";import"./cli-0.5.3-66650sba.mjs";import{Lea as P,Nea as Vq}from"./cli-0.5.3-9vh3vpap.mjs";import"./cli-0.5.3-n3cxyxpg.mjs";import"./cli-0.5.3-kbvzmaax.mjs";import"./cli-0.5.3-7wdgps7z.mjs";import"./cli-0.5.3-c8bcrqa4.mjs";import"./cli-0.5.3-qrvd6cmy.mjs";import"./cli-0.5.3-2dk1sk8w.mjs";import{Tma as g,Xma as Qq}from"./cli-0.5.3-0df3r78b.mjs";import{mkdir as Kq,writeFile as Rq}from"fs/promises";import{tmpdir as Oq}from"os";import{join as t}from"path";function Pq(Q){let q=c.lexer($(Q)),V=[];for(let J of q)if(J.type==="code"){let Z=J;V.push({code:Z.text,lang:Z.lang})}return V}function wq(Q){let q=[];for(let V=Q.length-1;V>=0&&q.length<Wq;V--){let J=Q[V];if(J?.type!=="assistant"||J.isApiErrorMessage)continue;let Z=J.message.content;if(!Array.isArray(Z))continue;let U=a(Z,`

`);if(U)q.push(U)}return q}function yq(Q){if(Q){let q=Q.replace(/[^a-zA-Z0-9]/g,"");if(q&&q!=="plaintext")return`.${q}`}return".txt"}async function Jq(Q,q){let V=t(x,q);return await Kq(x,{recursive:!0}),await Rq(V,Q,"utf-8"),V}async function m(Q,q){let V=await d(Q);if(V)process.stdout.write(V);let J=b(Q,`
`)+1,Z=Q.length;try{let U=await Jq(Q,q);return`Copied to clipboard (${Z} characters, ${J} lines)
Also written to ${U}`}catch{return`Copied to clipboard (${Z} characters, ${J} lines)`}}function Aq(Q,q){let V=Q.split(`
`)[0]??"";if(f(V)<=q)return V;let J="",Z=0,U=q-1;for(let H of V){let G=f(H);if(Z+G>U)break;J+=H,Z+=G}return J+"…"}function pq(Q){let q=o.c(33),{fullText:V,codeBlocks:J,messageAge:Z,onDone:U}=Q,H=e.useRef("full"),G=`${V.length} chars, ${b(V,`
`)+1} lines`,M;if(q[0]!==G)M={label:"Full response",value:"full",description:G},q[0]=G,q[1]=M;else M=q[1];let z;if(q[2]!==J||q[3]!==M){let Y;if(q[5]===Symbol.for("react.memo_cache_sentinel"))Y={label:"Always copy full response",value:"always",description:"Skip this picker in the future (revert via /config)"},q[5]=Y;else Y=q[5];z=[M,...J.map(Lq),Y],q[2]=J,q[3]=M,q[4]=z}else z=q[4];let B=z,w;if(q[6]!==J||q[7]!==V)w=function(N){if(N==="full"||N==="always")return{text:V,filename:qq};let X=J[N];return{text:X.code,filename:`copy${yq(X.lang)}`,blockIndex:N}},q[6]=J,q[7]=V,q[8]=w;else w=q[8];let v=w,y;if(q[9]!==J.length||q[10]!==v||q[11]!==Z||q[12]!==U)y=async function(N){let X=v(N);if(N==="always"){if(!_().copyFullResponse)r(Eq);P("tengu_copy",{block_count:J.length,always:!0,message_age:Z});let W=await m(X.text,X.filename);U(`${W}
Preference saved. Use /config to change copyFullResponse`);return}P("tengu_copy",{selected_block:X.blockIndex,block_count:J.length,message_age:Z});let O=await m(X.text,X.filename);U(O)},q[9]=J.length,q[10]=v,q[11]=Z,q[12]=U,q[13]=y;else y=q[13];let S=y,A;if(q[14]!==J.length||q[15]!==v||q[16]!==Z||q[17]!==U){let Y=async function(X){let O=v(X);P("tengu_copy",{selected_block:O.blockIndex,block_count:J.length,message_age:Z,write_shortcut:!0});try{let W=await Jq(O.text,O.filename);U(`Written to ${W}`)}catch(W){let D=W;U(`Failed to write file: ${D instanceof Error?D.message:D}`)}};A=function(X){if(X.key==="w")X.preventDefault(),Y(H.current)},q[14]=J.length,q[15]=v,q[16]=Z,q[17]=U,q[18]=A}else A=q[18];let C=A,p;if(q[19]===Symbol.for("react.memo_cache_sentinel"))p=I(u,{dimColor:!0,children:"Select content to copy:"}),q[19]=p;else p=q[19];let E;if(q[20]===Symbol.for("react.memo_cache_sentinel"))E=(Y)=>{H.current=Y},q[20]=E;else E=q[20];let F;if(q[21]!==S)F=(Y)=>{S(Y)},q[21]=S,q[22]=F;else F=q[22];let K;if(q[23]!==U)K=()=>{U("Copy cancelled",{display:"system"})},q[23]=U,q[24]=K;else K=q[24];let R;if(q[25]!==B||q[26]!==K||q[27]!==F)R=I(n,{options:B,hideIndexes:!1,onFocus:E,onChange:F,onCancel:K}),q[25]=B,q[26]=K,q[27]=F,q[28]=R;else R=q[28];let L;if(q[29]===Symbol.for("react.memo_cache_sentinel"))L=I(u,{dimColor:!0,children:h(l,{children:[I(T,{shortcut:"enter",action:"copy"}),I(T,{shortcut:"w",action:"write to file"}),I(T,{shortcut:"esc",action:"cancel"})]})}),q[29]=L;else L=q[29];let j;if(q[30]!==C||q[31]!==R)j=I(s,{children:h(i,{flexDirection:"column",gap:1,tabIndex:0,autoFocus:!0,onKeyDown:C,children:[p,R,L]})}),q[30]=C,q[31]=R,q[32]=j;else j=q[32];return j}function Eq(Q){return{...Q,copyFullResponse:!0}}function Lq(Q,q){let V=b(Q.code,`
`)+1;return{label:Aq(Q.code,60),value:q,description:[Q.lang,V>1?`${V} lines`:void 0].filter(Boolean).join(", ")||void 0}}var o,e,x,qq="response.md",Wq=20,aq=async(Q,q,V)=>{let J=wq(q.messages);if(J.length===0)return Q("No assistant message to copy"),null;let Z=0,U=V?.trim();if(U){let z=Number(U);if(!Number.isInteger(z)||z<1)return Q(`Usage: /copy [N] where N is 1 (latest), 2, 3, … Got: ${U}`),null;if(z>J.length)return Q(`Only ${J.length} assistant ${J.length===1?"message":"messages"} available to copy`),null;Z=z-1}let H=J[Z],G=Pq(H),M=_();if(G.length===0||M.copyFullResponse){P("tengu_copy",{always:M.copyFullResponse,block_count:G.length,message_age:Z});let z=await m(H,qq);return Q(z),null}return I(pq,{fullText:H,codeBlocks:G,messageAge:Z,onDone:Q})};var jq=Qq(()=>{Mq();Fq();Iq();Nq();vq();Zq();Yq();Hq();Vq();Xq();Tq();Uq();k();o=g(Gq(),1),e=g(zq(),1),x=t(Oq(),"claude")});jq();export{yq as fileExtension,wq as collectRecentAssistantTexts,aq as call};
