@crewx/sdk 0.8.0-rc.91 → 0.8.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.
package/dist/index.js CHANGED
@@ -1,52 +1,52 @@
1
- 'use strict';var child_process=require('child_process'),fs$1=require('fs'),Hr=require('path'),jsYaml=require('js-yaml'),zod=require('zod'),oe=require('handlebars'),promises=require('fs/promises'),module$1=require('module'),crypto$1=require('crypto'),events=require('events'),async_hooks=require('async_hooks'),mcp_js=require('@modelcontextprotocol/sdk/server/mcp.js'),webStandardStreamableHttp_js=require('@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js'),bi=require('better-sqlite3'),os$1=require('os'),perf_hooks=require('perf_hooks');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Hr__namespace=/*#__PURE__*/_interopNamespace(Hr);var oe__namespace=/*#__PURE__*/_interopNamespace(oe);var bi__default=/*#__PURE__*/_interopDefault(bi);var kt=Object.defineProperty;var fs=Object.getOwnPropertyDescriptor;var hs=Object.getOwnPropertyNames;var ys=Object.prototype.hasOwnProperty;var U=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var le=(r,e)=>()=>(r&&(e=r(r=0)),e);var be=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Rt=(r,e)=>{for(var t in e)kt(r,t,{get:e[t],enumerable:true});},vs=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of hs(e))!ys.call(r,o)&&o!==t&&kt(r,o,{get:()=>e[o],enumerable:!(n=fs(e,o))||n.enumerable});return r};var Er=r=>vs(kt({},"__esModule",{value:true}),r);var y=le(()=>{});function Ts(r){if(r.type!=="usage"||!("input_tokens"in r))return null;let e=Number(r.input_tokens??0),t=Number(r.output_tokens??0),o="cache_read_input_tokens"in r?Number(r.cache_read_input_tokens):void 0,s="cached_input_tokens"in r?Number(r.cached_input_tokens):void 0,i=o!==void 0?o:s??0;return {inputTokens:o!==void 0?e+o:e,outputTokens:t,cachedInputTokens:i}}function Ps(r){let e=r.usage;if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e;if(!("input_tokens"in t))return null;let n=Number(t.input_tokens??0),o=Number(t.output_tokens??0),i="cache_read_input_tokens"in t?Number(t.cache_read_input_tokens):void 0,a="cached_input_tokens"in t?Number(t.cached_input_tokens):void 0,l=i!==void 0?i:a??0;return {inputTokens:i!==void 0?n+i:n,outputTokens:o,cachedInputTokens:l}}function Es(r){if(r.type!=="step_finish")return null;let t=r.part?.tokens;if(!t)return null;let n=Number(t.input??0),o=Number(t.output??0),s=t.cache,i=s?Number(s.read??0):0;return {inputTokens:n+i,outputTokens:o,cachedInputTokens:i}}function Tt(r){if(!r||!r.trim())return;let e=null;for(let t of r.split(`
2
- `))if(t.trim())try{let n=JSON.parse(t),o=Ts(n)??Ps(n)??Es(n);o&&(e=o);}catch{}return e??void 0}var Pt=le(()=>{y();});function Ss(r){let e=r.split(`
1
+ 'use strict';var child_process=require('child_process'),fs$1=require('fs'),Fr=require('path'),jsYaml=require('js-yaml'),zod=require('zod'),module$1=require('module'),oe=require('handlebars'),promises=require('fs/promises'),crypto$1=require('crypto'),events=require('events'),async_hooks=require('async_hooks'),mcp_js=require('@modelcontextprotocol/sdk/server/mcp.js'),webStandardStreamableHttp_js=require('@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js'),Ri=require('better-sqlite3'),os$1=require('os'),perf_hooks=require('perf_hooks');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Fr__namespace=/*#__PURE__*/_interopNamespace(Fr);var oe__namespace=/*#__PURE__*/_interopNamespace(oe);var Ri__default=/*#__PURE__*/_interopDefault(Ri);var Ct=Object.defineProperty;var ws=Object.getOwnPropertyDescriptor;var bs=Object.getOwnPropertyNames;var _s=Object.prototype.hasOwnProperty;var U=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var le=(r,e)=>()=>(r&&(e=r(r=0)),e);var be=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Tt=(r,e)=>{for(var t in e)Ct(r,t,{get:e[t],enumerable:true});},xs=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of bs(e))!_s.call(r,o)&&o!==t&&Ct(r,o,{get:()=>e[o],enumerable:!(n=ws(e,o))||n.enumerable});return r};var Ir=r=>xs(Ct({},"__esModule",{value:true}),r);var v=le(()=>{});function zs(r){if(r.type!=="usage"||!("input_tokens"in r))return null;let e=Number(r.input_tokens??0),t=Number(r.output_tokens??0),o="cache_read_input_tokens"in r?Number(r.cache_read_input_tokens):void 0,s="cached_input_tokens"in r?Number(r.cached_input_tokens):void 0,i=o!==void 0?o:s??0;return {inputTokens:o!==void 0?e+o:e,outputTokens:t,cachedInputTokens:i}}function Ms(r){let e=r.usage;if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e;if(!("input_tokens"in t))return null;let n=Number(t.input_tokens??0),o=Number(t.output_tokens??0),i="cache_read_input_tokens"in t?Number(t.cache_read_input_tokens):void 0,a="cached_input_tokens"in t?Number(t.cached_input_tokens):void 0,l=i!==void 0?i:a??0;return {inputTokens:i!==void 0?n+i:n,outputTokens:o,cachedInputTokens:l}}function js(r){if(r.type!=="step_finish")return null;let t=r.part?.tokens;if(!t)return null;let n=Number(t.input??0),o=Number(t.output??0),s=t.cache,i=s?Number(s.read??0):0;return {inputTokens:n+i,outputTokens:o,cachedInputTokens:i}}function Et(r){if(!r||!r.trim())return;let e=null;for(let t of r.split(`
2
+ `))if(t.trim())try{let n=JSON.parse(t),o=zs(n)??Ms(n)??js(n);o&&(e=o);}catch{}return e??void 0}var At=le(()=>{v();});function $s(r){let e=r.split(`
3
3
  `).filter(l=>l.trim()),t=[],n=[],o=[],s=[],i=[],a=null;for(let l of e)try{let u=JSON.parse(l);if(u.type==="assistant"&&Array.isArray(u.message?.content))for(let c of u.message.content)c.type==="text"&&typeof c.text=="string"&&c.text.trim()&&t.push(c.text.trim());if(u.type==="message"&&u.role==="assistant"&&u.delta===!0&&typeof u.content=="string"&&n.push(u.content),u.type==="assistant.message"&&typeof u.data?.content=="string"){let c=u.data.content;c.trim()&&o.push(c.trim());}if(u.type==="item.completed"&&(u.item?.type==="message"||u.item?.type==="agent_message")&&typeof u.item?.text=="string"){let c=u.item.text;c.trim()&&s.push(c.trim());}if(u.type==="text"&&typeof u.part?.text=="string"){let c=u.part.text;c.trim()&&i.push(c.trim());}u.type==="result"&&typeof u.result=="string"&&(a=u.result);}catch{}return t.length>0?t.join(`
4
4
 
5
5
  `):n.length>0?n.join(""):o.length>0?o.join(`
6
6
 
7
7
  `):s.length>0?s.join(`
8
8
 
9
- `):i.length>0?i.join(""):a||r.trim()}function Is(r){let e=Tt(r);return e?{inputTokens:e.inputTokens,outputTokens:e.outputTokens,cachedInputTokens:e.cachedInputTokens,costUsd:0}:null}function Ae(r,e){Or.set(r,e);}function ce(r){let e=r.split("/");if(e.length!==2)throw new exports.ProviderError(`Invalid provider format: "${r}". Expected namespace/id (e.g., cli/claude)`,r);let[t,n]=e,o=Or.get(t);if(o)return o(n,r);if(t==="cli"){let s=Ir[n];if(!s)throw new exports.ProviderError(`Unknown CLI provider id: "${n}". Supported: ${Object.keys(Ir).join(", ")}`,r);return new Et(n,s,r)}throw new exports.ProviderError(`Unsupported provider namespace: "${t}". Register a factory with registerProviderFactory('${t}', factory).`,r)}exports.ProviderError=void 0;exports.ClientToolCallRequiredError=void 0;var Or,Ir,Et,xe=le(()=>{y();Pt();exports.ProviderError=class extends Error{constructor(t,n){super(t);this.providerStr=n;this.name="ProviderError";}providerStr},exports.ClientToolCallRequiredError=class extends Error{constructor(t,n){super(`Client tool call required: ${t.toolName}`);this.toolCall=t;this.continuationState=n;}toolCall;continuationState;name="ClientToolCallRequiredError"},Or=new Map;Ir={claude:"claude",gemini:"gemini",copilot:"copilot",codex:"codex",opencode:"opencode"};Et=class{constructor(e,t,n){this.providerId=e;this.cliCommand=t;this.providerStr=n;}providerId;cliCommand;providerStr;async execute(e,t){let{args:n,stdinMessage:o}=this.buildArgs(e,t,true);return t?.onCommand?.(`${this.cliCommand} ${n.join(" ")}`),this.runProcess(n,t,o)}async query(e,t){let{args:n,stdinMessage:o}=this.buildArgs(e,t);return t?.onCommand?.(`${this.cliCommand} ${n.join(" ")}`),this.runProcess(n,t,o)}runProcess(e,t,n){return new Promise((o,s)=>{let i=child_process.spawn(this.cliCommand,e,{env:{...process.env,...t?.env??{}},cwd:t?.cwd,stdio:["pipe","pipe","pipe"],shell:process.platform==="win32"});n!==void 0&&i.stdin.write(n),i.stdin.end(),i.pid!==void 0&&t?.onPid?.(i.pid);let a="",l="",u="",c="";i.stdout.on("data",d=>{let p=d.toString();a+=p,u+=p;let m=u.split(`
9
+ `):i.length>0?i.join(""):a||r.trim()}function Ds(r){let e=Et(r);return e?{inputTokens:e.inputTokens,outputTokens:e.outputTokens,cachedInputTokens:e.cachedInputTokens,costUsd:0}:null}function Se(r,e){Mr.set(r,e);}function de(r){let e=r.split("/");if(e.length!==2)throw new exports.ProviderError(`Invalid provider format: "${r}". Expected namespace/id (e.g., cli/claude)`,r);let[t,n]=e,o=Mr.get(t);if(o)return o(n,r);if(t==="cli"){let s=zr[n];if(!s)throw new exports.ProviderError(`Unknown CLI provider id: "${n}". Supported: ${Object.keys(zr).join(", ")}`,r);return new St(n,s,r)}throw new exports.ProviderError(`Unsupported provider namespace: "${t}". Register a factory with registerProviderFactory('${t}', factory).`,r)}exports.ProviderError=void 0;exports.ClientToolCallRequiredError=void 0;var Mr,zr,St,ke=le(()=>{v();At();exports.ProviderError=class extends Error{constructor(t,n){super(t);this.providerStr=n;this.name="ProviderError";}providerStr},exports.ClientToolCallRequiredError=class extends Error{constructor(t,n){super(`Client tool call required: ${t.toolName}`);this.toolCall=t;this.continuationState=n;}toolCall;continuationState;name="ClientToolCallRequiredError"},Mr=new Map;zr={claude:"claude",gemini:"gemini",copilot:"copilot",codex:"codex",opencode:"opencode"};St=class{constructor(e,t,n){this.providerId=e;this.cliCommand=t;this.providerStr=n;}providerId;cliCommand;providerStr;async execute(e,t){let{args:n,stdinMessage:o}=this.buildArgs(e,t,true);return t?.onCommand?.(`${this.cliCommand} ${n.join(" ")}`),this.runProcess(n,t,o)}async query(e,t){let{args:n,stdinMessage:o}=this.buildArgs(e,t);return t?.onCommand?.(`${this.cliCommand} ${n.join(" ")}`),this.runProcess(n,t,o)}runProcess(e,t,n){return new Promise((o,s)=>{let i=child_process.spawn(this.cliCommand,e,{env:{...process.env,...t?.env??{}},cwd:t?.cwd,stdio:["pipe","pipe","pipe"],shell:process.platform==="win32"});n!==void 0&&i.stdin.write(n),i.stdin.end(),i.pid!==void 0&&t?.onPid?.(i.pid);let a="",l="",u="",c="";i.stdout.on("data",d=>{let p=d.toString();a+=p,u+=p;let m=u.split(`
10
10
  `);u=m.pop()??"";for(let h of m)h.trim()&&t?.onOutput?.(h,"stdout");}),i.stderr.on("data",d=>{let p=d.toString();l+=p,c+=p;let m=c.split(`
11
11
  `);c=m.pop()??"";for(let h of m)h.trim()&&t?.onOutput?.(h,"stderr");}),i.on("error",d=>{d.code==="ENOENT"?s(new exports.ProviderError(`CLI command "${this.cliCommand}" not found. Is ${this.providerStr} installed?`,this.providerStr)):s(new exports.ProviderError(`Spawn error: ${d.message}`,this.providerStr));}),i.on("close",d=>{u.trim()&&t?.onOutput?.(u,"stdout"),c.trim()&&t?.onOutput?.(c,"stderr");let p=d??0;if(t?.onExitCode?.(p),d!==0){s(new exports.ProviderError(`Process exited with code ${d}: ${l.slice(0,500)}`,this.providerStr));return}let{usage:m,model:h}=this.parseResultEvent(a);m&&t?.onUsage&&t.onUsage(m);let f=h??(this.providerId==="opencode"?t?.model??null:null);f&&t?.onModel&&t.onModel(f);let g=this.parseOutput(a);o(g);});})}buildArgs(e,t,n=false){let o=t?.systemPrompt?`${t.systemPrompt}
12
12
 
13
13
  ---
14
14
 
15
- ${e}`:e;if(this.providerId==="copilot"){let i=t?.additionalArgs?[...t.additionalArgs]:[];return t?.model&&i.push("--model",t.model),{args:i,stdinMessage:o}}if(this.providerId==="opencode"){let i=t?.additionalArgs,a=i!==void 0?[...i]:["run"];return a.includes("--format")||a.push("--format","json"),t?.model&&a.push("--model",t.model),a.push(o),{args:a}}if(t?.additionalArgs!==void 0){let i=[...t.additionalArgs],a=i.indexOf("-p");return a!==-1?(i.splice(a+1,0,o),t.model&&i.push("--model",t.model),{args:i}):(this.providerId==="codex"&&!i.includes("--json")&&!i.includes("--experimental-json")&&i.push("--json"),t.model&&i.push("--model",t.model),{args:i,stdinMessage:o})}let s=["-p",o,"--output-format","stream-json","--verbose"];return n&&s.push("--dangerously-skip-permissions"),t?.model&&s.push("--model",t.model),{args:s}}parseOutput(e){return Ss(e)}parseResultEvent(e){let t=Is(e),n=e.split(`
16
- `);for(let o of n)if(o.trim())try{let s=JSON.parse(o);if(s.type==="result"){let i=s.usage,a=i?{inputTokens:Number(i.input_tokens??0),outputTokens:Number(i.output_tokens??0),cachedInputTokens:Number(i.cache_read_input_tokens??0),costUsd:Number(s.total_cost_usd??0)}:t,l=s.modelUsage,u=l?Object.keys(l)[0]??null:null;return {usage:a,model:u}}}catch{}return {usage:t,model:null}}};});var H=be((Jg,Fn)=>{y();var Vt=Object.defineProperty,Ei=Object.getOwnPropertyDescriptor,Ai=Object.getOwnPropertyNames,Si=Object.prototype.hasOwnProperty,Ii=(r,e)=>{for(var t in e)Vt(r,t,{get:e[t],enumerable:true});},Oi=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ai(e))!Si.call(r,o)&&o!==t&&Vt(r,o,{get:()=>e[o],enumerable:!(n=Ei(e,o))||n.enumerable});return r},zi=r=>Oi(Vt({},"__esModule",{value:true}),r),Qr={};Ii(Qr,{AISDKError:()=>D,APICallError:()=>$i,EmptyResponseBodyError:()=>Li,InvalidArgumentError:()=>qi,InvalidPromptError:()=>Ui,InvalidResponseDataError:()=>Ji,JSONParseError:()=>Vi,LoadAPIKeyError:()=>Gi,LoadSettingError:()=>Yi,NoContentGeneratedError:()=>Zi,NoSuchModelError:()=>ta,TooManyEmbeddingValuesForCallError:()=>na,TypeValidationError:()=>ia,UnsupportedFunctionalityError:()=>la,getErrorMessage:()=>Kt,isJSONArray:()=>ua,isJSONObject:()=>ca,isJSONValue:()=>qe});Fn.exports=zi(Qr);var Zr="vercel.ai.error",Mi=Symbol.for(Zr),en,ji=class tn extends Error{constructor({name:e,message:t,cause:n}){super(t),this[en]=true,this.name=e,this.cause=n;}static isInstance(e){return tn.hasMarker(e,Zr)}static hasMarker(e,t){let n=Symbol.for(t);return e!=null&&typeof e=="object"&&n in e&&typeof e[n]=="boolean"&&e[n]===true}};en=Mi;var D=ji,rn="AI_APICallError",nn=`vercel.ai.error.${rn}`,Ni=Symbol.for(nn),on,$i=class extends D{constructor({message:r,url:e,requestBodyValues:t,statusCode:n,responseHeaders:o,responseBody:s,cause:i,isRetryable:a=n!=null&&(n===408||n===409||n===429||n>=500),data:l}){super({name:rn,message:r,cause:i}),this[on]=true,this.url=e,this.requestBodyValues=t,this.statusCode=n,this.responseHeaders=o,this.responseBody=s,this.isRetryable=a,this.data=l;}static isInstance(r){return D.hasMarker(r,nn)}};on=Ni;var sn="AI_EmptyResponseBodyError",an=`vercel.ai.error.${sn}`,Di=Symbol.for(an),ln,Li=class extends D{constructor({message:r="Empty response body"}={}){super({name:sn,message:r}),this[ln]=true;}static isInstance(r){return D.hasMarker(r,an)}};ln=Di;function Kt(r){return r==null?"unknown error":typeof r=="string"?r:r instanceof Error?r.message:JSON.stringify(r)}var un="AI_InvalidArgumentError",cn=`vercel.ai.error.${un}`,Hi=Symbol.for(cn),dn,qi=class extends D{constructor({message:r,cause:e,argument:t}){super({name:un,message:r,cause:e}),this[dn]=true,this.argument=t;}static isInstance(r){return D.hasMarker(r,cn)}};dn=Hi;var pn="AI_InvalidPromptError",gn=`vercel.ai.error.${pn}`,Fi=Symbol.for(gn),mn,Ui=class extends D{constructor({prompt:r,message:e,cause:t}){super({name:pn,message:`Invalid prompt: ${e}`,cause:t}),this[mn]=true,this.prompt=r;}static isInstance(r){return D.hasMarker(r,gn)}};mn=Fi;var fn="AI_InvalidResponseDataError",hn=`vercel.ai.error.${fn}`,Bi=Symbol.for(hn),yn,Ji=class extends D{constructor({data:r,message:e=`Invalid response data: ${JSON.stringify(r)}.`}){super({name:fn,message:e}),this[yn]=true,this.data=r;}static isInstance(r){return D.hasMarker(r,hn)}};yn=Bi;var vn="AI_JSONParseError",wn=`vercel.ai.error.${vn}`,Wi=Symbol.for(wn),bn,Vi=class extends D{constructor({text:r,cause:e}){super({name:vn,message:`JSON parsing failed: Text: ${r}.
17
- Error message: ${Kt(e)}`,cause:e}),this[bn]=true,this.text=r;}static isInstance(r){return D.hasMarker(r,wn)}};bn=Wi;var _n="AI_LoadAPIKeyError",xn=`vercel.ai.error.${_n}`,Ki=Symbol.for(xn),kn,Gi=class extends D{constructor({message:r}){super({name:_n,message:r}),this[kn]=true;}static isInstance(r){return D.hasMarker(r,xn)}};kn=Ki;var Rn="AI_LoadSettingError",Cn=`vercel.ai.error.${Rn}`,Xi=Symbol.for(Cn),Tn,Yi=class extends D{constructor({message:r}){super({name:Rn,message:r}),this[Tn]=true;}static isInstance(r){return D.hasMarker(r,Cn)}};Tn=Xi;var Pn="AI_NoContentGeneratedError",En=`vercel.ai.error.${Pn}`,Qi=Symbol.for(En),An,Zi=class extends D{constructor({message:r="No content generated."}={}){super({name:Pn,message:r}),this[An]=true;}static isInstance(r){return D.hasMarker(r,En)}};An=Qi;var Sn="AI_NoSuchModelError",In=`vercel.ai.error.${Sn}`,ea=Symbol.for(In),On,ta=class extends D{constructor({errorName:r=Sn,modelId:e,modelType:t,message:n=`No such ${t}: ${e}`}){super({name:r,message:n}),this[On]=true,this.modelId=e,this.modelType=t;}static isInstance(r){return D.hasMarker(r,In)}};On=ea;var zn="AI_TooManyEmbeddingValuesForCallError",Mn=`vercel.ai.error.${zn}`,ra=Symbol.for(Mn),jn,na=class extends D{constructor(r){super({name:zn,message:`Too many values for a single embedding call. The ${r.provider} model "${r.modelId}" can only embed up to ${r.maxEmbeddingsPerCall} values per call, but ${r.values.length} values were provided.`}),this[jn]=true,this.provider=r.provider,this.modelId=r.modelId,this.maxEmbeddingsPerCall=r.maxEmbeddingsPerCall,this.values=r.values;}static isInstance(r){return D.hasMarker(r,Mn)}};jn=ra;var Nn="AI_TypeValidationError",$n=`vercel.ai.error.${Nn}`,oa=Symbol.for($n),Dn,sa=class Wt extends D{constructor({value:e,cause:t}){super({name:Nn,message:`Type validation failed: Value: ${JSON.stringify(e)}.
18
- Error message: ${Kt(t)}`,cause:t}),this[Dn]=true,this.value=e;}static isInstance(e){return D.hasMarker(e,$n)}static wrap({value:e,cause:t}){return Wt.isInstance(t)&&t.value===e?t:new Wt({value:e,cause:t})}};Dn=oa;var ia=sa,Ln="AI_UnsupportedFunctionalityError",Hn=`vercel.ai.error.${Ln}`,aa=Symbol.for(Hn),qn,la=class extends D{constructor({functionality:r,message:e=`'${r}' functionality not supported.`}){super({name:Ln,message:e}),this[qn]=true,this.functionality=r;}static isInstance(r){return D.hasMarker(r,Hn)}};qn=aa;function qe(r){return r===null||typeof r=="string"||typeof r=="number"||typeof r=="boolean"?true:Array.isArray(r)?r.every(qe):typeof r=="object"?Object.entries(r).every(([e,t])=>typeof e=="string"&&qe(t)):false}function ua(r){return Array.isArray(r)&&r.every(qe)}function ca(r){return r!=null&&typeof r=="object"&&Object.entries(r).every(([e,t])=>typeof e=="string"&&qe(t))}});var Bn=be((sm,Un)=>{y();var da="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",pa=(r,e=21)=>(t=e)=>{let n="",o=t|0;for(;o--;)n+=r[Math.random()*r.length|0];return n},ga=(r=21)=>{let e="",t=r|0;for(;t--;)e+=da[Math.random()*64|0];return e};Un.exports={nanoid:ga,customAlphabet:pa};});var Gn=be((am,Se)=>{y();var ma=typeof Buffer<"u",Jn=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,Wn=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;function Vn(r,e,t){t==null&&e!==null&&typeof e=="object"&&(t=e,e=void 0),ma&&Buffer.isBuffer(r)&&(r=r.toString()),r&&r.charCodeAt(0)===65279&&(r=r.slice(1));let n=JSON.parse(r,e);if(n===null||typeof n!="object")return n;let o=t&&t.protoAction||"error",s=t&&t.constructorAction||"error";if(o==="ignore"&&s==="ignore")return n;if(o!=="ignore"&&s!=="ignore"){if(Jn.test(r)===false&&Wn.test(r)===false)return n}else if(o!=="ignore"&&s==="ignore"){if(Jn.test(r)===false)return n}else if(Wn.test(r)===false)return n;return Kn(n,{protoAction:o,constructorAction:s,safe:t&&t.safe})}function Kn(r,{protoAction:e="error",constructorAction:t="error",safe:n}={}){let o=[r];for(;o.length;){let s=o;o=[];for(let i of s){if(e!=="ignore"&&Object.prototype.hasOwnProperty.call(i,"__proto__")){if(n===true)return null;if(e==="error")throw new SyntaxError("Object contains forbidden prototype property");delete i.__proto__;}if(t!=="ignore"&&Object.prototype.hasOwnProperty.call(i,"constructor")&&Object.prototype.hasOwnProperty.call(i.constructor,"prototype")){if(n===true)return null;if(t==="error")throw new SyntaxError("Object contains forbidden prototype property");delete i.constructor;}for(let a in i){let l=i[a];l&&typeof l=="object"&&o.push(l);}}}return r}function Gt(r,e,t){let n=Error.stackTraceLimit;Error.stackTraceLimit=0;try{return Vn(r,e,t)}finally{Error.stackTraceLimit=n;}}function fa(r,e){let t=Error.stackTraceLimit;Error.stackTraceLimit=0;try{return Vn(r,e,{safe:!0})}catch{return null}finally{Error.stackTraceLimit=t;}}Se.exports=Gt;Se.exports.default=Gt;Se.exports.parse=Gt;Se.exports.safeParse=fa;Se.exports.scan=Kn;});var V=be((um,io)=>{y();var ha=Object.create,dt=Object.defineProperty,ya=Object.getOwnPropertyDescriptor,va=Object.getOwnPropertyNames,wa=Object.getPrototypeOf,ba=Object.prototype.hasOwnProperty,_a=(r,e)=>{for(var t in e)dt(r,t,{get:e[t],enumerable:true});},Xn=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of va(e))!ba.call(r,o)&&o!==t&&dt(r,o,{get:()=>e[o],enumerable:!(n=ya(e,o))||n.enumerable});return r},xa=(r,e,t)=>(t=r!=null?ha(wa(r)):{},Xn(!r||!r.__esModule?dt(t,"default",{value:r,enumerable:true}):t,r)),ka=r=>Xn(dt({},"__esModule",{value:true}),r),Yn={};_a(Yn,{asValidator:()=>ro,combineHeaders:()=>Ra,convertAsyncIteratorToReadableStream:()=>Ca,convertBase64ToUint8Array:()=>Qa,convertUint8ArrayToBase64:()=>Za,createBinaryResponseHandler:()=>Ka,createEventSourceParserStream:()=>Qn,createEventSourceResponseHandler:()=>Ja,createIdGenerator:()=>Zn,createJsonErrorResponseHandler:()=>Ba,createJsonResponseHandler:()=>Va,createJsonStreamResponseHandler:()=>Wa,createStatusCodeErrorResponseHandler:()=>Ga,delay:()=>Ta,extractResponseHeaders:()=>ge,generateId:()=>Sa,getErrorMessage:()=>Ia,getFromApi:()=>za,isAbortError:()=>Te,isParsableJson:()=>$a,isValidator:()=>to,loadApiKey:()=>Ma,loadOptionalSetting:()=>ja,loadSetting:()=>Na,parseJSON:()=>so,parseProviderOptions:()=>La,postFormDataToApi:()=>Fa,postJsonToApi:()=>qa,postToApi:()=>Zt,removeUndefinedEntries:()=>Yt,resolve:()=>Ua,safeParseJSON:()=>gt,safeValidateTypes:()=>pt,validateTypes:()=>oo,validator:()=>eo,validatorSymbol:()=>ct,withoutTrailingSlash:()=>el,zodValidator:()=>no});io.exports=ka(Yn);function Ra(...r){return r.reduce((e,t)=>({...e,...t??{}}),{})}function Ca(r){return new ReadableStream({async pull(e){try{let{value:t,done:n}=await r.next();n?e.close():e.enqueue(t);}catch(t){e.error(t);}},cancel(){}})}async function Ta(r){return r==null?Promise.resolve():new Promise(e=>setTimeout(e,r))}function Qn(){let r="",e,t=[],n,o;function s(l,u){if(l===""){i(u);return}if(l.startsWith(":"))return;let c=l.indexOf(":");if(c===-1){a(l,"");return}let d=l.slice(0,c),p=c+1,m=p<l.length&&l[p]===" "?l.slice(p+1):l.slice(p);a(d,m);}function i(l){t.length>0&&(l.enqueue({event:e,data:t.join(`
19
- `),id:n,retry:o}),t=[],e=void 0,o=void 0);}function a(l,u){switch(l){case "event":e=u;break;case "data":t.push(u);break;case "id":n=u;break;case "retry":let c=parseInt(u,10);isNaN(c)||(o=c);break}}return new TransformStream({transform(l,u){let{lines:c,incompleteLine:d}=Pa(r,l);r=d;for(let p=0;p<c.length;p++)s(c[p],u);},flush(l){s(r,l),i(l);}})}function Pa(r,e){let t=[],n=r;for(let o=0;o<e.length;){let s=e[o++];s===`
15
+ ${e}`:e;if(this.providerId==="copilot"){let i=t?.additionalArgs?[...t.additionalArgs]:[];return t?.model&&i.push("--model",t.model),{args:i,stdinMessage:o}}if(this.providerId==="opencode"){let i=t?.additionalArgs,a=i!==void 0?[...i]:["run"];return a.includes("--format")||a.push("--format","json"),t?.model&&a.push("--model",t.model),a.push(o),{args:a}}if(t?.additionalArgs!==void 0){let i=[...t.additionalArgs],a=i.indexOf("-p");return a!==-1?(i.splice(a+1,0,o),t.model&&i.push("--model",t.model),{args:i}):(this.providerId==="codex"&&!i.includes("--json")&&!i.includes("--experimental-json")&&i.push("--json"),t.model&&i.push("--model",t.model),{args:i,stdinMessage:o})}let s=["-p",o,"--output-format","stream-json","--verbose"];return n&&s.push("--dangerously-skip-permissions"),t?.model&&s.push("--model",t.model),{args:s}}parseOutput(e){return $s(e)}parseResultEvent(e){let t=Ds(e),n=e.split(`
16
+ `);for(let o of n)if(o.trim())try{let s=JSON.parse(o);if(s.type==="result"){let i=s.usage,a=i?{inputTokens:Number(i.input_tokens??0),outputTokens:Number(i.output_tokens??0),cachedInputTokens:Number(i.cache_read_input_tokens??0),costUsd:Number(s.total_cost_usd??0)}:t,l=s.modelUsage,u=l?Object.keys(l)[0]??null:null;return {usage:a,model:u}}}catch{}return {usage:t,model:null}}};});var H=be((Qg,Bn)=>{v();var Gt=Object.defineProperty,Oi=Object.getOwnPropertyDescriptor,zi=Object.getOwnPropertyNames,Mi=Object.prototype.hasOwnProperty,ji=(r,e)=>{for(var t in e)Gt(r,t,{get:e[t],enumerable:true});},Ni=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of zi(e))!Mi.call(r,o)&&o!==t&&Gt(r,o,{get:()=>e[o],enumerable:!(n=Oi(e,o))||n.enumerable});return r},$i=r=>Ni(Gt({},"__esModule",{value:true}),r),en={};ji(en,{AISDKError:()=>D,APICallError:()=>qi,EmptyResponseBodyError:()=>Ui,InvalidArgumentError:()=>Ji,InvalidPromptError:()=>Vi,InvalidResponseDataError:()=>Gi,JSONParseError:()=>Yi,LoadAPIKeyError:()=>Zi,LoadSettingError:()=>ta,NoContentGeneratedError:()=>na,NoSuchModelError:()=>sa,TooManyEmbeddingValuesForCallError:()=>aa,TypeValidationError:()=>ca,UnsupportedFunctionalityError:()=>pa,getErrorMessage:()=>Xt,isJSONArray:()=>ga,isJSONObject:()=>ma,isJSONValue:()=>Fe});Bn.exports=$i(en);var tn="vercel.ai.error",Di=Symbol.for(tn),rn,Li=class nn extends Error{constructor({name:e,message:t,cause:n}){super(t),this[rn]=true,this.name=e,this.cause=n;}static isInstance(e){return nn.hasMarker(e,tn)}static hasMarker(e,t){let n=Symbol.for(t);return e!=null&&typeof e=="object"&&n in e&&typeof e[n]=="boolean"&&e[n]===true}};rn=Di;var D=Li,on="AI_APICallError",sn=`vercel.ai.error.${on}`,Hi=Symbol.for(sn),an,qi=class extends D{constructor({message:r,url:e,requestBodyValues:t,statusCode:n,responseHeaders:o,responseBody:s,cause:i,isRetryable:a=n!=null&&(n===408||n===409||n===429||n>=500),data:l}){super({name:on,message:r,cause:i}),this[an]=true,this.url=e,this.requestBodyValues=t,this.statusCode=n,this.responseHeaders=o,this.responseBody=s,this.isRetryable=a,this.data=l;}static isInstance(r){return D.hasMarker(r,sn)}};an=Hi;var ln="AI_EmptyResponseBodyError",un=`vercel.ai.error.${ln}`,Fi=Symbol.for(un),cn,Ui=class extends D{constructor({message:r="Empty response body"}={}){super({name:ln,message:r}),this[cn]=true;}static isInstance(r){return D.hasMarker(r,un)}};cn=Fi;function Xt(r){return r==null?"unknown error":typeof r=="string"?r:r instanceof Error?r.message:JSON.stringify(r)}var dn="AI_InvalidArgumentError",pn=`vercel.ai.error.${dn}`,Bi=Symbol.for(pn),gn,Ji=class extends D{constructor({message:r,cause:e,argument:t}){super({name:dn,message:r,cause:e}),this[gn]=true,this.argument=t;}static isInstance(r){return D.hasMarker(r,pn)}};gn=Bi;var mn="AI_InvalidPromptError",fn=`vercel.ai.error.${mn}`,Wi=Symbol.for(fn),hn,Vi=class extends D{constructor({prompt:r,message:e,cause:t}){super({name:mn,message:`Invalid prompt: ${e}`,cause:t}),this[hn]=true,this.prompt=r;}static isInstance(r){return D.hasMarker(r,fn)}};hn=Wi;var yn="AI_InvalidResponseDataError",vn=`vercel.ai.error.${yn}`,Ki=Symbol.for(vn),wn,Gi=class extends D{constructor({data:r,message:e=`Invalid response data: ${JSON.stringify(r)}.`}){super({name:yn,message:e}),this[wn]=true,this.data=r;}static isInstance(r){return D.hasMarker(r,vn)}};wn=Ki;var bn="AI_JSONParseError",_n=`vercel.ai.error.${bn}`,Xi=Symbol.for(_n),xn,Yi=class extends D{constructor({text:r,cause:e}){super({name:bn,message:`JSON parsing failed: Text: ${r}.
17
+ Error message: ${Xt(e)}`,cause:e}),this[xn]=true,this.text=r;}static isInstance(r){return D.hasMarker(r,_n)}};xn=Xi;var kn="AI_LoadAPIKeyError",Rn=`vercel.ai.error.${kn}`,Qi=Symbol.for(Rn),Cn,Zi=class extends D{constructor({message:r}){super({name:kn,message:r}),this[Cn]=true;}static isInstance(r){return D.hasMarker(r,Rn)}};Cn=Qi;var Tn="AI_LoadSettingError",Pn=`vercel.ai.error.${Tn}`,ea=Symbol.for(Pn),En,ta=class extends D{constructor({message:r}){super({name:Tn,message:r}),this[En]=true;}static isInstance(r){return D.hasMarker(r,Pn)}};En=ea;var An="AI_NoContentGeneratedError",Sn=`vercel.ai.error.${An}`,ra=Symbol.for(Sn),In,na=class extends D{constructor({message:r="No content generated."}={}){super({name:An,message:r}),this[In]=true;}static isInstance(r){return D.hasMarker(r,Sn)}};In=ra;var On="AI_NoSuchModelError",zn=`vercel.ai.error.${On}`,oa=Symbol.for(zn),Mn,sa=class extends D{constructor({errorName:r=On,modelId:e,modelType:t,message:n=`No such ${t}: ${e}`}){super({name:r,message:n}),this[Mn]=true,this.modelId=e,this.modelType=t;}static isInstance(r){return D.hasMarker(r,zn)}};Mn=oa;var jn="AI_TooManyEmbeddingValuesForCallError",Nn=`vercel.ai.error.${jn}`,ia=Symbol.for(Nn),$n,aa=class extends D{constructor(r){super({name:jn,message:`Too many values for a single embedding call. The ${r.provider} model "${r.modelId}" can only embed up to ${r.maxEmbeddingsPerCall} values per call, but ${r.values.length} values were provided.`}),this[$n]=true,this.provider=r.provider,this.modelId=r.modelId,this.maxEmbeddingsPerCall=r.maxEmbeddingsPerCall,this.values=r.values;}static isInstance(r){return D.hasMarker(r,Nn)}};$n=ia;var Dn="AI_TypeValidationError",Ln=`vercel.ai.error.${Dn}`,la=Symbol.for(Ln),Hn,ua=class Kt extends D{constructor({value:e,cause:t}){super({name:Dn,message:`Type validation failed: Value: ${JSON.stringify(e)}.
18
+ Error message: ${Xt(t)}`,cause:t}),this[Hn]=true,this.value=e;}static isInstance(e){return D.hasMarker(e,Ln)}static wrap({value:e,cause:t}){return Kt.isInstance(t)&&t.value===e?t:new Kt({value:e,cause:t})}};Hn=la;var ca=ua,qn="AI_UnsupportedFunctionalityError",Fn=`vercel.ai.error.${qn}`,da=Symbol.for(Fn),Un,pa=class extends D{constructor({functionality:r,message:e=`'${r}' functionality not supported.`}){super({name:qn,message:e}),this[Un]=true,this.functionality=r;}static isInstance(r){return D.hasMarker(r,Fn)}};Un=da;function Fe(r){return r===null||typeof r=="string"||typeof r=="number"||typeof r=="boolean"?true:Array.isArray(r)?r.every(Fe):typeof r=="object"?Object.entries(r).every(([e,t])=>typeof e=="string"&&Fe(t)):false}function ga(r){return Array.isArray(r)&&r.every(Fe)}function ma(r){return r!=null&&typeof r=="object"&&Object.entries(r).every(([e,t])=>typeof e=="string"&&Fe(t))}});var Wn=be((pm,Jn)=>{v();var fa="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",ha=(r,e=21)=>(t=e)=>{let n="",o=t|0;for(;o--;)n+=r[Math.random()*r.length|0];return n},ya=(r=21)=>{let e="",t=r|0;for(;t--;)e+=fa[Math.random()*64|0];return e};Jn.exports={nanoid:ya,customAlphabet:ha};});var Yn=be((mm,Ie)=>{v();var va=typeof Buffer<"u",Vn=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,Kn=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;function Gn(r,e,t){t==null&&e!==null&&typeof e=="object"&&(t=e,e=void 0),va&&Buffer.isBuffer(r)&&(r=r.toString()),r&&r.charCodeAt(0)===65279&&(r=r.slice(1));let n=JSON.parse(r,e);if(n===null||typeof n!="object")return n;let o=t&&t.protoAction||"error",s=t&&t.constructorAction||"error";if(o==="ignore"&&s==="ignore")return n;if(o!=="ignore"&&s!=="ignore"){if(Vn.test(r)===false&&Kn.test(r)===false)return n}else if(o!=="ignore"&&s==="ignore"){if(Vn.test(r)===false)return n}else if(Kn.test(r)===false)return n;return Xn(n,{protoAction:o,constructorAction:s,safe:t&&t.safe})}function Xn(r,{protoAction:e="error",constructorAction:t="error",safe:n}={}){let o=[r];for(;o.length;){let s=o;o=[];for(let i of s){if(e!=="ignore"&&Object.prototype.hasOwnProperty.call(i,"__proto__")){if(n===true)return null;if(e==="error")throw new SyntaxError("Object contains forbidden prototype property");delete i.__proto__;}if(t!=="ignore"&&Object.prototype.hasOwnProperty.call(i,"constructor")&&Object.prototype.hasOwnProperty.call(i.constructor,"prototype")){if(n===true)return null;if(t==="error")throw new SyntaxError("Object contains forbidden prototype property");delete i.constructor;}for(let a in i){let l=i[a];l&&typeof l=="object"&&o.push(l);}}}return r}function Yt(r,e,t){let n=Error.stackTraceLimit;Error.stackTraceLimit=0;try{return Gn(r,e,t)}finally{Error.stackTraceLimit=n;}}function wa(r,e){let t=Error.stackTraceLimit;Error.stackTraceLimit=0;try{return Gn(r,e,{safe:!0})}catch{return null}finally{Error.stackTraceLimit=t;}}Ie.exports=Yt;Ie.exports.default=Yt;Ie.exports.parse=Yt;Ie.exports.safeParse=wa;Ie.exports.scan=Xn;});var V=be((hm,lo)=>{v();var ba=Object.create,gt=Object.defineProperty,_a=Object.getOwnPropertyDescriptor,xa=Object.getOwnPropertyNames,ka=Object.getPrototypeOf,Ra=Object.prototype.hasOwnProperty,Ca=(r,e)=>{for(var t in e)gt(r,t,{get:e[t],enumerable:true});},Qn=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of xa(e))!Ra.call(r,o)&&o!==t&&gt(r,o,{get:()=>e[o],enumerable:!(n=_a(e,o))||n.enumerable});return r},Ta=(r,e,t)=>(t=r!=null?ba(ka(r)):{},Qn(!r||!r.__esModule?gt(t,"default",{value:r,enumerable:true}):t,r)),Pa=r=>Qn(gt({},"__esModule",{value:true}),r),Zn={};Ca(Zn,{asValidator:()=>oo,combineHeaders:()=>Ea,convertAsyncIteratorToReadableStream:()=>Aa,convertBase64ToUint8Array:()=>rl,convertUint8ArrayToBase64:()=>nl,createBinaryResponseHandler:()=>Qa,createEventSourceParserStream:()=>eo,createEventSourceResponseHandler:()=>Ga,createIdGenerator:()=>to,createJsonErrorResponseHandler:()=>Ka,createJsonResponseHandler:()=>Ya,createJsonStreamResponseHandler:()=>Xa,createStatusCodeErrorResponseHandler:()=>Za,delay:()=>Sa,extractResponseHeaders:()=>me,generateId:()=>Ma,getErrorMessage:()=>ja,getFromApi:()=>$a,isAbortError:()=>Te,isParsableJson:()=>qa,isValidator:()=>no,loadApiKey:()=>Da,loadOptionalSetting:()=>La,loadSetting:()=>Ha,parseJSON:()=>ao,parseProviderOptions:()=>Ua,postFormDataToApi:()=>Wa,postJsonToApi:()=>Ja,postToApi:()=>tr,removeUndefinedEntries:()=>Zt,resolve:()=>Va,safeParseJSON:()=>ft,safeValidateTypes:()=>mt,validateTypes:()=>io,validator:()=>ro,validatorSymbol:()=>pt,withoutTrailingSlash:()=>ol,zodValidator:()=>so});lo.exports=Pa(Zn);function Ea(...r){return r.reduce((e,t)=>({...e,...t??{}}),{})}function Aa(r){return new ReadableStream({async pull(e){try{let{value:t,done:n}=await r.next();n?e.close():e.enqueue(t);}catch(t){e.error(t);}},cancel(){}})}async function Sa(r){return r==null?Promise.resolve():new Promise(e=>setTimeout(e,r))}function eo(){let r="",e,t=[],n,o;function s(l,u){if(l===""){i(u);return}if(l.startsWith(":"))return;let c=l.indexOf(":");if(c===-1){a(l,"");return}let d=l.slice(0,c),p=c+1,m=p<l.length&&l[p]===" "?l.slice(p+1):l.slice(p);a(d,m);}function i(l){t.length>0&&(l.enqueue({event:e,data:t.join(`
19
+ `),id:n,retry:o}),t=[],e=void 0,o=void 0);}function a(l,u){switch(l){case "event":e=u;break;case "data":t.push(u);break;case "id":n=u;break;case "retry":let c=parseInt(u,10);isNaN(c)||(o=c);break}}return new TransformStream({transform(l,u){let{lines:c,incompleteLine:d}=Ia(r,l);r=d;for(let p=0;p<c.length;p++)s(c[p],u);},flush(l){s(r,l),i(l);}})}function Ia(r,e){let t=[],n=r;for(let o=0;o<e.length;){let s=e[o++];s===`
20
20
  `?(t.push(n),n=""):s==="\r"?(t.push(n),n="",e[o]===`
21
- `&&o++):n+=s;}return {lines:t,incompleteLine:n}}function ge(r){let e={};return r.headers.forEach((t,n)=>{e[n]=t;}),e}var Ea=H(),Aa=Bn(),Zn=({prefix:r,size:e=16,alphabet:t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:n="-"}={})=>{let o=(0, Aa.customAlphabet)(t,e);if(r==null)return o;if(t.includes(n))throw new Ea.InvalidArgumentError({argument:"separator",message:`The separator "${n}" must not be part of the alphabet "${t}".`});return s=>`${r}${n}${o(s)}`},Sa=Zn();function Ia(r){return r==null?"unknown error":typeof r=="string"?r:r instanceof Error?r.message:JSON.stringify(r)}var Fe=H();function Yt(r){return Object.fromEntries(Object.entries(r).filter(([e,t])=>t!=null))}function Te(r){return r instanceof Error&&(r.name==="AbortError"||r.name==="TimeoutError")}var Oa=()=>globalThis.fetch,za=async({url:r,headers:e={},successfulResponseHandler:t,failedResponseHandler:n,abortSignal:o,fetch:s=Oa()})=>{try{let i=await s(r,{method:"GET",headers:Yt(e),signal:o}),a=ge(i);if(!i.ok){let l;try{l=await n({response:i,url:r,requestBodyValues:{}});}catch(u){throw Te(u)||Fe.APICallError.isInstance(u)?u:new Fe.APICallError({message:"Failed to process error response",cause:u,statusCode:i.status,url:r,responseHeaders:a,requestBodyValues:{}})}throw l.value}try{return await t({response:i,url:r,requestBodyValues:{}})}catch(l){throw l instanceof Error&&(Te(l)||Fe.APICallError.isInstance(l))?l:new Fe.APICallError({message:"Failed to process successful response",cause:l,statusCode:i.status,url:r,responseHeaders:a,requestBodyValues:{}})}}catch(i){if(Te(i))throw i;if(i instanceof TypeError&&i.message==="fetch failed"){let a=i.cause;if(a!=null)throw new Fe.APICallError({message:`Cannot connect to API: ${a.message}`,cause:a,url:r,isRetryable:true,requestBodyValues:{}})}throw i}},lt=H();function Ma({apiKey:r,environmentVariableName:e,apiKeyParameterName:t="apiKey",description:n}){if(typeof r=="string")return r;if(r!=null)throw new lt.LoadAPIKeyError({message:`${n} API key must be a string.`});if(typeof process>"u")throw new lt.LoadAPIKeyError({message:`${n} API key is missing. Pass it using the '${t}' parameter. Environment variables is not supported in this environment.`});if(r=process.env[e],r==null)throw new lt.LoadAPIKeyError({message:`${n} API key is missing. Pass it using the '${t}' parameter or the ${e} environment variable.`});if(typeof r!="string")throw new lt.LoadAPIKeyError({message:`${n} API key must be a string. The value of the ${e} environment variable is not a string.`});return r}function ja({settingValue:r,environmentVariableName:e}){if(typeof r=="string")return r;if(!(r!=null||typeof process>"u")&&(r=process.env[e],!(r==null||typeof r!="string")))return r}var ut=H();function Na({settingValue:r,environmentVariableName:e,settingName:t,description:n}){if(typeof r=="string")return r;if(r!=null)throw new ut.LoadSettingError({message:`${n} setting must be a string.`});if(typeof process>"u")throw new ut.LoadSettingError({message:`${n} setting is missing. Pass it using the '${t}' parameter. Environment variables is not supported in this environment.`});if(r=process.env[e],r==null)throw new ut.LoadSettingError({message:`${n} setting is missing. Pass it using the '${t}' parameter or the ${e} environment variable.`});if(typeof r!="string")throw new ut.LoadSettingError({message:`${n} setting must be a string. The value of the ${e} environment variable is not a string.`});return r}var Be=H(),Qt=xa(Gn()),Xt=H(),ct=Symbol.for("vercel.ai.validator");function eo(r){return {[ct]:true,validate:r}}function to(r){return typeof r=="object"&&r!==null&&ct in r&&r[ct]===true&&"validate"in r}function ro(r){return to(r)?r:no(r)}function no(r){return eo(e=>{let t=r.safeParse(e);return t.success?{success:true,value:t.data}:{success:false,error:t.error}})}function oo({value:r,schema:e}){let t=pt({value:r,schema:e});if(!t.success)throw Xt.TypeValidationError.wrap({value:r,cause:t.error});return t.value}function pt({value:r,schema:e}){let t=ro(e);try{if(t.validate==null)return {success:!0,value:r};let n=t.validate(r);return n.success?n:{success:!1,error:Xt.TypeValidationError.wrap({value:r,cause:n.error})}}catch(n){return {success:false,error:Xt.TypeValidationError.wrap({value:r,cause:n})}}}function so({text:r,schema:e}){try{let t=Qt.default.parse(r);return e==null?t:oo({value:t,schema:e})}catch(t){throw Be.JSONParseError.isInstance(t)||Be.TypeValidationError.isInstance(t)?t:new Be.JSONParseError({text:r,cause:t})}}function gt({text:r,schema:e}){try{let t=Qt.default.parse(r);if(e==null)return {success:!0,value:t,rawValue:t};let n=pt({value:t,schema:e});return n.success?{...n,rawValue:t}:n}catch(t){return {success:false,error:Be.JSONParseError.isInstance(t)?t:new Be.JSONParseError({text:r,cause:t})}}}function $a(r){try{return Qt.default.parse(r),!0}catch{return false}}var Da=H();function La({provider:r,providerOptions:e,schema:t}){if(e?.[r]==null)return;let n=pt({value:e[r],schema:t});if(!n.success)throw new Da.InvalidArgumentError({argument:"providerOptions",message:`invalid ${r} provider options`,cause:n.error});return n.value}var Ue=H(),Ha=()=>globalThis.fetch,qa=async({url:r,headers:e,body:t,failedResponseHandler:n,successfulResponseHandler:o,abortSignal:s,fetch:i})=>Zt({url:r,headers:{"Content-Type":"application/json",...e},body:{content:JSON.stringify(t),values:t},failedResponseHandler:n,successfulResponseHandler:o,abortSignal:s,fetch:i}),Fa=async({url:r,headers:e,formData:t,failedResponseHandler:n,successfulResponseHandler:o,abortSignal:s,fetch:i})=>Zt({url:r,headers:e,body:{content:t,values:Object.fromEntries(t.entries())},failedResponseHandler:n,successfulResponseHandler:o,abortSignal:s,fetch:i}),Zt=async({url:r,headers:e={},body:t,successfulResponseHandler:n,failedResponseHandler:o,abortSignal:s,fetch:i=Ha()})=>{try{let a=await i(r,{method:"POST",headers:Yt(e),body:t.content,signal:s}),l=ge(a);if(!a.ok){let u;try{u=await o({response:a,url:r,requestBodyValues:t.values});}catch(c){throw Te(c)||Ue.APICallError.isInstance(c)?c:new Ue.APICallError({message:"Failed to process error response",cause:c,statusCode:a.status,url:r,responseHeaders:l,requestBodyValues:t.values})}throw u.value}try{return await n({response:a,url:r,requestBodyValues:t.values})}catch(u){throw u instanceof Error&&(Te(u)||Ue.APICallError.isInstance(u))?u:new Ue.APICallError({message:"Failed to process successful response",cause:u,statusCode:a.status,url:r,responseHeaders:l,requestBodyValues:t.values})}}catch(a){if(Te(a))throw a;if(a instanceof TypeError&&a.message==="fetch failed"){let l=a.cause;if(l!=null)throw new Ue.APICallError({message:`Cannot connect to API: ${l.message}`,cause:l,url:r,requestBodyValues:t.values,isRetryable:true})}throw a}};async function Ua(r){return typeof r=="function"&&(r=r()),Promise.resolve(r)}var pe=H(),Ba=({errorSchema:r,errorToMessage:e,isRetryable:t})=>async({response:n,url:o,requestBodyValues:s})=>{let i=await n.text(),a=ge(n);if(i.trim()==="")return {responseHeaders:a,value:new pe.APICallError({message:n.statusText,url:o,requestBodyValues:s,statusCode:n.status,responseHeaders:a,responseBody:i,isRetryable:t?.(n)})};try{let l=so({text:i,schema:r});return {responseHeaders:a,value:new pe.APICallError({message:e(l),url:o,requestBodyValues:s,statusCode:n.status,responseHeaders:a,responseBody:i,data:l,isRetryable:t?.(n,l)})}}catch{return {responseHeaders:a,value:new pe.APICallError({message:n.statusText,url:o,requestBodyValues:s,statusCode:n.status,responseHeaders:a,responseBody:i,isRetryable:t?.(n)})}}},Ja=r=>async({response:e})=>{let t=ge(e);if(e.body==null)throw new pe.EmptyResponseBodyError({});return {responseHeaders:t,value:e.body.pipeThrough(new TextDecoderStream).pipeThrough(Qn()).pipeThrough(new TransformStream({transform({data:n},o){n!=="[DONE]"&&o.enqueue(gt({text:n,schema:r}));}}))}},Wa=r=>async({response:e})=>{let t=ge(e);if(e.body==null)throw new pe.EmptyResponseBodyError({});let n="";return {responseHeaders:t,value:e.body.pipeThrough(new TextDecoderStream).pipeThrough(new TransformStream({transform(o,s){o.endsWith(`
22
- `)?(s.enqueue(gt({text:n+o,schema:r})),n=""):n+=o;}}))}},Va=r=>async({response:e,url:t,requestBodyValues:n})=>{let o=await e.text(),s=gt({text:o,schema:r}),i=ge(e);if(!s.success)throw new pe.APICallError({message:"Invalid JSON response",cause:s.error,statusCode:e.status,responseHeaders:i,responseBody:o,url:t,requestBodyValues:n});return {responseHeaders:i,value:s.value,rawValue:s.rawValue}},Ka=()=>async({response:r,url:e,requestBodyValues:t})=>{let n=ge(r);if(!r.body)throw new pe.APICallError({message:"Response body is empty",url:e,requestBodyValues:t,statusCode:r.status,responseHeaders:n,responseBody:void 0});try{let o=await r.arrayBuffer();return {responseHeaders:n,value:new Uint8Array(o)}}catch(o){throw new pe.APICallError({message:"Failed to read response as array buffer",url:e,requestBodyValues:t,statusCode:r.status,responseHeaders:n,responseBody:void 0,cause:o})}},Ga=()=>async({response:r,url:e,requestBodyValues:t})=>{let n=ge(r),o=await r.text();return {responseHeaders:n,value:new pe.APICallError({message:r.statusText,url:e,requestBodyValues:t,statusCode:r.status,responseHeaders:n,responseBody:o})}},{btoa:Xa,atob:Ya}=globalThis;function Qa(r){let e=r.replace(/-/g,"+").replace(/_/g,"/"),t=Ya(e);return Uint8Array.from(t,n=>n.codePointAt(0))}function Za(r){let e="";for(let t=0;t<r.length;t++)e+=String.fromCodePoint(r[t]);return Xa(e)}function el(r){return r?.replace(/\/$/,"")}});var ar=be((dm,wo)=>{y();var sr=Object.defineProperty,tl=Object.getOwnPropertyDescriptor,rl=Object.getOwnPropertyNames,nl=Object.prototype.hasOwnProperty,ol=(r,e)=>{for(var t in e)sr(r,t,{get:e[t],enumerable:true});},sl=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of rl(e))!nl.call(r,o)&&o!==t&&sr(r,o,{get:()=>e[o],enumerable:!(n=tl(e,o))||n.enumerable});return r},il=r=>sl(sr({},"__esModule",{value:true}),r),fo={};ol(fo,{createOpenAI:()=>vo,openai:()=>cu});wo.exports=il(fo);var ao=V(),Je=H(),Q=V(),A=U("zod"),er=H(),al=V();function ll({prompt:r,useLegacyFunctionCalling:e=false,systemMessageMode:t="system"}){let n=[],o=[];for(let{role:s,content:i}of r)switch(s){case "system":{switch(t){case "system":{n.push({role:"system",content:i});break}case "developer":{n.push({role:"developer",content:i});break}case "remove":{o.push({type:"other",message:"system messages are removed for this model"});break}default:{let a=t;throw new Error(`Unsupported system message mode: ${a}`)}}break}case "user":{if(i.length===1&&i[0].type==="text"){n.push({role:"user",content:i[0].text});break}n.push({role:"user",content:i.map((a,l)=>{var u,c,d,p;switch(a.type){case "text":return {type:"text",text:a.text};case "image":return {type:"image_url",image_url:{url:a.image instanceof URL?a.image.toString():`data:${(u=a.mimeType)!=null?u:"image/jpeg"};base64,${(0, al.convertUint8ArrayToBase64)(a.image)}`,detail:(d=(c=a.providerMetadata)==null?void 0:c.openai)==null?void 0:d.imageDetail}};case "file":{if(a.data instanceof URL)throw new er.UnsupportedFunctionalityError({functionality:"'File content parts with URL data' functionality not supported."});switch(a.mimeType){case "audio/wav":return {type:"input_audio",input_audio:{data:a.data,format:"wav"}};case "audio/mp3":case "audio/mpeg":return {type:"input_audio",input_audio:{data:a.data,format:"mp3"}};case "application/pdf":return {type:"file",file:{filename:(p=a.filename)!=null?p:`part-${l}.pdf`,file_data:`data:application/pdf;base64,${a.data}`}};default:throw new er.UnsupportedFunctionalityError({functionality:`File content part type ${a.mimeType} in user messages`})}}}})});break}case "assistant":{let a="",l=[];for(let u of i)switch(u.type){case "text":{a+=u.text;break}case "tool-call":{l.push({id:u.toolCallId,type:"function",function:{name:u.toolName,arguments:JSON.stringify(u.args)}});break}}if(e){if(l.length>1)throw new er.UnsupportedFunctionalityError({functionality:"useLegacyFunctionCalling with multiple tool calls in one message"});n.push({role:"assistant",content:a,function_call:l.length>0?l[0].function:void 0});}else n.push({role:"assistant",content:a,tool_calls:l.length>0?l:void 0});break}case "tool":{for(let a of i)e?n.push({role:"function",name:a.toolName,content:JSON.stringify(a.result)}):n.push({role:"tool",tool_call_id:a.toolCallId,content:JSON.stringify(a.result)});break}default:{let a=s;throw new Error(`Unsupported role: ${a}`)}}return {messages:n,warnings:o}}function lo(r){var e,t;return (t=(e=r?.content)==null?void 0:e.map(({token:n,logprob:o,top_logprobs:s})=>({token:n,logprob:o,topLogprobs:s?s.map(({token:i,logprob:a})=>({token:i,logprob:a})):[]})))!=null?t:void 0}function vt(r){switch(r){case "stop":return "stop";case "length":return "length";case "content_filter":return "content-filter";case "function_call":case "tool_calls":return "tool-calls";default:return "unknown"}}var ve=U("zod"),ul=V(),ir=ve.z.object({error:ve.z.object({message:ve.z.string(),type:ve.z.string().nullish(),param:ve.z.any().nullish(),code:ve.z.union([ve.z.string(),ve.z.number()]).nullish()})}),ae=(0, ul.createJsonErrorResponseHandler)({errorSchema:ir,errorToMessage:r=>r.error.message});function wt({id:r,model:e,created:t}){return {id:r??void 0,modelId:e??void 0,timestamp:t!=null?new Date(t*1e3):void 0}}var uo=H();function cl({mode:r,useLegacyFunctionCalling:e=false,structuredOutputs:t}){var n;let o=(n=r.tools)!=null&&n.length?r.tools:void 0,s=[];if(o==null)return {tools:void 0,tool_choice:void 0,toolWarnings:s};let i=r.toolChoice;if(e){let u=[];for(let d of o)d.type==="provider-defined"?s.push({type:"unsupported-tool",tool:d}):u.push({name:d.name,description:d.description,parameters:d.parameters});if(i==null)return {functions:u,function_call:void 0,toolWarnings:s};switch(i.type){case "auto":case "none":case void 0:return {functions:u,function_call:void 0,toolWarnings:s};case "required":throw new uo.UnsupportedFunctionalityError({functionality:"useLegacyFunctionCalling and toolChoice: required"});default:return {functions:u,function_call:{name:i.toolName},toolWarnings:s}}}let a=[];for(let u of o)u.type==="provider-defined"?s.push({type:"unsupported-tool",tool:u}):a.push({type:"function",function:{name:u.name,description:u.description,parameters:u.parameters,strict:t?true:void 0}});if(i==null)return {tools:a,tool_choice:void 0,toolWarnings:s};let l=i.type;switch(l){case "auto":case "none":case "required":return {tools:a,tool_choice:l,toolWarnings:s};case "tool":return {tools:a,tool_choice:{type:"function",function:{name:i.toolName}},toolWarnings:s};default:{let u=l;throw new uo.UnsupportedFunctionalityError({functionality:`Unsupported tool choice type: ${u}`})}}}var dl=class{constructor(r,e,t){this.specificationVersion="v1",this.modelId=r,this.settings=e,this.config=t;}get supportsStructuredOutputs(){var r;return (r=this.settings.structuredOutputs)!=null?r:or(this.modelId)}get defaultObjectGenerationMode(){return ml(this.modelId)?"tool":this.supportsStructuredOutputs?"json":"tool"}get provider(){return this.config.provider}get supportsImageUrls(){return !this.settings.downloadImages}getArgs({mode:r,prompt:e,maxTokens:t,temperature:n,topP:o,topK:s,frequencyPenalty:i,presencePenalty:a,stopSequences:l,responseFormat:u,seed:c,providerMetadata:d}){var p,m,h,f,g,v,_,T;let w=r.type,x=[];s!=null&&x.push({type:"unsupported-setting",setting:"topK"}),u?.type==="json"&&u.schema!=null&&!this.supportsStructuredOutputs&&x.push({type:"unsupported-setting",setting:"responseFormat",details:"JSON response format schema is only supported with structuredOutputs"});let S=this.settings.useLegacyFunctionCalling;if(S&&this.settings.parallelToolCalls===true)throw new Je.UnsupportedFunctionalityError({functionality:"useLegacyFunctionCalling with parallelToolCalls"});if(S&&this.supportsStructuredOutputs)throw new Je.UnsupportedFunctionalityError({functionality:"structuredOutputs with useLegacyFunctionCalling"});let{messages:z,warnings:C}=ll({prompt:e,useLegacyFunctionCalling:S,systemMessageMode:fl(this.modelId)});x.push(...C);let k={model:this.modelId,logit_bias:this.settings.logitBias,logprobs:this.settings.logprobs===true||typeof this.settings.logprobs=="number"?true:void 0,top_logprobs:typeof this.settings.logprobs=="number"?this.settings.logprobs:typeof this.settings.logprobs=="boolean"&&this.settings.logprobs?0:void 0,user:this.settings.user,parallel_tool_calls:this.settings.parallelToolCalls,max_tokens:t,temperature:n,top_p:o,frequency_penalty:i,presence_penalty:a,response_format:u?.type==="json"?this.supportsStructuredOutputs&&u.schema!=null?{type:"json_schema",json_schema:{schema:u.schema,strict:true,name:(p=u.name)!=null?p:"response",description:u.description}}:{type:"json_object"}:void 0,stop:l,seed:c,max_completion_tokens:(m=d?.openai)==null?void 0:m.maxCompletionTokens,store:(h=d?.openai)==null?void 0:h.store,metadata:(f=d?.openai)==null?void 0:f.metadata,prediction:(g=d?.openai)==null?void 0:g.prediction,reasoning_effort:(_=(v=d?.openai)==null?void 0:v.reasoningEffort)!=null?_:this.settings.reasoningEffort,messages:z};switch(or(this.modelId)?(k.temperature!=null&&(k.temperature=void 0,x.push({type:"unsupported-setting",setting:"temperature",details:"temperature is not supported for reasoning models"})),k.top_p!=null&&(k.top_p=void 0,x.push({type:"unsupported-setting",setting:"topP",details:"topP is not supported for reasoning models"})),k.frequency_penalty!=null&&(k.frequency_penalty=void 0,x.push({type:"unsupported-setting",setting:"frequencyPenalty",details:"frequencyPenalty is not supported for reasoning models"})),k.presence_penalty!=null&&(k.presence_penalty=void 0,x.push({type:"unsupported-setting",setting:"presencePenalty",details:"presencePenalty is not supported for reasoning models"})),k.logit_bias!=null&&(k.logit_bias=void 0,x.push({type:"other",message:"logitBias is not supported for reasoning models"})),k.logprobs!=null&&(k.logprobs=void 0,x.push({type:"other",message:"logprobs is not supported for reasoning models"})),k.top_logprobs!=null&&(k.top_logprobs=void 0,x.push({type:"other",message:"topLogprobs is not supported for reasoning models"})),k.max_tokens!=null&&(k.max_completion_tokens==null&&(k.max_completion_tokens=k.max_tokens),k.max_tokens=void 0)):(this.modelId.startsWith("gpt-4o-search-preview")||this.modelId.startsWith("gpt-4o-mini-search-preview"))&&k.temperature!=null&&(k.temperature=void 0,x.push({type:"unsupported-setting",setting:"temperature",details:"temperature is not supported for the search preview models and has been removed."})),w){case "regular":{let{tools:O,tool_choice:I,functions:J,function_call:G,toolWarnings:L}=cl({mode:r,useLegacyFunctionCalling:S,structuredOutputs:this.supportsStructuredOutputs});return {args:{...k,tools:O,tool_choice:I,functions:J,function_call:G},warnings:[...x,...L]}}case "object-json":return {args:{...k,response_format:this.supportsStructuredOutputs&&r.schema!=null?{type:"json_schema",json_schema:{schema:r.schema,strict:true,name:(T=r.name)!=null?T:"response",description:r.description}}:{type:"json_object"}},warnings:x};case "object-tool":return {args:S?{...k,function_call:{name:r.tool.name},functions:[{name:r.tool.name,description:r.tool.description,parameters:r.tool.parameters}]}:{...k,tool_choice:{type:"function",function:{name:r.tool.name}},tools:[{type:"function",function:{name:r.tool.name,description:r.tool.description,parameters:r.tool.parameters,strict:this.supportsStructuredOutputs?true:void 0}}]},warnings:x};default:{let O=w;throw new Error(`Unsupported type: ${O}`)}}}async doGenerate(r){var e,t,n,o,s,i,a,l;let{args:u,warnings:c}=this.getArgs(r),{responseHeaders:d,value:p,rawValue:m}=await(0, Q.postJsonToApi)({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:(0, Q.combineHeaders)(this.config.headers(),r.headers),body:u,failedResponseHandler:ae,successfulResponseHandler:(0, Q.createJsonResponseHandler)(pl),abortSignal:r.abortSignal,fetch:this.config.fetch}),{messages:h,...f}=u,g=p.choices[0],v=(e=p.usage)==null?void 0:e.completion_tokens_details,_=(t=p.usage)==null?void 0:t.prompt_tokens_details,T={openai:{}};return v?.reasoning_tokens!=null&&(T.openai.reasoningTokens=v?.reasoning_tokens),v?.accepted_prediction_tokens!=null&&(T.openai.acceptedPredictionTokens=v?.accepted_prediction_tokens),v?.rejected_prediction_tokens!=null&&(T.openai.rejectedPredictionTokens=v?.rejected_prediction_tokens),_?.cached_tokens!=null&&(T.openai.cachedPromptTokens=_?.cached_tokens),{text:(n=g.message.content)!=null?n:void 0,toolCalls:this.settings.useLegacyFunctionCalling&&g.message.function_call?[{toolCallType:"function",toolCallId:(0, Q.generateId)(),toolName:g.message.function_call.name,args:g.message.function_call.arguments}]:(o=g.message.tool_calls)==null?void 0:o.map(w=>{var x;return {toolCallType:"function",toolCallId:(x=w.id)!=null?x:(0, Q.generateId)(),toolName:w.function.name,args:w.function.arguments}}),finishReason:vt(g.finish_reason),usage:{promptTokens:(i=(s=p.usage)==null?void 0:s.prompt_tokens)!=null?i:NaN,completionTokens:(l=(a=p.usage)==null?void 0:a.completion_tokens)!=null?l:NaN},rawCall:{rawPrompt:h,rawSettings:f},rawResponse:{headers:d,body:m},request:{body:JSON.stringify(u)},response:wt(p),warnings:c,logprobs:lo(g.logprobs),providerMetadata:T}}async doStream(r){if(this.settings.simulateStreaming){let f=await this.doGenerate(r);return {stream:new ReadableStream({start(v){if(v.enqueue({type:"response-metadata",...f.response}),f.text&&v.enqueue({type:"text-delta",textDelta:f.text}),f.toolCalls)for(let _ of f.toolCalls)v.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:_.toolCallId,toolName:_.toolName,argsTextDelta:_.args}),v.enqueue({type:"tool-call",..._});v.enqueue({type:"finish",finishReason:f.finishReason,usage:f.usage,logprobs:f.logprobs,providerMetadata:f.providerMetadata}),v.close();}}),rawCall:f.rawCall,rawResponse:f.rawResponse,warnings:f.warnings}}let{args:e,warnings:t}=this.getArgs(r),n={...e,stream:true,stream_options:this.config.compatibility==="strict"?{include_usage:true}:void 0},{responseHeaders:o,value:s}=await(0, Q.postJsonToApi)({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:(0, Q.combineHeaders)(this.config.headers(),r.headers),body:n,failedResponseHandler:ae,successfulResponseHandler:(0, Q.createEventSourceResponseHandler)(gl),abortSignal:r.abortSignal,fetch:this.config.fetch}),{messages:i,...a}=e,l=[],u="unknown",c={promptTokens:void 0,completionTokens:void 0},d,p=true,{useLegacyFunctionCalling:m}=this.settings,h={openai:{}};return {stream:s.pipeThrough(new TransformStream({transform(f,g){var v,_,T,w,x,S,z,C,k,O,I,J;if(!f.success){u="error",g.enqueue({type:"error",error:f.error});return}let G=f.value;if("error"in G){u="error",g.enqueue({type:"error",error:G.error});return}if(p&&(p=false,g.enqueue({type:"response-metadata",...wt(G)})),G.usage!=null){let{prompt_tokens:q,completion_tokens:X,prompt_tokens_details:W,completion_tokens_details:F}=G.usage;c={promptTokens:q??void 0,completionTokens:X??void 0},F?.reasoning_tokens!=null&&(h.openai.reasoningTokens=F?.reasoning_tokens),F?.accepted_prediction_tokens!=null&&(h.openai.acceptedPredictionTokens=F?.accepted_prediction_tokens),F?.rejected_prediction_tokens!=null&&(h.openai.rejectedPredictionTokens=F?.rejected_prediction_tokens),W?.cached_tokens!=null&&(h.openai.cachedPromptTokens=W?.cached_tokens);}let L=G.choices[0];if(L?.finish_reason!=null&&(u=vt(L.finish_reason)),L?.delta==null)return;let we=L.delta;we.content!=null&&g.enqueue({type:"text-delta",textDelta:we.content});let ee=lo(L?.logprobs);ee?.length&&(d===void 0&&(d=[]),d.push(...ee));let re=m&&we.function_call!=null?[{type:"function",id:(0, Q.generateId)(),function:we.function_call,index:0}]:we.tool_calls;if(re!=null)for(let q of re){let X=q.index;if(l[X]==null){if(q.type!=="function")throw new Je.InvalidResponseDataError({data:q,message:"Expected 'function' type."});if(q.id==null)throw new Je.InvalidResponseDataError({data:q,message:"Expected 'id' to be a string."});if(((v=q.function)==null?void 0:v.name)==null)throw new Je.InvalidResponseDataError({data:q,message:"Expected 'function.name' to be a string."});l[X]={id:q.id,type:"function",function:{name:q.function.name,arguments:(_=q.function.arguments)!=null?_:""},hasFinished:false};let F=l[X];((T=F.function)==null?void 0:T.name)!=null&&((w=F.function)==null?void 0:w.arguments)!=null&&(F.function.arguments.length>0&&g.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:F.id,toolName:F.function.name,argsTextDelta:F.function.arguments}),(0, Q.isParsableJson)(F.function.arguments)&&(g.enqueue({type:"tool-call",toolCallType:"function",toolCallId:(x=F.id)!=null?x:(0, Q.generateId)(),toolName:F.function.name,args:F.function.arguments}),F.hasFinished=true));continue}let W=l[X];W.hasFinished||(((S=q.function)==null?void 0:S.arguments)!=null&&(W.function.arguments+=(C=(z=q.function)==null?void 0:z.arguments)!=null?C:""),g.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:W.id,toolName:W.function.name,argsTextDelta:(k=q.function.arguments)!=null?k:""}),((O=W.function)==null?void 0:O.name)!=null&&((I=W.function)==null?void 0:I.arguments)!=null&&(0, Q.isParsableJson)(W.function.arguments)&&(g.enqueue({type:"tool-call",toolCallType:"function",toolCallId:(J=W.id)!=null?J:(0, Q.generateId)(),toolName:W.function.name,args:W.function.arguments}),W.hasFinished=true));}},flush(f){var g,v;f.enqueue({type:"finish",finishReason:u,logprobs:d,usage:{promptTokens:(g=c.promptTokens)!=null?g:NaN,completionTokens:(v=c.completionTokens)!=null?v:NaN},...h!=null?{providerMetadata:h}:{}});}})),rawCall:{rawPrompt:i,rawSettings:a},rawResponse:{headers:o},request:{body:JSON.stringify(n)},warnings:t}}},ho=A.z.object({prompt_tokens:A.z.number().nullish(),completion_tokens:A.z.number().nullish(),prompt_tokens_details:A.z.object({cached_tokens:A.z.number().nullish()}).nullish(),completion_tokens_details:A.z.object({reasoning_tokens:A.z.number().nullish(),accepted_prediction_tokens:A.z.number().nullish(),rejected_prediction_tokens:A.z.number().nullish()}).nullish()}).nullish(),pl=A.z.object({id:A.z.string().nullish(),created:A.z.number().nullish(),model:A.z.string().nullish(),choices:A.z.array(A.z.object({message:A.z.object({role:A.z.literal("assistant").nullish(),content:A.z.string().nullish(),function_call:A.z.object({arguments:A.z.string(),name:A.z.string()}).nullish(),tool_calls:A.z.array(A.z.object({id:A.z.string().nullish(),type:A.z.literal("function"),function:A.z.object({name:A.z.string(),arguments:A.z.string()})})).nullish()}),index:A.z.number(),logprobs:A.z.object({content:A.z.array(A.z.object({token:A.z.string(),logprob:A.z.number(),top_logprobs:A.z.array(A.z.object({token:A.z.string(),logprob:A.z.number()}))})).nullable()}).nullish(),finish_reason:A.z.string().nullish()})),usage:ho}),gl=A.z.union([A.z.object({id:A.z.string().nullish(),created:A.z.number().nullish(),model:A.z.string().nullish(),choices:A.z.array(A.z.object({delta:A.z.object({role:A.z.enum(["assistant"]).nullish(),content:A.z.string().nullish(),function_call:A.z.object({name:A.z.string().optional(),arguments:A.z.string().optional()}).nullish(),tool_calls:A.z.array(A.z.object({index:A.z.number(),id:A.z.string().nullish(),type:A.z.literal("function").nullish(),function:A.z.object({name:A.z.string().nullish(),arguments:A.z.string().nullish()})})).nullish()}).nullish(),logprobs:A.z.object({content:A.z.array(A.z.object({token:A.z.string(),logprob:A.z.number(),top_logprobs:A.z.array(A.z.object({token:A.z.string(),logprob:A.z.number()}))})).nullable()}).nullish(),finish_reason:A.z.string().nullish(),index:A.z.number()})),usage:ho}),ir]);function or(r){return r.startsWith("o")||r.startsWith("gpt-5")}function ml(r){return r.startsWith("gpt-4o-audio-preview")}function fl(r){var e,t;return or(r)?(t=(e=hl[r])==null?void 0:e.systemMessageMode)!=null?t:"developer":"system"}var hl={"o1-mini":{systemMessageMode:"remove"},"o1-mini-2024-09-12":{systemMessageMode:"remove"},"o1-preview":{systemMessageMode:"remove"},"o1-preview-2024-09-12":{systemMessageMode:"remove"},o3:{systemMessageMode:"developer"},"o3-2025-04-16":{systemMessageMode:"developer"},"o3-mini":{systemMessageMode:"developer"},"o3-mini-2025-01-31":{systemMessageMode:"developer"},"o4-mini":{systemMessageMode:"developer"},"o4-mini-2025-04-16":{systemMessageMode:"developer"}},mt=H(),Ie=V(),M=U("zod"),ft=H();function yl({prompt:r,inputFormat:e,user:t="user",assistant:n="assistant"}){if(e==="prompt"&&r.length===1&&r[0].role==="user"&&r[0].content.length===1&&r[0].content[0].type==="text")return {prompt:r[0].content[0].text};let o="";r[0].role==="system"&&(o+=`${r[0].content}
21
+ `&&o++):n+=s;}return {lines:t,incompleteLine:n}}function me(r){let e={};return r.headers.forEach((t,n)=>{e[n]=t;}),e}var Oa=H(),za=Wn(),to=({prefix:r,size:e=16,alphabet:t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:n="-"}={})=>{let o=(0, za.customAlphabet)(t,e);if(r==null)return o;if(t.includes(n))throw new Oa.InvalidArgumentError({argument:"separator",message:`The separator "${n}" must not be part of the alphabet "${t}".`});return s=>`${r}${n}${o(s)}`},Ma=to();function ja(r){return r==null?"unknown error":typeof r=="string"?r:r instanceof Error?r.message:JSON.stringify(r)}var Ue=H();function Zt(r){return Object.fromEntries(Object.entries(r).filter(([e,t])=>t!=null))}function Te(r){return r instanceof Error&&(r.name==="AbortError"||r.name==="TimeoutError")}var Na=()=>globalThis.fetch,$a=async({url:r,headers:e={},successfulResponseHandler:t,failedResponseHandler:n,abortSignal:o,fetch:s=Na()})=>{try{let i=await s(r,{method:"GET",headers:Zt(e),signal:o}),a=me(i);if(!i.ok){let l;try{l=await n({response:i,url:r,requestBodyValues:{}});}catch(u){throw Te(u)||Ue.APICallError.isInstance(u)?u:new Ue.APICallError({message:"Failed to process error response",cause:u,statusCode:i.status,url:r,responseHeaders:a,requestBodyValues:{}})}throw l.value}try{return await t({response:i,url:r,requestBodyValues:{}})}catch(l){throw l instanceof Error&&(Te(l)||Ue.APICallError.isInstance(l))?l:new Ue.APICallError({message:"Failed to process successful response",cause:l,statusCode:i.status,url:r,responseHeaders:a,requestBodyValues:{}})}}catch(i){if(Te(i))throw i;if(i instanceof TypeError&&i.message==="fetch failed"){let a=i.cause;if(a!=null)throw new Ue.APICallError({message:`Cannot connect to API: ${a.message}`,cause:a,url:r,isRetryable:true,requestBodyValues:{}})}throw i}},ct=H();function Da({apiKey:r,environmentVariableName:e,apiKeyParameterName:t="apiKey",description:n}){if(typeof r=="string")return r;if(r!=null)throw new ct.LoadAPIKeyError({message:`${n} API key must be a string.`});if(typeof process>"u")throw new ct.LoadAPIKeyError({message:`${n} API key is missing. Pass it using the '${t}' parameter. Environment variables is not supported in this environment.`});if(r=process.env[e],r==null)throw new ct.LoadAPIKeyError({message:`${n} API key is missing. Pass it using the '${t}' parameter or the ${e} environment variable.`});if(typeof r!="string")throw new ct.LoadAPIKeyError({message:`${n} API key must be a string. The value of the ${e} environment variable is not a string.`});return r}function La({settingValue:r,environmentVariableName:e}){if(typeof r=="string")return r;if(!(r!=null||typeof process>"u")&&(r=process.env[e],!(r==null||typeof r!="string")))return r}var dt=H();function Ha({settingValue:r,environmentVariableName:e,settingName:t,description:n}){if(typeof r=="string")return r;if(r!=null)throw new dt.LoadSettingError({message:`${n} setting must be a string.`});if(typeof process>"u")throw new dt.LoadSettingError({message:`${n} setting is missing. Pass it using the '${t}' parameter. Environment variables is not supported in this environment.`});if(r=process.env[e],r==null)throw new dt.LoadSettingError({message:`${n} setting is missing. Pass it using the '${t}' parameter or the ${e} environment variable.`});if(typeof r!="string")throw new dt.LoadSettingError({message:`${n} setting must be a string. The value of the ${e} environment variable is not a string.`});return r}var Je=H(),er=Ta(Yn()),Qt=H(),pt=Symbol.for("vercel.ai.validator");function ro(r){return {[pt]:true,validate:r}}function no(r){return typeof r=="object"&&r!==null&&pt in r&&r[pt]===true&&"validate"in r}function oo(r){return no(r)?r:so(r)}function so(r){return ro(e=>{let t=r.safeParse(e);return t.success?{success:true,value:t.data}:{success:false,error:t.error}})}function io({value:r,schema:e}){let t=mt({value:r,schema:e});if(!t.success)throw Qt.TypeValidationError.wrap({value:r,cause:t.error});return t.value}function mt({value:r,schema:e}){let t=oo(e);try{if(t.validate==null)return {success:!0,value:r};let n=t.validate(r);return n.success?n:{success:!1,error:Qt.TypeValidationError.wrap({value:r,cause:n.error})}}catch(n){return {success:false,error:Qt.TypeValidationError.wrap({value:r,cause:n})}}}function ao({text:r,schema:e}){try{let t=er.default.parse(r);return e==null?t:io({value:t,schema:e})}catch(t){throw Je.JSONParseError.isInstance(t)||Je.TypeValidationError.isInstance(t)?t:new Je.JSONParseError({text:r,cause:t})}}function ft({text:r,schema:e}){try{let t=er.default.parse(r);if(e==null)return {success:!0,value:t,rawValue:t};let n=mt({value:t,schema:e});return n.success?{...n,rawValue:t}:n}catch(t){return {success:false,error:Je.JSONParseError.isInstance(t)?t:new Je.JSONParseError({text:r,cause:t})}}}function qa(r){try{return er.default.parse(r),!0}catch{return false}}var Fa=H();function Ua({provider:r,providerOptions:e,schema:t}){if(e?.[r]==null)return;let n=mt({value:e[r],schema:t});if(!n.success)throw new Fa.InvalidArgumentError({argument:"providerOptions",message:`invalid ${r} provider options`,cause:n.error});return n.value}var Be=H(),Ba=()=>globalThis.fetch,Ja=async({url:r,headers:e,body:t,failedResponseHandler:n,successfulResponseHandler:o,abortSignal:s,fetch:i})=>tr({url:r,headers:{"Content-Type":"application/json",...e},body:{content:JSON.stringify(t),values:t},failedResponseHandler:n,successfulResponseHandler:o,abortSignal:s,fetch:i}),Wa=async({url:r,headers:e,formData:t,failedResponseHandler:n,successfulResponseHandler:o,abortSignal:s,fetch:i})=>tr({url:r,headers:e,body:{content:t,values:Object.fromEntries(t.entries())},failedResponseHandler:n,successfulResponseHandler:o,abortSignal:s,fetch:i}),tr=async({url:r,headers:e={},body:t,successfulResponseHandler:n,failedResponseHandler:o,abortSignal:s,fetch:i=Ba()})=>{try{let a=await i(r,{method:"POST",headers:Zt(e),body:t.content,signal:s}),l=me(a);if(!a.ok){let u;try{u=await o({response:a,url:r,requestBodyValues:t.values});}catch(c){throw Te(c)||Be.APICallError.isInstance(c)?c:new Be.APICallError({message:"Failed to process error response",cause:c,statusCode:a.status,url:r,responseHeaders:l,requestBodyValues:t.values})}throw u.value}try{return await n({response:a,url:r,requestBodyValues:t.values})}catch(u){throw u instanceof Error&&(Te(u)||Be.APICallError.isInstance(u))?u:new Be.APICallError({message:"Failed to process successful response",cause:u,statusCode:a.status,url:r,responseHeaders:l,requestBodyValues:t.values})}}catch(a){if(Te(a))throw a;if(a instanceof TypeError&&a.message==="fetch failed"){let l=a.cause;if(l!=null)throw new Be.APICallError({message:`Cannot connect to API: ${l.message}`,cause:l,url:r,requestBodyValues:t.values,isRetryable:true})}throw a}};async function Va(r){return typeof r=="function"&&(r=r()),Promise.resolve(r)}var ge=H(),Ka=({errorSchema:r,errorToMessage:e,isRetryable:t})=>async({response:n,url:o,requestBodyValues:s})=>{let i=await n.text(),a=me(n);if(i.trim()==="")return {responseHeaders:a,value:new ge.APICallError({message:n.statusText,url:o,requestBodyValues:s,statusCode:n.status,responseHeaders:a,responseBody:i,isRetryable:t?.(n)})};try{let l=ao({text:i,schema:r});return {responseHeaders:a,value:new ge.APICallError({message:e(l),url:o,requestBodyValues:s,statusCode:n.status,responseHeaders:a,responseBody:i,data:l,isRetryable:t?.(n,l)})}}catch{return {responseHeaders:a,value:new ge.APICallError({message:n.statusText,url:o,requestBodyValues:s,statusCode:n.status,responseHeaders:a,responseBody:i,isRetryable:t?.(n)})}}},Ga=r=>async({response:e})=>{let t=me(e);if(e.body==null)throw new ge.EmptyResponseBodyError({});return {responseHeaders:t,value:e.body.pipeThrough(new TextDecoderStream).pipeThrough(eo()).pipeThrough(new TransformStream({transform({data:n},o){n!=="[DONE]"&&o.enqueue(ft({text:n,schema:r}));}}))}},Xa=r=>async({response:e})=>{let t=me(e);if(e.body==null)throw new ge.EmptyResponseBodyError({});let n="";return {responseHeaders:t,value:e.body.pipeThrough(new TextDecoderStream).pipeThrough(new TransformStream({transform(o,s){o.endsWith(`
22
+ `)?(s.enqueue(ft({text:n+o,schema:r})),n=""):n+=o;}}))}},Ya=r=>async({response:e,url:t,requestBodyValues:n})=>{let o=await e.text(),s=ft({text:o,schema:r}),i=me(e);if(!s.success)throw new ge.APICallError({message:"Invalid JSON response",cause:s.error,statusCode:e.status,responseHeaders:i,responseBody:o,url:t,requestBodyValues:n});return {responseHeaders:i,value:s.value,rawValue:s.rawValue}},Qa=()=>async({response:r,url:e,requestBodyValues:t})=>{let n=me(r);if(!r.body)throw new ge.APICallError({message:"Response body is empty",url:e,requestBodyValues:t,statusCode:r.status,responseHeaders:n,responseBody:void 0});try{let o=await r.arrayBuffer();return {responseHeaders:n,value:new Uint8Array(o)}}catch(o){throw new ge.APICallError({message:"Failed to read response as array buffer",url:e,requestBodyValues:t,statusCode:r.status,responseHeaders:n,responseBody:void 0,cause:o})}},Za=()=>async({response:r,url:e,requestBodyValues:t})=>{let n=me(r),o=await r.text();return {responseHeaders:n,value:new ge.APICallError({message:r.statusText,url:e,requestBodyValues:t,statusCode:r.status,responseHeaders:n,responseBody:o})}},{btoa:el,atob:tl}=globalThis;function rl(r){let e=r.replace(/-/g,"+").replace(/_/g,"/"),t=tl(e);return Uint8Array.from(t,n=>n.codePointAt(0))}function nl(r){let e="";for(let t=0;t<r.length;t++)e+=String.fromCodePoint(r[t]);return el(e)}function ol(r){return r?.replace(/\/$/,"")}});var ur=be((vm,_o)=>{v();var ar=Object.defineProperty,sl=Object.getOwnPropertyDescriptor,il=Object.getOwnPropertyNames,al=Object.prototype.hasOwnProperty,ll=(r,e)=>{for(var t in e)ar(r,t,{get:e[t],enumerable:true});},ul=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of il(e))!al.call(r,o)&&o!==t&&ar(r,o,{get:()=>e[o],enumerable:!(n=sl(e,o))||n.enumerable});return r},cl=r=>ul(ar({},"__esModule",{value:true}),r),yo={};ll(yo,{createOpenAI:()=>bo,openai:()=>mu});_o.exports=cl(yo);var uo=V(),We=H(),Q=V(),A=U("zod"),rr=H(),dl=V();function pl({prompt:r,useLegacyFunctionCalling:e=false,systemMessageMode:t="system"}){let n=[],o=[];for(let{role:s,content:i}of r)switch(s){case "system":{switch(t){case "system":{n.push({role:"system",content:i});break}case "developer":{n.push({role:"developer",content:i});break}case "remove":{o.push({type:"other",message:"system messages are removed for this model"});break}default:{let a=t;throw new Error(`Unsupported system message mode: ${a}`)}}break}case "user":{if(i.length===1&&i[0].type==="text"){n.push({role:"user",content:i[0].text});break}n.push({role:"user",content:i.map((a,l)=>{var u,c,d,p;switch(a.type){case "text":return {type:"text",text:a.text};case "image":return {type:"image_url",image_url:{url:a.image instanceof URL?a.image.toString():`data:${(u=a.mimeType)!=null?u:"image/jpeg"};base64,${(0, dl.convertUint8ArrayToBase64)(a.image)}`,detail:(d=(c=a.providerMetadata)==null?void 0:c.openai)==null?void 0:d.imageDetail}};case "file":{if(a.data instanceof URL)throw new rr.UnsupportedFunctionalityError({functionality:"'File content parts with URL data' functionality not supported."});switch(a.mimeType){case "audio/wav":return {type:"input_audio",input_audio:{data:a.data,format:"wav"}};case "audio/mp3":case "audio/mpeg":return {type:"input_audio",input_audio:{data:a.data,format:"mp3"}};case "application/pdf":return {type:"file",file:{filename:(p=a.filename)!=null?p:`part-${l}.pdf`,file_data:`data:application/pdf;base64,${a.data}`}};default:throw new rr.UnsupportedFunctionalityError({functionality:`File content part type ${a.mimeType} in user messages`})}}}})});break}case "assistant":{let a="",l=[];for(let u of i)switch(u.type){case "text":{a+=u.text;break}case "tool-call":{l.push({id:u.toolCallId,type:"function",function:{name:u.toolName,arguments:JSON.stringify(u.args)}});break}}if(e){if(l.length>1)throw new rr.UnsupportedFunctionalityError({functionality:"useLegacyFunctionCalling with multiple tool calls in one message"});n.push({role:"assistant",content:a,function_call:l.length>0?l[0].function:void 0});}else n.push({role:"assistant",content:a,tool_calls:l.length>0?l:void 0});break}case "tool":{for(let a of i)e?n.push({role:"function",name:a.toolName,content:JSON.stringify(a.result)}):n.push({role:"tool",tool_call_id:a.toolCallId,content:JSON.stringify(a.result)});break}default:{let a=s;throw new Error(`Unsupported role: ${a}`)}}return {messages:n,warnings:o}}function co(r){var e,t;return (t=(e=r?.content)==null?void 0:e.map(({token:n,logprob:o,top_logprobs:s})=>({token:n,logprob:o,topLogprobs:s?s.map(({token:i,logprob:a})=>({token:i,logprob:a})):[]})))!=null?t:void 0}function bt(r){switch(r){case "stop":return "stop";case "length":return "length";case "content_filter":return "content-filter";case "function_call":case "tool_calls":return "tool-calls";default:return "unknown"}}var ve=U("zod"),gl=V(),lr=ve.z.object({error:ve.z.object({message:ve.z.string(),type:ve.z.string().nullish(),param:ve.z.any().nullish(),code:ve.z.union([ve.z.string(),ve.z.number()]).nullish()})}),ae=(0, gl.createJsonErrorResponseHandler)({errorSchema:lr,errorToMessage:r=>r.error.message});function _t({id:r,model:e,created:t}){return {id:r??void 0,modelId:e??void 0,timestamp:t!=null?new Date(t*1e3):void 0}}var po=H();function ml({mode:r,useLegacyFunctionCalling:e=false,structuredOutputs:t}){var n;let o=(n=r.tools)!=null&&n.length?r.tools:void 0,s=[];if(o==null)return {tools:void 0,tool_choice:void 0,toolWarnings:s};let i=r.toolChoice;if(e){let u=[];for(let d of o)d.type==="provider-defined"?s.push({type:"unsupported-tool",tool:d}):u.push({name:d.name,description:d.description,parameters:d.parameters});if(i==null)return {functions:u,function_call:void 0,toolWarnings:s};switch(i.type){case "auto":case "none":case void 0:return {functions:u,function_call:void 0,toolWarnings:s};case "required":throw new po.UnsupportedFunctionalityError({functionality:"useLegacyFunctionCalling and toolChoice: required"});default:return {functions:u,function_call:{name:i.toolName},toolWarnings:s}}}let a=[];for(let u of o)u.type==="provider-defined"?s.push({type:"unsupported-tool",tool:u}):a.push({type:"function",function:{name:u.name,description:u.description,parameters:u.parameters,strict:t?true:void 0}});if(i==null)return {tools:a,tool_choice:void 0,toolWarnings:s};let l=i.type;switch(l){case "auto":case "none":case "required":return {tools:a,tool_choice:l,toolWarnings:s};case "tool":return {tools:a,tool_choice:{type:"function",function:{name:i.toolName}},toolWarnings:s};default:{let u=l;throw new po.UnsupportedFunctionalityError({functionality:`Unsupported tool choice type: ${u}`})}}}var fl=class{constructor(r,e,t){this.specificationVersion="v1",this.modelId=r,this.settings=e,this.config=t;}get supportsStructuredOutputs(){var r;return (r=this.settings.structuredOutputs)!=null?r:ir(this.modelId)}get defaultObjectGenerationMode(){return vl(this.modelId)?"tool":this.supportsStructuredOutputs?"json":"tool"}get provider(){return this.config.provider}get supportsImageUrls(){return !this.settings.downloadImages}getArgs({mode:r,prompt:e,maxTokens:t,temperature:n,topP:o,topK:s,frequencyPenalty:i,presencePenalty:a,stopSequences:l,responseFormat:u,seed:c,providerMetadata:d}){var p,m,h,f,g,y,_,T;let w=r.type,x=[];s!=null&&x.push({type:"unsupported-setting",setting:"topK"}),u?.type==="json"&&u.schema!=null&&!this.supportsStructuredOutputs&&x.push({type:"unsupported-setting",setting:"responseFormat",details:"JSON response format schema is only supported with structuredOutputs"});let S=this.settings.useLegacyFunctionCalling;if(S&&this.settings.parallelToolCalls===true)throw new We.UnsupportedFunctionalityError({functionality:"useLegacyFunctionCalling with parallelToolCalls"});if(S&&this.supportsStructuredOutputs)throw new We.UnsupportedFunctionalityError({functionality:"structuredOutputs with useLegacyFunctionCalling"});let{messages:z,warnings:C}=pl({prompt:e,useLegacyFunctionCalling:S,systemMessageMode:wl(this.modelId)});x.push(...C);let k={model:this.modelId,logit_bias:this.settings.logitBias,logprobs:this.settings.logprobs===true||typeof this.settings.logprobs=="number"?true:void 0,top_logprobs:typeof this.settings.logprobs=="number"?this.settings.logprobs:typeof this.settings.logprobs=="boolean"&&this.settings.logprobs?0:void 0,user:this.settings.user,parallel_tool_calls:this.settings.parallelToolCalls,max_tokens:t,temperature:n,top_p:o,frequency_penalty:i,presence_penalty:a,response_format:u?.type==="json"?this.supportsStructuredOutputs&&u.schema!=null?{type:"json_schema",json_schema:{schema:u.schema,strict:true,name:(p=u.name)!=null?p:"response",description:u.description}}:{type:"json_object"}:void 0,stop:l,seed:c,max_completion_tokens:(m=d?.openai)==null?void 0:m.maxCompletionTokens,store:(h=d?.openai)==null?void 0:h.store,metadata:(f=d?.openai)==null?void 0:f.metadata,prediction:(g=d?.openai)==null?void 0:g.prediction,reasoning_effort:(_=(y=d?.openai)==null?void 0:y.reasoningEffort)!=null?_:this.settings.reasoningEffort,messages:z};switch(ir(this.modelId)?(k.temperature!=null&&(k.temperature=void 0,x.push({type:"unsupported-setting",setting:"temperature",details:"temperature is not supported for reasoning models"})),k.top_p!=null&&(k.top_p=void 0,x.push({type:"unsupported-setting",setting:"topP",details:"topP is not supported for reasoning models"})),k.frequency_penalty!=null&&(k.frequency_penalty=void 0,x.push({type:"unsupported-setting",setting:"frequencyPenalty",details:"frequencyPenalty is not supported for reasoning models"})),k.presence_penalty!=null&&(k.presence_penalty=void 0,x.push({type:"unsupported-setting",setting:"presencePenalty",details:"presencePenalty is not supported for reasoning models"})),k.logit_bias!=null&&(k.logit_bias=void 0,x.push({type:"other",message:"logitBias is not supported for reasoning models"})),k.logprobs!=null&&(k.logprobs=void 0,x.push({type:"other",message:"logprobs is not supported for reasoning models"})),k.top_logprobs!=null&&(k.top_logprobs=void 0,x.push({type:"other",message:"topLogprobs is not supported for reasoning models"})),k.max_tokens!=null&&(k.max_completion_tokens==null&&(k.max_completion_tokens=k.max_tokens),k.max_tokens=void 0)):(this.modelId.startsWith("gpt-4o-search-preview")||this.modelId.startsWith("gpt-4o-mini-search-preview"))&&k.temperature!=null&&(k.temperature=void 0,x.push({type:"unsupported-setting",setting:"temperature",details:"temperature is not supported for the search preview models and has been removed."})),w){case "regular":{let{tools:O,tool_choice:I,functions:J,function_call:G,toolWarnings:L}=ml({mode:r,useLegacyFunctionCalling:S,structuredOutputs:this.supportsStructuredOutputs});return {args:{...k,tools:O,tool_choice:I,functions:J,function_call:G},warnings:[...x,...L]}}case "object-json":return {args:{...k,response_format:this.supportsStructuredOutputs&&r.schema!=null?{type:"json_schema",json_schema:{schema:r.schema,strict:true,name:(T=r.name)!=null?T:"response",description:r.description}}:{type:"json_object"}},warnings:x};case "object-tool":return {args:S?{...k,function_call:{name:r.tool.name},functions:[{name:r.tool.name,description:r.tool.description,parameters:r.tool.parameters}]}:{...k,tool_choice:{type:"function",function:{name:r.tool.name}},tools:[{type:"function",function:{name:r.tool.name,description:r.tool.description,parameters:r.tool.parameters,strict:this.supportsStructuredOutputs?true:void 0}}]},warnings:x};default:{let O=w;throw new Error(`Unsupported type: ${O}`)}}}async doGenerate(r){var e,t,n,o,s,i,a,l;let{args:u,warnings:c}=this.getArgs(r),{responseHeaders:d,value:p,rawValue:m}=await(0, Q.postJsonToApi)({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:(0, Q.combineHeaders)(this.config.headers(),r.headers),body:u,failedResponseHandler:ae,successfulResponseHandler:(0, Q.createJsonResponseHandler)(hl),abortSignal:r.abortSignal,fetch:this.config.fetch}),{messages:h,...f}=u,g=p.choices[0],y=(e=p.usage)==null?void 0:e.completion_tokens_details,_=(t=p.usage)==null?void 0:t.prompt_tokens_details,T={openai:{}};return y?.reasoning_tokens!=null&&(T.openai.reasoningTokens=y?.reasoning_tokens),y?.accepted_prediction_tokens!=null&&(T.openai.acceptedPredictionTokens=y?.accepted_prediction_tokens),y?.rejected_prediction_tokens!=null&&(T.openai.rejectedPredictionTokens=y?.rejected_prediction_tokens),_?.cached_tokens!=null&&(T.openai.cachedPromptTokens=_?.cached_tokens),{text:(n=g.message.content)!=null?n:void 0,toolCalls:this.settings.useLegacyFunctionCalling&&g.message.function_call?[{toolCallType:"function",toolCallId:(0, Q.generateId)(),toolName:g.message.function_call.name,args:g.message.function_call.arguments}]:(o=g.message.tool_calls)==null?void 0:o.map(w=>{var x;return {toolCallType:"function",toolCallId:(x=w.id)!=null?x:(0, Q.generateId)(),toolName:w.function.name,args:w.function.arguments}}),finishReason:bt(g.finish_reason),usage:{promptTokens:(i=(s=p.usage)==null?void 0:s.prompt_tokens)!=null?i:NaN,completionTokens:(l=(a=p.usage)==null?void 0:a.completion_tokens)!=null?l:NaN},rawCall:{rawPrompt:h,rawSettings:f},rawResponse:{headers:d,body:m},request:{body:JSON.stringify(u)},response:_t(p),warnings:c,logprobs:co(g.logprobs),providerMetadata:T}}async doStream(r){if(this.settings.simulateStreaming){let f=await this.doGenerate(r);return {stream:new ReadableStream({start(y){if(y.enqueue({type:"response-metadata",...f.response}),f.text&&y.enqueue({type:"text-delta",textDelta:f.text}),f.toolCalls)for(let _ of f.toolCalls)y.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:_.toolCallId,toolName:_.toolName,argsTextDelta:_.args}),y.enqueue({type:"tool-call",..._});y.enqueue({type:"finish",finishReason:f.finishReason,usage:f.usage,logprobs:f.logprobs,providerMetadata:f.providerMetadata}),y.close();}}),rawCall:f.rawCall,rawResponse:f.rawResponse,warnings:f.warnings}}let{args:e,warnings:t}=this.getArgs(r),n={...e,stream:true,stream_options:this.config.compatibility==="strict"?{include_usage:true}:void 0},{responseHeaders:o,value:s}=await(0, Q.postJsonToApi)({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:(0, Q.combineHeaders)(this.config.headers(),r.headers),body:n,failedResponseHandler:ae,successfulResponseHandler:(0, Q.createEventSourceResponseHandler)(yl),abortSignal:r.abortSignal,fetch:this.config.fetch}),{messages:i,...a}=e,l=[],u="unknown",c={promptTokens:void 0,completionTokens:void 0},d,p=true,{useLegacyFunctionCalling:m}=this.settings,h={openai:{}};return {stream:s.pipeThrough(new TransformStream({transform(f,g){var y,_,T,w,x,S,z,C,k,O,I,J;if(!f.success){u="error",g.enqueue({type:"error",error:f.error});return}let G=f.value;if("error"in G){u="error",g.enqueue({type:"error",error:G.error});return}if(p&&(p=false,g.enqueue({type:"response-metadata",..._t(G)})),G.usage!=null){let{prompt_tokens:q,completion_tokens:X,prompt_tokens_details:W,completion_tokens_details:F}=G.usage;c={promptTokens:q??void 0,completionTokens:X??void 0},F?.reasoning_tokens!=null&&(h.openai.reasoningTokens=F?.reasoning_tokens),F?.accepted_prediction_tokens!=null&&(h.openai.acceptedPredictionTokens=F?.accepted_prediction_tokens),F?.rejected_prediction_tokens!=null&&(h.openai.rejectedPredictionTokens=F?.rejected_prediction_tokens),W?.cached_tokens!=null&&(h.openai.cachedPromptTokens=W?.cached_tokens);}let L=G.choices[0];if(L?.finish_reason!=null&&(u=bt(L.finish_reason)),L?.delta==null)return;let we=L.delta;we.content!=null&&g.enqueue({type:"text-delta",textDelta:we.content});let ee=co(L?.logprobs);ee?.length&&(d===void 0&&(d=[]),d.push(...ee));let re=m&&we.function_call!=null?[{type:"function",id:(0, Q.generateId)(),function:we.function_call,index:0}]:we.tool_calls;if(re!=null)for(let q of re){let X=q.index;if(l[X]==null){if(q.type!=="function")throw new We.InvalidResponseDataError({data:q,message:"Expected 'function' type."});if(q.id==null)throw new We.InvalidResponseDataError({data:q,message:"Expected 'id' to be a string."});if(((y=q.function)==null?void 0:y.name)==null)throw new We.InvalidResponseDataError({data:q,message:"Expected 'function.name' to be a string."});l[X]={id:q.id,type:"function",function:{name:q.function.name,arguments:(_=q.function.arguments)!=null?_:""},hasFinished:false};let F=l[X];((T=F.function)==null?void 0:T.name)!=null&&((w=F.function)==null?void 0:w.arguments)!=null&&(F.function.arguments.length>0&&g.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:F.id,toolName:F.function.name,argsTextDelta:F.function.arguments}),(0, Q.isParsableJson)(F.function.arguments)&&(g.enqueue({type:"tool-call",toolCallType:"function",toolCallId:(x=F.id)!=null?x:(0, Q.generateId)(),toolName:F.function.name,args:F.function.arguments}),F.hasFinished=true));continue}let W=l[X];W.hasFinished||(((S=q.function)==null?void 0:S.arguments)!=null&&(W.function.arguments+=(C=(z=q.function)==null?void 0:z.arguments)!=null?C:""),g.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:W.id,toolName:W.function.name,argsTextDelta:(k=q.function.arguments)!=null?k:""}),((O=W.function)==null?void 0:O.name)!=null&&((I=W.function)==null?void 0:I.arguments)!=null&&(0, Q.isParsableJson)(W.function.arguments)&&(g.enqueue({type:"tool-call",toolCallType:"function",toolCallId:(J=W.id)!=null?J:(0, Q.generateId)(),toolName:W.function.name,args:W.function.arguments}),W.hasFinished=true));}},flush(f){var g,y;f.enqueue({type:"finish",finishReason:u,logprobs:d,usage:{promptTokens:(g=c.promptTokens)!=null?g:NaN,completionTokens:(y=c.completionTokens)!=null?y:NaN},...h!=null?{providerMetadata:h}:{}});}})),rawCall:{rawPrompt:i,rawSettings:a},rawResponse:{headers:o},request:{body:JSON.stringify(n)},warnings:t}}},vo=A.z.object({prompt_tokens:A.z.number().nullish(),completion_tokens:A.z.number().nullish(),prompt_tokens_details:A.z.object({cached_tokens:A.z.number().nullish()}).nullish(),completion_tokens_details:A.z.object({reasoning_tokens:A.z.number().nullish(),accepted_prediction_tokens:A.z.number().nullish(),rejected_prediction_tokens:A.z.number().nullish()}).nullish()}).nullish(),hl=A.z.object({id:A.z.string().nullish(),created:A.z.number().nullish(),model:A.z.string().nullish(),choices:A.z.array(A.z.object({message:A.z.object({role:A.z.literal("assistant").nullish(),content:A.z.string().nullish(),function_call:A.z.object({arguments:A.z.string(),name:A.z.string()}).nullish(),tool_calls:A.z.array(A.z.object({id:A.z.string().nullish(),type:A.z.literal("function"),function:A.z.object({name:A.z.string(),arguments:A.z.string()})})).nullish()}),index:A.z.number(),logprobs:A.z.object({content:A.z.array(A.z.object({token:A.z.string(),logprob:A.z.number(),top_logprobs:A.z.array(A.z.object({token:A.z.string(),logprob:A.z.number()}))})).nullable()}).nullish(),finish_reason:A.z.string().nullish()})),usage:vo}),yl=A.z.union([A.z.object({id:A.z.string().nullish(),created:A.z.number().nullish(),model:A.z.string().nullish(),choices:A.z.array(A.z.object({delta:A.z.object({role:A.z.enum(["assistant"]).nullish(),content:A.z.string().nullish(),function_call:A.z.object({name:A.z.string().optional(),arguments:A.z.string().optional()}).nullish(),tool_calls:A.z.array(A.z.object({index:A.z.number(),id:A.z.string().nullish(),type:A.z.literal("function").nullish(),function:A.z.object({name:A.z.string().nullish(),arguments:A.z.string().nullish()})})).nullish()}).nullish(),logprobs:A.z.object({content:A.z.array(A.z.object({token:A.z.string(),logprob:A.z.number(),top_logprobs:A.z.array(A.z.object({token:A.z.string(),logprob:A.z.number()}))})).nullable()}).nullish(),finish_reason:A.z.string().nullish(),index:A.z.number()})),usage:vo}),lr]);function ir(r){return r.startsWith("o")||r.startsWith("gpt-5")}function vl(r){return r.startsWith("gpt-4o-audio-preview")}function wl(r){var e,t;return ir(r)?(t=(e=bl[r])==null?void 0:e.systemMessageMode)!=null?t:"developer":"system"}var bl={"o1-mini":{systemMessageMode:"remove"},"o1-mini-2024-09-12":{systemMessageMode:"remove"},"o1-preview":{systemMessageMode:"remove"},"o1-preview-2024-09-12":{systemMessageMode:"remove"},o3:{systemMessageMode:"developer"},"o3-2025-04-16":{systemMessageMode:"developer"},"o3-mini":{systemMessageMode:"developer"},"o3-mini-2025-01-31":{systemMessageMode:"developer"},"o4-mini":{systemMessageMode:"developer"},"o4-mini-2025-04-16":{systemMessageMode:"developer"}},ht=H(),Oe=V(),j=U("zod"),yt=H();function _l({prompt:r,inputFormat:e,user:t="user",assistant:n="assistant"}){if(e==="prompt"&&r.length===1&&r[0].role==="user"&&r[0].content.length===1&&r[0].content[0].type==="text")return {prompt:r[0].content[0].text};let o="";r[0].role==="system"&&(o+=`${r[0].content}
23
23
 
24
- `,r=r.slice(1));for(let{role:s,content:i}of r)switch(s){case "system":throw new ft.InvalidPromptError({message:"Unexpected system message in prompt: ${content}",prompt:r});case "user":{let a=i.map(l=>{switch(l.type){case "text":return l.text;case "image":throw new ft.UnsupportedFunctionalityError({functionality:"images"})}}).join("");o+=`${t}:
24
+ `,r=r.slice(1));for(let{role:s,content:i}of r)switch(s){case "system":throw new yt.InvalidPromptError({message:"Unexpected system message in prompt: ${content}",prompt:r});case "user":{let a=i.map(l=>{switch(l.type){case "text":return l.text;case "image":throw new yt.UnsupportedFunctionalityError({functionality:"images"})}}).join("");o+=`${t}:
25
25
  ${a}
26
26
 
27
- `;break}case "assistant":{let a=i.map(l=>{switch(l.type){case "text":return l.text;case "tool-call":throw new ft.UnsupportedFunctionalityError({functionality:"tool-call messages"})}}).join("");o+=`${n}:
27
+ `;break}case "assistant":{let a=i.map(l=>{switch(l.type){case "text":return l.text;case "tool-call":throw new yt.UnsupportedFunctionalityError({functionality:"tool-call messages"})}}).join("");o+=`${n}:
28
28
  ${a}
29
29
 
30
- `;break}case "tool":throw new ft.UnsupportedFunctionalityError({functionality:"tool messages"});default:{let a=s;throw new Error(`Unsupported role: ${a}`)}}return o+=`${n}:
30
+ `;break}case "tool":throw new yt.UnsupportedFunctionalityError({functionality:"tool messages"});default:{let a=s;throw new Error(`Unsupported role: ${a}`)}}return o+=`${n}:
31
31
  `,{prompt:o,stopSequences:[`
32
- ${t}:`]}}function co(r){return r?.tokens.map((e,t)=>({token:e,logprob:r.token_logprobs[t],topLogprobs:r.top_logprobs?Object.entries(r.top_logprobs[t]).map(([n,o])=>({token:n,logprob:o})):[]}))}var vl=class{constructor(r,e,t){this.specificationVersion="v1",this.defaultObjectGenerationMode=void 0,this.modelId=r,this.settings=e,this.config=t;}get provider(){return this.config.provider}getArgs({mode:r,inputFormat:e,prompt:t,maxTokens:n,temperature:o,topP:s,topK:i,frequencyPenalty:a,presencePenalty:l,stopSequences:u,responseFormat:c,seed:d}){var p;let m=r.type,h=[];i!=null&&h.push({type:"unsupported-setting",setting:"topK"}),c!=null&&c.type!=="text"&&h.push({type:"unsupported-setting",setting:"responseFormat",details:"JSON response format is not supported."});let{prompt:f,stopSequences:g}=yl({prompt:t,inputFormat:e}),v=[...g??[],...u??[]],_={model:this.modelId,echo:this.settings.echo,logit_bias:this.settings.logitBias,logprobs:typeof this.settings.logprobs=="number"?this.settings.logprobs:typeof this.settings.logprobs=="boolean"&&this.settings.logprobs?0:void 0,suffix:this.settings.suffix,user:this.settings.user,max_tokens:n,temperature:o,top_p:s,frequency_penalty:a,presence_penalty:l,seed:d,prompt:f,stop:v.length>0?v:void 0};switch(m){case "regular":{if((p=r.tools)!=null&&p.length)throw new mt.UnsupportedFunctionalityError({functionality:"tools"});if(r.toolChoice)throw new mt.UnsupportedFunctionalityError({functionality:"toolChoice"});return {args:_,warnings:h}}case "object-json":throw new mt.UnsupportedFunctionalityError({functionality:"object-json mode"});case "object-tool":throw new mt.UnsupportedFunctionalityError({functionality:"object-tool mode"});default:{let T=m;throw new Error(`Unsupported type: ${T}`)}}}async doGenerate(r){let{args:e,warnings:t}=this.getArgs(r),{responseHeaders:n,value:o,rawValue:s}=await(0, Ie.postJsonToApi)({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:(0, Ie.combineHeaders)(this.config.headers(),r.headers),body:e,failedResponseHandler:ae,successfulResponseHandler:(0, Ie.createJsonResponseHandler)(wl),abortSignal:r.abortSignal,fetch:this.config.fetch}),{prompt:i,...a}=e,l=o.choices[0];return {text:l.text,usage:{promptTokens:o.usage.prompt_tokens,completionTokens:o.usage.completion_tokens},finishReason:vt(l.finish_reason),logprobs:co(l.logprobs),rawCall:{rawPrompt:i,rawSettings:a},rawResponse:{headers:n,body:s},response:wt(o),warnings:t,request:{body:JSON.stringify(e)}}}async doStream(r){let{args:e,warnings:t}=this.getArgs(r),n={...e,stream:true,stream_options:this.config.compatibility==="strict"?{include_usage:true}:void 0},{responseHeaders:o,value:s}=await(0, Ie.postJsonToApi)({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:(0, Ie.combineHeaders)(this.config.headers(),r.headers),body:n,failedResponseHandler:ae,successfulResponseHandler:(0, Ie.createEventSourceResponseHandler)(bl),abortSignal:r.abortSignal,fetch:this.config.fetch}),{prompt:i,...a}=e,l="unknown",u={promptTokens:Number.NaN,completionTokens:Number.NaN},c,d=true;return {stream:s.pipeThrough(new TransformStream({transform(p,m){if(!p.success){l="error",m.enqueue({type:"error",error:p.error});return}let h=p.value;if("error"in h){l="error",m.enqueue({type:"error",error:h.error});return}d&&(d=false,m.enqueue({type:"response-metadata",...wt(h)})),h.usage!=null&&(u={promptTokens:h.usage.prompt_tokens,completionTokens:h.usage.completion_tokens});let f=h.choices[0];f?.finish_reason!=null&&(l=vt(f.finish_reason)),f?.text!=null&&m.enqueue({type:"text-delta",textDelta:f.text});let g=co(f?.logprobs);g?.length&&(c===void 0&&(c=[]),c.push(...g));},flush(p){p.enqueue({type:"finish",finishReason:l,logprobs:c,usage:u});}})),rawCall:{rawPrompt:i,rawSettings:a},rawResponse:{headers:o},warnings:t,request:{body:JSON.stringify(n)}}}},wl=M.z.object({id:M.z.string().nullish(),created:M.z.number().nullish(),model:M.z.string().nullish(),choices:M.z.array(M.z.object({text:M.z.string(),finish_reason:M.z.string(),logprobs:M.z.object({tokens:M.z.array(M.z.string()),token_logprobs:M.z.array(M.z.number()),top_logprobs:M.z.array(M.z.record(M.z.string(),M.z.number())).nullable()}).nullish()})),usage:M.z.object({prompt_tokens:M.z.number(),completion_tokens:M.z.number()})}),bl=M.z.union([M.z.object({id:M.z.string().nullish(),created:M.z.number().nullish(),model:M.z.string().nullish(),choices:M.z.array(M.z.object({text:M.z.string(),finish_reason:M.z.string().nullish(),index:M.z.number(),logprobs:M.z.object({tokens:M.z.array(M.z.string()),token_logprobs:M.z.array(M.z.number()),top_logprobs:M.z.array(M.z.record(M.z.string(),M.z.number())).nullable()}).nullish()})),usage:M.z.object({prompt_tokens:M.z.number(),completion_tokens:M.z.number()}).nullish()}),ir]),_l=H(),tr=V(),Pe=U("zod"),xl=class{constructor(r,e,t){this.specificationVersion="v1",this.modelId=r,this.settings=e,this.config=t;}get provider(){return this.config.provider}get maxEmbeddingsPerCall(){var r;return (r=this.settings.maxEmbeddingsPerCall)!=null?r:2048}get supportsParallelCalls(){var r;return (r=this.settings.supportsParallelCalls)!=null?r:true}async doEmbed({values:r,headers:e,abortSignal:t}){if(r.length>this.maxEmbeddingsPerCall)throw new _l.TooManyEmbeddingValuesForCallError({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:r});let{responseHeaders:n,value:o}=await(0, tr.postJsonToApi)({url:this.config.url({path:"/embeddings",modelId:this.modelId}),headers:(0, tr.combineHeaders)(this.config.headers(),e),body:{model:this.modelId,input:r,encoding_format:"float",dimensions:this.settings.dimensions,user:this.settings.user},failedResponseHandler:ae,successfulResponseHandler:(0, tr.createJsonResponseHandler)(kl),abortSignal:t,fetch:this.config.fetch});return {embeddings:o.data.map(s=>s.embedding),usage:o.usage?{tokens:o.usage.prompt_tokens}:void 0,rawResponse:{headers:n}}}},kl=Pe.z.object({data:Pe.z.array(Pe.z.object({embedding:Pe.z.array(Pe.z.number())})),usage:Pe.z.object({prompt_tokens:Pe.z.number()}).nullish()}),rr=V(),ht=U("zod"),Rl={"dall-e-3":1,"dall-e-2":10,"gpt-image-1":10},Cl=new Set(["gpt-image-1"]),Tl=class{constructor(r,e,t){this.modelId=r,this.settings=e,this.config=t,this.specificationVersion="v1";}get maxImagesPerCall(){var r,e;return (e=(r=this.settings.maxImagesPerCall)!=null?r:Rl[this.modelId])!=null?e:1}get provider(){return this.config.provider}async doGenerate({prompt:r,n:e,size:t,aspectRatio:n,seed:o,providerOptions:s,headers:i,abortSignal:a}){var l,u,c,d;let p=[];n!=null&&p.push({type:"unsupported-setting",setting:"aspectRatio",details:"This model does not support aspect ratio. Use `size` instead."}),o!=null&&p.push({type:"unsupported-setting",setting:"seed"});let m=(c=(u=(l=this.config._internal)==null?void 0:l.currentDate)==null?void 0:u.call(l))!=null?c:new Date,{value:h,responseHeaders:f}=await(0, rr.postJsonToApi)({url:this.config.url({path:"/images/generations",modelId:this.modelId}),headers:(0, rr.combineHeaders)(this.config.headers(),i),body:{model:this.modelId,prompt:r,n:e,size:t,...(d=s.openai)!=null?d:{},...Cl.has(this.modelId)?{}:{response_format:"b64_json"}},failedResponseHandler:ae,successfulResponseHandler:(0, rr.createJsonResponseHandler)(Pl),abortSignal:a,fetch:this.config.fetch});return {images:h.data.map(g=>g.b64_json),warnings:p,response:{timestamp:m,modelId:this.modelId,headers:f}}}},Pl=ht.z.object({data:ht.z.array(ht.z.object({b64_json:ht.z.string()}))}),We=V(),K=U("zod"),El=K.z.object({include:K.z.array(K.z.string()).nullish(),language:K.z.string().nullish(),prompt:K.z.string().nullish(),temperature:K.z.number().min(0).max(1).nullish().default(0),timestampGranularities:K.z.array(K.z.enum(["word","segment"])).nullish().default(["segment"])}),po={afrikaans:"af",arabic:"ar",armenian:"hy",azerbaijani:"az",belarusian:"be",bosnian:"bs",bulgarian:"bg",catalan:"ca",chinese:"zh",croatian:"hr",czech:"cs",danish:"da",dutch:"nl",english:"en",estonian:"et",finnish:"fi",french:"fr",galician:"gl",german:"de",greek:"el",hebrew:"he",hindi:"hi",hungarian:"hu",icelandic:"is",indonesian:"id",italian:"it",japanese:"ja",kannada:"kn",kazakh:"kk",korean:"ko",latvian:"lv",lithuanian:"lt",macedonian:"mk",malay:"ms",marathi:"mr",maori:"mi",nepali:"ne",norwegian:"no",persian:"fa",polish:"pl",portuguese:"pt",romanian:"ro",russian:"ru",serbian:"sr",slovak:"sk",slovenian:"sl",spanish:"es",swahili:"sw",swedish:"sv",tagalog:"tl",tamil:"ta",thai:"th",turkish:"tr",ukrainian:"uk",urdu:"ur",vietnamese:"vi",welsh:"cy"},Al=class{constructor(r,e){this.modelId=r,this.config=e,this.specificationVersion="v1";}get provider(){return this.config.provider}getArgs({audio:r,mediaType:e,providerOptions:t}){var n,o,s,i,a;let l=[],u=(0, We.parseProviderOptions)({provider:"openai",providerOptions:t,schema:El}),c=new FormData,d=r instanceof Uint8Array?new Blob([r]):new Blob([(0, We.convertBase64ToUint8Array)(r)]);if(c.append("model",this.modelId),c.append("file",new File([d],"audio",{type:e})),u){let p={include:(n=u.include)!=null?n:void 0,language:(o=u.language)!=null?o:void 0,prompt:(s=u.prompt)!=null?s:void 0,temperature:(i=u.temperature)!=null?i:void 0,timestamp_granularities:(a=u.timestampGranularities)!=null?a:void 0};for(let m in p){let h=p[m];h!==void 0&&c.append(m,String(h));}}return {formData:c,warnings:l}}async doGenerate(r){var e,t,n,o,s,i;let a=(n=(t=(e=this.config._internal)==null?void 0:e.currentDate)==null?void 0:t.call(e))!=null?n:new Date,{formData:l,warnings:u}=this.getArgs(r),{value:c,responseHeaders:d,rawValue:p}=await(0, We.postFormDataToApi)({url:this.config.url({path:"/audio/transcriptions",modelId:this.modelId}),headers:(0, We.combineHeaders)(this.config.headers(),r.headers),formData:l,failedResponseHandler:ae,successfulResponseHandler:(0, We.createJsonResponseHandler)(Sl),abortSignal:r.abortSignal,fetch:this.config.fetch}),m=c.language!=null&&c.language in po?po[c.language]:void 0;return {text:c.text,segments:(s=(o=c.words)==null?void 0:o.map(h=>({text:h.word,startSecond:h.start,endSecond:h.end})))!=null?s:[],language:m,durationInSeconds:(i=c.duration)!=null?i:void 0,warnings:u,response:{timestamp:a,modelId:this.modelId,headers:d,body:p}}}},Sl=K.z.object({text:K.z.string(),language:K.z.string().nullish(),duration:K.z.number().nullish(),words:K.z.array(K.z.object({word:K.z.string(),start:K.z.number(),end:K.z.number()})).nullish()}),Il=H(),me=V(),b=U("zod"),go=H(),Ol=V();function zl({prompt:r,systemMessageMode:e}){let t=[],n=[];for(let{role:o,content:s}of r)switch(o){case "system":{switch(e){case "system":{t.push({role:"system",content:s});break}case "developer":{t.push({role:"developer",content:s});break}case "remove":{n.push({type:"other",message:"system messages are removed for this model"});break}default:{let i=e;throw new Error(`Unsupported system message mode: ${i}`)}}break}case "user":{t.push({role:"user",content:s.map((i,a)=>{var l,u,c,d;switch(i.type){case "text":return {type:"input_text",text:i.text};case "image":return {type:"input_image",image_url:i.image instanceof URL?i.image.toString():`data:${(l=i.mimeType)!=null?l:"image/jpeg"};base64,${(0, Ol.convertUint8ArrayToBase64)(i.image)}`,detail:(c=(u=i.providerMetadata)==null?void 0:u.openai)==null?void 0:c.imageDetail};case "file":{if(i.data instanceof URL)throw new go.UnsupportedFunctionalityError({functionality:"File URLs in user messages"});if(i.mimeType==="application/pdf")return {type:"input_file",filename:(d=i.filename)!=null?d:`part-${a}.pdf`,file_data:`data:application/pdf;base64,${i.data}`};throw new go.UnsupportedFunctionalityError({functionality:"Only PDF files are supported in user messages"})}}})});break}case "assistant":{for(let i of s)switch(i.type){case "text":{t.push({role:"assistant",content:[{type:"output_text",text:i.text}]});break}case "tool-call":{t.push({type:"function_call",call_id:i.toolCallId,name:i.toolName,arguments:JSON.stringify(i.args)});break}}break}case "tool":{for(let i of s)t.push({type:"function_call_output",call_id:i.toolCallId,output:JSON.stringify(i.result)});break}default:{let i=o;throw new Error(`Unsupported role: ${i}`)}}return {messages:t,warnings:n}}function mo({finishReason:r,hasToolCalls:e}){switch(r){case void 0:case null:return e?"tool-calls":"stop";case "max_output_tokens":return "length";case "content_filter":return "content-filter";default:return e?"tool-calls":"unknown"}}var Ml=H();function jl({mode:r,strict:e}){var t;let n=(t=r.tools)!=null&&t.length?r.tools:void 0,o=[];if(n==null)return {tools:void 0,tool_choice:void 0,toolWarnings:o};let s=r.toolChoice,i=[];for(let l of n)switch(l.type){case "function":i.push({type:"function",name:l.name,description:l.description,parameters:l.parameters,strict:e?true:void 0});break;case "provider-defined":l.id==="openai.web_search_preview"?i.push({type:"web_search_preview",search_context_size:l.args.searchContextSize,user_location:l.args.userLocation}):o.push({type:"unsupported-tool",tool:l});break;default:o.push({type:"unsupported-tool",tool:l});break}if(s==null)return {tools:i,tool_choice:void 0,toolWarnings:o};let a=s.type;switch(a){case "auto":case "none":case "required":return {tools:i,tool_choice:a,toolWarnings:o};case "tool":return s.toolName==="web_search_preview"?{tools:i,tool_choice:{type:"web_search_preview"},toolWarnings:o}:{tools:i,tool_choice:{type:"function",name:s.toolName},toolWarnings:o};default:{let l=a;throw new Ml.UnsupportedFunctionalityError({functionality:`Unsupported tool choice type: ${l}`})}}}var Nl=class{constructor(r,e){this.specificationVersion="v1",this.defaultObjectGenerationMode="json",this.supportsStructuredOutputs=true,this.modelId=r,this.config=e;}get provider(){return this.config.provider}getArgs({mode:r,maxTokens:e,temperature:t,stopSequences:n,topP:o,topK:s,presencePenalty:i,frequencyPenalty:a,seed:l,prompt:u,providerMetadata:c,responseFormat:d}){var p,m,h;let f=[],g=ru(this.modelId),v=r.type;s!=null&&f.push({type:"unsupported-setting",setting:"topK"}),l!=null&&f.push({type:"unsupported-setting",setting:"seed"}),i!=null&&f.push({type:"unsupported-setting",setting:"presencePenalty"}),a!=null&&f.push({type:"unsupported-setting",setting:"frequencyPenalty"}),n!=null&&f.push({type:"unsupported-setting",setting:"stopSequences"});let{messages:_,warnings:T}=zl({prompt:u,systemMessageMode:g.systemMessageMode});f.push(...T);let w=(0, me.parseProviderOptions)({provider:"openai",providerOptions:c,schema:nu}),x=(p=w?.strictSchemas)!=null?p:true,S={model:this.modelId,input:_,temperature:t,top_p:o,max_output_tokens:e,...d?.type==="json"&&{text:{format:d.schema!=null?{type:"json_schema",strict:x,name:(m=d.name)!=null?m:"response",description:d.description,schema:d.schema}:{type:"json_object"}}},metadata:w?.metadata,parallel_tool_calls:w?.parallelToolCalls,previous_response_id:w?.previousResponseId,store:w?.store,user:w?.user,instructions:w?.instructions,...g.isReasoningModel&&(w?.reasoningEffort!=null||w?.reasoningSummary!=null)&&{reasoning:{...w?.reasoningEffort!=null&&{effort:w.reasoningEffort},...w?.reasoningSummary!=null&&{summary:w.reasoningSummary}}},...g.requiredAutoTruncation};switch(g.isReasoningModel&&(S.temperature!=null&&(S.temperature=void 0,f.push({type:"unsupported-setting",setting:"temperature",details:"temperature is not supported for reasoning models"})),S.top_p!=null&&(S.top_p=void 0,f.push({type:"unsupported-setting",setting:"topP",details:"topP is not supported for reasoning models"}))),v){case "regular":{let{tools:z,tool_choice:C,toolWarnings:k}=jl({mode:r,strict:x});return {args:{...S,tools:z,tool_choice:C},warnings:[...f,...k]}}case "object-json":return {args:{...S,text:{format:r.schema!=null?{type:"json_schema",strict:x,name:(h=r.name)!=null?h:"response",description:r.description,schema:r.schema}:{type:"json_object"}}},warnings:f};case "object-tool":return {args:{...S,tool_choice:{type:"function",name:r.tool.name},tools:[{type:"function",name:r.tool.name,description:r.tool.description,parameters:r.tool.parameters,strict:x}]},warnings:f};default:{let z=v;throw new Error(`Unsupported type: ${z}`)}}}async doGenerate(r){var e,t,n,o,s,i,a;let{args:l,warnings:u}=this.getArgs(r),c=this.config.url({path:"/responses",modelId:this.modelId}),{responseHeaders:d,value:p,rawValue:m}=await(0, me.postJsonToApi)({url:c,headers:(0, me.combineHeaders)(this.config.headers(),r.headers),body:l,failedResponseHandler:ae,successfulResponseHandler:(0, me.createJsonResponseHandler)(b.z.object({id:b.z.string(),created_at:b.z.number(),error:b.z.object({message:b.z.string(),code:b.z.string()}).nullish(),model:b.z.string(),output:b.z.array(b.z.discriminatedUnion("type",[b.z.object({type:b.z.literal("message"),role:b.z.literal("assistant"),content:b.z.array(b.z.object({type:b.z.literal("output_text"),text:b.z.string(),annotations:b.z.array(b.z.object({type:b.z.literal("url_citation"),start_index:b.z.number(),end_index:b.z.number(),url:b.z.string(),title:b.z.string()}))}))}),b.z.object({type:b.z.literal("function_call"),call_id:b.z.string(),name:b.z.string(),arguments:b.z.string()}),b.z.object({type:b.z.literal("web_search_call")}),b.z.object({type:b.z.literal("computer_call")}),b.z.object({type:b.z.literal("reasoning"),summary:b.z.array(b.z.object({type:b.z.literal("summary_text"),text:b.z.string()}))})])),incomplete_details:b.z.object({reason:b.z.string()}).nullable(),usage:yo})),abortSignal:r.abortSignal,fetch:this.config.fetch});if(p.error)throw new Il.APICallError({message:p.error.message,url:c,requestBodyValues:l,statusCode:400,responseHeaders:d,responseBody:m,isRetryable:false});let h=p.output.filter(v=>v.type==="message").flatMap(v=>v.content).filter(v=>v.type==="output_text"),f=p.output.filter(v=>v.type==="function_call").map(v=>({toolCallType:"function",toolCallId:v.call_id,toolName:v.name,args:v.arguments})),g=(t=(e=p.output.find(v=>v.type==="reasoning"))==null?void 0:e.summary)!=null?t:null;return {text:h.map(v=>v.text).join(`
33
- `),sources:h.flatMap(v=>v.annotations.map(_=>{var T,w,x;return {sourceType:"url",id:(x=(w=(T=this.config).generateId)==null?void 0:w.call(T))!=null?x:(0, me.generateId)(),url:_.url,title:_.title}})),finishReason:mo({finishReason:(n=p.incomplete_details)==null?void 0:n.reason,hasToolCalls:f.length>0}),toolCalls:f.length>0?f:void 0,reasoning:g?g.map(v=>({type:"text",text:v.text})):void 0,usage:{promptTokens:p.usage.input_tokens,completionTokens:p.usage.output_tokens},rawCall:{rawPrompt:void 0,rawSettings:{}},rawResponse:{headers:d,body:m},request:{body:JSON.stringify(l)},response:{id:p.id,timestamp:new Date(p.created_at*1e3),modelId:p.model},providerMetadata:{openai:{responseId:p.id,cachedPromptTokens:(s=(o=p.usage.input_tokens_details)==null?void 0:o.cached_tokens)!=null?s:null,reasoningTokens:(a=(i=p.usage.output_tokens_details)==null?void 0:i.reasoning_tokens)!=null?a:null}},warnings:u}}async doStream(r){let{args:e,warnings:t}=this.getArgs(r),{responseHeaders:n,value:o}=await(0, me.postJsonToApi)({url:this.config.url({path:"/responses",modelId:this.modelId}),headers:(0, me.combineHeaders)(this.config.headers(),r.headers),body:{...e,stream:true},failedResponseHandler:ae,successfulResponseHandler:(0, me.createEventSourceResponseHandler)(Wl),abortSignal:r.abortSignal,fetch:this.config.fetch}),s=this,i="unknown",a=NaN,l=NaN,u=null,c=null,d=null,p={},m=false;return {stream:o.pipeThrough(new TransformStream({transform(h,f){var g,v,_,T,w,x,S,z;if(!h.success){i="error",f.enqueue({type:"error",error:h.error});return}let C=h.value;if(Ql(C))C.item.type==="function_call"&&(p[C.output_index]={toolName:C.item.name,toolCallId:C.item.call_id},f.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:C.item.call_id,toolName:C.item.name,argsTextDelta:C.item.arguments}));else if(Yl(C)){let k=p[C.output_index];k!=null&&f.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:k.toolCallId,toolName:k.toolName,argsTextDelta:C.delta});}else Xl(C)?(d=C.response.id,f.enqueue({type:"response-metadata",id:C.response.id,timestamp:new Date(C.response.created_at*1e3),modelId:C.response.model})):Vl(C)?f.enqueue({type:"text-delta",textDelta:C.delta}):eu(C)?f.enqueue({type:"reasoning",textDelta:C.delta}):Kl(C)&&C.item.type==="function_call"?(p[C.output_index]=void 0,m=true,f.enqueue({type:"tool-call",toolCallType:"function",toolCallId:C.item.call_id,toolName:C.item.name,args:C.item.arguments})):Gl(C)?(i=mo({finishReason:(g=C.response.incomplete_details)==null?void 0:g.reason,hasToolCalls:m}),a=C.response.usage.input_tokens,l=C.response.usage.output_tokens,u=(_=(v=C.response.usage.input_tokens_details)==null?void 0:v.cached_tokens)!=null?_:u,c=(w=(T=C.response.usage.output_tokens_details)==null?void 0:T.reasoning_tokens)!=null?w:c):Zl(C)?f.enqueue({type:"source",source:{sourceType:"url",id:(z=(S=(x=s.config).generateId)==null?void 0:S.call(x))!=null?z:(0, me.generateId)(),url:C.annotation.url,title:C.annotation.title}}):tu(C)&&f.enqueue({type:"error",error:C});},flush(h){h.enqueue({type:"finish",finishReason:i,usage:{promptTokens:a,completionTokens:l},...(u!=null||c!=null)&&{providerMetadata:{openai:{responseId:d,cachedPromptTokens:u,reasoningTokens:c}}}});}})),rawCall:{rawPrompt:void 0,rawSettings:{}},rawResponse:{headers:n},request:{body:JSON.stringify(e)},warnings:t}}},yo=b.z.object({input_tokens:b.z.number(),input_tokens_details:b.z.object({cached_tokens:b.z.number().nullish()}).nullish(),output_tokens:b.z.number(),output_tokens_details:b.z.object({reasoning_tokens:b.z.number().nullish()}).nullish()}),$l=b.z.object({type:b.z.literal("response.output_text.delta"),delta:b.z.string()}),Dl=b.z.object({type:b.z.enum(["response.completed","response.incomplete"]),response:b.z.object({incomplete_details:b.z.object({reason:b.z.string()}).nullish(),usage:yo})}),Ll=b.z.object({type:b.z.literal("response.created"),response:b.z.object({id:b.z.string(),created_at:b.z.number(),model:b.z.string()})}),Hl=b.z.object({type:b.z.literal("response.output_item.done"),output_index:b.z.number(),item:b.z.discriminatedUnion("type",[b.z.object({type:b.z.literal("message")}),b.z.object({type:b.z.literal("function_call"),id:b.z.string(),call_id:b.z.string(),name:b.z.string(),arguments:b.z.string(),status:b.z.literal("completed")})])}),ql=b.z.object({type:b.z.literal("response.function_call_arguments.delta"),item_id:b.z.string(),output_index:b.z.number(),delta:b.z.string()}),Fl=b.z.object({type:b.z.literal("response.output_item.added"),output_index:b.z.number(),item:b.z.discriminatedUnion("type",[b.z.object({type:b.z.literal("message")}),b.z.object({type:b.z.literal("function_call"),id:b.z.string(),call_id:b.z.string(),name:b.z.string(),arguments:b.z.string()})])}),Ul=b.z.object({type:b.z.literal("response.output_text.annotation.added"),annotation:b.z.object({type:b.z.literal("url_citation"),url:b.z.string(),title:b.z.string()})}),Bl=b.z.object({type:b.z.literal("response.reasoning_summary_text.delta"),item_id:b.z.string(),output_index:b.z.number(),summary_index:b.z.number(),delta:b.z.string()}),Jl=b.z.object({type:b.z.literal("error"),code:b.z.string(),message:b.z.string(),param:b.z.string().nullish(),sequence_number:b.z.number()}),Wl=b.z.union([$l,Dl,Ll,Hl,ql,Fl,Ul,Bl,Jl,b.z.object({type:b.z.string()}).passthrough()]);function Vl(r){return r.type==="response.output_text.delta"}function Kl(r){return r.type==="response.output_item.done"}function Gl(r){return r.type==="response.completed"||r.type==="response.incomplete"}function Xl(r){return r.type==="response.created"}function Yl(r){return r.type==="response.function_call_arguments.delta"}function Ql(r){return r.type==="response.output_item.added"}function Zl(r){return r.type==="response.output_text.annotation.added"}function eu(r){return r.type==="response.reasoning_summary_text.delta"}function tu(r){return r.type==="error"}function ru(r){return r.startsWith("o")||r.startsWith("gpt-5")?r.startsWith("o1-mini")||r.startsWith("o1-preview")?{isReasoningModel:true,systemMessageMode:"remove",requiredAutoTruncation:false}:{isReasoningModel:true,systemMessageMode:"developer",requiredAutoTruncation:false}:{isReasoningModel:false,systemMessageMode:"system",requiredAutoTruncation:false}}var nu=b.z.object({metadata:b.z.any().nullish(),parallelToolCalls:b.z.boolean().nullish(),previousResponseId:b.z.string().nullish(),store:b.z.boolean().nullish(),user:b.z.string().nullish(),reasoningEffort:b.z.string().nullish(),strictSchemas:b.z.boolean().nullish(),instructions:b.z.string().nullish(),reasoningSummary:b.z.string().nullish()}),ou=U("zod"),su=ou.z.object({});function iu({searchContextSize:r,userLocation:e}={}){return {type:"provider-defined",id:"openai.web_search_preview",args:{searchContextSize:r,userLocation:e},parameters:su}}var au={webSearchPreview:iu},yt=V(),nr=U("zod"),lu=nr.z.object({instructions:nr.z.string().nullish(),speed:nr.z.number().min(.25).max(4).default(1).nullish()}),uu=class{constructor(r,e){this.modelId=r,this.config=e,this.specificationVersion="v1";}get provider(){return this.config.provider}getArgs({text:r,voice:e="alloy",outputFormat:t="mp3",speed:n,instructions:o,providerOptions:s}){let i=[],a=(0, yt.parseProviderOptions)({provider:"openai",providerOptions:s,schema:lu}),l={model:this.modelId,input:r,voice:e,response_format:"mp3",speed:n,instructions:o};if(t&&(["mp3","opus","aac","flac","wav","pcm"].includes(t)?l.response_format=t:i.push({type:"unsupported-setting",setting:"outputFormat",details:`Unsupported output format: ${t}. Using mp3 instead.`})),a){let u={};for(let c in u){let d=u[c];d!==void 0&&(l[c]=d);}}return {requestBody:l,warnings:i}}async doGenerate(r){var e,t,n;let o=(n=(t=(e=this.config._internal)==null?void 0:e.currentDate)==null?void 0:t.call(e))!=null?n:new Date,{requestBody:s,warnings:i}=this.getArgs(r),{value:a,responseHeaders:l,rawValue:u}=await(0, yt.postJsonToApi)({url:this.config.url({path:"/audio/speech",modelId:this.modelId}),headers:(0, yt.combineHeaders)(this.config.headers(),r.headers),body:s,failedResponseHandler:ae,successfulResponseHandler:(0, yt.createBinaryResponseHandler)(),abortSignal:r.abortSignal,fetch:this.config.fetch});return {audio:a,warnings:i,request:{body:JSON.stringify(s)},response:{timestamp:o,modelId:this.modelId,headers:l,body:u}}}};function vo(r={}){var e,t,n;let o=(e=(0, ao.withoutTrailingSlash)(r.baseURL))!=null?e:"https://api.openai.com/v1",s=(t=r.compatibility)!=null?t:"compatible",i=(n=r.name)!=null?n:"openai",a=()=>({Authorization:`Bearer ${(0, ao.loadApiKey)({apiKey:r.apiKey,environmentVariableName:"OPENAI_API_KEY",description:"OpenAI"})}`,"OpenAI-Organization":r.organization,"OpenAI-Project":r.project,...r.headers}),l=(v,_={})=>new dl(v,_,{provider:`${i}.chat`,url:({path:T})=>`${o}${T}`,headers:a,compatibility:s,fetch:r.fetch}),u=(v,_={})=>new vl(v,_,{provider:`${i}.completion`,url:({path:T})=>`${o}${T}`,headers:a,compatibility:s,fetch:r.fetch}),c=(v,_={})=>new xl(v,_,{provider:`${i}.embedding`,url:({path:T})=>`${o}${T}`,headers:a,fetch:r.fetch}),d=(v,_={})=>new Tl(v,_,{provider:`${i}.image`,url:({path:T})=>`${o}${T}`,headers:a,fetch:r.fetch}),p=v=>new Al(v,{provider:`${i}.transcription`,url:({path:_})=>`${o}${_}`,headers:a,fetch:r.fetch}),m=v=>new uu(v,{provider:`${i}.speech`,url:({path:_})=>`${o}${_}`,headers:a,fetch:r.fetch}),h=(v,_)=>{if(new.target)throw new Error("The OpenAI model function cannot be called with the new keyword.");return v==="gpt-3.5-turbo-instruct"?u(v,_):l(v,_)},f=v=>new Nl(v,{provider:`${i}.responses`,url:({path:_})=>`${o}${_}`,headers:a,fetch:r.fetch}),g=function(v,_){return h(v,_)};return g.languageModel=h,g.chat=l,g.completion=u,g.responses=f,g.embedding=c,g.textEmbedding=c,g.textEmbeddingModel=c,g.image=d,g.imageModel=d,g.transcription=p,g.transcriptionModel=p,g.speech=m,g.speechModel=m,g.tools=au,g}var cu=vo({compatibility:"strict"});});var Eo=be((bm,Po)=>{y();var lr=Object.defineProperty,du=Object.getOwnPropertyDescriptor,pu=Object.getOwnPropertyNames,gu=Object.prototype.hasOwnProperty,mu=(r,e)=>{for(var t in e)lr(r,t,{get:e[t],enumerable:true});},fu=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of pu(e))!gu.call(r,o)&&o!==t&&lr(r,o,{get:()=>e[o],enumerable:!(n=du(e,o))||n.enumerable});return r},hu=r=>fu(lr({},"__esModule",{value:true}),r),Co={};mu(Co,{anthropic:()=>Fu,createAnthropic:()=>To});Po.exports=hu(Co);var yu=H(),bo=V(),_o=H(),Ee=V(),R=U("zod"),vu=V(),Ve=U("zod"),wu=Ve.z.object({type:Ve.z.literal("error"),error:Ve.z.object({type:Ve.z.string(),message:Ve.z.string()})}),xo=(0, vu.createJsonErrorResponseHandler)({errorSchema:wu,errorToMessage:r=>r.error.message}),bu=H();function _u(r){var e;let t=(e=r.tools)!=null&&e.length?r.tools:void 0,n=[],o=new Set;if(t==null)return {tools:void 0,tool_choice:void 0,toolWarnings:n,betas:o};let s=[];for(let l of t)switch(l.type){case "function":s.push({name:l.name,description:l.description,input_schema:l.parameters});break;case "provider-defined":switch(l.id){case "anthropic.computer_20250124":o.add("computer-use-2025-01-24"),s.push({name:l.name,type:"computer_20250124",display_width_px:l.args.displayWidthPx,display_height_px:l.args.displayHeightPx,display_number:l.args.displayNumber});break;case "anthropic.computer_20241022":o.add("computer-use-2024-10-22"),s.push({name:l.name,type:"computer_20241022",display_width_px:l.args.displayWidthPx,display_height_px:l.args.displayHeightPx,display_number:l.args.displayNumber});break;case "anthropic.text_editor_20250124":o.add("computer-use-2025-01-24"),s.push({name:l.name,type:"text_editor_20250124"});break;case "anthropic.text_editor_20241022":o.add("computer-use-2024-10-22"),s.push({name:l.name,type:"text_editor_20241022"});break;case "anthropic.bash_20250124":o.add("computer-use-2025-01-24"),s.push({name:l.name,type:"bash_20250124"});break;case "anthropic.bash_20241022":o.add("computer-use-2024-10-22"),s.push({name:l.name,type:"bash_20241022"});break;default:n.push({type:"unsupported-tool",tool:l});break}break;default:n.push({type:"unsupported-tool",tool:l});break}let i=r.toolChoice;if(i==null)return {tools:s,tool_choice:void 0,toolWarnings:n,betas:o};let a=i.type;switch(a){case "auto":return {tools:s,tool_choice:{type:"auto"},toolWarnings:n,betas:o};case "required":return {tools:s,tool_choice:{type:"any"},toolWarnings:n,betas:o};case "none":return {tools:void 0,tool_choice:void 0,toolWarnings:n,betas:o};case "tool":return {tools:s,tool_choice:{type:"tool",name:i.toolName},toolWarnings:n,betas:o};default:{let l=a;throw new bu.UnsupportedFunctionalityError({functionality:`Unsupported tool choice type: ${l}`})}}}var ko=H(),xu=V();function ku({prompt:r,sendReasoning:e,warnings:t}){var n,o,s,i;let a=new Set,l=Ru(r),u,c=[];function d(p){var m;let h=p?.anthropic;return (m=h?.cacheControl)!=null?m:h?.cache_control}for(let p=0;p<l.length;p++){let m=l[p],h=p===l.length-1,f=m.type;switch(f){case "system":{if(u!=null)throw new ko.UnsupportedFunctionalityError({functionality:"Multiple system messages that are separated by user/assistant messages"});u=m.messages.map(({content:g,providerMetadata:v})=>({type:"text",text:g,cache_control:d(v)}));break}case "user":{let g=[];for(let v of m.messages){let{role:_,content:T}=v;switch(_){case "user":{for(let w=0;w<T.length;w++){let x=T[w],S=w===T.length-1,z=(n=d(x.providerMetadata))!=null?n:S?d(v.providerMetadata):void 0;switch(x.type){case "text":{g.push({type:"text",text:x.text,cache_control:z});break}case "image":{g.push({type:"image",source:x.image instanceof URL?{type:"url",url:x.image.toString()}:{type:"base64",media_type:(o=x.mimeType)!=null?o:"image/jpeg",data:(0, xu.convertUint8ArrayToBase64)(x.image)},cache_control:z});break}case "file":{if(x.mimeType!=="application/pdf")throw new ko.UnsupportedFunctionalityError({functionality:"Non-PDF files in user messages"});a.add("pdfs-2024-09-25"),g.push({type:"document",source:x.data instanceof URL?{type:"url",url:x.data.toString()}:{type:"base64",media_type:"application/pdf",data:x.data},cache_control:z});break}}}break}case "tool":{for(let w=0;w<T.length;w++){let x=T[w],S=w===T.length-1,z=(s=d(x.providerMetadata))!=null?s:S?d(v.providerMetadata):void 0,C=x.content!=null?x.content.map(k=>{var O;switch(k.type){case "text":return {type:"text",text:k.text,cache_control:void 0};case "image":return {type:"image",source:{type:"base64",media_type:(O=k.mimeType)!=null?O:"image/jpeg",data:k.data},cache_control:void 0}}}):JSON.stringify(x.result);g.push({type:"tool_result",tool_use_id:x.toolCallId,content:C,is_error:x.isError,cache_control:z});}break}default:{let w=_;throw new Error(`Unsupported role: ${w}`)}}}c.push({role:"user",content:g});break}case "assistant":{let g=[];for(let v=0;v<m.messages.length;v++){let _=m.messages[v],T=v===m.messages.length-1,{content:w}=_;for(let x=0;x<w.length;x++){let S=w[x],z=x===w.length-1,C=(i=d(S.providerMetadata))!=null?i:z?d(_.providerMetadata):void 0;switch(S.type){case "text":{g.push({type:"text",text:h&&T&&z?S.text.trim():S.text,cache_control:C});break}case "reasoning":{e?g.push({type:"thinking",thinking:S.text,signature:S.signature,cache_control:C}):t.push({type:"other",message:"sending reasoning content is disabled for this model"});break}case "redacted-reasoning":{g.push({type:"redacted_thinking",data:S.data,cache_control:C});break}case "tool-call":{g.push({type:"tool_use",id:S.toolCallId,name:S.toolName,input:S.args,cache_control:C});break}}}}c.push({role:"assistant",content:g});break}default:{let g=f;throw new Error(`Unsupported type: ${g}`)}}}return {prompt:{system:u,messages:c},betas:a}}function Ru(r){let e=[],t;for(let n of r){let{role:o}=n;switch(o){case "system":{t?.type!=="system"&&(t={type:"system",messages:[]},e.push(t)),t.messages.push(n);break}case "assistant":{t?.type!=="assistant"&&(t={type:"assistant",messages:[]},e.push(t)),t.messages.push(n);break}case "user":{t?.type!=="user"&&(t={type:"user",messages:[]},e.push(t)),t.messages.push(n);break}case "tool":{t?.type!=="user"&&(t={type:"user",messages:[]},e.push(t)),t.messages.push(n);break}default:{let s=o;throw new Error(`Unsupported role: ${s}`)}}}return e}function Ro(r){switch(r){case "end_turn":case "stop_sequence":return "stop";case "tool_use":return "tool-calls";case "max_tokens":return "length";default:return "unknown"}}var Cu=class{constructor(r,e,t){this.specificationVersion="v1",this.defaultObjectGenerationMode="tool",this.modelId=r,this.settings=e,this.config=t;}supportsUrl(r){return r.protocol==="https:"}get provider(){return this.config.provider}get supportsImageUrls(){return this.config.supportsImageUrls}async getArgs({mode:r,prompt:e,maxTokens:t=4096,temperature:n,topP:o,topK:s,frequencyPenalty:i,presencePenalty:a,stopSequences:l,responseFormat:u,seed:c,providerMetadata:d}){var p,m,h;let f=r.type,g=[];i!=null&&g.push({type:"unsupported-setting",setting:"frequencyPenalty"}),a!=null&&g.push({type:"unsupported-setting",setting:"presencePenalty"}),c!=null&&g.push({type:"unsupported-setting",setting:"seed"}),u!=null&&u.type!=="text"&&g.push({type:"unsupported-setting",setting:"responseFormat",details:"JSON response format is not supported."});let{prompt:v,betas:_}=ku({prompt:e,sendReasoning:(p=this.settings.sendReasoning)!=null?p:true,warnings:g}),T=(0, Ee.parseProviderOptions)({provider:"anthropic",providerOptions:d,schema:Eu}),w=((m=T?.thinking)==null?void 0:m.type)==="enabled",x=(h=T?.thinking)==null?void 0:h.budgetTokens,S={model:this.modelId,max_tokens:t,temperature:n,top_k:s,top_p:o,stop_sequences:l,...w&&{thinking:{type:"enabled",budget_tokens:x}},system:v.system,messages:v.messages};if(w){if(x==null)throw new _o.UnsupportedFunctionalityError({functionality:"thinking requires a budget"});S.temperature!=null&&(S.temperature=void 0,g.push({type:"unsupported-setting",setting:"temperature",details:"temperature is not supported when thinking is enabled"})),s!=null&&(S.top_k=void 0,g.push({type:"unsupported-setting",setting:"topK",details:"topK is not supported when thinking is enabled"})),o!=null&&(S.top_p=void 0,g.push({type:"unsupported-setting",setting:"topP",details:"topP is not supported when thinking is enabled"})),S.max_tokens=t+x;}switch(f){case "regular":{let{tools:z,tool_choice:C,toolWarnings:k,betas:O}=_u(r);return {args:{...S,tools:z,tool_choice:C},warnings:[...g,...k],betas:new Set([..._,...O])}}case "object-json":throw new _o.UnsupportedFunctionalityError({functionality:"json-mode object generation"});case "object-tool":{let{name:z,description:C,parameters:k}=r.tool;return {args:{...S,tools:[{name:z,description:C,input_schema:k}],tool_choice:{type:"tool",name:z}},warnings:g,betas:_}}default:{let z=f;throw new Error(`Unsupported type: ${z}`)}}}async getHeaders({betas:r,headers:e}){return (0, Ee.combineHeaders)(await(0, Ee.resolve)(this.config.headers),r.size>0?{"anthropic-beta":Array.from(r).join(",")}:{},e)}buildRequestUrl(r){var e,t,n;return (n=(t=(e=this.config).buildRequestUrl)==null?void 0:t.call(e,this.config.baseURL,r))!=null?n:`${this.config.baseURL}/messages`}transformRequestBody(r){var e,t,n;return (n=(t=(e=this.config).transformRequestBody)==null?void 0:t.call(e,r))!=null?n:r}async doGenerate(r){var e,t,n,o;let{args:s,warnings:i,betas:a}=await this.getArgs(r),{responseHeaders:l,value:u,rawValue:c}=await(0, Ee.postJsonToApi)({url:this.buildRequestUrl(false),headers:await this.getHeaders({betas:a,headers:r.headers}),body:this.transformRequestBody(s),failedResponseHandler:xo,successfulResponseHandler:(0, Ee.createJsonResponseHandler)(Tu),abortSignal:r.abortSignal,fetch:this.config.fetch}),{messages:d,...p}=s,m="";for(let g of u.content)g.type==="text"&&(m+=g.text);let h;if(u.content.some(g=>g.type==="tool_use")){h=[];for(let g of u.content)g.type==="tool_use"&&h.push({toolCallType:"function",toolCallId:g.id,toolName:g.name,args:JSON.stringify(g.input)});}let f=u.content.filter(g=>g.type==="redacted_thinking"||g.type==="thinking").map(g=>g.type==="thinking"?{type:"text",text:g.thinking,signature:g.signature}:{type:"redacted",data:g.data});return {text:m,reasoning:f.length>0?f:void 0,toolCalls:h,finishReason:Ro(u.stop_reason),usage:{promptTokens:u.usage.input_tokens,completionTokens:u.usage.output_tokens},rawCall:{rawPrompt:d,rawSettings:p},rawResponse:{headers:l,body:c},response:{id:(e=u.id)!=null?e:void 0,modelId:(t=u.model)!=null?t:void 0},warnings:i,providerMetadata:{anthropic:{cacheCreationInputTokens:(n=u.usage.cache_creation_input_tokens)!=null?n:null,cacheReadInputTokens:(o=u.usage.cache_read_input_tokens)!=null?o:null}},request:{body:JSON.stringify(s)}}}async doStream(r){let{args:e,warnings:t,betas:n}=await this.getArgs(r),o={...e,stream:true},{responseHeaders:s,value:i}=await(0, Ee.postJsonToApi)({url:this.buildRequestUrl(true),headers:await this.getHeaders({betas:n,headers:r.headers}),body:this.transformRequestBody(o),failedResponseHandler:xo,successfulResponseHandler:(0, Ee.createEventSourceResponseHandler)(Pu),abortSignal:r.abortSignal,fetch:this.config.fetch}),{messages:a,...l}=e,u="unknown",c={promptTokens:Number.NaN,completionTokens:Number.NaN},d={},p,m;return {stream:i.pipeThrough(new TransformStream({transform(h,f){var g,v,_,T;if(!h.success){f.enqueue({type:"error",error:h.error});return}let w=h.value;switch(w.type){case "ping":return;case "content_block_start":{let x=w.content_block.type;switch(m=x,x){case "text":case "thinking":return;case "redacted_thinking":{f.enqueue({type:"redacted-reasoning",data:w.content_block.data});return}case "tool_use":{d[w.index]={toolCallId:w.content_block.id,toolName:w.content_block.name,jsonText:""};return}default:{let S=x;throw new Error(`Unsupported content block type: ${S}`)}}}case "content_block_stop":{if(d[w.index]!=null){let x=d[w.index];f.enqueue({type:"tool-call",toolCallType:"function",toolCallId:x.toolCallId,toolName:x.toolName,args:x.jsonText}),delete d[w.index];}m=void 0;return}case "content_block_delta":{let x=w.delta.type;switch(x){case "text_delta":{f.enqueue({type:"text-delta",textDelta:w.delta.text});return}case "thinking_delta":{f.enqueue({type:"reasoning",textDelta:w.delta.thinking});return}case "signature_delta":{m==="thinking"&&f.enqueue({type:"reasoning-signature",signature:w.delta.signature});return}case "input_json_delta":{let S=d[w.index];f.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:S.toolCallId,toolName:S.toolName,argsTextDelta:w.delta.partial_json}),S.jsonText+=w.delta.partial_json;return}default:{let S=x;throw new Error(`Unsupported delta type: ${S}`)}}}case "message_start":{c.promptTokens=w.message.usage.input_tokens,c.completionTokens=w.message.usage.output_tokens,p={anthropic:{cacheCreationInputTokens:(g=w.message.usage.cache_creation_input_tokens)!=null?g:null,cacheReadInputTokens:(v=w.message.usage.cache_read_input_tokens)!=null?v:null}},f.enqueue({type:"response-metadata",id:(_=w.message.id)!=null?_:void 0,modelId:(T=w.message.model)!=null?T:void 0});return}case "message_delta":{c.completionTokens=w.usage.output_tokens,u=Ro(w.delta.stop_reason);return}case "message_stop":{f.enqueue({type:"finish",finishReason:u,usage:c,providerMetadata:p});return}case "error":{f.enqueue({type:"error",error:w.error});return}default:{let x=w;throw new Error(`Unsupported chunk type: ${x}`)}}}})),rawCall:{rawPrompt:a,rawSettings:l},rawResponse:{headers:s},warnings:t,request:{body:JSON.stringify(o)}}}},Tu=R.z.object({type:R.z.literal("message"),id:R.z.string().nullish(),model:R.z.string().nullish(),content:R.z.array(R.z.discriminatedUnion("type",[R.z.object({type:R.z.literal("text"),text:R.z.string()}),R.z.object({type:R.z.literal("thinking"),thinking:R.z.string(),signature:R.z.string()}),R.z.object({type:R.z.literal("redacted_thinking"),data:R.z.string()}),R.z.object({type:R.z.literal("tool_use"),id:R.z.string(),name:R.z.string(),input:R.z.unknown()})])),stop_reason:R.z.string().nullish(),usage:R.z.object({input_tokens:R.z.number(),output_tokens:R.z.number(),cache_creation_input_tokens:R.z.number().nullish(),cache_read_input_tokens:R.z.number().nullish()})}),Pu=R.z.discriminatedUnion("type",[R.z.object({type:R.z.literal("message_start"),message:R.z.object({id:R.z.string().nullish(),model:R.z.string().nullish(),usage:R.z.object({input_tokens:R.z.number(),output_tokens:R.z.number(),cache_creation_input_tokens:R.z.number().nullish(),cache_read_input_tokens:R.z.number().nullish()})})}),R.z.object({type:R.z.literal("content_block_start"),index:R.z.number(),content_block:R.z.discriminatedUnion("type",[R.z.object({type:R.z.literal("text"),text:R.z.string()}),R.z.object({type:R.z.literal("thinking"),thinking:R.z.string()}),R.z.object({type:R.z.literal("tool_use"),id:R.z.string(),name:R.z.string()}),R.z.object({type:R.z.literal("redacted_thinking"),data:R.z.string()})])}),R.z.object({type:R.z.literal("content_block_delta"),index:R.z.number(),delta:R.z.discriminatedUnion("type",[R.z.object({type:R.z.literal("input_json_delta"),partial_json:R.z.string()}),R.z.object({type:R.z.literal("text_delta"),text:R.z.string()}),R.z.object({type:R.z.literal("thinking_delta"),thinking:R.z.string()}),R.z.object({type:R.z.literal("signature_delta"),signature:R.z.string()})])}),R.z.object({type:R.z.literal("content_block_stop"),index:R.z.number()}),R.z.object({type:R.z.literal("error"),error:R.z.object({type:R.z.string(),message:R.z.string()})}),R.z.object({type:R.z.literal("message_delta"),delta:R.z.object({stop_reason:R.z.string().nullish()}),usage:R.z.object({output_tokens:R.z.number()})}),R.z.object({type:R.z.literal("message_stop")}),R.z.object({type:R.z.literal("ping")})]),Eu=R.z.object({thinking:R.z.object({type:R.z.union([R.z.literal("enabled"),R.z.literal("disabled")]),budgetTokens:R.z.number().optional()}).optional()}),j=U("zod"),Au=j.z.object({command:j.z.string(),restart:j.z.boolean().optional()});function Su(r={}){return {type:"provider-defined",id:"anthropic.bash_20241022",args:{},parameters:Au,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var Iu=j.z.object({command:j.z.string(),restart:j.z.boolean().optional()});function Ou(r={}){return {type:"provider-defined",id:"anthropic.bash_20250124",args:{},parameters:Iu,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var zu=j.z.object({command:j.z.enum(["view","create","str_replace","insert","undo_edit"]),path:j.z.string(),file_text:j.z.string().optional(),insert_line:j.z.number().int().optional(),new_str:j.z.string().optional(),old_str:j.z.string().optional(),view_range:j.z.array(j.z.number().int()).optional()});function Mu(r={}){return {type:"provider-defined",id:"anthropic.text_editor_20241022",args:{},parameters:zu,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var ju=j.z.object({command:j.z.enum(["view","create","str_replace","insert","undo_edit"]),path:j.z.string(),file_text:j.z.string().optional(),insert_line:j.z.number().int().optional(),new_str:j.z.string().optional(),old_str:j.z.string().optional(),view_range:j.z.array(j.z.number().int()).optional()});function Nu(r={}){return {type:"provider-defined",id:"anthropic.text_editor_20250124",args:{},parameters:ju,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var $u=j.z.object({action:j.z.enum(["key","type","mouse_move","left_click","left_click_drag","right_click","middle_click","double_click","screenshot","cursor_position"]),coordinate:j.z.array(j.z.number().int()).optional(),text:j.z.string().optional()});function Du(r){return {type:"provider-defined",id:"anthropic.computer_20241022",args:{displayWidthPx:r.displayWidthPx,displayHeightPx:r.displayHeightPx,displayNumber:r.displayNumber},parameters:$u,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var Lu=j.z.object({action:j.z.enum(["key","hold_key","type","cursor_position","mouse_move","left_mouse_down","left_mouse_up","left_click","left_click_drag","right_click","middle_click","double_click","triple_click","scroll","wait","screenshot"]),coordinate:j.z.tuple([j.z.number().int(),j.z.number().int()]).optional(),duration:j.z.number().optional(),scroll_amount:j.z.number().optional(),scroll_direction:j.z.enum(["up","down","left","right"]).optional(),start_coordinate:j.z.tuple([j.z.number().int(),j.z.number().int()]).optional(),text:j.z.string().optional()});function Hu(r){return {type:"provider-defined",id:"anthropic.computer_20250124",args:{displayWidthPx:r.displayWidthPx,displayHeightPx:r.displayHeightPx,displayNumber:r.displayNumber},parameters:Lu,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var qu={bash_20241022:Su,bash_20250124:Ou,textEditor_20241022:Mu,textEditor_20250124:Nu,computer_20241022:Du,computer_20250124:Hu};function To(r={}){var e;let t=(e=(0, bo.withoutTrailingSlash)(r.baseURL))!=null?e:"https://api.anthropic.com/v1",n=()=>({"anthropic-version":"2023-06-01","x-api-key":(0, bo.loadApiKey)({apiKey:r.apiKey,environmentVariableName:"ANTHROPIC_API_KEY",description:"Anthropic"}),...r.headers}),o=(i,a={})=>new Cu(i,a,{provider:"anthropic.messages",baseURL:t,headers:n,fetch:r.fetch,supportsImageUrls:true}),s=function(i,a){if(new.target)throw new Error("The Anthropic model function cannot be called with the new keyword.");return o(i,a)};return s.languageModel=o,s.chat=o,s.messages=o,s.textEmbeddingModel=i=>{throw new yu.NoSuchModelError({modelId:i,modelType:"textEmbeddingModel"})},s.tools=qu,s}var Fu=To();});var Fo=be((km,qo)=>{y();var pr=Object.defineProperty,Uu=Object.getOwnPropertyDescriptor,Bu=Object.getOwnPropertyNames,Ju=Object.prototype.hasOwnProperty,Wu=(r,e)=>{for(var t in e)pr(r,t,{get:e[t],enumerable:true});},Vu=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Bu(e))!Ju.call(r,o)&&o!==t&&pr(r,o,{get:()=>e[o],enumerable:!(n=Uu(e,o))||n.enumerable});return r},Ku=r=>Vu(pr({},"__esModule",{value:true}),r),No={};Wu(No,{createGoogleGenerativeAI:()=>Ho,google:()=>dc});qo.exports=Ku(No);var ur=V(),fe=V(),P=U("zod");function Z(r){if(Gu(r))return;if(typeof r=="boolean")return {type:"boolean",properties:{}};let{type:e,description:t,required:n,properties:o,items:s,allOf:i,anyOf:a,oneOf:l,format:u,const:c,minLength:d,enum:p}=r,m={};if(t&&(m.description=t),n&&(m.required=n),u&&(m.format=u),c!==void 0&&(m.enum=[c]),e&&(Array.isArray(e)?e.includes("null")?(m.type=e.filter(h=>h!=="null")[0],m.nullable=true):m.type=e:e==="null"?m.type="null":m.type=e),p!==void 0&&(m.enum=p),o!=null&&(m.properties=Object.entries(o).reduce((h,[f,g])=>(h[f]=Z(g),h),{})),s&&(m.items=Array.isArray(s)?s.map(Z):Z(s)),i&&(m.allOf=i.map(Z)),a)if(a.some(h=>typeof h=="object"&&h?.type==="null")){let h=a.filter(f=>!(typeof f=="object"&&f?.type==="null"));if(h.length===1){let f=Z(h[0]);typeof f=="object"&&(m.nullable=true,Object.assign(m,f));}else m.anyOf=h.map(Z),m.nullable=true;}else m.anyOf=a.map(Z);return l&&(m.oneOf=l.map(Z)),d!==void 0&&(m.minLength=d),m}function Gu(r){return r!=null&&typeof r=="object"&&r.type==="object"&&(r.properties==null||Object.keys(r.properties).length===0)&&!r.additionalProperties}var cr=H(),Xu=V();function Yu(r){var e,t;let n=[],o=[],s=true;for(let{role:i,content:a}of r)switch(i){case "system":{if(!s)throw new cr.UnsupportedFunctionalityError({functionality:"system messages are only supported at the beginning of the conversation"});n.push({text:a});break}case "user":{s=false;let l=[];for(let u of a)switch(u.type){case "text":{l.push({text:u.text});break}case "image":{l.push(u.image instanceof URL?{fileData:{mimeType:(e=u.mimeType)!=null?e:"image/jpeg",fileUri:u.image.toString()}}:{inlineData:{mimeType:(t=u.mimeType)!=null?t:"image/jpeg",data:(0, Xu.convertUint8ArrayToBase64)(u.image)}});break}case "file":{l.push(u.data instanceof URL?{fileData:{mimeType:u.mimeType,fileUri:u.data.toString()}}:{inlineData:{mimeType:u.mimeType,data:u.data}});break}}o.push({role:"user",parts:l});break}case "assistant":{s=false,o.push({role:"model",parts:a.map(l=>{switch(l.type){case "text":return l.text.length===0?void 0:{text:l.text};case "file":{if(l.mimeType!=="image/png")throw new cr.UnsupportedFunctionalityError({functionality:"Only PNG images are supported in assistant messages"});if(l.data instanceof URL)throw new cr.UnsupportedFunctionalityError({functionality:"File data URLs in assistant messages are not supported"});return {inlineData:{mimeType:l.mimeType,data:l.data}}}case "tool-call":return {functionCall:{name:l.toolName,args:l.args}}}}).filter(l=>l!==void 0)});break}case "tool":{s=false,o.push({role:"user",parts:a.map(l=>({functionResponse:{name:l.toolName,response:{name:l.toolName,content:l.result}}}))});break}}return {systemInstruction:n.length>0?{parts:n}:void 0,contents:o}}function Ao(r){return r.includes("/")?r:`models/${r}`}var Qu=V(),Ke=U("zod"),Zu=Ke.z.object({error:Ke.z.object({code:Ke.z.number().nullable(),message:Ke.z.string(),status:Ke.z.string()})}),dr=(0, Qu.createJsonErrorResponseHandler)({errorSchema:Zu,errorToMessage:r=>r.error.message}),ec=H();function tc(r,e,t,n){var o,s;let i=(o=r.tools)!=null&&o.length?r.tools:void 0,a=[],l=n.includes("gemini-2"),u=n.includes("gemini-1.5-flash")&&!n.includes("-8b");if(e)return {tools:l?{googleSearch:{}}:{googleSearchRetrieval:!u||!t?{}:{dynamicRetrievalConfig:t}},toolConfig:void 0,toolWarnings:a};if(i==null)return {tools:void 0,toolConfig:void 0,toolWarnings:a};let c=[];for(let m of i)m.type==="provider-defined"?a.push({type:"unsupported-tool",tool:m}):c.push({name:m.name,description:(s=m.description)!=null?s:"",parameters:Z(m.parameters)});let d=r.toolChoice;if(d==null)return {tools:{functionDeclarations:c},toolConfig:void 0,toolWarnings:a};let p=d.type;switch(p){case "auto":return {tools:{functionDeclarations:c},toolConfig:{functionCallingConfig:{mode:"AUTO"}},toolWarnings:a};case "none":return {tools:{functionDeclarations:c},toolConfig:{functionCallingConfig:{mode:"NONE"}},toolWarnings:a};case "required":return {tools:{functionDeclarations:c},toolConfig:{functionCallingConfig:{mode:"ANY"}},toolWarnings:a};case "tool":return {tools:{functionDeclarations:c},toolConfig:{functionCallingConfig:{mode:"ANY",allowedFunctionNames:[d.toolName]}},toolWarnings:a};default:{let m=p;throw new ec.UnsupportedFunctionalityError({functionality:`Unsupported tool choice type: ${m}`})}}}function So({finishReason:r,hasToolCalls:e}){switch(r){case "STOP":return e?"tool-calls":"stop";case "MAX_TOKENS":return "length";case "IMAGE_SAFETY":case "RECITATION":case "SAFETY":case "BLOCKLIST":case "PROHIBITED_CONTENT":case "SPII":return "content-filter";case "FINISH_REASON_UNSPECIFIED":case "OTHER":return "other";case "MALFORMED_FUNCTION_CALL":return "error";default:return "unknown"}}var rc=class{constructor(r,e,t){this.specificationVersion="v1",this.defaultObjectGenerationMode="json",this.supportsImageUrls=false,this.modelId=r,this.settings=e,this.config=t;}get supportsStructuredOutputs(){var r;return (r=this.settings.structuredOutputs)!=null?r:true}get provider(){return this.config.provider}async getArgs({mode:r,prompt:e,maxTokens:t,temperature:n,topP:o,topK:s,frequencyPenalty:i,presencePenalty:a,stopSequences:l,responseFormat:u,seed:c,providerMetadata:d}){var p,m,h;let f=r.type,g=[],v=(0, fe.parseProviderOptions)({provider:"google",providerOptions:d,schema:ic});((p=v?.thinkingConfig)==null?void 0:p.includeThoughts)===true&&!this.config.provider.startsWith("google.vertex.")&&g.push({type:"other",message:`The 'includeThoughts' option is only supported with the Google Vertex provider and might not be supported or could behave unexpectedly with the current Google provider (${this.config.provider}).`});let _={maxOutputTokens:t,temperature:n,topK:s,topP:o,frequencyPenalty:i,presencePenalty:a,stopSequences:l,seed:c,responseMimeType:u?.type==="json"?"application/json":void 0,responseSchema:u?.type==="json"&&u.schema!=null&&this.supportsStructuredOutputs?Z(u.schema):void 0,...this.settings.audioTimestamp&&{audioTimestamp:this.settings.audioTimestamp},responseModalities:v?.responseModalities,thinkingConfig:v?.thinkingConfig},{contents:T,systemInstruction:w}=Yu(e);switch(f){case "regular":{let{tools:x,toolConfig:S,toolWarnings:z}=tc(r,(m=this.settings.useSearchGrounding)!=null?m:false,this.settings.dynamicRetrievalConfig,this.modelId);return {args:{generationConfig:_,contents:T,systemInstruction:w,safetySettings:this.settings.safetySettings,tools:x,toolConfig:S,cachedContent:this.settings.cachedContent},warnings:[...g,...z]}}case "object-json":return {args:{generationConfig:{..._,responseMimeType:"application/json",responseSchema:r.schema!=null&&this.supportsStructuredOutputs?Z(r.schema):void 0},contents:T,systemInstruction:w,safetySettings:this.settings.safetySettings,cachedContent:this.settings.cachedContent},warnings:g};case "object-tool":return {args:{generationConfig:_,contents:T,systemInstruction:w,tools:{functionDeclarations:[{name:r.tool.name,description:(h=r.tool.description)!=null?h:"",parameters:Z(r.tool.parameters)}]},toolConfig:{functionCallingConfig:{mode:"ANY"}},safetySettings:this.settings.safetySettings,cachedContent:this.settings.cachedContent},warnings:g};default:{let x=f;throw new Error(`Unsupported type: ${x}`)}}}supportsUrl(r){return this.config.isSupportedUrl(r)}async doGenerate(r){var e,t,n,o,s;let{args:i,warnings:a}=await this.getArgs(r),l=JSON.stringify(i),u=(0, fe.combineHeaders)(await(0, fe.resolve)(this.config.headers),r.headers),{responseHeaders:c,value:d,rawValue:p}=await(0, fe.postJsonToApi)({url:`${this.config.baseURL}/${Ao(this.modelId)}:generateContent`,headers:u,body:i,failedResponseHandler:dr,successfulResponseHandler:(0, fe.createJsonResponseHandler)(oc),abortSignal:r.abortSignal,fetch:this.config.fetch}),{contents:m,...h}=i,f=d.candidates[0],g=f.content==null||typeof f.content!="object"||!("parts"in f.content)?[]:f.content.parts,v=Io({parts:g,generateId:this.config.generateId}),_=d.usageMetadata;return {text:Oo(g),reasoning:zo(g),files:(e=Mo(g))==null?void 0:e.map(T=>({data:T.inlineData.data,mimeType:T.inlineData.mimeType})),toolCalls:v,finishReason:So({finishReason:f.finishReason,hasToolCalls:v!=null&&v.length>0}),usage:{promptTokens:(t=_?.promptTokenCount)!=null?t:NaN,completionTokens:(n=_?.candidatesTokenCount)!=null?n:NaN},rawCall:{rawPrompt:m,rawSettings:h},rawResponse:{headers:c,body:p},warnings:a,providerMetadata:{google:{groundingMetadata:(o=f.groundingMetadata)!=null?o:null,safetyRatings:(s=f.safetyRatings)!=null?s:null}},sources:jo({groundingMetadata:f.groundingMetadata,generateId:this.config.generateId}),request:{body:l}}}async doStream(r){let{args:e,warnings:t}=await this.getArgs(r),n=JSON.stringify(e),o=(0, fe.combineHeaders)(await(0, fe.resolve)(this.config.headers),r.headers),{responseHeaders:s,value:i}=await(0, fe.postJsonToApi)({url:`${this.config.baseURL}/${Ao(this.modelId)}:streamGenerateContent?alt=sse`,headers:o,body:e,failedResponseHandler:dr,successfulResponseHandler:(0, fe.createEventSourceResponseHandler)(sc),abortSignal:r.abortSignal,fetch:this.config.fetch}),{contents:a,...l}=e,u="unknown",c={promptTokens:Number.NaN,completionTokens:Number.NaN},d,p=this.config.generateId,m=false;return {stream:i.pipeThrough(new TransformStream({transform(h,f){var g,v,_,T,w,x;if(!h.success){f.enqueue({type:"error",error:h.error});return}let S=h.value,z=S.usageMetadata;z!=null&&(c={promptTokens:(g=z.promptTokenCount)!=null?g:NaN,completionTokens:(v=z.candidatesTokenCount)!=null?v:NaN});let C=(_=S.candidates)==null?void 0:_[0];if(C==null)return;let k=C.content;if(k!=null){let O=Oo(k.parts);O!=null&&f.enqueue({type:"text-delta",textDelta:O});let I=zo(k.parts);if(I!=null)for(let L of I)f.enqueue({type:"reasoning",textDelta:L.text});let J=Mo(k.parts);if(J!=null)for(let L of J)f.enqueue({type:"file",mimeType:L.inlineData.mimeType,data:L.inlineData.data});let G=Io({parts:k.parts,generateId:p});if(G!=null)for(let L of G)f.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:L.toolCallId,toolName:L.toolName,argsTextDelta:L.args}),f.enqueue({type:"tool-call",toolCallType:"function",toolCallId:L.toolCallId,toolName:L.toolName,args:L.args}),m=true;}if(C.finishReason!=null){u=So({finishReason:C.finishReason,hasToolCalls:m});let O=(T=jo({groundingMetadata:C.groundingMetadata,generateId:p}))!=null?T:[];for(let I of O)f.enqueue({type:"source",source:I});d={google:{groundingMetadata:(w=C.groundingMetadata)!=null?w:null,safetyRatings:(x=C.safetyRatings)!=null?x:null}};}},flush(h){h.enqueue({type:"finish",finishReason:u,usage:c,providerMetadata:d});}})),rawCall:{rawPrompt:a,rawSettings:l},rawResponse:{headers:s},warnings:t,request:{body:n}}}};function Io({parts:r,generateId:e}){let t=r?.filter(n=>"functionCall"in n);return t==null||t.length===0?void 0:t.map(n=>({toolCallType:"function",toolCallId:e(),toolName:n.functionCall.name,args:JSON.stringify(n.functionCall.args)}))}function Oo(r){let e=r?.filter(t=>"text"in t&&t.thought!==true);return e==null||e.length===0?void 0:e.map(t=>t.text).join("")}function zo(r){let e=r?.filter(t=>"text"in t&&t.thought===true&&t.text!=null);return e==null||e.length===0?void 0:e.map(t=>({type:"text",text:t.text}))}function Mo(r){return r?.filter(e=>"inlineData"in e)}function jo({groundingMetadata:r,generateId:e}){var t;return (t=r?.groundingChunks)==null?void 0:t.filter(n=>n.web!=null).map(n=>({sourceType:"url",id:e(),url:n.web.uri,title:n.web.title}))}var $o=P.z.object({parts:P.z.array(P.z.union([P.z.object({functionCall:P.z.object({name:P.z.string(),args:P.z.unknown()})}),P.z.object({inlineData:P.z.object({mimeType:P.z.string(),data:P.z.string()})}),P.z.object({text:P.z.string().nullish(),thought:P.z.boolean().nullish()})])).nullish()}),nc=P.z.object({web:P.z.object({uri:P.z.string(),title:P.z.string()}).nullish(),retrievedContext:P.z.object({uri:P.z.string(),title:P.z.string()}).nullish()}),Do=P.z.object({webSearchQueries:P.z.array(P.z.string()).nullish(),retrievalQueries:P.z.array(P.z.string()).nullish(),searchEntryPoint:P.z.object({renderedContent:P.z.string()}).nullish(),groundingChunks:P.z.array(nc).nullish(),groundingSupports:P.z.array(P.z.object({segment:P.z.object({startIndex:P.z.number().nullish(),endIndex:P.z.number().nullish(),text:P.z.string().nullish()}),segment_text:P.z.string().nullish(),groundingChunkIndices:P.z.array(P.z.number()).nullish(),supportChunkIndices:P.z.array(P.z.number()).nullish(),confidenceScores:P.z.array(P.z.number()).nullish(),confidenceScore:P.z.array(P.z.number()).nullish()})).nullish(),retrievalMetadata:P.z.union([P.z.object({webDynamicRetrievalScore:P.z.number()}),P.z.object({})]).nullish()}),Lo=P.z.object({category:P.z.string().nullish(),probability:P.z.string().nullish(),probabilityScore:P.z.number().nullish(),severity:P.z.string().nullish(),severityScore:P.z.number().nullish(),blocked:P.z.boolean().nullish()}),oc=P.z.object({candidates:P.z.array(P.z.object({content:$o.nullish().or(P.z.object({}).strict()),finishReason:P.z.string().nullish(),safetyRatings:P.z.array(Lo).nullish(),groundingMetadata:Do.nullish()})),usageMetadata:P.z.object({promptTokenCount:P.z.number().nullish(),candidatesTokenCount:P.z.number().nullish(),totalTokenCount:P.z.number().nullish()}).nullish()}),sc=P.z.object({candidates:P.z.array(P.z.object({content:$o.nullish(),finishReason:P.z.string().nullish(),safetyRatings:P.z.array(Lo).nullish(),groundingMetadata:Do.nullish()})).nullish(),usageMetadata:P.z.object({promptTokenCount:P.z.number().nullish(),candidatesTokenCount:P.z.number().nullish(),totalTokenCount:P.z.number().nullish()}).nullish()}),ic=P.z.object({responseModalities:P.z.array(P.z.enum(["TEXT","IMAGE"])).nullish(),thinkingConfig:P.z.object({thinkingBudget:P.z.number().nullish(),includeThoughts:P.z.boolean().nullish()}).nullish()}),ac=H(),bt=V(),Ge=U("zod"),lc=class{constructor(r,e,t){this.specificationVersion="v1",this.modelId=r,this.settings=e,this.config=t;}get provider(){return this.config.provider}get maxEmbeddingsPerCall(){return 2048}get supportsParallelCalls(){return true}async doEmbed({values:r,headers:e,abortSignal:t}){if(r.length>this.maxEmbeddingsPerCall)throw new ac.TooManyEmbeddingValuesForCallError({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:r});let n=(0, bt.combineHeaders)(await(0, bt.resolve)(this.config.headers),e),{responseHeaders:o,value:s}=await(0, bt.postJsonToApi)({url:`${this.config.baseURL}/models/${this.modelId}:batchEmbedContents`,headers:n,body:{requests:r.map(i=>({model:`models/${this.modelId}`,content:{role:"user",parts:[{text:i}]},outputDimensionality:this.settings.outputDimensionality,taskType:this.settings.taskType}))},failedResponseHandler:dr,successfulResponseHandler:(0, bt.createJsonResponseHandler)(uc),abortSignal:t,fetch:this.config.fetch});return {embeddings:s.embeddings.map(i=>i.values),usage:void 0,rawResponse:{headers:o}}}},uc=Ge.z.object({embeddings:Ge.z.array(Ge.z.object({values:Ge.z.array(Ge.z.number())}))});function cc(r){return r.toString().startsWith("https://generativelanguage.googleapis.com/v1beta/files/")}function Ho(r={}){var e;let t=(e=(0, ur.withoutTrailingSlash)(r.baseURL))!=null?e:"https://generativelanguage.googleapis.com/v1beta",n=()=>({"x-goog-api-key":(0, ur.loadApiKey)({apiKey:r.apiKey,environmentVariableName:"GOOGLE_GENERATIVE_AI_API_KEY",description:"Google Generative AI"}),...r.headers}),o=(a,l={})=>{var u;return new rc(a,l,{provider:"google.generative-ai",baseURL:t,headers:n,generateId:(u=r.generateId)!=null?u:ur.generateId,isSupportedUrl:cc,fetch:r.fetch})},s=(a,l={})=>new lc(a,l,{provider:"google.generative-ai",baseURL:t,headers:n,fetch:r.fetch}),i=function(a,l){if(new.target)throw new Error("The Google Generative AI model function cannot be called with the new keyword.");return o(a,l)};return i.languageModel=o,i.chat=o,i.generativeAI=o,i.embedding=s,i.textEmbedding=s,i.textEmbeddingModel=s,i}var dc=Ho();});var Uo,Bo;exports.VercelProviderRuntime=void 0;var gr=le(()=>{y();xe();Uo=10,Bo=50,exports.VercelProviderRuntime=class{config;constructor(e){this.config=e;}async query(e,t){return this._run(e,"query",t)}async execute(e,t){return this._run(e,"execute",t)}async _run(e,t,n){let{generateText:o,tool:s}=await import('ai'),i=this.convertTools(n?.tools??[],s),a=this.createModel(n?.model),l=Math.min(n?.maxSteps??this.config.maxSteps??Uo,Bo);try{let u=0,c=await o({model:a,system:n?.systemPrompt??void 0,prompt:e,tools:i,maxSteps:l,...this.config.temperature!==void 0&&{temperature:this.config.temperature},...this.config.maxTokens!==void 0&&{maxTokens:this.config.maxTokens},onStepFinish:p=>{if(u++,!!n?.onOutput){if(p.toolCalls&&p.toolCalls.length>0)for(let m of p.toolCalls)n.onOutput(JSON.stringify({type:"assistant",message:{content:[{type:"tool_use",id:m.toolCallId,name:m.toolName,input:m.args}]}}),"stdout");if(p.toolResults&&p.toolResults.length>0)for(let m of p.toolResults){let h=typeof m.result=="string"?m.result:JSON.stringify(m.result);n.onOutput(JSON.stringify({type:"user",message:{content:[{type:"tool_result",tool_use_id:m.toolCallId,output:h,is_error:!1}]}}),"stdout");}}}}),d=new Set((n?.tools??[]).filter(p=>!p.execute).map(p=>p.name));if(c.finishReason==="tool-calls"&&Array.isArray(c.toolCalls)&&c.toolCalls.length>0){let p=c.toolCalls.filter(m=>d.has(m.toolName));if(p.length>0){let m=p[0];throw new exports.ClientToolCallRequiredError({toolCallId:m.toolCallId,toolName:m.toolName,args:m.args},{userMessage:e,responseMessages:c.response?.messages??[],toolDefinitions:n?.tools??[],maxSteps:l,systemPrompt:n?.systemPrompt,modelOverride:n?.model})}}if(n?.onUsage&&c.usage){let p={inputTokens:c.usage.promptTokens??0,outputTokens:c.usage.completionTokens??0,cachedInputTokens:0,costUsd:0};n.onUsage(p);}return n?.onModel&&n.onModel(n.model??this.config.model),c.text??""}catch(u){throw u instanceof exports.ClientToolCallRequiredError?u:u.status===401?new exports.ProviderError(`Authentication failed for ${this.config.provider}. Check your API key.`,this.config.provider):u.status===429?new exports.ProviderError(`Rate limit exceeded for ${this.config.provider}.`,this.config.provider):new exports.ProviderError(`Provider error: ${u.message}`,this.config.provider)}}async continueWithToolResults(e,t,n){let{generateText:o,tool:s}=await import('ai'),i=this.convertTools(e.toolDefinitions,s),a=this.createModel(e.modelOverride),l=Math.min(e.maxSteps??this.config.maxSteps??Uo,Bo),u=[{role:"user",content:e.userMessage},...e.responseMessages,{role:"tool",content:t.map(c=>({type:"tool-result",toolCallId:c.toolCallId,toolName:c.toolName,result:typeof c.result=="string"?c.result:JSON.stringify(c.result)}))}];try{let c=await o({model:a,system:e.systemPrompt??void 0,messages:u,tools:i,maxSteps:l,...this.config.temperature!==void 0&&{temperature:this.config.temperature},...this.config.maxTokens!==void 0&&{maxTokens:this.config.maxTokens}}),d=new Set(e.toolDefinitions.filter(p=>!p.execute).map(p=>p.name));if(c.finishReason==="tool-calls"&&Array.isArray(c.toolCalls)&&c.toolCalls.length>0){let p=c.toolCalls.filter(m=>d.has(m.toolName));if(p.length>0){let m=p[0];throw new exports.ClientToolCallRequiredError({toolCallId:m.toolCallId,toolName:m.toolName,args:m.args},{userMessage:e.userMessage,responseMessages:[...e.responseMessages,{role:"tool",content:t.map(h=>({type:"tool-result",toolCallId:h.toolCallId,toolName:h.toolName,result:typeof h.result=="string"?h.result:JSON.stringify(h.result)}))},...c.response?.messages??[]],toolDefinitions:e.toolDefinitions,maxSteps:e.maxSteps,systemPrompt:e.systemPrompt,modelOverride:e.modelOverride})}}return n?.onUsage&&c.usage&&n.onUsage({inputTokens:c.usage.promptTokens??0,outputTokens:c.usage.completionTokens??0,cachedInputTokens:0,costUsd:0}),n?.onModel&&n.onModel(e.modelOverride??this.config.model),c.text??""}catch(c){throw c instanceof exports.ClientToolCallRequiredError?c:new exports.ProviderError(`Provider error: ${c.message}`,this.config.provider)}}convertTools(e,t){let{z:n}=U("zod"),o={};for(let s of e){let i=this.jsonSchemaToZod(s.parameters??{},n);s.execute?o[s.name]=t({description:s.description,parameters:i,execute:async a=>s.execute(a)}):o[s.name]=t({description:s.description,parameters:i});}return o}jsonSchemaToZod(e,t){if(!e||!e.properties)return t.object({});let n={},o=e.properties,s=e.required??[];for(let[i,a]of Object.entries(o)){let l;switch(a.type){case "string":l=t.string();break;case "number":l=t.number();break;case "integer":l=t.number().int();break;case "boolean":l=t.boolean();break;case "array":l=t.array(t.any());break;default:l=t.any();}a.description&&(l=l.describe(a.description)),s.includes(i)||(l=l.optional()),n[i]=l;}return t.object(n)}createModel(e){let{provider:t,apiKey:n,baseURL:o}=this.config,s=e||this.config.model;switch(t){case "api/openrouter":{let{createOpenAI:i}=ar();return i({apiKey:n||process.env.OPENROUTER_API_KEY,baseURL:o||"https://openrouter.ai/api/v1"})(s)}case "api/openai":{let{createOpenAI:i}=ar();return i({apiKey:n||process.env.OPENAI_API_KEY,...o&&{baseURL:o}})(s)}case "api/anthropic":{let{createAnthropic:i}=Eo();return i({apiKey:n||process.env.ANTHROPIC_API_KEY,...o&&{baseURL:o}})(s)}case "api/google":{let{createGoogleGenerativeAI:i}=Fo();return i({apiKey:n||process.env.GOOGLE_API_KEY})(s)}default:throw new exports.ProviderError(`Unsupported API provider: ${t}`,t)}}};});var Wo={};Rt(Wo,{registerApiProviders:()=>Jo});function Jo(r){Ae("api",(e,t)=>{let n=r?.apiKeys?.[e];return new exports.VercelProviderRuntime({provider:t,model:"",apiKey:n,maxSteps:r?.defaults?.maxSteps,temperature:r?.defaults?.temperature})});}var mr=le(()=>{y();xe();gr();});function pc(r){if(!r)return r;let e=r.trim().replace(/\/+$/,"");return e.toLowerCase().endsWith("/mcp")?e.slice(0,-4):e}exports.McpHttpTransport=void 0;var fr=le(()=>{y();exports.McpHttpTransport=class{endpoint;headers;timeoutMs;constructor(e){let t=pc(e.url);this.endpoint=`${t}/mcp`,this.headers={"Content-Type":"application/json",...e.headers??{}},e.apiKey&&(this.headers.Authorization=`Bearer ${e.apiKey}`),this.timeoutMs=e.timeoutMs??3e4;}async send(e){let t=new AbortController,n=setTimeout(()=>t.abort(),this.timeoutMs);try{let o=await fetch(this.endpoint,{method:"POST",headers:this.headers,body:JSON.stringify(e),signal:t.signal});if(clearTimeout(n),!o.ok){let a=await o.text();throw new Error(`HTTP ${o.status}: ${o.statusText}${a?` - ${a}`:""}`)}let s=o.headers.get("content-type");if(s?.includes("application/json"))return await o.json();let i=await o.text();return {jsonrpc:"2.0",id:e.id,error:{code:-32600,message:`Unexpected response content-type: ${s}`,data:i}}}catch(o){throw clearTimeout(n),o instanceof Error&&o.name==="AbortError"?new Error(`MCP-HTTP request timeout after ${this.timeoutMs}ms to ${this.endpoint}`):o}}async close(){}};});exports.RemoteAgentManager=void 0;var hr=le(()=>{y();fr();exports.RemoteAgentManager=class{logger;configs=new Map;transports=new Map;constructor(e={}){this.logger=e.logger??(()=>{});}loadConfig(e,t){this.validateConfig(t),this.configs.set(e,t),this.transports.set(e,new exports.McpHttpTransport({url:t.url,apiKey:t.apiKey,headers:t.headers,timeoutMs:t.timeoutMs})),this.logger(`Loaded remote agent config for: ${e}`,"debug");}loadConfigWithTransport(e,t,n){this.validateConfig(t),this.configs.set(e,t),this.transports.set(e,n),this.logger(`Loaded remote agent config for: ${e} (custom transport)`,"debug");}getConfig(e){return this.configs.get(e)}isRemoteAgent(e){return this.configs.has(e)}getRemoteAgentIds(){return Array.from(this.configs.keys())}async query(e,t){let n=this.requireConfig(e),o=n.tools?.query??"crewx_queryAgent",i={agentId:n.agentId??e,query:t.query};t.context&&(i.context=t.context),t.model&&(i.model=t.model),t.platform&&(i.platform=t.platform),t.messages?.length&&(i.messages=t.messages);try{let a=await this.callRemoteTool(e,o,i);return this.normalizeResponse(a)}catch(a){let l=a instanceof Error?a.message:String(a);throw this.logger(`Remote query failed for agent ${e}: ${l}`,"error"),a}}async execute(e,t){let n=this.requireConfig(e),o=n.tools?.execute??"crewx_executeAgent",i={agentId:n.agentId??e,task:t.task};t.context&&(i.context=t.context),t.model&&(i.model=t.model),t.platform&&(i.platform=t.platform),t.messages?.length&&(i.messages=t.messages);try{let a=await this.callRemoteTool(e,o,i);return this.normalizeResponse(a)}catch(a){let l=a instanceof Error?a.message:String(a);throw this.logger(`Remote execute failed for agent ${e}: ${l}`,"error"),a}}mapToolNames(e,t){let n=this.requireConfig(e);n.tools={query:t.query??n.tools?.query??"crewx_queryAgent",execute:t.execute??n.tools?.execute??"crewx_executeAgent"},this.logger(`Updated tool name mapping for agent ${e}`,"debug");}async clearConfigs(){for(let e of this.transports.values())await e.close();this.configs.clear(),this.transports.clear(),this.logger("Cleared all remote agent configurations","debug");}requireConfig(e){let t=this.configs.get(e);if(!t)throw new Error(`Agent ${e} is not configured as a remote agent`);return t}async callRemoteTool(e,t,n){let o=this.transports.get(e);if(!o)throw new Error(`No transport available for agent ${e}`);let s={jsonrpc:"2.0",id:`${t}-${Date.now()}`,method:"tools/call",params:{name:t,arguments:n}};this.logger(`Calling remote MCP tool ${t} for agent ${e}`,"debug");let i=await o.send(s);if(i.error)throw new Error(i.error.message||"MCP server returned an error");return i.result}normalizeResponse(e){if(!e)return {success:false,content:[{type:"text",text:"Remote agent returned no response."}]};let t=e;if(Array.isArray(t.content)&&t.content.length>0)return t;let n=t.response??t.implementation??t.message??t.output,o=typeof n=="string"?n:JSON.stringify(n??e,null,2);return {...t,content:[{type:"text",text:o}]}}validateConfig(e){if(!e.url)throw new Error("Remote agent configuration requires a URL");if(!e.url.startsWith("http://")&&!e.url.startsWith("https://"))throw new Error("Remote agent URL must start with http:// or https://");if(e.type!=="mcp-http")throw new Error(`Unsupported remote agent type: ${e.type}`)}};});var Ko={};Rt(Ko,{RemoteProviderRuntime:()=>exports.RemoteProviderRuntime,createRemoteProviderFactory:()=>Vo,resolveFileRemoteAgent:()=>bc});function vc(r){let e=fs$1.readFileSync(r,"utf-8"),t=jsYaml.load(e);return {agents:Array.isArray(t?.agents)?t.agents:void 0}}function wc(r){let e=Array.isArray(r.provider)?r.provider[0]:r.provider;return e||(Array.isArray(r.inline?.provider)?r.inline.provider[0]:r.inline?.provider)}function bc(r,e=vc,t=fs$1.existsSync){let n=r.location.replace("file://","");if(!t(n))throw new Error(`Remote config file not found: ${n}`);if(!r.external_agent_id)throw new Error(`external_agent_id is required for file:// remote provider "${r.id}"`);let s=e(n).agents?.find(l=>l.id===r.external_agent_id);if(!s)throw new Error(`Agent "${r.external_agent_id}" not found in ${n}`);let i=wc(s);if(!i)throw new Error(`Agent "${r.external_agent_id}" in ${n} has no provider configured`);if(i.startsWith("remote/"))throw new Error(`Chained remotes not allowed: ${r.id} \u2192 ${i}`);let a=Hr.resolve(Hr.dirname(n),s.working_directory??".");return {agent:{...s,working_directory:a},provider:i}}function Vo(r,e=ce){return (t,n)=>{let o=r.get(t);if(!o)throw new Error(`Remote provider "${t}" not found. Available: ${Array.from(r.keys()).join(", ")||"(none)"}`);if(o.location.startsWith("file://"))throw new Error(`Remote provider "${t}" uses file:// location which is not supported at the SDK level. Use the CLI commands (crewx query / crewx execute) which handle file:// remotes automatically.`);return new exports.RemoteProviderRuntime(t,o,e)}}function _c(r,e){let t=e.location;if(!t)throw new Error("Remote provider config requires a location");if(!t.startsWith("http://")&&!t.startsWith("https://"))throw new Error(`Unsupported remote location protocol for MCP-HTTP: ${t}`);return {type:"mcp-http",url:t,apiKey:e.apiKey,headers:e.headers,timeoutMs:e.timeout?.query??3e4,agentId:e.external_agent_id??r}}exports.RemoteProviderRuntime=void 0;var yr=le(()=>{y();xe();hr();exports.RemoteProviderRuntime=class{manager;agentId;constructor(e,t,n=ce){this.agentId=t.external_agent_id??e,this.manager=new exports.RemoteAgentManager;let o=_c(e,t);this.manager.loadConfig(this.agentId,o);}async query(e,t){return (await this.manager.query(this.agentId,{agentId:this.agentId,query:e,model:t?.model,context:t?.context??t?.systemPrompt})).content.map(o=>o.text).join(`
32
+ ${t}:`]}}function go(r){return r?.tokens.map((e,t)=>({token:e,logprob:r.token_logprobs[t],topLogprobs:r.top_logprobs?Object.entries(r.top_logprobs[t]).map(([n,o])=>({token:n,logprob:o})):[]}))}var xl=class{constructor(r,e,t){this.specificationVersion="v1",this.defaultObjectGenerationMode=void 0,this.modelId=r,this.settings=e,this.config=t;}get provider(){return this.config.provider}getArgs({mode:r,inputFormat:e,prompt:t,maxTokens:n,temperature:o,topP:s,topK:i,frequencyPenalty:a,presencePenalty:l,stopSequences:u,responseFormat:c,seed:d}){var p;let m=r.type,h=[];i!=null&&h.push({type:"unsupported-setting",setting:"topK"}),c!=null&&c.type!=="text"&&h.push({type:"unsupported-setting",setting:"responseFormat",details:"JSON response format is not supported."});let{prompt:f,stopSequences:g}=_l({prompt:t,inputFormat:e}),y=[...g??[],...u??[]],_={model:this.modelId,echo:this.settings.echo,logit_bias:this.settings.logitBias,logprobs:typeof this.settings.logprobs=="number"?this.settings.logprobs:typeof this.settings.logprobs=="boolean"&&this.settings.logprobs?0:void 0,suffix:this.settings.suffix,user:this.settings.user,max_tokens:n,temperature:o,top_p:s,frequency_penalty:a,presence_penalty:l,seed:d,prompt:f,stop:y.length>0?y:void 0};switch(m){case "regular":{if((p=r.tools)!=null&&p.length)throw new ht.UnsupportedFunctionalityError({functionality:"tools"});if(r.toolChoice)throw new ht.UnsupportedFunctionalityError({functionality:"toolChoice"});return {args:_,warnings:h}}case "object-json":throw new ht.UnsupportedFunctionalityError({functionality:"object-json mode"});case "object-tool":throw new ht.UnsupportedFunctionalityError({functionality:"object-tool mode"});default:{let T=m;throw new Error(`Unsupported type: ${T}`)}}}async doGenerate(r){let{args:e,warnings:t}=this.getArgs(r),{responseHeaders:n,value:o,rawValue:s}=await(0, Oe.postJsonToApi)({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:(0, Oe.combineHeaders)(this.config.headers(),r.headers),body:e,failedResponseHandler:ae,successfulResponseHandler:(0, Oe.createJsonResponseHandler)(kl),abortSignal:r.abortSignal,fetch:this.config.fetch}),{prompt:i,...a}=e,l=o.choices[0];return {text:l.text,usage:{promptTokens:o.usage.prompt_tokens,completionTokens:o.usage.completion_tokens},finishReason:bt(l.finish_reason),logprobs:go(l.logprobs),rawCall:{rawPrompt:i,rawSettings:a},rawResponse:{headers:n,body:s},response:_t(o),warnings:t,request:{body:JSON.stringify(e)}}}async doStream(r){let{args:e,warnings:t}=this.getArgs(r),n={...e,stream:true,stream_options:this.config.compatibility==="strict"?{include_usage:true}:void 0},{responseHeaders:o,value:s}=await(0, Oe.postJsonToApi)({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:(0, Oe.combineHeaders)(this.config.headers(),r.headers),body:n,failedResponseHandler:ae,successfulResponseHandler:(0, Oe.createEventSourceResponseHandler)(Rl),abortSignal:r.abortSignal,fetch:this.config.fetch}),{prompt:i,...a}=e,l="unknown",u={promptTokens:Number.NaN,completionTokens:Number.NaN},c,d=true;return {stream:s.pipeThrough(new TransformStream({transform(p,m){if(!p.success){l="error",m.enqueue({type:"error",error:p.error});return}let h=p.value;if("error"in h){l="error",m.enqueue({type:"error",error:h.error});return}d&&(d=false,m.enqueue({type:"response-metadata",..._t(h)})),h.usage!=null&&(u={promptTokens:h.usage.prompt_tokens,completionTokens:h.usage.completion_tokens});let f=h.choices[0];f?.finish_reason!=null&&(l=bt(f.finish_reason)),f?.text!=null&&m.enqueue({type:"text-delta",textDelta:f.text});let g=go(f?.logprobs);g?.length&&(c===void 0&&(c=[]),c.push(...g));},flush(p){p.enqueue({type:"finish",finishReason:l,logprobs:c,usage:u});}})),rawCall:{rawPrompt:i,rawSettings:a},rawResponse:{headers:o},warnings:t,request:{body:JSON.stringify(n)}}}},kl=j.z.object({id:j.z.string().nullish(),created:j.z.number().nullish(),model:j.z.string().nullish(),choices:j.z.array(j.z.object({text:j.z.string(),finish_reason:j.z.string(),logprobs:j.z.object({tokens:j.z.array(j.z.string()),token_logprobs:j.z.array(j.z.number()),top_logprobs:j.z.array(j.z.record(j.z.string(),j.z.number())).nullable()}).nullish()})),usage:j.z.object({prompt_tokens:j.z.number(),completion_tokens:j.z.number()})}),Rl=j.z.union([j.z.object({id:j.z.string().nullish(),created:j.z.number().nullish(),model:j.z.string().nullish(),choices:j.z.array(j.z.object({text:j.z.string(),finish_reason:j.z.string().nullish(),index:j.z.number(),logprobs:j.z.object({tokens:j.z.array(j.z.string()),token_logprobs:j.z.array(j.z.number()),top_logprobs:j.z.array(j.z.record(j.z.string(),j.z.number())).nullable()}).nullish()})),usage:j.z.object({prompt_tokens:j.z.number(),completion_tokens:j.z.number()}).nullish()}),lr]),Cl=H(),nr=V(),Pe=U("zod"),Tl=class{constructor(r,e,t){this.specificationVersion="v1",this.modelId=r,this.settings=e,this.config=t;}get provider(){return this.config.provider}get maxEmbeddingsPerCall(){var r;return (r=this.settings.maxEmbeddingsPerCall)!=null?r:2048}get supportsParallelCalls(){var r;return (r=this.settings.supportsParallelCalls)!=null?r:true}async doEmbed({values:r,headers:e,abortSignal:t}){if(r.length>this.maxEmbeddingsPerCall)throw new Cl.TooManyEmbeddingValuesForCallError({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:r});let{responseHeaders:n,value:o}=await(0, nr.postJsonToApi)({url:this.config.url({path:"/embeddings",modelId:this.modelId}),headers:(0, nr.combineHeaders)(this.config.headers(),e),body:{model:this.modelId,input:r,encoding_format:"float",dimensions:this.settings.dimensions,user:this.settings.user},failedResponseHandler:ae,successfulResponseHandler:(0, nr.createJsonResponseHandler)(Pl),abortSignal:t,fetch:this.config.fetch});return {embeddings:o.data.map(s=>s.embedding),usage:o.usage?{tokens:o.usage.prompt_tokens}:void 0,rawResponse:{headers:n}}}},Pl=Pe.z.object({data:Pe.z.array(Pe.z.object({embedding:Pe.z.array(Pe.z.number())})),usage:Pe.z.object({prompt_tokens:Pe.z.number()}).nullish()}),or=V(),vt=U("zod"),El={"dall-e-3":1,"dall-e-2":10,"gpt-image-1":10},Al=new Set(["gpt-image-1"]),Sl=class{constructor(r,e,t){this.modelId=r,this.settings=e,this.config=t,this.specificationVersion="v1";}get maxImagesPerCall(){var r,e;return (e=(r=this.settings.maxImagesPerCall)!=null?r:El[this.modelId])!=null?e:1}get provider(){return this.config.provider}async doGenerate({prompt:r,n:e,size:t,aspectRatio:n,seed:o,providerOptions:s,headers:i,abortSignal:a}){var l,u,c,d;let p=[];n!=null&&p.push({type:"unsupported-setting",setting:"aspectRatio",details:"This model does not support aspect ratio. Use `size` instead."}),o!=null&&p.push({type:"unsupported-setting",setting:"seed"});let m=(c=(u=(l=this.config._internal)==null?void 0:l.currentDate)==null?void 0:u.call(l))!=null?c:new Date,{value:h,responseHeaders:f}=await(0, or.postJsonToApi)({url:this.config.url({path:"/images/generations",modelId:this.modelId}),headers:(0, or.combineHeaders)(this.config.headers(),i),body:{model:this.modelId,prompt:r,n:e,size:t,...(d=s.openai)!=null?d:{},...Al.has(this.modelId)?{}:{response_format:"b64_json"}},failedResponseHandler:ae,successfulResponseHandler:(0, or.createJsonResponseHandler)(Il),abortSignal:a,fetch:this.config.fetch});return {images:h.data.map(g=>g.b64_json),warnings:p,response:{timestamp:m,modelId:this.modelId,headers:f}}}},Il=vt.z.object({data:vt.z.array(vt.z.object({b64_json:vt.z.string()}))}),Ve=V(),K=U("zod"),Ol=K.z.object({include:K.z.array(K.z.string()).nullish(),language:K.z.string().nullish(),prompt:K.z.string().nullish(),temperature:K.z.number().min(0).max(1).nullish().default(0),timestampGranularities:K.z.array(K.z.enum(["word","segment"])).nullish().default(["segment"])}),mo={afrikaans:"af",arabic:"ar",armenian:"hy",azerbaijani:"az",belarusian:"be",bosnian:"bs",bulgarian:"bg",catalan:"ca",chinese:"zh",croatian:"hr",czech:"cs",danish:"da",dutch:"nl",english:"en",estonian:"et",finnish:"fi",french:"fr",galician:"gl",german:"de",greek:"el",hebrew:"he",hindi:"hi",hungarian:"hu",icelandic:"is",indonesian:"id",italian:"it",japanese:"ja",kannada:"kn",kazakh:"kk",korean:"ko",latvian:"lv",lithuanian:"lt",macedonian:"mk",malay:"ms",marathi:"mr",maori:"mi",nepali:"ne",norwegian:"no",persian:"fa",polish:"pl",portuguese:"pt",romanian:"ro",russian:"ru",serbian:"sr",slovak:"sk",slovenian:"sl",spanish:"es",swahili:"sw",swedish:"sv",tagalog:"tl",tamil:"ta",thai:"th",turkish:"tr",ukrainian:"uk",urdu:"ur",vietnamese:"vi",welsh:"cy"},zl=class{constructor(r,e){this.modelId=r,this.config=e,this.specificationVersion="v1";}get provider(){return this.config.provider}getArgs({audio:r,mediaType:e,providerOptions:t}){var n,o,s,i,a;let l=[],u=(0, Ve.parseProviderOptions)({provider:"openai",providerOptions:t,schema:Ol}),c=new FormData,d=r instanceof Uint8Array?new Blob([r]):new Blob([(0, Ve.convertBase64ToUint8Array)(r)]);if(c.append("model",this.modelId),c.append("file",new File([d],"audio",{type:e})),u){let p={include:(n=u.include)!=null?n:void 0,language:(o=u.language)!=null?o:void 0,prompt:(s=u.prompt)!=null?s:void 0,temperature:(i=u.temperature)!=null?i:void 0,timestamp_granularities:(a=u.timestampGranularities)!=null?a:void 0};for(let m in p){let h=p[m];h!==void 0&&c.append(m,String(h));}}return {formData:c,warnings:l}}async doGenerate(r){var e,t,n,o,s,i;let a=(n=(t=(e=this.config._internal)==null?void 0:e.currentDate)==null?void 0:t.call(e))!=null?n:new Date,{formData:l,warnings:u}=this.getArgs(r),{value:c,responseHeaders:d,rawValue:p}=await(0, Ve.postFormDataToApi)({url:this.config.url({path:"/audio/transcriptions",modelId:this.modelId}),headers:(0, Ve.combineHeaders)(this.config.headers(),r.headers),formData:l,failedResponseHandler:ae,successfulResponseHandler:(0, Ve.createJsonResponseHandler)(Ml),abortSignal:r.abortSignal,fetch:this.config.fetch}),m=c.language!=null&&c.language in mo?mo[c.language]:void 0;return {text:c.text,segments:(s=(o=c.words)==null?void 0:o.map(h=>({text:h.word,startSecond:h.start,endSecond:h.end})))!=null?s:[],language:m,durationInSeconds:(i=c.duration)!=null?i:void 0,warnings:u,response:{timestamp:a,modelId:this.modelId,headers:d,body:p}}}},Ml=K.z.object({text:K.z.string(),language:K.z.string().nullish(),duration:K.z.number().nullish(),words:K.z.array(K.z.object({word:K.z.string(),start:K.z.number(),end:K.z.number()})).nullish()}),jl=H(),fe=V(),b=U("zod"),fo=H(),Nl=V();function $l({prompt:r,systemMessageMode:e}){let t=[],n=[];for(let{role:o,content:s}of r)switch(o){case "system":{switch(e){case "system":{t.push({role:"system",content:s});break}case "developer":{t.push({role:"developer",content:s});break}case "remove":{n.push({type:"other",message:"system messages are removed for this model"});break}default:{let i=e;throw new Error(`Unsupported system message mode: ${i}`)}}break}case "user":{t.push({role:"user",content:s.map((i,a)=>{var l,u,c,d;switch(i.type){case "text":return {type:"input_text",text:i.text};case "image":return {type:"input_image",image_url:i.image instanceof URL?i.image.toString():`data:${(l=i.mimeType)!=null?l:"image/jpeg"};base64,${(0, Nl.convertUint8ArrayToBase64)(i.image)}`,detail:(c=(u=i.providerMetadata)==null?void 0:u.openai)==null?void 0:c.imageDetail};case "file":{if(i.data instanceof URL)throw new fo.UnsupportedFunctionalityError({functionality:"File URLs in user messages"});if(i.mimeType==="application/pdf")return {type:"input_file",filename:(d=i.filename)!=null?d:`part-${a}.pdf`,file_data:`data:application/pdf;base64,${i.data}`};throw new fo.UnsupportedFunctionalityError({functionality:"Only PDF files are supported in user messages"})}}})});break}case "assistant":{for(let i of s)switch(i.type){case "text":{t.push({role:"assistant",content:[{type:"output_text",text:i.text}]});break}case "tool-call":{t.push({type:"function_call",call_id:i.toolCallId,name:i.toolName,arguments:JSON.stringify(i.args)});break}}break}case "tool":{for(let i of s)t.push({type:"function_call_output",call_id:i.toolCallId,output:JSON.stringify(i.result)});break}default:{let i=o;throw new Error(`Unsupported role: ${i}`)}}return {messages:t,warnings:n}}function ho({finishReason:r,hasToolCalls:e}){switch(r){case void 0:case null:return e?"tool-calls":"stop";case "max_output_tokens":return "length";case "content_filter":return "content-filter";default:return e?"tool-calls":"unknown"}}var Dl=H();function Ll({mode:r,strict:e}){var t;let n=(t=r.tools)!=null&&t.length?r.tools:void 0,o=[];if(n==null)return {tools:void 0,tool_choice:void 0,toolWarnings:o};let s=r.toolChoice,i=[];for(let l of n)switch(l.type){case "function":i.push({type:"function",name:l.name,description:l.description,parameters:l.parameters,strict:e?true:void 0});break;case "provider-defined":l.id==="openai.web_search_preview"?i.push({type:"web_search_preview",search_context_size:l.args.searchContextSize,user_location:l.args.userLocation}):o.push({type:"unsupported-tool",tool:l});break;default:o.push({type:"unsupported-tool",tool:l});break}if(s==null)return {tools:i,tool_choice:void 0,toolWarnings:o};let a=s.type;switch(a){case "auto":case "none":case "required":return {tools:i,tool_choice:a,toolWarnings:o};case "tool":return s.toolName==="web_search_preview"?{tools:i,tool_choice:{type:"web_search_preview"},toolWarnings:o}:{tools:i,tool_choice:{type:"function",name:s.toolName},toolWarnings:o};default:{let l=a;throw new Dl.UnsupportedFunctionalityError({functionality:`Unsupported tool choice type: ${l}`})}}}var Hl=class{constructor(r,e){this.specificationVersion="v1",this.defaultObjectGenerationMode="json",this.supportsStructuredOutputs=true,this.modelId=r,this.config=e;}get provider(){return this.config.provider}getArgs({mode:r,maxTokens:e,temperature:t,stopSequences:n,topP:o,topK:s,presencePenalty:i,frequencyPenalty:a,seed:l,prompt:u,providerMetadata:c,responseFormat:d}){var p,m,h;let f=[],g=iu(this.modelId),y=r.type;s!=null&&f.push({type:"unsupported-setting",setting:"topK"}),l!=null&&f.push({type:"unsupported-setting",setting:"seed"}),i!=null&&f.push({type:"unsupported-setting",setting:"presencePenalty"}),a!=null&&f.push({type:"unsupported-setting",setting:"frequencyPenalty"}),n!=null&&f.push({type:"unsupported-setting",setting:"stopSequences"});let{messages:_,warnings:T}=$l({prompt:u,systemMessageMode:g.systemMessageMode});f.push(...T);let w=(0, fe.parseProviderOptions)({provider:"openai",providerOptions:c,schema:au}),x=(p=w?.strictSchemas)!=null?p:true,S={model:this.modelId,input:_,temperature:t,top_p:o,max_output_tokens:e,...d?.type==="json"&&{text:{format:d.schema!=null?{type:"json_schema",strict:x,name:(m=d.name)!=null?m:"response",description:d.description,schema:d.schema}:{type:"json_object"}}},metadata:w?.metadata,parallel_tool_calls:w?.parallelToolCalls,previous_response_id:w?.previousResponseId,store:w?.store,user:w?.user,instructions:w?.instructions,...g.isReasoningModel&&(w?.reasoningEffort!=null||w?.reasoningSummary!=null)&&{reasoning:{...w?.reasoningEffort!=null&&{effort:w.reasoningEffort},...w?.reasoningSummary!=null&&{summary:w.reasoningSummary}}},...g.requiredAutoTruncation};switch(g.isReasoningModel&&(S.temperature!=null&&(S.temperature=void 0,f.push({type:"unsupported-setting",setting:"temperature",details:"temperature is not supported for reasoning models"})),S.top_p!=null&&(S.top_p=void 0,f.push({type:"unsupported-setting",setting:"topP",details:"topP is not supported for reasoning models"}))),y){case "regular":{let{tools:z,tool_choice:C,toolWarnings:k}=Ll({mode:r,strict:x});return {args:{...S,tools:z,tool_choice:C},warnings:[...f,...k]}}case "object-json":return {args:{...S,text:{format:r.schema!=null?{type:"json_schema",strict:x,name:(h=r.name)!=null?h:"response",description:r.description,schema:r.schema}:{type:"json_object"}}},warnings:f};case "object-tool":return {args:{...S,tool_choice:{type:"function",name:r.tool.name},tools:[{type:"function",name:r.tool.name,description:r.tool.description,parameters:r.tool.parameters,strict:x}]},warnings:f};default:{let z=y;throw new Error(`Unsupported type: ${z}`)}}}async doGenerate(r){var e,t,n,o,s,i,a;let{args:l,warnings:u}=this.getArgs(r),c=this.config.url({path:"/responses",modelId:this.modelId}),{responseHeaders:d,value:p,rawValue:m}=await(0, fe.postJsonToApi)({url:c,headers:(0, fe.combineHeaders)(this.config.headers(),r.headers),body:l,failedResponseHandler:ae,successfulResponseHandler:(0, fe.createJsonResponseHandler)(b.z.object({id:b.z.string(),created_at:b.z.number(),error:b.z.object({message:b.z.string(),code:b.z.string()}).nullish(),model:b.z.string(),output:b.z.array(b.z.discriminatedUnion("type",[b.z.object({type:b.z.literal("message"),role:b.z.literal("assistant"),content:b.z.array(b.z.object({type:b.z.literal("output_text"),text:b.z.string(),annotations:b.z.array(b.z.object({type:b.z.literal("url_citation"),start_index:b.z.number(),end_index:b.z.number(),url:b.z.string(),title:b.z.string()}))}))}),b.z.object({type:b.z.literal("function_call"),call_id:b.z.string(),name:b.z.string(),arguments:b.z.string()}),b.z.object({type:b.z.literal("web_search_call")}),b.z.object({type:b.z.literal("computer_call")}),b.z.object({type:b.z.literal("reasoning"),summary:b.z.array(b.z.object({type:b.z.literal("summary_text"),text:b.z.string()}))})])),incomplete_details:b.z.object({reason:b.z.string()}).nullable(),usage:wo})),abortSignal:r.abortSignal,fetch:this.config.fetch});if(p.error)throw new jl.APICallError({message:p.error.message,url:c,requestBodyValues:l,statusCode:400,responseHeaders:d,responseBody:m,isRetryable:false});let h=p.output.filter(y=>y.type==="message").flatMap(y=>y.content).filter(y=>y.type==="output_text"),f=p.output.filter(y=>y.type==="function_call").map(y=>({toolCallType:"function",toolCallId:y.call_id,toolName:y.name,args:y.arguments})),g=(t=(e=p.output.find(y=>y.type==="reasoning"))==null?void 0:e.summary)!=null?t:null;return {text:h.map(y=>y.text).join(`
33
+ `),sources:h.flatMap(y=>y.annotations.map(_=>{var T,w,x;return {sourceType:"url",id:(x=(w=(T=this.config).generateId)==null?void 0:w.call(T))!=null?x:(0, fe.generateId)(),url:_.url,title:_.title}})),finishReason:ho({finishReason:(n=p.incomplete_details)==null?void 0:n.reason,hasToolCalls:f.length>0}),toolCalls:f.length>0?f:void 0,reasoning:g?g.map(y=>({type:"text",text:y.text})):void 0,usage:{promptTokens:p.usage.input_tokens,completionTokens:p.usage.output_tokens},rawCall:{rawPrompt:void 0,rawSettings:{}},rawResponse:{headers:d,body:m},request:{body:JSON.stringify(l)},response:{id:p.id,timestamp:new Date(p.created_at*1e3),modelId:p.model},providerMetadata:{openai:{responseId:p.id,cachedPromptTokens:(s=(o=p.usage.input_tokens_details)==null?void 0:o.cached_tokens)!=null?s:null,reasoningTokens:(a=(i=p.usage.output_tokens_details)==null?void 0:i.reasoning_tokens)!=null?a:null}},warnings:u}}async doStream(r){let{args:e,warnings:t}=this.getArgs(r),{responseHeaders:n,value:o}=await(0, fe.postJsonToApi)({url:this.config.url({path:"/responses",modelId:this.modelId}),headers:(0, fe.combineHeaders)(this.config.headers(),r.headers),body:{...e,stream:true},failedResponseHandler:ae,successfulResponseHandler:(0, fe.createEventSourceResponseHandler)(Xl),abortSignal:r.abortSignal,fetch:this.config.fetch}),s=this,i="unknown",a=NaN,l=NaN,u=null,c=null,d=null,p={},m=false;return {stream:o.pipeThrough(new TransformStream({transform(h,f){var g,y,_,T,w,x,S,z;if(!h.success){i="error",f.enqueue({type:"error",error:h.error});return}let C=h.value;if(ru(C))C.item.type==="function_call"&&(p[C.output_index]={toolName:C.item.name,toolCallId:C.item.call_id},f.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:C.item.call_id,toolName:C.item.name,argsTextDelta:C.item.arguments}));else if(tu(C)){let k=p[C.output_index];k!=null&&f.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:k.toolCallId,toolName:k.toolName,argsTextDelta:C.delta});}else eu(C)?(d=C.response.id,f.enqueue({type:"response-metadata",id:C.response.id,timestamp:new Date(C.response.created_at*1e3),modelId:C.response.model})):Yl(C)?f.enqueue({type:"text-delta",textDelta:C.delta}):ou(C)?f.enqueue({type:"reasoning",textDelta:C.delta}):Ql(C)&&C.item.type==="function_call"?(p[C.output_index]=void 0,m=true,f.enqueue({type:"tool-call",toolCallType:"function",toolCallId:C.item.call_id,toolName:C.item.name,args:C.item.arguments})):Zl(C)?(i=ho({finishReason:(g=C.response.incomplete_details)==null?void 0:g.reason,hasToolCalls:m}),a=C.response.usage.input_tokens,l=C.response.usage.output_tokens,u=(_=(y=C.response.usage.input_tokens_details)==null?void 0:y.cached_tokens)!=null?_:u,c=(w=(T=C.response.usage.output_tokens_details)==null?void 0:T.reasoning_tokens)!=null?w:c):nu(C)?f.enqueue({type:"source",source:{sourceType:"url",id:(z=(S=(x=s.config).generateId)==null?void 0:S.call(x))!=null?z:(0, fe.generateId)(),url:C.annotation.url,title:C.annotation.title}}):su(C)&&f.enqueue({type:"error",error:C});},flush(h){h.enqueue({type:"finish",finishReason:i,usage:{promptTokens:a,completionTokens:l},...(u!=null||c!=null)&&{providerMetadata:{openai:{responseId:d,cachedPromptTokens:u,reasoningTokens:c}}}});}})),rawCall:{rawPrompt:void 0,rawSettings:{}},rawResponse:{headers:n},request:{body:JSON.stringify(e)},warnings:t}}},wo=b.z.object({input_tokens:b.z.number(),input_tokens_details:b.z.object({cached_tokens:b.z.number().nullish()}).nullish(),output_tokens:b.z.number(),output_tokens_details:b.z.object({reasoning_tokens:b.z.number().nullish()}).nullish()}),ql=b.z.object({type:b.z.literal("response.output_text.delta"),delta:b.z.string()}),Fl=b.z.object({type:b.z.enum(["response.completed","response.incomplete"]),response:b.z.object({incomplete_details:b.z.object({reason:b.z.string()}).nullish(),usage:wo})}),Ul=b.z.object({type:b.z.literal("response.created"),response:b.z.object({id:b.z.string(),created_at:b.z.number(),model:b.z.string()})}),Bl=b.z.object({type:b.z.literal("response.output_item.done"),output_index:b.z.number(),item:b.z.discriminatedUnion("type",[b.z.object({type:b.z.literal("message")}),b.z.object({type:b.z.literal("function_call"),id:b.z.string(),call_id:b.z.string(),name:b.z.string(),arguments:b.z.string(),status:b.z.literal("completed")})])}),Jl=b.z.object({type:b.z.literal("response.function_call_arguments.delta"),item_id:b.z.string(),output_index:b.z.number(),delta:b.z.string()}),Wl=b.z.object({type:b.z.literal("response.output_item.added"),output_index:b.z.number(),item:b.z.discriminatedUnion("type",[b.z.object({type:b.z.literal("message")}),b.z.object({type:b.z.literal("function_call"),id:b.z.string(),call_id:b.z.string(),name:b.z.string(),arguments:b.z.string()})])}),Vl=b.z.object({type:b.z.literal("response.output_text.annotation.added"),annotation:b.z.object({type:b.z.literal("url_citation"),url:b.z.string(),title:b.z.string()})}),Kl=b.z.object({type:b.z.literal("response.reasoning_summary_text.delta"),item_id:b.z.string(),output_index:b.z.number(),summary_index:b.z.number(),delta:b.z.string()}),Gl=b.z.object({type:b.z.literal("error"),code:b.z.string(),message:b.z.string(),param:b.z.string().nullish(),sequence_number:b.z.number()}),Xl=b.z.union([ql,Fl,Ul,Bl,Jl,Wl,Vl,Kl,Gl,b.z.object({type:b.z.string()}).passthrough()]);function Yl(r){return r.type==="response.output_text.delta"}function Ql(r){return r.type==="response.output_item.done"}function Zl(r){return r.type==="response.completed"||r.type==="response.incomplete"}function eu(r){return r.type==="response.created"}function tu(r){return r.type==="response.function_call_arguments.delta"}function ru(r){return r.type==="response.output_item.added"}function nu(r){return r.type==="response.output_text.annotation.added"}function ou(r){return r.type==="response.reasoning_summary_text.delta"}function su(r){return r.type==="error"}function iu(r){return r.startsWith("o")||r.startsWith("gpt-5")?r.startsWith("o1-mini")||r.startsWith("o1-preview")?{isReasoningModel:true,systemMessageMode:"remove",requiredAutoTruncation:false}:{isReasoningModel:true,systemMessageMode:"developer",requiredAutoTruncation:false}:{isReasoningModel:false,systemMessageMode:"system",requiredAutoTruncation:false}}var au=b.z.object({metadata:b.z.any().nullish(),parallelToolCalls:b.z.boolean().nullish(),previousResponseId:b.z.string().nullish(),store:b.z.boolean().nullish(),user:b.z.string().nullish(),reasoningEffort:b.z.string().nullish(),strictSchemas:b.z.boolean().nullish(),instructions:b.z.string().nullish(),reasoningSummary:b.z.string().nullish()}),lu=U("zod"),uu=lu.z.object({});function cu({searchContextSize:r,userLocation:e}={}){return {type:"provider-defined",id:"openai.web_search_preview",args:{searchContextSize:r,userLocation:e},parameters:uu}}var du={webSearchPreview:cu},wt=V(),sr=U("zod"),pu=sr.z.object({instructions:sr.z.string().nullish(),speed:sr.z.number().min(.25).max(4).default(1).nullish()}),gu=class{constructor(r,e){this.modelId=r,this.config=e,this.specificationVersion="v1";}get provider(){return this.config.provider}getArgs({text:r,voice:e="alloy",outputFormat:t="mp3",speed:n,instructions:o,providerOptions:s}){let i=[],a=(0, wt.parseProviderOptions)({provider:"openai",providerOptions:s,schema:pu}),l={model:this.modelId,input:r,voice:e,response_format:"mp3",speed:n,instructions:o};if(t&&(["mp3","opus","aac","flac","wav","pcm"].includes(t)?l.response_format=t:i.push({type:"unsupported-setting",setting:"outputFormat",details:`Unsupported output format: ${t}. Using mp3 instead.`})),a){let u={};for(let c in u){let d=u[c];d!==void 0&&(l[c]=d);}}return {requestBody:l,warnings:i}}async doGenerate(r){var e,t,n;let o=(n=(t=(e=this.config._internal)==null?void 0:e.currentDate)==null?void 0:t.call(e))!=null?n:new Date,{requestBody:s,warnings:i}=this.getArgs(r),{value:a,responseHeaders:l,rawValue:u}=await(0, wt.postJsonToApi)({url:this.config.url({path:"/audio/speech",modelId:this.modelId}),headers:(0, wt.combineHeaders)(this.config.headers(),r.headers),body:s,failedResponseHandler:ae,successfulResponseHandler:(0, wt.createBinaryResponseHandler)(),abortSignal:r.abortSignal,fetch:this.config.fetch});return {audio:a,warnings:i,request:{body:JSON.stringify(s)},response:{timestamp:o,modelId:this.modelId,headers:l,body:u}}}};function bo(r={}){var e,t,n;let o=(e=(0, uo.withoutTrailingSlash)(r.baseURL))!=null?e:"https://api.openai.com/v1",s=(t=r.compatibility)!=null?t:"compatible",i=(n=r.name)!=null?n:"openai",a=()=>({Authorization:`Bearer ${(0, uo.loadApiKey)({apiKey:r.apiKey,environmentVariableName:"OPENAI_API_KEY",description:"OpenAI"})}`,"OpenAI-Organization":r.organization,"OpenAI-Project":r.project,...r.headers}),l=(y,_={})=>new fl(y,_,{provider:`${i}.chat`,url:({path:T})=>`${o}${T}`,headers:a,compatibility:s,fetch:r.fetch}),u=(y,_={})=>new xl(y,_,{provider:`${i}.completion`,url:({path:T})=>`${o}${T}`,headers:a,compatibility:s,fetch:r.fetch}),c=(y,_={})=>new Tl(y,_,{provider:`${i}.embedding`,url:({path:T})=>`${o}${T}`,headers:a,fetch:r.fetch}),d=(y,_={})=>new Sl(y,_,{provider:`${i}.image`,url:({path:T})=>`${o}${T}`,headers:a,fetch:r.fetch}),p=y=>new zl(y,{provider:`${i}.transcription`,url:({path:_})=>`${o}${_}`,headers:a,fetch:r.fetch}),m=y=>new gu(y,{provider:`${i}.speech`,url:({path:_})=>`${o}${_}`,headers:a,fetch:r.fetch}),h=(y,_)=>{if(new.target)throw new Error("The OpenAI model function cannot be called with the new keyword.");return y==="gpt-3.5-turbo-instruct"?u(y,_):l(y,_)},f=y=>new Hl(y,{provider:`${i}.responses`,url:({path:_})=>`${o}${_}`,headers:a,fetch:r.fetch}),g=function(y,_){return h(y,_)};return g.languageModel=h,g.chat=l,g.completion=u,g.responses=f,g.embedding=c,g.textEmbedding=c,g.textEmbeddingModel=c,g.image=d,g.imageModel=d,g.transcription=p,g.transcriptionModel=p,g.speech=m,g.speechModel=m,g.tools=du,g}var mu=bo({compatibility:"strict"});});var So=be((Pm,Ao)=>{v();var cr=Object.defineProperty,fu=Object.getOwnPropertyDescriptor,hu=Object.getOwnPropertyNames,yu=Object.prototype.hasOwnProperty,vu=(r,e)=>{for(var t in e)cr(r,t,{get:e[t],enumerable:true});},wu=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of hu(e))!yu.call(r,o)&&o!==t&&cr(r,o,{get:()=>e[o],enumerable:!(n=fu(e,o))||n.enumerable});return r},bu=r=>wu(cr({},"__esModule",{value:true}),r),Po={};vu(Po,{anthropic:()=>Wu,createAnthropic:()=>Eo});Ao.exports=bu(Po);var _u=H(),xo=V(),ko=H(),Ee=V(),R=U("zod"),xu=V(),Ke=U("zod"),ku=Ke.z.object({type:Ke.z.literal("error"),error:Ke.z.object({type:Ke.z.string(),message:Ke.z.string()})}),Ro=(0, xu.createJsonErrorResponseHandler)({errorSchema:ku,errorToMessage:r=>r.error.message}),Ru=H();function Cu(r){var e;let t=(e=r.tools)!=null&&e.length?r.tools:void 0,n=[],o=new Set;if(t==null)return {tools:void 0,tool_choice:void 0,toolWarnings:n,betas:o};let s=[];for(let l of t)switch(l.type){case "function":s.push({name:l.name,description:l.description,input_schema:l.parameters});break;case "provider-defined":switch(l.id){case "anthropic.computer_20250124":o.add("computer-use-2025-01-24"),s.push({name:l.name,type:"computer_20250124",display_width_px:l.args.displayWidthPx,display_height_px:l.args.displayHeightPx,display_number:l.args.displayNumber});break;case "anthropic.computer_20241022":o.add("computer-use-2024-10-22"),s.push({name:l.name,type:"computer_20241022",display_width_px:l.args.displayWidthPx,display_height_px:l.args.displayHeightPx,display_number:l.args.displayNumber});break;case "anthropic.text_editor_20250124":o.add("computer-use-2025-01-24"),s.push({name:l.name,type:"text_editor_20250124"});break;case "anthropic.text_editor_20241022":o.add("computer-use-2024-10-22"),s.push({name:l.name,type:"text_editor_20241022"});break;case "anthropic.bash_20250124":o.add("computer-use-2025-01-24"),s.push({name:l.name,type:"bash_20250124"});break;case "anthropic.bash_20241022":o.add("computer-use-2024-10-22"),s.push({name:l.name,type:"bash_20241022"});break;default:n.push({type:"unsupported-tool",tool:l});break}break;default:n.push({type:"unsupported-tool",tool:l});break}let i=r.toolChoice;if(i==null)return {tools:s,tool_choice:void 0,toolWarnings:n,betas:o};let a=i.type;switch(a){case "auto":return {tools:s,tool_choice:{type:"auto"},toolWarnings:n,betas:o};case "required":return {tools:s,tool_choice:{type:"any"},toolWarnings:n,betas:o};case "none":return {tools:void 0,tool_choice:void 0,toolWarnings:n,betas:o};case "tool":return {tools:s,tool_choice:{type:"tool",name:i.toolName},toolWarnings:n,betas:o};default:{let l=a;throw new Ru.UnsupportedFunctionalityError({functionality:`Unsupported tool choice type: ${l}`})}}}var Co=H(),Tu=V();function Pu({prompt:r,sendReasoning:e,warnings:t}){var n,o,s,i;let a=new Set,l=Eu(r),u,c=[];function d(p){var m;let h=p?.anthropic;return (m=h?.cacheControl)!=null?m:h?.cache_control}for(let p=0;p<l.length;p++){let m=l[p],h=p===l.length-1,f=m.type;switch(f){case "system":{if(u!=null)throw new Co.UnsupportedFunctionalityError({functionality:"Multiple system messages that are separated by user/assistant messages"});u=m.messages.map(({content:g,providerMetadata:y})=>({type:"text",text:g,cache_control:d(y)}));break}case "user":{let g=[];for(let y of m.messages){let{role:_,content:T}=y;switch(_){case "user":{for(let w=0;w<T.length;w++){let x=T[w],S=w===T.length-1,z=(n=d(x.providerMetadata))!=null?n:S?d(y.providerMetadata):void 0;switch(x.type){case "text":{g.push({type:"text",text:x.text,cache_control:z});break}case "image":{g.push({type:"image",source:x.image instanceof URL?{type:"url",url:x.image.toString()}:{type:"base64",media_type:(o=x.mimeType)!=null?o:"image/jpeg",data:(0, Tu.convertUint8ArrayToBase64)(x.image)},cache_control:z});break}case "file":{if(x.mimeType!=="application/pdf")throw new Co.UnsupportedFunctionalityError({functionality:"Non-PDF files in user messages"});a.add("pdfs-2024-09-25"),g.push({type:"document",source:x.data instanceof URL?{type:"url",url:x.data.toString()}:{type:"base64",media_type:"application/pdf",data:x.data},cache_control:z});break}}}break}case "tool":{for(let w=0;w<T.length;w++){let x=T[w],S=w===T.length-1,z=(s=d(x.providerMetadata))!=null?s:S?d(y.providerMetadata):void 0,C=x.content!=null?x.content.map(k=>{var O;switch(k.type){case "text":return {type:"text",text:k.text,cache_control:void 0};case "image":return {type:"image",source:{type:"base64",media_type:(O=k.mimeType)!=null?O:"image/jpeg",data:k.data},cache_control:void 0}}}):JSON.stringify(x.result);g.push({type:"tool_result",tool_use_id:x.toolCallId,content:C,is_error:x.isError,cache_control:z});}break}default:{let w=_;throw new Error(`Unsupported role: ${w}`)}}}c.push({role:"user",content:g});break}case "assistant":{let g=[];for(let y=0;y<m.messages.length;y++){let _=m.messages[y],T=y===m.messages.length-1,{content:w}=_;for(let x=0;x<w.length;x++){let S=w[x],z=x===w.length-1,C=(i=d(S.providerMetadata))!=null?i:z?d(_.providerMetadata):void 0;switch(S.type){case "text":{g.push({type:"text",text:h&&T&&z?S.text.trim():S.text,cache_control:C});break}case "reasoning":{e?g.push({type:"thinking",thinking:S.text,signature:S.signature,cache_control:C}):t.push({type:"other",message:"sending reasoning content is disabled for this model"});break}case "redacted-reasoning":{g.push({type:"redacted_thinking",data:S.data,cache_control:C});break}case "tool-call":{g.push({type:"tool_use",id:S.toolCallId,name:S.toolName,input:S.args,cache_control:C});break}}}}c.push({role:"assistant",content:g});break}default:{let g=f;throw new Error(`Unsupported type: ${g}`)}}}return {prompt:{system:u,messages:c},betas:a}}function Eu(r){let e=[],t;for(let n of r){let{role:o}=n;switch(o){case "system":{t?.type!=="system"&&(t={type:"system",messages:[]},e.push(t)),t.messages.push(n);break}case "assistant":{t?.type!=="assistant"&&(t={type:"assistant",messages:[]},e.push(t)),t.messages.push(n);break}case "user":{t?.type!=="user"&&(t={type:"user",messages:[]},e.push(t)),t.messages.push(n);break}case "tool":{t?.type!=="user"&&(t={type:"user",messages:[]},e.push(t)),t.messages.push(n);break}default:{let s=o;throw new Error(`Unsupported role: ${s}`)}}}return e}function To(r){switch(r){case "end_turn":case "stop_sequence":return "stop";case "tool_use":return "tool-calls";case "max_tokens":return "length";default:return "unknown"}}var Au=class{constructor(r,e,t){this.specificationVersion="v1",this.defaultObjectGenerationMode="tool",this.modelId=r,this.settings=e,this.config=t;}supportsUrl(r){return r.protocol==="https:"}get provider(){return this.config.provider}get supportsImageUrls(){return this.config.supportsImageUrls}async getArgs({mode:r,prompt:e,maxTokens:t=4096,temperature:n,topP:o,topK:s,frequencyPenalty:i,presencePenalty:a,stopSequences:l,responseFormat:u,seed:c,providerMetadata:d}){var p,m,h;let f=r.type,g=[];i!=null&&g.push({type:"unsupported-setting",setting:"frequencyPenalty"}),a!=null&&g.push({type:"unsupported-setting",setting:"presencePenalty"}),c!=null&&g.push({type:"unsupported-setting",setting:"seed"}),u!=null&&u.type!=="text"&&g.push({type:"unsupported-setting",setting:"responseFormat",details:"JSON response format is not supported."});let{prompt:y,betas:_}=Pu({prompt:e,sendReasoning:(p=this.settings.sendReasoning)!=null?p:true,warnings:g}),T=(0, Ee.parseProviderOptions)({provider:"anthropic",providerOptions:d,schema:Ou}),w=((m=T?.thinking)==null?void 0:m.type)==="enabled",x=(h=T?.thinking)==null?void 0:h.budgetTokens,S={model:this.modelId,max_tokens:t,temperature:n,top_k:s,top_p:o,stop_sequences:l,...w&&{thinking:{type:"enabled",budget_tokens:x}},system:y.system,messages:y.messages};if(w){if(x==null)throw new ko.UnsupportedFunctionalityError({functionality:"thinking requires a budget"});S.temperature!=null&&(S.temperature=void 0,g.push({type:"unsupported-setting",setting:"temperature",details:"temperature is not supported when thinking is enabled"})),s!=null&&(S.top_k=void 0,g.push({type:"unsupported-setting",setting:"topK",details:"topK is not supported when thinking is enabled"})),o!=null&&(S.top_p=void 0,g.push({type:"unsupported-setting",setting:"topP",details:"topP is not supported when thinking is enabled"})),S.max_tokens=t+x;}switch(f){case "regular":{let{tools:z,tool_choice:C,toolWarnings:k,betas:O}=Cu(r);return {args:{...S,tools:z,tool_choice:C},warnings:[...g,...k],betas:new Set([..._,...O])}}case "object-json":throw new ko.UnsupportedFunctionalityError({functionality:"json-mode object generation"});case "object-tool":{let{name:z,description:C,parameters:k}=r.tool;return {args:{...S,tools:[{name:z,description:C,input_schema:k}],tool_choice:{type:"tool",name:z}},warnings:g,betas:_}}default:{let z=f;throw new Error(`Unsupported type: ${z}`)}}}async getHeaders({betas:r,headers:e}){return (0, Ee.combineHeaders)(await(0, Ee.resolve)(this.config.headers),r.size>0?{"anthropic-beta":Array.from(r).join(",")}:{},e)}buildRequestUrl(r){var e,t,n;return (n=(t=(e=this.config).buildRequestUrl)==null?void 0:t.call(e,this.config.baseURL,r))!=null?n:`${this.config.baseURL}/messages`}transformRequestBody(r){var e,t,n;return (n=(t=(e=this.config).transformRequestBody)==null?void 0:t.call(e,r))!=null?n:r}async doGenerate(r){var e,t,n,o;let{args:s,warnings:i,betas:a}=await this.getArgs(r),{responseHeaders:l,value:u,rawValue:c}=await(0, Ee.postJsonToApi)({url:this.buildRequestUrl(false),headers:await this.getHeaders({betas:a,headers:r.headers}),body:this.transformRequestBody(s),failedResponseHandler:Ro,successfulResponseHandler:(0, Ee.createJsonResponseHandler)(Su),abortSignal:r.abortSignal,fetch:this.config.fetch}),{messages:d,...p}=s,m="";for(let g of u.content)g.type==="text"&&(m+=g.text);let h;if(u.content.some(g=>g.type==="tool_use")){h=[];for(let g of u.content)g.type==="tool_use"&&h.push({toolCallType:"function",toolCallId:g.id,toolName:g.name,args:JSON.stringify(g.input)});}let f=u.content.filter(g=>g.type==="redacted_thinking"||g.type==="thinking").map(g=>g.type==="thinking"?{type:"text",text:g.thinking,signature:g.signature}:{type:"redacted",data:g.data});return {text:m,reasoning:f.length>0?f:void 0,toolCalls:h,finishReason:To(u.stop_reason),usage:{promptTokens:u.usage.input_tokens,completionTokens:u.usage.output_tokens},rawCall:{rawPrompt:d,rawSettings:p},rawResponse:{headers:l,body:c},response:{id:(e=u.id)!=null?e:void 0,modelId:(t=u.model)!=null?t:void 0},warnings:i,providerMetadata:{anthropic:{cacheCreationInputTokens:(n=u.usage.cache_creation_input_tokens)!=null?n:null,cacheReadInputTokens:(o=u.usage.cache_read_input_tokens)!=null?o:null}},request:{body:JSON.stringify(s)}}}async doStream(r){let{args:e,warnings:t,betas:n}=await this.getArgs(r),o={...e,stream:true},{responseHeaders:s,value:i}=await(0, Ee.postJsonToApi)({url:this.buildRequestUrl(true),headers:await this.getHeaders({betas:n,headers:r.headers}),body:this.transformRequestBody(o),failedResponseHandler:Ro,successfulResponseHandler:(0, Ee.createEventSourceResponseHandler)(Iu),abortSignal:r.abortSignal,fetch:this.config.fetch}),{messages:a,...l}=e,u="unknown",c={promptTokens:Number.NaN,completionTokens:Number.NaN},d={},p,m;return {stream:i.pipeThrough(new TransformStream({transform(h,f){var g,y,_,T;if(!h.success){f.enqueue({type:"error",error:h.error});return}let w=h.value;switch(w.type){case "ping":return;case "content_block_start":{let x=w.content_block.type;switch(m=x,x){case "text":case "thinking":return;case "redacted_thinking":{f.enqueue({type:"redacted-reasoning",data:w.content_block.data});return}case "tool_use":{d[w.index]={toolCallId:w.content_block.id,toolName:w.content_block.name,jsonText:""};return}default:{let S=x;throw new Error(`Unsupported content block type: ${S}`)}}}case "content_block_stop":{if(d[w.index]!=null){let x=d[w.index];f.enqueue({type:"tool-call",toolCallType:"function",toolCallId:x.toolCallId,toolName:x.toolName,args:x.jsonText}),delete d[w.index];}m=void 0;return}case "content_block_delta":{let x=w.delta.type;switch(x){case "text_delta":{f.enqueue({type:"text-delta",textDelta:w.delta.text});return}case "thinking_delta":{f.enqueue({type:"reasoning",textDelta:w.delta.thinking});return}case "signature_delta":{m==="thinking"&&f.enqueue({type:"reasoning-signature",signature:w.delta.signature});return}case "input_json_delta":{let S=d[w.index];f.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:S.toolCallId,toolName:S.toolName,argsTextDelta:w.delta.partial_json}),S.jsonText+=w.delta.partial_json;return}default:{let S=x;throw new Error(`Unsupported delta type: ${S}`)}}}case "message_start":{c.promptTokens=w.message.usage.input_tokens,c.completionTokens=w.message.usage.output_tokens,p={anthropic:{cacheCreationInputTokens:(g=w.message.usage.cache_creation_input_tokens)!=null?g:null,cacheReadInputTokens:(y=w.message.usage.cache_read_input_tokens)!=null?y:null}},f.enqueue({type:"response-metadata",id:(_=w.message.id)!=null?_:void 0,modelId:(T=w.message.model)!=null?T:void 0});return}case "message_delta":{c.completionTokens=w.usage.output_tokens,u=To(w.delta.stop_reason);return}case "message_stop":{f.enqueue({type:"finish",finishReason:u,usage:c,providerMetadata:p});return}case "error":{f.enqueue({type:"error",error:w.error});return}default:{let x=w;throw new Error(`Unsupported chunk type: ${x}`)}}}})),rawCall:{rawPrompt:a,rawSettings:l},rawResponse:{headers:s},warnings:t,request:{body:JSON.stringify(o)}}}},Su=R.z.object({type:R.z.literal("message"),id:R.z.string().nullish(),model:R.z.string().nullish(),content:R.z.array(R.z.discriminatedUnion("type",[R.z.object({type:R.z.literal("text"),text:R.z.string()}),R.z.object({type:R.z.literal("thinking"),thinking:R.z.string(),signature:R.z.string()}),R.z.object({type:R.z.literal("redacted_thinking"),data:R.z.string()}),R.z.object({type:R.z.literal("tool_use"),id:R.z.string(),name:R.z.string(),input:R.z.unknown()})])),stop_reason:R.z.string().nullish(),usage:R.z.object({input_tokens:R.z.number(),output_tokens:R.z.number(),cache_creation_input_tokens:R.z.number().nullish(),cache_read_input_tokens:R.z.number().nullish()})}),Iu=R.z.discriminatedUnion("type",[R.z.object({type:R.z.literal("message_start"),message:R.z.object({id:R.z.string().nullish(),model:R.z.string().nullish(),usage:R.z.object({input_tokens:R.z.number(),output_tokens:R.z.number(),cache_creation_input_tokens:R.z.number().nullish(),cache_read_input_tokens:R.z.number().nullish()})})}),R.z.object({type:R.z.literal("content_block_start"),index:R.z.number(),content_block:R.z.discriminatedUnion("type",[R.z.object({type:R.z.literal("text"),text:R.z.string()}),R.z.object({type:R.z.literal("thinking"),thinking:R.z.string()}),R.z.object({type:R.z.literal("tool_use"),id:R.z.string(),name:R.z.string()}),R.z.object({type:R.z.literal("redacted_thinking"),data:R.z.string()})])}),R.z.object({type:R.z.literal("content_block_delta"),index:R.z.number(),delta:R.z.discriminatedUnion("type",[R.z.object({type:R.z.literal("input_json_delta"),partial_json:R.z.string()}),R.z.object({type:R.z.literal("text_delta"),text:R.z.string()}),R.z.object({type:R.z.literal("thinking_delta"),thinking:R.z.string()}),R.z.object({type:R.z.literal("signature_delta"),signature:R.z.string()})])}),R.z.object({type:R.z.literal("content_block_stop"),index:R.z.number()}),R.z.object({type:R.z.literal("error"),error:R.z.object({type:R.z.string(),message:R.z.string()})}),R.z.object({type:R.z.literal("message_delta"),delta:R.z.object({stop_reason:R.z.string().nullish()}),usage:R.z.object({output_tokens:R.z.number()})}),R.z.object({type:R.z.literal("message_stop")}),R.z.object({type:R.z.literal("ping")})]),Ou=R.z.object({thinking:R.z.object({type:R.z.union([R.z.literal("enabled"),R.z.literal("disabled")]),budgetTokens:R.z.number().optional()}).optional()}),N=U("zod"),zu=N.z.object({command:N.z.string(),restart:N.z.boolean().optional()});function Mu(r={}){return {type:"provider-defined",id:"anthropic.bash_20241022",args:{},parameters:zu,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var ju=N.z.object({command:N.z.string(),restart:N.z.boolean().optional()});function Nu(r={}){return {type:"provider-defined",id:"anthropic.bash_20250124",args:{},parameters:ju,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var $u=N.z.object({command:N.z.enum(["view","create","str_replace","insert","undo_edit"]),path:N.z.string(),file_text:N.z.string().optional(),insert_line:N.z.number().int().optional(),new_str:N.z.string().optional(),old_str:N.z.string().optional(),view_range:N.z.array(N.z.number().int()).optional()});function Du(r={}){return {type:"provider-defined",id:"anthropic.text_editor_20241022",args:{},parameters:$u,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var Lu=N.z.object({command:N.z.enum(["view","create","str_replace","insert","undo_edit"]),path:N.z.string(),file_text:N.z.string().optional(),insert_line:N.z.number().int().optional(),new_str:N.z.string().optional(),old_str:N.z.string().optional(),view_range:N.z.array(N.z.number().int()).optional()});function Hu(r={}){return {type:"provider-defined",id:"anthropic.text_editor_20250124",args:{},parameters:Lu,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var qu=N.z.object({action:N.z.enum(["key","type","mouse_move","left_click","left_click_drag","right_click","middle_click","double_click","screenshot","cursor_position"]),coordinate:N.z.array(N.z.number().int()).optional(),text:N.z.string().optional()});function Fu(r){return {type:"provider-defined",id:"anthropic.computer_20241022",args:{displayWidthPx:r.displayWidthPx,displayHeightPx:r.displayHeightPx,displayNumber:r.displayNumber},parameters:qu,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var Uu=N.z.object({action:N.z.enum(["key","hold_key","type","cursor_position","mouse_move","left_mouse_down","left_mouse_up","left_click","left_click_drag","right_click","middle_click","double_click","triple_click","scroll","wait","screenshot"]),coordinate:N.z.tuple([N.z.number().int(),N.z.number().int()]).optional(),duration:N.z.number().optional(),scroll_amount:N.z.number().optional(),scroll_direction:N.z.enum(["up","down","left","right"]).optional(),start_coordinate:N.z.tuple([N.z.number().int(),N.z.number().int()]).optional(),text:N.z.string().optional()});function Bu(r){return {type:"provider-defined",id:"anthropic.computer_20250124",args:{displayWidthPx:r.displayWidthPx,displayHeightPx:r.displayHeightPx,displayNumber:r.displayNumber},parameters:Uu,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var Ju={bash_20241022:Mu,bash_20250124:Nu,textEditor_20241022:Du,textEditor_20250124:Hu,computer_20241022:Fu,computer_20250124:Bu};function Eo(r={}){var e;let t=(e=(0, xo.withoutTrailingSlash)(r.baseURL))!=null?e:"https://api.anthropic.com/v1",n=()=>({"anthropic-version":"2023-06-01","x-api-key":(0, xo.loadApiKey)({apiKey:r.apiKey,environmentVariableName:"ANTHROPIC_API_KEY",description:"Anthropic"}),...r.headers}),o=(i,a={})=>new Au(i,a,{provider:"anthropic.messages",baseURL:t,headers:n,fetch:r.fetch,supportsImageUrls:true}),s=function(i,a){if(new.target)throw new Error("The Anthropic model function cannot be called with the new keyword.");return o(i,a)};return s.languageModel=o,s.chat=o,s.messages=o,s.textEmbeddingModel=i=>{throw new _u.NoSuchModelError({modelId:i,modelType:"textEmbeddingModel"})},s.tools=Ju,s}var Wu=Eo();});var Bo=be((Sm,Uo)=>{v();var mr=Object.defineProperty,Vu=Object.getOwnPropertyDescriptor,Ku=Object.getOwnPropertyNames,Gu=Object.prototype.hasOwnProperty,Xu=(r,e)=>{for(var t in e)mr(r,t,{get:e[t],enumerable:true});},Yu=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ku(e))!Gu.call(r,o)&&o!==t&&mr(r,o,{get:()=>e[o],enumerable:!(n=Vu(e,o))||n.enumerable});return r},Qu=r=>Yu(mr({},"__esModule",{value:true}),r),Do={};Xu(Do,{createGoogleGenerativeAI:()=>Fo,google:()=>fc});Uo.exports=Qu(Do);var dr=V(),he=V(),P=U("zod");function Z(r){if(Zu(r))return;if(typeof r=="boolean")return {type:"boolean",properties:{}};let{type:e,description:t,required:n,properties:o,items:s,allOf:i,anyOf:a,oneOf:l,format:u,const:c,minLength:d,enum:p}=r,m={};if(t&&(m.description=t),n&&(m.required=n),u&&(m.format=u),c!==void 0&&(m.enum=[c]),e&&(Array.isArray(e)?e.includes("null")?(m.type=e.filter(h=>h!=="null")[0],m.nullable=true):m.type=e:e==="null"?m.type="null":m.type=e),p!==void 0&&(m.enum=p),o!=null&&(m.properties=Object.entries(o).reduce((h,[f,g])=>(h[f]=Z(g),h),{})),s&&(m.items=Array.isArray(s)?s.map(Z):Z(s)),i&&(m.allOf=i.map(Z)),a)if(a.some(h=>typeof h=="object"&&h?.type==="null")){let h=a.filter(f=>!(typeof f=="object"&&f?.type==="null"));if(h.length===1){let f=Z(h[0]);typeof f=="object"&&(m.nullable=true,Object.assign(m,f));}else m.anyOf=h.map(Z),m.nullable=true;}else m.anyOf=a.map(Z);return l&&(m.oneOf=l.map(Z)),d!==void 0&&(m.minLength=d),m}function Zu(r){return r!=null&&typeof r=="object"&&r.type==="object"&&(r.properties==null||Object.keys(r.properties).length===0)&&!r.additionalProperties}var pr=H(),ec=V();function tc(r){var e,t;let n=[],o=[],s=true;for(let{role:i,content:a}of r)switch(i){case "system":{if(!s)throw new pr.UnsupportedFunctionalityError({functionality:"system messages are only supported at the beginning of the conversation"});n.push({text:a});break}case "user":{s=false;let l=[];for(let u of a)switch(u.type){case "text":{l.push({text:u.text});break}case "image":{l.push(u.image instanceof URL?{fileData:{mimeType:(e=u.mimeType)!=null?e:"image/jpeg",fileUri:u.image.toString()}}:{inlineData:{mimeType:(t=u.mimeType)!=null?t:"image/jpeg",data:(0, ec.convertUint8ArrayToBase64)(u.image)}});break}case "file":{l.push(u.data instanceof URL?{fileData:{mimeType:u.mimeType,fileUri:u.data.toString()}}:{inlineData:{mimeType:u.mimeType,data:u.data}});break}}o.push({role:"user",parts:l});break}case "assistant":{s=false,o.push({role:"model",parts:a.map(l=>{switch(l.type){case "text":return l.text.length===0?void 0:{text:l.text};case "file":{if(l.mimeType!=="image/png")throw new pr.UnsupportedFunctionalityError({functionality:"Only PNG images are supported in assistant messages"});if(l.data instanceof URL)throw new pr.UnsupportedFunctionalityError({functionality:"File data URLs in assistant messages are not supported"});return {inlineData:{mimeType:l.mimeType,data:l.data}}}case "tool-call":return {functionCall:{name:l.toolName,args:l.args}}}}).filter(l=>l!==void 0)});break}case "tool":{s=false,o.push({role:"user",parts:a.map(l=>({functionResponse:{name:l.toolName,response:{name:l.toolName,content:l.result}}}))});break}}return {systemInstruction:n.length>0?{parts:n}:void 0,contents:o}}function Io(r){return r.includes("/")?r:`models/${r}`}var rc=V(),Ge=U("zod"),nc=Ge.z.object({error:Ge.z.object({code:Ge.z.number().nullable(),message:Ge.z.string(),status:Ge.z.string()})}),gr=(0, rc.createJsonErrorResponseHandler)({errorSchema:nc,errorToMessage:r=>r.error.message}),oc=H();function sc(r,e,t,n){var o,s;let i=(o=r.tools)!=null&&o.length?r.tools:void 0,a=[],l=n.includes("gemini-2"),u=n.includes("gemini-1.5-flash")&&!n.includes("-8b");if(e)return {tools:l?{googleSearch:{}}:{googleSearchRetrieval:!u||!t?{}:{dynamicRetrievalConfig:t}},toolConfig:void 0,toolWarnings:a};if(i==null)return {tools:void 0,toolConfig:void 0,toolWarnings:a};let c=[];for(let m of i)m.type==="provider-defined"?a.push({type:"unsupported-tool",tool:m}):c.push({name:m.name,description:(s=m.description)!=null?s:"",parameters:Z(m.parameters)});let d=r.toolChoice;if(d==null)return {tools:{functionDeclarations:c},toolConfig:void 0,toolWarnings:a};let p=d.type;switch(p){case "auto":return {tools:{functionDeclarations:c},toolConfig:{functionCallingConfig:{mode:"AUTO"}},toolWarnings:a};case "none":return {tools:{functionDeclarations:c},toolConfig:{functionCallingConfig:{mode:"NONE"}},toolWarnings:a};case "required":return {tools:{functionDeclarations:c},toolConfig:{functionCallingConfig:{mode:"ANY"}},toolWarnings:a};case "tool":return {tools:{functionDeclarations:c},toolConfig:{functionCallingConfig:{mode:"ANY",allowedFunctionNames:[d.toolName]}},toolWarnings:a};default:{let m=p;throw new oc.UnsupportedFunctionalityError({functionality:`Unsupported tool choice type: ${m}`})}}}function Oo({finishReason:r,hasToolCalls:e}){switch(r){case "STOP":return e?"tool-calls":"stop";case "MAX_TOKENS":return "length";case "IMAGE_SAFETY":case "RECITATION":case "SAFETY":case "BLOCKLIST":case "PROHIBITED_CONTENT":case "SPII":return "content-filter";case "FINISH_REASON_UNSPECIFIED":case "OTHER":return "other";case "MALFORMED_FUNCTION_CALL":return "error";default:return "unknown"}}var ic=class{constructor(r,e,t){this.specificationVersion="v1",this.defaultObjectGenerationMode="json",this.supportsImageUrls=false,this.modelId=r,this.settings=e,this.config=t;}get supportsStructuredOutputs(){var r;return (r=this.settings.structuredOutputs)!=null?r:true}get provider(){return this.config.provider}async getArgs({mode:r,prompt:e,maxTokens:t,temperature:n,topP:o,topK:s,frequencyPenalty:i,presencePenalty:a,stopSequences:l,responseFormat:u,seed:c,providerMetadata:d}){var p,m,h;let f=r.type,g=[],y=(0, he.parseProviderOptions)({provider:"google",providerOptions:d,schema:cc});((p=y?.thinkingConfig)==null?void 0:p.includeThoughts)===true&&!this.config.provider.startsWith("google.vertex.")&&g.push({type:"other",message:`The 'includeThoughts' option is only supported with the Google Vertex provider and might not be supported or could behave unexpectedly with the current Google provider (${this.config.provider}).`});let _={maxOutputTokens:t,temperature:n,topK:s,topP:o,frequencyPenalty:i,presencePenalty:a,stopSequences:l,seed:c,responseMimeType:u?.type==="json"?"application/json":void 0,responseSchema:u?.type==="json"&&u.schema!=null&&this.supportsStructuredOutputs?Z(u.schema):void 0,...this.settings.audioTimestamp&&{audioTimestamp:this.settings.audioTimestamp},responseModalities:y?.responseModalities,thinkingConfig:y?.thinkingConfig},{contents:T,systemInstruction:w}=tc(e);switch(f){case "regular":{let{tools:x,toolConfig:S,toolWarnings:z}=sc(r,(m=this.settings.useSearchGrounding)!=null?m:false,this.settings.dynamicRetrievalConfig,this.modelId);return {args:{generationConfig:_,contents:T,systemInstruction:w,safetySettings:this.settings.safetySettings,tools:x,toolConfig:S,cachedContent:this.settings.cachedContent},warnings:[...g,...z]}}case "object-json":return {args:{generationConfig:{..._,responseMimeType:"application/json",responseSchema:r.schema!=null&&this.supportsStructuredOutputs?Z(r.schema):void 0},contents:T,systemInstruction:w,safetySettings:this.settings.safetySettings,cachedContent:this.settings.cachedContent},warnings:g};case "object-tool":return {args:{generationConfig:_,contents:T,systemInstruction:w,tools:{functionDeclarations:[{name:r.tool.name,description:(h=r.tool.description)!=null?h:"",parameters:Z(r.tool.parameters)}]},toolConfig:{functionCallingConfig:{mode:"ANY"}},safetySettings:this.settings.safetySettings,cachedContent:this.settings.cachedContent},warnings:g};default:{let x=f;throw new Error(`Unsupported type: ${x}`)}}}supportsUrl(r){return this.config.isSupportedUrl(r)}async doGenerate(r){var e,t,n,o,s;let{args:i,warnings:a}=await this.getArgs(r),l=JSON.stringify(i),u=(0, he.combineHeaders)(await(0, he.resolve)(this.config.headers),r.headers),{responseHeaders:c,value:d,rawValue:p}=await(0, he.postJsonToApi)({url:`${this.config.baseURL}/${Io(this.modelId)}:generateContent`,headers:u,body:i,failedResponseHandler:gr,successfulResponseHandler:(0, he.createJsonResponseHandler)(lc),abortSignal:r.abortSignal,fetch:this.config.fetch}),{contents:m,...h}=i,f=d.candidates[0],g=f.content==null||typeof f.content!="object"||!("parts"in f.content)?[]:f.content.parts,y=zo({parts:g,generateId:this.config.generateId}),_=d.usageMetadata;return {text:Mo(g),reasoning:jo(g),files:(e=No(g))==null?void 0:e.map(T=>({data:T.inlineData.data,mimeType:T.inlineData.mimeType})),toolCalls:y,finishReason:Oo({finishReason:f.finishReason,hasToolCalls:y!=null&&y.length>0}),usage:{promptTokens:(t=_?.promptTokenCount)!=null?t:NaN,completionTokens:(n=_?.candidatesTokenCount)!=null?n:NaN},rawCall:{rawPrompt:m,rawSettings:h},rawResponse:{headers:c,body:p},warnings:a,providerMetadata:{google:{groundingMetadata:(o=f.groundingMetadata)!=null?o:null,safetyRatings:(s=f.safetyRatings)!=null?s:null}},sources:$o({groundingMetadata:f.groundingMetadata,generateId:this.config.generateId}),request:{body:l}}}async doStream(r){let{args:e,warnings:t}=await this.getArgs(r),n=JSON.stringify(e),o=(0, he.combineHeaders)(await(0, he.resolve)(this.config.headers),r.headers),{responseHeaders:s,value:i}=await(0, he.postJsonToApi)({url:`${this.config.baseURL}/${Io(this.modelId)}:streamGenerateContent?alt=sse`,headers:o,body:e,failedResponseHandler:gr,successfulResponseHandler:(0, he.createEventSourceResponseHandler)(uc),abortSignal:r.abortSignal,fetch:this.config.fetch}),{contents:a,...l}=e,u="unknown",c={promptTokens:Number.NaN,completionTokens:Number.NaN},d,p=this.config.generateId,m=false;return {stream:i.pipeThrough(new TransformStream({transform(h,f){var g,y,_,T,w,x;if(!h.success){f.enqueue({type:"error",error:h.error});return}let S=h.value,z=S.usageMetadata;z!=null&&(c={promptTokens:(g=z.promptTokenCount)!=null?g:NaN,completionTokens:(y=z.candidatesTokenCount)!=null?y:NaN});let C=(_=S.candidates)==null?void 0:_[0];if(C==null)return;let k=C.content;if(k!=null){let O=Mo(k.parts);O!=null&&f.enqueue({type:"text-delta",textDelta:O});let I=jo(k.parts);if(I!=null)for(let L of I)f.enqueue({type:"reasoning",textDelta:L.text});let J=No(k.parts);if(J!=null)for(let L of J)f.enqueue({type:"file",mimeType:L.inlineData.mimeType,data:L.inlineData.data});let G=zo({parts:k.parts,generateId:p});if(G!=null)for(let L of G)f.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:L.toolCallId,toolName:L.toolName,argsTextDelta:L.args}),f.enqueue({type:"tool-call",toolCallType:"function",toolCallId:L.toolCallId,toolName:L.toolName,args:L.args}),m=true;}if(C.finishReason!=null){u=Oo({finishReason:C.finishReason,hasToolCalls:m});let O=(T=$o({groundingMetadata:C.groundingMetadata,generateId:p}))!=null?T:[];for(let I of O)f.enqueue({type:"source",source:I});d={google:{groundingMetadata:(w=C.groundingMetadata)!=null?w:null,safetyRatings:(x=C.safetyRatings)!=null?x:null}};}},flush(h){h.enqueue({type:"finish",finishReason:u,usage:c,providerMetadata:d});}})),rawCall:{rawPrompt:a,rawSettings:l},rawResponse:{headers:s},warnings:t,request:{body:n}}}};function zo({parts:r,generateId:e}){let t=r?.filter(n=>"functionCall"in n);return t==null||t.length===0?void 0:t.map(n=>({toolCallType:"function",toolCallId:e(),toolName:n.functionCall.name,args:JSON.stringify(n.functionCall.args)}))}function Mo(r){let e=r?.filter(t=>"text"in t&&t.thought!==true);return e==null||e.length===0?void 0:e.map(t=>t.text).join("")}function jo(r){let e=r?.filter(t=>"text"in t&&t.thought===true&&t.text!=null);return e==null||e.length===0?void 0:e.map(t=>({type:"text",text:t.text}))}function No(r){return r?.filter(e=>"inlineData"in e)}function $o({groundingMetadata:r,generateId:e}){var t;return (t=r?.groundingChunks)==null?void 0:t.filter(n=>n.web!=null).map(n=>({sourceType:"url",id:e(),url:n.web.uri,title:n.web.title}))}var Lo=P.z.object({parts:P.z.array(P.z.union([P.z.object({functionCall:P.z.object({name:P.z.string(),args:P.z.unknown()})}),P.z.object({inlineData:P.z.object({mimeType:P.z.string(),data:P.z.string()})}),P.z.object({text:P.z.string().nullish(),thought:P.z.boolean().nullish()})])).nullish()}),ac=P.z.object({web:P.z.object({uri:P.z.string(),title:P.z.string()}).nullish(),retrievedContext:P.z.object({uri:P.z.string(),title:P.z.string()}).nullish()}),Ho=P.z.object({webSearchQueries:P.z.array(P.z.string()).nullish(),retrievalQueries:P.z.array(P.z.string()).nullish(),searchEntryPoint:P.z.object({renderedContent:P.z.string()}).nullish(),groundingChunks:P.z.array(ac).nullish(),groundingSupports:P.z.array(P.z.object({segment:P.z.object({startIndex:P.z.number().nullish(),endIndex:P.z.number().nullish(),text:P.z.string().nullish()}),segment_text:P.z.string().nullish(),groundingChunkIndices:P.z.array(P.z.number()).nullish(),supportChunkIndices:P.z.array(P.z.number()).nullish(),confidenceScores:P.z.array(P.z.number()).nullish(),confidenceScore:P.z.array(P.z.number()).nullish()})).nullish(),retrievalMetadata:P.z.union([P.z.object({webDynamicRetrievalScore:P.z.number()}),P.z.object({})]).nullish()}),qo=P.z.object({category:P.z.string().nullish(),probability:P.z.string().nullish(),probabilityScore:P.z.number().nullish(),severity:P.z.string().nullish(),severityScore:P.z.number().nullish(),blocked:P.z.boolean().nullish()}),lc=P.z.object({candidates:P.z.array(P.z.object({content:Lo.nullish().or(P.z.object({}).strict()),finishReason:P.z.string().nullish(),safetyRatings:P.z.array(qo).nullish(),groundingMetadata:Ho.nullish()})),usageMetadata:P.z.object({promptTokenCount:P.z.number().nullish(),candidatesTokenCount:P.z.number().nullish(),totalTokenCount:P.z.number().nullish()}).nullish()}),uc=P.z.object({candidates:P.z.array(P.z.object({content:Lo.nullish(),finishReason:P.z.string().nullish(),safetyRatings:P.z.array(qo).nullish(),groundingMetadata:Ho.nullish()})).nullish(),usageMetadata:P.z.object({promptTokenCount:P.z.number().nullish(),candidatesTokenCount:P.z.number().nullish(),totalTokenCount:P.z.number().nullish()}).nullish()}),cc=P.z.object({responseModalities:P.z.array(P.z.enum(["TEXT","IMAGE"])).nullish(),thinkingConfig:P.z.object({thinkingBudget:P.z.number().nullish(),includeThoughts:P.z.boolean().nullish()}).nullish()}),dc=H(),xt=V(),Xe=U("zod"),pc=class{constructor(r,e,t){this.specificationVersion="v1",this.modelId=r,this.settings=e,this.config=t;}get provider(){return this.config.provider}get maxEmbeddingsPerCall(){return 2048}get supportsParallelCalls(){return true}async doEmbed({values:r,headers:e,abortSignal:t}){if(r.length>this.maxEmbeddingsPerCall)throw new dc.TooManyEmbeddingValuesForCallError({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:r});let n=(0, xt.combineHeaders)(await(0, xt.resolve)(this.config.headers),e),{responseHeaders:o,value:s}=await(0, xt.postJsonToApi)({url:`${this.config.baseURL}/models/${this.modelId}:batchEmbedContents`,headers:n,body:{requests:r.map(i=>({model:`models/${this.modelId}`,content:{role:"user",parts:[{text:i}]},outputDimensionality:this.settings.outputDimensionality,taskType:this.settings.taskType}))},failedResponseHandler:gr,successfulResponseHandler:(0, xt.createJsonResponseHandler)(gc),abortSignal:t,fetch:this.config.fetch});return {embeddings:s.embeddings.map(i=>i.values),usage:void 0,rawResponse:{headers:o}}}},gc=Xe.z.object({embeddings:Xe.z.array(Xe.z.object({values:Xe.z.array(Xe.z.number())}))});function mc(r){return r.toString().startsWith("https://generativelanguage.googleapis.com/v1beta/files/")}function Fo(r={}){var e;let t=(e=(0, dr.withoutTrailingSlash)(r.baseURL))!=null?e:"https://generativelanguage.googleapis.com/v1beta",n=()=>({"x-goog-api-key":(0, dr.loadApiKey)({apiKey:r.apiKey,environmentVariableName:"GOOGLE_GENERATIVE_AI_API_KEY",description:"Google Generative AI"}),...r.headers}),o=(a,l={})=>{var u;return new ic(a,l,{provider:"google.generative-ai",baseURL:t,headers:n,generateId:(u=r.generateId)!=null?u:dr.generateId,isSupportedUrl:mc,fetch:r.fetch})},s=(a,l={})=>new pc(a,l,{provider:"google.generative-ai",baseURL:t,headers:n,fetch:r.fetch}),i=function(a,l){if(new.target)throw new Error("The Google Generative AI model function cannot be called with the new keyword.");return o(a,l)};return i.languageModel=o,i.chat=o,i.generativeAI=o,i.embedding=s,i.textEmbedding=s,i.textEmbeddingModel=s,i}var fc=Fo();});var Jo,Wo;exports.VercelProviderRuntime=void 0;var fr=le(()=>{v();ke();Jo=10,Wo=50,exports.VercelProviderRuntime=class{config;constructor(e){this.config=e;}async query(e,t){return this._run(e,"query",t)}async execute(e,t){return this._run(e,"execute",t)}async _run(e,t,n){let{generateText:o,tool:s}=await import('ai'),i=this.convertTools(n?.tools??[],s),a=this.createModel(n?.model),l=Math.min(n?.maxSteps??this.config.maxSteps??Jo,Wo);try{let u=0,c=await o({model:a,system:n?.systemPrompt??void 0,prompt:e,tools:i,maxSteps:l,...this.config.temperature!==void 0&&{temperature:this.config.temperature},...this.config.maxTokens!==void 0&&{maxTokens:this.config.maxTokens},onStepFinish:p=>{if(u++,!!n?.onOutput){if(p.toolCalls&&p.toolCalls.length>0)for(let m of p.toolCalls)n.onOutput(JSON.stringify({type:"assistant",message:{content:[{type:"tool_use",id:m.toolCallId,name:m.toolName,input:m.args}]}}),"stdout");if(p.toolResults&&p.toolResults.length>0)for(let m of p.toolResults){let h=typeof m.result=="string"?m.result:JSON.stringify(m.result);n.onOutput(JSON.stringify({type:"user",message:{content:[{type:"tool_result",tool_use_id:m.toolCallId,output:h,is_error:!1}]}}),"stdout");}}}}),d=new Set((n?.tools??[]).filter(p=>!p.execute).map(p=>p.name));if(c.finishReason==="tool-calls"&&Array.isArray(c.toolCalls)&&c.toolCalls.length>0){let p=c.toolCalls.filter(m=>d.has(m.toolName));if(p.length>0){let m=p[0];throw new exports.ClientToolCallRequiredError({toolCallId:m.toolCallId,toolName:m.toolName,args:m.args},{userMessage:e,responseMessages:c.response?.messages??[],toolDefinitions:n?.tools??[],maxSteps:l,systemPrompt:n?.systemPrompt,modelOverride:n?.model})}}if(n?.onUsage&&c.usage){let p={inputTokens:c.usage.promptTokens??0,outputTokens:c.usage.completionTokens??0,cachedInputTokens:0,costUsd:0};n.onUsage(p);}return n?.onModel&&n.onModel(n.model??this.config.model),c.text??""}catch(u){throw u instanceof exports.ClientToolCallRequiredError?u:u.status===401?new exports.ProviderError(`Authentication failed for ${this.config.provider}. Check your API key.`,this.config.provider):u.status===429?new exports.ProviderError(`Rate limit exceeded for ${this.config.provider}.`,this.config.provider):new exports.ProviderError(`Provider error: ${u.message}`,this.config.provider)}}async continueWithToolResults(e,t,n){let{generateText:o,tool:s}=await import('ai'),i=this.convertTools(e.toolDefinitions,s),a=this.createModel(e.modelOverride),l=Math.min(e.maxSteps??this.config.maxSteps??Jo,Wo),u=[{role:"user",content:e.userMessage},...e.responseMessages,{role:"tool",content:t.map(c=>({type:"tool-result",toolCallId:c.toolCallId,toolName:c.toolName,result:typeof c.result=="string"?c.result:JSON.stringify(c.result)}))}];try{let c=await o({model:a,system:e.systemPrompt??void 0,messages:u,tools:i,maxSteps:l,...this.config.temperature!==void 0&&{temperature:this.config.temperature},...this.config.maxTokens!==void 0&&{maxTokens:this.config.maxTokens}}),d=new Set(e.toolDefinitions.filter(p=>!p.execute).map(p=>p.name));if(c.finishReason==="tool-calls"&&Array.isArray(c.toolCalls)&&c.toolCalls.length>0){let p=c.toolCalls.filter(m=>d.has(m.toolName));if(p.length>0){let m=p[0];throw new exports.ClientToolCallRequiredError({toolCallId:m.toolCallId,toolName:m.toolName,args:m.args},{userMessage:e.userMessage,responseMessages:[...e.responseMessages,{role:"tool",content:t.map(h=>({type:"tool-result",toolCallId:h.toolCallId,toolName:h.toolName,result:typeof h.result=="string"?h.result:JSON.stringify(h.result)}))},...c.response?.messages??[]],toolDefinitions:e.toolDefinitions,maxSteps:e.maxSteps,systemPrompt:e.systemPrompt,modelOverride:e.modelOverride})}}return n?.onUsage&&c.usage&&n.onUsage({inputTokens:c.usage.promptTokens??0,outputTokens:c.usage.completionTokens??0,cachedInputTokens:0,costUsd:0}),n?.onModel&&n.onModel(e.modelOverride??this.config.model),c.text??""}catch(c){throw c instanceof exports.ClientToolCallRequiredError?c:new exports.ProviderError(`Provider error: ${c.message}`,this.config.provider)}}convertTools(e,t){let{z:n}=U("zod"),o={};for(let s of e){let i=this.jsonSchemaToZod(s.parameters??{},n);s.execute?o[s.name]=t({description:s.description,parameters:i,execute:async a=>s.execute(a)}):o[s.name]=t({description:s.description,parameters:i});}return o}jsonSchemaToZod(e,t){if(!e||!e.properties)return t.object({});let n={},o=e.properties,s=e.required??[];for(let[i,a]of Object.entries(o)){let l;switch(a.type){case "string":l=t.string();break;case "number":l=t.number();break;case "integer":l=t.number().int();break;case "boolean":l=t.boolean();break;case "array":l=t.array(t.any());break;default:l=t.any();}a.description&&(l=l.describe(a.description)),s.includes(i)||(l=l.optional()),n[i]=l;}return t.object(n)}createModel(e){let{provider:t,apiKey:n,baseURL:o}=this.config,s=e||this.config.model;switch(t){case "api/openrouter":{let{createOpenAI:i}=ur();return i({apiKey:n||process.env.OPENROUTER_API_KEY,baseURL:o||"https://openrouter.ai/api/v1"})(s)}case "api/openai":{let{createOpenAI:i}=ur();return i({apiKey:n||process.env.OPENAI_API_KEY,...o&&{baseURL:o}})(s)}case "api/anthropic":{let{createAnthropic:i}=So();return i({apiKey:n||process.env.ANTHROPIC_API_KEY,...o&&{baseURL:o}})(s)}case "api/google":{let{createGoogleGenerativeAI:i}=Bo();return i({apiKey:n||process.env.GOOGLE_API_KEY})(s)}default:throw new exports.ProviderError(`Unsupported API provider: ${t}`,t)}}};});var Ko={};Tt(Ko,{registerApiProviders:()=>Vo});function Vo(r){Se("api",(e,t)=>{let n=r?.apiKeys?.[e];return new exports.VercelProviderRuntime({provider:t,model:"",apiKey:n,maxSteps:r?.defaults?.maxSteps,temperature:r?.defaults?.temperature})});}var hr=le(()=>{v();ke();fr();});function hc(r){if(!r)return r;let e=r.trim().replace(/\/+$/,"");return e.toLowerCase().endsWith("/mcp")?e.slice(0,-4):e}exports.McpHttpTransport=void 0;var yr=le(()=>{v();exports.McpHttpTransport=class{endpoint;headers;timeoutMs;constructor(e){let t=hc(e.url);this.endpoint=`${t}/mcp`,this.headers={"Content-Type":"application/json",...e.headers??{}},e.apiKey&&(this.headers.Authorization=`Bearer ${e.apiKey}`),this.timeoutMs=e.timeoutMs??3e4;}async send(e){let t=new AbortController,n=setTimeout(()=>t.abort(),this.timeoutMs);try{let o=await fetch(this.endpoint,{method:"POST",headers:this.headers,body:JSON.stringify(e),signal:t.signal});if(clearTimeout(n),!o.ok){let a=await o.text();throw new Error(`HTTP ${o.status}: ${o.statusText}${a?` - ${a}`:""}`)}let s=o.headers.get("content-type");if(s?.includes("application/json"))return await o.json();let i=await o.text();return {jsonrpc:"2.0",id:e.id,error:{code:-32600,message:`Unexpected response content-type: ${s}`,data:i}}}catch(o){throw clearTimeout(n),o instanceof Error&&o.name==="AbortError"?new Error(`MCP-HTTP request timeout after ${this.timeoutMs}ms to ${this.endpoint}`):o}}async close(){}};});exports.RemoteAgentManager=void 0;var vr=le(()=>{v();yr();exports.RemoteAgentManager=class{logger;configs=new Map;transports=new Map;constructor(e={}){this.logger=e.logger??(()=>{});}loadConfig(e,t){this.validateConfig(t),this.configs.set(e,t),this.transports.set(e,new exports.McpHttpTransport({url:t.url,apiKey:t.apiKey,headers:t.headers,timeoutMs:t.timeoutMs})),this.logger(`Loaded remote agent config for: ${e}`,"debug");}loadConfigWithTransport(e,t,n){this.validateConfig(t),this.configs.set(e,t),this.transports.set(e,n),this.logger(`Loaded remote agent config for: ${e} (custom transport)`,"debug");}getConfig(e){return this.configs.get(e)}isRemoteAgent(e){return this.configs.has(e)}getRemoteAgentIds(){return Array.from(this.configs.keys())}async query(e,t){let n=this.requireConfig(e),o=n.tools?.query??"crewx_queryAgent",i={agentId:n.agentId??e,query:t.query};t.context&&(i.context=t.context),t.model&&(i.model=t.model),t.platform&&(i.platform=t.platform),t.messages?.length&&(i.messages=t.messages);try{let a=await this.callRemoteTool(e,o,i);return this.normalizeResponse(a)}catch(a){let l=a instanceof Error?a.message:String(a);throw this.logger(`Remote query failed for agent ${e}: ${l}`,"error"),a}}async execute(e,t){let n=this.requireConfig(e),o=n.tools?.execute??"crewx_executeAgent",i={agentId:n.agentId??e,task:t.task};t.context&&(i.context=t.context),t.model&&(i.model=t.model),t.platform&&(i.platform=t.platform),t.messages?.length&&(i.messages=t.messages);try{let a=await this.callRemoteTool(e,o,i);return this.normalizeResponse(a)}catch(a){let l=a instanceof Error?a.message:String(a);throw this.logger(`Remote execute failed for agent ${e}: ${l}`,"error"),a}}mapToolNames(e,t){let n=this.requireConfig(e);n.tools={query:t.query??n.tools?.query??"crewx_queryAgent",execute:t.execute??n.tools?.execute??"crewx_executeAgent"},this.logger(`Updated tool name mapping for agent ${e}`,"debug");}async clearConfigs(){for(let e of this.transports.values())await e.close();this.configs.clear(),this.transports.clear(),this.logger("Cleared all remote agent configurations","debug");}requireConfig(e){let t=this.configs.get(e);if(!t)throw new Error(`Agent ${e} is not configured as a remote agent`);return t}async callRemoteTool(e,t,n){let o=this.transports.get(e);if(!o)throw new Error(`No transport available for agent ${e}`);let s={jsonrpc:"2.0",id:`${t}-${Date.now()}`,method:"tools/call",params:{name:t,arguments:n}};this.logger(`Calling remote MCP tool ${t} for agent ${e}`,"debug");let i=await o.send(s);if(i.error)throw new Error(i.error.message||"MCP server returned an error");return i.result}normalizeResponse(e){if(!e)return {success:false,content:[{type:"text",text:"Remote agent returned no response."}]};let t=e;if(Array.isArray(t.content)&&t.content.length>0)return t;let n=t.response??t.implementation??t.message??t.output,o=typeof n=="string"?n:JSON.stringify(n??e,null,2);return {...t,content:[{type:"text",text:o}]}}validateConfig(e){if(!e.url)throw new Error("Remote agent configuration requires a URL");if(!e.url.startsWith("http://")&&!e.url.startsWith("https://"))throw new Error("Remote agent URL must start with http:// or https://");if(e.type!=="mcp-http")throw new Error(`Unsupported remote agent type: ${e.type}`)}};});var Xo={};Tt(Xo,{RemoteProviderRuntime:()=>exports.RemoteProviderRuntime,createRemoteProviderFactory:()=>Go,resolveFileRemoteAgent:()=>Rc});function xc(r){let e=fs$1.readFileSync(r,"utf-8"),t=jsYaml.load(e);return {agents:Array.isArray(t?.agents)?t.agents:void 0}}function kc(r){let e=Array.isArray(r.provider)?r.provider[0]:r.provider;return e||(Array.isArray(r.inline?.provider)?r.inline.provider[0]:r.inline?.provider)}function Rc(r,e=xc,t=fs$1.existsSync){let n=r.location.replace("file://","");if(!t(n))throw new Error(`Remote config file not found: ${n}`);if(!r.external_agent_id)throw new Error(`external_agent_id is required for file:// remote provider "${r.id}"`);let s=e(n).agents?.find(l=>l.id===r.external_agent_id);if(!s)throw new Error(`Agent "${r.external_agent_id}" not found in ${n}`);let i=kc(s);if(!i)throw new Error(`Agent "${r.external_agent_id}" in ${n} has no provider configured`);if(i.startsWith("remote/"))throw new Error(`Chained remotes not allowed: ${r.id} \u2192 ${i}`);let a=Fr.resolve(Fr.dirname(n),s.working_directory??".");return {agent:{...s,working_directory:a},provider:i}}function Go(r,e=de){return (t,n)=>{let o=r.get(t);if(!o)throw new Error(`Remote provider "${t}" not found. Available: ${Array.from(r.keys()).join(", ")||"(none)"}`);if(o.location.startsWith("file://"))throw new Error(`Remote provider "${t}" uses file:// location which is not supported at the SDK level. Use the CLI commands (crewx query / crewx execute) which handle file:// remotes automatically.`);return new exports.RemoteProviderRuntime(t,o,e)}}function Cc(r,e){let t=e.location;if(!t)throw new Error("Remote provider config requires a location");if(!t.startsWith("http://")&&!t.startsWith("https://"))throw new Error(`Unsupported remote location protocol for MCP-HTTP: ${t}`);return {type:"mcp-http",url:t,apiKey:e.apiKey,headers:e.headers,timeoutMs:e.timeout?.query??3e4,agentId:e.external_agent_id??r}}exports.RemoteProviderRuntime=void 0;var wr=le(()=>{v();ke();vr();exports.RemoteProviderRuntime=class{manager;agentId;constructor(e,t,n=de){this.agentId=t.external_agent_id??e,this.manager=new exports.RemoteAgentManager;let o=Cc(e,t);this.manager.loadConfig(this.agentId,o);}async query(e,t){return (await this.manager.query(this.agentId,{agentId:this.agentId,query:e,model:t?.model,context:t?.context??t?.systemPrompt})).content.map(o=>o.text).join(`
34
34
  `)}async execute(e,t){return (await this.manager.execute(this.agentId,{agentId:this.agentId,task:e,model:t?.model,context:t?.context??t?.systemPrompt})).content.map(o=>o.text).join(`
35
- `)}};});var Qo={};Rt(Qo,{PluginProviderRuntime:()=>exports.PluginProviderRuntime,createPluginProviderFactory:()=>Yo});function Yo(r){return (e,t)=>{let n=r.get(e);if(!n)throw new exports.ProviderError(`Plugin provider "${e}" not found. Available: ${Array.from(r.keys()).join(", ")||"(none)"}`,`plugin/${e}`);return new exports.PluginProviderRuntime(e,n)}}function Go(r,e,t,n){let o=r.map(s=>s.replace(/\{model\}/g,e));return n&&o.push(t),o}function kc(r){if(!r||typeof r!="string")throw new Error("Plugin provider requires a cli_command")}function Xo(r){if(!Array.isArray(r))throw new Error("CLI arguments must be an array");for(let e of r)if(typeof e!="string")throw new Error("Each CLI argument must be a string")}function Rc(r){for(let{pattern:e}of r)if(typeof e!="string")throw new Error("Error pattern must be a string")}function Cc(r){for(let[e,t]of Object.entries(r))if(typeof e!="string"||typeof t!="string")throw new Error("env entries must be string key/value pairs")}exports.PluginProviderRuntime=void 0;var vr=le(()=>{y();xe();exports.PluginProviderRuntime=class{constructor(e,t){this.config=t;this.providerStr=`plugin/${e}`,kc(t.cli_command),Xo(t.query_args),Xo(t.execute_args),t.error_patterns&&Rc(t.error_patterns),t.env&&Cc(t.env);}config;providerStr;async query(e,t){let n=t?.model??this.config.default_model??"default",o=Go(this.config.query_args,n,e,this.config.prompt_in_args),s=this.config.prompt_in_args?void 0:e;t?.onCommand?.(`${this.config.cli_command} ${o.join(" ")}`);let i=this.config.timeout?.query??6e5;return this.runProcess(o,t,s,i)}async execute(e,t){let n=t?.model??this.config.default_model??"default",o=Go(this.config.execute_args,n,e,this.config.prompt_in_args),s=this.config.prompt_in_args?void 0:e;t?.onCommand?.(`${this.config.cli_command} ${o.join(" ")}`);let i=this.config.timeout?.execute??6e5;return this.runProcess(o,t,s,i)}runProcess(e,t,n,o){return new Promise((s,i)=>{let a={...process.env,...this.config.env??{}},l=child_process.spawn(this.config.cli_command,e,{env:a,shell:process.platform==="win32",stdio:["pipe","pipe","pipe"]});n!==void 0&&l.stdin.write(n),l.stdin.end(),l.pid!==void 0&&t?.onPid?.(l.pid);let u="",c="",d="",p="";l.stdout.on("data",h=>{let f=h.toString();u+=f,d+=f;let g=d.split(`
36
- `);d=g.pop()??"";for(let v of g)v.trim()&&t?.onOutput?.(v,"stdout");}),l.stderr.on("data",h=>{let f=h.toString();c+=f,p+=f;let g=p.split(`
37
- `);p=g.pop()??"";for(let v of g)v.trim()&&t?.onOutput?.(v,"stderr");});let m=setTimeout(()=>{l.kill("SIGTERM"),i(new exports.ProviderError(`Plugin provider "${this.providerStr}" timed out after ${o}ms`,this.providerStr));},o);l.on("error",h=>{if(clearTimeout(m),h.code==="ENOENT"){let f=this.config.not_installed_message??`CLI command "${this.config.cli_command}" not found. Is ${this.config.id} installed?`;i(new exports.ProviderError(f,this.providerStr));}else i(new exports.ProviderError(`Spawn error: ${h.message}`,this.providerStr));}),l.on("close",h=>{clearTimeout(m),d.trim()&&t?.onOutput?.(d,"stdout"),p.trim()&&t?.onOutput?.(p,"stderr");let f=h??0;if(t?.onExitCode?.(f),this.config.error_patterns){let g=c||u;for(let v of this.config.error_patterns)if(g.includes(v.pattern)){i(new exports.ProviderError(v.message,this.providerStr));return}}if(h!==0){i(new exports.ProviderError(`Process exited with code ${h}: ${c.slice(0,500)}`,this.providerStr));return}s(u.trim());});})}};});y();y();y();function ws(r){let e=o=>o.replace(/[.+^${}()|[\]\\]/g,"\\$&"),n=r.split("/").map(o=>o==="**"?".*":o.split("*").map(e).join("[^/]*"));return new RegExp(`^${n.join("\\/")}$`)}function ne(r,e){try{return ws(e).test(r)}catch{return false}}y();y();var bs=zod.z.object({model:zod.z.string().optional(),system_prompt:zod.z.string().optional(),prompt:zod.z.string().optional(),layout:zod.z.union([zod.z.string(),zod.z.object({id:zod.z.string(),props:zod.z.record(zod.z.unknown()).optional()})]).optional()}).catchall(zod.z.unknown()),_s=zod.z.object({id:zod.z.string(),name:zod.z.string().optional(),role:zod.z.string().optional(),team:zod.z.string().optional(),provider:zod.z.union([zod.z.string(),zod.z.array(zod.z.string())]),working_directory:zod.z.string().optional(),description:zod.z.string().optional(),tags:zod.z.array(zod.z.string()).optional(),inline:bs.optional()}).catchall(zod.z.unknown()),Ar=zod.z.object({agents:zod.z.array(_s).optional(),hooks:zod.z.array(zod.z.unknown()).optional(),settings:zod.z.record(zod.z.unknown()).optional(),skills:zod.z.unknown().optional(),layouts:zod.z.record(zod.z.unknown()).optional(),documents:zod.z.record(zod.z.unknown()).optional()}).catchall(zod.z.unknown());var _e=class extends Error{constructor(t,n){super(t);this.cause=n;this.name="ConfigLoadError";}cause};function Sr(r){if(!r||typeof r!="string"||!r.trim())throw new _e("YAML content must be a non-empty string");let e;try{e=jsYaml.load(r);}catch(o){throw new _e(`YAML parse error: ${o.message}`,o)}let t=Rs(e),n=Ar.safeParse(t);if(!n.success)throw new _e(`Config validation error: ${n.error.message}`);return n.data}function Ct(r){let e;try{e=fs$1.readFileSync(r,"utf-8");}catch(t){throw new _e(`Cannot read file: ${r}`,t)}return Sr(e)}function Rs(r){if(!r||typeof r!="object")return {agents:[]};let e=r,t;if(e.agents&&typeof e.agents=="object"&&!Array.isArray(e.agents)){let o=e.agents;t=Object.entries(o).map(([s,i])=>({id:s,...i&&typeof i=="object"?i:{}}));}else if(Array.isArray(e.agents))t=e.agents;else return {...e,agents:[]};let n=t.map(o=>{if(o.provider===void 0&&o.inline&&typeof o.inline=="object"){let s=o.inline;if(s.provider!==void 0)return {...o,provider:s.provider}}return o});return {...e,agents:n}}y();var ue=class extends Error{constructor(e,t){let n=t.length>0?` Available: ${t.join(", ")}`:"";super(`Agent not found: "${e}".${n}`),this.name="AgentNotFoundError";}},Cs={claude:{id:"claude",provider:"cli/claude"},gemini:{id:"gemini",provider:"cli/gemini"},copilot:{id:"copilot",provider:"cli/copilot"},codex:{id:"codex",provider:"cli/codex"}};function ot(r,e){let t=r.startsWith("@")?r.slice(1):r,n=e.find(s=>s.id===t);if(n)return n;let o=Cs[t];if(o)return o;throw new ue(r,e.map(s=>s.id))}xe();y();y();var zs=[/^ANTHROPIC_/i,/^OPENAI_/i,/^AWS_SECRET/i,/^SLACK_/i,/^GITHUB_TOKEN$/i,/^CREWX_MCP_KEY$/i,/^DATABASE_/i,/^AWS_ACCESS_KEY/i,/^AWS_SESSION_TOKEN$/i,/^GH_TOKEN$/i,/^GH_APP_/i,/^NPM_TOKEN$/i,/^NPM_AUTH/i,/^GOOGLE_APPLICATION/i,/^GCLOUD_/i,/^AZURE_/i,/^ARM_/i,/^DOCKER_PASSWORD$/i,/^DOCKER_AUTH/i,/^SSH_PRIVATE/i,/^SSH_AUTH_SOCK$/i,/^CI_JOB_TOKEN$/i,/^ACTIONS_RUNTIME_TOKEN$/i,/^VAULT_TOKEN$/i,/^SONAR_TOKEN$/i,/^CODECOV_TOKEN$/i,/TOKEN$/i,/SECRET$/i,/PASSWORD$/i,/API_KEY$/i],Ms=/[;|&`$(){}!><\n\r]/,js=2,Ns=["*","**","*:*","* *","**/*"];function $s(){let r={};for(let[e,t]of Object.entries(process.env))t!==void 0&&(zs.some(n=>n.test(e))||(r[e]=t));return r}function Ds(r){if(Ms.test(r))throw new Error(`exec blocked: shell metacharacter detected in "${r}"`)}function Ls(r){return /^npx\s+@crewx\/[\w-]+/.test(r)}function Hs(r){if(Ns.includes(r.trim()))throw new Error(`exec config error: overly broad pattern "${r}" is not allowed`);if(!/^[\w./@-]/.test(r))throw new Error("exec config error: pattern must start with a command name")}function qs(r,e){let t=e.allow??[],n=e.deny??[];for(let o of [...t,...n])Hs(o);return n.some(o=>ne(r,o))?false:Ls(r)?true:t.some(o=>ne(r,o))}var zr=false;function Fs(r){zr=r;}function Oe(r){if(!zr)return;let e=JSON.stringify({span:"template_exec",...r,timestamp:new Date().toISOString()});console.error(e);}function Us(r){let e=[],t="",n=false,o=false;for(let s=0;s<r.length;s++){let i=r[s];i==="'"&&!o?n=!n:i==='"'&&!n?o=!o:i===" "&&!n&&!o?t.length>0&&(e.push(t),t=""):t+=i;}return t.length>0&&e.push(t),e}function Mr(r,e){let t=Date.now(),n=parseInt(process.env.CREWX_EXEC_DEPTH??"0",10);if(isNaN(n)||n>=js)return Oe({command:r,status:"denied",reason:"invalid or max recursion depth"}),"(exec blocked: max recursion depth reached)";try{Ds(r);}catch{return Oe({command:r,status:"denied",reason:"shell metacharacter detected"}),`(exec blocked: shell metacharacter detected in "${r}")`}if(!qs(r,e))return Oe({command:r,status:"denied",reason:"not in allow list"}),`(exec blocked: ${r})`;try{let o=Us(r),[s,...i]=o;if(!s)return `(exec failed: ${r})`;let a=$s(),l=child_process.execFileSync(s,i,{timeout:e.timeout??5e3,maxBuffer:64*1024,encoding:"utf-8",env:{...a,CREWX_EXEC_DEPTH:String(n+1)},stdio:["pipe","pipe","pipe"]}),u=Date.now()-t;return Oe({command:r,status:"allowed",allowed_by:"policy",duration_ms:u}),`<exec-output cmd="${r}">
38
- ${l.trim()}
39
- </exec-output>`}catch{return Oe({command:r,status:"error",reason:"execution failed"}),`(exec failed: ${r})`}}y();function jr(r){return r==null?"":String(r)}y();function Nr(r,e){return `\`\`\`${e?.hash?.lang??""}
40
- ${r??""}
41
- \`\`\``}y();function At(r,e){if(!r)return "";if(r.length<=e)return r;let t=r.length-e;return `${r.substring(0,e)} (...+${t} chars)`}function St(r){return Array.isArray(r)||typeof r=="string"?r.length:0}function It(r){return typeof r!="string"?"":r.replace(/\{\{/g,"&#123;&#123;").replace(/\}\}/g,"&#125;&#125;")}var $r=["B","KB","MB","GB"];function Ot(r){if(r===0)return "0 B";let e=Math.min(Math.floor(Math.log(r)/Math.log(1024)),$r.length-1);return `${Math.round(r/Math.pow(1024,e)*100)/100} ${$r[e]}`}function zt(r){if(!r)return "";try{let e=r instanceof Date?r:new Date(r);return isNaN(e.getTime())?"":e.toLocaleString("ko-KR",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}catch{return ""}}var ze=class{hbs;execPolicy;execEnabled;constructor(e={}){this.hbs=oe__namespace.create(),this.execPolicy=e.execPolicy??{allow:[],deny:[]},this.execEnabled=e.execEnabled??true,this.registerHelpers();}registerHelpers(){let e=this.hbs,t=this.execPolicy,n=this.execEnabled;e.registerHelper("exec",function(o){return typeof o!="string"?"":n?new e.SafeString(Mr(o,t)):"(exec disabled)"}),e.registerHelper("include",function(o){return new e.SafeString(jr(o))}),e.registerHelper("fenced_code",function(o,s){return new e.SafeString(Nr(o,s))}),e.registerHelper("eq",function(o,s){return o===s}),e.registerHelper("ne",function(o,s){return o!==s}),e.registerHelper("and",function(o,s){return o&&s}),e.registerHelper("or",function(o,s){return o||s}),e.registerHelper("not",function(o){return !o}),e.registerHelper("contains",function(o,s){return Array.isArray(o)&&o.includes(s)}),e.registerHelper("json",function(o){return JSON.stringify(o,null,2)}),e.registerHelper("truncate",function(o,s){return At(o,s)}),e.registerHelper("length",function(o){return St(o)}),e.registerHelper("escapeHandlebars",function(o){return new e.SafeString(It(o))}),e.registerHelper("formatFileSize",function(o){return Ot(o)}),e.registerHelper("formatTimestamp",function(o){return zt(o)});}async render(e,t={}){return this.hbs.compile(e,{noEscape:true})(t)}};y();y();var st=class{async readFile(e){return promises.readFile(e,"utf-8")}async exists(e){try{return await promises.access(e),!0}catch{return false}}resolvePath(...e){return e.length===1?Hr.resolve(e[0]):Hr.resolve(Hr.join(...e))}isAbsolute(e){return Hr.isAbsolute(e)}},Mt=new st;var ke=class{docs=new Map;fs;constructor(e){this.fs=e??Mt;}async load(e,t){if(e)for(let[n,o]of Object.entries(e)){let s=o;if(typeof s=="string")this.docs.set(n,{content:s});else if(s&&typeof s=="object"){let i=s;"content"in i&&typeof i.content=="string"?this.docs.set(n,{content:i.content}):"path"in i&&typeof i.path=="string"?await this.loadFromFile(n,i.path,t):console.warn(`[DocumentLoader] Skipping '${n}': unsupported format`);}else console.warn(`[DocumentLoader] Skipping '${n}': unsupported format`);}}async getContent(e){return this.docs.get(e)?.content}async getToc(e){let t=this.docs.get(e);if(!t)return;let n=[];for(let o of t.content.split(`
42
- `)){let s=/^(#{1,6})\s+(.+)$/.exec(o.trim());s&&n.push({depth:s[1].length,text:s[2].trim()});}if(n.length!==0)return n.map(({depth:o,text:s})=>`${" ".repeat(o-1)}- ${s}`).join(`
43
- `)}getPath(e){return this.docs.get(e)?.path}getNames(){return Array.from(this.docs.keys())}async buildContext(){let e={};for(let t of this.docs.keys()){let n=await this.getContent(t)??"",o=await this.getToc(t),s=this.getPath(t);e[t]={content:n,toc:o,...s?{path:s}:{}};}return e}async loadFromFile(e,t,n){try{let o=this.resolve(t,n),s=await this.fs.readFile(o);this.docs.set(e,{content:s,path:o});}catch(o){let s=o instanceof Error?o.message:String(o);console.warn(`[DocumentLoader] Failed to load '${e}' from '${t}': ${s}`);}}resolve(e,t){return this.fs.isAbsolute(e)?e:t?this.fs.resolvePath(t,e):this.fs.resolvePath(e)}};y();y();var Re=Hr.join("templates","agents");function Xs(){try{let e=(typeof U=="function"?U:module$1.createRequire(typeof __filename<"u"?__filename:process.cwd()+"/")).resolve("@crewx/sdk/package.json");return Hr.dirname(e)}catch{return null}}function at(r){let e=process.env.CREWX_SDK_TEMPLATES_PATH;if(e&&fs$1.existsSync(e))return e;let t=Xs();if(t){let o=Hr.join(t,Re);if(fs$1.existsSync(o))return o}let n=[Hr.join(__dirname,"..",Re),Hr.join(__dirname,"..","..",Re),Hr.join(__dirname,"..","..","..",Re),Hr.join(process.cwd(),"packages","sdk",Re),Hr.join(process.cwd(),Re)];for(let o of n)if(fs$1.existsSync(o))return o;throw new Error(`[@crewx/sdk] Templates directory not found.
44
- `+(t?` package anchor: ${Hr.join(t,Re)}
35
+ `)}};});var es={};Tt(es,{PluginProviderRuntime:()=>exports.PluginProviderRuntime,createPluginProviderFactory:()=>Zo});function Zo(r){return (e,t)=>{let n=r.get(e);if(!n)throw new exports.ProviderError(`Plugin provider "${e}" not found. Available: ${Array.from(r.keys()).join(", ")||"(none)"}`,`plugin/${e}`);return new exports.PluginProviderRuntime(e,n)}}function Yo(r,e,t,n){let o=r.map(s=>s.replace(/\{model\}/g,e));return n&&o.push(t),o}function Pc(r){if(!r||typeof r!="string")throw new Error("Plugin provider requires a cli_command")}function Qo(r){if(!Array.isArray(r))throw new Error("CLI arguments must be an array");for(let e of r)if(typeof e!="string")throw new Error("Each CLI argument must be a string")}function Ec(r){for(let{pattern:e}of r)if(typeof e!="string")throw new Error("Error pattern must be a string")}function Ac(r){for(let[e,t]of Object.entries(r))if(typeof e!="string"||typeof t!="string")throw new Error("env entries must be string key/value pairs")}exports.PluginProviderRuntime=void 0;var br=le(()=>{v();ke();exports.PluginProviderRuntime=class{constructor(e,t){this.config=t;this.providerStr=`plugin/${e}`,Pc(t.cli_command),Qo(t.query_args),Qo(t.execute_args),t.error_patterns&&Ec(t.error_patterns),t.env&&Ac(t.env);}config;providerStr;async query(e,t){let n=t?.model??this.config.default_model??"default",o=Yo(this.config.query_args,n,e,this.config.prompt_in_args),s=this.config.prompt_in_args?void 0:e;t?.onCommand?.(`${this.config.cli_command} ${o.join(" ")}`);let i=this.config.timeout?.query??6e5;return this.runProcess(o,t,s,i)}async execute(e,t){let n=t?.model??this.config.default_model??"default",o=Yo(this.config.execute_args,n,e,this.config.prompt_in_args),s=this.config.prompt_in_args?void 0:e;t?.onCommand?.(`${this.config.cli_command} ${o.join(" ")}`);let i=this.config.timeout?.execute??6e5;return this.runProcess(o,t,s,i)}runProcess(e,t,n,o){return new Promise((s,i)=>{let a={...process.env,...this.config.env??{}},l=child_process.spawn(this.config.cli_command,e,{env:a,shell:process.platform==="win32",stdio:["pipe","pipe","pipe"]});n!==void 0&&l.stdin.write(n),l.stdin.end(),l.pid!==void 0&&t?.onPid?.(l.pid);let u="",c="",d="",p="";l.stdout.on("data",h=>{let f=h.toString();u+=f,d+=f;let g=d.split(`
36
+ `);d=g.pop()??"";for(let y of g)y.trim()&&t?.onOutput?.(y,"stdout");}),l.stderr.on("data",h=>{let f=h.toString();c+=f,p+=f;let g=p.split(`
37
+ `);p=g.pop()??"";for(let y of g)y.trim()&&t?.onOutput?.(y,"stderr");});let m=setTimeout(()=>{l.kill("SIGTERM"),i(new exports.ProviderError(`Plugin provider "${this.providerStr}" timed out after ${o}ms`,this.providerStr));},o);l.on("error",h=>{if(clearTimeout(m),h.code==="ENOENT"){let f=this.config.not_installed_message??`CLI command "${this.config.cli_command}" not found. Is ${this.config.id} installed?`;i(new exports.ProviderError(f,this.providerStr));}else i(new exports.ProviderError(`Spawn error: ${h.message}`,this.providerStr));}),l.on("close",h=>{clearTimeout(m),d.trim()&&t?.onOutput?.(d,"stdout"),p.trim()&&t?.onOutput?.(p,"stderr");let f=h??0;if(t?.onExitCode?.(f),this.config.error_patterns){let g=c||u;for(let y of this.config.error_patterns)if(g.includes(y.pattern)){i(new exports.ProviderError(y.message,this.providerStr));return}}if(h!==0){i(new exports.ProviderError(`Process exited with code ${h}: ${c.slice(0,500)}`,this.providerStr));return}s(u.trim());});})}};});v();v();v();function ks(r){let e=o=>o.replace(/[.+^${}()|[\]\\]/g,"\\$&"),n=r.split("/").map(o=>o==="**"?".*":o.split("*").map(e).join("[^/]*"));return new RegExp(`^${n.join("\\/")}$`)}function ne(r,e){try{return ks(e).test(r)}catch{return false}}v();v();var Rs=zod.z.object({model:zod.z.string().optional(),system_prompt:zod.z.string().optional(),prompt:zod.z.string().optional(),layout:zod.z.union([zod.z.string(),zod.z.object({id:zod.z.string(),props:zod.z.record(zod.z.unknown()).optional()}),zod.z.object({props:zod.z.record(zod.z.unknown())}),zod.z.object({template:zod.z.string()})]).optional()}).catchall(zod.z.unknown()),Cs=zod.z.object({id:zod.z.string(),name:zod.z.string().optional(),role:zod.z.string().optional(),team:zod.z.string().optional(),provider:zod.z.union([zod.z.string(),zod.z.array(zod.z.string())]),working_directory:zod.z.string().optional(),description:zod.z.string().optional(),tags:zod.z.array(zod.z.string()).optional(),inline:Rs.optional()}).catchall(zod.z.unknown()),Or=zod.z.object({agents:zod.z.array(Cs).optional(),hooks:zod.z.array(zod.z.unknown()).optional(),settings:zod.z.record(zod.z.unknown()).optional(),skills:zod.z.unknown().optional(),layouts:zod.z.record(zod.z.unknown()).optional(),documents:zod.z.record(zod.z.unknown()).optional()}).catchall(zod.z.unknown());var _e=class extends Error{constructor(t,n){super(t);this.cause=n;this.name="ConfigLoadError";}cause};function st(r){if(!r||typeof r!="string"||!r.trim())throw new _e("YAML content must be a non-empty string");let e;try{e=jsYaml.load(r);}catch(o){throw new _e(`YAML parse error: ${o.message}`,o)}let t=Es(e),n=Or.safeParse(t);if(!n.success)throw new _e(`Config validation error: ${n.error.message}`);return n.data}function it(r){let e;try{e=fs$1.readFileSync(r,"utf-8");}catch(t){throw new _e(`Cannot read file: ${r}`,t)}return st(e)}function Es(r){if(!r||typeof r!="object")return {agents:[]};let e=r,t;if(e.agents&&typeof e.agents=="object"&&!Array.isArray(e.agents)){let o=e.agents;t=Object.entries(o).map(([s,i])=>({id:s,...i&&typeof i=="object"?i:{}}));}else if(Array.isArray(e.agents))t=e.agents;else return {...e,agents:[]};let n=t.map(o=>{if(o.provider===void 0&&o.inline&&typeof o.inline=="object"){let s=o.inline;if(s.provider!==void 0)return {...o,provider:s.provider}}return o});return {...e,agents:n}}v();var xe=Fr.join("templates","agents");function Is(){try{let e=(typeof U=="function"?U:module$1.createRequire(typeof __filename<"u"?__filename:process.cwd()+"/")).resolve("@crewx/sdk/package.json");return Fr.dirname(e)}catch{return null}}function Ae(r){if(r&&fs$1.existsSync(r))return r;let e=process.env.CREWX_SDK_TEMPLATES_PATH;if(e&&fs$1.existsSync(e))return e;let t=Is();if(t){let o=Fr.join(t,xe);if(fs$1.existsSync(o))return o}let n=[Fr.join(__dirname,"..",xe),Fr.join(__dirname,"..","..",xe),Fr.join(__dirname,"..","..","..",xe),Fr.join(process.cwd(),"packages","sdk",xe),Fr.join(process.cwd(),xe)];for(let o of n)if(fs$1.existsSync(o))return o;throw new Error(`[@crewx/sdk] Templates directory not found.
38
+ `+(t?` package anchor: ${Fr.join(t,xe)}
45
39
  `:` package anchor: (unresolved)
46
40
  `)+n.map(o=>` candidate: ${o}`).join(`
47
41
  `)+`
48
- Set CREWX_SDK_TEMPLATES_PATH or pass options.templatesPath.`)}y();var Y=class extends Error{constructor(t,n,o){super(t);this.layoutId=n;this.cause=o;this.name="LayoutLoadError";}layoutId;cause},de=class extends Error{constructor(t,n=[],o){super(t);this.errors=n;this.cause=o;this.name="PropsValidationError";}errors;cause};var ti={validationMode:"lenient",fallbackLayoutId:"crewx/default"},Me=class{layouts=new Map;options;constructor(e){this.options={...ti,...e,templatesPath:e?.templatesPath??at()},this.loadAllLayouts();}load(e,t){let n=this.layouts.get(e);if(!n){let o=this.normalizeLayoutId(e);n=this.layouts.get(o);}if(!n&&(console.warn(`Layout not found: ${e}, falling back to ${this.options.fallbackLayoutId}`),n=this.layouts.get(this.options.fallbackLayoutId),!n))throw new Y(`Fallback layout not found: ${this.options.fallbackLayoutId}`,this.options.fallbackLayoutId);return t&&Object.keys(t).length>0?{...n,defaultProps:{...n.defaultProps,...t}}:n}getLayoutIds(){return Array.from(this.layouts.keys())}hasLayout(e){if(this.layouts.has(e))return true;let t=this.normalizeLayoutId(e);return this.layouts.has(t)}reload(){this.layouts.clear(),this.loadAllLayouts();}registerLayout(e,t){if(!e||typeof e!="string")throw new Y("Layout ID must be a non-empty string",e);let n=typeof t=="string"?{template:t}:t,o=typeof n.template=="string"?n.template:"";if(!o||o.trim().length===0)throw new Y(`Custom layout template is empty for ${e}`,e);let s=n.propsSchema||{},i=this.extractDefaultProps(s),a=n.defaultProps||{},l={id:e,version:n.version||"1.0.0",description:n.description||`Custom layout ${e}`,template:o,propsSchema:this.parsePropsSchema(s),defaultProps:{...i,...a}},u=this.layouts.get(e),c=u?.template===o&&JSON.stringify(u?.defaultProps??{})===JSON.stringify(l.defaultProps??{})&&JSON.stringify(u?.propsSchema??{})===JSON.stringify(l.propsSchema??{});this.layouts.set(e,l),process.env.CREWX_VERBOSE==="1"&&(u?c||console.error(`Updated custom layout: ${e}`):console.error(`Registered custom layout: ${e}`));}registerLayouts(e){for(let[t,n]of Object.entries(e))try{this.registerLayout(t,n);}catch(o){console.warn(`Failed to register custom layout ${t}:`,o instanceof Error?o.message:o);}}loadAllLayouts(){let e=this.options.templatesPath;if(!fs$1.existsSync(e))throw new Y(`Templates directory not found: ${e}`,void 0,new Error(`Directory does not exist: ${e}`));try{let t=fs$1.readdirSync(e).filter(n=>n.endsWith(".yaml")||n.endsWith(".yml"));t.length===0&&console.warn(`No layout files found in ${e}`);for(let n of t){let o=n.replace(/\.(yaml|yml)$/,""),s=Hr__namespace.join(e,n);try{let i=this.loadLayoutFile(s,o),a=`crewx/${o}`;this.layouts.set(a,i),a!=="crewx/minimal"&&process.env.CREWX_VERBOSE==="1"&&console.error(`Loaded layout: ${a} from ${n}`);}catch(i){console.error(`Failed to load layout file ${n}:`,i);}}process.env.CREWX_VERBOSE==="1"&&console.error(`Loaded ${this.layouts.size} layouts from ${e}`);}catch(t){throw new Y(`Failed to read layouts directory: ${e}`,void 0,t instanceof Error?t:new Error(String(t)))}}loadLayoutFile(e,t){try{let n=fs$1.readFileSync(e,"utf-8");if(!n||n.trim().length===0)throw console.warn(`Empty YAML file: ${e}, will use fallback`),new Y(`Empty YAML file: ${e}`,t,new Error("File content is empty"));let o=jsYaml.load(n);if(!o||typeof o!="object")throw console.warn(`Invalid YAML content in ${e} (parsed as ${typeof o}), will use fallback`),new Y(`Invalid or empty YAML in ${e}`,t,new Error("YAML parsing returned null/undefined or non-object"));if(o.layouts&&typeof o.layouts=="object"){let s=this.resolveLayoutEntry(o.layouts,t);if(!s||s.template.trim().length===0)throw console.warn(`Empty or missing layout template in ${e} for ${t}`),new Y(`Layout template not found or empty in layouts map: ${t}`,t);let i=s.propsSchema||o.propsSchema||{};return {id:`crewx/${t}`,version:o.version||"1.0.0",description:o.description||`CrewX ${t} layout`,template:s.template,propsSchema:this.parsePropsSchema(i),defaultProps:this.extractDefaultProps(i)}}else {if(!o.template||typeof o.template=="string"&&o.template.trim().length===0)throw console.warn(`Empty or missing template field in ${e}`),new Y(`Layout template is missing or empty in ${e}`,t);return {id:o.id||`crewx/${t}`,version:o.version||"1.0.0",description:o.description||"",template:o.template,propsSchema:this.parsePropsSchema(o.propsSchema||{}),defaultProps:this.extractDefaultProps(o.propsSchema||{})}}}catch(n){throw new Y(`Failed to load layout file: ${e}`,t,n instanceof Error?n:new Error(String(n)))}}parsePropsSchema(e){let t={};for(let[n,o]of Object.entries(e))typeof o=="object"&&o!==null&&(t[n]=o);return t}extractDefaultProps(e){let t={};for(let[n,o]of Object.entries(e))o&&typeof o=="object"&&("defaultValue"in o?t[n]=o.defaultValue:"default"in o&&(t[n]=o.default));return t}normalizeLayoutId(e){return e?e.includes("/")?e:`crewx/${e}`:this.options.fallbackLayoutId}resolveLayoutEntry(e,t){let n=new Set;if(t)if(n.add(t),t.includes("/")){let o=t.split("/"),s=o[o.length-1];s&&n.add(s);}else n.add(`crewx/${t}`);n.add("default");for(let o of n){let s=e[o];if(typeof s=="string"&&s.trim().length>0)return {template:s};if(s&&typeof s=="object"&&typeof s.template=="string"&&s.template.trim().length>0)return {template:s.template,propsSchema:s.propsSchema}}for(let o of Object.values(e)){if(typeof o=="string"&&o.trim().length>0)return {template:o};let s=o;if(s&&typeof s=="object"&&typeof s.template=="string"&&s.template.trim().length>0)return {template:s.template,propsSchema:s.propsSchema}}}};y();y();function ri(r){return Array.from(new Set(r.filter(e=>e?.isAssistant&&e?.metadata?.agent_id).map(e=>String(e.metadata.agent_id))))}function qr(r,e,t){if(!Array.isArray(r)||r.length===0||!(t&&typeof t.fn=="function"))return "";let o=ri(r),s=o.length>0?o[0]:"",i={messages:r,platform:typeof e=="string"?e:"",messagesCount:r.length,agentIds:o,primaryAgentId:s};return t.fn(i)}y();var je=class{defaultMode;constructor(e={}){this.defaultMode=e.defaultMode??"lenient";}validate(e,t,n=this.defaultMode){let o=[],s=this.validateObject(e??{},t,n,["props"],o);if(o.length>0&&n==="strict")throw new de("Props validation failed in strict mode",o);return {valid:o.length===0,props:s,errors:o}}validateObject(e,t,n,o,s){let i={};if(n==="strict")for(let a of Object.keys(e))t[a]||s.push({path:this.buildPath([...o,a]),message:`Unknown prop '${a}'`,value:e[a]});for(let[a,l]of Object.entries(t)){let u=[...o,a],c=e[a],d=this.resolveProp(c,l,u,n,s);d.shouldAssign&&(i[a]=d.value);}return i}resolveProp(e,t,n,o,s){let i=this.buildPath(n);if(this.isNil(e)){if(t.isRequired&&s.push({path:i,message:`Required prop '${n[n.length-1]}' is missing`}),t.defaultValue!==void 0)return {shouldAssign:true,value:this.cloneValue(t.defaultValue)};if(t.type==="shape"&&t.shape){let l=this.applyDefaults(t.shape);if(Object.keys(l).length>0)return {shouldAssign:true,value:l}}return {shouldAssign:false}}let a=this.validateType(e,t,n,o,s);if(!a.valid){if(t.type==="shape"&&a.value&&this.isPlainObject(a.value))return {shouldAssign:true,value:a.value};if(s.push({path:i,message:a.error??"Invalid value",value:e}),t.defaultValue!==void 0)return {shouldAssign:true,value:this.cloneValue(t.defaultValue)};if(t.type==="shape"&&t.shape){let l=this.applyDefaults(t.shape);if(Object.keys(l).length>0)return {shouldAssign:true,value:l}}return {shouldAssign:false}}return {shouldAssign:true,value:a.value}}validateType(e,t,n,o,s){let{type:i}=t;switch(i){case "string":return this.validateString(e,t);case "number":return this.validateNumber(e,t);case "bool":return this.validateBoolean(e);case "array":return this.validateArray(e,t);case "arrayOf":return this.validateArrayOf(e,t,n,o,s);case "object":return this.validatePlainObject(e);case "shape":return this.validateShape(e,t,n,o,s);case "oneOfType":return this.validateOneOfType(e,t);case "func":return this.validateFunction(e);case "node":return {valid:true,value:e};default:return {valid:true,value:e}}}validateString(e,t){return typeof e!="string"?{valid:false,error:`Expected string, got ${this.describeType(e)}`}:t.oneOf&&!t.oneOf.includes(e)?{valid:false,error:`Expected one of: ${t.oneOf.join(", ")}`}:t.minLength!==void 0&&e.length<t.minLength?{valid:false,error:`String length must be >= ${t.minLength}`}:t.maxLength!==void 0&&e.length>t.maxLength?{valid:false,error:`String length must be <= ${t.maxLength}`}:t.pattern&&!new RegExp(t.pattern).test(e)?{valid:false,error:`String does not match pattern ${t.pattern}`}:{valid:true,value:e}}validateNumber(e,t){return typeof e!="number"||Number.isNaN(e)?{valid:false,error:`Expected number, got ${this.describeType(e)}`}:t.min!==void 0&&e<t.min?{valid:false,error:`Number must be >= ${t.min}`}:t.max!==void 0&&e>t.max?{valid:false,error:`Number must be <= ${t.max}`}:t.oneOf&&!t.oneOf.includes(e)?{valid:false,error:`Expected one of: ${t.oneOf.join(", ")}`}:{valid:true,value:e}}validateBoolean(e){return typeof e!="boolean"?{valid:false,error:`Expected boolean, got ${this.describeType(e)}`}:{valid:true,value:e}}validateArray(e,t){return Array.isArray(e)?t.minLength!==void 0&&e.length<t.minLength?{valid:false,error:`Array length must be >= ${t.minLength}`}:t.maxLength!==void 0&&e.length>t.maxLength?{valid:false,error:`Array length must be <= ${t.maxLength}`}:{valid:true,value:[...e]}:{valid:false,error:`Expected array, got ${this.describeType(e)}`}}validateArrayOf(e,t,n,o,s){let i=this.validateArray(e,t);if(!i.valid)return i;let a=[],l=t.itemType,u=t.itemOneOf,c=s.length;return i.value.forEach((d,p)=>{let m=[...n,String(p)];if(l){let h=this.validateType(d,{type:l},m,o,s);h.valid?a.push(h.value):s.push({path:this.buildPath(m),message:h.error??"Invalid array item",value:d});}else a.push(d);u&&!u.includes(d)&&s.push({path:this.buildPath(m),message:`Array item must be one of: ${u.join(", ")}`,value:d});}),{valid:s.length===c,value:a}}validatePlainObject(e){return this.isPlainObject(e)?{valid:true,value:{...e}}:{valid:false,error:`Expected object, got ${this.describeType(e)}`}}validateFunction(e){return typeof e!="function"?{valid:false,error:`Expected function, got ${this.describeType(e)}`}:{valid:true,value:e}}validateShape(e,t,n,o,s){if(!this.isPlainObject(e))return {valid:false,error:`Expected object, got ${this.describeType(e)}`};let i=s.length,a=this.validateObject(e,t.shape??{},o,n,s);return {valid:s.length===i,value:a}}validateOneOfType(e,t){let n=t.types??[];return n.some(s=>this.matchesType(e,s))?{valid:true,value:e}:{valid:false,error:`Value does not match any allowed type: ${n.join(", ")}`}}matchesType(e,t){switch(t){case "string":return typeof e=="string";case "number":return typeof e=="number"&&!Number.isNaN(e);case "bool":case "boolean":return typeof e=="boolean";case "array":return Array.isArray(e);case "object":return this.isPlainObject(e);case "func":case "function":return typeof e=="function";case "shape":return this.isPlainObject(e);case "node":return e==null||typeof e!="symbol";default:return true}}applyDefaults(e){let t={};for(let[n,o]of Object.entries(e)){if(o.defaultValue!==void 0){t[n]=this.cloneValue(o.defaultValue);continue}if(o.type==="shape"&&o.shape){let s=this.applyDefaults(o.shape);Object.keys(s).length>0&&(t[n]=s);}}return t}cloneValue(e){if(Array.isArray(e))return e.map(t=>this.cloneValue(t));if(this.isPlainObject(e)){let t={};for(let[n,o]of Object.entries(e))t[n]=this.cloneValue(o);return t}return e}isPlainObject(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}isNil(e){return e==null}buildPath(e){return e.join(".")}describeType(e){return Array.isArray(e)?"array":e===null?"null":typeof e}};var Ne=class{handlebars;propsValidator;constructor(e){this.handlebars=oe__namespace.default.create(),this.propsValidator=e??new je,this.registerHelpers();}render(e,t,n={}){try{let o=this.prepareRenderContext(e,t,n);return this.handlebars.compile(e.template,{noEscape:!0})(o)}catch(o){throw o instanceof Error?new Error(`Template rendering failed for layout '${e.id}': ${o.message}`):new Error(`Unknown error rendering layout '${e.id}'`)}}validate(e,t,n="lenient"){return this.executeValidation(e,t,n)}resolveProps(e,t,n="lenient"){let o=this.mergeProps(e.defaultProps,t);return !e.propsSchema||Object.keys(e.propsSchema).length===0?{valid:true,props:o,errors:[]}:this.executeValidation(o,e.propsSchema,n)}prepareRenderContext(e,t,n){let{validationMode:o="lenient",skipValidation:s=false}=n,i=s?this.mergeProps(e.defaultProps,t.props):this.resolveProps(e,t.props,o).props;return {...t,vars:this.sanitizeVars(t.vars),props:i}}registerHelpers(){this.handlebars.registerHelper("formatConversation",qr),oe__namespace.default.helpers.each&&this.handlebars.registerHelper("each",oe__namespace.default.helpers.each),oe__namespace.default.helpers.if&&this.handlebars.registerHelper("if",oe__namespace.default.helpers.if),oe__namespace.default.helpers.unless&&this.handlebars.registerHelper("unless",oe__namespace.default.helpers.unless),oe__namespace.default.helpers.with&&this.handlebars.registerHelper("with",oe__namespace.default.helpers.with),this.handlebars.registerHelper("eq",function(e,t){return e===t}),this.handlebars.registerHelper("ne",function(e,t){return e!==t}),this.handlebars.registerHelper("gt",function(e,t){return e>t}),this.handlebars.registerHelper("lt",function(e,t){return e<t}),this.handlebars.registerHelper("json",function(e){return new oe__namespace.default.SafeString(JSON.stringify(e))}),this.handlebars.registerHelper("raw",function(e){return typeof e?.fn=="function"?e.fn(this):""}),this.handlebars.registerHelper("escapeHandlebars",function(e){return typeof e!="string"?"":e.replace(/\{\{/g,"&#123;&#123;").replace(/\}\}/g,"&#125;&#125;")}),this.handlebars.registerHelper("formatFileSize",function(e){if(e===0)return "0 B";let t=["B","KB","MB","GB"],n=Math.floor(Math.log(e)/Math.log(1024));return Math.round(e/Math.pow(1024,n)*100)/100+" "+t[n]});}executeValidation(e,t,n){try{return this.propsValidator.validate(e,t,n)}catch(o){if(o instanceof de&&o.errors&&o.errors.length>0){let s=o.errors[0];if(s)throw new de(s.message,o.errors)}throw o}}mergeProps(e,t){let n=this.cloneDeep(e??{});return t?this.deepMerge(n,t):n}deepMerge(e,t){for(let[n,o]of Object.entries(t)){if(this.isPlainObject(o)){let s=e[n];e[n]=this.deepMerge(this.isPlainObject(s)?s:{},o);continue}if(Array.isArray(o)){e[n]=this.cloneDeep(o);continue}e[n]=o;}return e}cloneDeep(e){if(Array.isArray(e))return e.map(t=>this.cloneDeep(t));if(this.isPlainObject(e)){let t={};for(let[n,o]of Object.entries(e))t[n]=this.cloneDeep(o);return t}return e}isPlainObject(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}sanitizeVars(e){if(!e)return {};let t={...e};if(typeof e.user_input=="string"){t.user_input_raw=e.user_input;let n=e.user_input.replace(/\{\{\{/g,"&#123;&#123;&#123;").replace(/\}\}\}/g,"&#125;&#125;&#125;").replace(/\{\{/g,"&#123;&#123;").replace(/\}\}/g,"&#125;&#125;");t.user_input=this.handlebars.escapeExpression(n);}return t}};y();var jt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";function ni(r){let e=crypto$1.randomBytes(r*2),t="";for(let n=0;n<e.length&&t.length<r;n++){let o=e[n];o<248&&(t+=jt[o%62]);}for(;t.length<r;)t+=jt[crypto$1.randomBytes(1)[0]%62];return t}function Ce(r){return `${r}_${ni(8)}`}function oi(r,e){let{createHash:t}=U("crypto"),n=t("sha256").update(e).digest(),o=Buffer.alloc(8);for(let i=0;i<32;i++)o[i%8]^=n[i];let s="";for(let i of o)s+=jt[i%62];return `${r}_${s}`}y();function Nt(r){let e=t=>String(t).padStart(2,"0");return `${r.getFullYear()}${e(r.getMonth()+1)}${e(r.getDate())}T${e(r.getHours())}${e(r.getMinutes())}${e(r.getSeconds())}`}y();function Ur(r,e){return t=>{try{let n=e(t);n instanceof Promise&&n.catch(o=>{console.error(`[crewx] event listener error (${r}): ${o instanceof Error?o.message:String(o)}`);});}catch(n){console.error(`[crewx] event listener error (${r}): ${n instanceof Error?n.message:String(n)}`);}}}var $e=class{_emitter=new events.EventEmitter;on(e,t){let n=Ur(e,t);return this._emitter.on(e,n),()=>this._emitter.off(e,n)}once(e,t){let n=Ur(e,t);return this._emitter.once(e,n),()=>this._emitter.off(e,n)}emit(e,t){this._emitter.emit(e,t);}};y();function $t(r){let e=new Map,t=n=>n.startsWith(`${r}::`)?n:`${r}::${n}`;return {async get(n){let o=e.get(t(n));return o?o.value:void 0},async set(n,o){e.set(t(n),{value:o});},async delete(n){return e.delete(t(n))},async list(n){let o=n?t(n):`${r}::`,s=[];for(let i of e.keys())i.startsWith(o)&&s.push(i.slice(r.length+2));return s}}}y();var Dt=new async_hooks.AsyncLocalStorage;function ai(){return Dt}function li(r,e){return Dt.run(r,e)}function Lt(r){let e=r.log??r.logger??{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},t=r.agentRunner??{run:async()=>({output:""})},n=r.db??{get:async()=>{},set:async()=>{},delete:async()=>false,list:async()=>[]},o=r.storage??{put:async()=>"",get:async()=>{},delete:async()=>false},s=r.audit??{log:async()=>{}},i=r.onInbound??(async()=>({accepted:true})),a=r.onEmitEvent??(async()=>({accepted:true})),l=r.onUpdateMessage??(async()=>{}),u=r.onResolveUser??(async p=>({userId:p,displayName:p})),c=async p=>{let m=Dt.getStore();if(!m){e.warn("respondSync called outside sync window \u2014 graceful degradation (no-op)",{textPreview:typeof p=="object"&&"text"in p?p.text.slice(0,80):void 0});return}let h="text"in p?p.text:"";m.res.status(200).json({text:h});},d=r.httpRouter??{registerRoute:()=>{e.warn("httpRouter not configured \u2014 registerRoute is a no-op");}};return {instanceId:r.instanceId,config:r.config,capabilities:r.capabilities,log:e,agentRunner:t,db:n,storage:o,audit:s,abortSignal:r.abortSignal??new AbortController().signal,httpRouter:d,inbound:i,emitEvent:a,updateMessage:l,resolveUser:u,respondSync:c}}y();y();y();function se(r){return /crewx\s+(x|execute)\s/.test(r)}function ie(r,e){let t=e.match(/@(\S+)/);return {timestamp:r,type:"agent_call",targetAgent:t?.[1]?.replace(/["']/g,""),toolInput:e}}function Br(r,e){let n=e.message?.content;if(!Array.isArray(n))return [];let o=[];for(let s of n){let i=ui(r,s);i&&o.push(i);}return o}function ui(r,e){let t=e.type;if(t==="text"){let n=String(e.text||"");return n?{timestamp:r,type:"text",content:n}:null}if(t==="tool_use"){let n=String(e.name||""),o=e.id,s=e.input,i=s?.command?String(s.command):JSON.stringify(s||{});return n==="Bash"&&se(i)?ie(r,i):{timestamp:r,type:"tool_use",toolUseId:o,toolName:n,toolInput:i}}if(t==="tool_result"){let n=!!e.is_error,o=e.tool_use_id,s=e.output??e.content??"",i;return typeof s=="string"?i=s:Array.isArray(s)?i=s.filter(a=>a.type==="text"&&typeof a.text=="string").map(a=>a.text).join(`
49
- `):i=JSON.stringify(s),{timestamp:r,type:"tool_result",toolUseId:o,resultPreview:i,isError:n}}return null}y();function Jr(r,e){let t=e.type,n=e.data;if(!n)return [];let o=n.toolCallId;if(t==="tool.execution_start"){let s=String(n.toolName||""),i=n.arguments,a=i?.command?String(i.command):JSON.stringify(i||{});return (s==="bash"||s==="Bash")&&se(a)?[ie(r,a)]:[{timestamp:r,type:"tool_use",toolName:s,toolInput:a,...o&&{toolUseId:o}}]}if(t==="tool.execution_complete"){let s=n.error;if(s)return [{timestamp:r,type:"tool_result",isError:true,resultPreview:String(s.message||""),...o&&{toolUseId:o}}];let i=n.result,a=String(i?.content||"");return [{timestamp:r,type:"tool_result",resultPreview:a,isError:false,...o&&{toolUseId:o}}]}if(t==="assistant.message"){let s=String(n.content||"");return s?[{timestamp:r,type:"text",content:s}]:[]}return []}y();function Wr(r,e){let t=e.type,n=e.item;if(!n)return [];if(t==="item.started")return ci(r,n);if(t==="item.completed"){let o=di(r,n);return o?[o]:[]}return []}function ci(r,e){if(e.type==="command_execution"){let n=String(e.command||"");return se(n)?[ie(r,n)]:[{timestamp:r,type:"tool_use",toolName:"Bash",toolInput:n}]}return []}function di(r,e){let t=e.type;if(t==="message"||t==="text"){let n=e.content;if(Array.isArray(n))for(let o of n){let s=pi(r,o);if(s)return s}if(typeof e.text=="string")return {timestamp:r,type:"text",content:e.text}}if(t==="reasoning")return {timestamp:r,type:"text",content:String(e.text||"")};if(t==="command_execution"){let n=String(e.aggregated_output||e.output||""),o=!!e.is_error;return {timestamp:r,type:"tool_result",resultPreview:n,isError:o}}if(t==="tool_use"){let n=String(e.name||e.tool_name||""),o=e.input,s=o?.command?String(o.command):JSON.stringify(o||{});return n==="Bash"&&se(s)?ie(r,s):{timestamp:r,type:"tool_use",toolName:n,toolInput:s}}if(t==="tool_result"){let n=!!e.is_error,o=String(e.output||e.content||"");return {timestamp:r,type:"tool_result",resultPreview:o,isError:n}}return null}function pi(r,e){let t=e.type;if(t==="text")return {timestamp:r,type:"text",content:String(e.text||"")};if(t==="tool_use"){let n=String(e.name||""),o=e.input,s=o?.command?String(o.command):JSON.stringify(o||{});return n==="Bash"&&se(s)?ie(r,s):{timestamp:r,type:"tool_use",toolName:n,toolInput:s}}return null}y();function Ht(r,e){let t=e.type;if(t==="message"){if(e.role!=="assistant")return [];let o=e.content;return o?[{timestamp:r,type:"text",content:o}]:[]}if(t==="tool_use"){let n=String(e.tool_name||""),o=e.tool_id,s=e.parameters,i=s?.command?String(s.command):JSON.stringify(s||{});return /^bash$/i.test(n)&&se(i)?[ie(r,i)]:[{timestamp:r,type:"tool_use",toolName:n,toolUseId:o,toolInput:i}]}if(t==="tool_result"){let n=e.tool_id,o=String(e.output||""),s=e.status!=="success";return [{timestamp:r,type:"tool_result",toolUseId:n,resultPreview:o,isError:s}]}return []}y();function qt(r,e){let t=e.type;if(t==="text"){let o=e.part?.text;return o?[{timestamp:r,type:"text",content:o}]:[]}if(t==="tool_use"){let n=e.part;if(!n)return [];let o=String(n.tool||""),s=String(n.callID||""),i=n.state,a=String(i?.status||""),l=i?.input,u=gi(l),c=[{timestamp:r,type:"tool_use",toolName:o,toolUseId:s,toolInput:u}];if(a==="completed"&&i?.output!==void 0){let d=i.output,p=typeof d=="string"?d:JSON.stringify(d);c.push({timestamp:r,type:"tool_result",toolUseId:s,resultPreview:p,isError:false});}else a==="error"&&c.push({timestamp:r,type:"tool_result",toolUseId:s,resultPreview:String(i?.error||"tool error"),isError:true});return c}return []}function gi(r){if(typeof r=="string")return r;if(!r||typeof r!="object")return JSON.stringify(r??{});let e=r;return e.command?String(e.command):e.filePath?String(e.filePath):e.pattern?String(e.pattern):JSON.stringify(e)}function Ft(r,e){let t;try{t=JSON.parse(e);}catch{return []}let n=t.type;return n?n==="assistant"||n==="user"?Br(r,t):n.startsWith("tool.execution")||n.startsWith("assistant.")||n==="user.message"?Jr(r,t):n.startsWith("item.")||n.startsWith("turn.")||n.startsWith("thread.")?Wr(r,t):n==="message"||n==="init"?Ht(r,t):n==="tool_use"||n==="tool_result"?t.part&&typeof t.part=="object"?qt(r,t):Ht(r,t):n==="text"||n==="step_start"||n==="step_finish"?qt(r,t):[]:[]}y();function mi(r){return typeof r!="string"?"":r.replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Ut(r){return r.messages.map(e=>({text:mi(e.text),isAssistant:e.isAssistant,metadata:e.metadata,files:void 0}))}y();y();var fi={agentId:zod.z.string().describe("The agent ID to query"),query:zod.z.string().describe("The query message to send"),context:zod.z.string().optional().describe("Additional context"),thread:zod.z.string().optional().describe("Thread ID for conversation continuity")},hi={agentId:zod.z.string().describe("The agent ID to execute"),task:zod.z.string().describe("The task description to execute"),context:zod.z.string().optional().describe("Additional context"),thread:zod.z.string().optional().describe("Thread ID for conversation continuity")};function Vr(r,e,t){r.tool("crewx_listAgents","List available CrewX agents exposed by this server",async()=>{let n=[];for(let o of t){let s=e.agents.get(o);s&&n.push({id:s.id,name:s.name??s.id,description:s.description??""});}return {content:[{type:"text",text:JSON.stringify(n,null,2)}]}}),r.tool("crewx_queryAgent","Query a CrewX agent with a read-only question",fi,async({agentId:n,query:o,context:s,thread:i})=>{if(!t.has(n))return {content:[{type:"text",text:`Agent '${n}' is not exposed by this server`}],isError:true};let a=await e.query(n,o,{context:s,threadId:i});return a.ok?{content:[{type:"text",text:a.data}]}:{content:[{type:"text",text:a.error?.message??"Query failed"}],isError:true}}),r.tool("crewx_executeAgent","Execute a task on a CrewX agent (may modify state)",hi,async({agentId:n,task:o,context:s,thread:i})=>{if(!t.has(n))return {content:[{type:"text",text:`Agent '${n}' is not exposed by this server`}],isError:true};let a=await e.execute(n,o,{context:s,threadId:i});return a.ok?{content:[{type:"text",text:a.data}]}:{content:[{type:"text",text:a.error?.message??"Execute failed"}],isError:true}});}y();function Kr(r){return r.headers.get("Origin")?null:new Response(JSON.stringify({error:"Forbidden: Origin header required"}),{status:403,headers:{"Content-Type":"application/json"}})}async function Gr(r,e){return e?await e(r)?null:new Response(JSON.stringify({error:"Unauthorized"}),{status:401,headers:{"Content-Type":"application/json"}}):null}function wi(r,e){let t=new mcp_js.McpServer({name:"crewx-mcp-server",version:"1.0.0"},{capabilities:{tools:{}}});return Vr(t,r,e),t}function Bt(r,e){if(!e.agents||e.agents.length===0)throw new Error("crewx.handler() requires at least one agent in the agents option");let t=new Set(e.agents),n=new Map;return async o=>{let s=Kr(o);if(s)return s;let i=await Gr(o,e.auth);if(i)return i;let a=o.headers.get("mcp-session-id");if(a&&n.has(a))return n.get(a).transport.handleRequest(o);let l=wi(r,t),u=new webStandardStreamableHttp_js.WebStandardStreamableHTTPServerTransport({sessionIdGenerator:()=>crypto.randomUUID(),onsessioninitialized:c=>{n.set(c,{transport:u,server:l});},onsessionclosed:c=>{n.delete(c);},enableJsonResponse:true});return await l.connect(u),u.handleRequest(o)}}y();y();var De=class{detach(e){}};y();var ki=`
42
+ Set CREWX_SDK_TEMPLATES_PATH or pass options.templatesPath.`)}function Pt(){let r=Ae();return {yamlPath:Fr.join(r,"default.yaml"),dir:r}}v();var ce=class extends Error{constructor(e,t){let n=t.length>0?` Available: ${t.join(", ")}`:"";super(`Agent not found: "${e}".${n}`),this.name="AgentNotFoundError";}},Os={claude:{id:"claude",provider:"cli/claude"},gemini:{id:"gemini",provider:"cli/gemini"},copilot:{id:"copilot",provider:"cli/copilot"},codex:{id:"codex",provider:"cli/codex"}};function lt(r,e){let t=r.startsWith("@")?r.slice(1):r,n=e.find(s=>s.id===t);if(n)return n;let o=Os[t];if(o)return o;throw new ce(r,e.map(s=>s.id))}ke();v();v();var Hs=[/^ANTHROPIC_/i,/^OPENAI_/i,/^AWS_SECRET/i,/^SLACK_/i,/^GITHUB_TOKEN$/i,/^CREWX_MCP_KEY$/i,/^DATABASE_/i,/^AWS_ACCESS_KEY/i,/^AWS_SESSION_TOKEN$/i,/^GH_TOKEN$/i,/^GH_APP_/i,/^NPM_TOKEN$/i,/^NPM_AUTH/i,/^GOOGLE_APPLICATION/i,/^GCLOUD_/i,/^AZURE_/i,/^ARM_/i,/^DOCKER_PASSWORD$/i,/^DOCKER_AUTH/i,/^SSH_PRIVATE/i,/^SSH_AUTH_SOCK$/i,/^CI_JOB_TOKEN$/i,/^ACTIONS_RUNTIME_TOKEN$/i,/^VAULT_TOKEN$/i,/^SONAR_TOKEN$/i,/^CODECOV_TOKEN$/i,/TOKEN$/i,/SECRET$/i,/PASSWORD$/i,/API_KEY$/i],qs=/[;|&`$(){}!><\n\r]/,Fs=2,Us=["*","**","*:*","* *","**/*"];function Bs(){let r={};for(let[e,t]of Object.entries(process.env))t!==void 0&&(Hs.some(n=>n.test(e))||(r[e]=t));return r}function Js(r){if(qs.test(r))throw new Error(`exec blocked: shell metacharacter detected in "${r}"`)}function Ws(r){return /^npx\s+@crewx\/[\w-]+/.test(r)}function Vs(r){if(Us.includes(r.trim()))throw new Error(`exec config error: overly broad pattern "${r}" is not allowed`);if(!/^[\w./@-]/.test(r))throw new Error("exec config error: pattern must start with a command name")}function Ks(r,e){let t=e.allow??[],n=e.deny??[];for(let o of [...t,...n])Vs(o);return n.some(o=>ne(r,o))?false:Ws(r)?true:t.some(o=>ne(r,o))}var jr=false;function Gs(r){jr=r;}function ze(r){if(!jr)return;let e=JSON.stringify({span:"template_exec",...r,timestamp:new Date().toISOString()});console.error(e);}function Xs(r){let e=[],t="",n=false,o=false;for(let s=0;s<r.length;s++){let i=r[s];i==="'"&&!o?n=!n:i==='"'&&!n?o=!o:i===" "&&!n&&!o?t.length>0&&(e.push(t),t=""):t+=i;}return t.length>0&&e.push(t),e}function Nr(r,e){let t=Date.now(),n=parseInt(process.env.CREWX_EXEC_DEPTH??"0",10);if(isNaN(n)||n>=Fs)return ze({command:r,status:"denied",reason:"invalid or max recursion depth"}),"(exec blocked: max recursion depth reached)";try{Js(r);}catch{return ze({command:r,status:"denied",reason:"shell metacharacter detected"}),`(exec blocked: shell metacharacter detected in "${r}")`}if(!Ks(r,e))return ze({command:r,status:"denied",reason:"not in allow list"}),`(exec blocked: ${r})`;try{let o=Xs(r),[s,...i]=o;if(!s)return `(exec failed: ${r})`;let a=Bs(),l=child_process.execFileSync(s,i,{timeout:e.timeout??5e3,maxBuffer:64*1024,encoding:"utf-8",env:{...a,CREWX_EXEC_DEPTH:String(n+1)},stdio:["pipe","pipe","pipe"]}),u=Date.now()-t;return ze({command:r,status:"allowed",allowed_by:"policy",duration_ms:u}),`<exec-output cmd="${r}">
43
+ ${l.trim()}
44
+ </exec-output>`}catch{return ze({command:r,status:"error",reason:"execution failed"}),`(exec failed: ${r})`}}v();function $r(r){return r==null?"":String(r)}v();function Dr(r,e){return `\`\`\`${e?.hash?.lang??""}
45
+ ${r??""}
46
+ \`\`\``}v();function It(r,e){if(!r)return "";if(r.length<=e)return r;let t=r.length-e;return `${r.substring(0,e)} (...+${t} chars)`}function Ot(r){return Array.isArray(r)||typeof r=="string"?r.length:0}function zt(r){return typeof r!="string"?"":r.replace(/\{\{/g,"&#123;&#123;").replace(/\}\}/g,"&#125;&#125;")}var Lr=["B","KB","MB","GB"];function Mt(r){if(r===0)return "0 B";let e=Math.min(Math.floor(Math.log(r)/Math.log(1024)),Lr.length-1);return `${Math.round(r/Math.pow(1024,e)*100)/100} ${Lr[e]}`}function jt(r){if(!r)return "";try{let e=r instanceof Date?r:new Date(r);return isNaN(e.getTime())?"":e.toLocaleString("ko-KR",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}catch{return ""}}var Me=class{hbs;execPolicy;execEnabled;constructor(e={}){this.hbs=oe__namespace.create(),this.execPolicy=e.execPolicy??{allow:[],deny:[]},this.execEnabled=e.execEnabled??true,this.registerHelpers();}registerHelpers(){let e=this.hbs,t=this.execPolicy,n=this.execEnabled;e.registerHelper("exec",function(o){return typeof o!="string"?"":n?new e.SafeString(Nr(o,t)):"(exec disabled)"}),e.registerHelper("include",function(o){return new e.SafeString($r(o))}),e.registerHelper("fenced_code",function(o,s){return new e.SafeString(Dr(o,s))}),e.registerHelper("eq",function(o,s){return o===s}),e.registerHelper("ne",function(o,s){return o!==s}),e.registerHelper("and",function(o,s){return o&&s}),e.registerHelper("or",function(o,s){return o||s}),e.registerHelper("not",function(o){return !o}),e.registerHelper("contains",function(o,s){return Array.isArray(o)&&o.includes(s)}),e.registerHelper("json",function(o){return JSON.stringify(o,null,2)}),e.registerHelper("truncate",function(o,s){return It(o,s)}),e.registerHelper("length",function(o){return Ot(o)}),e.registerHelper("escapeHandlebars",function(o){return new e.SafeString(zt(o))}),e.registerHelper("formatFileSize",function(o){return Mt(o)}),e.registerHelper("formatTimestamp",function(o){return jt(o)});}async render(e,t={}){return this.hbs.compile(e,{noEscape:true})(t)}};v();v();var ut=class{async readFile(e){return promises.readFile(e,"utf-8")}async exists(e){try{return await promises.access(e),!0}catch{return false}}resolvePath(...e){return e.length===1?Fr.resolve(e[0]):Fr.resolve(Fr.join(...e))}isAbsolute(e){return Fr.isAbsolute(e)}},Nt=new ut;var Re=class{docs=new Map;fs;constructor(e){this.fs=e??Nt;}async load(e,t){if(e)for(let[n,o]of Object.entries(e)){let s=o;if(typeof s=="string")this.docs.set(n,{content:s});else if(s&&typeof s=="object"){let i=s;"content"in i&&typeof i.content=="string"?this.docs.set(n,{content:i.content}):"path"in i&&typeof i.path=="string"?await this.loadFromFile(n,i.path,t):console.warn(`[DocumentLoader] Skipping '${n}': unsupported format`);}else console.warn(`[DocumentLoader] Skipping '${n}': unsupported format`);}}async getContent(e){return this.docs.get(e)?.content}async getToc(e){let t=this.docs.get(e);if(!t)return;let n=[];for(let o of t.content.split(`
47
+ `)){let s=/^(#{1,6})\s+(.+)$/.exec(o.trim());s&&n.push({depth:s[1].length,text:s[2].trim()});}if(n.length!==0)return n.map(({depth:o,text:s})=>`${" ".repeat(o-1)}- ${s}`).join(`
48
+ `)}getPath(e){return this.docs.get(e)?.path}getNames(){return Array.from(this.docs.keys())}async buildContext(){let e={};for(let t of this.docs.keys()){let n=await this.getContent(t)??"",o=await this.getToc(t),s=this.getPath(t);e[t]={content:n,toc:o,...s?{path:s}:{}};}return e}async loadFromFile(e,t,n){try{let o=this.resolve(t,n),s=await this.fs.readFile(o);this.docs.set(e,{content:s,path:o});}catch(o){let s=o instanceof Error?o.message:String(o);console.warn(`[DocumentLoader] Failed to load '${e}' from '${t}': ${s}`);}}resolve(e,t){return this.fs.isAbsolute(e)?e:t?this.fs.resolvePath(t,e):this.fs.resolvePath(e)}};v();v();var Y=class extends Error{constructor(t,n,o){super(t);this.layoutId=n;this.cause=o;this.name="LayoutLoadError";}layoutId;cause},pe=class extends Error{constructor(t,n=[],o){super(t);this.errors=n;this.cause=o;this.name="PropsValidationError";}errors;cause};var si={validationMode:"lenient",fallbackLayoutId:"crewx/default"},je=class{layouts=new Map;options;constructor(e){this.options={...si,...e,templatesPath:e?.templatesPath??Ae()},this.loadAllLayouts();}load(e,t){let n=this.layouts.get(e);if(!n){let o=this.normalizeLayoutId(e);n=this.layouts.get(o);}if(!n&&(console.warn(`Layout not found: ${e}, falling back to ${this.options.fallbackLayoutId}`),n=this.layouts.get(this.options.fallbackLayoutId),!n))throw new Y(`Fallback layout not found: ${this.options.fallbackLayoutId}`,this.options.fallbackLayoutId);return t&&Object.keys(t).length>0?{...n,defaultProps:{...n.defaultProps,...t}}:n}getLayoutIds(){return Array.from(this.layouts.keys())}hasLayout(e){if(this.layouts.has(e))return true;let t=this.normalizeLayoutId(e);return this.layouts.has(t)}reload(){this.layouts.clear(),this.loadAllLayouts();}registerLayout(e,t){if(!e||typeof e!="string")throw new Y("Layout ID must be a non-empty string",e);let n=typeof t=="string"?{template:t}:t,o=typeof n.template=="string"?n.template:"";if(!o||o.trim().length===0)throw new Y(`Custom layout template is empty for ${e}`,e);let s=n.propsSchema||{},i=this.extractDefaultProps(s),a=n.defaultProps||{},l={id:e,version:n.version||"1.0.0",description:n.description||`Custom layout ${e}`,template:o,propsSchema:this.parsePropsSchema(s),defaultProps:{...i,...a}},u=this.layouts.get(e),c=u?.template===o&&JSON.stringify(u?.defaultProps??{})===JSON.stringify(l.defaultProps??{})&&JSON.stringify(u?.propsSchema??{})===JSON.stringify(l.propsSchema??{});this.layouts.set(e,l),process.env.CREWX_VERBOSE==="1"&&(u?c||console.error(`Updated custom layout: ${e}`):console.error(`Registered custom layout: ${e}`));}registerLayouts(e){for(let[t,n]of Object.entries(e))try{this.registerLayout(t,n);}catch(o){console.warn(`Failed to register custom layout ${t}:`,o instanceof Error?o.message:o);}}loadAllLayouts(){let e=this.options.templatesPath;if(!fs$1.existsSync(e))throw new Y(`Templates directory not found: ${e}`,void 0,new Error(`Directory does not exist: ${e}`));try{let t=fs$1.readdirSync(e).filter(n=>n.endsWith(".yaml")||n.endsWith(".yml"));t.length===0&&console.warn(`No layout files found in ${e}`);for(let n of t){let o=n.replace(/\.(yaml|yml)$/,""),s=Fr__namespace.join(e,n);try{let i=this.loadLayoutFile(s,o),a=`crewx/${o}`;this.layouts.set(a,i),a!=="crewx/minimal"&&process.env.CREWX_VERBOSE==="1"&&console.error(`Loaded layout: ${a} from ${n}`);}catch(i){console.error(`Failed to load layout file ${n}:`,i);}}process.env.CREWX_VERBOSE==="1"&&console.error(`Loaded ${this.layouts.size} layouts from ${e}`);}catch(t){throw new Y(`Failed to read layouts directory: ${e}`,void 0,t instanceof Error?t:new Error(String(t)))}}loadLayoutFile(e,t){try{let n=fs$1.readFileSync(e,"utf-8");if(!n||n.trim().length===0)throw console.warn(`Empty YAML file: ${e}, will use fallback`),new Y(`Empty YAML file: ${e}`,t,new Error("File content is empty"));let o=jsYaml.load(n);if(!o||typeof o!="object")throw console.warn(`Invalid YAML content in ${e} (parsed as ${typeof o}), will use fallback`),new Y(`Invalid or empty YAML in ${e}`,t,new Error("YAML parsing returned null/undefined or non-object"));if(o.layouts&&typeof o.layouts=="object"){let s=this.resolveLayoutEntry(o.layouts,t);if(!s||s.template.trim().length===0)throw console.warn(`Empty or missing layout template in ${e} for ${t}`),new Y(`Layout template not found or empty in layouts map: ${t}`,t);let i=s.propsSchema||o.propsSchema||{};return {id:`crewx/${t}`,version:o.version||"1.0.0",description:o.description||`CrewX ${t} layout`,template:s.template,propsSchema:this.parsePropsSchema(i),defaultProps:this.extractDefaultProps(i)}}else {if(!o.template||typeof o.template=="string"&&o.template.trim().length===0)throw console.warn(`Empty or missing template field in ${e}`),new Y(`Layout template is missing or empty in ${e}`,t);return {id:o.id||`crewx/${t}`,version:o.version||"1.0.0",description:o.description||"",template:o.template,propsSchema:this.parsePropsSchema(o.propsSchema||{}),defaultProps:this.extractDefaultProps(o.propsSchema||{})}}}catch(n){throw new Y(`Failed to load layout file: ${e}`,t,n instanceof Error?n:new Error(String(n)))}}parsePropsSchema(e){let t={};for(let[n,o]of Object.entries(e))typeof o=="object"&&o!==null&&(t[n]=o);return t}extractDefaultProps(e){let t={};for(let[n,o]of Object.entries(e))o&&typeof o=="object"&&("defaultValue"in o?t[n]=o.defaultValue:"default"in o&&(t[n]=o.default));return t}normalizeLayoutId(e){return e?e.includes("/")?e:`crewx/${e}`:this.options.fallbackLayoutId}resolveLayoutEntry(e,t){let n=new Set;if(t)if(n.add(t),t.includes("/")){let o=t.split("/"),s=o[o.length-1];s&&n.add(s);}else n.add(`crewx/${t}`);n.add("default");for(let o of n){let s=e[o];if(typeof s=="string"&&s.trim().length>0)return {template:s};if(s&&typeof s=="object"&&typeof s.template=="string"&&s.template.trim().length>0)return {template:s.template,propsSchema:s.propsSchema}}for(let o of Object.values(e)){if(typeof o=="string"&&o.trim().length>0)return {template:o};let s=o;if(s&&typeof s=="object"&&typeof s.template=="string"&&s.template.trim().length>0)return {template:s.template,propsSchema:s.propsSchema}}}};v();v();function ii(r){return Array.from(new Set(r.filter(e=>e?.isAssistant&&e?.metadata?.agent_id).map(e=>String(e.metadata.agent_id))))}function Ur(r,e,t){if(!Array.isArray(r)||r.length===0||!(t&&typeof t.fn=="function"))return "";let o=ii(r),s=o.length>0?o[0]:"",i={messages:r,platform:typeof e=="string"?e:"",messagesCount:r.length,agentIds:o,primaryAgentId:s};return t.fn(i)}v();var Ne=class{defaultMode;constructor(e={}){this.defaultMode=e.defaultMode??"lenient";}validate(e,t,n=this.defaultMode){let o=[],s=this.validateObject(e??{},t,n,["props"],o);if(o.length>0&&n==="strict")throw new pe("Props validation failed in strict mode",o);return {valid:o.length===0,props:s,errors:o}}validateObject(e,t,n,o,s){let i={};if(n==="strict")for(let a of Object.keys(e))t[a]||s.push({path:this.buildPath([...o,a]),message:`Unknown prop '${a}'`,value:e[a]});for(let[a,l]of Object.entries(t)){let u=[...o,a],c=e[a],d=this.resolveProp(c,l,u,n,s);d.shouldAssign&&(i[a]=d.value);}return i}resolveProp(e,t,n,o,s){let i=this.buildPath(n);if(this.isNil(e)){if(t.isRequired&&s.push({path:i,message:`Required prop '${n[n.length-1]}' is missing`}),t.defaultValue!==void 0)return {shouldAssign:true,value:this.cloneValue(t.defaultValue)};if(t.type==="shape"&&t.shape){let l=this.applyDefaults(t.shape);if(Object.keys(l).length>0)return {shouldAssign:true,value:l}}return {shouldAssign:false}}let a=this.validateType(e,t,n,o,s);if(!a.valid){if(t.type==="shape"&&a.value&&this.isPlainObject(a.value))return {shouldAssign:true,value:a.value};if(s.push({path:i,message:a.error??"Invalid value",value:e}),t.defaultValue!==void 0)return {shouldAssign:true,value:this.cloneValue(t.defaultValue)};if(t.type==="shape"&&t.shape){let l=this.applyDefaults(t.shape);if(Object.keys(l).length>0)return {shouldAssign:true,value:l}}return {shouldAssign:false}}return {shouldAssign:true,value:a.value}}validateType(e,t,n,o,s){let{type:i}=t;switch(i){case "string":return this.validateString(e,t);case "number":return this.validateNumber(e,t);case "bool":return this.validateBoolean(e);case "array":return this.validateArray(e,t);case "arrayOf":return this.validateArrayOf(e,t,n,o,s);case "object":return this.validatePlainObject(e);case "shape":return this.validateShape(e,t,n,o,s);case "oneOfType":return this.validateOneOfType(e,t);case "func":return this.validateFunction(e);case "node":return {valid:true,value:e};default:return {valid:true,value:e}}}validateString(e,t){return typeof e!="string"?{valid:false,error:`Expected string, got ${this.describeType(e)}`}:t.oneOf&&!t.oneOf.includes(e)?{valid:false,error:`Expected one of: ${t.oneOf.join(", ")}`}:t.minLength!==void 0&&e.length<t.minLength?{valid:false,error:`String length must be >= ${t.minLength}`}:t.maxLength!==void 0&&e.length>t.maxLength?{valid:false,error:`String length must be <= ${t.maxLength}`}:t.pattern&&!new RegExp(t.pattern).test(e)?{valid:false,error:`String does not match pattern ${t.pattern}`}:{valid:true,value:e}}validateNumber(e,t){return typeof e!="number"||Number.isNaN(e)?{valid:false,error:`Expected number, got ${this.describeType(e)}`}:t.min!==void 0&&e<t.min?{valid:false,error:`Number must be >= ${t.min}`}:t.max!==void 0&&e>t.max?{valid:false,error:`Number must be <= ${t.max}`}:t.oneOf&&!t.oneOf.includes(e)?{valid:false,error:`Expected one of: ${t.oneOf.join(", ")}`}:{valid:true,value:e}}validateBoolean(e){return typeof e!="boolean"?{valid:false,error:`Expected boolean, got ${this.describeType(e)}`}:{valid:true,value:e}}validateArray(e,t){return Array.isArray(e)?t.minLength!==void 0&&e.length<t.minLength?{valid:false,error:`Array length must be >= ${t.minLength}`}:t.maxLength!==void 0&&e.length>t.maxLength?{valid:false,error:`Array length must be <= ${t.maxLength}`}:{valid:true,value:[...e]}:{valid:false,error:`Expected array, got ${this.describeType(e)}`}}validateArrayOf(e,t,n,o,s){let i=this.validateArray(e,t);if(!i.valid)return i;let a=[],l=t.itemType,u=t.itemOneOf,c=s.length;return i.value.forEach((d,p)=>{let m=[...n,String(p)];if(l){let h=this.validateType(d,{type:l},m,o,s);h.valid?a.push(h.value):s.push({path:this.buildPath(m),message:h.error??"Invalid array item",value:d});}else a.push(d);u&&!u.includes(d)&&s.push({path:this.buildPath(m),message:`Array item must be one of: ${u.join(", ")}`,value:d});}),{valid:s.length===c,value:a}}validatePlainObject(e){return this.isPlainObject(e)?{valid:true,value:{...e}}:{valid:false,error:`Expected object, got ${this.describeType(e)}`}}validateFunction(e){return typeof e!="function"?{valid:false,error:`Expected function, got ${this.describeType(e)}`}:{valid:true,value:e}}validateShape(e,t,n,o,s){if(!this.isPlainObject(e))return {valid:false,error:`Expected object, got ${this.describeType(e)}`};let i=s.length,a=this.validateObject(e,t.shape??{},o,n,s);return {valid:s.length===i,value:a}}validateOneOfType(e,t){let n=t.types??[];return n.some(s=>this.matchesType(e,s))?{valid:true,value:e}:{valid:false,error:`Value does not match any allowed type: ${n.join(", ")}`}}matchesType(e,t){switch(t){case "string":return typeof e=="string";case "number":return typeof e=="number"&&!Number.isNaN(e);case "bool":case "boolean":return typeof e=="boolean";case "array":return Array.isArray(e);case "object":return this.isPlainObject(e);case "func":case "function":return typeof e=="function";case "shape":return this.isPlainObject(e);case "node":return e==null||typeof e!="symbol";default:return true}}applyDefaults(e){let t={};for(let[n,o]of Object.entries(e)){if(o.defaultValue!==void 0){t[n]=this.cloneValue(o.defaultValue);continue}if(o.type==="shape"&&o.shape){let s=this.applyDefaults(o.shape);Object.keys(s).length>0&&(t[n]=s);}}return t}cloneValue(e){if(Array.isArray(e))return e.map(t=>this.cloneValue(t));if(this.isPlainObject(e)){let t={};for(let[n,o]of Object.entries(e))t[n]=this.cloneValue(o);return t}return e}isPlainObject(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}isNil(e){return e==null}buildPath(e){return e.join(".")}describeType(e){return Array.isArray(e)?"array":e===null?"null":typeof e}};var $e=class{handlebars;propsValidator;constructor(e){this.handlebars=oe__namespace.default.create(),this.propsValidator=e??new Ne,this.registerHelpers();}render(e,t,n={}){try{let o=this.prepareRenderContext(e,t,n);return this.handlebars.compile(e.template,{noEscape:!0})(o)}catch(o){throw o instanceof Error?new Error(`Template rendering failed for layout '${e.id}': ${o.message}`):new Error(`Unknown error rendering layout '${e.id}'`)}}validate(e,t,n="lenient"){return this.executeValidation(e,t,n)}resolveProps(e,t,n="lenient"){let o=this.mergeProps(e.defaultProps,t);return !e.propsSchema||Object.keys(e.propsSchema).length===0?{valid:true,props:o,errors:[]}:this.executeValidation(o,e.propsSchema,n)}prepareRenderContext(e,t,n){let{validationMode:o="lenient",skipValidation:s=false}=n,i=s?this.mergeProps(e.defaultProps,t.props):this.resolveProps(e,t.props,o).props;return {...t,vars:this.sanitizeVars(t.vars),props:i}}registerHelpers(){this.handlebars.registerHelper("formatConversation",Ur),oe__namespace.default.helpers.each&&this.handlebars.registerHelper("each",oe__namespace.default.helpers.each),oe__namespace.default.helpers.if&&this.handlebars.registerHelper("if",oe__namespace.default.helpers.if),oe__namespace.default.helpers.unless&&this.handlebars.registerHelper("unless",oe__namespace.default.helpers.unless),oe__namespace.default.helpers.with&&this.handlebars.registerHelper("with",oe__namespace.default.helpers.with),this.handlebars.registerHelper("eq",function(e,t){return e===t}),this.handlebars.registerHelper("ne",function(e,t){return e!==t}),this.handlebars.registerHelper("gt",function(e,t){return e>t}),this.handlebars.registerHelper("lt",function(e,t){return e<t}),this.handlebars.registerHelper("json",function(e){return new oe__namespace.default.SafeString(JSON.stringify(e))}),this.handlebars.registerHelper("raw",function(e){return typeof e?.fn=="function"?e.fn(this):""}),this.handlebars.registerHelper("escapeHandlebars",function(e){return typeof e!="string"?"":e.replace(/\{\{/g,"&#123;&#123;").replace(/\}\}/g,"&#125;&#125;")}),this.handlebars.registerHelper("formatFileSize",function(e){if(e===0)return "0 B";let t=["B","KB","MB","GB"],n=Math.floor(Math.log(e)/Math.log(1024));return Math.round(e/Math.pow(1024,n)*100)/100+" "+t[n]});}executeValidation(e,t,n){try{return this.propsValidator.validate(e,t,n)}catch(o){if(o instanceof pe&&o.errors&&o.errors.length>0){let s=o.errors[0];if(s)throw new pe(s.message,o.errors)}throw o}}mergeProps(e,t){let n=this.cloneDeep(e??{});return t?this.deepMerge(n,t):n}deepMerge(e,t){for(let[n,o]of Object.entries(t)){if(this.isPlainObject(o)){let s=e[n];e[n]=this.deepMerge(this.isPlainObject(s)?s:{},o);continue}if(Array.isArray(o)){e[n]=this.cloneDeep(o);continue}e[n]=o;}return e}cloneDeep(e){if(Array.isArray(e))return e.map(t=>this.cloneDeep(t));if(this.isPlainObject(e)){let t={};for(let[n,o]of Object.entries(e))t[n]=this.cloneDeep(o);return t}return e}isPlainObject(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}sanitizeVars(e){if(!e)return {};let t={...e};if(typeof e.user_input=="string"){t.user_input_raw=e.user_input;let n=e.user_input.replace(/\{\{\{/g,"&#123;&#123;&#123;").replace(/\}\}\}/g,"&#125;&#125;&#125;").replace(/\{\{/g,"&#123;&#123;").replace(/\}\}/g,"&#125;&#125;");t.user_input=this.handlebars.escapeExpression(n);}return t}};v();var $t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";function ai(r){let e=crypto$1.randomBytes(r*2),t="";for(let n=0;n<e.length&&t.length<r;n++){let o=e[n];o<248&&(t+=$t[o%62]);}for(;t.length<r;)t+=$t[crypto$1.randomBytes(1)[0]%62];return t}function Ce(r){return `${r}_${ai(8)}`}function li(r,e){let{createHash:t}=U("crypto"),n=t("sha256").update(e).digest(),o=Buffer.alloc(8);for(let i=0;i<32;i++)o[i%8]^=n[i];let s="";for(let i of o)s+=$t[i%62];return `${r}_${s}`}v();function Dt(r){let e=t=>String(t).padStart(2,"0");return `${r.getFullYear()}${e(r.getMonth()+1)}${e(r.getDate())}T${e(r.getHours())}${e(r.getMinutes())}${e(r.getSeconds())}`}v();function Jr(r,e){return t=>{try{let n=e(t);n instanceof Promise&&n.catch(o=>{console.error(`[crewx] event listener error (${r}): ${o instanceof Error?o.message:String(o)}`);});}catch(n){console.error(`[crewx] event listener error (${r}): ${n instanceof Error?n.message:String(n)}`);}}}var De=class{_emitter=new events.EventEmitter;on(e,t){let n=Jr(e,t);return this._emitter.on(e,n),()=>this._emitter.off(e,n)}once(e,t){let n=Jr(e,t);return this._emitter.once(e,n),()=>this._emitter.off(e,n)}emit(e,t){this._emitter.emit(e,t);}};v();function Lt(r){let e=new Map,t=n=>n.startsWith(`${r}::`)?n:`${r}::${n}`;return {async get(n){let o=e.get(t(n));return o?o.value:void 0},async set(n,o){e.set(t(n),{value:o});},async delete(n){return e.delete(t(n))},async list(n){let o=n?t(n):`${r}::`,s=[];for(let i of e.keys())i.startsWith(o)&&s.push(i.slice(r.length+2));return s}}}v();var Ht=new async_hooks.AsyncLocalStorage;function di(){return Ht}function pi(r,e){return Ht.run(r,e)}function qt(r){let e=r.log??r.logger??{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},t=r.agentRunner??{run:async()=>({output:""})},n=r.db??{get:async()=>{},set:async()=>{},delete:async()=>false,list:async()=>[]},o=r.storage??{put:async()=>"",get:async()=>{},delete:async()=>false},s=r.audit??{log:async()=>{}},i=r.onInbound??(async()=>({accepted:true})),a=r.onEmitEvent??(async()=>({accepted:true})),l=r.onUpdateMessage??(async()=>{}),u=r.onResolveUser??(async p=>({userId:p,displayName:p})),c=async p=>{let m=Ht.getStore();if(!m){e.warn("respondSync called outside sync window \u2014 graceful degradation (no-op)",{textPreview:typeof p=="object"&&"text"in p?p.text.slice(0,80):void 0});return}let h="text"in p?p.text:"";m.res.status(200).json({text:h});},d=r.httpRouter??{registerRoute:()=>{e.warn("httpRouter not configured \u2014 registerRoute is a no-op");}};return {instanceId:r.instanceId,config:r.config,capabilities:r.capabilities,log:e,agentRunner:t,db:n,storage:o,audit:s,abortSignal:r.abortSignal??new AbortController().signal,httpRouter:d,inbound:i,emitEvent:a,updateMessage:l,resolveUser:u,respondSync:c}}v();v();v();function se(r){return /crewx\s+(x|execute)\s/.test(r)}function ie(r,e){let t=e.match(/@(\S+)/);return {timestamp:r,type:"agent_call",targetAgent:t?.[1]?.replace(/["']/g,""),toolInput:e}}function Wr(r,e){let n=e.message?.content;if(!Array.isArray(n))return [];let o=[];for(let s of n){let i=gi(r,s);i&&o.push(i);}return o}function gi(r,e){let t=e.type;if(t==="text"){let n=String(e.text||"");return n?{timestamp:r,type:"text",content:n}:null}if(t==="tool_use"){let n=String(e.name||""),o=e.id,s=e.input,i=s?.command?String(s.command):JSON.stringify(s||{});return n==="Bash"&&se(i)?ie(r,i):{timestamp:r,type:"tool_use",toolUseId:o,toolName:n,toolInput:i}}if(t==="tool_result"){let n=!!e.is_error,o=e.tool_use_id,s=e.output??e.content??"",i;return typeof s=="string"?i=s:Array.isArray(s)?i=s.filter(a=>a.type==="text"&&typeof a.text=="string").map(a=>a.text).join(`
49
+ `):i=JSON.stringify(s),{timestamp:r,type:"tool_result",toolUseId:o,resultPreview:i,isError:n}}return null}v();function Vr(r,e){let t=e.type,n=e.data;if(!n)return [];let o=n.toolCallId;if(t==="tool.execution_start"){let s=String(n.toolName||""),i=n.arguments,a=i?.command?String(i.command):JSON.stringify(i||{});return (s==="bash"||s==="Bash")&&se(a)?[ie(r,a)]:[{timestamp:r,type:"tool_use",toolName:s,toolInput:a,...o&&{toolUseId:o}}]}if(t==="tool.execution_complete"){let s=n.error;if(s)return [{timestamp:r,type:"tool_result",isError:true,resultPreview:String(s.message||""),...o&&{toolUseId:o}}];let i=n.result,a=String(i?.content||"");return [{timestamp:r,type:"tool_result",resultPreview:a,isError:false,...o&&{toolUseId:o}}]}if(t==="assistant.message"){let s=String(n.content||"");return s?[{timestamp:r,type:"text",content:s}]:[]}return []}v();function Kr(r,e){let t=e.type,n=e.item;if(!n)return [];if(t==="item.started")return mi(r,n);if(t==="item.completed"){let o=fi(r,n);return o?[o]:[]}return []}function mi(r,e){if(e.type==="command_execution"){let n=String(e.command||"");return se(n)?[ie(r,n)]:[{timestamp:r,type:"tool_use",toolName:"Bash",toolInput:n}]}return []}function fi(r,e){let t=e.type;if(t==="message"||t==="text"){let n=e.content;if(Array.isArray(n))for(let o of n){let s=hi(r,o);if(s)return s}if(typeof e.text=="string")return {timestamp:r,type:"text",content:e.text}}if(t==="reasoning")return {timestamp:r,type:"text",content:String(e.text||"")};if(t==="command_execution"){let n=String(e.aggregated_output||e.output||""),o=!!e.is_error;return {timestamp:r,type:"tool_result",resultPreview:n,isError:o}}if(t==="tool_use"){let n=String(e.name||e.tool_name||""),o=e.input,s=o?.command?String(o.command):JSON.stringify(o||{});return n==="Bash"&&se(s)?ie(r,s):{timestamp:r,type:"tool_use",toolName:n,toolInput:s}}if(t==="tool_result"){let n=!!e.is_error,o=String(e.output||e.content||"");return {timestamp:r,type:"tool_result",resultPreview:o,isError:n}}return null}function hi(r,e){let t=e.type;if(t==="text")return {timestamp:r,type:"text",content:String(e.text||"")};if(t==="tool_use"){let n=String(e.name||""),o=e.input,s=o?.command?String(o.command):JSON.stringify(o||{});return n==="Bash"&&se(s)?ie(r,s):{timestamp:r,type:"tool_use",toolName:n,toolInput:s}}return null}v();function Ft(r,e){let t=e.type;if(t==="message"){if(e.role!=="assistant")return [];let o=e.content;return o?[{timestamp:r,type:"text",content:o}]:[]}if(t==="tool_use"){let n=String(e.tool_name||""),o=e.tool_id,s=e.parameters,i=s?.command?String(s.command):JSON.stringify(s||{});return /^bash$/i.test(n)&&se(i)?[ie(r,i)]:[{timestamp:r,type:"tool_use",toolName:n,toolUseId:o,toolInput:i}]}if(t==="tool_result"){let n=e.tool_id,o=String(e.output||""),s=e.status!=="success";return [{timestamp:r,type:"tool_result",toolUseId:n,resultPreview:o,isError:s}]}return []}v();function Ut(r,e){let t=e.type;if(t==="text"){let o=e.part?.text;return o?[{timestamp:r,type:"text",content:o}]:[]}if(t==="tool_use"){let n=e.part;if(!n)return [];let o=String(n.tool||""),s=String(n.callID||""),i=n.state,a=String(i?.status||""),l=i?.input,u=yi(l),c=[{timestamp:r,type:"tool_use",toolName:o,toolUseId:s,toolInput:u}];if(a==="completed"&&i?.output!==void 0){let d=i.output,p=typeof d=="string"?d:JSON.stringify(d);c.push({timestamp:r,type:"tool_result",toolUseId:s,resultPreview:p,isError:false});}else a==="error"&&c.push({timestamp:r,type:"tool_result",toolUseId:s,resultPreview:String(i?.error||"tool error"),isError:true});return c}return []}function yi(r){if(typeof r=="string")return r;if(!r||typeof r!="object")return JSON.stringify(r??{});let e=r;return e.command?String(e.command):e.filePath?String(e.filePath):e.pattern?String(e.pattern):JSON.stringify(e)}function Bt(r,e){let t;try{t=JSON.parse(e);}catch{return []}let n=t.type;return n?n==="assistant"||n==="user"?Wr(r,t):n.startsWith("tool.execution")||n.startsWith("assistant.")||n==="user.message"?Vr(r,t):n.startsWith("item.")||n.startsWith("turn.")||n.startsWith("thread.")?Kr(r,t):n==="message"||n==="init"?Ft(r,t):n==="tool_use"||n==="tool_result"?t.part&&typeof t.part=="object"?Ut(r,t):Ft(r,t):n==="text"||n==="step_start"||n==="step_finish"?Ut(r,t):[]:[]}v();function vi(r){return typeof r!="string"?"":r.replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Jt(r){return r.messages.map(e=>({text:vi(e.text),isAssistant:e.isAssistant,metadata:e.metadata,files:void 0}))}v();v();var wi={agentId:zod.z.string().describe("The agent ID to query"),query:zod.z.string().describe("The query message to send"),context:zod.z.string().optional().describe("Additional context"),thread:zod.z.string().optional().describe("Thread ID for conversation continuity")},bi={agentId:zod.z.string().describe("The agent ID to execute"),task:zod.z.string().describe("The task description to execute"),context:zod.z.string().optional().describe("Additional context"),thread:zod.z.string().optional().describe("Thread ID for conversation continuity")};function Gr(r,e,t){r.tool("crewx_listAgents","List available CrewX agents exposed by this server",async()=>{let n=[];for(let o of t){let s=e.agents.get(o);s&&n.push({id:s.id,name:s.name??s.id,description:s.description??""});}return {content:[{type:"text",text:JSON.stringify(n,null,2)}]}}),r.tool("crewx_queryAgent","Query a CrewX agent with a read-only question",wi,async({agentId:n,query:o,context:s,thread:i})=>{if(!t.has(n))return {content:[{type:"text",text:`Agent '${n}' is not exposed by this server`}],isError:true};let a=await e.query(n,o,{context:s,threadId:i});return a.ok?{content:[{type:"text",text:a.data}]}:{content:[{type:"text",text:a.error?.message??"Query failed"}],isError:true}}),r.tool("crewx_executeAgent","Execute a task on a CrewX agent (may modify state)",bi,async({agentId:n,task:o,context:s,thread:i})=>{if(!t.has(n))return {content:[{type:"text",text:`Agent '${n}' is not exposed by this server`}],isError:true};let a=await e.execute(n,o,{context:s,threadId:i});return a.ok?{content:[{type:"text",text:a.data}]}:{content:[{type:"text",text:a.error?.message??"Execute failed"}],isError:true}});}v();function Xr(r){return r.headers.get("Origin")?null:new Response(JSON.stringify({error:"Forbidden: Origin header required"}),{status:403,headers:{"Content-Type":"application/json"}})}async function Yr(r,e){return e?await e(r)?null:new Response(JSON.stringify({error:"Unauthorized"}),{status:401,headers:{"Content-Type":"application/json"}}):null}function ki(r,e){let t=new mcp_js.McpServer({name:"crewx-mcp-server",version:"1.0.0"},{capabilities:{tools:{}}});return Gr(t,r,e),t}function Wt(r,e){if(!e.agents||e.agents.length===0)throw new Error("crewx.handler() requires at least one agent in the agents option");let t=new Set(e.agents),n=new Map;return async o=>{let s=Xr(o);if(s)return s;let i=await Yr(o,e.auth);if(i)return i;let a=o.headers.get("mcp-session-id");if(a&&n.has(a))return n.get(a).transport.handleRequest(o);let l=ki(r,t),u=new webStandardStreamableHttp_js.WebStandardStreamableHTTPServerTransport({sessionIdGenerator:()=>crypto.randomUUID(),onsessioninitialized:c=>{n.set(c,{transport:u,server:l});},onsessionclosed:c=>{n.delete(c);},enableJsonResponse:true});return await l.connect(u),u.handleRequest(o)}}v();v();var Le=class{detach(e){}};v();var Pi=`
50
50
  CREATE TABLE IF NOT EXISTS threads (
51
51
  id TEXT PRIMARY KEY,
52
52
  workspace_id TEXT,
@@ -59,10 +59,10 @@ Set CREWX_SDK_TEMPLATES_PATH or pass options.templatesPath.`)}y();var Y=class ex
59
59
  updated_at TEXT NOT NULL,
60
60
  metadata TEXT
61
61
  )
62
- `,Ri=["id","thread_id","prompt","result","started_at","trace_id","status","parent_task_id","agent_id"];function Ci(r){return r.replace(/<conversation_history[^>]*>[\s\S]*?<\/conversation_history>/g,"").split(`
62
+ `,Ei=["id","thread_id","prompt","result","started_at","trace_id","status","parent_task_id","agent_id"];function Ai(r){return r.replace(/<conversation_history[^>]*>[\s\S]*?<\/conversation_history>/g,"").split(`
63
63
  `).filter(o=>!(o.startsWith("Loaded ")&&o.includes("layouts from")||o.includes("[dotenv@")||o.includes("[Nest]")&&o.includes("DEBUG")||o.startsWith("Registered custom layout:")||o.startsWith("Updated custom layout:"))).join(`
64
- `).trim()}function Ti(r){if(!r)return "";let e=r;try{let t=JSON.parse(e);Array.isArray(t)?e=t.filter(n=>n?.type==="text"&&n?.text).map(n=>n.text).join(`
65
- `):t&&typeof t=="object"&&t.result!==void 0&&(e=t.result||"");}catch{e=Ci(e);}return e}var Le=class{db;constructor(e){let t=e??Hr.join(os$1.homedir(),".crewx","crewx.db");this.db=new bi__default.default(t),this.init();}init(){this.db.pragma("journal_mode = WAL"),this.db.exec(ki);}async ensureThread(e,t,n){let o=this.db.prepare("SELECT platform FROM threads WHERE id = ?").get(e);if(o){if(o.platform!==t)throw new Error(`Thread '${e}' already exists with platform '${o.platform}' \u2014 cannot change to '${t}' (platform is immutable)`);n&&this.db.prepare("UPDATE threads SET workspace_id = COALESCE(workspace_id, ?) WHERE id = ?").run(n,e);return}let s=new Date().toISOString();this.db.prepare("INSERT INTO threads (id, platform, workspace_id, message_count, created_at, updated_at) VALUES (?, ?, ?, 0, ?, ?)").run(e,t,n??null,s,s);}async fetchHistory(e,t){let n=t?.limit??100,o=["thread_id = ?","(parent_task_id IS NULL OR parent_task_id = '')","(status IN ('done', 'completed', 'success') OR status IS NULL)"],s=[e];t?.currentTraceId&&(o.push("trace_id != ?"),s.push(t.currentTraceId));let i=o.join(" AND "),l=`SELECT ${Ri.join(", ")} FROM tasks WHERE ${i} ORDER BY started_at ASC LIMIT ?`;s.push(n);let u=this.db.prepare(l).all(...s),c=this.db.prepare("SELECT platform, title, first_message, last_message, message_count, updated_at FROM threads WHERE id = ?").get(e),d=c?.platform??"cli",p=this.rowsToMessages(u);return {threadId:e,platform:d,messages:p,metadata:{title:c?.title??void 0,firstMessage:c?.first_message??void 0,lastMessage:c?.last_message??void 0,messageCount:c?.message_count??0,updatedAt:c?.updated_at?new Date(c.updated_at).getTime():void 0}}}async saveUserMessage(e,t,n,o){let s=new Date().toISOString();this.db.prepare(`UPDATE threads
64
+ `).trim()}function Si(r){if(!r)return "";let e=r;try{let t=JSON.parse(e);Array.isArray(t)?e=t.filter(n=>n?.type==="text"&&n?.text).map(n=>n.text).join(`
65
+ `):t&&typeof t=="object"&&t.result!==void 0&&(e=t.result||"");}catch{e=Ai(e);}return e}var He=class{db;constructor(e){let t=e??Fr.join(os$1.homedir(),".crewx","crewx.db");this.db=new Ri__default.default(t),this.init();}init(){this.db.pragma("journal_mode = WAL"),this.db.exec(Pi);}async ensureThread(e,t,n){let o=this.db.prepare("SELECT platform FROM threads WHERE id = ?").get(e);if(o){if(o.platform!==t)throw new Error(`Thread '${e}' already exists with platform '${o.platform}' \u2014 cannot change to '${t}' (platform is immutable)`);n&&this.db.prepare("UPDATE threads SET workspace_id = COALESCE(workspace_id, ?) WHERE id = ?").run(n,e);return}let s=new Date().toISOString();this.db.prepare("INSERT INTO threads (id, platform, workspace_id, message_count, created_at, updated_at) VALUES (?, ?, ?, 0, ?, ?)").run(e,t,n??null,s,s);}async fetchHistory(e,t){let n=t?.limit??100,o=["thread_id = ?","(parent_task_id IS NULL OR parent_task_id = '')","(status IN ('done', 'completed', 'success') OR status IS NULL)"],s=[e];t?.currentTraceId&&(o.push("trace_id != ?"),s.push(t.currentTraceId));let i=o.join(" AND "),l=`SELECT ${Ei.join(", ")} FROM tasks WHERE ${i} ORDER BY started_at ASC LIMIT ?`;s.push(n);let u=this.db.prepare(l).all(...s),c=this.db.prepare("SELECT platform, title, first_message, last_message, message_count, updated_at FROM threads WHERE id = ?").get(e),d=c?.platform??"cli",p=this.rowsToMessages(u);return {threadId:e,platform:d,messages:p,metadata:{title:c?.title??void 0,firstMessage:c?.first_message??void 0,lastMessage:c?.last_message??void 0,messageCount:c?.message_count??0,updatedAt:c?.updated_at?new Date(c.updated_at).getTime():void 0}}}async saveUserMessage(e,t,n,o){let s=new Date().toISOString();this.db.prepare(`UPDATE threads
66
66
  SET first_message = COALESCE(first_message, ?),
67
67
  last_message = ?,
68
68
  message_count = message_count + 1,
@@ -70,10 +70,11 @@ Set CREWX_SDK_TEMPLATES_PATH or pass options.templatesPath.`)}y();var Y=class ex
70
70
  WHERE id = ?`).run(t,t,s,e);}async saveAssistantMessage(e,t,n,o){let s=new Date().toISOString();this.db.prepare(`UPDATE threads
71
71
  SET last_message = ?,
72
72
  updated_at = ?
73
- WHERE id = ?`).run(t,s,e);}close(){this.db.close();}rowsToMessages(e){let t=[];for(let n of e){n.prompt&&t.push({id:`${n.id}-user`,text:n.prompt,isAssistant:false,timestamp:new Date(n.started_at).getTime()});let o=Ti(n.result);o&&t.push({id:`${n.id}-assistant`,text:o,isAssistant:true,timestamp:new Date(n.started_at).getTime()});}return t}};var He=class extends De{name="conversation";_provider;unsubStart=null;unsubEnd=null;constructor(e){super(),this._provider=new Le(e?.dbPath);}get conversationProvider(){return this._provider}attach(e){this.unsubStart=e.on("task:start",async t=>{if(!t.threadId)return;let n=t.platform??"cli";try{await this._provider.ensureThread(t.threadId,n,t.workspaceId),await this._provider.saveUserMessage(t.threadId,t.message??"");}catch{}}),this.unsubEnd=e.on("task:end",async t=>{if(!t.result)return;let n=t.metadata?.threadId;if(!n)return;let o=t.agentRef?.replace(/^@/,"")??"";try{await this._provider.saveAssistantMessage(n,t.result,o);}catch{}});}detach(e){this.unsubStart?.(),this.unsubStart=null,this.unsubEnd?.(),this.unsubEnd=null,this._provider.close?.();}};y();function Yr(r){let e=Hr__namespace.resolve(r);return process.platform==="win32"&&(e=e.replace(/\\/g,"/"),e=e.replace(/^([A-Z]):/,(t,n)=>`${n.toLowerCase()}:`)),e.length>1&&!/^[a-zA-Z]:\/$/.test(e)&&(e=e.replace(/\/+$/,"")),e}function Jt(r){let e=Yr(r);return crypto$1.createHash("sha256").update(e).digest("hex")}function Sc(r){return r?r.settings?.template?.exec:void 0}function Ic(){try{let r=new Uint8Array(8);return globalThis.crypto.getRandomValues(r),Array.from(r,e=>e.toString(16).padStart(2,"0")).join("")}catch{let{randomBytes:r}=U("crypto");return r(8).toString("hex")}}var wr=class r extends $e{_agents;_templateEngine;_documentLoader;_layoutLoader;_layoutRenderer;_config;_projectRoot;_workspaceId;_workspaceName;_plugins=[];_tools=new Map;_activeAdapters=new Map;_pendingThreads=new Map;_remoteFactory;_remoteTargets=new Map;constructor(e,t={},n,o,s){super(),this._agents=new Map(e.map(l=>[l.id,l])),this._config=n,this._projectRoot=s??(typeof process<"u"?process.cwd():"/");let i=s??(typeof process<"u"?process.env.CREWX_WORKSPACE??process.cwd():"/");this._workspaceId=Jt(i),this._workspaceName=Hr.basename(i);let a=Sc(n);this._templateEngine=new ze({execPolicy:t.execPolicy??a}),this._documentLoader=o??new ke,this._layoutLoader=new Me({templatesPath:at()}),this._layoutRenderer=new Ne,this._remoteFactory=t.remoteFactory;}async resolveFileRemoteTarget(e){let t=this.getAgent(e),n=Array.isArray(t?.provider)?t?.provider[0]:t?.provider;if(!n?.startsWith("remote/"))return null;let o=n.slice(7),s=this.getRemoteProviderConfig(o);if(!s?.location?.startsWith("file://"))return null;let i=Hr.resolve(s.location.replace("file://","")),a=s.external_agent_id??e.replace(/^@/,""),l=this._remoteTargets.get(i);l||(l=(this._remoteFactory??(m=>r.loadYaml(m)))(i),this._remoteTargets.set(i,l),l.catch(()=>this._remoteTargets.delete(i)));let u=await l,c=u.getAgent("@"+a),d=Array.isArray(c?.provider)?c?.provider[0]:c?.provider;if(d?.startsWith("remote/"))throw new Error(`Chained remotes not allowed: "${o}" \u2192 "${d}"`);return {target:u,agentRef:"@"+a}}static async loadYaml(e,t,n){let o=Ct(e),s=Hr.dirname(e),i=new ke(n);await i.load(o.documents,s);let a=o.agents??[];if(a.some(c=>(Array.isArray(c.provider)?c.provider:[c.provider]).some(p=>p.startsWith("api/")))){let{registerApiProviders:c}=await Promise.resolve().then(()=>(mr(),Wo));c(t?.api);}Zo(a,o),es(a,o);let u=new r(a,t??{},o,i,s);return await u.use(new He),u}static async fromConfig(e,t,n,o){let s=new ke(o);await s.load(e.documents,n??(typeof process<"u"?process.cwd():"/")),Zo(e.agents??[],e),es(e.agents??[],e);let i=new r(e.agents??[],t??{},e,s,n);return await i.use(new He),i}get agents(){return this._agents}get config(){return this._config}get plugins(){return this._plugins}get tools(){return this._tools}get workspaceId(){return this._workspaceId}get workspaceName(){return this._workspaceName}getAgent(e){let t=e.startsWith("@")?e.slice(1):e;return this._agents.get(t)}getRemoteProviderConfig(e){let t=this._config?.providers;return Array.isArray(t)?t.find(o=>o.type==="remote"&&o.id===e):void 0}computeTaskLogPath(e,t){let n=Nt(t);return Hr.join(this._projectRoot,".crewx","logs",`${n}_${e}.log`)}registerTool(e,t){this._tools.set(e,{name:e,...t});}async use(e){this._plugins.includes(e)||(await e.attach(this),this._plugins.push(e));}handler(e){return Bt(this,e)}async registerChannelAdapter(e){let{adapter:t,instanceId:n,config:o}=e;if(this._activeAdapters.has(n))throw new Error(`Adapter instance already registered: ${n}`);let s=new Set(t.manifest.capabilities),i=e.store??$t(n),a=e.defaultMode??"query",l=t.manifest.platform,u=e.agentRunner??{run:async(m,h,f)=>{let v=await(a==="execute"?this.execute.bind(this):this.query.bind(this))(`@${m}`,h,{threadId:f?.threadId,platform:l});return {output:v.ok?v.data:v.error?.message??""}}},c=e.onInbound??(async m=>{let h=m.routingHints?.agentId??e.defaultAgent;if(!h)return {accepted:false,reason:"no_agent"};let{output:f}=await u.run(h,m.text,{threadId:m.threadId});return {accepted:true,output:f}}),d=Lt({instanceId:n,config:o,capabilities:s,db:i,agentRunner:u,onInbound:c}),p={adapter:t,ctx:d,state:"starting"};this._activeAdapters.set(n,p),this.emit("adapter:lifecycle",{adapterId:t.manifest.id,instanceId:n,state:"starting",timestamp:new Date});try{await t.start(d),p.state="started",this.emit("adapter:lifecycle",{adapterId:t.manifest.id,instanceId:n,state:"started",timestamp:new Date});}catch(m){throw p.state="failed",this.emit("adapter:lifecycle",{adapterId:t.manifest.id,instanceId:n,state:"failed",error:m instanceof Error?m:new Error(String(m)),timestamp:new Date}),this._activeAdapters.delete(n),m}}async unregisterChannelAdapter(e){let t=this._activeAdapters.get(e);if(t){t.state="stopping",this.emit("adapter:lifecycle",{adapterId:t.adapter.manifest.id,instanceId:e,state:"stopping",timestamp:new Date});try{await t.adapter.stop(t.ctx),t.state="stopped",this.emit("adapter:lifecycle",{adapterId:t.adapter.manifest.id,instanceId:e,state:"stopped",timestamp:new Date});}catch(n){t.state="failed",this.emit("adapter:lifecycle",{adapterId:t.adapter.manifest.id,instanceId:e,state:"failed",error:n instanceof Error?n:new Error(String(n)),timestamp:new Date});}finally{this._activeAdapters.delete(e);}}}async stopAllAdapters(e={}){let t=e.timeoutMs??1e4,n=Array.from(this._activeAdapters.keys()),o=await Promise.allSettled(n.map(s=>Promise.race([this.unregisterChannelAdapter(s),new Promise((i,a)=>setTimeout(()=>a(new Error(`Adapter stop timeout: ${s}`)),t))])));for(let s=0;s<o.length;s++)o[s].status==="rejected"&&console.error(`[crewx] adapter stop error (${n[s]}): ${o[s].reason}`);}async close(){await this.stopAllAdapters({timeoutMs:1e4});let e=[...this._remoteTargets.values()];this._remoteTargets.clear(),await Promise.allSettled(e.map(async n=>{try{await(await n).close();}catch(o){console.error(`[crewx] remote target close error: ${o instanceof Error?o.message:String(o)}`);}}));let t=[...this._plugins].reverse();for(let n of t)try{await n.detach(this);}catch(o){console.error(`[crewx] plugin ${n.name} detach error: ${o instanceof Error?o.message:String(o)}`);}this._plugins.length=0;}filterAgents(e){let t=a=>a?a.split(",").map(l=>l.trim().toLowerCase()).filter(Boolean):void 0,n=t(e.role),o=t(e.team),s=t(e.provider),i=Array.from(this._agents.values());return n&&(i=i.filter(a=>a.role&&n.some(l=>ne(a.role.toLowerCase(),l)))),o&&(i=i.filter(a=>a.team&&o.some(l=>ne(a.team.toLowerCase(),l)))),s&&(i=i.filter(a=>(Array.isArray(a.provider)?a.provider:[a.provider]).some(u=>s.some(c=>ne(u.toLowerCase(),c))))),i}renderAgentPrompt(e){let t=e.startsWith("@")?e.slice(1):e,n=this._agents.get(t);if(!n)throw new ue(t,Array.from(this._agents.keys()));return n.inline?.prompt??n.inline?.system_prompt??n.description??`You are an expert ${t}.`}async renderPrompt(e,t){let o={...await this._documentLoader.buildContext(),...t?.documents??{}},s={...t,documents:o};return this._templateEngine.render(e,s)}registerLayout(e,t){this._layoutLoader.registerLayout(e,t);}async renderAgentPromptFull(e,t){let n=e.startsWith("@")?e.slice(1):e,o=this._agents.get(n);if(!o)throw new ue(n,Array.from(this._agents.keys()));let s=this._resolveLayoutSpec(o,t?.layout),i=this._extractLayoutId(s),a=this._extractLayoutProps(o,s,t?.layout),l=this._layoutLoader.load(i,a),u=o.inline?.prompt??o.inline?.system_prompt??o.description??`You are an expert ${n}.`,c=await this._documentLoader.buildContext(),d=t?.env??(typeof process<"u"?process.env:{}),p=t?.vars?.security_key??Ic(),m={...t?.vars??{},documents:c,env:d,agent:{id:o.id,name:o.name??o.id,role:o.role??"",team:o.team??"",description:o.description??""}},h=await this._templateEngine.render(u,m),f={mode:t?.session?.mode??"query",platform:t?.session?.platform??"cli",options:t?.session?.options??[]},g=o.provider,v=Array.isArray(g)?g:typeof g=="string"&&g.length>0?[g]:[],_=v.join(", ")||(typeof g=="string"?g:""),T=o.options,w=!Array.isArray(T)&&typeof T=="object"&&T!==null?T:void 0,x=Array.isArray(T)?T:void 0,S={};for(let[k,O]of Object.entries(c))S[k]={content:O.content??"",toc:O.toc,summary:O.summary,path:O.path};let C={user_input:t?.vars?.user_input??void 0,agent:{id:o.id,name:o.name??o.id,role:o.role??"",team:o.team??"",description:o.description??"",provider:_,providerList:v,model:o.inline?.model,workingDirectory:o.working_directory??o.workingDirectory??".",inline:{...o.inline??{},prompt:h},specialties:o.specialties??[],capabilities:o.capabilities??[],remote:o.remote??null,optionsByMode:w,optionsArray:x},agentMetadata:{specialties:o.specialties??[],capabilities:o.capabilities??[],description:o.description??""},documents:S,skills:t?.skills??[],session:f,env:d,vars:{security_key:p,...t?.vars??{}},props:{...a??{},...t?.messages&&t.messages.length>0?{showConversationHistory:true}:{}},platform:f.platform,mode:f.mode,messages:t?.messages??[],tools:this._tools.size>0?{list:Array.from(this._tools.values()).map(k=>({name:k.name,description:k.description,parameters:k.parameters})),json:JSON.stringify(Array.from(this._tools.values()).map(k=>({name:k.name,description:k.description,parameters:k.parameters})),null,2),count:this._tools.size}:null,metadata:{}};return this._layoutRenderer.render(l,C)}_filterToolsByMode(e){return e?e.map(t=>this._tools.get(t)).filter(t=>t!==void 0):Array.from(this._tools.values())}_resolveLayoutSpec(e,t){if(t!==void 0)return t;let n=e.inline?.layout;if(n!==void 0)return n;let o=this._config?.layouts?.default;return typeof o=="string"&&o?o:"crewx/default"}_extractLayoutId(e){if(typeof e=="string")return e;if("id"in e)return e.id;let t=`crewx/__inline_${Date.now()}`;return this._layoutLoader.registerLayout(t,e.template),t}_extractLayoutProps(e,t,n){let o=e.inline?.layout,s=o&&typeof o=="object"&&"props"in o?o.props:void 0,i=n&&typeof n=="object"&&"id"in n?n.props:void 0;if(s||i)return {...s??{},...i??{}}}_getConversationProvider(){return this._plugins.find(t=>t.name==="conversation")?.conversationProvider}async _fetchHistoryMessages(e,t,n){if(n&&n.length>0)return n;if(!e)return;let o=this._getConversationProvider();if(o)try{let s=await o.fetchHistory(e,{currentTraceId:t});return s.messages.length===0?void 0:Ut(s)}catch{return}}emitToolEvents(e,t,n,o,s,i,a){try{let l=Ft(new Date().toISOString(),o);for(let u of l)u.type==="tool_use"&&u.toolName&&this.emit("tool:observed:before",{traceId:e,timestamp:new Date,agentRef:t,agentId:s,threadId:i,sessionId:a,provider:n,tool:{name:u.toolName,rawName:u.toolName,input:u.toolInput?this.tryParseJson(u.toolInput):void 0,toolUseId:u.toolUseId}}),u.type==="tool_result"&&this.emit("tool:observed:after",{traceId:e,timestamp:new Date,agentRef:t,agentId:s,threadId:i,sessionId:a,provider:n,tool:{name:u.toolName??"unknown",rawName:u.toolName??"unknown",toolUseId:u.toolUseId,result:u.resultPreview,isError:u.isError}});}catch{}}tryParseJson(e){try{return JSON.parse(e)}catch{return e}}async query(e,t,n){let o=await this.resolveFileRemoteTarget(e);if(o)return o.target.query(o.agentRef,t,n);let s=Date.now(),i=Ce("tsk"),a=new Date,l;try{l=ot(e,Array.from(this._agents.values()));}catch(k){if(k instanceof ue){this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"query",metadata:{...n?.metadata??{}},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName});let O=Date.now()-s,I={code:"AGENT_NOT_FOUND",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"query",durationMs:O,error:I,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:e.replace(/^@/,""),provider:"",durationMs:O}}}throw k}let u=Array.isArray(l.provider)?l.provider[0]??"cli/claude":l.provider,c=n?.provider??u,d=n?.model??l.inline?.model,p;try{p=ce(c);}catch(k){this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"query",metadata:{...n?.metadata??{}},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName});let O=Date.now()-s,I={code:"PROVIDER_ERROR",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"query",durationMs:O,error:I,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}let m=await this._fetchHistoryMessages(n?.threadId,i,n?.messages),h;try{h=await this.renderAgentPromptFull(e,{session:{mode:"query",platform:n?.platform},vars:{user_input:t},messages:m});}catch{}let f,g,v,_=d,T=false,w=k=>{T||(T=true,this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"query",pid:k,model:_,provider:c,codingAgentCommand:f,renderedPrompt:h,metadata:{...n?.metadata??{},provider:c},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName}));},x=l.options,S=Array.isArray(x?.query?.tools)?x.query.tools:void 0,z=this._tools.size>0?this._filterToolsByMode(S):[],C=l.inline?.max_steps;c.startsWith("api/")&&w();try{let k=await p.query(t,{model:d,context:n?.context,systemPrompt:h??l.inline?.system_prompt??l.inline?.prompt,additionalArgs:Array.isArray(x?.query)?x.query:void 0,tools:z.length>0?z:void 0,maxSteps:C,env:{CREWX_AGENT_ID:l.id,CREWX_AGENT_ROLE:l.role??"",CREWX_AGENT_TEAM:l.team??"",CREWX_USER_ID:process.env.USER||process.env.USERNAME||"unknown",CREWX_TRACE_ID:i,CREWX_PARENT_TASK_ID:i,CREWX_TASK_ID:i,CREWX_CALLER_AGENT_ID:process.env.CREWX_AGENT_ID??"",CREWX_THREAD_ID:n?.threadId??"",CREWX_PROVIDER:c,CREWX_SESSION_ID:"",CREWX_TASK_LOG_PATH:this.computeTaskLogPath(i,a)},onPid:I=>w(I),onOutput:(I,J)=>{this.emit("task:output",{traceId:i,timestamp:new Date,agentRef:e,output:I,level:J}),J==="stdout"&&this.emitToolEvents(i,e,c,I,l.id,n?.threadId??"","");},onCommand:I=>{f=I;},onUsage:I=>{g=I;},onExitCode:I=>{v=I;},onModel:I=>{_||(_=I);}});w();let O=Date.now()-s;return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"query",result:k,durationMs:O,exitCode:v,inputTokens:g?.inputTokens,outputTokens:g?.outputTokens,cachedInputTokens:g?.cachedInputTokens,costUsd:g?.costUsd,model:_,metadata:{...n?.metadata??{},...n?.threadId?{threadId:n.threadId}:{}}}),{ok:!0,data:k,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}catch(k){if(k instanceof exports.ClientToolCallRequiredError){let J=Ce("thd");return this._pendingThreads.set(J,{agentRef:l.id,providerStr:c,continuationState:k.continuationState,toolCall:k.toolCall,traceId:i,startMs:s,model:d}),{ok:true,status:"requires_action",data:"",toolCall:k.toolCall,threadId:J,meta:{agentId:l.id,provider:c,model:d,durationMs:Date.now()-s}}}w();let O=Date.now()-s,I={code:"QUERY_FAILED",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"query",durationMs:O,error:I,exitCode:v,inputTokens:g?.inputTokens,outputTokens:g?.outputTokens,cachedInputTokens:g?.cachedInputTokens,costUsd:g?.costUsd,model:_,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}}async continueQuery(e,t){let n=this._pendingThreads.get(e);if(!n)return {ok:false,data:"",error:{code:"THREAD_NOT_FOUND",message:`No pending thread: ${e}`},meta:{agentId:"",provider:"",durationMs:0}};this._pendingThreads.delete(e);let o=ce(n.providerStr);if(!o.continueWithToolResults)return {ok:false,data:"",error:{code:"UNSUPPORTED",message:"Provider does not support client tool continuation"},meta:{agentId:n.agentRef,provider:n.providerStr,durationMs:0}};let s=t.map(i=>({...i,toolName:n.toolCall.toolCallId===i.toolCallId?n.toolCall.toolName:i.toolCallId}));try{let i=await o.continueWithToolResults(n.continuationState,s),a=Date.now()-n.startMs;return this.emit("task:end",{traceId:n.traceId,timestamp:new Date,agentRef:n.agentRef,mode:"query",result:i,durationMs:a}),{ok:!0,status:"complete",data:i,meta:{agentId:n.agentRef,provider:n.providerStr,model:n.model,durationMs:a}}}catch(i){if(i instanceof exports.ClientToolCallRequiredError)return this._pendingThreads.set(e,{...n,continuationState:i.continuationState,toolCall:i.toolCall}),{ok:true,status:"requires_action",data:"",toolCall:i.toolCall,threadId:e,meta:{agentId:n.agentRef,provider:n.providerStr,model:n.model,durationMs:Date.now()-n.startMs}};let a=Date.now()-n.startMs;return {ok:false,data:"",error:{code:"CONTINUE_FAILED",message:i.message},meta:{agentId:n.agentRef,provider:n.providerStr,model:n.model,durationMs:a}}}}async execute(e,t,n){let o=await this.resolveFileRemoteTarget(e);if(o)return o.target.execute(o.agentRef,t,n);let s=Date.now(),i=Ce("tsk"),a=new Date,l;try{l=ot(e,Array.from(this._agents.values()));}catch(k){if(k instanceof ue){this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"execute",metadata:{...n?.metadata??{}},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName});let O=Date.now()-s,I={code:"AGENT_NOT_FOUND",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"execute",durationMs:O,error:I,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:e.replace(/^@/,""),provider:"",durationMs:O}}}throw k}let u=Array.isArray(l.provider)?l.provider[0]??"cli/claude":l.provider,c=n?.provider??u,d=n?.model??l.inline?.model,p;try{p=ce(c);}catch(k){this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"execute",metadata:{...n?.metadata??{}},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName});let O=Date.now()-s,I={code:"PROVIDER_ERROR",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"execute",durationMs:O,error:I,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}let m=await this._fetchHistoryMessages(n?.threadId,i,n?.messages),h;try{h=await this.renderAgentPromptFull(e,{session:{mode:"execute",platform:n?.platform},vars:{user_input:t},messages:m});}catch{}let f,g,v,_=d,T=false,w=k=>{T||(T=true,this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"execute",pid:k,model:_,provider:c,codingAgentCommand:f,renderedPrompt:h,metadata:{...n?.metadata??{},provider:c},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName}));},x=l.options,S=Array.isArray(x?.execute?.tools)?x.execute.tools:void 0,z=this._tools.size>0?this._filterToolsByMode(S):[],C=l.inline?.max_steps;c.startsWith("api/")&&w();try{let k=await p.execute(t,{model:d,context:n?.context,systemPrompt:h??l.inline?.system_prompt??l.inline?.prompt,additionalArgs:Array.isArray(x?.execute)?x.execute:void 0,tools:z.length>0?z:void 0,maxSteps:C,env:{CREWX_AGENT_ID:l.id,CREWX_AGENT_ROLE:l.role??"",CREWX_AGENT_TEAM:l.team??"",CREWX_USER_ID:process.env.USER||process.env.USERNAME||"unknown",CREWX_TRACE_ID:i,CREWX_PARENT_TASK_ID:i,CREWX_TASK_ID:i,CREWX_CALLER_AGENT_ID:process.env.CREWX_AGENT_ID??"",CREWX_THREAD_ID:n?.threadId??"",CREWX_PROVIDER:c,CREWX_SESSION_ID:"",CREWX_TASK_LOG_PATH:this.computeTaskLogPath(i,a)},onPid:I=>w(I),onOutput:(I,J)=>{this.emit("task:output",{traceId:i,timestamp:new Date,agentRef:e,output:I,level:J}),J==="stdout"&&this.emitToolEvents(i,e,c,I,l.id,n?.threadId??"","");},onCommand:I=>{f=I;},onUsage:I=>{g=I;},onExitCode:I=>{v=I;},onModel:I=>{_||(_=I);}});w();let O=Date.now()-s;return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"execute",result:k,durationMs:O,exitCode:v,inputTokens:g?.inputTokens,outputTokens:g?.outputTokens,cachedInputTokens:g?.cachedInputTokens,costUsd:g?.costUsd,model:_,metadata:{...n?.metadata??{},...n?.threadId?{threadId:n.threadId}:{}}}),{ok:!0,data:k,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}catch(k){w();let O=Date.now()-s,I={code:"EXECUTE_FAILED",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"execute",durationMs:O,error:I,exitCode:v,inputTokens:g?.inputTokens,outputTokens:g?.outputTokens,cachedInputTokens:g?.cachedInputTokens,costUsd:g?.costUsd,model:_,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}}};function Zo(r,e){if(!r.some(i=>(Array.isArray(i.provider)?i.provider:[i.provider]).some(l=>l.startsWith("remote/"))))return;let n=e.providers;if(!Array.isArray(n))return;let{createRemoteProviderFactory:o}=(yr(),Er(Ko)),s=new Map;for(let i of n)i.type==="remote"&&typeof i.id=="string"&&s.set(i.id,i);s.size>0&&Ae("remote",o(s,ce));}function es(r,e){if(!r.some(i=>(Array.isArray(i.provider)?i.provider:[i.provider]).some(l=>l.startsWith("plugin/"))))return;let n=e.providers;if(!Array.isArray(n))return;let{createPluginProviderFactory:o}=(vr(),Er(Qo)),s=new Map;for(let i of n)i.type==="plugin"&&typeof i.id=="string"&&s.set(i.id,i);s.size>0&&Ae("plugin",o(s));}y();var Oc="crewx:fs:",br=class{prefix;store;constructor(e){this.prefix=e?.prefix??Oc,this.store=e?.storage??new Map;}async readFile(e){let t=this.toKey(e),n=this.store.get(t);if(n===void 0)throw new Error(`BrowserFsAdapter: file not found: ${e}`);return n}async exists(e){return this.store.has(this.toKey(e))}resolvePath(...e){let t=e.map(i=>i.replace(/\\/g,"/")).join("/").replace(/\/+/g,"/"),n=t.split("/"),o=[];for(let i of n)i==="."||i===""||(i===".."?o.pop():o.push(i));let s=o.join("/");return t.startsWith("/")?`/${s}`:s}isAbsolute(e){return e.startsWith("/")}setItem(e,t){this.store.set(this.toKey(e),t);}removeItem(e){this.store.delete(this.toKey(e));}keys(){return Array.from(this.store.keys()).filter(e=>e.startsWith(this.prefix)).map(e=>e.slice(this.prefix.length))}toKey(e){return `${this.prefix}${e.replace(/\\/g,"/")}`}};xe();gr();mr();y();var _r=0;function zc(r){let e=Array.from(r.agents.keys());return {name:"delegate_to_agent",description:`Delegate a task to another agent. Available agents: ${e.join(", ")}`,parameters:{type:"object",properties:{agent:{type:"string",description:`Agent ID to delegate to. One of: ${e.join(", ")}`},message:{type:"string",description:"Task description for the target agent"},mode:{type:"string",description:'Execution mode: "query" for questions, "execute" for actions. Default: query'}},required:["agent","message"]},execute:async t=>{if(_r>=3)return "Error: Maximum delegation depth (3) reached. Cannot delegate further.";let n=t.agent,o=t.message,s=t.mode??"query";if(!e.includes(n))return `Error: Unknown agent "${n}". Available: ${e.join(", ")}`;_r++;try{if(s==="execute"){let a=await r.execute(n,o);return a.ok?a.data:`Error: ${a.error?.message??"Unknown error"}`}let i=await r.query(n,o);return i.ok?i.data:`Error: ${i.error?.message??"Unknown error"}`}finally{_r--;}}}}y();var ts=typeof process<"u"?process.env:{};function Mc(){return ts.CREWX_CLI||"npx crewx"}function jc(){return ts.CREWX_WORKSPACE||(typeof process<"u"?process.cwd():"/")}y();var Nc=/^[a-zA-Z0-9._-]+$/,xr=class{constructor(e){this.storage=e;}storage;listBoxes(e){this.validateId(e);let n=this.storage.listBoxes(e).map(o=>this.toBoxResponse(o));return {boxes:n,total:n.length}}getBox(e,t){this.validateId(e),this.validateId(t);let n=this.storage.findBox(e,t);return n?this.toBoxResponse(n):null}createBox(e,t){this.validateId(e);let n=this.generateBoxId(),o=new Date().toISOString(),s=this.storage.insertBox(e,{id:n,seq:t.seq,firstTaskId:t.firstTaskId,midTaskId:t.midTaskId,lastTaskId:t.lastTaskId,taskCount:t.taskCount,summary:t.summary??null,sourceTokens:t.sourceTokens,summaryTokens:t.summaryTokens??null,createdAt:o});return this.toBoxResponse(s)}toBoxResponse(e){return {id:e.id,threadId:e.thread_id,seq:e.seq,firstTaskId:e.first_task_id,lastTaskId:e.last_task_id,taskCount:e.task_count,sourceTokens:e.source_tokens,summaryTokens:e.summary_tokens,summary:e.summary,previewFirst:this.storage.getTaskPreview(e.first_task_id,200),previewMid:this.storage.getTaskPreview(e.mid_task_id,200),previewLast:this.storage.getTaskPreview(e.last_task_id,200),createdAt:e.created_at}}validateId(e){if(!Nc.test(e))throw new Error(`Invalid ID format: ${e}`)}generateBoxId(){return Ce("box")}};y();function $c(r,e,t,n,o){let{maxTokens:s,hotzoneRatio:i,warmzoneRatio:a}=n,l=s*i,u=s*a,c=l+u,d=e.getThreadMessages(r),p=[],m=0,h=false,f=[];for(let _=0;_<d.length;_+=2){let T=d[_],w=d[_+1],x=T?.content||"",S=w?.content||"",z=o.countTokens(x+S),C=[];T&&C.push(T),w&&C.push(w),f.push({messages:C,tokens:z});}for(let _=f.length-1;_>=0;_--){let T=f[_];if(m+T.tokens>l){h=true;break}m+=T.tokens,p.unshift(...T.messages);}let g=[],v=0;if(h&&u>0)try{let{boxes:_}=t.listBoxes(r);for(let T=_.length-1;T>=0;T--){let w=_[T],x=w.summaryTokens??w.sourceTokens;if(v+x>u)break;v+=x,g.unshift({boxId:w.id,seq:w.seq,taskCount:w.taskCount,sourceTokens:w.sourceTokens,summary:w.summary,previewFirst:w.previewFirst,previewMid:w.previewMid,previewLast:w.previewLast,createdAt:w.createdAt});}}catch(_){if(_ instanceof Error&&!/not found/i.test(_.message))throw _}return {hot:p,warm:g,hotTokens:m,warmTokens:v,hotOverflow:h,totalBudget:c,config:{maxTokens:s,hotzoneRatio:i,warmzoneRatio:a}}}Pt();y();var _t=class extends Error{constructor(t,n){super(`Task ${t} timed out after ${n}ms`);this.taskId=t;this.timeoutMs=n;this.name="ParallelRunnerTimeoutError";}taskId;timeoutMs},rt=class{constructor(e={}){this.defaults=e;}defaults;metrics={totalTasks:0,startedTasks:0,completedTasks:0,successCount:0,failureCount:0,totalDurationMs:0,averageDurationMs:0,throughput:0};async run(e,t={}){if(!Array.isArray(e))throw new TypeError("ParallelRunner.run expects an array of tasks");if(e.length===0)return this.metrics={totalTasks:0,startedTasks:0,completedTasks:0,successCount:0,failureCount:0,totalDurationMs:0,averageDurationMs:0,throughput:0},[];let n=this.mergeOptions(t),o=Math.max(1,n.maxConcurrency??5),s=n.timeoutMs,i=n.failFast??false,a=n.callbacks,l=n.evaluateTaskSuccess??(()=>true),u=[],c=0,d=0,p=0,m=false,h=0,f=perf_hooks.performance.now(),g=async C=>{a?.onTaskStart&&await a.onTaskStart(C),p+=1;let k=new AbortController,O={signal:k.signal},I,J;typeof s=="number"&&Number.isFinite(s)&&s>0&&(J=new Promise((ee,re)=>{I=setTimeout(()=>{let q=new _t(C.id,s);k.abort(q),re(q);},s);}));let G=perf_hooks.performance.now(),L=C.run(O),we=J?Promise.race([L,J]):L;try{let ee=await we,re=perf_hooks.performance.now(),q=re-G,X=l(ee,C),W={taskId:C.id,success:X,value:ee,durationMs:q,startedAt:G,finishedAt:re,metadata:C.metadata,aborted:!1};u.push(W),X?c+=1:d+=1,a?.onTaskComplete&&await a.onTaskComplete(W),i&&!X&&(m=!0);}catch(ee){let re=perf_hooks.performance.now(),q=re-G,X=ee instanceof Error?ee:new Error(String(ee)),W={taskId:C.id,success:false,error:X,durationMs:q,startedAt:G,finishedAt:re,metadata:C.metadata,aborted:k.signal.aborted};u.push(W),d+=1,a?.onError&&await a.onError(C,X,q),i&&(m=true);}finally{I&&clearTimeout(I),J&&L.catch(()=>{});}},v=async()=>{for(;!m;){let C=h;if(C>=e.length)break;h+=1;let k=e[C];if(!k||(await g(k),m))break}},_=Math.min(o,e.length),T=[];for(let C=0;C<_;C++)T.push(v());await Promise.all(T);let x=perf_hooks.performance.now()-f,S=u.length?u.reduce((C,k)=>C+k.durationMs,0)/u.length:0,z=x>0?u.length/(x/1e3):u.length;return this.metrics={totalTasks:e.length,startedTasks:p,completedTasks:u.length,successCount:c,failureCount:d,totalDurationMs:x,averageDurationMs:S,throughput:z},u}getMetrics(){return this.metrics}mergeOptions(e){return {maxConcurrency:e.maxConcurrency??this.defaults.maxConcurrency,timeoutMs:e.timeoutMs??this.defaults.timeoutMs,failFast:e.failFast??this.defaults.failFast,evaluateTaskSuccess:e.evaluateTaskSuccess??this.defaults.evaluateTaskSuccess,callbacks:this.mergeCallbacks(this.defaults.callbacks,e.callbacks)}}mergeCallbacks(e,t){if(!(!e&&!t))return {onTaskStart:async n=>{e?.onTaskStart&&await e.onTaskStart(n),t?.onTaskStart&&await t.onTaskStart(n);},onTaskComplete:async n=>{e?.onTaskComplete&&await e.onTaskComplete(n),t?.onTaskComplete&&await t.onTaskComplete(n);},onError:async(n,o,s)=>{e?.onError&&await e.onError(n,o,s),t?.onError&&await t.onError(n,o,s);}}}};y();y();var nt=class{async query(e){throw new Error("AgentRuntime.query is not implemented. Provide a subclass or mock AgentRuntime.prototype.query.")}async execute(e){throw new Error("AgentRuntime.execute is not implemented. Provide a subclass or mock AgentRuntime.prototype.execute.")}};var rs=3,ns=3e4,os=500,Dc=r=>{if(typeof r!="number"||Number.isNaN(r)||!Number.isFinite(r))return rs;let e=Math.floor(r);return e>0?e:rs},Lc=r=>r===void 0||typeof r!="number"||Number.isNaN(r)||r<=0?ns:r,Hc=r=>{if(!r)return {maxRetries:0,retryDelay:os};let e=Number.isInteger(r.maxRetries)&&r.maxRetries>=0?r.maxRetries:0,t=typeof r.retryDelay=="number"&&r.retryDelay>=0?r.retryDelay:os;return {maxRetries:e,retryDelay:t}},kr=r=>{let e=r.reason;return e instanceof Error?e:typeof e=="string"?new Error(e):new Error("Parallel operation aborted")},qc=(r,e)=>r<=0?Promise.resolve():new Promise((t,n)=>{let o=setTimeout(()=>{e.removeEventListener("abort",s),t();},r),s=()=>{clearTimeout(o),n(kr(e));};if(e.aborted){s();return}e.addEventListener("abort",s,{once:true});}),Fc=async(r,e,t)=>{let n,o;for(let s=0;s<=e.maxRetries;s++){if(t.aborted)throw kr(t);try{let i=await r();if(n=i,i.success||s===e.maxRetries)return i}catch(i){if(o=i,t.aborted)throw kr(t);if(s===e.maxRetries)throw i instanceof Error?i:new Error(String(i))}s<e.maxRetries&&await qc(e.retryDelay,t);}if(n)return n;throw o?o instanceof Error?o:new Error(String(o)):new Error("Parallel helper encountered an unexpected state")},ss=(r,e,t)=>{e.completed+=1,t?e.success+=1:e.failure+=1;try{r.onProgress?.(e.completed,e.total);}catch(n){process.env.NODE_ENV!=="production"&&console.warn("Parallel helper onProgress callback threw an error:",n);}},Uc=r=>r.map(t=>({metadata:t.metadata,taskResult:t})).slice().sort((t,n)=>t.metadata.index-n.metadata.index).map(({metadata:t,taskResult:n})=>{if(n.value){let s=n.value;return {...s,agentId:s.agentId??t.request.agentId,metadata:{...s.metadata,requestIndex:t.index,mode:t.mode}}}let o=n.error??new Error("Unknown error");return {agentId:t.request.agentId,content:o.message,success:false,metadata:{error:o.message,aborted:n.aborted??false,requestIndex:t.index,mode:t.mode}}}),Bc=r=>r.filter(e=>!e.success).map(e=>{let t=e.metadata;if(e.error instanceof Error)return {index:t.index,error:e.error};if(e.value&&!e.value.success){let n=String(e.value.metadata?.error??e.value.content??"Agent returned unsuccessful result");return {index:t.index,error:new Error(n)}}return {index:t.index,error:new Error("Unknown failure")}}),Jc=(r,e)=>({onTaskComplete:async t=>{ss(e,r,t.success);},onError:async()=>{ss(e,r,false);}}),is=async(r,e,t={})=>{if(!Array.isArray(r))throw new TypeError("Parallel helpers expect an array of requests");if(r.length===0){let g={total:0,completed:0,successCount:0,failureCount:0,results:[],errors:[],metrics:{totalTasks:0,startedTasks:0,completedTasks:0,successCount:0,failureCount:0,totalDurationMs:0,averageDurationMs:0,throughput:0}};return t.onComplete?.(g),[]}let n=Dc(t.concurrency),o=Lc(t.timeout),s=Hc(t.retryPolicy),i=new rt,a=new nt,l=r.map((f,g)=>({id:`${e}:${f.agentId??"anonymous"}:${g}`,metadata:{index:g,mode:e,request:f},run:v=>Fc(()=>e==="query"?a.query(f):a.execute(f),s,v.signal)})),u={completed:0,success:0,failure:0,total:r.length},c=await i.run(l,{maxConcurrency:n,timeoutMs:o,evaluateTaskSuccess:f=>f.success,callbacks:Jc(u,t)}),d=Uc(c),p=Bc(c),m=i.getMetrics(),h={total:r.length,completed:r.length,successCount:d.filter(f=>f.success).length,failureCount:d.filter(f=>!f.success).length,results:d,errors:p,metrics:m};return t.onComplete?.(h),d},Wc=(r,e)=>is(r,"query",e),Vc=(r,e)=>is(r,"execute",e);vr();yr();hr();fr();y();y();var xt=class{capabilities={required:[]}};y();y();y();var as=2e3;function ls(r){let e=r.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f\u2028\u2029]/g,"");return e.length<=as?e:e.slice(0,as-11)+" [redacted]"}var td=10*1024*1024,rd={b:1,kb:1024,mb:1024*1024,gb:1024*1024*1024};function Rr(r,e){return r===void 0?true:Array.isArray(r)?r.includes(e):r===e}function nd(r,e){return r===void 0?true:Array.isArray(r)?r.some(t=>e.includes(t)):e.includes(r)}function cs(r){if(typeof r=="number")return r;let e=r.match(/^(\d+(?:\.\d+)?)\s*(b|kb|mb|gb)?$/i);if(!e)return 0;let t=parseFloat(e[1]),n=(e[2]??"b").toLowerCase();return Math.floor(t*(rd[n]??1))}function ds(r){return typeof r=="string"}function ps(r){try{let e=fs$1.statSync(r);return e.size>td?(process.stderr.write(`[YamlHookPlugin] File too large for line count: ${r} (${e.size} bytes)
73
+ WHERE id = ?`).run(t,s,e);}close(){this.db.close();}rowsToMessages(e){let t=[];for(let n of e){n.prompt&&t.push({id:`${n.id}-user`,text:n.prompt,isAssistant:false,timestamp:new Date(n.started_at).getTime()});let o=Si(n.result);o&&t.push({id:`${n.id}-assistant`,text:o,isAssistant:true,timestamp:new Date(n.started_at).getTime()});}return t}};var qe=class extends Le{name="conversation";_provider;unsubStart=null;unsubEnd=null;constructor(e){super(),this._provider=new He(e?.dbPath);}get conversationProvider(){return this._provider}attach(e){this.unsubStart=e.on("task:start",async t=>{if(!t.threadId)return;let n=t.platform??"cli";try{await this._provider.ensureThread(t.threadId,n,t.workspaceId),await this._provider.saveUserMessage(t.threadId,t.message??"");}catch{}}),this.unsubEnd=e.on("task:end",async t=>{if(!t.result)return;let n=t.metadata?.threadId;if(!n)return;let o=t.agentRef?.replace(/^@/,"")??"";try{await this._provider.saveAssistantMessage(n,t.result,o);}catch{}});}detach(e){this.unsubStart?.(),this.unsubStart=null,this.unsubEnd?.(),this.unsubEnd=null,this._provider.close?.();}};v();function Zr(r){let e=Fr__namespace.resolve(r);return process.platform==="win32"&&(e=e.replace(/\\/g,"/"),e=e.replace(/^([A-Z]):/,(t,n)=>`${n.toLowerCase()}:`)),e.length>1&&!/^[a-zA-Z]:\/$/.test(e)&&(e=e.replace(/\/+$/,"")),e}function Vt(r){let e=Zr(r);return crypto$1.createHash("sha256").update(e).digest("hex")}function Mc(r){return r?r.settings?.template?.exec:void 0}function jc(){try{let r=new Uint8Array(8);return globalThis.crypto.getRandomValues(r),Array.from(r,e=>e.toString(16).padStart(2,"0")).join("")}catch{let{randomBytes:r}=U("crypto");return r(8).toString("hex")}}var _r=class r extends De{_agents;_templateEngine;_documentLoader;_layoutLoader;_layoutRenderer;_config;_projectRoot;_workspaceId;_workspaceName;_plugins=[];_tools=new Map;_activeAdapters=new Map;_pendingThreads=new Map;_remoteFactory;_remoteTargets=new Map;constructor(e,t={},n,o,s){super(),this._agents=new Map(e.map(l=>[l.id,l])),this._config=n,this._projectRoot=s??(typeof process<"u"?process.cwd():"/");let i=s??(typeof process<"u"?process.env.CREWX_WORKSPACE??process.cwd():"/");this._workspaceId=Vt(i),this._workspaceName=Fr.basename(i);let a=Mc(n);this._templateEngine=new Me({execPolicy:t.execPolicy??a}),this._documentLoader=o??new Re,this._layoutLoader=new je({templatesPath:Ae()}),this._layoutRenderer=new $e,this._remoteFactory=t.remoteFactory;}async resolveFileRemoteTarget(e){let t=this.getAgent(e),n=Array.isArray(t?.provider)?t?.provider[0]:t?.provider;if(!n?.startsWith("remote/"))return null;let o=n.slice(7),s=this.getRemoteProviderConfig(o);if(!s?.location?.startsWith("file://"))return null;let i=Fr.resolve(s.location.replace("file://","")),a=s.external_agent_id??e.replace(/^@/,""),l=this._remoteTargets.get(i);l||(l=(this._remoteFactory??(m=>r.loadYaml(m)))(i),this._remoteTargets.set(i,l),l.catch(()=>this._remoteTargets.delete(i)));let u=await l,c=u.getAgent("@"+a),d=Array.isArray(c?.provider)?c?.provider[0]:c?.provider;if(d?.startsWith("remote/"))throw new Error(`Chained remotes not allowed: "${o}" \u2192 "${d}"`);return {target:u,agentRef:"@"+a}}static async loadBuiltInConfig(e){let{yamlPath:t,dir:n}=Pt(),o;try{o=fs$1.readFileSync(t,"utf-8");}catch(i){throw new Error(`[@crewx/sdk] Cannot read built-in config: ${t}
74
+ ${i.message}`)}let s=st(o);if(s.documents&&typeof s.documents=="object"){let i={};for(let[a,l]of Object.entries(s.documents))if(l&&typeof l=="object"){let u=l;typeof u.path=="string"&&!Fr.isAbsolute(u.path)?i[a]={...u,path:Fr.resolve(n,u.path)}:i[a]=u;}else i[a]=l;return {...s,documents:i}}return s}static mergeCrewxConfig(e,t){let n=new Map;for(let _ of e.agents??[])n.set(_.id,_);for(let _ of t.agents??[])n.has(_.id)&&console.warn(`[agent-loader] User agent "${_.id}" overrides built-in`),n.set(_.id,_);let o=Array.from(n.values()),s={...e.layouts??{},...t.layouts??{}},i={...e.documents??{},...t.documents??{}},a=e,l=t,u=ns(a.vars,l.vars),c=ns(a.settings,l.settings),d;e.skills&&t.skills&&typeof e.skills=="object"&&typeof t.skills=="object"&&!Array.isArray(e.skills)&&!Array.isArray(t.skills)?d={...e.skills,...t.skills}:d=t.skills??e.skills;let p=[...e.hooks??[],...t.hooks??[]],m=Nc(a.providers,l.providers),h={...e},f={...t};for(let _ of ["agents","layouts","documents","skills","hooks","vars","settings","providers"])delete h[_],delete f[_];let y={...{...h,...f},agents:o,layouts:s,documents:i,skills:d};return p.length>0&&(y.hooks=p),u!==void 0&&(y.vars=u),c!==void 0&&(y.settings=c),m!==void 0&&(y.providers=m),y}static async loadYaml(e,t,n){let o=t?.includeBuiltIns!==false,s,i;if(o){let c=await r.loadBuiltInConfig(n);if(e!==void 0){let d=it(e);s=r.mergeCrewxConfig(c,d),i=Fr.dirname(e);}else s=c,i=process.cwd();}else {if(e===void 0)throw new Error("[@crewx/sdk] loadYaml: path is required when includeBuiltIns is false");s=it(e),i=Fr.dirname(e);}let a=new Re(n);await a.load(s.documents,i);let l=s.agents??[];await os(l,s,t);let u=new r(l,t??{},s,a,i);return await u.use(new qe),u}static async fromConfig(e,t,n,o){let s=t?.includeBuiltIns===true,i=e;if(s){let c=await r.loadBuiltInConfig(o);i=r.mergeCrewxConfig(c,e);}let a=new Re(o);await a.load(i.documents,n??(typeof process<"u"?process.cwd():"/"));let l=i.agents??[];await os(l,i,t);let u=new r(l,t??{},i,a,n);return await u.use(new qe),u}get agents(){return this._agents}get config(){return this._config}get plugins(){return this._plugins}get tools(){return this._tools}get workspaceId(){return this._workspaceId}get workspaceName(){return this._workspaceName}getAgent(e){let t=e.startsWith("@")?e.slice(1):e;return this._agents.get(t)}getRemoteProviderConfig(e){let t=this._config?.providers;return Array.isArray(t)?t.find(o=>o.type==="remote"&&o.id===e):void 0}computeTaskLogPath(e,t){let n=Dt(t);return Fr.join(this._projectRoot,".crewx","logs",`${n}_${e}.log`)}registerTool(e,t){this._tools.set(e,{name:e,...t});}async use(e){this._plugins.includes(e)||(await e.attach(this),this._plugins.push(e));}handler(e){return Wt(this,e)}async registerChannelAdapter(e){let{adapter:t,instanceId:n,config:o}=e;if(this._activeAdapters.has(n))throw new Error(`Adapter instance already registered: ${n}`);let s=new Set(t.manifest.capabilities),i=e.store??Lt(n),a=e.defaultMode??"query",l=t.manifest.platform,u=e.agentRunner??{run:async(m,h,f)=>{let y=await(a==="execute"?this.execute.bind(this):this.query.bind(this))(`@${m}`,h,{threadId:f?.threadId,platform:l});return {output:y.ok?y.data:y.error?.message??""}}},c=e.onInbound??(async m=>{let h=m.routingHints?.agentId??e.defaultAgent;if(!h)return {accepted:false,reason:"no_agent"};let{output:f}=await u.run(h,m.text,{threadId:m.threadId});return {accepted:true,output:f}}),d=qt({instanceId:n,config:o,capabilities:s,db:i,agentRunner:u,onInbound:c}),p={adapter:t,ctx:d,state:"starting"};this._activeAdapters.set(n,p),this.emit("adapter:lifecycle",{adapterId:t.manifest.id,instanceId:n,state:"starting",timestamp:new Date});try{await t.start(d),p.state="started",this.emit("adapter:lifecycle",{adapterId:t.manifest.id,instanceId:n,state:"started",timestamp:new Date});}catch(m){throw p.state="failed",this.emit("adapter:lifecycle",{adapterId:t.manifest.id,instanceId:n,state:"failed",error:m instanceof Error?m:new Error(String(m)),timestamp:new Date}),this._activeAdapters.delete(n),m}}async unregisterChannelAdapter(e){let t=this._activeAdapters.get(e);if(t){t.state="stopping",this.emit("adapter:lifecycle",{adapterId:t.adapter.manifest.id,instanceId:e,state:"stopping",timestamp:new Date});try{await t.adapter.stop(t.ctx),t.state="stopped",this.emit("adapter:lifecycle",{adapterId:t.adapter.manifest.id,instanceId:e,state:"stopped",timestamp:new Date});}catch(n){t.state="failed",this.emit("adapter:lifecycle",{adapterId:t.adapter.manifest.id,instanceId:e,state:"failed",error:n instanceof Error?n:new Error(String(n)),timestamp:new Date});}finally{this._activeAdapters.delete(e);}}}async stopAllAdapters(e={}){let t=e.timeoutMs??1e4,n=Array.from(this._activeAdapters.keys()),o=await Promise.allSettled(n.map(s=>Promise.race([this.unregisterChannelAdapter(s),new Promise((i,a)=>setTimeout(()=>a(new Error(`Adapter stop timeout: ${s}`)),t))])));for(let s=0;s<o.length;s++)o[s].status==="rejected"&&console.error(`[crewx] adapter stop error (${n[s]}): ${o[s].reason}`);}async close(){await this.stopAllAdapters({timeoutMs:1e4});let e=[...this._remoteTargets.values()];this._remoteTargets.clear(),await Promise.allSettled(e.map(async n=>{try{await(await n).close();}catch(o){console.error(`[crewx] remote target close error: ${o instanceof Error?o.message:String(o)}`);}}));let t=[...this._plugins].reverse();for(let n of t)try{await n.detach(this);}catch(o){console.error(`[crewx] plugin ${n.name} detach error: ${o instanceof Error?o.message:String(o)}`);}this._plugins.length=0;}filterAgents(e){let t=a=>a?a.split(",").map(l=>l.trim().toLowerCase()).filter(Boolean):void 0,n=t(e.role),o=t(e.team),s=t(e.provider),i=Array.from(this._agents.values());return n&&(i=i.filter(a=>a.role&&n.some(l=>ne(a.role.toLowerCase(),l)))),o&&(i=i.filter(a=>a.team&&o.some(l=>ne(a.team.toLowerCase(),l)))),s&&(i=i.filter(a=>(Array.isArray(a.provider)?a.provider:[a.provider]).some(u=>s.some(c=>ne(u.toLowerCase(),c))))),i}renderAgentPrompt(e){let t=e.startsWith("@")?e.slice(1):e,n=this._agents.get(t);if(!n)throw new ce(t,Array.from(this._agents.keys()));return n.inline?.prompt??n.inline?.system_prompt??n.description??`You are an expert ${t}.`}async renderPrompt(e,t){let o={...await this._documentLoader.buildContext(),...t?.documents??{}},s={...t,documents:o};return this._templateEngine.render(e,s)}registerLayout(e,t){this._layoutLoader.registerLayout(e,t);}async renderAgentPromptFull(e,t){let n=e.startsWith("@")?e.slice(1):e,o=this._agents.get(n);if(!o)throw new ce(n,Array.from(this._agents.keys()));let s=this._resolveLayoutSpec(o,t?.layout),i=this._extractLayoutId(s),a=this._extractLayoutProps(o,s,t?.layout),l=this._layoutLoader.load(i,a),u=o.inline?.prompt??o.inline?.system_prompt??o.description??`You are an expert ${n}.`,c=await this._documentLoader.buildContext(),d=t?.env??(typeof process<"u"?process.env:{}),p=t?.vars?.security_key??jc(),m={...t?.vars??{},documents:c,env:d,agent:{id:o.id,name:o.name??o.id,role:o.role??"",team:o.team??"",description:o.description??""}},h=await this._templateEngine.render(u,m),f={mode:t?.session?.mode??"query",platform:t?.session?.platform??"cli",options:t?.session?.options??[]},g=o.provider,y=Array.isArray(g)?g:typeof g=="string"&&g.length>0?[g]:[],_=y.join(", ")||(typeof g=="string"?g:""),T=o.options,w=!Array.isArray(T)&&typeof T=="object"&&T!==null?T:void 0,x=Array.isArray(T)?T:void 0,S={};for(let[k,O]of Object.entries(c))S[k]={content:O.content??"",toc:O.toc,summary:O.summary,path:O.path};let C={user_input:t?.vars?.user_input??void 0,agent:{id:o.id,name:o.name??o.id,role:o.role??"",team:o.team??"",description:o.description??"",provider:_,providerList:y,model:o.inline?.model,workingDirectory:o.working_directory??o.workingDirectory??".",inline:{...o.inline??{},prompt:h},specialties:o.specialties??[],capabilities:o.capabilities??[],remote:o.remote??null,optionsByMode:w,optionsArray:x},agentMetadata:{specialties:o.specialties??[],capabilities:o.capabilities??[],description:o.description??""},documents:S,skills:t?.skills??[],session:f,env:d,vars:{security_key:p,...t?.vars??{}},props:{...a??{},...t?.messages&&t.messages.length>0?{showConversationHistory:true}:{}},platform:f.platform,mode:f.mode,messages:t?.messages??[],tools:this._tools.size>0?{list:Array.from(this._tools.values()).map(k=>({name:k.name,description:k.description,parameters:k.parameters})),json:JSON.stringify(Array.from(this._tools.values()).map(k=>({name:k.name,description:k.description,parameters:k.parameters})),null,2),count:this._tools.size}:null,metadata:{}};return this._layoutRenderer.render(l,C)}_filterToolsByMode(e){return e?e.map(t=>this._tools.get(t)).filter(t=>t!==void 0):Array.from(this._tools.values())}_resolveLayoutSpec(e,t){if(t!==void 0)return t;let n=e.inline?.layout;if(n!==void 0)return n;let o=this._config?.layouts?.default;return typeof o=="string"&&o?o:"crewx/default"}_extractLayoutId(e){if(typeof e=="string")return e;if("id"in e)return e.id;let t=`crewx/__inline_${Date.now()}`;return this._layoutLoader.registerLayout(t,e.template),t}_extractLayoutProps(e,t,n){let o=e.inline?.layout,s=o&&typeof o=="object"&&"props"in o?o.props:void 0,i=n&&typeof n=="object"&&"id"in n?n.props:void 0;if(s||i)return {...s??{},...i??{}}}_getConversationProvider(){return this._plugins.find(t=>t.name==="conversation")?.conversationProvider}async _fetchHistoryMessages(e,t,n){if(n&&n.length>0)return n;if(!e)return;let o=this._getConversationProvider();if(o)try{let s=await o.fetchHistory(e,{currentTraceId:t});return s.messages.length===0?void 0:Jt(s)}catch{return}}emitToolEvents(e,t,n,o,s,i,a){try{let l=Bt(new Date().toISOString(),o);for(let u of l)u.type==="tool_use"&&u.toolName&&this.emit("tool:observed:before",{traceId:e,timestamp:new Date,agentRef:t,agentId:s,threadId:i,sessionId:a,provider:n,tool:{name:u.toolName,rawName:u.toolName,input:u.toolInput?this.tryParseJson(u.toolInput):void 0,toolUseId:u.toolUseId}}),u.type==="tool_result"&&this.emit("tool:observed:after",{traceId:e,timestamp:new Date,agentRef:t,agentId:s,threadId:i,sessionId:a,provider:n,tool:{name:u.toolName??"unknown",rawName:u.toolName??"unknown",toolUseId:u.toolUseId,result:u.resultPreview,isError:u.isError}});}catch{}}tryParseJson(e){try{return JSON.parse(e)}catch{return e}}async query(e,t,n){let o=await this.resolveFileRemoteTarget(e);if(o)return o.target.query(o.agentRef,t,n);let s=Date.now(),i=Ce("tsk"),a=new Date,l;try{l=lt(e,Array.from(this._agents.values()));}catch(k){if(k instanceof ce){this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"query",metadata:{...n?.metadata??{}},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName});let O=Date.now()-s,I={code:"AGENT_NOT_FOUND",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"query",durationMs:O,error:I,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:e.replace(/^@/,""),provider:"",durationMs:O}}}throw k}let u=Array.isArray(l.provider)?l.provider[0]??"cli/claude":l.provider,c=n?.provider??u,d=n?.model??l.inline?.model,p;try{p=de(c);}catch(k){this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"query",metadata:{...n?.metadata??{}},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName});let O=Date.now()-s,I={code:"PROVIDER_ERROR",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"query",durationMs:O,error:I,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}let m=await this._fetchHistoryMessages(n?.threadId,i,n?.messages),h;try{h=await this.renderAgentPromptFull(e,{session:{mode:"query",platform:n?.platform},vars:{user_input:t},messages:m});}catch{}let f,g,y,_=d,T=false,w=k=>{T||(T=true,this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"query",pid:k,model:_,provider:c,codingAgentCommand:f,renderedPrompt:h,metadata:{...n?.metadata??{},provider:c},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName}));},x=l.options,S=Array.isArray(x?.query?.tools)?x.query.tools:void 0,z=this._tools.size>0?this._filterToolsByMode(S):[],C=l.inline?.max_steps;c.startsWith("api/")&&w();try{let k=await p.query(t,{model:d,context:n?.context,systemPrompt:h??l.inline?.system_prompt??l.inline?.prompt,additionalArgs:Array.isArray(x?.query)?x.query:void 0,tools:z.length>0?z:void 0,maxSteps:C,env:{CREWX_AGENT_ID:l.id,CREWX_AGENT_ROLE:l.role??"",CREWX_AGENT_TEAM:l.team??"",CREWX_USER_ID:process.env.USER||process.env.USERNAME||"unknown",CREWX_TRACE_ID:i,CREWX_PARENT_TASK_ID:i,CREWX_TASK_ID:i,CREWX_CALLER_AGENT_ID:process.env.CREWX_AGENT_ID??"",CREWX_THREAD_ID:n?.threadId??"",CREWX_PROVIDER:c,CREWX_SESSION_ID:"",CREWX_TASK_LOG_PATH:this.computeTaskLogPath(i,a)},onPid:I=>w(I),onOutput:(I,J)=>{this.emit("task:output",{traceId:i,timestamp:new Date,agentRef:e,output:I,level:J}),J==="stdout"&&this.emitToolEvents(i,e,c,I,l.id,n?.threadId??"","");},onCommand:I=>{f=I;},onUsage:I=>{g=I;},onExitCode:I=>{y=I;},onModel:I=>{_||(_=I);}});w();let O=Date.now()-s;return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"query",result:k,durationMs:O,exitCode:y,inputTokens:g?.inputTokens,outputTokens:g?.outputTokens,cachedInputTokens:g?.cachedInputTokens,costUsd:g?.costUsd,model:_,metadata:{...n?.metadata??{},...n?.threadId?{threadId:n.threadId}:{}}}),{ok:!0,data:k,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}catch(k){if(k instanceof exports.ClientToolCallRequiredError){let J=Ce("thd");return this._pendingThreads.set(J,{agentRef:l.id,providerStr:c,continuationState:k.continuationState,toolCall:k.toolCall,traceId:i,startMs:s,model:d}),{ok:true,status:"requires_action",data:"",toolCall:k.toolCall,threadId:J,meta:{agentId:l.id,provider:c,model:d,durationMs:Date.now()-s}}}w();let O=Date.now()-s,I={code:"QUERY_FAILED",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"query",durationMs:O,error:I,exitCode:y,inputTokens:g?.inputTokens,outputTokens:g?.outputTokens,cachedInputTokens:g?.cachedInputTokens,costUsd:g?.costUsd,model:_,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}}async continueQuery(e,t){let n=this._pendingThreads.get(e);if(!n)return {ok:false,data:"",error:{code:"THREAD_NOT_FOUND",message:`No pending thread: ${e}`},meta:{agentId:"",provider:"",durationMs:0}};this._pendingThreads.delete(e);let o=de(n.providerStr);if(!o.continueWithToolResults)return {ok:false,data:"",error:{code:"UNSUPPORTED",message:"Provider does not support client tool continuation"},meta:{agentId:n.agentRef,provider:n.providerStr,durationMs:0}};let s=t.map(i=>({...i,toolName:n.toolCall.toolCallId===i.toolCallId?n.toolCall.toolName:i.toolCallId}));try{let i=await o.continueWithToolResults(n.continuationState,s),a=Date.now()-n.startMs;return this.emit("task:end",{traceId:n.traceId,timestamp:new Date,agentRef:n.agentRef,mode:"query",result:i,durationMs:a}),{ok:!0,status:"complete",data:i,meta:{agentId:n.agentRef,provider:n.providerStr,model:n.model,durationMs:a}}}catch(i){if(i instanceof exports.ClientToolCallRequiredError)return this._pendingThreads.set(e,{...n,continuationState:i.continuationState,toolCall:i.toolCall}),{ok:true,status:"requires_action",data:"",toolCall:i.toolCall,threadId:e,meta:{agentId:n.agentRef,provider:n.providerStr,model:n.model,durationMs:Date.now()-n.startMs}};let a=Date.now()-n.startMs;return {ok:false,data:"",error:{code:"CONTINUE_FAILED",message:i.message},meta:{agentId:n.agentRef,provider:n.providerStr,model:n.model,durationMs:a}}}}async execute(e,t,n){let o=await this.resolveFileRemoteTarget(e);if(o)return o.target.execute(o.agentRef,t,n);let s=Date.now(),i=Ce("tsk"),a=new Date,l;try{l=lt(e,Array.from(this._agents.values()));}catch(k){if(k instanceof ce){this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"execute",metadata:{...n?.metadata??{}},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName});let O=Date.now()-s,I={code:"AGENT_NOT_FOUND",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"execute",durationMs:O,error:I,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:e.replace(/^@/,""),provider:"",durationMs:O}}}throw k}let u=Array.isArray(l.provider)?l.provider[0]??"cli/claude":l.provider,c=n?.provider??u,d=n?.model??l.inline?.model,p;try{p=de(c);}catch(k){this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"execute",metadata:{...n?.metadata??{}},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName});let O=Date.now()-s,I={code:"PROVIDER_ERROR",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"execute",durationMs:O,error:I,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}let m=await this._fetchHistoryMessages(n?.threadId,i,n?.messages),h;try{h=await this.renderAgentPromptFull(e,{session:{mode:"execute",platform:n?.platform},vars:{user_input:t},messages:m});}catch{}let f,g,y,_=d,T=false,w=k=>{T||(T=true,this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"execute",pid:k,model:_,provider:c,codingAgentCommand:f,renderedPrompt:h,metadata:{...n?.metadata??{},provider:c},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName}));},x=l.options,S=Array.isArray(x?.execute?.tools)?x.execute.tools:void 0,z=this._tools.size>0?this._filterToolsByMode(S):[],C=l.inline?.max_steps;c.startsWith("api/")&&w();try{let k=await p.execute(t,{model:d,context:n?.context,systemPrompt:h??l.inline?.system_prompt??l.inline?.prompt,additionalArgs:Array.isArray(x?.execute)?x.execute:void 0,tools:z.length>0?z:void 0,maxSteps:C,env:{CREWX_AGENT_ID:l.id,CREWX_AGENT_ROLE:l.role??"",CREWX_AGENT_TEAM:l.team??"",CREWX_USER_ID:process.env.USER||process.env.USERNAME||"unknown",CREWX_TRACE_ID:i,CREWX_PARENT_TASK_ID:i,CREWX_TASK_ID:i,CREWX_CALLER_AGENT_ID:process.env.CREWX_AGENT_ID??"",CREWX_THREAD_ID:n?.threadId??"",CREWX_PROVIDER:c,CREWX_SESSION_ID:"",CREWX_TASK_LOG_PATH:this.computeTaskLogPath(i,a)},onPid:I=>w(I),onOutput:(I,J)=>{this.emit("task:output",{traceId:i,timestamp:new Date,agentRef:e,output:I,level:J}),J==="stdout"&&this.emitToolEvents(i,e,c,I,l.id,n?.threadId??"","");},onCommand:I=>{f=I;},onUsage:I=>{g=I;},onExitCode:I=>{y=I;},onModel:I=>{_||(_=I);}});w();let O=Date.now()-s;return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"execute",result:k,durationMs:O,exitCode:y,inputTokens:g?.inputTokens,outputTokens:g?.outputTokens,cachedInputTokens:g?.cachedInputTokens,costUsd:g?.costUsd,model:_,metadata:{...n?.metadata??{},...n?.threadId?{threadId:n.threadId}:{}}}),{ok:!0,data:k,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}catch(k){w();let O=Date.now()-s,I={code:"EXECUTE_FAILED",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"execute",durationMs:O,error:I,exitCode:y,inputTokens:g?.inputTokens,outputTokens:g?.outputTokens,cachedInputTokens:g?.cachedInputTokens,costUsd:g?.costUsd,model:_,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}}};function ns(r,e){let t=xr(r)?r:void 0,n=xr(e)?e:void 0;if(!(!t&&!n))return {...t??{},...n??{}}}function xr(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function Nc(r,e){let t=Array.isArray(r)?r:void 0,n=Array.isArray(e)?e:void 0;if(!t&&!n)return;let o=a=>{if(!xr(a))return;let l=a.id;if(typeof l=="string")return `id:${l}`;let u=a.name;if(typeof u=="string")return `name:${u}`},s=new Set;for(let a of n??[]){let l=o(a);l&&s.add(l);}let i=[];for(let a of t??[]){let l=o(a);l&&s.has(l)||i.push(a);}for(let a of n??[])i.push(a);return i}async function os(r,e,t){if(r.some(o=>(Array.isArray(o.provider)?o.provider:[o.provider]).some(i=>i.startsWith("api/")))){let{registerApiProviders:o}=await Promise.resolve().then(()=>(hr(),Ko));o(t?.api);}$c(r,e),Dc(r,e);}function $c(r,e){if(!r.some(i=>(Array.isArray(i.provider)?i.provider:[i.provider]).some(l=>l.startsWith("remote/"))))return;let n=e.providers;if(!Array.isArray(n))return;let{createRemoteProviderFactory:o}=(wr(),Ir(Xo)),s=new Map;for(let i of n)i.type==="remote"&&typeof i.id=="string"&&s.set(i.id,i);s.size>0&&Se("remote",o(s,de));}function Dc(r,e){if(!r.some(i=>(Array.isArray(i.provider)?i.provider:[i.provider]).some(l=>l.startsWith("plugin/"))))return;let n=e.providers;if(!Array.isArray(n))return;let{createPluginProviderFactory:o}=(br(),Ir(es)),s=new Map;for(let i of n)i.type==="plugin"&&typeof i.id=="string"&&s.set(i.id,i);s.size>0&&Se("plugin",o(s));}v();var Lc="crewx:fs:",kr=class{prefix;store;constructor(e){this.prefix=e?.prefix??Lc,this.store=e?.storage??new Map;}async readFile(e){let t=this.toKey(e),n=this.store.get(t);if(n===void 0)throw new Error(`BrowserFsAdapter: file not found: ${e}`);return n}async exists(e){return this.store.has(this.toKey(e))}resolvePath(...e){let t=e.map(i=>i.replace(/\\/g,"/")).join("/").replace(/\/+/g,"/"),n=t.split("/"),o=[];for(let i of n)i==="."||i===""||(i===".."?o.pop():o.push(i));let s=o.join("/");return t.startsWith("/")?`/${s}`:s}isAbsolute(e){return e.startsWith("/")}setItem(e,t){this.store.set(this.toKey(e),t);}removeItem(e){this.store.delete(this.toKey(e));}keys(){return Array.from(this.store.keys()).filter(e=>e.startsWith(this.prefix)).map(e=>e.slice(this.prefix.length))}toKey(e){return `${this.prefix}${e.replace(/\\/g,"/")}`}};ke();fr();hr();v();var Rr=0;function Hc(r){let e=Array.from(r.agents.keys());return {name:"delegate_to_agent",description:`Delegate a task to another agent. Available agents: ${e.join(", ")}`,parameters:{type:"object",properties:{agent:{type:"string",description:`Agent ID to delegate to. One of: ${e.join(", ")}`},message:{type:"string",description:"Task description for the target agent"},mode:{type:"string",description:'Execution mode: "query" for questions, "execute" for actions. Default: query'}},required:["agent","message"]},execute:async t=>{if(Rr>=3)return "Error: Maximum delegation depth (3) reached. Cannot delegate further.";let n=t.agent,o=t.message,s=t.mode??"query";if(!e.includes(n))return `Error: Unknown agent "${n}". Available: ${e.join(", ")}`;Rr++;try{if(s==="execute"){let a=await r.execute(n,o);return a.ok?a.data:`Error: ${a.error?.message??"Unknown error"}`}let i=await r.query(n,o);return i.ok?i.data:`Error: ${i.error?.message??"Unknown error"}`}finally{Rr--;}}}}v();var ss=typeof process<"u"?process.env:{};function qc(){return ss.CREWX_CLI||"npx crewx"}function Fc(){return ss.CREWX_WORKSPACE||(typeof process<"u"?process.cwd():"/")}v();var Uc=/^[a-zA-Z0-9._-]+$/,Cr=class{constructor(e){this.storage=e;}storage;listBoxes(e){this.validateId(e);let n=this.storage.listBoxes(e).map(o=>this.toBoxResponse(o));return {boxes:n,total:n.length}}getBox(e,t){this.validateId(e),this.validateId(t);let n=this.storage.findBox(e,t);return n?this.toBoxResponse(n):null}createBox(e,t){this.validateId(e);let n=this.generateBoxId(),o=new Date().toISOString(),s=this.storage.insertBox(e,{id:n,seq:t.seq,firstTaskId:t.firstTaskId,midTaskId:t.midTaskId,lastTaskId:t.lastTaskId,taskCount:t.taskCount,summary:t.summary??null,sourceTokens:t.sourceTokens,summaryTokens:t.summaryTokens??null,createdAt:o});return this.toBoxResponse(s)}toBoxResponse(e){return {id:e.id,threadId:e.thread_id,seq:e.seq,firstTaskId:e.first_task_id,lastTaskId:e.last_task_id,taskCount:e.task_count,sourceTokens:e.source_tokens,summaryTokens:e.summary_tokens,summary:e.summary,previewFirst:this.storage.getTaskPreview(e.first_task_id,200),previewMid:this.storage.getTaskPreview(e.mid_task_id,200),previewLast:this.storage.getTaskPreview(e.last_task_id,200),createdAt:e.created_at}}validateId(e){if(!Uc.test(e))throw new Error(`Invalid ID format: ${e}`)}generateBoxId(){return Ce("box")}};v();function Bc(r,e,t,n,o){let{maxTokens:s,hotzoneRatio:i,warmzoneRatio:a}=n,l=s*i,u=s*a,c=l+u,d=e.getThreadMessages(r),p=[],m=0,h=false,f=[];for(let _=0;_<d.length;_+=2){let T=d[_],w=d[_+1],x=T?.content||"",S=w?.content||"",z=o.countTokens(x+S),C=[];T&&C.push(T),w&&C.push(w),f.push({messages:C,tokens:z});}for(let _=f.length-1;_>=0;_--){let T=f[_];if(m+T.tokens>l){h=true;break}m+=T.tokens,p.unshift(...T.messages);}let g=[],y=0;if(h&&u>0)try{let{boxes:_}=t.listBoxes(r);for(let T=_.length-1;T>=0;T--){let w=_[T],x=w.summaryTokens??w.sourceTokens;if(y+x>u)break;y+=x,g.unshift({boxId:w.id,seq:w.seq,taskCount:w.taskCount,sourceTokens:w.sourceTokens,summary:w.summary,previewFirst:w.previewFirst,previewMid:w.previewMid,previewLast:w.previewLast,createdAt:w.createdAt});}}catch(_){if(_ instanceof Error&&!/not found/i.test(_.message))throw _}return {hot:p,warm:g,hotTokens:m,warmTokens:y,hotOverflow:h,totalBudget:c,config:{maxTokens:s,hotzoneRatio:i,warmzoneRatio:a}}}At();v();var kt=class extends Error{constructor(t,n){super(`Task ${t} timed out after ${n}ms`);this.taskId=t;this.timeoutMs=n;this.name="ParallelRunnerTimeoutError";}taskId;timeoutMs},nt=class{constructor(e={}){this.defaults=e;}defaults;metrics={totalTasks:0,startedTasks:0,completedTasks:0,successCount:0,failureCount:0,totalDurationMs:0,averageDurationMs:0,throughput:0};async run(e,t={}){if(!Array.isArray(e))throw new TypeError("ParallelRunner.run expects an array of tasks");if(e.length===0)return this.metrics={totalTasks:0,startedTasks:0,completedTasks:0,successCount:0,failureCount:0,totalDurationMs:0,averageDurationMs:0,throughput:0},[];let n=this.mergeOptions(t),o=Math.max(1,n.maxConcurrency??5),s=n.timeoutMs,i=n.failFast??false,a=n.callbacks,l=n.evaluateTaskSuccess??(()=>true),u=[],c=0,d=0,p=0,m=false,h=0,f=perf_hooks.performance.now(),g=async C=>{a?.onTaskStart&&await a.onTaskStart(C),p+=1;let k=new AbortController,O={signal:k.signal},I,J;typeof s=="number"&&Number.isFinite(s)&&s>0&&(J=new Promise((ee,re)=>{I=setTimeout(()=>{let q=new kt(C.id,s);k.abort(q),re(q);},s);}));let G=perf_hooks.performance.now(),L=C.run(O),we=J?Promise.race([L,J]):L;try{let ee=await we,re=perf_hooks.performance.now(),q=re-G,X=l(ee,C),W={taskId:C.id,success:X,value:ee,durationMs:q,startedAt:G,finishedAt:re,metadata:C.metadata,aborted:!1};u.push(W),X?c+=1:d+=1,a?.onTaskComplete&&await a.onTaskComplete(W),i&&!X&&(m=!0);}catch(ee){let re=perf_hooks.performance.now(),q=re-G,X=ee instanceof Error?ee:new Error(String(ee)),W={taskId:C.id,success:false,error:X,durationMs:q,startedAt:G,finishedAt:re,metadata:C.metadata,aborted:k.signal.aborted};u.push(W),d+=1,a?.onError&&await a.onError(C,X,q),i&&(m=true);}finally{I&&clearTimeout(I),J&&L.catch(()=>{});}},y=async()=>{for(;!m;){let C=h;if(C>=e.length)break;h+=1;let k=e[C];if(!k||(await g(k),m))break}},_=Math.min(o,e.length),T=[];for(let C=0;C<_;C++)T.push(y());await Promise.all(T);let x=perf_hooks.performance.now()-f,S=u.length?u.reduce((C,k)=>C+k.durationMs,0)/u.length:0,z=x>0?u.length/(x/1e3):u.length;return this.metrics={totalTasks:e.length,startedTasks:p,completedTasks:u.length,successCount:c,failureCount:d,totalDurationMs:x,averageDurationMs:S,throughput:z},u}getMetrics(){return this.metrics}mergeOptions(e){return {maxConcurrency:e.maxConcurrency??this.defaults.maxConcurrency,timeoutMs:e.timeoutMs??this.defaults.timeoutMs,failFast:e.failFast??this.defaults.failFast,evaluateTaskSuccess:e.evaluateTaskSuccess??this.defaults.evaluateTaskSuccess,callbacks:this.mergeCallbacks(this.defaults.callbacks,e.callbacks)}}mergeCallbacks(e,t){if(!(!e&&!t))return {onTaskStart:async n=>{e?.onTaskStart&&await e.onTaskStart(n),t?.onTaskStart&&await t.onTaskStart(n);},onTaskComplete:async n=>{e?.onTaskComplete&&await e.onTaskComplete(n),t?.onTaskComplete&&await t.onTaskComplete(n);},onError:async(n,o,s)=>{e?.onError&&await e.onError(n,o,s),t?.onError&&await t.onError(n,o,s);}}}};v();v();var ot=class{async query(e){throw new Error("AgentRuntime.query is not implemented. Provide a subclass or mock AgentRuntime.prototype.query.")}async execute(e){throw new Error("AgentRuntime.execute is not implemented. Provide a subclass or mock AgentRuntime.prototype.execute.")}};var is=3,as=3e4,ls=500,Jc=r=>{if(typeof r!="number"||Number.isNaN(r)||!Number.isFinite(r))return is;let e=Math.floor(r);return e>0?e:is},Wc=r=>r===void 0||typeof r!="number"||Number.isNaN(r)||r<=0?as:r,Vc=r=>{if(!r)return {maxRetries:0,retryDelay:ls};let e=Number.isInteger(r.maxRetries)&&r.maxRetries>=0?r.maxRetries:0,t=typeof r.retryDelay=="number"&&r.retryDelay>=0?r.retryDelay:ls;return {maxRetries:e,retryDelay:t}},Tr=r=>{let e=r.reason;return e instanceof Error?e:typeof e=="string"?new Error(e):new Error("Parallel operation aborted")},Kc=(r,e)=>r<=0?Promise.resolve():new Promise((t,n)=>{let o=setTimeout(()=>{e.removeEventListener("abort",s),t();},r),s=()=>{clearTimeout(o),n(Tr(e));};if(e.aborted){s();return}e.addEventListener("abort",s,{once:true});}),Gc=async(r,e,t)=>{let n,o;for(let s=0;s<=e.maxRetries;s++){if(t.aborted)throw Tr(t);try{let i=await r();if(n=i,i.success||s===e.maxRetries)return i}catch(i){if(o=i,t.aborted)throw Tr(t);if(s===e.maxRetries)throw i instanceof Error?i:new Error(String(i))}s<e.maxRetries&&await Kc(e.retryDelay,t);}if(n)return n;throw o?o instanceof Error?o:new Error(String(o)):new Error("Parallel helper encountered an unexpected state")},us=(r,e,t)=>{e.completed+=1,t?e.success+=1:e.failure+=1;try{r.onProgress?.(e.completed,e.total);}catch(n){process.env.NODE_ENV!=="production"&&console.warn("Parallel helper onProgress callback threw an error:",n);}},Xc=r=>r.map(t=>({metadata:t.metadata,taskResult:t})).slice().sort((t,n)=>t.metadata.index-n.metadata.index).map(({metadata:t,taskResult:n})=>{if(n.value){let s=n.value;return {...s,agentId:s.agentId??t.request.agentId,metadata:{...s.metadata,requestIndex:t.index,mode:t.mode}}}let o=n.error??new Error("Unknown error");return {agentId:t.request.agentId,content:o.message,success:false,metadata:{error:o.message,aborted:n.aborted??false,requestIndex:t.index,mode:t.mode}}}),Yc=r=>r.filter(e=>!e.success).map(e=>{let t=e.metadata;if(e.error instanceof Error)return {index:t.index,error:e.error};if(e.value&&!e.value.success){let n=String(e.value.metadata?.error??e.value.content??"Agent returned unsuccessful result");return {index:t.index,error:new Error(n)}}return {index:t.index,error:new Error("Unknown failure")}}),Qc=(r,e)=>({onTaskComplete:async t=>{us(e,r,t.success);},onError:async()=>{us(e,r,false);}}),cs=async(r,e,t={})=>{if(!Array.isArray(r))throw new TypeError("Parallel helpers expect an array of requests");if(r.length===0){let g={total:0,completed:0,successCount:0,failureCount:0,results:[],errors:[],metrics:{totalTasks:0,startedTasks:0,completedTasks:0,successCount:0,failureCount:0,totalDurationMs:0,averageDurationMs:0,throughput:0}};return t.onComplete?.(g),[]}let n=Jc(t.concurrency),o=Wc(t.timeout),s=Vc(t.retryPolicy),i=new nt,a=new ot,l=r.map((f,g)=>({id:`${e}:${f.agentId??"anonymous"}:${g}`,metadata:{index:g,mode:e,request:f},run:y=>Gc(()=>e==="query"?a.query(f):a.execute(f),s,y.signal)})),u={completed:0,success:0,failure:0,total:r.length},c=await i.run(l,{maxConcurrency:n,timeoutMs:o,evaluateTaskSuccess:f=>f.success,callbacks:Qc(u,t)}),d=Xc(c),p=Yc(c),m=i.getMetrics(),h={total:r.length,completed:r.length,successCount:d.filter(f=>f.success).length,failureCount:d.filter(f=>!f.success).length,results:d,errors:p,metrics:m};return t.onComplete?.(h),d},Zc=(r,e)=>cs(r,"query",e),ed=(r,e)=>cs(r,"execute",e);br();wr();vr();yr();v();v();var Rt=class{capabilities={required:[]}};v();v();v();var ds=2e3;function ps(r){let e=r.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f\u2028\u2029]/g,"");return e.length<=ds?e:e.slice(0,ds-11)+" [redacted]"}var ld=10*1024*1024,ud={b:1,kb:1024,mb:1024*1024,gb:1024*1024*1024};function Pr(r,e){return r===void 0?true:Array.isArray(r)?r.includes(e):r===e}function cd(r,e){return r===void 0?true:Array.isArray(r)?r.some(t=>e.includes(t)):e.includes(r)}function ms(r){if(typeof r=="number")return r;let e=r.match(/^(\d+(?:\.\d+)?)\s*(b|kb|mb|gb)?$/i);if(!e)return 0;let t=parseFloat(e[1]),n=(e[2]??"b").toLowerCase();return Math.floor(t*(ud[n]??1))}function fs(r){return typeof r=="string"}function hs(r){try{let e=fs$1.statSync(r);return e.size>ld?(process.stderr.write(`[YamlHookPlugin] File too large for line count: ${r} (${e.size} bytes)
74
75
  `),null):fs$1.readFileSync(r,"utf8").split(`
75
- `).length}catch{return null}}function gs(r){try{return fs$1.statSync(r).size}catch{return null}}function od(r,e,t){if(!r)return true;let n=e,o=n?.path??n?.file_path??n?.filePath??n?.filename;if(typeof o!="string")return false;if(ne(o,r))return true;if(t&&o.startsWith("/")){let{relative:s,isAbsolute:i}=U("path");if(i(o)){let a=s(t,o);if(a&&!a.startsWith("..")&&ne(a,r))return true}}return false}function sd(r,e){return r?JSON.stringify(e).includes(r):true}function id(r,e){if(!r)return true;try{let t=new RegExp(r),n=JSON.stringify(e);return t.test(n)}catch{return false}}function ad(r,e){if(!r)return true;try{let t=new RegExp(r),n=JSON.stringify(e);return t.test(n)}catch{return false}}function ld(r,e){if(r.pathSizeMin===void 0&&r.pathSizeMax===void 0)return true;let t=e,n=t?.path??t?.file_path??t?.filePath??t?.filename;if(typeof n!="string")return false;if(r.pathSizeMin!==void 0)if(ds(r.pathSizeMin)){let o=gs(n);if(o===null||o<cs(r.pathSizeMin))return false}else {let o=ps(n);if(o===null||o<r.pathSizeMin)return false}if(r.pathSizeMax!==void 0)if(ds(r.pathSizeMax)){let o=gs(n);if(o===null||o>cs(r.pathSizeMax))return false}else {let o=ps(n);if(o===null||o>r.pathSizeMax)return false}return true}function ud(r){let e=[],t=[];for(let n=0;n<r.length;n++){let o=r[n];if(!o||typeof o!="object"){t.push(`Hook at index ${n}: not an object, skipping`);continue}let s=o;if(typeof s.name!="string"||!s.name){t.push(`Hook at index ${n}: missing or invalid "name", skipping`);continue}let i=s.guide&&typeof s.guide=="object",a=s.deny&&typeof s.deny=="object",l=typeof s.plugin=="string";if(!i&&!a&&!l){t.push(`Hook "${s.name}": missing guide/deny/plugin, skipping`);continue}if(i&&typeof s.guide.say!="string"){t.push(`Hook "${s.name}": guide.say is required and must be string, skipping`);continue}if(a&&typeof s.deny.reason!="string"){t.push(`Hook "${s.name}": deny.reason is required and must be string, skipping`);continue}e.push(s);}return {valid:e,warnings:t}}var Tr=class extends xt{name="@crewx/yaml-hook-plugin";version="0.1.0";capabilities={required:["inject"]};hooks;agentMap;constructor(e){super(),this.hooks=e.hooks,this.agentMap=new Map((e.agents??[]).map(t=>[t.id,t]));}async run(e){let t=[],n=process.env.CREWX_TASK_LOG_PATH,o=process.env.CREWX_HOOK_LOG_VERBOSE==="1";for(let s of this.hooks)if(this.matchEntryLevel(s,e)&&s.guide){if(!this.matchRuleLevel(s.guide,e)){o&&n&&this.appendHookLog(n,{rule:s.name,action:"pass",once:s.guide.once??false,ctx:e,matched:false});continue}s.guide.once&&this.hasFired(e.sessionId,s.name)||(s.guide.once&&this.markFired(e.sessionId,s.name),t.push(s.guide.say),n&&this.appendHookLog(n,{rule:s.name,action:"inject",once:s.guide.once??false,ctx:e,matched:true,message:s.guide.say}));}return t.length?e.inject(t.join(`
76
+ `).length}catch{return null}}function ys(r){try{return fs$1.statSync(r).size}catch{return null}}function dd(r,e,t){if(!r)return true;let n=e,o=n?.path??n?.file_path??n?.filePath??n?.filename;if(typeof o!="string")return false;if(ne(o,r))return true;if(t&&o.startsWith("/")){let{relative:s,isAbsolute:i}=U("path");if(i(o)){let a=s(t,o);if(a&&!a.startsWith("..")&&ne(a,r))return true}}return false}function pd(r,e){return r?JSON.stringify(e).includes(r):true}function gd(r,e){if(!r)return true;try{let t=new RegExp(r),n=JSON.stringify(e);return t.test(n)}catch{return false}}function md(r,e){if(!r)return true;try{let t=new RegExp(r),n=JSON.stringify(e);return t.test(n)}catch{return false}}function fd(r,e){if(r.pathSizeMin===void 0&&r.pathSizeMax===void 0)return true;let t=e,n=t?.path??t?.file_path??t?.filePath??t?.filename;if(typeof n!="string")return false;if(r.pathSizeMin!==void 0)if(fs(r.pathSizeMin)){let o=ys(n);if(o===null||o<ms(r.pathSizeMin))return false}else {let o=hs(n);if(o===null||o<r.pathSizeMin)return false}if(r.pathSizeMax!==void 0)if(fs(r.pathSizeMax)){let o=ys(n);if(o===null||o>ms(r.pathSizeMax))return false}else {let o=hs(n);if(o===null||o>r.pathSizeMax)return false}return true}function hd(r){let e=[],t=[];for(let n=0;n<r.length;n++){let o=r[n];if(!o||typeof o!="object"){t.push(`Hook at index ${n}: not an object, skipping`);continue}let s=o;if(typeof s.name!="string"||!s.name){t.push(`Hook at index ${n}: missing or invalid "name", skipping`);continue}let i=s.guide&&typeof s.guide=="object",a=s.deny&&typeof s.deny=="object",l=typeof s.plugin=="string";if(!i&&!a&&!l){t.push(`Hook "${s.name}": missing guide/deny/plugin, skipping`);continue}if(i&&typeof s.guide.say!="string"){t.push(`Hook "${s.name}": guide.say is required and must be string, skipping`);continue}if(a&&typeof s.deny.reason!="string"){t.push(`Hook "${s.name}": deny.reason is required and must be string, skipping`);continue}e.push(s);}return {valid:e,warnings:t}}var Ar=class extends Rt{name="@crewx/yaml-hook-plugin";version="0.1.0";capabilities={required:["inject"]};hooks;agentMap;constructor(e){super(),this.hooks=e.hooks,this.agentMap=new Map((e.agents??[]).map(t=>[t.id,t]));}async run(e){let t=[],n=process.env.CREWX_TASK_LOG_PATH,o=process.env.CREWX_HOOK_LOG_VERBOSE==="1";for(let s of this.hooks)if(this.matchEntryLevel(s,e)&&s.guide){if(!this.matchRuleLevel(s.guide,e)){o&&n&&this.appendHookLog(n,{rule:s.name,action:"pass",once:s.guide.once??false,ctx:e,matched:false});continue}s.guide.once&&this.hasFired(e.sessionId,s.name)||(s.guide.once&&this.markFired(e.sessionId,s.name),t.push(s.guide.say),n&&this.appendHookLog(n,{rule:s.name,action:"inject",once:s.guide.once??false,ctx:e,matched:true,message:s.guide.say}));}return t.length?e.inject(t.join(`
76
77
 
77
- `)):e.pass()}appendHookLog(e,t){try{let n={rule:t.rule,action:t.action,once:t.once,sessionId:t.ctx.sessionId,provider:t.ctx.provider,agent:t.ctx.agent.id,toolName:t.ctx.tool.name,rawToolName:t.ctx.tool.rawName};t.message&&(n.chars=t.message.length,process.env.CREWX_HOOK_LOG_VERBOSE==="1"&&(n.message=ls(t.message).slice(0,500)));let o=`[${new Date().toISOString()}] HOOK: ${JSON.stringify(n)}
78
- `;fs$1.appendFileSync(e,o,{encoding:"utf8",mode:384});}catch{}}matchEntryLevel(e,t){if(e.provider!==void 0){let n=t.provider.replace(/^cli\//,"");if(!Rr(e.provider,n))return false}if(e.team!==void 0){let o=this.agentMap.get(t.agent.id)?.team??t.agent.team;if(!Rr(e.team,o))return false}if(e.role!==void 0){let o=this.agentMap.get(t.agent.id)?.role??t.agent.role;if(!Rr(e.role,o))return false}if(e.tag!==void 0){let o=this.agentMap.get(t.agent.id)?.tags??[];if(!nd(e.tag,o))return false}return !(e.agents!==void 0&&!e.agents.includes(t.agent.id))}matchRuleLevel(e,t){return !(e.when!==void 0&&e.when.length>0&&!e.when.includes(t.tool.name)&&!e.when.includes(t.tool.rawName)||!sd(e.pattern,t.tool.input)||!id(e.regex,t.tool.input)||!od(e.pathPattern,t.tool.input,t.cwd)||!ld(e,t.tool.input)||!ad(e.whenInputRegex,t.tool.input))}hasFired(e,t){try{let n=this.firedFilePath(e);if(!fs$1.existsSync(n))return !1;let o=JSON.parse(fs$1.readFileSync(n,"utf8"));return Array.isArray(o.fired)&&o.fired.includes(t)}catch{return false}}markFired(e,t){try{let n=this.firedFilePath(e);fs$1.mkdirSync(Hr.dirname(n),{recursive:!0,mode:448});let o=fs$1.existsSync(n)?JSON.parse(fs$1.readFileSync(n,"utf8")):{fired:[]};Array.isArray(o.fired)||(o.fired=[]),o.fired.includes(t)||(o.fired.push(t),fs$1.writeFileSync(n,JSON.stringify(o),{mode:384}));}catch(n){process.stderr.write(`[YamlHookPlugin] once state write failed: ${n}
79
- `);}}firedFilePath(e){let t=crypto$1.createHash("sha1").update(e).digest("hex");return Hr.join(os$1.homedir(),".crewx","sessions",t,"fired-rules.json")}};y();y();y();function cd(r){let e=r.messages.map(t=>({id:t.id,role:t.isAssistant?"assistant":"user",content:t.text,timestamp:new Date(t.timestamp).toISOString(),metadata:t.metadata??null}));return {getThreadMessages(t){return e}}}y();var Pr=class extends Error{code;kind;retryAfterMs;constructor(e,t,n){super(`AdapterError: ${e}`),this.name="AdapterError",this.code=e,this.kind=t,this.retryAfterMs=n;}};y();function dd(r){return r}function pd(r){return {name:r.name,async attach(e){let t=await r.configFactory(e),o=e.registerChannelAdapter,s=r.instanceId??r.name;o&&await o({adapter:r.adapter,instanceId:s,config:t}),r.onAttach&&await r.onAttach(e);},async detach(e){let n=e.unregisterChannelAdapter;n&&await n(r.instanceId??r.name),r.onDetach&&await r.onDetach(e);}}}exports.AdapterError=Pr;exports.AgentNotFoundError=ue;exports.AgentRuntime=nt;exports.BrowserFsAdapter=br;exports.ConfigLoadError=_e;exports.Crewx=wr;exports.CrewxPlugin=De;exports.DocumentLoader=ke;exports.LayoutLoadError=Y;exports.LayoutLoader=Me;exports.LayoutRenderer=Ne;exports.NodeFsAdapter=st;exports.ParallelRunner=rt;exports.ParallelRunnerTimeoutError=_t;exports.PropsValidationError=de;exports.PropsValidator=je;exports.SdkBoxService=xr;exports.SqliteConversationProvider=Le;exports.TemplateEngine=ze;exports.TypedEventEmitter=$e;exports.YamlHookPlugin=Tr;exports.buildContext=$c;exports.createAdapterContext=Lt;exports.createDelegateTool=zc;exports.createHandler=Bt;exports.createPluginProviderFactory=Yo;exports.createProvider=ce;exports.createRemoteProviderFactory=Vo;exports.createScopedAdapterStore=$t;exports.defaultFsAdapter=Mt;exports.defineChannelAdapter=dd;exports.defineChannelAdapterPlugin=pd;exports.escapeHandlebarsHelper=It;exports.formatFileSizeHelper=Ot;exports.formatTimestamp=Nt;exports.formatTimestampHelper=zt;exports.generateFingerprint=oi;exports.generateId=Ce;exports.getSyncWindowStore=ai;exports.hashWorkspaceId=Jt;exports.lengthHelper=St;exports.loadYamlFile=Ct;exports.normalizeWorkspacePath=Yr;exports.parseStdoutEvent=Ft;exports.parseUsage=Tt;exports.parseYamlContent=Sr;exports.registerApiProviders=Jo;exports.registerProviderFactory=Ae;exports.resolveAgent=ot;exports.resolveCrewxCli=Mc;exports.resolveCrewxWorkspace=jc;exports.runExecutesParallel=Vc;exports.runInSyncWindow=li;exports.runQueriesParallel=Wc;exports.setAuditVerbose=Fs;exports.toTaskReader=cd;exports.toTemplateMessages=Ut;exports.truncateHelper=At;exports.validateHooksSchema=ud;
78
+ `)):e.pass()}appendHookLog(e,t){try{let n={rule:t.rule,action:t.action,once:t.once,sessionId:t.ctx.sessionId,provider:t.ctx.provider,agent:t.ctx.agent.id,toolName:t.ctx.tool.name,rawToolName:t.ctx.tool.rawName};t.message&&(n.chars=t.message.length,process.env.CREWX_HOOK_LOG_VERBOSE==="1"&&(n.message=ps(t.message).slice(0,500)));let o=`[${new Date().toISOString()}] HOOK: ${JSON.stringify(n)}
79
+ `;fs$1.appendFileSync(e,o,{encoding:"utf8",mode:384});}catch{}}matchEntryLevel(e,t){if(e.provider!==void 0){let n=t.provider.replace(/^cli\//,"");if(!Pr(e.provider,n))return false}if(e.team!==void 0){let o=this.agentMap.get(t.agent.id)?.team??t.agent.team;if(!Pr(e.team,o))return false}if(e.role!==void 0){let o=this.agentMap.get(t.agent.id)?.role??t.agent.role;if(!Pr(e.role,o))return false}if(e.tag!==void 0){let o=this.agentMap.get(t.agent.id)?.tags??[];if(!cd(e.tag,o))return false}return !(e.agents!==void 0&&!e.agents.includes(t.agent.id))}matchRuleLevel(e,t){return !(e.when!==void 0&&e.when.length>0&&!e.when.includes(t.tool.name)&&!e.when.includes(t.tool.rawName)||!pd(e.pattern,t.tool.input)||!gd(e.regex,t.tool.input)||!dd(e.pathPattern,t.tool.input,t.cwd)||!fd(e,t.tool.input)||!md(e.whenInputRegex,t.tool.input))}hasFired(e,t){try{let n=this.firedFilePath(e);if(!fs$1.existsSync(n))return !1;let o=JSON.parse(fs$1.readFileSync(n,"utf8"));return Array.isArray(o.fired)&&o.fired.includes(t)}catch{return false}}markFired(e,t){try{let n=this.firedFilePath(e);fs$1.mkdirSync(Fr.dirname(n),{recursive:!0,mode:448});let o=fs$1.existsSync(n)?JSON.parse(fs$1.readFileSync(n,"utf8")):{fired:[]};Array.isArray(o.fired)||(o.fired=[]),o.fired.includes(t)||(o.fired.push(t),fs$1.writeFileSync(n,JSON.stringify(o),{mode:384}));}catch(n){process.stderr.write(`[YamlHookPlugin] once state write failed: ${n}
80
+ `);}}firedFilePath(e){let t=crypto$1.createHash("sha1").update(e).digest("hex");return Fr.join(os$1.homedir(),".crewx","sessions",t,"fired-rules.json")}};v();v();v();function yd(r){let e=r.messages.map(t=>({id:t.id,role:t.isAssistant?"assistant":"user",content:t.text,timestamp:new Date(t.timestamp).toISOString(),metadata:t.metadata??null}));return {getThreadMessages(t){return e}}}v();var Sr=class extends Error{code;kind;retryAfterMs;constructor(e,t,n){super(`AdapterError: ${e}`),this.name="AdapterError",this.code=e,this.kind=t,this.retryAfterMs=n;}};v();function vd(r){return r}function wd(r){return {name:r.name,async attach(e){let t=await r.configFactory(e),o=e.registerChannelAdapter,s=r.instanceId??r.name;o&&await o({adapter:r.adapter,instanceId:s,config:t}),r.onAttach&&await r.onAttach(e);},async detach(e){let n=e.unregisterChannelAdapter;n&&await n(r.instanceId??r.name),r.onDetach&&await r.onDetach(e);}}}exports.AdapterError=Sr;exports.AgentNotFoundError=ce;exports.AgentRuntime=ot;exports.BrowserFsAdapter=kr;exports.ConfigLoadError=_e;exports.Crewx=_r;exports.CrewxPlugin=Le;exports.DocumentLoader=Re;exports.LayoutLoadError=Y;exports.LayoutLoader=je;exports.LayoutRenderer=$e;exports.NodeFsAdapter=ut;exports.ParallelRunner=nt;exports.ParallelRunnerTimeoutError=kt;exports.PropsValidationError=pe;exports.PropsValidator=Ne;exports.SdkBoxService=Cr;exports.SqliteConversationProvider=He;exports.TemplateEngine=Me;exports.TypedEventEmitter=De;exports.YamlHookPlugin=Ar;exports.buildContext=Bc;exports.createAdapterContext=qt;exports.createDelegateTool=Hc;exports.createHandler=Wt;exports.createPluginProviderFactory=Zo;exports.createProvider=de;exports.createRemoteProviderFactory=Go;exports.createScopedAdapterStore=Lt;exports.defaultFsAdapter=Nt;exports.defineChannelAdapter=vd;exports.defineChannelAdapterPlugin=wd;exports.escapeHandlebarsHelper=zt;exports.formatFileSizeHelper=Mt;exports.formatTimestamp=Dt;exports.formatTimestampHelper=jt;exports.generateFingerprint=li;exports.generateId=Ce;exports.getSyncWindowStore=di;exports.hashWorkspaceId=Vt;exports.lengthHelper=Ot;exports.loadYamlFile=it;exports.normalizeWorkspacePath=Zr;exports.parseStdoutEvent=Bt;exports.parseUsage=Et;exports.parseYamlContent=st;exports.registerApiProviders=Vo;exports.registerProviderFactory=Se;exports.resolveAgent=lt;exports.resolveCrewxCli=qc;exports.resolveCrewxWorkspace=Fc;exports.resolveDefaultAgentsYaml=Pt;exports.resolveTemplatesPath=Ae;exports.runExecutesParallel=ed;exports.runInSyncWindow=pi;exports.runQueriesParallel=Zc;exports.setAuditVerbose=Gs;exports.toTaskReader=yd;exports.toTemplateMessages=Jt;exports.truncateHelper=It;exports.validateHooksSchema=hd;