@isdk/ai-tool 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/dist/{chunk-JHHFTTVE.mjs → chunk-SIP3XWIH.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/CancelableAbility.md +20 -20
  8. package/docs/classes/ClientTools.md +54 -54
  9. package/docs/classes/EventClient.md +76 -76
  10. package/docs/classes/EventServer.md +78 -78
  11. package/docs/classes/EventToolFunc.md +46 -46
  12. package/docs/classes/FStringPromptTemplate.md +18 -18
  13. package/docs/classes/FewShotPromptTemplate.md +22 -22
  14. package/docs/classes/GolangPromptTemplate.md +18 -18
  15. package/docs/classes/HFEnvironment.md +9 -9
  16. package/docs/classes/HFInterpreter.md +4 -4
  17. package/docs/classes/HFTemplate.md +4 -4
  18. package/docs/classes/HfPromptTemplate.md +18 -18
  19. package/docs/classes/IntSet.md +11 -11
  20. package/docs/classes/PromptExampleSelector.md +8 -8
  21. package/docs/classes/PromptTemplate.md +17 -17
  22. package/docs/classes/ReadableStreamError.md +1 -1
  23. package/docs/classes/ResClientTools.md +61 -61
  24. package/docs/classes/ResServerTools.md +62 -62
  25. package/docs/classes/SSEChannel.md +14 -14
  26. package/docs/classes/Semaphore.md +8 -8
  27. package/docs/classes/ServerTools.md +50 -50
  28. package/docs/classes/TaskAbortController.md +7 -7
  29. package/docs/classes/ToolFunc.md +43 -43
  30. package/docs/classes/YamlTypeBaseObject.md +1 -1
  31. package/docs/enumerations/AsyncFeatureBits.md +3 -3
  32. package/docs/enumerations/AsyncFeatures.md +3 -3
  33. package/docs/enumerations/HashAlgorithm.md +11 -11
  34. package/docs/functions/AIArgProcessor.md +1 -1
  35. package/docs/functions/AIStream.md +1 -1
  36. package/docs/functions/ChoiceArgProcessor.md +1 -1
  37. package/docs/functions/RateLimit.md +1 -1
  38. package/docs/functions/TemplateArgProcessor.md +1 -1
  39. package/docs/functions/backendEventable.md +1 -1
  40. package/docs/functions/completeSentences.md +1 -1
  41. package/docs/functions/concatText.md +1 -1
  42. package/docs/functions/countLLMTokens.md +1 -1
  43. package/docs/functions/countRegexMatches.md +1 -1
  44. package/docs/functions/createCallbacksTransformer.md +1 -1
  45. package/docs/functions/createEmptyReadableStream.md +1 -1
  46. package/docs/functions/createEndWithRepetitionDetector.md +1 -1
  47. package/docs/functions/createEventStreamTransformer.md +1 -1
  48. package/docs/functions/createHfValueFunc.md +1 -1
  49. package/docs/functions/createLRUCache.md +1 -1
  50. package/docs/functions/createYamlObjectTag.md +1 -1
  51. package/docs/functions/dateToText.md +1 -1
  52. package/docs/functions/decodeCharset.md +1 -1
  53. package/docs/functions/detectCharset.md +1 -1
  54. package/docs/functions/encodeLLMTokens.md +1 -1
  55. package/docs/functions/expandEnv.md +1 -1
  56. package/docs/functions/expandObjEnv.md +1 -1
  57. package/docs/functions/extNameLevel.md +1 -1
  58. package/docs/functions/fileIsExists.md +1 -1
  59. package/docs/functions/filenameReservedRegex.md +1 -1
  60. package/docs/functions/filterValidFnScope.md +1 -1
  61. package/docs/functions/findIndexNonEmptyFrom.md +1 -1
  62. package/docs/functions/findPort.md +1 -1
  63. package/docs/functions/formatTextWithSpace.md +1 -1
  64. package/docs/functions/getAllEnumKeys.md +1 -1
  65. package/docs/functions/getConfigFileNames.md +1 -1
  66. package/docs/functions/getConfigs.md +1 -1
  67. package/docs/functions/getFileMetaInfo.md +1 -1
  68. package/docs/functions/getHashAlgoBySize.md +1 -1
  69. package/docs/functions/getKeysPath.md +1 -1
  70. package/docs/functions/getLLMTokenizer.md +1 -1
  71. package/docs/functions/getMultiLevelExtname.md +1 -1
  72. package/docs/functions/getPackageDir.md +1 -1
  73. package/docs/functions/getRealFilepath.md +1 -1
  74. package/docs/functions/getResponseErrorReadableStream.md +1 -1
  75. package/docs/functions/hasDirectoryIn.md +1 -1
  76. package/docs/functions/hashFile.md +1 -1
  77. package/docs/functions/hashStream.md +1 -1
  78. package/docs/functions/hfParse.md +1 -1
  79. package/docs/functions/hfTokenize.md +1 -1
  80. package/docs/functions/interpolateEnv.md +1 -1
  81. package/docs/functions/interpolateFString.md +1 -1
  82. package/docs/functions/interpolateGolangTemplate.md +1 -1
  83. package/docs/functions/isLangUsingSpaces.md +1 -1
  84. package/docs/functions/isListItemString.md +1 -1
  85. package/docs/functions/isModelNameMatched.md +1 -1
  86. package/docs/functions/isPunctuationChar.md +1 -1
  87. package/docs/functions/isRegExp.md +1 -1
  88. package/docs/functions/isSectionString.md +1 -1
  89. package/docs/functions/isSentenceEnding.md +1 -1
  90. package/docs/functions/isSepLineString.md +1 -1
  91. package/docs/functions/isSubdirectory.md +1 -1
  92. package/docs/functions/isTitleString.md +1 -1
  93. package/docs/functions/isValidFilename.md +1 -1
  94. package/docs/functions/isValidFilepath.md +1 -1
  95. package/docs/functions/isWebStream.md +1 -1
  96. package/docs/functions/jsonFilterToWhere.md +1 -1
  97. package/docs/functions/jsonToMarkdownStr.md +1 -1
  98. package/docs/functions/loadFileFromPaths.md +1 -1
  99. package/docs/functions/loadTextFromPaths.md +1 -1
  100. package/docs/functions/lrucache.md +1 -1
  101. package/docs/functions/makeToolFuncCancelable.md +1 -1
  102. package/docs/functions/matchUrlProtocol.md +1 -1
  103. package/docs/functions/memoize.md +1 -1
  104. package/docs/functions/messagesToText.md +1 -1
  105. package/docs/functions/paramsSizeToScaleStr.md +1 -1
  106. package/docs/functions/parseCommand.md +3 -11
  107. package/docs/functions/parseFString.md +1 -1
  108. package/docs/functions/parseJsJson.md +1 -1
  109. package/docs/functions/parseJsJsonSimpleSync.md +1 -1
  110. package/docs/functions/parseObjectArgInfo.md +1 -1
  111. package/docs/functions/parseObjectArgumentInfos.md +1 -1
  112. package/docs/functions/parseObjectArguments.md +1 -1
  113. package/docs/functions/parseObjectArgumentsAsArgInfos.md +1 -1
  114. package/docs/functions/parseYaml.md +1 -1
  115. package/docs/functions/quoteStr.md +1 -1
  116. package/docs/functions/reControlCharsRegex.md +1 -1
  117. package/docs/functions/readFilenamesRecursiveSync.md +1 -1
  118. package/docs/functions/readTextFileChunks.md +1 -1
  119. package/docs/functions/readTextFileChunksEx.md +1 -1
  120. package/docs/functions/readableFromAsyncIterable.md +1 -1
  121. package/docs/functions/registerCoreTools.md +1 -1
  122. package/docs/functions/registerYamlTag.md +1 -1
  123. package/docs/functions/removeMarkdownBold.md +1 -1
  124. package/docs/functions/removeMarkdownBoldAndItalic.md +1 -1
  125. package/docs/functions/removeMarkdownItalic.md +1 -1
  126. package/docs/functions/replaceWithPlaceholder.md +1 -1
  127. package/docs/functions/restoreFromPlacehoders.md +1 -1
  128. package/docs/functions/sanitizeFilename.md +1 -1
  129. package/docs/functions/sanitizeFilepath.md +1 -1
  130. package/docs/functions/saveConfigFile.md +1 -1
  131. package/docs/functions/scaleStrToParamsSize.md +1 -1
  132. package/docs/functions/simplifyObjectArguments.md +1 -1
  133. package/docs/functions/sortedValues.md +1 -1
  134. package/docs/functions/splitChunks.md +1 -1
  135. package/docs/functions/splitParagraph.md +1 -1
  136. package/docs/functions/splitSentence.md +1 -1
  137. package/docs/functions/stringifyYaml.md +1 -1
  138. package/docs/functions/stripConsoleColor.md +1 -1
  139. package/docs/functions/textToDate.md +1 -1
  140. package/docs/functions/toDateTime.md +1 -1
  141. package/docs/functions/trimStartOfStreamHelper.md +1 -1
  142. package/docs/functions/truncTo.md +1 -1
  143. package/docs/functions/truncateByToken.md +1 -1
  144. package/docs/functions/truncateToTokenLimit.md +1 -1
  145. package/docs/functions/truncateToTokenLimitEx.md +1 -1
  146. package/docs/functions/uuid.md +1 -1
  147. package/docs/functions/wait.md +1 -1
  148. package/docs/functions/xxhash.md +1 -1
  149. package/docs/functions/xxhash32.md +1 -1
  150. package/docs/functions/xxhash64.md +1 -1
  151. package/docs/functions/xxhashAsStr.md +1 -1
  152. package/docs/interfaces/AIChatAssistantMessageParam.md +9 -9
  153. package/docs/interfaces/AIChatContentPartImage.md +2 -2
  154. package/docs/interfaces/AIChatContentPartText.md +2 -2
  155. package/docs/interfaces/AIChatMessageParamBase.md +4 -4
  156. package/docs/interfaces/AIChatMessageToolCall.md +3 -3
  157. package/docs/interfaces/AIChatSystemMessageParam.md +6 -6
  158. package/docs/interfaces/AIChatToolMessageParam.md +7 -7
  159. package/docs/interfaces/AIChatUserMessageParam.md +10 -10
  160. package/docs/interfaces/AIChoiceConfig.md +7 -7
  161. package/docs/interfaces/AIResult.md +5 -5
  162. package/docs/interfaces/AIStreamParser.md +1 -1
  163. package/docs/interfaces/AIStreamParserOptions.md +1 -1
  164. package/docs/interfaces/BaseFunc.md +9 -9
  165. package/docs/interfaces/BaseFuncItem.md +8 -8
  166. package/docs/interfaces/CancelableAbilityOptions.md +2 -2
  167. package/docs/interfaces/ClientFuncItem.md +11 -11
  168. package/docs/interfaces/DotenvExpandOptions.md +3 -3
  169. package/docs/interfaces/DotenvExpandOutput.md +2 -2
  170. package/docs/interfaces/EventClientFuncParams.md +4 -4
  171. package/docs/interfaces/EventServerFuncParams.md +5 -5
  172. package/docs/interfaces/FewShotPromptTemplateOptions.md +11 -11
  173. package/docs/interfaces/FuncItem.md +9 -9
  174. package/docs/interfaces/FuncParam.md +6 -6
  175. package/docs/interfaces/HashAlgoParams.md +3 -3
  176. package/docs/interfaces/IFileMetaInfo.md +7 -7
  177. package/docs/interfaces/IReadTextFileChunksOptions.md +10 -10
  178. package/docs/interfaces/ITruncateToTokenLimitOptions.md +9 -9
  179. package/docs/interfaces/ParseObjectArgumentOptions.md +19 -9
  180. package/docs/interfaces/PromptExampleSelectorOptions.md +2 -2
  181. package/docs/interfaces/PromptTemplateOptions.md +6 -6
  182. package/docs/interfaces/RemoteFuncItem.md +11 -11
  183. package/docs/interfaces/ReplacePlacehoderOptions.md +4 -4
  184. package/docs/interfaces/ResClientFuncParams.md +2 -2
  185. package/docs/interfaces/ResServerFuncParams.md +5 -5
  186. package/docs/interfaces/SanitizeFilenameOptions.md +2 -2
  187. package/docs/interfaces/SectionStringOptions.md +2 -2
  188. package/docs/interfaces/ServerFuncItem.md +12 -12
  189. package/docs/interfaces/ServerFuncParams.md +2 -2
  190. package/docs/interfaces/SplitSentenceOptions.md +4 -4
  191. package/docs/interfaces/StreamCallbacksAndOptions.md +4 -4
  192. package/docs/interfaces/TaskPromise.md +1 -1
  193. package/docs/interfaces/ToolFuncPackage.md +3 -3
  194. package/docs/type-aliases/AIChatContentPart.md +1 -1
  195. package/docs/type-aliases/AIChatMessageParam.md +1 -1
  196. package/docs/type-aliases/AIChatRole.md +1 -1
  197. package/docs/type-aliases/AIMessageType.md +1 -1
  198. package/docs/type-aliases/AIModelNameRule.md +1 -1
  199. package/docs/type-aliases/AIModelNameRuleFn.md +1 -1
  200. package/docs/type-aliases/AIModelNameRules.md +1 -1
  201. package/docs/type-aliases/AITextGenerationFinishReason.md +1 -1
  202. package/docs/type-aliases/ActionName.md +1 -1
  203. package/docs/type-aliases/AsyncTaskId.md +1 -1
  204. package/docs/type-aliases/EventErrorListenerFn.md +1 -1
  205. package/docs/type-aliases/EventListenerFn.md +1 -1
  206. package/docs/type-aliases/FStringPromptTemplateNode.md +1 -1
  207. package/docs/type-aliases/FuncParamType.md +1 -1
  208. package/docs/type-aliases/PromptExamples.md +1 -1
  209. package/docs/type-aliases/PromptTemplateType.md +1 -1
  210. package/docs/type-aliases/PromptType.md +1 -1
  211. package/docs/type-aliases/TFunc.md +1 -1
  212. package/docs/variables/AIChatRoles.md +1 -1
  213. package/docs/variables/AIMessageTypes.md +1 -1
  214. package/docs/variables/AITextGenerationFinishReasons.md +1 -1
  215. package/docs/variables/ActionNames.md +1 -1
  216. package/docs/variables/ClientToolFuncSchema.md +1 -1
  217. package/docs/variables/DefaultAsyncSemaphoreCapacity.md +1 -1
  218. package/docs/variables/EventBusName.md +1 -1
  219. package/docs/variables/EventName.md +1 -1
  220. package/docs/variables/FilenameReservedRegex.md +1 -1
  221. package/docs/variables/HFBuiltins.md +1 -1
  222. package/docs/variables/LLM_TOKENIZER_NAMES.md +1 -1
  223. package/docs/variables/LLM_TOKENIZER_NAMES_MAP.md +1 -1
  224. package/docs/variables/PASSING_SCORE.md +1 -1
  225. package/docs/variables/PromptTemplateTypes.md +1 -1
  226. package/docs/variables/PromptTypes.md +1 -1
  227. package/docs/variables/RStreamErrCode.md +1 -1
  228. package/docs/variables/RemoteToolFuncSchema.md +1 -1
  229. package/docs/variables/ResponseRStreamErrCode.md +1 -1
  230. package/docs/variables/SSEChannelAlreadyClosedErrCode.md +1 -1
  231. package/docs/variables/ServerToolFuncSchema.md +1 -1
  232. package/docs/variables/ToolAsyncCancelableBit.md +1 -1
  233. package/docs/variables/ToolAsyncMultiTaskBit.md +1 -1
  234. package/docs/variables/ToolAsyncPriorityBit.md +1 -1
  235. package/docs/variables/ToolFuncSchema.md +1 -1
  236. package/docs/variables/WindowsReservedNameRegex.md +1 -1
  237. package/docs/variables/base32768.md +1 -1
  238. package/docs/variables/defaultTemplateFormat.md +1 -1
  239. package/docs/variables/event.md +1 -1
  240. package/docs/variables/eventClient.md +1 -1
  241. package/docs/variables/eventServer.md +1 -1
  242. package/docs/variables/lrucache.md +1 -1
  243. 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:()=>Wn,AIChatRoles:()=>$,AIMessageTypes:()=>S,AIStream:()=>He,AITextGenerationFinishReasons:()=>k,AbortError:()=>m.AbortError,AbortErrorCode:()=>m.AbortErrorCode,ActionNames:()=>p,AlreadyExistsError:()=>m.AlreadyExistsError,AlreadyExistsErrorCode:()=>m.AlreadyExistsErrorCode,AsyncFeatureBits:()=>ms,AsyncFeatures:()=>ys,BaseError:()=>m.BaseError,CancelableAbility:()=>xs,ChoiceArgProcessor:()=>Dn,ClientToolFuncSchema:()=>ui,ClientTools:()=>ci,CommonError:()=>m.CommonError,ConfigFile:()=>Nr.Config,DefaultAsyncSemaphoreCapacity:()=>es,ErrorCode:()=>m.ErrorCode,EventBusName:()=>Le,EventClient:()=>xi,EventName:()=>Re,EventServer:()=>Ci,EventToolFunc:()=>wi,FStringPromptTemplate:()=>Dt,FewShotPromptTemplate:()=>Ht,FilenameReservedRegex:()=>En,GolangPromptTemplate:()=>Kt,HFBuiltins:()=>Nt,HFEnvironment:()=>Rt,HFInterpreter:()=>Ot,HFTemplate:()=>Lt,HashAlgorithm:()=>dn,HfPromptTemplate:()=>_t,IntSet:()=>Yr,InternalErrorCode:()=>m.InternalErrorCode,LLM_TOKENIZER_NAMES:()=>Js,LLM_TOKENIZER_NAMES_MAP:()=>Ws,NotFoundError:()=>m.NotFoundError,NotFoundErrorCode:()=>m.NotFoundErrorCode,NotImplementationError:()=>m.NotImplementationError,NotImplementedErrorCode:()=>m.NotImplementedErrorCode,PASSING_SCORE:()=>w,PromptExampleSelector:()=>F,PromptTemplate:()=>I,PromptTemplateTypes:()=>C,PromptTypes:()=>A,RStreamErrCode:()=>Ve,RateLimit:()=>cs,ReadableStreamError:()=>Xe,RemoteToolFuncSchema:()=>d,ResClientTools:()=>Ei,ResServerTools:()=>Ti,ResponseRStreamErrCode:()=>Ue,SSEChannel:()=>_e,SSEChannelAlreadyClosedErrCode:()=>Be,Semaphore:()=>as,ServerToolFuncSchema:()=>fi,ServerTools:()=>li,TaskAbortController:()=>Es,TemplateArgProcessor:()=>Jn,ToolAsyncCancelableBit:()=>ps,ToolAsyncMultiTaskBit:()=>ws,ToolAsyncPriorityBit:()=>ds,ToolFunc:()=>gs,ToolFuncSchema:()=>bs,WindowsReservedNameRegex:()=>xn,YamlTypeBaseObject:()=>oi,_lrucache:()=>mi,backendEventable:()=>Pe,base32768:()=>un,canonicalize:()=>cn.canonicalize,completeSentences:()=>ye,concatText:()=>ge,countLLMTokens:()=>Hs,countRegexMatches:()=>Ss,createAbilityInjector:()=>f.createAbilityInjector,createCallbacksTransformer:()=>Qe,createEmptyReadableStream:()=>Je,createEndWithRepetitionDetector:()=>dr,createError:()=>m.createError,createEventStreamTransformer:()=>Ke,createHfValueFunc:()=>zt,createLRUCache:()=>yi,createYamlObjectTag:()=>ai,dateToText:()=>x,decodeCharset:()=>Sr,defaultTemplateFormat:()=>j,detectCharset:()=>jr,encodeLLMTokens:()=>Gs,event:()=>pi,eventClient:()=>ki,eventServer:()=>Oi,expandEnv:()=>te,expandObjEnv:()=>ee,extNameLevel:()=>Fn,fileIsExists:()=>vr,filenameReservedRegex:()=>An,filterValidFnScope:()=>hr,findIndexNonEmptyFrom:()=>Ae,findPort:()=>Os,formatISO:()=>g.formatISO,formatTextWithSpace:()=>Zs,getAllEnumKeys:()=>Pn,getConfigFileNames:()=>zr,getConfigs:()=>Vr,getFileMetaInfo:()=>Cr,getHashAlgoBySize:()=>Or,getKeysPath:()=>wr,getLLMTokenizer:()=>Ks,getMultiLevelExtname:()=>Nn,getPackageDir:()=>Ms,getRealFilepath:()=>Tr,getResponseErrorReadableStream:()=>De,hasDirectoryIn:()=>Rs,hashFile:()=>Ar,hashStream:()=>bn,hfParse:()=>wt,hfTokenize:()=>V,interpolateEnv:()=>Yt,interpolateFString:()=>Ut,interpolateGolangTemplate:()=>Wt,isLangUsingSpaces:()=>Te,isListItemString:()=>xe,isModelNameMatched:()=>Ln,isPunctuationChar:()=>Se,isRegExp:()=>Ps,isSectionString:()=>ve,isSentenceEnding:()=>be,isSepLineString:()=>ke,isSubdirectory:()=>Fs,isTitleString:()=>Ee,isValidFilename:()=>On,isValidFilepath:()=>jn,isWebStream:()=>ze,jsonFilterToWhere:()=>Kr,jsonToMarkdownStr:()=>Qr,loadFileFromPaths:()=>Er,loadTextFromPaths:()=>kr,lrucache:()=>gi,makeToolFuncCancelable:()=>ks,matchUrlProtocol:()=>Gr,memoize:()=>As,messagesToText:()=>T,mimeType:()=>Lr.mimeType,paramsSizeToScaleStr:()=>Hr,parseCommand:()=>er,parseDateFormat:()=>y.parse,parseFString:()=>Vt,parseISO:()=>g.parseISO,parseJsJson:()=>cr,parseJsJsonSimpleSync:()=>ur,parseObjectArgInfo:()=>Yn,parseObjectArgumentInfos:()=>Xn,parseObjectArguments:()=>Vn,parseObjectArgumentsAsArgInfos:()=>tr,parseYaml:()=>Br,quoteStr:()=>Gn,reControlCharsRegex:()=>Cn,readFilenamesRecursiveSync:()=>$r,readTextFileChunks:()=>ni,readTextFileChunksEx:()=>ri,readableFromAsyncIterable:()=>Ze,registerCoreTools:()=>ji,registerYamlTag:()=>qr,removeMarkdownBold:()=>Ce,removeMarkdownBoldAndItalic:()=>je,removeMarkdownItalic:()=>Oe,replaceWithPlaceholder:()=>rr,restoreFromPlacehoders:()=>sr,sanitizeFilename:()=>In,sanitizeFilepath:()=>Mn,saveConfigFile:()=>Ur,scaleStrToParamsSize:()=>Zr,simplifyObjectArguments:()=>Un,sortedValues:()=>Gt,splitChunks:()=>si,splitParagraph:()=>Ie,splitSentence:()=>me,stringifyYaml:()=>_r,stripConsoleColor:()=>qs,textToDate:()=>E,throwError:()=>m.throwError,toDate:()=>g.toDate,toDateTime:()=>v,toRegExp:()=>h.toRegExp,trimStartOfStreamHelper:()=>Ge,truncTo:()=>Me,truncateByToken:()=>ti,truncateToTokenLimit:()=>Qs,truncateToTokenLimitEx:()=>Ys,uuid:()=>rn,uuidNIL:()=>en.NIL,uuidParse:()=>en.parse,uuidStringify:()=>en.stringify,uuidValidate:()=>en.validate,uuidVersion:()=>en.version,uuidv1:()=>en.v1,uuidv4:()=>en.v4,uuidv5:()=>en.v5,wait:()=>Ne,xxhash:()=>yn,xxhash32:()=>wn,xxhash64:()=>pn,xxhashAsStr:()=>gn}),module.exports=(t=u,a(n({},"__esModule",{value:!0}),t));var l=(()=>"undefined"==typeof document?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href)(),f=require("custom-ability"),h=require("util-ex"),w=.618,p=["get","post","put","delete","patch","list","res"],d={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"}},m=require("@isdk/common-error"),y=require("date-fns"),g=require("date-fns"),b="MMMM d, y 'at' h:m:s b 'GMT'x";function v(t){let e;try{"string"==typeof t?e=(0,y.parseISO)(t):"number"==typeof t?e=new Date(t):t instanceof Date&&(e=t)}catch(t){console.error(t)}return e}function E(t,e=b){return(0,y.parse)(t,e,new Date)}function x(t,e=b){return(0,y.format)(t,e)}var k=["stop","length","content_filter","tool_calls","function_call","abort","error","other",null],S=["human","ai","generic","system","tool"],$=["user","assistant","system","tool","tool_calls"];function T(t){let e="";for(const n of t)if(n.content){e+=n.role.toLowerCase()+":";let t=n.createdAt;if(t){const n=v(t);n&&(e+=" ["+x(n)+"]")}e+=" "+n.content+"\n"}return e}var A=["chat","char","plan"],C=["internal","hf","fill"],O=require("custom-factory");var j="default",I=class t extends O.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||j,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||j);if(e)return Reflect.construct(e,arguments);throw new m.CommonError(`Prompt template type ${r} not found`,"PromptTemplate",m.ErrorCode.InvalidArgument)}}_initialize(t){throw new m.NotImplementationError("Not implemented","PromptTemplate")}initialize(e){this.constructor!==t&&(Object.assign(this,this.toJSON(e)),e?.ignoreInitialize||this._initialize(e))}_format(t){throw new m.NotImplementationError("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 M(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 N=!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=>{N=t}));var F=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,N?r:M(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()}},R=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"}),L=Object.freeze({set:R.Set,for:R.For,in:R.In,is:R.Is,if:R.If,else:R.Else,endif:R.EndIf,elif:R.ElseIf,endfor:R.EndFor,and:R.And,or:R.Or,not:R.Not,"not in":R.NotIn,macro:R.Macro,endmacro:R.EndMacro,true:R.BooleanLiteral,false:R.BooleanLiteral,True:R.BooleanLiteral,False:R.BooleanLiteral}),P=class{constructor(t,e){this.value=t,this.type=e}};function q(t){return/\w/.test(t)}function B(t){return/[0-9]/.test(t)}var _=[["{%",R.OpenStatement],["%}",R.CloseStatement],["{{",R.OpenExpression],["}}",R.CloseExpression],["(",R.OpenParen],[")",R.CloseParen],["{",R.OpenCurlyBracket],["}",R.CloseCurlyBracket],["[",R.OpenSquareBracket],["]",R.CloseSquareBracket],[",",R.Comma],[".",R.Dot],[":",R.Colon],["|",R.Pipe],["<=",R.ComparisonBinaryOperator],[">=",R.ComparisonBinaryOperator],["==",R.ComparisonBinaryOperator],["!=",R.ComparisonBinaryOperator],["<",R.ComparisonBinaryOperator],[">",R.ComparisonBinaryOperator],["+",R.AdditiveBinaryOperator],["-",R.AdditiveBinaryOperator],["*",R.MultiplicativeBinaryOperator],["/",R.MultiplicativeBinaryOperator],["%",R.MultiplicativeBinaryOperator],["=",R.Equals]],z=new Map([["n","\n"],["t","\t"],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function V(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=z.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===R.CloseStatement||t===R.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 P(t,R.Text));continue}}i((t=>/\s/.test(t)));const e=r[s];if("-"===e||"+"===e){const t=n.at(-1)?.type;if(t===R.Text||void 0===t)throw new SyntaxError(`Unexpected character: ${e}`);switch(t){case R.Identifier:case R.NumericLiteral:case R.BooleanLiteral:case R.StringLiteral:case R.CloseParen:case R.CloseSquareBracket:break;default:{++s;const t=i(B);n.push(new P(`${e}${t}`,t.length>0?R.NumericLiteral:R.UnaryOperator));continue}}}for(const[t,e]of _){if(r.slice(s,s+t.length)===t){n.push(new P(t,e)),s+=t.length;continue t}}if("'"!==e&&'"'!==e)if(B(e)){const t=i(B);n.push(new P(t,R.NumericLiteral))}else{if(!q(e))throw new SyntaxError(`Unexpected character: ${e}`);{const t=i(q),e=Object.hasOwn(L,t)?L[t]:R.Identifier;e===R.In&&n.at(-1)?.type===R.Not?(n.pop(),n.push(new P("not in",R.NotIn))):n.push(new P(t,e))}}else{++s;const t=i((t=>t!==e));n.push(new P(t,R.StringLiteral)),++s}}return n}var U=class{constructor(){this.type="Statement"}},X=class extends U{constructor(t){super(),this.body=t,this.type="Program"}},D=class extends U{constructor(t,e,n){super(),this.test=t,this.body=e,this.alternate=n,this.type="If"}},J=class extends U{constructor(t,e,n,r){super(),this.loopvar=t,this.iterable=e,this.body=n,this.defaultBlock=r,this.type="For"}},W=class extends U{constructor(t,e){super(),this.assignee=t,this.value=e,this.type="Set"}},K=class extends U{constructor(t,e,n){super(),this.name=t,this.args=e,this.body=n,this.type="Macro"}},G=class extends U{constructor(){super(...arguments),this.type="Expression"}},H=class extends G{constructor(t,e,n){super(),this.object=t,this.property=e,this.computed=n,this.type="MemberExpression"}},Z=class extends G{constructor(t,e){super(),this.callee=t,this.args=e,this.type="CallExpression"}},Q=class extends G{constructor(t){super(),this.value=t,this.type="Identifier"}},Y=class extends G{constructor(t){super(),this.value=t,this.type="Literal"}},tt=class extends Y{constructor(){super(...arguments),this.type="NumericLiteral"}},et=class extends Y{constructor(){super(...arguments),this.type="StringLiteral"}},nt=class extends Y{constructor(){super(...arguments),this.type="BooleanLiteral"}},rt=class extends Y{constructor(){super(...arguments),this.type="ArrayLiteral"}},st=class extends Y{constructor(){super(...arguments),this.type="TupleLiteral"}},it=class extends Y{constructor(){super(...arguments),this.type="ObjectLiteral"}},ot=class extends G{constructor(t,e,n){super(),this.operator=t,this.left=e,this.right=n,this.type="BinaryExpression"}},at=class extends G{constructor(t,e){super(),this.operand=t,this.filter=e,this.type="FilterExpression"}},ct=class extends G{constructor(t,e){super(),this.iterable=t,this.test=e,this.type="SelectExpression"}},ut=class extends G{constructor(t,e,n){super(),this.operand=t,this.negate=e,this.test=n,this.type="TestExpression"}},lt=class extends G{constructor(t,e){super(),this.operator=t,this.argument=e,this.type="UnaryExpression"}},ft=class extends G{constructor(t=void 0,e=void 0,n=void 0){super(),this.start=t,this.stop=e,this.step=n,this.type="SliceExpression"}},ht=class extends G{constructor(t,e){super(),this.key=t,this.value=e,this.type="KeywordArgumentExpression"}};function wt(t){const e=new X([]);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 R.Text:e=new et(r(R.Text,"Expected text token").value);break;case R.OpenStatement:e=function(){let e;switch(r(R.OpenStatement,"Expected opening statement token"),t[n].type){case R.Set:++n,e=a(),r(R.CloseStatement,"Expected closing statement token");break;case R.If:++n,e=c(),r(R.OpenStatement,"Expected {% token"),r(R.EndIf,"Expected endif token"),r(R.CloseStatement,"Expected %} token");break;case R.Macro:++n,e=function(){const t=E();if("Identifier"!==t.type)throw new SyntaxError("Expected identifier following macro statement");const e=y();r(R.CloseStatement,"Expected closing statement token");const n=[];for(;i(R.OpenStatement,R.EndMacro);)n.push(s());return new K(t,e,n)}(),r(R.OpenStatement,"Expected {% token"),r(R.EndMacro,"Expected endmacro token"),r(R.CloseStatement,"Expected %} token");break;case R.For:++n,e=function(){const t=u(!0);if(!(t instanceof Q||t instanceof st))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${t.type} instead`);r(R.In,"Expected `in` keyword following loop variable");const e=l();r(R.CloseStatement,"Expected closing statement token");const a=[];for(;i(R.OpenStatement,R.EndFor)&&i(R.OpenStatement,R.Else);)a.push(s());const c=[];if(o(R.OpenStatement,R.Else))for(++n,++n,r(R.CloseStatement,"Expected closing statement token");i(R.OpenStatement,R.EndFor);)c.push(s());return new J(t,e,a,c)}(),r(R.OpenStatement,"Expected {% token"),r(R.EndFor,"Expected endfor token"),r(R.CloseStatement,"Expected %} token");break;default:throw new SyntaxError(`Unknown statement type: ${t[n].type} ${t[n].value}`)}return e}(),e.isStatement=!0;break;case R.OpenExpression:e=function(){r(R.OpenExpression,"Expected opening expression token");const t=l();return r(R.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(R.Equals)){++n;const e=a();return new W(t,e)}return t}function c(){const e=l();r(R.CloseStatement,"Expected closing statement token");const i=[],a=[];for(;t[n]?.type!==R.OpenStatement||t[n+1]?.type!==R.ElseIf&&t[n+1]?.type!==R.Else&&t[n+1]?.type!==R.EndIf;)i.push(s());if(t[n]?.type===R.OpenStatement&&t[n+1]?.type!==R.EndIf)if(++n,o(R.ElseIf))r(R.ElseIf,"Expected elseif token"),a.push(c());else for(r(R.Else,"Expected else token"),r(R.CloseStatement,"Expected closing statement token");t[n]?.type!==R.OpenStatement||t[n+1]?.type!==R.EndIf;)a.push(s());return new D(e,i,a)}function u(t=!1){const e=t?E:l,r=[e()],s=o(R.Comma);for(;s&&(++n,r.push(e()),o(R.Comma)););return s?new st(r):r[0]}function l(){return function(){const t=f();if(o(R.If)){++n;const e=f();if(o(R.Else)){++n;const r=f();return new D(e,[t],[r])}return new ct(t,e)}return t}()}function f(){let e=h();for(;o(R.Or);){const r=t[n];++n;const s=h();e=new ot(r,e,s)}return e}function h(){let e=w();for(;o(R.And);){const r=t[n];++n;const s=w();e=new ot(r,e,s)}return e}function w(){let e;for(;o(R.Not);){const r=t[n];++n;const s=w();e=new lt(r,s)}return e??function(){let e=p();for(;o(R.ComparisonBinaryOperator)||o(R.In)||o(R.NotIn);){const r=t[n];++n;const s=p();e=new ot(r,e,s)}return e}()}function p(){let e=b();for(;o(R.AdditiveBinaryOperator);){const r=t[n];++n;const s=b();e=new ot(r,e,s)}return e}function d(){const e=function(){let e=E();for(;o(R.Dot)||o(R.OpenSquareBracket);){const s=t[n];let i;++n;const o=s.type!==R.Dot;if(o)i=g(),r(R.CloseSquareBracket,"Expected closing square bracket");else if(i=E(),"Identifier"!==i.type)throw new SyntaxError("Expected identifier following dot operator");e=new H(e,i,o)}return e}();return o(R.OpenParen)?m(e):e}function m(t){let e=new Z(t,y());return o(R.OpenParen)&&(e=m(e)),e}function y(){r(R.OpenParen,"Expected opening parenthesis for arguments list");const t=function(){const t=[];for(;!o(R.CloseParen);){let e=l();if(o(R.Equals)){if(++n,!(e instanceof Q))throw new SyntaxError("Expected identifier for keyword argument");const t=l();e=new ht(e,t)}t.push(e),o(R.Comma)&&++n}return t}();return r(R.CloseParen,"Expected closing parenthesis for arguments list"),t}function g(){const t=[];let e=!1;for(;!o(R.CloseSquareBracket);)o(R.Colon)?(t.push(void 0),++n,e=!0):(t.push(l()),o(R.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 ft(...t)}return t[0]}function b(){let e=v();for(;o(R.MultiplicativeBinaryOperator);){const r=t[n];++n;const s=v();e=new ot(r,e,s)}return e}function v(){let t=function(){let t=d();for(;o(R.Pipe);){++n;let e=E();if(!(e instanceof Q))throw new SyntaxError("Expected identifier for the filter");o(R.OpenParen)&&(e=m(e)),t=new at(t,e)}return t}();for(;o(R.Is);){++n;const e=o(R.Not);e&&++n;let r=E();if(r instanceof nt&&(r=new Q(r.value.toString())),!(r instanceof Q))throw new SyntaxError("Expected identifier for the test");t=new ut(t,e,r)}return t}function E(){const e=t[n];switch(e.type){case R.NumericLiteral:return++n,new tt(Number(e.value));case R.StringLiteral:return++n,new et(e.value);case R.BooleanLiteral:return++n,new nt("true"===e.value.toLowerCase());case R.Identifier:return++n,new Q(e.value);case R.OpenParen:{++n;const e=u();if(t[n].type!==R.CloseParen)throw new SyntaxError(`Expected closing parenthesis, got ${t[n].type} instead`);return++n,e}case R.OpenSquareBracket:{++n;const t=[];for(;!o(R.CloseSquareBracket);)t.push(l()),o(R.Comma)&&++n;return++n,new rt(t)}case R.OpenCurlyBracket:{++n;const t=new Map;for(;!o(R.CloseCurlyBracket);){const e=l();r(R.Colon,"Expected colon between key and value in object literal");const s=l();t.set(e,s),o(R.Comma)&&++n}return++n,new it(t)}default:throw new SyntaxError(`Unexpected token: ${e.type}`)}}for(;n<t.length;)e.body.push(s());return e}function pt(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 dt(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 mt(t){return t.replace(/\b\w/g,(t=>t.toUpperCase()))}var yt=class{constructor(t=void 0){this.type="RuntimeValue",this.builtins=new Map,this.value=t}__bool__(){return new vt(!!this.value)}toString(){return""+this.value}toJSON(){return this.value}},gt=class extends yt{constructor(){super(...arguments),this.type="NumericValue"}},bt=class t extends yt{constructor(){super(...arguments),this.type="StringValue",this.builtins=new Map([["upper",new $t((()=>new t(this.value.toUpperCase())))],["lower",new $t((()=>new t(this.value.toLowerCase())))],["strip",new $t((()=>new t(this.value.trim())))],["title",new $t((()=>new t(mt(this.value))))],["length",new gt(this.value.length)],["rstrip",new $t((()=>new t(this.value.trimEnd())))],["lstrip",new $t((()=>new t(this.value.trimStart())))]])}},vt=class extends yt{constructor(){super(...arguments),this.type="BooleanValue"}},Et=class extends yt{constructor(t,e){super(t),this.orgValue=e,this.type="ObjectValue",this.builtins=new Map([["get",new $t((([t,e])=>{if(!(t instanceof bt))throw new Error(`Object key must be a string: got ${t.type}`);return this.value.get(t.value)??e??new Tt}))],["items",new $t((()=>new kt(Array.from(this.value.entries()).map((([t,e])=>new kt([new bt(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 vt(this.value.size>0)}},xt=class extends Et{constructor(){super(...arguments),this.type="KeywordArgumentsValue"}},kt=class extends yt{constructor(){super(...arguments),this.type="ArrayValue",this.builtins=new Map([["length",new gt(this.value.length)]])}__bool__(){return new vt(this.value.length>0)}},St=class extends kt{constructor(){super(...arguments),this.type="TupleValue"}},$t=class extends yt{constructor(){super(...arguments),this.type="FunctionValue"}},Tt=class extends yt{constructor(){super(...arguments),this.type="NullValue"}},At=class extends yt{constructor(){super(...arguments),this.type="UndefinedValue"}},Ct=class{constructor(t){this.parent=t,this.variables=new Map([["namespace",new $t((t=>{if(0===t.length)return new Et(new Map);if(1!==t.length||!(t[0]instanceof Et))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 $t],["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 kt||t instanceof bt],["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,jt(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 At}catch{return new At}}},Ot=class{constructor(t){this.global=t??new Ct}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 vt(n.value==r.value);case"!=":return new vt(n.value!=r.value)}if(n instanceof At||r instanceof At)throw new Error("Cannot perform operation on undefined values");if(n instanceof Tt||r instanceof Tt)throw new Error("Cannot perform operation on null values");if(n instanceof gt&&r instanceof gt)switch(t.operator.value){case"+":return new gt(n.value+r.value);case"-":return new gt(n.value-r.value);case"*":return new gt(n.value*r.value);case"/":return new gt(n.value/r.value);case"%":return new gt(n.value%r.value);case"<":return new vt(n.value<r.value);case">":return new vt(n.value>r.value);case">=":return new vt(n.value>=r.value);case"<=":return new vt(n.value<=r.value)}else if(n instanceof kt&&r instanceof kt){if("+"===t.operator.value)return new kt(n.value.concat(r.value))}else if(r instanceof kt){const e=void 0!==r.value.find((t=>t.value===n.value));switch(t.operator.value){case"in":return new vt(e);case"not in":return new vt(!e)}}if((n instanceof bt||r instanceof bt)&&"+"===t.operator.value)return new bt(n.toString()+r.toString());if(n instanceof bt&&r instanceof bt)switch(t.operator.value){case"in":return new vt(r.value.includes(n.value));case"not in":return new vt(!r.value.includes(n.value))}if(n instanceof bt&&r instanceof Et)switch(t.operator.value){case"in":return new vt(r.value.has(n.value));case"not in":return new vt(!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 $t)return s.value([n],e);if(n instanceof kt)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 gt(n.value.length);case"reverse":return new kt(n.value.reverse());case"sort":return new kt(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 bt)switch(r.value){case"length":return new gt(n.value.length);case"upper":return new bt(n.value.toUpperCase());case"lower":return new bt(n.value.toLowerCase());case"title":return new bt(mt(n.value));case"capitalize":return new bt(n.value.charAt(0).toUpperCase()+n.value.slice(1));case"trim":return new bt(n.value.trim());case"trimStart":return new bt(n.value.trimStart());case"trimEnd":return new bt(n.value.trimEnd());case"indent":return new bt(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 gt){if("abs"===r.value)return new gt(Math.abs(n.value));throw new Error(`Unknown NumericValue filter: ${r.value}`)}if(n instanceof Et)switch(r.value){case"items":return new kt(Array.from(n.value.entries()).map((([t,e])=>new kt([new bt(t),e]))));case"length":return new gt(n.value.size);case"string":return new bt(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 $t){const[t,s]=this.evaluateArguments(r.args,e);return s.size>0&&t.push(new xt(s)),i.value([n,...t],e)}if(n instanceof kt){switch(s){case"selectattr":{if(n.value.some((t=>!(t instanceof Et))))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 kt(a)}case"map":{const[,t]=this.evaluateArguments(r.args,e);if(t.has("attribute")){const e=t.get("attribute");if(!(e instanceof bt))throw new Error("attribute must be a string");const r=t.get("default"),s=n.value.map((t=>{if(!(t instanceof Et))throw new Error("items in map must be an object");return t.value.get(e.value)??r??new At}));return new kt(s)}throw new Error("`map` expressions without `attribute` set are not currently supported.")}}throw new Error(`Unknown ArrayValue filter: ${s}`)}if(n instanceof bt){if("indent"===s){const[t,s]=this.evaluateArguments(r.args,e),i=t.at(0)??s.get("width")??new gt(4);if(!(i instanceof gt))throw new Error("width must be a number");const o=t.at(1)??s.get("first")??new vt(!1),a=t.at(2)??s.get("blank")??new vt(!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 bt(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 vt(t.negate?!s:s)}evaluateUnaryExpression(t,e){const n=this.evaluate(t.argument,e);if("not"===t.operator.value)return new vt(!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 bt(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 xt(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 kt||t instanceof bt))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 gt||r instanceof At))throw new Error("Slice start must be numeric or undefined");if(!(s instanceof gt||s instanceof At))throw new Error("Slice stop must be numeric or undefined");if(!(i instanceof gt||i instanceof At))throw new Error("Slice step must be numeric or undefined");return t instanceof kt?new kt(dt(t.value,r.value,s.value,i.value)):new bt(dt(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 bt(t.property.value);if(n instanceof Et){if(!(r instanceof bt))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 kt||n instanceof bt)if(r instanceof gt)s=n.value.at(r.value),n instanceof bt&&(s=new bt(n.value.at(r.value)));else{if(!(r instanceof bt))throw new Error(`Cannot access property with non-string/non-number: got ${r.type}`);s=n.builtins.get(r.value)}else{if(!(r instanceof bt))throw new Error(`Cannot access property with non-string: got ${r.type}`);s=n.builtins.get(r.value)}return s instanceof yt?s:new At}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 Et))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 Tt}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 Ct(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 kt))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 Ct(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 gt(e+1)],["index0",new gt(e)],["revindex",new gt(i.length-e)],["revindex0",new gt(i.length-e-1)],["first",new vt(0===e)],["last",new vt(e===i.length-1)],["length",new gt(i.length)],["previtem",e>0?i[e-1]:new At],["nextitem",e<i.length-1?i[e+1]:new At]]);n.setVariable("loop",new Et(r)),o[e](n);a+=this.evaluateBlock(t.body,n).value,c=!1}if(c){a+=this.evaluateBlock(t.defaultBlock,n).value}return new bt(a)}evaluateMacro(t,e){return e.setVariable(t.name.value,new $t(((e,n)=>{const r=new Ct(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 Tt}evaluate(t,e){if(void 0===t)return new At;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 gt(Number(t.value));case"StringLiteral":return new bt(t.value);case"BooleanLiteral":return new vt(t.value);case"ArrayLiteral":return new kt(t.value.map((t=>this.evaluate(t,e))));case"TupleLiteral":return new St(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 bt))throw new Error(`Object keys must be strings: got ${t.type}`);n.set(t.value,this.evaluate(s,e))}return new Et(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 jt(t){switch(typeof t){case"number":return new gt(t);case"string":return new bt(t);case"boolean":return new vt(t);case"undefined":return new At;case"object":return null===t?new Tt:Array.isArray(t)?new kt(t.map(jt)):new Et(new Map(Object.entries(t).map((([t,e])=>[t,jt(e)]))),t);case"function":return new $t(((e,n)=>{const r=e.map((t=>It(t)));return jt(t(...r)??null)}));default:throw new Error(`Cannot convert to runtime value: ${t}`)}}function It(t){let e=t;if(Array.isArray(t))e=t.map((t=>It(t)));else if(t instanceof Map)e={},t.forEach(((t,n)=>{e[n]=It(t)}));else switch(t.type){case"NullValue":e=null;break;case"UndefinedValue":e=void 0;break;case"ArrayValue":e=t.value.map((t=>It(t)));break;case"KeywordArgumentsValue":case"ObjectValue":e=t.orgValue?t.orgValue:It(t.value),"KeywordArgumentsValue"===t.type&&Object.setPrototypeOf(e,{jinja_kargs:!0});break;default:t.type&&(e=t.value)}return e}function Mt(t,e=0){return Math.floor(Math.random()*(t-e+1))+e}var Nt={randomInt:Mt,select:function(t,e){if(Array.isArray(t)||"string"==typeof t)return void 0===e?e=Mt(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[Mt(n.length-1)]}return t[e]}},tojson:function(t,e,n){return e&&"object"==typeof e&&(e.depth&&(n=e.depth),e=e.indent),Ft(t,e,n)}};function Ft(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=>Ft(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}": ${Ft(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 Rt=class extends Ct{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()}},Lt=class t{static{this.global=new Rt}constructor(t,e={}){const n=V(t,e={lstrip_blocks:!0,trim_blocks:!0,...e});this.parsed=wt(n)}render(e){const n=new Ct(t.global);n.set("false",!1),n.set("true",!0),n.set("raise_exception",(t=>{throw new Error(t)})),n.set("range",pt);for(const[t,r]of Object.entries(e))n.set(t,r);return new Ot(n).run(this.parsed).toString()}};function Pt(t,e){let n;switch(t.type){case"Identifier":n=t.value;break;case"MemberExpression":n=Pt(t.object,e);break;case"FilterExpression":n=Pt(t.operand,e);break;case"Set":{e||(e=[]);const r=Pt(t.assignee);r&&e.push(r),n=Pt(t.value,e);break}}return n&&e?.includes(n)&&(n=void 0),n}function qt(t){let e;if("Program"===t.type)e=t.body.some((t=>qt(t)));else e=t.isStatement;return e}function Bt(t,e){let n=[];if(Array.isArray(t))n=t.map((t=>Bt(t,e))).filter(Boolean).flat();else switch(t.type){case"Program":n=t.body.map((t=>Bt(t,e))).filter(Boolean).flat();break;case"If":n=[Pt(t.test,e),...Bt(t.body,e),...Bt(t.alternate,e)].filter(Boolean);break;case"BinaryExpression":n=[Pt(t.left,e),Pt(t.right,e)].filter(Boolean);break;case"For":{const r=Pt(t.loopvar);r&&(e||(e=[]),e.push(r)),n=[Pt(t.iterable,e),...Bt(t.body,e)].filter(Boolean);break}case"CallExpression":n=[Pt(t.callee,e),...Bt(t.args,e)].filter(Boolean);break;default:n=[Pt(t,e)].filter(Boolean)}return n}Lt.global.assign(Nt);var _t=class extends I{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 Lt(n)}catch(t){}return e&&(r=qt(e.parsed)),r}getVariables(t=this.compiledTemplate){return Bt(t.parsed,[]).filter(((t,e,n)=>n.indexOf(t)===e))}_initialize(t){const e=t?.template;if("string"!=typeof e)throw new m.CommonError("Prompt template must be a string","PromptTemplate",m.ErrorCode.InvalidArgument);this.compiledTemplate=new Lt(e),this.inputVariables=Array.isArray(t?.inputVariables)?t.inputVariables:this.getVariables()}_format(t){return this.compiledTemplate.render(t)}};function zt(t){return function(e){return t}}function Vt(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 Ut(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 Xt(t){const e=new Set;return t.forEach((t=>{"variable"===t.type&&e.add(t.name)})),[...e]}I.register(_t,{name:"hf",aliases:["huggingface","internal","default"]});var Dt=class extends I{static isTemplate(t){let e,n,r=!1;if("object"==typeof t?(n=t.template,e=t.compiledTemplate):n=t,!e&&n)try{e=Vt(n)}catch(t){}if(e){r=Xt(e).length>0}return r}getVariables(t=this.compiledTemplate){return Xt(t)}_initialize(t){const e=t?.template;if("string"!=typeof e)throw new m.CommonError("Prompt template must be a string","PromptTemplate",m.ErrorCode.InvalidArgument);this.compiledTemplate=Vt(e),this.inputVariables=Array.isArray(t?.inputVariables)?t.inputVariables:this.getVariables()}_format(t){return Ut(this.compiledTemplate,t)}};function Jt(t,e){return"string"==typeof e&&(e=e.split(".").filter((t=>t.length))),e.reduce(((t,e)=>t?.[e]),t)}function Wt(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 Jt(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):Jt(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=Jt(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=Jt(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):Jt(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=Jt(e,r);let o;return o=isNaN(s)?i[s.substring(1,s.length-1)]:i[parseInt(s,10)],o||""}))}(r,e,n),r}I.register(Dt,{name:"fstring",aliases:["python","f-string","langchain"]});var Kt=class extends I{static isTemplate(t){const e="string"==typeof t?t:t.template;return e?.includes("{{")&&e.includes("}}")}getVariables(t){const e={};return Wt(t,e,!0),[...Object.keys(e)]}_initialize(t){const e=t?.template;if("string"!=typeof e)throw new m.CommonError("Prompt template must be a string","PromptTemplate",m.ErrorCode.InvalidArgument);this.inputVariables=Array.isArray(t?.inputVariables)?t.inputVariables:this.getVariables(e)}_format(t){return Wt(this.template,t)}};function Gt(t){return Object.keys(t).sort().map((e=>t[e]))}I.register(Kt,{name:"golang",aliases:["localai","ollama"]});var Ht=class extends I{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 I?t.examplePrompt:I.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=Gt(t);n.length>0&&e.push(...n)}const n=[this.prefix,...e,this.suffix].join(this.exampleSeparator),r=this.templateFormat;return await I.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}};I.register(Ht,{name:"fewshot",aliases:["few_shot"]});var Zt=/(\\)?(\$)(?!\()(\{?)([\w.]+)(?::?-((?:\$\{(?:\$\{(?:\$\{[^}]*\}|[^}])*}|[^}])*}|[^}])+))?(\}?)/gi;function Qt(t){return t.replace(/\\\$/g,"$")}function Yt(t,e,n){return t.replace(Zt,((r,s,i,o,a,c,u)=>"\\"===s?r.slice(1):e[a]?e[a]===n[a]?e[a]:Yt(e[a],e,n):n[a]?n[a]===t?n[a]:Yt(n[a],e,n):c?c.startsWith("$")?Yt(c,e,n):c:""))}function te(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]?Yt(r,e,t.parsed):e[n]:Yt(r,e,t.parsed),t.parsed[n]=r?Qt(r):r}for(const n in t.parsed)e[n]=t.parsed[n];return t}function ee(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=Yt(t,e.processEnv,e.parsed);break;case"object":if(n.has(t)||null===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]=ee(t[r],e,n))}else for(const[r,s]of Object.entries(t))"string"!=typeof s&&"object"!=typeof s||(t[r]=ee(s,e,n))}return t}var ne=require("@isdk/detect-text-language"),re="@",se=/(\S.+?[.!?])(?=\s+|$)|(\S.+?)(?=[\n]|$)/g,ie=/([A-Z][a-z]{1,2}\.)\s(\w)/g,oe=/(\.[a-zA-Z]\.)\s(\w)/g,ae=new RegExp("([A-Z][a-z]{1,2}\\.)"+re+"(\\w)","g"),ce=new RegExp("(\\.[a-zA-Z]\\.)"+re+"(\\w)","g"),ue=/(```)([\s\S]*?)(```)/g,le=">>>CODE_BLOCK<<<",fe=/([*_`]{1,3})(\S.*?\S)\1/,he=">>> INLINE_BLOCK ",we=/>>> INLINE_BLOCK (\d+) <<</,pe=1e4;function de(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 me(t,{best:e=!0,completeSentence:n,isMarkdown:r,ignoreEmptyLine:s}={}){const i=[],o=[];let a,c=0;for(;c++<pe&&(a=ue.exec(t));){const e=a[0];i.push(e),t=t.replace(e,"\n"+le+(i.length-1)+"\n")}for(c=0;c++<pe&&(a=fe.exec(t));){const e=a[0];o.push(e),t=t.replace(e,he+(o.length-1)+" <<<")}if(r){const e=t.split("\n");for(let t=0;t<e.length;t++){const n=e[t];Ee(n,{isMarkdown:r,nextLine:e[t+1]})&&(i.push(n),e[t]=le+(i.length-1))}t=e.join("\n")}const u=(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 l=[];for(let t=0;t<u.length;t++){let n=u[t].trimEnd();if(!n){!r&&s||l.push("");continue}if(n.startsWith(le)){l.push(i[Number(n.slice(le.length))]);continue}if(r&&Ee(n,{isMarkdown:r,nextLine:u[t+1]})){l.push(n);continue}if(!e){l.push(n);continue}let a=de(n,re,[ie,oe]),c=Array.from(a.matchAll(se)),f=[];if(c.length)for(let t=0;t<c.length;t++)f.push(de(c[t][0]," ",[ae,ce]));else f.push(n);l.push(...f.map((t=>$e(o,t))))}return n&&(l=ye(l,{isMarkdown:r,ignoreEmptyLine:s})),l}function ye(t,{isMarkdown:e,ignoreEmptyLine:n}={}){const r=[];let s=0,i="";for(n=!e&&n;s<t.length;){let c=t[s];if(c){let u;if(n){const n=Ae(t,s+1);u=ve(t[n],{isMarkdown:e,nextLine:-1===n?"":t[n+1]})}else u=ve(t[s+1],{isMarkdown:e,nextLine:t[s+2]});o=c,a={isMarkdown:e,nextLine:t[s+1]},be(o)||ve(o,a)||""===t[s+1]||u?(i&&(c=ge(i,c),i=""),r.push(c)):(i&&(c=ge(i,c)),i=c)}else n||r[r.length-1]&&r.push(c);s++}var o,a;return i&&r.push(i),r}function ge(t,e){const n=t+" "+e,r=(0,ne.detectTextLanguage)(n,{isoCode:!0});return r&&!Te(r)?(Se(t)&&(t+=" "),e=t+e):e=t.endsWith("-")?(t=t.slice(0,-1))+e:n,e}function be(t){if(!t)return!1;return/(([.。!!??]\s*['"”’]?)|```)\s*$/.test(t)}function ve(t,e){let n=Ee(t,e);return n||(n=xe(t)),n||(n=ke(t)),n}function Ee(t,e){if(!t)return null;let n=/^\s*第?\s*[壹贰叁肆伍陆柒捌玖拾一二三四五六七八九十百千萬万\d]+\s*([章節节编回部篇卷幕场場辑集段册冊期片題]|片段|段落|篇[章目]|小[节節]|(子)?部分|卷[册冊]|[单單]元|章[节節回]|[.、])[ \t]*(?<title>.*)(?=\n|$)/.exec(t);if(n||(n=/^\s*(Chapter|Book|Article|Part|Paragraph|Subsection|Subpart|Volume|Episode|Issue|Unit|Section|Segment|Act|Scene)\s*\d+.*(?=\n|$)/i.exec(t)),!n&&e?.isMarkdown){n=/^[ \t]{0,3}(#+)\s+(?<title>\S.*)$/.exec(t);const r=/^[ \t]{0,3}([-=]+)(?=\n|$)/;!n&&e.nextLine&&!r.test(t)&&/^[ \t]{0,3}\S/.test(t)&&r.test(e.nextLine)&&(n=/^\s*(?<title>.*)(?=\n|$)/.exec(t))}return n}function xe(t){return/^\s*([*+-]|\d+[.、])\s*(?<item>.*)(?=\n|$)/.exec(t)}function ke(t){return/^[-=_]{3,}$/.exec(t)}function Se(t){return/[。!??,、;;::'""“”‘’~~《》<>〈〉【】(){}【】\[\]\(\)…·]$/.test(t)}function $e(t,e){let n,r=0;for(;r++<pe&&(n=we.exec(e));){const r=Number(n[1]);e=e.replace(n[0],t[r])}return e}function Te(t){return!["zh","ja","th","lo","ta","ko"].includes(t)}function Ae(t,e=0){for(let n=e;n<t.length;n++){const e=t[n];if(null!=e&&""!==e)return n}return-1}function Ce(t,e){const n=/(?!\\)([*_])\1(?![ \t]|\1)(.+?)(?<!\\)\1{2}/;let r;for(;(r=n.exec(t))&&(t=t.slice(0,r.index)+r[2]+t.slice(r.index+r[0].length),!e););return t}function Oe(t,e){const n=/(?!\\)([*_])(?![ \t]|\1)(.+?)(?<!\\)\1/;let r;for(;(r=n.exec(t))&&(t=t.slice(0,r.index)+r[2]+t.slice(r.index+r[0].length),!e););return t}function je(t,e){return t=Oe(t=Ce(t,e),e)}function Ie(t,e){const n=[],r=[],s=t.split("\n");for(let t=0;t<s.length;t++){let i=s[t];const o=0===i.trim().length;o||Ee(i,{...e,nextLine:s[t+1]})?(r.length&&n.push([...r]),r.length=0,o||r.push(i)):r.push(i)}return r.length&&n.push([...r]),n}function Me(t,e=2,n=.5){const r=10**e;return Math.trunc((t+Number.EPSILON+n/r)*r)/r}async function Ne(t){return new Promise((e=>setTimeout(e,t)))}var Fe=require("custom-ability"),Re="event",Le="event-bus";var Pe=(0,Fe.createAbilityInjector)((function(t){return class{static get emitter(){if(!this._emitter){const t=this.get(Le)?.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 qe(t,e){return!t||t.some((t=>t instanceof RegExp?t.test(e):t===e))}var Be=498,_e=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||(0,m.throwError)("Channel closed","SSEChannel",Be);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||qe(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||(0,m.throwError)("Channel closed","SSEChannel",Be);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=>qe(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 ze(t){return t instanceof ReadableStream||t instanceof WritableStream}var Ve=600,Ue=601,Xe=class extends m.BaseError{constructor(t,e=Ve){super(t,500)}};function De(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 Xe(`Response error: ${e}`,Ue))}}})}return new ReadableStream({start(t){t.error(new Xe("Response error: No response body",Ue))}})}function Je(){return new ReadableStream({start(t){t.close()}})}var We=require("eventsource-parser");function Ke(t){const e=new TextDecoder;let n;return new TransformStream({async start(e){n=(0,We.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 Ge(){let t=!0;return e=>(t&&(e=e.trimStart())&&(t=!1),e)}function He(t,e){if(!t.ok)return De(t.body);let n=t.body||new ReadableStream({start(t){t.close()}});return n instanceof ReadableStream||(n=ReadableStream.from(n)),n.pipeThrough(Ke(e))}function Ze(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 Qe(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 Ye=require("uuid"),tn=c(require("base32768")),en=require("uuid"),nn={1:Ye.v1,4:Ye.v4,5:Ye.v5};function rn(t=1,e){const n=nn[t];return e?tn.encode(n(null,[])):n()}var sn=require("hash-wasm"),on=c(require("xxhashjs")),an=c(require("base32768")),cn=require("json-canonicalize"),un=an,{h32:ln,h64:fn}=on.default,hn=588213;function wn(t,e=16){return"object"==typeof t&&(t=(0,cn.canonicalize)(t)),ln(t.normalize(),hn).toString(e)}function pn(t,e=16){return"object"==typeof t&&(t=(0,cn.canonicalize)(t)),fn(t.normalize(),hn).toString(e)}var dn=(t=>(t[t.md5=1]="md5",t[t.sha1=2]="sha1",t[t.ripemd=3]="ripemd",t[t.sha256=8]="sha256",t[t.sha384=9]="sha384",t[t.sha512=10]="sha512",t[t.sha224=11]="sha224",t[t.xxhash=111]="xxhash",t[t.xxhash64=111]="xxhash64",t[t.xxhash32=112]="xxhash32",t[t.xxhash128=113]="xxhash128",t))(dn||{}),mn={1:sn.createMD5,2:sn.createSHA1,8:sn.createSHA256,10:sn.createSHA512,11:sn.createSHA224,3:sn.createRIPEMD160,112:sn.createXXHash32,111:sn.createXXHash64,113:sn.createXXHash128};function yn(t,e=111,n=hn){let r;return t.buffer&&(t=t.buffer),112!==e?(r=fn(t,n),r=new Uint16Array([r._a00,r._a16,r._a32,r._a48]),r=new Uint8Array(r.buffer)):(r=ln(t,n),r=new Uint16Array([r._low,r._high]),r=new Uint8Array(r.buffer)),r}function gn(t,e=111,n=hn){return an.encode(yn(t,e,n))}async function bn(t,{hashAlgo:e=111,seed:n=hn,outputType:r="string"}={}){const s=await mn[e](n);s.init();const i=t.getReader();for(;;){const{done:t,value:e}=await i.read();if(t)break;s.update(e)}return"string"!==r?s.digest(r):an.encode(s.digest("binary"))}var vn=c(require("path")),En=/[<>:"/\\|?*\u0000-\u001F]/,xn=/^(con|prn|aux|nul|com\d|lpt\d)$/i,kn=100,Sn=/^\.+(\\|\/)|^\.+$/,$n=/\.+$/,Tn=/[\u0000-\u001F\u0080-\u009F\u200E\u200F\u202A-\u202E\u2066-\u2069]/;function An(){return new RegExp(En.source,"g")}function Cn(){return new RegExp(Tn.source,"g")}function On(t){return t&&!(En.test(t)||Cn().test(t)||Sn.test(t)||$n.test(t))}function jn(t){const e=t.split(vn.default.sep);return("/"===t[0]||e[0]&&vn.default.dirname(e[0])===e[0])&&e.shift(),e.every(On)}function In(t,e={}){const n=e.replacement||"!";if((En.test(n)||Tn.test(n))&&(0,m.throwError)("Replacement string cannot contain reserved filename characters","sanitizeFilename",m.ErrorCode.InvalidArgument),n.length>0){const e=/([<>:"/\\|?*\u0000-\u001F]){2,}/;t=t.replace(e,"$1")}if(t=(t=(t=(t=(t=t.normalize("NFD")).replace(Sn,n)).replace(An(),n)).replace(Cn(),n)).replace($n,""),n.length>0){"."===t[0]||"."!==t[0]||(t=n+t),"."===t[t.length-1]&&(t+=n)}t=xn.test(t)?t+n:t;const r="number"==typeof e.maxLength?e.maxLength:kn;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 Mn(t,e={}){const n=t.split(vn.default.sep);let r;("/"===t[0]||n[0]&&vn.default.dirname(n[0])===n[0])&&(r=n.shift());const s=n.map((t=>In(t,e)));return void 0!==r&&s.unshift(r),s.join(vn.default.sep)}function Nn(t,e=1){let n="";for(;e--;){const e=vn.default.extname(t);if(!e)break;n=e+n,t=vn.default.basename(t,e)}return n}function Fn(t){return t.split(".").length-1}var Rn=require("util-ex");function Ln(t,e){if("string"!=typeof t)throw new m.CommonError("modelName must be a string","isModelNameMatched",m.ErrorCode.InvalidArgument);switch(typeof e){case"string":if((0,Rn.isRegExpStr)(e)){const n=(e=(0,Rn.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,Rn.isRegExpStr)(n)){const r=(e=(0,Rn.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 Pn(t){return Object.keys(t).filter((t=>Number.isNaN(Number(t))))}var qn=require("lodash-es"),Bn=require("util-ex"),_n=require("lodash-es"),zn=require("util-ex");async function Vn(t,e,n){return Xn(tr(t,e,n),e,n)}function Un(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 Xn(t,e,n){if(t.length){const r=await Promise.all(t.map(((t,r)=>Yn(t,r,e,n)))),s=n?.returnArrayOnly;let i;if(r?.length){i=ur(`{${r.map((t=>t)).join(",")}}`,e)}return i&&!s&&(i=Un(i)),i}}function Dn(t,e,n,r){const[s,i]=t;if(!s&&"|"===i[0])return"choice: {"+function(t,e,n){const r=tr(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=>Kn(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(Kn(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 Jn([t,e],n,r,s){let i,o;if(r||(r={}),t){const t=e.split(":");i=t[0].trim(),o=t[1].trim()}else o=e,i=n+"";const a={template:o,data:{...(0,_n.omitBy)(r,((t,e)=>!e||"_"===e[0]||"function"==typeof t)),...s?.templateData}};s?.templateFormat&&(a.templateFormat=s.templateFormat);const c=await I.formatIf(a);if(c)return o=Kn(c)?c:JSON.stringify(c),i+":"+o}async function Wn(t,e,n,r){let s=Dn(t,0,n,r);return s||(s=await Jn(t,e,n,r)),s}function Kn(t){const e=t[0];return('"'===e||"'"===e)&&t[t.length-1]===e}function Gn(t){return'"'+t.replace(/(?<!\\)"(?!\\)/g,'\\"')+'"'}var Hn=["true","false","null","undefined","NaN","Infinity"];async function Zn(t,e,n){const r=(0,zn.newFunction)("async expression",[],`return ${t};`,hr(e));let s;try{s=await r.call(this)}catch(t){if(n||!(t instanceof ReferenceError))throw t}switch(typeof s){case"number":case"boolean":case"undefined":return s;case"function":return r.toString();default:return JSON.stringify(s)}}async function Qn(t,e,n){let r=t;if(!(s=t,function(t,e=['""',"''","{}"]){return e.some((e=>t[0]===e[0]&&t[t.length-1]===e[1]))}(s)||!Number.isNaN(parseFloat(s))||Hn.includes(s)||ar(s)||e&&void 0!==(0,_n.get)(e,t)||ar(t)))try{r=n?.skipExpression?Gn(t):await Zn.call(this,t,e,n?.preserveUnresolvedName)}catch(e){r=Gn(t)}var s;return r}async function Yn(t,e,n,r){const[s,i]=t,o=r?.argProcessor,a=r?.ignoreIndexNamed;if("function"==typeof o){const s=await o(t,e,n,r);if(s)return s}if(s){const t=i.indexOf(":");return i.slice(0,t).trim()+":"+await Qn(i.slice(t+1).trim(),n,r)}{const t=i.trim();if(n&&void 0!==(0,_n.get)(n,t)){return(a?"":e+":"+t+",")+'"'+t+'":'+t}return e+":"+await Qn(i.trim(),n,r)}}function tr(t,e,n){const r=n?.delimiter??",",s=n?.assigner??"=";let i=[],o=!1,a="",c="",u=!1,l="";for(let e=0;e<t.length;e++){const n=t[e];if(n!==r||o||l)if("\\"===n)c+=n,e++,c+=t[e];else if("("!==n&&"["!==n||o)if(l&&n===l)l="",c+=n;else if("{"!==n||o)'"'===n||"'"===n?(o&&n===a?o=!1:o||(o=!0,a=n),c+=n):n!==s||o||u||!/^[\p{L}\p{N}_ ]+$/u.test(c)?c+=n:(c+=":",u=!0);else{let r,s=e,i=!1,o="",a=-1;for(;s<t.length&&("}"!==(r=t[s])||i||a>0);)"\\"===r?s++:"{"!==r||i?"}"!==r||i?'"'!==r&&"'"!==r||(i&&n===o?i=!1:i||(i=!0,o=n)):a--:a++,s++;s<t.length&&(c+=t.substring(e,s+1),e=s)}else l="("===n?")":"]",c+=n;else c=c.trim(),c.endsWith(":")&&(c+="undefined"),i.push([u,c]),c="",u=!1}return c&&(c=c.trim(),c.endsWith(":")&&(c+="undefined"),i.push([u,c])),i}async function er(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 Vn(i,e,n)),{command:s.trim(),args:o}}var nr="__PlacEhoLdeR_";function rr(t,e){let n=e?.startChar?Array.isArray(e.startChar)?e.startChar:[e.startChar]:['"',"'"],r=e?.endChar?Array.isArray(e.endChar)?e.endChar:[e.endChar]:n;if(n.length!==r.length)throw new Error("start and end characters must have the same length");const s=e?.placeholder??nr,i=n.every(((t,e)=>t===r[e])),o=e?.placehoders??[];if(i){n=n.map((t=>"\\"+t));const e=new RegExp(`(?<!\\\\)(${n.join("|")}).*?(?<!\\\\)\\1`);let r;for(;null!==(r=e.exec(t));){const e=`${s}${o.length}`;t=t.replace(r[0],e),o.push(r[0])}}else{n=n.map((t=>"\\"+t)),r=r.map((t=>"\\"+t));for(let e=0;e<n.length;e++){const i=new RegExp(`(?<!\\\\)${n[e]}.*?(?<!\\\\)${r[e]}`);let a;for(;null!==(a=i.exec(t));){const e=`${s}${o.length}`;t=t.replace(a[0],e),o.push(a[0])}}}return[t,o]}function sr(t,e,n){const r=n?.placeholder??nr;return e.reduce(((t,e,n)=>t.replace(new RegExp(r+n,"g"),e)),t)}var ir="[a-zA-Z_$][a-zA-Z_\\d$]*",or=new RegExp(`^\\s*(\\(\\s*\\)|${ir}|\\(${`${ir}\\s*(,\\s*${ir})*`}\\))\\s*=>`);function ar(t){return or.test(t)}async function cr(t,e){if(e&&(e=hr(e)),e&&(t=t.trim()).startsWith("{")&&t.endsWith("}")){return await Vn(t.slice(1,-1),e,{assigner:":",ignoreIndexNamed:!0})}return ur(t,e)}function ur(t,e){if(e&&(e=hr(e)),e){const n=Object.keys(e);if(n.length){const r=Object.values(e);let s=0;for(;s++<100;)try{return(0,Bn.newFunction)("expression",n,`return ${t}`)(...r)}catch(t){if(!(t instanceof ReferenceError))throw t;{const e=/(.+)\s+is not defined/.exec(t.message);if(!e)throw t;n.push(e[1]),r.push(void 0)}}}}return(0,Bn.newFunction)("expression",[],`return ${t}`)()}var lr=/^[a-zA-Z_$][0-9a-zA-Z_$]*$/,fr=t=>lr.test(t);function hr(t){if(t){const e=Object.keys(t),n=e.length,r=e.filter((e=>fr(e)&&null!==t[e]));if(n===r.length)return t;if(r.length)return t=(0,qn.pick)(t,r)}}function wr(t){return t?pr(t,[],""):[]}function pr(t,e,n="."){return Array.isArray(t)?t.flatMap(((t,n)=>pr(t,[...e,`[${n}]`]))):(r=t)&&r.constructor===Object?Object.entries(t).flatMap((([t,r])=>pr(r,[...e,n+t]))):[e.join("")];var r}function dr(t){if(t<2)throw new m.CommonError("repetitionThreshold must be greater than 1","createEndWithRepetitionDetector",m.ErrorCode.InvalidArgument);const e=new RegExp(`([\\S\\s]+)(\\1{${t-1},})$`);return function(t){return e.exec(t)}}var mr=c(require("path")),yr=c(require("fs")),gr=c(require("mime-type/with-db")),br=c(require("jschardet"));function vr(t){const e=yr.statSync(t,{throwIfNoEntry:!1});return e?.isFile()}function Er(t,e,n,r){const s=r?.signal,i=r?.exclude;let o;if(mr.default.isAbsolute(t)?o=vr(t)?t:xr(mr.default.basename(t),[mr.default.dirname(t)],{extNames:n,exclude:i,signal:s}):(e||(e=["."]),o=xr(t,e,{extNames:n,exclude:i,signal:s})),!o)throw new m.NotFoundError(t,"loadFileFromPaths");{const t=o;o=yr.readFileSync(o),r&&(r.filepath=t)}return o}function xr(t,e,{extNames:n,signal:r,exclude:s=[]}){let i;const o=n?n.map((e=>Nn(t,Fn(e)))):void 0;"string"==typeof s&&(s=[s]);for(const a of e){if(r?.aborted)throw r.reason;const e=mr.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)&&vr(r)){i=r;break}}else if(!s.includes(e)&&vr(e)){i=e;break}}return i}function kr(t,e,n,r,s){let i;"string"==typeof r?(i=r,r=void 0):i=r?.encoding;return Sr(Er(t,e,n,r),i)}function Sr(t,e){void 0===e&&(e=jr(t)??"utf8");return new TextDecoder(e).decode(t)}function $r(t,e){const n=[],r="string"==typeof t?[{dir:t,level:0}]:[...t.map((t=>({dir:t,level:0})))],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=r.pop(),e=Tr(t.dir),u=mr.default.resolve(e);if(s.has(u))continue;s.add(u);const l=yr.statSync(e,{throwIfNoEntry:!1});if(l?.isDirectory()){c=t.level+1;const s=yr.readdirSync(e,{withFileTypes:!0});for(let t=0;t<s.length;t++){let i=s[t],u=mr.default.join(e,i.name);if(i.isSymbolicLink()){const t=mr.default.dirname(u);u=yr.readlinkSync(u),u=mr.default.resolve(t,u),i=yr.statSync(u)}i.isDirectory()?(!a||c<a)&&(o&&!o(u,i)||r.push({dir:u,level:c})):!i.isFile()||o&&!o(u,i)||n.includes(u)||n.push(u)}}}return n}function Tr(t){const e=yr.lstatSync(t,{throwIfNoEntry:!1});return e?.isSymbolicLink()&&(t=yr.readlinkSync(t)),t}async function Ar(t,e){return bn(ReadableStream.from(yr.createReadStream(t)),e)}async function Cr(t){const e=mr.default.basename(t);t=mr.default.resolve(t);const n=await yr.promises.stat(t),r=n.mtime,s=n.ctime,i=n.size,o=Or(i),a=await Ar(t,{hashAlgo:o}),c=gr.default.lookup(t);return{name:e,mtime:r,ctime:s,size:i,hash:dn[o]+":"+a,mimeType:c,id:"file://"+t}}function Or(t){let e=111;return t<=2048?e=112:t<=1048576?e=111:t<=10485760?e=113:t>10485760&&(e=10),e}function jr(t,e){return br.default.detect(t,e).encoding}var Ir=require("fs"),Mr=c(require("path")),Nr=require("load-config-file"),Fr=require("yaml"),Rr=require("yaml-types"),Lr=require("mime-type/with-db"),Pr=[Rr.regexp];function qr(t){Array.isArray(t)||(t=[t]);for(const e of t){-1===Pr.indexOf(e)&&Pr.push(e)}}function Br(t){return(0,Fr.parse)(t,{customTags:Pr})}function _r(t){return(0,Fr.stringify)(t,{customTags:Pr})}function zr(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,Ir.readdirSync)(t,{withFileTypes:!0,recursive:!0});for(const r of n){const n=Mr.default.join(t,r.name);r.isFile()&&e(n,r)}}(t,((t,e)=>{if(s?.includes(t))return;const o=Mr.default.extname(t),a=(0,Ir.statSync)(t);if(i.includes(o)){if(r?.hasOwnProperty(t)&&a.mtimeMs<=r[t])return;n.push(t)}})),n}function Vr(t,e){return zr(t,e).map((t=>Nr.Config.loadSync(t))).filter((t=>void 0!==t))}function Ur(t,e,n=1){"."===t[0]&&n++;const r=Nn(t,n);(!r||r.split(".").length<=1)&&(t+=".yaml");const s=Lr.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=_r(e)}const i=Mr.default.dirname(t);return(0,Ir.existsSync)(i)||(0,Ir.mkdirSync)(i,{recursive:!0}),(0,Ir.writeFileSync)(t,e,{encoding:"utf8"}),t}function Xr(t){t instanceof Date&&(t=t.toISOString());return function(t,e){return t?`'${e}'`:String(e)}("string"==typeof t,t)}function Dr(t,e){return t.map((t=>Kr(t,e))).join(" AND ")}function Jr(t,e){return t.map((t=>Kr(t,e))).join(" OR ")}function Wr(t,e){const n=[];return Object.keys(e).forEach((r=>{const s=e[r];switch(r){case"$lt":case"<":n.push(`${t} < ${Xr(s)}`);break;case"<=":case"$lte":n.push(`${t} <= ${Xr(s)}`);break;case"$gt":case">":n.push(`${t} > ${Xr(s)}`);break;case"$gte":case">=":n.push(`${t} >= ${Xr(s)}`);break;case"$ne":case"!=":n.push(`${t} != ${Xr(s)}`);break;case"=":case"$eq":n.push(`${t} = ${Xr(s)}`);break;case"$in":n.push(`${t} IN (${s.map((t=>Xr(t))).join(", ")})`);break;case"$nin":n.push(`${t} NOT IN (${s.map((t=>Xr(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 Kr(t,e){const n=[];if("function"!=typeof e&&(e=t=>t),Array.isArray(t))n.push(Dr(t,e));else for(const[r,s]of Object.entries(t))if("$and"===r)n.push(`(${Dr(t[r],e)})`);else if("$or"===r)n.push(`(${Jr(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(Wr(e(r),s))}return n.length>1?n.join(" AND "):n[0]}function Gr(t){const e=t.indexOf("://");if(e>0)return t.substring(0,e)}function Hr(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 Zr(t){const e=t.match(/^\s*[+]?(\d+(?:[.]\d+)?)\s*([TBMK])?\s*$/i);if(!e)throw new m.CommonError("Invalid formatted parameter size string.","scaleToSize",m.ErrorCode.InvalidArgument);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 Qr(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":" ")+Qr(t,{level:n+1,visiting:r})}}Nr.Config.register([".yml",".yaml"],Br),Nr.Config.register([".json"],(function(t){return JSON.parse(t)}));var Yr=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}},ts=require("events-ex"),es=32;function ns(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 rs=class{constructor(t){this._capacity=ns(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(ns(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)}}},ss=class extends ts.EventEmitter{};function is(t){return"function"==typeof t}function os(){return"1"}var as=class{constructor(t,{initFn:e=os,pauseFn:n,resumeFn:r,capacity:s=es}={}){if(is(n)!==is(r))throw new Error("pauseFn and resumeFn must be both set for pausing");this.maxConcurrency=t,this.free=new rs(t),this.waiting=new rs(s),this.releaseEmitter=new ss,this.useDefaultTokens=e===os,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 cs(t,{timeUnit:e=1e3,uniformDistribution:n=!1}={}){const r=new as(n?1:t),s=n?e/t:e;return async function(){await r.acquire(),setTimeout((()=>r.release()),s)}}var us,ls=require("custom-ability"),fs=require("property-manager"),hs=require("util-ex"),ws=0,ps=1,ds=2,ms=(t=>(t[t.MultiTask=ws]="MultiTask",t[t.Cancelable=ps]="Cancelable",t[t.Priority=ds]="Priority",t))(ms||{}),ys=((us=ys||{})[us.MultiTask=1<<ws]="MultiTask",us[us.Cancelable=1<<ps]="Cancelable",us[us.Priority=1<<ds]="Priority",us),gs=class t extends fs.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),Yr.has(n,t)}static run(t,e){const n=this.get(t);if(n)return n.run(e);throw new m.NotFoundError(`${t} to run`,this.name)}static runSync(t,e){const n=this.get(t);if(n)return n.runSync(e);throw new m.NotFoundError(`${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 m.NotFoundError(`${t} to run`,this.name)}static runWithPosSync(t,...e){const n=this.get(t);if(n)return n.runWithPosSync(...e);throw new m.NotFoundError(`${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);(0,m.throwError)("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),Yr.has(e,t)}isStream(t){return this.stream}},bs={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,hs._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"}};gs.defineProperties(gs,bs);var vs=require("util-ex"),Es=class extends AbortController{constructor(t){super(),(0,vs.defineProperty)(this,"parent",t)}abort(t,e){this.signal.aborted||("string"==typeof t&&(t=new m.AbortError(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 m.AbortError(e.reason||"aborted")}}},xs=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 as(t-1)),e}isAborted(t){const e=this.hasAsyncFeature(ws);let n=this.__task_aborter;if(n&&e){if(null==t)throw new m.CommonError("Missing taskId",this.name+".isAborted",m.ErrorCode.InvalidArgument);n=n[t]}return!n||n.signal.aborted}getRunningTask(t){const e=this.hasAsyncFeature(ws);let n=this.__task_aborter;if(n&&e){if(null==t)throw new m.CommonError("Missing taskId",this.name+".getRunningTask",m.ErrorCode.InvalidArgument);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(ws)){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(ws);if(!r&&n&&this.getRunningTask())throw new m.CommonError("The task is running",this.name,m.ErrorCode.TooManyRequests);const s=t?.aborter||new Es(this);if(!(s instanceof Es)){if(!(s instanceof AbortController))throw new m.CommonError("aborter should be an AbortController",this.name,m.ErrorCode.InvalidArgument);Object.setPrototypeOf(s,new Es(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(ws)){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=Qe({onStart:t=>{(0,vs.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(ws)){const t=e?.taskId;if(null==t)throw new m.CommonError("Missing data.taskId",this.name+".abort",m.ErrorCode.InvalidArgument);n=n[t],this.cleanMultiTaskAborter(t,r)}else this.__task_aborter=void 0;n&&!n.signal.aborted&&n.abort(t,e)}}};xs.prototype.generateAsyncTaskId=function(t,e){return this._generateAsyncTaskId(t,e)},xs.prototype.cleanMultiTaskAborter=function(t,e){return this._cleanMultiTaskAborter(t,e)};var ks=(0,ls.createAbilityInjector)(xs,"abort",{afterInjection:function(t,e){let n=t.prototype._asyncFeatures||0;n|=ys.Cancelable,e&&(e.asyncFeatures&&(n|=e.asyncFeatures),e.maxTaskConcurrency>0&&(t.prototype._maxTaskConcurrency=e.maxTaskConcurrency)),t.prototype._asyncFeatures=n}});function Ss(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 $s=c(require("memoizee")),Ts=require("json-canonicalize");function As(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,$s.default)(t,{...e,normalizer:t=>{if(r){const e=r(t);if("string"===e)return e;e&&(t=e)}return gn((0,Ts.canonicalize)(t))}})}var Cs=c(require("net"));async function Os(t,e=10){return new Promise(((n,r)=>{void 0===t?t=0:("string"==typeof t&&(t=parseInt(t)),t>=0||(t=0));const s=Cs.default.createServer();s.on("error",(n=>{"EADDRINUSE"===n.code&&(t++,--e>0)?s.listen(t):r(n)})),s.on("listening",(async()=>{const t=s.address().port;s.close(),n(t)})),s.listen(t)}))}var js=c(require("path")),Is=require("pkg-dir");function Ms(t){const e=(0,Is.packageDirectorySync)({cwd:t});if(e)return e;const n=t.split(js.default.sep);let r=n.lastIndexOf("dist");if(r>0)return n.slice(0,r).join(js.default.sep);if(r=n.lastIndexOf("src"),r>0)return n.slice(0,r).join(js.default.sep);throw new Error("can not find package directory")}var Ns=c(require("path"));function Fs(t,e){try{const n=Ns.default.relative(Ns.default.resolve(t),Ns.default.resolve(e));return!n.startsWith("..")&&!Ns.default.isAbsolute(n)}catch{return!1}}function Rs(t,e){return e?.some((e=>Fs(e,t)))}var Ls=require("util-ex");function Ps(t){return(0,Ls.isRegExpStr)(t)||(0,Ls.isRegExp)(t)}function qs(t){return t.replace(/\x1B[[(?);]{0,2}(;?\d)*./g,"")}var Bs=c(require("path")),_s=require("url"),zs=require("@xenova/transformers"),Vs=(0,_s.fileURLToPath)(l),Us=Bs.default.dirname(Vs),Xs=Bs.default.join(Ms(Us),".cache"),Ds=new Map,Js={"deepseek-ai/DeepSeek-V2-Lite-Chat":"deepseek2","Qwen/Qwen2.5-0.5B":"Qwen2.5","Xenova/gpt-4":"gpt-4 / gpt-3.5-turbo / text-embedding-ada-002","Xenova/text-davinci-003":"text-davinci-003 / text-davinci-002","Xenova/gpt-3":"gpt-3","Xenova/grok-1-tokenizer":"Grok-1","Xenova/claude-tokenizer":"Claude","Xenova/mistral-tokenizer-v3":"Mistral v3","Xenova/mistral-tokenizer-v1":"Mistral v1","Xenova/gemma-tokenizer":"Gemma","Xenova/gemma2-tokenizer":"Gemma2","Xenova/llama3-tokenizer-new":"Llama 3","unsloth/Llama-3.2-1B-Instruct":"Llama 3.2","Xenova/llama-tokenizer":"LLaMA / Llama 2","Xenova/c4ai-command-r-v01-tokenizer":"Cohere Command-R","Xenova/t5-small":"T5","Xenova/bert-base-cased":"bert-base-cased"},Ws={deepseek2:"deepseek-ai/DeepSeek-V2-Lite-Chat","qwen2.5":"Qwen/Qwen2.5-0.5B","gpt-4":"Xenova/gpt-4","gpt-3.5-turbo":"Xenova/gpt-4","text-embedding-ada-002":"Xenova/gpt-4","text-davinci-003":"Xenova/text-davinci-003","text-davinci-002":"Xenova/text-davinci-003","gpt-3":"Xenova/gpt-3","grok-1":"Xenova/grok-1-tokenizer",claude:"Xenova/claude-tokenizer",mistral:"Xenova/mistral-tokenizer-v3",mistral3:"Xenova/mistral-tokenizer-v3",mistral1:"Xenova/mistral-tokenizer-v1",gemma:"Xenova/gemma-tokenizer",gemma2:"Xenova/gemma2-tokenizer",llama3:"Xenova/llama3-tokenizer-new",llama2:"Xenova/llama-tokenizer",llama:"Xenova/llama-tokenizer","llama3.2":"unsloth/Llama-3.2-1B-Instruct","cohere-command-r":"Xenova/c4ai-command-r-v01-tokenizer",t5:"Xenova/t5-small","bert-cased":"Xenova/bert-base-cased"};async function Ks(t){let e=Ds.get(t);return e||(e=zs.AutoTokenizer.from_pretrained(t,{cache_dir:Xs}),Ds.set(t,e)),e}async function Gs(t,e="qwen2.5"){Ws[e]&&(e=Ws[e]);return(await Ks(e)).encode(t)}async function Hs(t,e="qwen2.5"){return(await Gs(t,e)).length}function Zs(t,e){const n=e?.capitalize??!0;let r=e?.delimiter??/[_-]/g;r instanceof RegExp&&(r.flags.includes("g")||(r=new RegExp(r.source,r.flags+"g")));let s=(t=t.replace(r," ")).split(" ").map((t=>t.trim())).filter(Boolean);return n&&(s=s.map((t=>t.charAt(0).toUpperCase()+t.slice(1)))),t=s.join(" ")}async function Qs(t,e){let n,r=1984,s=!0,i=!1,o=!0,a=Hs,c=!0;if(e&&(n=e.modelId,e.size>=0&&(r=e.size),void 0!==e.corrected&&(s=e.corrected),void 0!==e.completeSentence&&(i=e.completeSentence),void 0!==e.truncLastSection&&(o=e.truncLastSection),"function"==typeof e.countLLMTokens&&(a=e.countLLMTokens),void 0!==e.bySentence&&(c=e.bySentence)),!c)throw new m.NotImplementationError("truncateToTokenLimit only implemented by sentence","truncateToTokenLimit");if(r>0){let c=await a(t,n);const u=e?.sentences??me(t,e);if(c>r)for(c=await a(u.join("\n"),n);c>r&&u.length;){const e=u.pop();if(e){if(c-=await a(e+"\n",n),i||s)t=u.join("\n");else{const n=t.lastIndexOf(e);if(-1===n)throw new m.CommonError(`Can not find sentence: ${e}`,"truncateContentToTokenLimit");t=t.slice(0,n)}if(c<=1)throw new m.CommonError(`Can not truncate content to fit within the token limit: ${r}`,"truncateContentToTokenLimit");if(c<=r&&o){const e=u[u.length-1];if(e&&ve(e)){if(c-await a(e,n)>9){const n=t.lastIndexOf(e);if(-1===n)throw new m.CommonError(`Can not find sentence: ${e}`,"truncateContentToTokenLimit");t=t.slice(0,n).trimEnd()}}}}else c--}else t=u.join("\n")}if(!t)throw new m.CommonError(`Can not truncate content to fit within the token limit: ${r}`,"truncateContentToTokenLimit");return t}async function Ys(t,e){let n,r=1984,s=!0,i=Hs,o=!0;if(e&&(n=e.modelId,e.size>=0&&(r=e.size),void 0!==e.truncLastSection&&(s=e.truncLastSection),"function"==typeof e.countLLMTokens&&(i=e.countLLMTokens),void 0!==e.bySentence&&(o=e.bySentence)),!o)throw new m.NotImplementationError("truncateToTokenLimit only implemented by sentence","truncateToTokenLimit");if(r>0){const e=(t=t.slice()).join("\n");let o=await i(e,n);if(o>r)for(;o>r&&t.length;){const e=t.pop();if(e){if(o-=await i(e,n),o<=1)throw new m.CommonError(`Can not truncate content to fit within the token limit: ${r}`,"truncateContentToTokenLimit");if(o<=r&&s){const e=t[t.length-1];if(e&&ve(e)){o-await i(e,n)>9&&t.pop()}}}}}if(!t.length)throw new m.CommonError(`Empty. Can not truncate content to fit within the token limit: ${r}`,"truncateContentToTokenLimit");return t}async function ti(t,e){let n,r=1984,s=Hs;if(e&&(n=e.modelId,"function"==typeof e.countLLMTokens&&(e.size>=0&&(r=e.size),s=e.countLLMTokens)),r>0){await s(t,n)}}var ei=c(require("fs"));async function*ni(t,e){const n=(e={...e,completeSentence:!1,corrected:!1}).size??1984,r=e.modelId,s=e.metaInfo?.size??(await ei.default.promises.stat(t)).size;let i=Math.trunc(s/2);if(i<=n){let s=Sr(await ei.default.promises.readFile(t));if(i=await Hs(s,r),i<=n)yield s;else do{const t=await Qs(s,{...e,modelId:r,size:n});yield t,s=s.slice(t.length)}while(s)}else{const s=ReadableStream.from(ei.default.createReadStream(t)).getReader();let i="";for(;;){const{done:t,value:o}=await s.read();if(t)break;i+=Sr(o);const a=me(i,e);let c=a.pop();if(c){const t=i.lastIndexOf(c);c=i.slice(t),i=i.slice(0,t)}if(i.length>=n){const t=await Qs(i,{...e,modelId:r,size:n,sentences:a});i=i.slice(t.length),yield t}for(;i.length>n;){const t=me(i,e),s=await Qs(i,{...e,modelId:r,size:n,sentences:t});i=i.slice(s.length),yield s}void 0!==c&&(i+=c)}for(;i;){const t=me(i,e),s=await Qs(i,{...e,modelId:r,size:n,sentences:t});i=i.slice(s.length),yield s}}}async function*ri(t,e){const n=e?.size??1984,r=e?.modelId,s=e?.metaInfo?.size??(await ei.default.promises.stat(t)).size;let i=Math.trunc(s/2);if(i<=n){let s=Sr(await ei.default.promises.readFile(t));if(i=await Hs(s,r),i<=n)yield me(s,e);else{let t=me(s,e);do{const s=await Ys(t,{...e,modelId:r,size:n});yield s,t=t.slice(s.length)}while(t.length)}}else{const s=ReadableStream.from(ei.default.createReadStream(t)).getReader();let i="";const o=e?.completeSentence,a=e?.corrected,c=!o&&!a;let u;for(;;){const{done:t,value:o}=await s.read();if(t)break;i+=Sr(o),u=me(i,e);let a=u.pop();if(i.length>=n){const t=await Ys(u,{...e,modelId:r,size:n});i=c?i.slice(t.length):u.join("\n"),u=u.slice(t.length),i=u.join("\n"),yield t}for(;i.length>n;){const t=await Ys(u,{...e,modelId:r,size:n});u=u.slice(t.length),i=u.join("\n"),yield t}a&&u.push(a)}if(u)for(;u.length;){const t=await Ys(u,{...e,modelId:r,size:n});u=u.slice(t.length),yield t}}}async function si(t,e){const n=e?.size??1984,r=e?.modelId;let s=me(t,e);const i=[];if(await Hs(t,r)<=n)i.push(s);else do{const t=await Ys(s,{...e,modelId:r,size:n});i.push(t),s=s.slice(t.length)}while(s.length);return i}var ii=require("yaml"),oi=class{constructor(t){t&&Object.assign(this,t)}};function ai(t,e){class n extends ii.YAMLMap{constructor(){super(...arguments),this.tag=t}toJSON(t,n){n={...n,mapAsMap:!1};const r=super.toJSON(t,n);return new e(r)}}return{tag:t,collection:"map",nodeClass:n,identify:t=>t instanceof e}}var ci=class t extends gs{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(0,m.throwError)("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):(0,m.throwError)(`${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(0,m.createError)(r,s,n)}async func(t){const e=await this.fetch(t);if(t?.stream)return e;return await e.json()}},ui={...d};ci.defineProperties(ci,ui);var li=class t extends gs{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({}){}},fi={...d};li.defineProperties(li,fi);var hi=require("events-ex"),wi=class extends gs{constructor(){super(...arguments),this._emitter=new hi.EventEmitter,this.description="Return event bus",this.result="event"}get emitter(){return this._emitter}func(){return this.emitter}},pi=new wi(Le),di=require("secondary-cache");function mi({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 yi(t,e){let n=gs.get(t);return n||(n=new gs(t,{func:mi,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 di.Cache(e)),n}var gi=yi("lrucache"),bi=class extends ci{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))}}},vi={methods:{type:"array",assign(t,e,n,r,s){s?.isExported||e.assignMethods(t)}}};bi.defineProperties(bi,vi);var Ei=class extends bi{async fetch(t,e){if(t||(t={}),e&&"res"===this.action){if("get"===e||"delete"===e){let n=t.id;return n||(0,m.throwError)("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)}},xi=class extends Ei{constructor(){super(...arguments),this._sseEvents={},this._forwardEvents=new Set,this.name=Re,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)}},ki=new xi(Re),Si=require("util-ex"),$i=class extends li{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,Si.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 m.NotFoundError(e,this.name)}};$i.defineProperties($i,{methods:{type:"array"}});var Ti=class extends $i{constructor(t,e={}){super(t,e),this.action="res",this.params={id:{type:"string"},val:{type:"any"}}}static{this.SpecialRpcMethodNames=p}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}},Ai=pi.runSync(),Ci=class t extends Ti{constructor(){super(...arguments),this.name=Re,this.description="subscribe server sent event",this.result="event",this.depends={[Le]:pi}}static get sse(){return this._sse||(this._sse=new _e),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=Ai.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)||Ai.on(n,t.ebListener)}unforward(e){"string"==typeof e&&(e=[e]);for(const n of e)Ai.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};(0,m.throwError)("event is required","sub",m.ErrorCode.InvalidArgument)}$unsub({event:t}){if(t)return this.unforward(t),{event:t};(0,m.throwError)("event is required","unsub",m.ErrorCode.InvalidArgument)}$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}}(0,m.throwError)("event or data is required","pub",m.ErrorCode.InvalidArgument)}isStream(t){return"list"===this.getMethodFromParams(t)}},Oi=new Ci(Re);function ji(){pi.register(),gi.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:()=>Wn,AIChatRoles:()=>$,AIMessageTypes:()=>S,AIStream:()=>He,AITextGenerationFinishReasons:()=>k,AbortError:()=>m.AbortError,AbortErrorCode:()=>m.AbortErrorCode,ActionNames:()=>p,AlreadyExistsError:()=>m.AlreadyExistsError,AlreadyExistsErrorCode:()=>m.AlreadyExistsErrorCode,AsyncFeatureBits:()=>ms,AsyncFeatures:()=>ys,BaseError:()=>m.BaseError,CancelableAbility:()=>xs,ChoiceArgProcessor:()=>Dn,ClientToolFuncSchema:()=>ui,ClientTools:()=>ci,CommonError:()=>m.CommonError,ConfigFile:()=>Nr.Config,DefaultAsyncSemaphoreCapacity:()=>es,ErrorCode:()=>m.ErrorCode,EventBusName:()=>Le,EventClient:()=>xi,EventName:()=>Re,EventServer:()=>Ci,EventToolFunc:()=>wi,FStringPromptTemplate:()=>Dt,FewShotPromptTemplate:()=>Ht,FilenameReservedRegex:()=>En,GolangPromptTemplate:()=>Kt,HFBuiltins:()=>Nt,HFEnvironment:()=>Rt,HFInterpreter:()=>Ot,HFTemplate:()=>Lt,HashAlgorithm:()=>dn,HfPromptTemplate:()=>_t,IntSet:()=>Yr,InternalErrorCode:()=>m.InternalErrorCode,LLM_TOKENIZER_NAMES:()=>Js,LLM_TOKENIZER_NAMES_MAP:()=>Ws,NotFoundError:()=>m.NotFoundError,NotFoundErrorCode:()=>m.NotFoundErrorCode,NotImplementationError:()=>m.NotImplementationError,NotImplementedErrorCode:()=>m.NotImplementedErrorCode,PASSING_SCORE:()=>w,PromptExampleSelector:()=>F,PromptTemplate:()=>I,PromptTemplateTypes:()=>C,PromptTypes:()=>A,RStreamErrCode:()=>Ve,RateLimit:()=>cs,ReadableStreamError:()=>Xe,RemoteToolFuncSchema:()=>d,ResClientTools:()=>Ei,ResServerTools:()=>Ti,ResponseRStreamErrCode:()=>Ue,SSEChannel:()=>_e,SSEChannelAlreadyClosedErrCode:()=>Be,Semaphore:()=>as,ServerToolFuncSchema:()=>fi,ServerTools:()=>li,TaskAbortController:()=>Es,TemplateArgProcessor:()=>Jn,ToolAsyncCancelableBit:()=>ps,ToolAsyncMultiTaskBit:()=>ws,ToolAsyncPriorityBit:()=>ds,ToolFunc:()=>gs,ToolFuncSchema:()=>bs,WindowsReservedNameRegex:()=>xn,YamlTypeBaseObject:()=>oi,_lrucache:()=>mi,backendEventable:()=>Pe,base32768:()=>un,canonicalize:()=>cn.canonicalize,completeSentences:()=>ye,concatText:()=>ge,countLLMTokens:()=>Hs,countRegexMatches:()=>Ss,createAbilityInjector:()=>f.createAbilityInjector,createCallbacksTransformer:()=>Qe,createEmptyReadableStream:()=>Je,createEndWithRepetitionDetector:()=>dr,createError:()=>m.createError,createEventStreamTransformer:()=>Ke,createHfValueFunc:()=>zt,createLRUCache:()=>yi,createYamlObjectTag:()=>ai,dateToText:()=>x,decodeCharset:()=>Sr,defaultTemplateFormat:()=>j,detectCharset:()=>jr,encodeLLMTokens:()=>Gs,event:()=>pi,eventClient:()=>ki,eventServer:()=>Oi,expandEnv:()=>te,expandObjEnv:()=>ee,extNameLevel:()=>Fn,fileIsExists:()=>vr,filenameReservedRegex:()=>An,filterValidFnScope:()=>hr,findIndexNonEmptyFrom:()=>Ae,findPort:()=>Os,formatISO:()=>g.formatISO,formatTextWithSpace:()=>Zs,getAllEnumKeys:()=>Pn,getConfigFileNames:()=>zr,getConfigs:()=>Vr,getFileMetaInfo:()=>Cr,getHashAlgoBySize:()=>Or,getKeysPath:()=>wr,getLLMTokenizer:()=>Ks,getMultiLevelExtname:()=>Nn,getPackageDir:()=>Ms,getRealFilepath:()=>Tr,getResponseErrorReadableStream:()=>De,hasDirectoryIn:()=>Rs,hashFile:()=>Ar,hashStream:()=>bn,hfParse:()=>wt,hfTokenize:()=>V,interpolateEnv:()=>Yt,interpolateFString:()=>Ut,interpolateGolangTemplate:()=>Wt,isLangUsingSpaces:()=>Te,isListItemString:()=>xe,isModelNameMatched:()=>Ln,isPunctuationChar:()=>Se,isRegExp:()=>Ps,isSectionString:()=>ve,isSentenceEnding:()=>be,isSepLineString:()=>ke,isSubdirectory:()=>Fs,isTitleString:()=>Ee,isValidFilename:()=>On,isValidFilepath:()=>jn,isWebStream:()=>ze,jsonFilterToWhere:()=>Kr,jsonToMarkdownStr:()=>Qr,loadFileFromPaths:()=>Er,loadTextFromPaths:()=>kr,lrucache:()=>gi,makeToolFuncCancelable:()=>ks,matchUrlProtocol:()=>Gr,memoize:()=>As,messagesToText:()=>T,mimeType:()=>Lr.mimeType,paramsSizeToScaleStr:()=>Hr,parseCommand:()=>er,parseDateFormat:()=>y.parse,parseFString:()=>Vt,parseISO:()=>g.parseISO,parseJsJson:()=>cr,parseJsJsonSimpleSync:()=>ur,parseObjectArgInfo:()=>Yn,parseObjectArgumentInfos:()=>Xn,parseObjectArguments:()=>Vn,parseObjectArgumentsAsArgInfos:()=>tr,parseYaml:()=>Br,quoteStr:()=>Gn,reControlCharsRegex:()=>Cn,readFilenamesRecursiveSync:()=>$r,readTextFileChunks:()=>ni,readTextFileChunksEx:()=>ri,readableFromAsyncIterable:()=>Ze,registerCoreTools:()=>ji,registerYamlTag:()=>qr,removeMarkdownBold:()=>Ce,removeMarkdownBoldAndItalic:()=>je,removeMarkdownItalic:()=>Oe,replaceWithPlaceholder:()=>rr,restoreFromPlacehoders:()=>sr,sanitizeFilename:()=>In,sanitizeFilepath:()=>Mn,saveConfigFile:()=>Ur,scaleStrToParamsSize:()=>Zr,simplifyObjectArguments:()=>Un,sortedValues:()=>Gt,splitChunks:()=>si,splitParagraph:()=>Ie,splitSentence:()=>me,stringifyYaml:()=>_r,stripConsoleColor:()=>qs,textToDate:()=>E,throwError:()=>m.throwError,toDate:()=>g.toDate,toDateTime:()=>v,toRegExp:()=>h.toRegExp,trimStartOfStreamHelper:()=>Ge,truncTo:()=>Me,truncateByToken:()=>ti,truncateToTokenLimit:()=>Qs,truncateToTokenLimitEx:()=>Ys,uuid:()=>rn,uuidNIL:()=>en.NIL,uuidParse:()=>en.parse,uuidStringify:()=>en.stringify,uuidValidate:()=>en.validate,uuidVersion:()=>en.version,uuidv1:()=>en.v1,uuidv4:()=>en.v4,uuidv5:()=>en.v5,wait:()=>Ne,xxhash:()=>yn,xxhash32:()=>wn,xxhash64:()=>pn,xxhashAsStr:()=>gn}),module.exports=(t=u,a(n({},"__esModule",{value:!0}),t));var l=(()=>"undefined"==typeof document?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href)(),f=require("custom-ability"),h=require("util-ex"),w=.618,p=["get","post","put","delete","patch","list","res"],d={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"}},m=require("@isdk/common-error"),y=require("date-fns"),g=require("date-fns"),b="MMMM d, y 'at' h:m:s b 'GMT'x";function v(t){let e;try{"string"==typeof t?e=(0,y.parseISO)(t):"number"==typeof t?e=new Date(t):t instanceof Date&&(e=t)}catch(t){console.error(t)}return e}function E(t,e=b){return(0,y.parse)(t,e,new Date)}function x(t,e=b){return(0,y.format)(t,e)}var k=["stop","length","content_filter","tool_calls","function_call","abort","error","other",null],S=["human","ai","generic","system","tool"],$=["user","assistant","system","tool","tool_calls"];function T(t){let e="";for(const n of t)if(n.content){e+=n.role.toLowerCase()+":";let t=n.createdAt;if(t){const n=v(t);n&&(e+=" ["+x(n)+"]")}e+=" "+n.content+"\n"}return e}var A=["chat","char","plan"],C=["internal","hf","fill"],O=require("custom-factory");var j="default",I=class t extends O.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||j,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||j);if(e)return Reflect.construct(e,arguments);throw new m.CommonError(`Prompt template type ${r} not found`,"PromptTemplate",m.ErrorCode.InvalidArgument)}}_initialize(t){throw new m.NotImplementationError("Not implemented","PromptTemplate")}initialize(e){this.constructor!==t&&(Object.assign(this,this.toJSON(e)),e?.ignoreInitialize||this._initialize(e))}_format(t){throw new m.NotImplementationError("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 M(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 N=!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=>{N=t}));var F=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,N?r:M(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()}},R=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"}),L=Object.freeze({set:R.Set,for:R.For,in:R.In,is:R.Is,if:R.If,else:R.Else,endif:R.EndIf,elif:R.ElseIf,endfor:R.EndFor,and:R.And,or:R.Or,not:R.Not,"not in":R.NotIn,macro:R.Macro,endmacro:R.EndMacro,true:R.BooleanLiteral,false:R.BooleanLiteral,True:R.BooleanLiteral,False:R.BooleanLiteral}),P=class{constructor(t,e){this.value=t,this.type=e}};function q(t){return/\w/.test(t)}function B(t){return/[0-9]/.test(t)}var _=[["{%",R.OpenStatement],["%}",R.CloseStatement],["{{",R.OpenExpression],["}}",R.CloseExpression],["(",R.OpenParen],[")",R.CloseParen],["{",R.OpenCurlyBracket],["}",R.CloseCurlyBracket],["[",R.OpenSquareBracket],["]",R.CloseSquareBracket],[",",R.Comma],[".",R.Dot],[":",R.Colon],["|",R.Pipe],["<=",R.ComparisonBinaryOperator],[">=",R.ComparisonBinaryOperator],["==",R.ComparisonBinaryOperator],["!=",R.ComparisonBinaryOperator],["<",R.ComparisonBinaryOperator],[">",R.ComparisonBinaryOperator],["+",R.AdditiveBinaryOperator],["-",R.AdditiveBinaryOperator],["*",R.MultiplicativeBinaryOperator],["/",R.MultiplicativeBinaryOperator],["%",R.MultiplicativeBinaryOperator],["=",R.Equals]],z=new Map([["n","\n"],["t","\t"],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function V(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=z.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===R.CloseStatement||t===R.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 P(t,R.Text));continue}}i((t=>/\s/.test(t)));const e=r[s];if("-"===e||"+"===e){const t=n.at(-1)?.type;if(t===R.Text||void 0===t)throw new SyntaxError(`Unexpected character: ${e}`);switch(t){case R.Identifier:case R.NumericLiteral:case R.BooleanLiteral:case R.StringLiteral:case R.CloseParen:case R.CloseSquareBracket:break;default:{++s;const t=i(B);n.push(new P(`${e}${t}`,t.length>0?R.NumericLiteral:R.UnaryOperator));continue}}}for(const[t,e]of _){if(r.slice(s,s+t.length)===t){n.push(new P(t,e)),s+=t.length;continue t}}if("'"!==e&&'"'!==e)if(B(e)){const t=i(B);n.push(new P(t,R.NumericLiteral))}else{if(!q(e))throw new SyntaxError(`Unexpected character: ${e}`);{const t=i(q),e=Object.hasOwn(L,t)?L[t]:R.Identifier;e===R.In&&n.at(-1)?.type===R.Not?(n.pop(),n.push(new P("not in",R.NotIn))):n.push(new P(t,e))}}else{++s;const t=i((t=>t!==e));n.push(new P(t,R.StringLiteral)),++s}}return n}var U=class{constructor(){this.type="Statement"}},X=class extends U{constructor(t){super(),this.body=t,this.type="Program"}},D=class extends U{constructor(t,e,n){super(),this.test=t,this.body=e,this.alternate=n,this.type="If"}},J=class extends U{constructor(t,e,n,r){super(),this.loopvar=t,this.iterable=e,this.body=n,this.defaultBlock=r,this.type="For"}},W=class extends U{constructor(t,e){super(),this.assignee=t,this.value=e,this.type="Set"}},K=class extends U{constructor(t,e,n){super(),this.name=t,this.args=e,this.body=n,this.type="Macro"}},G=class extends U{constructor(){super(...arguments),this.type="Expression"}},H=class extends G{constructor(t,e,n){super(),this.object=t,this.property=e,this.computed=n,this.type="MemberExpression"}},Z=class extends G{constructor(t,e){super(),this.callee=t,this.args=e,this.type="CallExpression"}},Q=class extends G{constructor(t){super(),this.value=t,this.type="Identifier"}},Y=class extends G{constructor(t){super(),this.value=t,this.type="Literal"}},tt=class extends Y{constructor(){super(...arguments),this.type="NumericLiteral"}},et=class extends Y{constructor(){super(...arguments),this.type="StringLiteral"}},nt=class extends Y{constructor(){super(...arguments),this.type="BooleanLiteral"}},rt=class extends Y{constructor(){super(...arguments),this.type="ArrayLiteral"}},st=class extends Y{constructor(){super(...arguments),this.type="TupleLiteral"}},it=class extends Y{constructor(){super(...arguments),this.type="ObjectLiteral"}},ot=class extends G{constructor(t,e,n){super(),this.operator=t,this.left=e,this.right=n,this.type="BinaryExpression"}},at=class extends G{constructor(t,e){super(),this.operand=t,this.filter=e,this.type="FilterExpression"}},ct=class extends G{constructor(t,e){super(),this.iterable=t,this.test=e,this.type="SelectExpression"}},ut=class extends G{constructor(t,e,n){super(),this.operand=t,this.negate=e,this.test=n,this.type="TestExpression"}},lt=class extends G{constructor(t,e){super(),this.operator=t,this.argument=e,this.type="UnaryExpression"}},ft=class extends G{constructor(t=void 0,e=void 0,n=void 0){super(),this.start=t,this.stop=e,this.step=n,this.type="SliceExpression"}},ht=class extends G{constructor(t,e){super(),this.key=t,this.value=e,this.type="KeywordArgumentExpression"}};function wt(t){const e=new X([]);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 R.Text:e=new et(r(R.Text,"Expected text token").value);break;case R.OpenStatement:e=function(){let e;switch(r(R.OpenStatement,"Expected opening statement token"),t[n].type){case R.Set:++n,e=a(),r(R.CloseStatement,"Expected closing statement token");break;case R.If:++n,e=c(),r(R.OpenStatement,"Expected {% token"),r(R.EndIf,"Expected endif token"),r(R.CloseStatement,"Expected %} token");break;case R.Macro:++n,e=function(){const t=E();if("Identifier"!==t.type)throw new SyntaxError("Expected identifier following macro statement");const e=y();r(R.CloseStatement,"Expected closing statement token");const n=[];for(;i(R.OpenStatement,R.EndMacro);)n.push(s());return new K(t,e,n)}(),r(R.OpenStatement,"Expected {% token"),r(R.EndMacro,"Expected endmacro token"),r(R.CloseStatement,"Expected %} token");break;case R.For:++n,e=function(){const t=u(!0);if(!(t instanceof Q||t instanceof st))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${t.type} instead`);r(R.In,"Expected `in` keyword following loop variable");const e=l();r(R.CloseStatement,"Expected closing statement token");const a=[];for(;i(R.OpenStatement,R.EndFor)&&i(R.OpenStatement,R.Else);)a.push(s());const c=[];if(o(R.OpenStatement,R.Else))for(++n,++n,r(R.CloseStatement,"Expected closing statement token");i(R.OpenStatement,R.EndFor);)c.push(s());return new J(t,e,a,c)}(),r(R.OpenStatement,"Expected {% token"),r(R.EndFor,"Expected endfor token"),r(R.CloseStatement,"Expected %} token");break;default:throw new SyntaxError(`Unknown statement type: ${t[n].type} ${t[n].value}`)}return e}(),e.isStatement=!0;break;case R.OpenExpression:e=function(){r(R.OpenExpression,"Expected opening expression token");const t=l();return r(R.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(R.Equals)){++n;const e=a();return new W(t,e)}return t}function c(){const e=l();r(R.CloseStatement,"Expected closing statement token");const i=[],a=[];for(;t[n]?.type!==R.OpenStatement||t[n+1]?.type!==R.ElseIf&&t[n+1]?.type!==R.Else&&t[n+1]?.type!==R.EndIf;)i.push(s());if(t[n]?.type===R.OpenStatement&&t[n+1]?.type!==R.EndIf)if(++n,o(R.ElseIf))r(R.ElseIf,"Expected elseif token"),a.push(c());else for(r(R.Else,"Expected else token"),r(R.CloseStatement,"Expected closing statement token");t[n]?.type!==R.OpenStatement||t[n+1]?.type!==R.EndIf;)a.push(s());return new D(e,i,a)}function u(t=!1){const e=t?E:l,r=[e()],s=o(R.Comma);for(;s&&(++n,r.push(e()),o(R.Comma)););return s?new st(r):r[0]}function l(){return function(){const t=f();if(o(R.If)){++n;const e=f();if(o(R.Else)){++n;const r=f();return new D(e,[t],[r])}return new ct(t,e)}return t}()}function f(){let e=h();for(;o(R.Or);){const r=t[n];++n;const s=h();e=new ot(r,e,s)}return e}function h(){let e=w();for(;o(R.And);){const r=t[n];++n;const s=w();e=new ot(r,e,s)}return e}function w(){let e;for(;o(R.Not);){const r=t[n];++n;const s=w();e=new lt(r,s)}return e??function(){let e=p();for(;o(R.ComparisonBinaryOperator)||o(R.In)||o(R.NotIn);){const r=t[n];++n;const s=p();e=new ot(r,e,s)}return e}()}function p(){let e=b();for(;o(R.AdditiveBinaryOperator);){const r=t[n];++n;const s=b();e=new ot(r,e,s)}return e}function d(){const e=function(){let e=E();for(;o(R.Dot)||o(R.OpenSquareBracket);){const s=t[n];let i;++n;const o=s.type!==R.Dot;if(o)i=g(),r(R.CloseSquareBracket,"Expected closing square bracket");else if(i=E(),"Identifier"!==i.type)throw new SyntaxError("Expected identifier following dot operator");e=new H(e,i,o)}return e}();return o(R.OpenParen)?m(e):e}function m(t){let e=new Z(t,y());return o(R.OpenParen)&&(e=m(e)),e}function y(){r(R.OpenParen,"Expected opening parenthesis for arguments list");const t=function(){const t=[];for(;!o(R.CloseParen);){let e=l();if(o(R.Equals)){if(++n,!(e instanceof Q))throw new SyntaxError("Expected identifier for keyword argument");const t=l();e=new ht(e,t)}t.push(e),o(R.Comma)&&++n}return t}();return r(R.CloseParen,"Expected closing parenthesis for arguments list"),t}function g(){const t=[];let e=!1;for(;!o(R.CloseSquareBracket);)o(R.Colon)?(t.push(void 0),++n,e=!0):(t.push(l()),o(R.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 ft(...t)}return t[0]}function b(){let e=v();for(;o(R.MultiplicativeBinaryOperator);){const r=t[n];++n;const s=v();e=new ot(r,e,s)}return e}function v(){let t=function(){let t=d();for(;o(R.Pipe);){++n;let e=E();if(!(e instanceof Q))throw new SyntaxError("Expected identifier for the filter");o(R.OpenParen)&&(e=m(e)),t=new at(t,e)}return t}();for(;o(R.Is);){++n;const e=o(R.Not);e&&++n;let r=E();if(r instanceof nt&&(r=new Q(r.value.toString())),!(r instanceof Q))throw new SyntaxError("Expected identifier for the test");t=new ut(t,e,r)}return t}function E(){const e=t[n];switch(e.type){case R.NumericLiteral:return++n,new tt(Number(e.value));case R.StringLiteral:return++n,new et(e.value);case R.BooleanLiteral:return++n,new nt("true"===e.value.toLowerCase());case R.Identifier:return++n,new Q(e.value);case R.OpenParen:{++n;const e=u();if(t[n].type!==R.CloseParen)throw new SyntaxError(`Expected closing parenthesis, got ${t[n].type} instead`);return++n,e}case R.OpenSquareBracket:{++n;const t=[];for(;!o(R.CloseSquareBracket);)t.push(l()),o(R.Comma)&&++n;return++n,new rt(t)}case R.OpenCurlyBracket:{++n;const t=new Map;for(;!o(R.CloseCurlyBracket);){const e=l();r(R.Colon,"Expected colon between key and value in object literal");const s=l();t.set(e,s),o(R.Comma)&&++n}return++n,new it(t)}default:throw new SyntaxError(`Unexpected token: ${e.type}`)}}for(;n<t.length;)e.body.push(s());return e}function pt(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 dt(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 mt(t){return t.replace(/\b\w/g,(t=>t.toUpperCase()))}var yt=class{constructor(t=void 0){this.type="RuntimeValue",this.builtins=new Map,this.value=t}__bool__(){return new vt(!!this.value)}toString(){return""+this.value}toJSON(){return this.value}},gt=class extends yt{constructor(){super(...arguments),this.type="NumericValue"}},bt=class t extends yt{constructor(){super(...arguments),this.type="StringValue",this.builtins=new Map([["upper",new $t((()=>new t(this.value.toUpperCase())))],["lower",new $t((()=>new t(this.value.toLowerCase())))],["strip",new $t((()=>new t(this.value.trim())))],["title",new $t((()=>new t(mt(this.value))))],["length",new gt(this.value.length)],["rstrip",new $t((()=>new t(this.value.trimEnd())))],["lstrip",new $t((()=>new t(this.value.trimStart())))]])}},vt=class extends yt{constructor(){super(...arguments),this.type="BooleanValue"}},Et=class extends yt{constructor(t,e){super(t),this.orgValue=e,this.type="ObjectValue",this.builtins=new Map([["get",new $t((([t,e])=>{if(!(t instanceof bt))throw new Error(`Object key must be a string: got ${t.type}`);return this.value.get(t.value)??e??new Tt}))],["items",new $t((()=>new kt(Array.from(this.value.entries()).map((([t,e])=>new kt([new bt(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 vt(this.value.size>0)}},xt=class extends Et{constructor(){super(...arguments),this.type="KeywordArgumentsValue"}},kt=class extends yt{constructor(){super(...arguments),this.type="ArrayValue",this.builtins=new Map([["length",new gt(this.value.length)]])}__bool__(){return new vt(this.value.length>0)}},St=class extends kt{constructor(){super(...arguments),this.type="TupleValue"}},$t=class extends yt{constructor(){super(...arguments),this.type="FunctionValue"}},Tt=class extends yt{constructor(){super(...arguments),this.type="NullValue"}},At=class extends yt{constructor(){super(...arguments),this.type="UndefinedValue"}},Ct=class{constructor(t){this.parent=t,this.variables=new Map([["namespace",new $t((t=>{if(0===t.length)return new Et(new Map);if(1!==t.length||!(t[0]instanceof Et))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 $t],["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 kt||t instanceof bt],["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,jt(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 At}catch{return new At}}},Ot=class{constructor(t){this.global=t??new Ct}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 vt(n.value==r.value);case"!=":return new vt(n.value!=r.value)}if(n instanceof At||r instanceof At)throw new Error("Cannot perform operation on undefined values");if(n instanceof Tt||r instanceof Tt)throw new Error("Cannot perform operation on null values");if(n instanceof gt&&r instanceof gt)switch(t.operator.value){case"+":return new gt(n.value+r.value);case"-":return new gt(n.value-r.value);case"*":return new gt(n.value*r.value);case"/":return new gt(n.value/r.value);case"%":return new gt(n.value%r.value);case"<":return new vt(n.value<r.value);case">":return new vt(n.value>r.value);case">=":return new vt(n.value>=r.value);case"<=":return new vt(n.value<=r.value)}else if(n instanceof kt&&r instanceof kt){if("+"===t.operator.value)return new kt(n.value.concat(r.value))}else if(r instanceof kt){const e=void 0!==r.value.find((t=>t.value===n.value));switch(t.operator.value){case"in":return new vt(e);case"not in":return new vt(!e)}}if((n instanceof bt||r instanceof bt)&&"+"===t.operator.value)return new bt(n.toString()+r.toString());if(n instanceof bt&&r instanceof bt)switch(t.operator.value){case"in":return new vt(r.value.includes(n.value));case"not in":return new vt(!r.value.includes(n.value))}if(n instanceof bt&&r instanceof Et)switch(t.operator.value){case"in":return new vt(r.value.has(n.value));case"not in":return new vt(!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 $t)return s.value([n],e);if(n instanceof kt)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 gt(n.value.length);case"reverse":return new kt(n.value.reverse());case"sort":return new kt(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 bt)switch(r.value){case"length":return new gt(n.value.length);case"upper":return new bt(n.value.toUpperCase());case"lower":return new bt(n.value.toLowerCase());case"title":return new bt(mt(n.value));case"capitalize":return new bt(n.value.charAt(0).toUpperCase()+n.value.slice(1));case"trim":return new bt(n.value.trim());case"trimStart":return new bt(n.value.trimStart());case"trimEnd":return new bt(n.value.trimEnd());case"indent":return new bt(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 gt){if("abs"===r.value)return new gt(Math.abs(n.value));throw new Error(`Unknown NumericValue filter: ${r.value}`)}if(n instanceof Et)switch(r.value){case"items":return new kt(Array.from(n.value.entries()).map((([t,e])=>new kt([new bt(t),e]))));case"length":return new gt(n.value.size);case"string":return new bt(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 $t){const[t,s]=this.evaluateArguments(r.args,e);return s.size>0&&t.push(new xt(s)),i.value([n,...t],e)}if(n instanceof kt){switch(s){case"selectattr":{if(n.value.some((t=>!(t instanceof Et))))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 kt(a)}case"map":{const[,t]=this.evaluateArguments(r.args,e);if(t.has("attribute")){const e=t.get("attribute");if(!(e instanceof bt))throw new Error("attribute must be a string");const r=t.get("default"),s=n.value.map((t=>{if(!(t instanceof Et))throw new Error("items in map must be an object");return t.value.get(e.value)??r??new At}));return new kt(s)}throw new Error("`map` expressions without `attribute` set are not currently supported.")}}throw new Error(`Unknown ArrayValue filter: ${s}`)}if(n instanceof bt){if("indent"===s){const[t,s]=this.evaluateArguments(r.args,e),i=t.at(0)??s.get("width")??new gt(4);if(!(i instanceof gt))throw new Error("width must be a number");const o=t.at(1)??s.get("first")??new vt(!1),a=t.at(2)??s.get("blank")??new vt(!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 bt(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 vt(t.negate?!s:s)}evaluateUnaryExpression(t,e){const n=this.evaluate(t.argument,e);if("not"===t.operator.value)return new vt(!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 bt(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 xt(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 kt||t instanceof bt))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 gt||r instanceof At))throw new Error("Slice start must be numeric or undefined");if(!(s instanceof gt||s instanceof At))throw new Error("Slice stop must be numeric or undefined");if(!(i instanceof gt||i instanceof At))throw new Error("Slice step must be numeric or undefined");return t instanceof kt?new kt(dt(t.value,r.value,s.value,i.value)):new bt(dt(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 bt(t.property.value);if(n instanceof Et){if(!(r instanceof bt))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 kt||n instanceof bt)if(r instanceof gt)s=n.value.at(r.value),n instanceof bt&&(s=new bt(n.value.at(r.value)));else{if(!(r instanceof bt))throw new Error(`Cannot access property with non-string/non-number: got ${r.type}`);s=n.builtins.get(r.value)}else{if(!(r instanceof bt))throw new Error(`Cannot access property with non-string: got ${r.type}`);s=n.builtins.get(r.value)}return s instanceof yt?s:new At}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 Et))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 Tt}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 Ct(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 kt))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 Ct(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 gt(e+1)],["index0",new gt(e)],["revindex",new gt(i.length-e)],["revindex0",new gt(i.length-e-1)],["first",new vt(0===e)],["last",new vt(e===i.length-1)],["length",new gt(i.length)],["previtem",e>0?i[e-1]:new At],["nextitem",e<i.length-1?i[e+1]:new At]]);n.setVariable("loop",new Et(r)),o[e](n);a+=this.evaluateBlock(t.body,n).value,c=!1}if(c){a+=this.evaluateBlock(t.defaultBlock,n).value}return new bt(a)}evaluateMacro(t,e){return e.setVariable(t.name.value,new $t(((e,n)=>{const r=new Ct(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 Tt}evaluate(t,e){if(void 0===t)return new At;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 gt(Number(t.value));case"StringLiteral":return new bt(t.value);case"BooleanLiteral":return new vt(t.value);case"ArrayLiteral":return new kt(t.value.map((t=>this.evaluate(t,e))));case"TupleLiteral":return new St(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 bt))throw new Error(`Object keys must be strings: got ${t.type}`);n.set(t.value,this.evaluate(s,e))}return new Et(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 jt(t){switch(typeof t){case"number":return new gt(t);case"string":return new bt(t);case"boolean":return new vt(t);case"undefined":return new At;case"object":return null===t?new Tt:Array.isArray(t)?new kt(t.map(jt)):new Et(new Map(Object.entries(t).map((([t,e])=>[t,jt(e)]))),t);case"function":return new $t(((e,n)=>{const r=e.map((t=>It(t)));return jt(t(...r)??null)}));default:throw new Error(`Cannot convert to runtime value: ${t}`)}}function It(t){let e=t;if(Array.isArray(t))e=t.map((t=>It(t)));else if(t instanceof Map)e={},t.forEach(((t,n)=>{e[n]=It(t)}));else switch(t.type){case"NullValue":e=null;break;case"UndefinedValue":e=void 0;break;case"ArrayValue":e=t.value.map((t=>It(t)));break;case"KeywordArgumentsValue":case"ObjectValue":e=t.orgValue?t.orgValue:It(t.value),"KeywordArgumentsValue"===t.type&&Object.setPrototypeOf(e,{jinja_kargs:!0});break;default:t.type&&(e=t.value)}return e}function Mt(t,e=0){return Math.floor(Math.random()*(t-e+1))+e}var Nt={randomInt:Mt,select:function(t,e){if(Array.isArray(t)||"string"==typeof t)return void 0===e?e=Mt(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[Mt(n.length-1)]}return t[e]}},tojson:function(t,e,n){return e&&"object"==typeof e&&(e.depth&&(n=e.depth),e=e.indent),Ft(t,e,n)}};function Ft(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=>Ft(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}": ${Ft(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 Rt=class extends Ct{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()}},Lt=class t{static{this.global=new Rt}constructor(t,e={}){const n=V(t,e={lstrip_blocks:!0,trim_blocks:!0,...e});this.parsed=wt(n)}render(e){const n=new Ct(t.global);n.set("false",!1),n.set("true",!0),n.set("raise_exception",(t=>{throw new Error(t)})),n.set("range",pt);for(const[t,r]of Object.entries(e))n.set(t,r);return new Ot(n).run(this.parsed).toString()}};function Pt(t,e){let n;switch(t.type){case"Identifier":n=t.value;break;case"MemberExpression":n=Pt(t.object,e);break;case"FilterExpression":n=Pt(t.operand,e);break;case"Set":{e||(e=[]);const r=Pt(t.assignee);r&&e.push(r),n=Pt(t.value,e);break}}return n&&e?.includes(n)&&(n=void 0),n}function qt(t){let e;if("Program"===t.type)e=t.body.some((t=>qt(t)));else e=t.isStatement;return e}function Bt(t,e){let n=[];if(Array.isArray(t))n=t.map((t=>Bt(t,e))).filter(Boolean).flat();else switch(t.type){case"Program":n=t.body.map((t=>Bt(t,e))).filter(Boolean).flat();break;case"If":n=[Pt(t.test,e),...Bt(t.body,e),...Bt(t.alternate,e)].filter(Boolean);break;case"BinaryExpression":n=[Pt(t.left,e),Pt(t.right,e)].filter(Boolean);break;case"For":{const r=Pt(t.loopvar);r&&(e||(e=[]),e.push(r)),n=[Pt(t.iterable,e),...Bt(t.body,e)].filter(Boolean);break}case"CallExpression":n=[Pt(t.callee,e),...Bt(t.args,e)].filter(Boolean);break;default:n=[Pt(t,e)].filter(Boolean)}return n}Lt.global.assign(Nt);var _t=class extends I{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 Lt(n)}catch(t){}return e&&(r=qt(e.parsed)),r}getVariables(t=this.compiledTemplate){return Bt(t.parsed,[]).filter(((t,e,n)=>n.indexOf(t)===e))}_initialize(t){const e=t?.template;if("string"!=typeof e)throw new m.CommonError("Prompt template must be a string","PromptTemplate",m.ErrorCode.InvalidArgument);this.compiledTemplate=new Lt(e),this.inputVariables=Array.isArray(t?.inputVariables)?t.inputVariables:this.getVariables()}_format(t){return this.compiledTemplate.render(t)}};function zt(t){return function(e){return t}}function Vt(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 Ut(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 Xt(t){const e=new Set;return t.forEach((t=>{"variable"===t.type&&e.add(t.name)})),[...e]}I.register(_t,{name:"hf",aliases:["huggingface","internal","default"]});var Dt=class extends I{static isTemplate(t){let e,n,r=!1;if("object"==typeof t?(n=t.template,e=t.compiledTemplate):n=t,!e&&n)try{e=Vt(n)}catch(t){}if(e){r=Xt(e).length>0}return r}getVariables(t=this.compiledTemplate){return Xt(t)}_initialize(t){const e=t?.template;if("string"!=typeof e)throw new m.CommonError("Prompt template must be a string","PromptTemplate",m.ErrorCode.InvalidArgument);this.compiledTemplate=Vt(e),this.inputVariables=Array.isArray(t?.inputVariables)?t.inputVariables:this.getVariables()}_format(t){return Ut(this.compiledTemplate,t)}};function Jt(t,e){return"string"==typeof e&&(e=e.split(".").filter((t=>t.length))),e.reduce(((t,e)=>t?.[e]),t)}function Wt(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 Jt(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):Jt(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=Jt(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=Jt(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):Jt(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=Jt(e,r);let o;return o=isNaN(s)?i[s.substring(1,s.length-1)]:i[parseInt(s,10)],o||""}))}(r,e,n),r}I.register(Dt,{name:"fstring",aliases:["python","f-string","langchain"]});var Kt=class extends I{static isTemplate(t){const e="string"==typeof t?t:t.template;return e?.includes("{{")&&e.includes("}}")}getVariables(t){const e={};return Wt(t,e,!0),[...Object.keys(e)]}_initialize(t){const e=t?.template;if("string"!=typeof e)throw new m.CommonError("Prompt template must be a string","PromptTemplate",m.ErrorCode.InvalidArgument);this.inputVariables=Array.isArray(t?.inputVariables)?t.inputVariables:this.getVariables(e)}_format(t){return Wt(this.template,t)}};function Gt(t){return Object.keys(t).sort().map((e=>t[e]))}I.register(Kt,{name:"golang",aliases:["localai","ollama"]});var Ht=class extends I{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 I?t.examplePrompt:I.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=Gt(t);n.length>0&&e.push(...n)}const n=[this.prefix,...e,this.suffix].join(this.exampleSeparator),r=this.templateFormat;return await I.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}};I.register(Ht,{name:"fewshot",aliases:["few_shot"]});var Zt=/(\\)?(\$)(?!\()(\{?)([\w.]+)(?::?-((?:\$\{(?:\$\{(?:\$\{[^}]*\}|[^}])*}|[^}])*}|[^}])+))?(\}?)/gi;function Qt(t){return t.replace(/\\\$/g,"$")}function Yt(t,e,n){return t.replace(Zt,((r,s,i,o,a,c,u)=>"\\"===s?r.slice(1):e[a]?e[a]===n[a]?e[a]:Yt(e[a],e,n):n[a]?n[a]===t?n[a]:Yt(n[a],e,n):c?c.startsWith("$")?Yt(c,e,n):c:""))}function te(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]?Yt(r,e,t.parsed):e[n]:Yt(r,e,t.parsed),t.parsed[n]=r?Qt(r):r}for(const n in t.parsed)e[n]=t.parsed[n];return t}function ee(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=Yt(t,e.processEnv,e.parsed);break;case"object":if(n.has(t)||null===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]=ee(t[r],e,n))}else for(const[r,s]of Object.entries(t))"string"!=typeof s&&"object"!=typeof s||(t[r]=ee(s,e,n))}return t}var ne=require("@isdk/detect-text-language"),re="@",se=/(\S.+?[.!?])(?=\s+|$)|(\S.+?)(?=[\n]|$)/g,ie=/([A-Z][a-z]{1,2}\.)\s(\w)/g,oe=/(\.[a-zA-Z]\.)\s(\w)/g,ae=new RegExp("([A-Z][a-z]{1,2}\\.)"+re+"(\\w)","g"),ce=new RegExp("(\\.[a-zA-Z]\\.)"+re+"(\\w)","g"),ue=/(```)([\s\S]*?)(```)/g,le=">>>CODE_BLOCK<<<",fe=/([*_`]{1,3})(\S.*?\S)\1/,he=">>> INLINE_BLOCK ",we=/>>> INLINE_BLOCK (\d+) <<</,pe=1e4;function de(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 me(t,{best:e=!0,completeSentence:n,isMarkdown:r,ignoreEmptyLine:s}={}){const i=[],o=[];let a,c=0;for(;c++<pe&&(a=ue.exec(t));){const e=a[0];i.push(e),t=t.replace(e,"\n"+le+(i.length-1)+"\n")}for(c=0;c++<pe&&(a=fe.exec(t));){const e=a[0];o.push(e),t=t.replace(e,he+(o.length-1)+" <<<")}if(r){const e=t.split("\n");for(let t=0;t<e.length;t++){const n=e[t];Ee(n,{isMarkdown:r,nextLine:e[t+1]})&&(i.push(n),e[t]=le+(i.length-1))}t=e.join("\n")}const u=(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 l=[];for(let t=0;t<u.length;t++){let n=u[t].trimEnd();if(!n){!r&&s||l.push("");continue}if(n.startsWith(le)){l.push(i[Number(n.slice(le.length))]);continue}if(r&&Ee(n,{isMarkdown:r,nextLine:u[t+1]})){l.push(n);continue}if(!e){l.push(n);continue}let a=de(n,re,[ie,oe]),c=Array.from(a.matchAll(se)),f=[];if(c.length)for(let t=0;t<c.length;t++)f.push(de(c[t][0]," ",[ae,ce]));else f.push(n);l.push(...f.map((t=>$e(o,t))))}return n&&(l=ye(l,{isMarkdown:r,ignoreEmptyLine:s})),l}function ye(t,{isMarkdown:e,ignoreEmptyLine:n}={}){const r=[];let s=0,i="";for(n=!e&&n;s<t.length;){let c=t[s];if(c){let u;if(n){const n=Ae(t,s+1);u=ve(t[n],{isMarkdown:e,nextLine:-1===n?"":t[n+1]})}else u=ve(t[s+1],{isMarkdown:e,nextLine:t[s+2]});o=c,a={isMarkdown:e,nextLine:t[s+1]},be(o)||ve(o,a)||""===t[s+1]||u?(i&&(c=ge(i,c),i=""),r.push(c)):(i&&(c=ge(i,c)),i=c)}else n||r[r.length-1]&&r.push(c);s++}var o,a;return i&&r.push(i),r}function ge(t,e){const n=t+" "+e,r=(0,ne.detectTextLanguage)(n,{isoCode:!0});return r&&!Te(r)?(Se(t)&&(t+=" "),e=t+e):e=t.endsWith("-")?(t=t.slice(0,-1))+e:n,e}function be(t){if(!t)return!1;return/(([.。!!??]\s*['"”’]?)|```)\s*$/.test(t)}function ve(t,e){let n=Ee(t,e);return n||(n=xe(t)),n||(n=ke(t)),n}function Ee(t,e){if(!t)return null;let n=/^\s*第?\s*[壹贰叁肆伍陆柒捌玖拾一二三四五六七八九十百千萬万\d]+\s*([章節节编回部篇卷幕场場辑集段册冊期片題]|片段|段落|篇[章目]|小[节節]|(子)?部分|卷[册冊]|[单單]元|章[节節回]|[.、])[ \t]*(?<title>.*)(?=\n|$)/.exec(t);if(n||(n=/^\s*(Chapter|Book|Article|Part|Paragraph|Subsection|Subpart|Volume|Episode|Issue|Unit|Section|Segment|Act|Scene)\s*\d+.*(?=\n|$)/i.exec(t)),!n&&e?.isMarkdown){n=/^[ \t]{0,3}(#+)\s+(?<title>\S.*)$/.exec(t);const r=/^[ \t]{0,3}([-=]+)(?=\n|$)/;!n&&e.nextLine&&!r.test(t)&&/^[ \t]{0,3}\S/.test(t)&&r.test(e.nextLine)&&(n=/^\s*(?<title>.*)(?=\n|$)/.exec(t))}return n}function xe(t){return/^\s*([*+-]|\d+[.、])\s*(?<item>.*)(?=\n|$)/.exec(t)}function ke(t){return/^[-=_]{3,}$/.exec(t)}function Se(t){return/[。!??,、;;::'""“”‘’~~《》<>〈〉【】(){}【】\[\]\(\)…·]$/.test(t)}function $e(t,e){let n,r=0;for(;r++<pe&&(n=we.exec(e));){const r=Number(n[1]);e=e.replace(n[0],t[r])}return e}function Te(t){return!["zh","ja","th","lo","ta","ko"].includes(t)}function Ae(t,e=0){for(let n=e;n<t.length;n++){const e=t[n];if(null!=e&&""!==e)return n}return-1}function Ce(t,e){const n=/(?!\\)([*_])\1(?![ \t]|\1)(.+?)(?<!\\)\1{2}/;let r;for(;(r=n.exec(t))&&(t=t.slice(0,r.index)+r[2]+t.slice(r.index+r[0].length),!e););return t}function Oe(t,e){const n=/(?!\\)([*_])(?![ \t]|\1)(.+?)(?<!\\)\1/;let r;for(;(r=n.exec(t))&&(t=t.slice(0,r.index)+r[2]+t.slice(r.index+r[0].length),!e););return t}function je(t,e){return t=Oe(t=Ce(t,e),e)}function Ie(t,e){const n=[],r=[],s=t.split("\n");for(let t=0;t<s.length;t++){let i=s[t];const o=0===i.trim().length;o||Ee(i,{...e,nextLine:s[t+1]})?(r.length&&n.push([...r]),r.length=0,o||r.push(i)):r.push(i)}return r.length&&n.push([...r]),n}function Me(t,e=2,n=.5){const r=10**e;return Math.trunc((t+Number.EPSILON+n/r)*r)/r}async function Ne(t){return new Promise((e=>setTimeout(e,t)))}var Fe=require("custom-ability"),Re="event",Le="event-bus";var Pe=(0,Fe.createAbilityInjector)((function(t){return class{static get emitter(){if(!this._emitter){const t=this.get(Le)?.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 qe(t,e){return!t||t.some((t=>t instanceof RegExp?t.test(e):t===e))}var Be=498,_e=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||(0,m.throwError)("Channel closed","SSEChannel",Be);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||qe(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||(0,m.throwError)("Channel closed","SSEChannel",Be);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=>qe(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 ze(t){return t instanceof ReadableStream||t instanceof WritableStream}var Ve=600,Ue=601,Xe=class extends m.BaseError{constructor(t,e=Ve){super(t,500)}};function De(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 Xe(`Response error: ${e}`,Ue))}}})}return new ReadableStream({start(t){t.error(new Xe("Response error: No response body",Ue))}})}function Je(){return new ReadableStream({start(t){t.close()}})}var We=require("eventsource-parser");function Ke(t){const e=new TextDecoder;let n;return new TransformStream({async start(e){n=(0,We.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 Ge(){let t=!0;return e=>(t&&(e=e.trimStart())&&(t=!1),e)}function He(t,e){if(!t.ok)return De(t.body);let n=t.body||new ReadableStream({start(t){t.close()}});return n instanceof ReadableStream||(n=ReadableStream.from(n)),n.pipeThrough(Ke(e))}function Ze(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 Qe(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 Ye=require("uuid"),tn=c(require("base32768")),en=require("uuid"),nn={1:Ye.v1,4:Ye.v4,5:Ye.v5};function rn(t=1,e){const n=nn[t];return e?tn.encode(n(null,[])):n()}var sn=require("hash-wasm"),on=c(require("xxhashjs")),an=c(require("base32768")),cn=require("json-canonicalize"),un=an,{h32:ln,h64:fn}=on.default,hn=588213;function wn(t,e=16){return"object"==typeof t&&(t=(0,cn.canonicalize)(t)),ln(t.normalize(),hn).toString(e)}function pn(t,e=16){return"object"==typeof t&&(t=(0,cn.canonicalize)(t)),fn(t.normalize(),hn).toString(e)}var dn=(t=>(t[t.md5=1]="md5",t[t.sha1=2]="sha1",t[t.ripemd=3]="ripemd",t[t.sha256=8]="sha256",t[t.sha384=9]="sha384",t[t.sha512=10]="sha512",t[t.sha224=11]="sha224",t[t.xxhash=111]="xxhash",t[t.xxhash64=111]="xxhash64",t[t.xxhash32=112]="xxhash32",t[t.xxhash128=113]="xxhash128",t))(dn||{}),mn={1:sn.createMD5,2:sn.createSHA1,8:sn.createSHA256,10:sn.createSHA512,11:sn.createSHA224,3:sn.createRIPEMD160,112:sn.createXXHash32,111:sn.createXXHash64,113:sn.createXXHash128};function yn(t,e=111,n=hn){let r;return t.buffer&&(t=t.buffer),112!==e?(r=fn(t,n),r=new Uint16Array([r._a00,r._a16,r._a32,r._a48]),r=new Uint8Array(r.buffer)):(r=ln(t,n),r=new Uint16Array([r._low,r._high]),r=new Uint8Array(r.buffer)),r}function gn(t,e=111,n=hn){return an.encode(yn(t,e,n))}async function bn(t,{hashAlgo:e=111,seed:n=hn,outputType:r="string"}={}){const s=await mn[e](n);s.init();const i=t.getReader();for(;;){const{done:t,value:e}=await i.read();if(t)break;s.update(e)}return"string"!==r?s.digest(r):an.encode(s.digest("binary"))}var vn=c(require("path")),En=/[<>:"/\\|?*\u0000-\u001F]/,xn=/^(con|prn|aux|nul|com\d|lpt\d)$/i,kn=100,Sn=/^\.+(\\|\/)|^\.+$/,$n=/\.+$/,Tn=/[\u0000-\u001F\u0080-\u009F\u200E\u200F\u202A-\u202E\u2066-\u2069]/;function An(){return new RegExp(En.source,"g")}function Cn(){return new RegExp(Tn.source,"g")}function On(t){return t&&!(En.test(t)||Cn().test(t)||Sn.test(t)||$n.test(t))}function jn(t){const e=t.split(vn.default.sep);return("/"===t[0]||e[0]&&vn.default.dirname(e[0])===e[0])&&e.shift(),e.every(On)}function In(t,e={}){const n=e.replacement||"!";if((En.test(n)||Tn.test(n))&&(0,m.throwError)("Replacement string cannot contain reserved filename characters","sanitizeFilename",m.ErrorCode.InvalidArgument),n.length>0){const e=/([<>:"/\\|?*\u0000-\u001F]){2,}/;t=t.replace(e,"$1")}if(t=(t=(t=(t=(t=t.normalize("NFD")).replace(Sn,n)).replace(An(),n)).replace(Cn(),n)).replace($n,""),n.length>0){"."===t[0]||"."!==t[0]||(t=n+t),"."===t[t.length-1]&&(t+=n)}t=xn.test(t)?t+n:t;const r="number"==typeof e.maxLength?e.maxLength:kn;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 Mn(t,e={}){const n=t.split(vn.default.sep);let r;("/"===t[0]||n[0]&&vn.default.dirname(n[0])===n[0])&&(r=n.shift());const s=n.map((t=>In(t,e)));return void 0!==r&&s.unshift(r),s.join(vn.default.sep)}function Nn(t,e=1){let n="";for(;e--;){const e=vn.default.extname(t);if(!e)break;n=e+n,t=vn.default.basename(t,e)}return n}function Fn(t){return t.split(".").length-1}var Rn=require("util-ex");function Ln(t,e){if("string"!=typeof t)throw new m.CommonError("modelName must be a string","isModelNameMatched",m.ErrorCode.InvalidArgument);switch(typeof e){case"string":if((0,Rn.isRegExpStr)(e)){const n=(e=(0,Rn.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,Rn.isRegExpStr)(n)){const r=(e=(0,Rn.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 Pn(t){return Object.keys(t).filter((t=>Number.isNaN(Number(t))))}var qn=require("lodash-es"),Bn=require("util-ex"),_n=require("lodash-es"),zn=require("util-ex");async function Vn(t,e,n){return Xn(tr(t,e,n),e,n)}function Un(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 Xn(t,e,n){if(t.length){const r=await Promise.all(t.map(((t,r)=>Yn(t,r,e,n)))),s=n?.returnArrayOnly;let i;if(r?.length){i=ur(`{${r.map((t=>t)).join(",")}}`,e)}return i&&!s&&(i=Un(i)),i}}function Dn(t,e,n,r){const[s,i]=t;if(!s&&"|"===i[0])return"choice: {"+function(t,e,n){const r=tr(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=>Kn(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(Kn(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 Jn([t,e],n,r,s){let i,o;if(r||(r={}),t){const t=e.split(":");i=t[0].trim(),o=t[1].trim()}else o=e,i=n+"";const a={template:o,data:{...(0,_n.omitBy)(r,((t,e)=>!e||"_"===e[0]||"function"==typeof t)),...s?.templateData}};s?.templateFormat&&(a.templateFormat=s.templateFormat);const c=await I.formatIf(a);if(c)return o=Kn(c)?c:JSON.stringify(c),i+":"+o}async function Wn(t,e,n,r){let s=Dn(t,0,n,r);return s||(s=await Jn(t,e,n,r)),s}function Kn(t){const e=t[0];return('"'===e||"'"===e)&&t[t.length-1]===e}function Gn(t){return'"'+t.replace(/(?<!\\)"(?!\\)/g,'\\"')+'"'}var Hn=["true","false","null","undefined","NaN","Infinity"];async function Zn(t,e,n){const r=(0,zn.newFunction)("async expression",[],`return ${t};`,hr(e));let s;try{s=await r.call(this)}catch(t){if(n||!(t instanceof ReferenceError))throw t}switch(typeof s){case"number":case"boolean":case"undefined":return s;case"function":return r.toString();default:return JSON.stringify(s)}}async function Qn(t,e,n){let r=t;if(!(s=t,function(t,e=['""',"''","{}"]){return e.some((e=>t[0]===e[0]&&t[t.length-1]===e[1]))}(s)||!Number.isNaN(parseFloat(s))||Hn.includes(s)||ar(s)||e&&void 0!==(0,_n.get)(e,t)||ar(t)))try{r=n?.skipExpression?Gn(t):await Zn.call(this,t,e,n?.preserveUnresolvedName)}catch(e){r=Gn(t)}var s;return r}async function Yn(t,e,n,r){const[s,i]=t,o=r?.argProcessor,a=r?.ignoreIndexNamed;if("function"==typeof o){const s=await o(t,e,n,r);if(s)return s}if(s){const t=i.indexOf(":");return i.slice(0,t).trim()+":"+await Qn(i.slice(t+1).trim(),n,r)}{const t=i.trim();if(n&&void 0!==(0,_n.get)(n,t)){return(a?"":e+":"+t+",")+'"'+t+'":'+t}return e+":"+await Qn(i.trim(),n,r)}}function tr(t,e,n){const r=n?.delimiter??",",s=n?.assigner??"=";let i=[],o=!1,a="",c="",u=!1,l="";for(let e=0;e<t.length;e++){const n=t[e];if(n!==r||o||l)if("\\"===n)c+=n,e++,c+=t[e];else if("("!==n&&"["!==n||o)if(l&&n===l)l="",c+=n;else if("{"!==n||o)'"'===n||"'"===n?(o&&n===a?o=!1:o||(o=!0,a=n),c+=n):n!==s||o||u||!/^[\p{L}\p{N}_ ]+$/u.test(c)?c+=n:(c+=":",u=!0);else{let r,s=e,i=!1,o="",a=-1;for(;s<t.length&&("}"!==(r=t[s])||i||a>0);)"\\"===r?s++:"{"!==r||i?"}"!==r||i?'"'!==r&&"'"!==r||(i&&n===o?i=!1:i||(i=!0,o=n)):a--:a++,s++;s<t.length&&(c+=t.substring(e,s+1),e=s)}else l="("===n?")":"]",c+=n;else c=c.trim(),c.endsWith(":")&&(c+="undefined"),i.push([u,c]),c="",u=!1}return c&&(c=c.trim(),c.endsWith(":")&&(c+="undefined"),i.push([u,c])),i}async function er(t,e,n){const r=t.match(/^([^(]+)(?:\((.*)\))?$/);if(!r){if(n?.raiseError)throw new Error("Invalid command format");return}const[,s,i]=r;let o;return i&&(o=await Vn(i,e,n)),{command:s.trim(),args:o}}var nr="__PlacEhoLdeR_";function rr(t,e){let n=e?.startChar?Array.isArray(e.startChar)?e.startChar:[e.startChar]:['"',"'"],r=e?.endChar?Array.isArray(e.endChar)?e.endChar:[e.endChar]:n;if(n.length!==r.length)throw new Error("start and end characters must have the same length");const s=e?.placeholder??nr,i=n.every(((t,e)=>t===r[e])),o=e?.placehoders??[];if(i){n=n.map((t=>"\\"+t));const e=new RegExp(`(?<!\\\\)(${n.join("|")}).*?(?<!\\\\)\\1`);let r;for(;null!==(r=e.exec(t));){const e=`${s}${o.length}`;t=t.replace(r[0],e),o.push(r[0])}}else{n=n.map((t=>"\\"+t)),r=r.map((t=>"\\"+t));for(let e=0;e<n.length;e++){const i=new RegExp(`(?<!\\\\)${n[e]}.*?(?<!\\\\)${r[e]}`);let a;for(;null!==(a=i.exec(t));){const e=`${s}${o.length}`;t=t.replace(a[0],e),o.push(a[0])}}}return[t,o]}function sr(t,e,n){const r=n?.placeholder??nr;return e.reduce(((t,e,n)=>t.replace(new RegExp(r+n,"g"),e)),t)}var ir="[a-zA-Z_$][a-zA-Z_\\d$]*",or=new RegExp(`^\\s*(\\(\\s*\\)|${ir}|\\(${`${ir}\\s*(,\\s*${ir})*`}\\))\\s*=>`);function ar(t){return or.test(t)}async function cr(t,e){if(e&&(e=hr(e)),e&&(t=t.trim()).startsWith("{")&&t.endsWith("}")){return await Vn(t.slice(1,-1),e,{assigner:":",ignoreIndexNamed:!0})}return ur(t,e)}function ur(t,e){if(e&&(e=hr(e)),e){const n=Object.keys(e);if(n.length){const r=Object.values(e);let s=0;for(;s++<100;)try{return(0,Bn.newFunction)("expression",n,`return ${t}`)(...r)}catch(t){if(!(t instanceof ReferenceError))throw t;{const e=/(.+)\s+is not defined/.exec(t.message);if(!e)throw t;n.push(e[1]),r.push(void 0)}}}}return(0,Bn.newFunction)("expression",[],`return ${t}`)()}var lr=/^[a-zA-Z_$][0-9a-zA-Z_$]*$/,fr=t=>lr.test(t);function hr(t){if(t){const e=Object.keys(t),n=e.length,r=e.filter((e=>fr(e)&&null!==t[e]));if(n===r.length)return t;if(r.length)return t=(0,qn.pick)(t,r)}}function wr(t){return t?pr(t,[],""):[]}function pr(t,e,n="."){return Array.isArray(t)?t.flatMap(((t,n)=>pr(t,[...e,`[${n}]`]))):(r=t)&&r.constructor===Object?Object.entries(t).flatMap((([t,r])=>pr(r,[...e,n+t]))):[e.join("")];var r}function dr(t){if(t<2)throw new m.CommonError("repetitionThreshold must be greater than 1","createEndWithRepetitionDetector",m.ErrorCode.InvalidArgument);const e=new RegExp(`([\\S\\s]+)(\\1{${t-1},})$`);return function(t){return e.exec(t)}}var mr=c(require("path")),yr=c(require("fs")),gr=c(require("mime-type/with-db")),br=c(require("jschardet"));function vr(t){const e=yr.statSync(t,{throwIfNoEntry:!1});return e?.isFile()}function Er(t,e,n,r){const s=r?.signal,i=r?.exclude;let o;if(mr.default.isAbsolute(t)?o=vr(t)?t:xr(mr.default.basename(t),[mr.default.dirname(t)],{extNames:n,exclude:i,signal:s}):(e||(e=["."]),o=xr(t,e,{extNames:n,exclude:i,signal:s})),!o)throw new m.NotFoundError(t,"loadFileFromPaths");{const t=o;o=yr.readFileSync(o),r&&(r.filepath=t)}return o}function xr(t,e,{extNames:n,signal:r,exclude:s=[]}){let i;const o=n?n.map((e=>Nn(t,Fn(e)))):void 0;"string"==typeof s&&(s=[s]);for(const a of e){if(r?.aborted)throw r.reason;const e=mr.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)&&vr(r)){i=r;break}}else if(!s.includes(e)&&vr(e)){i=e;break}}return i}function kr(t,e,n,r,s){let i;"string"==typeof r?(i=r,r=void 0):i=r?.encoding;return Sr(Er(t,e,n,r),i)}function Sr(t,e){void 0===e&&(e=jr(t)??"utf8");return new TextDecoder(e).decode(t)}function $r(t,e){const n=[],r="string"==typeof t?[{dir:t,level:0}]:[...t.map((t=>({dir:t,level:0})))],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=r.pop(),e=Tr(t.dir),u=mr.default.resolve(e);if(s.has(u))continue;s.add(u);const l=yr.statSync(e,{throwIfNoEntry:!1});if(l?.isDirectory()){c=t.level+1;const s=yr.readdirSync(e,{withFileTypes:!0});for(let t=0;t<s.length;t++){let i=s[t],u=mr.default.join(e,i.name);if(i.isSymbolicLink()){const t=mr.default.dirname(u);u=yr.readlinkSync(u),u=mr.default.resolve(t,u),i=yr.statSync(u)}i.isDirectory()?(!a||c<a)&&(o&&!o(u,i)||r.push({dir:u,level:c})):!i.isFile()||o&&!o(u,i)||n.includes(u)||n.push(u)}}}return n}function Tr(t){const e=yr.lstatSync(t,{throwIfNoEntry:!1});return e?.isSymbolicLink()&&(t=yr.readlinkSync(t)),t}async function Ar(t,e){return bn(ReadableStream.from(yr.createReadStream(t)),e)}async function Cr(t){const e=mr.default.basename(t);t=mr.default.resolve(t);const n=await yr.promises.stat(t),r=n.mtime,s=n.ctime,i=n.size,o=Or(i),a=await Ar(t,{hashAlgo:o}),c=gr.default.lookup(t);return{name:e,mtime:r,ctime:s,size:i,hash:dn[o]+":"+a,mimeType:c,id:"file://"+t}}function Or(t){let e=111;return t<=2048?e=112:t<=1048576?e=111:t<=10485760?e=113:t>10485760&&(e=10),e}function jr(t,e){return br.default.detect(t,e).encoding}var Ir=require("fs"),Mr=c(require("path")),Nr=require("load-config-file"),Fr=require("yaml"),Rr=require("yaml-types"),Lr=require("mime-type/with-db"),Pr=[Rr.regexp];function qr(t){Array.isArray(t)||(t=[t]);for(const e of t){-1===Pr.indexOf(e)&&Pr.push(e)}}function Br(t){return(0,Fr.parse)(t,{customTags:Pr})}function _r(t){return(0,Fr.stringify)(t,{customTags:Pr})}function zr(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,Ir.readdirSync)(t,{withFileTypes:!0,recursive:!0});for(const r of n){const n=Mr.default.join(t,r.name);r.isFile()&&e(n,r)}}(t,((t,e)=>{if(s?.includes(t))return;const o=Mr.default.extname(t),a=(0,Ir.statSync)(t);if(i.includes(o)){if(r?.hasOwnProperty(t)&&a.mtimeMs<=r[t])return;n.push(t)}})),n}function Vr(t,e){return zr(t,e).map((t=>Nr.Config.loadSync(t))).filter((t=>void 0!==t))}function Ur(t,e,n=1){"."===t[0]&&n++;const r=Nn(t,n);(!r||r.split(".").length<=1)&&(t+=".yaml");const s=Lr.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=_r(e)}const i=Mr.default.dirname(t);return(0,Ir.existsSync)(i)||(0,Ir.mkdirSync)(i,{recursive:!0}),(0,Ir.writeFileSync)(t,e,{encoding:"utf8"}),t}function Xr(t){t instanceof Date&&(t=t.toISOString());return function(t,e){return t?`'${e}'`:String(e)}("string"==typeof t,t)}function Dr(t,e){return t.map((t=>Kr(t,e))).join(" AND ")}function Jr(t,e){return t.map((t=>Kr(t,e))).join(" OR ")}function Wr(t,e){const n=[];return Object.keys(e).forEach((r=>{const s=e[r];switch(r){case"$lt":case"<":n.push(`${t} < ${Xr(s)}`);break;case"<=":case"$lte":n.push(`${t} <= ${Xr(s)}`);break;case"$gt":case">":n.push(`${t} > ${Xr(s)}`);break;case"$gte":case">=":n.push(`${t} >= ${Xr(s)}`);break;case"$ne":case"!=":n.push(`${t} != ${Xr(s)}`);break;case"=":case"$eq":n.push(`${t} = ${Xr(s)}`);break;case"$in":n.push(`${t} IN (${s.map((t=>Xr(t))).join(", ")})`);break;case"$nin":n.push(`${t} NOT IN (${s.map((t=>Xr(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 Kr(t,e){const n=[];if("function"!=typeof e&&(e=t=>t),Array.isArray(t))n.push(Dr(t,e));else for(const[r,s]of Object.entries(t))if("$and"===r)n.push(`(${Dr(t[r],e)})`);else if("$or"===r)n.push(`(${Jr(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(Wr(e(r),s))}return n.length>1?n.join(" AND "):n[0]}function Gr(t){const e=t.indexOf("://");if(e>0)return t.substring(0,e)}function Hr(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 Zr(t){const e=t.match(/^\s*[+]?(\d+(?:[.]\d+)?)\s*([TBMK])?\s*$/i);if(!e)throw new m.CommonError("Invalid formatted parameter size string.","scaleToSize",m.ErrorCode.InvalidArgument);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 Qr(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":" ")+Qr(t,{level:n+1,visiting:r})}}Nr.Config.register([".yml",".yaml"],Br),Nr.Config.register([".json"],(function(t){return JSON.parse(t)}));var Yr=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}},ts=require("events-ex"),es=32;function ns(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 rs=class{constructor(t){this._capacity=ns(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(ns(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)}}},ss=class extends ts.EventEmitter{};function is(t){return"function"==typeof t}function os(){return"1"}var as=class{constructor(t,{initFn:e=os,pauseFn:n,resumeFn:r,capacity:s=es}={}){if(is(n)!==is(r))throw new Error("pauseFn and resumeFn must be both set for pausing");this.maxConcurrency=t,this.free=new rs(t),this.waiting=new rs(s),this.releaseEmitter=new ss,this.useDefaultTokens=e===os,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 cs(t,{timeUnit:e=1e3,uniformDistribution:n=!1}={}){const r=new as(n?1:t),s=n?e/t:e;return async function(){await r.acquire(),setTimeout((()=>r.release()),s)}}var us,ls=require("custom-ability"),fs=require("property-manager"),hs=require("util-ex"),ws=0,ps=1,ds=2,ms=(t=>(t[t.MultiTask=ws]="MultiTask",t[t.Cancelable=ps]="Cancelable",t[t.Priority=ds]="Priority",t))(ms||{}),ys=((us=ys||{})[us.MultiTask=1<<ws]="MultiTask",us[us.Cancelable=1<<ps]="Cancelable",us[us.Priority=1<<ds]="Priority",us),gs=class t extends fs.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),Yr.has(n,t)}static run(t,e){const n=this.get(t);if(n)return n.run(e);throw new m.NotFoundError(`${t} to run`,this.name)}static runSync(t,e){const n=this.get(t);if(n)return n.runSync(e);throw new m.NotFoundError(`${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 m.NotFoundError(`${t} to run`,this.name)}static runWithPosSync(t,...e){const n=this.get(t);if(n)return n.runWithPosSync(...e);throw new m.NotFoundError(`${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);(0,m.throwError)("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),Yr.has(e,t)}isStream(t){return this.stream}},bs={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,hs._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"}};gs.defineProperties(gs,bs);var vs=require("util-ex"),Es=class extends AbortController{constructor(t){super(),(0,vs.defineProperty)(this,"parent",t)}abort(t,e){this.signal.aborted||("string"==typeof t&&(t=new m.AbortError(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 m.AbortError(e.reason||"aborted")}}},xs=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 as(t-1)),e}isAborted(t){const e=this.hasAsyncFeature(ws);let n=this.__task_aborter;if(n&&e){if(null==t)throw new m.CommonError("Missing taskId",this.name+".isAborted",m.ErrorCode.InvalidArgument);n=n[t]}return!n||n.signal.aborted}getRunningTask(t){const e=this.hasAsyncFeature(ws);let n=this.__task_aborter;if(n&&e){if(null==t)throw new m.CommonError("Missing taskId",this.name+".getRunningTask",m.ErrorCode.InvalidArgument);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(ws)){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(ws);if(!r&&n&&this.getRunningTask())throw new m.CommonError("The task is running",this.name,m.ErrorCode.TooManyRequests);const s=t?.aborter||new Es(this);if(!(s instanceof Es)){if(!(s instanceof AbortController))throw new m.CommonError("aborter should be an AbortController",this.name,m.ErrorCode.InvalidArgument);Object.setPrototypeOf(s,new Es(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(ws)){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=Qe({onStart:t=>{(0,vs.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(ws)){const t=e?.taskId;if(null==t)throw new m.CommonError("Missing data.taskId",this.name+".abort",m.ErrorCode.InvalidArgument);n=n[t],this.cleanMultiTaskAborter(t,r)}else this.__task_aborter=void 0;n&&!n.signal.aborted&&n.abort(t,e)}}};xs.prototype.generateAsyncTaskId=function(t,e){return this._generateAsyncTaskId(t,e)},xs.prototype.cleanMultiTaskAborter=function(t,e){return this._cleanMultiTaskAborter(t,e)};var ks=(0,ls.createAbilityInjector)(xs,"abort",{afterInjection:function(t,e){let n=t.prototype._asyncFeatures||0;n|=ys.Cancelable,e&&(e.asyncFeatures&&(n|=e.asyncFeatures),e.maxTaskConcurrency>0&&(t.prototype._maxTaskConcurrency=e.maxTaskConcurrency)),t.prototype._asyncFeatures=n}});function Ss(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 $s=c(require("memoizee")),Ts=require("json-canonicalize");function As(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,$s.default)(t,{...e,normalizer:t=>{if(r){const e=r(t);if("string"===e)return e;e&&(t=e)}return gn((0,Ts.canonicalize)(t))}})}var Cs=c(require("net"));async function Os(t,e=10){return new Promise(((n,r)=>{void 0===t?t=0:("string"==typeof t&&(t=parseInt(t)),t>=0||(t=0));const s=Cs.default.createServer();s.on("error",(n=>{"EADDRINUSE"===n.code&&(t++,--e>0)?s.listen(t):r(n)})),s.on("listening",(async()=>{const t=s.address().port;s.close(),n(t)})),s.listen(t)}))}var js=c(require("path")),Is=require("pkg-dir");function Ms(t){const e=(0,Is.packageDirectorySync)({cwd:t});if(e)return e;const n=t.split(js.default.sep);let r=n.lastIndexOf("dist");if(r>0)return n.slice(0,r).join(js.default.sep);if(r=n.lastIndexOf("src"),r>0)return n.slice(0,r).join(js.default.sep);throw new Error("can not find package directory")}var Ns=c(require("path"));function Fs(t,e){try{const n=Ns.default.relative(Ns.default.resolve(t),Ns.default.resolve(e));return!n.startsWith("..")&&!Ns.default.isAbsolute(n)}catch{return!1}}function Rs(t,e){return e?.some((e=>Fs(e,t)))}var Ls=require("util-ex");function Ps(t){return(0,Ls.isRegExpStr)(t)||(0,Ls.isRegExp)(t)}function qs(t){return t.replace(/\x1B[[(?);]{0,2}(;?\d)*./g,"")}var Bs=c(require("path")),_s=require("url"),zs=require("@xenova/transformers"),Vs=(0,_s.fileURLToPath)(l),Us=Bs.default.dirname(Vs),Xs=Bs.default.join(Ms(Us),".cache"),Ds=new Map,Js={"deepseek-ai/DeepSeek-V2-Lite-Chat":"deepseek2","Qwen/Qwen2.5-0.5B":"Qwen2.5","Xenova/gpt-4":"gpt-4 / gpt-3.5-turbo / text-embedding-ada-002","Xenova/text-davinci-003":"text-davinci-003 / text-davinci-002","Xenova/gpt-3":"gpt-3","Xenova/grok-1-tokenizer":"Grok-1","Xenova/claude-tokenizer":"Claude","Xenova/mistral-tokenizer-v3":"Mistral v3","Xenova/mistral-tokenizer-v1":"Mistral v1","Xenova/gemma-tokenizer":"Gemma","Xenova/gemma2-tokenizer":"Gemma2","Xenova/llama3-tokenizer-new":"Llama 3","unsloth/Llama-3.2-1B-Instruct":"Llama 3.2","Xenova/llama-tokenizer":"LLaMA / Llama 2","Xenova/c4ai-command-r-v01-tokenizer":"Cohere Command-R","Xenova/t5-small":"T5","Xenova/bert-base-cased":"bert-base-cased"},Ws={deepseek2:"deepseek-ai/DeepSeek-V2-Lite-Chat","qwen2.5":"Qwen/Qwen2.5-0.5B","gpt-4":"Xenova/gpt-4","gpt-3.5-turbo":"Xenova/gpt-4","text-embedding-ada-002":"Xenova/gpt-4","text-davinci-003":"Xenova/text-davinci-003","text-davinci-002":"Xenova/text-davinci-003","gpt-3":"Xenova/gpt-3","grok-1":"Xenova/grok-1-tokenizer",claude:"Xenova/claude-tokenizer",mistral:"Xenova/mistral-tokenizer-v3",mistral3:"Xenova/mistral-tokenizer-v3",mistral1:"Xenova/mistral-tokenizer-v1",gemma:"Xenova/gemma-tokenizer",gemma2:"Xenova/gemma2-tokenizer",llama3:"Xenova/llama3-tokenizer-new",llama2:"Xenova/llama-tokenizer",llama:"Xenova/llama-tokenizer","llama3.2":"unsloth/Llama-3.2-1B-Instruct","cohere-command-r":"Xenova/c4ai-command-r-v01-tokenizer",t5:"Xenova/t5-small","bert-cased":"Xenova/bert-base-cased"};async function Ks(t){let e=Ds.get(t);return e||(e=zs.AutoTokenizer.from_pretrained(t,{cache_dir:Xs}),Ds.set(t,e)),e}async function Gs(t,e="qwen2.5"){Ws[e]&&(e=Ws[e]);return(await Ks(e)).encode(t)}async function Hs(t,e="qwen2.5"){return(await Gs(t,e)).length}function Zs(t,e){const n=e?.capitalize??!0;let r=e?.delimiter??/[_-]/g;r instanceof RegExp&&(r.flags.includes("g")||(r=new RegExp(r.source,r.flags+"g")));let s=(t=t.replace(r," ")).split(" ").map((t=>t.trim())).filter(Boolean);return n&&(s=s.map((t=>t.charAt(0).toUpperCase()+t.slice(1)))),t=s.join(" ")}async function Qs(t,e){let n,r=1984,s=!0,i=!1,o=!0,a=Hs,c=!0;if(e&&(n=e.modelId,e.size>=0&&(r=e.size),void 0!==e.corrected&&(s=e.corrected),void 0!==e.completeSentence&&(i=e.completeSentence),void 0!==e.truncLastSection&&(o=e.truncLastSection),"function"==typeof e.countLLMTokens&&(a=e.countLLMTokens),void 0!==e.bySentence&&(c=e.bySentence)),!c)throw new m.NotImplementationError("truncateToTokenLimit only implemented by sentence","truncateToTokenLimit");if(r>0){let c=await a(t,n);const u=e?.sentences??me(t,e);if(c>r)for(c=await a(u.join("\n"),n);c>r&&u.length;){const e=u.pop();if(e){if(c-=await a(e+"\n",n),i||s)t=u.join("\n");else{const n=t.lastIndexOf(e);if(-1===n)throw new m.CommonError(`Can not find sentence: ${e}`,"truncateContentToTokenLimit");t=t.slice(0,n)}if(c<=1)throw new m.CommonError(`Can not truncate content to fit within the token limit: ${r}`,"truncateContentToTokenLimit");if(c<=r&&o){const e=u[u.length-1];if(e&&ve(e)){if(c-await a(e,n)>9){const n=t.lastIndexOf(e);if(-1===n)throw new m.CommonError(`Can not find sentence: ${e}`,"truncateContentToTokenLimit");t=t.slice(0,n).trimEnd()}}}}else c--}else t=u.join("\n")}if(!t)throw new m.CommonError(`Can not truncate content to fit within the token limit: ${r}`,"truncateContentToTokenLimit");return t}async function Ys(t,e){let n,r=1984,s=!0,i=Hs,o=!0;if(e&&(n=e.modelId,e.size>=0&&(r=e.size),void 0!==e.truncLastSection&&(s=e.truncLastSection),"function"==typeof e.countLLMTokens&&(i=e.countLLMTokens),void 0!==e.bySentence&&(o=e.bySentence)),!o)throw new m.NotImplementationError("truncateToTokenLimit only implemented by sentence","truncateToTokenLimit");if(r>0){const e=(t=t.slice()).join("\n");let o=await i(e,n);if(o>r)for(;o>r&&t.length;){const e=t.pop();if(e){if(o-=await i(e,n),o<=1)throw new m.CommonError(`Can not truncate content to fit within the token limit: ${r}`,"truncateContentToTokenLimit");if(o<=r&&s){const e=t[t.length-1];if(e&&ve(e)){o-await i(e,n)>9&&t.pop()}}}}}if(!t.length)throw new m.CommonError(`Empty. Can not truncate content to fit within the token limit: ${r}`,"truncateContentToTokenLimit");return t}async function ti(t,e){let n,r=1984,s=Hs;if(e&&(n=e.modelId,"function"==typeof e.countLLMTokens&&(e.size>=0&&(r=e.size),s=e.countLLMTokens)),r>0){await s(t,n)}}var ei=c(require("fs"));async function*ni(t,e){const n=(e={...e,completeSentence:!1,corrected:!1}).size??1984,r=e.modelId,s=e.metaInfo?.size??(await ei.default.promises.stat(t)).size;let i=Math.trunc(s/2);if(i<=n){let s=Sr(await ei.default.promises.readFile(t));if(i=await Hs(s,r),i<=n)yield s;else do{const t=await Qs(s,{...e,modelId:r,size:n});yield t,s=s.slice(t.length)}while(s)}else{const s=ReadableStream.from(ei.default.createReadStream(t)).getReader();let i="";for(;;){const{done:t,value:o}=await s.read();if(t)break;i+=Sr(o);const a=me(i,e);let c=a.pop();if(c){const t=i.lastIndexOf(c);c=i.slice(t),i=i.slice(0,t)}if(i.length>=n){const t=await Qs(i,{...e,modelId:r,size:n,sentences:a});i=i.slice(t.length),yield t}for(;i.length>n;){const t=me(i,e),s=await Qs(i,{...e,modelId:r,size:n,sentences:t});i=i.slice(s.length),yield s}void 0!==c&&(i+=c)}for(;i;){const t=me(i,e),s=await Qs(i,{...e,modelId:r,size:n,sentences:t});i=i.slice(s.length),yield s}}}async function*ri(t,e){const n=e?.size??1984,r=e?.modelId,s=e?.metaInfo?.size??(await ei.default.promises.stat(t)).size;let i=Math.trunc(s/2);if(i<=n){let s=Sr(await ei.default.promises.readFile(t));if(i=await Hs(s,r),i<=n)yield me(s,e);else{let t=me(s,e);do{const s=await Ys(t,{...e,modelId:r,size:n});yield s,t=t.slice(s.length)}while(t.length)}}else{const s=ReadableStream.from(ei.default.createReadStream(t)).getReader();let i="";const o=e?.completeSentence,a=e?.corrected,c=!o&&!a;let u;for(;;){const{done:t,value:o}=await s.read();if(t)break;i+=Sr(o),u=me(i,e);let a=u.pop();if(i.length>=n){const t=await Ys(u,{...e,modelId:r,size:n});i=c?i.slice(t.length):u.join("\n"),u=u.slice(t.length),i=u.join("\n"),yield t}for(;i.length>n;){const t=await Ys(u,{...e,modelId:r,size:n});u=u.slice(t.length),i=u.join("\n"),yield t}a&&u.push(a)}if(u)for(;u.length;){const t=await Ys(u,{...e,modelId:r,size:n});u=u.slice(t.length),yield t}}}async function si(t,e){const n=e?.size??1984,r=e?.modelId;let s=me(t,e);const i=[];if(await Hs(t,r)<=n)i.push(s);else do{const t=await Ys(s,{...e,modelId:r,size:n});i.push(t),s=s.slice(t.length)}while(s.length);return i}var ii=require("yaml"),oi=class{constructor(t){t&&Object.assign(this,t)}};function ai(t,e){class n extends ii.YAMLMap{constructor(){super(...arguments),this.tag=t}toJSON(t,n){n={...n,mapAsMap:!1};const r=super.toJSON(t,n);return new e(r)}}return{tag:t,collection:"map",nodeClass:n,identify:t=>t instanceof e}}var ci=class t extends gs{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(0,m.throwError)("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):(0,m.throwError)(`${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(0,m.createError)(r,s,n)}async func(t){const e=await this.fetch(t);if(t?.stream)return e;return await e.json()}},ui={...d};ci.defineProperties(ci,ui);var li=class t extends gs{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({}){}},fi={...d};li.defineProperties(li,fi);var hi=require("events-ex"),wi=class extends gs{constructor(){super(...arguments),this._emitter=new hi.EventEmitter,this.description="Return event bus",this.result="event"}get emitter(){return this._emitter}func(){return this.emitter}},pi=new wi(Le),di=require("secondary-cache");function mi({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 yi(t,e){let n=gs.get(t);return n||(n=new gs(t,{func:mi,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 di.Cache(e)),n}var gi=yi("lrucache"),bi=class extends ci{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))}}},vi={methods:{type:"array",assign(t,e,n,r,s){s?.isExported||e.assignMethods(t)}}};bi.defineProperties(bi,vi);var Ei=class extends bi{async fetch(t,e){if(t||(t={}),e&&"res"===this.action){if("get"===e||"delete"===e){let n=t.id;return n||(0,m.throwError)("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)}},xi=class extends Ei{constructor(){super(...arguments),this._sseEvents={},this._forwardEvents=new Set,this.name=Re,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)}},ki=new xi(Re),Si=require("util-ex"),$i=class extends li{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,Si.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 m.NotFoundError(e,this.name)}};$i.defineProperties($i,{methods:{type:"array"}});var Ti=class extends $i{constructor(t,e={}){super(t,e),this.action="res",this.params={id:{type:"string"},val:{type:"any"}}}static{this.SpecialRpcMethodNames=p}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}},Ai=pi.runSync(),Ci=class t extends Ti{constructor(){super(...arguments),this.name=Re,this.description="subscribe server sent event",this.result="event",this.depends={[Le]:pi}}static get sse(){return this._sse||(this._sse=new _e),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=Ai.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)||Ai.on(n,t.ebListener)}unforward(e){"string"==typeof e&&(e=[e]);for(const n of e)Ai.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};(0,m.throwError)("event is required","sub",m.ErrorCode.InvalidArgument)}$unsub({event:t}){if(t)return this.unforward(t),{event:t};(0,m.throwError)("event is required","unsub",m.ErrorCode.InvalidArgument)}$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}}(0,m.throwError)("event or data is required","pub",m.ErrorCode.InvalidArgument)}isStream(t){return"list"===this.getMethodFromParams(t)}},Oi=new Ci(Re);function ji(){pi.register(),gi.register()}