@aws-amplify/graphql-api-construct 1.15.1 → 1.16.0-ai-streaming.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.jsii +30 -30
- package/CHANGELOG.md +15 -0
- package/lib/amplify-dynamodb-table-wrapper.js +1 -1
- package/lib/amplify-graphql-api.js +9 -12
- package/lib/amplify-graphql-definition.js +1 -1
- package/lib/internal/metadata.d.ts +4 -0
- package/lib/internal/metadata.js +42 -0
- package/lib/sql-model-datasource-strategy.js +1 -1
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/conversation_handler_construct.d.ts +12 -1
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/conversation_handler_construct.js +22 -2
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/index.d.ts +2 -2
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/index.js +1 -1
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/bedrock_converse_adapter.d.ts +8 -2
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/bedrock_converse_adapter.js +196 -34
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/conversation_message_history_retriever.js +34 -8
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/conversation_turn_executor.d.ts +5 -3
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/conversation_turn_executor.js +20 -5
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/conversation_turn_response_sender.d.ts +3 -1
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/conversation_turn_response_sender.js +6 -7
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/conversation_turn_streaming_response_sender.d.ts +22 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/conversation_turn_streaming_response_sender.js +38 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/default_handler.d.ts +1 -1
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/event_tools_provider.js +2 -2
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/graphql_tool.d.ts +7 -7
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/graphql_tool.js +3 -2
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/executable_tool_factory.d.ts +7 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/executable_tool_factory.js +16 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/graphql_request_executor.d.ts +2 -1
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/graphql_request_executor.js +4 -2
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/index.d.ts +3 -2
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/index.js +4 -2
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/types.d.ts +47 -14
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/types.js +1 -1
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/README.md +4 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/ai/conversation/index.d.ts +23 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/ai/conversation/index.js +10 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/ai/conversation/v1.d.ts +22 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/ai/conversation/v1.js +11 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/auth/index.d.ts +113 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/auth/index.js +10 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/auth/v1.d.ts +112 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/auth/v1.js +30 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/custom/index.d.ts +23 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/custom/index.js +10 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/custom/v1.d.ts +22 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/custom/v1.js +11 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/function/index.d.ts +23 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/function/index.js +10 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/function/v1.d.ts +22 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/function/v1.js +11 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/graphql/index.d.ts +59 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/graphql/index.js +12 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/graphql/v1.d.ts +59 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/graphql/v1.js +25 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/index.d.ts +508 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/index.js +112 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/platform/index.d.ts +2 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/platform/index.js +18 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/platform/stack_metadata_schemas.d.ts +42 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/platform/stack_metadata_schemas.js +22 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/stack/index.d.ts +28 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/stack/index.js +10 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/stack/v1.d.ts +27 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/stack/v1.js +12 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/storage/index.d.ts +33 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/storage/index.js +10 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/storage/v1.d.ts +32 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/lib/storage/v1.js +33 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/backend-output-schemas/package.json +27 -0
- package/node_modules/@aws-amplify/ai-constructs/package.json +9 -2
- package/node_modules/@aws-amplify/graphql-auth-transformer/API.md +0 -2
- package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +6 -0
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.d.ts +4 -3
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js +20 -9
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/schema.d.ts +1 -0
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/schema.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/schema.js +8 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/schema.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +12 -12
- package/node_modules/@aws-amplify/graphql-conversation-transformer/CHANGELOG.md +10 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/graphql-types/message-model.d.ts +3 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/graphql-types/message-model.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/graphql-types/message-model.js +53 -5
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/graphql-types/message-model.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-streaming-mutation-reduce-chunks-resolver-fn.template.js +105 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-streaming-mutation-reduce-chunks-resolver.d.ts +4 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-streaming-mutation-reduce-chunks-resolver.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-streaming-mutation-reduce-chunks-resolver.js +25 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-streaming-mutation-reduce-chunks-resolver.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-streaming-mutation-resolver-fn.template.js +125 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-streaming-mutation-resolver.d.ts +4 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-streaming-mutation-resolver.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-streaming-mutation-resolver.js +25 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-streaming-mutation-resolver.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/invoke-lambda-resolver-fn.template.js +14 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/invoke-lambda-resolver.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/invoke-lambda-resolver.js +8 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/invoke-lambda-resolver.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-prepare-handler.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-prepare-handler.js +3 -2
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-prepare-handler.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.d.ts +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.js +19 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/package.json +10 -10
- package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +7 -7
- package/node_modules/@aws-amplify/graphql-directives/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-directives/package.json +2 -2
- package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-function-transformer/package.json +6 -6
- package/node_modules/@aws-amplify/graphql-generation-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/package.json +6 -6
- package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-http-transformer/package.json +6 -6
- package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-index-transformer/package.json +7 -7
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +10 -10
- package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/package.json +6 -6
- package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +6 -6
- package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +8 -8
- package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +7 -7
- package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +7 -7
- package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-transformer/package.json +17 -17
- package/node_modules/@aws-amplify/graphql-transformer-core/API.md +3 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +6 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js +3 -2
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/graphql-utils.d.ts +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/graphql-utils.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/graphql-utils.js +6 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/graphql-utils.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/package.json +4 -4
- package/node_modules/graphql-transformer-common/API.md +3 -0
- package/node_modules/graphql-transformer-common/CHANGELOG.md +6 -0
- package/node_modules/graphql-transformer-common/LICENSE +201 -0
- package/node_modules/graphql-transformer-common/lib/definition.d.ts +1 -0
- package/node_modules/graphql-transformer-common/lib/definition.d.ts.map +1 -1
- package/node_modules/graphql-transformer-common/lib/definition.js +20 -1
- package/node_modules/graphql-transformer-common/lib/definition.js.map +1 -1
- package/node_modules/graphql-transformer-common/package.json +3 -2
- package/package.json +21 -21
- package/src/amplify-graphql-api.ts +12 -12
- package/src/internal/metadata.ts +40 -0
@@ -65,15 +65,10 @@ class ConversationMessageHistoryRetriever {
|
|
65
65
|
/**
|
66
66
|
* Creates conversation message history retriever.
|
67
67
|
*/
|
68
|
-
constructor(event, graphqlRequestExecutor = new graphql_request_executor_1.GraphqlRequestExecutor(event.graphqlApiEndpoint, event.request.headers.authorization)) {
|
68
|
+
constructor(event, graphqlRequestExecutor = new graphql_request_executor_1.GraphqlRequestExecutor(event.graphqlApiEndpoint, event.request.headers.authorization, event.request.headers['x-amz-user-agent'])) {
|
69
69
|
this.event = event;
|
70
70
|
this.graphqlRequestExecutor = graphqlRequestExecutor;
|
71
71
|
this.getMessageHistory = async () => {
|
72
|
-
var _a;
|
73
|
-
if ((_a = this.event.messages) === null || _a === void 0 ? void 0 : _a.length) {
|
74
|
-
// This is for backwards compatibility and should be removed with messages property.
|
75
|
-
return this.event.messages;
|
76
|
-
}
|
77
72
|
const messages = await this.listMessages();
|
78
73
|
let currentMessage = messages.find((m) => m.id === this.event.currentMessageId);
|
79
74
|
// This is a fallback in case current message is not available in the message list.
|
@@ -165,9 +160,40 @@ class ConversationMessageHistoryRetriever {
|
|
165
160
|
query,
|
166
161
|
variables,
|
167
162
|
});
|
168
|
-
|
163
|
+
const items = response.data[this.event.messageHistoryQuery.listQueryName].items;
|
164
|
+
items.forEach((item) => {
|
165
|
+
var _a;
|
166
|
+
(_a = item.content) === null || _a === void 0 ? void 0 : _a.forEach((contentBlock) => {
|
167
|
+
var _a, _b;
|
168
|
+
let property;
|
169
|
+
for (property in contentBlock) {
|
170
|
+
// Deserialization of GraphQl query result sets these properties to 'null'
|
171
|
+
// This can trigger Bedrock SDK validation as it expects 'undefined' if properties are not set.
|
172
|
+
// We can't fix how GraphQl response is deserialized.
|
173
|
+
// Therefore, we apply this transformation to fix the data.
|
174
|
+
if (contentBlock[property] === null) {
|
175
|
+
contentBlock[property] = undefined;
|
176
|
+
}
|
177
|
+
}
|
178
|
+
if (typeof ((_a = contentBlock.toolUse) === null || _a === void 0 ? void 0 : _a.input) === 'string') {
|
179
|
+
// toolUse.input may come as serialized JSON for Client Tools.
|
180
|
+
// Parse it in that case.
|
181
|
+
contentBlock.toolUse.input = JSON.parse(contentBlock.toolUse.input);
|
182
|
+
}
|
183
|
+
if ((_b = contentBlock.toolResult) === null || _b === void 0 ? void 0 : _b.content) {
|
184
|
+
contentBlock.toolResult.content.forEach((toolResultContentBlock) => {
|
185
|
+
if (typeof toolResultContentBlock.json === 'string') {
|
186
|
+
// toolResult.content[].json may come as serialized JSON for Client Tools.
|
187
|
+
// Parse it in that case.
|
188
|
+
toolResultContentBlock.json = JSON.parse(toolResultContentBlock.json);
|
189
|
+
}
|
190
|
+
});
|
191
|
+
}
|
192
|
+
});
|
193
|
+
});
|
194
|
+
return items;
|
169
195
|
};
|
170
196
|
}
|
171
197
|
}
|
172
198
|
exports.ConversationMessageHistoryRetriever = ConversationMessageHistoryRetriever;
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uX21lc3NhZ2VfaGlzdG9yeV9yZXRyaWV2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udmVyc2F0aW9uL3J1bnRpbWUvY29udmVyc2F0aW9uX21lc3NhZ2VfaGlzdG9yeV9yZXRyaWV2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUVBQW9FO0FBbUNwRTs7OztHQUlHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBZ0QvQixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQWEsbUNBQW1DO0lBQzlDOztPQUVHO0lBQ0gsWUFDbUIsS0FBNEIsRUFDNUIseUJBQXlCLElBQUksaURBQXNCLENBQ2xFLEtBQUssQ0FBQyxrQkFBa0IsRUFDeEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUNwQztRQUpnQixVQUFLLEdBQUwsS0FBSyxDQUF1QjtRQUM1QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBR3RDO1FBR0gsc0JBQWlCLEdBQUcsS0FBSyxJQUF5QyxFQUFFOztZQUNsRSxJQUFJLE1BQUEsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLDBDQUFFLE1BQU0sRUFBRTtnQkFDL0Isb0ZBQW9GO2dCQUNwRixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO2FBQzVCO1lBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFM0MsSUFBSSxjQUFjLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FDaEMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDNUMsQ0FBQztZQUVGLG1GQUFtRjtZQUNuRix5RUFBeUU7WUFDekUsK0JBQStCO1lBQy9CLElBQUksQ0FBQyxj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WSxDQUFDLENBQUM7UUFDcEUsQ0FBQyxDQUFDO1FBRUksaUJBQVksR0FBRyxLQUFLLElBRTFCLEVBQUU7O1lBQ0YsTUFBTSxLQUFLLEdBQUc7c0NBQ29CLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsc0JBQXNCO2NBQzdFLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsYUFBYTs7a0JBRXhDLHVCQUF1Qjs7OztLQUlwQyxDQUFDO1lBQ0YsTUFBTSxTQUFTLEdBQW1CO2dCQUNoQyxNQUFNLEVBQUU7b0JBQ04sY0FBYyxFQUFFO3dCQUNkLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWM7cUJBQzlCO2lCQUNGO2dCQUNELEtBQUssRUFBRSxNQUFBLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsY0FBYyxtQ0FBSSxJQUFJO2FBQzdELENBQUM7WUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBRy9EO2dCQUNBLEtBQUs7Z0JBQ0wsU0FBUzthQUNWLENBQUMsQ0FBQztZQUVILE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMzRSxDQUFDLENBQUM7SUFuSUMsQ0FBQztDQW9JTDtBQTlJRCxrRkE4SUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb252ZXJzYXRpb25NZXNzYWdlLCBDb252ZXJzYXRpb25UdXJuRXZlbnQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEdyYXBocWxSZXF1ZXN0RXhlY3V0b3IgfSBmcm9tICcuL2dyYXBocWxfcmVxdWVzdF9leGVjdXRvcic7XG5cbmV4cG9ydCB0eXBlIENvbnZlcnNhdGlvbkhpc3RvcnlNZXNzYWdlSXRlbSA9IENvbnZlcnNhdGlvbk1lc3NhZ2UgJiB7XG4gIGlkOiBzdHJpbmc7XG4gIGNvbnZlcnNhdGlvbklkOiBzdHJpbmc7XG4gIGFzc29jaWF0ZWRVc2VyTWVzc2FnZUlkPzogc3RyaW5nO1xuICBhaUNvbnRleHQ/OiB1bmtub3duO1xufTtcblxuZXhwb3J0IHR5cGUgR2V0UXVlcnlJbnB1dCA9IHtcbiAgaWQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEdldFF1ZXJ5T3V0cHV0ID0ge1xuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBDb252ZXJzYXRpb25IaXN0b3J5TWVzc2FnZUl0ZW0+O1xufTtcblxuZXhwb3J0IHR5cGUgTGlzdFF1ZXJ5SW5wdXQgPSB7XG4gIGZpbHRlcjoge1xuICAgIGNvbnZlcnNhdGlvbklkOiB7XG4gICAgICBlcTogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIGxpbWl0OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBMaXN0UXVlcnlPdXRwdXQgPSB7XG4gIGRhdGE6IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAge1xuICAgICAgaXRlbXM6IEFycmF5PENvbnZlcnNhdGlvbkhpc3RvcnlNZXNzYWdlSXRlbT47XG4gICAgfVxuICA+O1xufTtcblxuLyoqXG4gKiBUaGVzZSBhcmUgYWxsIHByb3BlcnRpZXMgd2UgaGF2ZSB0byBwdWxsLlxuICogVW5mb3J0dW5hdGVseSwgR1FMIGRvZXNuJ3Qgc3VwcG9ydCB3aWxkY2FyZHMuXG4gKiBodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC9ncmFwaHFsLXNwZWMvaXNzdWVzLzEyN1xuICovXG5jb25zdCBtZXNzYWdlSXRlbVNlbGVjdGlvblNldCA9IGBcbiAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgIGNvbnZlcnNhdGlvbklkXG4gICAgICAgICAgICAgICAgYXNzb2NpYXRlZFVzZXJNZXNzYWdlSWRcbiAgICAgICAgICAgICAgICBhaUNvbnRleHRcbiAgICAgICAgICAgICAgICByb2xlXG4gICAgICAgICAgICAgICAgY29udGVudCB7XG4gICAgICAgICAgICAgICAgICB0ZXh0XG4gICAgICAgICAgICAgICAgICBkb2N1bWVudCB7XG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZSB7XG4gICAgICAgICAgICAgICAgICAgICAgYnl0ZXNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBmb3JtYXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgaW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICBmb3JtYXRcbiAgICAgICAgICAgICAgICAgICAgc291cmNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBieXRlc1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB0b29sUmVzdWx0IHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlc1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBpbWFnZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIGpzb25cbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzXG4gICAgICAgICAgICAgICAgICAgIHRvb2xVc2VJZFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgdG9vbFVzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0XG4gICAgICAgICAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICAgICAgICAgICAgdG9vbFVzZUlkXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuYDtcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciByZXRyaWV2aW5nIG1lc3NhZ2UgaGlzdG9yeSB0aGF0IGJlbG9uZ3MgdG8gY29udmVyc2F0aW9uIHR1cm4gZXZlbnQuXG4gKiBJdCBxdWVyaWVzIEFwcFN5bmMgdG8gbGlzdCBtZXNzYWdlcyB0aGF0IGJlbG9uZyB0byBjb252ZXJzYXRpb24uXG4gKiBBZGRpdGlvbmFsbHksIGl0IGxvb2tzIHVwIGEgY3VycmVudCBtZXNzYWdlIGluIGNhc2UgaXQncyBtaXNzaW5nIGluIHRoZSBsaXN0IGR1ZSB0byBldmVudHVhbCBjb25zaXN0ZW5jeS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvbk1lc3NhZ2VIaXN0b3J5UmV0cmlldmVyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgY29udmVyc2F0aW9uIG1lc3NhZ2UgaGlzdG9yeSByZXRyaWV2ZXIuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50OiBDb252ZXJzYXRpb25UdXJuRXZlbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBncmFwaHFsUmVxdWVzdEV4ZWN1dG9yID0gbmV3IEdyYXBocWxSZXF1ZXN0RXhlY3V0b3IoXG4gICAgICBldmVudC5ncmFwaHFsQXBpRW5kcG9pbnQsXG4gICAgICBldmVudC5yZXF1ZXN0LmhlYWRlcnMuYXV0aG9yaXphdGlvblxuICAgIClcbiAgKSB7fVxuXG4gIGdldE1lc3NhZ2VIaXN0b3J5ID0gYXN5bmMgKCk6IFByb21pc2U8QXJyYXk8Q29udmVyc2F0aW9uTWVzc2FnZT4+ID0+IHtcbiAgICBpZiAodGhpcy5ldmVudC5tZXNzYWdlcz8ubGVuZ3RoKSB7XG4gICAgICAvLyBUaGlzIGlzIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBhbmQgc2hvdWxkIGJlIHJlbW92ZWQgd2l0aCBtZXNzYWdlcyBwcm9wZXJ0eS5cbiAgICAgIHJldHVybiB0aGlzLmV2ZW50Lm1lc3NhZ2VzO1xuICAgIH1cbiAgICBjb25zdCBtZXNzYWdlcyA9IGF3YWl0IHRoaXMubGlzdE1lc3NhZ2VzKCk7XG5cbiAgICBsZXQgY3VycmVudE1lc3NhZ2UgPSBtZXNzYWdlcy5maW5kKFxuICAgICAgKG0pID0+IG0uaWQgPT09IHRoaXMuZXZlbnQuY3VycmVudE1lc3NhZ2VJZFxuICAgICk7XG5cbiAgICAvLyBUaGlzIGlzIGEgZmFsbGJhY2sgaW4gY2FzZSBjdXJyZW50IG1lc3NhZ2UgaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgbWVzc2FnZSBsaXN0LlxuICAgIC8vIEkuZS4gaW4gYSBzaXR1YXRpb24gd2hlbiBmcmVzaGx5IHdyaXR0ZW4gbWVzc2FnZSBpcyBub3QgeWV0IHZpc2libGUgaW5cbiAgICAvLyBldmVudHVhbGx5IGNvbnNpc3RlbnQgcmVhZHMuXG4gICAgaWYgKCFjdXJyZW50TWVzc2FnZSkge1xuICAgICAgY3VycmVudE1lc3NhZ2UgPSBhd2FpdCB0aGlzLmdldEN1cnJlbnRNZXNzYWdlKCk7XG4gICAgICBtZXNzYWdlcy5wdXNoKGN1cnJlbnRNZXNzYWdlKTtcbiAgICB9XG5cbiAgICAvLyBJbmRleCBhc3Npc3RhbnQgbWVzc2FnZXMgYnkgY29ycmVzcG9uZGluZyB1c2VyIG1lc3NhZ2UuXG4gICAgY29uc3QgYXNzaXN0YW50TWVzc2FnZUJ5VXNlck1lc3NhZ2VJZDogTWFwPFxuICAgICAgc3RyaW5nLFxuICAgICAgQ29udmVyc2F0aW9uSGlzdG9yeU1lc3NhZ2VJdGVtXG4gICAgPiA9IG5ldyBNYXAoKTtcbiAgICBtZXNzYWdlcy5mb3JFYWNoKChtZXNzYWdlKSA9PiB7XG4gICAgICBpZiAobWVzc2FnZS5yb2xlID09PSAnYXNzaXN0YW50JyAmJiBtZXNzYWdlLmFzc29jaWF0ZWRVc2VyTWVzc2FnZUlkKSB7XG4gICAgICAgIGFzc2lzdGFudE1lc3NhZ2VCeVVzZXJNZXNzYWdlSWQuc2V0KFxuICAgICAgICAgIG1lc3NhZ2UuYXNzb2NpYXRlZFVzZXJNZXNzYWdlSWQsXG4gICAgICAgICAgbWVzc2FnZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gUmVjb25jaWxlIGhpc3RvcnkgYW5kIGluamVjdCBhaUNvbnRleHRcbiAgICByZXR1cm4gbWVzc2FnZXMucmVkdWNlKChhY2MsIGN1cnJlbnQpID0+IHtcbiAgICAgIC8vIEJlZHJvY2sgZXhwZWN0cyB0aGF0IG1lc3NhZ2UgaGlzdG9yeSBpcyB1c2VyLT5hc3Npc3RhbnQtPnVzZXItPmFzc2lzdGFudC0+Li4uIGFuZCBzbyBvbi5cbiAgICAgIC8vIFRoZSBjaHJvbm9sb2dpY2FsIG9yZGVyIGRvZXNuJ3QgYXNzdXJlIHRoaXMgb3JkZXJpbmcgaWYgdGhlcmUgd2VyZSBhbnkgY29uY3VycmVudCBtZXNzYWdlcyBzZW50LlxuICAgICAgLy8gVGhlcmVmb3JlLCBjb252ZXJzYXRpb24gaXMgb3JkZXJlZCBieSB1c2VyJ3MgbWVzc2FnZXMgb25seSBhbmQgY29ycmVzcG9uZGluZyBhc3Npc3RhbnQgbWVzc2FnZXMgYXJlIGluc2VydGVkXG4gICAgICAvLyBpbnRvIHJpZ2h0IHBsYWNlIHJlZ2FyZGxlc3Mgb2YgdGhlaXIgY3JlYXRlZEF0IHZhbHVlLlxuICAgICAgLy8gVGhpcyBhbGdvcml0aG0gYXNzdW1lcyB0aGF0IEdRTCBxdWVyeSByZXR1cm5zIG1lc3NhZ2VzIHNvcnRlZCBieSBjcmVhdGVkQXQuXG4gICAgICBpZiAoY3VycmVudC5yb2xlID09PSAnYXNzaXN0YW50Jykge1xuICAgICAgICAvLyBJbml0aWFsbHksIHNraXAgYXNzaXN0YW50IG1lc3NhZ2VzLCB0aGVzZSBtaWdodCBiZSBvdXQgb2YgY2hyb25vbG9naWNhbCBvcmRlci5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgY3VycmVudC5yb2xlID09PSAndXNlcicgJiZcbiAgICAgICAgIWFzc2lzdGFudE1lc3NhZ2VCeVVzZXJNZXNzYWdlSWQuaGFzKGN1cnJlbnQuaWQpICYmXG4gICAgICAgIGN1cnJlbnQuaWQgIT09IHRoaXMuZXZlbnQuY3VycmVudE1lc3NhZ2VJZFxuICAgICAgKSB7XG4gICAgICAgIC8vIFNraXAgdXNlciBtZXNzYWdlcyB0aGF0IGRpZG4ndCBnZXQgYW5zd2VyIGZyb20gYXNzaXN0YW50IHlldC5cbiAgICAgICAgLy8gVGhlc2UgbWlnaHQgYmUgc3RpbGwgXCJpbi1mbGlnaHRcIiwgaS5lLiBhc3Npc3RhbnQgaXMgc3RpbGwgd29ya2luZyBvbiB0aGVtIGluIHNlcGFyYXRlIGludm9jYXRpb24uXG4gICAgICAgIC8vIEV4Y2VwdCBjdXJyZW50IG1lc3NhZ2UsIHdlIHdhbnQgdG8gcHJvY2VzcyB0aGF0IG9uZS5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFpQ29udGV4dCA9IGN1cnJlbnQuYWlDb250ZXh0O1xuICAgICAgY29uc3QgY29udGVudCA9IGFpQ29udGV4dFxuICAgICAgICA/IFsuLi5jdXJyZW50LmNvbnRlbnQsIHsgdGV4dDogSlNPTi5zdHJpbmdpZnkoYWlDb250ZXh0KSB9XVxuICAgICAgICA6IGN1cnJlbnQuY29udGVudDtcblxuICAgICAgYWNjLnB1c2goeyByb2xlOiBjdXJyZW50LnJvbGUsIGNvbnRlbnQgfSk7XG5cbiAgICAgIC8vIEZpbmQgYW5kIGluc2VydCBjb3JyZXNwb25kaW5nIGFzc2lzdGFudCBtZXNzYWdlLlxuICAgICAgY29uc3QgY29ycmVzcG9uZGluZ0Fzc2lzdGFudE1lc3NhZ2UgPSBhc3Npc3RhbnRNZXNzYWdlQnlVc2VyTWVzc2FnZUlkLmdldChcbiAgICAgICAgY3VycmVudC5pZFxuICAgICAgKTtcbiAgICAgIGlmIChjb3JyZXNwb25kaW5nQXNzaXN0YW50TWVzc2FnZSkge1xuICAgICAgICBhY2MucHVzaCh7XG4gICAgICAgICAgcm9sZTogY29ycmVzcG9uZGluZ0Fzc2lzdGFudE1lc3NhZ2Uucm9sZSxcbiAgICAgICAgICBjb250ZW50OiBjb3JyZXNwb25kaW5nQXNzaXN0YW50TWVzc2FnZS5jb250ZW50LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10gYXMgQXJyYXk8Q29udmVyc2F0aW9uTWVzc2FnZT4pO1xuICB9O1xuXG4gIHByaXZhdGUgZ2V0Q3VycmVudE1lc3NhZ2UgPVxuICAgIGFzeW5jICgpOiBQcm9taXNlPENvbnZlcnNhdGlvbkhpc3RvcnlNZXNzYWdlSXRlbT4gPT4ge1xuICAgICAgY29uc3QgcXVlcnkgPSBgXG4gICAgICAgIHF1ZXJ5IEdldE1lc3NhZ2UoJGlkOiAke3RoaXMuZXZlbnQubWVzc2FnZUhpc3RvcnlRdWVyeS5nZXRRdWVyeUlucHV0VHlwZU5hbWV9ISkge1xuICAgICAgICAgICAgJHt0aGlzLmV2ZW50Lm1lc3NhZ2VIaXN0b3J5UXVlcnkuZ2V0UXVlcnlOYW1lfShpZDogJGlkKSB7XG4gICAgICAgICAgICAgICR7bWVzc2FnZUl0ZW1TZWxlY3Rpb25TZXR9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBgO1xuICAgICAgY29uc3QgdmFyaWFibGVzOiBHZXRRdWVyeUlucHV0ID0ge1xuICAgICAgICBpZDogdGhpcy5ldmVudC5jdXJyZW50TWVzc2FnZUlkLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmdyYXBocWxSZXF1ZXN0RXhlY3V0b3IuZXhlY3V0ZUdyYXBocWw8XG4gICAgICAgIEdldFF1ZXJ5SW5wdXQsXG4gICAgICAgIEdldFF1ZXJ5T3V0cHV0XG4gICAgICA+KHtcbiAgICAgICAgcXVlcnksXG4gICAgICAgIHZhcmlhYmxlcyxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YVt0aGlzLmV2ZW50Lm1lc3NhZ2VIaXN0b3J5UXVlcnkuZ2V0UXVlcnlOYW1lXTtcbiAgICB9O1xuXG4gIHByaXZhdGUgbGlzdE1lc3NhZ2VzID0gYXN5bmMgKCk6IFByb21pc2U8XG4gICAgQXJyYXk8Q29udmVyc2F0aW9uSGlzdG9yeU1lc3NhZ2VJdGVtPlxuICA+ID0+IHtcbiAgICBjb25zdCBxdWVyeSA9IGBcbiAgICAgICAgcXVlcnkgTGlzdE1lc3NhZ2VzKCRmaWx0ZXI6ICR7dGhpcy5ldmVudC5tZXNzYWdlSGlzdG9yeVF1ZXJ5Lmxpc3RRdWVyeUlucHV0VHlwZU5hbWV9ISwgJGxpbWl0OiBJbnQpIHtcbiAgICAgICAgICAgICR7dGhpcy5ldmVudC5tZXNzYWdlSGlzdG9yeVF1ZXJ5Lmxpc3RRdWVyeU5hbWV9KGZpbHRlcjogJGZpbHRlciwgbGltaXQ6ICRsaW1pdCkge1xuICAgICAgICAgICAgICBpdGVtcyB7XG4gICAgICAgICAgICAgICAgJHttZXNzYWdlSXRlbVNlbGVjdGlvblNldH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgYDtcbiAgICBjb25zdCB2YXJpYWJsZXM6IExpc3RRdWVyeUlucHV0ID0ge1xuICAgICAgZmlsdGVyOiB7XG4gICAgICAgIGNvbnZlcnNhdGlvbklkOiB7XG4gICAgICAgICAgZXE6IHRoaXMuZXZlbnQuY29udmVyc2F0aW9uSWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbGltaXQ6IHRoaXMuZXZlbnQubWVzc2FnZUhpc3RvcnlRdWVyeS5saXN0UXVlcnlMaW1pdCA/PyAxMDAwLFxuICAgIH07XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuZ3JhcGhxbFJlcXVlc3RFeGVjdXRvci5leGVjdXRlR3JhcGhxbDxcbiAgICAgIExpc3RRdWVyeUlucHV0LFxuICAgICAgTGlzdFF1ZXJ5T3V0cHV0XG4gICAgPih7XG4gICAgICBxdWVyeSxcbiAgICAgIHZhcmlhYmxlcyxcbiAgICB9KTtcblxuICAgIHJldHVybiByZXNwb25zZS5kYXRhW3RoaXMuZXZlbnQubWVzc2FnZUhpc3RvcnlRdWVyeS5saXN0UXVlcnlOYW1lXS5pdGVtcztcbiAgfTtcbn1cbiJdfQ==
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uX21lc3NhZ2VfaGlzdG9yeV9yZXRyaWV2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udmVyc2F0aW9uL3J1bnRpbWUvY29udmVyc2F0aW9uX21lc3NhZ2VfaGlzdG9yeV9yZXRyaWV2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUVBQW9FO0FBbUNwRTs7OztHQUlHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBZ0QvQixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQWEsbUNBQW1DO0lBQzlDOztPQUVHO0lBQ0gsWUFDbUIsS0FBNEIsRUFDNUIseUJBQXlCLElBQUksaURBQXNCLENBQ2xFLEtBQUssQ0FBQyxrQkFBa0IsRUFDeEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUNuQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUMxQztRQUxnQixVQUFLLEdBQUwsS0FBSyxDQUF1QjtRQUM1QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBSXRDO1FBR0gsc0JBQWlCLEdBQUcsS0FBSyxJQUF5QyxFQUFFO1lBQ2xFLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRTNDLElBQUksY0FBYyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQ2hDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQzVDLENBQUM7WUFFRixtRkFBbUY7WUFDbkYseUVBQXlFO1lBQ3pFLCtCQUErQjtZQUMvQixJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNuQixjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDaEQsUUFBUSxD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QUFFO3dCQUNuRCw4REFBOEQ7d0JBQzlELHlCQUF5Qjt3QkFDekIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNyRTtvQkFDRCxJQUFJLE1BQUEsWUFBWSxDQUFDLFVBQVUsMENBQUUsT0FBTyxFQUFFO3dCQUNwQyxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFOzRCQUNqRSxJQUFJLE9BQU8sc0JBQXNCLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQ0FDbkQsMEVBQTBFO2dDQUMxRSx5QkFBeUI7Z0NBQ3pCLHNCQUFzQixDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUN0QyxzQkFBc0IsQ0FBQyxJQUFJLENBQzVCLENBQUM7NkJBQ0g7d0JBQ0gsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDO0lBbEtDLENBQUM7Q0FtS0w7QUE5S0Qsa0ZBOEtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udmVyc2F0aW9uTWVzc2FnZSwgQ29udmVyc2F0aW9uVHVybkV2ZW50IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBHcmFwaHFsUmVxdWVzdEV4ZWN1dG9yIH0gZnJvbSAnLi9ncmFwaHFsX3JlcXVlc3RfZXhlY3V0b3InO1xuXG5leHBvcnQgdHlwZSBDb252ZXJzYXRpb25IaXN0b3J5TWVzc2FnZUl0ZW0gPSBDb252ZXJzYXRpb25NZXNzYWdlICYge1xuICBpZDogc3RyaW5nO1xuICBjb252ZXJzYXRpb25JZDogc3RyaW5nO1xuICBhc3NvY2lhdGVkVXNlck1lc3NhZ2VJZD86IHN0cmluZztcbiAgYWlDb250ZXh0PzogdW5rbm93bjtcbn07XG5cbmV4cG9ydCB0eXBlIEdldFF1ZXJ5SW5wdXQgPSB7XG4gIGlkOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBHZXRRdWVyeU91dHB1dCA9IHtcbiAgZGF0YTogUmVjb3JkPHN0cmluZywgQ29udmVyc2F0aW9uSGlzdG9yeU1lc3NhZ2VJdGVtPjtcbn07XG5cbmV4cG9ydCB0eXBlIExpc3RRdWVyeUlucHV0ID0ge1xuICBmaWx0ZXI6IHtcbiAgICBjb252ZXJzYXRpb25JZDoge1xuICAgICAgZXE6IHN0cmluZztcbiAgICB9O1xuICB9O1xuICBsaW1pdDogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgTGlzdFF1ZXJ5T3V0cHV0ID0ge1xuICBkYXRhOiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIHtcbiAgICAgIGl0ZW1zOiBBcnJheTxDb252ZXJzYXRpb25IaXN0b3J5TWVzc2FnZUl0ZW0+O1xuICAgIH1cbiAgPjtcbn07XG5cbi8qKlxuICogVGhlc2UgYXJlIGFsbCBwcm9wZXJ0aWVzIHdlIGhhdmUgdG8gcHVsbC5cbiAqIFVuZm9ydHVuYXRlbHksIEdRTCBkb2Vzbid0IHN1cHBvcnQgd2lsZGNhcmRzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL2dyYXBocWwvZ3JhcGhxbC1zcGVjL2lzc3Vlcy8xMjdcbiAqL1xuY29uc3QgbWVzc2FnZUl0ZW1TZWxlY3Rpb25TZXQgPSBgXG4gICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICBjb252ZXJzYXRpb25JZFxuICAgICAgICAgICAgICAgIGFzc29jaWF0ZWRVc2VyTWVzc2FnZUlkXG4gICAgICAgICAgICAgICAgYWlDb250ZXh0XG4gICAgICAgICAgICAgICAgcm9sZVxuICAgICAgICAgICAgICAgIGNvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgdGV4dFxuICAgICAgICAgICAgICAgICAgZG9jdW1lbnQge1xuICAgICAgICAgICAgICAgICAgICBzb3VyY2Uge1xuICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0XG4gICAgICAgICAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGltYWdlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0XG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZSB7XG4gICAgICAgICAgICAgICAgICAgICAgYnl0ZXNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgdG9vbFJlc3VsdCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgaW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0XG4gICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlc1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBqc29uXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1c1xuICAgICAgICAgICAgICAgICAgICB0b29sVXNlSWRcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHRvb2xVc2Uge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dFxuICAgICAgICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICAgICAgICAgIHRvb2xVc2VJZFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbmA7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgcmV0cmlldmluZyBtZXNzYWdlIGhpc3RvcnkgdGhhdCBiZWxvbmdzIHRvIGNvbnZlcnNhdGlvbiB0dXJuIGV2ZW50LlxuICogSXQgcXVlcmllcyBBcHBTeW5jIHRvIGxpc3QgbWVzc2FnZXMgdGhhdCBiZWxvbmcgdG8gY29udmVyc2F0aW9uLlxuICogQWRkaXRpb25hbGx5LCBpdCBsb29rcyB1cCBhIGN1cnJlbnQgbWVzc2FnZSBpbiBjYXNlIGl0J3MgbWlzc2luZyBpbiB0aGUgbGlzdCBkdWUgdG8gZXZlbnR1YWwgY29uc2lzdGVuY3kuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb252ZXJzYXRpb25NZXNzYWdlSGlzdG9yeVJldHJpZXZlciB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGNvbnZlcnNhdGlvbiBtZXNzYWdlIGhpc3RvcnkgcmV0cmlldmVyLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudDogQ29udmVyc2F0aW9uVHVybkV2ZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZ3JhcGhxbFJlcXVlc3RFeGVjdXRvciA9IG5ldyBHcmFwaHFsUmVxdWVzdEV4ZWN1dG9yKFxuICAgICAgZXZlbnQuZ3JhcGhxbEFwaUVuZHBvaW50LFxuICAgICAgZXZlbnQucmVxdWVzdC5oZWFkZXJzLmF1dGhvcml6YXRpb24sXG4gICAgICBldmVudC5yZXF1ZXN0LmhlYWRlcnNbJ3gtYW16LXVzZXItYWdlbnQnXVxuICAgIClcbiAgKSB7fVxuXG4gIGdldE1lc3NhZ2VIaXN0b3J5ID0gYXN5bmMgKCk6IFByb21pc2U8QXJyYXk8Q29udmVyc2F0aW9uTWVzc2FnZT4+ID0+IHtcbiAgICBjb25zdCBtZXNzYWdlcyA9IGF3YWl0IHRoaXMubGlzdE1lc3NhZ2VzKCk7XG5cbiAgICBsZXQgY3VycmVudE1lc3NhZ2UgPSBtZXNzYWdlcy5maW5kKFxuICAgICAgKG0pID0+IG0uaWQgPT09IHRoaXMuZXZlbnQuY3VycmVudE1lc3NhZ2VJZFxuICAgICk7XG5cbiAgICAvLyBUaGlzIGlzIGEgZmFsbGJhY2sgaW4gY2FzZSBjdXJyZW50IG1lc3NhZ2UgaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgbWVzc2FnZSBsaXN0LlxuICAgIC8vIEkuZS4gaW4gYSBzaXR1YXRpb24gd2hlbiBmcmVzaGx5IHdyaXR0ZW4gbWVzc2FnZSBpcyBub3QgeWV0IHZpc2libGUgaW5cbiAgICAvLyBldmVudHVhbGx5IGNvbnNpc3RlbnQgcmVhZHMuXG4gICAgaWYgKCFjdXJyZW50TWVzc2FnZSkge1xuICAgICAgY3VycmVudE1lc3NhZ2UgPSBhd2FpdCB0aGlzLmdldEN1cnJlbnRNZXNzYWdlKCk7XG4gICAgICBtZXNzYWdlcy5wdXNoKGN1cnJlbnRNZXNzYWdlKTtcbiAgICB9XG5cbiAgICAvLyBJbmRleCBhc3Npc3RhbnQgbWVzc2FnZXMgYnkgY29ycmVzcG9uZGluZyB1c2VyIG1lc3NhZ2UuXG4gICAgY29uc3QgYXNzaXN0YW50TWVzc2FnZUJ5VXNlck1lc3NhZ2VJZDogTWFwPFxuICAgICAgc3RyaW5nLFxuICAgICAgQ29udmVyc2F0aW9uSGlzdG9yeU1lc3NhZ2VJdGVtXG4gICAgPiA9IG5ldyBNYXAoKTtcbiAgICBtZXNzYWdlcy5mb3JFYWNoKChtZXNzYWdlKSA9PiB7XG4gICAgICBpZiAobWVzc2FnZS5yb2xlID09PSAnYXNzaXN0YW50JyAmJiBtZXNzYWdlLmFzc29jaWF0ZWRVc2VyTWVzc2FnZUlkKSB7XG4gICAgICAgIGFzc2lzdGFudE1lc3NhZ2VCeVVzZXJNZXNzYWdlSWQuc2V0KFxuICAgICAgICAgIG1lc3NhZ2UuYXNzb2NpYXRlZFVzZXJNZXNzYWdlSWQsXG4gICAgICAgICAgbWVzc2FnZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gUmVjb25jaWxlIGhpc3RvcnkgYW5kIGluamVjdCBhaUNvbnRleHRcbiAgICByZXR1cm4gbWVzc2FnZXMucmVkdWNlKChhY2MsIGN1cnJlbnQpID0+IHtcbiAgICAgIC8vIEJlZHJvY2sgZXhwZWN0cyB0aGF0IG1lc3NhZ2UgaGlzdG9yeSBpcyB1c2VyLT5hc3Npc3RhbnQtPnVzZXItPmFzc2lzdGFudC0+Li4uIGFuZCBzbyBvbi5cbiAgICAgIC8vIFRoZSBjaHJvbm9sb2dpY2FsIG9yZGVyIGRvZXNuJ3QgYXNzdXJlIHRoaXMgb3JkZXJpbmcgaWYgdGhlcmUgd2VyZSBhbnkgY29uY3VycmVudCBtZXNzYWdlcyBzZW50LlxuICAgICAgLy8gVGhlcmVmb3JlLCBjb252ZXJzYXRpb24gaXMgb3JkZXJlZCBieSB1c2VyJ3MgbWVzc2FnZXMgb25seSBhbmQgY29ycmVzcG9uZGluZyBhc3Npc3RhbnQgbWVzc2FnZXMgYXJlIGluc2VydGVkXG4gICAgICAvLyBpbnRvIHJpZ2h0IHBsYWNlIHJlZ2FyZGxlc3Mgb2YgdGhlaXIgY3JlYXRlZEF0IHZhbHVlLlxuICAgICAgLy8gVGhpcyBhbGdvcml0aG0gYXNzdW1lcyB0aGF0IEdRTCBxdWVyeSByZXR1cm5zIG1lc3NhZ2VzIHNvcnRlZCBieSBjcmVhdGVkQXQuXG4gICAgICBpZiAoY3VycmVudC5yb2xlID09PSAnYXNzaXN0YW50Jykge1xuICAgICAgICAvLyBJbml0aWFsbHksIHNraXAgYXNzaXN0YW50IG1lc3NhZ2VzLCB0aGVzZSBtaWdodCBiZSBvdXQgb2YgY2hyb25vbG9naWNhbCBvcmRlci5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgY3VycmVudC5yb2xlID09PSAndXNlcicgJiZcbiAgICAgICAgIWFzc2lzdGFudE1lc3NhZ2VCeVVzZXJNZXNzYWdlSWQuaGFzKGN1cnJlbnQuaWQpICYmXG4gICAgICAgIGN1cnJlbnQuaWQgIT09IHRoaXMuZXZlbnQuY3VycmVudE1lc3NhZ2VJZFxuICAgICAgKSB7XG4gICAgICAgIC8vIFNraXAgdXNlciBtZXNzYWdlcyB0aGF0IGRpZG4ndCBnZXQgYW5zd2VyIGZyb20gYXNzaXN0YW50IHlldC5cbiAgICAgICAgLy8gVGhlc2UgbWlnaHQgYmUgc3RpbGwgXCJpbi1mbGlnaHRcIiwgaS5lLiBhc3Npc3RhbnQgaXMgc3RpbGwgd29ya2luZyBvbiB0aGVtIGluIHNlcGFyYXRlIGludm9jYXRpb24uXG4gICAgICAgIC8vIEV4Y2VwdCBjdXJyZW50IG1lc3NhZ2UsIHdlIHdhbnQgdG8gcHJvY2VzcyB0aGF0IG9uZS5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFpQ29udGV4dCA9IGN1cnJlbnQuYWlDb250ZXh0O1xuICAgICAgY29uc3QgY29udGVudCA9IGFpQ29udGV4dFxuICAgICAgICA/IFsuLi5jdXJyZW50LmNvbnRlbnQsIHsgdGV4dDogSlNPTi5zdHJpbmdpZnkoYWlDb250ZXh0KSB9XVxuICAgICAgICA6IGN1cnJlbnQuY29udGVudDtcblxuICAgICAgYWNjLnB1c2goeyByb2xlOiBjdXJyZW50LnJvbGUsIGNvbnRlbnQgfSk7XG5cbiAgICAgIC8vIEZpbmQgYW5kIGluc2VydCBjb3JyZXNwb25kaW5nIGFzc2lzdGFudCBtZXNzYWdlLlxuICAgICAgY29uc3QgY29ycmVzcG9uZGluZ0Fzc2lzdGFudE1lc3NhZ2UgPSBhc3Npc3RhbnRNZXNzYWdlQnlVc2VyTWVzc2FnZUlkLmdldChcbiAgICAgICAgY3VycmVudC5pZFxuICAgICAgKTtcbiAgICAgIGlmIChjb3JyZXNwb25kaW5nQXNzaXN0YW50TWVzc2FnZSkge1xuICAgICAgICBhY2MucHVzaCh7XG4gICAgICAgICAgcm9sZTogY29ycmVzcG9uZGluZ0Fzc2lzdGFudE1lc3NhZ2Uucm9sZSxcbiAgICAgICAgICBjb250ZW50OiBjb3JyZXNwb25kaW5nQXNzaXN0YW50TWVzc2FnZS5jb250ZW50LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10gYXMgQXJyYXk8Q29udmVyc2F0aW9uTWVzc2FnZT4pO1xuICB9O1xuXG4gIHByaXZhdGUgZ2V0Q3VycmVudE1lc3NhZ2UgPVxuICAgIGFzeW5jICgpOiBQcm9taXNlPENvbnZlcnNhdGlvbkhpc3RvcnlNZXNzYWdlSXRlbT4gPT4ge1xuICAgICAgY29uc3QgcXVlcnkgPSBgXG4gICAgICAgIHF1ZXJ5IEdldE1lc3NhZ2UoJGlkOiAke3RoaXMuZXZlbnQubWVzc2FnZUhpc3RvcnlRdWVyeS5nZXRRdWVyeUlucHV0VHlwZU5hbWV9ISkge1xuICAgICAgICAgICAgJHt0aGlzLmV2ZW50Lm1lc3NhZ2VIaXN0b3J5UXVlcnkuZ2V0UXVlcnlOYW1lfShpZDogJGlkKSB7XG4gICAgICAgICAgICAgICR7bWVzc2FnZUl0ZW1TZWxlY3Rpb25TZXR9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBgO1xuICAgICAgY29uc3QgdmFyaWFibGVzOiBHZXRRdWVyeUlucHV0ID0ge1xuICAgICAgICBpZDogdGhpcy5ldmVudC5jdXJyZW50TWVzc2FnZUlkLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmdyYXBocWxSZXF1ZXN0RXhlY3V0b3IuZXhlY3V0ZUdyYXBocWw8XG4gICAgICAgIEdldFF1ZXJ5SW5wdXQsXG4gICAgICAgIEdldFF1ZXJ5T3V0cHV0XG4gICAgICA+KHtcbiAgICAgICAgcXVlcnksXG4gICAgICAgIHZhcmlhYmxlcyxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YVt0aGlzLmV2ZW50Lm1lc3NhZ2VIaXN0b3J5UXVlcnkuZ2V0UXVlcnlOYW1lXTtcbiAgICB9O1xuXG4gIHByaXZhdGUgbGlzdE1lc3NhZ2VzID0gYXN5bmMgKCk6IFByb21pc2U8XG4gICAgQXJyYXk8Q29udmVyc2F0aW9uSGlzdG9yeU1lc3NhZ2VJdGVtPlxuICA+ID0+IHtcbiAgICBjb25zdCBxdWVyeSA9IGBcbiAgICAgICAgcXVlcnkgTGlzdE1lc3NhZ2VzKCRmaWx0ZXI6ICR7dGhpcy5ldmVudC5tZXNzYWdlSGlzdG9yeVF1ZXJ5Lmxpc3RRdWVyeUlucHV0VHlwZU5hbWV9ISwgJGxpbWl0OiBJbnQpIHtcbiAgICAgICAgICAgICR7dGhpcy5ldmVudC5tZXNzYWdlSGlzdG9yeVF1ZXJ5Lmxpc3RRdWVyeU5hbWV9KGZpbHRlcjogJGZpbHRlciwgbGltaXQ6ICRsaW1pdCkge1xuICAgICAgICAgICAgICBpdGVtcyB7XG4gICAgICAgICAgICAgICAgJHttZXNzYWdlSXRlbVNlbGVjdGlvblNldH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgYDtcbiAgICBjb25zdCB2YXJpYWJsZXM6IExpc3RRdWVyeUlucHV0ID0ge1xuICAgICAgZmlsdGVyOiB7XG4gICAgICAgIGNvbnZlcnNhdGlvbklkOiB7XG4gICAgICAgICAgZXE6IHRoaXMuZXZlbnQuY29udmVyc2F0aW9uSWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbGltaXQ6IHRoaXMuZXZlbnQubWVzc2FnZUhpc3RvcnlRdWVyeS5saXN0UXVlcnlMaW1pdCA/PyAxMDAwLFxuICAgIH07XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuZ3JhcGhxbFJlcXVlc3RFeGVjdXRvci5leGVjdXRlR3JhcGhxbDxcbiAgICAgIExpc3RRdWVyeUlucHV0LFxuICAgICAgTGlzdFF1ZXJ5T3V0cHV0XG4gICAgPih7XG4gICAgICBxdWVyeSxcbiAgICAgIHZhcmlhYmxlcyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGl0ZW1zID1cbiAgICAgIHJlc3BvbnNlLmRhdGFbdGhpcy5ldmVudC5tZXNzYWdlSGlzdG9yeVF1ZXJ5Lmxpc3RRdWVyeU5hbWVdLml0ZW1zO1xuXG4gICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5jb250ZW50Py5mb3JFYWNoKChjb250ZW50QmxvY2spID0+IHtcbiAgICAgICAgbGV0IHByb3BlcnR5OiBrZXlvZiB0eXBlb2YgY29udGVudEJsb2NrO1xuICAgICAgICBmb3IgKHByb3BlcnR5IGluIGNvbnRlbnRCbG9jaykge1xuICAgICAgICAgIC8vIERlc2VyaWFsaXphdGlvbiBvZiBHcmFwaFFsIHF1ZXJ5IHJlc3VsdCBzZXRzIHRoZXNlIHByb3BlcnRpZXMgdG8gJ251bGwnXG4gICAgICAgICAgLy8gVGhpcyBjYW4gdHJpZ2dlciBCZWRyb2NrIFNESyB2YWxpZGF0aW9uIGFzIGl0IGV4cGVjdHMgJ3VuZGVmaW5lZCcgaWYgcHJvcGVydGllcyBhcmUgbm90IHNldC5cbiAgICAgICAgICAvLyBXZSBjYW4ndCBmaXggaG93IEdyYXBoUWwgcmVzcG9uc2UgaXMgZGVzZXJpYWxpemVkLlxuICAgICAgICAgIC8vIFRoZXJlZm9yZSwgd2UgYXBwbHkgdGhpcyB0cmFuc2Zvcm1hdGlvbiB0byBmaXggdGhlIGRhdGEuXG4gICAgICAgICAgaWYgKGNvbnRlbnRCbG9ja1twcm9wZXJ0eV0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnRlbnRCbG9ja1twcm9wZXJ0eV0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50QmxvY2sudG9vbFVzZT8uaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgLy8gdG9vbFVzZS5pbnB1dCBtYXkgY29tZSBhcyBzZXJpYWxpemVkIEpTT04gZm9yIENsaWVudCBUb29scy5cbiAgICAgICAgICAvLyBQYXJzZSBpdCBpbiB0aGF0IGNhc2UuXG4gICAgICAgICAgY29udGVudEJsb2NrLnRvb2xVc2UuaW5wdXQgPSBKU09OLnBhcnNlKGNvbnRlbnRCbG9jay50b29sVXNlLmlucHV0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29udGVudEJsb2NrLnRvb2xSZXN1bHQ/LmNvbnRlbnQpIHtcbiAgICAgICAgICBjb250ZW50QmxvY2sudG9vbFJlc3VsdC5jb250ZW50LmZvckVhY2goKHRvb2xSZXN1bHRDb250ZW50QmxvY2spID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdG9vbFJlc3VsdENvbnRlbnRCbG9jay5qc29uID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAvLyB0b29sUmVzdWx0LmNvbnRlbnRbXS5qc29uIG1heSBjb21lIGFzIHNlcmlhbGl6ZWQgSlNPTiBmb3IgQ2xpZW50IFRvb2xzLlxuICAgICAgICAgICAgICAvLyBQYXJzZSBpdCBpbiB0aGF0IGNhc2UuXG4gICAgICAgICAgICAgIHRvb2xSZXN1bHRDb250ZW50QmxvY2suanNvbiA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgICAgICAgdG9vbFJlc3VsdENvbnRlbnRCbG9jay5qc29uXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9O1xufVxuIl19
|
@@ -1,7 +1,8 @@
|
|
1
1
|
/// <reference types="node" />
|
2
2
|
import { ConversationTurnResponseSender } from './conversation_turn_response_sender.js';
|
3
|
-
import { ConversationTurnEvent, ExecutableTool } from './types.js';
|
3
|
+
import { ConversationTurnEvent, ExecutableTool, JSONSchema } from './types.js';
|
4
4
|
import { BedrockConverseAdapter } from './bedrock_converse_adapter.js';
|
5
|
+
import { ConversationTurnStreamingResponseSender } from './conversation_turn_streaming_response_sender';
|
5
6
|
/**
|
6
7
|
* This class is responsible for orchestrating conversation turn execution.
|
7
8
|
* The conversation turn consist of:
|
@@ -13,11 +14,12 @@ export declare class ConversationTurnExecutor {
|
|
13
14
|
private readonly event;
|
14
15
|
private readonly bedrockConverseAdapter;
|
15
16
|
private readonly responseSender;
|
17
|
+
private readonly streamingResponseSender;
|
16
18
|
private readonly logger;
|
17
19
|
/**
|
18
20
|
* Creates conversation turn executor.
|
19
21
|
*/
|
20
|
-
constructor(event: ConversationTurnEvent, additionalTools: Array<ExecutableTool>, bedrockConverseAdapter?: BedrockConverseAdapter, responseSender?: ConversationTurnResponseSender, logger?: Console);
|
22
|
+
constructor(event: ConversationTurnEvent, additionalTools: Array<ExecutableTool>, bedrockConverseAdapter?: BedrockConverseAdapter, responseSender?: ConversationTurnResponseSender, streamingResponseSender?: ConversationTurnStreamingResponseSender, logger?: Console);
|
21
23
|
execute: () => Promise<void>;
|
22
24
|
}
|
23
25
|
/**
|
@@ -25,6 +27,6 @@ export declare class ConversationTurnExecutor {
|
|
25
27
|
* AppSync instance with conversational routes defined and sends response back.
|
26
28
|
*/
|
27
29
|
export declare const handleConversationTurnEvent: (event: ConversationTurnEvent, props?: {
|
28
|
-
tools?: Array<ExecutableTool
|
30
|
+
tools?: Array<ExecutableTool<JSONSchema, any>>;
|
29
31
|
}) => Promise<void>;
|
30
32
|
//# sourceMappingURL=conversation_turn_executor.d.ts.map
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.handleConversationTurnEvent = exports.ConversationTurnExecutor = void 0;
|
4
4
|
const conversation_turn_response_sender_js_1 = require("./conversation_turn_response_sender.js");
|
5
5
|
const bedrock_converse_adapter_js_1 = require("./bedrock_converse_adapter.js");
|
6
|
+
const conversation_turn_streaming_response_sender_1 = require("./conversation_turn_streaming_response_sender");
|
6
7
|
/**
|
7
8
|
* This class is responsible for orchestrating conversation turn execution.
|
8
9
|
* The conversation turn consist of:
|
@@ -14,16 +15,26 @@ class ConversationTurnExecutor {
|
|
14
15
|
/**
|
15
16
|
* Creates conversation turn executor.
|
16
17
|
*/
|
17
|
-
constructor(event, additionalTools, bedrockConverseAdapter = new bedrock_converse_adapter_js_1.BedrockConverseAdapter(event, additionalTools), responseSender = new conversation_turn_response_sender_js_1.ConversationTurnResponseSender(event), logger = console) {
|
18
|
+
constructor(event, additionalTools, bedrockConverseAdapter = new bedrock_converse_adapter_js_1.BedrockConverseAdapter(event, additionalTools), responseSender = new conversation_turn_response_sender_js_1.ConversationTurnResponseSender(event), streamingResponseSender = new conversation_turn_streaming_response_sender_1.ConversationTurnStreamingResponseSender(event), logger = console) {
|
18
19
|
this.event = event;
|
19
20
|
this.bedrockConverseAdapter = bedrockConverseAdapter;
|
20
21
|
this.responseSender = responseSender;
|
22
|
+
this.streamingResponseSender = streamingResponseSender;
|
21
23
|
this.logger = logger;
|
22
24
|
this.execute = async () => {
|
23
25
|
try {
|
24
26
|
this.logger.log(`Handling conversation turn event, currentMessageId=${this.event.currentMessageId}, conversationId=${this.event.conversationId}`);
|
25
|
-
|
26
|
-
|
27
|
+
this.logger.debug('Event received:', this.event);
|
28
|
+
if (this.event.streamResponse) {
|
29
|
+
const chunks = this.bedrockConverseAdapter.askBedrockStreaming();
|
30
|
+
for await (const chunk of chunks) {
|
31
|
+
await this.streamingResponseSender.sendResponseChunk(chunk);
|
32
|
+
}
|
33
|
+
}
|
34
|
+
else {
|
35
|
+
const assistantResponse = await this.bedrockConverseAdapter.askBedrock();
|
36
|
+
await this.responseSender.sendResponse(assistantResponse);
|
37
|
+
}
|
27
38
|
this.logger.log(`Conversation turn event handled successfully, currentMessageId=${this.event.currentMessageId}, conversationId=${this.event.conversationId}`);
|
28
39
|
}
|
29
40
|
catch (e) {
|
@@ -39,9 +50,13 @@ exports.ConversationTurnExecutor = ConversationTurnExecutor;
|
|
39
50
|
* This function handles a conversation turn event that is coming from
|
40
51
|
* AppSync instance with conversational routes defined and sends response back.
|
41
52
|
*/
|
42
|
-
const handleConversationTurnEvent = async (event,
|
53
|
+
const handleConversationTurnEvent = async (event,
|
54
|
+
// This is by design, so that tools with different input types can be added
|
55
|
+
// to single arrays. Downstream code doesn't use these types.
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
57
|
+
props) => {
|
43
58
|
var _a;
|
44
59
|
await new ConversationTurnExecutor(event, (_a = props === null || props === void 0 ? void 0 : props.tools) !== null && _a !== void 0 ? _a : []).execute();
|
45
60
|
};
|
46
61
|
exports.handleConversationTurnEvent = handleConversationTurnEvent;
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uX3R1cm5fZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udmVyc2F0aW9uL3J1bnRpbWUvY29udmVyc2F0aW9uX3R1cm5fZXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUdBQXdGO0FBRXhGLCtFQUF1RTtBQUN2RSwrR0FBd0c7QUFFeEc7Ozs7OztHQU1HO0FBQ0gsTUFBYSx3QkFBd0I7SUFDbkM7O09BRUc7SUFDSCxZQUNtQixLQUE0QixFQUM3QyxlQUFzQyxFQUNyQix5QkFBeUIsSUFBSSxvREFBc0IsQ0FDbEUsS0FBSyxFQUNMLGVBQWUsQ0FDaEIsRUFDZ0IsaUJBQWlCLElBQUkscUVBQThCLENBQUMsS0FBSyxDQUFDLEVBQzFELDBCQUEwQixJQUFJLHFGQUF1QyxDQUNwRixLQUFLLENBQ04sRUFDZ0IsU0FBUyxPQUFPO1FBVmhCLFVBQUssR0FBTCxLQUFLLENBQXVCO1FBRTVCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FHdEM7UUFDZ0IsbUJBQWMsR0FBZCxjQUFjLENBQTRDO1FBQzFELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FFdkM7UUFDZ0IsV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUduQyxZQUFPLEdBQUcsS0FBSyxJQUFtQixFQUFFO1lBQ2xDLElBQUk7Z0JBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQ2Isc0RBQXNELElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLG9CQUFvQixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUNqSSxDQUFDO2dCQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFakQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRTtvQkFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLG1CQUFtQixFQUFFLENBQUM7b0JBQ2pFLElBQUksS0FBSyxFQUFFLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTt3QkFDaEMsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQzdEO2lCQUNGO3FCQUFNO29CQUNMLE1BQU0saUJBQWlCLEdBQ3JCLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUNqRCxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7aUJBQzNEO2dCQUVELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUNiLGtFQUFrRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixvQkFBb0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FDN0ksQ0FBQzthQUNIO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsOERBQThELElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLG9CQUFvQixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUN4SSxDQUFDLENBQ0YsQ0FBQztnQkFDRixpRUFBaUU7Z0JBQ2pFLE1BQU0sQ0FBQyxDQUFDO2FBQ1Q7UUFDSCxDQUFDLENBQUM7SUEvQkMsQ0FBQztDQWdDTDtBQWhERCw0REFnREM7QUFFRDs7O0dBR0c7QUFDSSxNQUFNLDJCQUEyQixHQUFHLEtBQUssRUFDOUMsS0FBNEI7QUFDNUIsMkVBQTJFO0FBQzNFLDZEQUE2RDtBQUM3RCw4REFBOEQ7QUFDOUQsS0FBMEQsRUFDM0MsRUFBRTs7SUFDakIsTUFBTSxJQUFJLHdCQUF3QixDQUFDLEtBQUssRUFBRSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxLQUFLLG1DQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQzFFLENBQUMsQ0FBQztBQVJXLFFBQUEsMkJBQTJCLCtCQVF0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnZlcnNhdGlvblR1cm5SZXNwb25zZVNlbmRlciB9IGZyb20gJy4vY29udmVyc2F0aW9uX3R1cm5fcmVzcG9uc2Vfc2VuZGVyLmpzJztcbmltcG9ydCB7IENvbnZlcnNhdGlvblR1cm5FdmVudCwgRXhlY3V0YWJsZVRvb2wsIEpTT05TY2hlbWEgfSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB7IEJlZHJvY2tDb252ZXJzZUFkYXB0ZXIgfSBmcm9tICcuL2JlZHJvY2tfY29udmVyc2VfYWRhcHRlci5qcyc7XG5pbXBvcnQgeyBDb252ZXJzYXRpb25UdXJuU3RyZWFtaW5nUmVzcG9uc2VTZW5kZXIgfSBmcm9tICcuL2NvbnZlcnNhdGlvbl90dXJuX3N0cmVhbWluZ19yZXNwb25zZV9zZW5kZXInO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIG9yY2hlc3RyYXRpbmcgY29udmVyc2F0aW9uIHR1cm4gZXhlY3V0aW9uLlxuICogVGhlIGNvbnZlcnNhdGlvbiB0dXJuIGNvbnNpc3Qgb2Y6XG4gKiAxLiBBY2NlcHRpbmcgYW4gZXZlbnQgdGhhdCBpcyBjb21pbmcgZnJvbSBjb252ZXJzYXRpb25hbCByb3V0ZSByZXNvbHZlcnMgaW4gQXBwU3luYy5cbiAqIDIuIEludGVyYWN0aW5nIHdpdGggQVdTIEJlZHJvY2sgdG8gcHJvZHVjZSByZXNwb25zZS5cbiAqIDMuIFNlbmQgcmVzcG9uc2UgYmFjayB0byBBcHBTeW5jIGluIGEgZm9ybSBvZiBtdXRhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvblR1cm5FeGVjdXRvciB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGNvbnZlcnNhdGlvbiB0dXJuIGV4ZWN1dG9yLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudDogQ29udmVyc2F0aW9uVHVybkV2ZW50LFxuICAgIGFkZGl0aW9uYWxUb29sczogQXJyYXk8RXhlY3V0YWJsZVRvb2w+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYmVkcm9ja0NvbnZlcnNlQWRhcHRlciA9IG5ldyBCZWRyb2NrQ29udmVyc2VBZGFwdGVyKFxuICAgICAgZXZlbnQsXG4gICAgICBhZGRpdGlvbmFsVG9vbHNcbiAgICApLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzcG9uc2VTZW5kZXIgPSBuZXcgQ29udmVyc2F0aW9uVHVyblJlc3BvbnNlU2VuZGVyKGV2ZW50KSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0cmVhbWluZ1Jlc3BvbnNlU2VuZGVyID0gbmV3IENvbnZlcnNhdGlvblR1cm5TdHJlYW1pbmdSZXNwb25zZVNlbmRlcihcbiAgICAgIGV2ZW50XG4gICAgKSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IGNvbnNvbGVcbiAgKSB7fVxuXG4gIGV4ZWN1dGUgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMubG9nZ2VyLmxvZyhcbiAgICAgICAgYEhhbmRsaW5nIGNvbnZlcnNhdGlvbiB0dXJuIGV2ZW50LCBjdXJyZW50TWVzc2FnZUlkPSR7dGhpcy5ldmVudC5jdXJyZW50TWVzc2FnZUlkfSwgY29udmVyc2F0aW9uSWQ9JHt0aGlzLmV2ZW50LmNvbnZlcnNhdGlvbklkfWBcbiAgICAgICk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRXZlbnQgcmVjZWl2ZWQ6JywgdGhpcy5ldmVudCk7XG5cbiAgICAgIGlmICh0aGlzLmV2ZW50LnN0cmVhbVJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IGNodW5rcyA9IHRoaXMuYmVkcm9ja0NvbnZlcnNlQWRhcHRlci5hc2tCZWRyb2NrU3RyZWFtaW5nKCk7XG4gICAgICAgIGZvciBhd2FpdCAoY29uc3QgY2h1bmsgb2YgY2h1bmtzKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zdHJlYW1pbmdSZXNwb25zZVNlbmRlci5zZW5kUmVzcG9uc2VDaHVuayhjaHVuayk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGFzc2lzdGFudFJlc3BvbnNlID1cbiAgICAgICAgICBhd2FpdCB0aGlzLmJlZHJvY2tDb252ZXJzZUFkYXB0ZXIuYXNrQmVkcm9jaygpO1xuICAgICAgICBhd2FpdCB0aGlzLnJlc3BvbnNlU2VuZGVyLnNlbmRSZXNwb25zZShhc3Npc3RhbnRSZXNwb25zZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubG9nZ2VyLmxvZyhcbiAgICAgICAgYENvbnZlcnNhdGlvbiB0dXJuIGV2ZW50IGhhbmRsZWQgc3VjY2Vzc2Z1bGx5LCBjdXJyZW50TWVzc2FnZUlkPSR7dGhpcy5ldmVudC5jdXJyZW50TWVzc2FnZUlkfSwgY29udmVyc2F0aW9uSWQ9JHt0aGlzLmV2ZW50LmNvbnZlcnNhdGlvbklkfWBcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gaGFuZGxlIGNvbnZlcnNhdGlvbiB0dXJuIGV2ZW50LCBjdXJyZW50TWVzc2FnZUlkPSR7dGhpcy5ldmVudC5jdXJyZW50TWVzc2FnZUlkfSwgY29udmVyc2F0aW9uSWQ9JHt0aGlzLmV2ZW50LmNvbnZlcnNhdGlvbklkfWAsXG4gICAgICAgIGVcbiAgICAgICk7XG4gICAgICAvLyBQcm9wYWdhdGUgZXJyb3IgdG8gbWFyayBsYW1iZGEgZXhlY3V0aW9uIGFzIGZhaWxlZCBpbiBtZXRyaWNzLlxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBoYW5kbGVzIGEgY29udmVyc2F0aW9uIHR1cm4gZXZlbnQgdGhhdCBpcyBjb21pbmcgZnJvbVxuICogQXBwU3luYyBpbnN0YW5jZSB3aXRoIGNvbnZlcnNhdGlvbmFsIHJvdXRlcyBkZWZpbmVkIGFuZCBzZW5kcyByZXNwb25zZSBiYWNrLlxuICovXG5leHBvcnQgY29uc3QgaGFuZGxlQ29udmVyc2F0aW9uVHVybkV2ZW50ID0gYXN5bmMgKFxuICBldmVudDogQ29udmVyc2F0aW9uVHVybkV2ZW50LFxuICAvLyBUaGlzIGlzIGJ5IGRlc2lnbiwgc28gdGhhdCB0b29scyB3aXRoIGRpZmZlcmVudCBpbnB1dCB0eXBlcyBjYW4gYmUgYWRkZWRcbiAgLy8gdG8gc2luZ2xlIGFycmF5cy4gRG93bnN0cmVhbSBjb2RlIGRvZXNuJ3QgdXNlIHRoZXNlIHR5cGVzLlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwcm9wcz86IHsgdG9vbHM/OiBBcnJheTxFeGVjdXRhYmxlVG9vbDxKU09OU2NoZW1hLCBhbnk+PiB9XG4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgYXdhaXQgbmV3IENvbnZlcnNhdGlvblR1cm5FeGVjdXRvcihldmVudCwgcHJvcHM/LnRvb2xzID8/IFtdKS5leGVjdXRlKCk7XG59O1xuIl19
|
@@ -1,3 +1,4 @@
|
|
1
|
+
/// <reference types="node" />
|
1
2
|
import { ConversationTurnEvent } from './types.js';
|
2
3
|
import type { ContentBlock } from '@aws-sdk/client-bedrock-runtime';
|
3
4
|
import { GraphqlRequestExecutor } from './graphql_request_executor';
|
@@ -15,10 +16,11 @@ export type MutationResponseInput = {
|
|
15
16
|
export declare class ConversationTurnResponseSender {
|
16
17
|
private readonly event;
|
17
18
|
private readonly graphqlRequestExecutor;
|
19
|
+
private readonly logger;
|
18
20
|
/**
|
19
21
|
* Creates conversation turn response sender.
|
20
22
|
*/
|
21
|
-
constructor(event: ConversationTurnEvent, graphqlRequestExecutor?: GraphqlRequestExecutor);
|
23
|
+
constructor(event: ConversationTurnEvent, graphqlRequestExecutor?: GraphqlRequestExecutor, logger?: Console);
|
22
24
|
sendResponse: (message: ContentBlock[]) => Promise<void>;
|
23
25
|
private createMutationRequest;
|
24
26
|
}
|
@@ -10,15 +10,14 @@ class ConversationTurnResponseSender {
|
|
10
10
|
/**
|
11
11
|
* Creates conversation turn response sender.
|
12
12
|
*/
|
13
|
-
constructor(event, graphqlRequestExecutor = new graphql_request_executor_1.GraphqlRequestExecutor(event.graphqlApiEndpoint, event.request.headers.authorization)) {
|
13
|
+
constructor(event, graphqlRequestExecutor = new graphql_request_executor_1.GraphqlRequestExecutor(event.graphqlApiEndpoint, event.request.headers.authorization, event.request.headers['x-amz-user-agent']), logger = console) {
|
14
14
|
this.event = event;
|
15
15
|
this.graphqlRequestExecutor = graphqlRequestExecutor;
|
16
|
+
this.logger = logger;
|
16
17
|
this.sendResponse = async (message) => {
|
17
|
-
const
|
18
|
-
|
19
|
-
|
20
|
-
variables,
|
21
|
-
});
|
18
|
+
const responseMutationRequest = this.createMutationRequest(message);
|
19
|
+
this.logger.debug('Sending response mutation:', responseMutationRequest);
|
20
|
+
await this.graphqlRequestExecutor.executeGraphql(responseMutationRequest);
|
22
21
|
};
|
23
22
|
this.createMutationRequest = (content) => {
|
24
23
|
const query = `
|
@@ -50,4 +49,4 @@ class ConversationTurnResponseSender {
|
|
50
49
|
}
|
51
50
|
}
|
52
51
|
exports.ConversationTurnResponseSender = ConversationTurnResponseSender;
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uX3R1cm5fcmVzcG9uc2Vfc2VuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnZlcnNhdGlvbi9ydW50aW1lL2NvbnZlcnNhdGlvbl90dXJuX3Jlc3BvbnNlX3NlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx5RUFBb0U7QUFVcEU7OztHQUdHO0FBQ0gsTUFBYSw4QkFBOEI7SUFDekM7O09BRUc7SUFDSCxZQUNtQixLQUE0QixFQUM1Qix5QkFBeUIsSUFBSSxpREFBc0IsQ0FDbEUsS0FBSyxDQUFDLGtCQUFrQixFQUN4QixLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQ25DLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQzFDLEVBQ2dCLFNBQVMsT0FBTztRQU5oQixVQUFLLEdBQUwsS0FBSyxDQUF1QjtRQUM1QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBSXRDO1FBQ2dCLFdBQU0sR0FBTixNQUFNLENBQVU7UUFHbkMsaUJBQVksR0FBRyxLQUFLLEVBQUUsT0FBdUIsRUFBRSxFQUFFO1lBQy9DLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixFQUFFLHVCQUF1QixDQUFDLENBQUM7WUFDekUsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUc5Qyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQztRQUVNLDBCQUFxQixHQUFHLENBQUMsT0FBdUIsRUFBRSxFQUFFO1lBQzFELE1BQU0sS0FBSyxHQUFHO2dEQUM4QixJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGFBQWE7Y0FDM0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJO2tCQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFlBQVk7OztLQUdyRCxDQUFDO1lBQ0YsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO29CQUNqQix1RkFBdUY7b0JBQ3ZGLHlCQUF5QjtvQkFDekIsK0VBQStFO29CQUMvRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztpQkFDakQ7Z0JBQ0QsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sU0FBUyxHQUEwQjtnQkFDdkMsS0FBSyxFQUFFO29CQUNMLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWM7b0JBQ3pDLE9BQU87b0JBQ1AsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0I7aUJBQ3JEO2FBQ0YsQ0FBQztZQUNGLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDO0lBckNDLENBQUM7Q0FzQ0w7QUFsREQsd0VBa0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udmVyc2F0aW9uVHVybkV2ZW50IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IENvbnRlbnRCbG9jayB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1iZWRyb2NrLXJ1bnRpbWUnO1xuaW1wb3J0IHsgR3JhcGhxbFJlcXVlc3RFeGVjdXRvciB9IGZyb20gJy4vZ3JhcGhxbF9yZXF1ZXN0X2V4ZWN1dG9yJztcblxuZXhwb3J0IHR5cGUgTXV0YXRpb25SZXNwb25zZUlucHV0ID0ge1xuICBpbnB1dDoge1xuICAgIGNvbnZlcnNhdGlvbklkOiBzdHJpbmc7XG4gICAgY29udGVudDogQ29udGVudEJsb2NrW107XG4gICAgYXNzb2NpYXRlZFVzZXJNZXNzYWdlSWQ6IHN0cmluZztcbiAgfTtcbn07XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3Igc2VuZGluZyBhIHJlc3BvbnNlIHByb2R1Y2VkIGJ5IEJlZHJvY2sgYmFjayB0byBBcHBTeW5jXG4gKiBpbiBhIGZvcm0gb2YgbXV0YXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBDb252ZXJzYXRpb25UdXJuUmVzcG9uc2VTZW5kZXIge1xuICAvKipcbiAgICogQ3JlYXRlcyBjb252ZXJzYXRpb24gdHVybiByZXNwb25zZSBzZW5kZXIuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50OiBDb252ZXJzYXRpb25UdXJuRXZlbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBncmFwaHFsUmVxdWVzdEV4ZWN1dG9yID0gbmV3IEdyYXBocWxSZXF1ZXN0RXhlY3V0b3IoXG4gICAgICBldmVudC5ncmFwaHFsQXBpRW5kcG9pbnQsXG4gICAgICBldmVudC5yZXF1ZXN0LmhlYWRlcnMuYXV0aG9yaXphdGlvbixcbiAgICAgIGV2ZW50LnJlcXVlc3QuaGVhZGVyc1sneC1hbXotdXNlci1hZ2VudCddXG4gICAgKSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IGNvbnNvbGVcbiAgKSB7fVxuXG4gIHNlbmRSZXNwb25zZSA9IGFzeW5jIChtZXNzYWdlOiBDb250ZW50QmxvY2tbXSkgPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlTXV0YXRpb25SZXF1ZXN0ID0gdGhpcy5jcmVhdGVNdXRhdGlvblJlcXVlc3QobWVzc2FnZSk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ1NlbmRpbmcgcmVzcG9uc2UgbXV0YXRpb246JywgcmVzcG9uc2VNdXRhdGlvblJlcXVlc3QpO1xuICAgIGF3YWl0IHRoaXMuZ3JhcGhxbFJlcXVlc3RFeGVjdXRvci5leGVjdXRlR3JhcGhxbDxcbiAgICAgIE11dGF0aW9uUmVzcG9uc2VJbnB1dCxcbiAgICAgIHZvaWRcbiAgICA+KHJlc3BvbnNlTXV0YXRpb25SZXF1ZXN0KTtcbiAgfTtcblxuICBwcml2YXRlIGNyZWF0ZU11dGF0aW9uUmVxdWVzdCA9IChjb250ZW50OiBDb250ZW50QmxvY2tbXSkgPT4ge1xuICAgIGNvbnN0IHF1ZXJ5ID0gYFxuICAgICAgICBtdXRhdGlvbiBQdWJsaXNoTW9kZWxSZXNwb25zZSgkaW5wdXQ6ICR7dGhpcy5ldmVudC5yZXNwb25zZU11dGF0aW9uLmlucHV0VHlwZU5hbWV9ISkge1xuICAgICAgICAgICAgJHt0aGlzLmV2ZW50LnJlc3BvbnNlTXV0YXRpb24ubmFtZX0oaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgICAgICAgICAgICR7dGhpcy5ldmVudC5yZXNwb25zZU11dGF0aW9uLnNlbGVjdGlvblNldH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIGA7XG4gICAgY29udGVudCA9IGNvbnRlbnQubWFwKChibG9jaykgPT4ge1xuICAgICAgaWYgKGJsb2NrLnRvb2xVc2UpIHtcbiAgICAgICAgLy8gVGhlIGBpbnB1dGAgZmllbGQgaXMgdHlwZWQgYXMgYEFXUyBKU09OYCBpbiB0aGUgR3JhcGhRTCBBUEkgYmVjYXVzZSBpdCBjYW4gcmVwcmVzZW50XG4gICAgICAgIC8vIGFyYml0cmFyeSBKU09OIHZhbHVlcy5cbiAgICAgICAgLy8gV2UgbmVlZCB0byBzdHJpbmdpZnkgaXQgYmVmb3JlIHNlbmRpbmcgaXQgdG8gQXBwU3luYyB0byBwcmV2ZW50IHR5cGUgZXJyb3JzLlxuICAgICAgICBjb25zdCBpbnB1dCA9IEpTT04uc3RyaW5naWZ5KGJsb2NrLnRvb2xVc2UuaW5wdXQpO1xuICAgICAgICByZXR1cm4geyB0b29sVXNlOiB7IC4uLmJsb2NrLnRvb2xVc2UsIGlucHV0IH0gfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBibG9jaztcbiAgICB9KTtcbiAgICBjb25zdCB2YXJpYWJsZXM6IE11dGF0aW9uUmVzcG9uc2VJbnB1dCA9IHtcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIGNvbnZlcnNhdGlvbklkOiB0aGlzLmV2ZW50LmNvbnZlcnNhdGlvbklkLFxuICAgICAgICBjb250ZW50LFxuICAgICAgICBhc3NvY2lhdGVkVXNlck1lc3NhZ2VJZDogdGhpcy5ldmVudC5jdXJyZW50TWVzc2FnZUlkLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHJldHVybiB7IHF1ZXJ5LCB2YXJpYWJsZXMgfTtcbiAgfTtcbn1cbiJdfQ==
|
@@ -0,0 +1,22 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import { ConversationTurnEvent, StreamingResponseChunk } from './types.js';
|
3
|
+
import { GraphqlRequestExecutor } from './graphql_request_executor';
|
4
|
+
export type MutationStreamingResponseInput = {
|
5
|
+
input: StreamingResponseChunk;
|
6
|
+
};
|
7
|
+
/**
|
8
|
+
* This class is responsible for sending response chunks produced by Bedrock back to AppSync
|
9
|
+
* in a form of mutation.
|
10
|
+
*/
|
11
|
+
export declare class ConversationTurnStreamingResponseSender {
|
12
|
+
private readonly event;
|
13
|
+
private readonly graphqlRequestExecutor;
|
14
|
+
private readonly logger;
|
15
|
+
/**
|
16
|
+
* Creates conversation turn response sender.
|
17
|
+
*/
|
18
|
+
constructor(event: ConversationTurnEvent, graphqlRequestExecutor?: GraphqlRequestExecutor, logger?: Console);
|
19
|
+
sendResponseChunk: (chunk: StreamingResponseChunk) => Promise<void>;
|
20
|
+
private createMutationRequest;
|
21
|
+
}
|
22
|
+
//# sourceMappingURL=conversation_turn_streaming_response_sender.d.ts.map
|
@@ -0,0 +1,38 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ConversationTurnStreamingResponseSender = void 0;
|
4
|
+
const graphql_request_executor_1 = require("./graphql_request_executor");
|
5
|
+
/**
|
6
|
+
* This class is responsible for sending response chunks produced by Bedrock back to AppSync
|
7
|
+
* in a form of mutation.
|
8
|
+
*/
|
9
|
+
class ConversationTurnStreamingResponseSender {
|
10
|
+
/**
|
11
|
+
* Creates conversation turn response sender.
|
12
|
+
*/
|
13
|
+
constructor(event, graphqlRequestExecutor = new graphql_request_executor_1.GraphqlRequestExecutor(event.graphqlApiEndpoint, event.request.headers.authorization, event.request.headers['x-amz-user-agent']), logger = console) {
|
14
|
+
this.event = event;
|
15
|
+
this.graphqlRequestExecutor = graphqlRequestExecutor;
|
16
|
+
this.logger = logger;
|
17
|
+
this.sendResponseChunk = async (chunk) => {
|
18
|
+
const responseMutationRequest = this.createMutationRequest(chunk);
|
19
|
+
this.logger.debug('Sending response mutation:', responseMutationRequest);
|
20
|
+
await this.graphqlRequestExecutor.executeGraphql(responseMutationRequest);
|
21
|
+
};
|
22
|
+
this.createMutationRequest = (chunk) => {
|
23
|
+
const query = `
|
24
|
+
mutation PublishModelResponse($input: ${this.event.responseMutation.inputTypeName}!) {
|
25
|
+
${this.event.responseMutation.name}(input: $input) {
|
26
|
+
${this.event.responseMutation.selectionSet}
|
27
|
+
}
|
28
|
+
}
|
29
|
+
`;
|
30
|
+
const variables = {
|
31
|
+
input: chunk,
|
32
|
+
};
|
33
|
+
return { query, variables };
|
34
|
+
};
|
35
|
+
}
|
36
|
+
}
|
37
|
+
exports.ConversationTurnStreamingResponseSender = ConversationTurnStreamingResponseSender;
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uX3R1cm5fc3RyZWFtaW5nX3Jlc3BvbnNlX3NlbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb252ZXJzYXRpb24vcnVudGltZS9jb252ZXJzYXRpb25fdHVybl9zdHJlYW1pbmdfcmVzcG9uc2Vfc2VuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlFQUFvRTtBQU1wRTs7O0dBR0c7QUFDSCxNQUFhLHVDQUF1QztJQUNsRDs7T0FFRztJQUNILFlBQ21CLEtBQTRCLEVBQzVCLHlCQUF5QixJQUFJLGlEQUFzQixDQUNsRSxLQUFLLENBQUMsa0JBQWtCLEVBQ3hCLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFDbkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FDMUMsRUFDZ0IsU0FBUyxPQUFPO1FBTmhCLFVBQUssR0FBTCxLQUFLLENBQXVCO1FBQzVCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FJdEM7UUFDZ0IsV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUduQyxzQkFBaUIsR0FBRyxLQUFLLEVBQUUsS0FBNkIsRUFBRSxFQUFFO1lBQzFELE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixFQUFFLHVCQUF1QixDQUFDLENBQUM7WUFDekUsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUc5Qyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQztRQUVNLDBCQUFxQixHQUFHLENBQUMsS0FBNkIsRUFBRSxFQUFFO1lBQ2hFLE1BQU0sS0FBSyxHQUFHO2dEQUM4QixJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGFBQWE7Y0FDM0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJO2tCQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFlBQVk7OztLQUdyRCxDQUFDO1lBQ0YsTUFBTSxTQUFTLEdBQW1DO2dCQUNoRCxLQUFLLEVBQUUsS0FBSzthQUNiLENBQUM7WUFDRixPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQztJQXZCQyxDQUFDO0NBd0JMO0FBcENELDBGQW9DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnZlcnNhdGlvblR1cm5FdmVudCwgU3RyZWFtaW5nUmVzcG9uc2VDaHVuayB9IGZyb20gJy4vdHlwZXMuanMnO1xuaW1wb3J0IHsgR3JhcGhxbFJlcXVlc3RFeGVjdXRvciB9IGZyb20gJy4vZ3JhcGhxbF9yZXF1ZXN0X2V4ZWN1dG9yJztcblxuZXhwb3J0IHR5cGUgTXV0YXRpb25TdHJlYW1pbmdSZXNwb25zZUlucHV0ID0ge1xuICBpbnB1dDogU3RyZWFtaW5nUmVzcG9uc2VDaHVuaztcbn07XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3Igc2VuZGluZyByZXNwb25zZSBjaHVua3MgcHJvZHVjZWQgYnkgQmVkcm9jayBiYWNrIHRvIEFwcFN5bmNcbiAqIGluIGEgZm9ybSBvZiBtdXRhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvblR1cm5TdHJlYW1pbmdSZXNwb25zZVNlbmRlciB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGNvbnZlcnNhdGlvbiB0dXJuIHJlc3BvbnNlIHNlbmRlci5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnQ6IENvbnZlcnNhdGlvblR1cm5FdmVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdyYXBocWxSZXF1ZXN0RXhlY3V0b3IgPSBuZXcgR3JhcGhxbFJlcXVlc3RFeGVjdXRvcihcbiAgICAgIGV2ZW50LmdyYXBocWxBcGlFbmRwb2ludCxcbiAgICAgIGV2ZW50LnJlcXVlc3QuaGVhZGVycy5hdXRob3JpemF0aW9uLFxuICAgICAgZXZlbnQucmVxdWVzdC5oZWFkZXJzWyd4LWFtei11c2VyLWFnZW50J11cbiAgICApLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gY29uc29sZVxuICApIHt9XG5cbiAgc2VuZFJlc3BvbnNlQ2h1bmsgPSBhc3luYyAoY2h1bms6IFN0cmVhbWluZ1Jlc3BvbnNlQ2h1bmspID0+IHtcbiAgICBjb25zdCByZXNwb25zZU11dGF0aW9uUmVxdWVzdCA9IHRoaXMuY3JlYXRlTXV0YXRpb25SZXF1ZXN0KGNodW5rKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU2VuZGluZyByZXNwb25zZSBtdXRhdGlvbjonLCByZXNwb25zZU11dGF0aW9uUmVxdWVzdCk7XG4gICAgYXdhaXQgdGhpcy5ncmFwaHFsUmVxdWVzdEV4ZWN1dG9yLmV4ZWN1dGVHcmFwaHFsPFxuICAgICAgTXV0YXRpb25TdHJlYW1pbmdSZXNwb25zZUlucHV0LFxuICAgICAgdm9pZFxuICAgID4ocmVzcG9uc2VNdXRhdGlvblJlcXVlc3QpO1xuICB9O1xuXG4gIHByaXZhdGUgY3JlYXRlTXV0YXRpb25SZXF1ZXN0ID0gKGNodW5rOiBTdHJlYW1pbmdSZXNwb25zZUNodW5rKSA9PiB7XG4gICAgY29uc3QgcXVlcnkgPSBgXG4gICAgICAgIG11dGF0aW9uIFB1Ymxpc2hNb2RlbFJlc3BvbnNlKCRpbnB1dDogJHt0aGlzLmV2ZW50LnJlc3BvbnNlTXV0YXRpb24uaW5wdXRUeXBlTmFtZX0hKSB7XG4gICAgICAgICAgICAke3RoaXMuZXZlbnQucmVzcG9uc2VNdXRhdGlvbi5uYW1lfShpbnB1dDogJGlucHV0KSB7XG4gICAgICAgICAgICAgICAgJHt0aGlzLmV2ZW50LnJlc3BvbnNlTXV0YXRpb24uc2VsZWN0aW9uU2V0fVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgYDtcbiAgICBjb25zdCB2YXJpYWJsZXM6IE11dGF0aW9uU3RyZWFtaW5nUmVzcG9uc2VJbnB1dCA9IHtcbiAgICAgIGlucHV0OiBjaHVuayxcbiAgICB9O1xuICAgIHJldHVybiB7IHF1ZXJ5LCB2YXJpYWJsZXMgfTtcbiAgfTtcbn1cbiJdfQ==
|
package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/default_handler.d.ts
CHANGED
@@ -3,6 +3,6 @@
|
|
3
3
|
* This is an entry point for Amplify provided implementation.
|
4
4
|
*/
|
5
5
|
export declare const handler: (event: import("./types.js").ConversationTurnEvent, props?: {
|
6
|
-
tools?: import("./types.js").ExecutableTool[] | undefined;
|
6
|
+
tools?: import("./types.js").ExecutableTool<import("json-schema-to-ts").JSONSchema, any>[] | undefined;
|
7
7
|
} | undefined) => Promise<void>;
|
8
8
|
//# sourceMappingURL=default_handler.d.ts.map
|
@@ -22,11 +22,11 @@ class ConversationTurnEventToolsProvider {
|
|
22
22
|
const tools = (_a = toolsConfiguration.dataTools) === null || _a === void 0 ? void 0 : _a.map((tool) => {
|
23
23
|
const { name, description, inputSchema } = tool;
|
24
24
|
const query = this.graphQlQueryFactory.createQuery(tool);
|
25
|
-
return new graphql_tool_1.GraphQlTool(name, description, inputSchema, graphqlApiEndpoint, query, this.event.request.headers.authorization);
|
25
|
+
return new graphql_tool_1.GraphQlTool(name, description, inputSchema, graphqlApiEndpoint, query, this.event.request.headers.authorization, this.event.request.headers['x-amz-user-agent']);
|
26
26
|
});
|
27
27
|
return tools !== null && tools !== void 0 ? tools : [];
|
28
28
|
};
|
29
29
|
}
|
30
30
|
}
|
31
31
|
exports.ConversationTurnEventToolsProvider = ConversationTurnEventToolsProvider;
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRfdG9vbHNfcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udmVyc2F0aW9uL3J1bnRpbWUvZXZlbnQtdG9vbHMtcHJvdmlkZXIvZXZlbnRfdG9vbHNfcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaURBQTZDO0FBQzdDLG1FQUE4RDtBQUU5RDs7R0FFRztBQUNILE1BQWEsa0NBQWtDO0lBQzdDOztPQUVHO0lBQ0gsWUFDbUIsS0FBNEIsRUFDNUIsc0JBQTJDLElBQUksMkNBQW1CLEVBQUU7UUFEcEUsVUFBSyxHQUFMLEtBQUssQ0FBdUI7UUFDNUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFpRDtRQUd2RixrQkFBYSxHQUFHLEdBQTBCLEVBQUU7O1lBQzFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDOUQsSUFBSSxDQUFDLGtCQUFrQixJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFO2dCQUN4RCxPQUFPLEVBQUUsQ0FBQzthQUNYO1lBQ0QsTUFBTSxLQUFLLEdBQUcsTUFBQSxrQkFBa0IsQ0FBQyxTQUFTLDBDQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUN2RCxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUM7Z0JBQ2hELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pELE9BQU8sSUFBSSwwQkFBVyxDQUNwQixJQUFJLEVBQ0osV0FBVyxFQUNYLFdBQVcsRUFDWCxrQkFBa0IsRUFDbEIsS0FBSyxFQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUMvQyxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssYUFBTCxLQUFLLGNBQUwsS0FBSyxHQUFJLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUM7SUFyQkMsQ0FBQztDQXNCTDtBQTdCRCxnRkE2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb252ZXJzYXRpb25UdXJuRXZlbnQsIEV4ZWN1dGFibGVUb29sIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgR3JhcGhRbFRvb2wgfSBmcm9tICcuL2dyYXBocWxfdG9vbCc7XG5pbXBvcnQgeyBHcmFwaFFsUXVlcnlGYWN0b3J5IH0gZnJvbSAnLi9ncmFwaHFsX3F1ZXJ5X2ZhY3RvcnknO1xuXG4vKipcbiAqIENyZWF0ZXMgZXhlY3V0YWJsZSB0b29scyBmcm9tIGRlZmluaXRpb25zIGluIGNvbnZlcnNhdGlvbiB0dXJuIGV2ZW50LlxuICovXG5leHBvcnQgY2xhc3MgQ29udmVyc2F0aW9uVHVybkV2ZW50VG9vbHNQcm92aWRlciB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGNvbnZlcnNhdGlvbiB0dXJuIGV2ZW50IHRvb2xzIHByb3ZpZGVyLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudDogQ29udmVyc2F0aW9uVHVybkV2ZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZ3JhcGhRbFF1ZXJ5RmFjdG9yeTogR3JhcGhRbFF1ZXJ5RmFjdG9yeSA9IG5ldyBHcmFwaFFsUXVlcnlGYWN0b3J5KClcbiAgKSB7fVxuXG4gIGdldEV2ZW50VG9vbHMgPSAoKTogQXJyYXk8RXhlY3V0YWJsZVRvb2w+ID0+IHtcbiAgICBjb25zdCB7IHRvb2xzQ29uZmlndXJhdGlvbiwgZ3JhcGhxbEFwaUVuZHBvaW50IH0gPSB0aGlzLmV2ZW50O1xuICAgIGlmICghdG9vbHNDb25maWd1cmF0aW9uIHx8ICF0b29sc0NvbmZpZ3VyYXRpb24uZGF0YVRvb2xzKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IHRvb2xzID0gdG9vbHNDb25maWd1cmF0aW9uLmRhdGFUb29scz8ubWFwKCh0b29sKSA9PiB7XG4gICAgICBjb25zdCB7IG5hbWUsIGRlc2NyaXB0aW9uLCBpbnB1dFNjaGVtYSB9ID0gdG9vbDtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5ncmFwaFFsUXVlcnlGYWN0b3J5LmNyZWF0ZVF1ZXJ5KHRvb2wpO1xuICAgICAgcmV0dXJuIG5ldyBHcmFwaFFsVG9vbChcbiAgICAgICAgbmFtZSxcbiAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICAgIGlucHV0U2NoZW1hLFxuICAgICAgICBncmFwaHFsQXBpRW5kcG9pbnQsXG4gICAgICAgIHF1ZXJ5LFxuICAgICAgICB0aGlzLmV2ZW50LnJlcXVlc3QuaGVhZGVycy5hdXRob3JpemF0aW9uLFxuICAgICAgICB0aGlzLmV2ZW50LnJlcXVlc3QuaGVhZGVyc1sneC1hbXotdXNlci1hZ2VudCddXG4gICAgICApO1xuICAgIH0pO1xuICAgIHJldHVybiB0b29scyA/PyBbXTtcbiAgfTtcbn1cbiJdfQ==
|
@@ -1,22 +1,22 @@
|
|
1
|
-
import { ExecutableTool } from '../types';
|
2
|
-
import type {
|
3
|
-
import { DocumentType } from '@smithy/types';
|
1
|
+
import { ExecutableTool, JSONSchema, ToolInputSchema } from '../types';
|
2
|
+
import type { ToolResultContentBlock } from '@aws-sdk/client-bedrock-runtime';
|
4
3
|
import { GraphqlRequestExecutor } from '../graphql_request_executor';
|
5
4
|
/**
|
6
5
|
* A tool that use GraphQl queries.
|
7
6
|
*/
|
8
|
-
export declare class GraphQlTool implements ExecutableTool {
|
7
|
+
export declare class GraphQlTool implements ExecutableTool<JSONSchema, unknown> {
|
9
8
|
name: string;
|
10
9
|
description: string;
|
11
|
-
inputSchema: ToolInputSchema
|
10
|
+
inputSchema: ToolInputSchema<JSONSchema>;
|
12
11
|
readonly graphQlEndpoint: string;
|
13
12
|
private readonly query;
|
14
13
|
readonly accessToken: string;
|
14
|
+
readonly userAgent: string;
|
15
15
|
private readonly graphqlRequestExecutor;
|
16
16
|
/**
|
17
17
|
* Creates GraphQl Tool
|
18
18
|
*/
|
19
|
-
constructor(name: string, description: string, inputSchema: ToolInputSchema
|
20
|
-
execute: (input:
|
19
|
+
constructor(name: string, description: string, inputSchema: ToolInputSchema<JSONSchema>, graphQlEndpoint: string, query: string, accessToken: string, userAgent: string, graphqlRequestExecutor?: GraphqlRequestExecutor);
|
20
|
+
execute: (input: unknown | undefined) => Promise<ToolResultContentBlock>;
|
21
21
|
}
|
22
22
|
//# sourceMappingURL=graphql_tool.d.ts.map
|
@@ -9,13 +9,14 @@ class GraphQlTool {
|
|
9
9
|
/**
|
10
10
|
* Creates GraphQl Tool
|
11
11
|
*/
|
12
|
-
constructor(name, description, inputSchema, graphQlEndpoint, query, accessToken, graphqlRequestExecutor = new graphql_request_executor_1.GraphqlRequestExecutor(graphQlEndpoint, accessToken)) {
|
12
|
+
constructor(name, description, inputSchema, graphQlEndpoint, query, accessToken, userAgent, graphqlRequestExecutor = new graphql_request_executor_1.GraphqlRequestExecutor(graphQlEndpoint, accessToken, userAgent)) {
|
13
13
|
this.name = name;
|
14
14
|
this.description = description;
|
15
15
|
this.inputSchema = inputSchema;
|
16
16
|
this.graphQlEndpoint = graphQlEndpoint;
|
17
17
|
this.query = query;
|
18
18
|
this.accessToken = accessToken;
|
19
|
+
this.userAgent = userAgent;
|
19
20
|
this.graphqlRequestExecutor = graphqlRequestExecutor;
|
20
21
|
this.execute = async (input) => {
|
21
22
|
if (!input) {
|
@@ -30,4 +31,4 @@ class GraphQlTool {
|
|
30
31
|
}
|
31
32
|
}
|
32
33
|
exports.GraphQlTool = GraphQlTool;
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbF90b29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnZlcnNhdGlvbi9ydW50aW1lL2V2ZW50LXRvb2xzLXByb3ZpZGVyL2dyYXBocWxfdG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSwwRUFBcUU7QUFFckU7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUFDdEI7O09BRUc7SUFDSCxZQUNTLElBQVksRUFDWixXQUFtQixFQUNuQixXQUF3QyxFQUN0QyxlQUF1QixFQUNmLEtBQWEsRUFDckIsV0FBbUIsRUFDbkIsU0FBaUIsRUFDVCx5QkFBeUIsSUFBSSxpREFBc0IsQ0FDbEUsZUFBZSxFQUNmLFdBQVcsRUFDWCxTQUFTLENBQ1Y7UUFYTSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQTZCO1FBQ3RDLG9CQUFlLEdBQWYsZUFBZSxDQUFRO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ1QsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUl0QztRQUdILFlBQU8sR0FBRyxLQUFLLEVBQ2IsS0FBMEIsRUFDTyxFQUFFO1lBQ25DLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1YsTUFBTSxLQUFLLENBQUMsaUJBQWlCLElBQUksQ0FBQyxJQUFJLDhCQUE4QixDQUFDLENBQUM7YUFDdkU7WUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBRy9EO2dCQUNBLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsU0FBUyxFQUFFLEtBQUs7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUM7SUFqQkMsQ0FBQztDQWtCTDtBQW5DRCxrQ0FtQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFeGVjdXRhYmxlVG9vbCwgSlNPTlNjaGVtYSwgVG9vbElucHV0U2NoZW1hIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBUb29sUmVzdWx0Q29udGVudEJsb2NrIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWJlZHJvY2stcnVudGltZSc7XG5pbXBvcnQgeyBEb2N1bWVudFR5cGUgfSBmcm9tICdAc21pdGh5L3R5cGVzJztcbmltcG9ydCB7IEdyYXBocWxSZXF1ZXN0RXhlY3V0b3IgfSBmcm9tICcuLi9ncmFwaHFsX3JlcXVlc3RfZXhlY3V0b3InO1xuXG4vKipcbiAqIEEgdG9vbCB0aGF0IHVzZSBHcmFwaFFsIHF1ZXJpZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBHcmFwaFFsVG9vbCBpbXBsZW1lbnRzIEV4ZWN1dGFibGVUb29sPEpTT05TY2hlbWEsIHVua25vd24+IHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgR3JhcGhRbCBUb29sXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIHB1YmxpYyBpbnB1dFNjaGVtYTogVG9vbElucHV0U2NoZW1hPEpTT05TY2hlbWE+LFxuICAgIHJlYWRvbmx5IGdyYXBoUWxFbmRwb2ludDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcXVlcnk6IHN0cmluZyxcbiAgICByZWFkb25seSBhY2Nlc3NUb2tlbjogc3RyaW5nLFxuICAgIHJlYWRvbmx5IHVzZXJBZ2VudDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZ3JhcGhxbFJlcXVlc3RFeGVjdXRvciA9IG5ldyBHcmFwaHFsUmVxdWVzdEV4ZWN1dG9yKFxuICAgICAgZ3JhcGhRbEVuZHBvaW50LFxuICAgICAgYWNjZXNzVG9rZW4sXG4gICAgICB1c2VyQWdlbnRcbiAgICApXG4gICkge31cblxuICBleGVjdXRlID0gYXN5bmMgKFxuICAgIGlucHV0OiB1bmtub3duIHwgdW5kZWZpbmVkXG4gICk6IFByb21pc2U8VG9vbFJlc3VsdENvbnRlbnRCbG9jaz4gPT4ge1xuICAgIGlmICghaW5wdXQpIHtcbiAgICAgIHRocm93IEVycm9yKGBHcmFwaFFsIHRvb2wgJyR7dGhpcy5uYW1lfScgcmVxdWlyZXMgaW5wdXQgdG8gZXhlY3V0ZS5gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuZ3JhcGhxbFJlcXVlc3RFeGVjdXRvci5leGVjdXRlR3JhcGhxbDxcbiAgICAgIHVua25vd24sXG4gICAgICBEb2N1bWVudFR5cGVcbiAgICA+KHtcbiAgICAgIHF1ZXJ5OiB0aGlzLnF1ZXJ5LFxuICAgICAgdmFyaWFibGVzOiBpbnB1dCxcbiAgICB9KTtcbiAgICByZXR1cm4geyBqc29uOiByZXNwb25zZSB9O1xuICB9O1xufVxuIl19
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { ExecutableTool, FromJSONSchema, JSONSchema, ToolInputSchema } from './types';
|
2
|
+
import * as bedrock from '@aws-sdk/client-bedrock-runtime';
|
3
|
+
/**
|
4
|
+
* Creates an executable tool.
|
5
|
+
*/
|
6
|
+
export declare const createExecutableTool: <TJSONSchema extends JSONSchema = JSONSchema, TToolInput = FromJSONSchema<TJSONSchema>>(name: string, description: string, inputSchema: ToolInputSchema<TJSONSchema>, handler: (input: TToolInput) => Promise<bedrock.ToolResultContentBlock>) => ExecutableTool<TJSONSchema, TToolInput>;
|
7
|
+
//# sourceMappingURL=executable_tool_factory.d.ts.map
|
package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/executable_tool_factory.js
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.createExecutableTool = void 0;
|
4
|
+
/**
|
5
|
+
* Creates an executable tool.
|
6
|
+
*/
|
7
|
+
const createExecutableTool = (name, description, inputSchema, handler) => {
|
8
|
+
return {
|
9
|
+
name,
|
10
|
+
description,
|
11
|
+
inputSchema,
|
12
|
+
execute: handler,
|
13
|
+
};
|
14
|
+
};
|
15
|
+
exports.createExecutableTool = createExecutableTool;
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0YWJsZV90b29sX2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udmVyc2F0aW9uL3J1bnRpbWUvZXhlY3V0YWJsZV90b29sX2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBUUE7O0dBRUc7QUFDSSxNQUFNLG9CQUFvQixHQVFjLENBQzdDLElBQUksRUFDSixXQUFXLEVBQ1gsV0FBVyxFQUNYLE9BQU8sRUFDUCxFQUFFO0lBQ0YsT0FBTztRQUNMLElBQUk7UUFDSixXQUFXO1FBQ1gsV0FBVztRQUNYLE9BQU8sRUFBRSxPQUFPO0tBQ2pCLENBQUM7QUFDSixDQUFDLENBQUM7QUFwQlcsUUFBQSxvQkFBb0Isd0JBb0IvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEV4ZWN1dGFibGVUb29sLFxuICBGcm9tSlNPTlNjaGVtYSxcbiAgSlNPTlNjaGVtYSxcbiAgVG9vbElucHV0U2NoZW1hLFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCAqIGFzIGJlZHJvY2sgZnJvbSAnQGF3cy1zZGsvY2xpZW50LWJlZHJvY2stcnVudGltZSc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBleGVjdXRhYmxlIHRvb2wuXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVFeGVjdXRhYmxlVG9vbDogPFxuICBUSlNPTlNjaGVtYSBleHRlbmRzIEpTT05TY2hlbWEgPSBKU09OU2NoZW1hLFxuICBUVG9vbElucHV0ID0gRnJvbUpTT05TY2hlbWE8VEpTT05TY2hlbWE+XG4+KFxuICBuYW1lOiBzdHJpbmcsXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmcsXG4gIGlucHV0U2NoZW1hOiBUb29sSW5wdXRTY2hlbWE8VEpTT05TY2hlbWE+LFxuICBoYW5kbGVyOiAoaW5wdXQ6IFRUb29sSW5wdXQpID0+IFByb21pc2U8YmVkcm9jay5Ub29sUmVzdWx0Q29udGVudEJsb2NrPlxuKSA9PiBFeGVjdXRhYmxlVG9vbDxUSlNPTlNjaGVtYSwgVFRvb2xJbnB1dD4gPSAoXG4gIG5hbWUsXG4gIGRlc2NyaXB0aW9uLFxuICBpbnB1dFNjaGVtYSxcbiAgaGFuZGxlclxuKSA9PiB7XG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICBkZXNjcmlwdGlvbixcbiAgICBpbnB1dFNjaGVtYSxcbiAgICBleGVjdXRlOiBoYW5kbGVyLFxuICB9O1xufTtcbiJdfQ==
|
@@ -11,11 +11,12 @@ export type GraphqlRequest<TVariables> = {
|
|
11
11
|
export declare class GraphqlRequestExecutor {
|
12
12
|
private readonly graphQlEndpoint;
|
13
13
|
private readonly accessToken;
|
14
|
+
private readonly userAgent;
|
14
15
|
private readonly _fetch;
|
15
16
|
/**
|
16
17
|
* Creates GraphQL request executor.
|
17
18
|
*/
|
18
|
-
constructor(graphQlEndpoint: string, accessToken: string, _fetch?: typeof fetch);
|
19
|
+
constructor(graphQlEndpoint: string, accessToken: string, userAgent: string, _fetch?: typeof fetch);
|
19
20
|
executeGraphql: <TVariables, TReturn>(request: GraphqlRequest<TVariables>) => Promise<TReturn>;
|
20
21
|
}
|
21
22
|
//# sourceMappingURL=graphql_request_executor.d.ts.map
|
package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/graphql_request_executor.js
CHANGED
@@ -10,9 +10,10 @@ class GraphqlRequestExecutor {
|
|
10
10
|
/**
|
11
11
|
* Creates GraphQL request executor.
|
12
12
|
*/
|
13
|
-
constructor(graphQlEndpoint, accessToken, _fetch = fetch) {
|
13
|
+
constructor(graphQlEndpoint, accessToken, userAgent, _fetch = fetch) {
|
14
14
|
this.graphQlEndpoint = graphQlEndpoint;
|
15
15
|
this.accessToken = accessToken;
|
16
|
+
this.userAgent = userAgent;
|
16
17
|
this._fetch = _fetch;
|
17
18
|
this.executeGraphql = async (request) => {
|
18
19
|
const httpRequest = new Request(this.graphQlEndpoint, {
|
@@ -20,6 +21,7 @@ class GraphqlRequestExecutor {
|
|
20
21
|
headers: {
|
21
22
|
'Content-Type': 'application/graphql',
|
22
23
|
Authorization: this.accessToken,
|
24
|
+
'x-amz-user-agent': this.userAgent,
|
23
25
|
},
|
24
26
|
body: JSON.stringify({
|
25
27
|
query: request.query,
|
@@ -42,4 +44,4 @@ class GraphqlRequestExecutor {
|
|
42
44
|
}
|
43
45
|
}
|
44
46
|
exports.GraphqlRequestExecutor = GraphqlRequestExecutor;
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbF9yZXF1ZXN0X2V4ZWN1dG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnZlcnNhdGlvbi9ydW50aW1lL2dyYXBocWxfcmVxdWVzdF9leGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQTs7OztHQUlHO0FBQ0gsTUFBYSxzQkFBc0I7SUFDakM7O09BRUc7SUFDSCxZQUNtQixlQUF1QixFQUN2QixXQUFtQixFQUNuQixTQUFpQixFQUNqQixTQUFTLEtBQUs7UUFIZCxvQkFBZSxHQUFmLGVBQWUsQ0FBUTtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFHakMsbUJBQWMsR0FBRyxLQUFLLEVBQ3BCLE9BQW1DLEVBQ2pCLEVBQUU7WUFDcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDcEQsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsT0FBTyxFQUFFO29CQUNQLGNBQWMsRUFBRSxxQkFBcUI7b0JBQ3JDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVztvQkFDL0Isa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFNBQVM7aUJBQ25DO2dCQUNELElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO29CQUNuQixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7b0JBQ3BCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztpQkFDN0IsQ0FBQzthQUNILENBQUMsQ0FBQztZQUVILE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMzQyxNQUFNLGVBQWUsR0FBMkIsRUFBRSxDQUFDO1lBQ25ELEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxNQUFNLElBQUksR0FBRyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxJQUFJLEtBQUssQ0FDYiw0Q0FBNEMsSUFBSSxDQUFDLFNBQVMsQ0FDeEQsZUFBZSxDQUNoQixVQUFVLElBQUksRUFBRSxDQUNsQixDQUFDO2FBQ0g7WUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5QixJQUFJLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksUUFBUSxJQUFJLElBQUksRUFBRTtnQkFDeEQsTUFBTSxJQUFJLEtBQUssQ0FDYiw0Q0FBNEMsSUFBSSxDQUFDLFNBQVMsQ0FDeEQsZUFBZSxDQUNoQixVQUFVLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbEMsQ0FBQzthQUNIO1lBQ0QsT0FBTyxJQUFlLENBQUM7UUFDekIsQ0FBQyxDQUFDO0lBdENDLENBQUM7Q0F1Q0w7QUFoREQsd0RBZ0RDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgR3JhcGhxbFJlcXVlc3Q8VFZhcmlhYmxlcz4gPSB7XG4gIHF1ZXJ5OiBzdHJpbmc7XG4gIHZhcmlhYmxlczogVFZhcmlhYmxlcztcbn07XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgZXhlY3V0aW5nIEdyYXBoUUwgcmVxdWVzdHMuXG4gKiBTZXJpYWxpemluZyBxdWVyeSBhbmQgaXQncyBpbnB1dHMsIGFkZGluZyBhdXRob3JpemF0aW9uIGhlYWRlcnMsXG4gKiBpbnNwZWN0aW5nIHJlc3BvbnNlIGZvciBlcnJvcnMgYW5kIGRlLXNlcmlhbGl6aW5nIG91dHB1dC5cbiAqL1xuZXhwb3J0IGNsYXNzIEdyYXBocWxSZXF1ZXN0RXhlY3V0b3Ige1xuICAvKipcbiAgICogQ3JlYXRlcyBHcmFwaFFMIHJlcXVlc3QgZXhlY3V0b3IuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdyYXBoUWxFbmRwb2ludDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWNjZXNzVG9rZW46IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJBZ2VudDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZldGNoID0gZmV0Y2hcbiAgKSB7fVxuXG4gIGV4ZWN1dGVHcmFwaHFsID0gYXN5bmMgPFRWYXJpYWJsZXMsIFRSZXR1cm4+KFxuICAgIHJlcXVlc3Q6IEdyYXBocWxSZXF1ZXN0PFRWYXJpYWJsZXM+XG4gICk6IFByb21pc2U8VFJldHVybj4gPT4ge1xuICAgIGNvbnN0IGh0dHBSZXF1ZXN0ID0gbmV3IFJlcXVlc3QodGhpcy5ncmFwaFFsRW5kcG9pbnQsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2dyYXBocWwnLFxuICAgICAgICBBdXRob3JpemF0aW9uOiB0aGlzLmFjY2Vzc1Rva2VuLFxuICAgICAgICAneC1hbXotdXNlci1hZ2VudCc6IHRoaXMudXNlckFnZW50LFxuICAgICAgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgcXVlcnk6IHJlcXVlc3QucXVlcnksXG4gICAgICAgIHZhcmlhYmxlczogcmVxdWVzdC52YXJpYWJsZXMsXG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuX2ZldGNoKGh0dHBSZXF1ZXN0KTtcbiAgICBjb25zdCByZXNwb25zZUhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICByZXMuaGVhZGVycy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiAocmVzcG9uc2VIZWFkZXJzW2tleV0gPSB2YWx1ZSkpO1xuICAgIGlmICghcmVzLm9rKSB7XG4gICAgICBjb25zdCBib2R5ID0gYXdhaXQgcmVzLnRleHQoKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEdyYXBoUUwgcmVxdWVzdCBmYWlsZWQsIHJlc3BvbnNlIGhlYWRlcnM9JHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICByZXNwb25zZUhlYWRlcnNcbiAgICAgICAgKX0sIGJvZHk9JHtib2R5fWBcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGJvZHkgPSBhd2FpdCByZXMuanNvbigpO1xuICAgIGlmIChib2R5ICYmIHR5cGVvZiBib2R5ID09PSAnb2JqZWN0JyAmJiAnZXJyb3JzJyBpbiBib2R5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBHcmFwaFFMIHJlcXVlc3QgZmFpbGVkLCByZXNwb25zZSBoZWFkZXJzPSR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgcmVzcG9uc2VIZWFkZXJzXG4gICAgICAgICl9LCBib2R5PSR7SlNPTi5zdHJpbmdpZnkoYm9keSl9YFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGJvZHkgYXMgVFJldHVybjtcbiAgfTtcbn1cbiJdfQ==
|
@@ -1,4 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import { ConversationTurnEvent, ExecutableTool, FromJSONSchema, JSONSchema, ToolDefinition, ToolInputSchema, ToolResultContentBlock } from './types.js';
|
2
2
|
import { handleConversationTurnEvent } from './conversation_turn_executor.js';
|
3
|
-
|
3
|
+
import { createExecutableTool } from './executable_tool_factory.js';
|
4
|
+
export { ConversationTurnEvent, createExecutableTool, ExecutableTool, FromJSONSchema, JSONSchema, handleConversationTurnEvent, ToolDefinition, ToolInputSchema, ToolResultContentBlock, };
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1,6 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.handleConversationTurnEvent = void 0;
|
3
|
+
exports.handleConversationTurnEvent = exports.createExecutableTool = void 0;
|
4
4
|
const conversation_turn_executor_js_1 = require("./conversation_turn_executor.js");
|
5
5
|
Object.defineProperty(exports, "handleConversationTurnEvent", { enumerable: true, get: function () { return conversation_turn_executor_js_1.handleConversationTurnEvent; } });
|
6
|
-
|
6
|
+
const executable_tool_factory_js_1 = require("./executable_tool_factory.js");
|
7
|
+
Object.defineProperty(exports, "createExecutableTool", { enumerable: true, get: function () { return executable_tool_factory_js_1.createExecutableTool; } });
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udmVyc2F0aW9uL3J1bnRpbWUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBVUEsbUZBQThFO0FBUzVFLDRHQVRPLDJEQUEyQixPQVNQO0FBUjdCLDZFQUFvRTtBQUlsRSxxR0FKTyxpREFBb0IsT0FJUCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbnZlcnNhdGlvblR1cm5FdmVudCxcbiAgRXhlY3V0YWJsZVRvb2wsXG4gIEZyb21KU09OU2NoZW1hLFxuICBKU09OU2NoZW1hLFxuICBUb29sRGVmaW5pdGlvbixcbiAgVG9vbElucHV0U2NoZW1hLFxuICBUb29sUmVzdWx0Q29udGVudEJsb2NrLFxufSBmcm9tICcuL3R5cGVzLmpzJztcblxuaW1wb3J0IHsgaGFuZGxlQ29udmVyc2F0aW9uVHVybkV2ZW50IH0gZnJvbSAnLi9jb252ZXJzYXRpb25fdHVybl9leGVjdXRvci5qcyc7XG5pbXBvcnQgeyBjcmVhdGVFeGVjdXRhYmxlVG9vbCB9IGZyb20gJy4vZXhlY3V0YWJsZV90b29sX2ZhY3RvcnkuanMnO1xuXG5leHBvcnQge1xuICBDb252ZXJzYXRpb25UdXJuRXZlbnQsXG4gIGNyZWF0ZUV4ZWN1dGFibGVUb29sLFxuICBFeGVjdXRhYmxlVG9vbCxcbiAgRnJvbUpTT05TY2hlbWEsXG4gIEpTT05TY2hlbWEsXG4gIGhhbmRsZUNvbnZlcnNhdGlvblR1cm5FdmVudCxcbiAgVG9vbERlZmluaXRpb24sXG4gIFRvb2xJbnB1dFNjaGVtYSxcbiAgVG9vbFJlc3VsdENvbnRlbnRCbG9jayxcbn07XG4iXX0=
|