@bkm016/basalt 0.1.13 → 0.1.14
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.
- package/README.md +3 -2
- package/{chunk-bng72094.js → chunk-03wzwnn6.js} +1 -1
- package/{chunk-9e8vhzy7.js → chunk-0crbhhna.js} +1 -1
- package/{chunk-h9zxqeqr.js → chunk-0rasqm8y.js} +2 -2
- package/{chunk-0x9netvr.js → chunk-1w4nh5t6.js} +1 -1
- package/{chunk-dk6fgprw.js → chunk-2eaehpp6.js} +1 -1
- package/{chunk-6sea12mw.js → chunk-30dxcr91.js} +1 -1
- package/{chunk-2zbj8ny6.js → chunk-343jsm46.js} +2 -2
- package/chunk-38g4jd6v.js +5 -0
- package/{chunk-zx75vnw8.js → chunk-39mh7h58.js} +22 -22
- package/chunk-44b9yx79.js +2 -0
- package/{chunk-r1jn77q6.js → chunk-4f6p4n7k.js} +2 -2
- package/{chunk-sgz87ht5.js → chunk-4w8j6n7z.js} +1 -1
- package/{chunk-szj85dqe.js → chunk-4yxd2kg1.js} +2 -2
- package/{chunk-bp61xdsc.js → chunk-59hg9a84.js} +1 -1
- package/{chunk-bq54argx.js → chunk-62ebm0bn.js} +1 -1
- package/{chunk-6d9r9p91.js → chunk-6ef085c1.js} +4 -4
- package/{chunk-zk91579b.js → chunk-6hx9y86d.js} +2 -2
- package/chunk-73t051r6.js +2 -0
- package/{chunk-pryvvs96.js → chunk-7mgkpn94.js} +22 -22
- package/{chunk-2q56egb8.js → chunk-81x8r8w4.js} +1 -1
- package/{chunk-rn3jwyh1.js → chunk-8np9b2y8.js} +2 -2
- package/{chunk-1q6e3mj7.js → chunk-9ew8cap5.js} +2 -2
- package/chunk-9v3b7jjv.js +2 -0
- package/{chunk-tjg0gcks.js → chunk-9vam83py.js} +1 -1
- package/{chunk-ct77cdg7.js → chunk-9xjecw6c.js} +1 -1
- package/{chunk-8cgz8xv7.js → chunk-b2wpj81x.js} +2 -2
- package/{chunk-302n9g7p.js → chunk-bjvv3403.js} +1 -1
- package/{chunk-tfhze1vq.js → chunk-c8g9jjqs.js} +2 -2
- package/{chunk-0a7ft50x.js → chunk-cs91rmbf.js} +8 -8
- package/{chunk-gpnqmtbk.js → chunk-edcf97ka.js} +1 -1
- package/{chunk-74wwdx3y.js → chunk-en7z6ne5.js} +2 -2
- package/{chunk-f0h2bv11.js → chunk-evnqkyt7.js} +10 -10
- package/{chunk-4rnmxtpx.js → chunk-ge38dhv9.js} +2 -2
- package/chunk-hggam3je.js +2 -0
- package/{chunk-mf04h0yy.js → chunk-k38jaz6c.js} +4 -4
- package/{chunk-jjtt9aq8.js → chunk-kcn05erf.js} +3 -3
- package/{chunk-y23dpz5e.js → chunk-m5km74eq.js} +2 -2
- package/{chunk-095adzn5.js → chunk-mfb3dgs8.js} +2 -2
- package/{chunk-0nedq669.js → chunk-mh4bjtfs.js} +3 -3
- package/{chunk-yy1f9jxc.js → chunk-nysatg77.js} +429 -312
- package/{chunk-bja7p3em.js → chunk-p886jr17.js} +13 -13
- package/{chunk-xvm0y99b.js → chunk-pdt65s31.js} +2 -2
- package/{chunk-ymg7mtcx.js → chunk-pjgt1bdx.js} +2 -2
- package/{chunk-959z9efn.js → chunk-pyj6avd5.js} +2 -2
- package/chunk-qd2enpr2.js +3 -0
- package/{chunk-tnj2kqb8.js → chunk-qe76naq9.js} +1 -1
- package/{chunk-z0c8ek0j.js → chunk-qjnx4fsn.js} +2 -2
- package/{chunk-2tf7qfbx.js → chunk-qs161f2q.js} +2 -2
- package/{chunk-nbjnwd54.js → chunk-rghqprav.js} +1 -1
- package/{chunk-7chv3knf.js → chunk-t33bm5aa.js} +1 -1
- package/chunk-vd5332ps.js +2 -0
- package/{chunk-22az84sh.js → chunk-w55cnj0f.js} +2 -2
- package/{chunk-4k9t9jvx.js → chunk-wnd3y4c0.js} +1 -1
- package/{chunk-snz19yc2.js → chunk-xafx1p7z.js} +2 -2
- package/{chunk-15ve3nmv.js → chunk-xf7zw32f.js} +12 -12
- package/chunk-xk3t5ves.js +482 -0
- package/{chunk-kbpbrr11.js → chunk-xq74x4gc.js} +2 -2
- package/{chunk-mdkfm1ak.js → chunk-y0274xr2.js} +3 -3
- package/{chunk-y4pvhes1.js → chunk-z9p6s986.js} +6 -6
- package/{chunk-41das1ty.js → chunk-zcwz44db.js} +1 -1
- package/{chunk-77c2cqp2.js → chunk-zhyzhekt.js} +1 -1
- package/compiled.js +12 -12
- package/package.json +1 -1
- package/ui-test-worker.js +51 -51
- package/web/chunk-15g9pnzy.js +1 -0
- package/web/{chunk-16jc5m0f.js → chunk-17wwzrp4.js} +1 -1
- package/web/chunk-19tkjg9w.js +1 -0
- package/web/chunk-1y387f45.js +1 -0
- package/web/{chunk-mykrm8ba.js → chunk-25sn840r.js} +2 -2
- package/web/chunk-26sp6jre.js +1 -0
- package/web/{chunk-wpxtkxjt.js → chunk-2c7kxr4v.js} +2 -2
- package/web/{chunk-et1rsgmp.js → chunk-2gsf89vs.js} +2 -2
- package/web/{chunk-jpem3qvs.js → chunk-2gvz70wr.js} +5 -5
- package/web/chunk-2s3my1jn.js +1 -0
- package/web/{chunk-yn4t5s9r.js → chunk-32dh0hft.js} +1 -1
- package/web/{chunk-5cwxhhae.js → chunk-3haw3wcw.js} +2 -2
- package/web/{chunk-t82sngk9.js → chunk-3rxhs9qm.js} +7 -7
- package/web/chunk-410qdvmv.js +1 -0
- package/web/chunk-4qehf2xx.js +2 -0
- package/web/{chunk-b9jry5a3.js → chunk-51b8n5e1.js} +1 -1
- package/web/{chunk-xe121vg7.js → chunk-54mgncq3.js} +1 -1
- package/web/{chunk-ze6azq7z.js → chunk-59g6rrew.js} +4 -4
- package/web/{chunk-h6k1x096.js → chunk-5d9veaef.js} +2 -2
- package/web/chunk-6481wt3t.js +1 -0
- package/web/chunk-6ehecat3.js +1 -0
- package/web/chunk-6m8hq6ph.js +1 -0
- package/web/chunk-73941p08.js +1 -0
- package/web/{chunk-0jbf73pr.js → chunk-783s8jds.js} +3 -3
- package/web/{chunk-qbmtah1x.js → chunk-78m018ya.js} +1 -1
- package/web/{chunk-3p9w8sg5.js → chunk-797bh7z6.js} +3 -3
- package/web/{chunk-1xm9x7d6.js → chunk-7hpqrfgg.js} +2 -2
- package/web/{chunk-zxrbbbtp.js → chunk-7kywe73f.js} +2 -2
- package/web/chunk-7qq1ypvj.js +1 -0
- package/web/{chunk-awkdw9rw.js → chunk-7wzszsf5.js} +2 -2
- package/web/{chunk-c57f714b.js → chunk-7zfqppsx.js} +2 -2
- package/web/{chunk-jh33m2mq.js → chunk-8sr9w61v.js} +3 -3
- package/web/{chunk-4py9sndw.js → chunk-8ttp8fh3.js} +6 -6
- package/web/chunk-8zg89764.js +1 -0
- package/web/{chunk-ct7z7bea.js → chunk-988e9wx6.js} +3 -3
- package/web/{chunk-vk7ch6fh.js → chunk-9h0f3gar.js} +2 -2
- package/web/{chunk-p6e2vr51.js → chunk-9vr6hpmk.js} +6 -6
- package/web/chunk-9vrp249f.js +2 -0
- package/web/{chunk-eqxy6535.js → chunk-a205cj09.js} +2 -2
- package/web/{chunk-980zhtht.js → chunk-ahn2frbt.js} +1 -1
- package/web/{chunk-xvm66b7v.js → chunk-aknsydan.js} +4 -4
- package/web/chunk-at0xtfhy.js +1 -0
- package/web/chunk-bahccwb9.js +1 -0
- package/web/{chunk-w4tfad6c.js → chunk-c7fqrs8j.js} +1 -1
- package/web/{chunk-zqcg6frm.js → chunk-d3hyf9yd.js} +1 -1
- package/web/chunk-dcegr80c.js +1 -0
- package/web/{chunk-v4cqc9f9.js → chunk-dwtatme7.js} +1 -1
- package/web/{chunk-cr04125j.js → chunk-ex8rmqn1.js} +12 -12
- package/web/{chunk-jh3k7xex.js → chunk-faskbfjf.js} +3 -3
- package/web/{chunk-zb61mf0a.js → chunk-feanedhx.js} +1 -1
- package/web/{chunk-xk1vkcj4.js → chunk-ffywf5w5.js} +4 -4
- package/web/chunk-fx3d48e6.js +1 -0
- package/web/{chunk-3jjksgze.js → chunk-g3szt4c4.js} +1 -1
- package/web/chunk-g7bcntpm.js +1 -0
- package/web/chunk-gr1tjqbd.js +1 -0
- package/web/{chunk-2sef2wft.js → chunk-hbwxtbq3.js} +2 -2
- package/web/{chunk-6e87m0nm.js → chunk-hdtvrh0f.js} +2 -2
- package/web/chunk-j031r08w.js +1 -0
- package/web/{chunk-5ym5ffd5.js → chunk-j6wcszxq.js} +2 -2
- package/web/{chunk-jccz14ye.js → chunk-jdx7qp2w.js} +2 -2
- package/web/chunk-jge7nn3s.js +1 -0
- package/web/chunk-jy8zat04.js +1 -0
- package/web/{chunk-0rhx7qb8.js → chunk-jzge034r.js} +1 -1
- package/web/{chunk-qq6m2my8.js → chunk-k4qrqmdk.js} +2 -2
- package/web/chunk-k8s7kye3.js +1 -0
- package/web/{chunk-ke8dffnk.js → chunk-k9fyqrhp.js} +2 -2
- package/web/chunk-k9zn1n6d.js +1 -0
- package/web/chunk-kg3tksv7.js +1 -0
- package/web/chunk-kk5rw81s.js +2 -0
- package/web/{chunk-y9waq403.js → chunk-kpmd893m.js} +2 -2
- package/web/chunk-md9j949p.js +1 -0
- package/web/{chunk-e57h40qa.js → chunk-mn2wv9ye.js} +2 -2
- package/web/{chunk-14vmr99v.js → chunk-mv7jgmnb.js} +3 -3
- package/web/{chunk-qq06x2ce.js → chunk-mvm68qtt.js} +2 -2
- package/web/chunk-nbcpbqq4.js +1 -0
- package/web/{chunk-6rsr2cyw.js → chunk-nfpff7yf.js} +8 -8
- package/web/chunk-nk7jkpam.js +1 -0
- package/web/chunk-nmvt1rn3.js +1 -0
- package/web/{chunk-3ctmehg4.js → chunk-npw1s1h2.js} +1 -1
- package/web/chunk-nzzxv84v.js +8 -0
- package/web/{chunk-a9er7a7c.js → chunk-p4pqtybm.js} +19 -19
- package/web/{chunk-ba9qy65y.js → chunk-p79c7aak.js} +1 -1
- package/web/{chunk-frnh4zqf.js → chunk-pafw34vg.js} +2 -2
- package/web/{chunk-ct90yf8z.js → chunk-pf65cank.js} +2 -2
- package/web/{chunk-g0be12na.js → chunk-ppa21760.js} +1 -1
- package/web/{chunk-g7hqafb8.js → chunk-ptpkv0te.js} +1 -1
- package/web/{chunk-ddg8rz82.js → chunk-qcdej581.js} +1 -1
- package/web/{chunk-xxmaqj1m.js → chunk-qftcdcps.js} +2 -2
- package/web/{chunk-eqndhs21.js → chunk-qv1w36ja.js} +2 -2
- package/web/{chunk-mnf4ngj9.js → chunk-r8p741qj.js} +2 -2
- package/web/chunk-rcexbkjj.js +1 -0
- package/web/{chunk-w28dn4dw.js → chunk-rjakb64x.js} +1 -1
- package/web/{chunk-k0cg4n2k.js → chunk-s0xy00v5.js} +2 -2
- package/web/{chunk-cr05dttm.js → chunk-s2ps0ct5.js} +1 -1
- package/web/{chunk-xcyqd7cn.js → chunk-s45g7fp6.js} +1 -1
- package/web/{chunk-h1k2kqbs.js → chunk-s70aj1v5.js} +4 -4
- package/web/chunk-say8bvkc.js +1 -0
- package/web/{chunk-qh62nkem.js → chunk-sd3cdqcm.js} +2 -2
- package/web/{chunk-a6g3nqp0.js → chunk-sgkevxdf.js} +2 -2
- package/web/chunk-sjffrcq9.js +1 -0
- package/web/{chunk-2y1avvqj.js → chunk-snaepr87.js} +3 -3
- package/web/{chunk-p7pa02k9.js → chunk-tdzh6nsz.js} +2 -2
- package/web/{chunk-ga07tv37.js → chunk-tjd8qp87.js} +1 -1
- package/web/chunk-tncc9e57.js +1 -0
- package/web/{chunk-ve8gy05p.js → chunk-ty2rmwda.js} +92 -92
- package/web/chunk-v22hp18w.js +1 -0
- package/web/{chunk-zh7193nq.js → chunk-ve9dz857.js} +2 -2
- package/web/{chunk-s935z8er.js → chunk-vg346gxc.js} +2 -2
- package/web/{chunk-b4gcpsbg.js → chunk-vpegzgzb.js} +5 -5
- package/web/{chunk-pzg25qqe.js → chunk-vvvd3grf.js} +2 -2
- package/web/{chunk-ss96cz1f.js → chunk-vwv6pqy7.js} +1 -1
- package/web/{chunk-sq75q603.js → chunk-vxm7n7w6.js} +6 -6
- package/web/{chunk-qb8mbptk.js → chunk-w5q7978e.js} +1 -1
- package/web/{chunk-97t3ngqf.js → chunk-we4mhfmq.js} +7 -7
- package/web/{chunk-20jxvmbw.js → chunk-wfgrdabk.js} +1 -1
- package/web/{chunk-3wpxymxa.js → chunk-wkhj4hsw.js} +3 -3
- package/web/{chunk-q4vy3dkk.js → chunk-wspk8qbg.js} +2 -2
- package/web/{chunk-9wz8jne3.js → chunk-xf1hnpme.js} +1 -1
- package/web/{chunk-fnvgdvrg.js → chunk-xhqvzmfj.js} +4 -4
- package/web/chunk-xq70hgre.js +1 -0
- package/web/chunk-xtss82z2.js +1 -0
- package/web/{chunk-8j4tzff5.js → chunk-y3tb6410.js} +3 -3
- package/web/{chunk-mkxeenph.js → chunk-y6mcxfm0.js} +1 -1
- package/web/{chunk-0rvwj2wh.js → chunk-ya696bfe.js} +2 -2
- package/web/{chunk-2x7vmhm0.js → chunk-ysw5fs45.js} +3 -3
- package/web/{chunk-atppv8fk.js → chunk-zkq1xknc.js} +1 -1
- package/web/chunk-zkv025s5.js +1 -0
- package/web/{chunk-dmha2y9c.js → chunk-zpzvz973.js} +18 -18
- package/web/{chunk-c6m4vfn5.js → chunk-zsat72qd.js} +68 -68
- package/web/{chunk-9k7fkx80.js → chunk-zx3h7v72.js} +1 -1
- package/web/index.html +1 -1
- package/chunk-1dbfmejf.js +0 -2
- package/chunk-4w9zqv0k.js +0 -2
- package/chunk-6f4ht2hw.js +0 -2
- package/chunk-edbq461k.js +0 -5
- package/chunk-m71pj3g1.js +0 -2
- package/chunk-n22vd4at.js +0 -2
- package/chunk-sgrrxsnz.js +0 -482
- package/chunk-ydzag81d.js +0 -3
- package/web/chunk-12qf1r6m.js +0 -1
- package/web/chunk-1m6fx2h7.js +0 -2
- package/web/chunk-2n5xbnrt.js +0 -1
- package/web/chunk-36s08nye.js +0 -1
- package/web/chunk-4swea9sn.js +0 -1
- package/web/chunk-4zz5a483.js +0 -1
- package/web/chunk-6y55gk1n.js +0 -1
- package/web/chunk-7aep7k4v.js +0 -1
- package/web/chunk-8tgavnwx.js +0 -1
- package/web/chunk-a00vg115.js +0 -1
- package/web/chunk-a4gbxnm3.js +0 -1
- package/web/chunk-bq6mep6p.js +0 -2
- package/web/chunk-bwy3e58v.js +0 -1
- package/web/chunk-de29pe57.js +0 -1
- package/web/chunk-eeesa5q1.js +0 -1
- package/web/chunk-f7jpakwh.js +0 -1
- package/web/chunk-fp62avjh.js +0 -1
- package/web/chunk-gr163fex.js +0 -1
- package/web/chunk-gx340asc.js +0 -1
- package/web/chunk-gxtz10wf.js +0 -1
- package/web/chunk-k9qnvx86.js +0 -2
- package/web/chunk-kcnj0gan.js +0 -1
- package/web/chunk-kpp5xqsb.js +0 -1
- package/web/chunk-m33yted6.js +0 -1
- package/web/chunk-me5jqqn6.js +0 -1
- package/web/chunk-mzqqwbmr.js +0 -1
- package/web/chunk-mzzaet63.js +0 -1
- package/web/chunk-q34as3v6.js +0 -1
- package/web/chunk-q6c8p73w.js +0 -1
- package/web/chunk-qn93we3a.js +0 -1
- package/web/chunk-r1f1egve.js +0 -1
- package/web/chunk-tt9410zw.js +0 -8
- package/web/chunk-vg1ebkce.js +0 -1
- package/web/chunk-vnt34mkb.js +0 -1
- package/web/chunk-xh4xn1az.js +0 -1
- package/web/chunk-xrk5ewsn.js +0 -1
- package/web/chunk-xzwxcxb4.js +0 -1
- package/web/chunk-ydhnkws0.js +0 -1
- package/web/chunk-ys2tns0p.js +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{S}from"./chunk-
|
|
3
|
-
${a}`;s.push({type:"error",reason:r.stopReason,error:r}),s.end()}})(),s},yt=(e,n,t)=>{ae(e.provider,t?.apiKey,t?.headers);let s={...X(e,n,t,t?.apiKey),toolChoice:t?.toolChoice},u=t?.reasoning?
|
|
2
|
+
import{S}from"./chunk-xf7zw32f.js";import{G}from"./chunk-38g4jd6v.js";import{_}from"./chunk-ge38dhv9.js";import{Tt,Pt}from"./chunk-xafx1p7z.js";import{Ke}from"./chunk-86yr2c0r.js";import{rt}from"./chunk-06s9pr82.js";import{oe}from"./chunk-pyj6avd5.js";import{ue}from"./chunk-vqm94hz2.js";import{be,Hr,qr,fe,nr,Re,dt,X,Wo,Ho,Se}from"./chunk-qs161f2q.js";import{w}from"./chunk-b516bp7n.js";import{V,J}from"./chunk-8np9b2y8.js";import{Q}from"./chunk-tfhp09nj.js";import{W,De,se,xe,ve,Y,K}from"./chunk-z9p6s986.js";import{U}from"./chunk-4yxd2kg1.js";function ee(e,n){if(!e)return!1;let t=n.toLowerCase();for(let[s,u]of Object.entries(e))if(s.toLowerCase()===t&&u!==null&&u.trim().length>0)return!0;return!1}function ae(e,n,t){if(n)return n;if(ee(t,"authorization")||ee(t,"cf-aig-authorization"))return"unused";throw Error(`No API key for provider: ${e}`)}function ye(e){for(let n of e){if(n.role==="toolResult")return!0;if(n.role==="assistant"){if(n.content.some((t)=>t.type==="toolCall"))return!0}}return!1}function te(e){return e.type==="text"}function ke(e){return e.type==="thinking"}function Te(e){return e.type==="toolCall"}function _e(e){return e.type==="image"}function Ae(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function Ce(e){return(e.id===void 0||e.id===null||typeof e.id==="string")&&(e.format===void 0||typeof e.format==="string")&&(e.index===void 0||typeof e.index==="number")}function N(e){if(!Ae(e)||!Ce(e))return!1;switch(e.type){case"reasoning.summary":return typeof e.summary==="string";case"reasoning.encrypted":return typeof e.data==="string";case"reasoning.text":return typeof e.text==="string"&&(e.signature===void 0||e.signature===null||typeof e.signature==="string");default:return!1}}function Me(e){if(!e)return;try{let n=JSON.parse(e);return Array.isArray(n)&&n.length>0&&n.every(N)?n:void 0}catch{return}}function Ie(e){if(!e)return;try{let n=JSON.parse(e);return N(n)&&n.type==="reasoning.encrypted"&&typeof n.id==="string"&&n.id.length>0&&n.data.length>0?n:void 0}catch{return}}function ne(e,n){e.id??=n.id,e.format||=n.format,e.index??=n.index}function Ee(e,n){let t=e[e.length-1];if(n.type==="reasoning.text"&&t?.type==="reasoning.text"){t.text+=n.text,t.signature||=n.signature,ne(t,n);return}if(n.type==="reasoning.summary"&&t?.type==="reasoning.summary"){t.summary+=n.summary,ne(t,n);return}e.push({...n})}var we=["reasoning","reasoning_content","reasoning_text"];function Fe(e){return we.includes(e)}function le(e,n){if(e)return e;if(_("PI_CACHE_RETENTION",n)==="long")return"long";return"short"}var Oe=(e,n,t)=>{let s=new U,u=se(n,D(e).supportsMidConvoSystemMessages);return(async()=>{let r={role:"assistant",content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:"pending",timestamp:Date.now()},k,g=(R)=>{if(k!==void 0)R.thinkingSignature=JSON.stringify(k)};try{let R=ae(e.provider,t?.apiKey,t?.headers),a=D(e),T=Re(xe(u.messages),a.supportsOpenAIGrammarTools),p=le(t?.cacheRetention,t?.env),d=p==="none"?void 0:t?.sessionId,o=Be(e,u,R,t?.headers,t?.fetch,d,a),f=Pe(e,u,t,a,p,T),h=await t?.onPayload?.(f,e);if(h!==void 0)f=h;let C={...t?.signal?{signal:t.signal}:{},...t?.timeoutMs!==void 0?{timeout:t.timeoutMs}:{},maxRetries:0},{data:M,response:P}=await ue(()=>o.chat.completions.create(f,C).withResponse(),{maxRetries:t?.maxRetries,maxRetryDelayMs:t?.maxRetryDelayMs,signal:t?.signal});await t?.onResponse?.({status:P.status,headers:Q(P.headers)},e),s.push({type:"start",partial:r});let O=null,F=null,A=!1,b=new Map,L=new Map,l=r.content,I=(i)=>l.indexOf(i),j=(i)=>{let c=i.customInput?.property;if(c===void 0)return"";let x=i.arguments[c];return typeof x==="string"?x:""},H=(i,c,x)=>{let m=i.customInput;if(!m)return;let E=qr(m.jsonBuffer,m.property,c,x);return i.arguments={[m.property]:c},E},ge=(i)=>{let c=I(i);if(c===-1)return;if(i.type==="text")s.push({type:"text_end",contentIndex:c,content:i.text,partial:r});else if(i.type==="thinking")g(i),s.push({type:"thinking_end",contentIndex:c,content:i.thinking,partial:r});else if(i.type==="toolCall"){if(i.customInput){let x=H(i,j(i),!0);if(x!==void 0)s.push({type:"toolcall_delta",contentIndex:c,delta:x,partial:r})}else i.arguments=G(i.partialArgs);delete i.partialArgs,delete i.customInput,delete i.streamIndex,s.push({type:"toolcall_end",contentIndex:c,toolCall:i,partial:r})}},de=()=>{if(!O)O={type:"text",text:""},l.push(O),s.push({type:"text_start",contentIndex:I(O),partial:r});return O},Z=(i)=>{if(!F)F={type:"thinking",thinking:"",thinkingSignature:i},l.push(F),s.push({type:"thinking_start",contentIndex:I(F),partial:r});return F},he=(i)=>{let c=typeof i.index==="number"?i.index:void 0,x=i.function?.name??i.custom?.name??"",m=c!==void 0?b.get(c):void 0;if(!m&&i.id)m=L.get(i.id);if(!m){let E=i.custom&&!i.function?T.get(x)??"input":void 0,B=E!==void 0;if(m={type:"toolCall",id:i.id||"",name:x,arguments:B?{[E]:""}:{},partialArgs:B?void 0:"",customInput:B?{property:E,jsonBuffer:{input:"",started:!1,closed:!1}}:void 0,streamIndex:c},c!==void 0)b.set(c,m);if(i.id)L.set(i.id,m);l.push(m),s.push({type:"toolcall_start",contentIndex:I(m),partial:r})}if(c!==void 0&&m.streamIndex===void 0)m.streamIndex=c,b.set(c,m);if(i.id)L.set(i.id,m);if(!m.name&&x)m.name=x;if(i.custom&&!i.function&&!m.customInput){let E=T.get(m.name)??"input";m.arguments={[E]:""},m.customInput={property:E,jsonBuffer:{input:"",started:!1,closed:!1}},delete m.partialArgs}return m};for await(let i of M){if(await t?.onProviderStreamEvent?.(i,e),!i||typeof i!=="object")continue;if(r.responseId||=i.id,typeof i.model==="string"&&i.model.length>0&&i.model!==e.id)r.responseModel||=i.model;if(i.usage)r.usage=ie(i.usage,e);let c=Array.isArray(i.choices)?i.choices[0]:void 0;if(!c)continue;if(!i.usage&&c.usage)r.usage=ie(c.usage,e);if(c.finish_reason){r.rawStopReason=c.finish_reason;let x=Ve(c.finish_reason);if(r.stopReason=x.stopReason,x.errorMessage)r.errorMessage=x.errorMessage;A=!0}if(c.delta){if(c.delta.content!==null&&c.delta.content!==void 0&&c.delta.content.length>0){let y=de();y.text+=c.delta.content,s.push({type:"text_delta",contentIndex:I(y),delta:c.delta.content,partial:r})}let x=["reasoning_content","reasoning","reasoning_text"],m=c.delta,E=null;for(let y of x){let v=m[y];if(typeof v==="string"&&v.length>0){E=y;break}}if(E){let y=m[E];if(typeof y==="string"&&y.length>0){let v=e.provider==="opencode-go"&&E==="reasoning"?"reasoning_content":E,q=Z(v);q.thinking+=y,s.push({type:"thinking_delta",contentIndex:I(q),delta:y,partial:r})}}if(c?.delta?.tool_calls)for(let y of c.delta.tool_calls){let v=he(y);if(!v.id&&y.id)v.id=y.id,L.set(y.id,v);let q=y.function?.name??y.custom?.name;if(!v.name&&q)v.name=q;let z="";if(y.function?.arguments)z=y.function.arguments,v.partialArgs=(v.partialArgs??"")+y.function.arguments,v.arguments=G(v.partialArgs);else if(y.custom?.input){let me=j(v)+y.custom.input;z=H(v,me,!1)??""}s.push({type:"toolcall_delta",contentIndex:I(v),delta:z,partial:r})}let B=c.delta.reasoning_details;if(Array.isArray(B))for(let y of B){if(!N(y))continue;Z(""),k??=[],Ee(k,y)}}}for(let i of l)ge(i);if(t?.signal?.aborted)throw Error("Request was aborted");if(r.stopReason==="aborted")throw Error("Request was aborted");if(!A&&!a.supportsFinishReason)r.stopReason=r.content.some((i)=>i.type==="toolCall")?"toolUse":"stop";if(r.stopReason==="error")throw Error(r.errorMessage||"Provider returned an error stop reason");if(a.supportsFinishReason&&!A||r.stopReason==="pending")throw Error("Stream ended without finish_reason");s.push({type:"done",reason:r.stopReason,message:r}),s.end()}catch(R){for(let T of r.content){if(T.type==="thinking")g(T);delete T.index,delete T.partialArgs,delete T.customInput,delete T.streamIndex}r.stopReason=t?.signal?.aborted?"aborted":"error",r.errorMessage=J(V(R));let a=R?.error?.metadata?.raw;if(a&&!r.errorMessage.includes(String(a)))r.errorMessage+=`
|
|
3
|
+
${a}`;s.push({type:"error",reason:r.stopReason,error:r}),s.end()}})(),s},yt=(e,n,t)=>{ae(e.provider,t?.apiKey,t?.headers);let s={...X(e,n,t,t?.apiKey),toolChoice:t?.toolChoice},u=t?.reasoning?K(e,t.reasoning):void 0;return Oe(e,n,{...s,reasoningEffort:u==="off"?void 0:u,thinkingBudgets:t?.thinkingBudgets})};function Be(e,n,t,s,u,r,k=D(e)){let g={"User-Agent":oe(),...e.headers};if(e.provider==="github-copilot"){let R=Tt(n.messages),a=Pt({messages:n.messages,hasImages:R});Object.assign(g,a)}if(r&&k.sendSessionAffinityHeaders)if(k.sessionAffinityFormat==="openrouter")g["x-session-id"]=r;else{if(k.sessionAffinityFormat==="openai")g.session_id=r;g["x-client-request-id"]=r,g["x-session-affinity"]=r}if(s)Object.assign(g,s);return new S({apiKey:t,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:u,defaultHeaders:g})}function Pe(e,n,t,s=D(e),u=le(t?.cacheRetention,t?.env),r=Re(xe(n.messages),s.supportsOpenAIGrammarTools)){let k=ve(n.messages,s.supportsMidConvoSystemMessages===!0&&s.supportsMidConvoToolAdditions===!0),g=Je(e,n,s,{grammarToolInputProperties:r}),R=Ge(s,u),a={model:e.id,messages:g,stream:!0,prompt_cache_key:e.baseUrl.includes("api.openai.com")&&u!=="none"||u==="long"&&s.supportsLongCacheRetention?Ke(t?.sessionId):void 0,prompt_cache_retention:u==="long"&&s.supportsLongCacheRetention?"24h":void 0};if(s.supportsUsageInStreaming!==!1)a.stream_options={include_usage:!0};if(s.supportsStore)a.store=!1;if(t?.maxTokens)if(s.maxTokensField==="max_tokens")a.max_tokens=t.maxTokens;else a.max_completion_tokens=t.maxTokens;if(t?.temperature!==void 0)a.temperature=t.temperature;if(k.requestTools.length>0){if(a.tools=pe(k.requestTools,s),s.zaiToolStream)a.tool_stream=!0}else if(ye(n.messages))a.tools=[];if(R)Ne(g,a.tools,R);if(t?.toolChoice)a.tool_choice=t.toolChoice;if(s.vllmPriority!==void 0)a.priority=s.vllmPriority;let T=Le(s),p=qe(e,t,a);if(s.thinkingFormat==="zai"&&e.reasoning){let o=a;if(o.thinking=t?.reasoningEffort?{type:"enabled",clear_thinking:!1}:{type:"disabled"},t?.reasoningEffort&&s.supportsReasoningEffort){let f=e.thinkingLevelMap?.[t.reasoningEffort],h=f===void 0?t.reasoningEffort:f;if(typeof h==="string")o.reasoning_effort=h}}else if(s.thinkingFormat==="qwen"&&e.reasoning){if(a.enable_thinking=!!t?.reasoningEffort,t?.reasoningEffort&&s.supportsReasoningEffort){let o=e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort;if(typeof o==="string")a.reasoning_effort=o}}else if(s.thinkingFormat==="qwen-chat-template"&&e.reasoning)a.chat_template_kwargs={enable_thinking:!!t?.reasoningEffort,preserve_thinking:!0};else if(s.thinkingFormat==="chat-template"&&e.reasoning){let o=re(e,t,s.chatTemplateKwargs,p);if(o)a.chat_template_kwargs=o}else if(s.thinkingFormat==="baseten"&&e.reasoning){let o=a,f=re(e,t,s.chatTemplateArgs,p);if(f)o.chat_template_args=f;if(s.supportsReasoningEffort){let h=t?.reasoningEffort,C=h?e.thinkingLevelMap?.[h]:e.thinkingLevelMap?.off,M=C===void 0?h:C;if(typeof M==="string")o.reasoning_effort=M}}else if(s.thinkingFormat==="deepseek"&&e.reasoning){if(t?.reasoningEffort)a.thinking={type:"enabled"};else if(e.thinkingLevelMap?.off!==null)a.thinking={type:"disabled"};if(t?.reasoningEffort&&s.supportsReasoningEffort)a.reasoning_effort=e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort}else if(s.thinkingFormat==="openrouter"&&e.reasoning){let o=a;if(t?.reasoningEffort)o.reasoning={effort:e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort};else if(e.thinkingLevelMap?.off!==null)o.reasoning={effort:e.thinkingLevelMap?.off??"none"}}else if(s.thinkingFormat==="ant-ling"&&e.reasoning&&t?.reasoningEffort){let o=e.thinkingLevelMap?.[t.reasoningEffort];if(typeof o==="string")a.reasoning={effort:o}}else if(s.thinkingFormat==="together"&&e.reasoning){let o=a;if(o.reasoning={enabled:!!t?.reasoningEffort},t?.reasoningEffort&&s.supportsReasoningEffort)o.reasoning_effort=e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort}else if(s.thinkingFormat==="string-thinking"&&e.reasoning){let o=a;if(t?.reasoningEffort)o.thinking=e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort;else if(e.thinkingLevelMap?.off!==null)o.thinking=e.thinkingLevelMap?.off??"none"}else if(t?.reasoningEffort&&e.reasoning&&s.supportsReasoningEffort)a.reasoning_effort=e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort;else if(!t?.reasoningEffort&&e.reasoning&&s.supportsReasoningEffort){let o=e.thinkingLevelMap?.off;if(typeof o==="string")a.reasoning_effort=o}if(T&&p!==void 0)Object.assign(a,{[T]:p});if(e.compat?.openRouterRouting)a.provider=e.compat.openRouterRouting;if(e.compat?.vercelGatewayRouting){let o=e.compat.vercelGatewayRouting;if(o.only||o.order){let f={};if(o.only)f.only=o.only;if(o.order)f.order=o.order;a.providerOptions={gateway:f}}}let d=dt(e,t?.reasoningEffort??"off",t?.samplingParams);if(d)Object.assign(a,d);return a}function Le(e){if(e.thinkingTokenBudgetField)return e.thinkingTokenBudgetField;if(e.supportsThinkingTokenBudget)return"thinking_token_budget";return}function qe(e,n,t){if(!n?.reasoningEffort||!e.reasoning)return;let s=t.max_tokens??t.max_completion_tokens??e.maxTokens,u=Ho(Wo(n.reasoningEffort,n.thinkingBudgets),s);return u>0?u:void 0}function re(e,n,t,s){let u={};for(let[r,k]of Object.entries(t)){let g=ze(e,n,k,s);if(g!==void 0)u[r]=g}return Object.keys(u).length>0?u:void 0}function ze(e,n,t,s){if(typeof t!=="object"||t===null)return t;let u=n?.reasoningEffort;if(!u&&t.omitWhenOff)return;if(t.$var==="thinking.enabled")return!!u;if(t.$var==="thinking.budget")return s;let r=u?e.thinkingLevelMap?.[u]:e.thinkingLevelMap?.off;return r===void 0?u:typeof r==="string"?r:void 0}function Ge(e,n){if(e.cacheControlFormat!=="anthropic"||n==="none")return;let t=n==="long"&&e.supportsLongCacheRetention?"1h":void 0;return{type:"ephemeral",...t?{ttl:t}:{}}}function Ne(e,n,t){je(e,t),He(n,t),$e(e,t)}function je(e,n){for(let t of e)if(t.role==="system"||t.role==="developer"){Ue(t,n);return}}function $e(e,n){for(let t=e.length-1;t>=0;t--){let s=e[t];if(s.role==="user"||s.role==="assistant"||s.role==="tool"){if(We(s,n))return}}}function He(e,n){if(!e||e.length===0)return;let t=e[e.length-1];t.cache_control=n}function Ue(e,n){return ce(e,n)}function We(e,n){if(e.role==="user"||e.role==="assistant"||e.role==="tool")return ce(e,n);return!1}function ce(e,n){let t=e.content;if(typeof t==="string"){if(t.length===0)return!1;return e.content=[{type:"text",text:t,cache_control:n}],!0}if(!Array.isArray(t))return!1;for(let s=t.length-1;s>=0;s--){let u=t[s];if(u?.type==="text"){let r=u;return r.cache_control=n,!0}}return!1}function Je(e,n,t,s){let u=se(n,t.supportsMidConvoSystemMessages),r=[],k=(p)=>{if(p.includes("|")){let d=p.indexOf("|"),o=p.slice(0,d).replace(/[^a-zA-Z0-9_-]/g,"_"),f=p.slice(d+1).replace(/[^a-zA-Z0-9_-]/g,"_"),h=f.length>0?`${o}_${f}`:o;if(h.length<=40)return h;let C=rt(p).slice(0,8);return`${o.slice(0,Math.max(1,40-C.length-1))}_${C}`}if(e.provider==="openai")return p.length>40?p.slice(0,40):p;return p},g=Se(u.messages,e,(p)=>k(p)),R=ve(u.messages,t.supportsMidConvoSystemMessages===!0&&t.supportsMidConvoToolAdditions===!0),a=e.reasoning&&t.supportsDeveloperRole?"developer":"system",T=null;for(let p=0;p<g.length;p++){let d=g[p];if(t.requiresAssistantAfterToolResult&&T==="toolResult"&&d.role==="user")r.push({role:"assistant",content:"I have processed the tool results."});if(d.role==="system"){let o=p>0&&R.anchorsAdditions?d.toolsAdded??[]:[];if(o.length>0){let h={role:"system",tools:pe(o,t)};r.push(h)}let f=p===0?W(d):De(d);if(f.length>0)r.push({role:a,content:w(f)})}else if(d.role==="user")if(typeof d.content==="string")r.push({role:"user",content:w(d.content)});else{let o=d.content.filter((f)=>f.type!=="text"||f.text.length>0).map((f)=>{if(f.type==="text")return{type:"text",text:w(f.text)};else return{type:"image_url",image_url:{url:`data:${f.mimeType};base64,${f.data}`}}});if(o.length===0)continue;r.push({role:"user",content:o})}else if(d.role==="assistant"){let o={role:"assistant",content:t.requiresAssistantAfterToolResult?"":null},f=d.content.filter(te).filter((l)=>l.text.trim().length>0).map((l)=>({type:"text",text:w(l.text)})),h=f.map((l)=>l.text).join(""),C=d.content.filter(ke),M=d.content.filter(Te),P=C.map((l)=>Me(l.thinkingSignature)).find((l)=>l!==void 0),O=M.map((l)=>Ie(l.thoughtSignature)).filter((l)=>l!==void 0),F=P??(O.length>0?O:void 0),A=C.filter((l)=>l.thinking.trim().length>0);if(A.length>0)if(t.requiresThinkingAsText){let l=A.map((I)=>w(I.thinking)).join(`
|
|
4
4
|
|
|
5
5
|
`);o.content=[{type:"text",text:l},...f]}else{if(h.length>0)o.content=h;if(!F){let l=A[0].thinkingSignature;if(e.provider==="opencode-go"&&l==="reasoning")l="reasoning_content";if(l&&Fe(l))o[l]=A.map((I)=>I.thinking).join(`
|
|
6
|
-
`)}}else if(h.length>0)o.content=h;if(M.length>0)o.tool_calls=M.map((l)=>{let I=s?.grammarToolInputProperties?.get(l.name);if(I!==void 0)return{id:l.id,type:"custom",custom:{name:l.name,input:w(
|
|
7
|
-
`),M=h.content.some((A)=>A.type==="image"),O=C.length>0?C:M?"(see attached image)":"(no tool output)",F={role:"tool",content:w(O),tool_call_id:h.toolCallId};if(t.requiresToolResultName&&h.toolName)F.name=h.toolName;if(r.push(F),M&&e.input.includes("image")){for(let A of h.content)if(_e(A))o.push({type:"image_url",image_url:{url:`data:${A.mimeType};base64,${A.data}`}})}}if(p=f-1,o.length>0){if(t.requiresAssistantAfterToolResult)r.push({role:"assistant",content:"I have processed the tool results."});r.push({role:"user",content:[{type:"text",text:"Attached image(s) from tool result:"},...o]}),T="user"}else T="toolResult";continue}T=d.role}return r}function pe(e,n){return e.map((t)=>{let s=nr(t,n.supportsOpenAIGrammarTools);if(s)return{type:"custom",custom:{name:t.name,description:t.description,format:{type:"grammar",grammar:{syntax:s.format,definition:s.definition}}}};let u=fe(t,n.supportsStrictMode!==!1);return{type:"function",function:{name:t.name,description:t.description,parameters:be(t,u),...n.supportsStrictMode!==!1&&{strict:u??!1}}}})}function
|
|
6
|
+
`)}}else if(h.length>0)o.content=h;if(M.length>0)o.tool_calls=M.map((l)=>{let I=s?.grammarToolInputProperties?.get(l.name);if(I!==void 0)return{id:l.id,type:"custom",custom:{name:l.name,input:w(Hr(l.name,l.arguments,I))}};return{id:l.id,type:"function",function:{name:l.name,arguments:JSON.stringify(l.arguments)}}});if(F)o.reasoning_details=F;if(t.requiresReasoningContentOnAssistantMessages&&e.reasoning&&o.reasoning_content===void 0)o.reasoning_content="";let b=o.content;if(!(b!==null&&b!==void 0&&(typeof b==="string"?b.length>0:b.length>0))&&!o.tool_calls)continue;r.push(o)}else if(d.role==="toolResult"){let o=[],f=p;for(;f<g.length&&g[f].role==="toolResult";f++){let h=g[f],C=h.content.filter(te).map((A)=>A.text).join(`
|
|
7
|
+
`),M=h.content.some((A)=>A.type==="image"),O=C.length>0?C:M?"(see attached image)":"(no tool output)",F={role:"tool",content:w(O),tool_call_id:h.toolCallId};if(t.requiresToolResultName&&h.toolName)F.name=h.toolName;if(r.push(F),M&&e.input.includes("image")){for(let A of h.content)if(_e(A))o.push({type:"image_url",image_url:{url:`data:${A.mimeType};base64,${A.data}`}})}}if(p=f-1,o.length>0){if(t.requiresAssistantAfterToolResult)r.push({role:"assistant",content:"I have processed the tool results."});r.push({role:"user",content:[{type:"text",text:"Attached image(s) from tool result:"},...o]}),T="user"}else T="toolResult";continue}T=d.role}return r}function pe(e,n){return e.map((t)=>{let s=nr(t,n.supportsOpenAIGrammarTools);if(s)return{type:"custom",custom:{name:t.name,description:t.description,format:{type:"grammar",grammar:{syntax:s.format,definition:s.definition}}}};let u=fe(t,n.supportsStrictMode!==!1);return{type:"function",function:{name:t.name,description:t.description,parameters:be(t,u),...n.supportsStrictMode!==!1&&{strict:u??!1}}}})}function ie(e,n){let t=e.prompt_tokens||0,s=e.prompt_tokens_details?.cached_tokens??e.prompt_cache_hit_tokens??e.cached_tokens??0,u=e.prompt_tokens_details?.cache_write_tokens||0,r=Math.max(0,t-s-u),k=e.completion_tokens||0,g={input:r,output:k,cacheRead:s,cacheWrite:u,reasoning:e.completion_tokens_details?.reasoning_tokens||0,totalTokens:r+k+s+u,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return Y(n,g),g}function Ve(e){if(e===null)return{stopReason:"stop"};switch(e){case"stop":case"end":return{stopReason:"stop"};case"length":return{stopReason:"length"};case"function_call":case"tool_calls":return{stopReason:"toolUse"};case"content_filter":return{stopReason:"error",errorMessage:"Provider finish_reason: content_filter"};case"network_error":return{stopReason:"error",errorMessage:"Provider finish_reason: network_error"};default:return{stopReason:"error",errorMessage:`Provider finish_reason: ${e}`}}}function Ze(e){let{provider:n,baseUrl:t}=e,s=n==="zai"||n==="zai-coding-cn"||t.includes("api.z.ai")||t.includes("open.bigmodel.cn"),u=n==="together"||t.includes("api.together.ai")||t.includes("api.together.xyz"),r=n==="moonshotai"||n==="moonshotai-cn"||t.includes("api.moonshot."),k=n==="openrouter"||t.includes("openrouter.ai"),g=n==="cloudflare-workers-ai"||t.includes("api.cloudflare.com"),R=n==="cloudflare-ai-gateway"||t.includes("gateway.ai.cloudflare.com"),a=n==="nvidia"||t.includes("integrate.api.nvidia.com"),T=n==="ant-ling"||t.includes("api.ant-ling.com"),p=n==="cerebras"||t.includes("cerebras.ai"),d=n==="deepseek"||t.toLowerCase().includes("deepseek.com"),o=a||p||n==="xai"||t.includes("api.x.ai")||u||t.includes("chutes.ai")||d||s||r||n==="opencode"||t.includes("opencode.ai")||g||R||T,f=t.includes("chutes.ai")||d||r||R||u||a||T||s,h=n==="xai"||t.includes("api.x.ai"),C=k&&(e.id.startsWith("anthropic/")||e.id.startsWith("openai/")),M=n==="openrouter"&&e.id.startsWith("anthropic/")?"anthropic":void 0;return{supportsStore:!o,supportsDeveloperRole:C||!o&&!k,supportsReasoningEffort:!h&&!s&&!r&&!u&&!R&&!a&&!T,supportsUsageInStreaming:!0,supportsFinishReason:!0,maxTokensField:f?"max_tokens":"max_completion_tokens",requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:d,thinkingFormat:d?"deepseek":s?"zai":u?"together":T?"ant-ling":k?"openrouter":"openai",openRouterRouting:{},vercelGatewayRouting:{},chatTemplateKwargs:{},chatTemplateArgs:{},zaiToolStream:!1,supportsThinkingTokenBudget:!1,thinkingTokenBudgetField:void 0,supportsStrictMode:!1,supportsOpenAIGrammarTools:!1,supportsMidConvoSystemMessages:!1,supportsMidConvoToolAdditions:!1,cacheControlFormat:M,sendSessionAffinityHeaders:k,sessionAffinityFormat:k?"openrouter":"openai",supportsLongCacheRetention:!(u||g||R||a||T)}}function D(e){let n=Ze(e);if(!e.compat)return n;return{supportsStore:e.compat.supportsStore??n.supportsStore,supportsDeveloperRole:e.compat.supportsDeveloperRole??n.supportsDeveloperRole,supportsReasoningEffort:e.compat.supportsReasoningEffort??n.supportsReasoningEffort,supportsUsageInStreaming:e.compat.supportsUsageInStreaming??n.supportsUsageInStreaming,supportsFinishReason:e.compat.supportsFinishReason??n.supportsFinishReason,maxTokensField:e.compat.maxTokensField??n.maxTokensField,requiresToolResultName:e.compat.requiresToolResultName??n.requiresToolResultName,requiresAssistantAfterToolResult:e.compat.requiresAssistantAfterToolResult??n.requiresAssistantAfterToolResult,requiresThinkingAsText:e.compat.requiresThinkingAsText??n.requiresThinkingAsText,requiresReasoningContentOnAssistantMessages:e.compat.requiresReasoningContentOnAssistantMessages??n.requiresReasoningContentOnAssistantMessages,thinkingFormat:e.compat.thinkingFormat??n.thinkingFormat,openRouterRouting:e.compat.openRouterRouting??{},vercelGatewayRouting:e.compat.vercelGatewayRouting??n.vercelGatewayRouting,chatTemplateKwargs:e.compat.chatTemplateKwargs??n.chatTemplateKwargs,chatTemplateArgs:e.compat.chatTemplateArgs??n.chatTemplateArgs,zaiToolStream:e.compat.zaiToolStream??n.zaiToolStream,supportsThinkingTokenBudget:e.compat.supportsThinkingTokenBudget??n.supportsThinkingTokenBudget,thinkingTokenBudgetField:e.compat.thinkingTokenBudgetField??n.thinkingTokenBudgetField,supportsStrictMode:e.compat.supportsStrictMode??n.supportsStrictMode,supportsOpenAIGrammarTools:e.compat.supportsOpenAIGrammarTools??n.supportsOpenAIGrammarTools,supportsMidConvoSystemMessages:e.compat.supportsMidConvoSystemMessages??n.supportsMidConvoSystemMessages,supportsMidConvoToolAdditions:e.compat.supportsMidConvoToolAdditions??n.supportsMidConvoToolAdditions,cacheControlFormat:e.compat.cacheControlFormat??n.cacheControlFormat,sendSessionAffinityHeaders:e.compat.sendSessionAffinityHeaders??n.sendSessionAffinityHeaders,sessionAffinityFormat:e.compat.sessionAffinityFormat??n.sessionAffinityFormat,supportsLongCacheRetention:e.compat.supportsLongCacheRetention??n.supportsLongCacheRetention,vllmPriority:e.compat.vllmPriority}}export{Je as convertMessages,Oe as stream,yt as streamSimple};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import"./chunk-4rnmxtpx.js";import"./chunk-edbq461k.js";import{Cr}from"./chunk-22az84sh.js";import{ut,tt,pt}from"./chunk-z0c8ek0j.js";import{Ke}from"./chunk-86yr2c0r.js";import{ne}from"./chunk-959z9efn.js";import{$r}from"./chunk-tfhze1vq.js";import{Re,X}from"./chunk-2tf7qfbx.js";import{j,J}from"./chunk-rn3jwyh1.js";import{Q}from"./chunk-tfhp09nj.js";import{eo,rn}from"./chunk-g5p9mj1r.js";import{W,bt,ge,ie,xe,ve,V}from"./chunk-y4pvhes1.js";import{D,Xe,jt,Ie}from"./chunk-szj85dqe.js";var Ee="https://chatgpt.com/backend-api",_e="https://api.openai.com/auth",ke=0,ee=1000,Te=60000,Ce=15000,Oe=3,ue=new Set(["openai","openai-codex","opencode"]),Ae=1009,Me="websocket_connection_limit_reached",We="previous_response_not_found",Le=new Set(["completed","incomplete","failed","cancelled","queued","in_progress"]);function te(e){if(e.stopReason==="pending")throw Error("Codex stream ended without a stop reason");if(e.stopReason==="error"||e.stopReason==="aborted")throw Error(e.errorMessage||"An unknown error occurred")}function De(e){return/GoUsageLimitError|FreeUsageLimitError|Monthly usage limit reached|available balance|insufficient_quota|out of budget|quota exceeded|billing/i.test(e)}function Ne(e,r){if(e===429&&De(r))return!1;if(e===429||e===500||e===502||e===503||e===504)return!0;return/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(r)}function qe(e){let r=e.get("retry-after-ms");if(r!==null){let s=Number(r);if(Number.isFinite(s))return Math.max(0,s)}let t=e.get("retry-after");if(!t)return;let n=Number(t);if(Number.isFinite(n))return Math.max(0,n*1000);let o=Date.parse(t);if(!Number.isNaN(o))return Math.max(0,o-Date.now());return}class G extends Error{}function Be(e,r){let t=r?.maxRetryDelayMs??Te;if(t>0&&e>t)throw new G(`Server requested ${Math.ceil(e/1000)}s retry delay (max: ${Math.ceil(t/1000)}s)`);return e}function re(e,r){return new Promise((t,n)=>{if(r?.aborted){n(Error("Request was aborted"));return}let o=setTimeout(t,e);r?.addEventListener("abort",()=>{clearTimeout(o),n(Error("Request was aborted"))})})}function se(e){if(e===void 0)return;if(!Number.isFinite(e)||e<0)throw Error(`Invalid timeoutMs: ${String(e)}`);return Math.floor(e)}function Pe(){if(typeof process>"u"||!(process.versions?.node||process.versions?.bun))return null;return process.getBuiltinModule?.("node:zlib")??null}function Fe(e){let r=Pe();if(!r||typeof r.zstdCompressSync!=="function")return null;try{let t=r.zstdCompressSync(e,{params:{[r.constants.ZSTD_c_compressionLevel]:Oe}});return new Uint8Array(t)}catch{return null}}var Ue=(e,r,t)=>{let n=new D,o=ie(r,e.compat?.supportsMidConvoSystemMessages);return(async()=>{let s={role:"assistant",content:[],api:"openai-codex-responses",provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:"pending",timestamp:Date.now()};try{let i=t?.apiKey;if(!i)throw Error(`No API key for provider: ${e.provider}`);let u=_t(i),a=Re(xe(o.messages),e.compat?.supportsOpenAIGrammarTools??!1),d=t?.cacheRetention==="none"?void 0:t?.sessionId,p=Ke(d),c=$e(e,o,t,p,a),l=await t?.onPayload?.(c,e);if(l!==void 0)c=l;let f=p||rn(),m=kt(e.headers,t?.headers,u,i,p),b=Tt(e.headers,t?.headers,u,i,f),h=JSON.stringify(c),E=se(t?.timeoutMs),w=se(t?.websocketConnectTimeoutMs),v=t?.transport||"auto",T=!1,y=v!=="sse"&&me(d);if(y)oe(d);if(v!=="sse"&&!y){let S=!1,k=!1,O=!1;while(!0){S=!1;try{if(await St(Je(e.baseUrl),c,b,s,n,e,()=>{if(S=!0,!T)T=!0,n.push({type:"start",partial:s})},E,w,d,u,a,t),t?.signal?.aborted)throw Error("Request was aborted");te(s),n.push({type:"done",reason:s.stopReason,message:s}),n.end();return}catch(R){let q=t?.signal?.aborted,B=!S&&je(R),M=Ve(R);if(!q&&M&&!O){O=!0;continue}if(!q&&B&&!k){k=!0;continue}if(q||Ge(R)&&!B)throw R;if(Ie(s,jt("provider_transport_failure",R,{configuredTransport:v,...S?{}:{fallbackTransport:"sse"},eventsEmitted:S,phase:S?"after_message_stream_start":"before_message_stream_start",requestBytes:new TextEncoder().encode(h).byteLength})),ot(d,R),S)throw R;oe(d);break}}}let x=Fe(h);if(x)m.set("content-encoding","zstd");let A=x??h,_,N,z=t?.maxRetries??ke;for(let S=0;S<=z;S++){if(t?.signal?.aborted)throw Error("Request was aborted");try{let k=E!==void 0&&E>0?AbortSignal.timeout(E):void 0,O=Cr([t?.signal,k]);try{_=await(t?.fetch??globalThis.fetch)(de(e.baseUrl),{method:"POST",headers:m,body:A,signal:O.signal})}catch(M){if(k?.aborted&&!t?.signal?.aborted)throw Error(`Codex SSE response headers timed out after ${E}ms`);throw M}finally{O.cleanup()}if(await t?.onResponse?.({status:_.status,headers:Q(_.headers)},e),_.ok)break;let R=await _.text();if(S<z&&Ne(_.status,R)){let M=qe(_.headers),Se=M===void 0?ee*2**S:Be(M,t);await re(Se,t?.signal);continue}let q=new Response(R,{status:_.status,statusText:_.statusText}),B=await Et(q);throw Error(B.friendlyMessage||B.message)}catch(k){if(k instanceof Error){if(k.name==="AbortError"||k.message==="Request was aborted")throw Error("Request was aborted")}if(N=k instanceof Error?k:Error(String(k)),S<z&&!(N instanceof G)&&!N.message.includes("usage limit")){let O=ee*2**S;await re(O,t?.signal);continue}throw N}}if(!_?.ok)throw N??Error("Failed after retries");if(!_.body)throw Error("No response body");if(!T)T=!0,n.push({type:"start",partial:s});if(await He(_,s,n,e,a,t),t?.signal?.aborted)throw Error("Request was aborted");te(s),n.push({type:"done",reason:s.stopReason,message:s}),n.end()}catch(i){for(let u of s.content)delete u.partialJson,delete u.customInput;s.stopReason=t?.signal?.aborted?"aborted":"error",s.errorMessage=J(j(i)),n.push({type:"error",reason:s.stopReason,error:s}),n.end()}})(),n},Ut=(e,r,t)=>{let n=t?.apiKey;if(!n)throw Error(`No API key for provider: ${e.provider}`);let o={...X(e,r,t,n),toolChoice:t?.toolChoice},s=t?.reasoning?V(e,t.reasoning):void 0;return Ue(e,r,{...o,reasoningEffort:s==="off"?void 0:s})};function $e(e,r,t,n,o=Re(xe(r.messages),e.compat?.supportsOpenAIGrammarTools??!1)){let s=e.compat?.supportsStrictMode??!0,i=e.compat?.supportsOpenAIGrammarTools??!1,u=e.compat?.supportsAdditionalTools??!1,a=e.compat?.supportsToolSearch??!1,d=ve(r.messages,u||a),p=ut(e,r,ue,{includeSystemPrompt:!1,grammarToolInputProperties:o,supportsMidConvoSystemMessages:e.compat?.supportsMidConvoSystemMessages??!1,supportsAdditionalTools:u,supportsToolSearch:a,toolOptions:{strict:null,supportsStrictMode:s,supportsOpenAIGrammarTools:i}}),c=ge(r.messages),l=c?W(c):"",f={model:e.id,store:!1,stream:!0,instructions:l||"You are a helpful assistant.",input:p,text:{verbosity:t?.textVerbosity||"low"},include:["reasoning.encrypted_content"],prompt_cache_key:n,tool_choice:t?.toolChoice??"auto",parallel_tool_calls:!0};if(t?.temperature!==void 0)f.temperature=t.temperature;if(t?.serviceTier!==void 0)f.service_tier=t.serviceTier;if(d.requestTools.length>0)f.tools=tt(d.requestTools,{strict:null,supportsStrictMode:s,supportsOpenAIGrammarTools:i});if(t?.reasoningEffort!==void 0){let m=t.reasoningEffort==="none"?e.thinkingLevelMap?.off===void 0?"none":e.thinkingLevelMap.off:e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort;if(m!==null)f.reasoning={effort:m,summary:t.reasoningSummary??"auto"}}else if(e.reasoning&&e.thinkingLevelMap?.off!==null)f.reasoning={effort:e.thinkingLevelMap?.off??"none"};return f}function ze(e,r){switch(r){case"flex":return 0.5;case"priority":return e.id==="gpt-5.5"?2.5:2;default:return 1}}function fe(e,r,t){let n=ze(t,r);if(n===1)return;e.cost.input*=n,e.cost.output*=n,e.cost.cacheRead*=n,e.cost.cacheWrite*=n,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite}function le(e,r){if(e==="default"&&(r==="flex"||r==="priority"))return r;return e??r}function de(e){let t=(e&&e.trim().length>0?e:Ee).replace(/\/+$/,"");if(t.endsWith("/codex/responses"))return t;if(t.endsWith("/codex"))return`${t}/responses`;return`${t}/codex/responses`}function Je(e){let r=new URL(de(e));if(r.protocol==="https:")r.protocol="wss:";if(r.protocol==="http:")r.protocol="ws:";return r.toString()}async function He(e,r,t,n,o,s){await pt(pe(Qe(e,s?.signal),r,n,s?.onProviderStreamEvent),r,t,n,{serviceTier:s?.serviceTier,grammarToolInputProperties:o,resolveServiceTier:le,applyServiceTierPricing:(i,u)=>fe(i,u,n)})}class L extends Error{code;payload;constructor(e,r){super(e);this.name="CodexApiError",this.code=r?.code,this.payload=r?.payload,this.cause=r?.cause}}class U extends Error{payload;constructor(e,r){super(e);this.name="CodexProtocolError",this.payload=r?.payload,this.cause=r?.cause}}class Y extends Error{constructor(e){super(Xe(e));this.name="ProviderStreamEventCallbackError",this.cause=e}}function Ge(e){return e instanceof L||e instanceof U||e instanceof Y}function je(e){return e instanceof L&&e.code===Me}function Ve(e){return e instanceof L&&e.code===We}function Ye(e){let r=e.error&&typeof e.error==="object"?e.error:void 0;return{code:typeof e.code==="string"?e.code:typeof r?.code==="string"?r.code:void 0,message:typeof e.message==="string"?e.message:typeof r?.message==="string"?r.message:void 0}}async function*pe(e,r,t,n){for await(let o of e){try{await n?.(o,t)}catch(i){throw new Y(i)}let s=typeof o.type==="string"?o.type:void 0;if(!s)continue;if(s==="error"){let{code:i,message:u}=Ye(o);throw new L(`Codex error: ${u||i||JSON.stringify(o)}`,{code:i,payload:o})}if(s==="response.failed"){let i=o.response,u=i?.error?.code,a=i?.error?.message;throw new L(a||"Codex response failed",{code:u,payload:o})}if(s==="response.done"||s==="response.completed"||s==="response.incomplete"){let i=o.response;if(typeof i?.end_turn==="boolean")r.endTurn=i.end_turn;let u=i?{...i,status:Ze(i.status)}:i;yield{...o,type:"response.completed",response:u};return}yield o}}function Ze(e){if(typeof e!=="string")return;return Le.has(e)?e:void 0}async function*Qe(e,r){if(!e.body)return;let t=e.body.getReader(),n=new TextDecoder,o="",s=()=>{t.cancel().catch(()=>{})};r?.addEventListener("abort",s,{once:!0});try{while(!0){if(r?.aborted)throw Error("Request was aborted");let{done:i,value:u}=await t.read();if(r?.aborted)throw Error("Request was aborted");if(o+=i?n.decode():n.decode(u,{stream:!0}),i&&o.trim())o+=`
|
|
2
|
+
import"./chunk-ge38dhv9.js";import"./chunk-38g4jd6v.js";import{Ir}from"./chunk-w55cnj0f.js";import{ut,tt,pt}from"./chunk-qjnx4fsn.js";import{Ke}from"./chunk-86yr2c0r.js";import{oe}from"./chunk-pyj6avd5.js";import{Wr}from"./chunk-c8g9jjqs.js";import{Re,X}from"./chunk-qs161f2q.js";import{V,J}from"./chunk-8np9b2y8.js";import{Q}from"./chunk-tfhp09nj.js";import{eo,rn}from"./chunk-g5p9mj1r.js";import{W,bt,ge,se,xe,ve,K}from"./chunk-z9p6s986.js";import{U,Xe,jt,Ie}from"./chunk-4yxd2kg1.js";var Ee="https://chatgpt.com/backend-api",_e="https://api.openai.com/auth",ke=0,ee=1000,Te=60000,Ce=15000,Oe=3,ue=new Set(["openai","openai-codex","opencode"]),Ae=1009,Me="websocket_connection_limit_reached",We="previous_response_not_found",Le=new Set(["completed","incomplete","failed","cancelled","queued","in_progress"]);function te(e){if(e.stopReason==="pending")throw Error("Codex stream ended without a stop reason");if(e.stopReason==="error"||e.stopReason==="aborted")throw Error(e.errorMessage||"An unknown error occurred")}function De(e){return/GoUsageLimitError|FreeUsageLimitError|Monthly usage limit reached|available balance|insufficient_quota|out of budget|quota exceeded|billing/i.test(e)}function Ne(e,r){if(e===429&&De(r))return!1;if(e===429||e===500||e===502||e===503||e===504)return!0;return/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(r)}function qe(e){let r=e.get("retry-after-ms");if(r!==null){let s=Number(r);if(Number.isFinite(s))return Math.max(0,s)}let t=e.get("retry-after");if(!t)return;let n=Number(t);if(Number.isFinite(n))return Math.max(0,n*1000);let o=Date.parse(t);if(!Number.isNaN(o))return Math.max(0,o-Date.now());return}class j extends Error{}function Be(e,r){let t=r?.maxRetryDelayMs??Te;if(t>0&&e>t)throw new j(`Server requested ${Math.ceil(e/1000)}s retry delay (max: ${Math.ceil(t/1000)}s)`);return e}function re(e,r){return new Promise((t,n)=>{if(r?.aborted){n(Error("Request was aborted"));return}let o=setTimeout(t,e);r?.addEventListener("abort",()=>{clearTimeout(o),n(Error("Request was aborted"))})})}function ne(e){if(e===void 0)return;if(!Number.isFinite(e)||e<0)throw Error(`Invalid timeoutMs: ${String(e)}`);return Math.floor(e)}function Pe(){if(typeof process>"u"||!(process.versions?.node||process.versions?.bun))return null;return process.getBuiltinModule?.("node:zlib")??null}function Fe(e){let r=Pe();if(!r||typeof r.zstdCompressSync!=="function")return null;try{let t=r.zstdCompressSync(e,{params:{[r.constants.ZSTD_c_compressionLevel]:Oe}});return new Uint8Array(t)}catch{return null}}var Ue=(e,r,t)=>{let n=new U,o=se(r,e.compat?.supportsMidConvoSystemMessages);return(async()=>{let s={role:"assistant",content:[],api:"openai-codex-responses",provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:"pending",timestamp:Date.now()};try{let i=t?.apiKey;if(!i)throw Error(`No API key for provider: ${e.provider}`);let u=_t(i),a=Re(xe(o.messages),e.compat?.supportsOpenAIGrammarTools??!1),d=t?.cacheRetention==="none"?void 0:t?.sessionId,p=Ke(d),c=$e(e,o,t,p,a),l=await t?.onPayload?.(c,e);if(l!==void 0)c=l;let f=p||rn(),m=kt(e.headers,t?.headers,u,i,p),b=Tt(e.headers,t?.headers,u,i,f),h=JSON.stringify(c),E=ne(t?.timeoutMs),w=ne(t?.websocketConnectTimeoutMs),v=t?.transport||"auto",T=!1,y=v!=="sse"&&me(d);if(y)ie(d);if(v!=="sse"&&!y){let S=!1,k=!1,O=!1;while(!0){S=!1;try{if(await St(Je(e.baseUrl),c,b,s,n,e,()=>{if(S=!0,!T)T=!0,n.push({type:"start",partial:s})},E,w,d,u,a,t),t?.signal?.aborted)throw Error("Request was aborted");te(s),n.push({type:"done",reason:s.stopReason,message:s}),n.end();return}catch(R){let N=t?.signal?.aborted,q=!S&&je(R),M=Ve(R);if(!N&&M&&!O){O=!0;continue}if(!N&&q&&!k){k=!0;continue}if(N||Ge(R)&&!q)throw R;if(Ie(s,jt("provider_transport_failure",R,{configuredTransport:v,...S?{}:{fallbackTransport:"sse"},eventsEmitted:S,phase:S?"after_message_stream_start":"before_message_stream_start",requestBytes:new TextEncoder().encode(h).byteLength})),ot(d,R),S)throw R;ie(d);break}}}let x=Fe(h);if(x)m.set("content-encoding","zstd");let A=x??h,_,D,z=t?.maxRetries??ke;for(let S=0;S<=z;S++){if(t?.signal?.aborted)throw Error("Request was aborted");try{let k=E!==void 0&&E>0?AbortSignal.timeout(E):void 0,O=Ir([t?.signal,k]);try{_=await(t?.fetch??globalThis.fetch)(de(e.baseUrl),{method:"POST",headers:m,body:A,signal:O.signal})}catch(M){if(k?.aborted&&!t?.signal?.aborted)throw Error(`Codex SSE response headers timed out after ${E}ms`);throw M}finally{O.cleanup()}if(await t?.onResponse?.({status:_.status,headers:Q(_.headers)},e),_.ok)break;let R=await _.text();if(S<z&&Ne(_.status,R)){let M=qe(_.headers),Se=M===void 0?ee*2**S:Be(M,t);await re(Se,t?.signal);continue}let N=new Response(R,{status:_.status,statusText:_.statusText}),q=await Et(N);throw Error(q.friendlyMessage||q.message)}catch(k){if(k instanceof Error){if(k.name==="AbortError"||k.message==="Request was aborted")throw Error("Request was aborted")}if(D=k instanceof Error?k:Error(String(k)),S<z&&!(D instanceof j)&&!D.message.includes("usage limit")){let O=ee*2**S;await re(O,t?.signal);continue}throw D}}if(!_?.ok)throw D??Error("Failed after retries");if(!_.body)throw Error("No response body");if(!T)T=!0,n.push({type:"start",partial:s});if(await He(_,s,n,e,a,t),t?.signal?.aborted)throw Error("Request was aborted");te(s),n.push({type:"done",reason:s.stopReason,message:s}),n.end()}catch(i){for(let u of s.content)delete u.partialJson,delete u.customInput;s.stopReason=t?.signal?.aborted?"aborted":"error",s.errorMessage=J(V(i)),n.push({type:"error",reason:s.stopReason,error:s}),n.end()}})(),n},Ut=(e,r,t)=>{let n=t?.apiKey;if(!n)throw Error(`No API key for provider: ${e.provider}`);let o={...X(e,r,t,n),toolChoice:t?.toolChoice},s=t?.reasoning?K(e,t.reasoning):void 0;return Ue(e,r,{...o,reasoningEffort:s==="off"?void 0:s})};function $e(e,r,t,n,o=Re(xe(r.messages),e.compat?.supportsOpenAIGrammarTools??!1)){let s=e.compat?.supportsStrictMode??!0,i=e.compat?.supportsOpenAIGrammarTools??!1,u=e.compat?.supportsAdditionalTools??!1,a=e.compat?.supportsToolSearch??!1,d=ve(r.messages,u||a),p=ut(e,r,ue,{includeSystemPrompt:!1,grammarToolInputProperties:o,supportsMidConvoSystemMessages:e.compat?.supportsMidConvoSystemMessages??!1,supportsAdditionalTools:u,supportsToolSearch:a,toolOptions:{strict:null,supportsStrictMode:s,supportsOpenAIGrammarTools:i}}),c=ge(r.messages),l=c?W(c):"",f={model:e.id,store:!1,stream:!0,instructions:l||"You are a helpful assistant.",input:p,text:{verbosity:t?.textVerbosity||"low"},include:["reasoning.encrypted_content"],prompt_cache_key:n,tool_choice:t?.toolChoice??"auto",parallel_tool_calls:!0};if(t?.temperature!==void 0)f.temperature=t.temperature;if(t?.serviceTier!==void 0)f.service_tier=t.serviceTier;if(d.requestTools.length>0)f.tools=tt(d.requestTools,{strict:null,supportsStrictMode:s,supportsOpenAIGrammarTools:i});if(t?.reasoningEffort!==void 0){let m=t.reasoningEffort==="none"?e.thinkingLevelMap?.off===void 0?"none":e.thinkingLevelMap.off:e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort;if(m!==null)f.reasoning={effort:m,summary:t.reasoningSummary??"auto"}}else if(e.reasoning&&e.thinkingLevelMap?.off!==null)f.reasoning={effort:e.thinkingLevelMap?.off??"none"};return f}function ze(e,r){switch(r){case"flex":return 0.5;case"priority":return e.id==="gpt-5.5"?2.5:2;default:return 1}}function fe(e,r,t){let n=ze(t,r);if(n===1)return;e.cost.input*=n,e.cost.output*=n,e.cost.cacheRead*=n,e.cost.cacheWrite*=n,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite}function le(e,r){if(e==="default"&&(r==="flex"||r==="priority"))return r;return e??r}function de(e){let t=(e&&e.trim().length>0?e:Ee).replace(/\/+$/,"");if(t.endsWith("/codex/responses"))return t;if(t.endsWith("/codex"))return`${t}/responses`;return`${t}/codex/responses`}function Je(e){let r=new URL(de(e));if(r.protocol==="https:")r.protocol="wss:";if(r.protocol==="http:")r.protocol="ws:";return r.toString()}async function He(e,r,t,n,o,s){await pt(pe(Qe(e,s?.signal),r,n,s?.onProviderStreamEvent),r,t,n,{serviceTier:s?.serviceTier,grammarToolInputProperties:o,resolveServiceTier:le,applyServiceTierPricing:(i,u)=>fe(i,u,n)})}class L extends Error{code;payload;constructor(e,r){super(e);this.name="CodexApiError",this.code=r?.code,this.payload=r?.payload,this.cause=r?.cause}}class F extends Error{payload;constructor(e,r){super(e);this.name="CodexProtocolError",this.payload=r?.payload,this.cause=r?.cause}}class Y extends Error{constructor(e){super(Xe(e));this.name="ProviderStreamEventCallbackError",this.cause=e}}function Ge(e){return e instanceof L||e instanceof F||e instanceof Y}function je(e){return e instanceof L&&e.code===Me}function Ve(e){return e instanceof L&&e.code===We}function Ye(e){let r=e.error&&typeof e.error==="object"?e.error:void 0;return{code:typeof e.code==="string"?e.code:typeof r?.code==="string"?r.code:void 0,message:typeof e.message==="string"?e.message:typeof r?.message==="string"?r.message:void 0}}async function*pe(e,r,t,n){for await(let o of e){try{await n?.(o,t)}catch(i){throw new Y(i)}let s=typeof o.type==="string"?o.type:void 0;if(!s)continue;if(s==="error"){let{code:i,message:u}=Ye(o);throw new L(`Codex error: ${u||i||JSON.stringify(o)}`,{code:i,payload:o})}if(s==="response.failed"){let i=o.response,u=i?.error?.code,a=i?.error?.message;throw new L(a||"Codex response failed",{code:u,payload:o})}if(s==="response.done"||s==="response.completed"||s==="response.incomplete"){let i=o.response;if(typeof i?.end_turn==="boolean")r.endTurn=i.end_turn;let u=i?{...i,status:Ze(i.status)}:i;yield{...o,type:"response.completed",response:u};return}yield o}}function Ze(e){if(typeof e!=="string")return;return Le.has(e)?e:void 0}async function*Qe(e,r){if(!e.body)return;let t=e.body.getReader(),n=new TextDecoder,o="",s=()=>{t.cancel().catch(()=>{})};r?.addEventListener("abort",s,{once:!0});try{while(!0){if(r?.aborted)throw Error("Request was aborted");let{done:i,value:u}=await t.read();if(r?.aborted)throw Error("Request was aborted");if(o+=i?n.decode():n.decode(u,{stream:!0}),i&&o.trim())o+=`
|
|
3
3
|
|
|
4
4
|
`;let a=o.indexOf(`
|
|
5
5
|
|
|
6
6
|
`);while(a!==-1){let d=o.slice(0,a);o=o.slice(a+2);let p=d.split(`
|
|
7
7
|
`).filter((c)=>c.startsWith("data:")).map((c)=>c.slice(5).trim());if(p.length>0){let c=p.join(`
|
|
8
|
-
`).trim();if(c&&c!=="[DONE]")try{yield JSON.parse(c)}catch(l){throw new
|
|
8
|
+
`).trim();if(c&&c!=="[DONE]")try{yield JSON.parse(c)}catch(l){throw new F(`Invalid Codex SSE JSON: ${Xe(l)}`,{cause:l,payload:c})}}a=o.indexOf(`
|
|
9
9
|
|
|
10
|
-
`)}if(i)break}}finally{r?.removeEventListener("abort",s);try{await t.cancel()}catch{}try{t.releaseLock()}catch{}}}var et="responses_websockets=2026-02-06",rt=300000,nt=3300000,g=new Map,P=new Map,F=new Set;function Z(e){let r=P.get(e);if(!r)r={requests:0,connectionsCreated:0,connectionsReused:0,cachedContextRequests:0,storeTrueRequests:0,fullContextRequests:0,deltaRequests:0,lastInputItems:0,websocketFailures:0,sseFallbacks:0},P.set(e,r);return r}function $t(e){let r=P.get(e);return r?{...r}:void 0}function zt(e){if(e){P.delete(e),F.delete(e);return}P.clear(),F.clear()}function st(e){let r=(t)=>{if(t.idleTimer)clearTimeout(t.idleTimer);C(t.socket,1000,"debug_close")};if(e){for(let t of g.get(e)?.values()??[])r(t);g.delete(e);return}for(let t of g.values())for(let n of t.values())r(n);g.clear()}eo(st);function me(e){return e?F.has(e):!1}function oe(e){if(!e)return;let r=Z(e);r.sseFallbacks++,r.websocketFallbackActive=me(e)}function ot(e,r){if(!e)return;F.add(e);let t=Z(e);t.websocketFailures++,t.lastWebSocketError=Xe(r),t.websocketFallbackActive=!0}var H=null;async function it(e){if(!e&&H)return H;if(typeof process<"u"&&process.versions?.bun){let t=class extends WebSocket{constructor(n,o){let s={};if(Array.isArray(o)||typeof o==="string")s={protocols:o};else s={...o};let i=$r(n.toString().replace(/^wss:/,"https:").replace(/^ws:/,"http:"),e);super(n,{...s,...i?{proxy:i.toString()}:{}})}};if(!e)H=t;return t}let r=globalThis.WebSocket;if(typeof r!=="function")return null;return r}class ye extends Error{code;reason;wasClean;constructor(e,r){super(e);this.name="WebSocketCloseError",this.code=r?.code,this.reason=r?.reason,this.wasClean=r?.wasClean}}function at(e){let r=e.readyState;return typeof r==="number"?r:void 0}function I(e){let r=at(e);return r===void 0||r===1}function ct(e){return Date.now()-e.createdAt>=nt}function C(e,r=1000,t="done"){try{e.close(r,t)}catch{}}function ae(e,r,t){if(t.idleTimer)clearTimeout(t.idleTimer);t.idleTimer=setTimeout(()=>{if(t.busy)return;C(t.socket,1000,"idle_timeout");let n=g.get(e);if(n?.get(r)===t)n.delete(r);if(n?.size===0)g.delete(e)},rt)}async function K(e,r,t,n=Ce,o){let s=await it(o);if(!s)throw Error("WebSocket transport is not available in this runtime");let i=Q(r);return delete i["OpenAI-Beta"],new Promise((u,a)=>{let d=!1,p,c;try{c=new s(e,{headers:i})}catch(w){a(w instanceof Error?w:Error(String(w)));return}let l=()=>{if(p)clearTimeout(p),p=void 0;c.removeEventListener("open",m),c.removeEventListener("error",b),c.removeEventListener("close",h),t?.removeEventListener("abort",E)},f=(w,v)=>{if(d)return;if(d=!0,l(),v)C(c,1000,v);a(w)},m=()=>{if(d)return;d=!0,l(),u(c)},b=(w)=>{f(be(w))},h=(w)=>{f(he(w))},E=()=>{f(Error("Request was aborted"),"aborted")};if(c.addEventListener("open",m),c.addEventListener("error",b),c.addEventListener("close",h),t?.addEventListener("abort",E),n>0)p=setTimeout(()=>{f(Error(`WebSocket connect timeout after ${n}ms`),"connect_timeout")},n);if(t?.aborted)E()})}async function ft(e,r,t,n,o,s,i){if(!t){let c=await K(e,r,o,s,i);return{socket:c,reused:!1,release:()=>C(c)}}let u=g.get(t),a=u?.get(n);if(a){if(a.idleTimer)clearTimeout(a.idleTimer),a.idleTimer=void 0;if(!a.busy&&ct(a)){if(C(a.socket,1000,"connection_age_limit"),u?.delete(n),u?.size===0)g.delete(t)}else if(!a.busy&&I(a.socket))return a.busy=!0,{socket:a.socket,entry:a,reused:!0,release:({keep:c}={})=>{if(!c||!I(a.socket)){C(a.socket);let l=g.get(t);if(l?.get(n)===a)l.delete(n);if(l?.size===0)g.delete(t);return}a.busy=!1,ae(t,n,a)}};if(a.busy){let c=await K(e,r,o,s,i);return{socket:c,reused:!1,release:()=>{C(c)}}}if(!I(a.socket)){if(C(a.socket),u?.delete(n),u?.size===0)g.delete(t)}}let d=await K(e,r,o,s,i),p={socket:d,busy:!0,createdAt:Date.now()};if(u=g.get(t),!u)u=new Map,g.set(t,u);return u.set(n,p),{socket:d,entry:p,reused:!1,release:({keep:c}={})=>{if(!c||!I(p.socket)){if(C(p.socket),p.idleTimer)clearTimeout(p.idleTimer);let l=g.get(t);if(l?.get(n)===p)l.delete(n);if(l?.size===0)g.delete(t);return}p.busy=!1,ae(t,n,p)}}}function be(e){if(e&&typeof e==="object"){let r="message"in e?e.message:void 0;if(typeof r==="string"&&r.length>0)return Error(r);let t="error"in e?e.error:void 0;if(t instanceof Error&&t.message.length>0)return t;if(t&&typeof t==="object"&&"message"in t){let n=t.message;if(typeof n==="string"&&n.length>0)return Error(n)}}return Error("WebSocket error")}function he(e){if(e&&typeof e==="object"){let r="code"in e?e.code:void 0,t="reason"in e?e.reason:void 0,n="wasClean"in e?e.wasClean:void 0,o=typeof r==="number"?` ${r}`:"",s=typeof t==="string"&&t.length>0?` ${t}`:"";if(!s&&r===Ae)s=" message too big";return new ye(`WebSocket closed${o}${s}`.trim(),{code:typeof r==="number"?r:void 0,reason:typeof t==="string"&&t.length>0?t:void 0,wasClean:typeof n==="boolean"?n:void 0})}return Error("WebSocket closed")}async function lt(e){if(typeof e==="string")return e;if(e instanceof ArrayBuffer)return new TextDecoder().decode(new Uint8Array(e));if(ArrayBuffer.isView(e)){let r=e;return new TextDecoder().decode(new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}if(e&&typeof e==="object"&&"arrayBuffer"in e){let t=await e.arrayBuffer();return new TextDecoder().decode(new Uint8Array(t))}return null}async function*dt(e,r,t){let n=[],o=null,s=!1,i=null,u=!1,a=()=>{if(!o)return;let f=o;o=null,f()},d=(f)=>{(async()=>{let m=null;try{if(!f||typeof f!=="object"||!("data"in f))return;if(m=await lt(f.data),!m)return;let b=JSON.parse(m),h=typeof b.type==="string"?b.type:"";if(h==="response.completed"||h==="response.done"||h==="response.incomplete")u=!0,s=!0;n.push(b),a()}catch(b){i=new U(`Invalid Codex WebSocket JSON: ${Xe(b)}`,{cause:b,payload:m}),s=!0,a()}})()},p=(f)=>{i=be(f),s=!0,a()},c=(f)=>{if(u){s=!0,a();return}if(!i)i=he(f);s=!0,a()},l=()=>{i=Error("Request was aborted"),s=!0,a()};e.addEventListener("message",d),e.addEventListener("error",p),e.addEventListener("close",c),r?.addEventListener("abort",l);try{while(!0){if(r?.aborted)throw Error("Request was aborted");if(n.length>0){yield n.shift();continue}if(s)break;let f;await new Promise((m,b)=>{if(o=m,t!==void 0&&t>0)f=setTimeout(()=>{let h=Error(`WebSocket idle timeout after ${t}ms`);i=h,s=!0,o=null,C(e,1000,"idle_timeout"),b(h)},t)}).finally(()=>{if(f)clearTimeout(f)})}if(i)throw i;if(!u)throw Error("WebSocket stream closed before response.completed")}finally{e.removeEventListener("message",d),e.removeEventListener("error",p),e.removeEventListener("close",c),r?.removeEventListener("abort",l)}}function ce(e){let{input:r,previous_response_id:t,...n}=e;return n}function mt(e,r){return JSON.stringify(e??[])===JSON.stringify(r??[])}function yt(e,r){return JSON.stringify(ce(e))===JSON.stringify(ce(r))}function ht(e,r){if(!yt(e,r.lastRequestBody))return;let t=e.input??[],n=[...r.lastRequestBody.input??[],...r.lastResponseItems];if(t.length<n.length)return;let o=t.slice(0,n.length);if(!mt(o,n))return;return t.slice(n.length)}function wt(e,r){let t=e.continuation;if(!t)return r;let n=ht(r,t);if(!n||!t.lastResponseId)return e.continuation=void 0,r;return{...r,previous_response_id:t.lastResponseId,input:n}}async function*gt(e,r){let t=!1;for await(let n of e){if(!t)t=!0,r();yield n}}async function St(e,r,t,n,o,s,i,u,a,d,p,c,l){let{socket:f,entry:m,reused:b,release:h}=await ft(e,t,d,p,l?.signal,a,l?.env),E=!0,w=l?.transport==="websocket-cached"||l?.transport==="auto",v=r,T=w&&m?wt(m,v):v,y=d?Z(d):void 0;if(y){if(y.requests++,b)y.connectionsReused++;else y.connectionsCreated++;if(w)y.cachedContextRequests++;if(T.store===!0)y.storeTrueRequests++;if(y.lastInputItems=T.input?.length??0,T.previous_response_id)y.deltaRequests++,y.lastDeltaInputItems=T.input?.length??0,y.lastPreviousResponseId=T.previous_response_id;else y.fullContextRequests++,y.lastDeltaInputItems=void 0,y.lastPreviousResponseId=void 0}try{if(f.send(JSON.stringify({type:"response.create",...T})),await pt(gt(pe(dt(f,l?.signal,u),n,s,l?.onProviderStreamEvent),i),n,o,s,{serviceTier:l?.serviceTier,grammarToolInputProperties:c,resolveServiceTier:le,applyServiceTierPricing:(x,A)=>fe(x,A,s)}),l?.signal?.aborted)E=!1;else if(w&&m&&n.responseId){let x=ut(s,bt({messages:[n]}),ue,{includeSystemPrompt:!1,grammarToolInputProperties:c}).filter((A)=>A.type!=="function_call_output"&&A.type!=="custom_tool_call_output");m.continuation={lastRequestBody:v,lastResponseId:n.responseId,lastResponseItems:x}}}catch(x){if(m)m.continuation=void 0;throw E=!1,x}finally{h({keep:E})}}async function Et(e){let r=await e.text(),t=r||e.statusText||"Request failed",n;try{let s=JSON.parse(r)?.error;if(s){let i=s.code||s.type||"";if(/usage_limit_reached|usage_not_included|rate_limit_exceeded/i.test(i)||e.status===429){let u=s.plan_type?` (${s.plan_type.toLowerCase()} plan)`:"",a=s.resets_at?Math.max(0,Math.round((s.resets_at*1000-Date.now())/60000)):void 0,d=a!==void 0?` Try again in ~${a} min.`:"";n=`You have hit your ChatGPT usage limit${u}.${d}`.trim()}t=s.message||n||t}}catch{}return{message:t,friendlyMessage:n}}function _t(e){try{let r=e.split(".");if(r.length!==3)throw Error("Invalid token");let n=JSON.parse(atob(r[1]))?.[_e]?.chatgpt_account_id;if(!n)throw Error("No account ID in token");return n}catch{throw Error("Failed to extract accountId from token")}}function we(e,r,t,n){let o=new Headers({originator:"pi","User-Agent":ne()});for(let[s,i]of Object.entries(e||{}))o.set(s,i);for(let[s,i]of Object.entries(r||{}))if(i===null)o.delete(s);else o.set(s,i);return o.set("Authorization",`Bearer ${n}`),o.set("chatgpt-account-id",t),o}function kt(e,r,t,n,o){let s=we(e,r,t,n);if(s.set("OpenAI-Beta","responses=experimental"),s.set("accept","text/event-stream"),s.set("content-type","application/json"),o)s.set("session-id",o),s.set("x-client-request-id",o);return s}function Tt(e,r,t,n,o){let s=we(e,r,t,n);return s.delete("accept"),s.delete("content-type"),s.delete("OpenAI-Beta"),s.delete("openai-beta"),s.set("OpenAI-Beta",et),s.set("x-client-request-id",o),s.set("session-id",o),s}export{st as closeOpenAICodexWebSocketSessions,$t as getOpenAICodexWebSocketDebugStats,zt as resetOpenAICodexWebSocketDebugStats,Ue as stream,Ut as streamSimple};
|
|
10
|
+
`)}if(i)break}}finally{r?.removeEventListener("abort",s);try{await t.cancel()}catch{}try{t.releaseLock()}catch{}}}var et="responses_websockets=2026-02-06",rt=300000,nt=3300000,g=new Map,B=new Map,I=new Set;function Z(e){let r=B.get(e);if(!r)r={requests:0,connectionsCreated:0,connectionsReused:0,cachedContextRequests:0,storeTrueRequests:0,fullContextRequests:0,deltaRequests:0,lastInputItems:0,websocketFailures:0,sseFallbacks:0},B.set(e,r);return r}function $t(e){let r=B.get(e);return r?{...r}:void 0}function zt(e){if(e){B.delete(e),I.delete(e);return}B.clear(),I.clear()}function st(e){let r=(t)=>{if(t.idleTimer)clearTimeout(t.idleTimer);C(t.socket,1000,"debug_close")};if(e){for(let t of g.get(e)?.values()??[])r(t);g.delete(e);return}for(let t of g.values())for(let n of t.values())r(n);g.clear()}eo(st);function me(e){return e?I.has(e):!1}function ie(e){if(!e)return;let r=Z(e);r.sseFallbacks++,r.websocketFallbackActive=me(e)}function ot(e,r){if(!e)return;I.add(e);let t=Z(e);t.websocketFailures++,t.lastWebSocketError=Xe(r),t.websocketFallbackActive=!0}var H=null;async function it(e){if(!e&&H)return H;if(typeof process<"u"&&process.versions?.bun){let t=class extends WebSocket{constructor(n,o){let s={};if(Array.isArray(o)||typeof o==="string")s={protocols:o};else s={...o};let i=Wr(n.toString().replace(/^wss:/,"https:").replace(/^ws:/,"http:"),e);super(n,{...s,...i?{proxy:i.toString()}:{}})}};if(!e)H=t;return t}let r=globalThis.WebSocket;if(typeof r!=="function")return null;return r}class ye extends Error{code;reason;wasClean;constructor(e,r){super(e);this.name="WebSocketCloseError",this.code=r?.code,this.reason=r?.reason,this.wasClean=r?.wasClean}}function at(e){let r=e.readyState;return typeof r==="number"?r:void 0}function P(e){let r=at(e);return r===void 0||r===1}function ct(e){return Date.now()-e.createdAt>=nt}function C(e,r=1000,t="done"){try{e.close(r,t)}catch{}}function ae(e,r,t){if(t.idleTimer)clearTimeout(t.idleTimer);t.idleTimer=setTimeout(()=>{if(t.busy)return;C(t.socket,1000,"idle_timeout");let n=g.get(e);if(n?.get(r)===t)n.delete(r);if(n?.size===0)g.delete(e)},rt)}async function G(e,r,t,n=Ce,o){let s=await it(o);if(!s)throw Error("WebSocket transport is not available in this runtime");let i=Q(r);return delete i["OpenAI-Beta"],new Promise((u,a)=>{let d=!1,p,c;try{c=new s(e,{headers:i})}catch(w){a(w instanceof Error?w:Error(String(w)));return}let l=()=>{if(p)clearTimeout(p),p=void 0;c.removeEventListener("open",m),c.removeEventListener("error",b),c.removeEventListener("close",h),t?.removeEventListener("abort",E)},f=(w,v)=>{if(d)return;if(d=!0,l(),v)C(c,1000,v);a(w)},m=()=>{if(d)return;d=!0,l(),u(c)},b=(w)=>{f(be(w))},h=(w)=>{f(he(w))},E=()=>{f(Error("Request was aborted"),"aborted")};if(c.addEventListener("open",m),c.addEventListener("error",b),c.addEventListener("close",h),t?.addEventListener("abort",E),n>0)p=setTimeout(()=>{f(Error(`WebSocket connect timeout after ${n}ms`),"connect_timeout")},n);if(t?.aborted)E()})}async function ft(e,r,t,n,o,s,i){if(!t){let c=await G(e,r,o,s,i);return{socket:c,reused:!1,release:()=>C(c)}}let u=g.get(t),a=u?.get(n);if(a){if(a.idleTimer)clearTimeout(a.idleTimer),a.idleTimer=void 0;if(!a.busy&&ct(a)){if(C(a.socket,1000,"connection_age_limit"),u?.delete(n),u?.size===0)g.delete(t)}else if(!a.busy&&P(a.socket))return a.busy=!0,{socket:a.socket,entry:a,reused:!0,release:({keep:c}={})=>{if(!c||!P(a.socket)){C(a.socket);let l=g.get(t);if(l?.get(n)===a)l.delete(n);if(l?.size===0)g.delete(t);return}a.busy=!1,ae(t,n,a)}};if(a.busy){let c=await G(e,r,o,s,i);return{socket:c,reused:!1,release:()=>{C(c)}}}if(!P(a.socket)){if(C(a.socket),u?.delete(n),u?.size===0)g.delete(t)}}let d=await G(e,r,o,s,i),p={socket:d,busy:!0,createdAt:Date.now()};if(u=g.get(t),!u)u=new Map,g.set(t,u);return u.set(n,p),{socket:d,entry:p,reused:!1,release:({keep:c}={})=>{if(!c||!P(p.socket)){if(C(p.socket),p.idleTimer)clearTimeout(p.idleTimer);let l=g.get(t);if(l?.get(n)===p)l.delete(n);if(l?.size===0)g.delete(t);return}p.busy=!1,ae(t,n,p)}}}function be(e){if(e&&typeof e==="object"){let r="message"in e?e.message:void 0;if(typeof r==="string"&&r.length>0)return Error(r);let t="error"in e?e.error:void 0;if(t instanceof Error&&t.message.length>0)return t;if(t&&typeof t==="object"&&"message"in t){let n=t.message;if(typeof n==="string"&&n.length>0)return Error(n)}}return Error("WebSocket error")}function he(e){if(e&&typeof e==="object"){let r="code"in e?e.code:void 0,t="reason"in e?e.reason:void 0,n="wasClean"in e?e.wasClean:void 0,o=typeof r==="number"?` ${r}`:"",s=typeof t==="string"&&t.length>0?` ${t}`:"";if(!s&&r===Ae)s=" message too big";return new ye(`WebSocket closed${o}${s}`.trim(),{code:typeof r==="number"?r:void 0,reason:typeof t==="string"&&t.length>0?t:void 0,wasClean:typeof n==="boolean"?n:void 0})}return Error("WebSocket closed")}async function lt(e){if(typeof e==="string")return e;if(e instanceof ArrayBuffer)return new TextDecoder().decode(new Uint8Array(e));if(ArrayBuffer.isView(e)){let r=e;return new TextDecoder().decode(new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}if(e&&typeof e==="object"&&"arrayBuffer"in e){let t=await e.arrayBuffer();return new TextDecoder().decode(new Uint8Array(t))}return null}async function*dt(e,r,t){let n=[],o=null,s=!1,i=null,u=!1,a=()=>{if(!o)return;let f=o;o=null,f()},d=(f)=>{(async()=>{let m=null;try{if(!f||typeof f!=="object"||!("data"in f))return;if(m=await lt(f.data),!m)return;let b=JSON.parse(m),h=typeof b.type==="string"?b.type:"";if(h==="response.completed"||h==="response.done"||h==="response.incomplete")u=!0,s=!0;n.push(b),a()}catch(b){i=new F(`Invalid Codex WebSocket JSON: ${Xe(b)}`,{cause:b,payload:m}),s=!0,a()}})()},p=(f)=>{i=be(f),s=!0,a()},c=(f)=>{if(u){s=!0,a();return}if(!i)i=he(f);s=!0,a()},l=()=>{i=Error("Request was aborted"),s=!0,a()};e.addEventListener("message",d),e.addEventListener("error",p),e.addEventListener("close",c),r?.addEventListener("abort",l);try{while(!0){if(r?.aborted)throw Error("Request was aborted");if(n.length>0){yield n.shift();continue}if(s)break;let f;await new Promise((m,b)=>{if(o=m,t!==void 0&&t>0)f=setTimeout(()=>{let h=Error(`WebSocket idle timeout after ${t}ms`);i=h,s=!0,o=null,C(e,1000,"idle_timeout"),b(h)},t)}).finally(()=>{if(f)clearTimeout(f)})}if(i)throw i;if(!u)throw Error("WebSocket stream closed before response.completed")}finally{e.removeEventListener("message",d),e.removeEventListener("error",p),e.removeEventListener("close",c),r?.removeEventListener("abort",l)}}function ce(e){let{input:r,previous_response_id:t,...n}=e;return n}function mt(e,r){return JSON.stringify(e??[])===JSON.stringify(r??[])}function yt(e,r){return JSON.stringify(ce(e))===JSON.stringify(ce(r))}function ht(e,r){if(!yt(e,r.lastRequestBody))return;let t=e.input??[],n=[...r.lastRequestBody.input??[],...r.lastResponseItems];if(t.length<n.length)return;let o=t.slice(0,n.length);if(!mt(o,n))return;return t.slice(n.length)}function wt(e,r){let t=e.continuation;if(!t)return r;let n=ht(r,t);if(!n||!t.lastResponseId)return e.continuation=void 0,r;return{...r,previous_response_id:t.lastResponseId,input:n}}async function*gt(e,r){let t=!1;for await(let n of e){if(!t)t=!0,r();yield n}}async function St(e,r,t,n,o,s,i,u,a,d,p,c,l){let{socket:f,entry:m,reused:b,release:h}=await ft(e,t,d,p,l?.signal,a,l?.env),E=!0,w=l?.transport==="websocket-cached"||l?.transport==="auto",v=r,T=w&&m?wt(m,v):v,y=d?Z(d):void 0;if(y){if(y.requests++,b)y.connectionsReused++;else y.connectionsCreated++;if(w)y.cachedContextRequests++;if(T.store===!0)y.storeTrueRequests++;if(y.lastInputItems=T.input?.length??0,T.previous_response_id)y.deltaRequests++,y.lastDeltaInputItems=T.input?.length??0,y.lastPreviousResponseId=T.previous_response_id;else y.fullContextRequests++,y.lastDeltaInputItems=void 0,y.lastPreviousResponseId=void 0}try{if(f.send(JSON.stringify({type:"response.create",...T})),await pt(gt(pe(dt(f,l?.signal,u),n,s,l?.onProviderStreamEvent),i),n,o,s,{serviceTier:l?.serviceTier,grammarToolInputProperties:c,resolveServiceTier:le,applyServiceTierPricing:(x,A)=>fe(x,A,s)}),l?.signal?.aborted)E=!1;else if(w&&m&&n.responseId){let x=ut(s,bt({messages:[n]}),ue,{includeSystemPrompt:!1,grammarToolInputProperties:c}).filter((A)=>A.type!=="function_call_output"&&A.type!=="custom_tool_call_output");m.continuation={lastRequestBody:v,lastResponseId:n.responseId,lastResponseItems:x}}}catch(x){if(m)m.continuation=void 0;throw E=!1,x}finally{h({keep:E})}}async function Et(e){let r=await e.text(),t=r||e.statusText||"Request failed",n;try{let s=JSON.parse(r)?.error;if(s){let i=s.code||s.type||"";if(/usage_limit_reached|usage_not_included|rate_limit_exceeded/i.test(i)||e.status===429){let u=s.plan_type?` (${s.plan_type.toLowerCase()} plan)`:"",a=s.resets_at?Math.max(0,Math.round((s.resets_at*1000-Date.now())/60000)):void 0,d=a!==void 0?` Try again in ~${a} min.`:"";n=`You have hit your ChatGPT usage limit${u}.${d}`.trim()}t=s.message||n||t}}catch{}return{message:t,friendlyMessage:n}}function _t(e){try{let r=e.split(".");if(r.length!==3)throw Error("Invalid token");let n=JSON.parse(atob(r[1]))?.[_e]?.chatgpt_account_id;if(!n)throw Error("No account ID in token");return n}catch{throw Error("Failed to extract accountId from token")}}function we(e,r,t,n){let o=new Headers({originator:"pi","User-Agent":oe()});for(let[s,i]of Object.entries(e||{}))o.set(s,i);for(let[s,i]of Object.entries(r||{}))if(i===null)o.delete(s);else o.set(s,i);return o.set("Authorization",`Bearer ${n}`),o.set("chatgpt-account-id",t),o}function kt(e,r,t,n,o){let s=we(e,r,t,n);if(s.set("OpenAI-Beta","responses=experimental"),s.set("accept","text/event-stream"),s.set("content-type","application/json"),o)s.set("session-id",o),s.set("x-client-request-id",o);return s}function Tt(e,r,t,n,o){let s=we(e,r,t,n);return s.delete("accept"),s.delete("content-type"),s.delete("OpenAI-Beta"),s.delete("openai-beta"),s.set("OpenAI-Beta",et),s.set("x-client-request-id",o),s.set("session-id",o),s}export{st as closeOpenAICodexWebSocketSessions,$t as getOpenAICodexWebSocketDebugStats,zt as resetOpenAICodexWebSocketDebugStats,Ue as stream,Ut as streamSimple};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{G}from"./chunk-
|
|
2
|
+
import{G}from"./chunk-38g4jd6v.js";import{_}from"./chunk-ge38dhv9.js";import{Q,we}from"./chunk-tfhp09nj.js";import{U,jt,Ie}from"./chunk-4yxd2kg1.js";class u extends Error{code;diagnosticDetails;constructor(r,t,n){super(r);this.name="PiMessagesResponseError",this.code=t,this.diagnosticDetails=n}}function x(r){try{let t=JSON.parse(r),n=t?.error;return t&&typeof n==="object"&&n!==null&&!Array.isArray(n)?t:void 0}catch{return}}function m(r){return r.length>8192?`${r.slice(0,8192)}\u2026`:r}function y(r,t,n){let e=typeof n?.error?.message==="string"?n.error.message:void 0,s=typeof n?.error?.code==="string"?n.error.code:void 0,a=e??t,o=s?` (${s})`:"";return`${r.status} ${r.statusText}: ${a}${o}`}function k(r,t,n,e){let s=x(e),a=typeof s?.error?.code==="string"?s.error.code:void 0;return new u(y(n,e,s),a,{version:1,provider:r.provider,model:r.id,url:t.toString(),status:n.status,statusText:n.statusText,...s?.error===void 0?{}:{error:s.error},...s?{}:{body:m(e)},timestampMs:Date.now()})}function h(){return{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}function l(r,t){if(!t)return;Ie(r,{type:"pi_messages_rewrite",timestamp:Date.now(),details:{...t}})}function w(r){let t={role:"assistant",content:[],api:r.api,provider:r.provider,model:r.id,usage:h(),stopReason:"pending",timestamp:Date.now()},n=new Map;return(e)=>{switch(e.type){case"done":if(Object.assign(t,{stopReason:e.reason,usage:e.usage,responseId:e.responseId}),e.providerThinkingLevel!==void 0)t.providerThinkingLevel=e.providerThinkingLevel;return l(t,e.rewrite),{type:"done",reason:e.reason,message:t};case"error":if(Object.assign(t,{stopReason:e.reason,usage:e.usage,errorMessage:e.errorMessage,responseId:e.responseId}),e.providerThinkingLevel!==void 0)t.providerThinkingLevel=e.providerThinkingLevel;return l(t,e.rewrite),{type:"error",reason:e.reason,error:t};case"start":break;case"text_start":t.content[e.contentIndex]={type:"text",text:""};break;case"text_delta":t.content[e.contentIndex].text+=e.delta;break;case"text_end":Object.assign(t.content[e.contentIndex],{text:e.content,textSignature:e.contentSignature});break;case"thinking_start":t.content[e.contentIndex]={type:"thinking",thinking:""};break;case"thinking_delta":t.content[e.contentIndex].thinking+=e.delta;break;case"thinking_end":Object.assign(t.content[e.contentIndex],{thinking:e.content,thinkingSignature:e.contentSignature,redacted:e.redacted});break;case"toolcall_start":t.content[e.contentIndex]={type:"toolCall",id:e.id,name:e.toolName,arguments:{}},n.set(e.contentIndex,"");break;case"toolcall_delta":{let s=`${n.get(e.contentIndex)??""}${e.delta}`;n.set(e.contentIndex,s),t.content[e.contentIndex].arguments=G(s);break}case"toolcall_end":return Object.assign(t.content[e.contentIndex],e.toolCall),n.delete(e.contentIndex),{type:"toolcall_end",contentIndex:e.contentIndex,toolCall:t.content[e.contentIndex],partial:t}}return{...e,partial:t}}}async function*b(r){let t=new TextDecoder,n=r.getReader(),e="";try{while(!0){let{done:s,value:a}=await n.read();e+=s?t.decode():t.decode(a,{stream:!0}),e=e.replace(/\r\n/g,`
|
|
3
3
|
`);let o=e.indexOf(`
|
|
4
4
|
|
|
5
5
|
`);while(o!==-1){let c=f(e.slice(0,o));if(c)yield c;e=e.slice(o+2),o=e.indexOf(`
|
|
6
6
|
|
|
7
7
|
`)}if(s)break}if(e.trim()){let s=f(e);if(s)yield s}}finally{n.releaseLock()}}function f(r){let t=r.split(`
|
|
8
|
-
`).find((n)=>n.startsWith("data:"))?.slice(5).trim();return t&&t!=="[DONE]"?JSON.parse(t):void 0}function I(r,t,n){let e=n?"aborted":"error",s={role:"assistant",content:[],api:r.api,provider:r.provider,model:r.id,usage:h(),stopReason:e,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()};if(!n&&t instanceof u)Ie(s,jt("pi_messages_response_failure",t,t.diagnosticDetails));return{type:"error",reason:e,error:s}}function E(r,t){if(r)return r;return
|
|
8
|
+
`).find((n)=>n.startsWith("data:"))?.slice(5).trim();return t&&t!=="[DONE]"?JSON.parse(t):void 0}function I(r,t,n){let e=n?"aborted":"error",s={role:"assistant",content:[],api:r.api,provider:r.provider,model:r.id,usage:h(),stopReason:e,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()};if(!n&&t instanceof u)Ie(s,jt("pi_messages_response_failure",t,t.diagnosticDetails));return{type:"error",reason:e,error:s}}function E(r,t){if(r)return r;return _("PI_CACHE_RETENTION",t)==="long"?"long":void 0}var T=(r,t,n)=>{let e=new U,s=w(r);return(async()=>{try{let a=n?.apiKey;if(!a)throw Error(`No API key provided for provider "${r.provider}"`);let o=new URL(`${r.baseUrl.replace(/\/+$/u,"")}/messages`);if(n?.debug)o.searchParams.set("debug","1");let c={model:r.id,context:t,options:{temperature:n?.temperature,maxTokens:n?.maxTokens,reasoning:n?.reasoning,cacheRetention:E(n?.cacheRetention,n?.env),sessionId:n?.sessionId,toolChoice:n?.toolChoice}},p=await n?.onPayload?.(c,r);if(p!==void 0)c=p;let i=await(n?.fetch??globalThis.fetch)(o,{method:"POST",headers:{authorization:`Bearer ${a}`,accept:"text/event-stream","content-type":"application/json",...we(n?.headers)},body:JSON.stringify(c),signal:n?.signal});if(await n?.onResponse?.({status:i.status,headers:Q(i.headers)},r),!i.ok){let d=await i.text();throw k(r,o,i,d)}if(!i.body)throw Error(`${r.provider} response has no body`);for await(let d of b(i.body)){await n?.onProviderStreamEvent?.(d,r);let g=s(d);if(e.push(g),g.type==="done"||g.type==="error")return}throw Error(`${r.provider} stream ended without a terminal event`)}catch(a){e.push(I(r,a,n?.signal?.aborted??!1))}})(),e},P=(r,t,n)=>{let e=n;return T(r,t,{...n,reasoning:n?.reasoning,toolChoice:n?.toolChoice,debug:e?.debug})};export{u as PiMessagesResponseError,T as stream,P as streamSimple};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{pe,$e,
|
|
2
|
+
import{pe,$e,Br,Fr}from"./chunk-xq74x4gc.js";import{V,J}from"./chunk-8np9b2y8.js";var o="OpenAI Decisions",a=128;function f(r){let t=[r.criteria.true?`True means: ${r.criteria.true}`:"",r.criteria.false?`False means: ${r.criteria.false}`:""].filter(Boolean);return t.length>0?`${r.instructions}
|
|
3
3
|
|
|
4
4
|
${t.join(`
|
|
5
|
-
`)}`:r.instructions}function u(r,t){if(t.type==="choice")return{type:"choice",name:r,instructions:t.instructions,choices:Object.entries(t.criteria).map(([e,i])=>i?{value:e,description:i}:{value:e})};if(t.type==="score")return{type:"score",name:r,instructions:t.instructions,levels:t.criteria.map((e)=>({label:e}))};return{type:"predicate",name:r,instructions:f(t)}}function y(r){let t=JSON.stringify(r.state),e=r.images??[];if(e.length===0)return t;if(e.length>a)throw Error(`${o} accepts at most ${a} images, got ${e.length}`);return[{role:"user",content:[{type:"input_text",text:t},...e.map((i)=>({type:"input_image",image_url:`data:${i.mimeType};base64,${i.data}`}))]}]}function b(r,t){if(!Array.isArray(r))throw Error(`${o} returned invalid probabilities for ${t}`);return Object.fromEntries(r.map((e)=>{if(!pe(e)||typeof e.value!=="string")throw Error(`${o} returned invalid probabilities for ${t}`);return[e.value,$e(o,e.probability,`probability for ${t}.${e.value}`)]}))}function l(r,t,e){if(e.type==="refusal")throw Error(`${o} refused to answer ${r}`);if(t.type==="choice"){if(e.type!=="choice"||typeof e.choice!=="string")throw Error(`${o} did not return a choice answer for ${r}`);return{type:"choice",choice:e.choice,probabilities:b(e.probabilities,r),confidence:$e(o,e.confidence,`confidence for ${r}`)}}if(t.type==="score"){if(e.type!=="score")throw Error(`${o} did not return a score answer for ${r}`);return{type:"score",score:$e(o,e.score,`score for ${r}`),confidence:$e(o,e.confidence,`confidence for ${r}`)}}if(e.type!=="predicate")throw Error(`${o} did not return a predicate answer for ${r}`);return{type:"bool",probability:$e(o,e.probability,`probability for ${r}`)}}function w(r,t){if(!Array.isArray(r))throw Error(`${o} returned an unexpected response`);let e=new Map;for(let i of r)if(pe(i)&&typeof i.name==="string")e.set(i.name,i);return Object.fromEntries(Object.entries(t.questions).map(([i,n])=>{let s=e.get(i);if(!s)throw Error(`${o} did not return an answer for ${i}`);return[i,l(i,n,s)]}))}var h=[504];function d(r){if(r.status===504)return`${o} error (504): the request timed out at the gateway. Very large inputs (above roughly 600K tokens) currently exceed its time limit.`;return J(
|
|
5
|
+
`)}`:r.instructions}function u(r,t){if(t.type==="choice")return{type:"choice",name:r,instructions:t.instructions,choices:Object.entries(t.criteria).map(([e,i])=>i?{value:e,description:i}:{value:e})};if(t.type==="score")return{type:"score",name:r,instructions:t.instructions,levels:t.criteria.map((e)=>({label:e}))};return{type:"predicate",name:r,instructions:f(t)}}function y(r){let t=JSON.stringify(r.state),e=r.images??[];if(e.length===0)return t;if(e.length>a)throw Error(`${o} accepts at most ${a} images, got ${e.length}`);return[{role:"user",content:[{type:"input_text",text:t},...e.map((i)=>({type:"input_image",image_url:`data:${i.mimeType};base64,${i.data}`}))]}]}function b(r,t){if(!Array.isArray(r))throw Error(`${o} returned invalid probabilities for ${t}`);return Object.fromEntries(r.map((e)=>{if(!pe(e)||typeof e.value!=="string")throw Error(`${o} returned invalid probabilities for ${t}`);return[e.value,$e(o,e.probability,`probability for ${t}.${e.value}`)]}))}function l(r,t,e){if(e.type==="refusal")throw Error(`${o} refused to answer ${r}`);if(t.type==="choice"){if(e.type!=="choice"||typeof e.choice!=="string")throw Error(`${o} did not return a choice answer for ${r}`);return{type:"choice",choice:e.choice,probabilities:b(e.probabilities,r),confidence:$e(o,e.confidence,`confidence for ${r}`)}}if(t.type==="score"){if(e.type!=="score")throw Error(`${o} did not return a score answer for ${r}`);return{type:"score",score:$e(o,e.score,`score for ${r}`),confidence:$e(o,e.confidence,`confidence for ${r}`)}}if(e.type!=="predicate")throw Error(`${o} did not return a predicate answer for ${r}`);return{type:"bool",probability:$e(o,e.probability,`probability for ${r}`)}}function w(r,t){if(!Array.isArray(r))throw Error(`${o} returned an unexpected response`);let e=new Map;for(let i of r)if(pe(i)&&typeof i.name==="string")e.set(i.name,i);return Object.fromEntries(Object.entries(t.questions).map(([i,n])=>{let s=e.get(i);if(!s)throw Error(`${o} did not return an answer for ${i}`);return[i,l(i,n,s)]}))}var h=[504];function d(r){if(r.status===504)return`${o} error (504): the request timed out at the gateway. Very large inputs (above roughly 600K tokens) currently exceed its time limit.`;return J(V(r),`${o} error`)}var E=async(r,t,e)=>{let i={api:r.api,provider:r.provider,model:r.id,answers:{},stopReason:"stop",timestamp:Date.now()};try{if(r.api!=="openai-decisions")throw Error(`Unsupported classifier API: ${r.api}`);let n=await Br(o,new URL("decisions",`${r.baseUrl.replace(/\/+$/u,"")}/`),r,{model:r.id,input:y(t),questions:Object.entries(t.questions).map(([c,p])=>u(c,p))},e,h);if(!pe(n))throw Error(`${o} returned an unexpected response`);let s=Fr(n.usage,r);if(s)i.usage=s;return i.answers=w(n.answers,t),i}catch(n){return i.answers={},i.stopReason=e?.signal?.aborted?"aborted":"error",i.errorMessage=d(n),i}};export{E as classify};
|