@shumai-one/shumai-agent 0.4.8 → 0.5.0

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.
Files changed (55) hide show
  1. package/bin/{chunk-6paz8rqc.js → chunk-0p0qkjs6.js} +5 -5
  2. package/bin/{chunk-5sb2pty7.js → chunk-3det6gch.js} +53 -2
  3. package/bin/{chunk-03yns4yh.js → chunk-4aq303de.js} +1 -1
  4. package/bin/{chunk-970g1609.js → chunk-52gbm98v.js} +3 -3
  5. package/bin/{chunk-davs8g66.js → chunk-5j6remge.js} +10 -10
  6. package/bin/{chunk-aedmn6b6.js → chunk-5rfnm6jw.js} +1 -1
  7. package/bin/{chunk-pgxfj5eb.js → chunk-6r9jnp50.js} +4 -4
  8. package/bin/{chunk-dfj82ty7.js → chunk-7a2w2k8d.js} +1 -1
  9. package/bin/chunk-7nvrknrh.js +2 -0
  10. package/bin/{chunk-3em1kdda.js → chunk-9y6z8h31.js} +1 -1
  11. package/bin/{chunk-ej2mzkya.js → chunk-ard58zy1.js} +1 -1
  12. package/bin/{chunk-668akk9p.js → chunk-ayx6103y.js} +1 -1
  13. package/bin/{chunk-2krqnza0.js → chunk-b442a8p5.js} +4 -4
  14. package/bin/{chunk-dx77xj4e.js → chunk-c0yz14s3.js} +1 -1
  15. package/bin/{chunk-wypzz8k7.js → chunk-ceqg9pm5.js} +1 -1
  16. package/bin/chunk-f0ehwrm5.js +2 -0
  17. package/bin/{chunk-y7mfmet4.js → chunk-f913x9vp.js} +1 -1
  18. package/bin/{chunk-pga3bd13.js → chunk-fx6ftmwf.js} +1 -1
  19. package/bin/{chunk-nnqq64r0.js → chunk-fzj95ngv.js} +1 -1
  20. package/bin/chunk-gp6c2ra5.js +2 -0
  21. package/bin/{chunk-p8x6v2rf.js → chunk-h227m9p2.js} +1 -1
  22. package/bin/chunk-h2vg744n.js +2 -0
  23. package/bin/{chunk-jfe44661.js → chunk-h998jkgd.js} +2 -2
  24. package/bin/{chunk-5d9hy85z.js → chunk-hvwmzh47.js} +3 -3
  25. package/bin/{chunk-4j6shajg.js → chunk-hxyaqwyd.js} +1 -1
  26. package/bin/{chunk-grtavkr4.js → chunk-nfzjn0ec.js} +2 -2
  27. package/bin/{chunk-hp1hjxws.js → chunk-nz7zfjn4.js} +1 -1
  28. package/bin/{chunk-r1w7s1s4.js → chunk-p9ajsam7.js} +1 -1
  29. package/bin/chunk-pwagrnm6.js +3 -0
  30. package/bin/{chunk-ymqmwpxd.js → chunk-sskw4nqz.js} +1 -1
  31. package/bin/{chunk-4p1twggc.js → chunk-v4qcfyge.js} +1 -1
  32. package/bin/{chunk-nke7rpr7.js → chunk-w6pgbwev.js} +1 -1
  33. package/bin/chunk-wntj2ssr.js +2 -0
  34. package/bin/{chunk-nz714xvr.js → chunk-xpg34mme.js} +1 -1
  35. package/bin/chunk-xss4r7tv.js +2 -0
  36. package/bin/{chunk-x13kvbw4.js → chunk-y8pw01eg.js} +1 -1
  37. package/bin/{chunk-emwvc69t.js → chunk-zh89wgq7.js} +1 -1
  38. package/bin/{chunk-xdwhrf7a.js → chunk-zrtmdqst.js} +1 -1
  39. package/bin/shumai-agent-app.js +609 -363
  40. package/package.json +9 -8
  41. package/prisma/migrations/20260927092537_add_notification_email_status/migration.sql +11 -0
  42. package/prisma/migrations/20261001015042_migrate_video_strategy_multi_and_resolutions/migration.sql +16 -0
  43. package/prisma/migrations/20261002104921_add_asset_status_failed/migration.sql +2 -0
  44. package/prisma/schema.prisma +11 -0
  45. package/bin/chunk-6ckpy06s.js +0 -2
  46. package/bin/chunk-6swxj1gy.js +0 -2
  47. package/bin/chunk-c92ybjd9.js +0 -2
  48. package/bin/chunk-e1zqz62n.js +0 -2
  49. package/bin/chunk-h47f6dyy.js +0 -2
  50. package/bin/chunk-nskd7d6r.js +0 -2
  51. package/bin/chunk-nwjh8gnr.js +0 -3
  52. /package/bin/{chunk-6zps8k92.js → chunk-2tjyjyqp.js} +0 -0
  53. /package/bin/{chunk-epcxtrrj.js → chunk-87hrcjap.js} +0 -0
  54. /package/bin/{chunk-933xb67c.js → chunk-k1jyx0md.js} +0 -0
  55. /package/bin/{chunk-f52ktqn8.js → chunk-sc9vspq0.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  // @bun
2
- import{A}from"./chunk-atats4tw.js";import{R}from"./chunk-nz714xvr.js";import{y}from"./chunk-y7mfmet4.js";import{ye,be}from"./chunk-hede4f0t.js";import{Y}from"./chunk-nwjh8gnr.js";import{F,Q}from"./chunk-33n9p9q4.js";import{re}from"./chunk-dsa7hrkt.js";import{j}from"./chunk-grtavkr4.js";import{d,We,He,M,Ue,L,B,O}from"./chunk-xp2anj2s.js";import{U}from"./chunk-2vqhhfx4.js";import{I,v,S}from"./shumai-agent-app.js";function ee(e,n){if(!e)return!1;let t=n.toLowerCase();for(let[r,s]of Object.entries(e))if(r.toLowerCase()===t&&s!==null&&s.trim().length>0)return!0;return!1}function se(e,n,t){if(n)return n;if(ee(t,"authorization")||ee(t,"cf-aig-authorization"))return"unused";throw Error(`No API key for provider: ${e}`)}function de(e){for(let n of e){if(n.role==="toolResult")return!0;if(n.role==="assistant"){if(n.content.some((t)=>t.type==="toolCall"))return!0}}return!1}function he(e){let n=new Set;for(let t of e)if(t.role==="toolResult")for(let r of t.addedToolNames??[])n.add(r);return n}function me(e,n){if(!e)return[];let t=new Map(e.map((r)=>[r.name,r]));return Array.from(n).map((r)=>t.get(r)).filter((r)=>r!==void 0)}function te(e){return e.type==="text"}function ke(e){return e.type==="thinking"}function Te(e){return e.type==="toolCall"}function Re(e){return e.type==="image"}function _e(e){if(typeof e!=="object"||e===null)return!1;let n=e;return n.type==="reasoning.encrypted"&&typeof n.id==="string"&&n.id.length>0&&typeof n.data==="string"&&n.data.length>0}function oe(e,n){if(e)return e;if(y("PI_CACHE_RETENTION",n)==="long")return"long";return"short"}var xe=(e,n,t)=>{let r=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 g=se(e.provider,t?.apiKey,t?.headers),f=V(e),_=L(n.tools,f.supportsOpenAIGrammarTools),i=oe(t?.cacheRetention,t?.env),h=i==="none"?void 0:t?.sessionId,l=ve(e,n,g,t?.headers,h,f),a=Ae(e,n,t,f,i,_),k=await t?.onPayload?.(a,e);if(k!==void 0)a=k;let T={...t?.signal?{signal:t.signal}:{},...t?.timeoutMs!==void 0?{timeout:t.timeoutMs}:{},maxRetries:0},{data:b,response:q}=await j(()=>l.chat.completions.create(a,T).withResponse(),{maxRetries:t?.maxRetries,maxRetryDelayMs:t?.maxRetryDelayMs,signal:t?.signal});await t?.onResponse?.({status:q.status,headers:U(q.headers)},e),r.push({type:"start",partial:s});let D=null,m=null,x=!1,E=new Map,K=new Map,W=new Map,H=s.content,z=(o)=>H.indexOf(o),Z=(o)=>{let u=o.customInput?.property;if(u===void 0)return"";let w=o.arguments[u];return typeof w==="string"?w:""},X=(o,u,w)=>{let c=o.customInput;if(!c)return;let P=He(c.jsonBuffer,c.property,u,w);return o.arguments={[c.property]:u},P},ue=(o)=>{let u=z(o);if(u===-1)return;if(o.type==="text")r.push({type:"text_end",contentIndex:u,content:o.text,partial:s});else if(o.type==="thinking")r.push({type:"thinking_end",contentIndex:u,content:o.thinking,partial:s});else if(o.type==="toolCall"){if(o.customInput){let w=X(o,Z(o),!0);if(w!==void 0)r.push({type:"toolcall_delta",contentIndex:u,delta:w,partial:s})}else o.arguments=R(o.partialArgs);delete o.partialArgs,delete o.customInput,delete o.streamIndex,r.push({type:"toolcall_end",contentIndex:u,toolCall:o,partial:s})}},fe=()=>{if(!D)D={type:"text",text:""},H.push(D),r.push({type:"text_start",contentIndex:z(D),partial:s});return D},le=(o)=>{if(!m)m={type:"thinking",thinking:"",thinkingSignature:o},H.push(m),r.push({type:"thinking_start",contentIndex:z(m),partial:s});return m},ce=(o)=>{if(!o.id)return;let u=W.get(o.id);if(u)o.thoughtSignature=u,W.delete(o.id)},pe=(o)=>{let u=typeof o.index==="number"?o.index:void 0,w=o.function?.name??o.custom?.name??"",c=u!==void 0?E.get(u):void 0;if(!c&&o.id)c=K.get(o.id);if(!c){let P=o.custom?_.get(w)??"input":void 0,G=P!==void 0;if(c={type:"toolCall",id:o.id||"",name:w,arguments:G?{[P]:""}:{},partialArgs:G?void 0:"",customInput:G?{property:P,jsonBuffer:{input:"",started:!1,closed:!1}}:void 0,streamIndex:u},u!==void 0)E.set(u,c);if(o.id)K.set(o.id,c);H.push(c),r.push({type:"toolcall_start",contentIndex:z(c),partial:s})}if(u!==void 0&&c.streamIndex===void 0)c.streamIndex=u,E.set(u,c);if(o.id)K.set(o.id,c);if(!c.name&&w)c.name=w;if(o.custom&&!c.customInput){let P=_.get(c.name)??"input";c.arguments={[P]:""},c.customInput={property:P,jsonBuffer:{input:"",started:!1,closed:!1}},delete c.partialArgs}return ce(c),c};for await(let o of b){if(!o||typeof o!=="object")continue;if(s.responseId||=o.id,typeof o.model==="string"&&o.model.length>0&&o.model!==e.id)s.responseModel||=o.model;if(o.usage)s.usage=ne(o.usage,e);let u=Array.isArray(o.choices)?o.choices[0]:void 0;if(!u)continue;if(!o.usage&&u.usage)s.usage=ne(u.usage,e);if(u.finish_reason){let w=Le(u.finish_reason);if(s.stopReason=w.stopReason,w.errorMessage)s.errorMessage=w.errorMessage;x=!0}if(u.delta){if(u.delta.content!==null&&u.delta.content!==void 0&&u.delta.content.length>0){let p=fe();p.text+=u.delta.content,r.push({type:"text_delta",contentIndex:z(p),delta:u.delta.content,partial:s})}let w=["reasoning_content","reasoning","reasoning_text"],c=u.delta,P=null;for(let p of w){let C=c[p];if(typeof C==="string"&&C.length>0){P=p;break}}if(P){let p=c[P];if(typeof p==="string"&&p.length>0){let C=e.provider==="opencode-go"&&P==="reasoning"?"reasoning_content":P,N=le(C);N.thinking+=p,r.push({type:"thinking_delta",contentIndex:z(N),delta:p,partial:s})}}if(u?.delta?.tool_calls)for(let p of u.delta.tool_calls){let C=pe(p);if(!C.id&&p.id)C.id=p.id,K.set(p.id,C);let N=p.function?.name??p.custom?.name;if(!C.name&&N)C.name=N;let J="";if(p.function?.arguments)J=p.function.arguments,C.partialArgs=(C.partialArgs??"")+p.function.arguments,C.arguments=R(C.partialArgs);else if(p.custom?.input){let ge=Z(C)+p.custom.input;J=X(C,ge,!1)??""}r.push({type:"toolcall_delta",contentIndex:z(C),delta:J,partial:s})}let G=u.delta.reasoning_details;if(Array.isArray(G)){for(let p of G)if(_e(p)){let C=JSON.stringify(p),N=K.get(p.id);if(N)N.thoughtSignature=C;else W.set(p.id,C)}}}}for(let o of H)ue(o);if(t?.signal?.aborted)throw Error("Request was aborted");if(s.stopReason==="aborted")throw Error("Request was aborted");if(s.stopReason==="error")throw Error(s.errorMessage||"Provider returned an error stop reason");if(!x)throw Error("Stream ended without finish_reason");r.push({type:"done",reason:s.stopReason,message:s}),r.end()}catch(g){for(let _ of s.content)delete _.index,delete _.partialArgs,delete _.customInput,delete _.streamIndex;s.stopReason=t?.signal?.aborted?"aborted":"error",s.errorMessage=Q(F(g));let f=g?.error?.metadata?.raw;if(f&&!s.errorMessage.includes(String(f)))s.errorMessage+=`
3
- ${f}`;r.push({type:"error",reason:s.stopReason,error:s}),r.end()}})(),r},nt=(e,n,t)=>{se(e.provider,t?.apiKey,t?.headers);let r=B(e,n,t,t?.apiKey),s=t?.reasoning?S(e,t.reasoning):void 0,g=s==="off"?void 0:s,f=t?.toolChoice;return xe(e,n,{...r,reasoningEffort:g,toolChoice:f})};function ve(e,n,t,r,s,g=V(e)){let f={...e.headers};if(e.provider==="github-copilot"){let _=ye(n.messages),i=be({messages:n.messages,hasImages:_});Object.assign(f,i)}if(s&&g.sendSessionAffinityHeaders)if(g.sessionAffinityFormat==="openrouter")f["x-session-id"]=s;else{if(g.sessionAffinityFormat==="openai")f.session_id=s;f["x-client-request-id"]=s,f["x-session-affinity"]=s}if(r)Object.assign(f,r);return new A({apiKey:t,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:f})}function Ae(e,n,t,r=V(e),s=oe(t?.cacheRetention,t?.env),g=L(n.tools,r.supportsOpenAIGrammarTools)){let f=qe(e,n,r,{grammarToolInputProperties:g}),_=Ie(r,s),i={model:e.id,messages:f,stream:!0,prompt_cache_key:e.baseUrl.includes("api.openai.com")&&s!=="none"||s==="long"&&r.supportsLongCacheRetention?Y(t?.sessionId):void 0,prompt_cache_retention:s==="long"&&r.supportsLongCacheRetention?"24h":void 0};if(r.supportsUsageInStreaming!==!1)i.stream_options={include_usage:!0};if(r.supportsStore)i.store=!1;if(t?.maxTokens)if(r.maxTokensField==="max_tokens")i.max_tokens=t.maxTokens;else i.max_completion_tokens=t.maxTokens;if(t?.temperature!==void 0)i.temperature=t.temperature;let h=r.deferredToolsMode==="kimi"?he(n.messages):new Set,l=n.tools?.filter((a)=>!h.has(a.name));if(l&&l.length>0){if(i.tools=ae(l,r),r.zaiToolStream)i.tool_stream=!0}else if(de(n.messages))i.tools=[];if(_)we(f,i.tools,_);if(t?.toolChoice)i.tool_choice=t.toolChoice;if(r.thinkingFormat==="zai"&&e.reasoning){let a=i;if(a.thinking=t?.reasoningEffort?{type:"enabled",clear_thinking:!1}:{type:"disabled"},t?.reasoningEffort&&r.supportsReasoningEffort){let k=e.thinkingLevelMap?.[t.reasoningEffort],T=k===void 0?t.reasoningEffort:k;if(typeof T==="string")a.reasoning_effort=T}}else if(r.thinkingFormat==="qwen"&&e.reasoning)i.enable_thinking=!!t?.reasoningEffort;else if(r.thinkingFormat==="qwen-chat-template"&&e.reasoning)i.chat_template_kwargs={enable_thinking:!!t?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat==="chat-template"&&e.reasoning){let a=Ce(e,t,r);if(a)i.chat_template_kwargs=a}else if(r.thinkingFormat==="deepseek"&&e.reasoning){if(t?.reasoningEffort)i.thinking={type:"enabled"};else if(e.thinkingLevelMap?.off!==null)i.thinking={type:"disabled"};if(t?.reasoningEffort&&r.supportsReasoningEffort)i.reasoning_effort=e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort}else if(r.thinkingFormat==="openrouter"&&e.reasoning){let a=i;if(t?.reasoningEffort)a.reasoning={effort:e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort};else if(e.thinkingLevelMap?.off!==null)a.reasoning={effort:e.thinkingLevelMap?.off??"none"}}else if(r.thinkingFormat==="ant-ling"&&e.reasoning&&t?.reasoningEffort){let a=e.thinkingLevelMap?.[t.reasoningEffort];if(typeof a==="string")i.reasoning={effort:a}}else if(r.thinkingFormat==="together"&&e.reasoning){let a=i;if(a.reasoning={enabled:!!t?.reasoningEffort},t?.reasoningEffort&&r.supportsReasoningEffort)a.reasoning_effort=e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort}else if(r.thinkingFormat==="string-thinking"&&e.reasoning){let a=i;if(t?.reasoningEffort)a.thinking=e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort;else if(e.thinkingLevelMap?.off!==null)a.thinking=e.thinkingLevelMap?.off??"none"}else if(t?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)i.reasoning_effort=e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort;else if(!t?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let a=e.thinkingLevelMap?.off;if(typeof a==="string")i.reasoning_effort=a}if(e.compat?.openRouterRouting)i.provider=e.compat.openRouterRouting;if(e.compat?.vercelGatewayRouting){let a=e.compat.vercelGatewayRouting;if(a.only||a.order){let k={};if(a.only)k.only=a.only;if(a.order)k.order=a.order;i.providerOptions={gateway:k}}}return i}function Ce(e,n,t){let r={};for(let[s,g]of Object.entries(t.chatTemplateKwargs)){let f=Me(e,n,g);if(f!==void 0)r[s]=f}return Object.keys(r).length>0?r:void 0}function Me(e,n,t){if(typeof t!=="object"||t===null)return t;let r=n?.reasoningEffort;if(!r&&t.omitWhenOff)return;if(t.$var==="thinking.enabled")return!!r;let s=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off;return s===void 0?r:typeof s==="string"?s:void 0}function Ie(e,n){if(e.cacheControlFormat!=="anthropic"||n==="none")return;let t=n==="long"&&e.supportsLongCacheRetention?"1h":void 0;return{type:"ephemeral",...t?{ttl:t}:{}}}function we(e,n,t){Se(e,t),Fe(n,t),Ee(e,t)}function Se(e,n){for(let t of e)if(t.role==="system"||t.role==="developer"){Oe(t,n);return}}function Ee(e,n){for(let t=e.length-1;t>=0;t--){let r=e[t];if(r.role==="user"||r.role==="assistant"||r.role==="tool"){if(Pe(r,n))return}}}function Fe(e,n){if(!e||e.length===0)return;let t=e[e.length-1];t.cache_control=n}function Oe(e,n){return ie(e,n)}function Pe(e,n){if(e.role==="user"||e.role==="assistant"||e.role==="tool")return ie(e,n);return!1}function ie(e,n){let t=e.content;if(typeof t==="string"){if(t.length===0)return!1;return e.content=[{type:"text",text:t,cache_control:n}],!0}if(!Array.isArray(t))return!1;for(let r=t.length-1;r>=0;r--){let s=t[r];if(s?.type==="text"){let g=s;return g.cache_control=n,!0}}return!1}function qe(e,n,t,r){let s=[],g=(i)=>{if(i.includes("|")){let h=i.indexOf("|"),l=i.slice(0,h).replace(/[^a-zA-Z0-9_-]/g,"_"),a=i.slice(h+1).replace(/[^a-zA-Z0-9_-]/g,"_"),k=a.length>0?`${l}_${a}`:l;if(k.length<=40)return k;let T=re(i).slice(0,8);return`${l.slice(0,Math.max(1,40-T.length-1))}_${T}`}if(e.provider==="openai")return i.length>40?i.slice(0,40):i;return i},f=O(n.messages,e,(i)=>g(i));if(n.systemPrompt){let h=e.reasoning&&t.supportsDeveloperRole?"developer":"system";s.push({role:h,content:d(n.systemPrompt)})}let _=null;for(let i=0;i<f.length;i++){let h=f[i];if(t.requiresAssistantAfterToolResult&&_==="toolResult"&&h.role==="user")s.push({role:"assistant",content:"I have processed the tool results."});if(h.role==="user")if(typeof h.content==="string")s.push({role:"user",content:d(h.content)});else{let l=h.content.map((a)=>{if(a.type==="text")return{type:"text",text:d(a.text)};else return{type:"image_url",image_url:{url:`data:${a.mimeType};base64,${a.data}`}}});if(l.length===0)continue;s.push({role:"user",content:l})}else if(h.role==="assistant"){let l={role:"assistant",content:t.requiresAssistantAfterToolResult?"":null},a=h.content.filter(te).filter((m)=>m.text.trim().length>0).map((m)=>({type:"text",text:d(m.text)})),k=a.map((m)=>m.text).join(""),T=h.content.filter(ke).filter((m)=>m.thinking.trim().length>0);if(T.length>0)if(t.requiresThinkingAsText){let m=T.map((x)=>d(x.thinking)).join(`
2
+ import{A}from"./chunk-atats4tw.js";import{R}from"./chunk-xpg34mme.js";import{y}from"./chunk-f913x9vp.js";import{ye,be}from"./chunk-hede4f0t.js";import{j}from"./chunk-pwagrnm6.js";import{F,Q}from"./chunk-33n9p9q4.js";import{re}from"./chunk-dsa7hrkt.js";import{q}from"./chunk-nfzjn0ec.js";import{d,We,He,M,Ue,L,B,O}from"./chunk-xp2anj2s.js";import{U}from"./chunk-2vqhhfx4.js";import{I,w,x}from"./shumai-agent-app.js";function ee(e,n){if(!e)return!1;let t=n.toLowerCase();for(let[r,s]of Object.entries(e))if(r.toLowerCase()===t&&s!==null&&s.trim().length>0)return!0;return!1}function se(e,n,t){if(n)return n;if(ee(t,"authorization")||ee(t,"cf-aig-authorization"))return"unused";throw Error(`No API key for provider: ${e}`)}function de(e){for(let n of e){if(n.role==="toolResult")return!0;if(n.role==="assistant"){if(n.content.some((t)=>t.type==="toolCall"))return!0}}return!1}function he(e){let n=new Set;for(let t of e)if(t.role==="toolResult")for(let r of t.addedToolNames??[])n.add(r);return n}function me(e,n){if(!e)return[];let t=new Map(e.map((r)=>[r.name,r]));return Array.from(n).map((r)=>t.get(r)).filter((r)=>r!==void 0)}function te(e){return e.type==="text"}function ke(e){return e.type==="thinking"}function Te(e){return e.type==="toolCall"}function Re(e){return e.type==="image"}function _e(e){if(typeof e!=="object"||e===null)return!1;let n=e;return n.type==="reasoning.encrypted"&&typeof n.id==="string"&&n.id.length>0&&typeof n.data==="string"&&n.data.length>0}function oe(e,n){if(e)return e;if(y("PI_CACHE_RETENTION",n)==="long")return"long";return"short"}var xe=(e,n,t)=>{let r=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 g=se(e.provider,t?.apiKey,t?.headers),f=Z(e),_=L(n.tools,f.supportsOpenAIGrammarTools),i=oe(t?.cacheRetention,t?.env),h=i==="none"?void 0:t?.sessionId,l=ve(e,n,g,t?.headers,h,f),a=Ae(e,n,t,f,i,_),k=await t?.onPayload?.(a,e);if(k!==void 0)a=k;let T={...t?.signal?{signal:t.signal}:{},...t?.timeoutMs!==void 0?{timeout:t.timeoutMs}:{},maxRetries:0},{data:b,response:D}=await q(()=>l.chat.completions.create(a,T).withResponse(),{maxRetries:t?.maxRetries,maxRetryDelayMs:t?.maxRetryDelayMs,signal:t?.signal});await t?.onResponse?.({status:D.status,headers:U(D.headers)},e),r.push({type:"start",partial:s});let N=null,m=null,v=!1,E=new Map,H=new Map,J=new Map,W=s.content,G=(o)=>W.indexOf(o),X=(o)=>{let u=o.customInput?.property;if(u===void 0)return"";let S=o.arguments[u];return typeof S==="string"?S:""},Y=(o,u,S)=>{let c=o.customInput;if(!c)return;let P=He(c.jsonBuffer,c.property,u,S);return o.arguments={[c.property]:u},P},ue=(o)=>{let u=G(o);if(u===-1)return;if(o.type==="text")r.push({type:"text_end",contentIndex:u,content:o.text,partial:s});else if(o.type==="thinking")r.push({type:"thinking_end",contentIndex:u,content:o.thinking,partial:s});else if(o.type==="toolCall"){if(o.customInput){let S=Y(o,X(o),!0);if(S!==void 0)r.push({type:"toolcall_delta",contentIndex:u,delta:S,partial:s})}else o.arguments=R(o.partialArgs);delete o.partialArgs,delete o.customInput,delete o.streamIndex,r.push({type:"toolcall_end",contentIndex:u,toolCall:o,partial:s})}},fe=()=>{if(!N)N={type:"text",text:""},W.push(N),r.push({type:"text_start",contentIndex:G(N),partial:s});return N},le=(o)=>{if(!m)m={type:"thinking",thinking:"",thinkingSignature:o},W.push(m),r.push({type:"thinking_start",contentIndex:G(m),partial:s});return m},ce=(o)=>{if(!o.id)return;let u=J.get(o.id);if(u)o.thoughtSignature=u,J.delete(o.id)},pe=(o)=>{let u=typeof o.index==="number"?o.index:void 0,S=o.function?.name??o.custom?.name??"",c=u!==void 0?E.get(u):void 0;if(!c&&o.id)c=H.get(o.id);if(!c){let P=o.custom?_.get(S)??"input":void 0,K=P!==void 0;if(c={type:"toolCall",id:o.id||"",name:S,arguments:K?{[P]:""}:{},partialArgs:K?void 0:"",customInput:K?{property:P,jsonBuffer:{input:"",started:!1,closed:!1}}:void 0,streamIndex:u},u!==void 0)E.set(u,c);if(o.id)H.set(o.id,c);W.push(c),r.push({type:"toolcall_start",contentIndex:G(c),partial:s})}if(u!==void 0&&c.streamIndex===void 0)c.streamIndex=u,E.set(u,c);if(o.id)H.set(o.id,c);if(!c.name&&S)c.name=S;if(o.custom&&!c.customInput){let P=_.get(c.name)??"input";c.arguments={[P]:""},c.customInput={property:P,jsonBuffer:{input:"",started:!1,closed:!1}},delete c.partialArgs}return ce(c),c};for await(let o of b){if(!o||typeof o!=="object")continue;if(s.responseId||=o.id,typeof o.model==="string"&&o.model.length>0&&o.model!==e.id)s.responseModel||=o.model;if(o.usage)s.usage=ne(o.usage,e);let u=Array.isArray(o.choices)?o.choices[0]:void 0;if(!u)continue;if(!o.usage&&u.usage)s.usage=ne(u.usage,e);if(u.finish_reason){let S=Le(u.finish_reason);if(s.stopReason=S.stopReason,S.errorMessage)s.errorMessage=S.errorMessage;v=!0}if(u.delta){if(u.delta.content!==null&&u.delta.content!==void 0&&u.delta.content.length>0){let p=fe();p.text+=u.delta.content,r.push({type:"text_delta",contentIndex:G(p),delta:u.delta.content,partial:s})}let S=["reasoning_content","reasoning","reasoning_text"],c=u.delta,P=null;for(let p of S){let C=c[p];if(typeof C==="string"&&C.length>0){P=p;break}}if(P){let p=c[P];if(typeof p==="string"&&p.length>0){let C=e.provider==="opencode-go"&&P==="reasoning"?"reasoning_content":P,z=le(C);z.thinking+=p,r.push({type:"thinking_delta",contentIndex:G(z),delta:p,partial:s})}}if(u?.delta?.tool_calls)for(let p of u.delta.tool_calls){let C=pe(p);if(!C.id&&p.id)C.id=p.id,H.set(p.id,C);let z=p.function?.name??p.custom?.name;if(!C.name&&z)C.name=z;let V="";if(p.function?.arguments)V=p.function.arguments,C.partialArgs=(C.partialArgs??"")+p.function.arguments,C.arguments=R(C.partialArgs);else if(p.custom?.input){let ge=X(C)+p.custom.input;V=Y(C,ge,!1)??""}r.push({type:"toolcall_delta",contentIndex:G(C),delta:V,partial:s})}let K=u.delta.reasoning_details;if(Array.isArray(K)){for(let p of K)if(_e(p)){let C=JSON.stringify(p),z=H.get(p.id);if(z)z.thoughtSignature=C;else J.set(p.id,C)}}}}for(let o of W)ue(o);if(t?.signal?.aborted)throw Error("Request was aborted");if(s.stopReason==="aborted")throw Error("Request was aborted");if(s.stopReason==="error")throw Error(s.errorMessage||"Provider returned an error stop reason");if(!v)throw Error("Stream ended without finish_reason");r.push({type:"done",reason:s.stopReason,message:s}),r.end()}catch(g){for(let _ of s.content)delete _.index,delete _.partialArgs,delete _.customInput,delete _.streamIndex;s.stopReason=t?.signal?.aborted?"aborted":"error",s.errorMessage=Q(F(g));let f=g?.error?.metadata?.raw;if(f&&!s.errorMessage.includes(String(f)))s.errorMessage+=`
3
+ ${f}`;r.push({type:"error",reason:s.stopReason,error:s}),r.end()}})(),r},nt=(e,n,t)=>{se(e.provider,t?.apiKey,t?.headers);let r=B(e,n,t,t?.apiKey),s=t?.reasoning?x(e,t.reasoning):void 0,g=s==="off"?void 0:s,f=t?.toolChoice;return xe(e,n,{...r,reasoningEffort:g,toolChoice:f})};function ve(e,n,t,r,s,g=Z(e)){let f={...e.headers};if(e.provider==="github-copilot"){let _=ye(n.messages),i=be({messages:n.messages,hasImages:_});Object.assign(f,i)}if(s&&g.sendSessionAffinityHeaders)if(g.sessionAffinityFormat==="openrouter")f["x-session-id"]=s;else{if(g.sessionAffinityFormat==="openai")f.session_id=s;f["x-client-request-id"]=s,f["x-session-affinity"]=s}if(r)Object.assign(f,r);return new A({apiKey:t,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:f})}function Ae(e,n,t,r=Z(e),s=oe(t?.cacheRetention,t?.env),g=L(n.tools,r.supportsOpenAIGrammarTools)){let f=qe(e,n,r,{grammarToolInputProperties:g}),_=Ie(r,s),i={model:e.id,messages:f,stream:!0,prompt_cache_key:e.baseUrl.includes("api.openai.com")&&s!=="none"||s==="long"&&r.supportsLongCacheRetention?j(t?.sessionId):void 0,prompt_cache_retention:s==="long"&&r.supportsLongCacheRetention?"24h":void 0};if(r.supportsUsageInStreaming!==!1)i.stream_options={include_usage:!0};if(r.supportsStore)i.store=!1;if(t?.maxTokens)if(r.maxTokensField==="max_tokens")i.max_tokens=t.maxTokens;else i.max_completion_tokens=t.maxTokens;if(t?.temperature!==void 0)i.temperature=t.temperature;let h=r.deferredToolsMode==="kimi"?he(n.messages):new Set,l=n.tools?.filter((a)=>!h.has(a.name));if(l&&l.length>0){if(i.tools=ae(l,r),r.zaiToolStream)i.tool_stream=!0}else if(de(n.messages))i.tools=[];if(_)we(f,i.tools,_);if(t?.toolChoice)i.tool_choice=t.toolChoice;if(r.thinkingFormat==="zai"&&e.reasoning){let a=i;if(a.thinking=t?.reasoningEffort?{type:"enabled",clear_thinking:!1}:{type:"disabled"},t?.reasoningEffort&&r.supportsReasoningEffort){let k=e.thinkingLevelMap?.[t.reasoningEffort],T=k===void 0?t.reasoningEffort:k;if(typeof T==="string")a.reasoning_effort=T}}else if(r.thinkingFormat==="qwen"&&e.reasoning)i.enable_thinking=!!t?.reasoningEffort;else if(r.thinkingFormat==="qwen-chat-template"&&e.reasoning)i.chat_template_kwargs={enable_thinking:!!t?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat==="chat-template"&&e.reasoning){let a=Ce(e,t,r);if(a)i.chat_template_kwargs=a}else if(r.thinkingFormat==="deepseek"&&e.reasoning){if(t?.reasoningEffort)i.thinking={type:"enabled"};else if(e.thinkingLevelMap?.off!==null)i.thinking={type:"disabled"};if(t?.reasoningEffort&&r.supportsReasoningEffort)i.reasoning_effort=e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort}else if(r.thinkingFormat==="openrouter"&&e.reasoning){let a=i;if(t?.reasoningEffort)a.reasoning={effort:e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort};else if(e.thinkingLevelMap?.off!==null)a.reasoning={effort:e.thinkingLevelMap?.off??"none"}}else if(r.thinkingFormat==="ant-ling"&&e.reasoning&&t?.reasoningEffort){let a=e.thinkingLevelMap?.[t.reasoningEffort];if(typeof a==="string")i.reasoning={effort:a}}else if(r.thinkingFormat==="together"&&e.reasoning){let a=i;if(a.reasoning={enabled:!!t?.reasoningEffort},t?.reasoningEffort&&r.supportsReasoningEffort)a.reasoning_effort=e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort}else if(r.thinkingFormat==="string-thinking"&&e.reasoning){let a=i;if(t?.reasoningEffort)a.thinking=e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort;else if(e.thinkingLevelMap?.off!==null)a.thinking=e.thinkingLevelMap?.off??"none"}else if(t?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)i.reasoning_effort=e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort;else if(!t?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let a=e.thinkingLevelMap?.off;if(typeof a==="string")i.reasoning_effort=a}if(e.compat?.openRouterRouting)i.provider=e.compat.openRouterRouting;if(e.compat?.vercelGatewayRouting){let a=e.compat.vercelGatewayRouting;if(a.only||a.order){let k={};if(a.only)k.only=a.only;if(a.order)k.order=a.order;i.providerOptions={gateway:k}}}return i}function Ce(e,n,t){let r={};for(let[s,g]of Object.entries(t.chatTemplateKwargs)){let f=Me(e,n,g);if(f!==void 0)r[s]=f}return Object.keys(r).length>0?r:void 0}function Me(e,n,t){if(typeof t!=="object"||t===null)return t;let r=n?.reasoningEffort;if(!r&&t.omitWhenOff)return;if(t.$var==="thinking.enabled")return!!r;let s=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off;return s===void 0?r:typeof s==="string"?s:void 0}function Ie(e,n){if(e.cacheControlFormat!=="anthropic"||n==="none")return;let t=n==="long"&&e.supportsLongCacheRetention?"1h":void 0;return{type:"ephemeral",...t?{ttl:t}:{}}}function we(e,n,t){Se(e,t),Fe(n,t),Ee(e,t)}function Se(e,n){for(let t of e)if(t.role==="system"||t.role==="developer"){Oe(t,n);return}}function Ee(e,n){for(let t=e.length-1;t>=0;t--){let r=e[t];if(r.role==="user"||r.role==="assistant"||r.role==="tool"){if(Pe(r,n))return}}}function Fe(e,n){if(!e||e.length===0)return;let t=e[e.length-1];t.cache_control=n}function Oe(e,n){return ie(e,n)}function Pe(e,n){if(e.role==="user"||e.role==="assistant"||e.role==="tool")return ie(e,n);return!1}function ie(e,n){let t=e.content;if(typeof t==="string"){if(t.length===0)return!1;return e.content=[{type:"text",text:t,cache_control:n}],!0}if(!Array.isArray(t))return!1;for(let r=t.length-1;r>=0;r--){let s=t[r];if(s?.type==="text"){let g=s;return g.cache_control=n,!0}}return!1}function qe(e,n,t,r){let s=[],g=(i)=>{if(i.includes("|")){let h=i.indexOf("|"),l=i.slice(0,h).replace(/[^a-zA-Z0-9_-]/g,"_"),a=i.slice(h+1).replace(/[^a-zA-Z0-9_-]/g,"_"),k=a.length>0?`${l}_${a}`:l;if(k.length<=40)return k;let T=re(i).slice(0,8);return`${l.slice(0,Math.max(1,40-T.length-1))}_${T}`}if(e.provider==="openai")return i.length>40?i.slice(0,40):i;return i},f=O(n.messages,e,(i)=>g(i));if(n.systemPrompt){let h=e.reasoning&&t.supportsDeveloperRole?"developer":"system";s.push({role:h,content:d(n.systemPrompt)})}let _=null;for(let i=0;i<f.length;i++){let h=f[i];if(t.requiresAssistantAfterToolResult&&_==="toolResult"&&h.role==="user")s.push({role:"assistant",content:"I have processed the tool results."});if(h.role==="user")if(typeof h.content==="string")s.push({role:"user",content:d(h.content)});else{let l=h.content.map((a)=>{if(a.type==="text")return{type:"text",text:d(a.text)};else return{type:"image_url",image_url:{url:`data:${a.mimeType};base64,${a.data}`}}});if(l.length===0)continue;s.push({role:"user",content:l})}else if(h.role==="assistant"){let l={role:"assistant",content:t.requiresAssistantAfterToolResult?"":null},a=h.content.filter(te).filter((m)=>m.text.trim().length>0).map((m)=>({type:"text",text:d(m.text)})),k=a.map((m)=>m.text).join(""),T=h.content.filter(ke).filter((m)=>m.thinking.trim().length>0);if(T.length>0)if(t.requiresThinkingAsText){let m=T.map((v)=>d(v.thinking)).join(`
4
4
 
5
- `);l.content=[{type:"text",text:m},...a]}else{if(k.length>0)l.content=k;let m=T[0].thinkingSignature;if(e.provider==="opencode-go"&&m==="reasoning")m="reasoning_content";if(m&&m.length>0)l[m]=T.map((x)=>x.thinking).join(`
6
- `)}else if(k.length>0)l.content=k;let b=h.content.filter(Te);if(b.length>0){l.tool_calls=b.map((x)=>{let E=r?.grammarToolInputProperties?.get(x.name);if(E!==void 0)return{id:x.id,type:"custom",custom:{name:x.name,input:d(We(x.name,x.arguments,E))}};return{id:x.id,type:"function",function:{name:x.name,arguments:JSON.stringify(x.arguments)}}});let m=b.filter((x)=>x.thoughtSignature).map((x)=>{try{return JSON.parse(x.thoughtSignature)}catch{return null}}).filter(Boolean);if(m.length>0)l.reasoning_details=m}if(t.requiresReasoningContentOnAssistantMessages&&e.reasoning&&l.reasoning_content===void 0)l.reasoning_content="";let q=l.content;if(!(q!==null&&q!==void 0&&(typeof q==="string"?q.length>0:q.length>0))&&!l.tool_calls)continue;s.push(l)}else if(h.role==="toolResult"){let l=[],a=new Set,k=i;for(;k<f.length&&f[k].role==="toolResult";k++){let T=f[k],b=T.content.filter(te).map((E)=>E.text).join(`
7
- `),q=T.content.some((E)=>E.type==="image"),m=b.length>0?b:q?"(see attached image)":"(no tool output)",x={role:"tool",content:d(m),tool_call_id:T.toolCallId};if(t.requiresToolResultName&&T.toolName)x.name=T.toolName;if(s.push(x),t.deferredToolsMode==="kimi")for(let E of T.addedToolNames??[])a.add(E);if(q&&e.input.includes("image")){for(let E of T.content)if(Re(E))l.push({type:"image_url",image_url:{url:`data:${E.mimeType};base64,${E.data}`}})}}if(i=k-1,l.length>0){if(t.requiresAssistantAfterToolResult)s.push({role:"assistant",content:"I have processed the tool results."});s.push({role:"user",content:[{type:"text",text:"Attached image(s) from tool result:"},...l]}),_="user"}else _="toolResult";if(a.size>0){let T=me(n.tools,a);if(T.length>0){let b={role:"system",tools:ae(T,t)};s.push(b)}}continue}_=h.role}return s}function ae(e,n){return e.map((t)=>{let r=Ue(t,n.supportsOpenAIGrammarTools);if(r)return{type:"custom",custom:{name:t.name,description:t.description,format:{type:"grammar",grammar:{syntax:r.format,definition:r.definition}}}};let s=M(t,n.supportsStrictMode!==!1);return{type:"function",function:{name:t.name,description:t.description,parameters:t.parameters,...n.supportsStrictMode!==!1&&{strict:s??!1}}}})}function ne(e,n){let t=e.prompt_tokens||0,r=e.prompt_tokens_details?.cached_tokens??e.prompt_cache_hit_tokens??0,s=e.prompt_tokens_details?.cache_write_tokens||0,g=Math.max(0,t-r-s),f=e.completion_tokens||0,_={input:g,output:f,cacheRead:r,cacheWrite:s,reasoning:e.completion_tokens_details?.reasoning_tokens||0,totalTokens:g+f+r+s,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return v(n,_),_}function Le(e){if(e===null)return{stopReason:"stop"};switch(e){case"stop":case"end":return{stopReason:"stop"};case"length":return{stopReason:"length"};case"function_call":case"tool_calls":return{stopReason:"toolUse"};case"content_filter":return{stopReason:"error",errorMessage:"Provider finish_reason: content_filter"};case"network_error":return{stopReason:"error",errorMessage:"Provider finish_reason: network_error"};default:return{stopReason:"error",errorMessage:`Provider finish_reason: ${e}`}}}function Be(e){let{provider:n,baseUrl:t}=e,r=n==="zai"||n==="zai-coding-cn"||t.includes("api.z.ai")||t.includes("open.bigmodel.cn"),s=n==="together"||t.includes("api.together.ai")||t.includes("api.together.xyz"),g=n==="moonshotai"||n==="moonshotai-cn"||t.includes("api.moonshot."),f=n==="openrouter"||t.includes("openrouter.ai"),_=n==="cloudflare-workers-ai"||t.includes("api.cloudflare.com"),i=n==="cloudflare-ai-gateway"||t.includes("gateway.ai.cloudflare.com"),h=n==="nvidia"||t.includes("integrate.api.nvidia.com"),l=n==="ant-ling"||t.includes("api.ant-ling.com"),a=h||n==="cerebras"||t.includes("cerebras.ai")||n==="xai"||t.includes("api.x.ai")||s||t.includes("chutes.ai")||t.includes("deepseek.com")||r||g||n==="opencode"||t.includes("opencode.ai")||_||i||l,k=t.includes("chutes.ai")||g||i||s||h||l,T=n==="xai"||t.includes("api.x.ai"),b=n==="deepseek"||t.includes("deepseek.com"),q=f&&(e.id.startsWith("anthropic/")||e.id.startsWith("openai/")),D=n==="openrouter"&&e.id.startsWith("anthropic/")?"anthropic":void 0;return{supportsStore:!a,supportsDeveloperRole:q||!a&&!f,supportsReasoningEffort:!T&&!r&&!g&&!s&&!i&&!h&&!l,supportsUsageInStreaming:!0,maxTokensField:k?"max_tokens":"max_completion_tokens",requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:b,thinkingFormat:b?"deepseek":r?"zai":s?"together":l?"ant-ling":f?"openrouter":"openai",openRouterRouting:{},vercelGatewayRouting:{},chatTemplateKwargs:{},zaiToolStream:!1,supportsStrictMode:!g&&!s&&!i&&!h,supportsOpenAIGrammarTools:!1,cacheControlFormat:D,sendSessionAffinityHeaders:!1,deferredToolsMode:void 0,sessionAffinityFormat:f?"openrouter":"openai",supportsLongCacheRetention:!(s||_||i||h||l)}}function V(e){let n=Be(e);if(!e.compat)return n;return{supportsStore:e.compat.supportsStore??n.supportsStore,supportsDeveloperRole:e.compat.supportsDeveloperRole??n.supportsDeveloperRole,supportsReasoningEffort:e.compat.supportsReasoningEffort??n.supportsReasoningEffort,supportsUsageInStreaming:e.compat.supportsUsageInStreaming??n.supportsUsageInStreaming,maxTokensField:e.compat.maxTokensField??n.maxTokensField,requiresToolResultName:e.compat.requiresToolResultName??n.requiresToolResultName,requiresAssistantAfterToolResult:e.compat.requiresAssistantAfterToolResult??n.requiresAssistantAfterToolResult,requiresThinkingAsText:e.compat.requiresThinkingAsText??n.requiresThinkingAsText,requiresReasoningContentOnAssistantMessages:e.compat.requiresReasoningContentOnAssistantMessages??n.requiresReasoningContentOnAssistantMessages,thinkingFormat:e.compat.thinkingFormat??n.thinkingFormat,openRouterRouting:e.compat.openRouterRouting??{},vercelGatewayRouting:e.compat.vercelGatewayRouting??n.vercelGatewayRouting,chatTemplateKwargs:e.compat.chatTemplateKwargs??n.chatTemplateKwargs,zaiToolStream:e.compat.zaiToolStream??n.zaiToolStream,supportsStrictMode:e.compat.supportsStrictMode??n.supportsStrictMode,supportsOpenAIGrammarTools:e.compat.supportsOpenAIGrammarTools??n.supportsOpenAIGrammarTools,cacheControlFormat:e.compat.cacheControlFormat??n.cacheControlFormat,sendSessionAffinityHeaders:e.compat.sendSessionAffinityHeaders??n.sendSessionAffinityHeaders,deferredToolsMode:e.compat.deferredToolsMode??n.deferredToolsMode,sessionAffinityFormat:e.compat.sessionAffinityFormat??n.sessionAffinityFormat,supportsLongCacheRetention:e.compat.supportsLongCacheRetention??n.supportsLongCacheRetention}}export{qe as convertMessages,xe as stream,nt as streamSimple};
5
+ `);l.content=[{type:"text",text:m},...a]}else{if(k.length>0)l.content=k;let m=T[0].thinkingSignature;if(e.provider==="opencode-go"&&m==="reasoning")m="reasoning_content";if(m&&m.length>0)l[m]=T.map((v)=>v.thinking).join(`
6
+ `)}else if(k.length>0)l.content=k;let b=h.content.filter(Te);if(b.length>0){l.tool_calls=b.map((v)=>{let E=r?.grammarToolInputProperties?.get(v.name);if(E!==void 0)return{id:v.id,type:"custom",custom:{name:v.name,input:d(We(v.name,v.arguments,E))}};return{id:v.id,type:"function",function:{name:v.name,arguments:JSON.stringify(v.arguments)}}});let m=b.filter((v)=>v.thoughtSignature).map((v)=>{try{return JSON.parse(v.thoughtSignature)}catch{return null}}).filter(Boolean);if(m.length>0)l.reasoning_details=m}if(t.requiresReasoningContentOnAssistantMessages&&e.reasoning&&l.reasoning_content===void 0)l.reasoning_content="";let D=l.content;if(!(D!==null&&D!==void 0&&(typeof D==="string"?D.length>0:D.length>0))&&!l.tool_calls)continue;s.push(l)}else if(h.role==="toolResult"){let l=[],a=new Set,k=i;for(;k<f.length&&f[k].role==="toolResult";k++){let T=f[k],b=T.content.filter(te).map((E)=>E.text).join(`
7
+ `),D=T.content.some((E)=>E.type==="image"),m=b.length>0?b:D?"(see attached image)":"(no tool output)",v={role:"tool",content:d(m),tool_call_id:T.toolCallId};if(t.requiresToolResultName&&T.toolName)v.name=T.toolName;if(s.push(v),t.deferredToolsMode==="kimi")for(let E of T.addedToolNames??[])a.add(E);if(D&&e.input.includes("image")){for(let E of T.content)if(Re(E))l.push({type:"image_url",image_url:{url:`data:${E.mimeType};base64,${E.data}`}})}}if(i=k-1,l.length>0){if(t.requiresAssistantAfterToolResult)s.push({role:"assistant",content:"I have processed the tool results."});s.push({role:"user",content:[{type:"text",text:"Attached image(s) from tool result:"},...l]}),_="user"}else _="toolResult";if(a.size>0){let T=me(n.tools,a);if(T.length>0){let b={role:"system",tools:ae(T,t)};s.push(b)}}continue}_=h.role}return s}function ae(e,n){return e.map((t)=>{let r=Ue(t,n.supportsOpenAIGrammarTools);if(r)return{type:"custom",custom:{name:t.name,description:t.description,format:{type:"grammar",grammar:{syntax:r.format,definition:r.definition}}}};let s=M(t,n.supportsStrictMode!==!1);return{type:"function",function:{name:t.name,description:t.description,parameters:t.parameters,...n.supportsStrictMode!==!1&&{strict:s??!1}}}})}function ne(e,n){let t=e.prompt_tokens||0,r=e.prompt_tokens_details?.cached_tokens??e.prompt_cache_hit_tokens??0,s=e.prompt_tokens_details?.cache_write_tokens||0,g=Math.max(0,t-r-s),f=e.completion_tokens||0,_={input:g,output:f,cacheRead:r,cacheWrite:s,reasoning:e.completion_tokens_details?.reasoning_tokens||0,totalTokens:g+f+r+s,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return w(n,_),_}function Le(e){if(e===null)return{stopReason:"stop"};switch(e){case"stop":case"end":return{stopReason:"stop"};case"length":return{stopReason:"length"};case"function_call":case"tool_calls":return{stopReason:"toolUse"};case"content_filter":return{stopReason:"error",errorMessage:"Provider finish_reason: content_filter"};case"network_error":return{stopReason:"error",errorMessage:"Provider finish_reason: network_error"};default:return{stopReason:"error",errorMessage:`Provider finish_reason: ${e}`}}}function Be(e){let{provider:n,baseUrl:t}=e,r=n==="zai"||n==="zai-coding-cn"||t.includes("api.z.ai")||t.includes("open.bigmodel.cn"),s=n==="together"||t.includes("api.together.ai")||t.includes("api.together.xyz"),g=n==="moonshotai"||n==="moonshotai-cn"||t.includes("api.moonshot."),f=n==="openrouter"||t.includes("openrouter.ai"),_=n==="cloudflare-workers-ai"||t.includes("api.cloudflare.com"),i=n==="cloudflare-ai-gateway"||t.includes("gateway.ai.cloudflare.com"),h=n==="nvidia"||t.includes("integrate.api.nvidia.com"),l=n==="ant-ling"||t.includes("api.ant-ling.com"),a=h||n==="cerebras"||t.includes("cerebras.ai")||n==="xai"||t.includes("api.x.ai")||s||t.includes("chutes.ai")||t.includes("deepseek.com")||r||g||n==="opencode"||t.includes("opencode.ai")||_||i||l,k=t.includes("chutes.ai")||g||i||s||h||l,T=n==="xai"||t.includes("api.x.ai"),b=n==="deepseek"||t.includes("deepseek.com"),D=f&&(e.id.startsWith("anthropic/")||e.id.startsWith("openai/")),N=n==="openrouter"&&e.id.startsWith("anthropic/")?"anthropic":void 0;return{supportsStore:!a,supportsDeveloperRole:D||!a&&!f,supportsReasoningEffort:!T&&!r&&!g&&!s&&!i&&!h&&!l,supportsUsageInStreaming:!0,maxTokensField:k?"max_tokens":"max_completion_tokens",requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:b,thinkingFormat:b?"deepseek":r?"zai":s?"together":l?"ant-ling":f?"openrouter":"openai",openRouterRouting:{},vercelGatewayRouting:{},chatTemplateKwargs:{},zaiToolStream:!1,supportsStrictMode:!g&&!s&&!i&&!h,supportsOpenAIGrammarTools:!1,cacheControlFormat:N,sendSessionAffinityHeaders:!1,deferredToolsMode:void 0,sessionAffinityFormat:f?"openrouter":"openai",supportsLongCacheRetention:!(s||_||i||h||l)}}function Z(e){let n=Be(e);if(!e.compat)return n;return{supportsStore:e.compat.supportsStore??n.supportsStore,supportsDeveloperRole:e.compat.supportsDeveloperRole??n.supportsDeveloperRole,supportsReasoningEffort:e.compat.supportsReasoningEffort??n.supportsReasoningEffort,supportsUsageInStreaming:e.compat.supportsUsageInStreaming??n.supportsUsageInStreaming,maxTokensField:e.compat.maxTokensField??n.maxTokensField,requiresToolResultName:e.compat.requiresToolResultName??n.requiresToolResultName,requiresAssistantAfterToolResult:e.compat.requiresAssistantAfterToolResult??n.requiresAssistantAfterToolResult,requiresThinkingAsText:e.compat.requiresThinkingAsText??n.requiresThinkingAsText,requiresReasoningContentOnAssistantMessages:e.compat.requiresReasoningContentOnAssistantMessages??n.requiresReasoningContentOnAssistantMessages,thinkingFormat:e.compat.thinkingFormat??n.thinkingFormat,openRouterRouting:e.compat.openRouterRouting??{},vercelGatewayRouting:e.compat.vercelGatewayRouting??n.vercelGatewayRouting,chatTemplateKwargs:e.compat.chatTemplateKwargs??n.chatTemplateKwargs,zaiToolStream:e.compat.zaiToolStream??n.zaiToolStream,supportsStrictMode:e.compat.supportsStrictMode??n.supportsStrictMode,supportsOpenAIGrammarTools:e.compat.supportsOpenAIGrammarTools??n.supportsOpenAIGrammarTools,cacheControlFormat:e.compat.cacheControlFormat??n.cacheControlFormat,sendSessionAffinityHeaders:e.compat.sendSessionAffinityHeaders??n.sendSessionAffinityHeaders,deferredToolsMode:e.compat.deferredToolsMode??n.deferredToolsMode,sessionAffinityFormat:e.compat.sessionAffinityFormat??n.sessionAffinityFormat,supportsLongCacheRetention:e.compat.supportsLongCacheRetention??n.supportsLongCacheRetention}}export{qe as convertMessages,xe as stream,nt as streamSimple};