@shumai-one/shumai-agent 0.4.4 → 0.4.5
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/bin/{chunk-gqtret3n.js → chunk-6avzdxd7.js} +1 -1
- package/bin/{chunk-07a5rjnq.js → chunk-75cz1qfr.js} +1 -1
- package/bin/{chunk-sbtjx4y3.js → chunk-80f02wmy.js} +1 -1
- package/bin/{chunk-6195gx01.js → chunk-aeh1zkya.js} +1 -1
- package/bin/{chunk-cwq65x99.js → chunk-g8svcz2s.js} +1 -1
- package/bin/{chunk-kd561cva.js → chunk-sjc0zazt.js} +1 -1
- package/bin/{chunk-1y3q1jce.js → chunk-tajj8sey.js} +1 -1
- package/bin/{chunk-a4xcn19j.js → chunk-wd3dr97j.js} +1 -1
- package/bin/{chunk-nmxr1m3s.js → chunk-x8w09thr.js} +1 -1
- package/bin/{chunk-sfx1j3yr.js → chunk-zh24dybv.js} +1 -1
- package/bin/shumai-agent-app.js +506 -292
- package/package.json +7 -7
- package/prisma/migrations/20260913130237_add_asset_comment_asset_id_idx/migration.sql +2 -0
- package/prisma/schema.prisma +1 -0
- /package/bin/{chunk-bbz8hcag.js → chunk-04dp95m5.js} +0 -0
- /package/bin/{chunk-jkx975yd.js → chunk-4nfp86vv.js} +0 -0
- /package/bin/{chunk-8jd9p0bt.js → chunk-5917esy3.js} +0 -0
- /package/bin/{chunk-fvz08he3.js → chunk-6whe5vwd.js} +0 -0
- /package/bin/{chunk-wzysrq4c.js → chunk-8z8y35z1.js} +0 -0
- /package/bin/{chunk-as1vqgag.js → chunk-95f70ycm.js} +0 -0
- /package/bin/{chunk-5n4wvh5p.js → chunk-a9ka4a7g.js} +0 -0
- /package/bin/{chunk-40bcg5we.js → chunk-ayfenbhf.js} +0 -0
- /package/bin/{chunk-sq5rat8t.js → chunk-bmw7mc1p.js} +0 -0
- /package/bin/{chunk-td2tpqfb.js → chunk-bxw7ewk9.js} +0 -0
- /package/bin/{chunk-gekdwjxf.js → chunk-d2508eez.js} +0 -0
- /package/bin/{chunk-2mcnt6jh.js → chunk-fe563z5g.js} +0 -0
- /package/bin/{chunk-vv932dz6.js → chunk-g5m0z3zf.js} +0 -0
- /package/bin/{chunk-1a493esq.js → chunk-nwr6pvww.js} +0 -0
- /package/bin/{chunk-4926dhzq.js → chunk-pf9fjhe9.js} +0 -0
- /package/bin/{chunk-dc4f80kq.js → chunk-pqn438ma.js} +0 -0
- /package/bin/{chunk-k975ym8c.js → chunk-rh25zhgg.js} +0 -0
- /package/bin/{chunk-h65eqsrp.js → chunk-s984p2eq.js} +0 -0
- /package/bin/{chunk-8tj47emj.js → chunk-taj1dwc9.js} +0 -0
- /package/bin/{chunk-edkxjkdy.js → chunk-tvjbvjq0.js} +0 -0
- /package/bin/{chunk-jt36jdn3.js → chunk-xrcqtsyv.js} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{nt}from"./chunk-vnn8sej7.js";import{y}from"./chunk-e7m6nsvr.js";import"./chunk-s1e2nv5w.js";import{ce,ue,de}from"./chunk-
|
|
2
|
+
import{nt}from"./chunk-vnn8sej7.js";import{y}from"./chunk-e7m6nsvr.js";import"./chunk-s1e2nv5w.js";import{ce,ue,de}from"./chunk-bxw7ewk9.js";import{Y}from"./chunk-nwjh8gnr.js";import{F,Q}from"./chunk-33n9p9q4.js";import{j}from"./chunk-grtavkr4.js";import{L,B}from"./chunk-xp2anj2s.js";import{U}from"./chunk-m8jmvj7p.js";import{I,S}from"./shumai-agent-app.js";var d="v1",A=new Set(["openai","openai-codex","opencode","azure-openai-responses"]),E=16;function R(r){let a=new Map;if(!r)return a;for(let e of r.split(",")){let n=e.trim();if(!n)continue;let[s,t]=n.split("=",2);if(!s||!t)continue;a.set(s.trim(),t.trim())}return a}function h(r,a){if(a?.azureDeploymentName)return a.azureDeploymentName;return R(y("AZURE_OPENAI_DEPLOYMENT_NAME_MAP",a?.env)).get(r.id)||r.id}function g(r){return Q(F(r),"Azure OpenAI API error")}var _=(r,a,e)=>{let n=new I;return(async()=>{let s=h(r,e),t={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:"stop",timestamp:Date.now()};try{let o=e?.apiKey;if(!o)throw Error(`No API key for provider: ${r.provider}`);let i=w(r,o,e),m=L(a.tools,r.compat?.supportsOpenAIGrammarTools??!1),p=N(r,a,e,s,m),u=await e?.onPayload?.(p,r);if(u!==void 0)p=u;let f={...e?.signal?{signal:e.signal}:{},...e?.timeoutMs!==void 0?{timeout:e.timeoutMs}:{},maxRetries:0},{data:l,response:c}=await j(()=>i.responses.create(p,f).withResponse(),{maxRetries:e?.maxRetries,maxRetryDelayMs:e?.maxRetryDelayMs,signal:e?.signal});if(await e?.onResponse?.({status:c.status,headers:U(c.headers)},r),n.push({type:"start",partial:t}),await de(l,t,n,r,{grammarToolInputProperties:m}),e?.signal?.aborted)throw Error("Request was aborted");if(t.stopReason==="aborted"||t.stopReason==="error")throw Error("An unknown error occurred");n.push({type:"done",reason:t.stopReason,message:t}),n.end()}catch(o){for(let i of t.content)delete i.index,delete i.partialJson,delete i.customInput;t.stopReason=e?.signal?.aborted?"aborted":"error",t.errorMessage=g(o),n.push({type:"error",reason:t.stopReason,error:t}),n.end()}})(),n},G=(r,a,e)=>{let n=e?.apiKey;if(!n)throw Error(`No API key for provider: ${r.provider}`);let s=B(r,a,e,n),t=e?.reasoning?S(r,e.reasoning):void 0;return _(r,a,{...s,reasoningEffort:t==="off"?void 0:t})};function v(r){let a=r.trim().replace(/\/+$/,""),e;try{e=new URL(a)}catch{throw Error(`Invalid Azure OpenAI base URL: ${r}`)}let n=e.hostname.endsWith(".openai.azure.com")||e.hostname.endsWith(".cognitiveservices.azure.com")||e.hostname.endsWith(".ai.azure.com"),s=e.pathname.replace(/\/+$/,"");if(n&&(s===""||s==="/"||s==="/openai"||s==="/openai/v1/responses"))e.pathname="/openai/v1",e.search="";return e.toString().replace(/\/+$/,"")}function O(r){return`https://${r}.openai.azure.com/openai/v1`}function P(r,a){let e=a?.azureApiVersion||y("AZURE_OPENAI_API_VERSION",a?.env)||d,n=a?.azureBaseUrl?.trim()||y("AZURE_OPENAI_BASE_URL",a?.env)?.trim()||void 0,s=a?.azureResourceName||y("AZURE_OPENAI_RESOURCE_NAME",a?.env),t=n;if(!t&&s)t=O(s);if(!t&&r.baseUrl)t=r.baseUrl;if(!t)throw Error("Azure OpenAI base URL is required. Set AZURE_OPENAI_BASE_URL or AZURE_OPENAI_RESOURCE_NAME, or pass azureBaseUrl, azureResourceName, or model.baseUrl.");return{baseUrl:v(t),apiVersion:e}}function w(r,a,e){let n={...r.headers};if(e?.headers)Object.assign(n,e.headers);let{baseUrl:s,apiVersion:t}=P(r,e);return new nt({apiKey:a,apiVersion:t,dangerouslyAllowBrowser:!0,defaultHeaders:n,baseURL:s})}function N(r,a,e,n,s=L(a.tools,r.compat?.supportsOpenAIGrammarTools??!1)){let t=ce(r,a,A,{grammarToolInputProperties:s}),o={model:n,input:t,stream:!0,prompt_cache_key:Y(e?.sessionId),store:!1};if(e?.maxTokens)o.max_output_tokens=Math.max(e.maxTokens,E);if(e?.temperature!==void 0)o.temperature=e?.temperature;if(a.tools&&a.tools.length>0)o.tools=ue(a.tools,{supportsStrictMode:r.compat?.supportsStrictMode??!0,supportsOpenAIGrammarTools:r.compat?.supportsOpenAIGrammarTools??!1});if(r.reasoning){if(e?.reasoningEffort||e?.reasoningSummary){let i=e?.reasoningEffort?r.thinkingLevelMap?.[e.reasoningEffort]??e.reasoningEffort:"medium";o.reasoning={effort:i,summary:e?.reasoningSummary||"auto"},o.include=["reasoning.encrypted_content"]}else if(r.thinkingLevelMap?.off!==null)o.reasoning={effort:r.thinkingLevelMap?.off??"none"}}return o}export{_ as stream,G as streamSimple};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{m,h,f}from"./shumai-agent-app.js";import{i}from"./chunk-y2adfzyt.js";var F=i(f()),d=i(m());var p=i(m()),b=i(h());import{createHash as K,createPrivateKey as _,createPublicKey as v,sign as B}from"crypto";import{promises as C}from"fs";import{homedir as q}from"os";import{dirname as U,join as R}from"path";class k{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 p.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<=k.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()>k.REFRESH_THRESHOLD)return this.toCredentials(o.accessToken);let{SigninClient:u,CreateOAuth2TokenCommand:x}=await import("./chunk-
|
|
2
|
+
import{m,h,f}from"./shumai-agent-app.js";import{i}from"./chunk-y2adfzyt.js";var F=i(f()),d=i(m());var p=i(m()),b=i(h());import{createHash as K,createPrivateKey as _,createPublicKey as v,sign as B}from"crypto";import{promises as C}from"fs";import{homedir as q}from"os";import{dirname as U,join as R}from"path";class k{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 p.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<=k.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()>k.REFRESH_THRESHOLD)return this.toCredentials(o.accessToken);let{SigninClient:u,CreateOAuth2TokenCommand:x}=await import("./chunk-95f70ycm.js"),{logger:E,userAgentAppId:S}=this.callerClientConfig??{},D=((a)=>a?.metadata?.handlerProtocol==="h2")(this.callerClientConfig?.requestHandler)?void 0:this.callerClientConfig?.requestHandler,w=this.profileData.region??await this.callerClientConfig?.region?.()??process.env.AWS_REGION,y=new u({credentials:{accessKeyId:"",secretAccessKey:""},region:w,requestHandler:D,logger:E,userAgentAppId:S,...this.init?.clientConfig});this.createDPoPInterceptor(y.middlewareStack);let P={tokenInput:{clientId:o.clientId,refreshToken:o.refreshToken,grantType:"refresh_token"}};try{let a=await y.send(new x(P)),{accessKeyId:l,secretAccessKey:T,sessionToken:g}=a.tokenOutput?.accessToken??{},{refreshToken:A,expiresIn:L}=a.tokenOutput??{};if(!l||!T||!g||!A)throw new p.CredentialsProviderError("Token refresh response missing required fields",{logger:this.logger,tryNextLink:!1});let O=(L??900)*1000,H=new Date(Date.now()+O),N={...o,accessToken:{...o.accessToken,accessKeyId:l,secretAccessKey:T,sessionToken:g,expiresAt:H.toISOString()},refreshToken:A};return await this.saveToken(N),this.toCredentials(N.accessToken)}catch(a){if(a.name==="AccessDeniedException"){let T=a.error,g;switch(T){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 p.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 p.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 C.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 p.CredentialsProviderError(`Token validation failed, missing fields: ${r.join(", ")}`,{logger:this.logger,tryNextLink:!1});return s}catch(t){throw new p.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 C.mkdir(s,{recursive:!0})}catch(r){}await C.writeFile(t,JSON.stringify(e,null,2),"utf8")}getTokenFilePath(){let e=process.env.AWS_LOGIN_CACHE_DIRECTORY??R(q(),".aws","login","cache"),t=Buffer.from(this.loginSession,"utf8"),s=K("sha256").update(t).digest("hex");return R(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]),u=Buffer.concat([Buffer.alloc(32-o.length),o]);return Buffer.concat([c,u])}createDPoPInterceptor(e){e.add((t)=>async(s)=>{if(b.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=_({key:s.dpopKey,format:"pem",type:"sec1"}),o=v(r).export({format:"der",type:"spki"}),c=-1;for(let l=0;l<o.length;l++)if(o[l]===4){c=l;break}let u=o.slice(c+1,c+33),x=o.slice(c+33,c+65),E={alg:"ES256",typ:"dpop+jwt",jwk:{kty:"EC",crv:"P-256",x:u.toString("base64url"),y:x.toString("base64url")}},S={jti:crypto.randomUUID(),htm:e,htu:t,iat:Math.floor(Date.now()/1000)},I=Buffer.from(JSON.stringify(E)).toString("base64url"),D=Buffer.from(JSON.stringify(S)).toString("base64url"),w=`${I}.${D}`,y=B("sha256",Buffer.from(w),r),a=this.derToRawSignature(y).toString("base64url");return`${w}.${a}`}catch(r){throw new p.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 d.parseKnownFiles(e||{}),r=d.getProfileName({profile:e?.profile??t?.profile}),n=s[r];if(!n?.login_session)throw new d.CredentialsProviderError(`Profile ${r} does not contain login_session.`,{tryNextLink:!0,logger:e?.logger});let c=await new k(n,e,t).loadCredentials();return F.setCredentialFeature(c,"CREDENTIALS_LOGIN","AD")};export{j as fromLoginCredentials};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{re,Qe,Ee,Ne,_e,Ge,ke,De,Le,Me}from"./chunk-
|
|
2
|
+
import{re,Qe,Ee,Ne,_e,Ge,ke,De,Le,Me}from"./chunk-8z8y35z1.js";import{y}from"./chunk-e7m6nsvr.js";import{F,Q}from"./chunk-33n9p9q4.js";import{d,B}from"./chunk-xp2anj2s.js";import{be}from"./chunk-m8jmvj7p.js";import{I,v,S}from"./shumai-agent-app.js";var x="v1",b="gcp-vertex-credentials",M={THINKING_LEVEL_UNSPECIFIED:re.THINKING_LEVEL_UNSPECIFIED,MINIMAL:re.MINIMAL,LOW:re.LOW,MEDIUM:re.MEDIUM,HIGH:re.HIGH},R=0,k=(e,t,n)=>{let o=new I;return(async()=>{let i={role:"assistant",content:[],api:"google-vertex",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:"stop",timestamp:Date.now()};try{let u=U(n),s=u?G(e,u,n?.headers):w(e,H(n),V(n),n?.headers,n?.env),p=K(e,t,n),h=await n?.onPayload?.(p,e);if(h!==void 0)p=h;let _=await s.models.generateContentStream(p);o.push({type:"start",partial:i});let r=null,O=i.content,l=()=>O.length-1;for await(let c of _){i.responseId||=c.responseId;let f=c.candidates?.[0];if(f?.content?.parts)for(let a of f.content.parts){if(a.text!==void 0){let g=Ne(a);if(!r||g&&r.type!=="thinking"||!g&&r.type!=="text"){if(r)if(r.type==="text")o.push({type:"text_end",contentIndex:O.length-1,content:r.text,partial:i});else o.push({type:"thinking_end",contentIndex:l(),content:r.thinking,partial:i});if(g)r={type:"thinking",thinking:"",thinkingSignature:void 0},i.content.push(r),o.push({type:"thinking_start",contentIndex:l(),partial:i});else r={type:"text",text:""},i.content.push(r),o.push({type:"text_start",contentIndex:l(),partial:i})}if(r.type==="thinking")r.thinking+=a.text,r.thinkingSignature=_e(r.thinkingSignature,a.thoughtSignature),o.push({type:"thinking_delta",contentIndex:l(),delta:a.text,partial:i});else r.text+=a.text,r.textSignature=_e(r.textSignature,a.thoughtSignature),o.push({type:"text_delta",contentIndex:l(),delta:a.text,partial:i})}if(a.functionCall){if(r){if(r.type==="text")o.push({type:"text_end",contentIndex:l(),content:r.text,partial:i});else o.push({type:"thinking_end",contentIndex:l(),content:r.thinking,partial:i});r=null}let g=a.functionCall.id,m={type:"toolCall",id:!g||i.content.some((L)=>L.type==="toolCall"&&L.id===g)?`${a.functionCall.name}_${Date.now()}_${++R}`:g,name:a.functionCall.name||"",arguments:a.functionCall.args??{},...a.thoughtSignature&&{thoughtSignature:a.thoughtSignature}};i.content.push(m),o.push({type:"toolcall_start",contentIndex:l(),partial:i}),o.push({type:"toolcall_delta",contentIndex:l(),delta:JSON.stringify(m.arguments),partial:i}),o.push({type:"toolcall_end",contentIndex:l(),toolCall:m,partial:i})}}if(f?.finishReason){if(i.stopReason=Me(f.finishReason),i.content.some((a)=>a.type==="toolCall"))i.stopReason="toolUse"}if(c.usageMetadata)i.usage={input:(c.usageMetadata.promptTokenCount||0)-(c.usageMetadata.cachedContentTokenCount||0),output:(c.usageMetadata.candidatesTokenCount||0)+(c.usageMetadata.thoughtsTokenCount||0),cacheRead:c.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,reasoning:c.usageMetadata.thoughtsTokenCount||0,totalTokens:c.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},v(e,i.usage)}if(r)if(r.type==="text")o.push({type:"text_end",contentIndex:l(),content:r.text,partial:i});else o.push({type:"thinking_end",contentIndex:l(),content:r.thinking,partial:i});if(n?.signal?.aborted)throw Error("Request was aborted");if(i.stopReason==="aborted"||i.stopReason==="error")throw Error("An unknown error occurred");o.push({type:"done",reason:i.stopReason,message:i}),o.end()}catch(u){for(let s of i.content)if("index"in s)delete s.index;i.stopReason=n?.signal?.aborted?"aborted":"error",i.errorMessage=Q(F(u)),o.push({type:"error",reason:i.stopReason,error:i}),o.end()}})(),o},se=(e,t,n)=>{let o=B(e,t,n,void 0);if(!n?.reasoning)return k(e,t,{...o,thinking:{enabled:!1}});let i=S(e,n.reasoning),u=i==="off"?"high":i,s=e;if(C(s)||T(s))return k(e,t,{...o,thinking:{enabled:!0,level:j(u,s)}});return k(e,t,{...o,thinking:{enabled:!0,budgetTokens:J(s,u,n.thinkingBudgets)}})};function w(e,t,n,o,i){let u=N(i);return new Ee({vertexai:!0,project:t,location:n,apiVersion:x,...u?{googleAuthOptions:u}:{},httpOptions:E(e,o)})}function G(e,t,n){return new Ee({vertexai:!0,apiKey:t,apiVersion:x,httpOptions:E(e,n)})}function E(e,t){let n={},o=A(e.baseUrl);if(o){if(n.baseUrl=o,n.baseUrlResourceScope=Qe.COLLECTION,P(o))n.apiVersion=""}let i=be({...e.headers,...t});if(i)n.headers=i;return Object.keys(n).length>0?n:void 0}function A(e){let t=e.trim();if(!t||t.includes("{location}"))return;return t}function P(e){try{return new URL(e).pathname.split("/").some((n)=>/^v\d+(?:beta\d*)?$/.test(n))}catch{return/(?:^|\/)v\d+(?:beta\d*)?(?:\/|$)/.test(e)}}function N(e){let t=y("GOOGLE_APPLICATION_CREDENTIALS",e);return t?{keyFilename:t}:void 0}function U(e){let t=e?.apiKey?.trim();if(!t||t===b||D(t))return;return t}function D(e){return/^<[^>]+>$/.test(e)}function H(e){let t=e?.project||y("GOOGLE_CLOUD_PROJECT",e?.env)||y("GCLOUD_PROJECT",e?.env);if(!t)throw Error("Vertex AI requires a project ID. Set GOOGLE_CLOUD_PROJECT/GCLOUD_PROJECT or pass project in options.");return t}function V(e){let t=e?.location||y("GOOGLE_CLOUD_LOCATION",e?.env);if(!t)throw Error("Vertex AI requires a location. Set GOOGLE_CLOUD_LOCATION or pass location in options.");return t}function K(e,t,n={}){let o=Ge(e,t),i={};if(n.temperature!==void 0)i.temperature=n.temperature;if(n.maxTokens!==void 0)i.maxOutputTokens=n.maxTokens;let u=t.tools?.length?Le(t.tools,n.toolChoice,De(e.id)):void 0,s={...Object.keys(i).length>0&&i,...t.systemPrompt&&{systemInstruction:d(t.systemPrompt)},...t.tools&&t.tools.length>0&&{tools:ke(t.tools)},...u!==void 0&&{toolConfig:{functionCallingConfig:{mode:u}}}};if(n.thinking?.enabled&&e.reasoning){let h={includeThoughts:!0};if(n.thinking.level!==void 0)h.thinkingLevel=M[n.thinking.level];else if(n.thinking.budgetTokens!==void 0)h.thinkingBudget=n.thinking.budgetTokens;s.thinkingConfig=h}else if(e.reasoning&&n.thinking&&!n.thinking.enabled)s.thinkingConfig=W(e);if(n.signal){if(n.signal.aborted)throw Error("Request aborted");s.abortSignal=n.signal}return{model:e.id,contents:o,config:s}}function C(e){return/gemini-3(?:\.\d+)?-pro/.test(e.id.toLowerCase())}function T(e){let t=e.id.toLowerCase();return/gemini-3(?:\.\d+)?-flash/.test(t)||t==="gemini-flash-latest"||t==="gemini-flash-lite-latest"}function W(e){let t=e;if(C(t))return{thinkingLevel:re.LOW};if(T(t))return{thinkingLevel:re.MINIMAL};return{thinkingBudget:0}}function j(e,t){if(C(t))switch(e){case"minimal":case"low":return"LOW";case"medium":case"high":return"HIGH"}switch(e){case"minimal":return"MINIMAL";case"low":return"LOW";case"medium":return"MEDIUM";case"high":return"HIGH"}}function J(e,t,n){if(n?.[t]!==void 0)return n[t];if(e.id.includes("2.5-pro"))return{minimal:128,low:2048,medium:8192,high:32768}[t];if(e.id.includes("2.5-flash"))return{minimal:128,low:2048,medium:8192,high:24576}[t];return-1}export{k as stream,se as streamSimple};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{y}from"./chunk-e7m6nsvr.js";import"./chunk-s1e2nv5w.js";import{Ie}from"./chunk-4q9h14c1.js";import{ce,ue,de}from"./chunk-td2tpqfb.js";import{Y}from"./chunk-nwjh8gnr.js";import{F,Q}from"./chunk-33n9p9q4.js";import{L,B}from"./chunk-xp2anj2s.js";import{U}from"./chunk-m8jmvj7p.js";import{xe,ze,ve,I,S,Je}from"./shumai-agent-app.js";var re=new Set;function ne(e){return re.add(e),()=>{re.delete(e)}}function oe(e){let t=e.filter((o)=>o!==void 0);if(t.length===0)return{cleanup:()=>{}};if(t.length===1)return{signal:t[0],cleanup:()=>{}};let r=new AbortController,n=[],s=(o)=>{if(!r.signal.aborted)r.abort(o.reason)};for(let o of t){if(o.aborted){s(o);break}let i=()=>s(o);o.addEventListener("abort",i,{once:!0}),n.push({signal:o,listener:i})}return{signal:r.signal,cleanup:()=>{for(let{signal:o,listener:i}of n)o.removeEventListener("abort",i)}}}var Ce={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443};function j(e,t){let r=e.toLowerCase(),n=e.toUpperCase();return t?.[r]||t?.[n]||y(r)||y(n)||""}function Oe(e){if(e instanceof URL)return e;try{return new URL(e)}catch{return}}function Ae(e,t,r){let n=j("no_proxy",r).toLowerCase();if(!n)return!0;if(n==="*")return!1;return n.split(/[,\s]/).every((s)=>{if(!s)return!0;let o=s.match(/^(.+):(\d+)$/),i=o?o[1]:s,l=o?Number.parseInt(o[2],10):0;if(l&&l!==t)return!0;if(!/^[.*]/.test(i))return e!==i;if(i.startsWith("*"))i=i.slice(1);return!e.endsWith(i)})}function Le(e,t){let r=Oe(e);if(!r?.protocol||!r.host)return"";let n=r.protocol.split(":",1)[0],s=r.host.replace(/:\d*$/,""),o=Number.parseInt(r.port,10)||Ce[n]||0;if(!Ae(s,o,t))return"";let i=j(`${n}_proxy`,t)||j("all_proxy",t);if(i&&!i.includes("://"))i=`${n}://${i}`;return i}var We="Unsupported proxy protocol. SOCKS and PAC proxy URLs are not supported; use an HTTP or HTTPS proxy URL.";function se(e,t){let r=Le(e,t);if(!r)return;let n;try{n=new URL(r)}catch(s){throw Error(`Invalid proxy URL ${JSON.stringify(r)}: ${s instanceof Error?s.message:String(s)}`)}if(n.protocol!=="http:"&&n.protocol!=="https:")throw Error(`${We} Got ${n.protocol}`);return n}function Ne(){if(typeof process>"u"||!(process.versions?.node||process.versions?.bun))return null;return process.getBuiltinModule?.("node:os")??null}var H=Ne(),Pe="https://chatgpt.com/backend-api",Me="https://api.openai.com/auth",De=0,ie=1000,qe=60000,Be=15000,Ue=3,ye=new Set(["openai","openai-codex","opencode"]),$e=1009,Fe="websocket_connection_limit_reached",He="previous_response_not_found",Ke=new Set(["completed","incomplete","failed","cancelled","queued","in_progress"]);function Ge(e){return/GoUsageLimitError|FreeUsageLimitError|Monthly usage limit reached|available balance|insufficient_quota|out of budget|quota exceeded|billing/i.test(e)}function Xe(e,t){if(e===429&&Ge(t))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(t)}function je(e){let t=e.get("retry-after-ms");if(t!==null){let o=Number(t);if(Number.isFinite(o))return Math.max(0,o)}let r=e.get("retry-after");if(!r)return;let n=Number(r);if(Number.isFinite(n))return Math.max(0,n*1000);let s=Date.parse(r);if(!Number.isNaN(s))return Math.max(0,s-Date.now());return}class ee extends Error{}function Ve(e,t){let r=t?.maxRetryDelayMs??qe;if(r>0&&e>r)throw new ee(`Server requested ${Math.ceil(e/1000)}s retry delay (max: ${Math.ceil(r/1000)}s)`);return e}function ae(e,t){return new Promise((r,n)=>{if(t?.aborted){n(Error("Request was aborted"));return}let s=setTimeout(r,e);t?.addEventListener("abort",()=>{clearTimeout(s),n(Error("Request was aborted"))})})}function le(e){if(e===void 0)return;if(!Number.isFinite(e)||e<0)throw Error(`Invalid timeoutMs: ${String(e)}`);return Math.floor(e)}function Ye(){if(typeof process>"u"||!(process.versions?.node||process.versions?.bun))return null;return process.getBuiltinModule?.("node:zlib")??null}function Ze(e){let t=Ye();if(!t||typeof t.zstdCompressSync!=="function")return null;try{let r=t.zstdCompressSync(e,{params:{[t.constants.ZSTD_c_compressionLevel]:Ue}});return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}catch{return null}}var Qe=(e,t,r)=>{let n=new I;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:"stop",timestamp:Date.now()};try{let o=r?.apiKey;if(!o)throw Error(`No API key for provider: ${e.provider}`);let i=Ct(o),l=L(t.tools,e.compat?.supportsOpenAIGrammarTools??!1),a=r?.cacheRetention==="none"?void 0:r?.sessionId,c=Y(a),d=et(e,t,r,c,l),u=await r?.onPayload?.(d,e);if(u!==void 0)d=u;let E=c||Je(),f=Ot(e.headers,r?.headers,i,o,c),_=At(e.headers,r?.headers,i,o,E),m=JSON.stringify(d),p=le(r?.timeoutMs),C=le(r?.websocketConnectTimeoutMs),b=r?.transport||"auto",w=!1,h=b!=="sse"&&Se(a);if(h)fe(a);if(b!=="sse"&&!h){let g=!1,T=!1,A=!1;while(!0){g=!1;try{if(await xt(rt(e.baseUrl),d,_,s,n,e,()=>{if(g=!0,!w)w=!0,n.push({type:"start",partial:s})},p,C,a,l,r),r?.signal?.aborted)throw Error("Request was aborted");n.push({type:"done",reason:s.stopReason,message:s}),n.end();return}catch(x){let D=r?.signal?.aborted,q=!g&&st(x),N=it(x);if(!D&&N&&!A){A=!0;continue}if(!D&&q&&!T){T=!0;continue}if(D||ot(x)&&!q)throw x;if(ve(s,ze("provider_transport_failure",x,{configuredTransport:b,fallbackTransport:g?void 0:"sse",eventsEmitted:g,phase:g?"after_message_stream_start":"before_message_stream_start",requestBytes:new TextEncoder().encode(m).byteLength})),mt(a,x),g)throw x;fe(a);break}}}let O=Ze(m);if(O)f.set("content-encoding","zstd");let W=O??m,k,M,X=r?.maxRetries??De;for(let g=0;g<=X;g++){if(r?.signal?.aborted)throw Error("Request was aborted");try{let T=p!==void 0&&p>0?AbortSignal.timeout(p):void 0,A=oe([r?.signal,T]);try{k=await fetch(we(e.baseUrl),{method:"POST",headers:f,body:W,signal:A.signal})}catch(N){if(T?.aborted&&!r?.signal?.aborted)throw Error(`Codex SSE response headers timed out after ${p}ms`);throw N}finally{A.cleanup()}if(await r?.onResponse?.({status:k.status,headers:U(k.headers)},e),k.ok)break;let x=await k.text();if(g<X&&Xe(k.status,x)){let N=je(k.headers),Re=N===void 0?ie*2**g:Ve(N,r);await ae(Re,r?.signal);continue}let D=new Response(x,{status:k.status,statusText:k.statusText}),q=await vt(D);throw Error(q.friendlyMessage||q.message)}catch(T){if(T instanceof Error){if(T.name==="AbortError"||T.message==="Request was aborted")throw Error("Request was aborted")}if(M=T instanceof Error?T:Error(String(T)),g<X&&!(M instanceof ee)&&!M.message.includes("usage limit")){let A=ie*2**g;await ae(A,r?.signal);continue}throw M}}if(!k?.ok)throw M??Error("Failed after retries");if(!k.body)throw Error("No response body");if(!w)w=!0,n.push({type:"start",partial:s});if(await nt(k,s,n,e,l,r),r?.signal?.aborted)throw Error("Request was aborted");n.push({type:"done",reason:s.stopReason,message:s}),n.end()}catch(o){for(let i of s.content)delete i.partialJson,delete i.customInput;s.stopReason=r?.signal?.aborted?"aborted":"error",s.errorMessage=Q(F(o)),n.push({type:"error",reason:s.stopReason,error:s}),n.end()}})(),n},jt=(e,t,r)=>{let n=r?.apiKey;if(!n)throw Error(`No API key for provider: ${e.provider}`);let s=B(e,t,r,n),o=r?.reasoning?S(e,r.reasoning):void 0;return Qe(e,t,{...s,reasoningEffort:o==="off"?void 0:o})};function et(e,t,r,n,s=L(t.tools,e.compat?.supportsOpenAIGrammarTools??!1)){let o=e.compat?.supportsStrictMode??!0,i=e.compat?.supportsOpenAIGrammarTools??!1,l=Ie(t,e.compat?.supportsToolSearch??!1),a=ce(e,t,ye,{includeSystemPrompt:!1,grammarToolInputProperties:s,deferredTools:l.deferred,toolOptions:{strict:null,supportsStrictMode:o,supportsOpenAIGrammarTools:i}}),c={model:e.id,store:!1,stream:!0,instructions:t.systemPrompt||"You are a helpful assistant.",input:a,text:{verbosity:r?.textVerbosity||"low"},include:["reasoning.encrypted_content"],prompt_cache_key:n,tool_choice:r?.toolChoice??"auto",parallel_tool_calls:!0};if(r?.temperature!==void 0)c.temperature=r.temperature;if(r?.serviceTier!==void 0)c.service_tier=r.serviceTier;if(l.immediate.length>0)c.tools=ue(l.immediate,{strict:null,supportsStrictMode:o,supportsOpenAIGrammarTools:i});if(r?.reasoningEffort!==void 0){let d=r.reasoningEffort==="none"?e.thinkingLevelMap?.off??"none":e.thinkingLevelMap?.[r.reasoningEffort]??r.reasoningEffort;if(d!==null)c.reasoning={effort:d,summary:r.reasoningSummary??"auto"}}return c}function tt(e,t){switch(t){case"flex":return 0.5;case"priority":return e.id==="gpt-5.5"?2.5:2;default:return 1}}function be(e,t,r){let n=tt(r,t);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 he(e,t){if(e==="default"&&(t==="flex"||t==="priority"))return t;return e??t}function we(e){let r=(e&&e.trim().length>0?e:Pe).replace(/\/+$/,"");if(r.endsWith("/codex/responses"))return r;if(r.endsWith("/codex"))return`${r}/responses`;return`${r}/codex/responses`}function rt(e){let t=new URL(we(e));if(t.protocol==="https:")t.protocol="wss:";if(t.protocol==="http:")t.protocol="ws:";return t.toString()}async function nt(e,t,r,n,s,o){await de(ge(ut(e,o?.signal)),t,r,n,{serviceTier:o?.serviceTier,grammarToolInputProperties:s,resolveServiceTier:he,applyServiceTierPricing:(i,l)=>be(i,l,n)})}class P extends Error{code;payload;constructor(e,t){super(e);this.name="CodexApiError",this.code=t?.code,this.payload=t?.payload,this.cause=t?.cause}}class z extends Error{payload;constructor(e,t){super(e);this.name="CodexProtocolError",this.payload=t?.payload,this.cause=t?.cause}}function ot(e){return e instanceof P||e instanceof z}function st(e){return e instanceof P&&e.code===Fe}function it(e){return e instanceof P&&e.code===He}function at(e){let t=e.error&&typeof e.error==="object"?e.error:void 0;return{code:typeof e.code==="string"?e.code:typeof t?.code==="string"?t.code:void 0,message:typeof e.message==="string"?e.message:typeof t?.message==="string"?t.message:void 0}}async function*ge(e){for await(let t of e){let r=typeof t.type==="string"?t.type:void 0;if(!r)continue;if(r==="error"){let{code:n,message:s}=at(t);throw new P(`Codex error: ${s||n||JSON.stringify(t)}`,{code:n,payload:t})}if(r==="response.failed"){let n=t.response,s=n?.error?.code,o=n?.error?.message;throw new P(o||"Codex response failed",{code:s,payload:t})}if(r==="response.done"||r==="response.completed"||r==="response.incomplete"){let n=t.response,s=n?{...n,status:ct(n.status)}:n;yield{...t,type:"response.completed",response:s};return}yield t}}function ct(e){if(typeof e!=="string")return;return Ke.has(e)?e:void 0}async function*ut(e,t){if(!e.body)return;let r=e.body.getReader(),n=new TextDecoder,s="",o=()=>{r.cancel().catch(()=>{})};t?.addEventListener("abort",o,{once:!0});try{while(!0){if(t?.aborted)throw Error("Request was aborted");let{done:i,value:l}=await r.read();if(t?.aborted)throw Error("Request was aborted");if(i)break;s+=n.decode(l,{stream:!0});let a=s.indexOf(`
|
|
2
|
+
import{y}from"./chunk-e7m6nsvr.js";import"./chunk-s1e2nv5w.js";import{Ie}from"./chunk-4q9h14c1.js";import{ce,ue,de}from"./chunk-bxw7ewk9.js";import{Y}from"./chunk-nwjh8gnr.js";import{F,Q}from"./chunk-33n9p9q4.js";import{L,B}from"./chunk-xp2anj2s.js";import{U}from"./chunk-m8jmvj7p.js";import{xe,ze,ve,I,S,Je}from"./shumai-agent-app.js";var re=new Set;function ne(e){return re.add(e),()=>{re.delete(e)}}function oe(e){let t=e.filter((o)=>o!==void 0);if(t.length===0)return{cleanup:()=>{}};if(t.length===1)return{signal:t[0],cleanup:()=>{}};let r=new AbortController,n=[],s=(o)=>{if(!r.signal.aborted)r.abort(o.reason)};for(let o of t){if(o.aborted){s(o);break}let i=()=>s(o);o.addEventListener("abort",i,{once:!0}),n.push({signal:o,listener:i})}return{signal:r.signal,cleanup:()=>{for(let{signal:o,listener:i}of n)o.removeEventListener("abort",i)}}}var Ce={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443};function j(e,t){let r=e.toLowerCase(),n=e.toUpperCase();return t?.[r]||t?.[n]||y(r)||y(n)||""}function Oe(e){if(e instanceof URL)return e;try{return new URL(e)}catch{return}}function Ae(e,t,r){let n=j("no_proxy",r).toLowerCase();if(!n)return!0;if(n==="*")return!1;return n.split(/[,\s]/).every((s)=>{if(!s)return!0;let o=s.match(/^(.+):(\d+)$/),i=o?o[1]:s,l=o?Number.parseInt(o[2],10):0;if(l&&l!==t)return!0;if(!/^[.*]/.test(i))return e!==i;if(i.startsWith("*"))i=i.slice(1);return!e.endsWith(i)})}function Le(e,t){let r=Oe(e);if(!r?.protocol||!r.host)return"";let n=r.protocol.split(":",1)[0],s=r.host.replace(/:\d*$/,""),o=Number.parseInt(r.port,10)||Ce[n]||0;if(!Ae(s,o,t))return"";let i=j(`${n}_proxy`,t)||j("all_proxy",t);if(i&&!i.includes("://"))i=`${n}://${i}`;return i}var We="Unsupported proxy protocol. SOCKS and PAC proxy URLs are not supported; use an HTTP or HTTPS proxy URL.";function se(e,t){let r=Le(e,t);if(!r)return;let n;try{n=new URL(r)}catch(s){throw Error(`Invalid proxy URL ${JSON.stringify(r)}: ${s instanceof Error?s.message:String(s)}`)}if(n.protocol!=="http:"&&n.protocol!=="https:")throw Error(`${We} Got ${n.protocol}`);return n}function Ne(){if(typeof process>"u"||!(process.versions?.node||process.versions?.bun))return null;return process.getBuiltinModule?.("node:os")??null}var H=Ne(),Pe="https://chatgpt.com/backend-api",Me="https://api.openai.com/auth",De=0,ie=1000,qe=60000,Be=15000,Ue=3,ye=new Set(["openai","openai-codex","opencode"]),$e=1009,Fe="websocket_connection_limit_reached",He="previous_response_not_found",Ke=new Set(["completed","incomplete","failed","cancelled","queued","in_progress"]);function Ge(e){return/GoUsageLimitError|FreeUsageLimitError|Monthly usage limit reached|available balance|insufficient_quota|out of budget|quota exceeded|billing/i.test(e)}function Xe(e,t){if(e===429&&Ge(t))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(t)}function je(e){let t=e.get("retry-after-ms");if(t!==null){let o=Number(t);if(Number.isFinite(o))return Math.max(0,o)}let r=e.get("retry-after");if(!r)return;let n=Number(r);if(Number.isFinite(n))return Math.max(0,n*1000);let s=Date.parse(r);if(!Number.isNaN(s))return Math.max(0,s-Date.now());return}class ee extends Error{}function Ve(e,t){let r=t?.maxRetryDelayMs??qe;if(r>0&&e>r)throw new ee(`Server requested ${Math.ceil(e/1000)}s retry delay (max: ${Math.ceil(r/1000)}s)`);return e}function ae(e,t){return new Promise((r,n)=>{if(t?.aborted){n(Error("Request was aborted"));return}let s=setTimeout(r,e);t?.addEventListener("abort",()=>{clearTimeout(s),n(Error("Request was aborted"))})})}function le(e){if(e===void 0)return;if(!Number.isFinite(e)||e<0)throw Error(`Invalid timeoutMs: ${String(e)}`);return Math.floor(e)}function Ye(){if(typeof process>"u"||!(process.versions?.node||process.versions?.bun))return null;return process.getBuiltinModule?.("node:zlib")??null}function Ze(e){let t=Ye();if(!t||typeof t.zstdCompressSync!=="function")return null;try{let r=t.zstdCompressSync(e,{params:{[t.constants.ZSTD_c_compressionLevel]:Ue}});return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}catch{return null}}var Qe=(e,t,r)=>{let n=new I;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:"stop",timestamp:Date.now()};try{let o=r?.apiKey;if(!o)throw Error(`No API key for provider: ${e.provider}`);let i=Ct(o),l=L(t.tools,e.compat?.supportsOpenAIGrammarTools??!1),a=r?.cacheRetention==="none"?void 0:r?.sessionId,c=Y(a),d=et(e,t,r,c,l),u=await r?.onPayload?.(d,e);if(u!==void 0)d=u;let E=c||Je(),f=Ot(e.headers,r?.headers,i,o,c),_=At(e.headers,r?.headers,i,o,E),m=JSON.stringify(d),p=le(r?.timeoutMs),C=le(r?.websocketConnectTimeoutMs),b=r?.transport||"auto",w=!1,h=b!=="sse"&&Se(a);if(h)fe(a);if(b!=="sse"&&!h){let g=!1,T=!1,A=!1;while(!0){g=!1;try{if(await xt(rt(e.baseUrl),d,_,s,n,e,()=>{if(g=!0,!w)w=!0,n.push({type:"start",partial:s})},p,C,a,l,r),r?.signal?.aborted)throw Error("Request was aborted");n.push({type:"done",reason:s.stopReason,message:s}),n.end();return}catch(x){let D=r?.signal?.aborted,q=!g&&st(x),N=it(x);if(!D&&N&&!A){A=!0;continue}if(!D&&q&&!T){T=!0;continue}if(D||ot(x)&&!q)throw x;if(ve(s,ze("provider_transport_failure",x,{configuredTransport:b,fallbackTransport:g?void 0:"sse",eventsEmitted:g,phase:g?"after_message_stream_start":"before_message_stream_start",requestBytes:new TextEncoder().encode(m).byteLength})),mt(a,x),g)throw x;fe(a);break}}}let O=Ze(m);if(O)f.set("content-encoding","zstd");let W=O??m,k,M,X=r?.maxRetries??De;for(let g=0;g<=X;g++){if(r?.signal?.aborted)throw Error("Request was aborted");try{let T=p!==void 0&&p>0?AbortSignal.timeout(p):void 0,A=oe([r?.signal,T]);try{k=await fetch(we(e.baseUrl),{method:"POST",headers:f,body:W,signal:A.signal})}catch(N){if(T?.aborted&&!r?.signal?.aborted)throw Error(`Codex SSE response headers timed out after ${p}ms`);throw N}finally{A.cleanup()}if(await r?.onResponse?.({status:k.status,headers:U(k.headers)},e),k.ok)break;let x=await k.text();if(g<X&&Xe(k.status,x)){let N=je(k.headers),Re=N===void 0?ie*2**g:Ve(N,r);await ae(Re,r?.signal);continue}let D=new Response(x,{status:k.status,statusText:k.statusText}),q=await vt(D);throw Error(q.friendlyMessage||q.message)}catch(T){if(T instanceof Error){if(T.name==="AbortError"||T.message==="Request was aborted")throw Error("Request was aborted")}if(M=T instanceof Error?T:Error(String(T)),g<X&&!(M instanceof ee)&&!M.message.includes("usage limit")){let A=ie*2**g;await ae(A,r?.signal);continue}throw M}}if(!k?.ok)throw M??Error("Failed after retries");if(!k.body)throw Error("No response body");if(!w)w=!0,n.push({type:"start",partial:s});if(await nt(k,s,n,e,l,r),r?.signal?.aborted)throw Error("Request was aborted");n.push({type:"done",reason:s.stopReason,message:s}),n.end()}catch(o){for(let i of s.content)delete i.partialJson,delete i.customInput;s.stopReason=r?.signal?.aborted?"aborted":"error",s.errorMessage=Q(F(o)),n.push({type:"error",reason:s.stopReason,error:s}),n.end()}})(),n},jt=(e,t,r)=>{let n=r?.apiKey;if(!n)throw Error(`No API key for provider: ${e.provider}`);let s=B(e,t,r,n),o=r?.reasoning?S(e,r.reasoning):void 0;return Qe(e,t,{...s,reasoningEffort:o==="off"?void 0:o})};function et(e,t,r,n,s=L(t.tools,e.compat?.supportsOpenAIGrammarTools??!1)){let o=e.compat?.supportsStrictMode??!0,i=e.compat?.supportsOpenAIGrammarTools??!1,l=Ie(t,e.compat?.supportsToolSearch??!1),a=ce(e,t,ye,{includeSystemPrompt:!1,grammarToolInputProperties:s,deferredTools:l.deferred,toolOptions:{strict:null,supportsStrictMode:o,supportsOpenAIGrammarTools:i}}),c={model:e.id,store:!1,stream:!0,instructions:t.systemPrompt||"You are a helpful assistant.",input:a,text:{verbosity:r?.textVerbosity||"low"},include:["reasoning.encrypted_content"],prompt_cache_key:n,tool_choice:r?.toolChoice??"auto",parallel_tool_calls:!0};if(r?.temperature!==void 0)c.temperature=r.temperature;if(r?.serviceTier!==void 0)c.service_tier=r.serviceTier;if(l.immediate.length>0)c.tools=ue(l.immediate,{strict:null,supportsStrictMode:o,supportsOpenAIGrammarTools:i});if(r?.reasoningEffort!==void 0){let d=r.reasoningEffort==="none"?e.thinkingLevelMap?.off??"none":e.thinkingLevelMap?.[r.reasoningEffort]??r.reasoningEffort;if(d!==null)c.reasoning={effort:d,summary:r.reasoningSummary??"auto"}}return c}function tt(e,t){switch(t){case"flex":return 0.5;case"priority":return e.id==="gpt-5.5"?2.5:2;default:return 1}}function be(e,t,r){let n=tt(r,t);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 he(e,t){if(e==="default"&&(t==="flex"||t==="priority"))return t;return e??t}function we(e){let r=(e&&e.trim().length>0?e:Pe).replace(/\/+$/,"");if(r.endsWith("/codex/responses"))return r;if(r.endsWith("/codex"))return`${r}/responses`;return`${r}/codex/responses`}function rt(e){let t=new URL(we(e));if(t.protocol==="https:")t.protocol="wss:";if(t.protocol==="http:")t.protocol="ws:";return t.toString()}async function nt(e,t,r,n,s,o){await de(ge(ut(e,o?.signal)),t,r,n,{serviceTier:o?.serviceTier,grammarToolInputProperties:s,resolveServiceTier:he,applyServiceTierPricing:(i,l)=>be(i,l,n)})}class P extends Error{code;payload;constructor(e,t){super(e);this.name="CodexApiError",this.code=t?.code,this.payload=t?.payload,this.cause=t?.cause}}class z extends Error{payload;constructor(e,t){super(e);this.name="CodexProtocolError",this.payload=t?.payload,this.cause=t?.cause}}function ot(e){return e instanceof P||e instanceof z}function st(e){return e instanceof P&&e.code===Fe}function it(e){return e instanceof P&&e.code===He}function at(e){let t=e.error&&typeof e.error==="object"?e.error:void 0;return{code:typeof e.code==="string"?e.code:typeof t?.code==="string"?t.code:void 0,message:typeof e.message==="string"?e.message:typeof t?.message==="string"?t.message:void 0}}async function*ge(e){for await(let t of e){let r=typeof t.type==="string"?t.type:void 0;if(!r)continue;if(r==="error"){let{code:n,message:s}=at(t);throw new P(`Codex error: ${s||n||JSON.stringify(t)}`,{code:n,payload:t})}if(r==="response.failed"){let n=t.response,s=n?.error?.code,o=n?.error?.message;throw new P(o||"Codex response failed",{code:s,payload:t})}if(r==="response.done"||r==="response.completed"||r==="response.incomplete"){let n=t.response,s=n?{...n,status:ct(n.status)}:n;yield{...t,type:"response.completed",response:s};return}yield t}}function ct(e){if(typeof e!=="string")return;return Ke.has(e)?e:void 0}async function*ut(e,t){if(!e.body)return;let r=e.body.getReader(),n=new TextDecoder,s="",o=()=>{r.cancel().catch(()=>{})};t?.addEventListener("abort",o,{once:!0});try{while(!0){if(t?.aborted)throw Error("Request was aborted");let{done:i,value:l}=await r.read();if(t?.aborted)throw Error("Request was aborted");if(i)break;s+=n.decode(l,{stream:!0});let a=s.indexOf(`
|
|
3
3
|
|
|
4
4
|
`);while(a!==-1){let c=s.slice(0,a);s=s.slice(a+2);let d=c.split(`
|
|
5
5
|
`).filter((u)=>u.startsWith("data:")).map((u)=>u.slice(5).trim());if(d.length>0){let u=d.join(`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{A}from"./chunk-vnn8sej7.js";import{y}from"./chunk-e7m6nsvr.js";import"./chunk-s1e2nv5w.js";import{Ie}from"./chunk-4q9h14c1.js";import{ye,Ce}from"./chunk-b2205272.js";import{ce,ue,de}from"./chunk-
|
|
2
|
+
import{A}from"./chunk-vnn8sej7.js";import{y}from"./chunk-e7m6nsvr.js";import"./chunk-s1e2nv5w.js";import{Ie}from"./chunk-4q9h14c1.js";import{ye,Ce}from"./chunk-b2205272.js";import{ce,ue,de}from"./chunk-bxw7ewk9.js";import{Y}from"./chunk-nwjh8gnr.js";import{F,Q}from"./chunk-33n9p9q4.js";import{j}from"./chunk-grtavkr4.js";import{L,B}from"./chunk-xp2anj2s.js";import{U}from"./chunk-m8jmvj7p.js";import{I,S}from"./shumai-agent-app.js";var P=new Set(["openai","openai-codex","opencode"]),C=16;function h(e,o){if(!e)return!1;let r=o.toLowerCase();for(let[t,s]of Object.entries(e))if(t.toLowerCase()===r&&s!==null&&s.trim().length>0)return!0;return!1}function g(e,o,r){if(o)return o;if(h(r,"authorization")||h(r,"cf-aig-authorization"))return"unused";throw Error(`No API key for provider: ${e}`)}function w(e){return e.provider==="openrouter"||e.baseUrl.includes("openrouter.ai")?"openrouter":"openai"}function R(e,o){if(e)return e;if(y("PI_CACHE_RETENTION",o)==="long")return"long";return"short"}function m(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,sessionAffinityFormat:e.compat?.sessionAffinityFormat??w(e),supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0,supportsStrictMode:e.compat?.supportsStrictMode??!1,supportsOpenAIGrammarTools:e.compat?.supportsOpenAIGrammarTools??!1,supportsToolSearch:e.compat?.supportsToolSearch??!1,supportsExplicitPromptCacheMode:e.compat?.supportsExplicitPromptCacheMode??!1}}function M(e,o){return o==="long"&&e.supportsLongCacheRetention?"24h":void 0}function _(e){return Q(F(e),"OpenAI API error")}var b=(e,o,r)=>{let t=new I;return(async()=>{let s={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:"stop",timestamp:Date.now()};try{let i=g(e.provider,r?.apiKey,r?.headers),c=R(r?.cacheRetention,r?.env)==="none"?void 0:r?.sessionId,p=m(e),a=L(o.tools,p.supportsOpenAIGrammarTools),u=x(e,o,i,r?.headers,c),f=k(e,o,r,p,a),l=await r?.onPayload?.(f,e);if(l!==void 0)f=l;let v={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs!==void 0?{timeout:r.timeoutMs}:{},maxRetries:0},{data:T,response:d}=await j(()=>u.responses.create(f,v).withResponse(),{maxRetries:r?.maxRetries,maxRetryDelayMs:r?.maxRetryDelayMs,signal:r?.signal});if(await r?.onResponse?.({status:d.status,headers:U(d.headers)},e),t.push({type:"start",partial:s}),await de(T,s,t,e,{serviceTier:r?.serviceTier,grammarToolInputProperties:a,applyServiceTierPricing:(O,E)=>D(O,E,e)}),r?.signal?.aborted)throw Error("Request was aborted");if(s.stopReason==="aborted"||s.stopReason==="error")throw Error("An unknown error occurred");t.push({type:"done",reason:s.stopReason,message:s}),t.end()}catch(i){for(let n of s.content)delete n.index,delete n.partialJson,delete n.customInput;s.stopReason=r?.signal?.aborted?"aborted":"error",s.errorMessage=_(i),t.push({type:"error",reason:s.stopReason,error:s}),t.end()}})(),t},oe=(e,o,r)=>{g(e.provider,r?.apiKey,r?.headers);let t=B(e,o,r,r?.apiKey),s=r?.reasoning?S(e,r.reasoning):void 0;return b(e,o,{...t,reasoningEffort:s==="off"?void 0:s})};function x(e,o,r,t,s){let i=m(e),n={...e.headers};if(e.provider==="github-copilot"){let c=ye(o.messages),p=Ce({messages:o.messages,hasImages:c});Object.assign(n,p)}if(s)if(i.sessionAffinityFormat==="openrouter")n["x-session-id"]=s;else{if(i.sessionAffinityFormat==="openai")n.session_id=s;n["x-client-request-id"]=s}if(t)Object.assign(n,t);return new A({apiKey:r,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:n})}function k(e,o,r,t=m(e),s=L(o.tools,t.supportsOpenAIGrammarTools)){let i=Ie(o,t.supportsToolSearch),n=ce(e,o,P,{grammarToolInputProperties:s,deferredTools:i.deferred,toolOptions:{supportsStrictMode:t.supportsStrictMode,supportsOpenAIGrammarTools:t.supportsOpenAIGrammarTools}}),c=R(r?.cacheRetention,r?.env),p=c==="none"&&t.supportsExplicitPromptCacheMode,a={model:e.id,input:n,stream:!0,prompt_cache_key:c==="none"?void 0:Y(r?.sessionId),prompt_cache_retention:M(t,c),prompt_cache_options:p?{mode:"explicit"}:void 0,store:!1};if(r?.maxTokens)a.max_output_tokens=Math.max(r.maxTokens,C);if(r?.temperature!==void 0)a.temperature=r?.temperature;if(r?.serviceTier!==void 0)a.service_tier=r.serviceTier;if(i.immediate.length>0)a.tools=ue(i.immediate,{supportsStrictMode:t.supportsStrictMode,supportsOpenAIGrammarTools:t.supportsOpenAIGrammarTools});if(r?.toolChoice!==void 0)a.tool_choice=r.toolChoice;if(e.reasoning){if(r?.reasoningEffort||r?.reasoningSummary){let u=r?.reasoningEffort?e.thinkingLevelMap?.[r.reasoningEffort]??r.reasoningEffort:"medium";a.reasoning={effort:u,summary:r?.reasoningSummary||"auto"},a.include=["reasoning.encrypted_content"]}else if(e.provider!=="github-copilot"&&e.thinkingLevelMap?.off!==null)a.reasoning={effort:e.thinkingLevelMap?.off??"none"};if(e.provider==="xai")a.include=["reasoning.encrypted_content"]}return a}function G(e,o){switch(o){case"flex":return 0.5;case"priority":return e.id==="gpt-5.5"?2.5:2;default:return 1}}function D(e,o,r){let t=G(r,o);if(t===1)return;e.cost.input*=t,e.cost.output*=t,e.cost.cacheRead*=t,e.cost.cacheWrite*=t,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite}export{b as stream,oe as streamSimple};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{m,f}from"./shumai-agent-app.js";import{i}from"./chunk-y2adfzyt.js";var _=i(m());var B=i(m());var y=i(f()),d=i(m());var v=i(f()),u=i(m()),I=(e,t,r)=>{let o={EcsContainer:async(s)=>{let{fromHttp:a}=await import("./chunk-
|
|
2
|
+
import{m,f}from"./shumai-agent-app.js";import{i}from"./chunk-y2adfzyt.js";var _=i(m());var B=i(m());var y=i(f()),d=i(m());var v=i(f()),u=i(m()),I=(e,t,r)=>{let o={EcsContainer:async(s)=>{let{fromHttp:a}=await import("./chunk-s984p2eq.js"),{fromContainerMetadata:n}=await import("./chunk-a9ka4a7g.js");return r?.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer"),async()=>u.chain(a(s??{}),n(s))().then(C)},Ec2InstanceMetadata:async(s)=>{r?.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata");let{fromInstanceMetadata:a}=await import("./chunk-a9ka4a7g.js");return async()=>a(s)().then(C)},Environment:async(s)=>{r?.debug("@aws-sdk/credential-provider-ini - credential_source is Environment");let{fromEnv:a}=await import("./chunk-taj1dwc9.js");return async()=>a(s)().then(C)}};if(e in o)return o[e];else throw new u.CredentialsProviderError(`Unsupported credential source in profile ${t}. Got ${e}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,{logger:r})},C=(e)=>v.setCredentialFeature(e,"CREDENTIALS_PROFILE_NAMED_PROVIDER","p");var A=(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},L=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-04dp95m5.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 S=c?a(c,t,r,o,{...s,[c]:!0},R(t[c]??{})):(await I(n.credential_source,e,r.logger)(r))();if(R(n))return S.then((l)=>y.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:p}=n;if(p){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=p,l.TokenCode=await r.mfaCodeProvider(p)}let G=await S;return r.roleAssumer(G,l).then((U)=>y.setCredentialFeature(U,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"))}},R=(e)=>!e.role_arn&&!!e.credential_source;var O=i(f()),b=(e)=>Boolean(e&&e.login_session),x=async(e,t,r)=>{let{fromLoginCredentials:o}=await import("./chunk-75cz1qfr.js"),s=await o({...t,profile:e})({callerClientConfig:r});return O.setCredentialFeature(s,"CREDENTIALS_PROFILE_LOGIN","AC")};var k=i(f()),F=(e)=>Boolean(e)&&typeof e==="object"&&typeof e.credential_process==="string",h=async(e,t)=>{let{fromProcess:r}=await import("./chunk-d2508eez.js"),o=await r({...e,profile:t})();return k.setCredentialFeature(o,"CREDENTIALS_PROFILE_PROCESS","v")};var g=i(f()),D=async(e,t,r={},o)=>{let{fromSSO:s}=await import("./chunk-wd3dr97j.js");return s({profile:e,logger:r.logger,parentClientConfig:r.parentClientConfig,clientConfig:r.clientConfig})({callerClientConfig:o}).then((a)=>{if(t.sso_session)return g.setCredentialFeature(a,"CREDENTIALS_PROFILE_SSO","r");else return g.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(f()),w=(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,E=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(f()),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-tajj8sey.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 P=async(e,t,r,o,s={},a=!1)=>{let n=t[e];if(Object.keys(s).length>0&&w(n))return E(n,r);if(a||A(n,{profile:e,logger:r.logger}))return L(e,t,r,o,s,P);if(w(n))return E(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(b(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 _.parseKnownFiles(e);return P(_.getProfileName({profile:e.profile??t?.profile}),r,e,t)};export{V as fromIni};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{m,f}from"./shumai-agent-app.js";import{i}from"./chunk-y2adfzyt.js";var g=i(f()),t=i(m());import{readFileSync as T}from"fs";var d=(e)=>async(s)=>{e.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken");let{roleArn:o,roleSessionName:r,webIdentityToken:l,providerId:n,policyArns:E,policy:p,durationSeconds:_}=e,{roleAssumerWithWebIdentity:c}=e;if(!c){let{getDefaultRoleAssumerWithWebIdentity:S}=await import("./chunk-
|
|
2
|
+
import{m,f}from"./shumai-agent-app.js";import{i}from"./chunk-y2adfzyt.js";var g=i(f()),t=i(m());import{readFileSync as T}from"fs";var d=(e)=>async(s)=>{e.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken");let{roleArn:o,roleSessionName:r,webIdentityToken:l,providerId:n,policyArns:E,policy:p,durationSeconds:_}=e,{roleAssumerWithWebIdentity:c}=e;if(!c){let{getDefaultRoleAssumerWithWebIdentity:S}=await import("./chunk-04dp95m5.js");c=S({...e.clientConfig,credentialProviderLogger:e.logger,parentClientConfig:{...s?.callerClientConfig,...e.parentClientConfig}},e.clientPlugins)}return c({RoleArn:o,RoleSessionName:r??`aws-sdk-js-session-${Date.now()}`,WebIdentityToken:l,ProviderId:n,PolicyArns:E,Policy:p,DurationSeconds:_})};var a="AWS_WEB_IDENTITY_TOKEN_FILE",N="AWS_ROLE_ARN",I="AWS_ROLE_SESSION_NAME",y=(e={})=>async(s)=>{e.logger?.debug("@aws-sdk/credential-provider-web-identity - fromTokenFile");let o=e?.webIdentityTokenFile??process.env[a],r=e?.roleArn??process.env[N],l=e?.roleSessionName??process.env[I];if(!o||!r)throw new t.CredentialsProviderError("Web identity configuration not specified",{logger:e.logger});let n=await d({...e,webIdentityToken:t.externalDataInterceptor?.getTokenRecord?.()[o]??T(o,{encoding:"ascii"}),roleArn:r,roleSessionName:l})(s);if(o===process.env[a])g.setCredentialFeature(n,"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN","h");return n};export{y as fromTokenFile};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{m,f}from"./shumai-agent-app.js";import{i}from"./chunk-y2adfzyt.js";var S=i(m());var U=(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 P=i(f());var p=i(m());var j=300000,x="To refresh this SSO session run 'aws sso login' with the corresponding profile.";var q=async(e,o={},r)=>{let{SSOOIDCClient:t}=await import("./chunk-
|
|
2
|
+
import{m,f}from"./shumai-agent-app.js";import{i}from"./chunk-y2adfzyt.js";var S=i(m());var U=(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 P=i(f());var p=i(m());var j=300000,x="To refresh this SSO session run 'aws sso login' with the corresponding profile.";var q=async(e,o={},r)=>{let{SSOOIDCClient:t}=await import("./chunk-g5m0z3zf.js"),n=(g)=>o.clientConfig?.[g]??o.parentClientConfig?.[g]??r?.[g];return new t(Object.assign({},o.clientConfig??{},{region:e??o.clientConfig?.region,logger:n("logger"),userAgentAppId:n("userAgentAppId")}))};var W=async(e,o,r={},t)=>{let{CreateTokenCommand:n}=await import("./chunk-g5m0z3zf.js");return(await q(o,r,t)).send(new n({clientId:e.clientId,clientSecret:e.clientSecret,refreshToken:e.refreshToken,grantType:"refresh_token"}))};var X=i(m());var R=(e)=>{if(e.expiration&&e.expiration.getTime()<Date.now())throw new X.TokenProviderError(`Token is expired. ${x}`,!1)};var z=i(m());var u=(e,o,r=!1)=>{if(typeof o>"u")throw new z.TokenProviderError(`Value not present for '${e}' in SSO Token${r?". Cannot refresh":""}. ${x}`,!1)};var J=i(m());import{promises as ee}from"fs";var{writeFile:oe}=ee,V=(e,o)=>{let r=J.getSSOTokenFilepath(e),t=JSON.stringify(o,null,2);return oe(r,t)};var Y=new Map,v=(e={})=>async({callerClientConfig:o}={})=>{e.logger?.debug("@aws-sdk/token-providers - fromSso");let r=await p.parseKnownFiles(e),t=p.getProfileName({profile:e.profile??o?.profile}),n=r[t];if(!n)throw new p.TokenProviderError(`Profile '${t}' could not be found in shared credentials file.`,!1);else if(!n.sso_session)throw new p.TokenProviderError(`Profile '${t}' is missing required property 'sso_session'.`);let a=n.sso_session,d=(await p.loadSsoSessionData(e))[a];if(!d)throw new p.TokenProviderError(`Sso session '${a}' could not be found in shared credentials file.`,!1);for(let c of["sso_start_url","sso_region"])if(!d[c])throw new p.TokenProviderError(`Sso session '${a}' is missing required property '${c}'.`,!1);let{sso_start_url:w,sso_region:A}=d,s;try{s=await p.getSSOTokenFromFile(a)}catch(c){throw new p.TokenProviderError(`The SSO session token associated with profile=${t} was not found or is invalid. ${x}`,!1)}u("accessToken",s.accessToken),u("expiresAt",s.expiresAt);let{accessToken:C,expiresAt:O}=s,l={token:C,expiration:new Date(O)};if(l.expiration.getTime()-Date.now()>j)return l;let h=Y.get(a)??0;if(Date.now()-h<30000)return R(l),l;u("clientId",s.clientId,!0),u("clientSecret",s.clientSecret,!0),u("refreshToken",s.refreshToken,!0);try{Y.set(a,Date.now());let c=await W(s,A,e,o);u("accessToken",c.accessToken),u("expiresIn",c.expiresIn);let y=new Date(Date.now()+c.expiresIn*1000);try{await V(a,{...s,accessToken:c.accessToken,expiresAt:y.toISOString(),refreshToken:c.refreshToken})}catch(k){}return{token:c.accessToken,expiration:y}}catch(c){return R(l),l}};var _=i(m()),E=!1,F=async({ssoStartUrl:e,ssoSession:o,ssoAccountId:r,ssoRegion:t,ssoRoleName:n,ssoClient:a,clientConfig:g,parentClientConfig:d,callerClientConfig:w,profile:A,filepath:s,configFilepath:C,ignoreCache:O,logger:l})=>{let h,c="To refresh this SSO session run aws sso login with the corresponding profile.";if(o)try{let T=await v({profile:A,filepath:s,configFilepath:C,ignoreCache:O,clientConfig:g,parentClientConfig:d,logger:l})({callerClientConfig:w});h={accessToken:T.token,expiresAt:new Date(T.expiration).toISOString()}}catch(T){throw new _.CredentialsProviderError(T.message,{tryNextLink:E,logger:l})}else try{h=await _.getSSOTokenFromFile(e)}catch(T){throw new _.CredentialsProviderError("The SSO session associated with this profile is invalid. To refresh this SSO session run aws sso login with the corresponding profile.",{tryNextLink:E,logger:l})}if(new Date(h.expiresAt).getTime()-Date.now()<=0)throw new _.CredentialsProviderError("The SSO session associated with this profile has expired. To refresh this SSO session run aws sso login with the corresponding profile.",{tryNextLink:E,logger:l});let{accessToken:y}=h,{SSOClient:k,GetRoleCredentialsCommand:I}=await import("./chunk-tvjbvjq0.js"),Z=a||new k(Object.assign({},g??{},{logger:g?.logger??w?.logger??d?.logger,region:g?.region??t,userAgentAppId:g?.userAgentAppId??w?.userAgentAppId??d?.userAgentAppId})),D;try{D=await Z.send(new I({accountId:r,roleName:n,accessToken:y}))}catch(T){throw new _.CredentialsProviderError(T,{tryNextLink:E,logger:l})}let{roleCredentials:{accessKeyId:L,secretAccessKey:M,sessionToken:b,expiration:G,credentialScope:K,accountId:H}={}}=D;if(!L||!M||!b||!G)throw new _.CredentialsProviderError("SSO returns an invalid temporary credential.",{tryNextLink:E,logger:l});let N={accessKeyId:L,secretAccessKey:M,sessionToken:b,expiration:new Date(G),...K&&{credentialScope:K},...H&&{accountId:H}};if(o)P.setCredentialFeature(N,"CREDENTIALS_SSO","s");else P.setCredentialFeature(N,"CREDENTIALS_SSO_LEGACY","u");return N};var B=i(m()),Q=(e,o)=>{let{sso_start_url:r,sso_account_id:t,sso_region:n,sso_role_name:a}=e;if(!r||!t||!n||!a)throw new B.CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", "sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(e).join(", ")}
|
|
3
3
|
Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,{tryNextLink:!1,logger:o});return e};var se=(e={})=>async({callerClientConfig:o}={})=>{e.logger?.debug("@aws-sdk/credential-provider-sso - fromSSO");let{ssoStartUrl:r,ssoAccountId:t,ssoRegion:n,ssoRoleName:a,ssoSession:g}=e,{ssoClient:d}=e,w=S.getProfileName({profile:e.profile??o?.profile});if(!r&&!t&&!n&&!a&&!g){let s=(await S.parseKnownFiles(e))[w];if(!s)throw new S.CredentialsProviderError(`Profile ${w} was not found.`,{logger:e.logger});if(!U(s))throw new S.CredentialsProviderError(`Profile ${w} is not configured with SSO credentials.`,{logger:e.logger});if(s?.sso_session){let k=(await S.loadSsoSessionData(e))[s.sso_session],I=` configurations in profile ${w} and sso-session ${s.sso_session}`;if(n&&n!==k.sso_region)throw new S.CredentialsProviderError("Conflicting SSO region"+I,{tryNextLink:!1,logger:e.logger});if(r&&r!==k.sso_start_url)throw new S.CredentialsProviderError("Conflicting SSO start_url"+I,{tryNextLink:!1,logger:e.logger});s.sso_region=k.sso_region,s.sso_start_url=k.sso_start_url}let{sso_start_url:C,sso_account_id:O,sso_region:l,sso_role_name:h,sso_session:c}=Q(s,e.logger);return F({ssoStartUrl:C,ssoSession:c,ssoAccountId:O,ssoRegion:l,ssoRoleName:h,ssoClient:d,clientConfig:e.clientConfig,parentClientConfig:e.parentClientConfig,callerClientConfig:e.callerClientConfig,profile:w,filepath:e.filepath,configFilepath:e.configFilepath,ignoreCache:e.ignoreCache,logger:e.logger})}else if(!r||!t||!n||!a)throw new S.CredentialsProviderError('Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"',{tryNextLink:!1,logger:e.logger});else return F({ssoStartUrl:r,ssoSession:g,ssoAccountId:t,ssoRegion:n,ssoRoleName:a,ssoClient:d,clientConfig:e.clientConfig,parentClientConfig:e.parentClientConfig,callerClientConfig:e.callerClientConfig,profile:w,filepath:e.filepath,configFilepath:e.configFilepath,ignoreCache:e.ignoreCache,logger:e.logger})};export{se as fromSSO};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ee,Ne,_e,Ge,ke,De,Le,Me}from"./chunk-
|
|
2
|
+
import{Ee,Ne,_e,Ge,ke,De,Le,Me}from"./chunk-8z8y35z1.js";import{F,Q}from"./chunk-33n9p9q4.js";import{d,B}from"./chunk-xp2anj2s.js";import{be}from"./chunk-m8jmvj7p.js";import{I,v,S}from"./shumai-agent-app.js";var T=0,k=(e,a,n)=>{let i=new I;return(async()=>{let t={role:"assistant",content:[],api:"google-generative-ai",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:"stop",timestamp:Date.now()};try{let l=n?.apiKey;if(!l)throw Error(`No API key for provider: ${e.provider}`);let s=R(e,l,n?.headers),g=L(e,a,n),p=await n?.onPayload?.(g,e);if(p!==void 0)g=p;let M=await s.models.generateContentStream(g);i.push({type:"start",partial:t});let o=null,x=t.content,u=()=>x.length-1;for await(let c of M){t.responseId||=c.responseId;let f=c.candidates?.[0];if(f?.content?.parts)for(let r of f.content.parts){if(r.text!==void 0){let h=Ne(r);if(!o||h&&o.type!=="thinking"||!h&&o.type!=="text"){if(o)if(o.type==="text")i.push({type:"text_end",contentIndex:x.length-1,content:o.text,partial:t});else i.push({type:"thinking_end",contentIndex:u(),content:o.thinking,partial:t});if(h)o={type:"thinking",thinking:"",thinkingSignature:void 0},t.content.push(o),i.push({type:"thinking_start",contentIndex:u(),partial:t});else o={type:"text",text:""},t.content.push(o),i.push({type:"text_start",contentIndex:u(),partial:t})}if(o.type==="thinking")o.thinking+=r.text,o.thinkingSignature=_e(o.thinkingSignature,r.thoughtSignature),i.push({type:"thinking_delta",contentIndex:u(),delta:r.text,partial:t});else o.text+=r.text,o.textSignature=_e(o.textSignature,r.thoughtSignature),i.push({type:"text_delta",contentIndex:u(),delta:r.text,partial:t})}if(r.functionCall){if(o){if(o.type==="text")i.push({type:"text_end",contentIndex:u(),content:o.text,partial:t});else i.push({type:"thinking_end",contentIndex:u(),content:o.thinking,partial:t});o=null}let h=r.functionCall.id,m={type:"toolCall",id:!h||t.content.some((b)=>b.type==="toolCall"&&b.id===h)?`${r.functionCall.name}_${Date.now()}_${++T}`:h,name:r.functionCall.name||"",arguments:r.functionCall.args??{},...r.thoughtSignature&&{thoughtSignature:r.thoughtSignature}};t.content.push(m),i.push({type:"toolcall_start",contentIndex:u(),partial:t}),i.push({type:"toolcall_delta",contentIndex:u(),delta:JSON.stringify(m.arguments),partial:t}),i.push({type:"toolcall_end",contentIndex:u(),toolCall:m,partial:t})}}if(f?.finishReason){if(t.stopReason=Me(f.finishReason),t.content.some((r)=>r.type==="toolCall"))t.stopReason="toolUse"}if(c.usageMetadata)t.usage={input:(c.usageMetadata.promptTokenCount||0)-(c.usageMetadata.cachedContentTokenCount||0),output:(c.usageMetadata.candidatesTokenCount||0)+(c.usageMetadata.thoughtsTokenCount||0),cacheRead:c.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,reasoning:c.usageMetadata.thoughtsTokenCount||0,totalTokens:c.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},v(e,t.usage)}if(o)if(o.type==="text")i.push({type:"text_end",contentIndex:u(),content:o.text,partial:t});else i.push({type:"thinking_end",contentIndex:u(),content:o.thinking,partial:t});if(n?.signal?.aborted)throw Error("Request was aborted");if(t.stopReason==="aborted"||t.stopReason==="error")throw Error("An unknown error occurred");i.push({type:"done",reason:t.stopReason,message:t}),i.end()}catch(l){for(let s of t.content)if("index"in s)delete s.index;t.stopReason=n?.signal?.aborted?"aborted":"error",t.errorMessage=Q(F(l)),i.push({type:"error",reason:t.stopReason,error:t}),i.end()}})(),i},q=(e,a,n)=>{let i=n?.apiKey;if(!i)throw Error(`No API key for provider: ${e.provider}`);let t=B(e,a,n,i);if(!n?.reasoning)return k(e,a,{...t,thinking:{enabled:!1}});let l=S(e,n.reasoning),s=l==="off"?"high":l,g=e;if(C(g)||w(g)||y(g))return k(e,a,{...t,thinking:{enabled:!0,level:G(s,g)}});return k(e,a,{...t,thinking:{enabled:!0,budgetTokens:P(g,s,n.thinkingBudgets)}})};function R(e,a,n){let i={};if(e.baseUrl)i.baseUrl=e.baseUrl,i.apiVersion="";let t=be({...e.headers,...n});if(t)i.headers=t;return new Ee({apiKey:a,httpOptions:Object.keys(i).length>0?i:void 0})}function L(e,a,n={}){let i=Ge(e,a),t={};if(n.temperature!==void 0)t.temperature=n.temperature;if(n.maxTokens!==void 0)t.maxOutputTokens=n.maxTokens;let l=a.tools?.length?Le(a.tools,n.toolChoice,De(e.id)):void 0,s={...Object.keys(t).length>0&&t,...a.systemPrompt&&{systemInstruction:d(a.systemPrompt)},...a.tools&&a.tools.length>0&&{tools:ke(a.tools)},...l!==void 0&&{toolConfig:{functionCallingConfig:{mode:l}}}};if(n.thinking?.enabled&&e.reasoning){let p={includeThoughts:!0};if(n.thinking.level!==void 0)p.thinkingLevel=n.thinking.level;else if(n.thinking.budgetTokens!==void 0)p.thinkingBudget=n.thinking.budgetTokens;s.thinkingConfig=p}else if(e.reasoning&&n.thinking&&!n.thinking.enabled)s.thinkingConfig=_(e);if(n.signal){if(n.signal.aborted)throw Error("Request aborted");s.abortSignal=n.signal}return{model:e.id,contents:i,config:s}}function y(e){return/gemma-?4/.test(e.id.toLowerCase())}function C(e){return/gemini-3(?:\.\d+)?-pro/.test(e.id.toLowerCase())}function w(e){let a=e.id.toLowerCase();return/gemini-3(?:\.\d+)?-flash/.test(a)||a==="gemini-flash-latest"||a==="gemini-flash-lite-latest"}function _(e){if(C(e))return{thinkingLevel:"LOW"};if(w(e))return{thinkingLevel:"MINIMAL"};if(y(e))return{thinkingLevel:"MINIMAL"};return{thinkingBudget:0}}function G(e,a){if(C(a))switch(e){case"minimal":case"low":return"LOW";case"medium":case"high":return"HIGH"}if(y(a))switch(e){case"minimal":case"low":return"MINIMAL";case"medium":case"high":return"HIGH"}switch(e){case"minimal":return"MINIMAL";case"low":return"LOW";case"medium":return"MEDIUM";case"high":return"HIGH"}}function P(e,a,n){if(n?.[a]!==void 0)return n[a];if(e.id.includes("2.5-pro"))return{minimal:128,low:2048,medium:8192,high:32768}[a];if(e.id.includes("2.5-flash-lite"))return{minimal:512,low:2048,medium:8192,high:24576}[a];if(e.id.includes("2.5-flash"))return{minimal:128,low:2048,medium:8192,high:24576}[a];return-1}export{k as stream,q as streamSimple};
|