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.
Files changed (61) hide show
  1. package/dist/embedding/openai.js +2 -1
  2. package/dist/embedding/openai.js.map +1 -1
  3. package/dist/executor/_base.d.ts +17 -6
  4. package/dist/executor/_base.js +68 -26
  5. package/dist/executor/_base.js.map +1 -1
  6. package/dist/executor/_functions.d.ts +2 -2
  7. package/dist/executor/_functions.js.map +1 -1
  8. package/dist/executor/_metadata.js +1 -11
  9. package/dist/executor/_metadata.js.map +1 -1
  10. package/dist/executor/llm.d.ts +3 -3
  11. package/dist/executor/llm.js.map +1 -1
  12. package/dist/interfaces/chat.d.ts +7 -0
  13. package/dist/interfaces/functions.d.ts +14 -24
  14. package/dist/interfaces/functions.js +1 -0
  15. package/dist/interfaces/functions.js.map +1 -1
  16. package/dist/interfaces/parser.d.ts +1 -4
  17. package/dist/llm/openai.d.ts +3 -3
  18. package/dist/llm/openai.js +2 -0
  19. package/dist/llm/openai.js.map +1 -1
  20. package/dist/parser/_base.js +2 -3
  21. package/dist/parser/_base.js.map +1 -1
  22. package/dist/parser/_functions.d.ts +24 -15
  23. package/dist/parser/_functions.js +3 -0
  24. package/dist/parser/_functions.js.map +1 -1
  25. package/dist/parser/parsers/CustomParser.d.ts +7 -6
  26. package/dist/parser/parsers/CustomParser.js +3 -2
  27. package/dist/parser/parsers/CustomParser.js.map +1 -1
  28. package/dist/parser/parsers/ListToJsonParser.js +2 -1
  29. package/dist/parser/parsers/ListToJsonParser.js.map +1 -1
  30. package/dist/parser/parsers/StringExtractParser.d.ts +12 -0
  31. package/dist/parser/parsers/StringExtractParser.js +40 -0
  32. package/dist/parser/parsers/StringExtractParser.js.map +1 -0
  33. package/dist/plugins/callable/callable.d.ts +12 -0
  34. package/dist/plugins/callable/callable.js +19 -0
  35. package/dist/plugins/callable/callable.js.map +1 -1
  36. package/dist/plugins/callable/index.d.ts +4 -0
  37. package/dist/prompt/_base.d.ts +2 -2
  38. package/dist/prompt/_base.js.map +1 -1
  39. package/dist/prompt/chat.d.ts +10 -1
  40. package/dist/prompt/chat.js +77 -13
  41. package/dist/prompt/chat.js.map +1 -1
  42. package/dist/state/dialogue.d.ts +1 -0
  43. package/dist/state/dialogue.js +16 -0
  44. package/dist/state/dialogue.js.map +1 -1
  45. package/dist/utils/const.d.ts +3 -0
  46. package/dist/utils/const.js +7 -0
  47. package/dist/utils/const.js.map +1 -0
  48. package/dist/utils/modules/handlebars/helpers/index.d.ts +1 -0
  49. package/dist/utils/modules/handlebars/helpers/index.js +5 -1
  50. package/dist/utils/modules/handlebars/helpers/index.js.map +1 -1
  51. package/dist/utils/modules/handlebars/index.js +7 -6
  52. package/dist/utils/modules/handlebars/index.js.map +1 -1
  53. package/dist/utils/modules/handlebars/templates/index.js +4 -4
  54. package/dist/utils/modules/handlebars/templates/index.js.map +1 -1
  55. package/dist/utils/modules/index.d.ts +10 -1
  56. package/dist/utils/modules/index.js +28 -1
  57. package/dist/utils/modules/index.js.map +1 -1
  58. package/dist/vector/pinecone.js +3 -2
  59. package/dist/vector/pinecone.js.map +1 -1
  60. package/package.json +22 -12
  61. 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<S extends JSONSchema | undefined = undefined>(type: Extract<CreateParserType, "markdownCodeBlocks">): MarkdownCodeBlocksParser;
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<S extends JSONSchema | undefined = undefined>(type: Extract<CreateParserType, "markdownCodeBlock">): MarkdownCodeBlockParser;
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<S extends JSONSchema | undefined = undefined>(type: Extract<CreateParserType, "listToKeyValue">): ListToKeyValueParser;
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 {S} [schema] - The JSON schema.
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: Extract<CreateParserType, "listToJson">, options?: BaseParserOptionsWithSchema<S>): ListToJsonParser<S>;
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: Extract<CreateParserType, "listToArray">): ListToArrayParser;
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: Extract<CreateParserType, "number">): NumberParser;
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: Extract<CreateParserType, "boolean">): BooleanParser;
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: Extract<CreateParserType, "replaceStringTemplate">): ReplaceStringTemplateParser;
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 {S} [schema] - The JSON schema.
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: Extract<CreateParserType, "json">, options?: BaseParserOptionsWithSchema<S>): JsonParser<S>;
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: Extract<CreateParserType, "string">): StringParser;
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: Extract<CreateParserType, "json" | "string" | "number" | "boolean" | "listToArray" | "listToKeyValue" | "replaceStringTemplate" | "listToJson" | "markdownCodeBlocks" | "markdownCodeBlock">, options?: BaseParserOptionsWithSchema<S>): JsonParser<S> | StringParser | NumberParser | BooleanParser | ListToArrayParser | ListToKeyValueParser | ReplaceStringTemplateParser | MarkdownCodeBlockParser | MarkdownCodeBlocksParser | ListToJsonParser<S>;
94
- export declare function createCustomParser<T>(name: string, parserFn: (text: string, inputValues: ExecutorContext<any, any>) => T): CustomParser<T, [text: string, inputValues: ExecutorContext<any, any, Record<string, any>>]>;
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;AA8IxE;;;;;;GAMG;AACH,SAAgB,YAAY,CAC1B,IAYC,EACD,OAAwC;IAYxC,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,QAAQ,CAAC;QACd;YACE,OAAO,IAAI,2BAAY,EAAE,CAAC;KAC7B;AACH,CAAC;AAjDD,oCAiDC;AAED,SAAgB,kBAAkB,CAChC,IAAY,EACZ,QAAqE;IAErE,OAAO,IAAI,2BAAY,CAGrB,IAAI,EAAE,QAAQ,CAAC,CAAC;AACpB,CAAC;AARD,gDAQC"}
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 T The type of the parsed value
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<T, A> extends BaseParser<T> {
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<A, T>) => T;
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<A, T>) => T);
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 {T} The parsed value.
25
+ * @returns {O} The parsed value.
25
26
  */
26
- parse(text: string, inputValues: ExecutorContext<A, T>): T;
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 T The type of the parsed value
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 {T} The parsed value.
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;;;;GAIG;AACH,MAAa,YAAmB,SAAQ,kBAAa;IAMnD;;;;OAIG;IACH,YACE,IAAY,EACZ,QAAiE;QAEjE,KAAK,CAAC,IAAI,CAAC,CAAC;QAdd;;;WAGG;QACH;;;;;WAAyE;QAWvE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IACD;;;;;OAKG;IACH,KAAK,CAAC,IAAY,EAAE,WAAkC;QACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC;CACF;AA3BD,oCA2BC"}
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[key.trim().toLowerCase()] = value.trim();
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":";;;AACA,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,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;aACjD;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"}
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":"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"}
1
+ {"version":3,"file":"callable.js","sourceRoot":"src/","sources":["plugins/callable/callable.ts"],"names":[],"mappings":"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"}
@@ -23,4 +23,8 @@ export declare function useExecutors<I extends PlainObject | {
23
23
  result: any;
24
24
  attributes: any;
25
25
  }>;
26
+ validateFunctionInput(name: string, input: string): Promise<{
27
+ result: boolean;
28
+ attributes: any;
29
+ }>;
26
30
  };
@@ -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: IChatMessages;
7
+ messages: IPromptMessages | IPromptChatMessages;
8
8
  partials: PromptPartial[];
9
9
  helpers: PromptHelper[];
10
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"_base.js","sourceRoot":"src/","sources":["prompt/_base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_base.js","sourceRoot":"src/","sources":["prompt/_base.ts"],"names":[],"mappings":"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"}
@@ -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.
@@ -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
- this.messages.push(...history);
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
- return this.messages.map((message) => {
113
- if (safeToParseTemplate.includes(message.role)) {
114
- return {
115
- role: message.role,
116
- content: (0, utils_1.replaceTemplateString)(message.content, replacements, {
117
- partials: this.partials,
118
- helpers: this.helpers,
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
- return message;
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.
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"src/","sources":["prompt/chat.ts"],"names":[],"mappings":";;;AAAA,mCAAgD;AAChD,mCAAqC;AASrC;;;;GAIG;AACH,MAAa,UAA0C,SAAQ,kBAAa;IAa1E;;;;OAIG;IACH,YACE,0BAAmC,EACnC,OAA2B;QAE3B,KAAK,CAAC,0BAA0B,CAAC,CAAC;QArBpC;;WAEG;QACH;;;;mBAAgC,MAAM;WAAC;QAEvC;;;;WAIG;QACH;;;;mBAA6B,KAAK;WAAC;QAajC,IAAI,OAAO,EAAE,uBAAuB,EAAE;YACpC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAChC;IACH,CAAC;IAwBD,WAAW,CACT,OAAe,EACf,IAAsB,EACtB,IAAa;QAEb,IAAI,OAAO,EAAE;YACX,QAAQ,IAAI,EAAE;gBACZ,KAAK,QAAQ;oBACX,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBAC/B,MAAM;gBACR,KAAK,MAAM;oBACT,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBACnC,MAAM;gBACR,KAAK,WAAW;oBACd,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;oBAClC,MAAM;aACT;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,OAAe,EAAE,IAAa;QAC3C,MAAM,OAAO,GAAqB;YAChC,IAAI,EAAE,MAAM;YACZ,OAAO;SACR,CAAC;QACF,IAAI,IAAI,EAAE;YACR,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;SACrB;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,OAAe;QACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,WAAW;YACjB,OAAO;SACR,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,OAAsB;QACnC,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;SAChC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAS;QACd,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,mBAAmB,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAEpD,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACnC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC9C,OAAO;oBACL,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,IAAA,6BAAqB,EAAC,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE;wBAC5D,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;qBACtB,CAAC;iBACH,CAAC;aACH;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IACD;;;;OAIG;IACH,QAAQ;QACN,0CAA0C;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAxJD,gCAwJC"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"src/","sources":["prompt/chat.ts"],"names":[],"mappings":"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"}
@@ -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;
@@ -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;AAjED,4BAiEC"}
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"}
@@ -0,0 +1,3 @@
1
+ export declare const hookOnComplete = "onComplete";
2
+ export declare const hookOnError = "onError";
3
+ export declare const hookOnSuccess = "onSuccess";