agentica 0.27.2 → 0.28.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/README.md CHANGED
@@ -13,8 +13,23 @@
13
13
 
14
14
  <!-- Youtube + Discord -->
15
15
  <p align="center">
16
- <a href="https://www.youtube.com/@wrtnlabs"><img src="https://img.shields.io/badge/YouTube%20Tutorial-0d1117?style=social&logo=youtube" alt="YouTube"/></a>&nbsp;
17
- <a href="https://discord.gg/aMhRmzkqCx"><img src="https://img.shields.io/badge/Discord-0d1117?style=social&logo=discord" alt="Discord"/></a>
16
+ <a href="https://www.youtube.com/@wrtnlabs">
17
+ <img src="https://img.shields.io/badge/YouTube%20Tutorial-0d1117?style=social&logo=youtube" alt="YouTube"/>
18
+ </a>
19
+ &nbsp;
20
+ <a href="https://discord.gg/aMhRmzkqCx">
21
+ <img src="https://img.shields.io/badge/Discord-0d1117?style=social&logo=discord" alt="Discord"/>
22
+ </a>
23
+ </p>
24
+
25
+ <p align="center">
26
+ <a href="https://www.bloomberg.com/news/videos/2025-03-31/wtrn-on-series-b-funding-growth-strategy-video">
27
+ <img src="https://wrtnlabs.io/agentica/images/badges/fund-raising-news-202503.svg" />
28
+ </a>
29
+ &nbsp;&nbsp;
30
+ <a href="https://github.com/wrtnlabs">
31
+ <img src="https://wrtnlabs.io/agentica/images/badges/open-source-mission.svg" />
32
+ </a>
18
33
  </p>
19
34
 
20
35
  Agentic AI framework specialized in AI Function Calling.
package/dist/index.mjs CHANGED
@@ -76,7 +76,7 @@ Expecting one of '${f.join("', '")}'`);return this._lifeCycleHooks[o]?this._life
76
76
  `),this.outputHelp({error:!0}));const f=l||{},d=f.exitCode||1,D=f.code||"commander.error";this._exit(d,D,o)}_parseOptionsEnv(){this.options.forEach(o=>{if(o.envVar&&o.envVar in r.env){const l=o.attributeName();(this.getOptionValue(l)===void 0||["default","config","env"].includes(this.getOptionValueSource(l)))&&(o.required||o.optional?this.emit(`optionEnv:${o.name()}`,r.env[o.envVar]):this.emit(`optionEnv:${o.name()}`))}})}_parseOptionsImplied(){const o=new p(this.options),l=f=>this.getOptionValue(f)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(f));this.options.filter(f=>f.implied!==void 0&&l(f.attributeName())&&o.valueFromOption(this.getOptionValue(f.attributeName()),f)).forEach(f=>{Object.keys(f.implied).filter(d=>!l(d)).forEach(d=>{this.setOptionValueWithSource(d,f.implied[d],"implied")})})}missingArgument(o){const l=`error: missing required argument '${o}'`;this.error(l,{code:"commander.missingArgument"})}optionMissingArgument(o){const l=`error: option '${o.flags}' argument missing`;this.error(l,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(o){const l=`error: required option '${o.flags}' not specified`;this.error(l,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(o,l){const f=F=>{const R=F.attributeName(),B=this.getOptionValue(R),x=this.options.find(M=>M.negate&&R===M.attributeName()),P=this.options.find(M=>!M.negate&&R===M.attributeName());return x&&(x.presetArg===void 0&&B===!1||x.presetArg!==void 0&&B===x.presetArg)?x:P||F},d=F=>{const R=f(F),B=R.attributeName();return this.getOptionValueSource(B)==="env"?`environment variable '${R.envVar}'`:`option '${R.flags}'`},D=`error: ${d(o)} cannot be used with ${d(l)}`;this.error(D,{code:"commander.conflictingOption"})}unknownOption(o){if(this._allowUnknownOption)return;let l="";if(o.startsWith("--")&&this._showSuggestionAfterError){let d=[],D=this;do{const F=D.createHelp().visibleOptions(D).filter(R=>R.long).map(R=>R.long);d=d.concat(F),D=D.parent}while(D&&!D._enablePositionalOptions);l=C(o,d)}const f=`error: unknown option '${o}'${l}`;this.error(f,{code:"commander.unknownOption"})}_excessArguments(o){if(this._allowExcessArguments)return;const l=this._args.length,f=l===1?"":"s",D=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${l} argument${f} but got ${o.length}.`;this.error(D,{code:"commander.excessArguments"})}unknownCommand(){const o=this.args[0];let l="";if(this._showSuggestionAfterError){const d=[];this.createHelp().visibleCommands(this).forEach(D=>{d.push(D.name()),D.alias()&&d.push(D.alias())}),l=C(o,d)}const f=`error: unknown command '${o}'${l}`;this.error(f,{code:"commander.unknownCommand"})}version(o,l,f){if(o===void 0)return this._version;this._version=o,l=l||"-V, --version",f=f||"output the version number";const d=this.createOption(l,f);return this._versionOptionName=d.attributeName(),this.options.push(d),this.on("option:"+d.name(),()=>{this._outputConfiguration.writeOut(`${o}
77
77
  `),this._exit(0,"commander.version",o)}),this}description(o,l){return o===void 0&&l===void 0?this._description:(this._description=o,l&&(this._argsDescription=l),this)}summary(o){return o===void 0?this._summary:(this._summary=o,this)}alias(o){if(o===void 0)return this._aliases[0];let l=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(l=this.commands[this.commands.length-1]),o===l._name)throw new Error("Command alias can't be the same as its name");return l._aliases.push(o),this}aliases(o){return o===void 0?this._aliases:(o.forEach(l=>this.alias(l)),this)}usage(o){if(o===void 0){if(this._usage)return this._usage;const l=this._args.map(f=>e(f));return[].concat(this.options.length||this._hasHelpOption?"[options]":[],this.commands.length?"[command]":[],this._args.length?l:[]).join(" ")}return this._usage=o,this}name(o){return o===void 0?this._name:(this._name=o,this)}nameFromFilename(o){return this._name=i.basename(o,i.extname(o)),this}executableDir(o){return o===void 0?this._executableDir:(this._executableDir=o,this)}helpInformation(o){const l=this.createHelp();return l.helpWidth===void 0&&(l.helpWidth=o&&o.error?this._outputConfiguration.getErrHelpWidth():this._outputConfiguration.getOutHelpWidth()),l.formatHelp(this,l)}_getHelpContext(o){o=o||{};const l={error:!!o.error};let f;return l.error?f=d=>this._outputConfiguration.writeErr(d):f=d=>this._outputConfiguration.writeOut(d),l.write=o.write||f,l.command=this,l}outputHelp(o){let l;typeof o=="function"&&(l=o,o=void 0);const f=this._getHelpContext(o);S(this).reverse().forEach(D=>D.emit("beforeAllHelp",f)),this.emit("beforeHelp",f);let d=this.helpInformation(f);if(l&&(d=l(d),typeof d!="string"&&!Buffer.isBuffer(d)))throw new Error("outputHelp callback must return a string or a Buffer");f.write(d),this.emit(this._helpLongFlag),this.emit("afterHelp",f),S(this).forEach(D=>D.emit("afterAllHelp",f))}helpOption(o,l){if(typeof o=="boolean")return this._hasHelpOption=o,this;this._helpFlags=o||this._helpFlags,this._helpDescription=l||this._helpDescription;const f=y(this._helpFlags);return this._helpShortFlag=f.shortFlag,this._helpLongFlag=f.longFlag,this}help(o){this.outputHelp(o);let l=r.exitCode||0;l===0&&o&&typeof o!="function"&&o.error&&(l=1),this._exit(l,"commander.help","(outputHelp)")}addHelpText(o,l){const f=["beforeAll","before","after","afterAll"];if(!f.includes(o))throw new Error(`Unexpected value for position to addHelpText.
78
78
  Expecting one of '${f.join("', '")}'`);const d=`${o}Help`;return this.on(d,D=>{let F;typeof l=="function"?F=l({error:D.error,command:D.command}):F=l,F&&D.write(`${F}
79
- `)}),this}}function b(v,o){v._hasHelpOption&&o.find(f=>f===v._helpLongFlag||f===v._helpShortFlag)&&(v.outputHelp(),v._exit(0,"commander.helpDisplayed","(outputHelp)"))}function A(v){return v.map(o=>{if(!o.startsWith("--inspect"))return o;let l,f="127.0.0.1",d="9229",D;return(D=o.match(/^(--inspect(-brk)?)$/))!==null?l=D[1]:(D=o.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(l=D[1],/^\d+$/.test(D[3])?d=D[3]:f=D[3]):(D=o.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(l=D[1],f=D[3],d=D[4]),l&&d!=="0"?`${l}=${f}:${parseInt(d)+1}`:o})}function S(v){const o=[];for(let l=v;l;l=l.parent)o.push(l);return o}return At.Command=w,At}var Ei;function jn(){return Ei||(Ei=1,function(s,t){const{Argument:i}=vt(),{Command:n}=kn(),{CommanderError:r,InvalidArgumentError:a}=it(),{Help:e}=Di(),{Option:u}=di();t=s.exports=new n,t.program=t,t.Argument=i,t.Command=n,t.CommanderError=r,t.Help=e,t.InvalidArgumentError=a,t.InvalidOptionArgumentError=a,t.Option=u}(et,et.exports)),et.exports}var Hn=jn();const Un=ks(Hn),{program:Po,createCommand:Mo,createArgument:ko,createOption:jo,CommanderError:Ho,InvalidArgumentError:Uo,InvalidOptionArgumentError:zo,Command:zn,Argument:Go,Option:Gn,Help:qo}=Un,qn="0.27.2";var Ie={};class Wn extends Error{method;path;expected;value;fake_expected_typed_value_;constructor(t){super(t.message||`Error on ${t.method}(): invalid type${t.path?` on ${t.path}`:""}, expect to be ${t.expected}`);const i=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,i):this.__proto__=i,this.method=t.method,this.path=t.path,this.expected=t.expected,this.value=t.value}}const Vn={__proto__:null,TypeGuardError:Wn},Kn=Kr(Vn);var gi;function Yn(){if(gi)return Ie;gi=1,Object.defineProperty(Ie,"__esModule",{value:!0}),Ie._assertGuard=void 0;const s=Kn,t=(i,n,r)=>{if(i===!0)throw r?r(n):new s.TypeGuardError(n);return!1};return Ie._assertGuard=t,Ie}var ne=Yn();const Zn=s=>({start:Q.hrtime.bigint(),command:s.map(t=>Xn(Tr(t))).join(" "),state:{stdout:"",stderr:"",output:""}}),Xn=s=>/[^\w./-]/.test(s)?`'${s.replaceAll("'","'\\''")}'`:s,Jn=({stdin:s,stdout:t,stderr:i,stdio:n=[s,t,i],env:r,preferLocal:a,cwd:e=".",...u})=>{const h=e instanceof URL?Mr(e):de.resolve(e),m=r?{...Q.env,...r}:void 0,y=n[0]?.string;return{...u,input:y,stdio:y===void 0?n:["pipe",...n.slice(1)],env:a?Qn(m??Q.env,h):m,cwd:h}},Qn=({Path:s="",PATH:t=s,...i},n)=>{const r=t.split(de.delimiter),a=Ci([],de.resolve(n)).map(e=>de.join(e,"node_modules/.bin")).filter(e=>!r.includes(e));return{...i,PATH:[...a,t].filter(Boolean).join(de.delimiter)}},Ci=(s,t)=>s.at(-1)===t?s:Ci([...s,t],de.resolve(t,"..")),eu=async(s,t,i)=>await tu(s,i)?[Rt(s),t.map(n=>uu(n)),{...i,shell:!0}]:[s,t,i],tu=async(s,{shell:t,cwd:i,env:n=Q.env})=>Q.platform==="win32"&&!t&&!await su(s,i,n),su=(s,t,{Path:i="",PATH:n=i})=>yi.some(r=>s.toLowerCase().endsWith(r))||nu(s,t,n),iu={},Fi=s=>(...t)=>iu[t.join("\0")]??=s(...t),ru=Fi(Oe.access),nu=Fi(async(s,t,i)=>{const n=i.split(de.delimiter).filter(Boolean).map(r=>r.replace(/^"(.*)"$/,"$1"));try{await Promise.any([t,...n].flatMap(r=>yi.map(a=>ru(`${de.resolve(r,s)}${a}`))))}catch{return!1}return!0}),yi=[".exe",".com"],uu=s=>Rt(Rt(`"${s.replaceAll(/(\\*)"/g,'$1$1\\"').replace(/(\\*)$/,"$1$1")}"`)),Rt=s=>s.replaceAll(/([()\][%!^"`<>&|;, *?])/g,"^$1"),ou=async(s,{input:t},i)=>{const n=await s;t!==void 0&&n.stdin.end(t);const r=Is(n,"close");try{return await Promise.race([r,...n.stdio.filter(Boolean).map(a=>au(a))]),hu(i,wi(n)),_i(i)}catch(a){throw await Promise.allSettled([r]),bi(a,n,i)}},au=async s=>{for await(const[t]of jr(s,"error"))if(!["ERR_STREAM_PREMATURE_CLOSE","EPIPE"].includes(t?.code))throw t},hu=({command:s},{exitCode:t,signalName:i})=>{if(i!==void 0)throw new Re(`Command was terminated with ${i}: ${s}`);if(t!==void 0)throw new Re(`Command failed with exit code ${t}: ${s}`)},bi=(s,t,i)=>Object.assign(lu(s,i),wi(t),_i(i)),lu=(s,{command:t})=>s instanceof Re?s:new Re(`Command failed: ${t}`,{cause:s});class Re extends Error{name="SubprocessError"}const wi=({exitCode:s,signalCode:t})=>({...s<1?{}:{exitCode:s},...t===null?{}:{signalName:t}}),_i=({state:{stdout:s,stderr:t,output:i},command:n,start:r})=>({stdout:Bt(s),stderr:Bt(t),output:Bt(i),command:n,durationMs:Number(Q.hrtime.bigint()-r)/1e6}),Bt=s=>s.at(-1)===`
79
+ `)}),this}}function b(v,o){v._hasHelpOption&&o.find(f=>f===v._helpLongFlag||f===v._helpShortFlag)&&(v.outputHelp(),v._exit(0,"commander.helpDisplayed","(outputHelp)"))}function A(v){return v.map(o=>{if(!o.startsWith("--inspect"))return o;let l,f="127.0.0.1",d="9229",D;return(D=o.match(/^(--inspect(-brk)?)$/))!==null?l=D[1]:(D=o.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(l=D[1],/^\d+$/.test(D[3])?d=D[3]:f=D[3]):(D=o.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(l=D[1],f=D[3],d=D[4]),l&&d!=="0"?`${l}=${f}:${parseInt(d)+1}`:o})}function S(v){const o=[];for(let l=v;l;l=l.parent)o.push(l);return o}return At.Command=w,At}var Ei;function jn(){return Ei||(Ei=1,function(s,t){const{Argument:i}=vt(),{Command:n}=kn(),{CommanderError:r,InvalidArgumentError:a}=it(),{Help:e}=Di(),{Option:u}=di();t=s.exports=new n,t.program=t,t.Argument=i,t.Command=n,t.CommanderError=r,t.Help=e,t.InvalidArgumentError=a,t.InvalidOptionArgumentError=a,t.Option=u}(et,et.exports)),et.exports}var Hn=jn();const Un=ks(Hn),{program:Po,createCommand:Mo,createArgument:ko,createOption:jo,CommanderError:Ho,InvalidArgumentError:Uo,InvalidOptionArgumentError:zo,Command:zn,Argument:Go,Option:Gn,Help:qo}=Un,qn="0.28.0";var Ie={};class Wn extends Error{method;path;expected;value;fake_expected_typed_value_;constructor(t){super(t.message||`Error on ${t.method}(): invalid type${t.path?` on ${t.path}`:""}, expect to be ${t.expected}`);const i=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,i):this.__proto__=i,this.method=t.method,this.path=t.path,this.expected=t.expected,this.value=t.value}}const Vn={__proto__:null,TypeGuardError:Wn},Kn=Kr(Vn);var gi;function Yn(){if(gi)return Ie;gi=1,Object.defineProperty(Ie,"__esModule",{value:!0}),Ie._assertGuard=void 0;const s=Kn,t=(i,n,r)=>{if(i===!0)throw r?r(n):new s.TypeGuardError(n);return!1};return Ie._assertGuard=t,Ie}var ne=Yn();const Zn=s=>({start:Q.hrtime.bigint(),command:s.map(t=>Xn(Tr(t))).join(" "),state:{stdout:"",stderr:"",output:""}}),Xn=s=>/[^\w./-]/.test(s)?`'${s.replaceAll("'","'\\''")}'`:s,Jn=({stdin:s,stdout:t,stderr:i,stdio:n=[s,t,i],env:r,preferLocal:a,cwd:e=".",...u})=>{const h=e instanceof URL?Mr(e):de.resolve(e),m=r?{...Q.env,...r}:void 0,y=n[0]?.string;return{...u,input:y,stdio:y===void 0?n:["pipe",...n.slice(1)],env:a?Qn(m??Q.env,h):m,cwd:h}},Qn=({Path:s="",PATH:t=s,...i},n)=>{const r=t.split(de.delimiter),a=Ci([],de.resolve(n)).map(e=>de.join(e,"node_modules/.bin")).filter(e=>!r.includes(e));return{...i,PATH:[...a,t].filter(Boolean).join(de.delimiter)}},Ci=(s,t)=>s.at(-1)===t?s:Ci([...s,t],de.resolve(t,"..")),eu=async(s,t,i)=>await tu(s,i)?[Rt(s),t.map(n=>uu(n)),{...i,shell:!0}]:[s,t,i],tu=async(s,{shell:t,cwd:i,env:n=Q.env})=>Q.platform==="win32"&&!t&&!await su(s,i,n),su=(s,t,{Path:i="",PATH:n=i})=>yi.some(r=>s.toLowerCase().endsWith(r))||nu(s,t,n),iu={},Fi=s=>(...t)=>iu[t.join("\0")]??=s(...t),ru=Fi(Oe.access),nu=Fi(async(s,t,i)=>{const n=i.split(de.delimiter).filter(Boolean).map(r=>r.replace(/^"(.*)"$/,"$1"));try{await Promise.any([t,...n].flatMap(r=>yi.map(a=>ru(`${de.resolve(r,s)}${a}`))))}catch{return!1}return!0}),yi=[".exe",".com"],uu=s=>Rt(Rt(`"${s.replaceAll(/(\\*)"/g,'$1$1\\"').replace(/(\\*)$/,"$1$1")}"`)),Rt=s=>s.replaceAll(/([()\][%!^"`<>&|;, *?])/g,"^$1"),ou=async(s,{input:t},i)=>{const n=await s;t!==void 0&&n.stdin.end(t);const r=Is(n,"close");try{return await Promise.race([r,...n.stdio.filter(Boolean).map(a=>au(a))]),hu(i,wi(n)),_i(i)}catch(a){throw await Promise.allSettled([r]),bi(a,n,i)}},au=async s=>{for await(const[t]of jr(s,"error"))if(!["ERR_STREAM_PREMATURE_CLOSE","EPIPE"].includes(t?.code))throw t},hu=({command:s},{exitCode:t,signalName:i})=>{if(i!==void 0)throw new Re(`Command was terminated with ${i}: ${s}`);if(t!==void 0)throw new Re(`Command failed with exit code ${t}: ${s}`)},bi=(s,t,i)=>Object.assign(lu(s,i),wi(t),_i(i)),lu=(s,{command:t})=>s instanceof Re?s:new Re(`Command failed: ${t}`,{cause:s});class Re extends Error{name="SubprocessError"}const wi=({exitCode:s,signalCode:t})=>({...s<1?{}:{exitCode:s},...t===null?{}:{signalName:t}}),_i=({state:{stdout:s,stderr:t,output:i},command:n,start:r})=>({stdout:Bt(s),stderr:Bt(t),output:Bt(i),command:n,durationMs:Number(Q.hrtime.bigint()-r)/1e6}),Bt=s=>s.at(-1)===`
80
80
  `?s.slice(0,s.at(-2)==="\r"?-2:-1):s,cu=async(s,t,i,n)=>{try{["node","node.exe"].includes(s.toLowerCase())&&(s=Q.execPath,t=[...Q.execArgv.filter(a=>!a.startsWith("--inspect")),...t]),[s,t,i]=await eu(s,t,i),[s,t,i]=Du(s,t,i);const r=kr(s,t,i);return vi(r.stdout,n,"stdout"),vi(r.stderr,n,"stderr"),r.once("error",()=>{}),await Is(r,"spawn"),r}catch(r){throw bi(r,{},n)}},Du=(s,t,i)=>i.shell&&t.length>0?[[s,...t].join(" "),[],i]:[s,t,i],vi=(s,{state:t},i)=>{s&&(s.setEncoding("utf8"),t.isIterating||(t.isIterating=!1,s.on("data",n=>{t[i]+=n,t.output+=n})))},fu=async s=>{const[[t,i]]=await Promise.all([Promise.allSettled(s),du(s)]);if(i.reason)throw i.reason.pipedFrom=t.reason??t.value,i.reason;if(t.reason)throw t.reason;return{...i.value,pipedFrom:t.value}},du=async s=>{try{const[{stdout:t},{stdin:i}]=await Promise.all(s.map(({nodeChildProcess:n})=>n));if(i===null)throw new Error('The "stdin" option must be set on the first "spawn()" call in the pipeline.');if(t===null)throw new Error('The "stdout" option must be set on the last "spawn()" call in the pipeline.');Hr(t,i).catch(()=>{})}catch(t){throw await Promise.allSettled(s.map(({nodeChildProcess:i})=>pu(i))),t}},pu=async s=>{const{stdin:t}=await s;t.end()},Ai=async function*(s,{state:t},i){if(t.isIterating===!1)throw new Error(`The subprocess must be iterated right away, for example:
81
81
  for await (const line of spawn(...)) { ... }`);t.isIterating=!0;try{const{[i]:n}=await s.nodeChildProcess;if(!n)return;yield*Ur.createInterface({input:n})}finally{await s}},mu=async function*(...s){try{let t=[];for(;s.length>0;){t=s.map((e,u)=>t[u]??Eu(e));const[{value:i,done:n},r]=await Promise.race(t.map((e,u)=>Promise.all([e,u]))),[a]=s.splice(r,1);t.splice(r,1),n||(s.push(a),yield i)}}finally{await Promise.all(s.map(t=>t.return()))}},Eu=async s=>{try{return await s.next()}catch(t){await s.throw(t)}};function xt(s,t,i,n){const[r=[],a={}]=Array.isArray(t)?[t,i]:[[],t],e=Zn([s,...r]),u=Jn(a),h=cu(s,r,u,e);let m=ou(h,u,e);Object.assign(m,{nodeChildProcess:h}),m=n?fu([n,m]):m;const y=Ai(m,e,"stdout"),p=Ai(m,e,"stderr");return Object.assign(m,{nodeChildProcess:h,stdout:y,stderr:p,[Symbol.asyncIterator]:()=>mu(y,p),pipe:(C,w,b)=>xt(C,w,b,m)})}function Si(s){return s.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join("")}async function Tt(s){try{return await(await import("prettier")).format(s,{parser:"typescript"})}catch{return s}}const gu="https://raw.githubusercontent.com/wrtnlabs/connectors/refs/heads/main/connectors-list.json",$t="@wrtnlabs/connector-";function Cu(s){return`${$t}${s}`}function Fu(s){return s.replace($t,"")}async function yu(){const s=await(await fetch(gu)).json();return(()=>{const t=u=>Array.isArray(u.connectors)&&u.connectors.every(h=>typeof h=="object"&&h!==null&&i(h))&&typeof u.version=="string",i=u=>typeof u.name=="string"&&RegExp(/^@wrtnlabs\/connector\x2d(.*)/).test(u.name)&&Array.isArray(u.envList)&&u.envList.every(h=>typeof h=="string"),n=(u,h,m=!0)=>((Array.isArray(u.connectors)||ne._assertGuard(m,{method:"typia.assert",path:h+".connectors",expected:"Array<UnwrapTaggedConnectorInfo>",value:u.connectors},e))&&u.connectors.every((y,p)=>(typeof y=="object"&&y!==null||ne._assertGuard(m,{method:"typia.assert",path:h+".connectors["+p+"]",expected:"UnwrapTaggedConnectorInfo",value:y},e))&&r(y,h+".connectors["+p+"]",m)||ne._assertGuard(m,{method:"typia.assert",path:h+".connectors["+p+"]",expected:"UnwrapTaggedConnectorInfo",value:y},e))||ne._assertGuard(m,{method:"typia.assert",path:h+".connectors",expected:"Array<UnwrapTaggedConnectorInfo>",value:u.connectors},e))&&(typeof u.version=="string"||ne._assertGuard(m,{method:"typia.assert",path:h+".version",expected:"string",value:u.version},e)),r=(u,h,m=!0)=>(typeof u.name=="string"&&RegExp(/^@wrtnlabs\/connector\x2d(.*)/).test(u.name)||ne._assertGuard(m,{method:"typia.assert",path:h+".name",expected:"`@wrtnlabs/connector-${string}`",value:u.name},e))&&((Array.isArray(u.envList)||ne._assertGuard(m,{method:"typia.assert",path:h+".envList",expected:"Array<string>",value:u.envList},e))&&u.envList.every((y,p)=>typeof y=="string"||ne._assertGuard(m,{method:"typia.assert",path:h+".envList["+p+"]",expected:"string",value:y},e))||ne._assertGuard(m,{method:"typia.assert",path:h+".envList",expected:"Array<string>",value:u.envList},e)),a=u=>typeof u=="object"&&u!==null&&t(u);let e;return(u,h)=>(a(u)===!1&&(e=h,((m,y,p=!0)=>(typeof m=="object"&&m!==null||ne._assertGuard(!0,{method:"typia.assert",path:y+"",expected:"UnwrapTaggedConnectors",value:m},e))&&n(m,y+"",!0)||ne._assertGuard(!0,{method:"typia.assert",path:y+"",expected:"UnwrapTaggedConnectors",value:m},e))(u,"$input",!0)),u)})()(s)}async function bu(){return(await yu()).connectors.map(({name:s,envList:t})=>{const i=Fu(s),n=i.replace("-"," ").toUpperCase();return{packageName:s,serviceName:i,displayName:n,envList:t}})}function Nt(s){return s.map(t=>{const i=Si(t);return`{
82
82
  name: "${i} Connector",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agentica",
3
3
  "type": "module",
4
- "version": "0.27.2",
4
+ "version": "0.28.0",
5
5
  "description": "Agentic AI Library specialized in LLM Function Calling",
6
6
  "author": "Wrtn Technologies",
7
7
  "license": "MIT",