@isdk/ai-tool 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-TOUPOZHH.mjs +1 -0
- package/dist/funcs.d.mts +1 -1
- package/dist/funcs.d.ts +1 -1
- package/dist/funcs.js +1 -1
- package/dist/funcs.mjs +1 -1
- package/dist/{index-nP9lSU6E.d.mts → index-DUEs7T8M.d.mts} +2 -2
- package/dist/{index-nP9lSU6E.d.ts → index-DUEs7T8M.d.ts} +2 -2
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/docs/README.md +5 -3
- package/docs/_media/CONTRIBUTING.md +18 -0
- package/docs/_media/LICENSE-MIT +22 -0
- package/docs/classes/AbortError.md +108 -129
- package/docs/classes/AlreadyExistsError.md +105 -126
- package/docs/classes/BaseError.md +112 -125
- package/docs/classes/CancelableAbility.md +136 -188
- package/docs/classes/ClientTools.md +1005 -1107
- package/docs/classes/CommonError.md +115 -136
- package/docs/classes/ConfigFile.md +150 -163
- package/docs/classes/EventClient.md +1128 -1282
- package/docs/classes/EventServer.md +1165 -1303
- package/docs/classes/EventToolFunc.md +958 -1028
- package/docs/classes/FStringPromptTemplate.md +352 -438
- package/docs/classes/FewShotPromptTemplate.md +364 -464
- package/docs/classes/GolangPromptTemplate.md +352 -438
- package/docs/classes/HFEnvironment.md +53 -79
- package/docs/classes/HFInterpreter.md +20 -377
- package/docs/classes/HFTemplate.md +21 -33
- package/docs/classes/HfPromptTemplate.md +352 -438
- package/docs/classes/IntSet.md +67 -100
- package/docs/classes/NotFoundError.md +105 -126
- package/docs/classes/NotImplementationError.md +105 -126
- package/docs/classes/PromptExampleSelector.md +58 -70
- package/docs/classes/PromptTemplate.md +338 -422
- package/docs/classes/ReadableStreamError.md +108 -129
- package/docs/classes/ResClientTools.md +916 -1026
- package/docs/classes/ResServerTools.md +919 -1026
- package/docs/classes/SSEChannel.md +93 -112
- package/docs/classes/Semaphore.md +44 -140
- package/docs/classes/ServerTools.md +981 -1072
- package/docs/classes/TaskAbortController.md +46 -66
- package/docs/classes/ToolFunc.md +840 -910
- package/docs/enumerations/AsyncFeatureBits.md +37 -0
- package/docs/enumerations/AsyncFeatures.md +37 -0
- package/docs/enumerations/ErrorCode.md +217 -0
- package/docs/enumerations/XXHashAlgorithm.md +27 -0
- package/docs/functions/AIArgProcessor.md +27 -0
- package/docs/functions/AIStream.md +50 -0
- package/docs/functions/ChoiceArgProcessor.md +27 -0
- package/docs/functions/RateLimit.md +33 -0
- package/docs/functions/TemplateArgProcessor.md +27 -0
- package/docs/functions/backendEventable.md +23 -0
- package/docs/functions/canonicalize.md +21 -0
- package/docs/functions/countRegexMatches.md +33 -0
- package/docs/functions/createAbilityInjector.md +87 -0
- package/docs/functions/createCallbacksTransformer.md +49 -0
- package/docs/functions/createEmptyReadableStream.md +23 -0
- package/docs/functions/createEndWithRepetitionDetector.md +29 -0
- package/docs/functions/createError.md +35 -0
- package/docs/functions/createEventStreamTransformer.md +33 -0
- package/docs/functions/createHfValueFunc.md +29 -0
- package/docs/functions/createLRUCache.md +23 -0
- package/docs/functions/dateToText.md +23 -0
- package/docs/functions/expandEnv.md +40 -0
- package/docs/functions/expandObjEnv.md +54 -0
- package/docs/functions/extNameLevel.md +43 -0
- package/docs/functions/fileIsExists.md +34 -0
- package/docs/functions/filenameReservedRegex.md +22 -0
- package/docs/functions/filterValidFnScope.md +21 -0
- package/docs/functions/findPort.md +23 -0
- package/docs/functions/formatISO.md +71 -0
- package/docs/functions/getAllEnumKeys.md +31 -0
- package/docs/functions/getConfigFileNames.md +23 -0
- package/docs/functions/getConfigs.md +23 -0
- package/docs/functions/getKeysPath.md +38 -0
- package/docs/functions/getMultiLevelExtname.md +31 -0
- package/docs/functions/getPackageDir.md +39 -0
- package/docs/functions/getRealFilepath.md +34 -0
- package/docs/functions/getResponseErrorReadableStream.md +21 -0
- package/docs/functions/hfParse.md +24 -0
- package/docs/functions/hfTokenize.md +25 -0
- package/docs/functions/interpolateEnv.md +25 -0
- package/docs/functions/interpolateFString.md +27 -0
- package/docs/functions/interpolateGolangTemplate.md +31 -0
- package/docs/functions/isModelNameMatched.md +45 -0
- package/docs/functions/isValidFilename.md +38 -0
- package/docs/functions/isValidFilepath.md +27 -0
- package/docs/functions/isWebStream.md +21 -0
- package/docs/functions/jsonFilterToWhere.md +45 -0
- package/docs/functions/jsonToMarkdownStr.md +31 -0
- package/docs/functions/loadFileFromPaths.md +54 -0
- package/docs/functions/loadTextFromPaths.md +29 -0
- package/docs/functions/lrucache.md +29 -0
- package/docs/functions/makeToolFuncCancelable.md +23 -0
- package/docs/functions/matchUrlProtocol.md +48 -0
- package/docs/functions/memoize.md +27 -0
- package/docs/functions/messagesToText.md +21 -0
- package/docs/functions/paramsSizeToScaleStr.md +32 -0
- package/docs/functions/parseCommand.md +33 -0
- package/docs/functions/parseDateFormat.md +360 -0
- package/docs/functions/parseFString.md +26 -0
- package/docs/functions/parseISO.md +72 -0
- package/docs/functions/parseJsJson.md +38 -0
- package/docs/functions/parseObjectArgInfo.md +27 -0
- package/docs/functions/parseObjectArgumentInfos.md +25 -0
- package/docs/functions/parseObjectArguments.md +68 -0
- package/docs/functions/parseObjectArgumentsAsArgInfos.md +42 -0
- package/docs/functions/parseYaml.md +21 -0
- package/docs/functions/quoteStr.md +21 -0
- package/docs/functions/reControlCharsRegex.md +21 -0
- package/docs/functions/readFilenamesRecursiveSync.md +47 -0
- package/docs/functions/readableFromAsyncIterable.md +28 -0
- package/docs/functions/registerCoreTools.md +17 -0
- package/docs/functions/registerYamlTag.md +21 -0
- package/docs/functions/sanitizeFilename.md +37 -0
- package/docs/functions/sanitizeFilepath.md +31 -0
- package/docs/functions/saveConfigFile.md +25 -0
- package/docs/functions/scaleStrToParamsSize.md +27 -0
- package/docs/functions/simplifyObjectArguments.md +21 -0
- package/docs/functions/sortedValues.md +25 -0
- package/docs/functions/splitSentence.md +37 -0
- package/docs/functions/stringifyYaml.md +49 -0
- package/docs/functions/textToDate.md +23 -0
- package/docs/functions/throwError.md +37 -0
- package/docs/functions/toDate.md +76 -0
- package/docs/functions/toDateTime.md +21 -0
- package/docs/functions/trimStartOfStreamHelper.md +41 -0
- package/docs/functions/truncTo.md +47 -0
- package/docs/functions/uuid.md +23 -0
- package/docs/functions/uuidParse.md +21 -0
- package/docs/functions/uuidStringify.md +23 -0
- package/docs/functions/uuidValidate.md +21 -0
- package/docs/functions/uuidVersion.md +21 -0
- package/docs/functions/uuidv1.md +47 -0
- package/docs/functions/uuidv4.md +47 -0
- package/docs/functions/uuidv5.md +51 -0
- package/docs/functions/wait.md +21 -0
- package/docs/functions/xxhash.md +25 -0
- package/docs/functions/xxhash32.md +23 -0
- package/docs/functions/xxhash64.md +23 -0
- package/docs/functions/xxhashAsStr.md +25 -0
- package/docs/globals.md +236 -0
- package/docs/interfaces/AIChatAssistantMessageParam.md +29 -38
- package/docs/interfaces/AIChatContentPartImage.md +11 -16
- package/docs/interfaces/AIChatContentPartText.md +9 -12
- package/docs/interfaces/AIChatMessageParamBase.md +12 -19
- package/docs/interfaces/AIChatMessageToolCall.md +18 -21
- package/docs/interfaces/AIChatSystemMessageParam.md +16 -22
- package/docs/interfaces/AIChatToolMessageParam.md +19 -26
- package/docs/interfaces/AIChatUserMessageParam.md +32 -42
- package/docs/interfaces/AIChoiceConfig.md +31 -39
- package/docs/interfaces/AIResult.md +26 -33
- package/docs/interfaces/AIStreamParser.md +24 -18
- package/docs/interfaces/AIStreamParserOptions.md +8 -10
- package/docs/interfaces/BaseFunc.md +55 -75
- package/docs/interfaces/BaseFuncItem.md +43 -61
- package/docs/interfaces/CancelableAbilityOptions.md +43 -54
- package/docs/interfaces/ClientFuncItem.md +66 -83
- package/docs/interfaces/DotenvExpandOptions.md +15 -19
- package/docs/interfaces/DotenvExpandOutput.md +11 -14
- package/docs/interfaces/DotenvParseInput.md +6 -2
- package/docs/interfaces/DotenvParseOutput.md +6 -2
- package/docs/interfaces/DotenvPopulateInput.md +6 -2
- package/docs/interfaces/EventClientFuncParams.md +22 -33
- package/docs/interfaces/EventServerFuncParams.md +27 -35
- package/docs/interfaces/FewShotPromptTemplateOptions.md +58 -74
- package/docs/interfaces/FuncItem.md +53 -70
- package/docs/interfaces/FuncParam.md +29 -36
- package/docs/interfaces/FuncParams.md +6 -2
- package/docs/interfaces/Funcs.md +6 -2
- package/docs/interfaces/JsonFilter.md +6 -2
- package/docs/interfaces/ParseObjectArgumentOptions.md +23 -29
- package/docs/interfaces/PromptExampleSelectorOptions.md +13 -16
- package/docs/interfaces/PromptTemplateOptions.md +31 -40
- package/docs/interfaces/RemoteFuncItem.md +64 -82
- package/docs/interfaces/ResClientFuncParams.md +14 -19
- package/docs/interfaces/ResServerFuncParams.md +28 -36
- package/docs/interfaces/SanitizeFilenameOptions.md +11 -14
- package/docs/interfaces/ServerFuncItem.md +70 -88
- package/docs/interfaces/ServerFuncParams.md +15 -20
- package/docs/interfaces/StreamCallbacksAndOptions.md +36 -65
- package/docs/interfaces/TaskAbortControllers.md +6 -2
- package/docs/interfaces/TaskPromise.md +48 -61
- package/docs/interfaces/ToolFuncPackage.md +18 -32
- package/docs/type-aliases/AIChatContentPart.md +13 -0
- package/docs/type-aliases/AIChatMessageParam.md +13 -0
- package/docs/type-aliases/AIChatRole.md +13 -0
- package/docs/type-aliases/AIMessageType.md +13 -0
- package/docs/type-aliases/AIModelNameRule.md +13 -0
- package/docs/type-aliases/AIModelNameRuleFn.md +21 -0
- package/docs/type-aliases/AIModelNameRules.md +13 -0
- package/docs/type-aliases/AITextGenerationFinishReason.md +13 -0
- package/docs/type-aliases/ActionName.md +13 -0
- package/docs/type-aliases/AsyncTaskId.md +13 -0
- package/docs/type-aliases/EventErrorListenerFn.md +27 -0
- package/docs/type-aliases/EventListenerFn.md +25 -0
- package/docs/type-aliases/FStringPromptTemplateNode.md +16 -0
- package/docs/type-aliases/FuncParamType.md +13 -0
- package/docs/type-aliases/PromptExamples.md +17 -0
- package/docs/type-aliases/PromptTemplateType.md +13 -0
- package/docs/type-aliases/PromptType.md +13 -0
- package/docs/type-aliases/TFunc.md +23 -0
- package/docs/variables/AIChatRoles.md +13 -0
- package/docs/variables/AIMessageTypes.md +13 -0
- package/docs/variables/AITextGenerationFinishReasons.md +13 -0
- package/docs/variables/AbortErrorCode.md +13 -0
- package/docs/variables/ActionNames.md +13 -0
- package/docs/variables/AlreadyExistsErrorCode.md +13 -0
- package/docs/variables/ClientToolFuncSchema.md +87 -0
- package/docs/variables/DefaultAsyncSemaphoreCapacity.md +13 -0
- package/docs/variables/EventBusName.md +13 -0
- package/docs/variables/EventName.md +13 -0
- package/docs/variables/FilenameReservedRegex.md +16 -0
- package/docs/variables/HFBuiltins.md +92 -0
- package/docs/variables/InternalErrorCode.md +13 -0
- package/docs/variables/NotFoundErrorCode.md +13 -0
- package/docs/variables/NotImplementedErrorCode.md +13 -0
- package/docs/variables/PASSING_SCORE.md +13 -0
- package/docs/variables/PromptTemplateTypes.md +13 -0
- package/docs/variables/PromptTypes.md +16 -0
- package/docs/variables/RStreamErrCode.md +13 -0
- package/docs/variables/RemoteToolFuncSchema.md +87 -0
- package/docs/variables/ResponseRStreamErrCode.md +13 -0
- package/docs/variables/SSEChannelAlreadyClosedErrCode.md +13 -0
- package/docs/variables/ServerToolFuncSchema.md +87 -0
- package/docs/variables/ToolAsyncCancelableBit.md +13 -0
- package/docs/variables/ToolAsyncMultiTaskBit.md +13 -0
- package/docs/variables/ToolAsyncPriorityBit.md +13 -0
- package/docs/variables/ToolFuncSchema.md +125 -0
- package/docs/variables/WindowsReservedNameRegex.md +15 -0
- package/docs/variables/base32768.md +13 -0
- package/docs/variables/defaultTemplateFormat.md +13 -0
- package/docs/variables/event.md +13 -0
- package/docs/variables/eventClient.md +13 -0
- package/docs/variables/eventServer.md +13 -0
- package/docs/variables/lrucache.md +13 -0
- package/docs/variables/mimeType.md +13 -0
- package/docs/variables/uuidNIL.md +13 -0
- package/package.json +26 -27
- package/dist/chunk-W2LO3HZT.mjs +0 -1
- package/docs/.nojekyll +0 -1
- package/docs/enums/AsyncFeatureBits.md +0 -41
- package/docs/enums/AsyncFeatures.md +0 -41
- package/docs/enums/ErrorCode.md +0 -239
- package/docs/enums/XXHashAlgorithm.md +0 -30
- package/docs/modules.md +0 -4062
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
[**@isdk/ai-tool**](../README.md) • **Docs**
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@isdk/ai-tool](../globals.md) / ToolFuncSchema
|
|
6
|
+
|
|
7
|
+
# Variable: ToolFuncSchema
|
|
8
|
+
|
|
9
|
+
> `const` **ToolFuncSchema**: `object`
|
|
10
|
+
|
|
11
|
+
## Type declaration
|
|
12
|
+
|
|
13
|
+
### asyncFeatures
|
|
14
|
+
|
|
15
|
+
> **asyncFeatures**: `object`
|
|
16
|
+
|
|
17
|
+
### asyncFeatures.type
|
|
18
|
+
|
|
19
|
+
> **type**: `string` = `'number'`
|
|
20
|
+
|
|
21
|
+
### depends
|
|
22
|
+
|
|
23
|
+
> **depends**: `object`
|
|
24
|
+
|
|
25
|
+
### depends.exported
|
|
26
|
+
|
|
27
|
+
> **exported**: `boolean` = `false`
|
|
28
|
+
|
|
29
|
+
### depends.type
|
|
30
|
+
|
|
31
|
+
> **type**: `string` = `'object'`
|
|
32
|
+
|
|
33
|
+
### description
|
|
34
|
+
|
|
35
|
+
> **description**: `object`
|
|
36
|
+
|
|
37
|
+
### description.type
|
|
38
|
+
|
|
39
|
+
> **type**: `string` = `'string'`
|
|
40
|
+
|
|
41
|
+
### func
|
|
42
|
+
|
|
43
|
+
> **func**: `object`
|
|
44
|
+
|
|
45
|
+
### func.type
|
|
46
|
+
|
|
47
|
+
> **type**: `string` = `'function'`
|
|
48
|
+
|
|
49
|
+
### func.assign()
|
|
50
|
+
|
|
51
|
+
#### Parameters
|
|
52
|
+
|
|
53
|
+
• **value**: `string` \| `Function`
|
|
54
|
+
|
|
55
|
+
• **dest**: [`ToolFunc`](../classes/ToolFunc.md)
|
|
56
|
+
|
|
57
|
+
• **src?**: [`ToolFunc`](../classes/ToolFunc.md)
|
|
58
|
+
|
|
59
|
+
• **name?**: `string`
|
|
60
|
+
|
|
61
|
+
• **options?**: `any`
|
|
62
|
+
|
|
63
|
+
#### Returns
|
|
64
|
+
|
|
65
|
+
`string` \| `Function`
|
|
66
|
+
|
|
67
|
+
### isApi
|
|
68
|
+
|
|
69
|
+
> **isApi**: `object`
|
|
70
|
+
|
|
71
|
+
### isApi.type
|
|
72
|
+
|
|
73
|
+
> **type**: `string` = `'boolean'`
|
|
74
|
+
|
|
75
|
+
### name
|
|
76
|
+
|
|
77
|
+
> **name**: `object`
|
|
78
|
+
|
|
79
|
+
### name.type
|
|
80
|
+
|
|
81
|
+
> **type**: `string` = `'string'`
|
|
82
|
+
|
|
83
|
+
### params
|
|
84
|
+
|
|
85
|
+
> **params**: `object`
|
|
86
|
+
|
|
87
|
+
### params.type
|
|
88
|
+
|
|
89
|
+
> **type**: `string` = `'object'`
|
|
90
|
+
|
|
91
|
+
### result
|
|
92
|
+
|
|
93
|
+
> **result**: `object`
|
|
94
|
+
|
|
95
|
+
### result.type
|
|
96
|
+
|
|
97
|
+
> **type**: `string` = `'any'`
|
|
98
|
+
|
|
99
|
+
### setup
|
|
100
|
+
|
|
101
|
+
> **setup**: `object`
|
|
102
|
+
|
|
103
|
+
### setup.type
|
|
104
|
+
|
|
105
|
+
> **type**: `string` = `'function'`
|
|
106
|
+
|
|
107
|
+
### stream
|
|
108
|
+
|
|
109
|
+
> **stream**: `object`
|
|
110
|
+
|
|
111
|
+
### stream.type
|
|
112
|
+
|
|
113
|
+
> **type**: `string` = `'boolean'`
|
|
114
|
+
|
|
115
|
+
### tags
|
|
116
|
+
|
|
117
|
+
> **tags**: `object`
|
|
118
|
+
|
|
119
|
+
### tags.type
|
|
120
|
+
|
|
121
|
+
> **type**: `string`[]
|
|
122
|
+
|
|
123
|
+
## Defined in
|
|
124
|
+
|
|
125
|
+
[packages/ai-tool/src/tool-func.ts:348](https://github.com/isdk/ai-tool.js/blob/5f9f0083c734722103ff5468e424b48c212a55f0/src/tool-func.ts#L348)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
[**@isdk/ai-tool**](../README.md) • **Docs**
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@isdk/ai-tool](../globals.md) / WindowsReservedNameRegex
|
|
6
|
+
|
|
7
|
+
# Variable: WindowsReservedNameRegex
|
|
8
|
+
|
|
9
|
+
> `const` **WindowsReservedNameRegex**: `RegExp`
|
|
10
|
+
|
|
11
|
+
Regular expression pattern for reserved names on Windows systems.
|
|
12
|
+
|
|
13
|
+
## Defined in
|
|
14
|
+
|
|
15
|
+
[packages/ai-tool/src/utils/filename.ts:13](https://github.com/isdk/ai-tool.js/blob/5f9f0083c734722103ff5468e424b48c212a55f0/src/utils/filename.ts#L13)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
[**@isdk/ai-tool**](../README.md) • **Docs**
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@isdk/ai-tool](../globals.md) / base32768
|
|
6
|
+
|
|
7
|
+
# Variable: base32768
|
|
8
|
+
|
|
9
|
+
> `const` **base32768**: `__module` = `_base32768`
|
|
10
|
+
|
|
11
|
+
## Defined in
|
|
12
|
+
|
|
13
|
+
[packages/ai-tool/src/utils/hash/xxhash.ts:5](https://github.com/isdk/ai-tool.js/blob/5f9f0083c734722103ff5468e424b48c212a55f0/src/utils/hash/xxhash.ts#L5)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
[**@isdk/ai-tool**](../README.md) • **Docs**
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@isdk/ai-tool](../globals.md) / defaultTemplateFormat
|
|
6
|
+
|
|
7
|
+
# Variable: defaultTemplateFormat
|
|
8
|
+
|
|
9
|
+
> `const` **defaultTemplateFormat**: `"default"` = `'default'`
|
|
10
|
+
|
|
11
|
+
## Defined in
|
|
12
|
+
|
|
13
|
+
[packages/ai-tool/src/utils/prompt/prompt-template.ts:8](https://github.com/isdk/ai-tool.js/blob/5f9f0083c734722103ff5468e424b48c212a55f0/src/utils/prompt/prompt-template.ts#L8)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
[**@isdk/ai-tool**](../README.md) • **Docs**
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@isdk/ai-tool](../globals.md) / event
|
|
6
|
+
|
|
7
|
+
# Variable: event
|
|
8
|
+
|
|
9
|
+
> `const` **event**: [`EventToolFunc`](../classes/EventToolFunc.md)
|
|
10
|
+
|
|
11
|
+
## Defined in
|
|
12
|
+
|
|
13
|
+
[packages/ai-tool/src/funcs/event.ts:22](https://github.com/isdk/ai-tool.js/blob/5f9f0083c734722103ff5468e424b48c212a55f0/src/funcs/event.ts#L22)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
[**@isdk/ai-tool**](../README.md) • **Docs**
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@isdk/ai-tool](../globals.md) / eventClient
|
|
6
|
+
|
|
7
|
+
# Variable: eventClient
|
|
8
|
+
|
|
9
|
+
> `const` **eventClient**: [`EventClient`](../classes/EventClient.md)
|
|
10
|
+
|
|
11
|
+
## Defined in
|
|
12
|
+
|
|
13
|
+
[packages/ai-tool/src/funcs/event-client.ts:180](https://github.com/isdk/ai-tool.js/blob/5f9f0083c734722103ff5468e424b48c212a55f0/src/funcs/event-client.ts#L180)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
[**@isdk/ai-tool**](../README.md) • **Docs**
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@isdk/ai-tool](../globals.md) / eventServer
|
|
6
|
+
|
|
7
|
+
# Variable: eventServer
|
|
8
|
+
|
|
9
|
+
> `const` **eventServer**: [`EventServer`](../classes/EventServer.md)
|
|
10
|
+
|
|
11
|
+
## Defined in
|
|
12
|
+
|
|
13
|
+
[packages/ai-tool/src/funcs/event-server.ts:133](https://github.com/isdk/ai-tool.js/blob/5f9f0083c734722103ff5468e424b48c212a55f0/src/funcs/event-server.ts#L133)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
[**@isdk/ai-tool**](../README.md) • **Docs**
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@isdk/ai-tool](../globals.md) / lrucache
|
|
6
|
+
|
|
7
|
+
# Variable: lrucache
|
|
8
|
+
|
|
9
|
+
> `const` **lrucache**: [`ToolFunc`](../classes/ToolFunc.md)
|
|
10
|
+
|
|
11
|
+
## Defined in
|
|
12
|
+
|
|
13
|
+
[packages/ai-tool/src/funcs/lrucache.ts:40](https://github.com/isdk/ai-tool.js/blob/5f9f0083c734722103ff5468e424b48c212a55f0/src/funcs/lrucache.ts#L40)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
[**@isdk/ai-tool**](../README.md) • **Docs**
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@isdk/ai-tool](../globals.md) / mimeType
|
|
6
|
+
|
|
7
|
+
# Variable: mimeType
|
|
8
|
+
|
|
9
|
+
> `const` **mimeType**: `MimeType`
|
|
10
|
+
|
|
11
|
+
## Defined in
|
|
12
|
+
|
|
13
|
+
node\_modules/.pnpm/mime-type@5.0.0/node\_modules/mime-type/src/with-db.d.ts:3
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
[**@isdk/ai-tool**](../README.md) • **Docs**
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@isdk/ai-tool](../globals.md) / uuidNIL
|
|
6
|
+
|
|
7
|
+
# Variable: uuidNIL
|
|
8
|
+
|
|
9
|
+
> `const` **uuidNIL**: `NIL`
|
|
10
|
+
|
|
11
|
+
## Defined in
|
|
12
|
+
|
|
13
|
+
node\_modules/.pnpm/@types+uuid@10.0.0/node\_modules/@types/uuid/index.d.ts:100
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@isdk/ai-tool",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"author": "Riceball LEE <snowyu.lee@gmail.com>",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
"base32768": "^3.0.1",
|
|
28
28
|
"custom-ability": "^2.0.0",
|
|
29
29
|
"custom-factory": "2.3.0",
|
|
30
|
-
"date-fns": "^
|
|
30
|
+
"date-fns": "^4.1.0",
|
|
31
31
|
"events-ex": "^2.0.0",
|
|
32
|
-
"eventsource-parser": "^
|
|
32
|
+
"eventsource-parser": "^2.0.1",
|
|
33
33
|
"json-canonicalize": "^1.0.6",
|
|
34
34
|
"load-config-file": "2.0.0",
|
|
35
35
|
"lodash-es": "^4.17.21",
|
|
@@ -40,40 +40,39 @@
|
|
|
40
40
|
"secondary-cache": "^2.0.0",
|
|
41
41
|
"secure-json-parse": "^2.7.0",
|
|
42
42
|
"util-ex": "2.0.0",
|
|
43
|
-
"uuid": "^
|
|
43
|
+
"uuid": "^10.0.0",
|
|
44
44
|
"xxhashjs": "^0.2.2",
|
|
45
|
-
"yaml": "^2.
|
|
46
|
-
"yaml-types": "^0.
|
|
47
|
-
"zod": "^3.23.
|
|
48
|
-
"zod-to-json-schema": "^3.23.
|
|
45
|
+
"yaml": "^2.5.1",
|
|
46
|
+
"yaml-types": "^0.4.0",
|
|
47
|
+
"zod": "^3.23.8",
|
|
48
|
+
"zod-to-json-schema": "^3.23.3"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@antfu/eslint-config": "^
|
|
52
|
-
"@types/jest": "^29.5.
|
|
51
|
+
"@antfu/eslint-config": "^3.6.2",
|
|
52
|
+
"@types/jest": "^29.5.13",
|
|
53
53
|
"@types/lodash-es": "^4.17.12",
|
|
54
54
|
"@types/memoizee": "^0.4.11",
|
|
55
|
-
"@types/node": "^
|
|
56
|
-
"@types/uuid": "^
|
|
55
|
+
"@types/node": "^22.5.5",
|
|
56
|
+
"@types/uuid": "^10.0.0",
|
|
57
57
|
"@types/xxhashjs": "^0.2.4",
|
|
58
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
59
|
-
"bumpp": "^9.4.1",
|
|
58
|
+
"@typescript-eslint/eslint-plugin": "^8.6.0",
|
|
60
59
|
"esbuild-plugin-wasm": "^1.1.0",
|
|
61
|
-
"eslint": "^
|
|
60
|
+
"eslint": "^9.10.0",
|
|
62
61
|
"eslint-config-prettier": "^9.1.0",
|
|
63
|
-
"eslint-plugin-tsdoc": "^0.
|
|
62
|
+
"eslint-plugin-tsdoc": "^0.3.0",
|
|
64
63
|
"eventsource": "^2.0.2",
|
|
65
|
-
"fastify": "^4.
|
|
66
|
-
"prettier": "^3.3.
|
|
67
|
-
"terser": "^5.
|
|
68
|
-
"tsup": "^8.
|
|
69
|
-
"tsx": "^4.
|
|
70
|
-
"type-fest": "^4.
|
|
71
|
-
"typedoc": "^0.
|
|
72
|
-
"typedoc-plugin-markdown": "^
|
|
73
|
-
"typescript": "^5.
|
|
74
|
-
"vite": "^5.
|
|
64
|
+
"fastify": "^4.28.1",
|
|
65
|
+
"prettier": "^3.3.3",
|
|
66
|
+
"terser": "^5.32.0",
|
|
67
|
+
"tsup": "^8.3.0",
|
|
68
|
+
"tsx": "^4.19.1",
|
|
69
|
+
"type-fest": "^4.26.1",
|
|
70
|
+
"typedoc": "^0.26.7",
|
|
71
|
+
"typedoc-plugin-markdown": "^4.2.7",
|
|
72
|
+
"typescript": "^5.6.2",
|
|
73
|
+
"vite": "^5.4.6",
|
|
75
74
|
"vite-plugin-wasm": "^3.3.0",
|
|
76
|
-
"vitest": "^1.
|
|
75
|
+
"vitest": "^2.1.1"
|
|
77
76
|
},
|
|
78
77
|
"bug": "https://github.com/isdk/ai-tool.js/issues",
|
|
79
78
|
"description": "AI tools",
|
package/dist/chunk-W2LO3HZT.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{EventEmitter as t}from"events-ex";import{AdvancePropertyManager as e}from"property-manager";import{_createFunction as n}from"util-ex";import{AbortError as r,AbortErrorCode as s,AlreadyExistsError as i,AlreadyExistsErrorCode as o,BaseError as a,CommonError as c,createError as u,ErrorCode as f,InternalErrorCode as h,NotFoundErrorCode as l,NotFoundError as p,NotImplementedErrorCode as w,NotImplementationError as d,throwError as m}from"@isdk/common-error";import{createAbilityInjector as y}from"custom-ability";var b=.618,g=["get","post","put","delete","patch","list","res"],v={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"}};import{format as E,parse as x,parseISO as $}from"date-fns";import{formatISO as k,parseISO as S,toDate as O}from"date-fns";var j="MMMM d, y 'at' h:m:s b 'GMT'x";function A(t){let e;try{"string"==typeof t?e=$(t):"number"==typeof t?e=new Date(t):t instanceof Date&&(e=t)}catch(t){console.error(t)}return e}function N(t,e=j){return x(t,e,new Date)}function C(t,e=j){return E(t,e)}var M=["stop","length","content-filter","tool-calls","abort","error","other",null],T=["human","ai","generic","system","tool"],I=["user","assistant","system","tool","tool_calls"];function F(t){let e="";for(const n of t)if(n.content){e+=n.role.toLowerCase()+":";let t=n.createdAt;if(t){const n=A(t);n&&(e+=" ["+C(n)+"]")}e+=" "+n.content+"\n"}return e}var P=["chat","char","plan"],V=["internal","hf","fill"];import{BaseFactory as U}from"custom-factory";var B="default",R=class t extends U{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||B,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||B);if(e)return Reflect.construct(e,arguments);throw new c(`Prompt template type ${r} not found`,"PromptTemplate",f.InvalidArgument)}}_initialize(t){throw new d("Not implemented","PromptTemplate")}initialize(e){this.constructor!==t&&(Object.assign(this,this.toJSON(e)),e?.ignoreInitialize||this._initialize(e))}_format(t){throw new d("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 _(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 L=!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=>{L=t}));var z=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,L?r:_(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()}},q=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"}),J=Object.freeze({set:q.Set,for:q.For,in:q.In,is:q.Is,if:q.If,else:q.Else,endif:q.EndIf,elif:q.ElseIf,endfor:q.EndFor,and:q.And,or:q.Or,not:q.Not,"not in":q.NotIn,macro:q.Macro,endmacro:q.EndMacro,true:q.BooleanLiteral,false:q.BooleanLiteral,True:q.BooleanLiteral,False:q.BooleanLiteral}),D=class{constructor(t,e){this.value=t,this.type=e}};function W(t){return/\w/.test(t)}function K(t){return/[0-9]/.test(t)}var Z=[["{%",q.OpenStatement],["%}",q.CloseStatement],["{{",q.OpenExpression],["}}",q.CloseExpression],["(",q.OpenParen],[")",q.CloseParen],["{",q.OpenCurlyBracket],["}",q.CloseCurlyBracket],["[",q.OpenSquareBracket],["]",q.CloseSquareBracket],[",",q.Comma],[".",q.Dot],[":",q.Colon],["|",q.Pipe],["<=",q.ComparisonBinaryOperator],[">=",q.ComparisonBinaryOperator],["==",q.ComparisonBinaryOperator],["!=",q.ComparisonBinaryOperator],["<",q.ComparisonBinaryOperator],[">",q.ComparisonBinaryOperator],["+",q.AdditiveBinaryOperator],["-",q.AdditiveBinaryOperator],["*",q.MultiplicativeBinaryOperator],["/",q.MultiplicativeBinaryOperator],["%",q.MultiplicativeBinaryOperator],["=",q.Equals]],G=new Map([["n","\n"],["t","\t"],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function H(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=G.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===q.CloseStatement||t===q.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 D(t,q.Text));continue}}i((t=>/\s/.test(t)));const e=r[s];if("-"===e||"+"===e){const t=n.at(-1)?.type;if(t===q.Text||void 0===t)throw new SyntaxError(`Unexpected character: ${e}`);switch(t){case q.Identifier:case q.NumericLiteral:case q.BooleanLiteral:case q.StringLiteral:case q.CloseParen:case q.CloseSquareBracket:break;default:{++s;const t=i(K);n.push(new D(`${e}${t}`,t.length>0?q.NumericLiteral:q.UnaryOperator));continue}}}for(const[t,e]of Z){if(r.slice(s,s+t.length)===t){n.push(new D(t,e)),s+=t.length;continue t}}if("'"!==e&&'"'!==e)if(K(e)){const t=i(K);n.push(new D(t,q.NumericLiteral))}else{if(!W(e))throw new SyntaxError(`Unexpected character: ${e}`);{const t=i(W),e=Object.hasOwn(J,t)?J[t]:q.Identifier;e===q.In&&n.at(-1)?.type===q.Not?(n.pop(),n.push(new D("not in",q.NotIn))):n.push(new D(t,e))}}else{++s;const t=i((t=>t!==e));n.push(new D(t,q.StringLiteral)),++s}}return n}var X=class{constructor(){this.type="Statement"}},Q=class extends X{constructor(t){super(),this.body=t,this.type="Program"}},Y=class extends X{constructor(t,e,n){super(),this.test=t,this.body=e,this.alternate=n,this.type="If"}},tt=class extends X{constructor(t,e,n,r){super(),this.loopvar=t,this.iterable=e,this.body=n,this.defaultBlock=r,this.type="For"}},et=class extends X{constructor(t,e){super(),this.assignee=t,this.value=e,this.type="Set"}},nt=class extends X{constructor(t,e,n){super(),this.name=t,this.args=e,this.body=n,this.type="Macro"}},rt=class extends X{constructor(){super(...arguments),this.type="Expression"}},st=class extends rt{constructor(t,e,n){super(),this.object=t,this.property=e,this.computed=n,this.type="MemberExpression"}},it=class extends rt{constructor(t,e){super(),this.callee=t,this.args=e,this.type="CallExpression"}},ot=class extends rt{constructor(t){super(),this.value=t,this.type="Identifier"}},at=class extends rt{constructor(t){super(),this.value=t,this.type="Literal"}},ct=class extends at{constructor(){super(...arguments),this.type="NumericLiteral"}},ut=class extends at{constructor(){super(...arguments),this.type="StringLiteral"}},ft=class extends at{constructor(){super(...arguments),this.type="BooleanLiteral"}},ht=class extends at{constructor(){super(...arguments),this.type="ArrayLiteral"}},lt=class extends at{constructor(){super(...arguments),this.type="TupleLiteral"}},pt=class extends at{constructor(){super(...arguments),this.type="ObjectLiteral"}},wt=class extends rt{constructor(t,e,n){super(),this.operator=t,this.left=e,this.right=n,this.type="BinaryExpression"}},dt=class extends rt{constructor(t,e){super(),this.operand=t,this.filter=e,this.type="FilterExpression"}},mt=class extends rt{constructor(t,e){super(),this.iterable=t,this.test=e,this.type="SelectExpression"}},yt=class extends rt{constructor(t,e,n){super(),this.operand=t,this.negate=e,this.test=n,this.type="TestExpression"}},bt=class extends rt{constructor(t,e){super(),this.operator=t,this.argument=e,this.type="UnaryExpression"}},gt=class extends rt{constructor(t=void 0,e=void 0,n=void 0){super(),this.start=t,this.stop=e,this.step=n,this.type="SliceExpression"}},vt=class extends rt{constructor(t,e){super(),this.key=t,this.value=e,this.type="KeywordArgumentExpression"}};function Et(t){const e=new Q([]);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 q.Text:e=new ut(r(q.Text,"Expected text token").value);break;case q.OpenStatement:e=function(){let e;switch(r(q.OpenStatement,"Expected opening statement token"),t[n].type){case q.Set:++n,e=a(),r(q.CloseStatement,"Expected closing statement token");break;case q.If:++n,e=c(),r(q.OpenStatement,"Expected {% token"),r(q.EndIf,"Expected endif token"),r(q.CloseStatement,"Expected %} token");break;case q.Macro:++n,e=function(){const t=E();if("Identifier"!==t.type)throw new SyntaxError("Expected identifier following macro statement");const e=y();r(q.CloseStatement,"Expected closing statement token");const n=[];for(;i(q.OpenStatement,q.EndMacro);)n.push(s());return new nt(t,e,n)}(),r(q.OpenStatement,"Expected {% token"),r(q.EndMacro,"Expected endmacro token"),r(q.CloseStatement,"Expected %} token");break;case q.For:++n,e=function(){const t=u(!0);if(!(t instanceof ot||t instanceof lt))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${t.type} instead`);r(q.In,"Expected `in` keyword following loop variable");const e=f();r(q.CloseStatement,"Expected closing statement token");const a=[];for(;i(q.OpenStatement,q.EndFor)&&i(q.OpenStatement,q.Else);)a.push(s());const c=[];if(o(q.OpenStatement,q.Else))for(++n,++n,r(q.CloseStatement,"Expected closing statement token");i(q.OpenStatement,q.EndFor);)c.push(s());return new tt(t,e,a,c)}(),r(q.OpenStatement,"Expected {% token"),r(q.EndFor,"Expected endfor token"),r(q.CloseStatement,"Expected %} token");break;default:throw new SyntaxError(`Unknown statement type: ${t[n].type} ${t[n].value}`)}return e}(),e.isStatement=!0;break;case q.OpenExpression:e=function(){r(q.OpenExpression,"Expected opening expression token");const t=f();return r(q.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=f();if(o(q.Equals)){++n;const e=a();return new et(t,e)}return t}function c(){const e=f();r(q.CloseStatement,"Expected closing statement token");const i=[],a=[];for(;t[n]?.type!==q.OpenStatement||t[n+1]?.type!==q.ElseIf&&t[n+1]?.type!==q.Else&&t[n+1]?.type!==q.EndIf;)i.push(s());if(t[n]?.type===q.OpenStatement&&t[n+1]?.type!==q.EndIf)if(++n,o(q.ElseIf))r(q.ElseIf,"Expected elseif token"),a.push(c());else for(r(q.Else,"Expected else token"),r(q.CloseStatement,"Expected closing statement token");t[n]?.type!==q.OpenStatement||t[n+1]?.type!==q.EndIf;)a.push(s());return new Y(e,i,a)}function u(t=!1){const e=t?E:f,r=[e()],s=o(q.Comma);for(;s&&(++n,r.push(e()),o(q.Comma)););return s?new lt(r):r[0]}function f(){return function(){const t=h();if(o(q.If)){++n;const e=h();if(o(q.Else)){++n;const r=h();return new Y(e,[t],[r])}return new mt(t,e)}return t}()}function h(){let e=l();for(;o(q.Or);){const r=t[n];++n;const s=l();e=new wt(r,e,s)}return e}function l(){let e=p();for(;o(q.And);){const r=t[n];++n;const s=p();e=new wt(r,e,s)}return e}function p(){let e;for(;o(q.Not);){const r=t[n];++n;const s=p();e=new bt(r,s)}return e??function(){let e=w();for(;o(q.ComparisonBinaryOperator)||o(q.In)||o(q.NotIn);){const r=t[n];++n;const s=w();e=new wt(r,e,s)}return e}()}function w(){let e=g();for(;o(q.AdditiveBinaryOperator);){const r=t[n];++n;const s=g();e=new wt(r,e,s)}return e}function d(){const e=function(){let e=E();for(;o(q.Dot)||o(q.OpenSquareBracket);){const s=t[n];let i;++n;const o=s.type!==q.Dot;if(o)i=b(),r(q.CloseSquareBracket,"Expected closing square bracket");else if(i=E(),"Identifier"!==i.type)throw new SyntaxError("Expected identifier following dot operator");e=new st(e,i,o)}return e}();return o(q.OpenParen)?m(e):e}function m(t){let e=new it(t,y());return o(q.OpenParen)&&(e=m(e)),e}function y(){r(q.OpenParen,"Expected opening parenthesis for arguments list");const t=function(){const t=[];for(;!o(q.CloseParen);){let e=f();if(o(q.Equals)){if(++n,!(e instanceof ot))throw new SyntaxError("Expected identifier for keyword argument");const t=f();e=new vt(e,t)}t.push(e),o(q.Comma)&&++n}return t}();return r(q.CloseParen,"Expected closing parenthesis for arguments list"),t}function b(){const t=[];let e=!1;for(;!o(q.CloseSquareBracket);)o(q.Colon)?(t.push(void 0),++n,e=!0):(t.push(f()),o(q.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 gt(...t)}return t[0]}function g(){let e=v();for(;o(q.MultiplicativeBinaryOperator);){const r=t[n];++n;const s=v();e=new wt(r,e,s)}return e}function v(){let t=function(){let t=d();for(;o(q.Pipe);){++n;let e=E();if(!(e instanceof ot))throw new SyntaxError("Expected identifier for the filter");o(q.OpenParen)&&(e=m(e)),t=new dt(t,e)}return t}();for(;o(q.Is);){++n;const e=o(q.Not);e&&++n;let r=E();if(r instanceof ft&&(r=new ot(r.value.toString())),!(r instanceof ot))throw new SyntaxError("Expected identifier for the test");t=new yt(t,e,r)}return t}function E(){const e=t[n];switch(e.type){case q.NumericLiteral:return++n,new ct(Number(e.value));case q.StringLiteral:return++n,new ut(e.value);case q.BooleanLiteral:return++n,new ft("true"===e.value.toLowerCase());case q.Identifier:return++n,new ot(e.value);case q.OpenParen:{++n;const e=u();if(t[n].type!==q.CloseParen)throw new SyntaxError(`Expected closing parenthesis, got ${t[n].type} instead`);return++n,e}case q.OpenSquareBracket:{++n;const t=[];for(;!o(q.CloseSquareBracket);)t.push(f()),o(q.Comma)&&++n;return++n,new ht(t)}case q.OpenCurlyBracket:{++n;const t=new Map;for(;!o(q.CloseCurlyBracket);){const e=f();r(q.Colon,"Expected colon between key and value in object literal");const s=f();t.set(e,s),o(q.Comma)&&++n}return++n,new pt(t)}default:throw new SyntaxError(`Unexpected token: ${e.type}`)}}for(;n<t.length;)e.body.push(s());return e}function xt(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 $t(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 kt(t){return t.replace(/\b\w/g,(t=>t.toUpperCase()))}var St=class{constructor(t=void 0){this.type="RuntimeValue",this.builtins=new Map,this.value=t}__bool__(){return new At(!!this.value)}toString(){return""+this.value}toJSON(){return this.value}},Ot=class extends St{constructor(){super(...arguments),this.type="NumericValue"}},jt=class t extends St{constructor(){super(...arguments),this.type="StringValue",this.builtins=new Map([["upper",new It((()=>new t(this.value.toUpperCase())))],["lower",new It((()=>new t(this.value.toLowerCase())))],["strip",new It((()=>new t(this.value.trim())))],["title",new It((()=>new t(kt(this.value))))],["length",new Ot(this.value.length)],["rstrip",new It((()=>new t(this.value.trimEnd())))],["lstrip",new It((()=>new t(this.value.trimStart())))]])}},At=class extends St{constructor(){super(...arguments),this.type="BooleanValue"}},Nt=class extends St{constructor(t,e){super(t),this.orgValue=e,this.type="ObjectValue",this.builtins=new Map([["get",new It((([t,e])=>{if(!(t instanceof jt))throw new Error(`Object key must be a string: got ${t.type}`);return this.value.get(t.value)??e??new Ft}))],["items",new It((()=>new Mt(Array.from(this.value.entries()).map((([t,e])=>new Mt([new jt(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 At(this.value.size>0)}},Ct=class extends Nt{constructor(){super(...arguments),this.type="KeywordArgumentsValue"}},Mt=class extends St{constructor(){super(...arguments),this.type="ArrayValue",this.builtins=new Map([["length",new Ot(this.value.length)]])}__bool__(){return new At(this.value.length>0)}},Tt=class extends Mt{constructor(){super(...arguments),this.type="TupleValue"}},It=class extends St{constructor(){super(...arguments),this.type="FunctionValue"}},Ft=class extends St{constructor(){super(...arguments),this.type="NullValue"}},Pt=class extends St{constructor(){super(...arguments),this.type="UndefinedValue"}},Vt=class{constructor(t){this.parent=t,this.variables=new Map([["namespace",new It((t=>{if(0===t.length)return new Nt(new Map);if(1!==t.length||!(t[0]instanceof Nt))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 It],["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 Mt||t instanceof jt],["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,Bt(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 Pt}catch{return new Pt}}},Ut=class{constructor(t){this.global=t??new Vt}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 At(n.value==r.value);case"!=":return new At(n.value!=r.value)}if(n instanceof Pt||r instanceof Pt)throw new Error("Cannot perform operation on undefined values");if(n instanceof Ft||r instanceof Ft)throw new Error("Cannot perform operation on null values");if(n instanceof Ot&&r instanceof Ot)switch(t.operator.value){case"+":return new Ot(n.value+r.value);case"-":return new Ot(n.value-r.value);case"*":return new Ot(n.value*r.value);case"/":return new Ot(n.value/r.value);case"%":return new Ot(n.value%r.value);case"<":return new At(n.value<r.value);case">":return new At(n.value>r.value);case">=":return new At(n.value>=r.value);case"<=":return new At(n.value<=r.value)}else if(n instanceof Mt&&r instanceof Mt){if("+"===t.operator.value)return new Mt(n.value.concat(r.value))}else if(r instanceof Mt){const e=void 0!==r.value.find((t=>t.value===n.value));switch(t.operator.value){case"in":return new At(e);case"not in":return new At(!e)}}if((n instanceof jt||r instanceof jt)&&"+"===t.operator.value)return new jt(n.toString()+r.toString());if(n instanceof jt&&r instanceof jt)switch(t.operator.value){case"in":return new At(r.value.includes(n.value));case"not in":return new At(!r.value.includes(n.value))}if(n instanceof jt&&r instanceof Nt)switch(t.operator.value){case"in":return new At(r.value.has(n.value));case"not in":return new At(!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 It)return s.value([n],e);if(n instanceof Mt)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 Ot(n.value.length);case"reverse":return new Mt(n.value.reverse());case"sort":return new Mt(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 jt)switch(r.value){case"length":return new Ot(n.value.length);case"upper":return new jt(n.value.toUpperCase());case"lower":return new jt(n.value.toLowerCase());case"title":return new jt(kt(n.value));case"capitalize":return new jt(n.value.charAt(0).toUpperCase()+n.value.slice(1));case"trim":return new jt(n.value.trim());case"trimStart":return new jt(n.value.trimStart());case"trimEnd":return new jt(n.value.trimEnd());case"indent":return new jt(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 Ot){if("abs"===r.value)return new Ot(Math.abs(n.value));throw new Error(`Unknown NumericValue filter: ${r.value}`)}if(n instanceof Nt)switch(r.value){case"items":return new Mt(Array.from(n.value.entries()).map((([t,e])=>new Mt([new jt(t),e]))));case"length":return new Ot(n.value.size);case"string":return new jt(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 It){const[t,s]=this.evaluateArguments(r.args,e);return s.size>0&&t.push(new Ct(s)),i.value([n,...t],e)}if(n instanceof Mt){switch(s){case"selectattr":{if(n.value.some((t=>!(t instanceof Nt))))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 Mt(a)}case"map":{const[,t]=this.evaluateArguments(r.args,e);if(t.has("attribute")){const e=t.get("attribute");if(!(e instanceof jt))throw new Error("attribute must be a string");const r=t.get("default"),s=n.value.map((t=>{if(!(t instanceof Nt))throw new Error("items in map must be an object");return t.value.get(e.value)??r??new Pt}));return new Mt(s)}throw new Error("`map` expressions without `attribute` set are not currently supported.")}}throw new Error(`Unknown ArrayValue filter: ${s}`)}if(n instanceof jt){if("indent"===s){const[t,s]=this.evaluateArguments(r.args,e),i=t.at(0)??s.get("width")??new Ot(4);if(!(i instanceof Ot))throw new Error("width must be a number");const o=t.at(1)??s.get("first")??new At(!1),a=t.at(2)??s.get("blank")??new At(!1),c=n.value.split("\n"),u=" ".repeat(i.value),f=c.map(((t,e)=>!o.value&&0===e||!a.value&&0===t.length?t:u+t));return new jt(f.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 At(t.negate?!s:s)}evaluateUnaryExpression(t,e){const n=this.evaluate(t.argument,e);if("not"===t.operator.value)return new At(!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 jt(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 Ct(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 Mt||t instanceof jt))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 Ot||r instanceof Pt))throw new Error("Slice start must be numeric or undefined");if(!(s instanceof Ot||s instanceof Pt))throw new Error("Slice stop must be numeric or undefined");if(!(i instanceof Ot||i instanceof Pt))throw new Error("Slice step must be numeric or undefined");return t instanceof Mt?new Mt($t(t.value,r.value,s.value,i.value)):new jt($t(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 jt(t.property.value);if(n instanceof Nt){if(!(r instanceof jt))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 Mt||n instanceof jt)if(r instanceof Ot)s=n.value.at(r.value),n instanceof jt&&(s=new jt(n.value.at(r.value)));else{if(!(r instanceof jt))throw new Error(`Cannot access property with non-string/non-number: got ${r.type}`);s=n.builtins.get(r.value)}else{if(!(r instanceof jt))throw new Error(`Cannot access property with non-string: got ${r.type}`);s=n.builtins.get(r.value)}return s instanceof St?s:new Pt}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 Nt))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 Ft}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 Vt(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 Mt))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 Vt(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 Ot(e+1)],["index0",new Ot(e)],["revindex",new Ot(i.length-e)],["revindex0",new Ot(i.length-e-1)],["first",new At(0===e)],["last",new At(e===i.length-1)],["length",new Ot(i.length)],["previtem",e>0?i[e-1]:new Pt],["nextitem",e<i.length-1?i[e+1]:new Pt]]);n.setVariable("loop",new Nt(r)),o[e](n);a+=this.evaluateBlock(t.body,n).value,c=!1}if(c){a+=this.evaluateBlock(t.defaultBlock,n).value}return new jt(a)}evaluateMacro(t,e){return e.setVariable(t.name.value,new It(((e,n)=>{const r=new Vt(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 Ft}evaluate(t,e){if(void 0===t)return new Pt;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 Ot(Number(t.value));case"StringLiteral":return new jt(t.value);case"BooleanLiteral":return new At(t.value);case"ArrayLiteral":return new Mt(t.value.map((t=>this.evaluate(t,e))));case"TupleLiteral":return new Tt(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 jt))throw new Error(`Object keys must be strings: got ${t.type}`);n.set(t.value,this.evaluate(s,e))}return new Nt(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 Bt(t){switch(typeof t){case"number":return new Ot(t);case"string":return new jt(t);case"boolean":return new At(t);case"undefined":return new Pt;case"object":return null===t?new Ft:Array.isArray(t)?new Mt(t.map(Bt)):new Nt(new Map(Object.entries(t).map((([t,e])=>[t,Bt(e)]))),t);case"function":return new It(((e,n)=>{const r=e.map((t=>Rt(t)));return Bt(t(...r)??null)}));default:throw new Error(`Cannot convert to runtime value: ${t}`)}}function Rt(t){let e=t;if(Array.isArray(t))e=t.map((t=>Rt(t)));else if(t instanceof Map)e={},t.forEach(((t,n)=>{e[n]=Rt(t)}));else switch(t.type){case"NullValue":e=null;break;case"UndefinedValue":e=void 0;break;case"ArrayValue":e=t.value.map((t=>Rt(t)));break;case"KeywordArgumentsValue":case"ObjectValue":e=t.orgValue?t.orgValue:Rt(t.value),"KeywordArgumentsValue"===t.type&&Object.setPrototypeOf(e,{jinja_kargs:!0});break;default:t.type&&(e=t.value)}return e}function _t(t,e=0){return Math.floor(Math.random()*(t-e+1))+e}var Lt={randomInt:_t,select:function(t,e){if(Array.isArray(t)||"string"==typeof t)return void 0===e?e=_t(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[_t(n.length-1)]}return t[e]}},tojson:function(t,e,n){return e&&"object"==typeof e&&(e.depth&&(n=e.depth),e=e.indent),zt(t,e,n)}};function zt(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=>zt(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}": ${zt(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 qt=class extends Vt{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()}},Jt=class t{static{this.global=new qt}constructor(t,e={}){const n=H(t,e={lstrip_blocks:!0,trim_blocks:!0,...e});this.parsed=Et(n)}render(e){const n=new Vt(t.global);n.set("false",!1),n.set("true",!0),n.set("raise_exception",(t=>{throw new Error(t)})),n.set("range",xt);for(const[t,r]of Object.entries(e))n.set(t,r);return new Ut(n).run(this.parsed).toString()}};function Dt(t,e){let n;switch(t.type){case"Identifier":n=t.value;break;case"MemberExpression":n=Dt(t.object,e);break;case"FilterExpression":n=Dt(t.operand,e);break;case"Set":{e||(e=[]);const r=Dt(t.assignee);r&&e.push(r),n=Dt(t.value,e);break}}return n&&e?.includes(n)&&(n=void 0),n}function Wt(t){let e;if("Program"===t.type)e=t.body.some((t=>Wt(t)));else e=t.isStatement;return e}function Kt(t,e){let n=[];if(Array.isArray(t))n=t.map((t=>Kt(t,e))).filter(Boolean).flat();else switch(t.type){case"Program":n=t.body.map((t=>Kt(t,e))).filter(Boolean).flat();break;case"If":n=[Dt(t.test,e),...Kt(t.body,e),...Kt(t.alternate,e)].filter(Boolean);break;case"BinaryExpression":n=[Dt(t.left,e),Dt(t.right,e)].filter(Boolean);break;case"For":{const r=Dt(t.loopvar);r&&(e||(e=[]),e.push(r)),n=[Dt(t.iterable,e),...Kt(t.body,e)].filter(Boolean);break}case"CallExpression":n=[Dt(t.callee,e),...Kt(t.args,e)].filter(Boolean);break;default:n=[Dt(t,e)].filter(Boolean)}return n}Jt.global.assign(Lt);var Zt=class extends R{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 Jt(n)}catch(t){}return e&&(r=Wt(e.parsed)),r}getVariables(t=this.compiledTemplate){return Kt(t.parsed,[]).filter(((t,e,n)=>n.indexOf(t)===e))}_initialize(t){const e=t?.template;if("string"!=typeof e)throw new c("Prompt template must be a string","PromptTemplate",f.InvalidArgument);this.compiledTemplate=new Jt(e),this.inputVariables=Array.isArray(t?.inputVariables)?t.inputVariables:this.getVariables()}_format(t){return this.compiledTemplate.render(t)}};function Gt(t){return function(e){return t}}function Ht(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 Xt(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 Qt(t){const e=new Set;return t.forEach((t=>{"variable"===t.type&&e.add(t.name)})),[...e]}R.register(Zt,{name:"hf",aliases:["huggingface","internal","default"]});var Yt=class extends R{static isTemplate(t){let e,n,r=!1;if("object"==typeof t?(n=t.template,e=t.compiledTemplate):n=t,!e&&n)try{e=Ht(n)}catch(t){}if(e){r=Qt(e).length>0}return r}getVariables(t=this.compiledTemplate){return Qt(t)}_initialize(t){const e=t?.template;if("string"!=typeof e)throw new c("Prompt template must be a string","PromptTemplate",f.InvalidArgument);this.compiledTemplate=Ht(e),this.inputVariables=Array.isArray(t?.inputVariables)?t.inputVariables:this.getVariables()}_format(t){return Xt(this.compiledTemplate,t)}};function te(t,e){return"string"==typeof e&&(e=e.split(".").filter((t=>t.length))),e.reduce(((t,e)=>t?.[e]),t)}function ee(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 te(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):te(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=te(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=te(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):te(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=te(e,r);let o;return o=isNaN(s)?i[s.substring(1,s.length-1)]:i[parseInt(s,10)],o||""}))}(r,e,n),r}R.register(Yt,{name:"fstring",aliases:["python","f-string","langchain"]});var ne=class extends R{static isTemplate(t){const e="string"==typeof t?t:t.template;return e?.includes("{{")&&e.includes("}}")}getVariables(t){const e={};return ee(t,e,!0),[...Object.keys(e)]}_initialize(t){const e=t?.template;if("string"!=typeof e)throw new c("Prompt template must be a string","PromptTemplate",f.InvalidArgument);this.inputVariables=Array.isArray(t?.inputVariables)?t.inputVariables:this.getVariables(e)}_format(t){return ee(this.template,t)}};function re(t){return Object.keys(t).sort().map((e=>t[e]))}R.register(ne,{name:"golang",aliases:["localai","ollama"]});var se=class extends R{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 R?t.examplePrompt:R.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=re(t);n.length>0&&e.push(...n)}const n=[this.prefix,...e,this.suffix].join(this.exampleSeparator),r=this.templateFormat;return await R.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}};R.register(se,{name:"fewshot",aliases:["few_shot"]});var ie=/(\\)?(\$)(?!\()(\{?)([\w.]+)(?::?-((?:\$\{(?:\$\{(?:\$\{[^}]*\}|[^}])*}|[^}])*}|[^}])+))?(\}?)/gi;function oe(t){return t.replace(/\\\$/g,"$")}function ae(t,e,n){return t.replace(ie,((r,s,i,o,a,c,u)=>"\\"===s?r.slice(1):e[a]?e[a]===n[a]?e[a]:ae(e[a],e,n):n[a]?n[a]===t?n[a]:ae(n[a],e,n):c?c.startsWith("$")?ae(c,e,n):c:""))}function ce(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]?ae(r,e,t.parsed):e[n]:ae(r,e,t.parsed),t.parsed[n]=r?oe(r):r}for(const n in t.parsed)e[n]=t.parsed[n];return t}function ue(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=ae(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]=ue(t[r],e,n))}else for(const[r,s]of Object.entries(t))"string"!=typeof s&&"object"!=typeof s||(t[r]=ue(s,e,n))}return t}var fe=/(\S.+?[.!?])(?=\s+|$)|(\S.+?)(?=[\n]|$)/g,he=/([A-Z][a-z]{1,2}\.)\s(\w)/g,le=/(\.[a-zA-Z]\.)\s(\w)/g,pe=new RegExp("([A-Z][a-z]{1,2}\\.)@(\\w)","g"),we=new RegExp("(\\.[a-zA-Z]\\.)@(\\w)","g");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,e=!0){const n=(t=(t=(t=(t=(t=t.replace(/([。!??])\1+/g,"$1")).replace(/([。!??])([^”’])/g,"$1\n$2")).replace(/(\.{6})([^”’])/g,"$1\n$2")).replace(/(…{2})([^”’])/g,"$1\n$2")).replace(/([。!??][”’])([^,。!??])/g,"$1\n$2")).split("\n");let r=[];for(let t=0;t<n.length;t++){let s=n[t].trim();if(!s)continue;if(!e){r.push(s);continue}let i=de(s,"@",[he,le]),o=Array.from(i.matchAll(fe));if(o.length)for(let t=0;t<o.length;t++){let e=de(o[t][0]," ",[pe,we]);r.push(e)}else r.push(s)}return r}function ye(t,e=2,n=.5){const r=10**e;return Math.trunc((t+Number.EPSILON+n/r)*r)/r}async function be(t){return new Promise((e=>setTimeout(e,t)))}import{createAbilityInjector as ge}from"custom-ability";var ve="event",Ee="event-bus";var xe=ge((function(t){return class{static get emitter(){if(!this._emitter){const t=this.get(Ee)?.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 $e(t,e){return!t||t.some((t=>t instanceof RegExp?t.test(e):t===e))}var ke=498,Se=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||m("Channel closed","SSEChannel",498);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||$e(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||m("Channel closed","SSEChannel",498);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=>$e(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 Oe(t){return t instanceof ReadableStream||t instanceof WritableStream}var je=600,Ae=601,Ne=class extends a{constructor(t,e=600){super(t,500)}};function Ce(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 Ne(`Response error: ${e}`,Ae))}}})}return new ReadableStream({start(t){t.error(new Ne("Response error: No response body",Ae))}})}function Me(){return new ReadableStream({start(t){t.close()}})}import{createParser as Te}from"eventsource-parser";function Ie(t){const e=new TextDecoder;let n;return new TransformStream({async start(e){n=Te((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 Fe(){let t=!0;return e=>(t&&(e=e.trimStart())&&(t=!1),e)}function Pe(t,e){if(!t.ok)return Ce(t.body);let n=t.body||new ReadableStream({start(t){t.close()}});return n instanceof ReadableStream||(n=ReadableStream.from(n)),n.pipeThrough(Ie(e))}function Ve(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 Ue(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()}})}import{v1 as Be,v5 as Re,v4 as _e}from"uuid";import*as Le from"base32768";import{v1 as ze,v4 as qe,v5 as Je,stringify as De,parse as We,validate as Ke,version as Ze,NIL as Ge}from"uuid";var He={1:Be,4:_e,5:Re};function Xe(t=1,e){const n=He[t];return e?Le.encode(n(null,[])):n()}import Qe from"xxhashjs";import*as Ye from"base32768";import{canonicalize as tn}from"json-canonicalize";var en=Ye,{h32:nn,h64:rn}=Qe,sn=588213;function on(t,e=16){return"object"==typeof t&&(t=tn(t)),nn(t,sn).toString(e)}function an(t,e=16){return"object"==typeof t&&(t=tn(t)),rn(t,sn).toString(e)}var cn=(t=>(t[t.xxhash64=111]="xxhash64",t[t.xxhash32=112]="xxhash32",t))(cn||{});function un(t,e=111,n=sn){let r;return t.buffer&&(t=t.buffer),112!==e?(r=rn(t,n),r=new Uint16Array([r._a00,r._a16,r._a32,r._a48]),r=new Uint8Array(r.buffer)):(r=nn(t,n),r=new Uint16Array([r._low,r._high]),r=new Uint8Array(r.buffer)),r}function fn(t,e=111,n=sn){return Ye.encode(un(t,e,n))}import hn from"path";var ln=/[<>:"/\\|?*\u0000-\u001F]/,pn=/^(con|prn|aux|nul|com\d|lpt\d)$/i,wn=100,dn=/^\.+(\\|\/)|^\.+$/,mn=/\.+$/,yn=/[\u0000-\u001F\u0080-\u009F\u200E\u200F\u202A-\u202E\u2066-\u2069]/;function bn(){return new RegExp(ln.source,"g")}function gn(){return new RegExp(yn.source,"g")}function vn(t){return t&&!(ln.test(t)||gn().test(t)||dn.test(t)||mn.test(t))}function En(t){const e=t.split(hn.sep);return("/"===t[0]||e[0]&&hn.dirname(e[0])===e[0])&&e.shift(),e.every(vn)}function xn(t,e={}){const n=e.replacement||"!";if((ln.test(n)||yn.test(n))&&m("Replacement string cannot contain reserved filename characters","sanitizeFilename",f.InvalidArgument),n.length>0){const e=/([<>:"/\\|?*\u0000-\u001F]){2,}/;t=t.replace(e,"$1")}if(t=(t=(t=(t=(t=t.normalize("NFD")).replace(dn,n)).replace(bn(),n)).replace(gn(),n)).replace(mn,""),n.length>0){"."===t[0]||"."!==t[0]||(t=n+t),"."===t[t.length-1]&&(t+=n)}t=pn.test(t)?t+n:t;const r="number"==typeof e.maxLength?e.maxLength:wn;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 $n(t,e={}){const n=t.split(hn.sep);let r;("/"===t[0]||n[0]&&hn.dirname(n[0])===n[0])&&(r=n.shift());const s=n.map((t=>xn(t,e)));return void 0!==r&&s.unshift(r),s.join(hn.sep)}function kn(t,e=1){let n="";for(;e--;){const e=hn.extname(t);if(!e)break;n=e+n,t=hn.basename(t,e)}return n}function Sn(t){return t.split(".").length-1}import{isRegExpStr as On,toRegExp as jn}from"util-ex";function An(t,e){if("string"!=typeof t)throw new c("modelName must be a string","isModelNameMatched",f.InvalidArgument);switch(typeof e){case"string":if(On(e)){const n=(e=jn(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(On(n)){const r=(e=jn(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 Nn(t){return Object.keys(t).filter((t=>Number.isNaN(Number(t))))}import{pick as Cn}from"lodash-es";import{newFunction as Mn}from"util-ex";function Tn(t,e){if(e&&(e=Pn(e)),e){const n=Object.keys(e);if(n.length){const r=Object.values(e);return Mn("expression",n,`return ${t}`)(...r)}}return Mn("expression",[],`return ${t}`)()}var In=/^[a-zA-Z_$][0-9a-zA-Z_$]*$/,Fn=t=>In.test(t);function Pn(t){if(t){const e=Object.keys(t),n=e.length,r=e.filter((e=>Fn(e)&&null!==t[e]));if(n===r.length)return t;if(r.length)return t=Cn(t,r)}}function Vn(t){return t?Un(t,[],""):[]}function Un(t,e,n="."){return Array.isArray(t)?t.flatMap(((t,n)=>Un(t,[...e,`[${n}]`]))):(r=t)&&r.constructor===Object?Object.entries(t).flatMap((([t,r])=>Un(r,[...e,n+t]))):[e.join("")];var r}function Bn(t){if(t<2)throw new c("repetitionThreshold must be greater than 1","createEndWithRepetitionDetector",f.InvalidArgument);const e=new RegExp(`([\\S\\s]+)(\\1{${t-1},})$`);return function(t){return e.exec(t)}}import Rn from"path";import*as _n from"fs";function Ln(t){const e=_n.statSync(t,{throwIfNoEntry:!1});return e?.isFile()}function zn(t,e,n,r){const s=r?.signal,i=r?.exclude;let o;if(Rn.isAbsolute(t)?o=Ln(t)?t:qn(Rn.basename(t),[Rn.dirname(t)],{extNames:n,exclude:i,signal:s}):(e||(e=["."]),o=qn(t,e,{extNames:n,exclude:i,signal:s})),!o)throw new p(t,"loadFileFromPaths");{const t=o;o=_n.readFileSync(o),r&&(r.filepath=t)}return o}function qn(t,e,{extNames:n,signal:r,exclude:s=[]}){let i;const o=n?n.map((e=>kn(t,Sn(e)))):void 0;"string"==typeof s&&(s=[s]);for(const a of e){if(r?.aborted)throw r.reason;const e=Rn.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)&&Ln(r)){i=r;break}}else if(!s.includes(e)&&Ln(e)){i=e;break}}return i}function Jn(t,e,n,r,s){let i;"string"==typeof r?(i=r,r=void 0):i=r?.encoding??"utf8";return zn(t,e,n,r).toString(i)}function Dn(t,e){const n=[],r="string"==typeof t?[t]:[...t],s=new Set,i=e?.signal,o=e?.isFileMatched,a=e?.level;let c=0;for(;r.length>0;){if(i?.aborted)throw i.reason;const t=Wn(r.pop()),e=Rn.resolve(t);if(s.has(e))continue;s.add(e);const u=_n.statSync(t,{throwIfNoEntry:!1});if(u?.isDirectory()){const e=_n.readdirSync(t,{withFileTypes:!0});for(let s=0;s<e.length;s++){const i=e[s],a=Rn.join(t,i.name);i.isDirectory()?r.push(a):!i.isFile()||o&&!o(a)||n.push(a)}if(c++,a&&c>=a)break}}return n}function Wn(t){const e=_n.lstatSync(t,{throwIfNoEntry:!1});return e?.isSymbolicLink()&&(t=_n.readlinkSync(t)),t}import{existsSync as Kn,mkdirSync as Zn,readdirSync as Gn,statSync as Hn,writeFileSync as Xn}from"fs";import Qn from"path";import{Config as Yn}from"load-config-file";import{parse as tr,stringify as er}from"yaml";import{regexp as nr}from"yaml-types";import{mimeType as rr}from"mime-type/with-db";import{stringify as sr}from"yaml";var ir=[nr];function or(t){Array.isArray(t)||(t=[t]);for(const e of t){-1===ir.indexOf(e)&&ir.push(e)}}function ar(t){return tr(t,{customTags:ir})}function cr(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=Gn(t,{withFileTypes:!0,recursive:!0});for(const r of n){const n=Qn.join(t,r.name);r.isFile()&&e(n,r)}}(t,((t,e)=>{if(s?.includes(t))return;const o=Qn.extname(t),a=Hn(t);if(i.includes(o)){if(r?.hasOwnProperty(t)&&a.mtimeMs<=r[t])return;n.push(t)}})),n}function ur(t,e){return cr(t,e).map((t=>Yn.loadSync(t))).filter((t=>void 0!==t))}function fr(t,e,n=1){"."===t[0]&&n++;const r=kn(t,n);(!r||r.split(".").length<=1)&&(t+=".yaml");const s=rr.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=er(e)}const i=Qn.dirname(t);return Kn(i)||Zn(i,{recursive:!0}),Xn(t,e,{encoding:"utf8"}),t}function hr(t){t instanceof Date&&(t=t.toISOString());return function(t,e){return t?`'${e}'`:String(e)}("string"==typeof t,t)}function lr(t,e){return t.map((t=>dr(t,e))).join(" AND ")}function pr(t,e){return t.map((t=>dr(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} < ${hr(s)}`);break;case"<=":case"$lte":n.push(`${t} <= ${hr(s)}`);break;case"$gt":case">":n.push(`${t} > ${hr(s)}`);break;case"$gte":case">=":n.push(`${t} >= ${hr(s)}`);break;case"$ne":case"!=":n.push(`${t} != ${hr(s)}`);break;case"=":case"$eq":n.push(`${t} = ${hr(s)}`);break;case"$in":n.push(`${t} IN (${s.map((t=>hr(t))).join(", ")})`);break;case"$nin":n.push(`${t} NOT IN (${s.map((t=>hr(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 dr(t,e){const n=[];if("function"!=typeof e&&(e=t=>t),Array.isArray(t))n.push(lr(t,e));else for(const[r,s]of Object.entries(t))if("$and"===r)n.push(`(${lr(t[r],e)})`);else if("$or"===r)n.push(`(${pr(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 mr(t){const e=t.indexOf("://");if(e>0)return t.substring(0,e)}function yr(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 br(t){const e=t.match(/^\s*[+]?(\d+(?:[.]\d+)?)\s*([TBMK])?\s*$/i);if(!e)throw new c("Invalid formatted parameter size string.","scaleToSize",f.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 gr(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":" ")+gr(t,{level:n+1,visiting:r})}}Yn.register([".yml",".yaml"],ar),Yn.register([".json"],(function(t){return JSON.parse(t)}));var vr=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}};import{EventEmitter as Er}from"events-ex";var xr=32;function $r(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 kr=class{constructor(t){this._capacity=$r(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($r(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)}}},Sr=class extends Er{};function Or(t){return"function"==typeof t}function jr(){return"1"}var Ar=class{constructor(t,{initFn:e=jr,pauseFn:n,resumeFn:r,capacity:s=32}={}){if(Or(n)!==Or(r))throw new Error("pauseFn and resumeFn must be both set for pausing");this.maxConcurrency=t,this.free=new kr(t),this.waiting=new kr(s),this.releaseEmitter=new Sr,this.useDefaultTokens=e===jr,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 Nr(t,{timeUnit:e=1e3,uniformDistribution:n=!1}={}){const r=new Ar(n?1:t),s=n?e/t:e;return async function(){await r.acquire(),setTimeout((()=>r.release()),s)}}import{createAbilityInjector as Cr}from"custom-ability";import{defineProperty as Mr}from"util-ex";var Tr=class extends AbortController{constructor(t){super(),Mr(this,"parent",t)}abort(t,e){this.signal.aborted||("string"==typeof t&&(t=new r(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 r(e.reason||"aborted")}}},Ir=class{get maxTaskConcurrency(){return this._maxTaskConcurrency}get semaphore(){const t=this._maxTaskConcurrency;let e=this.__task_semaphore;return t>0&&!e&&(e=this.__task_semaphore=new Ar(t-1)),e}isAborted(t){const e=this.hasAsyncFeature(as);let n=this.__task_aborter;if(n&&e){if(null==t)throw new c("Missing taskId",this.name+".isAborted",f.InvalidArgument);n=n[t]}return!n||n.signal.aborted}getRunningTask(t){const e=this.hasAsyncFeature(as);let n=this.__task_aborter;if(n&&e){if(null==t)throw new c("Missing taskId",this.name+".getRunningTask",f.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(as)){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(as);if(!r&&n&&this.getRunningTask())throw new c("The task is running",this.name,f.TooManyRequests);const s=t?.aborter||new Tr(this);if(!(s instanceof Tr)){if(!(s instanceof AbortController))throw new c("aborter should be an AbortController",this.name,f.InvalidArgument);Object.setPrototypeOf(s,new Tr(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(as)){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=Ue({onStart:t=>{Mr(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(as)){const t=e?.taskId;if(null==t)throw new c("Missing data.taskId",this.name+".abort",f.InvalidArgument);n=n[t],this.cleanMultiTaskAborter(t,r)}else this.__task_aborter=void 0;n&&!n.signal.aborted&&n.abort(t,e)}}};Ir.prototype.generateAsyncTaskId=function(t,e){return this._generateAsyncTaskId(t,e)},Ir.prototype.cleanMultiTaskAborter=function(t,e){return this._cleanMultiTaskAborter(t,e)};var Fr=Cr(Ir,"abort",{afterInjection:function(t,e){let n=t.prototype._asyncFeatures||0;n|=hs.Cancelable,e&&(e.asyncFeatures&&(n|=e.asyncFeatures),e.maxTaskConcurrency>0&&(t.prototype._maxTaskConcurrency=e.maxTaskConcurrency)),t.prototype._asyncFeatures=n}});function Pr(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}import{get as Vr}from"lodash-es";import{newFunction as Ur}from"util-ex";async function Br(t,e,n){return _r(Hr(t,e,n),e,n)}function Rr(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 _r(t,e,n){if(t.length){const r=await Promise.all(t.map(((t,r)=>Gr(t,r,e,n)))),s=n?.returnArrayOnly;let i;if(r?.length){i=Tn(`{${r.map((t=>t)).join(",")}}`,e)}return i&&!s&&(i=Rr(i)),i}}function Lr(t,e,n,r){const[s,i]=t;if(!s&&"|"===i[0])return"choice: {"+function(t,e,n){const r=Hr(t,e,{...n,delimiter:":"}),s={},i=r.map((([t,e],n)=>{if(t){const t=e.indexOf(":"),n=e.slice(0,t).trim();if(s[n])throw new Error("Only one "+n+" is allowed");return s[n]=!0,e}{if("|"===e[0]){if(s.items)throw new Error("Only one items is allowed");return s.items=!0,"items:["+function(t,e='"'){return t.map((t=>Jr(t)?t:e+t+e))}(e.split("|").filter(Boolean))+"]"}const t=parseInt(e.trim());if(!isNaN(t)){if(s.maxPick)throw new Error("Only one maxPick is allowed");return s.maxPick=!0,"maxPick:"+t}if("random"===e||"ai"===e)return s.type=!0,'type:"'+e+'"';if(Jr(e)){if(s.separator)throw new Error("Only one separator is allowed");return s.separator=!0,"separator:"+e}}}));return i}(i,n,r)+"}"}async function zr([t,e],n,r,s){if(!r)return;let i,o;if(t){const t=e.split(":");i=t[0].trim(),o=t[1].trim()}else o=e,i=n+"";const a={template:o,data:{...r,...s?.templateData}};s?.templateFormat&&(a.templateFormat=s.templateFormat);const c=await R.formatIf(a);return c?(o=c,i+":"+JSON.stringify(o)):void 0}async function qr(t,e,n,r){let s=Lr(t,0,n,r);return s||(s=await zr(t,e,n,r)),s}function Jr(t){const e=t[0];return('"'===e||"'"===e)&&t[t.length-1]===e}function Dr(t){return'"'+t.replace(/(?<!\\)"(?!\\)/g,'\\"')+'"'}var Wr=["true","false","null","undefined","NaN","Infinity"];function Kr(t){return function(t,e=['""',"''","{}"]){return e.some((e=>t[0]===e[0]&&t[t.length-1]===e[1]))}(t)||!Number.isNaN(parseFloat(t))||Wr.includes(t)||Yr(t)}async function Zr(t,e){const n=Ur("async expression",[],`return ${t};`,Pn(e));let r=await n.call(this);switch(typeof r){case"number":case"boolean":case"undefined":return r;case"function":return n.toString();default:return JSON.stringify(r)}}async function Gr(t,e,n,r){const[s,i]=t,o=r?.argProcessor;if("function"==typeof o){const s=await o(t,e,n,r);if(s)return s}if(s){const t=i.indexOf(":"),e=i.slice(0,t).trim(),r=i.slice(t+1).trim();if(!(Kr(r)||n&&void 0!==Vr(n,r)))return e+":"+Dr(r);if(!Yr(i))try{return e+":"+await Zr.call(this,r,n)}catch(t){}return i}{const t=i.trim();if(n&&void 0!==Vr(n,t))return e+":"+t+', "'+t+'":'+t;if(Kr(t))return e+":"+t;if(!Yr(i))try{return e+":"+await Zr.call(this,t,n)}catch(t){}return e+":"+Dr(t)}}function Hr(t,e,n){const r=n?.delimiter??",";let s=[],i=!1,o="",a="",c=!1,u="";for(let e=0;e<t.length;e++){const n=t[e];if(n!==r||i||u)if("\\"===n)a+=n,e++,a+=t[e];else if("("!==n&&"["!==n||i)if(u&&n===u)u="",a+=n;else if("{"!==n||i)'"'===n||"'"===n?(i&&n===o?i=!1:i||(i=!0,o=n),a+=n):"="!==n||i||c||!/^[\p{L}\p{N}_ ]+$/u.test(a)?a+=n:(a+=":",c=!0);else{let r,s=e,i=!1,o="",c=-1;for(;s<t.length&&("}"!==(r=t[s])||i||c>0);)"\\"===r?s++:"{"!==r||i?"}"!==r||i?'"'!==r&&"'"!==r||(i&&n===o?i=!1:i||(i=!0,o=n)):c--:c++,s++;s<t.length&&(a+=t.substring(e,s+1),e=s)}else u="("===n?")":"]",a+=n;else a=a.trim(),a.endsWith(":")&&(a+="undefined"),s.push([c,a]),a="",c=!1}return a&&(a=a.trim(),a.endsWith(":")&&(a+="undefined"),s.push([c,a])),s}async function Xr(t,e,n){const r=t.match(/^([^(]+)(?:\((.*)\))?$/);if(!r)throw new Error("Invalid command format");const[,s,i]=r;let o;return i&&(o=await Br(i,e,n)),{command:s.trim(),args:o}}var Qr=/^\s*\(\)|[a-zA-Z_$][\w\d$]*|\(([a-zA-Z_$][\w\d$]*)(\s*,\s*([a-zA-Z_$][\w\d$]*))*\)\s*=>/;function Yr(t){return Qr.test(t)}import ts from"memoizee";import{canonicalize as es}from"json-canonicalize";function ns(t,e){var n;void 0!==e?.promise||!function(t){return"function"==typeof t&&"AsyncFunction"===t.constructor.name}(t)&&(!(n=t)||"object"!=typeof n&&"function"!=typeof n||"function"!=typeof n.then)||(e={promise:!0,...e}),void 0===e?.length&&(e={length:!1,...e});const r=e?.normalizer;return ts(t,{...e,normalizer:t=>{if(r){const e=r(t);if("string"===e)return e;e&&(t=e)}return fn(es(t))}})}import rs from"path";import{packageDirectorySync as ss}from"pkg-dir";function is(t){const e=ss({cwd:t});if(e)return e;const n=t.split(rs.sep);let r=n.lastIndexOf("dist");if(r>0)return n.slice(0,r).join(rs.sep);if(r=n.lastIndexOf("src"),r>0)return n.slice(0,r).join(rs.sep);throw new Error("can not find package directory")}var os,as=0,cs=1,us=2,fs=(t=>(t[t.MultiTask=as]="MultiTask",t[t.Cancelable=1]="Cancelable",t[t.Priority=2]="Priority",t))(fs||{}),hs=((os=hs||{})[os.MultiTask=1<<as]="MultiTask",os[os.Cancelable=2]="Cancelable",os[os.Priority=4]="Priority",os),ls=class t extends e{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),vr.has(n,t)}static run(t,e){const n=this.get(t);if(n)return n.run(e);throw new p(`${t} to run`,this.name)}static runSync(t,e){const n=this.get(t);if(n)return n.runSync(e);throw new p(`${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 p(`${t} to run`,this.name)}static runWithPosSync(t,...e){const n=this.get(t);if(n)return n.runWithPosSync(...e);throw new p(`${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);m("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),vr.has(e,t)}isStream(t){return this.stream}},ps={name:{type:"string"},description:{type:"string"},func:{type:"function",assign(t,e,r,s,i){let o=t;const a=typeof t;return i.isExported?o="function"===a?t.toString():t:t&&("string"!==a&&(t=t.toString()),o=n(t,e.scope)),o}},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"}};ls.defineProperties(ls,ps);var ws=class extends ls{constructor(){super(...arguments),this._emitter=new t,this.description="Return event bus",this.result="event"}get emitter(){return this._emitter}func(){return this.emitter}},ds=new ws(Ee);import{Cache as ms}from"secondary-cache";function ys({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 bs(t,e){let n=ls.get(t);return n||(n=new ls(t,{func:ys,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 ms(e)),n}var gs=bs("lrucache"),vs=class t extends ls{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 m("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):m(`${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 u(r,s,n)}async func(t){const e=await this.fetch(t);if(t?.stream)return e;return await e.json()}},Es={...v};vs.defineProperties(vs,Es);var xs=class extends vs{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))}}},$s={methods:{type:"array",assign(t,e,n,r,s){s?.isExported||e.assignMethods(t)}}};xs.defineProperties(xs,$s);var ks=class extends xs{async fetch(t,e){if(t||(t={}),e&&"res"===this.action){if("get"===e||"delete"===e){let n=t.id;return n||m("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)}},Ss=class extends ks{constructor(){super(...arguments),this._sseEvents={},this._forwardEvents=new Set,this.name=ve,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)}},Os=new Ss(ve);import{getAllNames as js}from"util-ex";var As=class t extends ls{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({}){}},Ns={...v};As.defineProperties(As,Ns);var Cs=class extends As{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);js(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 p(e,this.name)}};Cs.defineProperties(Cs,{methods:{type:"array"}});var Ms=class extends Cs{constructor(t,e={}){super(t,e),this.action="res",this.params={id:{type:"string"},val:{type:"any"}}}static{this.SpecialRpcMethodNames=g}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}},Ts=ds.runSync(),Is=class t extends Ms{constructor(){super(...arguments),this.name=ve,this.description="subscribe server sent event",this.result="event",this.depends={[Ee]:ds}}static get sse(){return this._sse||(this._sse=new Se),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=Ts.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)||Ts.on(n,t.ebListener)}unforward(e){"string"==typeof e&&(e=[e]);for(const n of e)Ts.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};m("event is required","sub",f.InvalidArgument)}$unsub({event:t}){if(t)return this.unforward(t),{event:t};m("event is required","unsub",f.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}}m("event or data is required","pub",f.InvalidArgument)}isStream(t){return"list"===this.getMethodFromParams(t)}},Fs=new Is(ve);function Ps(){ds.register(),gs.register()}export{b as PASSING_SCORE,g as ActionNames,v as RemoteToolFuncSchema,r as AbortError,s as AbortErrorCode,i as AlreadyExistsError,o as AlreadyExistsErrorCode,a as BaseError,c as CommonError,u as createError,f as ErrorCode,h as InternalErrorCode,l as NotFoundErrorCode,p as NotFoundError,w as NotImplementedErrorCode,d as NotImplementationError,m as throwError,x as parseDateFormat,A as toDateTime,N as textToDate,C as dateToText,k as formatISO,S as parseISO,O as toDate,M as AITextGenerationFinishReasons,T as AIMessageTypes,I as AIChatRoles,F as messagesToText,P as PromptTypes,V as PromptTemplateTypes,B as defaultTemplateFormat,R as PromptTemplate,z as PromptExampleSelector,H as tokenize,Et as parse,Ut as Interpreter,Lt as builtins,qt as EnvironmentEx,Jt as Template,Zt as HfPromptTemplate,Gt as createHfValueFunc,Ht as parseFString,Xt as interpolateFString,Yt as FStringPromptTemplate,ee as interpolateGolangTemplate,ne as GolangPromptTemplate,re as sortedValues,se as FewShotPromptTemplate,ae as interpolateEnv,ce as expandEnv,ue as expandObjEnv,me as splitSentence,ye as truncTo,be as wait,ve as EventName,Ee as EventBusName,xe as backendEventable,ke as SSEChannelAlreadyClosedErrCode,Se as SSEChannel,Oe as isWebStream,je as RStreamErrCode,Ae as ResponseRStreamErrCode,Ne as ReadableStreamError,Ce as getResponseErrorReadableStream,Me as createEmptyReadableStream,Ie as createEventStreamTransformer,Fe as trimStartOfStreamHelper,Pe as AIStream,Ve as readableFromAsyncIterable,Ue as createCallbacksTransformer,Xe as uuid,ze as v1,qe as v4,Je as v5,De as stringify,We as parse2,Ke as validate,Ze as version,Ge as NIL,tn as canonicalize,en as base32768,on as xxhash32,an as xxhash64,cn as XXHashAlgorithm,un as xxhash,fn as xxhashAsStr,ln as FilenameReservedRegex,pn as WindowsReservedNameRegex,bn as filenameReservedRegex,gn as reControlCharsRegex,vn as isValidFilename,En as isValidFilepath,xn as sanitizeFilename,$n as sanitizeFilepath,kn as getMultiLevelExtname,Sn as extNameLevel,An as isModelNameMatched,Nn as getAllEnumKeys,Tn as parseJsJson,Pn as filterValidFnScope,Vn as getKeysPath,Bn as createEndWithRepetitionDetector,Ln as fileIsExists,zn as loadFileFromPaths,Jn as loadTextFromPaths,Dn as readFilenamesRecursiveSync,Wn as getRealFilepath,Yn as ConfigFile,rr as mimeType,or as registerYamlTag,ar as parseYaml,cr as getConfigFileNames,ur as getConfigs,fr as saveConfigFile,sr as stringify2,dr as jsonFilterToWhere,mr as matchUrlProtocol,yr as paramsSizeToScaleStr,br as scaleStrToParamsSize,gr as jsonToMarkdownStr,vr as IntSet,xr as DefaultAsyncSemaphoreCapacity,Ar as Semaphore,Nr as RateLimit,as as ToolAsyncMultiTaskBit,cs as ToolAsyncCancelableBit,us as ToolAsyncPriorityBit,fs as AsyncFeatureBits,hs as AsyncFeatures,ls as ToolFunc,ps as ToolFuncSchema,Tr as TaskAbortController,Ir as CancelableAbility,Fr as makeToolFuncCancelable,Pr as countRegexMatches,Br as parseObjectArguments,Rr as simplifyObjectArguments,_r as parseObjectArgumentInfos,Lr as ChoiceArgProcessor,zr as TemplateArgProcessor,qr as AIArgProcessor,Dr as quoteStr,Gr as parseObjectArgInfo,Hr as parseObjectArgumentsAsArgInfos,Xr as parseCommand,ns as memoize,is as getPackageDir,y as createAbilityInjector,vs as ClientTools,Es as ClientToolFuncSchema,As as ServerTools,Ns as ServerToolFuncSchema,ws as EventToolFunc,ds as event,ys as _lrucache,bs as createLRUCache,gs as lrucache,ks as ResClientTools,Ss as EventClient,Os as eventClient,Ms as ResServerTools,Is as EventServer,Fs as eventServer,Ps as registerCoreTools};
|
package/docs/.nojekyll
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false.
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
[@isdk/ai-tool](../README.md) / [Exports](../modules.md) / AsyncFeatureBits
|
|
2
|
-
|
|
3
|
-
# Enumeration: AsyncFeatureBits
|
|
4
|
-
|
|
5
|
-
## Table of contents
|
|
6
|
-
|
|
7
|
-
### Enumeration Members
|
|
8
|
-
|
|
9
|
-
- [Cancelable](AsyncFeatureBits.md#cancelable)
|
|
10
|
-
- [MultiTask](AsyncFeatureBits.md#multitask)
|
|
11
|
-
- [Priority](AsyncFeatureBits.md#priority)
|
|
12
|
-
|
|
13
|
-
## Enumeration Members
|
|
14
|
-
|
|
15
|
-
### Cancelable
|
|
16
|
-
|
|
17
|
-
• **Cancelable** = ``1``
|
|
18
|
-
|
|
19
|
-
#### Defined in
|
|
20
|
-
|
|
21
|
-
[packages/ai-tool/src/tool-func.ts:13](https://github.com/isdk/ai-tool.js/blob/c5e620338f3b80d6ef09148577c5087098896d8b/src/tool-func.ts#L13)
|
|
22
|
-
|
|
23
|
-
___
|
|
24
|
-
|
|
25
|
-
### MultiTask
|
|
26
|
-
|
|
27
|
-
• **MultiTask** = ``0``
|
|
28
|
-
|
|
29
|
-
#### Defined in
|
|
30
|
-
|
|
31
|
-
[packages/ai-tool/src/tool-func.ts:12](https://github.com/isdk/ai-tool.js/blob/c5e620338f3b80d6ef09148577c5087098896d8b/src/tool-func.ts#L12)
|
|
32
|
-
|
|
33
|
-
___
|
|
34
|
-
|
|
35
|
-
### Priority
|
|
36
|
-
|
|
37
|
-
• **Priority** = ``2``
|
|
38
|
-
|
|
39
|
-
#### Defined in
|
|
40
|
-
|
|
41
|
-
[packages/ai-tool/src/tool-func.ts:14](https://github.com/isdk/ai-tool.js/blob/c5e620338f3b80d6ef09148577c5087098896d8b/src/tool-func.ts#L14)
|