llm-exe 0.0.3 → 0.0.5
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/embedding/openai.js +2 -1
- package/dist/embedding/openai.js.map +1 -1
- package/dist/executor/_base.d.ts +17 -6
- package/dist/executor/_base.js +68 -26
- package/dist/executor/_base.js.map +1 -1
- package/dist/executor/_functions.d.ts +2 -2
- package/dist/executor/_functions.js.map +1 -1
- package/dist/executor/_metadata.js +1 -11
- package/dist/executor/_metadata.js.map +1 -1
- package/dist/executor/llm.d.ts +3 -3
- package/dist/executor/llm.js.map +1 -1
- package/dist/interfaces/chat.d.ts +7 -0
- package/dist/interfaces/functions.d.ts +14 -24
- package/dist/interfaces/functions.js +1 -0
- package/dist/interfaces/functions.js.map +1 -1
- package/dist/interfaces/parser.d.ts +1 -4
- package/dist/llm/openai.d.ts +3 -3
- package/dist/llm/openai.js +2 -0
- package/dist/llm/openai.js.map +1 -1
- package/dist/parser/_base.js +2 -3
- package/dist/parser/_base.js.map +1 -1
- package/dist/parser/_functions.d.ts +24 -15
- package/dist/parser/_functions.js +3 -0
- package/dist/parser/_functions.js.map +1 -1
- package/dist/parser/parsers/CustomParser.d.ts +7 -6
- package/dist/parser/parsers/CustomParser.js +3 -2
- package/dist/parser/parsers/CustomParser.js.map +1 -1
- package/dist/parser/parsers/ListToJsonParser.js +2 -1
- package/dist/parser/parsers/ListToJsonParser.js.map +1 -1
- package/dist/parser/parsers/StringExtractParser.d.ts +12 -0
- package/dist/parser/parsers/StringExtractParser.js +40 -0
- package/dist/parser/parsers/StringExtractParser.js.map +1 -0
- package/dist/plugins/callable/callable.d.ts +12 -0
- package/dist/plugins/callable/callable.js +19 -0
- package/dist/plugins/callable/callable.js.map +1 -1
- package/dist/plugins/callable/index.d.ts +4 -0
- package/dist/prompt/_base.d.ts +2 -2
- package/dist/prompt/_base.js.map +1 -1
- package/dist/prompt/chat.d.ts +10 -1
- package/dist/prompt/chat.js +77 -13
- package/dist/prompt/chat.js.map +1 -1
- package/dist/state/dialogue.d.ts +1 -0
- package/dist/state/dialogue.js +16 -0
- package/dist/state/dialogue.js.map +1 -1
- package/dist/utils/const.d.ts +3 -0
- package/dist/utils/const.js +7 -0
- package/dist/utils/const.js.map +1 -0
- package/dist/utils/modules/handlebars/helpers/index.d.ts +1 -0
- package/dist/utils/modules/handlebars/helpers/index.js +5 -1
- package/dist/utils/modules/handlebars/helpers/index.js.map +1 -1
- package/dist/utils/modules/handlebars/index.js +7 -6
- package/dist/utils/modules/handlebars/index.js.map +1 -1
- package/dist/utils/modules/handlebars/templates/index.js +4 -4
- package/dist/utils/modules/handlebars/templates/index.js.map +1 -1
- package/dist/utils/modules/index.d.ts +10 -1
- package/dist/utils/modules/index.js +28 -1
- package/dist/utils/modules/index.js.map +1 -1
- package/dist/vector/pinecone.js +3 -2
- package/dist/vector/pinecone.js.map +1 -1
- package/package.json +22 -12
- package/readme.md +2 -0
|
@@ -11,84 +11,93 @@ import { ListToArrayParser } from "./parsers/ListToArrayParser";
|
|
|
11
11
|
import { ReplaceStringTemplateParser } from "./parsers/ReplaceStringTemplateParser";
|
|
12
12
|
import { MarkdownCodeBlockParser } from "./parsers/MarkdownCodeBlock";
|
|
13
13
|
import { MarkdownCodeBlocksParser } from "./parsers/MarkdownCodeBlocks";
|
|
14
|
+
import { StringExtractParser, StringExtractParserOptions } from "./parsers/StringExtractParser";
|
|
15
|
+
export type ParserOptions<T extends CreateParserType, S extends JSONSchema | undefined = undefined> = T extends "json" ? BaseParserOptionsWithSchema<S> : T extends "listToJson" ? BaseParserOptionsWithSchema<S> : T extends "stringExtract" ? StringExtractParserOptions : T extends "markdownCodeBlocks" ? undefined : T extends "markdownCodeBlock" ? undefined : T extends "listToArray" ? undefined : T extends "listToKeyValue" ? undefined : T extends "replaceStringTemplate" ? undefined : T extends "number" ? undefined : T extends "boolean" ? undefined : T extends "string" ? undefined : undefined;
|
|
14
16
|
/**
|
|
15
17
|
* Creates a parser based on the given type.
|
|
16
18
|
* @template S - JSON schema type.
|
|
17
19
|
* @param {Extract<CreateParserType, "listToKeyValue">} type - The type of parser to create.
|
|
18
20
|
* @returns An instance of ListToKeyValueParser.
|
|
19
21
|
*/
|
|
20
|
-
export declare function createParser<
|
|
22
|
+
export declare function createParser<T extends Extract<CreateParserType, "markdownCodeBlocks">>(type: T): MarkdownCodeBlocksParser;
|
|
21
23
|
/**
|
|
22
24
|
* Creates a parser based on the given type.
|
|
23
25
|
* @template S - JSON schema type.
|
|
24
26
|
* @param {Extract<CreateParserType, "listToKeyValue">} type - The type of parser to create.
|
|
25
27
|
* @returns An instance of ListToKeyValueParser.
|
|
26
28
|
*/
|
|
27
|
-
export declare function createParser<
|
|
29
|
+
export declare function createParser<T extends Extract<CreateParserType, "markdownCodeBlock">>(type: T): MarkdownCodeBlockParser;
|
|
28
30
|
/**
|
|
29
31
|
* Creates a parser based on the given type.
|
|
30
32
|
* @template S - JSON schema type.
|
|
31
33
|
* @param {Extract<CreateParserType, "listToKeyValue">} type - The type of parser to create.
|
|
32
34
|
* @returns An instance of ListToKeyValueParser.
|
|
33
35
|
*/
|
|
34
|
-
export declare function createParser<
|
|
36
|
+
export declare function createParser<T extends Extract<CreateParserType, "listToKeyValue">>(type: T): ListToKeyValueParser;
|
|
35
37
|
/**
|
|
36
38
|
* Creates a parser based on the given type and schema.
|
|
37
39
|
* @template S - JSON schema type.
|
|
38
40
|
* @param {Extract<CreateParserType, "listToJson">} type - The type of parser to create.
|
|
39
|
-
* @param
|
|
41
|
+
* @param options - The JSON schema.
|
|
40
42
|
* @returns An instance of ListToJsonParser.
|
|
41
43
|
*/
|
|
42
|
-
export declare function createParser<S extends JSONSchema | undefined = undefined>(type:
|
|
44
|
+
export declare function createParser<T extends Extract<CreateParserType, "listToJson">, S extends JSONSchema | undefined = undefined>(type: T, options: ParserOptions<T, S>): ListToJsonParser<S>;
|
|
43
45
|
/**
|
|
44
46
|
* Creates a parser based on the given type.
|
|
45
47
|
* @template S - JSON schema type.
|
|
46
48
|
* @param {Extract<CreateParserType, "listToArray">} type - The type of parser to create.
|
|
47
49
|
* @returns An instance of ListToArrayParser.
|
|
48
50
|
*/
|
|
49
|
-
export declare function createParser<S extends JSONSchema | undefined = undefined>(type:
|
|
51
|
+
export declare function createParser<T extends Extract<CreateParserType, "listToArray">, S extends JSONSchema | undefined = undefined>(type: T): ListToArrayParser;
|
|
50
52
|
/**
|
|
51
53
|
* Creates a parser based on the given type.
|
|
52
54
|
* @template S - JSON schema type.
|
|
53
55
|
* @param {Extract<CreateParserType, "number">} type - The type of parser to create.
|
|
54
56
|
* @returns An instance of NumberParser.
|
|
55
57
|
*/
|
|
56
|
-
export declare function createParser<S extends JSONSchema | undefined = undefined>(type:
|
|
58
|
+
export declare function createParser<T extends Extract<CreateParserType, "number">, S extends JSONSchema | undefined = undefined>(type: T): NumberParser;
|
|
57
59
|
/**
|
|
58
60
|
* Creates a parser based on the given type.
|
|
59
61
|
* @template S - JSON schema type.
|
|
60
62
|
* @param {Extract<CreateParserType, "number">} type - The type of parser to create.
|
|
61
63
|
* @returns An instance of NumberParser.
|
|
62
64
|
*/
|
|
63
|
-
export declare function createParser<S extends JSONSchema | undefined = undefined>(type:
|
|
65
|
+
export declare function createParser<T extends Extract<CreateParserType, "boolean">, S extends JSONSchema | undefined = undefined>(type: T): BooleanParser;
|
|
64
66
|
/**
|
|
65
67
|
* Creates a parser based on the given type.
|
|
66
68
|
* @template S - JSON schema type.
|
|
67
69
|
* @param {Extract<CreateParserType, "replaceStringTemplate">} type - The type of parser to create.
|
|
68
70
|
* @returns An instance of ReplaceStringTemplateParser.
|
|
69
71
|
*/
|
|
70
|
-
export declare function createParser<S extends JSONSchema | undefined = undefined>(type:
|
|
72
|
+
export declare function createParser<T extends Extract<CreateParserType, "replaceStringTemplate">, S extends JSONSchema | undefined = undefined>(type: T): ReplaceStringTemplateParser;
|
|
71
73
|
/**
|
|
72
74
|
* Creates a parser based on the given type and schema.
|
|
73
75
|
* @template S - JSON schema type.
|
|
74
76
|
* @param {Extract<CreateParserType, "json">} type - The type of parser to create.
|
|
75
|
-
* @param
|
|
77
|
+
* @param [options] - The JSON schema.
|
|
76
78
|
* @returns An instance of JsonParser.
|
|
77
79
|
*/
|
|
78
|
-
export declare function createParser<S extends JSONSchema | undefined = undefined>(type:
|
|
80
|
+
export declare function createParser<T extends Extract<CreateParserType, "json">, S extends JSONSchema | undefined = undefined>(type: T, options: ParserOptions<T, S>): JsonParser<S>;
|
|
79
81
|
/**
|
|
80
82
|
* Creates a parser based on the given type.
|
|
81
83
|
* @template S - JSON schema type.
|
|
82
84
|
* @param {Extract<CreateParserType, "string">} type - The type of parser to create.
|
|
83
85
|
* @returns An instance of StringParser.
|
|
84
86
|
*/
|
|
85
|
-
export declare function createParser<S extends JSONSchema | undefined = undefined>(type:
|
|
87
|
+
export declare function createParser<T extends Extract<CreateParserType, "string">, S extends JSONSchema | undefined = undefined>(type: T): StringParser;
|
|
88
|
+
/**
|
|
89
|
+
* Creates a parser based on the given type.
|
|
90
|
+
* @template S - JSON schema type.
|
|
91
|
+
* @param {Extract<CreateParserType, "string">} type - The type of parser to create.
|
|
92
|
+
* @returns An instance of StringParser.
|
|
93
|
+
*/
|
|
94
|
+
export declare function createParser<T extends Extract<CreateParserType, "stringExtract">, S extends JSONSchema | undefined = undefined>(type: T, options: ParserOptions<T>): StringExtractParser;
|
|
86
95
|
/**
|
|
87
96
|
* Creates a default string parser if type defined
|
|
88
97
|
* @template S - JSON schema type.
|
|
89
98
|
* @param {Extract<CreateParserType, "string">} type - The type of parser to create.
|
|
90
99
|
* @returns An instance of StringParser.
|
|
91
100
|
*/
|
|
92
|
-
export declare function createParser<S extends JSONSchema | undefined = undefined>(type?: undefined): StringParser;
|
|
93
|
-
export declare function createParser<S extends JSONSchema | undefined = undefined>(type:
|
|
94
|
-
export declare function createCustomParser<
|
|
101
|
+
export declare function createParser<T extends CreateParserType, S extends JSONSchema | undefined = undefined>(type?: undefined): StringParser;
|
|
102
|
+
export declare function createParser<T extends CreateParserType, S extends JSONSchema | undefined = undefined>(type: T, options?: ParserOptions<T>): JsonParser<S> | ListToJsonParser<S> | StringParser | NumberParser | BooleanParser | ListToArrayParser | ListToKeyValueParser | ReplaceStringTemplateParser | MarkdownCodeBlockParser | MarkdownCodeBlocksParser | StringExtractParser;
|
|
103
|
+
export declare function createCustomParser<O>(name: string, parserFn: (text: string, inputValues: ExecutorContext<any, O>) => O): CustomParser<ReturnType<typeof parserFn>>;
|
|
@@ -12,6 +12,7 @@ const ListToArrayParser_1 = require("./parsers/ListToArrayParser");
|
|
|
12
12
|
const ReplaceStringTemplateParser_1 = require("./parsers/ReplaceStringTemplateParser");
|
|
13
13
|
const MarkdownCodeBlock_1 = require("./parsers/MarkdownCodeBlock");
|
|
14
14
|
const MarkdownCodeBlocks_1 = require("./parsers/MarkdownCodeBlocks");
|
|
15
|
+
const StringExtractParser_1 = require("./parsers/StringExtractParser");
|
|
15
16
|
/**
|
|
16
17
|
* Creates a parser based on the given type and schema.
|
|
17
18
|
* @template S - JSON schema type.
|
|
@@ -39,6 +40,8 @@ function createParser(type, options) {
|
|
|
39
40
|
return new BooleanParser_1.BooleanParser();
|
|
40
41
|
case "number":
|
|
41
42
|
return new NumberParser_1.NumberParser();
|
|
43
|
+
case "stringExtract":
|
|
44
|
+
return new StringExtractParser_1.StringExtractParser(options);
|
|
42
45
|
case "string":
|
|
43
46
|
default:
|
|
44
47
|
return new StringParser_1.StringParser();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_functions.js","sourceRoot":"src/","sources":["parser/_functions.ts"],"names":[],"mappings":";;;AAMA,yDAAsD;AACtD,2DAAwD;AACxD,yDAAsD;AACtD,qDAAkD;AAClD,iEAA8D;AAC9D,yEAAsE;AACtE,yDAAsD;AACtD,mEAAgE;AAChE,uFAAoF;AACpF,mEAAsE;AACtE,qEAAwE;
|
|
1
|
+
{"version":3,"file":"_functions.js","sourceRoot":"src/","sources":["parser/_functions.ts"],"names":[],"mappings":";;;AAMA,yDAAsD;AACtD,2DAAwD;AACxD,yDAAsD;AACtD,qDAAkD;AAClD,iEAA8D;AAC9D,yEAAsE;AACtE,yDAAsD;AACtD,mEAAgE;AAChE,uFAAoF;AACpF,mEAAsE;AACtE,qEAAwE;AACxE,uEAGuC;AAoLvC;;;;;;GAMG;AACH,SAAgB,YAAY,CAI1B,IAAQ,EACR,OAAa;IAab,QAAQ,IAAI,EAAE;QACZ,KAAK,oBAAoB;YACvB,OAAO,IAAI,6CAAwB,EAAE,CAAC;QACxC,KAAK,mBAAmB;YACtB,OAAO,IAAI,2CAAuB,EAAE,CAAC;QACvC,KAAK,MAAM;YACT,OAAO,IAAI,uBAAU,CAAC,OAAO,CAAC,CAAC;QACjC,KAAK,aAAa;YAChB,OAAO,IAAI,qCAAiB,EAAE,CAAC;QACjC,KAAK,YAAY;YACf,OAAO,IAAI,mCAAgB,CAAC,OAAO,CAAC,CAAC;QACvC,KAAK,gBAAgB;YACnB,OAAO,IAAI,2CAAoB,EAAE,CAAC;QACpC,KAAK,uBAAuB;YAC1B,OAAO,IAAI,yDAA2B,EAAE,CAAC;QAC3C,KAAK,SAAS;YACZ,OAAO,IAAI,6BAAa,EAAE,CAAC;QAC7B,KAAK,QAAQ;YACX,OAAO,IAAI,2BAAY,EAAE,CAAC;QAC5B,KAAK,eAAe;YAClB,OAAO,IAAI,yCAAmB,CAAC,OAAO,CAAC,CAAC;QAC1C,KAAK,QAAQ,CAAC;QACd;YACE,OAAO,IAAI,2BAAY,EAAE,CAAC;KAC7B;AACH,CAAC;AA3CD,oCA2CC;AAED,SAAgB,kBAAkB,CAChC,IAAY,EACZ,QAAmE;IAEnE,OAAO,IAAI,2BAAY,CAA8B,IAAI,EAAE,QAAQ,CAAC,CAAC;AACvE,CAAC;AALD,gDAKC"}
|
|
@@ -2,26 +2,27 @@ import { ExecutorContext } from "../../interfaces";
|
|
|
2
2
|
import { BaseParser } from "../_base";
|
|
3
3
|
/**
|
|
4
4
|
* CustomParser class, extending the BaseParser class.
|
|
5
|
-
* @template
|
|
5
|
+
* @template I The expected type of the input
|
|
6
|
+
* @template O The type of the parsed value (output)
|
|
6
7
|
* @extends {BaseParser<T>}
|
|
7
8
|
*/
|
|
8
|
-
export declare class CustomParser<
|
|
9
|
+
export declare class CustomParser<O = any> extends BaseParser<O> {
|
|
9
10
|
/**
|
|
10
11
|
* Custom parsing function.
|
|
11
12
|
* @type {any}
|
|
12
13
|
*/
|
|
13
|
-
parserFn: (text: string, inputValues: ExecutorContext<
|
|
14
|
+
parserFn: (text: string, inputValues: ExecutorContext<any, O>) => O;
|
|
14
15
|
/**
|
|
15
16
|
* Creates a new CustomParser instance.
|
|
16
17
|
* @param {string} name The name of the parser.
|
|
17
18
|
* @param {any} parserFn The custom parsing function.
|
|
18
19
|
*/
|
|
19
|
-
constructor(name: string, parserFn: (text: string, inputValues: ExecutorContext<
|
|
20
|
+
constructor(name: string, parserFn: (text: string, inputValues: ExecutorContext<any, O>) => O);
|
|
20
21
|
/**
|
|
21
22
|
* Parses the text using the custom parsing function.
|
|
22
23
|
* @param {string} text The text to be parsed.
|
|
23
24
|
* @param {any} inputValues Additional input values for the parser function.
|
|
24
|
-
* @returns {
|
|
25
|
+
* @returns {O} The parsed value.
|
|
25
26
|
*/
|
|
26
|
-
parse(text: string, inputValues: ExecutorContext<
|
|
27
|
+
parse(text: string, inputValues: ExecutorContext<any, O>): O;
|
|
27
28
|
}
|
|
@@ -4,7 +4,8 @@ exports.CustomParser = void 0;
|
|
|
4
4
|
const _base_1 = require("../_base");
|
|
5
5
|
/**
|
|
6
6
|
* CustomParser class, extending the BaseParser class.
|
|
7
|
-
* @template
|
|
7
|
+
* @template I The expected type of the input
|
|
8
|
+
* @template O The type of the parsed value (output)
|
|
8
9
|
* @extends {BaseParser<T>}
|
|
9
10
|
*/
|
|
10
11
|
class CustomParser extends _base_1.BaseParser {
|
|
@@ -31,7 +32,7 @@ class CustomParser extends _base_1.BaseParser {
|
|
|
31
32
|
* Parses the text using the custom parsing function.
|
|
32
33
|
* @param {string} text The text to be parsed.
|
|
33
34
|
* @param {any} inputValues Additional input values for the parser function.
|
|
34
|
-
* @returns {
|
|
35
|
+
* @returns {O} The parsed value.
|
|
35
36
|
*/
|
|
36
37
|
parse(text, inputValues) {
|
|
37
38
|
return this.parserFn.call(this, text, inputValues);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomParser.js","sourceRoot":"src/","sources":["parser/parsers/CustomParser.ts"],"names":[],"mappings":";;;AACA,oCAAsC;AAEtC
|
|
1
|
+
{"version":3,"file":"CustomParser.js","sourceRoot":"src/","sources":["parser/parsers/CustomParser.ts"],"names":[],"mappings":";;;AACA,oCAAsC;AAEtC;;;;;GAKG;AACH,MAAa,YAAsB,SAAQ,kBAAa;IAMtD;;;;OAIG;IACH,YACE,IAAY,EACZ,QAAmE;QAEnE,KAAK,CAAC,IAAI,CAAC,CAAC;QAdd;;;WAGG;QACH;;;;;WAA2E;QAWzE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IACD;;;;;OAKG;IACH,KAAK,CAAC,IAAY,EAAE,WAAoC;QACtD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC;CACF;AA3BD,oCA2BC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ListToJsonParser = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
4
5
|
const _base_1 = require("../_base");
|
|
5
6
|
class ListToJsonParser extends _base_1.BaseParser {
|
|
6
7
|
constructor(options) {
|
|
@@ -12,7 +13,7 @@ class ListToJsonParser extends _base_1.BaseParser {
|
|
|
12
13
|
lines.forEach((line) => {
|
|
13
14
|
const [key, value] = line.split(":");
|
|
14
15
|
if (value) {
|
|
15
|
-
output[
|
|
16
|
+
output[(0, utils_1.camelCase)(key)] = value.trim();
|
|
16
17
|
}
|
|
17
18
|
});
|
|
18
19
|
if (this.schema) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListToJsonParser.js","sourceRoot":"src/","sources":["parser/parsers/ListToJsonParser.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ListToJsonParser.js","sourceRoot":"src/","sources":["parser/parsers/ListToJsonParser.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAEpC,oCAAsC;AAGtC,MAAa,gBAGX,SAAQ,kBAAa;IACrB,YAAY,OAAwC;QAClD,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IACD,KAAK,CAAC,IAAY;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,KAAK,EAAE;gBACT,MAAM,CAAC,IAAA,iBAAS,EAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;aACvC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;SACnC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AArBD,4CAqBC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseParser } from "../_base";
|
|
2
|
+
import { BaseParserOptions } from "../../types";
|
|
3
|
+
export interface StringExtractParserOptions extends BaseParserOptions {
|
|
4
|
+
enum: string[];
|
|
5
|
+
ignoreCase?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare class StringExtractParser extends BaseParser<string> {
|
|
8
|
+
private enum;
|
|
9
|
+
private ignoreCase;
|
|
10
|
+
constructor(options?: StringExtractParserOptions);
|
|
11
|
+
parse(text: string): string;
|
|
12
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StringExtractParser = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
const _base_1 = require("../_base");
|
|
6
|
+
class StringExtractParser extends _base_1.BaseParser {
|
|
7
|
+
constructor(options) {
|
|
8
|
+
super("stringExtract", options);
|
|
9
|
+
Object.defineProperty(this, "enum", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
configurable: true,
|
|
12
|
+
writable: true,
|
|
13
|
+
value: []
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(this, "ignoreCase", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value: void 0
|
|
20
|
+
});
|
|
21
|
+
if (options?.enum) {
|
|
22
|
+
this.enum.push(...options.enum);
|
|
23
|
+
}
|
|
24
|
+
if (options?.ignoreCase) {
|
|
25
|
+
this.ignoreCase = true;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
parse(text) {
|
|
29
|
+
(0, utils_1.assert)(typeof text === "string", `Invalid input. Expected string. Received ${typeof text}.`);
|
|
30
|
+
for (const option of this.enum) {
|
|
31
|
+
const regex = this.ignoreCase ? new RegExp(option.toLowerCase(), 'i') : new RegExp(option);
|
|
32
|
+
if (regex.test(text)) {
|
|
33
|
+
return option;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return "";
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.StringExtractParser = StringExtractParser;
|
|
40
|
+
//# sourceMappingURL=StringExtractParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StringExtractParser.js","sourceRoot":"src/","sources":["parser/parsers/StringExtractParser.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AACjC,oCAAsC;AAQtC,MAAa,mBAAoB,SAAQ,kBAAkB;IAIzD,YAAY,OAAoC;QAC9C,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAJlC;;;;mBAAyB,EAAE;WAAC;QAC5B;;;;;WAA4B;QAI1B,IAAI,OAAO,EAAE,IAAI,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;SACjC;QACD,IAAG,OAAO,EAAE,UAAU,EAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;SACvB;IACH,CAAC;IACD,KAAK,CAAC,IAAY;QAChB,IAAA,cAAM,EACJ,OAAO,IAAI,KAAK,QAAQ,EACxB,4CAA4C,OAAO,IAAI,GAAG,CAC3D,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;YACzF,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACpB,OAAO,MAAM,CAAC;aACf;SACF;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AA1BD,kDA0BC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { FunctionOrExecutor, PlainObject } from "../../types";
|
|
2
|
+
import { enforceResultAttributes } from "../../utils";
|
|
2
3
|
import { BaseExecutor } from "../../executor";
|
|
3
4
|
/**
|
|
4
5
|
* Represents the input for a CallableExecutor.
|
|
@@ -19,6 +20,7 @@ export interface CallableExecutorInput<I extends PlainObject | {
|
|
|
19
20
|
input: string;
|
|
20
21
|
visibilityHandler?(input: any, attributes: any, state: any): boolean;
|
|
21
22
|
handler?: FunctionOrExecutor<I, O>;
|
|
23
|
+
validateInput?(input: I): Promise<ReturnType<typeof enforceResultAttributes<boolean>>>;
|
|
22
24
|
}
|
|
23
25
|
/**
|
|
24
26
|
* Represents a CallableExecutor.
|
|
@@ -37,6 +39,7 @@ export interface CallableExecutor<I, O> {
|
|
|
37
39
|
input: string;
|
|
38
40
|
visibilityHandler(input: any, attributes: any, state: any): boolean;
|
|
39
41
|
_handler: BaseExecutor<I, O>;
|
|
42
|
+
_validateInput?(input: I): Promise<ReturnType<typeof enforceResultAttributes<boolean>>>;
|
|
40
43
|
}
|
|
41
44
|
/**
|
|
42
45
|
* A class representing a CallableExecutor.
|
|
@@ -50,11 +53,16 @@ export declare class CallableExecutor<I extends PlainObject | {
|
|
|
50
53
|
description: string;
|
|
51
54
|
input: string;
|
|
52
55
|
_handler: BaseExecutor<I, O>;
|
|
56
|
+
_validateInput?(input: I): Promise<ReturnType<typeof enforceResultAttributes<boolean>>>;
|
|
53
57
|
constructor(options: CallableExecutorInput<I, O>);
|
|
54
58
|
execute(input: I): Promise<{
|
|
55
59
|
result: O;
|
|
56
60
|
attributes: any;
|
|
57
61
|
}>;
|
|
62
|
+
validateInput(input: I): Promise<{
|
|
63
|
+
result: boolean;
|
|
64
|
+
attributes: any;
|
|
65
|
+
}>;
|
|
58
66
|
}
|
|
59
67
|
export declare abstract class UseExecutorsBase<I extends PlainObject | {
|
|
60
68
|
input: string;
|
|
@@ -69,4 +77,8 @@ export declare abstract class UseExecutorsBase<I extends PlainObject | {
|
|
|
69
77
|
result: any;
|
|
70
78
|
attributes: any;
|
|
71
79
|
}>;
|
|
80
|
+
validateFunctionInput(name: string, input: string): Promise<{
|
|
81
|
+
result: boolean;
|
|
82
|
+
attributes: any;
|
|
83
|
+
}>;
|
|
72
84
|
}
|
|
@@ -50,6 +50,7 @@ class CallableExecutor {
|
|
|
50
50
|
this.input = options.input;
|
|
51
51
|
this.visibilityHandler =
|
|
52
52
|
options?.visibilityHandler || defaults.visibilityHandler;
|
|
53
|
+
this._validateInput = options.validateInput;
|
|
53
54
|
if (options.handler instanceof executor_1.BaseExecutor) {
|
|
54
55
|
this._handler = options.handler;
|
|
55
56
|
}
|
|
@@ -64,6 +65,13 @@ class CallableExecutor {
|
|
|
64
65
|
const response = await this._handler.execute((0, utils_1.ensureInputIsObject)(input));
|
|
65
66
|
return (0, utils_1.enforceResultAttributes)(response);
|
|
66
67
|
}
|
|
68
|
+
async validateInput(input) {
|
|
69
|
+
if (typeof this._validateInput === "function") {
|
|
70
|
+
const response = await this._validateInput((0, utils_1.ensureInputIsObject)(input));
|
|
71
|
+
return (0, utils_1.enforceResultAttributes)(response);
|
|
72
|
+
}
|
|
73
|
+
return { result: true, attributes: {} };
|
|
74
|
+
}
|
|
67
75
|
}
|
|
68
76
|
exports.CallableExecutor = CallableExecutor;
|
|
69
77
|
class UseExecutorsBase {
|
|
@@ -102,6 +110,17 @@ class UseExecutorsBase {
|
|
|
102
110
|
return error.message;
|
|
103
111
|
}
|
|
104
112
|
}
|
|
113
|
+
async validateFunctionInput(name, input) {
|
|
114
|
+
try {
|
|
115
|
+
const handler = this.getFunction(name);
|
|
116
|
+
(0, utils_1.assert)(handler, `[invalid handler] The handler (${name}) does not exist.`);
|
|
117
|
+
const result = await handler.validateInput((0, utils_1.ensureInputIsObject)(input));
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
return { result: false, attributes: { error: error.message } };
|
|
122
|
+
}
|
|
123
|
+
}
|
|
105
124
|
}
|
|
106
125
|
exports.UseExecutorsBase = UseExecutorsBase;
|
|
107
126
|
//# sourceMappingURL=callable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callable.js","sourceRoot":"src/","sources":["plugins/callable/callable.ts"],"names":[],"mappings":";;;AAAA,sDAA2D;AAE3D,mCAA+E;AAC/E,yCAA0C;
|
|
1
|
+
{"version":3,"file":"callable.js","sourceRoot":"src/","sources":["plugins/callable/callable.ts"],"names":[],"mappings":"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"}
|
package/dist/prompt/_base.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { IChatMessages, PromptOptions, PromptType, PromptPartial, PromptHelper } from "../types";
|
|
1
|
+
import { IChatMessages, PromptOptions, PromptType, PromptPartial, PromptHelper, IPromptMessages, IPromptChatMessages } from "../types";
|
|
2
2
|
/**
|
|
3
3
|
* BasePrompt should be extended.
|
|
4
4
|
*/
|
|
5
5
|
export declare abstract class BasePrompt<I extends Record<string, any>> {
|
|
6
6
|
readonly type: PromptType;
|
|
7
|
-
messages:
|
|
7
|
+
messages: IPromptMessages | IPromptChatMessages;
|
|
8
8
|
partials: PromptPartial[];
|
|
9
9
|
helpers: PromptHelper[];
|
|
10
10
|
/**
|
package/dist/prompt/_base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_base.js","sourceRoot":"src/","sources":["prompt/_base.ts"],"names":[],"mappings":";;;AAAA,mCAAgD;
|
|
1
|
+
{"version":3,"file":"_base.js","sourceRoot":"src/","sources":["prompt/_base.ts"],"names":[],"mappings":"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"}
|
package/dist/prompt/chat.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { BasePrompt } from "./_base";
|
|
2
|
-
import { IChatMessages, IChatMessageRole, ChatPromptType, ChatPromptOptions } from "../types";
|
|
2
|
+
import { IChatMessages, IChatMessageRole, ChatPromptType, ChatPromptOptions, IPromptChatMessages } from "../types";
|
|
3
|
+
export interface ChatPrompt<I extends Record<string, any>> extends BasePrompt<I> {
|
|
4
|
+
messages: IPromptChatMessages;
|
|
5
|
+
}
|
|
3
6
|
/**
|
|
4
7
|
* `ChatPrompt` provides a conversation-style prompt enabling various roles.
|
|
5
8
|
* The chat prompt can be used with models such as gpt-3.5.turbo and gpt-4.
|
|
@@ -51,6 +54,12 @@ export declare class ChatPrompt<I extends Record<string, any>> extends BasePromp
|
|
|
51
54
|
* @return ChatPrompt so it can be chained.
|
|
52
55
|
*/
|
|
53
56
|
addFromHistory(history: IChatMessages): ChatPrompt<I>;
|
|
57
|
+
/**
|
|
58
|
+
* addPlaceholder description
|
|
59
|
+
* @param content The message content
|
|
60
|
+
* @return returns ChatPrompt so it can be chained.
|
|
61
|
+
*/
|
|
62
|
+
addChatHistoryPlaceholder(key: keyof I): ChatPrompt<I>;
|
|
54
63
|
/**
|
|
55
64
|
* format formats the stored prompt based on input values.
|
|
56
65
|
* Uses template engine.
|
package/dist/prompt/chat.js
CHANGED
|
@@ -91,11 +91,38 @@ class ChatPrompt extends _base_1.BasePrompt {
|
|
|
91
91
|
* @return ChatPrompt so it can be chained.
|
|
92
92
|
*/
|
|
93
93
|
addFromHistory(history) {
|
|
94
|
-
if (history) {
|
|
95
|
-
|
|
94
|
+
if (history && Array.isArray(history)) {
|
|
95
|
+
for (const message of history) {
|
|
96
|
+
switch (message.role) {
|
|
97
|
+
case "user":
|
|
98
|
+
this.addUserMessage(message.content, message?.name);
|
|
99
|
+
break;
|
|
100
|
+
case "assistant":
|
|
101
|
+
this.addAssistantMessage(message.content);
|
|
102
|
+
break;
|
|
103
|
+
case "system":
|
|
104
|
+
this.addSystemMessage(message.content);
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
96
108
|
}
|
|
97
109
|
return this;
|
|
98
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* addPlaceholder description
|
|
113
|
+
* @param content The message content
|
|
114
|
+
* @return returns ChatPrompt so it can be chained.
|
|
115
|
+
*/
|
|
116
|
+
addChatHistoryPlaceholder(key) {
|
|
117
|
+
const start = `{{> DialogueHistory `;
|
|
118
|
+
const params = [`key='${String(key)}'`];
|
|
119
|
+
const end = `}}`;
|
|
120
|
+
this.messages.push({
|
|
121
|
+
role: "placeholder",
|
|
122
|
+
content: `${start}${params.join(" ")}${end}`,
|
|
123
|
+
});
|
|
124
|
+
return this;
|
|
125
|
+
}
|
|
99
126
|
/**
|
|
100
127
|
* format formats the stored prompt based on input values.
|
|
101
128
|
* Uses template engine.
|
|
@@ -104,23 +131,60 @@ class ChatPrompt extends _base_1.BasePrompt {
|
|
|
104
131
|
* @return formatted prompt.
|
|
105
132
|
*/
|
|
106
133
|
format(values) {
|
|
134
|
+
const messagesOut = [];
|
|
107
135
|
const replacements = this.getReplacements(values);
|
|
108
136
|
const safeToParseTemplate = ["assistant", "system"];
|
|
109
137
|
if (this.parseUserTemplates) {
|
|
110
138
|
safeToParseTemplate.push("user");
|
|
111
139
|
}
|
|
112
|
-
|
|
113
|
-
if (
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
140
|
+
for (const message of this.messages) {
|
|
141
|
+
if (message.role === "placeholder") {
|
|
142
|
+
const { token, ...data } = (0, utils_1.extractPromptPlaceholderToken)(message.content);
|
|
143
|
+
switch (token) {
|
|
144
|
+
case ">DialogueHistory": {
|
|
145
|
+
/* istanbul ignore next */
|
|
146
|
+
const { key = "" } = data;
|
|
147
|
+
const history = (0, utils_1.get)(replacements, key, []);
|
|
148
|
+
if (history && Array.isArray(history)) {
|
|
149
|
+
for (const message of history) {
|
|
150
|
+
switch (message.role) {
|
|
151
|
+
case "user":
|
|
152
|
+
messagesOut.push((0, utils_1.pick)(message, ["role", "content", "name"]));
|
|
153
|
+
break;
|
|
154
|
+
case "assistant":
|
|
155
|
+
messagesOut.push({
|
|
156
|
+
role: "assistant",
|
|
157
|
+
content: message.content,
|
|
158
|
+
});
|
|
159
|
+
break;
|
|
160
|
+
case "system":
|
|
161
|
+
messagesOut.push({
|
|
162
|
+
role: "system",
|
|
163
|
+
content: message.content,
|
|
164
|
+
});
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
121
172
|
}
|
|
122
|
-
|
|
123
|
-
|
|
173
|
+
else {
|
|
174
|
+
if (safeToParseTemplate.includes(message.role)) {
|
|
175
|
+
messagesOut.push(Object.assign({}, message, {
|
|
176
|
+
content: (0, utils_1.replaceTemplateString)(message.content, replacements, {
|
|
177
|
+
partials: this.partials,
|
|
178
|
+
helpers: this.helpers,
|
|
179
|
+
}),
|
|
180
|
+
}));
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
messagesOut.push(message);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return messagesOut;
|
|
124
188
|
}
|
|
125
189
|
/**
|
|
126
190
|
* validate Ensures there are not unresolved tokens in prompt.
|
package/dist/prompt/chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"src/","sources":["prompt/chat.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"src/","sources":["prompt/chat.ts"],"names":[],"mappings":"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"}
|
package/dist/state/dialogue.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare class Dialogue extends BaseStateItem<IChatMessages> {
|
|
|
7
7
|
setAssistantMessage(content: string): this;
|
|
8
8
|
setSystemMessage(content: string): this;
|
|
9
9
|
setMessageTurn(userMessage: string, assistantMessage: string, systemMessage?: string): this;
|
|
10
|
+
setHistory(messages: IChatMessages): this;
|
|
10
11
|
getHistory(): IChatMessages;
|
|
11
12
|
serialize(): {
|
|
12
13
|
class: string;
|
package/dist/state/dialogue.js
CHANGED
|
@@ -50,6 +50,22 @@ class Dialogue extends item_1.BaseStateItem {
|
|
|
50
50
|
this.setSystemMessage(systemMessage);
|
|
51
51
|
return this;
|
|
52
52
|
}
|
|
53
|
+
setHistory(messages) {
|
|
54
|
+
for (const message of messages) {
|
|
55
|
+
switch (message?.role) {
|
|
56
|
+
case "user":
|
|
57
|
+
this.setUserMessage(message?.content, message?.name);
|
|
58
|
+
break;
|
|
59
|
+
case "assistant":
|
|
60
|
+
this.setAssistantMessage(message?.content);
|
|
61
|
+
break;
|
|
62
|
+
case "system":
|
|
63
|
+
this.setSystemMessage(message?.content);
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
53
69
|
getHistory() {
|
|
54
70
|
return this.getValue();
|
|
55
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialogue.js","sourceRoot":"src/","sources":["state/dialogue.ts"],"names":[],"mappings":";;;AACA,iCAAuC;AAEvC,MAAa,QAAS,SAAQ,oBAA4B;IAGxD,YAAY,IAAY;QACtB,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAHlB;;;;;WAAoB;QAIlB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,cAAc,CAAC,OAAe,EAAE,IAAa;QAC3C,IAAI,OAAO,EAAE;YACX,MAAM,GAAG,GAAqB;gBAC5B,IAAI,EAAE,MAAM;gBACZ,OAAO;aACR,CAAC;YACF,IAAI,IAAI,EAAE;gBACR,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;aACjB;YACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACtB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,OAAe;QACjC,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,WAAW;gBACjB,OAAO;aACR,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,OAAe;QAC9B,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,QAAQ;gBACd,OAAO;aACR,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CACZ,WAAmB,EACnB,gBAAwB,EACxB,gBAAwB,EAAE;QAE1B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QAC3C,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED,SAAS;QACP,OAAO;YACL,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;SACvB,CAAC;IACJ,CAAC;IACD,WAAW,KAAI,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"dialogue.js","sourceRoot":"src/","sources":["state/dialogue.ts"],"names":[],"mappings":";;;AACA,iCAAuC;AAEvC,MAAa,QAAS,SAAQ,oBAA4B;IAGxD,YAAY,IAAY;QACtB,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAHlB;;;;;WAAoB;QAIlB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,cAAc,CAAC,OAAe,EAAE,IAAa;QAC3C,IAAI,OAAO,EAAE;YACX,MAAM,GAAG,GAAqB;gBAC5B,IAAI,EAAE,MAAM;gBACZ,OAAO;aACR,CAAC;YACF,IAAI,IAAI,EAAE;gBACR,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;aACjB;YACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACtB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,OAAe;QACjC,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,WAAW;gBACjB,OAAO;aACR,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,OAAe;QAC9B,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,QAAQ;gBACd,OAAO;aACR,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CACZ,WAAmB,EACnB,gBAAwB,EACxB,gBAAwB,EAAE;QAE1B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QAC3C,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,QAAuB;QAChC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,QAAQ,OAAO,EAAE,IAAI,EAAE;gBACrB,KAAK,MAAM;oBACT,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACrD,MAAM;gBACR,KAAK,WAAW;oBACd,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC3C,MAAM;gBACR,KAAK,QAAQ;oBACX,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBACxC,MAAM;aACT;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED,SAAS;QACP,OAAO;YACL,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;SACvB,CAAC;IACJ,CAAC;IACD,WAAW,KAAI,CAAC;CACjB;AAlFD,4BAkFC"}
|