import{$l as l,AN as Tq,HD as n,ID as Fq,Xl as T,Yl as Nq,am as Iq,ji as $,lk as c,mk as Mq,oi as a}from"./cli-0.5.4-k5fz4zd3.mjs";import"./cli-0.5.4-wbqf44ym.mjs";import"./cli-0.5.4-9ewg9gfs.mjs";import"./cli-0.5.4-we3mspgg.mjs";import"./cli-0.5.4-jzhazry0.mjs";import"./cli-0.5.4-82sw3hrw.mjs";import"./cli-0.5.4-31v143kt.mjs";import"./cli-0.5.4-1cy7wd6s.mjs";import"./cli-0.5.4-5e0pk96f.mjs";import"./cli-0.5.4-z154a7bp.mjs";import"./cli-0.5.4-ng5p0zjs.mjs";import"./cli-0.5.4-5hp7ks3t.mjs";import"./cli-0.5.4-8hdwp78f.mjs";import"./cli-0.5.4-mr9aznxx.mjs";import"./cli-0.5.4-jevfk5q7.mjs";import"./cli-0.5.4-27dzbzdy.mjs";import"./cli-0.5.4-a5bkdqqb.mjs";import"./cli-0.5.4-j2hnw539.mjs";import"./cli-0.5.4-9w59nnw4.mjs";import"./cli-0.5.4-z5d3q8kh.mjs";import"./cli-0.5.4-c0r12dqp.mjs";import"./cli-0.5.4-kqh172jk.mjs";import{XU as s,YU as vq}from"./cli-0.5.4-vv4jbgkc.mjs";import{KW as i,MW as u,lV as d,pX as Hq,qV as Yq,rV as Gq}from"./cli-0.5.4-s7k1f0wc.mjs";import"./cli-0.5.4-0h0yz2k5.mjs";import"./cli-0.5.4-942dm5q1.mjs";import"./cli-0.5.4-rcmp5h4y.mjs";import"./cli-0.5.4-xdcww3x8.mjs";import"./cli-0.5.4-fq32ny1h.mjs";import"./cli-0.5.4-h1m67ngp.mjs";import"./cli-0.5.4-49erze3e.mjs";import"./cli-0.5.4-jytjks37.mjs";import{PY as I,QY as h,RY as k}from"./cli-0.5.4-mn22gk7g.mjs";import{SY as zq}from"./cli-0.5.4-5t3jj85n.mjs";import"./cli-0.5.4-5shjmmkz.mjs";import"./cli-0.5.4-zb412kkm.mjs";import"./cli-0.5.4-prfn3sxd.mjs";import"./cli-0.5.4-6xmgebmk.mjs";import"./cli-0.5.4-vjgejcrz.mjs";import"./cli-0.5.4-jqt00ywx.mjs";import"./cli-0.5.4-9e7rkd8e.mjs";import"./cli-0.5.4-jp4wtw87.mjs";import"./cli-0.5.4-hambpq58.mjs";import"./cli-0.5.4-syvgmg9g.mjs";import"./cli-0.5.4-w8ttefr5.mjs";import"./cli-0.5.4-j7kkqxv6.mjs";import"./cli-0.5.4-qrwczx7j.mjs";import"./cli-0.5.4-v2z6p9td.mjs";import{$_ as b,Eaa as r,Haa as _,_aa as Xq,f$ as Uq}from"./cli-0.5.4-cbq01zg3.mjs";import"./cli-0.5.4-37v5fhf1.mjs";import{Pca as f,Qca as Zq}from"./cli-0.5.4-7grzwf6q.mjs";import"./cli-0.5.4-9qmek5dq.mjs";import"./cli-0.5.4-9c6r1fjg.mjs";import"./cli-0.5.4-2dw33ms6.mjs";import"./cli-0.5.4-x1fzfxmm.mjs";import"./cli-0.5.4-e822fzaq.mjs";import{Nea as P,Pea as Vq}from"./cli-0.5.4-09dvrzcr.mjs";import"./cli-0.5.4-end8wj9r.mjs";import"./cli-0.5.4-4x206j04.mjs";import"./cli-0.5.4-yd3rd9qt.mjs";import"./cli-0.5.4-sgcaw17t.mjs";import"./cli-0.5.4-jmc3bzbn.mjs";import"./cli-0.5.4-959vxhhb.mjs";import{Vma as g,Zma as Qq}from"./cli-0.5.4-aacw1src.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};
