@isdk/ai-tool 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/{chunk-COXUI4Q3.mjs → chunk-O367BMRE.mjs} +1 -1
  2. package/dist/funcs.mjs +1 -1
  3. package/dist/index.d.mts +2 -1
  4. package/dist/index.d.ts +2 -1
  5. package/dist/index.js +1 -1
  6. package/dist/index.mjs +1 -1
  7. package/docs/classes/AbortError.md +8 -8
  8. package/docs/classes/AlreadyExistsError.md +8 -8
  9. package/docs/classes/BaseError.md +8 -8
  10. package/docs/classes/CancelableAbility.md +20 -20
  11. package/docs/classes/ClientTools.md +55 -55
  12. package/docs/classes/CommonError.md +8 -8
  13. package/docs/classes/EventClient.md +77 -77
  14. package/docs/classes/EventServer.md +78 -78
  15. package/docs/classes/EventToolFunc.md +46 -46
  16. package/docs/classes/FStringPromptTemplate.md +18 -18
  17. package/docs/classes/FewShotPromptTemplate.md +22 -22
  18. package/docs/classes/GolangPromptTemplate.md +18 -18
  19. package/docs/classes/HFEnvironment.md +9 -9
  20. package/docs/classes/HFInterpreter.md +19 -19
  21. package/docs/classes/HFTemplate.md +4 -4
  22. package/docs/classes/HfPromptTemplate.md +18 -18
  23. package/docs/classes/IntSet.md +12 -12
  24. package/docs/classes/NotFoundError.md +8 -8
  25. package/docs/classes/NotImplementationError.md +8 -8
  26. package/docs/classes/PromptExampleSelector.md +8 -8
  27. package/docs/classes/PromptTemplate.md +17 -17
  28. package/docs/classes/ReadableStreamError.md +8 -8
  29. package/docs/classes/ResClientTools.md +61 -61
  30. package/docs/classes/ResServerTools.md +62 -62
  31. package/docs/classes/SSEChannel.md +15 -15
  32. package/docs/classes/Semaphore.md +14 -14
  33. package/docs/classes/ServerTools.md +51 -51
  34. package/docs/classes/TaskAbortController.md +7 -7
  35. package/docs/classes/ToolFunc.md +43 -43
  36. package/docs/enums/AsyncFeatureBits.md +3 -3
  37. package/docs/enums/AsyncFeatures.md +3 -3
  38. package/docs/enums/ErrorCode.md +21 -21
  39. package/docs/enums/XXHashAlgorithm.md +2 -2
  40. package/docs/interfaces/AIChatAssistantMessageParam.md +6 -6
  41. package/docs/interfaces/AIChatContentPartImage.md +2 -2
  42. package/docs/interfaces/AIChatContentPartText.md +2 -2
  43. package/docs/interfaces/AIChatMessageParamBase.md +1 -1
  44. package/docs/interfaces/AIChatMessageToolCall.md +3 -3
  45. package/docs/interfaces/AIChatSystemMessageParam.md +3 -3
  46. package/docs/interfaces/AIChatToolMessageParam.md +4 -4
  47. package/docs/interfaces/AIChatUserMessageParam.md +7 -7
  48. package/docs/interfaces/AIChoiceConfig.md +7 -7
  49. package/docs/interfaces/AIResult.md +5 -5
  50. package/docs/interfaces/AIStreamParser.md +1 -1
  51. package/docs/interfaces/AIStreamParserOptions.md +1 -1
  52. package/docs/interfaces/BaseFunc.md +9 -9
  53. package/docs/interfaces/BaseFuncItem.md +8 -8
  54. package/docs/interfaces/CancelableAbilityOptions.md +2 -2
  55. package/docs/interfaces/ClientFuncItem.md +11 -11
  56. package/docs/interfaces/DotenvExpandOptions.md +3 -3
  57. package/docs/interfaces/DotenvExpandOutput.md +2 -2
  58. package/docs/interfaces/EventClientFuncParams.md +4 -4
  59. package/docs/interfaces/EventServerFuncParams.md +5 -5
  60. package/docs/interfaces/FewShotPromptTemplateOptions.md +11 -11
  61. package/docs/interfaces/FuncItem.md +9 -9
  62. package/docs/interfaces/FuncParam.md +6 -6
  63. package/docs/interfaces/ParseObjectArgumentOptions.md +5 -5
  64. package/docs/interfaces/PromptExampleSelectorOptions.md +2 -2
  65. package/docs/interfaces/PromptTemplateOptions.md +6 -6
  66. package/docs/interfaces/RemoteFuncItem.md +11 -11
  67. package/docs/interfaces/ResClientFuncParams.md +2 -2
  68. package/docs/interfaces/ResServerFuncParams.md +5 -5
  69. package/docs/interfaces/SanitizeFilenameOptions.md +2 -2
  70. package/docs/interfaces/ServerFuncItem.md +12 -12
  71. package/docs/interfaces/ServerFuncParams.md +2 -2
  72. package/docs/interfaces/StreamCallbacksAndOptions.md +4 -4
  73. package/docs/interfaces/TaskPromise.md +1 -1
  74. package/docs/interfaces/ToolFuncPackage.md +3 -3
  75. package/docs/modules.md +152 -131
  76. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var t,e=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,i=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,a=(t,e,i,a)=>{if(e&&"object"==typeof e||"function"==typeof e)for(let c of s(e))o.call(t,c)||c===i||n(t,c,{get:()=>e[c],enumerable:!(a=r(e,c))||a.enumerable});return t},c=(t,r,s)=>(s=null!=t?e(i(t)):{},a(!r&&t&&t.__esModule?s:n(s,"default",{value:t,enumerable:!0}),t)),u={};((t,e)=>{for(var r in e)n(t,r,{get:e[r],enumerable:!0})})(u,{AIArgProcessor:()=>Lr,AIChatRoles:()=>q,AIMessageTypes:()=>P,AIStream:()=>Ue,AITextGenerationFinishReasons:()=>R,AbortError:()=>A,AbortErrorCode:()=>v,ActionNames:()=>h,AlreadyExistsError:()=>k,AlreadyExistsErrorCode:()=>g,AsyncFeatureBits:()=>Or,AsyncFeatures:()=>Tr,BaseError:()=>E,CancelableAbility:()=>Ir,ChoiceArgProcessor:()=>Ur,ClientToolFuncSchema:()=>rs,ClientTools:()=>ns,CommonError:()=>x,ConfigFile:()=>Jn.Config,DefaultAsyncSemaphoreCapacity:()=>hr,ErrorCode:()=>d,EventBusName:()=>Ae,EventClient:()=>ms,EventName:()=>ke,EventServer:()=>xs,EventToolFunc:()=>as,FStringPromptTemplate:()=>re,FewShotPromptTemplate:()=>ce,FilenameReservedRegex:()=>cn,GolangPromptTemplate:()=>oe,HFBuiltins:()=>Dt,HFEnvironment:()=>Kt,HFInterpreter:()=>_t,HFTemplate:()=>Gt,HfPromptTemplate:()=>Yt,IntSet:()=>lr,InternalErrorCode:()=>m,NotFoundError:()=>S,NotFoundErrorCode:()=>b,NotImplementationError:()=>$,NotImplementedErrorCode:()=>y,PASSING_SCORE:()=>f,PromptExampleSelector:()=>W,PromptTemplate:()=>z,PromptTemplateTypes:()=>U,PromptTypes:()=>B,RStreamErrCode:()=>Fe,RateLimit:()=>gr,ReadableStreamError:()=>Me,RemoteToolFuncSchema:()=>p,ResClientTools:()=>ds,ResServerTools:()=>vs,ResponseRStreamErrCode:()=>Ie,SSEChannel:()=>Ce,SSEChannelAlreadyClosedErrCode:()=>je,Semaphore:()=>br,ServerToolFuncSchema:()=>is,ServerTools:()=>ss,TaskAbortController:()=>Fr,TemplateArgProcessor:()=>_r,ToolAsyncCancelableBit:()=>kr,ToolAsyncMultiTaskBit:()=>Sr,ToolAsyncPriorityBit:()=>Ar,ToolFunc:()=>jr,ToolFuncSchema:()=>Cr,WindowsReservedNameRegex:()=>un,XXHashAlgorithm:()=>rn,_lrucache:()=>ls,backendEventable:()=>Oe,base32768:()=>Xe,canonicalize:()=>Ze.canonicalize,countRegexMatches:()=>Rr,createAbilityInjector:()=>l.createAbilityInjector,createCallbacksTransformer:()=>Le,createEmptyReadableStream:()=>Pe,createEndWithRepetitionDetector:()=>In,createError:()=>O,createEventStreamTransformer:()=>Ve,createHfValueFunc:()=>Qt,createLRUCache:()=>fs,dateToText:()=>M,defaultTemplateFormat:()=>L,event:()=>cs,eventClient:()=>ys,eventServer:()=>$s,expandEnv:()=>he,expandObjEnv:()=>pe,extNameLevel:()=>En,fileIsExists:()=>Pn,filenameReservedRegex:()=>wn,filterValidFnScope:()=>Cn,formatISO:()=>C.formatISO,getAllEnumKeys:()=>Sn,getConfigFileNames:()=>Yn,getConfigs:()=>Qn,getKeysPath:()=>Nn,getMultiLevelExtname:()=>vn,getRealFilepath:()=>_n,getResponseErrorReadableStream:()=>Re,hfParse:()=>kt,hfTokenize:()=>tt,interpolateEnv:()=>fe,interpolateFString:()=>ee,interpolateGolangTemplate:()=>ie,isModelNameMatched:()=>$n,isValidFilename:()=>mn,isValidFilepath:()=>yn,isWebStream:()=>Ne,jsonFilterToWhere:()=>ir,jsonToMarkdownStr:()=>ur,loadFileFromPaths:()=>qn,loadTextFromPaths:()=>Bn,lrucache:()=>hs,makeToolFuncCancelable:()=>Mr,matchUrlProtocol:()=>or,memoize:()=>es,messagesToText:()=>V,mimeType:()=>Kn.mimeType,paramsSizeToScaleStr:()=>ar,parseCommand:()=>Zr,parseDateFormat:()=>j.parse,parseFString:()=>te,parseISO:()=>C.parseISO,parseJsJson:()=>On,parseObjectArgInfo:()=>Gr,parseObjectArgumentInfos:()=>Br,parseObjectArguments:()=>Vr,parseObjectArgumentsAsArgInfos:()=>Hr,parseYaml:()=>Xn,quoteStr:()=>Jr,reControlCharsRegex:()=>dn,readFilenamesRecursiveSync:()=>Un,readableFromAsyncIterable:()=>_e,registerCoreTools:()=>Ss,registerYamlTag:()=>Zn,sanitizeFilename:()=>bn,sanitizeFilepath:()=>gn,saveConfigFile:()=>tr,scaleStrToParamsSize:()=>cr,sortedValues:()=>ae,splitSentence:()=>Ee,stringifyYaml:()=>Gn.stringify,textToDate:()=>I,throwError:()=>T,toDate:()=>C.toDate,toDateTime:()=>F,trimStartOfStreamHelper:()=>Be,truncTo:()=>xe,uuid:()=>Ke,uuidNIL:()=>De.NIL,uuidParse:()=>De.parse,uuidStringify:()=>De.stringify,uuidValidate:()=>De.validate,uuidVersion:()=>De.version,uuidv1:()=>De.v1,uuidv4:()=>De.v4,uuidv5:()=>De.v5,wait:()=>$e,xxhash:()=>sn,xxhash32:()=>en,xxhash64:()=>nn,xxhashAsStr:()=>on}),module.exports=(t=u,a(n({},"__esModule",{value:!0}),t));var l=require("custom-ability"),f=.618,h=["get","post","put","delete","patch","list","res"],p={apiRoot:{type:"string",get(){return this._apiRoot??this.constructor.apiRoot},set(t){this._apiRoot=t}},action:{type:"string",assign:(t,e,n,r,s)=>t||"post"},fetchOptions:{type:"object"},allowExportFunc:{type:"boolean"}},w=require("abstract-error"),d=(t=>(t[t.OK=200]="OK",t[t.Accepted=202]="Accepted",t[t.BadRequest=400]="BadRequest",t[t.InvalidArgument=400]="InvalidArgument",t[t.Unauthorized=401]="Unauthorized",t[t.PaymentRequired=402]="PaymentRequired",t[t.Forbidden=403]="Forbidden",t[t.NotFound=404]="NotFound",t[t.MethodNotAllowed=405]="MethodNotAllowed",t[t.NotAcceptable=406]="NotAcceptable",t[t.RequestTimeout=408]="RequestTimeout",t[t.Conflict=409]="Conflict",t[t.Corruption=409]="Corruption",t[t.TooManyRequests=429]="TooManyRequests",t[t.Aborted=499]="Aborted",t[t.InternalError=500]="InternalError",t[t.NotImplemented=501]="NotImplemented",t[t.NotSupported=501]="NotSupported",t[t.BadGateway=502]="BadGateway",t[t.ServiceUnavailable=503]="ServiceUnavailable",t[t.GatewayTimeout=504]="GatewayTimeout",t))(d||{}),m=500,y=501,b=404,g=409,v=499,E=class t extends w.AbstractError{static createErrorClass(e,n,r=t){return(0,w.createErrorClass)(e,n,r)}constructor(t,e,n){super(t,e);const r=this.constructor;null!=e?this.code=e:r.code?this.code=r.code:this.code=r.name,n?"string"==typeof n?this.name=n:Object.assign(this,n):"string"==typeof this.code?this.name=this.code:this.name=r.name}toJSON(){const t={name:this.name,code:this.code,data:this.data,caller:this.caller,error:this.message,stack:this.stack};return Object.keys(t).forEach((e=>void 0===t[e]&&delete t[e])),t}fromJSON(e){const n=new t(e.message);return n.code=e.code,n.data=e.data,n.caller=e.caller,n.message=e.error,n.stack=e.stack,n}},x=class extends E{constructor(t,e,n=m){super(t,n,e)}},$=class extends x{constructor(t,e){t||(t="Not Implementation."),super(t,e,501)}};x[y]=$;var S=class extends x{static{this.code=b}constructor(t,e){super(`Could not find ${t}.`,e,b),this.data={what:t}}};x[b]=S;var k=class extends x{static{this.code=g}constructor(t,e){super(`The ${t} already exists.`,e,g),this.data={what:t}}};x[g]=k;var A=class extends x{static{this.code=v}constructor(t,e){e||(e="AbortError"),super(t?`The operation was aborted for ${t}.`:"The operation was aborted.",e,v),t&&(this.data={what:t})}};function O(t,e,n=m){const r=new(x[n]||x)(t,e,n);return"number"!=typeof r.code&&(r.code=n),r}function T(t,e,n=m){throw O(t,e,n)}x[v]=A;var j=require("date-fns"),C=require("date-fns"),N="MMMM d, y 'at' h:m:s b 'GMT'x";function F(t){let e;try{"string"==typeof t?e=(0,j.parseISO)(t):"number"==typeof t?e=new Date(t):t instanceof Date&&(e=t)}catch(t){console.error(t)}return e}function I(t,e=N){return(0,j.parse)(t,e,new Date)}function M(t,e=N){return(0,j.format)(t,e)}var R=["stop","length","content-filter","tool-calls","abort","error","other",null],P=["human","ai","generic","system","tool"],q=["user","assistant","system","tool","tool_calls"];function V(t){let e="";for(const n of t)if(n.content){e+=n.role.toLowerCase()+":";let t=n.createdAt;if(t){const n=F(t);n&&(e+=" ["+M(n)+"]")}e+=" "+n.content+"\n"}return e}var B=["chat","char","plan"],U=["internal","hf","fill"],_=require("custom-factory");var L="default",z=class t extends _.BaseFactory{static from(t,e){return new this(t,e)}static async format(t){return new this(t).format()}static async formatIf(t){if(this.isTemplate(t)){return new this(t).format()}}static isTemplate(e){if(e?.template){const n=e.templateFormat||L,r=t.get(n);return r.isTemplate!==t.isTemplate&&r.isTemplate(e)}}filterData(t){return Array.isArray(this.inputVariables)&&(t=Object.fromEntries(Object.entries(t).filter((([t])=>this.inputVariables.includes(t))))),t}constructor(e,n){"string"==typeof e?(n||(n={}),n.template=e):e&&(e=(n=e).template);const{templateFormat:r}=n||{};if(super(n),this.constructor===t){const e=t.get(r||L);if(e)return Reflect.construct(e,arguments);throw new x(`Prompt template type ${r} not found`,"PromptTemplate",400)}}_initialize(t){throw new $("Not implemented","PromptTemplate")}initialize(e){this.constructor!==t&&(Object.assign(this,this.toJSON(e)),e?.ignoreInitialize||this._initialize(e))}_format(t){throw new $("Not implemented","PromptTemplate")}async format(e){const n=this.data;if(e={...n,...e},n)for(const[t,r]of Object.entries(n))e[t]===r&&"function"==typeof r&&(delete e[t],e[t]=await r(e));for(const[n,r]of Object.entries(e))r instanceof t&&(delete e[n],e[n]=await r.format(e));return this._format(e)}partial(t){t={...this.data,...t};const e=this.toJSON();return e.data=t,e.ignoreInitialize=!0,new this.constructor(e)}toJSON(e=this){let n={template:e.template,data:e.data,inputVariables:e.inputVariables,compiledTemplate:e.compiledTemplate};var r;return e.templateFormat&&t.get(e.templateFormat)!==this.constructor&&(n.templateFormat=e.templateFormat),r=n,n=Object.keys(r).reduce(((t,e)=>{const n=r[e];return null!=n&&(t[e]=n),t}),{}),n}};function J(t){return(e=t)&&"function"==typeof e[Symbol.iterator]?async function*(t){const e=t[Symbol.iterator]();let n;try{for(;;){n=!1;const t=e.next();if(n=!0,t.done)return n=!1,await t.value;yield await t.value}}finally{n&&await(e.return?.().value)}}(t):t;var e}var D=!1;(async function(){let t=!1,e=!1;try{for await(const e of function*(){try{yield Promise.reject()}finally{t=!0}}())throw new Error("impossible")}catch{e=!0}return e&&t})().then((t=>{D=t}));var W=class{constructor(t,e){this.initialize(t,e)}initialize(t,e){const n=e?.maxLength;var r;n>0&&(this.maxLength=n),void 0!==e?.threshold&&(!0===e.threshold?this.threshold=.5:!1!==e.threshold&&(this.threshold=e.threshold)),this.examples=(r=t,D?r:J(r))}selectExample(t,e){if(void 0===e||e<=this.threshold)return t}async*selectExamples(t=this.examples){let e=this.maxLength||1/0;for await(const n of t){const t="number"==typeof this.threshold?Math.random():void 0;if(this.selectExample(n,t)){if(--e<0)break;yield n}}}async*[Symbol.asyncIterator](){yield*this.selectExamples()}},K=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",BooleanLiteral:"BooleanLiteral",StringLiteral:"StringLiteral",Identifier:"Identifier",Equals:"Equals",OpenParen:"OpenParen",CloseParen:"CloseParen",OpenStatement:"OpenStatement",CloseStatement:"CloseStatement",OpenExpression:"OpenExpression",CloseExpression:"CloseExpression",OpenSquareBracket:"OpenSquareBracket",CloseSquareBracket:"CloseSquareBracket",OpenCurlyBracket:"OpenCurlyBracket",CloseCurlyBracket:"CloseCurlyBracket",Comma:"Comma",Dot:"Dot",Colon:"Colon",Pipe:"Pipe",CallOperator:"CallOperator",AdditiveBinaryOperator:"AdditiveBinaryOperator",MultiplicativeBinaryOperator:"MultiplicativeBinaryOperator",ComparisonBinaryOperator:"ComparisonBinaryOperator",UnaryOperator:"UnaryOperator",Set:"Set",If:"If",For:"For",In:"In",Is:"Is",NotIn:"NotIn",Else:"Else",EndIf:"EndIf",ElseIf:"ElseIf",EndFor:"EndFor",And:"And",Or:"Or",Not:"UnaryOperator",Macro:"Macro",EndMacro:"EndMacro"}),G=Object.freeze({set:K.Set,for:K.For,in:K.In,is:K.Is,if:K.If,else:K.Else,endif:K.EndIf,elif:K.ElseIf,endfor:K.EndFor,and:K.And,or:K.Or,not:K.Not,"not in":K.NotIn,macro:K.Macro,endmacro:K.EndMacro,true:K.BooleanLiteral,false:K.BooleanLiteral,True:K.BooleanLiteral,False:K.BooleanLiteral}),H=class{constructor(t,e){this.value=t,this.type=e}};function Z(t){return/\w/.test(t)}function X(t){return/[0-9]/.test(t)}var Y=[["{%",K.OpenStatement],["%}",K.CloseStatement],["{{",K.OpenExpression],["}}",K.CloseExpression],["(",K.OpenParen],[")",K.CloseParen],["{",K.OpenCurlyBracket],["}",K.CloseCurlyBracket],["[",K.OpenSquareBracket],["]",K.CloseSquareBracket],[",",K.Comma],[".",K.Dot],[":",K.Colon],["|",K.Pipe],["<=",K.ComparisonBinaryOperator],[">=",K.ComparisonBinaryOperator],["==",K.ComparisonBinaryOperator],["!=",K.ComparisonBinaryOperator],["<",K.ComparisonBinaryOperator],[">",K.ComparisonBinaryOperator],["+",K.AdditiveBinaryOperator],["-",K.AdditiveBinaryOperator],["*",K.MultiplicativeBinaryOperator],["/",K.MultiplicativeBinaryOperator],["%",K.MultiplicativeBinaryOperator],["=",K.Equals]],Q=new Map([["n","\n"],["t","\t"],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function tt(t,e={}){const n=[],r=function(t,e={}){return t.endsWith("\n")&&(t=t.slice(0,-1)),t=t.replace(/{#.*?#}/gs,"{##}"),e.lstrip_blocks&&(t=t.replace(/^[ \t]*({[#%])/gm,"$1")),e.trim_blocks&&(t=t.replace(/([#%]})\n/g,"$1")),t.replace(/{##}/g,"").replace(/-%}\s*/g,"%}").replace(/\s*{%-/g,"{%").replace(/-}}\s*/g,"}}").replace(/\s*{{-/g,"{{")}(t,e);let s=0;const i=t=>{let e="";for(;t(r[s]);)if("\\"!==r[s]){if(e+=r[s++],s>=r.length)throw new SyntaxError("Unexpected end of input")}else{if(++s,s>=r.length)throw new SyntaxError("Unexpected end of input");const t=r[s++],n=Q.get(t);if(void 0===n)throw new SyntaxError(`Unexpected escaped character: ${t}`);e+=n}return e};t:for(;s<r.length;){const t=n.at(-1)?.type;if(void 0===t||t===K.CloseStatement||t===K.CloseExpression){let t="";for(;s<r.length&&("{"!==r[s]||"%"!==r[s+1]&&"{"!==r[s+1]);)t+=r[s++];if(t.length>0){n.push(new H(t,K.Text));continue}}i((t=>/\s/.test(t)));const e=r[s];if("-"===e||"+"===e){const t=n.at(-1)?.type;if(t===K.Text||void 0===t)throw new SyntaxError(`Unexpected character: ${e}`);switch(t){case K.Identifier:case K.NumericLiteral:case K.BooleanLiteral:case K.StringLiteral:case K.CloseParen:case K.CloseSquareBracket:break;default:{++s;const t=i(X);n.push(new H(`${e}${t}`,t.length>0?K.NumericLiteral:K.UnaryOperator));continue}}}for(const[t,e]of Y){if(r.slice(s,s+t.length)===t){n.push(new H(t,e)),s+=t.length;continue t}}if("'"!==e&&'"'!==e)if(X(e)){const t=i(X);n.push(new H(t,K.NumericLiteral))}else{if(!Z(e))throw new SyntaxError(`Unexpected character: ${e}`);{const t=i(Z),e=Object.hasOwn(G,t)?G[t]:K.Identifier;e===K.In&&n.at(-1)?.type===K.Not?(n.pop(),n.push(new H("not in",K.NotIn))):n.push(new H(t,e))}}else{++s;const t=i((t=>t!==e));n.push(new H(t,K.StringLiteral)),++s}}return n}var et=class{constructor(){this.type="Statement"}},nt=class extends et{constructor(t){super(),this.body=t,this.type="Program"}},rt=class extends et{constructor(t,e,n){super(),this.test=t,this.body=e,this.alternate=n,this.type="If"}},st=class extends et{constructor(t,e,n,r){super(),this.loopvar=t,this.iterable=e,this.body=n,this.defaultBlock=r,this.type="For"}},it=class extends et{constructor(t,e){super(),this.assignee=t,this.value=e,this.type="Set"}},ot=class extends et{constructor(t,e,n){super(),this.name=t,this.args=e,this.body=n,this.type="Macro"}},at=class extends et{constructor(){super(...arguments),this.type="Expression"}},ct=class extends at{constructor(t,e,n){super(),this.object=t,this.property=e,this.computed=n,this.type="MemberExpression"}},ut=class extends at{constructor(t,e){super(),this.callee=t,this.args=e,this.type="CallExpression"}},lt=class extends at{constructor(t){super(),this.value=t,this.type="Identifier"}},ft=class extends at{constructor(t){super(),this.value=t,this.type="Literal"}},ht=class extends ft{constructor(){super(...arguments),this.type="NumericLiteral"}},pt=class extends ft{constructor(){super(...arguments),this.type="StringLiteral"}},wt=class extends ft{constructor(){super(...arguments),this.type="BooleanLiteral"}},dt=class extends ft{constructor(){super(...arguments),this.type="ArrayLiteral"}},mt=class extends ft{constructor(){super(...arguments),this.type="TupleLiteral"}},yt=class extends ft{constructor(){super(...arguments),this.type="ObjectLiteral"}},bt=class extends at{constructor(t,e,n){super(),this.operator=t,this.left=e,this.right=n,this.type="BinaryExpression"}},gt=class extends at{constructor(t,e){super(),this.operand=t,this.filter=e,this.type="FilterExpression"}},vt=class extends at{constructor(t,e){super(),this.iterable=t,this.test=e,this.type="SelectExpression"}},Et=class extends at{constructor(t,e,n){super(),this.operand=t,this.negate=e,this.test=n,this.type="TestExpression"}},xt=class extends at{constructor(t,e){super(),this.operator=t,this.argument=e,this.type="UnaryExpression"}},$t=class extends at{constructor(t=void 0,e=void 0,n=void 0){super(),this.start=t,this.stop=e,this.step=n,this.type="SliceExpression"}},St=class extends at{constructor(t,e){super(),this.key=t,this.value=e,this.type="KeywordArgumentExpression"}};function kt(t){const e=new nt([]);let n=0;function r(e,r){const s=t[n++];if(!s||s.type!==e)throw new Error(`Parser Error: ${r}. ${s.type} !== ${e}.`);return s}function s(){let e;switch(t[n].type){case K.Text:e=new pt(r(K.Text,"Expected text token").value);break;case K.OpenStatement:e=function(){let e;switch(r(K.OpenStatement,"Expected opening statement token"),t[n].type){case K.Set:++n,e=a(),r(K.CloseStatement,"Expected closing statement token");break;case K.If:++n,e=c(),r(K.OpenStatement,"Expected {% token"),r(K.EndIf,"Expected endif token"),r(K.CloseStatement,"Expected %} token");break;case K.Macro:++n,e=function(){const t=E();if("Identifier"!==t.type)throw new SyntaxError("Expected identifier following macro statement");const e=y();r(K.CloseStatement,"Expected closing statement token");const n=[];for(;i(K.OpenStatement,K.EndMacro);)n.push(s());return new ot(t,e,n)}(),r(K.OpenStatement,"Expected {% token"),r(K.EndMacro,"Expected endmacro token"),r(K.CloseStatement,"Expected %} token");break;case K.For:++n,e=function(){const t=u(!0);if(!(t instanceof lt||t instanceof mt))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${t.type} instead`);r(K.In,"Expected `in` keyword following loop variable");const e=l();r(K.CloseStatement,"Expected closing statement token");const a=[];for(;i(K.OpenStatement,K.EndFor)&&i(K.OpenStatement,K.Else);)a.push(s());const c=[];if(o(K.OpenStatement,K.Else))for(++n,++n,r(K.CloseStatement,"Expected closing statement token");i(K.OpenStatement,K.EndFor);)c.push(s());return new st(t,e,a,c)}(),r(K.OpenStatement,"Expected {% token"),r(K.EndFor,"Expected endfor token"),r(K.CloseStatement,"Expected %} token");break;default:throw new SyntaxError(`Unknown statement type: ${t[n].type} ${t[n].value}`)}return e}(),e.isStatement=!0;break;case K.OpenExpression:e=function(){r(K.OpenExpression,"Expected opening expression token");const t=l();return r(K.CloseExpression,"Expected closing expression token"),t}(),e.isStatement=!0;break;default:throw new SyntaxError(`Unexpected token type: ${t[n].type}`)}return e}function i(...e){return n+e.length<=t.length&&e.some(((e,r)=>e!==t[n+r].type))}function o(...e){return n+e.length<=t.length&&e.every(((e,r)=>e===t[n+r].type))}function a(){const t=l();if(o(K.Equals)){++n;const e=a();return new it(t,e)}return t}function c(){const e=l();r(K.CloseStatement,"Expected closing statement token");const i=[],a=[];for(;t[n]?.type!==K.OpenStatement||t[n+1]?.type!==K.ElseIf&&t[n+1]?.type!==K.Else&&t[n+1]?.type!==K.EndIf;)i.push(s());if(t[n]?.type===K.OpenStatement&&t[n+1]?.type!==K.EndIf)if(++n,o(K.ElseIf))r(K.ElseIf,"Expected elseif token"),a.push(c());else for(r(K.Else,"Expected else token"),r(K.CloseStatement,"Expected closing statement token");t[n]?.type!==K.OpenStatement||t[n+1]?.type!==K.EndIf;)a.push(s());return new rt(e,i,a)}function u(t=!1){const e=t?E:l,r=[e()],s=o(K.Comma);for(;s&&(++n,r.push(e()),o(K.Comma)););return s?new mt(r):r[0]}function l(){return function(){const t=f();if(o(K.If)){++n;const e=f();if(o(K.Else)){++n;const r=f();return new rt(e,[t],[r])}return new vt(t,e)}return t}()}function f(){let e=h();for(;o(K.Or);){const r=t[n];++n;const s=h();e=new bt(r,e,s)}return e}function h(){let e=p();for(;o(K.And);){const r=t[n];++n;const s=p();e=new bt(r,e,s)}return e}function p(){let e;for(;o(K.Not);){const r=t[n];++n;const s=p();e=new xt(r,s)}return e??function(){let e=w();for(;o(K.ComparisonBinaryOperator)||o(K.In)||o(K.NotIn);){const r=t[n];++n;const s=w();e=new bt(r,e,s)}return e}()}function w(){let e=g();for(;o(K.AdditiveBinaryOperator);){const r=t[n];++n;const s=g();e=new bt(r,e,s)}return e}function d(){const e=function(){let e=E();for(;o(K.Dot)||o(K.OpenSquareBracket);){const s=t[n];let i;++n;const o=s.type!==K.Dot;if(o)i=b(),r(K.CloseSquareBracket,"Expected closing square bracket");else if(i=E(),"Identifier"!==i.type)throw new SyntaxError("Expected identifier following dot operator");e=new ct(e,i,o)}return e}();return o(K.OpenParen)?m(e):e}function m(t){let e=new ut(t,y());return o(K.OpenParen)&&(e=m(e)),e}function y(){r(K.OpenParen,"Expected opening parenthesis for arguments list");const t=function(){const t=[];for(;!o(K.CloseParen);){let e=l();if(o(K.Equals)){if(++n,!(e instanceof lt))throw new SyntaxError("Expected identifier for keyword argument");const t=l();e=new St(e,t)}t.push(e),o(K.Comma)&&++n}return t}();return r(K.CloseParen,"Expected closing parenthesis for arguments list"),t}function b(){const t=[];let e=!1;for(;!o(K.CloseSquareBracket);)o(K.Colon)?(t.push(void 0),++n,e=!0):(t.push(l()),o(K.Colon)&&(++n,e=!0));if(0===t.length)throw new SyntaxError("Expected at least one argument for member/slice expression");if(e){if(t.length>3)throw new SyntaxError("Expected 0-3 arguments for slice expression");return new $t(...t)}return t[0]}function g(){let e=v();for(;o(K.MultiplicativeBinaryOperator);){const r=t[n];++n;const s=v();e=new bt(r,e,s)}return e}function v(){let t=function(){let t=d();for(;o(K.Pipe);){++n;let e=E();if(!(e instanceof lt))throw new SyntaxError("Expected identifier for the filter");o(K.OpenParen)&&(e=m(e)),t=new gt(t,e)}return t}();for(;o(K.Is);){++n;const e=o(K.Not);e&&++n;let r=E();if(r instanceof wt&&(r=new lt(r.value.toString())),!(r instanceof lt))throw new SyntaxError("Expected identifier for the test");t=new Et(t,e,r)}return t}function E(){const e=t[n];switch(e.type){case K.NumericLiteral:return++n,new ht(Number(e.value));case K.StringLiteral:return++n,new pt(e.value);case K.BooleanLiteral:return++n,new wt("true"===e.value.toLowerCase());case K.Identifier:return++n,new lt(e.value);case K.OpenParen:{++n;const e=u();if(t[n].type!==K.CloseParen)throw new SyntaxError(`Expected closing parenthesis, got ${t[n].type} instead`);return++n,e}case K.OpenSquareBracket:{++n;const t=[];for(;!o(K.CloseSquareBracket);)t.push(l()),o(K.Comma)&&++n;return++n,new dt(t)}case K.OpenCurlyBracket:{++n;const t=new Map;for(;!o(K.CloseCurlyBracket);){const e=l();r(K.Colon,"Expected colon between key and value in object literal");const s=l();t.set(e,s),o(K.Comma)&&++n}return++n,new yt(t)}default:throw new SyntaxError(`Unexpected token: ${e.type}`)}}for(;n<t.length;)e.body.push(s());return e}function At(t,e,n=1){void 0===e&&(e=t,t=0);const r=[];for(let s=t;s<e;s+=n)r.push(s);return r}function Ot(t,e,n,r=1){const s=Math.sign(r);s>=0?(e=(e??=0)<0?Math.max(t.length+e,0):Math.min(e,t.length),n=(n??=t.length)<0?Math.max(t.length+n,0):Math.min(n,t.length)):(e=(e??=t.length-1)<0?Math.max(t.length+e,-1):Math.min(e,t.length-1),n=(n??=-1)<-1?Math.max(t.length+n,-1):Math.min(n,t.length-1));const i=[];for(let o=e;s*o<s*n;o+=r)i.push(t[o]);return i}function Tt(t){return t.replace(/\b\w/g,(t=>t.toUpperCase()))}var jt=class{constructor(t=void 0){this.type="RuntimeValue",this.builtins=new Map,this.value=t}__bool__(){return new Ft(!!this.value)}toString(){return""+this.value}toJSON(){return this.value}},Ct=class extends jt{constructor(){super(...arguments),this.type="NumericValue"}},Nt=class t extends jt{constructor(){super(...arguments),this.type="StringValue",this.builtins=new Map([["upper",new qt((()=>new t(this.value.toUpperCase())))],["lower",new qt((()=>new t(this.value.toLowerCase())))],["strip",new qt((()=>new t(this.value.trim())))],["title",new qt((()=>new t(Tt(this.value))))],["length",new Ct(this.value.length)],["rstrip",new qt((()=>new t(this.value.trimEnd())))],["lstrip",new qt((()=>new t(this.value.trimStart())))]])}},Ft=class extends jt{constructor(){super(...arguments),this.type="BooleanValue"}},It=class extends jt{constructor(t,e){super(t),this.orgValue=e,this.type="ObjectValue",this.builtins=new Map([["get",new qt((([t,e])=>{if(!(t instanceof Nt))throw new Error(`Object key must be a string: got ${t.type}`);return this.value.get(t.value)??e??new Vt}))],["items",new qt((()=>new Rt(Array.from(this.value.entries()).map((([t,e])=>new Rt([new Nt(t),e]))))))]])}toString(){let t;return t=this.orgValue&&this.orgValue.toString!==Object.prototype.toString?this.orgValue.toString():JSON.stringify(Object.fromEntries(this.value.entries())),t}toJSON(){return this.orgValue?this.orgValue:Object.fromEntries(this.value.entries())}__bool__(){return new Ft(this.value.size>0)}},Mt=class extends It{constructor(){super(...arguments),this.type="KeywordArgumentsValue"}},Rt=class extends jt{constructor(){super(...arguments),this.type="ArrayValue",this.builtins=new Map([["length",new Ct(this.value.length)]])}__bool__(){return new Ft(this.value.length>0)}},Pt=class extends Rt{constructor(){super(...arguments),this.type="TupleValue"}},qt=class extends jt{constructor(){super(...arguments),this.type="FunctionValue"}},Vt=class extends jt{constructor(){super(...arguments),this.type="NullValue"}},Bt=class extends jt{constructor(){super(...arguments),this.type="UndefinedValue"}},Ut=class{constructor(t){this.parent=t,this.variables=new Map([["namespace",new qt((t=>{if(0===t.length)return new It(new Map);if(1!==t.length||!(t[0]instanceof It))throw new Error("`namespace` expects either zero arguments or a single object argument");return t[0]}))]]),this.tests=new Map([["boolean",t=>"BooleanValue"===t.type],["callable",t=>t instanceof qt],["odd",t=>{if("NumericValue"!==t.type)throw new Error(`Cannot apply test "odd" to type: ${t.type}`);return t.value%2!=0}],["even",t=>{if("NumericValue"!==t.type)throw new Error(`Cannot apply test "even" to type: ${t.type}`);return t.value%2==0}],["false",t=>"BooleanValue"===t.type&&!t.value],["true",t=>"BooleanValue"===t.type&&t.value],["string",t=>"StringValue"===t.type],["number",t=>"NumericValue"===t.type],["integer",t=>"NumericValue"===t.type&&Number.isInteger(t.value)],["iterable",t=>t instanceof Rt||t instanceof Nt],["lower",t=>{const e=t.value;return"StringValue"===t.type&&e===e.toLowerCase()}],["upper",t=>{const e=t.value;return"StringValue"===t.type&&e===e.toUpperCase()}],["none",t=>"NullValue"===t.type],["defined",t=>"UndefinedValue"!==t.type],["undefined",t=>"UndefinedValue"===t.type],["equalto",(t,e)=>t.value===e.value],["eq",(t,e)=>t.value===e.value]])}set(t,e){return this.declareVariable(t,Lt(e))}declareVariable(t,e){if(this.variables.has(t))throw new SyntaxError(`Variable already declared: ${t}`);return this.variables.set(t,e),e}setVariable(t,e){return this.variables.set(t,e),e}resolve(t){if(this.variables.has(t))return this;if(this.parent)return this.parent.resolve(t);throw new Error(`Unknown variable: ${t}`)}lookupVariable(t){try{return this.resolve(t).variables.get(t)??new Bt}catch{return new Bt}}},_t=class{constructor(t){this.global=t??new Ut}run(t){return this.evaluate(t,this.global)}evaluateBinaryExpression(t,e){const n=this.evaluate(t.left,e);switch(t.operator.value){case"and":return n.__bool__().value?this.evaluate(t.right,e):n;case"or":return n.__bool__().value?n:this.evaluate(t.right,e)}const r=this.evaluate(t.right,e);switch(t.operator.value){case"==":return new Ft(n.value==r.value);case"!=":return new Ft(n.value!=r.value)}if(n instanceof Bt||r instanceof Bt)throw new Error("Cannot perform operation on undefined values");if(n instanceof Vt||r instanceof Vt)throw new Error("Cannot perform operation on null values");if(n instanceof Ct&&r instanceof Ct)switch(t.operator.value){case"+":return new Ct(n.value+r.value);case"-":return new Ct(n.value-r.value);case"*":return new Ct(n.value*r.value);case"/":return new Ct(n.value/r.value);case"%":return new Ct(n.value%r.value);case"<":return new Ft(n.value<r.value);case">":return new Ft(n.value>r.value);case">=":return new Ft(n.value>=r.value);case"<=":return new Ft(n.value<=r.value)}else if(n instanceof Rt&&r instanceof Rt){if("+"===t.operator.value)return new Rt(n.value.concat(r.value))}else if(r instanceof Rt){const e=void 0!==r.value.find((t=>t.value===n.value));switch(t.operator.value){case"in":return new Ft(e);case"not in":return new Ft(!e)}}if((n instanceof Nt||r instanceof Nt)&&"+"===t.operator.value)return new Nt(n.toString()+r.toString());if(n instanceof Nt&&r instanceof Nt)switch(t.operator.value){case"in":return new Ft(r.value.includes(n.value));case"not in":return new Ft(!r.value.includes(n.value))}if(n instanceof Nt&&r instanceof It)switch(t.operator.value){case"in":return new Ft(r.value.has(n.value));case"not in":return new Ft(!r.value.has(n.value))}throw new SyntaxError(`Unknown operator "${t.operator.value}" between ${n.type} and ${r.type}`)}evaluateArguments(t,e){const n=[],r=new Map;for(const s of t)if("KeywordArgumentExpression"===s.type){const t=s;r.set(t.key.value,this.evaluate(t.value,e))}else{if(r.size>0)throw new Error("Positional arguments must come before keyword arguments");n.push(this.evaluate(s,e))}return[n,r]}evaluateFilterExpression(t,e){const n=this.evaluate(t.operand,e);if("Identifier"===t.filter.type){const r=t.filter,s=e.lookupVariable(r.value);if(s instanceof qt)return s.value([n],e);if(n instanceof Rt)switch(r.value){case"list":return n;case"first":return n.value[0];case"last":return n.value[n.value.length-1];case"length":return new Ct(n.value.length);case"reverse":return new Rt(n.value.reverse());case"sort":return new Rt(n.value.sort(((t,e)=>{if(t.type!==e.type)throw new Error(`Cannot compare different types: ${t.type} and ${e.type}`);switch(t.type){case"NumericValue":return t.value-e.value;case"StringValue":return t.value.localeCompare(e.value);default:throw new Error(`Cannot compare type: ${t.type}`)}})));default:throw new Error(`Unknown ArrayValue filter: ${r.value}`)}else if(n instanceof Nt)switch(r.value){case"length":return new Ct(n.value.length);case"upper":return new Nt(n.value.toUpperCase());case"lower":return new Nt(n.value.toLowerCase());case"title":return new Nt(Tt(n.value));case"capitalize":return new Nt(n.value.charAt(0).toUpperCase()+n.value.slice(1));case"trim":return new Nt(n.value.trim());case"trimStart":return new Nt(n.value.trimStart());case"trimEnd":return new Nt(n.value.trimEnd());case"indent":return new Nt(n.value.split("\n").map(((t,e)=>0===e||0===t.length?t:" "+t)).join("\n"));case"string":return n;default:throw new Error(`Unknown StringValue filter: ${r.value}`)}else{if(n instanceof Ct){if("abs"===r.value)return new Ct(Math.abs(n.value));throw new Error(`Unknown NumericValue filter: ${r.value}`)}if(n instanceof It)switch(r.value){case"items":return new Rt(Array.from(n.value.entries()).map((([t,e])=>new Rt([new Nt(t),e]))));case"length":return new Ct(n.value.size);case"string":return new Nt(n.toString());default:throw new Error(`Unknown ObjectValue filter: ${r.value}`)}}throw new Error(`Cannot apply filter "${r.value}" to type: ${n.type}`)}if("CallExpression"===t.filter.type){const r=t.filter;if("Identifier"!==r.callee.type)throw new Error(`Unknown filter: ${r.callee.type}`);const s=r.callee.value,i=e.lookupVariable(s);if(i instanceof qt){const[t,s]=this.evaluateArguments(r.args,e);return s.size>0&&t.push(new Mt(s)),i.value([n,...t],e)}if(n instanceof Rt){switch(s){case"selectattr":{if(n.value.some((t=>!(t instanceof It))))throw new Error("`selectattr` can only be applied to array of objects");if(r.args.some((t=>"StringLiteral"!==t.type)))throw new Error("arguments of `selectattr` must be strings");const[t,s,i]=r.args.map((t=>this.evaluate(t,e)));let o;if(s){const t=e.tests.get(s.value);if(!t)throw new Error(`Unknown test: ${s.value}`);o=t}else o=(...t)=>t[0].__bool__().value;const a=n.value.filter((e=>{const n=e.value.get(t.value);return!!n&&o(n,i)}));return new Rt(a)}case"map":{const[,t]=this.evaluateArguments(r.args,e);if(t.has("attribute")){const e=t.get("attribute");if(!(e instanceof Nt))throw new Error("attribute must be a string");const r=t.get("default"),s=n.value.map((t=>{if(!(t instanceof It))throw new Error("items in map must be an object");return t.value.get(e.value)??r??new Bt}));return new Rt(s)}throw new Error("`map` expressions without `attribute` set are not currently supported.")}}throw new Error(`Unknown ArrayValue filter: ${s}`)}if(n instanceof Nt){if("indent"===s){const[t,s]=this.evaluateArguments(r.args,e),i=t.at(0)??s.get("width")??new Ct(4);if(!(i instanceof Ct))throw new Error("width must be a number");const o=t.at(1)??s.get("first")??new Ft(!1),a=t.at(2)??s.get("blank")??new Ft(!1),c=n.value.split("\n"),u=" ".repeat(i.value),l=c.map(((t,e)=>!o.value&&0===e||!a.value&&0===t.length?t:u+t));return new Nt(l.join("\n"))}throw new Error(`Unknown StringValue filter: ${s}`)}throw new Error(`Cannot apply filter "${s}" to type: ${n.type}`)}throw new Error(`Unknown filter: ${t.filter.type}`)}evaluateTestExpression(t,e){const n=this.evaluate(t.operand,e),r=e.tests.get(t.test.value);if(!r)throw new Error(`Unknown test: ${t.test.value}`);const s=r(n);return new Ft(t.negate?!s:s)}evaluateUnaryExpression(t,e){const n=this.evaluate(t.argument,e);if("not"===t.operator.value)return new Ft(!n.value);throw new SyntaxError(`Unknown operator: ${t.operator.value}`)}evalProgram(t,e){return this.evaluateBlock(t.body,e)}evaluateBlock(t,e){let n="";for(const r of t){const t=this.evaluate(r,e);"NullValue"!==t.type&&"UndefinedValue"!==t.type&&(n+=t)}return new Nt(n)}evaluateIdentifier(t,e){return e.lookupVariable(t.value)}evaluateCallExpression(t,e){const[n,r]=this.evaluateArguments(t.args,e);r.size>0&&n.push(new Mt(r));const s=this.evaluate(t.callee,e);if("FunctionValue"!==s.type)throw new Error(`Cannot call something that is not a function: got ${s.type}`);return s.value(n,e)}evaluateSliceExpression(t,e,n){if(!(t instanceof Rt||t instanceof Nt))throw new Error("Slice object must be an array or string");const r=this.evaluate(e.start,n),s=this.evaluate(e.stop,n),i=this.evaluate(e.step,n);if(!(r instanceof Ct||r instanceof Bt))throw new Error("Slice start must be numeric or undefined");if(!(s instanceof Ct||s instanceof Bt))throw new Error("Slice stop must be numeric or undefined");if(!(i instanceof Ct||i instanceof Bt))throw new Error("Slice step must be numeric or undefined");return t instanceof Rt?new Rt(Ot(t.value,r.value,s.value,i.value)):new Nt(Ot(Array.from(t.value),r.value,s.value,i.value).join(""))}evaluateMemberExpression(t,e){const n=this.evaluate(t.object,e);let r,s;if(t.computed){if("SliceExpression"===t.property.type)return this.evaluateSliceExpression(n,t.property,e);r=this.evaluate(t.property,e)}else r=new Nt(t.property.value);if(n instanceof It){if(!(r instanceof Nt))throw new Error(`Cannot access property with non-string: got ${r.type}`);s=n.value.get(r.value)??n.builtins.get(r.value)}else if(n instanceof Rt||n instanceof Nt)if(r instanceof Ct)s=n.value.at(r.value),n instanceof Nt&&(s=new Nt(n.value.at(r.value)));else{if(!(r instanceof Nt))throw new Error(`Cannot access property with non-string/non-number: got ${r.type}`);s=n.builtins.get(r.value)}else{if(!(r instanceof Nt))throw new Error(`Cannot access property with non-string: got ${r.type}`);s=n.builtins.get(r.value)}return s instanceof jt?s:new Bt}evaluateSet(t,e){const n=this.evaluate(t.value,e);if("Identifier"===t.assignee.type){const r=t.assignee.value;e.setVariable(r,n)}else{if("MemberExpression"!==t.assignee.type)throw new Error(`Invalid LHS inside assignment expression: ${JSON.stringify(t.assignee)}`);{const r=t.assignee,s=this.evaluate(r.object,e);if(!(s instanceof It))throw new Error("Cannot assign to member of non-object");if("Identifier"!==r.property.type)throw new Error("Cannot assign to member with non-identifier property");s.value.set(r.property.value,n)}}return new Vt}evaluateIf(t,e){const n=this.evaluate(t.test,e);return this.evaluateBlock(n.__bool__().value?t.body:t.alternate,e)}evaluateFor(t,e){const n=new Ut(e);let r,s;if("SelectExpression"===t.iterable.type){const e=t.iterable;s=this.evaluate(e.iterable,n),r=e.test}else s=this.evaluate(t.iterable,n);if(!(s instanceof Rt))throw new Error(`Expected iterable type in for loop: got ${s.type}`);const i=[],o=[];for(let e=0;e<s.value.length;++e){const a=new Ut(n),c=s.value[e];let u;if("Identifier"===t.loopvar.type)u=e=>e.setVariable(t.loopvar.value,c);else{if("TupleLiteral"!==t.loopvar.type)throw new Error(`Invalid loop variable(s): ${t.loopvar.type}`);{const e=t.loopvar;if("ArrayValue"!==c.type)throw new Error(`Cannot unpack non-iterable type: ${c.type}`);const n=c;if(e.value.length!==n.value.length)throw new Error(`Too ${e.value.length>n.value.length?"few":"many"} items to unpack`);u=t=>{for(let r=0;r<e.value.length;++r){if("Identifier"!==e.value[r].type)throw new Error(`Cannot unpack non-identifier type: ${e.value[r].type}`);t.setVariable(e.value[r].value,n.value[r])}}}}if(r){u(a);if(!this.evaluate(r,a).__bool__().value)continue}i.push(c),o.push(u)}let a="",c=!0;for(let e=0;e<i.length;++e){const r=new Map([["index",new Ct(e+1)],["index0",new Ct(e)],["revindex",new Ct(i.length-e)],["revindex0",new Ct(i.length-e-1)],["first",new Ft(0===e)],["last",new Ft(e===i.length-1)],["length",new Ct(i.length)],["previtem",e>0?i[e-1]:new Bt],["nextitem",e<i.length-1?i[e+1]:new Bt]]);n.setVariable("loop",new It(r)),o[e](n);a+=this.evaluateBlock(t.body,n).value,c=!1}if(c){a+=this.evaluateBlock(t.defaultBlock,n).value}return new Nt(a)}evaluateMacro(t,e){return e.setVariable(t.name.value,new qt(((e,n)=>{const r=new Ut(n);let s;e=e.slice(),"KeywordArgumentsValue"===e.at(-1)?.type&&(s=e.pop());for(let n=0;n<t.args.length;++n){const i=t.args[n],o=e[n];if("Identifier"===i.type){const t=i;if(!o)throw new Error(`Missing positional argument: ${t.value}`);r.setVariable(t.value,o)}else{if("KeywordArgumentExpression"!==i.type)throw new Error(`Unknown argument type: ${i.type}`);{const t=i,e=o??s?.value.get(t.key.value)??this.evaluate(t.value,r);r.setVariable(t.key.value,e)}}}return this.evaluateBlock(t.body,r)}))),new Vt}evaluate(t,e){if(void 0===t)return new Bt;switch(t.type){case"Program":return this.evalProgram(t,e);case"Set":return this.evaluateSet(t,e);case"If":return this.evaluateIf(t,e);case"For":return this.evaluateFor(t,e);case"Macro":return this.evaluateMacro(t,e);case"NumericLiteral":return new Ct(Number(t.value));case"StringLiteral":return new Nt(t.value);case"BooleanLiteral":return new Ft(t.value);case"ArrayLiteral":return new Rt(t.value.map((t=>this.evaluate(t,e))));case"TupleLiteral":return new Pt(t.value.map((t=>this.evaluate(t,e))));case"ObjectLiteral":{const n=new Map;for(const[r,s]of t.value){const t=this.evaluate(r,e);if(!(t instanceof Nt))throw new Error(`Object keys must be strings: got ${t.type}`);n.set(t.value,this.evaluate(s,e))}return new It(n,t.value)}case"Identifier":return this.evaluateIdentifier(t,e);case"CallExpression":return this.evaluateCallExpression(t,e);case"MemberExpression":return this.evaluateMemberExpression(t,e);case"UnaryExpression":return this.evaluateUnaryExpression(t,e);case"BinaryExpression":return this.evaluateBinaryExpression(t,e);case"FilterExpression":return this.evaluateFilterExpression(t,e);case"TestExpression":return this.evaluateTestExpression(t,e);default:throw new SyntaxError(`Unknown node type: ${t.type}`)}}};function Lt(t){switch(typeof t){case"number":return new Ct(t);case"string":return new Nt(t);case"boolean":return new Ft(t);case"undefined":return new Bt;case"object":return null===t?new Vt:Array.isArray(t)?new Rt(t.map(Lt)):new It(new Map(Object.entries(t).map((([t,e])=>[t,Lt(e)]))),t);case"function":return new qt(((e,n)=>{const r=e.map((t=>zt(t)));return Lt(t(...r)??null)}));default:throw new Error(`Cannot convert to runtime value: ${t}`)}}function zt(t){let e=t;if(Array.isArray(t))e=t.map((t=>zt(t)));else if(t instanceof Map)e={},t.forEach(((t,n)=>{e[n]=zt(t)}));else switch(t.type){case"NullValue":e=null;break;case"UndefinedValue":e=void 0;break;case"ArrayValue":e=t.value.map((t=>zt(t)));break;case"KeywordArgumentsValue":case"ObjectValue":e=t.orgValue?t.orgValue:zt(t.value),"KeywordArgumentsValue"===t.type&&Object.setPrototypeOf(e,{jinja_kargs:!0});break;default:t.type&&(e=t.value)}return e}function Jt(t,e=0){return Math.floor(Math.random()*(t-e+1))+e}var Dt={randomInt:Jt,select:function(t,e){if(Array.isArray(t)||"string"==typeof t)return void 0===e?e=Jt(t.length-1):"string"==typeof e&&(e=parseInt(e)),e<0&&(e=t.length+e),t[e];if(t&&"object"==typeof t){if(void 0===e){const n=Object.keys(t);e=n[Jt(n.length-1)]}return t[e]}},tojson:function(t,e,n){return e&&"object"==typeof e&&(e.depth&&(n=e.depth),e=e.indent),Wt(t,e,n)}};function Wt(t,e,n){let r="";const s=n??0;if(null===t)r="null";else{const n=typeof t;switch(n){case"undefined":r="null";case"number":case"string":case"boolean":return JSON.stringify(t);case"object":{const n=e?" ".repeat(e):"",r="\n"+n.repeat(s),i=r+n;if(Array.isArray(t)){const n=t.map((t=>Wt(t,e,s+1)));return e?`[${i}${n.join(`,${i}`)}${r}]`:`[${n.join(", ")}]`}{const n=Array.from(Object.entries(t)).map((([t,n])=>{const r=`"${t}": ${Wt(n,e,s+1)}`;return e?`${i}${r}`:r}));return e?`{${n.join(",")}${r}}`:`{${n.join(", ")}}`}}default:throw new Error(`Cannot convert to JSON: ${n}`)}}return r}var Kt=class extends Ut{constructor(t){super(t),this.parent=t}assign(t){for(const[e,n]of Object.entries(t))this.set(e,n)}clear(){this.variables.clear()}},Gt=class t{static{this.global=new Kt}constructor(t,e={}){const n=tt(t,e={lstrip_blocks:!0,trim_blocks:!0,...e});this.parsed=kt(n)}render(e){const n=new Ut(t.global);n.set("false",!1),n.set("true",!0),n.set("raise_exception",(t=>{throw new Error(t)})),n.set("range",At);for(const[t,r]of Object.entries(e))n.set(t,r);return new _t(n).run(this.parsed).toString()}};function Ht(t,e){let n;switch(t.type){case"Identifier":n=t.value;break;case"MemberExpression":n=Ht(t.object,e);break;case"FilterExpression":n=Ht(t.operand,e);break;case"Set":{e||(e=[]);const r=Ht(t.assignee);r&&e.push(r),n=Ht(t.value,e);break}}return n&&e?.includes(n)&&(n=void 0),n}function Zt(t){let e;if("Program"===t.type)e=t.body.some((t=>Zt(t)));else e=t.isStatement;return e}function Xt(t,e){let n=[];if(Array.isArray(t))n=t.map((t=>Xt(t,e))).filter(Boolean).flat();else switch(t.type){case"Program":n=t.body.map((t=>Xt(t,e))).filter(Boolean).flat();break;case"If":n=[Ht(t.test,e),...Xt(t.body,e),...Xt(t.alternate,e)].filter(Boolean);break;case"BinaryExpression":n=[Ht(t.left,e),Ht(t.right,e)].filter(Boolean);break;case"For":{const r=Ht(t.loopvar);r&&(e||(e=[]),e.push(r)),n=[Ht(t.iterable,e),...Xt(t.body,e)].filter(Boolean);break}case"CallExpression":n=[Ht(t.callee,e),...Xt(t.args,e)].filter(Boolean);break;default:n=[Ht(t,e)].filter(Boolean)}return n}Gt.global.assign(Dt);var Yt=class extends z{static isTemplate(t){let e,n,r=!1;if("object"==typeof t?(n=t.template,e=t.compiledTemplate):n=t,!e&&n)try{e=new Gt(n)}catch(t){}return e&&(r=Zt(e.parsed)),r}getVariables(t=this.compiledTemplate){return Xt(t.parsed,[]).filter(((t,e,n)=>n.indexOf(t)===e))}_initialize(t){const e=t?.template;if("string"!=typeof e)throw new x("Prompt template must be a string","PromptTemplate",400);this.compiledTemplate=new Gt(e),this.inputVariables=Array.isArray(t?.inputVariables)?t.inputVariables:this.getVariables()}_format(t){return this.compiledTemplate.render(t)}};function Qt(t){return function(e){return t}}function te(t){const e=t.split(""),n=[],r=(t,n)=>{for(let r=n;r<e.length;r+=1)if(t.includes(e[r]))return r;return-1};let s=0;for(;s<e.length;)if("{"===e[s]&&s+1<e.length&&"{"===e[s+1])n.push({type:"literal",text:"{"}),s+=2;else if("}"===e[s]&&s+1<e.length&&"}"===e[s+1])n.push({type:"literal",text:"}"}),s+=2;else if("{"===e[s]){const t=r("}",s);if(t<0)throw new Error("Unclosed '{' in template.");n.push({type:"variable",name:e.slice(s+1,t).join("")}),s=t+1}else{if("}"===e[s])throw new Error("Single '}' in template.");{const t=r("{}",s),i=(t<0?e.slice(s):e.slice(s,t)).join("");n.push({type:"literal",text:i}),s=t<0?e.length:t}}return n}function ee(t,e){return t.reduce(((t,n)=>{let r;return r="variable"===n.type?n.name in e?t+e[n.name]:t:t+n.text,r}),"")}function ne(t){const e=new Set;return t.forEach((t=>{"variable"===t.type&&e.add(t.name)})),[...e]}z.register(Yt,{name:"hf",aliases:["huggingface","internal","default"]});var re=class extends z{static isTemplate(t){let e,n,r=!1;if("object"==typeof t?(n=t.template,e=t.compiledTemplate):n=t,!e&&n)try{e=te(n)}catch(t){}if(e){r=ne(e).length>0}return r}getVariables(t=this.compiledTemplate){return ne(t)}_initialize(t){const e=t?.template;if("string"!=typeof e)throw new x("Prompt template must be a string","PromptTemplate",400);this.compiledTemplate=te(e),this.inputVariables=Array.isArray(t?.inputVariables)?t.inputVariables:this.getVariables()}_format(t){return ee(this.compiledTemplate,t)}};function se(t,e){return"string"==typeof e&&(e=e.split(".").filter((t=>t.length))),e.reduce(((t,e)=>t?.[e]),t)}function ie(t,e,n){let r=function(t,e,n){return t.replace(/{{\s*re_replace\s+\.(.+?)\s+(["'])([^\2]*?)\2\s+(["'])([^\4]*?)\4\s*}}/g,((t,r,s,i,o,a)=>{if(n)return e[r]=null,t;const c=new RegExp(i,"g");return se(e,r).replace(c,a)}))}(t,e,n);return r=function(t,e,n){return t.replace(/{{\s*join\s+\.(.+?)\s+(["'])([^\2]*?)\2\s*}}/g,((t,r,s,i)=>n?(e[r]=null,t):se(e,r).join(i)))}(r,e,n),r=function(t,e,n){return t.replace(/{{\s*if\s*(\S+?)\s*}}([^{]*)({{\s*else\s*}}([^{]*))?{{\s*end\s*}}/g,((t,r,s,i,o)=>{if(n)return r.startsWith(".")&&(r=r.substring(1)),e[r]=null,t;let a;if(!r.startsWith("."))throw new Error("Functionality not implemented");{const t=se(e,r.substring(1));if(null==t)a=o??"";else if("string"==typeof t)a=t.length>0?s:o??"";else if(Array.isArray(t))a=t.length>0?s:o??"";else{if("boolean"!=typeof t)throw new Error(`Unexpected type for variable ${r}: ${typeof t}`);a=t?s:o??""}}return a}))}(r,e,n),r=function(t,e,n){return t.replace(/{{\s*range\s*[.$]([^{}\s]+?)\s*}}([^{]*?){{\.}}([^{]*?){{\s*end\s*}}/g,((t,r,s,i)=>{if(n)return e[r]=null,t;const o=se(e,r);if(Array.isArray(o)){let t="";for(const e of o)t+=`${s}${e}${i}`;return t}return t}))}(r,e,n),r=function(t,e,n){return t.replace(/{{\s*\.([^{}\s]+?)\s*}}/g,((t,r)=>n?(e[r]=null,t):se(e,r)||""))}(r,e,n),r=function(t,e,n){return t.replace(/{{\s*index\s*\.(.+?)\s+(.+?)\s*}}/g,((t,r,s)=>{if(n)return e[r]=null,t;const i=se(e,r);let o;return o=isNaN(s)?i[s.substring(1,s.length-1)]:i[parseInt(s,10)],o||""}))}(r,e,n),r}z.register(re,{name:"fstring",aliases:["python","f-string","langchain"]});var oe=class extends z{static isTemplate(t){const e="string"==typeof t?t:t.template;return e?.includes("{{")&&e.includes("}}")}getVariables(t){const e={};return ie(t,e,!0),[...Object.keys(e)]}_initialize(t){const e=t?.template;if("string"!=typeof e)throw new x("Prompt template must be a string","PromptTemplate",400);this.inputVariables=Array.isArray(t?.inputVariables)?t.inputVariables:this.getVariables(e)}_format(t){return ie(this.template,t)}};function ae(t){return Object.keys(t).sort().map((e=>t[e]))}z.register(oe,{name:"golang",aliases:["localai","ollama"]});var ce=class extends z{static from(t){return new this(t)}constructor(t){super(t)}_initialize(t){t&&(t.suffix&&(this.suffix=t.suffix),t.exampleSeparator&&(this.exampleSeparator=t.exampleSeparator),t.prefix&&(this.prefix=t.prefix),t.examplePrompt&&(this.examplePrompt=t.examplePrompt instanceof z?t.examplePrompt:z.from(t.examplePrompt)),t.examples&&(this.examples=t.examples)),this.prefix||(this.prefix=""),this.exampleSeparator||(this.exampleSeparator="\n\n"),this.suffix||(this.suffix="")}async _format(t){const e=[];for await(const t of this.examples)if(this.examplePrompt){const n=await this.examplePrompt.format(t);e.push(n)}else if("string"==typeof t)e.push(t);else if(t){const n=ae(t);n.length>0&&e.push(...n)}const n=[this.prefix,...e,this.suffix].join(this.exampleSeparator),r=this.templateFormat;return await z.format({template:n,data:t,templateFormat:r})}toJSON(t=this){const e=super.toJSON(t);return t.suffix&&(e.suffix=t.suffix),t.exampleSeparator&&(e.exampleSeparator=t.exampleSeparator),t.prefix&&(e.prefix=t.prefix),t.examplePrompt&&(e.examplePrompt=t.examplePrompt),t.examples&&(e.examples=t.examples),e}};z.register(ce,{name:"fewshot",aliases:["few_shot"]});var ue=/(\\)?(\$)(?!\()(\{?)([\w.]+)(?::?-((?:\$\{(?:\$\{(?:\$\{[^}]*\}|[^}])*}|[^}])*}|[^}])+))?(\}?)/gi;function le(t){return t.replace(/\\\$/g,"$")}function fe(t,e,n){return t.replace(ue,((r,s,i,o,a,c,u)=>"\\"===s?r.slice(1):e[a]?e[a]===n[a]?e[a]:fe(e[a],e,n):n[a]?n[a]===t?n[a]:fe(n[a],e,n):c?c.startsWith("$")?fe(c,e,n):c:""))}function he(t){let e=process.env;t&&null!=t.processEnv&&(e=t.processEnv);for(const n in t.parsed){let r=t.parsed[n];if(!r)continue;r=Object.prototype.hasOwnProperty.call(e,n)?e[n]===t.parsed[n]?fe(r,e,t.parsed):e[n]:fe(r,e,t.parsed),t.parsed[n]=r?le(r):r}for(const n in t.parsed)e[n]=t.parsed[n];return t}function pe(t,e={},n){switch(n||(n=new WeakSet),e.processEnv||(e.processEnv={...process.env}),e.parsed||(e.parsed=e.processEnv),typeof t){case"string":t=fe(t,e.processEnv,e.parsed);break;case"object":if(n.has(t))return t;if(n.add(t),Array.isArray(t))for(let r=0;r<t.length;r++){const s=t[r];"string"!=typeof s&&"object"!=typeof s||(t[r]=pe(t[r],e,n))}else for(const[r,s]of Object.entries(t))"string"!=typeof s&&"object"!=typeof s||(t[r]=pe(s,e,n))}return t}var we="@",de=/(\S.+?[.!?])(?=\s+|$)|(\S.+?)(?=[\n]|$)/g,me=/([A-Z][a-z]{1,2}\.)\s(\w)/g,ye=/(\.[a-zA-Z]\.)\s(\w)/g,be=new RegExp("([A-Z][a-z]{1,2}\\.)"+we+"(\\w)","g"),ge=new RegExp("(\\.[a-zA-Z]\\.)"+we+"(\\w)","g");function ve(t,e,n){const r="$1"+e+"$2";let s=t;for(let t=0;t<n.length;t++)s=s.replace(n[t],r);return s}function Ee(t,e=!0){const n=(t=(t=(t=(t=(t=t.replace(/([。!??])\1+/g,"$1")).replace(/([。!??])([^”’])/g,"$1\n$2")).replace(/(\.{6})([^”’])/g,"$1\n$2")).replace(/(…{2})([^”’])/g,"$1\n$2")).replace(/([。!??][”’])([^,。!??])/g,"$1\n$2")).split("\n");let r=[];for(let t=0;t<n.length;t++){let s=n[t].trim();if(!s)continue;if(!e){r.push(s);continue}let i=ve(s,we,[me,ye]),o=Array.from(i.matchAll(de));if(o.length)for(let t=0;t<o.length;t++){let e=ve(o[t][0]," ",[be,ge]);r.push(e)}else r.push(s)}return r}function xe(t,e=2,n=.5){const r=10**e;return Math.trunc((t+Number.EPSILON+n/r)*r)/r}async function $e(t){return new Promise((e=>setTimeout(e,t)))}var Se=require("custom-ability"),ke="event",Ae="event-bus";var Oe=(0,Se.createAbilityInjector)((function(t){return class{static get emitter(){if(!this._emitter){const t=this.get(Ae)?.emitter;t&&(this._emitter=t,this.prototype._events=t._events)}return this._emitter}get emitter(){return this.constructor._emitter}on(e,n){const r=t.emitter;if(!r)throw new TypeError("EventBackend required");return r.on(e,n)}once(e,n){const r=t.emitter;if(!r)throw new TypeError("EventBackend required");return r.once(e,n)}off(e,n){const r=t.emitter;if(!r)throw new TypeError("EventBackend required");return r.off(e,n)}emit(e,...n){const r=t.emitter;if(!r)throw new TypeError("EventBackend required");return"error"===e?this.emitError.apply(this,n):r.emit.call(this,e,this.name,...n)}emitError(e,...n){const r=t.emitter;if(!r)throw new TypeError("EventBackend required");return r.emit.call(this,"error",e,this.name,...n)}async emitAsync(e,...n){const r=t.emitter;if(!r)throw new TypeError("EventBackend required");return r.emitAsync.call(this,e,this.name,...n)}}}),!0);function Te(t,e){return!t||t.some((t=>t instanceof RegExp?t.test(e):t===e))}var je=498,Ce=class{get active(){return this._active}set active(t){t!==this._active&&(t?(this.pingTimer&&(clearInterval(this.pingTimer),this.pingTimer=void 0),this.options.pingInterval>0&&(this.pingTimer=setInterval((()=>this.publish()),this.options.pingInterval))):(this.clients.size&&this.clearClients(),this.pingTimer&&(clearInterval(this.pingTimer),this.pingTimer=void 0)),this._active=t)}constructor(t){this.options=Object.assign({},{pingInterval:3e3,maxStreamDuration:3e4,clientRetryInterval:1e3,startId:1,historySize:100,rewind:0,cors:!1},t),this.nextID=this.options.startId,this.clients=new Set,this.messages=[],this.active=!0}publish(t,e){let n,r;this.active||T("Channel closed","SSEChannel",je);let s=e;if(t||e)r=this.nextID++,"object"==typeof t&&(t.event?(s=t.event,void 0!==t.data&&(t=JSON.stringify(t.data))):t=JSON.stringify(t)),t=t?t.split(/[\r\n]+/).map((t=>"data: "+t)).join("\n"):"",n="id: "+r+"\n"+(e?"event: "+e+"\n":"")+(t||"data: ")+"\n\n",this.messages.push({id:r,_eventName:s,output:n});else{if(!this.clients.size)return;n="data: \n\n"}for([...this.clients].filter((t=>!s||Te(t.events,s))).forEach(((t,e)=>{t.res.write(n)}));this.messages.length>this.options.historySize;)this.messages.shift();return r}subscribe(t,e,n){this.active||T("Channel closed","SSEChannel",je);const r={req:t,res:e,events:n},s=this.options.maxStreamDuration;let i="max-age=0, stale-while-revalidate=0, stale-if-error=0, no-transform";s>0&&(i+=", s-maxage="+(Math.floor(s/1e3)-1));const o={"Content-Type":"text/event-stream","Cache-Control":i,Connection:"keep-alive"};this.options.cors&&(o["access-control-allow-origin"]="*"),r.req.socket.setNoDelay(!0),r.res.writeHead(200,o);let a="retry: "+this.options.clientRetryInterval+"\n\n";const c=Number.parseInt(t.headers["last-event-id"],10),u=Number.isNaN(c)?this.options.rewind:this.nextID-1-c;return u&&this.messages.filter((t=>Te(r.events,t.eventName))).slice(0-u).forEach((t=>{a+=t.output})),r.res.write(a),this.clients.add(r),s>0&&setTimeout((()=>{r.res.writableEnded||this.unsubscribe(r)}),s),r.res.on("close",(()=>this.unsubscribe(r))),r}unsubscribe(t){t.res.end(),this.clients.delete(t)}clearClients(){this.clients.forEach((t=>t.res.end())),this.clients.clear()}listClients(){const t={};return this.clients.forEach((e=>{const n=e.req.socket.remoteAddress??"";n in t||(t[n]=0),t[n]++})),t}getSubscriberCount(){return this.clients.size}};function Ne(t){return t instanceof ReadableStream||t instanceof WritableStream}var Fe=600,Ie=601,Me=class extends E{constructor(t,e=Fe){super(t,500)}};function Re(t){if(t){const e=t.getReader();return new ReadableStream({async start(t){const{done:n,value:r}=await e.read();if(!n){const e=(new TextDecoder).decode(r);t.error(new Me(`Response error: ${e}`,Ie))}}})}return new ReadableStream({start(t){t.error(new Me("Response error: No response body",Ie))}})}function Pe(){return new ReadableStream({start(t){t.close()}})}var qe=require("eventsource-parser");function Ve(t){const e=new TextDecoder;let n;return new TransformStream({async start(e){n=(0,qe.createParser)((n=>{if("data"in n&&"event"===n.type&&"[DONE]"===n.data||"done"===n.event)e.terminate();else if("data"in n){const r=t?t(n.data,{event:n.event}):n.data;r&&e.enqueue(r)}}))},transform(t){n.feed(e.decode(t))}})}function Be(){let t=!0;return e=>(t&&(e=e.trimStart())&&(t=!1),e)}function Ue(t,e){if(!t.ok)return Re(t.body);let n=t.body||new ReadableStream({start(t){t.close()}});return n instanceof ReadableStream||(n=ReadableStream.from(n)),n.pipeThrough(Ve(e))}function _e(t){let e=t[Symbol.asyncIterator]();return new ReadableStream({async pull(t){const{done:n,value:r}=await e.next();n?t.close():t.enqueue(r)},async cancel(t){await(e.return?.(t))}})}function Le(t){const e=t||{};return new TransformStream({async start(t){const n=t.error;if(t.error=r=>{n.call(t,r),e.onError&&e.onError(r)},e.onStart)try{await e.onStart(t)}catch(e){t.error(e)}},async transform(t,n){try{let r;e.onTransform&&(r=await e.onTransform(t,n)),r||(r=t),n.enqueue(r)}catch(t){n.error(t)}},async flush(t){if(e.onFinal)try{await e.onFinal(t)}catch(e){return t.error(e)}t.terminate()}})}var ze=require("uuid"),Je=c(require("base32768")),De=require("uuid"),We={1:ze.v1,4:ze.v4,5:ze.v5};function Ke(t=1,e){const n=We[t];return e?Je.encode(n(null,[])):n()}var Ge=c(require("xxhashjs")),He=c(require("base32768")),Ze=require("json-canonicalize"),Xe=He,{h32:Ye,h64:Qe}=Ge.default,tn=588213;function en(t,e=16){return"object"==typeof t&&(t=(0,Ze.canonicalize)(t)),Ye(t,tn).toString(e)}function nn(t,e=16){return"object"==typeof t&&(t=(0,Ze.canonicalize)(t)),Qe(t,tn).toString(e)}var rn=(t=>(t[t.xxhash64=111]="xxhash64",t[t.xxhash32=112]="xxhash32",t))(rn||{});function sn(t,e=111,n=tn){let r;return t.buffer&&(t=t.buffer),112!==e?(r=Qe(t,n),r=new Uint16Array([r._a00,r._a16,r._a32,r._a48]),r=new Uint8Array(r.buffer)):(r=Ye(t,n),r=new Uint16Array([r._low,r._high]),r=new Uint8Array(r.buffer)),r}function on(t,e=111,n=tn){return He.encode(sn(t,e,n))}var an=c(require("path")),cn=/[<>:"/\\|?*\u0000-\u001F]/,un=/^(con|prn|aux|nul|com\d|lpt\d)$/i,ln=100,fn=/^\.+(\\|\/)|^\.+$/,hn=/\.+$/,pn=/[\u0000-\u001F\u0080-\u009F\u200E\u200F\u202A-\u202E\u2066-\u2069]/;function wn(){return new RegExp(cn.source,"g")}function dn(){return new RegExp(pn.source,"g")}function mn(t){return t&&!(cn.test(t)||dn().test(t)||fn.test(t)||hn.test(t))}function yn(t){const e=t.split(an.default.sep);return("/"===t[0]||e[0]&&an.default.dirname(e[0])===e[0])&&e.shift(),e.every(mn)}function bn(t,e={}){const n=e.replacement||"!";if((cn.test(n)||pn.test(n))&&T("Replacement string cannot contain reserved filename characters","sanitizeFilename",400),n.length>0){const e=/([<>:"/\\|?*\u0000-\u001F]){2,}/;t=t.replace(e,"$1")}if(t=(t=(t=(t=(t=t.normalize("NFD")).replace(fn,n)).replace(wn(),n)).replace(dn(),n)).replace(hn,""),n.length>0){"."===t[0]||"."!==t[0]||(t=n+t),"."===t[t.length-1]&&(t+=n)}t=un.test(t)?t+n:t;const r="number"==typeof e.maxLength?e.maxLength:ln;if(t.length>r){const e=t.lastIndexOf(".");if(-1===e)t=t.slice(0,r);else{const n=t.slice(0,e),s=t.slice(e);t=n.slice(0,Math.max(1,r-s.length))+s}}return t}function gn(t,e={}){const n=t.split(an.default.sep);let r;("/"===t[0]||n[0]&&an.default.dirname(n[0])===n[0])&&(r=n.shift());const s=n.map((t=>bn(t,e)));return void 0!==r&&s.unshift(r),s.join(an.default.sep)}function vn(t,e=1){let n="";for(;e--;){const e=an.default.extname(t);if(!e)break;n=e+n,t=an.default.basename(t,e)}return n}function En(t){return t.split(".").length-1}var xn=require("util-ex");function $n(t,e){if("string"!=typeof t)throw new x("modelName must be a string","isModelNameMatched",400);switch(typeof e){case"string":if((0,xn.isRegExpStr)(e)){const n=(e=(0,xn.toRegExp)(e)).exec(t);if(n)return n}else if(t.toLowerCase()===e.toLowerCase())return e;break;case"object":if(Array.isArray(e)){for(const n of e)if("string"==typeof n){if((0,xn.isRegExpStr)(n)){const r=(e=(0,xn.toRegExp)(n)).exec(t);if(r)return r}else if(t.toLowerCase()===n.toLowerCase())return n}else if(n instanceof RegExp){const e=n.exec(t);if(e)return e}else if("function"==typeof n){const e=n.call(this,t);if(e)return e}}else if(e instanceof RegExp){const n=e.exec(t);if(n)return n}break;case"function":const n=e.call(this,t);if(n)return n}}function Sn(t){return Object.keys(t).filter((t=>Number.isNaN(Number(t))))}var kn=require("lodash-es"),An=require("util-ex");function On(t,e){if(e&&(e=Cn(e)),e){const n=Object.keys(e);if(n.length){const r=Object.values(e);return(0,An.newFunction)("expression",n,`return ${t}`)(...r)}}return(0,An.newFunction)("expression",[],`return ${t}`)()}var Tn=/^[a-zA-Z_$][0-9a-zA-Z_$]*$/,jn=t=>Tn.test(t);function Cn(t){if(t){const e=Object.keys(t),n=e.length,r=e.filter((e=>jn(e)&&null!==t[e]));if(n===r.length)return t;if(r.length)return t=(0,kn.pick)(t,r)}}function Nn(t){return t?Fn(t,[],""):[]}function Fn(t,e,n="."){return Array.isArray(t)?t.flatMap(((t,n)=>Fn(t,[...e,`[${n}]`]))):(r=t)&&r.constructor===Object?Object.entries(t).flatMap((([t,r])=>Fn(r,[...e,n+t]))):[e.join("")];var r}function In(t){if(t<2)throw new x("repetitionThreshold must be greater than 1","createEndWithRepetitionDetector",400);const e=new RegExp(`([\\S\\s]+)(\\1{${t-1},})$`);return function(t){return e.exec(t)}}var Mn=c(require("path")),Rn=c(require("fs"));function Pn(t){const e=Rn.statSync(t,{throwIfNoEntry:!1});return e?.isFile()}function qn(t,e,n,r){const s=r?.signal,i=r?.exclude;let o;if(Mn.default.isAbsolute(t)?o=Pn(t)?t:Vn(Mn.default.basename(t),[Mn.default.dirname(t)],{extNames:n,exclude:i,signal:s}):(e||(e=["."]),o=Vn(t,e,{extNames:n,exclude:i,signal:s})),!o)throw new S(t,"loadFileFromPaths");{const t=o;o=Rn.readFileSync(o),r&&(r.filepath=t)}return o}function Vn(t,e,{extNames:n,signal:r,exclude:s=[]}){let i;const o=n?n.map((e=>vn(t,En(e)))):void 0;"string"==typeof s&&(s=[s]);for(const a of e){if(r?.aborted)throw r.reason;const e=Mn.default.resolve(a,t);if(o)for(let t=0;t<o.length;t++){const r=e+(o[t]!==n[t]?n[t]:"");if(!s.includes(r)&&Pn(r)){i=r;break}}else if(!s.includes(e)&&Pn(e)){i=e;break}}return i}function Bn(t,e,n,r,s){let i;"string"==typeof r?(i=r,r=void 0):i=r?.encoding??"utf8";return qn(t,e,n,r).toString(i)}function Un(t,e){const n=[],r="string"==typeof t?[t]:[...t],s=new Set,i=e?.signal,o=e?.isFileMatched,a=e?.level;let c=0;for(;r.length>0;){if(i?.aborted)throw i.reason;const t=_n(r.pop()),e=Mn.default.resolve(t);if(s.has(e))continue;s.add(e);const u=Rn.statSync(t,{throwIfNoEntry:!1});if(u?.isDirectory()){const e=Rn.readdirSync(t,{withFileTypes:!0});for(let s=0;s<e.length;s++){const i=e[s],a=Mn.default.join(t,i.name);i.isDirectory()?r.push(a):!i.isFile()||o&&!o(a)||n.push(a)}if(c++,a&&c>=a)break}}return n}function _n(t){const e=Rn.lstatSync(t,{throwIfNoEntry:!1});return e?.isSymbolicLink()&&(t=Rn.readlinkSync(t)),t}var Ln=require("fs"),zn=c(require("path")),Jn=require("load-config-file"),Dn=require("yaml"),Wn=require("yaml-types"),Kn=require("mime-type/with-db"),Gn=require("yaml"),Hn=[Wn.regexp];function Zn(t){Array.isArray(t)||(t=[t]);for(const e of t){-1===Hn.indexOf(e)&&Hn.push(e)}}function Xn(t){return(0,Dn.parse)(t,{customTags:Hn})}function Yn(t,e){const n=[],r=e?.after,s=e?.exclude?"string"==typeof e.exclude?[e.exclude]:e.exclude:void 0,i=e?.extensions?"string"==typeof e.extensions?[e.extensions]:e.extensions.map((t=>t.startsWith(".")?t:"."+t)):[".yml",".yaml",".json"];return function(t,e){const n=(0,Ln.readdirSync)(t,{withFileTypes:!0,recursive:!0});for(const r of n){const n=zn.default.join(t,r.name);r.isFile()&&e(n,r)}}(t,((t,e)=>{if(s?.includes(t))return;const o=zn.default.extname(t),a=(0,Ln.statSync)(t);if(i.includes(o)){if(r?.hasOwnProperty(t)&&a.mtimeMs<=r[t])return;n.push(t)}})),n}function Qn(t,e){return Yn(t,e).map((t=>Jn.Config.loadSync(t))).filter((t=>void 0!==t))}function tr(t,e,n=1){"."===t[0]&&n++;const r=vn(t,n);(!r||r.split(".").length<=1)&&(t+=".yaml");const s=Kn.mimeType.lookup(t);if("application/json"===s)e=JSON.stringify(e,null,2);else{if("text/yaml"!==s)throw new Error(`${t} unsupported mime type: ${s}`);e=(0,Dn.stringify)(e)}const i=zn.default.dirname(t);return(0,Ln.existsSync)(i)||(0,Ln.mkdirSync)(i,{recursive:!0}),(0,Ln.writeFileSync)(t,e,{encoding:"utf8"}),t}function er(t){t instanceof Date&&(t=t.toISOString());return function(t,e){return t?`'${e}'`:String(e)}("string"==typeof t,t)}function nr(t,e){return t.map((t=>ir(t,e))).join(" AND ")}function rr(t,e){return t.map((t=>ir(t,e))).join(" OR ")}function sr(t,e){const n=[];return Object.keys(e).forEach((r=>{const s=e[r];switch(r){case"$lt":case"<":n.push(`${t} < ${er(s)}`);break;case"<=":case"$lte":n.push(`${t} <= ${er(s)}`);break;case"$gt":case">":n.push(`${t} > ${er(s)}`);break;case"$gte":case">=":n.push(`${t} >= ${er(s)}`);break;case"$ne":case"!=":n.push(`${t} != ${er(s)}`);break;case"=":case"$eq":n.push(`${t} = ${er(s)}`);break;case"$in":n.push(`${t} IN (${s.map((t=>er(t))).join(", ")})`);break;case"$nin":n.push(`${t} NOT IN (${s.map((t=>er(t))).join(", ")})`);break;case"$regex":n.push(`${t} REGEXP '${s.source}'`);break;case"$like":n.push(`${t} LIKE '${s}'`);break;case"$nlike":n.push(`${t} NOT LIKE '${s}'`);break;case"$glob":n.push(`${t} GLOB '${s}'`);break;case"$nglob":n.push(`${t} NOT GLOB '${s}'`);break;default:throw new Error(`Unsupported condition operator: ${r}`)}})),n.join(" AND ")}function ir(t,e){const n=[];if("function"!=typeof e&&(e=t=>t),Array.isArray(t))n.push(nr(t,e));else for(const[r,s]of Object.entries(t))if("$and"===r)n.push(`(${nr(t[r],e)})`);else if("$or"===r)n.push(`(${rr(t[r],e)})`);else{const t=typeof s;if(null==s)n.push(`${e(r)} IS NULL`);else if(s instanceof Date)n.push(`${e(r)}='${s.toISOString()}'`);else if("object"!==t||Array.isArray(s))if("string"===t)n.push(`${e(r)}='${s}'`);else{if("number"!==t&&"boolean"!==t)throw new Error(`Unsupported value type for key ${r}`);n.push(`${e(r)}=${s}`)}else n.push(sr(e(r),s))}return n.length>1?n.join(" AND "):n[0]}function or(t){const e=t.indexOf("://");if(e>0)return t.substring(0,e)}function ar(t,e=0){let n,r=t*10**e;return t>=1e12?(r=Math.round(r/1e12),n="T"):t>=1e9?(r=Math.round(r/1e9),n="B"):t>=1e6?(r=Math.round(r/1e6),n="M"):t>=1e3?(r=Math.round(r/1e3),n="K"):(r=Math.round(r),n=""),r/=10**e,r.toFixed(e)+n}function cr(t){const e=t.match(/^\s*[+]?(\d+(?:[.]\d+)?)\s*([TBMK])?\s*$/i);if(!e)throw new x("Invalid formatted parameter size string.","scaleToSize",400);const n=parseFloat(e[1]),r=e[2]?.toLowerCase();switch(r){case"t":return 1e12*n;case"b":return 1e9*n;case"m":return 1e6*n;case"k":return 1e3*n;default:return n}}function ur(t,e){const n=e?.level||0,r=e?.visiting||new Set,s=e?.objectTag||"*",i=e?.arrayTag||"-";let o=[];const a=" ".repeat(2*n);if(null!=t)switch(typeof t){case"object":r.has(t)?o=["[Circular]"]:(r.add(t),o=Array.isArray(t)?t.map((t=>i+c(t))):Object.entries(t).map((([t,e])=>s+" `"+t+"`:"+c(e))));break;case"string":return t;default:return JSON.stringify(t)}else o=["null"];return o.length?a+o.join("\n"+a):"";function c(t){return(null!=t&&"object"==typeof t?"\n":" ")+ur(t,{level:n+1,visiting:r})}}Jn.Config.register([".yml",".yaml"],Xn),Jn.Config.register([".json"],(function(t){return JSON.parse(t)}));var lr=class t{constructor(t=0){this.bitField=t}static has(t,e){return!!(t&1<<e)}static add(t,e){return t|1<<e}static delete(t,e){return t&~(1<<e)}add(t){return this.bitField|=1<<t,this}delete(t){return this.bitField&=~(1<<t),this}has(e){return t.has(this.bitField,e)}clear(){return this.bitField=0,this}valueOf(){return this.bitField}toString(){return this.bitField.toString()}toJSON(){return this.bitField}},fr=require("events-ex"),hr=32;function pr(t){return e=Math.min(Math.max(16,t),1073741824),e>>>=0,e-=1,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,1+(e|=e>>16);var e}var wr=class{constructor(t){this._capacity=pr(t),this._length=0,this._front=0,this.arr=[]}push(t){const e=this._length;this.checkCapacity(e+1);const n=this._front+e&this._capacity-1;return this.arr[n]=t,this._length=e+1,n}pop(){const t=this._length;if(0===t)return;const e=this._front+t-1&this._capacity-1,n=this.arr[e];return this.arr[e]=void 0,this._length=t-1,n}shift(){const t=this._length;if(0===t)return;const e=this._front,n=this.arr[e];return this.arr[e]=void 0,this._front=e+1&this._capacity-1,this._length=t-1,n}get length(){return this._length}checkCapacity(t){this._capacity<t&&this.resizeTo(pr(1.5*this._capacity+16))}resizeTo(t){const e=this._capacity;this._capacity=t;const n=this._front,r=this._length;if(n+r>e){const t=n+r&e-1;!function(t,e,n,r,s){for(let i=0;i<s;++i)n[i+r]=t[i+e],t[i+e]=void 0}(this.arr,0,this.arr,e,t)}}},dr=class extends fr.EventEmitter{};function mr(t){return"function"==typeof t}function yr(){return"1"}var br=class{constructor(t,{initFn:e=yr,pauseFn:n,resumeFn:r,capacity:s=hr}={}){if(mr(n)!==mr(r))throw new Error("pauseFn and resumeFn must be both set for pausing");this.maxConcurrency=t,this.free=new wr(t),this.waiting=new wr(s),this.releaseEmitter=new dr,this.useDefaultTokens=e===yr,this.pauseFn=n,this.resumeFn=r,this.paused=!1,this.releaseEmitter.on("release",(t=>{const e=this.waiting.shift();e?e.resolve(t):(this.resumeFn&&this.paused&&(this.paused=!1,this.resumeFn()),this.free.push(t))}));for(let n=0;n<t;n++)this.free.push(e())}tryAcquire(){return this.free.pop()}acquire(t){let e=this.tryAcquire();return void 0!==e?Promise.resolve(e):new Promise(((e,n)=>{this.pauseFn&&!this.paused&&(this.paused=!0,this.pauseFn());const r=this.waiting.push({resolve:e,reject:n});return t&&t.addEventListener("abort",(()=>{this.waiting[r]=void 0;const e=t.reason instanceof Error?t.reason:new Error(t.reason||"aborted");t.alreadyRejected=!0,n(e)})),r}))}release(t){this.releaseEmitter.emit("release",this.useDefaultTokens?"1":t)}drain(){const t=new Array(this.maxConcurrency);for(let e=0;e<this.maxConcurrency;e++)t[e]=this.acquire();return Promise.all(t)}pendingCount(){return this.waiting.length}};function gr(t,{timeUnit:e=1e3,uniformDistribution:n=!1}={}){const r=new br(n?1:t),s=n?e/t:e;return async function(){await r.acquire(),setTimeout((()=>r.release()),s)}}var vr,Er=require("custom-ability"),xr=require("property-manager"),$r=require("util-ex"),Sr=0,kr=1,Ar=2,Or=(t=>(t[t.MultiTask=Sr]="MultiTask",t[t.Cancelable=kr]="Cancelable",t[t.Priority=Ar]="Priority",t))(Or||{}),Tr=((vr=Tr||{})[vr.MultiTask=1<<Sr]="MultiTask",vr[vr.Cancelable=1<<kr]="Cancelable",vr[vr.Priority=1<<Ar]="Priority",vr),jr=class t extends xr.AdvancePropertyManager{static{this.items={}}static get(t){return this.items[t]}static list(){return this.items}static getByTag(t){let e;for(const n in this.list()){const r=this.get(n);let s=r.tags;if("string"==typeof s){if(s===t){e=r;break}}else if(Array.isArray(s)&&s.indexOf(t)>=0){e=r;break}}return e}static getAllByTag(t){let e=[];for(const n in this.list()){const r=this.get(n);let s=r.tags;"string"==typeof s?s===t&&e.push(r):Array.isArray(s)&&s.indexOf(t)>=0&&e.push(r)}return e}static hasAsyncFeature(t){const e=this.prototype;let n=e.asyncFeatures;return e._asyncFeatures&&(n|=e._asyncFeatures),lr.has(n,t)}static run(t,e){const n=this.get(t);if(n)return n.run(e);throw new S(`${t} to run`,this.name)}static runSync(t,e){const n=this.get(t);if(n)return n.runSync(e);throw new S(`${t} to run`,this.name)}static getFunc(t){const e=this.get(t);return e?.getFunc()}static runWithPos(t,...e){const n=this.get(t);if(n)return n.runWithPos(...e);throw new S(`${t} to run`,this.name)}static runWithPosSync(t,...e){const n=this.get(t);if(n)return n.runWithPosSync(...e);throw new S(`${t} to run`,this.name)}static getFuncWithPos(t){const e=this.get(t);return e?.getFuncWithPos()}static register(e,n={}){switch(typeof e){case"string":n.name=e;break;case"function":n.func=e;break;case"object":n=e}e=n.name;let r=!!this.get(e);if(r)r=!1;else{if(!(n instanceof t))return r=new this(n),r.register();this.items[e]=n,r=n}return r}static unregister(t){const e=this.items[t];return e&&delete this.items[t],e}constructor(t,e={}){switch(super(),typeof t){case"string":e.name=t;break;case"function":e.func=t;break;case"object":e=t}this.name=t=e.name,e.scope&&(this.scope=e.scope),"function"==typeof e.setup&&e.setup.call(this,e),this.initialize(e)}register(){const e=this.constructor,n=this.depends;if(n){const e=Object.keys(n);for(const r of e){const e=n[r];e instanceof t&&e.register()}}return e.register(this)}unregister(){return this.constructor.unregister(this.name)}arr2ObjParams(t){if(this.params&&(t.length>1||Array.isArray(t[0])||t[0]&&"object"!=typeof t[0])){const e={},n=Object.keys(this.params);let r=Math.min(n.length,t.length);for(let s=0;s<r;s++)e[n[s]]=t[s];t=[e]}return t}obj2ArrParams(t){const e=[];if(t&&this.params&&Array.isArray(this.params)){const n=Object.keys(t);let r=Math.min(n.length,this.params.length);for(let s=0;s<r;s++)e.push(t[n[s]])}return e}runSync(t){const e=this.params&&Array.isArray(this.params);if(Array.isArray(t)){if(e)return this.func(...t);T("the function is not support array params, the params must be object!",this.name)}return e?(t=this.obj2ArrParams(t),console.warn('Warning:Use runWithPos() instead of run() for the "'+this.name+'" is function with position params'),this.func(...t)):this.func(t)}run(t){return this.runSync(t)}runAs(t,e){return this.runAsSync(t,e)}runAsSync(t,e){return this.constructor.runSync(t,e)}getFunc(t){return t?this.constructor.getFunc(t):this.runSync.bind(this)}runWithPosSync(...t){return this.params&&!Array.isArray(this.params)&&(t=this.arr2ObjParams(t)),this.func(...t)}runWithPosAsSync(t,...e){return this.constructor.runWithPosSync(t,...e)}runWithPos(...t){return this.runWithPosSync(...t)}runWithPosAs(t,...e){return this.runWithPosAsSync(t,...e)}getFuncWithPos(t){return t?this.constructor.getFuncWithPos(t):this.runWithPosSync.bind(this)}hasAsyncFeature(t){let e=this.asyncFeatures;return this._asyncFeatures&&(e|=this._asyncFeatures),lr.has(e,t)}isStream(t){return this.stream}},Cr={name:{type:"string"},description:{type:"string"},func:{type:"function",assign(t,e,n,r,s){let i=t;const o=typeof t;return s.isExported?i="function"===o?t.toString():t:t&&("string"!==o&&(t=t.toString()),i=(0,$r._createFunction)(t,e.scope)),i}},params:{type:"object"},result:{type:"any"},setup:{type:"function"},depends:{type:"object",exported:!1},tags:{type:["array","string"]},isApi:{type:"boolean"},stream:{type:"boolean"},asyncFeatures:{type:"number"}};jr.defineProperties(jr,Cr);var Nr=require("util-ex"),Fr=class extends AbortController{constructor(t){super(),(0,Nr.defineProperty)(this,"parent",t)}abort(t,e){this.signal.aborted||("string"==typeof t&&(t=new A(t)),t&&e&&"object"==typeof t&&Object.assign(t.data,e),super.abort(t))}throwRejected(t){const e=this.signal;if(e.aborted){if(void 0===t&&(t=e.alreadyRejected),t)return!0;throw e.reason instanceof Error?e.reason:new A(e.reason||"aborted")}}},Ir=class{get maxTaskConcurrency(){return this._maxTaskConcurrency}get semaphore(){const t=this._maxTaskConcurrency;let e=this.__task_semaphore;return t>0&&!e&&(e=this.__task_semaphore=new br(t-1)),e}isAborted(t){const e=this.hasAsyncFeature(Sr);let n=this.__task_aborter;if(n&&e){if(null==t)throw new x("Missing taskId",this.name+".isAborted",400);n=n[t]}return!n||n.signal.aborted}getRunningTask(t){const e=this.hasAsyncFeature(Sr);let n=this.__task_aborter;if(n&&e){if(null==t)throw new x("Missing taskId",this.name+".getRunningTask",400);n=n[t]}return n?.signal.aborted&&(e?this.__task_aborter[t]=void 0:this.__task_aborter=void 0,n=void 0),n}getRunningTaskCount(){let t;if(this.hasAsyncFeature(Sr)){const e=this.__task_aborter;t=e&&Object.entries(e).filter((([t,n])=>{if(!n?.signal.aborted)return!0;e[t]=void 0})).length}else{const e=this.__task_aborter;t=e?.signal.aborted?0:1}return t}_generateAsyncTaskId(t,e){if(e||(e=this.__task_aborter),null==t&&(t=0,e))for(;e[t];)t++;return t}$generateAsyncTaskId(t,e){const n=this.super,r=this.self||this;return t=n?n.call(r,t):this._generateAsyncTaskId(t,e)}createAborter(t,e,n=!0){const r=this.hasAsyncFeature(Sr);if(!r&&n&&this.getRunningTask())throw new x("The task is running",this.name,429);const s=t?.aborter||new Fr(this);if(!(s instanceof Fr)){if(!(s instanceof AbortController))throw new x("aborter should be an AbortController",this.name,400);Object.setPrototypeOf(s,new Fr(this))}if(r){null==this.__task_aborter&&(this.__task_aborter={});const t=this.__task_aborter;null==e&&(e=this.generateAsyncTaskId(e,t)),s.id=e,t[e]=s}else this.__task_aborter=s;const i=t?.timeout;return i>0&&(s.timeoutId=setTimeout((()=>{s.timeoutId=void 0,this.abort("timeout",{timeout:i})}),i)),s.signal.addEventListener("abort",(()=>{const t=s.timeoutId;t&&(s.timeoutId=void 0,clearTimeout(t));const e=s.signal;try{this.emit&&this.emit("aborting",e.reason,e.reason?.data)}finally{s.streamController?.error(e.reason)}})),s}$cleanMultiTaskAborter(t,e){const n=this.super,r=this.self||this;n?n.call(r,t,e):r._cleanMultiTaskAborter(t,e)}cleanTaskAborter(t){if(this.hasAsyncFeature(Sr)){const e=this.__task_aborter;this.cleanMultiTaskAborter(t.id,e)}else this.__task_aborter=void 0}_cleanMultiTaskAborter(t,e){"number"==typeof t?e[t]=void 0:delete e[t]}createTaskPromise(t,e,n){const r=this.createAborter(e,n?.taskId,n?.raiseError);void 0===e&&(e={}),"object"==typeof e&&(e.aborter=r);let s=t(e,r).then((t=>{if(t&&t instanceof ReadableStream){const e=()=>{this.cleanTaskAborter(r)},n=Le({onStart:t=>{(0,Nr.defineProperty)(r,"streamController",t)},onFinal:e,onError:e,onTransform:(t,e)=>(t&&"object"==typeof t&&(t.taskId=r.id),t)});t=t.pipeThrough(n)}else this.cleanTaskAborter(r);return t})).catch((t=>{throw this.cleanTaskAborter(r),t})).finally((()=>{r.timeoutId&&(clearTimeout(r.timeoutId),r.timeoutId=void 0)}));return s.task=r,s}runAsyncCancelableTask(t={},e,n){let r=this.createTaskPromise(e,t,n);const s=this.semaphore;if(s){const t=r,e=t.task;r=s.acquire(e.signal).then((()=>t)).finally((()=>{s.release()})),r.task=e}return r}abort(t,e){let n=this.__task_aborter;if(n){const r=n;if(this.hasAsyncFeature(Sr)){const t=e?.taskId;if(null==t)throw new x("Missing data.taskId",this.name+".abort",400);n=n[t],this.cleanMultiTaskAborter(t,r)}else this.__task_aborter=void 0;n&&!n.signal.aborted&&n.abort(t,e)}}};Ir.prototype.generateAsyncTaskId=function(t,e){return this._generateAsyncTaskId(t,e)},Ir.prototype.cleanMultiTaskAborter=function(t,e){return this._cleanMultiTaskAborter(t,e)};var Mr=(0,Er.createAbilityInjector)(Ir,"abort",{afterInjection:function(t,e){let n=t.prototype._asyncFeatures||0;n|=Tr.Cancelable,e&&(e.asyncFeatures&&(n|=e.asyncFeatures),e.maxTaskConcurrency>0&&(t.prototype._maxTaskConcurrency=e.maxTaskConcurrency)),t.prototype._asyncFeatures=n}});function Rr(t,e){const n=e.global?e:new RegExp(e.source,`${e.flags}g`);let r,s=0;for(;null!==(r=n.exec(t));)s++;return s}var Pr=require("lodash-es"),qr=require("util-ex");async function Vr(t,e,n){return Br(Hr(t,e,n),e,n)}async function Br(t,e,n){if(t.length){const r=await Promise.all(t.map(((t,r)=>Gr(t,r,e,n)))),s=n?.returnArrayOnly;let i;if(r?.length){const t=`{${r.map((t=>function(t){const e={"\n":"\\n","\r":"\\r","\t":"\\t","\b":"\\b","\f":"\\f","\\":"\\\\"};return t.replace(/\\?[\n\r\t\b\f\\]/g,(t=>t.startsWith("\\")?t:e[t]))}(t))).join(",")}}`;i=On(t,e)}if(i&&!s){const t=Object.entries(i),e=Object.keys(i);1===t.length&&void 0!==i[0]?i=i[0]:e.every((t=>!isNaN(parseInt(t))))?i=e.sort(((t,e)=>parseInt(t)-parseInt(e))).map((t=>i[t])):2===t.length&&"0"===t[0][0]&&t[0][1]===t[1][1]&&(i=i[0])}return i}}function Ur(t,e,n,r){const[s,i]=t;if(!s&&"|"===i[0])return"choice: {"+function(t,e,n){const r=Hr(t,e,{...n,delimiter:":"}),s={},i=r.map((([t,e],n)=>{if(t){const t=e.indexOf(":"),n=e.slice(0,t).trim();if(s[n])throw new Error("Only one "+n+" is allowed");return s[n]=!0,e}{if("|"===e[0]){if(s.items)throw new Error("Only one items is allowed");return s.items=!0,"items:["+function(t,e='"'){return t.map((t=>zr(t)?t:e+t+e))}(e.split("|").filter(Boolean))+"]"}const t=parseInt(e.trim());if(!isNaN(t)){if(s.maxPick)throw new Error("Only one maxPick is allowed");return s.maxPick=!0,"maxPick:"+t}if("random"===e||"ai"===e)return s.type=!0,'type:"'+e+'"';if(zr(e)){if(s.separator)throw new Error("Only one separator is allowed");return s.separator=!0,"separator:"+e}}}));return i}(i,n,r)+"}"}async function _r([t,e],n,r,s){if(!r)return;let i,o;if(t){const t=e.split(":");i=t[0].trim(),o=t[1].trim()}else o=e,i=n+"";const a={template:o,data:{...r,...s?.templateData}};s?.templateFormat&&(a.templateFormat=s.templateFormat);const c=await z.formatIf(a);return c?(o=c,i+":"+Jr(o)):void 0}async function Lr(t,e,n,r){let s=Ur(t,0,n,r);return s||(s=await _r(t,e,n,r)),s}function zr(t){const e=t[0];return('"'===e||"'"===e)&&t[t.length-1]===e}function Jr(t){return'"'+t.replace(/(?<!\\)"(?!\\)/g,'\\"')+'"'}var Dr=["true","false","null","undefined","NaN","Infinity"];function Wr(t){return function(t,e=['""',"''","{}"]){return e.some((e=>t[0]===e[0]&&t[t.length-1]===e[1]))}(t)||!Number.isNaN(parseFloat(t))||Dr.includes(t)||Yr(t)}async function Kr(t,e){const n=(0,qr.newFunction)("async expression",[],`return ${t};`,Cn(e));let r=await n.call(this);switch(typeof r){case"number":case"boolean":case"undefined":return r;case"function":return n.toString();default:return JSON.stringify(r)}}async function Gr(t,e,n,r){const[s,i]=t,o=r?.argProcessor;if("function"==typeof o){const s=await o(t,e,n,r);if(s)return s}if(s){const t=i.indexOf(":"),e=i.slice(0,t).trim(),r=i.slice(t+1).trim();if(!(Wr(r)||n&&void 0!==(0,Pr.get)(n,r)))return e+":"+Jr(r);if(!Yr(i))try{return e+":"+await Kr.call(this,r,n)}catch(t){}return i}{const t=i.trim();if(n&&void 0!==(0,Pr.get)(n,t))return e+":"+t+', "'+t+'":'+t;if(Wr(t))return e+":"+t;if(!Yr(i))try{return e+":"+await Kr.call(this,t,n)}catch(t){}return e+":"+Jr(t)}}function Hr(t,e,n){const r=n?.delimiter??",";let s=[],i=!1,o="",a="",c=!1,u="";for(let e=0;e<t.length;e++){const n=t[e];if(n!==r||i||u)if("\\"===n)a+=n,e++,a+=t[e];else if("("!==n&&"["!==n||i)if(u&&n===u)u="",a+=n;else if("{"!==n||i)'"'===n||"'"===n?(i&&n===o?i=!1:i||(i=!0,o=n),a+=n):"="!==n||i||c||!/^[\p{L}\p{N}_ ]+$/u.test(a)?a+=n:(a+=":",c=!0);else{let r,s=e,i=!1,o="",c=-1;for(;s<t.length&&("}"!==(r=t[s])||i||c>0);)"\\"===r?s++:"{"!==r||i?"}"!==r||i?'"'!==r&&"'"!==r||(i&&n===o?i=!1:i||(i=!0,o=n)):c--:c++,s++;s<t.length&&(a+=t.substring(e,s+1),e=s)}else u="("===n?")":"]",a+=n;else a=a.trim(),a.endsWith(":")&&(a+="undefined"),s.push([c,a]),a="",c=!1}return a&&(a=a.trim(),a.endsWith(":")&&(a+="undefined"),s.push([c,a])),s}async function Zr(t,e,n){const r=t.match(/^([^(]+)(?:\((.*)\))?$/);if(!r)throw new Error("Invalid command format");const[,s,i]=r;let o;return i&&(o=await Vr(i,e,n)),{command:s.trim(),args:o}}var Xr=/^\s*\(\)|[a-zA-Z_$][\w\d$]*|\(([a-zA-Z_$][\w\d$]*)(\s*,\s*([a-zA-Z_$][\w\d$]*))*\)\s*=>/;function Yr(t){return Xr.test(t)}var Qr=c(require("memoizee")),ts=require("json-canonicalize");function es(t,e){var n;void 0!==e?.promise||!function(t){return"function"==typeof t&&"AsyncFunction"===t.constructor.name}(t)&&(!(n=t)||"object"!=typeof n&&"function"!=typeof n||"function"!=typeof n.then)||(e={promise:!0,...e}),void 0===e?.length&&(e={length:!1,...e});const r=e?.normalizer;return(0,Qr.default)(t,{...e,normalizer:t=>{if(r){const e=r(t);if("string"===e)return e;e&&(t=e)}return on((0,ts.canonicalize)(t))}})}var ns=class t extends jr{static get apiRoot(){return t._apiRoot}static setApiRoot(e){t._apiRoot=e}static async loadFrom(){if(this._apiRoot){const t=await fetch(this._apiRoot,{headers:{"Content-Type":"application/json"}}),e=await t.json();e&&this.loadFromSync(e)}else T("missing apiRoot to load tools","ClientTools")}static loadFromSync(e){for(const n in e){const r=this.get(n),s=e[n];r?r instanceof t?r.assign(s):T(`${n} already registered as ${r.constructor.name}`,"ClientTools"):this.register(s)}}static async fetch(t,e){const n=this.get(t);if(n&&n.fetch)return n.fetch(e)}getUrlParams(t){if(void 0!==t){const e=JSON.stringify(t);if("{}"!==e&&"[]"!==e&&'""'!==e)return"?p="+encodeURIComponent(e)}return""}async fetch(t,e,n){const r={...this.fetchOptions};let s;r.headers&&r.headers["Content-Type"]||(r.headers={"Content-Type":"application/json",...r.headers}),t?.stream&&!r.headers.Connection&&(r.headers.Connection="keep-alive"),e||(e=this.action||"post"),"res"===e&&(e="get"),n?("string"!=typeof n&&(n=JSON.stringify(n)),n=this.name+"/"+n):n=this.name,r.method=e.toUpperCase(),"get"===e||"delete"===e?s=n+this.getUrlParams(t):(r.body=JSON.stringify(t),s=n);const i=await fetch(`${this.apiRoot}/${s}`,r);if(!i.ok){throw await this.errorFrom(i)}return i}async errorFrom(t){let e,n=t.status,r=t.statusText,s=this.name;if(t.body){const n=await t.text();try{const t=JSON.parse(n);t&&(t.error&&(r=t.error),t.name&&(s=t.name),t.data&&(e=t.data,e.name=s,e.what&&(e.msg=r,r=e.what)),t.message&&(r=r+":"+t.message))}catch(t){console.warn("🚀 ~ parse error body to json:",t)}}return O(r,s,n)}async func(t){const e=await this.fetch(t);if(t?.stream)return e;return await e.json()}},rs={...p};ns.defineProperties(ns,rs);var ss=class t extends jr{static get apiRoot(){return this._apiRoot}static setApiRoot(t){this._apiRoot=t}static toJSON(){const e={};for(const n in this.items){let r=this.items[n];(r instanceof t||r.isApi)&&(r.allowExportFunc||(r=r.toJSON(),delete r.func),e[n]=r)}return e}func({}){}},is={...p};ss.defineProperties(ss,is);var os=require("events-ex"),as=class extends jr{constructor(){super(...arguments),this._emitter=new os.EventEmitter,this.description="Return event bus",this.result="event"}get emitter(){return this._emitter}func(){return this.emitter}},cs=new as(Ae),us=require("secondary-cache");function ls({key:t,value:e,options:n}={}){return void 0!==t?null===e?this.cache.del(t):void 0!==e?this.cache.set(t,e,n):this.cache.get(t):(n&&this.cache.setDefaultOptions(n),this.cache)}function fs(t,e){let n=jr.get(t);return n||(n=new jr(t,{func:ls,description:"get/set LRU cache or return the LRUCache object",params:{key:{name:"key",type:"string",description:"the key is undefined means change the default cache options"},value:{name:"value",type:"any",description:"the value to store, if value is null means remove the key"},options:{name:"options",type:"object|number",description:"the optional cache options:{capacity,expires,cleanInterval} or expires"}},result:"any"}),n.cache=new us.Cache(e)),n}var hs=fs("lrucache"),ps=class extends ns{async _func(t,e){const n=await this.fetch(e,t);if(e?.stream)return n;return await n.json()}async func(t){const e=t.action;return e&&delete t.action,this._func(e,t)}assignMethods(t){if(Array.isArray(t))for(const e of t){const t=e.startsWith("$")?e.slice(1):e;this[t]||(this[t]=(t=>this._func.bind(this,t))(e))}}},ws={methods:{type:"array",assign(t,e,n,r,s){s?.isExported||e.assignMethods(t)}}};ps.defineProperties(ps,ws);var ds=class extends ps{async fetch(t,e){if(t||(t={}),e&&"res"===this.action){if("get"===e||"delete"===e){let n=t.id;return n||T("id is required"),"string"==typeof n&&(n=encodeURIComponent(n)),delete t.id,super.fetch(t,e,n)}"list"===e?e="get":e.startsWith("$")&&(t.act=e,e="post")}return await super.fetch(t,e)}},ms=class extends ds{constructor(){super(...arguments),this._sseEvents={},this._forwardEvents=new Set,this.name=ke,this.description="subscribe server sent event",this.ebListener=async function(...t){const e=this.type;this.target.publish&&await this.target.publish({data:t,event:e})}}get evtSource(){let t=this._es;return t&&t.readyState!==EventSource.CLOSED||(t=this.initEventSource(this._esEvents)),t}get active(){return!!this._es&&this._es.readyState!==EventSource.CLOSED}set active(t){t!==this.active&&(t?this.initEventSource(this._esEvents):this._es&&(this._es.close(),this._es=void 0))}initEventSource(t){if("string"==typeof t&&(t=[t]),this._es&&this._es.readyState!==EventSource.CLOSED){if(!this._esEvents||t&&t.every((t=>this._esEvents.includes(t))))return this._es;this._es.close()}const e=t?this.getUrlParams({event:t}):"",n=`${this.apiRoot}/${this.name}${e}`,r=this._es=new EventSource(n);return Object.entries(this._sseEvents).forEach((([t,e])=>{r.addEventListener(t,e)})),this._esEvents=t,r}esListener(t){const e=t.data?JSON.parse(t.data):void 0,n=t.type;if(!this._forwardEvents.has(n)){const t=this.emitter;t&&e&&n&&(Array.isArray(e)?t.emit(n,...e):t.emit(n,e))}}async subscribe(t){const e=await this.sub({event:t});"string"==typeof t&&(t=[t]);const n=this.evtSource;for(const e of t)if(!this._sseEvents[e]){const t=this._sseEvents[e]=this.esListener.bind(this);n.addEventListener(e,t)}return e}async unsubscribe(t){const e=await this.unsub({event:t});"string"==typeof t&&(t=[t]);for(const e of t){const t=this._sseEvents[e];t&&(delete this._sseEvents[e],this.evtSource.removeEventListener(e,t))}return e}forwardEvent(t){"string"==typeof t&&(t=[t]);for(const e of t)this._forwardEvents.has(e)||(this._forwardEvents.add(e),this.on&&this.on(e,this.ebListener))}unforwardEvent(t){"string"==typeof t&&(t=[t]);for(const e of t)this._forwardEvents.has(e)&&(this._forwardEvents.delete(e),this.off&&this.off(e,this.ebListener))}async init(t){if(this.active=!1,this.initEventSource(t),t)return await this.subscribe(t)}},ys=new ms(ke),bs=require("util-ex"),gs=class extends ss{constructor(t,e={}){super(t,e),this.params={act:{type:"string"}};const n=this.methods=[];this.initRpcMethods(n)}get SpecialRpcMethodNames(){return this.constructor.SpecialRpcMethodNames}initRpcMethods(t=this.methods){const e=this.SpecialRpcMethodNames;if(Array.isArray(e))for(const n of e)"function"==typeof this[n]&&t.push(n);(0,bs.getAllNames)(Object.getPrototypeOf(this)).filter((t=>t.startsWith("$")&&"function"==typeof this[t])).forEach((e=>{t.push(e);const n=e.slice(1);void 0===this[n]&&(this[n]=this[e])}))}cast(t,e){let n=this.params[t];return n&&("string"!=typeof n&&(n=n.type),"number"===n&&(e=Number(e))),e}getMethodFromParams(t){const e=t?.act;return e}castParams(t){return t}func(t){const e=this.getMethodFromParams(t);if(e&&"function"==typeof this[e])return t=this.castParams(t),this[e](t);throw new S(e,this.name)}};gs.defineProperties(gs,{methods:{type:"array"}});var vs=class extends gs{constructor(t,e={}){super(t,e),this.action="res",this.params={id:{type:"string"},val:{type:"any"}}}static{this.SpecialRpcMethodNames=h}getMethodFromParams(t){let e=t?._req?.method?.toLowerCase();return"get"===e&&void 0===t.id&&(e="list"),"post"===e&&t.act&&(e=t.act),e}castParams(t){return void 0!==t.id&&(t.id=this.cast("id",t.id)),t}},Es=cs.runSync(),xs=class t extends vs{constructor(){super(...arguments),this.name=ke,this.description="subscribe server sent event",this.result="event",this.depends={[Ae]:cs}}static get sse(){return this._sse||(this._sse=new Ce),this._sse}get sse(){return this.constructor.sse}static publish(e,n){return t.sse.publish(e,n)}static{this.ebListener=function(...e){t.sse.publish(e,this.type)}}static subscribe(e,n,r){return t.sse.subscribe(e,n,r)}static alreadyForward(e){const n=Es.listeners(e);for(const e of n)if(e===t.ebListener)return!0}publishSSE(t,e){return this.constructor.publish(t,e)}subscribeSSE(t,e,n){return"string"==typeof n&&(n=[n]),this.constructor.subscribe(t,e,n)}forward(e){Array.isArray(e)||(e=[e]);for(const n of e)t.alreadyForward(n)||Es.on(n,t.ebListener)}unforward(e){"string"==typeof e&&(e=[e]);for(const n of e)Es.off(n,t.ebListener)}list({_req:t,_res:e,event:n}){t&&e&&this.subscribeSSE(t,e,n)}$sub({event:t}){if(t)return this.forward(t),{event:t};T("event is required","sub",400)}$unsub({event:t}){if(t)return this.unforward(t),{event:t};T("event is required","unsub",400)}$publish({event:t,data:e}){if(t&&e){"string"==typeof t&&(t=[t]);for(const n of t)this.publishSSE(e,n);return{event:t}}T("event or data is required","pub",400)}isStream(t){return"list"===this.getMethodFromParams(t)}},$s=new xs(ke);function Ss(){cs.register(),hs.register()}
1
+ "use strict";var t,e=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,i=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,a=(t,e,i,a)=>{if(e&&"object"==typeof e||"function"==typeof e)for(let c of s(e))o.call(t,c)||c===i||n(t,c,{get:()=>e[c],enumerable:!(a=r(e,c))||a.enumerable});return t},c=(t,r,s)=>(s=null!=t?e(i(t)):{},a(!r&&t&&t.__esModule?s:n(s,"default",{value:t,enumerable:!0}),t)),u={};((t,e)=>{for(var r in e)n(t,r,{get:e[r],enumerable:!0})})(u,{AIArgProcessor:()=>zr,AIChatRoles:()=>q,AIMessageTypes:()=>P,AIStream:()=>Ue,AITextGenerationFinishReasons:()=>R,AbortError:()=>A,AbortErrorCode:()=>v,ActionNames:()=>h,AlreadyExistsError:()=>k,AlreadyExistsErrorCode:()=>g,AsyncFeatureBits:()=>Or,AsyncFeatures:()=>Tr,BaseError:()=>E,CancelableAbility:()=>Ir,ChoiceArgProcessor:()=>_r,ClientToolFuncSchema:()=>ss,ClientTools:()=>rs,CommonError:()=>x,ConfigFile:()=>Jn.Config,DefaultAsyncSemaphoreCapacity:()=>hr,ErrorCode:()=>d,EventBusName:()=>Ae,EventClient:()=>ys,EventName:()=>ke,EventServer:()=>$s,EventToolFunc:()=>cs,FStringPromptTemplate:()=>re,FewShotPromptTemplate:()=>ce,FilenameReservedRegex:()=>cn,GolangPromptTemplate:()=>oe,HFBuiltins:()=>Dt,HFEnvironment:()=>Kt,HFInterpreter:()=>_t,HFTemplate:()=>Gt,HfPromptTemplate:()=>Yt,IntSet:()=>lr,InternalErrorCode:()=>m,NotFoundError:()=>S,NotFoundErrorCode:()=>b,NotImplementationError:()=>$,NotImplementedErrorCode:()=>y,PASSING_SCORE:()=>f,PromptExampleSelector:()=>W,PromptTemplate:()=>z,PromptTemplateTypes:()=>U,PromptTypes:()=>B,RStreamErrCode:()=>Fe,RateLimit:()=>gr,ReadableStreamError:()=>Me,RemoteToolFuncSchema:()=>p,ResClientTools:()=>ms,ResServerTools:()=>Es,ResponseRStreamErrCode:()=>Ie,SSEChannel:()=>Ce,SSEChannelAlreadyClosedErrCode:()=>je,Semaphore:()=>br,ServerToolFuncSchema:()=>os,ServerTools:()=>is,TaskAbortController:()=>Fr,TemplateArgProcessor:()=>Lr,ToolAsyncCancelableBit:()=>kr,ToolAsyncMultiTaskBit:()=>Sr,ToolAsyncPriorityBit:()=>Ar,ToolFunc:()=>jr,ToolFuncSchema:()=>Cr,WindowsReservedNameRegex:()=>un,XXHashAlgorithm:()=>rn,_lrucache:()=>fs,backendEventable:()=>Oe,base32768:()=>Xe,canonicalize:()=>Ze.canonicalize,countRegexMatches:()=>Rr,createAbilityInjector:()=>l.createAbilityInjector,createCallbacksTransformer:()=>Le,createEmptyReadableStream:()=>Pe,createEndWithRepetitionDetector:()=>In,createError:()=>O,createEventStreamTransformer:()=>Ve,createHfValueFunc:()=>Qt,createLRUCache:()=>hs,dateToText:()=>M,defaultTemplateFormat:()=>L,event:()=>us,eventClient:()=>bs,eventServer:()=>Ss,expandEnv:()=>he,expandObjEnv:()=>pe,extNameLevel:()=>En,fileIsExists:()=>Pn,filenameReservedRegex:()=>wn,filterValidFnScope:()=>Cn,formatISO:()=>C.formatISO,getAllEnumKeys:()=>Sn,getConfigFileNames:()=>Yn,getConfigs:()=>Qn,getKeysPath:()=>Nn,getMultiLevelExtname:()=>vn,getRealFilepath:()=>_n,getResponseErrorReadableStream:()=>Re,hfParse:()=>kt,hfTokenize:()=>tt,interpolateEnv:()=>fe,interpolateFString:()=>ee,interpolateGolangTemplate:()=>ie,isModelNameMatched:()=>$n,isValidFilename:()=>mn,isValidFilepath:()=>yn,isWebStream:()=>Ne,jsonFilterToWhere:()=>ir,jsonToMarkdownStr:()=>ur,loadFileFromPaths:()=>qn,loadTextFromPaths:()=>Bn,lrucache:()=>ps,makeToolFuncCancelable:()=>Mr,matchUrlProtocol:()=>or,memoize:()=>ns,messagesToText:()=>V,mimeType:()=>Kn.mimeType,paramsSizeToScaleStr:()=>ar,parseCommand:()=>Xr,parseDateFormat:()=>j.parse,parseFString:()=>te,parseISO:()=>C.parseISO,parseJsJson:()=>On,parseObjectArgInfo:()=>Hr,parseObjectArgumentInfos:()=>Ur,parseObjectArguments:()=>Vr,parseObjectArgumentsAsArgInfos:()=>Zr,parseYaml:()=>Xn,quoteStr:()=>Dr,reControlCharsRegex:()=>dn,readFilenamesRecursiveSync:()=>Un,readableFromAsyncIterable:()=>_e,registerCoreTools:()=>ks,registerYamlTag:()=>Zn,sanitizeFilename:()=>bn,sanitizeFilepath:()=>gn,saveConfigFile:()=>tr,scaleStrToParamsSize:()=>cr,simplifyObjectArguments:()=>Br,sortedValues:()=>ae,splitSentence:()=>Ee,stringifyYaml:()=>Gn.stringify,textToDate:()=>I,throwError:()=>T,toDate:()=>C.toDate,toDateTime:()=>F,trimStartOfStreamHelper:()=>Be,truncTo:()=>xe,uuid:()=>Ke,uuidNIL:()=>De.NIL,uuidParse:()=>De.parse,uuidStringify:()=>De.stringify,uuidValidate:()=>De.validate,uuidVersion:()=>De.version,uuidv1:()=>De.v1,uuidv4:()=>De.v4,uuidv5:()=>De.v5,wait:()=>$e,xxhash:()=>sn,xxhash32:()=>en,xxhash64:()=>nn,xxhashAsStr:()=>on}),module.exports=(t=u,a(n({},"__esModule",{value:!0}),t));var l=require("custom-ability"),f=.618,h=["get","post","put","delete","patch","list","res"],p={apiRoot:{type:"string",get(){return this._apiRoot??this.constructor.apiRoot},set(t){this._apiRoot=t}},action:{type:"string",assign:(t,e,n,r,s)=>t||"post"},fetchOptions:{type:"object"},allowExportFunc:{type:"boolean"}},w=require("abstract-error"),d=(t=>(t[t.OK=200]="OK",t[t.Accepted=202]="Accepted",t[t.BadRequest=400]="BadRequest",t[t.InvalidArgument=400]="InvalidArgument",t[t.Unauthorized=401]="Unauthorized",t[t.PaymentRequired=402]="PaymentRequired",t[t.Forbidden=403]="Forbidden",t[t.NotFound=404]="NotFound",t[t.MethodNotAllowed=405]="MethodNotAllowed",t[t.NotAcceptable=406]="NotAcceptable",t[t.RequestTimeout=408]="RequestTimeout",t[t.Conflict=409]="Conflict",t[t.Corruption=409]="Corruption",t[t.TooManyRequests=429]="TooManyRequests",t[t.Aborted=499]="Aborted",t[t.InternalError=500]="InternalError",t[t.NotImplemented=501]="NotImplemented",t[t.NotSupported=501]="NotSupported",t[t.BadGateway=502]="BadGateway",t[t.ServiceUnavailable=503]="ServiceUnavailable",t[t.GatewayTimeout=504]="GatewayTimeout",t))(d||{}),m=500,y=501,b=404,g=409,v=499,E=class t extends w.AbstractError{static createErrorClass(e,n,r=t){return(0,w.createErrorClass)(e,n,r)}constructor(t,e,n){super(t,e);const r=this.constructor;null!=e?this.code=e:r.code?this.code=r.code:this.code=r.name,n?"string"==typeof n?this.name=n:Object.assign(this,n):"string"==typeof this.code?this.name=this.code:this.name=r.name}toJSON(){const t={name:this.name,code:this.code,data:this.data,caller:this.caller,error:this.message,stack:this.stack};return Object.keys(t).forEach((e=>void 0===t[e]&&delete t[e])),t}fromJSON(e){const n=new t(e.message);return n.code=e.code,n.data=e.data,n.caller=e.caller,n.message=e.error,n.stack=e.stack,n}},x=class extends E{constructor(t,e,n=m){super(t,n,e)}},$=class extends x{constructor(t,e){t||(t="Not Implementation."),super(t,e,501)}};x[y]=$;var S=class extends x{static{this.code=b}constructor(t,e){super(`Could not find ${t}.`,e,b),this.data={what:t}}};x[b]=S;var k=class extends x{static{this.code=g}constructor(t,e){super(`The ${t} already exists.`,e,g),this.data={what:t}}};x[g]=k;var A=class extends x{static{this.code=v}constructor(t,e){e||(e="AbortError"),super(t?`The operation was aborted for ${t}.`:"The operation was aborted.",e,v),t&&(this.data={what:t})}};function O(t,e,n=m){const r=new(x[n]||x)(t,e,n);return"number"!=typeof r.code&&(r.code=n),r}function T(t,e,n=m){throw O(t,e,n)}x[v]=A;var j=require("date-fns"),C=require("date-fns"),N="MMMM d, y 'at' h:m:s b 'GMT'x";function F(t){let e;try{"string"==typeof t?e=(0,j.parseISO)(t):"number"==typeof t?e=new Date(t):t instanceof Date&&(e=t)}catch(t){console.error(t)}return e}function I(t,e=N){return(0,j.parse)(t,e,new Date)}function M(t,e=N){return(0,j.format)(t,e)}var R=["stop","length","content-filter","tool-calls","abort","error","other",null],P=["human","ai","generic","system","tool"],q=["user","assistant","system","tool","tool_calls"];function V(t){let e="";for(const n of t)if(n.content){e+=n.role.toLowerCase()+":";let t=n.createdAt;if(t){const n=F(t);n&&(e+=" ["+M(n)+"]")}e+=" "+n.content+"\n"}return e}var B=["chat","char","plan"],U=["internal","hf","fill"],_=require("custom-factory");var L="default",z=class t extends _.BaseFactory{static from(t,e){return new this(t,e)}static async format(t){return new this(t).format()}static async formatIf(t){if(this.isTemplate(t)){return new this(t).format()}}static isTemplate(e){if(e?.template){const n=e.templateFormat||L,r=t.get(n);return r.isTemplate!==t.isTemplate&&r.isTemplate(e)}}filterData(t){return Array.isArray(this.inputVariables)&&(t=Object.fromEntries(Object.entries(t).filter((([t])=>this.inputVariables.includes(t))))),t}constructor(e,n){"string"==typeof e?(n||(n={}),n.template=e):e&&(e=(n=e).template);const{templateFormat:r}=n||{};if(super(n),this.constructor===t){const e=t.get(r||L);if(e)return Reflect.construct(e,arguments);throw new x(`Prompt template type ${r} not found`,"PromptTemplate",400)}}_initialize(t){throw new $("Not implemented","PromptTemplate")}initialize(e){this.constructor!==t&&(Object.assign(this,this.toJSON(e)),e?.ignoreInitialize||this._initialize(e))}_format(t){throw new $("Not implemented","PromptTemplate")}async format(e){const n=this.data;if(e={...n,...e},n)for(const[t,r]of Object.entries(n))e[t]===r&&"function"==typeof r&&(delete e[t],e[t]=await r(e));for(const[n,r]of Object.entries(e))r instanceof t&&(delete e[n],e[n]=await r.format(e));return this._format(e)}partial(t){t={...this.data,...t};const e=this.toJSON();return e.data=t,e.ignoreInitialize=!0,new this.constructor(e)}toJSON(e=this){let n={template:e.template,data:e.data,inputVariables:e.inputVariables,compiledTemplate:e.compiledTemplate};var r;return e.templateFormat&&t.get(e.templateFormat)!==this.constructor&&(n.templateFormat=e.templateFormat),r=n,n=Object.keys(r).reduce(((t,e)=>{const n=r[e];return null!=n&&(t[e]=n),t}),{}),n}};function J(t){return(e=t)&&"function"==typeof e[Symbol.iterator]?async function*(t){const e=t[Symbol.iterator]();let n;try{for(;;){n=!1;const t=e.next();if(n=!0,t.done)return n=!1,await t.value;yield await t.value}}finally{n&&await(e.return?.().value)}}(t):t;var e}var D=!1;(async function(){let t=!1,e=!1;try{for await(const e of function*(){try{yield Promise.reject()}finally{t=!0}}())throw new Error("impossible")}catch{e=!0}return e&&t})().then((t=>{D=t}));var W=class{constructor(t,e){this.initialize(t,e)}initialize(t,e){const n=e?.maxLength;var r;n>0&&(this.maxLength=n),void 0!==e?.threshold&&(!0===e.threshold?this.threshold=.5:!1!==e.threshold&&(this.threshold=e.threshold)),this.examples=(r=t,D?r:J(r))}selectExample(t,e){if(void 0===e||e<=this.threshold)return t}async*selectExamples(t=this.examples){let e=this.maxLength||1/0;for await(const n of t){const t="number"==typeof this.threshold?Math.random():void 0;if(this.selectExample(n,t)){if(--e<0)break;yield n}}}async*[Symbol.asyncIterator](){yield*this.selectExamples()}},K=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",BooleanLiteral:"BooleanLiteral",StringLiteral:"StringLiteral",Identifier:"Identifier",Equals:"Equals",OpenParen:"OpenParen",CloseParen:"CloseParen",OpenStatement:"OpenStatement",CloseStatement:"CloseStatement",OpenExpression:"OpenExpression",CloseExpression:"CloseExpression",OpenSquareBracket:"OpenSquareBracket",CloseSquareBracket:"CloseSquareBracket",OpenCurlyBracket:"OpenCurlyBracket",CloseCurlyBracket:"CloseCurlyBracket",Comma:"Comma",Dot:"Dot",Colon:"Colon",Pipe:"Pipe",CallOperator:"CallOperator",AdditiveBinaryOperator:"AdditiveBinaryOperator",MultiplicativeBinaryOperator:"MultiplicativeBinaryOperator",ComparisonBinaryOperator:"ComparisonBinaryOperator",UnaryOperator:"UnaryOperator",Set:"Set",If:"If",For:"For",In:"In",Is:"Is",NotIn:"NotIn",Else:"Else",EndIf:"EndIf",ElseIf:"ElseIf",EndFor:"EndFor",And:"And",Or:"Or",Not:"UnaryOperator",Macro:"Macro",EndMacro:"EndMacro"}),G=Object.freeze({set:K.Set,for:K.For,in:K.In,is:K.Is,if:K.If,else:K.Else,endif:K.EndIf,elif:K.ElseIf,endfor:K.EndFor,and:K.And,or:K.Or,not:K.Not,"not in":K.NotIn,macro:K.Macro,endmacro:K.EndMacro,true:K.BooleanLiteral,false:K.BooleanLiteral,True:K.BooleanLiteral,False:K.BooleanLiteral}),H=class{constructor(t,e){this.value=t,this.type=e}};function Z(t){return/\w/.test(t)}function X(t){return/[0-9]/.test(t)}var Y=[["{%",K.OpenStatement],["%}",K.CloseStatement],["{{",K.OpenExpression],["}}",K.CloseExpression],["(",K.OpenParen],[")",K.CloseParen],["{",K.OpenCurlyBracket],["}",K.CloseCurlyBracket],["[",K.OpenSquareBracket],["]",K.CloseSquareBracket],[",",K.Comma],[".",K.Dot],[":",K.Colon],["|",K.Pipe],["<=",K.ComparisonBinaryOperator],[">=",K.ComparisonBinaryOperator],["==",K.ComparisonBinaryOperator],["!=",K.ComparisonBinaryOperator],["<",K.ComparisonBinaryOperator],[">",K.ComparisonBinaryOperator],["+",K.AdditiveBinaryOperator],["-",K.AdditiveBinaryOperator],["*",K.MultiplicativeBinaryOperator],["/",K.MultiplicativeBinaryOperator],["%",K.MultiplicativeBinaryOperator],["=",K.Equals]],Q=new Map([["n","\n"],["t","\t"],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function tt(t,e={}){const n=[],r=function(t,e={}){return t.endsWith("\n")&&(t=t.slice(0,-1)),t=t.replace(/{#.*?#}/gs,"{##}"),e.lstrip_blocks&&(t=t.replace(/^[ \t]*({[#%])/gm,"$1")),e.trim_blocks&&(t=t.replace(/([#%]})\n/g,"$1")),t.replace(/{##}/g,"").replace(/-%}\s*/g,"%}").replace(/\s*{%-/g,"{%").replace(/-}}\s*/g,"}}").replace(/\s*{{-/g,"{{")}(t,e);let s=0;const i=t=>{let e="";for(;t(r[s]);)if("\\"!==r[s]){if(e+=r[s++],s>=r.length)throw new SyntaxError("Unexpected end of input")}else{if(++s,s>=r.length)throw new SyntaxError("Unexpected end of input");const t=r[s++],n=Q.get(t);if(void 0===n)throw new SyntaxError(`Unexpected escaped character: ${t}`);e+=n}return e};t:for(;s<r.length;){const t=n.at(-1)?.type;if(void 0===t||t===K.CloseStatement||t===K.CloseExpression){let t="";for(;s<r.length&&("{"!==r[s]||"%"!==r[s+1]&&"{"!==r[s+1]);)t+=r[s++];if(t.length>0){n.push(new H(t,K.Text));continue}}i((t=>/\s/.test(t)));const e=r[s];if("-"===e||"+"===e){const t=n.at(-1)?.type;if(t===K.Text||void 0===t)throw new SyntaxError(`Unexpected character: ${e}`);switch(t){case K.Identifier:case K.NumericLiteral:case K.BooleanLiteral:case K.StringLiteral:case K.CloseParen:case K.CloseSquareBracket:break;default:{++s;const t=i(X);n.push(new H(`${e}${t}`,t.length>0?K.NumericLiteral:K.UnaryOperator));continue}}}for(const[t,e]of Y){if(r.slice(s,s+t.length)===t){n.push(new H(t,e)),s+=t.length;continue t}}if("'"!==e&&'"'!==e)if(X(e)){const t=i(X);n.push(new H(t,K.NumericLiteral))}else{if(!Z(e))throw new SyntaxError(`Unexpected character: ${e}`);{const t=i(Z),e=Object.hasOwn(G,t)?G[t]:K.Identifier;e===K.In&&n.at(-1)?.type===K.Not?(n.pop(),n.push(new H("not in",K.NotIn))):n.push(new H(t,e))}}else{++s;const t=i((t=>t!==e));n.push(new H(t,K.StringLiteral)),++s}}return n}var et=class{constructor(){this.type="Statement"}},nt=class extends et{constructor(t){super(),this.body=t,this.type="Program"}},rt=class extends et{constructor(t,e,n){super(),this.test=t,this.body=e,this.alternate=n,this.type="If"}},st=class extends et{constructor(t,e,n,r){super(),this.loopvar=t,this.iterable=e,this.body=n,this.defaultBlock=r,this.type="For"}},it=class extends et{constructor(t,e){super(),this.assignee=t,this.value=e,this.type="Set"}},ot=class extends et{constructor(t,e,n){super(),this.name=t,this.args=e,this.body=n,this.type="Macro"}},at=class extends et{constructor(){super(...arguments),this.type="Expression"}},ct=class extends at{constructor(t,e,n){super(),this.object=t,this.property=e,this.computed=n,this.type="MemberExpression"}},ut=class extends at{constructor(t,e){super(),this.callee=t,this.args=e,this.type="CallExpression"}},lt=class extends at{constructor(t){super(),this.value=t,this.type="Identifier"}},ft=class extends at{constructor(t){super(),this.value=t,this.type="Literal"}},ht=class extends ft{constructor(){super(...arguments),this.type="NumericLiteral"}},pt=class extends ft{constructor(){super(...arguments),this.type="StringLiteral"}},wt=class extends ft{constructor(){super(...arguments),this.type="BooleanLiteral"}},dt=class extends ft{constructor(){super(...arguments),this.type="ArrayLiteral"}},mt=class extends ft{constructor(){super(...arguments),this.type="TupleLiteral"}},yt=class extends ft{constructor(){super(...arguments),this.type="ObjectLiteral"}},bt=class extends at{constructor(t,e,n){super(),this.operator=t,this.left=e,this.right=n,this.type="BinaryExpression"}},gt=class extends at{constructor(t,e){super(),this.operand=t,this.filter=e,this.type="FilterExpression"}},vt=class extends at{constructor(t,e){super(),this.iterable=t,this.test=e,this.type="SelectExpression"}},Et=class extends at{constructor(t,e,n){super(),this.operand=t,this.negate=e,this.test=n,this.type="TestExpression"}},xt=class extends at{constructor(t,e){super(),this.operator=t,this.argument=e,this.type="UnaryExpression"}},$t=class extends at{constructor(t=void 0,e=void 0,n=void 0){super(),this.start=t,this.stop=e,this.step=n,this.type="SliceExpression"}},St=class extends at{constructor(t,e){super(),this.key=t,this.value=e,this.type="KeywordArgumentExpression"}};function kt(t){const e=new nt([]);let n=0;function r(e,r){const s=t[n++];if(!s||s.type!==e)throw new Error(`Parser Error: ${r}. ${s.type} !== ${e}.`);return s}function s(){let e;switch(t[n].type){case K.Text:e=new pt(r(K.Text,"Expected text token").value);break;case K.OpenStatement:e=function(){let e;switch(r(K.OpenStatement,"Expected opening statement token"),t[n].type){case K.Set:++n,e=a(),r(K.CloseStatement,"Expected closing statement token");break;case K.If:++n,e=c(),r(K.OpenStatement,"Expected {% token"),r(K.EndIf,"Expected endif token"),r(K.CloseStatement,"Expected %} token");break;case K.Macro:++n,e=function(){const t=E();if("Identifier"!==t.type)throw new SyntaxError("Expected identifier following macro statement");const e=y();r(K.CloseStatement,"Expected closing statement token");const n=[];for(;i(K.OpenStatement,K.EndMacro);)n.push(s());return new ot(t,e,n)}(),r(K.OpenStatement,"Expected {% token"),r(K.EndMacro,"Expected endmacro token"),r(K.CloseStatement,"Expected %} token");break;case K.For:++n,e=function(){const t=u(!0);if(!(t instanceof lt||t instanceof mt))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${t.type} instead`);r(K.In,"Expected `in` keyword following loop variable");const e=l();r(K.CloseStatement,"Expected closing statement token");const a=[];for(;i(K.OpenStatement,K.EndFor)&&i(K.OpenStatement,K.Else);)a.push(s());const c=[];if(o(K.OpenStatement,K.Else))for(++n,++n,r(K.CloseStatement,"Expected closing statement token");i(K.OpenStatement,K.EndFor);)c.push(s());return new st(t,e,a,c)}(),r(K.OpenStatement,"Expected {% token"),r(K.EndFor,"Expected endfor token"),r(K.CloseStatement,"Expected %} token");break;default:throw new SyntaxError(`Unknown statement type: ${t[n].type} ${t[n].value}`)}return e}(),e.isStatement=!0;break;case K.OpenExpression:e=function(){r(K.OpenExpression,"Expected opening expression token");const t=l();return r(K.CloseExpression,"Expected closing expression token"),t}(),e.isStatement=!0;break;default:throw new SyntaxError(`Unexpected token type: ${t[n].type}`)}return e}function i(...e){return n+e.length<=t.length&&e.some(((e,r)=>e!==t[n+r].type))}function o(...e){return n+e.length<=t.length&&e.every(((e,r)=>e===t[n+r].type))}function a(){const t=l();if(o(K.Equals)){++n;const e=a();return new it(t,e)}return t}function c(){const e=l();r(K.CloseStatement,"Expected closing statement token");const i=[],a=[];for(;t[n]?.type!==K.OpenStatement||t[n+1]?.type!==K.ElseIf&&t[n+1]?.type!==K.Else&&t[n+1]?.type!==K.EndIf;)i.push(s());if(t[n]?.type===K.OpenStatement&&t[n+1]?.type!==K.EndIf)if(++n,o(K.ElseIf))r(K.ElseIf,"Expected elseif token"),a.push(c());else for(r(K.Else,"Expected else token"),r(K.CloseStatement,"Expected closing statement token");t[n]?.type!==K.OpenStatement||t[n+1]?.type!==K.EndIf;)a.push(s());return new rt(e,i,a)}function u(t=!1){const e=t?E:l,r=[e()],s=o(K.Comma);for(;s&&(++n,r.push(e()),o(K.Comma)););return s?new mt(r):r[0]}function l(){return function(){const t=f();if(o(K.If)){++n;const e=f();if(o(K.Else)){++n;const r=f();return new rt(e,[t],[r])}return new vt(t,e)}return t}()}function f(){let e=h();for(;o(K.Or);){const r=t[n];++n;const s=h();e=new bt(r,e,s)}return e}function h(){let e=p();for(;o(K.And);){const r=t[n];++n;const s=p();e=new bt(r,e,s)}return e}function p(){let e;for(;o(K.Not);){const r=t[n];++n;const s=p();e=new xt(r,s)}return e??function(){let e=w();for(;o(K.ComparisonBinaryOperator)||o(K.In)||o(K.NotIn);){const r=t[n];++n;const s=w();e=new bt(r,e,s)}return e}()}function w(){let e=g();for(;o(K.AdditiveBinaryOperator);){const r=t[n];++n;const s=g();e=new bt(r,e,s)}return e}function d(){const e=function(){let e=E();for(;o(K.Dot)||o(K.OpenSquareBracket);){const s=t[n];let i;++n;const o=s.type!==K.Dot;if(o)i=b(),r(K.CloseSquareBracket,"Expected closing square bracket");else if(i=E(),"Identifier"!==i.type)throw new SyntaxError("Expected identifier following dot operator");e=new ct(e,i,o)}return e}();return o(K.OpenParen)?m(e):e}function m(t){let e=new ut(t,y());return o(K.OpenParen)&&(e=m(e)),e}function y(){r(K.OpenParen,"Expected opening parenthesis for arguments list");const t=function(){const t=[];for(;!o(K.CloseParen);){let e=l();if(o(K.Equals)){if(++n,!(e instanceof lt))throw new SyntaxError("Expected identifier for keyword argument");const t=l();e=new St(e,t)}t.push(e),o(K.Comma)&&++n}return t}();return r(K.CloseParen,"Expected closing parenthesis for arguments list"),t}function b(){const t=[];let e=!1;for(;!o(K.CloseSquareBracket);)o(K.Colon)?(t.push(void 0),++n,e=!0):(t.push(l()),o(K.Colon)&&(++n,e=!0));if(0===t.length)throw new SyntaxError("Expected at least one argument for member/slice expression");if(e){if(t.length>3)throw new SyntaxError("Expected 0-3 arguments for slice expression");return new $t(...t)}return t[0]}function g(){let e=v();for(;o(K.MultiplicativeBinaryOperator);){const r=t[n];++n;const s=v();e=new bt(r,e,s)}return e}function v(){let t=function(){let t=d();for(;o(K.Pipe);){++n;let e=E();if(!(e instanceof lt))throw new SyntaxError("Expected identifier for the filter");o(K.OpenParen)&&(e=m(e)),t=new gt(t,e)}return t}();for(;o(K.Is);){++n;const e=o(K.Not);e&&++n;let r=E();if(r instanceof wt&&(r=new lt(r.value.toString())),!(r instanceof lt))throw new SyntaxError("Expected identifier for the test");t=new Et(t,e,r)}return t}function E(){const e=t[n];switch(e.type){case K.NumericLiteral:return++n,new ht(Number(e.value));case K.StringLiteral:return++n,new pt(e.value);case K.BooleanLiteral:return++n,new wt("true"===e.value.toLowerCase());case K.Identifier:return++n,new lt(e.value);case K.OpenParen:{++n;const e=u();if(t[n].type!==K.CloseParen)throw new SyntaxError(`Expected closing parenthesis, got ${t[n].type} instead`);return++n,e}case K.OpenSquareBracket:{++n;const t=[];for(;!o(K.CloseSquareBracket);)t.push(l()),o(K.Comma)&&++n;return++n,new dt(t)}case K.OpenCurlyBracket:{++n;const t=new Map;for(;!o(K.CloseCurlyBracket);){const e=l();r(K.Colon,"Expected colon between key and value in object literal");const s=l();t.set(e,s),o(K.Comma)&&++n}return++n,new yt(t)}default:throw new SyntaxError(`Unexpected token: ${e.type}`)}}for(;n<t.length;)e.body.push(s());return e}function At(t,e,n=1){void 0===e&&(e=t,t=0);const r=[];for(let s=t;s<e;s+=n)r.push(s);return r}function Ot(t,e,n,r=1){const s=Math.sign(r);s>=0?(e=(e??=0)<0?Math.max(t.length+e,0):Math.min(e,t.length),n=(n??=t.length)<0?Math.max(t.length+n,0):Math.min(n,t.length)):(e=(e??=t.length-1)<0?Math.max(t.length+e,-1):Math.min(e,t.length-1),n=(n??=-1)<-1?Math.max(t.length+n,-1):Math.min(n,t.length-1));const i=[];for(let o=e;s*o<s*n;o+=r)i.push(t[o]);return i}function Tt(t){return t.replace(/\b\w/g,(t=>t.toUpperCase()))}var jt=class{constructor(t=void 0){this.type="RuntimeValue",this.builtins=new Map,this.value=t}__bool__(){return new Ft(!!this.value)}toString(){return""+this.value}toJSON(){return this.value}},Ct=class extends jt{constructor(){super(...arguments),this.type="NumericValue"}},Nt=class t extends jt{constructor(){super(...arguments),this.type="StringValue",this.builtins=new Map([["upper",new qt((()=>new t(this.value.toUpperCase())))],["lower",new qt((()=>new t(this.value.toLowerCase())))],["strip",new qt((()=>new t(this.value.trim())))],["title",new qt((()=>new t(Tt(this.value))))],["length",new Ct(this.value.length)],["rstrip",new qt((()=>new t(this.value.trimEnd())))],["lstrip",new qt((()=>new t(this.value.trimStart())))]])}},Ft=class extends jt{constructor(){super(...arguments),this.type="BooleanValue"}},It=class extends jt{constructor(t,e){super(t),this.orgValue=e,this.type="ObjectValue",this.builtins=new Map([["get",new qt((([t,e])=>{if(!(t instanceof Nt))throw new Error(`Object key must be a string: got ${t.type}`);return this.value.get(t.value)??e??new Vt}))],["items",new qt((()=>new Rt(Array.from(this.value.entries()).map((([t,e])=>new Rt([new Nt(t),e]))))))]])}toString(){let t;return t=this.orgValue&&this.orgValue.toString!==Object.prototype.toString?this.orgValue.toString():JSON.stringify(Object.fromEntries(this.value.entries())),t}toJSON(){return this.orgValue?this.orgValue:Object.fromEntries(this.value.entries())}__bool__(){return new Ft(this.value.size>0)}},Mt=class extends It{constructor(){super(...arguments),this.type="KeywordArgumentsValue"}},Rt=class extends jt{constructor(){super(...arguments),this.type="ArrayValue",this.builtins=new Map([["length",new Ct(this.value.length)]])}__bool__(){return new Ft(this.value.length>0)}},Pt=class extends Rt{constructor(){super(...arguments),this.type="TupleValue"}},qt=class extends jt{constructor(){super(...arguments),this.type="FunctionValue"}},Vt=class extends jt{constructor(){super(...arguments),this.type="NullValue"}},Bt=class extends jt{constructor(){super(...arguments),this.type="UndefinedValue"}},Ut=class{constructor(t){this.parent=t,this.variables=new Map([["namespace",new qt((t=>{if(0===t.length)return new It(new Map);if(1!==t.length||!(t[0]instanceof It))throw new Error("`namespace` expects either zero arguments or a single object argument");return t[0]}))]]),this.tests=new Map([["boolean",t=>"BooleanValue"===t.type],["callable",t=>t instanceof qt],["odd",t=>{if("NumericValue"!==t.type)throw new Error(`Cannot apply test "odd" to type: ${t.type}`);return t.value%2!=0}],["even",t=>{if("NumericValue"!==t.type)throw new Error(`Cannot apply test "even" to type: ${t.type}`);return t.value%2==0}],["false",t=>"BooleanValue"===t.type&&!t.value],["true",t=>"BooleanValue"===t.type&&t.value],["string",t=>"StringValue"===t.type],["number",t=>"NumericValue"===t.type],["integer",t=>"NumericValue"===t.type&&Number.isInteger(t.value)],["iterable",t=>t instanceof Rt||t instanceof Nt],["lower",t=>{const e=t.value;return"StringValue"===t.type&&e===e.toLowerCase()}],["upper",t=>{const e=t.value;return"StringValue"===t.type&&e===e.toUpperCase()}],["none",t=>"NullValue"===t.type],["defined",t=>"UndefinedValue"!==t.type],["undefined",t=>"UndefinedValue"===t.type],["equalto",(t,e)=>t.value===e.value],["eq",(t,e)=>t.value===e.value]])}set(t,e){return this.declareVariable(t,Lt(e))}declareVariable(t,e){if(this.variables.has(t))throw new SyntaxError(`Variable already declared: ${t}`);return this.variables.set(t,e),e}setVariable(t,e){return this.variables.set(t,e),e}resolve(t){if(this.variables.has(t))return this;if(this.parent)return this.parent.resolve(t);throw new Error(`Unknown variable: ${t}`)}lookupVariable(t){try{return this.resolve(t).variables.get(t)??new Bt}catch{return new Bt}}},_t=class{constructor(t){this.global=t??new Ut}run(t){return this.evaluate(t,this.global)}evaluateBinaryExpression(t,e){const n=this.evaluate(t.left,e);switch(t.operator.value){case"and":return n.__bool__().value?this.evaluate(t.right,e):n;case"or":return n.__bool__().value?n:this.evaluate(t.right,e)}const r=this.evaluate(t.right,e);switch(t.operator.value){case"==":return new Ft(n.value==r.value);case"!=":return new Ft(n.value!=r.value)}if(n instanceof Bt||r instanceof Bt)throw new Error("Cannot perform operation on undefined values");if(n instanceof Vt||r instanceof Vt)throw new Error("Cannot perform operation on null values");if(n instanceof Ct&&r instanceof Ct)switch(t.operator.value){case"+":return new Ct(n.value+r.value);case"-":return new Ct(n.value-r.value);case"*":return new Ct(n.value*r.value);case"/":return new Ct(n.value/r.value);case"%":return new Ct(n.value%r.value);case"<":return new Ft(n.value<r.value);case">":return new Ft(n.value>r.value);case">=":return new Ft(n.value>=r.value);case"<=":return new Ft(n.value<=r.value)}else if(n instanceof Rt&&r instanceof Rt){if("+"===t.operator.value)return new Rt(n.value.concat(r.value))}else if(r instanceof Rt){const e=void 0!==r.value.find((t=>t.value===n.value));switch(t.operator.value){case"in":return new Ft(e);case"not in":return new Ft(!e)}}if((n instanceof Nt||r instanceof Nt)&&"+"===t.operator.value)return new Nt(n.toString()+r.toString());if(n instanceof Nt&&r instanceof Nt)switch(t.operator.value){case"in":return new Ft(r.value.includes(n.value));case"not in":return new Ft(!r.value.includes(n.value))}if(n instanceof Nt&&r instanceof It)switch(t.operator.value){case"in":return new Ft(r.value.has(n.value));case"not in":return new Ft(!r.value.has(n.value))}throw new SyntaxError(`Unknown operator "${t.operator.value}" between ${n.type} and ${r.type}`)}evaluateArguments(t,e){const n=[],r=new Map;for(const s of t)if("KeywordArgumentExpression"===s.type){const t=s;r.set(t.key.value,this.evaluate(t.value,e))}else{if(r.size>0)throw new Error("Positional arguments must come before keyword arguments");n.push(this.evaluate(s,e))}return[n,r]}evaluateFilterExpression(t,e){const n=this.evaluate(t.operand,e);if("Identifier"===t.filter.type){const r=t.filter,s=e.lookupVariable(r.value);if(s instanceof qt)return s.value([n],e);if(n instanceof Rt)switch(r.value){case"list":return n;case"first":return n.value[0];case"last":return n.value[n.value.length-1];case"length":return new Ct(n.value.length);case"reverse":return new Rt(n.value.reverse());case"sort":return new Rt(n.value.sort(((t,e)=>{if(t.type!==e.type)throw new Error(`Cannot compare different types: ${t.type} and ${e.type}`);switch(t.type){case"NumericValue":return t.value-e.value;case"StringValue":return t.value.localeCompare(e.value);default:throw new Error(`Cannot compare type: ${t.type}`)}})));default:throw new Error(`Unknown ArrayValue filter: ${r.value}`)}else if(n instanceof Nt)switch(r.value){case"length":return new Ct(n.value.length);case"upper":return new Nt(n.value.toUpperCase());case"lower":return new Nt(n.value.toLowerCase());case"title":return new Nt(Tt(n.value));case"capitalize":return new Nt(n.value.charAt(0).toUpperCase()+n.value.slice(1));case"trim":return new Nt(n.value.trim());case"trimStart":return new Nt(n.value.trimStart());case"trimEnd":return new Nt(n.value.trimEnd());case"indent":return new Nt(n.value.split("\n").map(((t,e)=>0===e||0===t.length?t:" "+t)).join("\n"));case"string":return n;default:throw new Error(`Unknown StringValue filter: ${r.value}`)}else{if(n instanceof Ct){if("abs"===r.value)return new Ct(Math.abs(n.value));throw new Error(`Unknown NumericValue filter: ${r.value}`)}if(n instanceof It)switch(r.value){case"items":return new Rt(Array.from(n.value.entries()).map((([t,e])=>new Rt([new Nt(t),e]))));case"length":return new Ct(n.value.size);case"string":return new Nt(n.toString());default:throw new Error(`Unknown ObjectValue filter: ${r.value}`)}}throw new Error(`Cannot apply filter "${r.value}" to type: ${n.type}`)}if("CallExpression"===t.filter.type){const r=t.filter;if("Identifier"!==r.callee.type)throw new Error(`Unknown filter: ${r.callee.type}`);const s=r.callee.value,i=e.lookupVariable(s);if(i instanceof qt){const[t,s]=this.evaluateArguments(r.args,e);return s.size>0&&t.push(new Mt(s)),i.value([n,...t],e)}if(n instanceof Rt){switch(s){case"selectattr":{if(n.value.some((t=>!(t instanceof It))))throw new Error("`selectattr` can only be applied to array of objects");if(r.args.some((t=>"StringLiteral"!==t.type)))throw new Error("arguments of `selectattr` must be strings");const[t,s,i]=r.args.map((t=>this.evaluate(t,e)));let o;if(s){const t=e.tests.get(s.value);if(!t)throw new Error(`Unknown test: ${s.value}`);o=t}else o=(...t)=>t[0].__bool__().value;const a=n.value.filter((e=>{const n=e.value.get(t.value);return!!n&&o(n,i)}));return new Rt(a)}case"map":{const[,t]=this.evaluateArguments(r.args,e);if(t.has("attribute")){const e=t.get("attribute");if(!(e instanceof Nt))throw new Error("attribute must be a string");const r=t.get("default"),s=n.value.map((t=>{if(!(t instanceof It))throw new Error("items in map must be an object");return t.value.get(e.value)??r??new Bt}));return new Rt(s)}throw new Error("`map` expressions without `attribute` set are not currently supported.")}}throw new Error(`Unknown ArrayValue filter: ${s}`)}if(n instanceof Nt){if("indent"===s){const[t,s]=this.evaluateArguments(r.args,e),i=t.at(0)??s.get("width")??new Ct(4);if(!(i instanceof Ct))throw new Error("width must be a number");const o=t.at(1)??s.get("first")??new Ft(!1),a=t.at(2)??s.get("blank")??new Ft(!1),c=n.value.split("\n"),u=" ".repeat(i.value),l=c.map(((t,e)=>!o.value&&0===e||!a.value&&0===t.length?t:u+t));return new Nt(l.join("\n"))}throw new Error(`Unknown StringValue filter: ${s}`)}throw new Error(`Cannot apply filter "${s}" to type: ${n.type}`)}throw new Error(`Unknown filter: ${t.filter.type}`)}evaluateTestExpression(t,e){const n=this.evaluate(t.operand,e),r=e.tests.get(t.test.value);if(!r)throw new Error(`Unknown test: ${t.test.value}`);const s=r(n);return new Ft(t.negate?!s:s)}evaluateUnaryExpression(t,e){const n=this.evaluate(t.argument,e);if("not"===t.operator.value)return new Ft(!n.value);throw new SyntaxError(`Unknown operator: ${t.operator.value}`)}evalProgram(t,e){return this.evaluateBlock(t.body,e)}evaluateBlock(t,e){let n="";for(const r of t){const t=this.evaluate(r,e);"NullValue"!==t.type&&"UndefinedValue"!==t.type&&(n+=t)}return new Nt(n)}evaluateIdentifier(t,e){return e.lookupVariable(t.value)}evaluateCallExpression(t,e){const[n,r]=this.evaluateArguments(t.args,e);r.size>0&&n.push(new Mt(r));const s=this.evaluate(t.callee,e);if("FunctionValue"!==s.type)throw new Error(`Cannot call something that is not a function: got ${s.type}`);return s.value(n,e)}evaluateSliceExpression(t,e,n){if(!(t instanceof Rt||t instanceof Nt))throw new Error("Slice object must be an array or string");const r=this.evaluate(e.start,n),s=this.evaluate(e.stop,n),i=this.evaluate(e.step,n);if(!(r instanceof Ct||r instanceof Bt))throw new Error("Slice start must be numeric or undefined");if(!(s instanceof Ct||s instanceof Bt))throw new Error("Slice stop must be numeric or undefined");if(!(i instanceof Ct||i instanceof Bt))throw new Error("Slice step must be numeric or undefined");return t instanceof Rt?new Rt(Ot(t.value,r.value,s.value,i.value)):new Nt(Ot(Array.from(t.value),r.value,s.value,i.value).join(""))}evaluateMemberExpression(t,e){const n=this.evaluate(t.object,e);let r,s;if(t.computed){if("SliceExpression"===t.property.type)return this.evaluateSliceExpression(n,t.property,e);r=this.evaluate(t.property,e)}else r=new Nt(t.property.value);if(n instanceof It){if(!(r instanceof Nt))throw new Error(`Cannot access property with non-string: got ${r.type}`);s=n.value.get(r.value)??n.builtins.get(r.value)}else if(n instanceof Rt||n instanceof Nt)if(r instanceof Ct)s=n.value.at(r.value),n instanceof Nt&&(s=new Nt(n.value.at(r.value)));else{if(!(r instanceof Nt))throw new Error(`Cannot access property with non-string/non-number: got ${r.type}`);s=n.builtins.get(r.value)}else{if(!(r instanceof Nt))throw new Error(`Cannot access property with non-string: got ${r.type}`);s=n.builtins.get(r.value)}return s instanceof jt?s:new Bt}evaluateSet(t,e){const n=this.evaluate(t.value,e);if("Identifier"===t.assignee.type){const r=t.assignee.value;e.setVariable(r,n)}else{if("MemberExpression"!==t.assignee.type)throw new Error(`Invalid LHS inside assignment expression: ${JSON.stringify(t.assignee)}`);{const r=t.assignee,s=this.evaluate(r.object,e);if(!(s instanceof It))throw new Error("Cannot assign to member of non-object");if("Identifier"!==r.property.type)throw new Error("Cannot assign to member with non-identifier property");s.value.set(r.property.value,n)}}return new Vt}evaluateIf(t,e){const n=this.evaluate(t.test,e);return this.evaluateBlock(n.__bool__().value?t.body:t.alternate,e)}evaluateFor(t,e){const n=new Ut(e);let r,s;if("SelectExpression"===t.iterable.type){const e=t.iterable;s=this.evaluate(e.iterable,n),r=e.test}else s=this.evaluate(t.iterable,n);if(!(s instanceof Rt))throw new Error(`Expected iterable type in for loop: got ${s.type}`);const i=[],o=[];for(let e=0;e<s.value.length;++e){const a=new Ut(n),c=s.value[e];let u;if("Identifier"===t.loopvar.type)u=e=>e.setVariable(t.loopvar.value,c);else{if("TupleLiteral"!==t.loopvar.type)throw new Error(`Invalid loop variable(s): ${t.loopvar.type}`);{const e=t.loopvar;if("ArrayValue"!==c.type)throw new Error(`Cannot unpack non-iterable type: ${c.type}`);const n=c;if(e.value.length!==n.value.length)throw new Error(`Too ${e.value.length>n.value.length?"few":"many"} items to unpack`);u=t=>{for(let r=0;r<e.value.length;++r){if("Identifier"!==e.value[r].type)throw new Error(`Cannot unpack non-identifier type: ${e.value[r].type}`);t.setVariable(e.value[r].value,n.value[r])}}}}if(r){u(a);if(!this.evaluate(r,a).__bool__().value)continue}i.push(c),o.push(u)}let a="",c=!0;for(let e=0;e<i.length;++e){const r=new Map([["index",new Ct(e+1)],["index0",new Ct(e)],["revindex",new Ct(i.length-e)],["revindex0",new Ct(i.length-e-1)],["first",new Ft(0===e)],["last",new Ft(e===i.length-1)],["length",new Ct(i.length)],["previtem",e>0?i[e-1]:new Bt],["nextitem",e<i.length-1?i[e+1]:new Bt]]);n.setVariable("loop",new It(r)),o[e](n);a+=this.evaluateBlock(t.body,n).value,c=!1}if(c){a+=this.evaluateBlock(t.defaultBlock,n).value}return new Nt(a)}evaluateMacro(t,e){return e.setVariable(t.name.value,new qt(((e,n)=>{const r=new Ut(n);let s;e=e.slice(),"KeywordArgumentsValue"===e.at(-1)?.type&&(s=e.pop());for(let n=0;n<t.args.length;++n){const i=t.args[n],o=e[n];if("Identifier"===i.type){const t=i;if(!o)throw new Error(`Missing positional argument: ${t.value}`);r.setVariable(t.value,o)}else{if("KeywordArgumentExpression"!==i.type)throw new Error(`Unknown argument type: ${i.type}`);{const t=i,e=o??s?.value.get(t.key.value)??this.evaluate(t.value,r);r.setVariable(t.key.value,e)}}}return this.evaluateBlock(t.body,r)}))),new Vt}evaluate(t,e){if(void 0===t)return new Bt;switch(t.type){case"Program":return this.evalProgram(t,e);case"Set":return this.evaluateSet(t,e);case"If":return this.evaluateIf(t,e);case"For":return this.evaluateFor(t,e);case"Macro":return this.evaluateMacro(t,e);case"NumericLiteral":return new Ct(Number(t.value));case"StringLiteral":return new Nt(t.value);case"BooleanLiteral":return new Ft(t.value);case"ArrayLiteral":return new Rt(t.value.map((t=>this.evaluate(t,e))));case"TupleLiteral":return new Pt(t.value.map((t=>this.evaluate(t,e))));case"ObjectLiteral":{const n=new Map;for(const[r,s]of t.value){const t=this.evaluate(r,e);if(!(t instanceof Nt))throw new Error(`Object keys must be strings: got ${t.type}`);n.set(t.value,this.evaluate(s,e))}return new It(n,t.value)}case"Identifier":return this.evaluateIdentifier(t,e);case"CallExpression":return this.evaluateCallExpression(t,e);case"MemberExpression":return this.evaluateMemberExpression(t,e);case"UnaryExpression":return this.evaluateUnaryExpression(t,e);case"BinaryExpression":return this.evaluateBinaryExpression(t,e);case"FilterExpression":return this.evaluateFilterExpression(t,e);case"TestExpression":return this.evaluateTestExpression(t,e);default:throw new SyntaxError(`Unknown node type: ${t.type}`)}}};function Lt(t){switch(typeof t){case"number":return new Ct(t);case"string":return new Nt(t);case"boolean":return new Ft(t);case"undefined":return new Bt;case"object":return null===t?new Vt:Array.isArray(t)?new Rt(t.map(Lt)):new It(new Map(Object.entries(t).map((([t,e])=>[t,Lt(e)]))),t);case"function":return new qt(((e,n)=>{const r=e.map((t=>zt(t)));return Lt(t(...r)??null)}));default:throw new Error(`Cannot convert to runtime value: ${t}`)}}function zt(t){let e=t;if(Array.isArray(t))e=t.map((t=>zt(t)));else if(t instanceof Map)e={},t.forEach(((t,n)=>{e[n]=zt(t)}));else switch(t.type){case"NullValue":e=null;break;case"UndefinedValue":e=void 0;break;case"ArrayValue":e=t.value.map((t=>zt(t)));break;case"KeywordArgumentsValue":case"ObjectValue":e=t.orgValue?t.orgValue:zt(t.value),"KeywordArgumentsValue"===t.type&&Object.setPrototypeOf(e,{jinja_kargs:!0});break;default:t.type&&(e=t.value)}return e}function Jt(t,e=0){return Math.floor(Math.random()*(t-e+1))+e}var Dt={randomInt:Jt,select:function(t,e){if(Array.isArray(t)||"string"==typeof t)return void 0===e?e=Jt(t.length-1):"string"==typeof e&&(e=parseInt(e)),e<0&&(e=t.length+e),t[e];if(t&&"object"==typeof t){if(void 0===e){const n=Object.keys(t);e=n[Jt(n.length-1)]}return t[e]}},tojson:function(t,e,n){return e&&"object"==typeof e&&(e.depth&&(n=e.depth),e=e.indent),Wt(t,e,n)}};function Wt(t,e,n){let r="";const s=n??0;if(null===t)r="null";else{const n=typeof t;switch(n){case"undefined":r="null";case"number":case"string":case"boolean":return JSON.stringify(t);case"object":{const n=e?" ".repeat(e):"",r="\n"+n.repeat(s),i=r+n;if(Array.isArray(t)){const n=t.map((t=>Wt(t,e,s+1)));return e?`[${i}${n.join(`,${i}`)}${r}]`:`[${n.join(", ")}]`}{const n=Array.from(Object.entries(t)).map((([t,n])=>{const r=`"${t}": ${Wt(n,e,s+1)}`;return e?`${i}${r}`:r}));return e?`{${n.join(",")}${r}}`:`{${n.join(", ")}}`}}default:throw new Error(`Cannot convert to JSON: ${n}`)}}return r}var Kt=class extends Ut{constructor(t){super(t),this.parent=t}assign(t){for(const[e,n]of Object.entries(t))this.set(e,n)}clear(){this.variables.clear()}},Gt=class t{static{this.global=new Kt}constructor(t,e={}){const n=tt(t,e={lstrip_blocks:!0,trim_blocks:!0,...e});this.parsed=kt(n)}render(e){const n=new Ut(t.global);n.set("false",!1),n.set("true",!0),n.set("raise_exception",(t=>{throw new Error(t)})),n.set("range",At);for(const[t,r]of Object.entries(e))n.set(t,r);return new _t(n).run(this.parsed).toString()}};function Ht(t,e){let n;switch(t.type){case"Identifier":n=t.value;break;case"MemberExpression":n=Ht(t.object,e);break;case"FilterExpression":n=Ht(t.operand,e);break;case"Set":{e||(e=[]);const r=Ht(t.assignee);r&&e.push(r),n=Ht(t.value,e);break}}return n&&e?.includes(n)&&(n=void 0),n}function Zt(t){let e;if("Program"===t.type)e=t.body.some((t=>Zt(t)));else e=t.isStatement;return e}function Xt(t,e){let n=[];if(Array.isArray(t))n=t.map((t=>Xt(t,e))).filter(Boolean).flat();else switch(t.type){case"Program":n=t.body.map((t=>Xt(t,e))).filter(Boolean).flat();break;case"If":n=[Ht(t.test,e),...Xt(t.body,e),...Xt(t.alternate,e)].filter(Boolean);break;case"BinaryExpression":n=[Ht(t.left,e),Ht(t.right,e)].filter(Boolean);break;case"For":{const r=Ht(t.loopvar);r&&(e||(e=[]),e.push(r)),n=[Ht(t.iterable,e),...Xt(t.body,e)].filter(Boolean);break}case"CallExpression":n=[Ht(t.callee,e),...Xt(t.args,e)].filter(Boolean);break;default:n=[Ht(t,e)].filter(Boolean)}return n}Gt.global.assign(Dt);var Yt=class extends z{static isTemplate(t){let e,n,r=!1;if("object"==typeof t?(n=t.template,e=t.compiledTemplate):n=t,!e&&n)try{e=new Gt(n)}catch(t){}return e&&(r=Zt(e.parsed)),r}getVariables(t=this.compiledTemplate){return Xt(t.parsed,[]).filter(((t,e,n)=>n.indexOf(t)===e))}_initialize(t){const e=t?.template;if("string"!=typeof e)throw new x("Prompt template must be a string","PromptTemplate",400);this.compiledTemplate=new Gt(e),this.inputVariables=Array.isArray(t?.inputVariables)?t.inputVariables:this.getVariables()}_format(t){return this.compiledTemplate.render(t)}};function Qt(t){return function(e){return t}}function te(t){const e=t.split(""),n=[],r=(t,n)=>{for(let r=n;r<e.length;r+=1)if(t.includes(e[r]))return r;return-1};let s=0;for(;s<e.length;)if("{"===e[s]&&s+1<e.length&&"{"===e[s+1])n.push({type:"literal",text:"{"}),s+=2;else if("}"===e[s]&&s+1<e.length&&"}"===e[s+1])n.push({type:"literal",text:"}"}),s+=2;else if("{"===e[s]){const t=r("}",s);if(t<0)throw new Error("Unclosed '{' in template.");n.push({type:"variable",name:e.slice(s+1,t).join("")}),s=t+1}else{if("}"===e[s])throw new Error("Single '}' in template.");{const t=r("{}",s),i=(t<0?e.slice(s):e.slice(s,t)).join("");n.push({type:"literal",text:i}),s=t<0?e.length:t}}return n}function ee(t,e){return t.reduce(((t,n)=>{let r;return r="variable"===n.type?n.name in e?t+e[n.name]:t:t+n.text,r}),"")}function ne(t){const e=new Set;return t.forEach((t=>{"variable"===t.type&&e.add(t.name)})),[...e]}z.register(Yt,{name:"hf",aliases:["huggingface","internal","default"]});var re=class extends z{static isTemplate(t){let e,n,r=!1;if("object"==typeof t?(n=t.template,e=t.compiledTemplate):n=t,!e&&n)try{e=te(n)}catch(t){}if(e){r=ne(e).length>0}return r}getVariables(t=this.compiledTemplate){return ne(t)}_initialize(t){const e=t?.template;if("string"!=typeof e)throw new x("Prompt template must be a string","PromptTemplate",400);this.compiledTemplate=te(e),this.inputVariables=Array.isArray(t?.inputVariables)?t.inputVariables:this.getVariables()}_format(t){return ee(this.compiledTemplate,t)}};function se(t,e){return"string"==typeof e&&(e=e.split(".").filter((t=>t.length))),e.reduce(((t,e)=>t?.[e]),t)}function ie(t,e,n){let r=function(t,e,n){return t.replace(/{{\s*re_replace\s+\.(.+?)\s+(["'])([^\2]*?)\2\s+(["'])([^\4]*?)\4\s*}}/g,((t,r,s,i,o,a)=>{if(n)return e[r]=null,t;const c=new RegExp(i,"g");return se(e,r).replace(c,a)}))}(t,e,n);return r=function(t,e,n){return t.replace(/{{\s*join\s+\.(.+?)\s+(["'])([^\2]*?)\2\s*}}/g,((t,r,s,i)=>n?(e[r]=null,t):se(e,r).join(i)))}(r,e,n),r=function(t,e,n){return t.replace(/{{\s*if\s*(\S+?)\s*}}([^{]*)({{\s*else\s*}}([^{]*))?{{\s*end\s*}}/g,((t,r,s,i,o)=>{if(n)return r.startsWith(".")&&(r=r.substring(1)),e[r]=null,t;let a;if(!r.startsWith("."))throw new Error("Functionality not implemented");{const t=se(e,r.substring(1));if(null==t)a=o??"";else if("string"==typeof t)a=t.length>0?s:o??"";else if(Array.isArray(t))a=t.length>0?s:o??"";else{if("boolean"!=typeof t)throw new Error(`Unexpected type for variable ${r}: ${typeof t}`);a=t?s:o??""}}return a}))}(r,e,n),r=function(t,e,n){return t.replace(/{{\s*range\s*[.$]([^{}\s]+?)\s*}}([^{]*?){{\.}}([^{]*?){{\s*end\s*}}/g,((t,r,s,i)=>{if(n)return e[r]=null,t;const o=se(e,r);if(Array.isArray(o)){let t="";for(const e of o)t+=`${s}${e}${i}`;return t}return t}))}(r,e,n),r=function(t,e,n){return t.replace(/{{\s*\.([^{}\s]+?)\s*}}/g,((t,r)=>n?(e[r]=null,t):se(e,r)||""))}(r,e,n),r=function(t,e,n){return t.replace(/{{\s*index\s*\.(.+?)\s+(.+?)\s*}}/g,((t,r,s)=>{if(n)return e[r]=null,t;const i=se(e,r);let o;return o=isNaN(s)?i[s.substring(1,s.length-1)]:i[parseInt(s,10)],o||""}))}(r,e,n),r}z.register(re,{name:"fstring",aliases:["python","f-string","langchain"]});var oe=class extends z{static isTemplate(t){const e="string"==typeof t?t:t.template;return e?.includes("{{")&&e.includes("}}")}getVariables(t){const e={};return ie(t,e,!0),[...Object.keys(e)]}_initialize(t){const e=t?.template;if("string"!=typeof e)throw new x("Prompt template must be a string","PromptTemplate",400);this.inputVariables=Array.isArray(t?.inputVariables)?t.inputVariables:this.getVariables(e)}_format(t){return ie(this.template,t)}};function ae(t){return Object.keys(t).sort().map((e=>t[e]))}z.register(oe,{name:"golang",aliases:["localai","ollama"]});var ce=class extends z{static from(t){return new this(t)}constructor(t){super(t)}_initialize(t){t&&(t.suffix&&(this.suffix=t.suffix),t.exampleSeparator&&(this.exampleSeparator=t.exampleSeparator),t.prefix&&(this.prefix=t.prefix),t.examplePrompt&&(this.examplePrompt=t.examplePrompt instanceof z?t.examplePrompt:z.from(t.examplePrompt)),t.examples&&(this.examples=t.examples)),this.prefix||(this.prefix=""),this.exampleSeparator||(this.exampleSeparator="\n\n"),this.suffix||(this.suffix="")}async _format(t){const e=[];for await(const t of this.examples)if(this.examplePrompt){const n=await this.examplePrompt.format(t);e.push(n)}else if("string"==typeof t)e.push(t);else if(t){const n=ae(t);n.length>0&&e.push(...n)}const n=[this.prefix,...e,this.suffix].join(this.exampleSeparator),r=this.templateFormat;return await z.format({template:n,data:t,templateFormat:r})}toJSON(t=this){const e=super.toJSON(t);return t.suffix&&(e.suffix=t.suffix),t.exampleSeparator&&(e.exampleSeparator=t.exampleSeparator),t.prefix&&(e.prefix=t.prefix),t.examplePrompt&&(e.examplePrompt=t.examplePrompt),t.examples&&(e.examples=t.examples),e}};z.register(ce,{name:"fewshot",aliases:["few_shot"]});var ue=/(\\)?(\$)(?!\()(\{?)([\w.]+)(?::?-((?:\$\{(?:\$\{(?:\$\{[^}]*\}|[^}])*}|[^}])*}|[^}])+))?(\}?)/gi;function le(t){return t.replace(/\\\$/g,"$")}function fe(t,e,n){return t.replace(ue,((r,s,i,o,a,c,u)=>"\\"===s?r.slice(1):e[a]?e[a]===n[a]?e[a]:fe(e[a],e,n):n[a]?n[a]===t?n[a]:fe(n[a],e,n):c?c.startsWith("$")?fe(c,e,n):c:""))}function he(t){let e=process.env;t&&null!=t.processEnv&&(e=t.processEnv);for(const n in t.parsed){let r=t.parsed[n];if(!r)continue;r=Object.prototype.hasOwnProperty.call(e,n)?e[n]===t.parsed[n]?fe(r,e,t.parsed):e[n]:fe(r,e,t.parsed),t.parsed[n]=r?le(r):r}for(const n in t.parsed)e[n]=t.parsed[n];return t}function pe(t,e={},n){switch(n||(n=new WeakSet),e.processEnv||(e.processEnv={...process.env}),e.parsed||(e.parsed=e.processEnv),typeof t){case"string":t=fe(t,e.processEnv,e.parsed);break;case"object":if(n.has(t))return t;if(n.add(t),Array.isArray(t))for(let r=0;r<t.length;r++){const s=t[r];"string"!=typeof s&&"object"!=typeof s||(t[r]=pe(t[r],e,n))}else for(const[r,s]of Object.entries(t))"string"!=typeof s&&"object"!=typeof s||(t[r]=pe(s,e,n))}return t}var we="@",de=/(\S.+?[.!?])(?=\s+|$)|(\S.+?)(?=[\n]|$)/g,me=/([A-Z][a-z]{1,2}\.)\s(\w)/g,ye=/(\.[a-zA-Z]\.)\s(\w)/g,be=new RegExp("([A-Z][a-z]{1,2}\\.)"+we+"(\\w)","g"),ge=new RegExp("(\\.[a-zA-Z]\\.)"+we+"(\\w)","g");function ve(t,e,n){const r="$1"+e+"$2";let s=t;for(let t=0;t<n.length;t++)s=s.replace(n[t],r);return s}function Ee(t,e=!0){const n=(t=(t=(t=(t=(t=t.replace(/([。!??])\1+/g,"$1")).replace(/([。!??])([^”’])/g,"$1\n$2")).replace(/(\.{6})([^”’])/g,"$1\n$2")).replace(/(…{2})([^”’])/g,"$1\n$2")).replace(/([。!??][”’])([^,。!??])/g,"$1\n$2")).split("\n");let r=[];for(let t=0;t<n.length;t++){let s=n[t].trim();if(!s)continue;if(!e){r.push(s);continue}let i=ve(s,we,[me,ye]),o=Array.from(i.matchAll(de));if(o.length)for(let t=0;t<o.length;t++){let e=ve(o[t][0]," ",[be,ge]);r.push(e)}else r.push(s)}return r}function xe(t,e=2,n=.5){const r=10**e;return Math.trunc((t+Number.EPSILON+n/r)*r)/r}async function $e(t){return new Promise((e=>setTimeout(e,t)))}var Se=require("custom-ability"),ke="event",Ae="event-bus";var Oe=(0,Se.createAbilityInjector)((function(t){return class{static get emitter(){if(!this._emitter){const t=this.get(Ae)?.emitter;t&&(this._emitter=t,this.prototype._events=t._events)}return this._emitter}get emitter(){return this.constructor._emitter}on(e,n){const r=t.emitter;if(!r)throw new TypeError("EventBackend required");return r.on(e,n)}once(e,n){const r=t.emitter;if(!r)throw new TypeError("EventBackend required");return r.once(e,n)}off(e,n){const r=t.emitter;if(!r)throw new TypeError("EventBackend required");return r.off(e,n)}emit(e,...n){const r=t.emitter;if(!r)throw new TypeError("EventBackend required");return"error"===e?this.emitError.apply(this,n):r.emit.call(this,e,this.name,...n)}emitError(e,...n){const r=t.emitter;if(!r)throw new TypeError("EventBackend required");return r.emit.call(this,"error",e,this.name,...n)}async emitAsync(e,...n){const r=t.emitter;if(!r)throw new TypeError("EventBackend required");return r.emitAsync.call(this,e,this.name,...n)}}}),!0);function Te(t,e){return!t||t.some((t=>t instanceof RegExp?t.test(e):t===e))}var je=498,Ce=class{get active(){return this._active}set active(t){t!==this._active&&(t?(this.pingTimer&&(clearInterval(this.pingTimer),this.pingTimer=void 0),this.options.pingInterval>0&&(this.pingTimer=setInterval((()=>this.publish()),this.options.pingInterval))):(this.clients.size&&this.clearClients(),this.pingTimer&&(clearInterval(this.pingTimer),this.pingTimer=void 0)),this._active=t)}constructor(t){this.options=Object.assign({},{pingInterval:3e3,maxStreamDuration:3e4,clientRetryInterval:1e3,startId:1,historySize:100,rewind:0,cors:!1},t),this.nextID=this.options.startId,this.clients=new Set,this.messages=[],this.active=!0}publish(t,e){let n,r;this.active||T("Channel closed","SSEChannel",je);let s=e;if(t||e)r=this.nextID++,"object"==typeof t&&(t.event?(s=t.event,void 0!==t.data&&(t=JSON.stringify(t.data))):t=JSON.stringify(t)),t=t?t.split(/[\r\n]+/).map((t=>"data: "+t)).join("\n"):"",n="id: "+r+"\n"+(e?"event: "+e+"\n":"")+(t||"data: ")+"\n\n",this.messages.push({id:r,_eventName:s,output:n});else{if(!this.clients.size)return;n="data: \n\n"}for([...this.clients].filter((t=>!s||Te(t.events,s))).forEach(((t,e)=>{t.res.write(n)}));this.messages.length>this.options.historySize;)this.messages.shift();return r}subscribe(t,e,n){this.active||T("Channel closed","SSEChannel",je);const r={req:t,res:e,events:n},s=this.options.maxStreamDuration;let i="max-age=0, stale-while-revalidate=0, stale-if-error=0, no-transform";s>0&&(i+=", s-maxage="+(Math.floor(s/1e3)-1));const o={"Content-Type":"text/event-stream","Cache-Control":i,Connection:"keep-alive"};this.options.cors&&(o["access-control-allow-origin"]="*"),r.req.socket.setNoDelay(!0),r.res.writeHead(200,o);let a="retry: "+this.options.clientRetryInterval+"\n\n";const c=Number.parseInt(t.headers["last-event-id"],10),u=Number.isNaN(c)?this.options.rewind:this.nextID-1-c;return u&&this.messages.filter((t=>Te(r.events,t.eventName))).slice(0-u).forEach((t=>{a+=t.output})),r.res.write(a),this.clients.add(r),s>0&&setTimeout((()=>{r.res.writableEnded||this.unsubscribe(r)}),s),r.res.on("close",(()=>this.unsubscribe(r))),r}unsubscribe(t){t.res.end(),this.clients.delete(t)}clearClients(){this.clients.forEach((t=>t.res.end())),this.clients.clear()}listClients(){const t={};return this.clients.forEach((e=>{const n=e.req.socket.remoteAddress??"";n in t||(t[n]=0),t[n]++})),t}getSubscriberCount(){return this.clients.size}};function Ne(t){return t instanceof ReadableStream||t instanceof WritableStream}var Fe=600,Ie=601,Me=class extends E{constructor(t,e=Fe){super(t,500)}};function Re(t){if(t){const e=t.getReader();return new ReadableStream({async start(t){const{done:n,value:r}=await e.read();if(!n){const e=(new TextDecoder).decode(r);t.error(new Me(`Response error: ${e}`,Ie))}}})}return new ReadableStream({start(t){t.error(new Me("Response error: No response body",Ie))}})}function Pe(){return new ReadableStream({start(t){t.close()}})}var qe=require("eventsource-parser");function Ve(t){const e=new TextDecoder;let n;return new TransformStream({async start(e){n=(0,qe.createParser)((n=>{if("data"in n&&"event"===n.type&&"[DONE]"===n.data||"done"===n.event)e.terminate();else if("data"in n){const r=t?t(n.data,{event:n.event}):n.data;r&&e.enqueue(r)}}))},transform(t){n.feed(e.decode(t))}})}function Be(){let t=!0;return e=>(t&&(e=e.trimStart())&&(t=!1),e)}function Ue(t,e){if(!t.ok)return Re(t.body);let n=t.body||new ReadableStream({start(t){t.close()}});return n instanceof ReadableStream||(n=ReadableStream.from(n)),n.pipeThrough(Ve(e))}function _e(t){let e=t[Symbol.asyncIterator]();return new ReadableStream({async pull(t){const{done:n,value:r}=await e.next();n?t.close():t.enqueue(r)},async cancel(t){await(e.return?.(t))}})}function Le(t){const e=t||{};return new TransformStream({async start(t){const n=t.error;if(t.error=r=>{n.call(t,r),e.onError&&e.onError(r)},e.onStart)try{await e.onStart(t)}catch(e){t.error(e)}},async transform(t,n){try{let r;e.onTransform&&(r=await e.onTransform(t,n)),r||(r=t),n.enqueue(r)}catch(t){n.error(t)}},async flush(t){if(e.onFinal)try{await e.onFinal(t)}catch(e){return t.error(e)}t.terminate()}})}var ze=require("uuid"),Je=c(require("base32768")),De=require("uuid"),We={1:ze.v1,4:ze.v4,5:ze.v5};function Ke(t=1,e){const n=We[t];return e?Je.encode(n(null,[])):n()}var Ge=c(require("xxhashjs")),He=c(require("base32768")),Ze=require("json-canonicalize"),Xe=He,{h32:Ye,h64:Qe}=Ge.default,tn=588213;function en(t,e=16){return"object"==typeof t&&(t=(0,Ze.canonicalize)(t)),Ye(t,tn).toString(e)}function nn(t,e=16){return"object"==typeof t&&(t=(0,Ze.canonicalize)(t)),Qe(t,tn).toString(e)}var rn=(t=>(t[t.xxhash64=111]="xxhash64",t[t.xxhash32=112]="xxhash32",t))(rn||{});function sn(t,e=111,n=tn){let r;return t.buffer&&(t=t.buffer),112!==e?(r=Qe(t,n),r=new Uint16Array([r._a00,r._a16,r._a32,r._a48]),r=new Uint8Array(r.buffer)):(r=Ye(t,n),r=new Uint16Array([r._low,r._high]),r=new Uint8Array(r.buffer)),r}function on(t,e=111,n=tn){return He.encode(sn(t,e,n))}var an=c(require("path")),cn=/[<>:"/\\|?*\u0000-\u001F]/,un=/^(con|prn|aux|nul|com\d|lpt\d)$/i,ln=100,fn=/^\.+(\\|\/)|^\.+$/,hn=/\.+$/,pn=/[\u0000-\u001F\u0080-\u009F\u200E\u200F\u202A-\u202E\u2066-\u2069]/;function wn(){return new RegExp(cn.source,"g")}function dn(){return new RegExp(pn.source,"g")}function mn(t){return t&&!(cn.test(t)||dn().test(t)||fn.test(t)||hn.test(t))}function yn(t){const e=t.split(an.default.sep);return("/"===t[0]||e[0]&&an.default.dirname(e[0])===e[0])&&e.shift(),e.every(mn)}function bn(t,e={}){const n=e.replacement||"!";if((cn.test(n)||pn.test(n))&&T("Replacement string cannot contain reserved filename characters","sanitizeFilename",400),n.length>0){const e=/([<>:"/\\|?*\u0000-\u001F]){2,}/;t=t.replace(e,"$1")}if(t=(t=(t=(t=(t=t.normalize("NFD")).replace(fn,n)).replace(wn(),n)).replace(dn(),n)).replace(hn,""),n.length>0){"."===t[0]||"."!==t[0]||(t=n+t),"."===t[t.length-1]&&(t+=n)}t=un.test(t)?t+n:t;const r="number"==typeof e.maxLength?e.maxLength:ln;if(t.length>r){const e=t.lastIndexOf(".");if(-1===e)t=t.slice(0,r);else{const n=t.slice(0,e),s=t.slice(e);t=n.slice(0,Math.max(1,r-s.length))+s}}return t}function gn(t,e={}){const n=t.split(an.default.sep);let r;("/"===t[0]||n[0]&&an.default.dirname(n[0])===n[0])&&(r=n.shift());const s=n.map((t=>bn(t,e)));return void 0!==r&&s.unshift(r),s.join(an.default.sep)}function vn(t,e=1){let n="";for(;e--;){const e=an.default.extname(t);if(!e)break;n=e+n,t=an.default.basename(t,e)}return n}function En(t){return t.split(".").length-1}var xn=require("util-ex");function $n(t,e){if("string"!=typeof t)throw new x("modelName must be a string","isModelNameMatched",400);switch(typeof e){case"string":if((0,xn.isRegExpStr)(e)){const n=(e=(0,xn.toRegExp)(e)).exec(t);if(n)return n}else if(t.toLowerCase()===e.toLowerCase())return e;break;case"object":if(Array.isArray(e)){for(const n of e)if("string"==typeof n){if((0,xn.isRegExpStr)(n)){const r=(e=(0,xn.toRegExp)(n)).exec(t);if(r)return r}else if(t.toLowerCase()===n.toLowerCase())return n}else if(n instanceof RegExp){const e=n.exec(t);if(e)return e}else if("function"==typeof n){const e=n.call(this,t);if(e)return e}}else if(e instanceof RegExp){const n=e.exec(t);if(n)return n}break;case"function":const n=e.call(this,t);if(n)return n}}function Sn(t){return Object.keys(t).filter((t=>Number.isNaN(Number(t))))}var kn=require("lodash-es"),An=require("util-ex");function On(t,e){if(e&&(e=Cn(e)),e){const n=Object.keys(e);if(n.length){const r=Object.values(e);return(0,An.newFunction)("expression",n,`return ${t}`)(...r)}}return(0,An.newFunction)("expression",[],`return ${t}`)()}var Tn=/^[a-zA-Z_$][0-9a-zA-Z_$]*$/,jn=t=>Tn.test(t);function Cn(t){if(t){const e=Object.keys(t),n=e.length,r=e.filter((e=>jn(e)&&null!==t[e]));if(n===r.length)return t;if(r.length)return t=(0,kn.pick)(t,r)}}function Nn(t){return t?Fn(t,[],""):[]}function Fn(t,e,n="."){return Array.isArray(t)?t.flatMap(((t,n)=>Fn(t,[...e,`[${n}]`]))):(r=t)&&r.constructor===Object?Object.entries(t).flatMap((([t,r])=>Fn(r,[...e,n+t]))):[e.join("")];var r}function In(t){if(t<2)throw new x("repetitionThreshold must be greater than 1","createEndWithRepetitionDetector",400);const e=new RegExp(`([\\S\\s]+)(\\1{${t-1},})$`);return function(t){return e.exec(t)}}var Mn=c(require("path")),Rn=c(require("fs"));function Pn(t){const e=Rn.statSync(t,{throwIfNoEntry:!1});return e?.isFile()}function qn(t,e,n,r){const s=r?.signal,i=r?.exclude;let o;if(Mn.default.isAbsolute(t)?o=Pn(t)?t:Vn(Mn.default.basename(t),[Mn.default.dirname(t)],{extNames:n,exclude:i,signal:s}):(e||(e=["."]),o=Vn(t,e,{extNames:n,exclude:i,signal:s})),!o)throw new S(t,"loadFileFromPaths");{const t=o;o=Rn.readFileSync(o),r&&(r.filepath=t)}return o}function Vn(t,e,{extNames:n,signal:r,exclude:s=[]}){let i;const o=n?n.map((e=>vn(t,En(e)))):void 0;"string"==typeof s&&(s=[s]);for(const a of e){if(r?.aborted)throw r.reason;const e=Mn.default.resolve(a,t);if(o)for(let t=0;t<o.length;t++){const r=e+(o[t]!==n[t]?n[t]:"");if(!s.includes(r)&&Pn(r)){i=r;break}}else if(!s.includes(e)&&Pn(e)){i=e;break}}return i}function Bn(t,e,n,r,s){let i;"string"==typeof r?(i=r,r=void 0):i=r?.encoding??"utf8";return qn(t,e,n,r).toString(i)}function Un(t,e){const n=[],r="string"==typeof t?[t]:[...t],s=new Set,i=e?.signal,o=e?.isFileMatched,a=e?.level;let c=0;for(;r.length>0;){if(i?.aborted)throw i.reason;const t=_n(r.pop()),e=Mn.default.resolve(t);if(s.has(e))continue;s.add(e);const u=Rn.statSync(t,{throwIfNoEntry:!1});if(u?.isDirectory()){const e=Rn.readdirSync(t,{withFileTypes:!0});for(let s=0;s<e.length;s++){const i=e[s],a=Mn.default.join(t,i.name);i.isDirectory()?r.push(a):!i.isFile()||o&&!o(a)||n.push(a)}if(c++,a&&c>=a)break}}return n}function _n(t){const e=Rn.lstatSync(t,{throwIfNoEntry:!1});return e?.isSymbolicLink()&&(t=Rn.readlinkSync(t)),t}var Ln=require("fs"),zn=c(require("path")),Jn=require("load-config-file"),Dn=require("yaml"),Wn=require("yaml-types"),Kn=require("mime-type/with-db"),Gn=require("yaml"),Hn=[Wn.regexp];function Zn(t){Array.isArray(t)||(t=[t]);for(const e of t){-1===Hn.indexOf(e)&&Hn.push(e)}}function Xn(t){return(0,Dn.parse)(t,{customTags:Hn})}function Yn(t,e){const n=[],r=e?.after,s=e?.exclude?"string"==typeof e.exclude?[e.exclude]:e.exclude:void 0,i=e?.extensions?"string"==typeof e.extensions?[e.extensions]:e.extensions.map((t=>t.startsWith(".")?t:"."+t)):[".yml",".yaml",".json"];return function(t,e){const n=(0,Ln.readdirSync)(t,{withFileTypes:!0,recursive:!0});for(const r of n){const n=zn.default.join(t,r.name);r.isFile()&&e(n,r)}}(t,((t,e)=>{if(s?.includes(t))return;const o=zn.default.extname(t),a=(0,Ln.statSync)(t);if(i.includes(o)){if(r?.hasOwnProperty(t)&&a.mtimeMs<=r[t])return;n.push(t)}})),n}function Qn(t,e){return Yn(t,e).map((t=>Jn.Config.loadSync(t))).filter((t=>void 0!==t))}function tr(t,e,n=1){"."===t[0]&&n++;const r=vn(t,n);(!r||r.split(".").length<=1)&&(t+=".yaml");const s=Kn.mimeType.lookup(t);if("application/json"===s)e=JSON.stringify(e,null,2);else{if("text/yaml"!==s)throw new Error(`${t} unsupported mime type: ${s}`);e=(0,Dn.stringify)(e)}const i=zn.default.dirname(t);return(0,Ln.existsSync)(i)||(0,Ln.mkdirSync)(i,{recursive:!0}),(0,Ln.writeFileSync)(t,e,{encoding:"utf8"}),t}function er(t){t instanceof Date&&(t=t.toISOString());return function(t,e){return t?`'${e}'`:String(e)}("string"==typeof t,t)}function nr(t,e){return t.map((t=>ir(t,e))).join(" AND ")}function rr(t,e){return t.map((t=>ir(t,e))).join(" OR ")}function sr(t,e){const n=[];return Object.keys(e).forEach((r=>{const s=e[r];switch(r){case"$lt":case"<":n.push(`${t} < ${er(s)}`);break;case"<=":case"$lte":n.push(`${t} <= ${er(s)}`);break;case"$gt":case">":n.push(`${t} > ${er(s)}`);break;case"$gte":case">=":n.push(`${t} >= ${er(s)}`);break;case"$ne":case"!=":n.push(`${t} != ${er(s)}`);break;case"=":case"$eq":n.push(`${t} = ${er(s)}`);break;case"$in":n.push(`${t} IN (${s.map((t=>er(t))).join(", ")})`);break;case"$nin":n.push(`${t} NOT IN (${s.map((t=>er(t))).join(", ")})`);break;case"$regex":n.push(`${t} REGEXP '${s.source}'`);break;case"$like":n.push(`${t} LIKE '${s}'`);break;case"$nlike":n.push(`${t} NOT LIKE '${s}'`);break;case"$glob":n.push(`${t} GLOB '${s}'`);break;case"$nglob":n.push(`${t} NOT GLOB '${s}'`);break;default:throw new Error(`Unsupported condition operator: ${r}`)}})),n.join(" AND ")}function ir(t,e){const n=[];if("function"!=typeof e&&(e=t=>t),Array.isArray(t))n.push(nr(t,e));else for(const[r,s]of Object.entries(t))if("$and"===r)n.push(`(${nr(t[r],e)})`);else if("$or"===r)n.push(`(${rr(t[r],e)})`);else{const t=typeof s;if(null==s)n.push(`${e(r)} IS NULL`);else if(s instanceof Date)n.push(`${e(r)}='${s.toISOString()}'`);else if("object"!==t||Array.isArray(s))if("string"===t)n.push(`${e(r)}='${s}'`);else{if("number"!==t&&"boolean"!==t)throw new Error(`Unsupported value type for key ${r}`);n.push(`${e(r)}=${s}`)}else n.push(sr(e(r),s))}return n.length>1?n.join(" AND "):n[0]}function or(t){const e=t.indexOf("://");if(e>0)return t.substring(0,e)}function ar(t,e=0){let n,r=t*10**e;return t>=1e12?(r=Math.round(r/1e12),n="T"):t>=1e9?(r=Math.round(r/1e9),n="B"):t>=1e6?(r=Math.round(r/1e6),n="M"):t>=1e3?(r=Math.round(r/1e3),n="K"):(r=Math.round(r),n=""),r/=10**e,r.toFixed(e)+n}function cr(t){const e=t.match(/^\s*[+]?(\d+(?:[.]\d+)?)\s*([TBMK])?\s*$/i);if(!e)throw new x("Invalid formatted parameter size string.","scaleToSize",400);const n=parseFloat(e[1]),r=e[2]?.toLowerCase();switch(r){case"t":return 1e12*n;case"b":return 1e9*n;case"m":return 1e6*n;case"k":return 1e3*n;default:return n}}function ur(t,e){const n=e?.level||0,r=e?.visiting||new Set,s=e?.objectTag||"*",i=e?.arrayTag||"-";let o=[];const a=" ".repeat(2*n);if(null!=t)switch(typeof t){case"object":r.has(t)?o=["[Circular]"]:(r.add(t),o=Array.isArray(t)?t.map((t=>i+c(t))):Object.entries(t).map((([t,e])=>s+" `"+t+"`:"+c(e))));break;case"string":return t;default:return JSON.stringify(t)}else o=["null"];return o.length?a+o.join("\n"+a):"";function c(t){return(null!=t&&"object"==typeof t?"\n":" ")+ur(t,{level:n+1,visiting:r})}}Jn.Config.register([".yml",".yaml"],Xn),Jn.Config.register([".json"],(function(t){return JSON.parse(t)}));var lr=class t{constructor(t=0){this.bitField=t}static has(t,e){return!!(t&1<<e)}static add(t,e){return t|1<<e}static delete(t,e){return t&~(1<<e)}add(t){return this.bitField|=1<<t,this}delete(t){return this.bitField&=~(1<<t),this}has(e){return t.has(this.bitField,e)}clear(){return this.bitField=0,this}valueOf(){return this.bitField}toString(){return this.bitField.toString()}toJSON(){return this.bitField}},fr=require("events-ex"),hr=32;function pr(t){return e=Math.min(Math.max(16,t),1073741824),e>>>=0,e-=1,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,1+(e|=e>>16);var e}var wr=class{constructor(t){this._capacity=pr(t),this._length=0,this._front=0,this.arr=[]}push(t){const e=this._length;this.checkCapacity(e+1);const n=this._front+e&this._capacity-1;return this.arr[n]=t,this._length=e+1,n}pop(){const t=this._length;if(0===t)return;const e=this._front+t-1&this._capacity-1,n=this.arr[e];return this.arr[e]=void 0,this._length=t-1,n}shift(){const t=this._length;if(0===t)return;const e=this._front,n=this.arr[e];return this.arr[e]=void 0,this._front=e+1&this._capacity-1,this._length=t-1,n}get length(){return this._length}checkCapacity(t){this._capacity<t&&this.resizeTo(pr(1.5*this._capacity+16))}resizeTo(t){const e=this._capacity;this._capacity=t;const n=this._front,r=this._length;if(n+r>e){const t=n+r&e-1;!function(t,e,n,r,s){for(let i=0;i<s;++i)n[i+r]=t[i+e],t[i+e]=void 0}(this.arr,0,this.arr,e,t)}}},dr=class extends fr.EventEmitter{};function mr(t){return"function"==typeof t}function yr(){return"1"}var br=class{constructor(t,{initFn:e=yr,pauseFn:n,resumeFn:r,capacity:s=hr}={}){if(mr(n)!==mr(r))throw new Error("pauseFn and resumeFn must be both set for pausing");this.maxConcurrency=t,this.free=new wr(t),this.waiting=new wr(s),this.releaseEmitter=new dr,this.useDefaultTokens=e===yr,this.pauseFn=n,this.resumeFn=r,this.paused=!1,this.releaseEmitter.on("release",(t=>{const e=this.waiting.shift();e?e.resolve(t):(this.resumeFn&&this.paused&&(this.paused=!1,this.resumeFn()),this.free.push(t))}));for(let n=0;n<t;n++)this.free.push(e())}tryAcquire(){return this.free.pop()}acquire(t){let e=this.tryAcquire();return void 0!==e?Promise.resolve(e):new Promise(((e,n)=>{this.pauseFn&&!this.paused&&(this.paused=!0,this.pauseFn());const r=this.waiting.push({resolve:e,reject:n});return t&&t.addEventListener("abort",(()=>{this.waiting[r]=void 0;const e=t.reason instanceof Error?t.reason:new Error(t.reason||"aborted");t.alreadyRejected=!0,n(e)})),r}))}release(t){this.releaseEmitter.emit("release",this.useDefaultTokens?"1":t)}drain(){const t=new Array(this.maxConcurrency);for(let e=0;e<this.maxConcurrency;e++)t[e]=this.acquire();return Promise.all(t)}pendingCount(){return this.waiting.length}};function gr(t,{timeUnit:e=1e3,uniformDistribution:n=!1}={}){const r=new br(n?1:t),s=n?e/t:e;return async function(){await r.acquire(),setTimeout((()=>r.release()),s)}}var vr,Er=require("custom-ability"),xr=require("property-manager"),$r=require("util-ex"),Sr=0,kr=1,Ar=2,Or=(t=>(t[t.MultiTask=Sr]="MultiTask",t[t.Cancelable=kr]="Cancelable",t[t.Priority=Ar]="Priority",t))(Or||{}),Tr=((vr=Tr||{})[vr.MultiTask=1<<Sr]="MultiTask",vr[vr.Cancelable=1<<kr]="Cancelable",vr[vr.Priority=1<<Ar]="Priority",vr),jr=class t extends xr.AdvancePropertyManager{static{this.items={}}static get(t){return this.items[t]}static list(){return this.items}static getByTag(t){let e;for(const n in this.list()){const r=this.get(n);let s=r.tags;if("string"==typeof s){if(s===t){e=r;break}}else if(Array.isArray(s)&&s.indexOf(t)>=0){e=r;break}}return e}static getAllByTag(t){let e=[];for(const n in this.list()){const r=this.get(n);let s=r.tags;"string"==typeof s?s===t&&e.push(r):Array.isArray(s)&&s.indexOf(t)>=0&&e.push(r)}return e}static hasAsyncFeature(t){const e=this.prototype;let n=e.asyncFeatures;return e._asyncFeatures&&(n|=e._asyncFeatures),lr.has(n,t)}static run(t,e){const n=this.get(t);if(n)return n.run(e);throw new S(`${t} to run`,this.name)}static runSync(t,e){const n=this.get(t);if(n)return n.runSync(e);throw new S(`${t} to run`,this.name)}static getFunc(t){const e=this.get(t);return e?.getFunc()}static runWithPos(t,...e){const n=this.get(t);if(n)return n.runWithPos(...e);throw new S(`${t} to run`,this.name)}static runWithPosSync(t,...e){const n=this.get(t);if(n)return n.runWithPosSync(...e);throw new S(`${t} to run`,this.name)}static getFuncWithPos(t){const e=this.get(t);return e?.getFuncWithPos()}static register(e,n={}){switch(typeof e){case"string":n.name=e;break;case"function":n.func=e;break;case"object":n=e}e=n.name;let r=!!this.get(e);if(r)r=!1;else{if(!(n instanceof t))return r=new this(n),r.register();this.items[e]=n,r=n}return r}static unregister(t){const e=this.items[t];return e&&delete this.items[t],e}constructor(t,e={}){switch(super(),typeof t){case"string":e.name=t;break;case"function":e.func=t;break;case"object":e=t}this.name=t=e.name,e.scope&&(this.scope=e.scope),"function"==typeof e.setup&&e.setup.call(this,e),this.initialize(e)}register(){const e=this.constructor,n=this.depends;if(n){const e=Object.keys(n);for(const r of e){const e=n[r];e instanceof t&&e.register()}}return e.register(this)}unregister(){return this.constructor.unregister(this.name)}arr2ObjParams(t){if(this.params&&(t.length>1||Array.isArray(t[0])||t[0]&&"object"!=typeof t[0])){const e={},n=Object.keys(this.params);let r=Math.min(n.length,t.length);for(let s=0;s<r;s++)e[n[s]]=t[s];t=[e]}return t}obj2ArrParams(t){const e=[];if(t&&this.params&&Array.isArray(this.params)){const n=Object.keys(t);let r=Math.min(n.length,this.params.length);for(let s=0;s<r;s++)e.push(t[n[s]])}return e}runSync(t){const e=this.params&&Array.isArray(this.params);if(Array.isArray(t)){if(e)return this.func(...t);T("the function is not support array params, the params must be object!",this.name)}return e?(t=this.obj2ArrParams(t),console.warn('Warning:Use runWithPos() instead of run() for the "'+this.name+'" is function with position params'),this.func(...t)):this.func(t)}run(t){return this.runSync(t)}runAs(t,e){return this.runAsSync(t,e)}runAsSync(t,e){return this.constructor.runSync(t,e)}getFunc(t){return t?this.constructor.getFunc(t):this.runSync.bind(this)}runWithPosSync(...t){return this.params&&!Array.isArray(this.params)&&(t=this.arr2ObjParams(t)),this.func(...t)}runWithPosAsSync(t,...e){return this.constructor.runWithPosSync(t,...e)}runWithPos(...t){return this.runWithPosSync(...t)}runWithPosAs(t,...e){return this.runWithPosAsSync(t,...e)}getFuncWithPos(t){return t?this.constructor.getFuncWithPos(t):this.runWithPosSync.bind(this)}hasAsyncFeature(t){let e=this.asyncFeatures;return this._asyncFeatures&&(e|=this._asyncFeatures),lr.has(e,t)}isStream(t){return this.stream}},Cr={name:{type:"string"},description:{type:"string"},func:{type:"function",assign(t,e,n,r,s){let i=t;const o=typeof t;return s.isExported?i="function"===o?t.toString():t:t&&("string"!==o&&(t=t.toString()),i=(0,$r._createFunction)(t,e.scope)),i}},params:{type:"object"},result:{type:"any"},setup:{type:"function"},depends:{type:"object",exported:!1},tags:{type:["array","string"]},isApi:{type:"boolean"},stream:{type:"boolean"},asyncFeatures:{type:"number"}};jr.defineProperties(jr,Cr);var Nr=require("util-ex"),Fr=class extends AbortController{constructor(t){super(),(0,Nr.defineProperty)(this,"parent",t)}abort(t,e){this.signal.aborted||("string"==typeof t&&(t=new A(t)),t&&e&&"object"==typeof t&&Object.assign(t.data,e),super.abort(t))}throwRejected(t){const e=this.signal;if(e.aborted){if(void 0===t&&(t=e.alreadyRejected),t)return!0;throw e.reason instanceof Error?e.reason:new A(e.reason||"aborted")}}},Ir=class{get maxTaskConcurrency(){return this._maxTaskConcurrency}get semaphore(){const t=this._maxTaskConcurrency;let e=this.__task_semaphore;return t>0&&!e&&(e=this.__task_semaphore=new br(t-1)),e}isAborted(t){const e=this.hasAsyncFeature(Sr);let n=this.__task_aborter;if(n&&e){if(null==t)throw new x("Missing taskId",this.name+".isAborted",400);n=n[t]}return!n||n.signal.aborted}getRunningTask(t){const e=this.hasAsyncFeature(Sr);let n=this.__task_aborter;if(n&&e){if(null==t)throw new x("Missing taskId",this.name+".getRunningTask",400);n=n[t]}return n?.signal.aborted&&(e?this.__task_aborter[t]=void 0:this.__task_aborter=void 0,n=void 0),n}getRunningTaskCount(){let t;if(this.hasAsyncFeature(Sr)){const e=this.__task_aborter;t=e&&Object.entries(e).filter((([t,n])=>{if(!n?.signal.aborted)return!0;e[t]=void 0})).length}else{const e=this.__task_aborter;t=e?.signal.aborted?0:1}return t}_generateAsyncTaskId(t,e){if(e||(e=this.__task_aborter),null==t&&(t=0,e))for(;e[t];)t++;return t}$generateAsyncTaskId(t,e){const n=this.super,r=this.self||this;return t=n?n.call(r,t):this._generateAsyncTaskId(t,e)}createAborter(t,e,n=!0){const r=this.hasAsyncFeature(Sr);if(!r&&n&&this.getRunningTask())throw new x("The task is running",this.name,429);const s=t?.aborter||new Fr(this);if(!(s instanceof Fr)){if(!(s instanceof AbortController))throw new x("aborter should be an AbortController",this.name,400);Object.setPrototypeOf(s,new Fr(this))}if(r){null==this.__task_aborter&&(this.__task_aborter={});const t=this.__task_aborter;null==e&&(e=this.generateAsyncTaskId(e,t)),s.id=e,t[e]=s}else this.__task_aborter=s;const i=t?.timeout;return i>0&&(s.timeoutId=setTimeout((()=>{s.timeoutId=void 0,this.abort("timeout",{timeout:i})}),i)),s.signal.addEventListener("abort",(()=>{const t=s.timeoutId;t&&(s.timeoutId=void 0,clearTimeout(t));const e=s.signal;try{this.emit&&this.emit("aborting",e.reason,e.reason?.data)}finally{s.streamController?.error(e.reason)}})),s}$cleanMultiTaskAborter(t,e){const n=this.super,r=this.self||this;n?n.call(r,t,e):r._cleanMultiTaskAborter(t,e)}cleanTaskAborter(t){if(this.hasAsyncFeature(Sr)){const e=this.__task_aborter;this.cleanMultiTaskAborter(t.id,e)}else this.__task_aborter=void 0}_cleanMultiTaskAborter(t,e){"number"==typeof t?e[t]=void 0:delete e[t]}createTaskPromise(t,e,n){const r=this.createAborter(e,n?.taskId,n?.raiseError);void 0===e&&(e={}),"object"==typeof e&&(e.aborter=r);let s=t(e,r).then((t=>{if(t&&t instanceof ReadableStream){const e=()=>{this.cleanTaskAborter(r)},n=Le({onStart:t=>{(0,Nr.defineProperty)(r,"streamController",t)},onFinal:e,onError:e,onTransform:(t,e)=>(t&&"object"==typeof t&&(t.taskId=r.id),t)});t=t.pipeThrough(n)}else this.cleanTaskAborter(r);return t})).catch((t=>{throw this.cleanTaskAborter(r),t})).finally((()=>{r.timeoutId&&(clearTimeout(r.timeoutId),r.timeoutId=void 0)}));return s.task=r,s}runAsyncCancelableTask(t={},e,n){let r=this.createTaskPromise(e,t,n);const s=this.semaphore;if(s){const t=r,e=t.task;r=s.acquire(e.signal).then((()=>t)).finally((()=>{s.release()})),r.task=e}return r}abort(t,e){let n=this.__task_aborter;if(n){const r=n;if(this.hasAsyncFeature(Sr)){const t=e?.taskId;if(null==t)throw new x("Missing data.taskId",this.name+".abort",400);n=n[t],this.cleanMultiTaskAborter(t,r)}else this.__task_aborter=void 0;n&&!n.signal.aborted&&n.abort(t,e)}}};Ir.prototype.generateAsyncTaskId=function(t,e){return this._generateAsyncTaskId(t,e)},Ir.prototype.cleanMultiTaskAborter=function(t,e){return this._cleanMultiTaskAborter(t,e)};var Mr=(0,Er.createAbilityInjector)(Ir,"abort",{afterInjection:function(t,e){let n=t.prototype._asyncFeatures||0;n|=Tr.Cancelable,e&&(e.asyncFeatures&&(n|=e.asyncFeatures),e.maxTaskConcurrency>0&&(t.prototype._maxTaskConcurrency=e.maxTaskConcurrency)),t.prototype._asyncFeatures=n}});function Rr(t,e){const n=e.global?e:new RegExp(e.source,`${e.flags}g`);let r,s=0;for(;null!==(r=n.exec(t));)s++;return s}var Pr=require("lodash-es"),qr=require("util-ex");async function Vr(t,e,n){return Ur(Zr(t,e,n),e,n)}function Br(t){if(t&&!Array.isArray(t)&&"object"==typeof t){const e=Object.entries(t),n=Object.keys(t);1===e.length&&void 0!==t[0]?t=t[0]:n.every((t=>!isNaN(parseInt(t))))?t=n.sort(((t,e)=>parseInt(t)-parseInt(e))).map((e=>t[e])):2===e.length&&"0"===e[0][0]&&e[0][1]===e[1][1]&&(t=t[0])}return t}async function Ur(t,e,n){if(t.length){const r=await Promise.all(t.map(((t,r)=>Hr(t,r,e,n))));console.log("🚀 ~ parseObjectArgumentInfos ~ _args:",r);const s=n?.returnArrayOnly;let i;if(r?.length){const t=`{${r.map((t=>t)).join(",")}}`;console.log("🚀 ~ parseObjectArgumentInfos ~ jsonStr:",t),i=On(t,e)}return i&&!s&&(i=Br(i)),i}}function _r(t,e,n,r){const[s,i]=t;if(!s&&"|"===i[0])return"choice: {"+function(t,e,n){const r=Zr(t,e,{...n,delimiter:":"}),s={},i=r.map((([t,e],n)=>{if(t){const t=e.indexOf(":"),n=e.slice(0,t).trim();if(s[n])throw new Error("Only one "+n+" is allowed");return s[n]=!0,e}{if("|"===e[0]){if(s.items)throw new Error("Only one items is allowed");return s.items=!0,"items:["+function(t,e='"'){return t.map((t=>Jr(t)?t:e+t+e))}(e.split("|").filter(Boolean))+"]"}const t=parseInt(e.trim());if(!isNaN(t)){if(s.maxPick)throw new Error("Only one maxPick is allowed");return s.maxPick=!0,"maxPick:"+t}if("random"===e||"ai"===e)return s.type=!0,'type:"'+e+'"';if(Jr(e)){if(s.separator)throw new Error("Only one separator is allowed");return s.separator=!0,"separator:"+e}}}));return i}(i,n,r)+"}"}async function Lr([t,e],n,r,s){if(!r)return;let i,o;if(t){const t=e.split(":");i=t[0].trim(),o=t[1].trim()}else o=e,i=n+"";const a={template:o,data:{...r,...s?.templateData}};s?.templateFormat&&(a.templateFormat=s.templateFormat);const c=await z.formatIf(a);return c?(o=c,i+":"+JSON.stringify(o)):void 0}async function zr(t,e,n,r){let s=_r(t,0,n,r);return s||(s=await Lr(t,e,n,r)),s}function Jr(t){const e=t[0];return('"'===e||"'"===e)&&t[t.length-1]===e}function Dr(t){return'"'+t.replace(/(?<!\\)"(?!\\)/g,'\\"')+'"'}var Wr=["true","false","null","undefined","NaN","Infinity"];function Kr(t){return function(t,e=['""',"''","{}"]){return e.some((e=>t[0]===e[0]&&t[t.length-1]===e[1]))}(t)||!Number.isNaN(parseFloat(t))||Wr.includes(t)||Qr(t)}async function Gr(t,e){const n=(0,qr.newFunction)("async expression",[],`return ${t};`,Cn(e));let r=await n.call(this);switch(typeof r){case"number":case"boolean":case"undefined":return r;case"function":return n.toString();default:return JSON.stringify(r)}}async function Hr(t,e,n,r){const[s,i]=t,o=r?.argProcessor;if("function"==typeof o){const s=await o(t,e,n,r);if(s)return s}if(s){const t=i.indexOf(":"),e=i.slice(0,t).trim(),r=i.slice(t+1).trim();if(!(Kr(r)||n&&void 0!==(0,Pr.get)(n,r)))return e+":"+Dr(r);if(!Qr(i))try{return e+":"+await Gr.call(this,r,n)}catch(t){}return i}{const t=i.trim();if(n&&void 0!==(0,Pr.get)(n,t))return e+":"+t+', "'+t+'":'+t;if(Kr(t))return e+":"+t;if(!Qr(i))try{return e+":"+await Gr.call(this,t,n)}catch(t){}return e+":"+Dr(t)}}function Zr(t,e,n){const r=n?.delimiter??",";let s=[],i=!1,o="",a="",c=!1,u="";for(let e=0;e<t.length;e++){const n=t[e];if(n!==r||i||u)if("\\"===n)a+=n,e++,a+=t[e];else if("("!==n&&"["!==n||i)if(u&&n===u)u="",a+=n;else if("{"!==n||i)'"'===n||"'"===n?(i&&n===o?i=!1:i||(i=!0,o=n),a+=n):"="!==n||i||c||!/^[\p{L}\p{N}_ ]+$/u.test(a)?a+=n:(a+=":",c=!0);else{let r,s=e,i=!1,o="",c=-1;for(;s<t.length&&("}"!==(r=t[s])||i||c>0);)"\\"===r?s++:"{"!==r||i?"}"!==r||i?'"'!==r&&"'"!==r||(i&&n===o?i=!1:i||(i=!0,o=n)):c--:c++,s++;s<t.length&&(a+=t.substring(e,s+1),e=s)}else u="("===n?")":"]",a+=n;else a=a.trim(),a.endsWith(":")&&(a+="undefined"),s.push([c,a]),a="",c=!1}return a&&(a=a.trim(),a.endsWith(":")&&(a+="undefined"),s.push([c,a])),s}async function Xr(t,e,n){const r=t.match(/^([^(]+)(?:\((.*)\))?$/);if(!r)throw new Error("Invalid command format");const[,s,i]=r;let o;return i&&(o=await Vr(i,e,n)),{command:s.trim(),args:o}}var Yr=/^\s*\(\)|[a-zA-Z_$][\w\d$]*|\(([a-zA-Z_$][\w\d$]*)(\s*,\s*([a-zA-Z_$][\w\d$]*))*\)\s*=>/;function Qr(t){return Yr.test(t)}var ts=c(require("memoizee")),es=require("json-canonicalize");function ns(t,e){var n;void 0!==e?.promise||!function(t){return"function"==typeof t&&"AsyncFunction"===t.constructor.name}(t)&&(!(n=t)||"object"!=typeof n&&"function"!=typeof n||"function"!=typeof n.then)||(e={promise:!0,...e}),void 0===e?.length&&(e={length:!1,...e});const r=e?.normalizer;return(0,ts.default)(t,{...e,normalizer:t=>{if(r){const e=r(t);if("string"===e)return e;e&&(t=e)}return on((0,es.canonicalize)(t))}})}var rs=class t extends jr{static get apiRoot(){return t._apiRoot}static setApiRoot(e){t._apiRoot=e}static async loadFrom(){if(this._apiRoot){const t=await fetch(this._apiRoot,{headers:{"Content-Type":"application/json"}}),e=await t.json();e&&this.loadFromSync(e)}else T("missing apiRoot to load tools","ClientTools")}static loadFromSync(e){for(const n in e){const r=this.get(n),s=e[n];r?r instanceof t?r.assign(s):T(`${n} already registered as ${r.constructor.name}`,"ClientTools"):this.register(s)}}static async fetch(t,e){const n=this.get(t);if(n&&n.fetch)return n.fetch(e)}getUrlParams(t){if(void 0!==t){const e=JSON.stringify(t);if("{}"!==e&&"[]"!==e&&'""'!==e)return"?p="+encodeURIComponent(e)}return""}async fetch(t,e,n){const r={...this.fetchOptions};let s;r.headers&&r.headers["Content-Type"]||(r.headers={"Content-Type":"application/json",...r.headers}),t?.stream&&!r.headers.Connection&&(r.headers.Connection="keep-alive"),e||(e=this.action||"post"),"res"===e&&(e="get"),n?("string"!=typeof n&&(n=JSON.stringify(n)),n=this.name+"/"+n):n=this.name,r.method=e.toUpperCase(),"get"===e||"delete"===e?s=n+this.getUrlParams(t):(r.body=JSON.stringify(t),s=n);const i=await fetch(`${this.apiRoot}/${s}`,r);if(!i.ok){throw await this.errorFrom(i)}return i}async errorFrom(t){let e,n=t.status,r=t.statusText,s=this.name;if(t.body){const n=await t.text();try{const t=JSON.parse(n);t&&(t.error&&(r=t.error),t.name&&(s=t.name),t.data&&(e=t.data,e.name=s,e.what&&(e.msg=r,r=e.what)),t.message&&(r=r+":"+t.message))}catch(t){console.warn("🚀 ~ parse error body to json:",t)}}return O(r,s,n)}async func(t){const e=await this.fetch(t);if(t?.stream)return e;return await e.json()}},ss={...p};rs.defineProperties(rs,ss);var is=class t extends jr{static get apiRoot(){return this._apiRoot}static setApiRoot(t){this._apiRoot=t}static toJSON(){const e={};for(const n in this.items){let r=this.items[n];(r instanceof t||r.isApi)&&(r.allowExportFunc||(r=r.toJSON(),delete r.func),e[n]=r)}return e}func({}){}},os={...p};is.defineProperties(is,os);var as=require("events-ex"),cs=class extends jr{constructor(){super(...arguments),this._emitter=new as.EventEmitter,this.description="Return event bus",this.result="event"}get emitter(){return this._emitter}func(){return this.emitter}},us=new cs(Ae),ls=require("secondary-cache");function fs({key:t,value:e,options:n}={}){return void 0!==t?null===e?this.cache.del(t):void 0!==e?this.cache.set(t,e,n):this.cache.get(t):(n&&this.cache.setDefaultOptions(n),this.cache)}function hs(t,e){let n=jr.get(t);return n||(n=new jr(t,{func:fs,description:"get/set LRU cache or return the LRUCache object",params:{key:{name:"key",type:"string",description:"the key is undefined means change the default cache options"},value:{name:"value",type:"any",description:"the value to store, if value is null means remove the key"},options:{name:"options",type:"object|number",description:"the optional cache options:{capacity,expires,cleanInterval} or expires"}},result:"any"}),n.cache=new ls.Cache(e)),n}var ps=hs("lrucache"),ws=class extends rs{async _func(t,e){const n=await this.fetch(e,t);if(e?.stream)return n;return await n.json()}async func(t){const e=t.action;return e&&delete t.action,this._func(e,t)}assignMethods(t){if(Array.isArray(t))for(const e of t){const t=e.startsWith("$")?e.slice(1):e;this[t]||(this[t]=(t=>this._func.bind(this,t))(e))}}},ds={methods:{type:"array",assign(t,e,n,r,s){s?.isExported||e.assignMethods(t)}}};ws.defineProperties(ws,ds);var ms=class extends ws{async fetch(t,e){if(t||(t={}),e&&"res"===this.action){if("get"===e||"delete"===e){let n=t.id;return n||T("id is required"),"string"==typeof n&&(n=encodeURIComponent(n)),delete t.id,super.fetch(t,e,n)}"list"===e?e="get":e.startsWith("$")&&(t.act=e,e="post")}return await super.fetch(t,e)}},ys=class extends ms{constructor(){super(...arguments),this._sseEvents={},this._forwardEvents=new Set,this.name=ke,this.description="subscribe server sent event",this.ebListener=async function(...t){const e=this.type;this.target.publish&&await this.target.publish({data:t,event:e})}}get evtSource(){let t=this._es;return t&&t.readyState!==EventSource.CLOSED||(t=this.initEventSource(this._esEvents)),t}get active(){return!!this._es&&this._es.readyState!==EventSource.CLOSED}set active(t){t!==this.active&&(t?this.initEventSource(this._esEvents):this._es&&(this._es.close(),this._es=void 0))}initEventSource(t){if("string"==typeof t&&(t=[t]),this._es&&this._es.readyState!==EventSource.CLOSED){if(!this._esEvents||t&&t.every((t=>this._esEvents.includes(t))))return this._es;this._es.close()}const e=t?this.getUrlParams({event:t}):"",n=`${this.apiRoot}/${this.name}${e}`,r=this._es=new EventSource(n);return Object.entries(this._sseEvents).forEach((([t,e])=>{r.addEventListener(t,e)})),this._esEvents=t,r}esListener(t){const e=t.data?JSON.parse(t.data):void 0,n=t.type;if(!this._forwardEvents.has(n)){const t=this.emitter;t&&e&&n&&(Array.isArray(e)?t.emit(n,...e):t.emit(n,e))}}async subscribe(t){const e=await this.sub({event:t});"string"==typeof t&&(t=[t]);const n=this.evtSource;for(const e of t)if(!this._sseEvents[e]){const t=this._sseEvents[e]=this.esListener.bind(this);n.addEventListener(e,t)}return e}async unsubscribe(t){const e=await this.unsub({event:t});"string"==typeof t&&(t=[t]);for(const e of t){const t=this._sseEvents[e];t&&(delete this._sseEvents[e],this.evtSource.removeEventListener(e,t))}return e}forwardEvent(t){"string"==typeof t&&(t=[t]);for(const e of t)this._forwardEvents.has(e)||(this._forwardEvents.add(e),this.on&&this.on(e,this.ebListener))}unforwardEvent(t){"string"==typeof t&&(t=[t]);for(const e of t)this._forwardEvents.has(e)&&(this._forwardEvents.delete(e),this.off&&this.off(e,this.ebListener))}async init(t){if(this.active=!1,this.initEventSource(t),t)return await this.subscribe(t)}},bs=new ys(ke),gs=require("util-ex"),vs=class extends is{constructor(t,e={}){super(t,e),this.params={act:{type:"string"}};const n=this.methods=[];this.initRpcMethods(n)}get SpecialRpcMethodNames(){return this.constructor.SpecialRpcMethodNames}initRpcMethods(t=this.methods){const e=this.SpecialRpcMethodNames;if(Array.isArray(e))for(const n of e)"function"==typeof this[n]&&t.push(n);(0,gs.getAllNames)(Object.getPrototypeOf(this)).filter((t=>t.startsWith("$")&&"function"==typeof this[t])).forEach((e=>{t.push(e);const n=e.slice(1);void 0===this[n]&&(this[n]=this[e])}))}cast(t,e){let n=this.params[t];return n&&("string"!=typeof n&&(n=n.type),"number"===n&&(e=Number(e))),e}getMethodFromParams(t){const e=t?.act;return e}castParams(t){return t}func(t){const e=this.getMethodFromParams(t);if(e&&"function"==typeof this[e])return t=this.castParams(t),this[e](t);throw new S(e,this.name)}};vs.defineProperties(vs,{methods:{type:"array"}});var Es=class extends vs{constructor(t,e={}){super(t,e),this.action="res",this.params={id:{type:"string"},val:{type:"any"}}}static{this.SpecialRpcMethodNames=h}getMethodFromParams(t){let e=t?._req?.method?.toLowerCase();return"get"===e&&void 0===t.id&&(e="list"),"post"===e&&t.act&&(e=t.act),e}castParams(t){return void 0!==t.id&&(t.id=this.cast("id",t.id)),t}},xs=us.runSync(),$s=class t extends Es{constructor(){super(...arguments),this.name=ke,this.description="subscribe server sent event",this.result="event",this.depends={[Ae]:us}}static get sse(){return this._sse||(this._sse=new Ce),this._sse}get sse(){return this.constructor.sse}static publish(e,n){return t.sse.publish(e,n)}static{this.ebListener=function(...e){t.sse.publish(e,this.type)}}static subscribe(e,n,r){return t.sse.subscribe(e,n,r)}static alreadyForward(e){const n=xs.listeners(e);for(const e of n)if(e===t.ebListener)return!0}publishSSE(t,e){return this.constructor.publish(t,e)}subscribeSSE(t,e,n){return"string"==typeof n&&(n=[n]),this.constructor.subscribe(t,e,n)}forward(e){Array.isArray(e)||(e=[e]);for(const n of e)t.alreadyForward(n)||xs.on(n,t.ebListener)}unforward(e){"string"==typeof e&&(e=[e]);for(const n of e)xs.off(n,t.ebListener)}list({_req:t,_res:e,event:n}){t&&e&&this.subscribeSSE(t,e,n)}$sub({event:t}){if(t)return this.forward(t),{event:t};T("event is required","sub",400)}$unsub({event:t}){if(t)return this.unforward(t),{event:t};T("event is required","unsub",400)}$publish({event:t,data:e}){if(t&&e){"string"==typeof t&&(t=[t]);for(const n of t)this.publishSSE(e,n);return{event:t}}T("event or data is required","pub",400)}isStream(t){return"list"===this.getMethodFromParams(t)}},Ss=new $s(ke);function ks(){us.register(),ps.register()}
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{AIArgProcessor as a,AIChatRoles as s,AIMessageTypes as i,AIStream as u,AITextGenerationFinishReasons as e,AbortError as r,AbortErrorCode as n,ActionNames as t,AlreadyExistsError as d,AlreadyExistsErrorCode as m,AsyncFeatureBits as o,AsyncFeatures as f,BaseError as l,CancelableAbility as p,ChoiceArgProcessor as v,ClientToolFuncSchema as F,ClientTools as H,CommonError as h,ConfigFile as I,DefaultAsyncSemaphoreCapacity as g,EnvironmentEx as k,ErrorCode as y,EventBusName as P,EventClient as T,EventName as V,EventServer as c,EventToolFunc as j,FStringPromptTemplate as x,FewShotPromptTemplate as z,FilenameReservedRegex as B,GolangPromptTemplate as C,HfPromptTemplate as E,IntSet as L,InternalErrorCode as N,Interpreter as O,NIL as Q,NotFoundError as S,NotFoundErrorCode as U,NotImplementationError as X,NotImplementedErrorCode as Y,PASSING_SCORE as b,PromptExampleSelector as q,PromptTemplate as w,PromptTemplateTypes as A,PromptTypes as D,RStreamErrCode as G,RateLimit as J,ReadableStreamError as K,RemoteToolFuncSchema as M,ResClientTools as R,ResServerTools as W,ResponseRStreamErrCode as Z,SSEChannel as $,SSEChannelAlreadyClosedErrCode as _,Semaphore as aa,ServerToolFuncSchema as sa,ServerTools as ia,TaskAbortController as ua,Template as ea,TemplateArgProcessor as ra,ToolAsyncCancelableBit as na,ToolAsyncMultiTaskBit as ta,ToolAsyncPriorityBit as da,ToolFunc as ma,ToolFuncSchema as oa,WindowsReservedNameRegex as fa,XXHashAlgorithm as la,_lrucache as pa,backendEventable as va,base32768 as Fa,builtins as Ha,canonicalize as ha,countRegexMatches as Ia,createAbilityInjector as ga,createCallbacksTransformer as ka,createEmptyReadableStream as ya,createEndWithRepetitionDetector as Pa,createError as Ta,createEventStreamTransformer as Va,createHfValueFunc as ca,createLRUCache as ja,dateToText as xa,defaultTemplateFormat as za,event as Ba,eventClient as Ca,eventServer as Ea,expandEnv as La,expandObjEnv as Na,extNameLevel as Oa,fileIsExists as Qa,filenameReservedRegex as Sa,filterValidFnScope as Ua,formatISO as Xa,getAllEnumKeys as Ya,getConfigFileNames as ba,getConfigs as qa,getKeysPath as wa,getMultiLevelExtname as Aa,getRealFilepath as Da,getResponseErrorReadableStream as Ga,interpolateEnv as Ja,interpolateFString as Ka,interpolateGolangTemplate as Ma,isModelNameMatched as Ra,isValidFilename as Wa,isValidFilepath as Za,isWebStream as $a,jsonFilterToWhere as _a,jsonToMarkdownStr as as,loadFileFromPaths as ss,loadTextFromPaths as is,lrucache as us,makeToolFuncCancelable as es,matchUrlProtocol as rs,memoize as ns,messagesToText as ts,mimeType as ds,paramsSizeToScaleStr as ms,parse as os,parse2 as fs,parseCommand as ls,parseDateFormat as ps,parseFString as vs,parseISO as Fs,parseJsJson as Hs,parseObjectArgInfo as hs,parseObjectArgumentInfos as Is,parseObjectArguments as gs,parseObjectArgumentsAsArgInfos as ks,parseYaml as ys,quoteStr as Ps,reControlCharsRegex as Ts,readFilenamesRecursiveSync as Vs,readableFromAsyncIterable as cs,registerCoreTools as js,registerYamlTag as xs,sanitizeFilename as zs,sanitizeFilepath as Bs,saveConfigFile as Cs,scaleStrToParamsSize as Es,sortedValues as Ls,splitSentence as Ns,stringify as Os,stringify2 as Qs,textToDate as Ss,throwError as Us,toDate as Xs,toDateTime as Ys,tokenize as bs,trimStartOfStreamHelper as qs,truncTo as ws,uuid as As,v1 as Ds,v4 as Gs,v5 as Js,validate as Ks,version as Ms,wait as Rs,xxhash as Ws,xxhash32 as Zs,xxhash64 as $s,xxhashAsStr as _s}from"./chunk-COXUI4Q3.mjs";export{a as AIArgProcessor,s as AIChatRoles,i as AIMessageTypes,u as AIStream,e as AITextGenerationFinishReasons,r as AbortError,n as AbortErrorCode,t as ActionNames,d as AlreadyExistsError,m as AlreadyExistsErrorCode,o as AsyncFeatureBits,f as AsyncFeatures,l as BaseError,p as CancelableAbility,v as ChoiceArgProcessor,F as ClientToolFuncSchema,H as ClientTools,h as CommonError,I as ConfigFile,g as DefaultAsyncSemaphoreCapacity,y as ErrorCode,P as EventBusName,T as EventClient,V as EventName,c as EventServer,j as EventToolFunc,x as FStringPromptTemplate,z as FewShotPromptTemplate,B as FilenameReservedRegex,C as GolangPromptTemplate,Ha as HFBuiltins,k as HFEnvironment,O as HFInterpreter,ea as HFTemplate,E as HfPromptTemplate,L as IntSet,N as InternalErrorCode,S as NotFoundError,U as NotFoundErrorCode,X as NotImplementationError,Y as NotImplementedErrorCode,b as PASSING_SCORE,q as PromptExampleSelector,w as PromptTemplate,A as PromptTemplateTypes,D as PromptTypes,G as RStreamErrCode,J as RateLimit,K as ReadableStreamError,M as RemoteToolFuncSchema,R as ResClientTools,W as ResServerTools,Z as ResponseRStreamErrCode,$ as SSEChannel,_ as SSEChannelAlreadyClosedErrCode,aa as Semaphore,sa as ServerToolFuncSchema,ia as ServerTools,ua as TaskAbortController,ra as TemplateArgProcessor,na as ToolAsyncCancelableBit,ta as ToolAsyncMultiTaskBit,da as ToolAsyncPriorityBit,ma as ToolFunc,oa as ToolFuncSchema,fa as WindowsReservedNameRegex,la as XXHashAlgorithm,pa as _lrucache,va as backendEventable,Fa as base32768,ha as canonicalize,Ia as countRegexMatches,ga as createAbilityInjector,ka as createCallbacksTransformer,ya as createEmptyReadableStream,Pa as createEndWithRepetitionDetector,Ta as createError,Va as createEventStreamTransformer,ca as createHfValueFunc,ja as createLRUCache,xa as dateToText,za as defaultTemplateFormat,Ba as event,Ca as eventClient,Ea as eventServer,La as expandEnv,Na as expandObjEnv,Oa as extNameLevel,Qa as fileIsExists,Sa as filenameReservedRegex,Ua as filterValidFnScope,Xa as formatISO,Ya as getAllEnumKeys,ba as getConfigFileNames,qa as getConfigs,wa as getKeysPath,Aa as getMultiLevelExtname,Da as getRealFilepath,Ga as getResponseErrorReadableStream,os as hfParse,bs as hfTokenize,Ja as interpolateEnv,Ka as interpolateFString,Ma as interpolateGolangTemplate,Ra as isModelNameMatched,Wa as isValidFilename,Za as isValidFilepath,$a as isWebStream,_a as jsonFilterToWhere,as as jsonToMarkdownStr,ss as loadFileFromPaths,is as loadTextFromPaths,us as lrucache,es as makeToolFuncCancelable,rs as matchUrlProtocol,ns as memoize,ts as messagesToText,ds as mimeType,ms as paramsSizeToScaleStr,ls as parseCommand,ps as parseDateFormat,vs as parseFString,Fs as parseISO,Hs as parseJsJson,hs as parseObjectArgInfo,Is as parseObjectArgumentInfos,gs as parseObjectArguments,ks as parseObjectArgumentsAsArgInfos,ys as parseYaml,Ps as quoteStr,Ts as reControlCharsRegex,Vs as readFilenamesRecursiveSync,cs as readableFromAsyncIterable,js as registerCoreTools,xs as registerYamlTag,zs as sanitizeFilename,Bs as sanitizeFilepath,Cs as saveConfigFile,Es as scaleStrToParamsSize,Ls as sortedValues,Ns as splitSentence,Qs as stringifyYaml,Ss as textToDate,Us as throwError,Xs as toDate,Ys as toDateTime,qs as trimStartOfStreamHelper,ws as truncTo,As as uuid,Q as uuidNIL,fs as uuidParse,Os as uuidStringify,Ks as uuidValidate,Ms as uuidVersion,Ds as uuidv1,Gs as uuidv4,Js as uuidv5,Rs as wait,Ws as xxhash,Zs as xxhash32,$s as xxhash64,_s as xxhashAsStr};
1
+ import{AIArgProcessor as a,AIChatRoles as s,AIMessageTypes as i,AIStream as u,AITextGenerationFinishReasons as e,AbortError as r,AbortErrorCode as n,ActionNames as t,AlreadyExistsError as d,AlreadyExistsErrorCode as m,AsyncFeatureBits as o,AsyncFeatures as f,BaseError as l,CancelableAbility as p,ChoiceArgProcessor as v,ClientToolFuncSchema as F,ClientTools as H,CommonError as h,ConfigFile as g,DefaultAsyncSemaphoreCapacity as k,EnvironmentEx as y,ErrorCode as B,EventBusName as E,EventClient as I,EventName as P,EventServer as T,EventToolFunc as V,FStringPromptTemplate as c,FewShotPromptTemplate as j,FilenameReservedRegex as x,GolangPromptTemplate as z,HfPromptTemplate as L,IntSet as M,InternalErrorCode as N,Interpreter as O,NIL as R,NotFoundError as S,NotFoundErrorCode as Y,NotImplementationError as b,NotImplementedErrorCode as q,PASSING_SCORE as w,PromptExampleSelector as A,PromptTemplate as C,PromptTemplateTypes as D,PromptTypes as G,RStreamErrCode as J,RateLimit as K,ReadableStreamError as Q,RemoteToolFuncSchema as U,ResClientTools as W,ResServerTools as X,ResponseRStreamErrCode as Z,SSEChannel as $,SSEChannelAlreadyClosedErrCode as _,Semaphore as aa,ServerToolFuncSchema as sa,ServerTools as ia,TaskAbortController as ua,Template as ea,TemplateArgProcessor as ra,ToolAsyncCancelableBit as na,ToolAsyncMultiTaskBit as ta,ToolAsyncPriorityBit as da,ToolFunc as ma,ToolFuncSchema as oa,WindowsReservedNameRegex as fa,XXHashAlgorithm as la,_lrucache as pa,backendEventable as va,base32768 as Fa,builtins as Ha,canonicalize as ha,countRegexMatches as ga,createAbilityInjector as ka,createCallbacksTransformer as ya,createEmptyReadableStream as Ba,createEndWithRepetitionDetector as Ea,createError as Ia,createEventStreamTransformer as Pa,createHfValueFunc as Ta,createLRUCache as Va,dateToText as ca,defaultTemplateFormat as ja,event as xa,eventClient as za,eventServer as La,expandEnv as Ma,expandObjEnv as Na,extNameLevel as Oa,fileIsExists as Ra,filenameReservedRegex as Sa,filterValidFnScope as Ya,formatISO as ba,getAllEnumKeys as qa,getConfigFileNames as wa,getConfigs as Aa,getKeysPath as Ca,getMultiLevelExtname as Da,getRealFilepath as Ga,getResponseErrorReadableStream as Ja,interpolateEnv as Ka,interpolateFString as Qa,interpolateGolangTemplate as Ua,isModelNameMatched as Wa,isValidFilename as Xa,isValidFilepath as Za,isWebStream as $a,jsonFilterToWhere as _a,jsonToMarkdownStr as as,loadFileFromPaths as ss,loadTextFromPaths as is,lrucache as us,makeToolFuncCancelable as es,matchUrlProtocol as rs,memoize as ns,messagesToText as ts,mimeType as ds,paramsSizeToScaleStr as ms,parse as os,parse2 as fs,parseCommand as ls,parseDateFormat as ps,parseFString as vs,parseISO as Fs,parseJsJson as Hs,parseObjectArgInfo as hs,parseObjectArgumentInfos as gs,parseObjectArguments as ks,parseObjectArgumentsAsArgInfos as ys,parseYaml as Bs,quoteStr as Es,reControlCharsRegex as Is,readFilenamesRecursiveSync as Ps,readableFromAsyncIterable as Ts,registerCoreTools as Vs,registerYamlTag as cs,sanitizeFilename as js,sanitizeFilepath as xs,saveConfigFile as zs,scaleStrToParamsSize as Ls,simplifyObjectArguments as Ms,sortedValues as Ns,splitSentence as Os,stringify as Rs,stringify2 as Ss,textToDate as Ys,throwError as bs,toDate as qs,toDateTime as ws,tokenize as As,trimStartOfStreamHelper as Cs,truncTo as Ds,uuid as Gs,v1 as Js,v4 as Ks,v5 as Qs,validate as Us,version as Ws,wait as Xs,xxhash as Zs,xxhash32 as $s,xxhash64 as _s,xxhashAsStr as ai}from"./chunk-O367BMRE.mjs";export{a as AIArgProcessor,s as AIChatRoles,i as AIMessageTypes,u as AIStream,e as AITextGenerationFinishReasons,r as AbortError,n as AbortErrorCode,t as ActionNames,d as AlreadyExistsError,m as AlreadyExistsErrorCode,o as AsyncFeatureBits,f as AsyncFeatures,l as BaseError,p as CancelableAbility,v as ChoiceArgProcessor,F as ClientToolFuncSchema,H as ClientTools,h as CommonError,g as ConfigFile,k as DefaultAsyncSemaphoreCapacity,B as ErrorCode,E as EventBusName,I as EventClient,P as EventName,T as EventServer,V as EventToolFunc,c as FStringPromptTemplate,j as FewShotPromptTemplate,x as FilenameReservedRegex,z as GolangPromptTemplate,Ha as HFBuiltins,y as HFEnvironment,O as HFInterpreter,ea as HFTemplate,L as HfPromptTemplate,M as IntSet,N as InternalErrorCode,S as NotFoundError,Y as NotFoundErrorCode,b as NotImplementationError,q as NotImplementedErrorCode,w as PASSING_SCORE,A as PromptExampleSelector,C as PromptTemplate,D as PromptTemplateTypes,G as PromptTypes,J as RStreamErrCode,K as RateLimit,Q as ReadableStreamError,U as RemoteToolFuncSchema,W as ResClientTools,X as ResServerTools,Z as ResponseRStreamErrCode,$ as SSEChannel,_ as SSEChannelAlreadyClosedErrCode,aa as Semaphore,sa as ServerToolFuncSchema,ia as ServerTools,ua as TaskAbortController,ra as TemplateArgProcessor,na as ToolAsyncCancelableBit,ta as ToolAsyncMultiTaskBit,da as ToolAsyncPriorityBit,ma as ToolFunc,oa as ToolFuncSchema,fa as WindowsReservedNameRegex,la as XXHashAlgorithm,pa as _lrucache,va as backendEventable,Fa as base32768,ha as canonicalize,ga as countRegexMatches,ka as createAbilityInjector,ya as createCallbacksTransformer,Ba as createEmptyReadableStream,Ea as createEndWithRepetitionDetector,Ia as createError,Pa as createEventStreamTransformer,Ta as createHfValueFunc,Va as createLRUCache,ca as dateToText,ja as defaultTemplateFormat,xa as event,za as eventClient,La as eventServer,Ma as expandEnv,Na as expandObjEnv,Oa as extNameLevel,Ra as fileIsExists,Sa as filenameReservedRegex,Ya as filterValidFnScope,ba as formatISO,qa as getAllEnumKeys,wa as getConfigFileNames,Aa as getConfigs,Ca as getKeysPath,Da as getMultiLevelExtname,Ga as getRealFilepath,Ja as getResponseErrorReadableStream,os as hfParse,As as hfTokenize,Ka as interpolateEnv,Qa as interpolateFString,Ua as interpolateGolangTemplate,Wa as isModelNameMatched,Xa as isValidFilename,Za as isValidFilepath,$a as isWebStream,_a as jsonFilterToWhere,as as jsonToMarkdownStr,ss as loadFileFromPaths,is as loadTextFromPaths,us as lrucache,es as makeToolFuncCancelable,rs as matchUrlProtocol,ns as memoize,ts as messagesToText,ds as mimeType,ms as paramsSizeToScaleStr,ls as parseCommand,ps as parseDateFormat,vs as parseFString,Fs as parseISO,Hs as parseJsJson,hs as parseObjectArgInfo,gs as parseObjectArgumentInfos,ks as parseObjectArguments,ys as parseObjectArgumentsAsArgInfos,Bs as parseYaml,Es as quoteStr,Is as reControlCharsRegex,Ps as readFilenamesRecursiveSync,Ts as readableFromAsyncIterable,Vs as registerCoreTools,cs as registerYamlTag,js as sanitizeFilename,xs as sanitizeFilepath,zs as saveConfigFile,Ls as scaleStrToParamsSize,Ms as simplifyObjectArguments,Ns as sortedValues,Os as splitSentence,Ss as stringifyYaml,Ys as textToDate,bs as throwError,qs as toDate,ws as toDateTime,Cs as trimStartOfStreamHelper,Ds as truncTo,Gs as uuid,R as uuidNIL,fs as uuidParse,Rs as uuidStringify,Us as uuidValidate,Ws as uuidVersion,Js as uuidv1,Ks as uuidv4,Qs as uuidv5,Xs as wait,Zs as xxhash,$s as xxhash32,_s as xxhash64,ai as xxhashAsStr};
@@ -86,7 +86,7 @@ fromJSON - Creates a new BaseError instance from a JSON representation.
86
86
 
87
87
  #### Defined in
88
88
 
89
- [packages/ai-tool/src/utils/base-error.ts:204](https://github.com/isdk/ai-tool.js/blob/645c3145aafa05351c48068783eb3c2f206ce4c5/src/utils/base-error.ts#L204)
89
+ [packages/ai-tool/src/utils/base-error.ts:204](https://github.com/isdk/ai-tool.js/blob/c88a9f179b129c3f6d28b6a0f9e682e41997bc83/src/utils/base-error.ts#L204)
90
90
 
91
91
  ## Properties
92
92
 
@@ -102,7 +102,7 @@ The name of the function that threw the error.
102
102
 
103
103
  #### Defined in
104
104
 
105
- [packages/ai-tool/src/utils/base-error.ts:66](https://github.com/isdk/ai-tool.js/blob/645c3145aafa05351c48068783eb3c2f206ce4c5/src/utils/base-error.ts#L66)
105
+ [packages/ai-tool/src/utils/base-error.ts:66](https://github.com/isdk/ai-tool.js/blob/c88a9f179b129c3f6d28b6a0f9e682e41997bc83/src/utils/base-error.ts#L66)
106
106
 
107
107
  ___
108
108
 
@@ -130,7 +130,7 @@ ___
130
130
 
131
131
  #### Defined in
132
132
 
133
- [packages/ai-tool/src/utils/base-error.ts:67](https://github.com/isdk/ai-tool.js/blob/645c3145aafa05351c48068783eb3c2f206ce4c5/src/utils/base-error.ts#L67)
133
+ [packages/ai-tool/src/utils/base-error.ts:67](https://github.com/isdk/ai-tool.js/blob/c88a9f179b129c3f6d28b6a0f9e682e41997bc83/src/utils/base-error.ts#L67)
134
134
 
135
135
  ___
136
136
 
@@ -146,7 +146,7 @@ Additional data associated with the error.
146
146
 
147
147
  #### Defined in
148
148
 
149
- [packages/ai-tool/src/utils/base-error.ts:68](https://github.com/isdk/ai-tool.js/blob/645c3145aafa05351c48068783eb3c2f206ce4c5/src/utils/base-error.ts#L68)
149
+ [packages/ai-tool/src/utils/base-error.ts:68](https://github.com/isdk/ai-tool.js/blob/c88a9f179b129c3f6d28b6a0f9e682e41997bc83/src/utils/base-error.ts#L68)
150
150
 
151
151
  ___
152
152
 
@@ -204,7 +204,7 @@ The error code associated with the error.
204
204
 
205
205
  #### Defined in
206
206
 
207
- [packages/ai-tool/src/utils/base-error.ts:203](https://github.com/isdk/ai-tool.js/blob/645c3145aafa05351c48068783eb3c2f206ce4c5/src/utils/base-error.ts#L203)
207
+ [packages/ai-tool/src/utils/base-error.ts:203](https://github.com/isdk/ai-tool.js/blob/c88a9f179b129c3f6d28b6a0f9e682e41997bc83/src/utils/base-error.ts#L203)
208
208
 
209
209
  ___
210
210
 
@@ -281,7 +281,7 @@ A new BaseError instance.
281
281
 
282
282
  #### Defined in
283
283
 
284
- [packages/ai-tool/src/utils/base-error.ts:131](https://github.com/isdk/ai-tool.js/blob/645c3145aafa05351c48068783eb3c2f206ce4c5/src/utils/base-error.ts#L131)
284
+ [packages/ai-tool/src/utils/base-error.ts:131](https://github.com/isdk/ai-tool.js/blob/c88a9f179b129c3f6d28b6a0f9e682e41997bc83/src/utils/base-error.ts#L131)
285
285
 
286
286
  ___
287
287
 
@@ -303,7 +303,7 @@ A JSON representation of the error.
303
303
 
304
304
  #### Defined in
305
305
 
306
- [packages/ai-tool/src/utils/base-error.ts:111](https://github.com/isdk/ai-tool.js/blob/645c3145aafa05351c48068783eb3c2f206ce4c5/src/utils/base-error.ts#L111)
306
+ [packages/ai-tool/src/utils/base-error.ts:111](https://github.com/isdk/ai-tool.js/blob/c88a9f179b129c3f6d28b6a0f9e682e41997bc83/src/utils/base-error.ts#L111)
307
307
 
308
308
  ___
309
309
 
@@ -356,4 +356,4 @@ typeof [`BaseError`](BaseError.md)
356
356
 
357
357
  #### Defined in
358
358
 
359
- [packages/ai-tool/src/utils/base-error.ts:70](https://github.com/isdk/ai-tool.js/blob/645c3145aafa05351c48068783eb3c2f206ce4c5/src/utils/base-error.ts#L70)
359
+ [packages/ai-tool/src/utils/base-error.ts:70](https://github.com/isdk/ai-tool.js/blob/c88a9f179b129c3f6d28b6a0f9e682e41997bc83/src/utils/base-error.ts#L70)