@shuttl-io/core 0.2.0 → 0.4.2

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 (95) hide show
  1. package/.jsii +5562 -0
  2. package/.package.env +1 -0
  3. package/CHANGELOG.md +67 -0
  4. package/README.md +353 -1
  5. package/dist/Server.d.ts +1 -0
  6. package/dist/Server.js +1 -1
  7. package/dist/agent.js +2 -2
  8. package/dist/app.d.ts +2 -2
  9. package/dist/app.js +8 -6
  10. package/dist/model.js +1 -1
  11. package/dist/outcomes/CombinationOutcome.js +1 -1
  12. package/dist/outcomes/IOutcomes.js +1 -1
  13. package/dist/outcomes/StreamingOutcome.js +1 -1
  14. package/dist/secrets.js +2 -2
  15. package/dist/server/http.d.ts +44 -0
  16. package/dist/server/http.js +721 -4
  17. package/dist/tools/tool.js +2 -2
  18. package/dist/tools/toolkit.js +1 -1
  19. package/dist/trigger/ApiTrigger.js +1 -1
  20. package/dist/trigger/EmailTrigger.js +1 -1
  21. package/dist/trigger/FileTrigger.js +1 -1
  22. package/dist/trigger/ITrigger.js +1 -1
  23. package/dist/trigger/RateTrigger.js +1 -1
  24. package/package.json +2 -2
  25. package/publish.sh +149 -8
  26. package/dist/src/Server.d.ts +0 -5
  27. package/dist/src/Server.js +0 -3
  28. package/dist/src/Triggers.d.ts +0 -0
  29. package/dist/src/Triggers.js +0 -2
  30. package/dist/src/agent.d.ts +0 -49
  31. package/dist/src/agent.js +0 -251
  32. package/dist/src/app.d.ts +0 -17
  33. package/dist/src/app.js +0 -46
  34. package/dist/src/index.d.ts +0 -12
  35. package/dist/src/index.js +0 -29
  36. package/dist/src/model.d.ts +0 -6
  37. package/dist/src/model.js +0 -16
  38. package/dist/src/models/openAi.d.ts +0 -38
  39. package/dist/src/models/openAi.js +0 -344
  40. package/dist/src/models/types.d.ts +0 -101
  41. package/dist/src/models/types.js +0 -27
  42. package/dist/src/outcomes/CombinationOutcome.d.ts +0 -9
  43. package/dist/src/outcomes/CombinationOutcome.js +0 -41
  44. package/dist/src/outcomes/IOutcomes.d.ts +0 -9
  45. package/dist/src/outcomes/IOutcomes.js +0 -19
  46. package/dist/src/outcomes/StreamingOutcome.d.ts +0 -6
  47. package/dist/src/outcomes/StreamingOutcome.js +0 -30
  48. package/dist/src/outcomes/index.d.ts +0 -3
  49. package/dist/src/outcomes/index.js +0 -20
  50. package/dist/src/secrets.d.ts +0 -19
  51. package/dist/src/secrets.js +0 -34
  52. package/dist/src/server/http.d.ts +0 -68
  53. package/dist/src/server/http.js +0 -654
  54. package/dist/src/server/index.d.ts +0 -1
  55. package/dist/src/server/index.js +0 -18
  56. package/dist/src/tools/tool.d.ts +0 -33
  57. package/dist/src/tools/tool.js +0 -49
  58. package/dist/src/tools/toolkit.d.ts +0 -13
  59. package/dist/src/tools/toolkit.js +0 -19
  60. package/dist/src/trigger/ApiTrigger.d.ts +0 -37
  61. package/dist/src/trigger/ApiTrigger.js +0 -106
  62. package/dist/src/trigger/EmailTrigger.d.ts +0 -15
  63. package/dist/src/trigger/EmailTrigger.js +0 -22
  64. package/dist/src/trigger/FileTrigger.d.ts +0 -14
  65. package/dist/src/trigger/FileTrigger.js +0 -37
  66. package/dist/src/trigger/ITrigger.d.ts +0 -89
  67. package/dist/src/trigger/ITrigger.js +0 -35
  68. package/dist/src/trigger/RateTrigger.d.ts +0 -23
  69. package/dist/src/trigger/RateTrigger.js +0 -58
  70. package/dist/src/trigger/index.d.ts +0 -5
  71. package/dist/src/trigger/index.js +0 -22
  72. package/dist/tests/agent.test.d.ts +0 -1
  73. package/dist/tests/agent.test.js +0 -388
  74. package/dist/tests/agentStreamer.test.d.ts +0 -1
  75. package/dist/tests/agentStreamer.test.js +0 -530
  76. package/dist/tests/app.test.d.ts +0 -1
  77. package/dist/tests/app.test.js +0 -423
  78. package/dist/tests/model.test.d.ts +0 -1
  79. package/dist/tests/model.test.js +0 -310
  80. package/dist/tests/openAi.test.d.ts +0 -1
  81. package/dist/tests/openAi.test.js +0 -701
  82. package/dist/tests/outcomes.test.d.ts +0 -1
  83. package/dist/tests/outcomes.test.js +0 -257
  84. package/dist/tests/secrets.test.d.ts +0 -1
  85. package/dist/tests/secrets.test.js +0 -263
  86. package/dist/tests/server/http.test.d.ts +0 -1
  87. package/dist/tests/server/http.test.js +0 -553
  88. package/dist/tests/tool.test.d.ts +0 -1
  89. package/dist/tests/tool.test.js +0 -315
  90. package/dist/tests/toolkit.test.d.ts +0 -1
  91. package/dist/tests/toolkit.test.js +0 -189
  92. package/dist/tests/triggers.test.d.ts +0 -1
  93. package/dist/tests/triggers.test.js +0 -203
  94. package/dist/tests/types.test.d.ts +0 -1
  95. package/dist/tests/types.test.js +0 -429
@@ -1 +0,0 @@
1
- export * from "./http";
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./http"), exports);
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5Q0FBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9odHRwXCI7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbiJdfQ==
@@ -1,33 +0,0 @@
1
- export interface ToolArg {
2
- readonly name?: string;
3
- readonly argType: string;
4
- readonly description: string;
5
- readonly required: boolean;
6
- readonly defaultValue?: unknown;
7
- readonly enumValues?: string[];
8
- }
9
- export interface ITool {
10
- name: string;
11
- description: string;
12
- schema?: Schema;
13
- execute(args: Record<string, unknown>): unknown;
14
- }
15
- export declare class ToolArgBuilder {
16
- argType: string;
17
- description: string;
18
- required: boolean;
19
- defaultValue?: unknown;
20
- enumValues?: string[];
21
- constructor(argType: string, description: string, required: boolean, defaultValue?: unknown, enumValues?: string[]);
22
- isRequired(): ToolArgBuilder;
23
- defaultTo(defaultValue: unknown): ToolArgBuilder;
24
- }
25
- export declare class Schema {
26
- readonly properties: Record<string, ToolArgBuilder>;
27
- private constructor();
28
- static objectValue(properties: Record<string, ToolArgBuilder>): Schema;
29
- static stringValue(description: string): ToolArgBuilder;
30
- static numberValue(description: string): ToolArgBuilder;
31
- static booleanValue(description: string): ToolArgBuilder;
32
- static enumValue(description: string, enumValues: string[]): ToolArgBuilder;
33
- }
@@ -1,49 +0,0 @@
1
- "use strict";
2
- var _a, _b;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.Schema = exports.ToolArgBuilder = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- class ToolArgBuilder {
7
- constructor(argType, description, required, defaultValue, enumValues) {
8
- this.argType = argType;
9
- this.description = description;
10
- this.required = required;
11
- this.defaultValue = defaultValue;
12
- this.enumValues = enumValues;
13
- }
14
- isRequired() {
15
- this.required = true;
16
- return this;
17
- }
18
- defaultTo(defaultValue) {
19
- this.defaultValue = defaultValue;
20
- return this;
21
- }
22
- }
23
- exports.ToolArgBuilder = ToolArgBuilder;
24
- _a = JSII_RTTI_SYMBOL_1;
25
- ToolArgBuilder[_a] = { fqn: "@shuttl-io/core.ToolArgBuilder", version: "0.1.7-0" };
26
- class Schema {
27
- constructor(properties) {
28
- this.properties = properties;
29
- }
30
- static objectValue(properties) {
31
- return new Schema(properties);
32
- }
33
- static stringValue(description) {
34
- return new ToolArgBuilder("string", description, false);
35
- }
36
- static numberValue(description) {
37
- return new ToolArgBuilder("number", description, false);
38
- }
39
- static booleanValue(description) {
40
- return new ToolArgBuilder("boolean", description, false);
41
- }
42
- static enumValue(description, enumValues) {
43
- return new ToolArgBuilder("string", description, false, undefined, enumValues);
44
- }
45
- }
46
- exports.Schema = Schema;
47
- _b = JSII_RTTI_SYMBOL_1;
48
- Schema[_b] = { fqn: "@shuttl-io/core.Schema", version: "0.1.7-0" };
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy90b29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBZUEsTUFBYSxjQUFjO0lBT3ZCLFlBQW1CLE9BQWUsRUFBRSxXQUFtQixFQUFFLFFBQWlCLEVBQUUsWUFBc0IsRUFBRSxVQUFxQjtRQUNySCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sVUFBVTtRQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxTQUFTLENBQUMsWUFBcUI7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7QUF2Qkwsd0NBd0JDOzs7QUFFRCxNQUFhLE1BQU07SUFDZixZQUFvQyxVQUEwQztRQUExQyxlQUFVLEdBQVYsVUFBVSxDQUFnQztJQUFHLENBQUM7SUFDM0UsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUEwQztRQUNoRSxPQUFPLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDTSxNQUFNLENBQUMsV0FBVyxDQUFDLFdBQW1CO1FBQ3pDLE9BQU8sSUFBSSxjQUFjLENBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ00sTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUFtQjtRQUN6QyxPQUFPLElBQUksY0FBYyxDQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNNLE1BQU0sQ0FBQyxZQUFZLENBQUMsV0FBbUI7UUFDMUMsT0FBTyxJQUFJLGNBQWMsQ0FBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQW1CLEVBQUUsVUFBb0I7UUFDN0QsT0FBTyxJQUFJLGNBQWMsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDbkYsQ0FBQzs7QUFqQkwsd0JBa0JDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBUb29sQXJnIHtcbiAgICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGFyZ1R5cGU6IHN0cmluZztcbiAgICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHJlcXVpcmVkOiBib29sZWFuO1xuICAgIHJlYWRvbmx5IGRlZmF1bHRWYWx1ZT86IHVua25vd247XG4gICAgcmVhZG9ubHkgZW51bVZhbHVlcz86IHN0cmluZ1tdO1xufVxuZXhwb3J0IGludGVyZmFjZSBJVG9vbCB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgc2NoZW1hPzogU2NoZW1hO1xuICAgIGV4ZWN1dGUoYXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB1bmtub3duO1xufVxuXG5leHBvcnQgY2xhc3MgVG9vbEFyZ0J1aWxkZXIge1xuICAgIHB1YmxpYyBhcmdUeXBlOiBzdHJpbmc7XG4gICAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xuICAgIHB1YmxpYyBkZWZhdWx0VmFsdWU/OiB1bmtub3duO1xuICAgIHB1YmxpYyBlbnVtVmFsdWVzPzogc3RyaW5nW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoYXJnVHlwZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nLCByZXF1aXJlZDogYm9vbGVhbiwgZGVmYXVsdFZhbHVlPzogdW5rbm93biwgZW51bVZhbHVlcz86IHN0cmluZ1tdKSB7XG4gICAgICAgIHRoaXMuYXJnVHlwZSA9IGFyZ1R5cGU7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICAgICAgdGhpcy5yZXF1aXJlZCA9IHJlcXVpcmVkO1xuICAgICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgdGhpcy5lbnVtVmFsdWVzID0gZW51bVZhbHVlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNSZXF1aXJlZCgpOiBUb29sQXJnQnVpbGRlciB7XG4gICAgICAgIHRoaXMucmVxdWlyZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVmYXVsdFRvKGRlZmF1bHRWYWx1ZTogdW5rbm93bik6IFRvb2xBcmdCdWlsZGVyIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNjaGVtYSB7XG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgVG9vbEFyZ0J1aWxkZXI+KSB7fVxuICAgIHB1YmxpYyBzdGF0aWMgb2JqZWN0VmFsdWUocHJvcGVydGllczogUmVjb3JkPHN0cmluZywgVG9vbEFyZ0J1aWxkZXI+KTogU2NoZW1hIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTY2hlbWEocHJvcGVydGllcyk7XG4gICAgfVxuICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5nVmFsdWUoZGVzY3JpcHRpb246IHN0cmluZyk6IFRvb2xBcmdCdWlsZGVyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUb29sQXJnQnVpbGRlciggXCJzdHJpbmdcIiwgZGVzY3JpcHRpb24sIGZhbHNlKTtcbiAgICB9XG4gICAgcHVibGljIHN0YXRpYyBudW1iZXJWYWx1ZShkZXNjcmlwdGlvbjogc3RyaW5nKTogVG9vbEFyZ0J1aWxkZXIge1xuICAgICAgICByZXR1cm4gbmV3IFRvb2xBcmdCdWlsZGVyKCBcIm51bWJlclwiLCBkZXNjcmlwdGlvbiwgZmFsc2UpO1xuICAgIH1cbiAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW5WYWx1ZShkZXNjcmlwdGlvbjogc3RyaW5nKTogVG9vbEFyZ0J1aWxkZXIge1xuICAgICAgICByZXR1cm4gbmV3IFRvb2xBcmdCdWlsZGVyKCBcImJvb2xlYW5cIiwgZGVzY3JpcHRpb24sIGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGVudW1WYWx1ZShkZXNjcmlwdGlvbjogc3RyaW5nLCBlbnVtVmFsdWVzOiBzdHJpbmdbXSk6IFRvb2xBcmdCdWlsZGVyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUb29sQXJnQnVpbGRlcihcInN0cmluZ1wiLCBkZXNjcmlwdGlvbiwgZmFsc2UsIHVuZGVmaW5lZCwgZW51bVZhbHVlcyk7XG4gICAgfVxufSJdfQ==
@@ -1,13 +0,0 @@
1
- import { ITool } from "./tool";
2
- export interface ToolkitProps {
3
- readonly name: string;
4
- readonly description?: string;
5
- readonly tools?: ITool[];
6
- }
7
- export declare class Toolkit {
8
- readonly name: string;
9
- readonly description: string | undefined;
10
- readonly tools: ITool[];
11
- constructor(props: ToolkitProps);
12
- addTool(tool: ITool): void;
13
- }
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.Toolkit = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- class Toolkit {
7
- constructor(props) {
8
- this.name = props.name;
9
- this.description = props.description;
10
- this.tools = props.tools ?? [];
11
- }
12
- addTool(tool) {
13
- this.tools.push(tool);
14
- }
15
- }
16
- exports.Toolkit = Toolkit;
17
- _a = JSII_RTTI_SYMBOL_1;
18
- Toolkit[_a] = { fqn: "@shuttl-io/core.Toolkit", version: "0.1.7-0" };
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy90b29sa2l0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBUUEsTUFBYSxPQUFPO0lBS2hCLFlBQW1CLEtBQW1CO1FBQ2xDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDckMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQVc7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7QUFiTCwwQkFjQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElUb29sIH0gZnJvbSBcIi4vdG9vbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xraXRQcm9wcyB7XG4gICAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHRvb2xzPzogSVRvb2xbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFRvb2xraXQge1xuICAgIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcHVibGljIHJlYWRvbmx5IHRvb2xzOiBJVG9vbFtdO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBUb29sa2l0UHJvcHMpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gcHJvcHMubmFtZTtcbiAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uO1xuICAgICAgICB0aGlzLnRvb2xzID0gcHJvcHMudG9vbHMgPz8gW107XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFRvb2wodG9vbDogSVRvb2wpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b29scy5wdXNoKHRvb2wpO1xuICAgIH1cbn0iXX0=
@@ -1,37 +0,0 @@
1
- import { BaseTrigger, TriggerOutput } from "./ITrigger";
2
- import { IOutcome } from "../outcomes/IOutcomes";
3
- export interface IApiAuthenticator {
4
- authenticate(args: ApiTriggerArgs): Promise<boolean>;
5
- }
6
- export interface ApiTriggerConfig {
7
- readonly cors?: string[];
8
- readonly authenticator?: IApiAuthenticator;
9
- }
10
- export interface ApiAuth {
11
- readonly authType: "bearer" | "basic" | "api_key";
12
- readonly value: string;
13
- }
14
- export interface ApiTriggerArgs {
15
- readonly method: "POST" | "GET" | "PUT" | "PATCH" | "DELETE";
16
- readonly hostName: string;
17
- readonly headers?: Record<string, string> | undefined;
18
- readonly body?: any;
19
- readonly queryParams?: Record<string, string> | undefined;
20
- readonly pathParams?: Record<string, string> | undefined;
21
- readonly cookies?: Record<string, string> | undefined;
22
- readonly auth?: ApiAuth | undefined;
23
- }
24
- /**
25
- * Represents a trigger that can activate an agent via an API call.
26
- * This API trigger is the default trigger for agents.
27
- */
28
- export declare class ApiTrigger extends BaseTrigger {
29
- triggerType: string;
30
- triggerConfig: Record<string, unknown>;
31
- outcome?: IOutcome;
32
- private authenticator?;
33
- constructor(config?: ApiTriggerConfig);
34
- parseArgs(rawArgs: any): Promise<TriggerOutput>;
35
- private createInputContent;
36
- validate(rawArgs: any): Promise<Record<string, unknown>>;
37
- }
@@ -1,106 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ApiTrigger = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const zod_1 = require("zod");
7
- const ITrigger_1 = require("./ITrigger");
8
- function assertNever(value) {
9
- throw new Error(`Unexpected value: ${value}`);
10
- }
11
- const ApiTriggerSchema = zod_1.z.object({
12
- method: zod_1.z.enum(["POST", "GET", "PUT", "PATCH", "DELETE"]),
13
- hostName: zod_1.z.string(),
14
- headers: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
15
- body: zod_1.z.any().optional(),
16
- queryParams: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
17
- pathParams: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
18
- cookies: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
19
- auth: zod_1.z.object({
20
- authType: zod_1.z.enum(["bearer", "basic", "api_key"]),
21
- value: zod_1.z.string(),
22
- }).optional(),
23
- });
24
- const fileAttachmentSchema = zod_1.z.object({
25
- type: zod_1.z.literal("file"),
26
- name: zod_1.z.string(),
27
- content: zod_1.z.string(),
28
- mimeType: zod_1.z.string().optional(),
29
- });
30
- const imageSchema = zod_1.z.object({
31
- type: zod_1.z.literal("image"),
32
- content: zod_1.z.string(),
33
- name: zod_1.z.string(),
34
- mimeType: zod_1.z.string().optional(),
35
- });
36
- const textSchema = zod_1.z.object({
37
- type: zod_1.z.literal("text"),
38
- content: zod_1.z.string(),
39
- });
40
- const bodySchema1 = zod_1.z.discriminatedUnion("type", [fileAttachmentSchema, imageSchema, textSchema]);
41
- const bodySchema = zod_1.z.union([bodySchema1, zod_1.z.array(bodySchema1)]);
42
- /**
43
- * Represents a trigger that can activate an agent via an API call.
44
- * This API trigger is the default trigger for agents.
45
- */
46
- class ApiTrigger extends ITrigger_1.BaseTrigger {
47
- constructor(config) {
48
- super("api", config ?? {
49
- cors: ["*"],
50
- authenticator: async (_) => true,
51
- });
52
- this.triggerType = "api";
53
- this.triggerConfig = {};
54
- this.authenticator = config?.authenticator ?? undefined;
55
- }
56
- parseArgs(rawArgs) {
57
- const args = ApiTriggerSchema.parse(rawArgs);
58
- const body = bodySchema.parse(args.body);
59
- if (!Array.isArray(body)) {
60
- return Promise.resolve({ input: [this.createInputContent(body)] });
61
- }
62
- return Promise.resolve({ input: body.map((b) => this.createInputContent(b)) });
63
- }
64
- createInputContent(body) {
65
- if (body.type === "text") {
66
- return { typeName: "text", text: body.content };
67
- }
68
- if (body.type === "file") {
69
- return { typeName: "file", fileData: {
70
- content: body.content,
71
- name: body.name,
72
- mimeType: body.mimeType,
73
- } };
74
- }
75
- if (body.type === "image") {
76
- return {
77
- typeName: "image",
78
- fileData: {
79
- content: body.content,
80
- name: body.name,
81
- mimeType: body.mimeType,
82
- }
83
- };
84
- }
85
- assertNever(body);
86
- }
87
- async validate(rawArgs) {
88
- const args = ApiTriggerSchema.safeParse(rawArgs);
89
- if (!args.success) {
90
- return Promise.resolve({ error: "Invalid arguments", details: args.error.issues });
91
- }
92
- if (!this.authenticator) {
93
- return Promise.resolve({});
94
- }
95
- const authenticator = this.authenticator;
96
- const authenticated = await authenticator.authenticate(args.data);
97
- if (!authenticated) {
98
- return Promise.resolve({ error: "Unauthorized" });
99
- }
100
- return Promise.resolve({});
101
- }
102
- }
103
- exports.ApiTrigger = ApiTrigger;
104
- _a = JSII_RTTI_SYMBOL_1;
105
- ApiTrigger[_a] = { fqn: "@shuttl-io/core.ApiTrigger", version: "0.1.7-0" };
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpVHJpZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmlnZ2VyL0FwaVRyaWdnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBd0I7QUFFeEIseUNBQXdEO0FBR3hELFNBQVMsV0FBVyxDQUFDLEtBQVk7SUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBV0QsTUFBTSxnQkFBZ0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQzlCLE1BQU0sRUFBRSxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3BCLE9BQU8sRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDcEQsSUFBSSxFQUFFLE9BQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDeEIsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN4RCxVQUFVLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3ZELE9BQU8sRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDcEQsSUFBSSxFQUFFLE9BQUMsQ0FBQyxN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RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3pDLE1BQU0sYUFBYSxHQUFHLE1BQU0sYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7QUE3REwsZ0NBOERDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7IElucHV0Q29udGVudCB9IGZyb20gXCIuLi9tb2RlbHMvdHlwZXNcIjtcbmltcG9ydCB7IEJhc2VUcmlnZ2VyLCBUcmlnZ2VyT3V0cHV0IH0gZnJvbSBcIi4vSVRyaWdnZXJcIjtcbmltcG9ydCB7IElPdXRjb21lIH0gZnJvbSBcIi4uL291dGNvbWVzL0lPdXRjb21lc1wiO1xuXG5mdW5jdGlvbiBhc3NlcnROZXZlcih2YWx1ZTogbmV2ZXIpOiBuZXZlciB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHZhbHVlOiAke3ZhbHVlfWApO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElBcGlBdXRoZW50aWNhdG9yIHtcbiAgICBhdXRoZW50aWNhdGUoYXJnczogQXBpVHJpZ2dlckFyZ3MpOiBQcm9taXNlPGJvb2xlYW4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVRyaWdnZXJDb25maWcge1xuICAgIHJlYWRvbmx5IGNvcnM/OiBzdHJpbmdbXTtcbiAgICByZWFkb25seSBhdXRoZW50aWNhdG9yPzogSUFwaUF1dGhlbnRpY2F0b3I7XG59XG5cbmNvbnN0IEFwaVRyaWdnZXJTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgbWV0aG9kOiB6LmVudW0oW1wiUE9TVFwiLCBcIkdFVFwiLCBcIlBVVFwiLCBcIlBBVENIXCIsIFwiREVMRVRFXCJdKSxcbiAgICBob3N0TmFtZTogei5zdHJpbmcoKSxcbiAgICBoZWFkZXJzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICAgIGJvZHk6IHouYW55KCkub3B0aW9uYWwoKSxcbiAgICBxdWVyeVBhcmFtczogei5yZWNvcmQoei5zdHJpbmcoKSwgei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgICBwYXRoUGFyYW1zOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICAgIGNvb2tpZXM6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gICAgYXV0aDogei5vYmplY3Qoe1xuICAgICAgICBhdXRoVHlwZTogei5lbnVtKFtcImJlYXJlclwiLCBcImJhc2ljXCIsIFwiYXBpX2tleVwiXSksXG4gICAgICAgIHZhbHVlOiB6LnN0cmluZygpLFxuICAgIH0pLm9wdGlvbmFsKCksXG59KTtcblxuY29uc3QgZmlsZUF0dGFjaG1lbnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdHlwZTogei5saXRlcmFsKFwiZmlsZVwiKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgIGNvbnRlbnQ6IHouc3RyaW5nKCksXG4gICAgbWltZVR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5jb25zdCBpbWFnZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0eXBlOiB6LmxpdGVyYWwoXCJpbWFnZVwiKSxcbiAgICBjb250ZW50OiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgbWltZVR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5jb25zdCB0ZXh0U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHR5cGU6IHoubGl0ZXJhbChcInRleHRcIiksXG4gICAgY29udGVudDogei5zdHJpbmcoKSxcbn0pO1xuXG5jb25zdCBib2R5U2NoZW1hMSA9IHouZGlzY3JpbWluYXRlZFVuaW9uKFwidHlwZVwiLCBbZmlsZUF0dGFjaG1lbnRTY2hlbWEsIGltYWdlU2NoZW1hLCB0ZXh0U2NoZW1hXSk7XG5cbmNvbnN0IGJvZHlTY2hlbWEgPSB6LnVuaW9uKFtib2R5U2NoZW1hMSwgei5hcnJheShib2R5U2NoZW1hMSldKTtcblxuZXhwb3J0IGludGVyZmFjZSBBcGlBdXRoIHtcbiAgICByZWFkb25seSBhdXRoVHlwZTogXCJiZWFyZXJcIiB8IFwiYmFzaWNcIiB8IFwiYXBpX2tleVwiO1xuICAgIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpVHJpZ2dlckFyZ3Mge1xuICAgIHJlYWRvbmx5IG1ldGhvZDogXCJQT1NUXCIgfCBcIkdFVFwiIHwgXCJQVVRcIiB8IFwiUEFUQ0hcIiB8IFwiREVMRVRFXCI7XG4gICAgcmVhZG9ubHkgaG9zdE5hbWU6IHN0cmluZztcbiAgICByZWFkb25seSBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBib2R5PzogYW55O1xuICAgIHJlYWRvbmx5IHF1ZXJ5UGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBwYXRoUGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBjb29raWVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBhdXRoPzogQXBpQXV0aCB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgdHJpZ2dlciB0aGF0IGNhbiBhY3RpdmF0ZSBhbiBhZ2VudCB2aWEgYW4gQVBJIGNhbGwuXG4gKiBUaGlzIEFQSSB0cmlnZ2VyIGlzIHRoZSBkZWZhdWx0IHRyaWdnZXIgZm9yIGFnZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwaVRyaWdnZXIgZXh0ZW5kcyBCYXNlVHJpZ2dlciAge1xuICAgIHB1YmxpYyB0cmlnZ2VyVHlwZTogc3RyaW5nID0gXCJhcGlcIjtcbiAgICBwdWJsaWMgdHJpZ2dlckNvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgICBwdWJsaWMgb3V0Y29tZT86IElPdXRjb21lO1xuICAgIHByaXZhdGUgYXV0aGVudGljYXRvcj86IElBcGlBdXRoZW50aWNhdG9yO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGNvbmZpZz86IEFwaVRyaWdnZXJDb25maWcpIHtcbiAgICAgICAgc3VwZXIoXCJhcGlcIiwgY29uZmlnID8/IHtcbiAgICAgICAgICAgIGNvcnM6IFtcIipcIl0sXG4gICAgICAgICAgICBhdXRoZW50aWNhdG9yOiBhc3luYyAoXzogQXBpVHJpZ2dlckFyZ3MpID0+IHRydWUsXG4gICAgICAgIH0gYXMgYW55KTtcbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdG9yID0gY29uZmlnPy5hdXRoZW50aWNhdG9yID8/IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcGFyc2VBcmdzKHJhd0FyZ3M6IGFueSk6IFByb21pc2U8VHJpZ2dlck91dHB1dD4ge1xuICAgICAgICBjb25zdCBhcmdzID0gQXBpVHJpZ2dlclNjaGVtYS5wYXJzZShyYXdBcmdzKTtcbiAgICAgICAgY29uc3QgYm9keSA9IGJvZHlTY2hlbWEucGFyc2UoYXJncy5ib2R5KTtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGJvZHkpKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsgaW5wdXQ6IFt0aGlzLmNyZWF0ZUlucHV0Q29udGVudChib2R5KV0gfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IGlucHV0OiBib2R5Lm1hcCgoYikgPT4gdGhpcy5jcmVhdGVJbnB1dENvbnRlbnQoYikpIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlSW5wdXRDb250ZW50KGJvZHk6IHouaW5mZXI8dHlwZW9mIGJvZHlTY2hlbWExPik6IElucHV0Q29udGVudCB7XG4gICAgICAgIGlmIChib2R5LnR5cGUgPT09IFwidGV4dFwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyB0eXBlTmFtZTogXCJ0ZXh0XCIsIHRleHQ6IGJvZHkuY29udGVudCB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChib2R5LnR5cGUgPT09IFwiZmlsZVwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyB0eXBlTmFtZTogXCJmaWxlXCIsIGZpbGVEYXRhOiB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYm9keS5jb250ZW50LFxuICAgICAgICAgICAgICAgIG5hbWU6IGJvZHkubmFtZSxcbiAgICAgICAgICAgICAgICBtaW1lVHlwZTogYm9keS5taW1lVHlwZSxcbiAgICAgICAgICAgIH0gfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYm9keS50eXBlID09PSBcImltYWdlXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB7IFxuICAgICAgICAgICAgICAgIHR5cGVOYW1lOiBcImltYWdlXCIsIFxuICAgICAgICAgICAgICAgIGZpbGVEYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGJvZHkuY29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogYm9keS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBtaW1lVHlwZTogYm9keS5taW1lVHlwZSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGFzc2VydE5ldmVyKGJvZHkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyB2YWxpZGF0ZShyYXdBcmdzOiBhbnkpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBBcGlUcmlnZ2VyU2NoZW1hLnNhZmVQYXJzZShyYXdBcmdzKTtcbiAgICAgICAgaWYgKCFhcmdzLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyBlcnJvcjogXCJJbnZhbGlkIGFyZ3VtZW50c1wiLCBkZXRhaWxzOiBhcmdzLmVycm9yLmlzc3VlcyB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuYXV0aGVudGljYXRvcikge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXV0aGVudGljYXRvciA9IHRoaXMuYXV0aGVudGljYXRvcjtcbiAgICAgICAgY29uc3QgYXV0aGVudGljYXRlZCA9IGF3YWl0IGF1dGhlbnRpY2F0b3IuYXV0aGVudGljYXRlKGFyZ3MuZGF0YSk7XG4gICAgICAgIGlmICghYXV0aGVudGljYXRlZCkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IGVycm9yOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,15 +0,0 @@
1
- import { BaseTrigger, TriggerOutput } from "./ITrigger";
2
- import { IOutcome } from "../outcomes/IOutcomes";
3
- export interface EmailTriggerConfig {
4
- readonly inboxName: string;
5
- readonly domain: string;
6
- readonly fromAddress: string;
7
- readonly subjectPattern: string;
8
- readonly folder: string;
9
- }
10
- export declare class EmailTrigger extends BaseTrigger {
11
- triggerType: string;
12
- outcome?: IOutcome;
13
- constructor(config: EmailTriggerConfig);
14
- parseArgs(_: any): Promise<TriggerOutput>;
15
- }
@@ -1,22 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.EmailTrigger = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const ITrigger_1 = require("./ITrigger");
7
- class EmailTrigger extends ITrigger_1.BaseTrigger {
8
- constructor(config) {
9
- super("email", config);
10
- this.triggerType = "email";
11
- }
12
- parseArgs(_) {
13
- return Promise.resolve({ input: [{
14
- typeName: "text",
15
- text: "The email trigger is activated",
16
- }] });
17
- }
18
- }
19
- exports.EmailTrigger = EmailTrigger;
20
- _a = JSII_RTTI_SYMBOL_1;
21
- EmailTrigger[_a] = { fqn: "@shuttl-io/core.EmailTrigger", version: "0.1.7-0" };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW1haWxUcmlnZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyaWdnZXIvRW1haWxUcmlnZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUNBQXdEO0FBV3hELE1BQWEsWUFBYSxTQUFRLHNCQUFXO0lBSXpDLFlBQW1CLE1BQTBCO1FBQ3pDLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBYSxDQUFDLENBQUM7UUFKM0IsZ0JBQVcsR0FBVyxPQUFPLENBQUM7SUFLckMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxDQUFNO1FBQ25CLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO29CQUM3QixRQUFRLEVBQUUsTUFBTTtvQkFDaEIsSUFBSSxFQUFFLGdDQUFnQztpQkFDekMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNWLENBQUM7O0FBYkwsb0NBY0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVHJpZ2dlciwgVHJpZ2dlck91dHB1dCB9IGZyb20gXCIuL0lUcmlnZ2VyXCI7XG5pbXBvcnQgeyBJT3V0Y29tZSB9IGZyb20gXCIuLi9vdXRjb21lcy9JT3V0Y29tZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFbWFpbFRyaWdnZXJDb25maWcge1xuICAgIHJlYWRvbmx5IGluYm94TmFtZTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGRvbWFpbjogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGZyb21BZGRyZXNzOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgc3ViamVjdFBhdHRlcm46IHN0cmluZztcbiAgICByZWFkb25seSBmb2xkZXI6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEVtYWlsVHJpZ2dlciBleHRlbmRzIEJhc2VUcmlnZ2VyIHtcbiAgICBwdWJsaWMgdHJpZ2dlclR5cGU6IHN0cmluZyA9IFwiZW1haWxcIjtcbiAgICBwdWJsaWMgb3V0Y29tZT86IElPdXRjb21lO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGNvbmZpZzogRW1haWxUcmlnZ2VyQ29uZmlnKSB7XG4gICAgICAgIHN1cGVyKFwiZW1haWxcIiwgY29uZmlnIGFzIGFueSk7XG4gICAgfVxuXG4gICAgcHVibGljIHBhcnNlQXJncyhfOiBhbnkpOiBQcm9taXNlPFRyaWdnZXJPdXRwdXQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IGlucHV0OiBbe1xuICAgICAgICAgICAgdHlwZU5hbWU6IFwidGV4dFwiLFxuICAgICAgICAgICAgdGV4dDogXCJUaGUgZW1haWwgdHJpZ2dlciBpcyBhY3RpdmF0ZWRcIixcbiAgICAgICAgfV0gfSk7XG4gICAgfVxufSJdfQ==
@@ -1,14 +0,0 @@
1
- import { IOutcome } from "../outcomes/IOutcomes";
2
- import { BaseTrigger, TriggerOutput } from "./ITrigger";
3
- export interface FileTriggerConfig {
4
- readonly allowedExtensions: string[];
5
- readonly maxFileSize: number;
6
- readonly uploadPath: string;
7
- readonly s3Bucket: string;
8
- }
9
- export declare class FileTrigger extends BaseTrigger {
10
- triggerType: string;
11
- outcome?: IOutcome;
12
- constructor(config: FileTriggerConfig);
13
- parseArgs(args: any): Promise<TriggerOutput>;
14
- }
@@ -1,37 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.FileTrigger = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const ITrigger_1 = require("./ITrigger");
7
- const zod_1 = require("zod");
8
- const FileTriggerSchema = zod_1.z.object({
9
- content: zod_1.z.string(),
10
- file_url: zod_1.z.string(),
11
- mimeType: zod_1.z.string().optional(),
12
- name: zod_1.z.string(),
13
- });
14
- class FileTrigger extends ITrigger_1.BaseTrigger {
15
- constructor(config) {
16
- super("file", config);
17
- this.triggerType = "file";
18
- }
19
- parseArgs(args) {
20
- const parsedArgs = FileTriggerSchema.safeParse(args);
21
- if (!parsedArgs.success) {
22
- throw new Error(parsedArgs.error.message);
23
- }
24
- return Promise.resolve({ input: [{
25
- typeName: "file",
26
- fileData: {
27
- content: parsedArgs.data.content,
28
- name: parsedArgs.data.name,
29
- mimeType: parsedArgs.data.mimeType,
30
- },
31
- }] });
32
- }
33
- }
34
- exports.FileTrigger = FileTrigger;
35
- _a = JSII_RTTI_SYMBOL_1;
36
- FileTrigger[_a] = { fqn: "@shuttl-io/core.FileTrigger", version: "0.1.7-0" };
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZVRyaWdnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJpZ2dlci9GaWxlVHJpZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLHlDQUF3RDtBQUN4RCw2QkFBd0I7QUFTeEIsTUFBTSxpQkFBaUIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9CLE9BQU8sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0lBQ25CLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3BCLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQy9CLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0NBQ25CLENBQUMsQ0FBQztBQUVILE1BQWEsV0FBWSxTQUFRLHNCQUFXO0lBS3hDLFlBQW1CLE1BQXlCO1FBQ3hDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBYSxDQUFDLENBQUM7UUFMMUIsZ0JBQVcsR0FBVyxNQUFNLENBQUM7SUFNcEMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxJQUFTO1FBQ3RCLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7b0JBQzdCLFFBQVEsRUFBRSxNQUFNO29CQUNoQixRQUFRLEVBQUU7d0JBQ04sT0FBTyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTzt3QkFDaEMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSTt3QkFDMUIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUTtxQkFDckM7aUJBQ0osQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNWLENBQUM7O0FBdEJMLGtDQXVCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElPdXRjb21lIH0gZnJvbSBcIi4uL291dGNvbWVzL0lPdXRjb21lc1wiO1xuaW1wb3J0IHsgQmFzZVRyaWdnZXIsIFRyaWdnZXJPdXRwdXQgfSBmcm9tIFwiLi9JVHJpZ2dlclwiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlVHJpZ2dlckNvbmZpZyB7XG4gICAgcmVhZG9ubHkgYWxsb3dlZEV4dGVuc2lvbnM6IHN0cmluZ1tdO1xuICAgIHJlYWRvbmx5IG1heEZpbGVTaXplOiBudW1iZXI7XG4gICAgcmVhZG9ubHkgdXBsb2FkUGF0aDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHMzQnVja2V0OiBzdHJpbmc7XG59XG5cbmNvbnN0IEZpbGVUcmlnZ2VyU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGNvbnRlbnQ6IHouc3RyaW5nKCksXG4gICAgZmlsZV91cmw6IHouc3RyaW5nKCksXG4gICAgbWltZVR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjbGFzcyBGaWxlVHJpZ2dlciBleHRlbmRzIEJhc2VUcmlnZ2VyIHtcbiAgICBwdWJsaWMgdHJpZ2dlclR5cGU6IHN0cmluZyA9IFwiZmlsZVwiO1xuXG4gICAgcHVibGljIG91dGNvbWU/OiBJT3V0Y29tZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb25maWc6IEZpbGVUcmlnZ2VyQ29uZmlnKSB7XG4gICAgICAgIHN1cGVyKFwiZmlsZVwiLCBjb25maWcgYXMgYW55KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcGFyc2VBcmdzKGFyZ3M6IGFueSk6IFByb21pc2U8VHJpZ2dlck91dHB1dD4ge1xuICAgICAgICBjb25zdCBwYXJzZWRBcmdzID0gRmlsZVRyaWdnZXJTY2hlbWEuc2FmZVBhcnNlKGFyZ3MpO1xuICAgICAgICBpZiAoIXBhcnNlZEFyZ3Muc3VjY2Vzcykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHBhcnNlZEFyZ3MuZXJyb3IubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IGlucHV0OiBbe1xuICAgICAgICAgICAgdHlwZU5hbWU6IFwiZmlsZVwiLFxuICAgICAgICAgICAgZmlsZURhdGE6IHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBwYXJzZWRBcmdzLmRhdGEuY29udGVudCxcbiAgICAgICAgICAgICAgICBuYW1lOiBwYXJzZWRBcmdzLmRhdGEubmFtZSxcbiAgICAgICAgICAgICAgICBtaW1lVHlwZTogcGFyc2VkQXJncy5kYXRhLm1pbWVUeXBlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfV0gfSk7XG4gICAgfVxufSJdfQ==
@@ -1,89 +0,0 @@
1
- import { InputContent, IModelResponseStream } from "../models/types";
2
- import { IOutcome } from "../outcomes/IOutcomes";
3
- export interface TriggerOutput {
4
- readonly input: InputContent[];
5
- }
6
- export interface ITriggerInvoker {
7
- invoke(prompt: InputContent[]): Promise<IModelResponseStream>;
8
- defaultOutcome(stream: IModelResponseStream): Promise<void>;
9
- }
10
- /**
11
- * Represents a serialized HTTP request from the serve command
12
- */
13
- export interface SerializedHTTPRequest {
14
- /** The HTTP method (POST, GET, etc.) */
15
- readonly method: string;
16
- /** The request path */
17
- readonly path: string;
18
- /** HTTP headers as key-value pairs with array values */
19
- readonly headers: Record<string, string[]>;
20
- /** Query parameters as key-value pairs with array values */
21
- readonly query: Record<string, string[]>;
22
- /** The request body (parsed JSON or raw) */
23
- readonly body?: unknown;
24
- /** The Content-Type header value */
25
- readonly contentType: string;
26
- /** The remote address of the client */
27
- readonly remoteAddr: string;
28
- /** The host header value */
29
- readonly host: string;
30
- /** The HTTP protocol version */
31
- readonly proto: string;
32
- /** Timestamp of when the request was received */
33
- readonly timestamp: string;
34
- }
35
- /**
36
- * Represents a trigger that can activate an agent. Triggers can take any arguments and then return what the input should be for the agent.
37
- * Triggers also can validate the arguments and return an error if the arguments are invalid.
38
- */
39
- export interface ITrigger {
40
- /**
41
- * The unique name of this trigger instance.
42
- * If not set, defaults to triggerType.
43
- */
44
- name: string;
45
- /**
46
- * The type of trigger.
47
- */
48
- triggerType: string;
49
- /**
50
- * The configuration for the trigger.
51
- */
52
- triggerConfig: Record<string, unknown>;
53
- outcome?: IOutcome;
54
- /**
55
- * Activates the trigger and returns the input for the agent.
56
- * @param args - The arguments for the trigger.
57
- * @returns The input for the agent.
58
- */
59
- activate(args: any, invoker: ITriggerInvoker): Promise<void>;
60
- /**
61
- * Validates the arguments for the trigger.
62
- * @param args - The arguments for the trigger.
63
- * @returns The validation result.
64
- */
65
- validate?(args: any): Promise<Record<string, unknown>>;
66
- /**
67
- * binds the outcome to the trigger
68
- * @param outcome - The outcome to bind to the trigger.
69
- * @returns The bound outcome.
70
- */
71
- bindOutcome(outcome: IOutcome): ITrigger;
72
- /**
73
- * Sets the name of the trigger
74
- * @param name - The name to set for the trigger
75
- * @returns The trigger instance for chaining
76
- */
77
- withName(name: string): ITrigger;
78
- }
79
- export declare abstract class BaseTrigger implements ITrigger {
80
- name: string;
81
- triggerType: string;
82
- triggerConfig: Record<string, unknown>;
83
- outcome?: IOutcome;
84
- constructor(triggerType: string, config: Record<string, unknown>);
85
- abstract parseArgs(args: any): Promise<TriggerOutput>;
86
- activate(args: any, invoker: ITriggerInvoker): Promise<void>;
87
- bindOutcome(outcome: IOutcome): ITrigger;
88
- withName(name: string): ITrigger;
89
- }
@@ -1,35 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.BaseTrigger = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- class BaseTrigger {
7
- constructor(triggerType, config) {
8
- this.triggerConfig = {};
9
- this.triggerType = triggerType;
10
- this.name = triggerType; // Default name is the trigger type
11
- this.triggerConfig = config;
12
- }
13
- async activate(args, invoker) {
14
- const parsedArgs = await this.parseArgs(args);
15
- const response = await invoker.invoke(parsedArgs.input);
16
- if (this.outcome) {
17
- await this.outcome.send(response);
18
- }
19
- else {
20
- await invoker.defaultOutcome(response);
21
- }
22
- }
23
- bindOutcome(outcome) {
24
- this.outcome = outcome;
25
- return this;
26
- }
27
- withName(name) {
28
- this.name = name;
29
- return this;
30
- }
31
- }
32
- exports.BaseTrigger = BaseTrigger;
33
- _a = JSII_RTTI_SYMBOL_1;
34
- BaseTrigger[_a] = { fqn: "@shuttl-io/core.BaseTrigger", version: "0.1.7-0" };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVRyaWdnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJpZ2dlci9JVHJpZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXlGQSxNQUFzQixXQUFXO0lBTTdCLFlBQW1CLFdBQW1CLEVBQUUsTUFBK0I7UUFIaEUsa0JBQWEsR0FBNEIsRUFBRSxDQUFDO1FBSS9DLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLENBQUMsbUNBQW1DO1FBQzVELElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFJTSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQVMsRUFBRSxPQUF3QjtRQUNyRCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNMLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBaUI7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUFZO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7O0FBaENMLGtDQWlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0Q29udGVudCwgSU1vZGVsUmVzcG9uc2VTdHJlYW0gfSBmcm9tIFwiLi4vbW9kZWxzL3R5cGVzXCI7XG5pbXBvcnQgeyBJT3V0Y29tZSB9IGZyb20gXCIuLi9vdXRjb21lcy9JT3V0Y29tZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUcmlnZ2VyT3V0cHV0IHtcbiAgICByZWFkb25seSBpbnB1dDogSW5wdXRDb250ZW50W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRyaWdnZXJJbnZva2VyIHtcbiAgICBpbnZva2UocHJvbXB0OiBJbnB1dENvbnRlbnRbXSk6IFByb21pc2U8SU1vZGVsUmVzcG9uc2VTdHJlYW0+O1xuICAgIGRlZmF1bHRPdXRjb21lKHN0cmVhbTogSU1vZGVsUmVzcG9uc2VTdHJlYW0pOiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzZXJpYWxpemVkIEhUVFAgcmVxdWVzdCBmcm9tIHRoZSBzZXJ2ZSBjb21tYW5kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWFsaXplZEhUVFBSZXF1ZXN0IHtcbiAgICAvKiogVGhlIEhUVFAgbWV0aG9kIChQT1NULCBHRVQsIGV0Yy4pICovXG4gICAgcmVhZG9ubHkgbWV0aG9kOiBzdHJpbmc7XG4gICAgLyoqIFRoZSByZXF1ZXN0IHBhdGggKi9cbiAgICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gICAgLyoqIEhUVFAgaGVhZGVycyBhcyBrZXktdmFsdWUgcGFpcnMgd2l0aCBhcnJheSB2YWx1ZXMgKi9cbiAgICByZWFkb25seSBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT47XG4gICAgLyoqIFF1ZXJ5IHBhcmFtZXRlcnMgYXMga2V5LXZhbHVlIHBhaXJzIHdpdGggYXJyYXkgdmFsdWVzICovXG4gICAgcmVhZG9ubHkgcXVlcnk6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPjtcbiAgICAvKiogVGhlIHJlcXVlc3QgYm9keSAocGFyc2VkIEpTT04gb3IgcmF3KSAqL1xuICAgIHJlYWRvbmx5IGJvZHk/OiB1bmtub3duO1xuICAgIC8qKiBUaGUgQ29udGVudC1UeXBlIGhlYWRlciB2YWx1ZSAqL1xuICAgIHJlYWRvbmx5IGNvbnRlbnRUeXBlOiBzdHJpbmc7XG4gICAgLyoqIFRoZSByZW1vdGUgYWRkcmVzcyBvZiB0aGUgY2xpZW50ICovXG4gICAgcmVhZG9ubHkgcmVtb3RlQWRkcjogc3RyaW5nO1xuICAgIC8qKiBUaGUgaG9zdCBoZWFkZXIgdmFsdWUgKi9cbiAgICByZWFkb25seSBob3N0OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBIVFRQIHByb3RvY29sIHZlcnNpb24gKi9cbiAgICByZWFkb25seSBwcm90bzogc3RyaW5nO1xuICAgIC8qKiBUaW1lc3RhbXAgb2Ygd2hlbiB0aGUgcmVxdWVzdCB3YXMgcmVjZWl2ZWQgKi9cbiAgICByZWFkb25seSB0aW1lc3RhbXA6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgdHJpZ2dlciB0aGF0IGNhbiBhY3RpdmF0ZSBhbiBhZ2VudC4gVHJpZ2dlcnMgY2FuIHRha2UgYW55IGFyZ3VtZW50cyBhbmQgdGhlbiByZXR1cm4gd2hhdCB0aGUgaW5wdXQgc2hvdWxkIGJlIGZvciB0aGUgYWdlbnQuXG4gKiBUcmlnZ2VycyBhbHNvIGNhbiB2YWxpZGF0ZSB0aGUgYXJndW1lbnRzIGFuZCByZXR1cm4gYW4gZXJyb3IgaWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVHJpZ2dlciB7XG4gICAgLyoqXG4gICAgICogVGhlIHVuaXF1ZSBuYW1lIG9mIHRoaXMgdHJpZ2dlciBpbnN0YW5jZS5cbiAgICAgKiBJZiBub3Qgc2V0LCBkZWZhdWx0cyB0byB0cmlnZ2VyVHlwZS5cbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdHlwZSBvZiB0cmlnZ2VyLlxuICAgICAqL1xuICAgIHRyaWdnZXJUeXBlOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB0cmlnZ2VyLlxuICAgICAqL1xuICAgIHRyaWdnZXJDb25maWc6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gICAgb3V0Y29tZT86IElPdXRjb21lO1xuXG4gICAgLyoqXG4gICAgICogQWN0aXZhdGVzIHRoZSB0cmlnZ2VyIGFuZCByZXR1cm5zIHRoZSBpbnB1dCBmb3IgdGhlIGFnZW50LlxuICAgICAqIEBwYXJhbSBhcmdzIC0gVGhlIGFyZ3VtZW50cyBmb3IgdGhlIHRyaWdnZXIuXG4gICAgICogQHJldHVybnMgVGhlIGlucHV0IGZvciB0aGUgYWdlbnQuXG4gICAgICovXG4gICAgYWN0aXZhdGUoYXJnczogYW55LCBpbnZva2VyOiBJVHJpZ2dlckludm9rZXIpOiBQcm9taXNlPHZvaWQ+O1xuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIHRoZSBhcmd1bWVudHMgZm9yIHRoZSB0cmlnZ2VyLlxuICAgICAqIEBwYXJhbSBhcmdzIC0gVGhlIGFyZ3VtZW50cyBmb3IgdGhlIHRyaWdnZXIuXG4gICAgICogQHJldHVybnMgVGhlIHZhbGlkYXRpb24gcmVzdWx0LlxuICAgICAqL1xuICAgIHZhbGlkYXRlPyhhcmdzOiBhbnkpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcblxuICAgIC8qKlxuICAgICAqIGJpbmRzIHRoZSBvdXRjb21lIHRvIHRoZSB0cmlnZ2VyXG4gICAgICogQHBhcmFtIG91dGNvbWUgLSBUaGUgb3V0Y29tZSB0byBiaW5kIHRvIHRoZSB0cmlnZ2VyLlxuICAgICAqIEByZXR1cm5zIFRoZSBib3VuZCBvdXRjb21lLlxuICAgICAqL1xuICAgIGJpbmRPdXRjb21lKG91dGNvbWU6IElPdXRjb21lKTogSVRyaWdnZXI7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBuYW1lIG9mIHRoZSB0cmlnZ2VyXG4gICAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byBzZXQgZm9yIHRoZSB0cmlnZ2VyXG4gICAgICogQHJldHVybnMgVGhlIHRyaWdnZXIgaW5zdGFuY2UgZm9yIGNoYWluaW5nXG4gICAgICovXG4gICAgd2l0aE5hbWUobmFtZTogc3RyaW5nKTogSVRyaWdnZXI7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlVHJpZ2dlciBpbXBsZW1lbnRzIElUcmlnZ2VyIHtcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyB0cmlnZ2VyVHlwZTogc3RyaW5nO1xuICAgIHB1YmxpYyB0cmlnZ2VyQ29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICAgIHB1YmxpYyBvdXRjb21lPzogSU91dGNvbWU7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IodHJpZ2dlclR5cGU6IHN0cmluZywgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgICAgICB0aGlzLnRyaWdnZXJUeXBlID0gdHJpZ2dlclR5cGU7XG4gICAgICAgIHRoaXMubmFtZSA9IHRyaWdnZXJUeXBlOyAvLyBEZWZhdWx0IG5hbWUgaXMgdGhlIHRyaWdnZXIgdHlwZVxuICAgICAgICB0aGlzLnRyaWdnZXJDb25maWcgPSBjb25maWc7XG4gICAgfVxuXG4gICAgcHVibGljIGFic3RyYWN0IHBhcnNlQXJncyhhcmdzOiBhbnkpOiBQcm9taXNlPFRyaWdnZXJPdXRwdXQ+O1xuXG4gICAgcHVibGljIGFzeW5jIGFjdGl2YXRlKGFyZ3M6IGFueSwgaW52b2tlcjogSVRyaWdnZXJJbnZva2VyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZEFyZ3MgPSBhd2FpdCB0aGlzLnBhcnNlQXJncyhhcmdzKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBpbnZva2VyLmludm9rZShwYXJzZWRBcmdzLmlucHV0KTtcbiAgICAgICAgaWYgKHRoaXMub3V0Y29tZSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5vdXRjb21lLnNlbmQocmVzcG9uc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXdhaXQgaW52b2tlci5kZWZhdWx0T3V0Y29tZShyZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYmluZE91dGNvbWUob3V0Y29tZTogSU91dGNvbWUpOiBJVHJpZ2dlciB7XG4gICAgICAgIHRoaXMub3V0Y29tZSA9IG91dGNvbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoTmFtZShuYW1lOiBzdHJpbmcpOiBJVHJpZ2dlciB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn0iXX0=
@@ -1,23 +0,0 @@
1
- import { BaseTrigger, TriggerOutput } from "./ITrigger";
2
- import { InputContent } from "../models/types";
3
- import { IOutcome } from "../outcomes/IOutcomes";
4
- export interface IRateTriggerOnTrigger {
5
- onTrigger(): Promise<InputContent[]>;
6
- }
7
- export declare class Rate extends BaseTrigger {
8
- triggerType: string;
9
- triggerConfig: Record<string, unknown>;
10
- outcome?: IOutcome;
11
- private onTrigger;
12
- private constructor();
13
- parseArgs(_: any): Promise<TriggerOutput>;
14
- withOnTrigger(onTrigger: IRateTriggerOnTrigger): Rate;
15
- static milliseconds(value: number): Rate;
16
- static seconds(value: number): Rate;
17
- static minutes(value: number): Rate;
18
- static hours(value: number): Rate;
19
- static days(value: number): Rate;
20
- static weeks(value: number): Rate;
21
- static months(value: number): Rate;
22
- static cron(expression: string, timezone?: string): Rate;
23
- }
@@ -1,58 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.Rate = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const ITrigger_1 = require("./ITrigger");
7
- class Rate extends ITrigger_1.BaseTrigger {
8
- constructor(config) {
9
- super("rate", config);
10
- this.triggerType = "rate";
11
- this.triggerConfig = {};
12
- this.onTrigger = config.onTrigger?.onTrigger ?? null;
13
- }
14
- async parseArgs(_) {
15
- if (this.onTrigger) {
16
- const input = await this.onTrigger();
17
- return { input };
18
- }
19
- else {
20
- return { input: [{
21
- typeName: "text",
22
- text: "The cron expression is " + this.triggerConfig.cronExpression + " and the timezone is " + this.triggerConfig.timezone,
23
- }] };
24
- }
25
- }
26
- withOnTrigger(onTrigger) {
27
- this.onTrigger = onTrigger.onTrigger;
28
- return this;
29
- }
30
- static milliseconds(value) {
31
- return new Rate({ ms_rate: value });
32
- }
33
- static seconds(value) {
34
- return new Rate({ ms_rate: value * 1000 });
35
- }
36
- static minutes(value) {
37
- return new Rate({ ms_rate: value * 60 * 1000 });
38
- }
39
- static hours(value) {
40
- return new Rate({ ms_rate: value * 60 * 60 * 1000 });
41
- }
42
- static days(value) {
43
- return new Rate({ ms_rate: value * 24 * 60 * 60 * 1000 });
44
- }
45
- static weeks(value) {
46
- return new Rate({ ms_rate: value * 7 * 24 * 60 * 60 * 1000 });
47
- }
48
- static months(value) {
49
- return new Rate({ ms_rate: value * 30 * 24 * 60 * 60 * 1000 });
50
- }
51
- static cron(expression, timezone) {
52
- return new Rate({ cronExpression: expression, timezone: timezone ?? "UTC" });
53
- }
54
- }
55
- exports.Rate = Rate;
56
- _a = JSII_RTTI_SYMBOL_1;
57
- Rate[_a] = { fqn: "@shuttl-io/core.Rate", version: "0.1.7-0" };
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmF0ZVRyaWdnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJpZ2dlci9SYXRlVHJpZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlDQUF3RDtBQTJCeEQsTUFBYSxJQUFLLFNBQVEsc0JBQVc7SUFRakMsWUFBb0IsTUFBeUI7UUFDekMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFhLENBQUMsQ0FBQztRQVIxQixnQkFBVyxHQUFXLE1BQU0sQ0FBQztRQUM3QixrQkFBYSxHQUE0QixFQUFFLENBQUM7UUFRL0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUM7SUFDekQsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBTTtRQUN6QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDckIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7d0JBQ2IsUUFBUSxFQUFFLE1BQU07d0JBQ2hCLElBQUksRUFBRSx5QkFBeUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsR0FBRyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVE7cUJBQzlILENBQUMsRUFBRSxDQUFDO1FBQ1QsQ0FBQztJQUNMLENBQUM7SUFFTSxhQUFhLENBQUMsU0FBZ0M7UUFDakQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWE7UUFDcEMsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQWE7UUFDL0IsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFhO1FBQy9CLE9BQU8sSUFBSSxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQWE7UUFDN0IsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFhO1FBQzdCLE9BQU8sSUFBSSxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQWE7UUFDOUIsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBa0IsRUFBRSxRQUFpQjtRQUNwRCxPQUFPLElBQUksSUFBSSxDQUFDLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDakYsQ0FBQzs7QUE1REwsb0JBNkRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZVRyaWdnZXIsIFRyaWdnZXJPdXRwdXQgfSBmcm9tIFwiLi9JVHJpZ2dlclwiO1xuaW1wb3J0IHsgSW5wdXRDb250ZW50IH0gZnJvbSBcIi4uL21vZGVscy90eXBlc1wiO1xuaW1wb3J0IHsgSU91dGNvbWUgfSBmcm9tIFwiLi4vb3V0Y29tZXMvSU91dGNvbWVzXCI7XG5cbmludGVyZmFjZSBSYXRlVHJpZ2dlckNvbmZpZyB7XG4gICAgLyoqXG4gICAgICogVGhlIGNyb24gZXhwcmVzc2lvbiBmb3IgdGhlIHJhdGUgdHJpZ2dlci5cbiAgICAgKi9cbiAgICBjcm9uRXhwcmVzc2lvbj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgdGltZXpvbmUgZm9yIHRoZSBjcm9uIGV4cHJlc3Npb24uXG4gICAgICogQGRlZmF1bHQgXCJVVENcIlxuICAgICAqL1xuICAgIHRpbWV6b25lPzogc3RyaW5nO1xuICAgIG1zX3JhdGU/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIHRoZSB0cmlnZ2VyIGlzIGFjdGl2YXRlZC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgb25UcmlnZ2VyPzogSVJhdGVUcmlnZ2VyT25UcmlnZ2VyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElSYXRlVHJpZ2dlck9uVHJpZ2dlciB7XG4gICAgb25UcmlnZ2VyKCk6IFByb21pc2U8SW5wdXRDb250ZW50W10+O1xufVxuXG5leHBvcnQgY2xhc3MgUmF0ZSBleHRlbmRzIEJhc2VUcmlnZ2VyIHtcbiAgICBwdWJsaWMgdHJpZ2dlclR5cGU6IHN0cmluZyA9IFwicmF0ZVwiO1xuICAgIHB1YmxpYyB0cmlnZ2VyQ29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXG4gICAgcHVibGljIG91dGNvbWU/OiBJT3V0Y29tZTtcblxuICAgIHByaXZhdGUgb25UcmlnZ2VyOiAoKCkgPT4gUHJvbWlzZTxJbnB1dENvbnRlbnRbXT4pIHwgbnVsbDtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IoY29uZmlnOiBSYXRlVHJpZ2dlckNvbmZpZykge1xuICAgICAgICBzdXBlcihcInJhdGVcIiwgY29uZmlnIGFzIGFueSk7XG4gICAgICAgIHRoaXMub25UcmlnZ2VyID0gY29uZmlnLm9uVHJpZ2dlcj8ub25UcmlnZ2VyID8/IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHBhcnNlQXJncyhfOiBhbnkpOiBQcm9taXNlPFRyaWdnZXJPdXRwdXQ+IHtcbiAgICAgICAgaWYgKHRoaXMub25UcmlnZ2VyKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHRoaXMub25UcmlnZ2VyKCk7XG4gICAgICAgICAgICByZXR1cm4geyBpbnB1dCB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHsgaW5wdXQ6IFt7XG4gICAgICAgICAgICAgICAgdHlwZU5hbWU6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgIHRleHQ6IFwiVGhlIGNyb24gZXhwcmVzc2lvbiBpcyBcIiArIHRoaXMudHJpZ2dlckNvbmZpZy5jcm9uRXhwcmVzc2lvbiArIFwiIGFuZCB0aGUgdGltZXpvbmUgaXMgXCIgKyB0aGlzLnRyaWdnZXJDb25maWcudGltZXpvbmUsXG4gICAgICAgICAgICB9XSB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhPblRyaWdnZXIob25UcmlnZ2VyOiBJUmF0ZVRyaWdnZXJPblRyaWdnZXIpOiBSYXRlIHtcbiAgICAgICAgdGhpcy5vblRyaWdnZXIgPSBvblRyaWdnZXIub25UcmlnZ2VyO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIG1pbGxpc2Vjb25kcyh2YWx1ZTogbnVtYmVyKTogUmF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgUmF0ZSh7IG1zX3JhdGU6IHZhbHVlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgc2Vjb25kcyh2YWx1ZTogbnVtYmVyKTogUmF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgUmF0ZSh7IG1zX3JhdGU6IHZhbHVlICogMTAwMCB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIG1pbnV0ZXModmFsdWU6IG51bWJlcik6IFJhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFJhdGUoeyBtc19yYXRlOiB2YWx1ZSAqIDYwICogMTAwMCB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGhvdXJzKHZhbHVlOiBudW1iZXIpOiBSYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSYXRlKHsgbXNfcmF0ZTogdmFsdWUgKiA2MCAqIDYwICogMTAwMCB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGRheXModmFsdWU6IG51bWJlcik6IFJhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFJhdGUoeyBtc19yYXRlOiB2YWx1ZSAqIDI0ICogNjAgKiA2MCAqIDEwMDAgfSk7XG4gICAgfVxuICAgIFxuICAgIHB1YmxpYyBzdGF0aWMgd2Vla3ModmFsdWU6IG51bWJlcik6IFJhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFJhdGUoeyBtc19yYXRlOiB2YWx1ZSAqIDcgKiAyNCAqIDYwICogNjAgKiAxMDAwIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgbW9udGhzKHZhbHVlOiBudW1iZXIpOiBSYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSYXRlKHsgbXNfcmF0ZTogdmFsdWUgKiAzMCAqIDI0ICogNjAgKiA2MCAqIDEwMDAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcm9uKGV4cHJlc3Npb246IHN0cmluZywgdGltZXpvbmU/OiBzdHJpbmcpOiBSYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSYXRlKHsgY3JvbkV4cHJlc3Npb246IGV4cHJlc3Npb24sIHRpbWV6b25lOiB0aW1lem9uZSA/PyBcIlVUQ1wiIH0pO1xuICAgIH1cbn0iXX0=