@bkm016/basalt 0.1.0 → 0.1.2
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 +16 -22
- package/chunk-06hdzq5n.js +2 -0
- package/chunk-09rj27b2.js +2 -0
- package/{chunk-qnr1f5pj.js → chunk-0y7ne3d0.js} +2 -2
- package/{chunk-8wjgbd9k.js → chunk-10xzzn07.js} +2 -2
- package/{chunk-bj14jshr.js → chunk-1qpces5a.js} +2 -2
- package/chunk-1zdwrgd4.js +2 -0
- package/chunk-27gntzs5.js +5 -0
- package/chunk-2esbgxps.js +25 -0
- package/{chunk-913tfr9c.js → chunk-362g64pd.js} +1 -1
- package/{chunk-rjdhaasf.js → chunk-3cjsd292.js} +2 -2
- package/chunk-5c9j8qe4.js +478 -0
- package/chunk-5j1krv9v.js +2 -0
- package/{chunk-vkkj4awb.js → chunk-6hssbcgj.js} +1 -1
- package/chunk-75m78j7x.js +10 -0
- package/{chunk-zt1wvkyf.js → chunk-8296hw9m.js} +1 -1
- package/{chunk-9y69ywyg.js → chunk-8d46jtbj.js} +2 -2
- package/{chunk-sf13azm4.js → chunk-8tjad3r0.js} +4 -4
- package/{chunk-agntrqs9.js → chunk-97rzj7f6.js} +1 -1
- package/{chunk-k7w7ac9q.js → chunk-981f9dw8.js} +8 -8
- package/chunk-9mmz6wt3.js +2 -0
- package/chunk-aefadsy6.js +3 -0
- package/chunk-bannb9xm.js +3 -0
- package/chunk-bpw6q7g0.js +3 -0
- package/{chunk-3jz9g8ab.js → chunk-c7x1zq39.js} +3 -3
- package/{chunk-rv06x0kn.js → chunk-cjc90f84.js} +1 -1
- package/{chunk-6gyhajhx.js → chunk-d2j735sd.js} +2 -2
- package/{chunk-qcwnkr5y.js → chunk-d8gtbw9g.js} +1 -1
- package/{chunk-rm3kcxq9.js → chunk-fjtvjrkg.js} +13 -13
- package/{chunk-qbf8x2ft.js → chunk-fm0k0qtz.js} +1 -1
- package/{chunk-1yzt0qm0.js → chunk-fw2bpqmw.js} +1 -1
- package/{chunk-kgdrjqsy.js → chunk-g2t6t8fk.js} +2 -2
- package/{chunk-wc5j0hfw.js → chunk-gp7y0fja.js} +13 -13
- package/{chunk-5fdgy0q2.js → chunk-gzxnene8.js} +10 -10
- package/{chunk-y9xe9ct2.js → chunk-hwr56pfj.js} +1 -1
- package/{chunk-0hbjv3y6.js → chunk-jwdb0ccj.js} +3 -3
- package/{chunk-x9982ek7.js → chunk-k23t7vhs.js} +5 -5
- package/{chunk-qffb7een.js → chunk-k506w58v.js} +2 -2
- package/{chunk-0tdv0t5q.js → chunk-k6w6y71k.js} +2 -2
- package/chunk-m40gxwq4.js +5 -0
- package/chunk-m8vkwdgr.js +5 -0
- package/{chunk-7yw8aa5j.js → chunk-mvfsxdx6.js} +13 -13
- package/{chunk-3p7q2pyp.js → chunk-nbb9trwz.js} +1 -1
- package/{chunk-0szjy61m.js → chunk-pbcy6zdt.js} +1 -1
- package/chunk-pmqtkqsf.js +2 -0
- package/{chunk-hat3s3pr.js → chunk-pxsrqrd0.js} +1 -1
- package/{chunk-xsbxykr4.js → chunk-qe0teyn1.js} +1 -1
- package/{chunk-2zqny2sy.js → chunk-r7fpkb49.js} +1 -1
- package/{chunk-xhk54h2q.js → chunk-rtzqqngy.js} +4 -4
- package/chunk-ry0z4ev6.js +2 -0
- package/{chunk-0rya8cxe.js → chunk-shadcb9z.js} +2 -2
- package/chunk-shhrr741.js +3753 -0
- package/{chunk-tnrqkc7b.js → chunk-t6zs4kw0.js} +2 -2
- package/chunk-tvm4zmgj.js +3 -0
- package/{chunk-hcn9cf6v.js → chunk-v258nxcz.js} +1 -1
- package/{chunk-a6r4z44b.js → chunk-vk1gxk1t.js} +1 -1
- package/{chunk-d913kpyw.js → chunk-vv7fp27r.js} +2 -2
- package/{chunk-g2k3yhgh.js → chunk-x1xss1d7.js} +3 -3
- package/{chunk-dakrpbe6.js → chunk-x4874m8e.js} +2 -2
- package/{chunk-wx7kdf0b.js → chunk-xfvvh1s5.js} +1 -1
- package/{chunk-1egbcp85.js → chunk-y0m980k3.js} +7 -7
- package/{chunk-5wp4egky.js → chunk-y58ygzn9.js} +4 -4
- package/{chunk-kjr81mrd.js → chunk-y648fzx0.js} +5 -5
- package/{chunk-32at88hc.js → chunk-y7nma9rk.js} +1 -1
- package/{chunk-wd9zxhza.js → chunk-ykens1hy.js} +1 -1
- package/chunk-z55bmysw.js +2 -0
- package/chunk-zmsgwr3s.js +2 -0
- package/{chunk-501zkf9b.js → chunk-ztsjgssj.js} +1 -1
- package/cli.js +89 -0
- package/compiled.js +12 -3762
- package/package.json +4 -3
- package/ui-test-worker.js +67 -67
- package/web/chunk-0sewdyz1.js +1 -0
- package/web/{chunk-g9qv15hq.js → chunk-1z5p7a1h.js} +1 -1
- package/web/chunk-21ke27j6.js +1 -0
- package/web/{chunk-svmhj9hd.js → chunk-24k0r5aq.js} +1 -1
- package/web/{chunk-vqjs551t.js → chunk-284a17k8.js} +1 -1
- package/web/{chunk-3cfabjey.js → chunk-2pjdtesn.js} +14 -14
- package/web/{chunk-ngpq43vn.js → chunk-3mvr2gwh.js} +1 -1
- package/web/chunk-3t3zwx9j.js +1 -0
- package/web/{chunk-ezyvv4ab.js → chunk-3z93efr4.js} +1 -1
- package/web/{chunk-rkesqprv.js → chunk-43jqvsrg.js} +1 -1
- package/web/{chunk-4y2td14d.js → chunk-4bry4xds.js} +2 -2
- package/web/{chunk-ea9swkkt.js → chunk-5e7ygjdn.js} +1 -1
- package/web/{chunk-3ahpr030.js → chunk-5jbf7n5q.js} +1 -1
- package/web/{chunk-bhe4jzha.js → chunk-5rx8rtsa.js} +1 -1
- package/web/chunk-5xc9d5ft.js +1 -0
- package/web/{chunk-fdkp6tzq.js → chunk-693m9kt7.js} +3 -3
- package/web/{chunk-mq92vqb1.js → chunk-6qejm5s2.js} +1 -1
- package/web/{chunk-z1jtv4c0.js → chunk-8ah6ce1b.js} +2 -2
- package/web/{chunk-zk2f7x5e.js → chunk-8e43yaq3.js} +3 -3
- package/web/{chunk-hejz98gw.js → chunk-8wye0wbb.js} +1 -1
- package/web/{chunk-pz934t6t.js → chunk-986z0p48.js} +5 -5
- package/web/{chunk-jtwhjp20.js → chunk-9dd1c37b.js} +77 -77
- package/web/{chunk-sc63gh9d.js → chunk-9re6yttj.js} +2 -2
- package/web/{chunk-1t760bg0.js → chunk-abbvjt4e.js} +1 -1
- package/web/{chunk-1v3d60pp.js → chunk-agmkx996.js} +3 -3
- package/web/{chunk-kbtbbarw.js → chunk-anbn2ttv.js} +2 -2
- package/web/chunk-aqm3spxt.js +1139 -0
- package/web/{chunk-jvhmna7z.js → chunk-avwpjsxw.js} +5 -5
- package/web/chunk-b470hvpk.js +1 -0
- package/web/{chunk-29e1trsq.js → chunk-bt1m87ck.js} +2 -2
- package/web/chunk-cqp1d4p0.js +1 -0
- package/web/{chunk-b5brnfv9.js → chunk-ctcrk3qn.js} +2 -2
- package/web/{chunk-zakv2xdf.js → chunk-ctd8bfg2.js} +1 -1
- package/web/{chunk-5hex8g0y.js → chunk-cwvtraca.js} +1 -1
- package/web/{chunk-1x8fn8w9.js → chunk-dk90px7g.js} +1 -1
- package/web/{chunk-0mrkjnte.js → chunk-ds7srg4p.js} +1 -1
- package/web/{chunk-6r912gfj.js → chunk-dt8ss97f.js} +5 -5
- package/web/{chunk-ykxpb3wv.js → chunk-ezkqa7we.js} +1 -1
- package/web/{chunk-svdzmaxb.js → chunk-f078k1ej.js} +1 -1
- package/web/chunk-fekjj24p.css +1 -0
- package/web/{chunk-v6v831tc.js → chunk-fqj9kry9.js} +5 -5
- package/web/chunk-frjfamx7.js +8 -0
- package/web/{chunk-rz6wwdd5.js → chunk-fy8ey195.js} +1 -1
- package/web/{chunk-p8y0hjx9.js → chunk-g8ee1csm.js} +1 -1
- package/web/{chunk-ktqt87qw.js → chunk-h31p43qa.js} +1 -1
- package/web/chunk-h5p5jsrw.js +1 -0
- package/web/chunk-h9fmr6ch.js +1 -0
- package/web/{chunk-x9q4kh67.js → chunk-jf2ehmvp.js} +2 -2
- package/web/{chunk-canbct9d.js → chunk-jmnaq7c1.js} +1 -1
- package/web/chunk-jq0pw0k2.js +1 -0
- package/web/{chunk-ghxe4gam.js → chunk-jvj66qhs.js} +2 -2
- package/web/{chunk-7f0m2yrd.js → chunk-jzmzhj8z.js} +4 -4
- package/web/chunk-k4cfnvyq.js +1 -0
- package/web/{chunk-942prjb6.js → chunk-kgerjbn4.js} +1 -1
- package/web/{chunk-3bqh2dkw.js → chunk-kww4azv5.js} +5 -5
- package/web/chunk-m29dhjkh.js +1 -0
- package/web/chunk-mj6tee5h.js +1 -0
- package/web/{chunk-a3xt6840.js → chunk-mjpjkyd1.js} +1 -1
- package/web/{chunk-20q90epj.js → chunk-n8sky2q6.js} +1 -1
- package/web/{chunk-3pf33xsm.js → chunk-pk3ap3wh.js} +4 -4
- package/web/{chunk-tfyxp2qs.js → chunk-q1pkntc6.js} +4 -4
- package/web/{chunk-gxn0bey7.js → chunk-qryrg2pq.js} +2 -2
- package/web/{chunk-0xck277j.js → chunk-r92sbgwv.js} +5 -5
- package/web/{chunk-ev1g5cqw.js → chunk-raqqscwa.js} +2 -2
- package/web/{chunk-c85wxnpw.js → chunk-rc2vq9wz.js} +3 -3
- package/web/{chunk-rsn8j7xv.js → chunk-rkj743fg.js} +3 -3
- package/web/{chunk-v47rhg7b.js → chunk-rrws61wf.js} +1 -1
- package/web/{chunk-ytpwz01r.js → chunk-s3hwejnr.js} +2 -2
- package/web/{chunk-bwyw10wx.js → chunk-s3rdx28k.js} +2 -2
- package/web/{chunk-hryhthxr.js → chunk-shbw6wg8.js} +1 -1
- package/web/chunk-szcy5z56.js +1 -0
- package/web/{chunk-ejd43q75.js → chunk-t1xk6hca.js} +4 -4
- package/web/chunk-t2hhdg9r.js +1 -0
- package/web/chunk-tj4cmkwe.js +1 -0
- package/web/{chunk-mdsgekpk.js → chunk-tn1xzmgx.js} +1 -1
- package/web/{chunk-0k0hvh59.js → chunk-tnv7z83q.js} +1 -1
- package/web/chunk-v2b5q0n5.js +1 -0
- package/web/{chunk-haphmhz8.js → chunk-vj6kstpp.js} +5 -5
- package/web/{chunk-e5rmr47n.js → chunk-vjqmnkh2.js} +1 -1
- package/web/{chunk-vfqe8298.js → chunk-vkc149rb.js} +1 -1
- package/web/{chunk-n5fn9khr.js → chunk-vny496ba.js} +1 -1
- package/web/{chunk-s8vapqgr.js → chunk-vz5ck6x9.js} +1 -1
- package/web/{chunk-6atq9qtt.js → chunk-xa88zgkr.js} +1 -1
- package/web/{chunk-d4d3mnak.js → chunk-xdcs8qz3.js} +4 -4
- package/web/chunk-y5x74t89.js +1 -0
- package/web/{chunk-x3zwjkwg.js → chunk-yen2kkn2.js} +1 -1
- package/web/{chunk-vadqkz3x.js → chunk-yjv2c45j.js} +4 -4
- package/web/chunk-yx3dh5hg.js +1 -0
- package/web/chunk-yz4fmtk2.js +1 -0
- package/web/{chunk-4b5mt5pd.js → chunk-z24vs8q9.js} +3 -3
- package/web/chunk-z5j6x6j8.js +2 -0
- package/web/chunk-z5stjrhc.js +1 -0
- package/web/{chunk-3pm4645m.js → chunk-z760wagr.js} +1 -1
- package/web/{chunk-nerx2q12.js → chunk-znvnb9dh.js} +1 -1
- package/web/{chunk-55kw67nv.js → chunk-zrzq29e6.js} +1 -1
- package/web/{icon-yx2p2pye.svg → icon-1wgy7kzy.svg} +13 -13
- package/web/icon.svg +13 -13
- package/web/index.html +2 -2
- package/web/install.sh +0 -0
- package/web/sw.js +9 -0
- package/worker.js +1 -1
- package/chunk-1fv27j4b.js +0 -3
- package/chunk-356q8e0y.js +0 -10
- package/chunk-58vz2qsq.js +0 -2
- package/chunk-665jzf2w.js +0 -25
- package/chunk-97kjn55j.js +0 -2
- package/chunk-b9bg5fhd.js +0 -2
- package/chunk-c25s4w6a.js +0 -5
- package/chunk-j2x0g1vg.js +0 -2
- package/chunk-k0t23cmx.js +0 -2
- package/chunk-m38ber71.js +0 -2
- package/chunk-rad3dm0q.js +0 -2
- package/chunk-sytpmbfp.js +0 -471
- package/chunk-t057xfrt.js +0 -5
- package/chunk-tjpvayr1.js +0 -2
- package/chunk-ve7qx8wm.js +0 -3
- package/chunk-y8ced1jm.js +0 -5
- package/chunk-yb1jxgnk.js +0 -2
- package/web/chunk-00mq7bhx.js +0 -1
- package/web/chunk-0atfn8jf.js +0 -1
- package/web/chunk-310yey4q.js +0 -1
- package/web/chunk-32ezm0ry.js +0 -1136
- package/web/chunk-3hvgs5aw.js +0 -1
- package/web/chunk-3kh6zefg.js +0 -1
- package/web/chunk-401v5ht6.js +0 -8
- package/web/chunk-5r5kv4gh.js +0 -1
- package/web/chunk-95q1bwxn.js +0 -1
- package/web/chunk-9s7c178f.js +0 -1
- package/web/chunk-benmmqt2.js +0 -1
- package/web/chunk-bgqdcnke.js +0 -1
- package/web/chunk-eqegxtdt.js +0 -1
- package/web/chunk-gmfp7fg4.js +0 -1
- package/web/chunk-gxay64d5.js +0 -1
- package/web/chunk-jg6nzn6q.js +0 -1
- package/web/chunk-kx2xk3bb.js +0 -1
- package/web/chunk-ry9256r7.js +0 -1
- package/web/chunk-vfqdy860.js +0 -1
- package/web/chunk-wtawdeej.css +0 -1
- package/web/chunk-x59p8sg2.js +0 -1
- package/web/chunk-y7z144e3.js +0 -1
- package/web/chunk-ydgqrfvw.js +0 -2
- package/web/chunk-yj1a2d37.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{Tn}from"./chunk-mvfsxdx6.js";import"./chunk-pxsrqrd0.js";import"./chunk-m8vkwdgr.js";import{Ir,si}from"./chunk-d2j735sd.js";import{at,Je,lt}from"./chunk-x1xss1d7.js";import{Ge}from"./chunk-bpw6q7g0.js";import{ee}from"./chunk-tvm4zmgj.js";import{ie}from"./chunk-d48bfd2e.js";import{q,j}from"./chunk-y69ewdn2.js";import{Ee,ct,V}from"./chunk-3cjsd292.js";import{z}from"./chunk-x4874m8e.js";import{re,ge,ye,H}from"./chunk-8tjad3r0.js";import{M}from"./chunk-shadcb9z.js";var g=new Set(["openai","openai-codex","opencode","azure"]),h=16;function y(r){return j(q(r),"Azure OpenAI API error")}var A=(r,a,e)=>{let t=new M,i=re(a,r.compat?.supportsMidConvoSystemMessages);return(async()=>{let n=Ir(r,e),s={role:"assistant",content:[],api:"azure-openai-responses",provider:r.provider,model:r.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 p=e?.apiKey;if(!p)throw Error(`No API key for provider: ${r.provider}`);let c=R(r,p,e),o=Ee(ge(i.messages),r.compat?.supportsOpenAIGrammarTools??!1),m=T(r,i,e,n,o),u=await e?.onPayload?.(m,r);if(u!==void 0)m=u;let f={...e?.signal?{signal:e.signal}:{},...e?.timeoutMs!==void 0?{timeout:e.timeoutMs}:{},maxRetries:0},{data:d,response:l}=await ie(()=>c.responses.create(m,f).withResponse(),{maxRetries:e?.maxRetries,maxRetryDelayMs:e?.maxRetryDelayMs,signal:e?.signal});if(await e?.onResponse?.({status:l.status,headers:z(l.headers)},r),t.push({type:"start",partial:s}),await lt(d,s,t,r,{onProviderStreamEvent:e?.onProviderStreamEvent,grammarToolInputProperties:o}),e?.signal?.aborted)throw Error("Request was aborted");if(s.stopReason==="pending")throw Error("Azure OpenAI Responses stream ended without a stop reason");if(s.stopReason==="aborted"||s.stopReason==="error")throw Error(s.errorMessage||"An unknown error occurred");t.push({type:"done",reason:s.stopReason,message:s}),t.end()}catch(p){for(let c of s.content)delete c.index,delete c.partialJson,delete c.customInput;s.stopReason=e?.signal?.aborted?"aborted":"error",s.errorMessage=y(p),t.push({type:"error",reason:s.stopReason,error:s}),t.end()}})(),t},N=(r,a,e)=>{let t=e?.apiKey;if(!t)throw Error(`No API key for provider: ${r.provider}`);let i={...V(r,a,e,t),toolChoice:e?.toolChoice},n=e?.reasoning?H(r,e.reasoning):void 0;return A(r,a,{...i,reasoningEffort:n==="off"?void 0:n})};function R(r,a,e){let t={"User-Agent":ee(),...r.headers};if(e?.headers)Object.assign(t,e.headers);let{baseUrl:i,apiVersion:n}=si(r,e);return new Tn({apiKey:a,apiVersion:n,dangerouslyAllowBrowser:!0,fetch:e?.fetch,defaultHeaders:t,baseURL:i})}function T(r,a,e,t,i=Ee(ge(a.messages),r.compat?.supportsOpenAIGrammarTools??!1)){let n=r.compat?.supportsAdditionalTools??!1,s=r.compat?.supportsToolSearch??!1,p=ye(a.messages,n||s),c=at(r,a,g,{grammarToolInputProperties:i,supportsMidConvoSystemMessages:r.compat?.supportsMidConvoSystemMessages??!1,supportsAdditionalTools:n,supportsToolSearch:s,toolOptions:{supportsStrictMode:r.compat?.supportsStrictMode??!0,supportsOpenAIGrammarTools:r.compat?.supportsOpenAIGrammarTools??!1}}),o={model:t,input:c,stream:!0,prompt_cache_key:Ge(e?.sessionId),store:!1};if(e?.maxTokens)o.max_output_tokens=Math.max(e.maxTokens,h);if(e?.temperature!==void 0)o.temperature=e?.temperature;if(p.requestTools.length>0)o.tools=Je(p.requestTools,{supportsStrictMode:r.compat?.supportsStrictMode??!0,supportsOpenAIGrammarTools:r.compat?.supportsOpenAIGrammarTools??!1});if(e?.toolChoice!==void 0)o.tool_choice=e.toolChoice;let m=e?.reasoningEffort??(e?.reasoningSummary?"medium":void 0);if(r.reasoning){if(m){let f=e?.reasoningEffort?r.thinkingLevelMap?.[e.reasoningEffort]??e.reasoningEffort:m;o.reasoning={effort:f,summary:e?.reasoningSummary||"auto"},o.include=["reasoning.encrypted_content"]}else if(r.thinkingLevelMap?.off!==null)o.reasoning={effort:r.thinkingLevelMap?.off??"none"}}let u=ct(r,m??"off",e?.samplingParams);if(u)Object.assign(o,u);return o}export{A as stream,N as streamSimple};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{L}from"./chunk-
|
|
2
|
+
import{L}from"./chunk-jwdb0ccj.js";import{b}from"./chunk-981f9dw8.js";import{i}from"./chunk-0y7ne3d0.js";var u=i(b());var B=i(b());var p=i(L()),d=i(b());var P=i(L()),f=i(b()),S=(e,t,r)=>{let o={EcsContainer:async(s)=>{let{fromHttp:a}=await import("./chunk-cjc90f84.js"),{fromContainerMetadata:n}=await import("./chunk-y7nma9rk.js");return r?.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer"),async()=>f.chain(a(s??{}),n(s))().then(m)},Ec2InstanceMetadata:async(s)=>{r?.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata");let{fromInstanceMetadata:a}=await import("./chunk-y7nma9rk.js");return async()=>a(s)().then(m)},Environment:async(s)=>{r?.debug("@aws-sdk/credential-provider-ini - credential_source is Environment");let{fromEnv:a}=await import("./chunk-09rj27b2.js");return async()=>a(s)().then(m)}};if(e in o)return o[e];else throw new f.CredentialsProviderError(`Unsupported credential source in profile ${t}. Got ${e}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,{logger:r})},m=(e)=>P.setCredentialFeature(e,"CREDENTIALS_PROFILE_NAMED_PROVIDER","p");var I=(e,{profile:t="default",logger:r}={})=>Boolean(e)&&typeof e==="object"&&typeof e.role_arn==="string"&&["undefined","string"].indexOf(typeof e.role_session_name)>-1&&["undefined","string"].indexOf(typeof e.external_id)>-1&&["undefined","string"].indexOf(typeof e.mfa_serial)>-1&&(q(e,{profile:t,logger:r})||H(e,{profile:t,logger:r})),q=(e,{profile:t,logger:r})=>{let o=typeof e.source_profile==="string"&&typeof e.credential_source>"u";if(o)r?.debug?.(` ${t} isAssumeRoleWithSourceProfile source_profile=${e.source_profile}`);return o},H=(e,{profile:t,logger:r})=>{let o=typeof e.credential_source==="string"&&typeof e.source_profile>"u";if(o)r?.debug?.(` ${t} isCredentialSourceProfile credential_source=${e.credential_source}`);return o},R=async(e,t,r,o,s={},a)=>{r.logger?.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)");let n=t[e],{source_profile:c,region:K}=n;if(!r.roleAssumer){let{getDefaultRoleAssumer:l}=await import("./chunk-xfvvh1s5.js");r.roleAssumer=l({...r.clientConfig,credentialProviderLogger:r.logger,parentClientConfig:{...o,...r?.parentClientConfig,region:K??r?.parentClientConfig?.region??o?.region}},r.clientPlugins)}if(c&&c in s)throw new d.CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile ${d.getProfileName(r)}. Profiles visited: `+Object.keys(s).join(", "),{logger:r.logger});r.logger?.debug(`@aws-sdk/credential-provider-ini - finding credential resolver using ${c?`source_profile=[${c}]`:`profile=[${e}]`}`);let E=c?a(c,t,r,o,{...s,[c]:!0},v(t[c]??{})):(await S(n.credential_source,e,r.logger)(r))();if(v(n))return E.then((l)=>p.setCredentialFeature(l,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"));else{let l={RoleArn:n.role_arn,RoleSessionName:n.role_session_name||`aws-sdk-js-${Date.now()}`,ExternalId:n.external_id,DurationSeconds:parseInt(n.duration_seconds||"3600",10)},{mfa_serial:_}=n;if(_){if(!r.mfaCodeProvider)throw new d.CredentialsProviderError(`Profile ${e} requires multi-factor authentication, but no MFA code callback was provided.`,{logger:r.logger,tryNextLink:!1});l.SerialNumber=_,l.TokenCode=await r.mfaCodeProvider(_)}let G=await E;return r.roleAssumer(G,l).then((U)=>p.setCredentialFeature(U,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"))}},v=(e)=>!e.role_arn&&!!e.credential_source;var A=i(L()),O=(e)=>Boolean(e&&e.login_session),x=async(e,t,r)=>{let{fromLoginCredentials:o}=await import("./chunk-97rzj7f6.js"),s=await o({...t,profile:e})({callerClientConfig:r});return A.setCredentialFeature(s,"CREDENTIALS_PROFILE_LOGIN","AC")};var k=i(L()),F=(e)=>Boolean(e)&&typeof e==="object"&&typeof e.credential_process==="string",h=async(e,t)=>{let{fromProcess:r}=await import("./chunk-vk1gxk1t.js"),o=await r({...e,profile:t})();return k.setCredentialFeature(o,"CREDENTIALS_PROFILE_PROCESS","v")};var C=i(L()),D=async(e,t,r={},o)=>{let{fromSSO:s}=await import("./chunk-ztsjgssj.js");return s({profile:e,logger:r.logger,parentClientConfig:r.parentClientConfig,clientConfig:r.clientConfig})({callerClientConfig:o}).then((a)=>{if(t.sso_session)return C.setCredentialFeature(a,"CREDENTIALS_PROFILE_SSO","r");else return C.setCredentialFeature(a,"CREDENTIALS_PROFILE_SSO_LEGACY","t")})},T=(e)=>e&&(typeof e.sso_start_url==="string"||typeof e.sso_account_id==="string"||typeof e.sso_session==="string"||typeof e.sso_region==="string"||typeof e.sso_role_name==="string");var W=i(L()),y=(e)=>Boolean(e)&&typeof e==="object"&&typeof e.aws_access_key_id==="string"&&typeof e.aws_secret_access_key==="string"&&["undefined","string"].indexOf(typeof e.aws_session_token)>-1&&["undefined","string"].indexOf(typeof e.aws_account_id)>-1,g=async(e,t)=>{t?.logger?.debug("@aws-sdk/credential-provider-ini - resolveStaticCredentials");let r={accessKeyId:e.aws_access_key_id,secretAccessKey:e.aws_secret_access_key,sessionToken:e.aws_session_token,...e.aws_credential_scope&&{credentialScope:e.aws_credential_scope},...e.aws_account_id&&{accountId:e.aws_account_id}};return W.setCredentialFeature(r,"CREDENTIALS_PROFILE","n")};var N=i(L()),j=(e)=>Boolean(e)&&typeof e==="object"&&typeof e.web_identity_token_file==="string"&&typeof e.role_arn==="string"&&["undefined","string"].indexOf(typeof e.role_session_name)>-1,M=async(e,t,r)=>{let{fromTokenFile:o}=await import("./chunk-pbcy6zdt.js"),s=await o({webIdentityTokenFile:e.web_identity_token_file,roleArn:e.role_arn,roleSessionName:e.role_session_name,roleAssumerWithWebIdentity:t.roleAssumerWithWebIdentity,logger:t.logger,parentClientConfig:t.parentClientConfig})({callerClientConfig:r});return N.setCredentialFeature(s,"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN","q")};var w=async(e,t,r,o,s={},a=!1)=>{let n=t[e];if(Object.keys(s).length>0&&y(n))return g(n,r);if(a||I(n,{profile:e,logger:r.logger}))return R(e,t,r,o,s,w);if(y(n))return g(n,r);if(j(n))return M(n,r,o);if(F(n))return h(r,e);if(T(n))return await D(e,n,r,o);if(O(n))return x(e,r,o);throw new B.CredentialsProviderError(`Could not resolve credentials using profile: [${e}] in configuration/credentials file(s).`,{logger:r.logger})};var V=(e={})=>async({callerClientConfig:t}={})=>{e.logger?.debug("@aws-sdk/credential-provider-ini - fromIni");let r=await u.parseKnownFiles(e);return w(u.getProfileName({profile:e.profile??t?.profile}),r,e,t)};export{V as fromIni};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import"./chunk-pxsrqrd0.js";import"./chunk-m8vkwdgr.js";import{xr}from"./chunk-v9fea96h.js";import{at,Je,lt}from"./chunk-x1xss1d7.js";import{Ge}from"./chunk-bpw6q7g0.js";import{ee}from"./chunk-tvm4zmgj.js";import{Cr}from"./chunk-1qpces5a.js";import{q,j}from"./chunk-y69ewdn2.js";import{Ee,V}from"./chunk-3cjsd292.js";import{z}from"./chunk-x4874m8e.js";import{$n,Gr}from"./chunk-8d46jtbj.js";import{N,ht,pe,re,ge,ye,H}from"./chunk-8tjad3r0.js";import{M,Ve,qt,Te}from"./chunk-shadcb9z.js";var ve="https://chatgpt.com/backend-api",Re="https://api.openai.com/auth",Ce=0,te=1000,xe=60000,Oe=15000,Ae=3,ue=new Set(["openai","openai-codex","opencode"]),Me=1009,We="websocket_connection_limit_reached",Le="previous_response_not_found",De=new Set(["completed","incomplete","failed","cancelled","queued","in_progress"]);function ne(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 Ne(e){return/GoUsageLimitError|FreeUsageLimitError|Monthly usage limit reached|available balance|insufficient_quota|out of budget|quota exceeded|billing/i.test(e)}function qe(e,r){if(e===429&&Ne(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 Be(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 Y extends Error{}function Pe(e,r){let t=r?.maxRetryDelayMs??xe;if(t>0&&e>t)throw new Y(`Server requested ${Math.ceil(e/1000)}s retry delay (max: ${Math.ceil(t/1000)}s)`);return e}function se(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 oe(e){if(e===void 0)return;if(!Number.isFinite(e)||e<0)throw Error(`Invalid timeoutMs: ${String(e)}`);return Math.floor(e)}function Ie(){if(typeof process>"u"||!(process.versions?.node||process.versions?.bun))return null;return process.getBuiltinModule?.("node:zlib")??null}function Fe(e){let r=Ie();if(!r||typeof r.zstdCompressSync!=="function")return null;try{let t=r.zstdCompressSync(e,{params:{[r.constants.ZSTD_c_compressionLevel]:Ae}});return new Uint8Array(t)}catch{return null}}var Ue=(e,r,t)=>{let n=new M,o=re(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=Ee(ge(o.messages),e.compat?.supportsOpenAIGrammarTools??!1),d=t?.cacheRetention==="none"?void 0:t?.sessionId,p=Ge(d),c=$e(e,o,t,p,a),l=await t?.onPayload?.(c,e);if(l!==void 0)c=l;let f=p||Gr(),m=kt(e.headers,t?.headers,u,i,p),b=Tt(e.headers,t?.headers,u,i,f),h=JSON.stringify(c),E=oe(t?.timeoutMs),w=oe(t?.websocketConnectTimeoutMs),v=t?.transport||"auto",T=!1,y=v!=="sse"&&be(d);if(y)ie(d);if(v!=="sse"&&!y){let S=!1,k=!1,O=!1;while(!0){S=!1;try{if(await St(He(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");ne(s),n.push({type:"done",reason:s.stopReason,message:s}),n.end();return}catch(R){let B=t?.signal?.aborted,P=!S&&Xe(R),W=Ye(R);if(!B&&W&&!O){O=!0;continue}if(!B&&P&&!k){k=!0;continue}if(B||je(R)&&!P)throw R;if(Te(s,qt("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,K=t?.maxRetries??Ce;for(let S=0;S<=K;S++){if(t?.signal?.aborted)throw Error("Request was aborted");try{let k=E!==void 0&&E>0?AbortSignal.timeout(E):void 0,O=xr([t?.signal,k]);try{_=await(t?.fetch??globalThis.fetch)(de(e.baseUrl),{method:"POST",headers:m,body:A,signal:O.signal})}catch(W){if(k?.aborted&&!t?.signal?.aborted)throw Error(`Codex SSE response headers timed out after ${E}ms`);throw W}finally{O.cleanup()}if(await t?.onResponse?.({status:_.status,headers:z(_.headers)},e),_.ok)break;let R=await _.text();if(S<K&&qe(_.status,R)){let W=Be(_.headers),ke=W===void 0?te*2**S:Pe(W,t);await se(ke,t?.signal);continue}let B=new Response(R,{status:_.status,statusText:_.statusText}),P=await Et(B);throw Error(P.friendlyMessage||P.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<K&&!(D instanceof Y)&&!D.message.includes("usage limit")){let O=te*2**S;await se(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 Ke(_,s,n,e,a,t),t?.signal?.aborted)throw Error("Request was aborted");ne(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(q(i)),n.push({type:"error",reason:s.stopReason,error:s}),n.end()}})(),n},$t=(e,r,t)=>{let n=t?.apiKey;if(!n)throw Error(`No API key for provider: ${e.provider}`);let o={...V(e,r,t,n),toolChoice:t?.toolChoice},s=t?.reasoning?H(e,t.reasoning):void 0;return Ue(e,r,{...o,reasoningEffort:s==="off"?void 0:s})};function $e(e,r,t,n,o=Ee(ge(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=ye(r.messages,u||a),p=at(e,r,ue,{includeSystemPrompt:!1,grammarToolInputProperties:o,supportsMidConvoSystemMessages:e.compat?.supportsMidConvoSystemMessages??!1,supportsAdditionalTools:u,supportsToolSearch:a,toolOptions:{strict:null,supportsStrictMode:s,supportsOpenAIGrammarTools:i}}),c=pe(r.messages),l=c?N(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=Je(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:ve).replace(/\/+$/,"");if(t.endsWith("/codex/responses"))return t;if(t.endsWith("/codex"))return`${t}/responses`;return`${t}/codex/responses`}function He(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 Ke(e,r,t,n,o,s){await lt(me(et(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 J extends Error{payload;constructor(e,r){super(e);this.name="CodexProtocolError",this.payload=r?.payload,this.cause=r?.cause}}class Z extends Error{constructor(e){super(Ve(e));this.name="ProviderStreamEventCallbackError",this.cause=e}}function je(e){return e instanceof L||e instanceof J||e instanceof Z}function Xe(e){return e instanceof L&&e.code===We}function Ye(e){return e instanceof L&&e.code===Le}function Ze(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*me(e,r,t,n){for await(let o of e){try{await n?.(o,t)}catch(i){throw new Z(i)}let s=typeof o.type==="string"?o.type:void 0;if(!s)continue;if(s==="error"){let{code:i,message:u}=Ze(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:Qe(i.status)}:i;yield{...o,type:"response.completed",response:u};return}yield o}}function Qe(e){if(typeof e!=="string")return;return De.has(e)?e:void 0}async function*et(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
|
+
|
|
4
|
+
`;let a=o.indexOf(`
|
|
5
|
+
|
|
6
|
+
`);while(a!==-1){let d=o.slice(0,a);o=o.slice(a+2);let p=d.split(`
|
|
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 J(`Invalid Codex SSE JSON: ${Ve(l)}`,{cause:l,payload:c})}}a=o.indexOf(`
|
|
9
|
+
|
|
10
|
+
`)}if(i)break}}finally{r?.removeEventListener("abort",s);try{await t.cancel()}catch{}try{t.releaseLock()}catch{}}}var tt="responses_websockets=2026-02-06",rt=300000,nt=3300000,g=new Map,I=new Map,U=new Set;function Q(e){let r=I.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},I.set(e,r);return r}function zt(e){let r=I.get(e);return r?{...r}:void 0}function Jt(e){if(e){I.delete(e),U.delete(e);return}I.clear(),U.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()}$n(st);function be(e){return e?U.has(e):!1}function ie(e){if(!e)return;let r=Q(e);r.sseFallbacks++,r.websocketFallbackActive=be(e)}function ot(e,r){if(!e)return;U.add(e);let t=Q(e);t.websocketFailures++,t.lastWebSocketError=Ve(r),t.websocketFallbackActive=!0}var G=null;async function it(e){if(!e&&G)return G;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=Cr(n.toString().replace(/^wss:/,"https:").replace(/^ws:/,"http:"),e);super(n,{...s,...i?{proxy:i.toString()}:{}})}};if(!e)G=t;return t}let r=globalThis.WebSocket;if(typeof r!=="function")return null;return r}class he 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 ct(e){let r=e.readyState;return typeof r==="number"?r:void 0}function F(e){let r=ct(e);return r===void 0||r===1}function ut(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 X(e,r,t,n=Oe,o){let s=await it(o);if(!s)throw Error("WebSocket transport is not available in this runtime");let i=z(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(we(w))},h=(w)=>{f(Se(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 X(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&&ut(a)){if(C(a.socket,1000,"connection_age_limit"),u?.delete(n),u?.size===0)g.delete(t)}else if(!a.busy&&F(a.socket))return a.busy=!0,{socket:a.socket,entry:a,reused:!0,release:({keep:c}={})=>{if(!c||!F(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 X(e,r,o,s,i);return{socket:c,reused:!1,release:()=>{C(c)}}}if(!F(a.socket)){if(C(a.socket),u?.delete(n),u?.size===0)g.delete(t)}}let d=await X(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||!F(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 we(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 Se(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===Me)s=" message too big";return new he(`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 dt(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*pt(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 dt(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 J(`Invalid Codex WebSocket JSON: ${Ve(b)}`,{cause:b,payload:m}),s=!0,a()}})()},p=(f)=>{i=we(f),s=!0,a()},c=(f)=>{if(u){s=!0,a();return}if(!i)i=Se(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 bt(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=bt(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?Q(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 lt(gt(me(pt(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=at(s,ht({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]))?.[Re]?.chatgpt_account_id;if(!n)throw Error("No account ID in token");return n}catch{throw Error("Failed to extract accountId from token")}}function _e(e,r,t,n){let o=new Headers({originator:"pi","User-Agent":ee()});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=_e(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=_e(e,r,t,n);return s.delete("accept"),s.delete("content-type"),s.delete("OpenAI-Beta"),s.delete("openai-beta"),s.set("OpenAI-Beta",tt),s.set("x-client-request-id",o),s.set("session-id",o),s}export{st as closeOpenAICodexWebSocketSessions,zt as getOpenAICodexWebSocketDebugStats,Jt as resetOpenAICodexWebSocketDebugStats,Ue as stream,$t as streamSimple};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{se,De,vr,Ar}from"./chunk-
|
|
2
|
+
import{se,De,vr,Ar}from"./chunk-nbb9trwz.js";import{q,j}from"./chunk-y69ewdn2.js";function a(r,o,s){if(!se(o))throw Error(`${r} returned invalid probabilities for ${s}`);return Object.fromEntries(Object.entries(o).map(([t,e])=>[t,De(r,e,`probability for ${s}.${t}`)]))}function f(r,o,s){if(!se(o))throw Error(`${r} returned an unexpected response`);let t=[];for(let[e,n]of Object.entries(s.questions)){let i=o[e];if(!se(i))throw Error(`${r} did not return an answer for ${e}`);if(n.type==="choice"){if(i.type!=="choice"||typeof i.choice!=="string")throw Error(`${r} did not return a choice answer for ${e}`);t.push([e,{type:"choice",choice:i.choice,probabilities:a(r,i.probabilities,e),confidence:De(r,i.confidence,`confidence for ${e}`)}])}else if(n.type==="score"){if(i.type!=="score")throw Error(`${r} did not return a score answer for ${e}`);t.push([e,{type:"score",score:De(r,i.score,`score for ${e}`),confidence:De(r,i.confidence,`confidence for ${e}`)}])}else{if(i.type!=="noul")throw Error(`${r} did not return a bool answer for ${e}`);t.push([e,{type:"bool",probability:De(r,i.noul,`probability for ${e}`)}])}}return Object.fromEntries(t)}function p(r){return{state:r.state,questions:Object.fromEntries(Object.entries(r.questions).map(([o,s])=>[o,s.type==="bool"?{...s,type:"noul"}:s]))}}async function wr(r,o,s,t){let e={api:o.api,provider:o.provider,model:o.id,answers:{},stopReason:"stop",timestamp:Date.now()};try{if(o.api!==r.api)throw Error(`Unsupported classifier API: ${o.api}`);if(s.images?.length)throw Error(`${r.label} does not support image input`);let n=await vr(r.label,r.url(o),o,r.payload(o,p(s)),t),i=r.output(n),c=Ar(i.usage,o);if(c)e.usage=c;return e.answers=f(r.label,i.answers,s),e}catch(n){return e.stopReason=t?.signal?.aborted?"aborted":"error",e.errorMessage=j(q(n),`${r.label} error`),e}}
|
|
3
3
|
export{wr};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var f=new Set;function $n(r){return f.add(r),()=>{f.delete(r)}}function
|
|
3
|
-
export{$n,
|
|
2
|
+
var f=new Set;function $n(r){return f.add(r),()=>{f.delete(r)}}function _i(r){let t=[];for(let s of f)try{s(r)}catch(e){t.push(e)}if(t.length>0)throw AggregateError(t,"Failed to cleanup session resources")}var a=(1n<<41n)-1n,u=-1,n;function Gr(r){let t=r??Date.now();if(!Number.isInteger(t)||t<0||t>281474976710655)throw RangeError("UUIDv7 timestamp must be an integer between 0 and 281474976710655");let s=r===void 0?Math.max(t,u):r;if(r===void 0)u=s;let e=new Uint8Array(16);if(globalThis.crypto.getRandomValues(e),n===void 0)n=BigInt(e[1])<<32n|BigInt(e[2])<<24n|BigInt(e[3])<<16n|BigInt(e[4])<<8n|BigInt(e[5]);else{if(n===a)throw RangeError("UUIDv7 generator sequence exhausted");n++}let c=BigInt(s);for(let o=5;o>=0;o--)e[o]=Number(c>>BigInt((5-o)*8))&255;e[6]=112|Number(n>>37n&0x0fn),e[7]=Number(n>>29n&0xffn),e[8]=128|Number(n>>23n&0x3fn),e[9]=Number(n>>15n&0xffn),e[10]=Number(n>>7n&0xffn),e[11]=Number((n&0x7fn)<<1n)|e[11]&1;let i=Array.from(e,(o)=>o.toString(16).padStart(2,"0"));return`${i.slice(0,4).join("")}-${i.slice(4,6).join("")}-${i.slice(6,8).join("")}-${i.slice(8,10).join("")}-${i.slice(10).join("")}`}
|
|
3
|
+
export{$n,_i,Gr};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{M,Ve}from"./chunk-
|
|
2
|
+
import{M,Ve}from"./chunk-shadcb9z.js";function z(e,t,r){return{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:"error",errorMessage:t instanceof Error?t.message:String(t),timestamp:r}}function G(e){return typeof e.result==="function"}async function F(e,t){for await(let r of t)e.push(r);e.end(G(t)?await t.result():void 0)}function Ie(e,t){let r=Date.now(),n=new M;return t().then((s)=>F(n,s)).catch((s)=>{let o=z(e,s,r);n.push({type:"error",reason:"error",error:o}),n.end(o)}),n}function te(e,t){let r={stream:(n,s,o)=>Ie(n,async()=>(await e()).stream(n,s,o)),streamSimple:(n,s,o)=>Ie(n,async()=>(await e()).streamSimple(n,s,o))};if(t?.fetchDeferred)r.fetchDeferred=(n,s,o)=>Ie(n,async()=>{let i=await e();if(!i.fetchDeferred)throw Error("API does not support deferred responses");return i.fetchDeferred(n,s,o)});if(t?.cancelDeferred)r.cancelDeferred=async(n,s,o)=>{let i=await e();if(!i.cancelDeferred)throw Error("API cannot cancel deferred responses");await i.cancelDeferred(n,s,o)};return r}var J=function(e,t){if(typeof e==="string"&&/^\.\.?\//.test(e))return e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(r,n,s,o,i){return n?t?".jsx":".js":s&&(!o||!i)?r:s+o+"."+i.toLowerCase()+"js"});return e},R=(e)=>import(J(e));function V(){return globalThis.process?.env}function Uo(){return{async env(e){let t=V()?.[e];return typeof t==="string"&&t.trim().length>0?t:void 0},async fileExists(e){try{let t=await R("node:fs/promises"),r=e;if(r.startsWith("~"))r=(await R("node:os")).homedir()+r.slice(1);return await t.access(r),!0}catch{return!1}}}}function q(e){if(e.reason!==void 0)return e.reason;let t=Error("The operation was aborted");return t.name="AbortError",t}function g(e){return e??new AbortController().signal}function v(e,t){if(t.aborted)return e.catch(()=>{}),Promise.reject(q(t));return new Promise((r,n)=>{let s=!1,o=()=>t.removeEventListener("abort",i),i=()=>{if(s)return;s=!0,o(),n(q(t))};if(t.addEventListener("abort",i,{once:!0}),e.then((c)=>{if(s)return;s=!0,o(),r(c)},(c)=>{if(s)return;s=!0,o(),n(c)}),t.aborted)i()})}class qn{credentials=new Map;chains=new Map;enqueue(e,t,r){let n=g(r?.signal),s=this.chains.get(e)??Promise.resolve(),o=(async()=>(await s.catch(()=>{}),n.throwIfAborted(),t()))(),i=o.catch(()=>{});return this.chains.set(e,i),i.then(()=>{if(this.chains.get(e)===i)this.chains.delete(e)}),v(o,n)}async read(e,t){return t?.signal?.throwIfAborted(),this.credentials.get(e)}async list(e){return e?.signal?.throwIfAborted(),[...this.credentials].map(([t,r])=>({providerId:t,type:r.type}))}modify(e,t,r){return this.enqueue(e,async()=>{let n=this.credentials.get(e),s=await t(n);if(r?.signal?.throwIfAborted(),s!==void 0)this.credentials.set(e,s);return s??n},r)}delete(e,t){return this.enqueue(e,async()=>{this.credentials.delete(e)},t)}}class C extends Error{code;constructor(e,t,r){super(Y(t,r?.cause),r);this.name="ModelsError",this.code=e}}function Y(e,t){if(t===void 0||t===null)return e;let r=Ve(t).trim();if(!r||e.includes(r))return e;return`${e}: ${r}`}function T(e,t,r,n){let s=g(n?.signal);return v(X(e,t,r,n,s),s)}async function X(e,t,r,n,s){s.throwIfAborted();let o=n?.env?B(r,n.env):r;if(n?.apiKey!==void 0&&e.auth.apiKey)return E(o,e.auth.apiKey,e.id,{type:"api_key",key:n.apiKey,env:n.env},s);let i=await oe(t,e.id,s);if(i){if(i.type==="oauth"&&e.auth.oauth)return se(t,e.id,e.auth.oauth,i,s,n?.minOAuthValidityMs);if(i.type==="api_key"&&e.auth.apiKey){let c=n?.env?{...i,env:{...i.env,...n.env}}:i;return E(o,e.auth.apiKey,e.id,c,s)}return}return e.auth.apiKey?E(o,e.auth.apiKey,e.id,void 0,s):void 0}function B(e,t){return{env:async(r)=>t[r]||await e.env(r),fileExists:(r)=>e.fileExists(r)}}var Z=300000,ee=15000;async function k(e,t,r,n,s){let o,i=new AbortController,c=()=>i.abort(s.reason);if(s.addEventListener("abort",c,{once:!0}),s.aborted)c();try{o=await e.modify(t,async(u)=>{if(s.removeEventListener("abort",c),s.throwIfAborted(),u?.type!=="oauth")return;if(!n(u))return;try{return await r.refresh(u,AbortSignal.timeout(ee))}catch(f){throw new C("oauth",`OAuth refresh failed for ${t}`,{cause:f})}},{signal:i.signal})}catch(u){if(u instanceof C)throw u;throw s.throwIfAborted(),new C("auth",`Credential store modify failed for ${t}`,{cause:u})}finally{s.removeEventListener("abort",c)}return o?.type==="oauth"?o:void 0}async function se(e,t,r,n,s,o){let i=Math.max(Z,o??0),c=(f)=>Date.now()+i>=f.expires,u=n;if(c(u)){let f=await k(e,t,r,c,s);if(!f)return;if(u=f,o!==void 0&&c(u))throw new C("oauth",`OAuth refresh returned a token that expires too soon for ${t}`)}try{return{auth:await r.toAuth(u),source:"OAuth"}}catch(f){throw new C("oauth",`OAuth auth derivation failed for ${t}`,{cause:f})}}async function E(e,t,r,n,s){try{return await t.resolve({ctx:e,credential:n,signal:s})}catch(o){throw new C("auth",`API key auth failed for provider ${r}`,{cause:o})}}async function oe(e,t,r){try{return await e.read(t,{signal:r})}catch(n){throw new C("auth",`Credential store read failed for ${t}`,{cause:n})}}class Hn{entries=new Map;async read(e,t){t?.signal?.throwIfAborted();let r=this.entries.get(e);return r?structuredClone(r):void 0}async write(e,t,r){r?.signal?.throwIfAborted(),this.entries.set(e,structuredClone(t))}async delete(e,t){t?.signal?.throwIfAborted(),this.entries.delete(e)}}function mt(e){return e.type??"chat"}function Ce(e,t){return mt(e)===t}function _(e){if(!Ce(e,"chat"))throw new C("provider",`Model ${e.provider}/${e.id} is not a chat model`)}function K(e){if(!Ce(e,"image"))throw new C("provider",`Model ${e.provider}/${e.id} is not an image model`)}function I(e){if(!Ce(e,"classifier"))throw new C("provider",`Model ${e.provider}/${e.id} is not a classifier model`)}function L(e,t){if(t.images?.length&&!e.input.includes("image"))throw new C("provider",`Model ${e.provider}/${e.id} does not accept image input`)}function D(e,t,r=!1){return{api:e.api,provider:e.provider,model:e.id,output:[],stopReason:r?"aborted":"error",errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function O(e,t,r=!1){return{api:e.api,provider:e.provider,model:e.id,answers:{},stopReason:r?"aborted":"error",errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function ur(e,t=`
|
|
3
3
|
`){if(typeof e==="string")return e;return e.filter((r)=>r.type==="text").map((r)=>r.text).join(t)}function N(e){let t=[ur(e.content)];for(let r of Object.values(e.sections??{}))if(r!==null)t.push(r);return t.filter((r)=>r.length>0).join(`
|
|
4
4
|
|
|
5
5
|
`)}function Me(e){let t=[],r=ur(e.content);if(r.length>0)t.push(r);for(let[n,s]of Object.entries(e.sections??{}))t.push(s===null?`Removed system prompt section "${n}".`:`Updated system prompt section "${n}":
|
|
6
6
|
|
|
7
7
|
${s}`);return t.join(`
|
|
8
8
|
|
|
9
|
-
`)}function Gn(e,t){let r=e!==void 0&&e.length>0,n=t!==void 0&&t.length>0;if(!r&&!n)return;return{role:"system",content:e??"",...n?{toolsAdded:t}:{},timestamp:0}}function ht(e){let t=Gn(e.systemPrompt,e.tools);return{messages:t?[t,...e.messages]:e.messages}}function x(e){return e.role==="system"}function
|
|
9
|
+
`)}function Gn(e,t){let r=e!==void 0&&e.length>0,n=t!==void 0&&t.length>0;if(!r&&!n)return;return{role:"system",content:e??"",...n?{toolsAdded:t}:{},timestamp:0}}function ht(e){let t=Gn(e.systemPrompt,e.tools);return{messages:t?[t,...e.messages]:e.messages}}function x(e){return e.role==="system"}function pe(e){let t=e[0];return t&&x(t)?t:void 0}function $t(e){return pe(e)?e.slice(1):e}function ne(e){let t=new Map;for(let r of e){if(!x(r))continue;for(let n of r.toolsRemoved??[])t.delete(n.name);for(let n of r.toolsAdded??[])t.set(n.name,n)}return[...t.values()]}function jr(e){let t=[],r=new Map,n;for(let o of e){if(!x(o))continue;n??=o.timestamp;let i=ur(o.content);if(i.length>0)t.push(i);for(let[c,u]of Object.entries(o.sections??{}))if(u===null)r.delete(c);else r.set(c,u)}let s=ne(e);if(n===void 0&&s.length===0)return;return{role:"system",content:t.join(`
|
|
10
10
|
|
|
11
|
-
`),...r.size>0?{sections:Object.fromEntries(r)}:{},...s.length>0?{toolsAdded:s}:{},timestamp:n??0}}function Uo(e){let t=jr(e);return t?N(t):""}function Le(e){let t=jr(e.messages),r=e.messages.filter((n)=>n.role!=="system");return{messages:t?[t,...r]:r}}function te(e,t){return t?e:Le(e)}function nt(e){return{name:e.name,description:e.description,parameters:JSON.parse(JSON.stringify(e.parameters)),...e.constrainedSampling===void 0?{}:{constrainedSampling:e.constrainedSampling}}}function zn(e,t){return JSON.stringify(nt(e))===JSON.stringify(nt(t))}function Fo(e,t){let r=new Map(e.map((s)=>[s.name,s])),n=new Map(t.map((s)=>[s.name,s]));return{toolsAdded:t.filter((s)=>{let o=r.get(s.name);return o===void 0||!zn(o,s)}).map(nt),toolsRemoved:e.filter((s)=>{let o=n.get(s.name);return o===void 0||!zn(s,o)}).map((s)=>({name:s.name}))}}function ge(e){let t=new Map;for(let r of e){if(!x(r))continue;for(let n of r.toolsAdded??[])t.set(n.name,n)}return[...t.values()]}function Ai(e){let t=new Map;for(let r of e){if(!x(r))continue;for(let n of r.toolsAdded??[]){let s=t.get(n.name);if(s!==void 0&&!zn(s,n))return!0;t.set(n.name,n)}}return!1}function yi(e){let t=new Set;for(let r of e){if(!x(r))continue;if((r.toolsRemoved?.length??0)>0)return!0;for(let n of r.toolsAdded??[]){if(t.has(n.name))return!0;t.add(n.name)}}return!1}function ye(e,t){let r=t&&!yi(e);return{requestTools:r?ue(e)?.toolsAdded??[]:ne(e),anchorsAdditions:r}}var ie={chat:!0,image:!0,classifier:!0};function U(e){return Object.hasOwn(ie,mt(e))}function ae(e){return{...e,models:e.models.filter(U)}}function W(e,t){if(!e&&!t)return;let r={...e};for(let[n,s]of Object.entries(t??{})){let o=n.toLowerCase();for(let i of Object.keys(r))if(i.toLowerCase()===o)delete r[i];r[n]=s}return r}class j{providers=new Map;credentials;modelsStore;authContext;refreshGenerations=new Map;refreshControllers=new Map;publicationChains=new Map;constructor(e){this.credentials=e?.credentials??new qn,this.modelsStore=e?.modelsStore??new Hn,this.authContext=e?.authContext??Do()}setProvider(e){this.supersedeProviderRefresh(e.id),this.providers.set(e.id,e)}deleteProvider(e){this.supersedeProviderRefresh(e),this.providers.delete(e)}clearProviders(){for(let e of new Set([...this.providers.keys(),...this.refreshControllers.keys()]))this.supersedeProviderRefresh(e);this.providers.clear()}getProviders(){return Array.from(this.providers.values())}getProvider(e){return this.providers.get(e)}getModels(e){if(e!==void 0){let r=this.providers.get(e);if(!r)return[];try{return r.getModels()}catch{return[]}}let t=[];for(let r of this.providers.values())try{t.push(...r.getModels())}catch{}return t}getAllModels(e){if(e!==void 0){let r=this.providers.get(e);if(!r)return[];try{return r.getAllModels?.()??r.getModels()}catch{return[]}}let t=[];for(let r of this.providers.values())try{t.push(...r.getAllModels?.()??r.getModels())}catch{}return t}getModelsOfType(e,t){return this.getAllModels(t).filter((r)=>Ce(r,e))}getModel(e,t){return this.getModels(e).find((r)=>r.id===t)}getModelOfType(e,t,r){return this.getModelsOfType(e,t).find((n)=>n.id===r)}supersedeProviderRefresh(e){let t=(this.refreshGenerations.get(e)??0)+1;this.refreshGenerations.set(e,t);let r=this.refreshControllers.get(e);if(r)this.refreshControllers.delete(e),r.abort();return t}beginProviderRefresh(e){let t=this.supersedeProviderRefresh(e),r=new AbortController;return this.refreshControllers.set(e,r),{generation:t,controller:r}}publishProviderModels(e,t,r,n){let s=this.publicationChains.get(e)??Promise.resolve(),o=(async()=>{if(await s.catch(()=>{}),r.aborted||this.refreshGenerations.get(e)!==t)return!1;if(n.persist===null)await this.modelsStore.delete(e,{signal:r});else if(n.persist!==void 0)await this.modelsStore.write(e,structuredClone(n.persist),{signal:r});if(r.aborted||this.refreshGenerations.get(e)!==t)return!1;return n.update?.(),!0})(),i=o.catch(()=>{});return this.publicationChains.set(e,i),i.then(()=>{if(this.publicationChains.get(e)===i)this.publicationChains.delete(e)}),v(o,r)}async runProviderRefreshPhase(e,t,r,n,s,o){let i=await this.modelsStore.read(e.id,{signal:o});await e.refreshModels({credential:t,stored:i?ae(structuredClone(i)):void 0,publish:(c)=>this.publishProviderModels(e.id,s,o,c),allowNetwork:r,force:r?n:void 0,signal:o,baseUrl:e.baseUrl})}async refresh(e={}){let t=e.allowNetwork??!0,r=g(e.signal),n=new Map;if(r.aborted)return{aborted:!0,errors:n};let s=e.providers?new Set(e.providers):void 0,o=Array.from(this.providers.values()).filter((c)=>c.refreshModels!==void 0&&(!s||s.has(c.id))),i=Promise.all(o.map(async(c)=>{let{generation:u,controller:f}=this.beginProviderRefresh(c.id),m=AbortSignal.any([r,f.signal]),b=(async()=>{let w,y;try{w=await this.readCredential(c.id,m)}catch(a){y=a}if(await this.runProviderRefreshPhase(c,w,!1,void 0,u,m),y!==void 0)throw y;if(!t||m.aborted)return;let A=await this.resolveRefreshCredential(c,w,m);if(!A)return;await this.runProviderRefreshPhase(c,A,!0,e.force,u,m)})();try{await v(b,m)}catch(w){if(!m.aborted)n.set(c.id,w instanceof Error?w:new C("model_source",`Model refresh failed for ${c.id}`,{cause:w}))}finally{if(this.refreshControllers.get(c.id)===f)this.refreshControllers.delete(c.id)}}));try{await v(i,r)}catch(c){if(!r.aborted)throw c}return{aborted:r.aborted,errors:new Map(n)}}async resolveRefreshCredential(e,t,r){if(t?.type==="oauth"){let i=e.auth.oauth;if(!i)return;if(Date.now()<t.expires)return t;if(r.aborted)return;return k(this.credentials,e.id,i,(c)=>Date.now()>=c.expires,r)}let n=e.auth.apiKey;if(!n)return;let s=t?.type==="api_key"?t:void 0,o=await n.resolve({ctx:this.authContext,credential:s,signal:r});if(!o)return;return{type:"api_key",key:o.auth.apiKey,env:o.env}}async readCredential(e,t){try{return await this.credentials.read(e,{signal:t})}catch(r){throw new C("auth",`Credential store read failed for ${e}`,{cause:r})}}async checkProviderAuth(e,t,r){if(t?.type==="oauth")return e.auth.oauth?{source:"OAuth",type:"oauth"}:void 0;let n=e.auth.apiKey;if(!n)return;if(n.check)try{return await n.check({ctx:this.authContext,credential:t?.type==="api_key"?t:void 0,signal:r})}catch(o){throw new C("auth",`API key auth check failed for provider ${e.id}`,{cause:o})}let s=await T(e,this.credentials,this.authContext,{signal:r});return s?{source:s.source,type:"api_key"}:void 0}checkAuth(e,t){let r=g(t?.signal),n=(async()=>{r.throwIfAborted();let s=this.providers.get(e);if(!s)return;return this.checkProviderAuth(s,await this.readCredential(e,r),r)})();return v(n,r)}async getAuthenticatedProviders(e,t){t.throwIfAborted();let r=e?[this.providers.get(e)].filter((s)=>s!==void 0):this.getProviders();return(await Promise.all(r.map(async(s)=>{let o=await this.readCredential(s.id,t);return{provider:s,credential:o,auth:await this.checkProviderAuth(s,o,t)}}))).filter((s)=>s.auth!==void 0)}getAvailable(e,t){let r=g(t?.signal),n=(async()=>(await this.getAuthenticatedProviders(e,r)).flatMap(({provider:o,credential:i})=>{let c=o.getModels();return o.filterModels?.(c,i)??c}))();return v(n,r)}async getAvailableOfType(e,t,r){return(await this.getAllAvailable(t,r)).filter((n)=>Ce(n,e))}getAllAvailable(e,t){let r=g(t?.signal),n=(async()=>(await this.getAuthenticatedProviders(e,r)).flatMap(({provider:o,credential:i})=>{let c=o.getAllModels?.()??o.getModels();if(o.filterAllModels)return o.filterAllModels(c,i);if(!o.filterModels)return c;let u=new Set(o.filterModels(o.getModels(),i).map((f)=>f.id));return c.filter((f)=>!Ce(f,"chat")||u.has(f.id))}))();return v(n,r)}async getAuth(e,t){let r=g(t?.signal),n=typeof e==="string"?e:e.provider,s=this.providers.get(n);if(!s)return;let o=await T(s,this.credentials,this.authContext,{...t,signal:r});if(!o||typeof e==="string"||!e.headers)return o;return{...o,auth:{...o.auth,headers:W(o.auth.headers,e.headers)}}}async login(e,t,r,n){let s=g(r.signal);s.throwIfAborted();let o=this.providers.get(e);if(!o)throw new C("provider",`Unknown provider: ${e}`);let i=t==="oauth"?o.auth.oauth:o.auth.apiKey;if(!i?.login)throw new C("auth",`${o.name} does not support ${t} login`);let c=i.login({...r,signal:s},n),u=await v(c,s),f=!1,m,b=new Promise((y)=>{m=y}),w=this.credentials.modify(e,async()=>(f=!0,m?.(),u),{signal:s});w.catch(()=>{});try{await new Promise((y,A)=>{let a=()=>{if(!f)A(s.reason)};if(s.addEventListener("abort",a,{once:!0}),Promise.race([b,w]).then(()=>{s.removeEventListener("abort",a),y()},(l)=>{s.removeEventListener("abort",a),A(l)}),s.aborted)a()}),await w}catch(y){throw s.throwIfAborted(),new C("auth",`Credential store modify failed for ${e}`,{cause:y})}return u}async logout(e,t){let r=g(t?.signal);r.throwIfAborted();try{await this.credentials.delete(e,{signal:r})}catch(n){throw r.throwIfAborted(),new C("auth",`Credential store delete failed for ${e}`,{cause:n})}}requireProvider(e){let t=this.providers.get(e.provider);if(!t)throw new C("provider",`Unknown provider: ${e.provider}`);return t}requireChatProvider(e){return _(e),this.requireProvider(e)}async applyAuth(e,t){this.requireProvider(e);let r=await this.getAuth(e,{apiKey:t?.apiKey,env:t?.env,signal:t?.signal});if(!r)throw new C("auth",`Provider is not configured: ${e.provider}`);let n=r.auth,s=t?.apiKey??n.apiKey,o=W(n.headers,t?.headers);if(t?.transformHeaders)o=await t.transformHeaders(o??{});let i=r.env||t?.env?{...r.env??{},...t?.env??{}}:void 0,c=n.baseUrl?{...e,baseUrl:n.baseUrl}:e,{transformHeaders:u,...f}=t??{},m={...f,apiKey:s,headers:o,env:i};return{requestModel:c,requestOptions:m}}stream(e,t,r){let n=ht(t);return Ie(e,async()=>{let s=this.requireChatProvider(e),{requestModel:o,requestOptions:i}=await this.applyAuth(e,r);return s.stream(o,n,i)})}async complete(e,t,r){return this.stream(e,t,r).result()}streamSimple(e,t,r){let n=ht(t);return Ie(e,async()=>{let s=this.requireChatProvider(e),{requestModel:o,requestOptions:i}=await this.applyAuth(e,r);return s.streamSimple(o,n,i)})}async completeSimple(e,t,r){return this.streamSimple(e,t,r).result()}streamDeferred(e,t,r){return Ie(e,async()=>{let n=this.requireChatProvider(e);if(!n.fetchDeferred)throw new C("provider",`Provider ${e.provider} does not support deferred responses`);let{requestModel:s,requestOptions:o}=await this.applyAuth(e,r);return n.fetchDeferred(s,t,o)})}async fetchDeferred(e,t,r){return this.streamDeferred(e,t,r).result()}async cancelDeferred(e,t,r){let n=this.requireChatProvider(e);if(!n.cancelDeferred)throw new C("provider",`Provider ${e.provider} does not support deferred responses`);let{requestModel:s,requestOptions:o}=await this.applyAuth(e,r);await n.cancelDeferred(s,t,o)}async generateImages(e,t,r){try{K(e);let n=this.requireProvider(e);if(!n.generateImages)throw new C("provider",`Provider ${e.provider} does not support image generation`);let{requestModel:s,requestOptions:o}=await this.applyAuth(e,r);return await n.generateImages(s,t,o)}catch(n){return D(e,n,r?.signal?.aborted)}}async classify(e,t,r){try{I(e),L(e,t);let n=this.requireProvider(e);if(!n.classify)throw new C("provider",`Provider ${e.provider} does not support classification`);let{requestModel:s,requestOptions:o}=await this.applyAuth(e,r);return await n.classify(s,t,o)}catch(n){return O(e,n,r?.signal?.aborted)}}}function jn(e){return new j(e)}function d(e){let t=e.api&&typeof e.api.stream==="function"?e.api:void 0,r=t||!e.api?void 0:e.api,{images:n,classifiers:s}=e,o=t?[t]:Object.values(r??{}).filter((a)=>a!==void 0),i=Object.values(n??{}).filter((a)=>a!==void 0),c=Object.values(s??{}).filter((a)=>a!==void 0);if(o.length===0&&i.length===0&&c.length===0)throw Error(`Provider ${e.id}: at least one of "api", "images", or "classifiers" is required.`);let u=e.models,f=[],m=e.fetchModels,b=()=>{let a=[...u];for(let l of f){let h=a.findIndex((p)=>mt(p)===mt(l)&&p.id===l.id);if(h>=0)a[h]=l;else a.push(l)}return a},w=(a)=>t??r?.[a.api],y=(a,l)=>{let h=w(a);if(!h)return Ie(a,async()=>{throw new C("stream",`Provider ${e.id} has no API implementation for "${a.api}"`)});return l(h)},A={id:e.id,name:e.name??e.id,baseUrl:e.baseUrl,headers:e.headers,auth:e.auth,getModels:()=>b().filter((a)=>Ce(a,"chat")),getAllModels:b,refreshModels:m?async(a)=>{if(a.stored){let p=a.stored.models.filter((P)=>P.provider===e.id).map((P)=>P);if(!await a.publish({update:()=>{f=p}}))return}if(!a.allowNetwork||a.signal.aborted)return;let l=await m(a);if(a.signal.aborted)return;let h=l.filter(U);await a.publish({persist:{models:h,checkedAt:Date.now()},update:()=>{f=h}})}:void 0,filterModels:e.filterModels,filterAllModels:e.filterAllModels,stream:(a,l,h)=>y(a,(p)=>p.stream(a,l,h)),streamSimple:(a,l,h)=>y(a,(p)=>p.streamSimple(a,l,h))};if(o.some((a)=>a.fetchDeferred!==void 0))A.fetchDeferred=(a,l,h)=>Ie(a,async()=>{let p=w(a);if(!p?.fetchDeferred)throw new C("provider",`Provider ${e.id} does not support deferred responses for "${a.api}"`);return p.fetchDeferred(a,l,h)});if(o.some((a)=>a.cancelDeferred!==void 0))A.cancelDeferred=async(a,l,h)=>{let p=w(a);if(!p?.cancelDeferred)throw new C("provider",`Provider ${e.id} cannot cancel deferred responses for "${a.api}"`);await p.cancelDeferred(a,l,h)};if(n&&i.length>0)A.generateImages=async(a,l,h)=>{let p=n[a.api];if(!p)return D(a,new C("provider",`Provider ${e.id} has no image generation implementation for "${a.api}"`));return p.generateImages(a,l,h)};if(s&&c.length>0)A.classify=async(a,l,h)=>{let p=s[a.api];if(!p)return O(a,new C("provider",`Provider ${e.id} has no classifier implementation for "${a.api}"`));return p.classify(a,l,h)};return A}function Ei(e,t){return Ce(e,"chat")&&e.api===t}function Q(e,t){let r=t.input+t.cacheRead+t.cacheWrite,n=e.cost,s=-1;for(let c of e.cost.tiers??[])if(r>c.inputTokensAbove&&c.inputTokensAbove>s)n=c,s=c.inputTokensAbove;let o=t.cacheWrite1h??0,i=t.cacheWrite-o;return t.cost.input=n.input/1e6*t.input,t.cost.output=n.output/1e6*t.output,t.cost.cacheRead=n.cacheRead/1e6*t.cacheRead,t.cost.cacheWrite=(n.cacheWrite*i+n.input*2*o)/1e6,t.cost.total=t.cost.input+t.cost.output+t.cost.cacheRead+t.cost.cacheWrite,t.cost}var S=["off","minimal","low","medium","high","xhigh","max"];function Vr(e){if(!e.reasoning)return["off"];return S.filter((t)=>{let r=e.thinkingLevelMap?.[t];if(r===null)return!1;if(t==="xhigh"||t==="max")return r!==void 0;return!0})}function H(e,t){let r=Vr(e);if(r.includes(t))return t;let n=S.indexOf(t);if(n===-1)return r[0]??"off";for(let s=n;s<S.length;s++){let o=S[s];if(r.includes(o))return o}for(let s=n-1;s>=0;s--){let o=S[s];if(r.includes(o))return o}return r[0]??"off"}function _i(e,t){if(!e||!t)return!1;return mt(e)===mt(t)&&e.id===t.id&&e.provider===t.provider}
|
|
12
|
-
export{Ie,
|
|
11
|
+
`),...r.size>0?{sections:Object.fromEntries(r)}:{},...s.length>0?{toolsAdded:s}:{},timestamp:n??0}}function Fo(e){let t=jr(e);return t?N(t):""}function Le(e){let t=jr(e.messages),r=e.messages.filter((n)=>n.role!=="system");return{messages:t?[t,...r]:r}}function re(e,t){return t?e:Le(e)}function nt(e){return{name:e.name,description:e.description,parameters:JSON.parse(JSON.stringify(e.parameters)),...e.constrainedSampling===void 0?{}:{constrainedSampling:e.constrainedSampling}}}function zn(e,t){return JSON.stringify(nt(e))===JSON.stringify(nt(t))}function Bo(e,t){let r=new Map(e.map((s)=>[s.name,s])),n=new Map(t.map((s)=>[s.name,s]));return{toolsAdded:t.filter((s)=>{let o=r.get(s.name);return o===void 0||!zn(o,s)}).map(nt),toolsRemoved:e.filter((s)=>{let o=n.get(s.name);return o===void 0||!zn(s,o)}).map((s)=>({name:s.name}))}}function ge(e){let t=new Map;for(let r of e){if(!x(r))continue;for(let n of r.toolsAdded??[])t.set(n.name,n)}return[...t.values()]}function Pi(e){let t=new Map;for(let r of e){if(!x(r))continue;for(let n of r.toolsAdded??[]){let s=t.get(n.name);if(s!==void 0&&!zn(s,n))return!0;t.set(n.name,n)}}return!1}function xi(e){let t=new Set;for(let r of e){if(!x(r))continue;if((r.toolsRemoved?.length??0)>0)return!0;for(let n of r.toolsAdded??[]){if(t.has(n.name))return!0;t.add(n.name)}}return!1}function ye(e,t){let r=t&&!xi(e);return{requestTools:r?pe(e)?.toolsAdded??[]:ne(e),anchorsAdditions:r}}var ie={chat:!0,image:!0,classifier:!0};function U(e){return Object.hasOwn(ie,mt(e))}function ae(e){return{...e,models:e.models.filter(U)}}function W(e,t){if(!e&&!t)return;let r={...e};for(let[n,s]of Object.entries(t??{})){let o=n.toLowerCase();for(let i of Object.keys(r))if(i.toLowerCase()===o)delete r[i];r[n]=s}return r}class j{providers=new Map;credentials;modelsStore;authContext;refreshGenerations=new Map;refreshControllers=new Map;publicationChains=new Map;constructor(e){this.credentials=e?.credentials??new qn,this.modelsStore=e?.modelsStore??new Hn,this.authContext=e?.authContext??Uo()}setProvider(e){this.supersedeProviderRefresh(e.id),this.providers.set(e.id,e)}deleteProvider(e){this.supersedeProviderRefresh(e),this.providers.delete(e)}clearProviders(){for(let e of new Set([...this.providers.keys(),...this.refreshControllers.keys()]))this.supersedeProviderRefresh(e);this.providers.clear()}getProviders(){return Array.from(this.providers.values())}getProvider(e){return this.providers.get(e)}getModels(e){if(e!==void 0){let r=this.providers.get(e);if(!r)return[];try{return r.getModels()}catch{return[]}}let t=[];for(let r of this.providers.values())try{t.push(...r.getModels())}catch{}return t}getAllModels(e){if(e!==void 0){let r=this.providers.get(e);if(!r)return[];try{return r.getAllModels?.()??r.getModels()}catch{return[]}}let t=[];for(let r of this.providers.values())try{t.push(...r.getAllModels?.()??r.getModels())}catch{}return t}getModelsOfType(e,t){return this.getAllModels(t).filter((r)=>Ce(r,e))}getModel(e,t){return this.getModels(e).find((r)=>r.id===t)}getModelOfType(e,t,r){return this.getModelsOfType(e,t).find((n)=>n.id===r)}supersedeProviderRefresh(e){let t=(this.refreshGenerations.get(e)??0)+1;this.refreshGenerations.set(e,t);let r=this.refreshControllers.get(e);if(r)this.refreshControllers.delete(e),r.abort();return t}beginProviderRefresh(e){let t=this.supersedeProviderRefresh(e),r=new AbortController;return this.refreshControllers.set(e,r),{generation:t,controller:r}}publishProviderModels(e,t,r,n){let s=this.publicationChains.get(e)??Promise.resolve(),o=(async()=>{if(await s.catch(()=>{}),r.aborted||this.refreshGenerations.get(e)!==t)return!1;if(n.persist===null)await this.modelsStore.delete(e,{signal:r});else if(n.persist!==void 0)await this.modelsStore.write(e,structuredClone(n.persist),{signal:r});if(r.aborted||this.refreshGenerations.get(e)!==t)return!1;return n.update?.(),!0})(),i=o.catch(()=>{});return this.publicationChains.set(e,i),i.then(()=>{if(this.publicationChains.get(e)===i)this.publicationChains.delete(e)}),v(o,r)}async runProviderRefreshPhase(e,t,r,n,s,o){let i=await this.modelsStore.read(e.id,{signal:o});await e.refreshModels({credential:t,stored:i?ae(structuredClone(i)):void 0,publish:(c)=>this.publishProviderModels(e.id,s,o,c),allowNetwork:r,force:r?n:void 0,signal:o,baseUrl:e.baseUrl})}async refresh(e={}){let t=e.allowNetwork??!0,r=g(e.signal),n=new Map;if(r.aborted)return{aborted:!0,errors:n};let s=e.providers?new Set(e.providers):void 0,o=Array.from(this.providers.values()).filter((c)=>c.refreshModels!==void 0&&(!s||s.has(c.id))),i=Promise.all(o.map(async(c)=>{let{generation:u,controller:f}=this.beginProviderRefresh(c.id),m=AbortSignal.any([r,f.signal]),b=(async()=>{let w,y;try{w=await this.readCredential(c.id,m)}catch(a){y=a}if(await this.runProviderRefreshPhase(c,w,!1,void 0,u,m),y!==void 0)throw y;if(!t||m.aborted)return;let A=await this.resolveRefreshCredential(c,w,m);if(!A)return;await this.runProviderRefreshPhase(c,A,!0,e.force,u,m)})();try{await v(b,m)}catch(w){if(!m.aborted)n.set(c.id,w instanceof Error?w:new C("model_source",`Model refresh failed for ${c.id}`,{cause:w}))}finally{if(this.refreshControllers.get(c.id)===f)this.refreshControllers.delete(c.id)}}));try{await v(i,r)}catch(c){if(!r.aborted)throw c}return{aborted:r.aborted,errors:new Map(n)}}async resolveRefreshCredential(e,t,r){if(t?.type==="oauth"){let i=e.auth.oauth;if(!i)return;if(Date.now()<t.expires)return t;if(r.aborted)return;return k(this.credentials,e.id,i,(c)=>Date.now()>=c.expires,r)}let n=e.auth.apiKey;if(!n)return;let s=t?.type==="api_key"?t:void 0,o=await n.resolve({ctx:this.authContext,credential:s,signal:r});if(!o)return;return{type:"api_key",key:o.auth.apiKey,env:o.env}}async readCredential(e,t){try{return await this.credentials.read(e,{signal:t})}catch(r){throw new C("auth",`Credential store read failed for ${e}`,{cause:r})}}async checkProviderAuth(e,t,r){if(t?.type==="oauth")return e.auth.oauth?{source:"OAuth",type:"oauth"}:void 0;let n=e.auth.apiKey;if(!n)return;if(n.check)try{return await n.check({ctx:this.authContext,credential:t?.type==="api_key"?t:void 0,signal:r})}catch(o){throw new C("auth",`API key auth check failed for provider ${e.id}`,{cause:o})}let s=await T(e,this.credentials,this.authContext,{signal:r});return s?{source:s.source,type:"api_key"}:void 0}checkAuth(e,t){let r=g(t?.signal),n=(async()=>{r.throwIfAborted();let s=this.providers.get(e);if(!s)return;return this.checkProviderAuth(s,await this.readCredential(e,r),r)})();return v(n,r)}async getAuthenticatedProviders(e,t){t.throwIfAborted();let r=e?[this.providers.get(e)].filter((s)=>s!==void 0):this.getProviders();return(await Promise.all(r.map(async(s)=>{let o=await this.readCredential(s.id,t);return{provider:s,credential:o,auth:await this.checkProviderAuth(s,o,t)}}))).filter((s)=>s.auth!==void 0)}getAvailable(e,t){let r=g(t?.signal),n=(async()=>(await this.getAuthenticatedProviders(e,r)).flatMap(({provider:o,credential:i})=>{let c=o.getModels();return o.filterModels?.(c,i)??c}))();return v(n,r)}async getAvailableOfType(e,t,r){return(await this.getAllAvailable(t,r)).filter((n)=>Ce(n,e))}getAllAvailable(e,t){let r=g(t?.signal),n=(async()=>(await this.getAuthenticatedProviders(e,r)).flatMap(({provider:o,credential:i})=>{let c=o.getAllModels?.()??o.getModels();if(o.filterAllModels)return o.filterAllModels(c,i);if(!o.filterModels)return c;let u=new Set(o.filterModels(o.getModels(),i).map((f)=>f.id));return c.filter((f)=>!Ce(f,"chat")||u.has(f.id))}))();return v(n,r)}async getAuth(e,t){let r=g(t?.signal),n=typeof e==="string"?e:e.provider,s=this.providers.get(n);if(!s)return;let o=await T(s,this.credentials,this.authContext,{...t,signal:r});if(!o||typeof e==="string"||!e.headers)return o;return{...o,auth:{...o.auth,headers:W(o.auth.headers,e.headers)}}}async login(e,t,r,n){let s=g(r.signal);s.throwIfAborted();let o=this.providers.get(e);if(!o)throw new C("provider",`Unknown provider: ${e}`);let i=t==="oauth"?o.auth.oauth:o.auth.apiKey;if(!i?.login)throw new C("auth",`${o.name} does not support ${t} login`);let c=i.login({...r,signal:s},n),u=await v(c,s),f=!1,m,b=new Promise((y)=>{m=y}),w=this.credentials.modify(e,async()=>(f=!0,m?.(),u),{signal:s});w.catch(()=>{});try{await new Promise((y,A)=>{let a=()=>{if(!f)A(s.reason)};if(s.addEventListener("abort",a,{once:!0}),Promise.race([b,w]).then(()=>{s.removeEventListener("abort",a),y()},(l)=>{s.removeEventListener("abort",a),A(l)}),s.aborted)a()}),await w}catch(y){throw s.throwIfAborted(),new C("auth",`Credential store modify failed for ${e}`,{cause:y})}return u}async logout(e,t){let r=g(t?.signal);r.throwIfAborted();try{await this.credentials.delete(e,{signal:r})}catch(n){throw r.throwIfAborted(),new C("auth",`Credential store delete failed for ${e}`,{cause:n})}}requireProvider(e){let t=this.providers.get(e.provider);if(!t)throw new C("provider",`Unknown provider: ${e.provider}`);return t}requireChatProvider(e){return _(e),this.requireProvider(e)}async applyAuth(e,t){this.requireProvider(e);let r=await this.getAuth(e,{apiKey:t?.apiKey,env:t?.env,signal:t?.signal});if(!r)throw new C("auth",`Provider is not configured: ${e.provider}`);let n=r.auth,s=t?.apiKey??n.apiKey,o=W(n.headers,t?.headers);if(t?.transformHeaders)o=await t.transformHeaders(o??{});let i=r.env||t?.env?{...r.env??{},...t?.env??{}}:void 0,c=n.baseUrl?{...e,baseUrl:n.baseUrl}:e,{transformHeaders:u,...f}=t??{},m={...f,apiKey:s,headers:o,env:i};return{requestModel:c,requestOptions:m}}stream(e,t,r){let n=ht(t);return Ie(e,async()=>{let s=this.requireChatProvider(e),{requestModel:o,requestOptions:i}=await this.applyAuth(e,r);return s.stream(o,n,i)})}async complete(e,t,r){return this.stream(e,t,r).result()}streamSimple(e,t,r){let n=ht(t);return Ie(e,async()=>{let s=this.requireChatProvider(e),{requestModel:o,requestOptions:i}=await this.applyAuth(e,r);return s.streamSimple(o,n,i)})}async completeSimple(e,t,r){return this.streamSimple(e,t,r).result()}streamDeferred(e,t,r){return Ie(e,async()=>{let n=this.requireChatProvider(e);if(!n.fetchDeferred)throw new C("provider",`Provider ${e.provider} does not support deferred responses`);let{requestModel:s,requestOptions:o}=await this.applyAuth(e,r);return n.fetchDeferred(s,t,o)})}async fetchDeferred(e,t,r){return this.streamDeferred(e,t,r).result()}async cancelDeferred(e,t,r){let n=this.requireChatProvider(e);if(!n.cancelDeferred)throw new C("provider",`Provider ${e.provider} does not support deferred responses`);let{requestModel:s,requestOptions:o}=await this.applyAuth(e,r);await n.cancelDeferred(s,t,o)}async generateImages(e,t,r){try{K(e);let n=this.requireProvider(e);if(!n.generateImages)throw new C("provider",`Provider ${e.provider} does not support image generation`);let{requestModel:s,requestOptions:o}=await this.applyAuth(e,r);return await n.generateImages(s,t,o)}catch(n){return D(e,n,r?.signal?.aborted)}}async classify(e,t,r){try{I(e),L(e,t);let n=this.requireProvider(e);if(!n.classify)throw new C("provider",`Provider ${e.provider} does not support classification`);let{requestModel:s,requestOptions:o}=await this.applyAuth(e,r);return await n.classify(s,t,o)}catch(n){return O(e,n,r?.signal?.aborted)}}}function jn(e){return new j(e)}function d(e){let t=e.api&&typeof e.api.stream==="function"?e.api:void 0,r=t||!e.api?void 0:e.api,{images:n,classifiers:s}=e,o=t?[t]:Object.values(r??{}).filter((a)=>a!==void 0),i=Object.values(n??{}).filter((a)=>a!==void 0),c=Object.values(s??{}).filter((a)=>a!==void 0);if(o.length===0&&i.length===0&&c.length===0)throw Error(`Provider ${e.id}: at least one of "api", "images", or "classifiers" is required.`);let u=e.models,f=[],m=e.fetchModels,b=()=>{let a=[...u];for(let l of f){let h=a.findIndex((p)=>mt(p)===mt(l)&&p.id===l.id);if(h>=0)a[h]=l;else a.push(l)}return a},w=(a)=>t??r?.[a.api],y=(a,l)=>{let h=w(a);if(!h)return Ie(a,async()=>{throw new C("stream",`Provider ${e.id} has no API implementation for "${a.api}"`)});return l(h)},A={id:e.id,name:e.name??e.id,baseUrl:e.baseUrl,headers:e.headers,auth:e.auth,getModels:()=>b().filter((a)=>Ce(a,"chat")),getAllModels:b,refreshModels:m?async(a)=>{if(a.stored){let p=a.stored.models.filter((P)=>P.provider===e.id).map((P)=>P);if(!await a.publish({update:()=>{f=p}}))return}if(!a.allowNetwork||a.signal.aborted)return;let l=await m(a);if(a.signal.aborted)return;let h=l.filter(U);await a.publish({persist:{models:h,checkedAt:Date.now()},update:()=>{f=h}})}:void 0,filterModels:e.filterModels,filterAllModels:e.filterAllModels,stream:(a,l,h)=>y(a,(p)=>p.stream(a,l,h)),streamSimple:(a,l,h)=>y(a,(p)=>p.streamSimple(a,l,h))};if(o.some((a)=>a.fetchDeferred!==void 0))A.fetchDeferred=(a,l,h)=>Ie(a,async()=>{let p=w(a);if(!p?.fetchDeferred)throw new C("provider",`Provider ${e.id} does not support deferred responses for "${a.api}"`);return p.fetchDeferred(a,l,h)});if(o.some((a)=>a.cancelDeferred!==void 0))A.cancelDeferred=async(a,l,h)=>{let p=w(a);if(!p?.cancelDeferred)throw new C("provider",`Provider ${e.id} cannot cancel deferred responses for "${a.api}"`);await p.cancelDeferred(a,l,h)};if(n&&i.length>0)A.generateImages=async(a,l,h)=>{let p=n[a.api];if(!p)return D(a,new C("provider",`Provider ${e.id} has no image generation implementation for "${a.api}"`));return p.generateImages(a,l,h)};if(s&&c.length>0)A.classify=async(a,l,h)=>{let p=s[a.api];if(!p)return O(a,new C("provider",`Provider ${e.id} has no classifier implementation for "${a.api}"`));return p.classify(a,l,h)};return A}function Ti(e,t){return Ce(e,"chat")&&e.api===t}function Q(e,t){let r=t.input+t.cacheRead+t.cacheWrite,n=e.cost,s=-1;for(let c of e.cost.tiers??[])if(r>c.inputTokensAbove&&c.inputTokensAbove>s)n=c,s=c.inputTokensAbove;let o=t.cacheWrite1h??0,i=t.cacheWrite-o;return t.cost.input=n.input/1e6*t.input,t.cost.output=n.output/1e6*t.output,t.cost.cacheRead=n.cacheRead/1e6*t.cacheRead,t.cost.cacheWrite=(n.cacheWrite*i+n.input*2*o)/1e6,t.cost.total=t.cost.input+t.cost.output+t.cost.cacheRead+t.cost.cacheWrite,t.cost}var S=["off","minimal","low","medium","high","xhigh","max"];function Vr(e){if(!e.reasoning)return["off"];return S.filter((t)=>{let r=e.thinkingLevelMap?.[t];if(r===null)return!1;if(t==="xhigh"||t==="max")return r!==void 0;return!0})}function H(e,t){let r=Vr(e);if(r.includes(t))return t;let n=S.indexOf(t);if(n===-1)return r[0]??"off";for(let s=n;s<S.length;s++){let o=S[s];if(r.includes(o))return o}for(let s=n-1;s>=0;s--){let o=S[s];if(r.includes(o))return o}return r[0]??"off"}function ki(e,t){if(!e||!t)return!1;return mt(e)===mt(t)&&e.id===t.id&&e.provider===t.provider}
|
|
12
|
+
export{Ie,te,Uo,qn,C,Hn,mt,Ce,ur,N,Me,Gn,ht,pe,$t,ne,jr,Fo,Le,re,nt,zn,Bo,ge,Pi,xi,ye,jn,d,Ti,Q,Vr,H,ki};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{L}from"./chunk-
|
|
2
|
+
import{L}from"./chunk-jwdb0ccj.js";import{b,B}from"./chunk-981f9dw8.js";import{i}from"./chunk-0y7ne3d0.js";var N=i(L()),p=i(b());var f=i(b()),A=i(B());import{createHash as H,createPrivateKey as K,createPublicKey as _,sign as v}from"crypto";import{promises as E}from"fs";import{homedir as q}from"os";import{dirname as U,join as P}from"path";class d{profileData;init;callerClientConfig;static REFRESH_THRESHOLD=300000;constructor(e,t,s){this.profileData=e,this.init=t,this.callerClientConfig=s}async loadCredentials(){let e=await this.loadToken();if(!e)throw new f.CredentialsProviderError(`Failed to load a token for session ${this.loginSession}, please re-authenticate using aws login`,{tryNextLink:!1,logger:this.logger});let t=e.accessToken,s=Date.now();if(new Date(t.expiresAt).getTime()-s<=d.REFRESH_THRESHOLD)return this.refresh(e);return this.toCredentials(e.accessToken)}get logger(){return this.init?.logger}get loginSession(){return this.profileData.login_session}toCredentials(e){return{accessKeyId:e.accessKeyId,secretAccessKey:e.secretAccessKey,sessionToken:e.sessionToken,accountId:e.accountId,expiration:new Date(e.expiresAt)}}async refresh(e){let t=await this.loadToken().catch(()=>e),s=Date.now(),r=new Date(t.accessToken.expiresAt).getTime(),n=new Date(e.accessToken.expiresAt).getTime(),o=r<=s&&n>s?e:t;if(new Date(o.accessToken.expiresAt).getTime()-Date.now()>d.REFRESH_THRESHOLD)return this.toCredentials(o.accessToken);let{SigninClient:h,CreateOAuth2TokenCommand:y}=await import("./chunk-r7fpkb49.js"),{logger:m,userAgentAppId:T}=this.callerClientConfig??{},x=((a)=>a?.metadata?.handlerProtocol==="h2")(this.callerClientConfig?.requestHandler)?void 0:this.callerClientConfig?.requestHandler,u=this.profileData.region??await this.callerClientConfig?.region?.()??process.env.AWS_REGION,k=new h({credentials:{accessKeyId:"",secretAccessKey:""},region:u,requestHandler:x,logger:m,userAgentAppId:T,...this.init?.clientConfig});this.createDPoPInterceptor(k.middlewareStack);let D={tokenInput:{clientId:o.clientId,refreshToken:o.refreshToken,grantType:"refresh_token"}};try{let a=await k.send(new y(D)),{accessKeyId:l,secretAccessKey:w,sessionToken:g}=a.tokenOutput?.accessToken??{},{refreshToken:C,expiresIn:R}=a.tokenOutput??{};if(!l||!w||!g||!C)throw new f.CredentialsProviderError("Token refresh response missing required fields",{logger:this.logger,tryNextLink:!1});let F=(R??900)*1000,O=new Date(Date.now()+F),I={...o,accessToken:{...o.accessToken,accessKeyId:l,secretAccessKey:w,sessionToken:g,expiresAt:O.toISOString()},refreshToken:C};return await this.saveToken(I),this.toCredentials(I.accessToken)}catch(a){if(a.name==="AccessDeniedException"){let w=a.error,g;switch(w){case"TOKEN_EXPIRED":g="Your session has expired. Please reauthenticate.";break;case"USER_CREDENTIALS_CHANGED":g="Unable to refresh credentials because of a change in your password. Please reauthenticate with your new password.";break;case"INSUFFICIENT_PERMISSIONS":g="Unable to refresh credentials due to insufficient permissions. You may be missing permission for the 'CreateOAuth2Token' action.";break;default:g=`Failed to refresh token: ${String(a)}. Please re-authenticate using \`aws login\``}throw new f.CredentialsProviderError(g,{logger:this.logger,tryNextLink:!1})}if(new Date(o.accessToken.expiresAt).getTime()>Date.now())return this.logger?.warn?.(`Failed to refresh token: ${String(a)}. Using existing token until expiry.`),this.toCredentials(o.accessToken);throw new f.CredentialsProviderError(`Failed to refresh token: ${String(a)}. Please re-authenticate using aws login`,{logger:this.logger})}}async loadToken(){let e=this.getTokenFilePath();try{let t=await E.readFile(e,"utf8"),s=JSON.parse(t),r=["accessToken","clientId","refreshToken","dpopKey"].filter((n)=>!s[n]);if(!s.accessToken?.accountId)r.push("accountId");if(r.length>0)throw new f.CredentialsProviderError(`Token validation failed, missing fields: ${r.join(", ")}`,{logger:this.logger,tryNextLink:!1});return s}catch(t){throw new f.CredentialsProviderError(`Failed to load token from ${e}: ${String(t)}`,{logger:this.logger,tryNextLink:!1})}}async saveToken(e){let t=this.getTokenFilePath(),s=U(t);try{await E.mkdir(s,{recursive:!0})}catch(r){}await E.writeFile(t,JSON.stringify(e,null,2),"utf8")}getTokenFilePath(){let e=process.env.AWS_LOGIN_CACHE_DIRECTORY??P(q(),".aws","login","cache"),t=Buffer.from(this.loginSession,"utf8"),s=H("sha256").update(t).digest("hex");return P(e,`${s}.json`)}derToRawSignature(e){let t=2;if(e[t]!==2)throw Error("Invalid DER signature");t++;let s=e[t++],r=e.subarray(t,t+s);if(t+=s,e[t]!==2)throw Error("Invalid DER signature");t++;let n=e[t++],o=e.subarray(t,t+n);r=r[0]===0?r.subarray(1):r,o=o[0]===0?o.subarray(1):o;let c=Buffer.concat([Buffer.alloc(32-r.length),r]),h=Buffer.concat([Buffer.alloc(32-o.length),o]);return Buffer.concat([c,h])}createDPoPInterceptor(e){e.add((t)=>async(s)=>{if(A.HttpRequest.isInstance(s.request)){let r=s.request,n=`${r.protocol}//${r.hostname}${r.port?`:${r.port}`:""}${r.path}`,o=await this.generateDpop(r.method,n);r.headers={...r.headers,DPoP:o}}return t(s)},{step:"finalizeRequest",name:"dpopInterceptor",override:!0})}async generateDpop(e="POST",t){let s=await this.loadToken();try{let r=K({key:s.dpopKey,format:"pem",type:"sec1"}),o=_(r).export({format:"der",type:"spki"}),c=-1;for(let l=0;l<o.length;l++)if(o[l]===4){c=l;break}let h=o.slice(c+1,c+33),y=o.slice(c+33,c+65),m={alg:"ES256",typ:"dpop+jwt",jwk:{kty:"EC",crv:"P-256",x:h.toString("base64url"),y:y.toString("base64url")}},T={jti:crypto.randomUUID(),htm:e,htu:t,iat:Math.floor(Date.now()/1000)},S=Buffer.from(JSON.stringify(m)).toString("base64url"),x=Buffer.from(JSON.stringify(T)).toString("base64url"),u=`${S}.${x}`,k=v("sha256",Buffer.from(u),r),a=this.derToRawSignature(k).toString("base64url");return`${u}.${a}`}catch(r){throw new f.CredentialsProviderError(`Failed to generate Dpop proof: ${r instanceof Error?r.message:String(r)}`,{logger:this.logger,tryNextLink:!1})}}}var j=(e)=>async({callerClientConfig:t}={})=>{e?.logger?.debug?.("@aws-sdk/credential-providers - fromLoginCredentials");let s=await p.parseKnownFiles(e||{}),r=p.getProfileName({profile:e?.profile??t?.profile}),n=s[r];if(!n?.login_session)throw new p.CredentialsProviderError(`Profile ${r} does not contain login_session.`,{tryNextLink:!0,logger:e?.logger});let c=await new d(n,e,t).loadCredentials();return N.setCredentialFeature(c,"CREDENTIALS_LOGIN","AD")};export{j as fromLoginCredentials};
|