@aws-amplify/graphql-api-construct 1.12.0-gen2-migration-0809.0 → 1.12.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.jsii +311 -227
- package/API.md +3 -15
- package/CHANGELOG.md +25 -3
- package/lib/amplify-dynamodb-table-wrapper.js +1 -1
- package/lib/amplify-graphql-api.js +5 -12
- package/lib/amplify-graphql-definition.js +1 -1
- package/lib/internal/default-parameters.js +1 -2
- package/lib/model-datasource-strategy-types.d.ts +1 -19
- package/lib/model-datasource-strategy-types.js +1 -1
- package/lib/sql-model-datasource-strategy.js +1 -1
- package/lib/types.d.ts +5 -28
- package/lib/types.js +1 -1
- package/node_modules/@aws-amplify/ai-constructs/README.md +66 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/conversation_handler_construct.d.ts +28 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/conversation_handler_construct.js +74 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/index.d.ts +3 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/index.js +6 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/bedrock_converse_adapter.d.ts +30 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/bedrock_converse_adapter.js +191 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/conversation_turn_executor.d.ts +30 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/conversation_turn_executor.js +47 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/conversation_turn_response_sender.d.ts +18 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/conversation_turn_response_sender.js +66 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/default_handler.d.ts +8 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/default_handler.js +10 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/event_tools_provider.d.ts +15 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/event_tools_provider.js +32 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/graphql_query_factory.d.ts +9 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/graphql_query_factory.js +44 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/graphql_tool.d.ts +22 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/graphql_tool.js +48 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/index.d.ts +3 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/index.js +6 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/types.d.ts +3 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/types.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/index.d.ts +4 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/index.js +6 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/types.d.ts +61 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/types.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/test-assets/custom_handler.d.ts +5 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/test-assets/custom_handler.js +11 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/index.d.ts +3 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/index.internal.d.ts +4 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/index.internal.js +34 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/index.js +29 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/README.md +9 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/amplify_function.d.ts +4 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/amplify_function.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/auth_resources.d.ts +66 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/auth_resources.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/aws_client_provider.d.ts +5 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/aws_client_provider.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_identifier.d.ts +56 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_identifier.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_output.d.ts +6 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_output.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_secret_resolver.d.ts +22 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_secret_resolver.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_stack_creator.d.ts +8 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_stack_creator.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_stack_resolver.d.ts +7 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_stack_resolver.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/construct_container.d.ts +35 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/construct_container.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/construct_factory.d.ts +24 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/construct_factory.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/deep_partial.d.ts +17 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/deep_partial.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/deployment_type.d.ts +8 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/deployment_type.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/function_resources.d.ts +8 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/function_resources.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/import_path_verifier.d.ts +14 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/import_path_verifier.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/index.d.ts +23 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/index.js +39 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/output_retrieval_strategy.d.ts +11 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/output_retrieval_strategy.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/output_storage_strategy.d.ts +10 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/output_storage_strategy.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/package_manager_controller.d.ts +16 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/package_manager_controller.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_access_acceptor.d.ts +27 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_access_acceptor.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_name_validator.d.ts +10 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_name_validator.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_provider.d.ts +10 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_provider.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/ssm_environment_entries_generator.d.ts +5 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/ssm_environment_entries_generator.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/stable_backend_identifiers.d.ts +4 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/stable_backend_identifiers.js +3 -0
- package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/package.json +24 -0
- package/node_modules/@aws-amplify/ai-constructs/package.json +37 -0
- package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +19 -1
- 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 +6 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +26 -20
- package/node_modules/@aws-amplify/graphql-conversation-transformer/API.md +33 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/CHANGELOG.md +10 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/README.md +145 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/graphql-types/message-model.d.ts +13 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/graphql-types/message-model.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/graphql-types/message-model.js +111 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/graphql-types/message-model.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/graphql-types/session-model.d.ts +10 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/graphql-types/session-model.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/graphql-types/session-model.js +81 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/graphql-types/session-model.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/grapqhl-conversation-transformer.d.ts +39 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/grapqhl-conversation-transformer.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/grapqhl-conversation-transformer.js +35 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/grapqhl-conversation-transformer.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/index.d.ts +2 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/index.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/index.js +6 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/index.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-messages-subscription-resolver.d.ts +3 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-messages-subscription-resolver.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-messages-subscription-resolver.js +62 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-messages-subscription-resolver.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-mutation-resolver.d.ts +3 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-mutation-resolver.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-mutation-resolver.js +77 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/assistant-mutation-resolver.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/auth-resolver.d.ts +3 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/auth-resolver.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/auth-resolver.js +57 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/auth-resolver.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/init-resolver.d.ts +3 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/init-resolver.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/init-resolver.js +34 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/init-resolver.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/invoke-lambda-resolver.d.ts +5 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/invoke-lambda-resolver.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/invoke-lambda-resolver.js +104 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/invoke-lambda-resolver.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/js-resolver-function-provider.d.ts +6 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/js-resolver-function-provider.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/js-resolver-function-provider.js +3 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/js-resolver-function-provider.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/message-history-resolver.d.ts +3 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/message-history-resolver.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/message-history-resolver.js +59 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/message-history-resolver.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/verify-session-owner-resolver.d.ts +3 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/verify-session-owner-resolver.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/verify-session-owner-resolver.js +50 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/verify-session-owner-resolver.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/write-message-to-table-resolver.d.ts +3 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/write-message-to-table-resolver.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/write-message-to-table-resolver.js +45 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/write-message-to-table-resolver.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-field-handler.d.ts +12 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-field-handler.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-field-handler.js +68 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-field-handler.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-prepare-handler.d.ts +15 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-prepare-handler.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-prepare-handler.js +44 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-prepare-handler.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.d.ts +20 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.js +184 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/utils/graphql-json-schema-type.d.ts +5 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/utils/graphql-json-schema-type.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/utils/graphql-json-schema-type.js +81 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/utils/graphql-json-schema-type.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/utils/tools.d.ts +25 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/utils/tools.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/utils/tools.js +116 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/utils/tools.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/package.json +82 -0
- package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +17 -1
- package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +19 -13
- package/node_modules/@aws-amplify/graphql-directives/API.md +6 -0
- package/node_modules/@aws-amplify/graphql-directives/CHANGELOG.md +10 -2
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/belongs-to.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/belongs-to.js +1 -1
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/belongs-to.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/conversation.d.ts +3 -0
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/conversation.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/conversation.js +31 -0
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/conversation.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/generation.d.ts +3 -0
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/generation.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/generation.js +24 -0
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/generation.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/index.d.ts +2 -0
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/index.js +5 -1
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-directives/lib/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-directives/lib/index.js +2 -0
- package/node_modules/@aws-amplify/graphql-directives/lib/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-directives/package.json +12 -6
- package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +13 -1
- package/node_modules/@aws-amplify/graphql-function-transformer/package.json +16 -12
- package/node_modules/@aws-amplify/graphql-generation-transformer/API.md +26 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/CHANGELOG.md +11 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/README.md +85 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/grapqhl-generation-transformer.d.ts +32 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/grapqhl-generation-transformer.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/grapqhl-generation-transformer.js +119 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/grapqhl-generation-transformer.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/index.d.ts +2 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/index.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/index.js +6 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/index.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/resolvers/invoke-bedrock.d.ts +7 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/resolvers/invoke-bedrock.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/resolvers/invoke-bedrock.js +72 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/resolvers/invoke-bedrock.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/utils/graphql-json-schema-type.d.ts +5 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/utils/graphql-json-schema-type.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/utils/graphql-json-schema-type.js +78 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/utils/graphql-json-schema-type.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/utils/tools.d.ts +27 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/utils/tools.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/utils/tools.js +31 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/utils/tools.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/validation.d.ts +4 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/validation.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/validation.js +29 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/lib/validation.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/package.json +78 -0
- package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +13 -1
- package/node_modules/@aws-amplify/graphql-http-transformer/package.json +16 -12
- package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +17 -1
- package/node_modules/@aws-amplify/graphql-index-transformer/package.json +17 -13
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +17 -1
- 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 +20 -16
- package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +15 -7
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js +2 -47
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js.map +1 -1
- 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/lib/resolvers/rds/resolver.d.ts +2 -2
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js +22 -4
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.js +3 -12
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.d.ts +0 -2
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.js +2 -4
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.d.ts +0 -3
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.js +1 -111
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.js +1 -3
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/model-resource-generator.d.ts +0 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/model-resource-generator.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/model-resource-generator.js +0 -3
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/model-resource-generator.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js +2 -2
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/package.json +18 -16
- package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +19 -1
- package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/graphql-predictions-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/graphql-predictions-transformer.js +3 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/graphql-predictions-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +16 -12
- package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +23 -3
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.js +12 -13
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js +13 -11
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js +13 -11
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.js +7 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-references-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-references-transformer.js +1 -7
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-references-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-references-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-references-transformer.js +1 -7
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-references-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/types.d.ts +0 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/types.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.d.ts +0 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.js +8 -10
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +18 -14
- package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +23 -1
- package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/graphql-searchable-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/graphql-searchable-transformer.js +3 -0
- package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/graphql-searchable-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +21 -15
- package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +17 -1
- package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +17 -13
- package/node_modules/@aws-amplify/graphql-transformer/API.md +0 -1
- package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +23 -2
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts +0 -1
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js +11 -6
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer/package.json +31 -22
- package/node_modules/@aws-amplify/graphql-transformer/src/graphql-transformer.ts +11 -8
- package/node_modules/@aws-amplify/graphql-transformer-core/API.md +54 -7
- package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +14 -3
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/appsync-function.d.ts +2 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/appsync-function.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/appsync-function.js +3 -9
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/appsync-function.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/graphql-api.d.ts +5 -11
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/graphql-api.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/graphql-api.js +6 -31
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/graphql-api.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts +2 -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 +8 -3
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transform-host.d.ts +3 -3
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transform-host.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transform-host.js +12 -16
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transform-host.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/resolver.d.ts +6 -2
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/resolver.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/resolver.js +71 -23
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/resolver.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.js +0 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/ai/graphql-scalar-json-schema-definitions.d.ts +20 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/ai/graphql-scalar-json-schema-definitions.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/ai/graphql-scalar-json-schema-definitions.js +89 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/ai/graphql-scalar-json-schema-definitions.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/ai/index.d.ts +4 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/ai/index.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/ai/index.js +10 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/ai/index.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/ai/json-schema.d.ts +21 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/ai/json-schema.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/ai/json-schema.js +3 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/ai/json-schema.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/ai/named-type-conversion.d.ts +4 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/ai/named-type-conversion.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/ai/named-type-conversion.js +44 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/ai/named-type-conversion.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/function-runtime.d.ts +21 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/function-runtime.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/function-runtime.js +27 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/function-runtime.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.d.ts +1 -2
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.js +1 -9
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/package.json +18 -12
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +12 -23
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +14 -3
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.d.ts +3 -4
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.d.ts +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts +1 -6
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transform-host-provider.d.ts +4 -4
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transform-host-provider.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/synth-parameters.d.ts +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/synth-parameters.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transform-parameters.d.ts +0 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transform-parameters.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +13 -6
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/graphql-api-provider.ts +3 -10
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/index.ts +0 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/model-datasource/types.ts +0 -10
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transform-host-provider.ts +5 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/synth-parameters.ts +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transform-parameters.ts +0 -3
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
- package/node_modules/graphql-mapping-template/CHANGELOG.md +12 -0
- package/node_modules/graphql-mapping-template/LICENSE +201 -0
- package/node_modules/graphql-mapping-template/package.json +13 -5
- package/node_modules/graphql-transformer-common/API.md +0 -1
- package/node_modules/graphql-transformer-common/CHANGELOG.md +9 -3
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts +0 -1
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts.map +1 -1
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.js +0 -1
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.js.map +1 -1
- package/node_modules/graphql-transformer-common/package.json +13 -6
- package/package.json +40 -29
- package/src/amplify-graphql-api.ts +3 -11
- package/src/internal/default-parameters.ts +0 -1
- package/src/model-datasource-strategy-types.ts +0 -21
- package/src/types.ts +5 -29
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/node_modules/.package-lock.json +0 -13
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/node_modules/lodash.isequal/LICENSE +0 -47
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/node_modules/lodash.isequal/README.md +0 -18
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/node_modules/lodash.isequal/index.js +0 -1848
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/node_modules/lodash.isequal/package.json +0 -16
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/package-lock.json +0 -21
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/package.json +0 -11
package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/bedrock_converse_adapter.js
ADDED
@@ -0,0 +1,191 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.BedrockConverseAdapter = void 0;
|
4
|
+
const client_bedrock_runtime_1 = require("@aws-sdk/client-bedrock-runtime");
|
5
|
+
const event_tools_provider_1 = require("./event-tools-provider");
|
6
|
+
/**
|
7
|
+
* This class is responsible for interacting with Bedrock Converse API
|
8
|
+
* in order to produce final response that can be sent back to caller.
|
9
|
+
*/
|
10
|
+
class BedrockConverseAdapter {
|
11
|
+
/**
|
12
|
+
* Creates Bedrock Converse Adapter.
|
13
|
+
*/
|
14
|
+
constructor(event, additionalTools, bedrockClient = new client_bedrock_runtime_1.BedrockRuntimeClient({ region: event.modelConfiguration.region }), eventToolsProvider = new event_tools_provider_1.ConversationTurnEventToolsProvider(event)) {
|
15
|
+
var _a, _b;
|
16
|
+
this.event = event;
|
17
|
+
this.bedrockClient = bedrockClient;
|
18
|
+
this.executableToolByName = new Map();
|
19
|
+
this.clientToolByName = new Map();
|
20
|
+
this.askBedrock = async () => {
|
21
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
22
|
+
const { modelId, systemPrompt, inferenceConfiguration } = this.event.modelConfiguration;
|
23
|
+
const messages = this.getEventMessagesAsBedrockMessages();
|
24
|
+
let bedrockResponse;
|
25
|
+
do {
|
26
|
+
const toolConfig = this.createToolConfiguration();
|
27
|
+
const converseCommandInput = {
|
28
|
+
modelId,
|
29
|
+
messages: [...messages],
|
30
|
+
system: [{ text: systemPrompt }],
|
31
|
+
inferenceConfig: inferenceConfiguration,
|
32
|
+
toolConfig,
|
33
|
+
};
|
34
|
+
bedrockResponse = await this.bedrockClient.send(new client_bedrock_runtime_1.ConverseCommand(converseCommandInput));
|
35
|
+
if ((_a = bedrockResponse.output) === null || _a === void 0 ? void 0 : _a.message) {
|
36
|
+
messages.push((_b = bedrockResponse.output) === null || _b === void 0 ? void 0 : _b.message);
|
37
|
+
}
|
38
|
+
if (bedrockResponse.stopReason === 'tool_use') {
|
39
|
+
const responseContentBlocks = (_e = (_d = (_c = bedrockResponse.output) === null || _c === void 0 ? void 0 : _c.message) === null || _d === void 0 ? void 0 : _d.content) !== null && _e !== void 0 ? _e : [];
|
40
|
+
const toolUseBlocks = responseContentBlocks.filter((block) => 'toolUse' in block);
|
41
|
+
const clientToolUseBlocks = responseContentBlocks.filter((block) => {
|
42
|
+
var _a, _b;
|
43
|
+
return ((_a = block.toolUse) === null || _a === void 0 ? void 0 : _a.name) &&
|
44
|
+
this.clientToolByName.has((_b = block.toolUse) === null || _b === void 0 ? void 0 : _b.name);
|
45
|
+
});
|
46
|
+
if (clientToolUseBlocks.length > 0) {
|
47
|
+
// For now if any of client tools is used we ignore executable tools
|
48
|
+
// and propagate result back to client.
|
49
|
+
return clientToolUseBlocks;
|
50
|
+
}
|
51
|
+
for (const responseContentBlock of toolUseBlocks) {
|
52
|
+
const toolUseBlock = responseContentBlock;
|
53
|
+
const toolMessage = await this.executeTool(toolUseBlock);
|
54
|
+
messages.push(toolMessage);
|
55
|
+
}
|
56
|
+
}
|
57
|
+
} while (bedrockResponse.stopReason === 'tool_use');
|
58
|
+
return (_h = (_g = (_f = bedrockResponse.output) === null || _f === void 0 ? void 0 : _f.message) === null || _g === void 0 ? void 0 : _g.content) !== null && _h !== void 0 ? _h : [];
|
59
|
+
};
|
60
|
+
/**
|
61
|
+
* Maps event messages to Bedrock types.
|
62
|
+
* 1. Makes a copy so that we don't mutate event.
|
63
|
+
* 2. Decodes Base64 encoded images.
|
64
|
+
*/
|
65
|
+
this.getEventMessagesAsBedrockMessages = () => {
|
66
|
+
var _a, _b;
|
67
|
+
const messages = [];
|
68
|
+
for (const message of this.event.messages) {
|
69
|
+
const messageContent = [];
|
70
|
+
for (const contentElement of message.content) {
|
71
|
+
if (typeof ((_b = (_a = contentElement.image) === null || _a === void 0 ? void 0 : _a.source) === null || _b === void 0 ? void 0 : _b.bytes) === 'string') {
|
72
|
+
messageContent.push({
|
73
|
+
image: {
|
74
|
+
format: contentElement.image.format,
|
75
|
+
source: {
|
76
|
+
bytes: Buffer.from(contentElement.image.source.bytes, 'base64'),
|
77
|
+
},
|
78
|
+
},
|
79
|
+
});
|
80
|
+
}
|
81
|
+
else {
|
82
|
+
// Otherwise type conforms to Bedrock's type and it's safe to cast.
|
83
|
+
messageContent.push(contentElement);
|
84
|
+
}
|
85
|
+
}
|
86
|
+
messages.push({
|
87
|
+
role: message.role,
|
88
|
+
content: messageContent,
|
89
|
+
});
|
90
|
+
}
|
91
|
+
return messages;
|
92
|
+
};
|
93
|
+
this.createToolConfiguration = () => {
|
94
|
+
if (this.allTools.length === 0) {
|
95
|
+
return undefined;
|
96
|
+
}
|
97
|
+
return {
|
98
|
+
tools: this.allTools.map((t) => {
|
99
|
+
return {
|
100
|
+
toolSpec: {
|
101
|
+
name: t.name,
|
102
|
+
description: t.description,
|
103
|
+
inputSchema: t.inputSchema,
|
104
|
+
},
|
105
|
+
};
|
106
|
+
}),
|
107
|
+
};
|
108
|
+
};
|
109
|
+
this.executeTool = async (toolUseBlock) => {
|
110
|
+
if (!toolUseBlock.toolUse.name) {
|
111
|
+
throw Error('Bedrock tool use response is missing a tool name');
|
112
|
+
}
|
113
|
+
const tool = this.executableToolByName.get(toolUseBlock.toolUse.name);
|
114
|
+
if (!tool) {
|
115
|
+
throw Error(`Bedrock tool use response contains unknown tool '${toolUseBlock.toolUse.name}'`);
|
116
|
+
}
|
117
|
+
try {
|
118
|
+
const toolResponse = await tool.execute(toolUseBlock.toolUse.input);
|
119
|
+
return {
|
120
|
+
role: 'user',
|
121
|
+
content: [
|
122
|
+
{
|
123
|
+
toolResult: {
|
124
|
+
toolUseId: toolUseBlock.toolUse.toolUseId,
|
125
|
+
content: [toolResponse],
|
126
|
+
status: 'success',
|
127
|
+
},
|
128
|
+
},
|
129
|
+
],
|
130
|
+
};
|
131
|
+
}
|
132
|
+
catch (e) {
|
133
|
+
if (e instanceof Error) {
|
134
|
+
return {
|
135
|
+
role: 'user',
|
136
|
+
content: [
|
137
|
+
{
|
138
|
+
toolResult: {
|
139
|
+
toolUseId: toolUseBlock.toolUse.toolUseId,
|
140
|
+
content: [{ text: e.toString() }],
|
141
|
+
status: 'error',
|
142
|
+
},
|
143
|
+
},
|
144
|
+
],
|
145
|
+
};
|
146
|
+
}
|
147
|
+
return {
|
148
|
+
role: 'user',
|
149
|
+
content: [
|
150
|
+
{
|
151
|
+
toolResult: {
|
152
|
+
toolUseId: toolUseBlock.toolUse.toolUseId,
|
153
|
+
content: [{ text: 'unknown error occurred' }],
|
154
|
+
status: 'error',
|
155
|
+
},
|
156
|
+
},
|
157
|
+
],
|
158
|
+
};
|
159
|
+
}
|
160
|
+
};
|
161
|
+
this.executableTools = [
|
162
|
+
...eventToolsProvider.getEventTools(),
|
163
|
+
...additionalTools,
|
164
|
+
];
|
165
|
+
this.clientTools = (_b = (_a = this.event.toolsConfiguration) === null || _a === void 0 ? void 0 : _a.clientTools) !== null && _b !== void 0 ? _b : [];
|
166
|
+
this.allTools = [...this.executableTools, ...this.clientTools];
|
167
|
+
const duplicateTools = new Set();
|
168
|
+
this.executableTools.forEach((t) => {
|
169
|
+
if (this.executableToolByName.has(t.name)) {
|
170
|
+
duplicateTools.add(t.name);
|
171
|
+
}
|
172
|
+
this.executableToolByName.set(t.name, t);
|
173
|
+
});
|
174
|
+
this.clientTools.forEach((t) => {
|
175
|
+
if (this.executableToolByName.has(t.name)) {
|
176
|
+
duplicateTools.add(t.name);
|
177
|
+
}
|
178
|
+
if (this.clientToolByName.has(t.name)) {
|
179
|
+
duplicateTools.add(t.name);
|
180
|
+
}
|
181
|
+
this.clientToolByName.set(t.name, t);
|
182
|
+
});
|
183
|
+
if (duplicateTools.size > 0) {
|
184
|
+
throw new Error(`Tools must have unique names. Duplicate tools: ${[
|
185
|
+
...duplicateTools,
|
186
|
+
].join(', ')}.`);
|
187
|
+
}
|
188
|
+
}
|
189
|
+
}
|
190
|
+
exports.BedrockConverseAdapter = BedrockConverseAdapter;
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVkcm9ja19jb252ZXJzZV9hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnZlcnNhdGlvbi9ydW50aW1lL2JlZHJvY2tfY29udmVyc2VfYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0RUFTeUM7QUFNekMsaUVBQTRFO0FBRTVFOzs7R0FHRztBQUNILE1BQWEsc0JBQXNCO0lBUWpDOztPQUVHO0lBQ0gsWUFDbUIsS0FBNEIsRUFDN0MsZUFBc0MsRUFDckIsZ0JBQXNDLElBQUksNkNBQW9CLENBQzdFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FDNUMsRUFDRCxrQkFBa0IsR0FBRyxJQUFJLHlEQUFrQyxDQUFDLEtBQUssQ0FBQzs7UUFMakQsVUFBSyxHQUFMLEtBQUssQ0FBdUI7UUFFNUIsa0JBQWEsR0FBYixhQUFhLENBRTdCO1FBWmMseUJBQW9CLEdBQ25DLElBQUksR0FBRyxFQUFFLENBQUM7UUFDSyxxQkFBZ0IsR0FBZ0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQTRDM0UsZUFBVSxHQUFHLEtBQUssSUFBNkIsRUFBRTs7WUFDL0MsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsR0FDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztZQUVoQyxNQUFNLFFBQVEsR0FBbUIsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLENBQUM7WUFFMUUsSUFBSSxlQUFzQyxDQUFDO1lBQzNDLEdBQUc7Z0JBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7Z0JBQ2xELE1BQU0sb0JBQW9CLEdBQXlCO29CQUNqRCxPQUFPO29CQUNQLFFBQVEsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDO29CQUN2QixNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQztv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N01ELHdEQTZNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJlZHJvY2tSdW50aW1lQ2xpZW50LFxuICBDb250ZW50QmxvY2ssXG4gIENvbnZlcnNlQ29tbWFuZCxcbiAgQ29udmVyc2VDb21tYW5kSW5wdXQsXG4gIENvbnZlcnNlQ29tbWFuZE91dHB1dCxcbiAgTWVzc2FnZSxcbiAgVG9vbCxcbiAgVG9vbENvbmZpZ3VyYXRpb24sXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1iZWRyb2NrLXJ1bnRpbWUnO1xuaW1wb3J0IHtcbiAgQ29udmVyc2F0aW9uVHVybkV2ZW50LFxuICBFeGVjdXRhYmxlVG9vbCxcbiAgVG9vbERlZmluaXRpb24sXG59IGZyb20gJy4vdHlwZXMuanMnO1xuaW1wb3J0IHsgQ29udmVyc2F0aW9uVHVybkV2ZW50VG9vbHNQcm92aWRlciB9IGZyb20gJy4vZXZlbnQtdG9vbHMtcHJvdmlkZXInO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGludGVyYWN0aW5nIHdpdGggQmVkcm9jayBDb252ZXJzZSBBUElcbiAqIGluIG9yZGVyIHRvIHByb2R1Y2UgZmluYWwgcmVzcG9uc2UgdGhhdCBjYW4gYmUgc2VudCBiYWNrIHRvIGNhbGxlci5cbiAqL1xuZXhwb3J0IGNsYXNzIEJlZHJvY2tDb252ZXJzZUFkYXB0ZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGFsbFRvb2xzOiBBcnJheTxUb29sRGVmaW5pdGlvbj47XG4gIHByaXZhdGUgcmVhZG9ubHkgZXhlY3V0YWJsZVRvb2xzOiBBcnJheTxFeGVjdXRhYmxlVG9vbD47XG4gIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50VG9vbHM6IEFycmF5PFRvb2xEZWZpbml0aW9uPjtcbiAgcHJpdmF0ZSByZWFkb25seSBleGVjdXRhYmxlVG9vbEJ5TmFtZTogTWFwPHN0cmluZywgRXhlY3V0YWJsZVRvb2w+ID1cbiAgICBuZXcgTWFwKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50VG9vbEJ5TmFtZTogTWFwPHN0cmluZywgVG9vbERlZmluaXRpb24+ID0gbmV3IE1hcCgpO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIEJlZHJvY2sgQ29udmVyc2UgQWRhcHRlci5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnQ6IENvbnZlcnNhdGlvblR1cm5FdmVudCxcbiAgICBhZGRpdGlvbmFsVG9vbHM6IEFycmF5PEV4ZWN1dGFibGVUb29sPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJlZHJvY2tDbGllbnQ6IEJlZHJvY2tSdW50aW1lQ2xpZW50ID0gbmV3IEJlZHJvY2tSdW50aW1lQ2xpZW50KFxuICAgICAgeyByZWdpb246IGV2ZW50Lm1vZGVsQ29uZmlndXJhdGlvbi5yZWdpb24gfVxuICAgICksXG4gICAgZXZlbnRUb29sc1Byb3ZpZGVyID0gbmV3IENvbnZlcnNhdGlvblR1cm5FdmVudFRvb2xzUHJvdmlkZXIoZXZlbnQpXG4gICkge1xuICAgIHRoaXMuZXhlY3V0YWJsZVRvb2xzID0gW1xuICAgICAgLi4uZXZlbnRUb29sc1Byb3ZpZGVyLmdldEV2ZW50VG9vbHMoKSxcbiAgICAgIC4uLmFkZGl0aW9uYWxUb29scyxcbiAgICBdO1xuICAgIHRoaXMuY2xpZW50VG9vbHMgPSB0aGlzLmV2ZW50LnRvb2xzQ29uZmlndXJhdGlvbj8uY2xpZW50VG9vbHMgPz8gW107XG4gICAgdGhpcy5hbGxUb29scyA9IFsuLi50aGlzLmV4ZWN1dGFibGVUb29scywgLi4udGhpcy5jbGllbnRUb29sc107XG4gICAgY29uc3QgZHVwbGljYXRlVG9vbHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICB0aGlzLmV4ZWN1dGFibGVUb29scy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICBpZiAodGhpcy5leGVjdXRhYmxlVG9vbEJ5TmFtZS5oYXModC5uYW1lKSkge1xuICAgICAgICBkdXBsaWNhdGVUb29scy5hZGQodC5uYW1lKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZXhlY3V0YWJsZVRvb2xCeU5hbWUuc2V0KHQubmFtZSwgdCk7XG4gICAgfSk7XG4gICAgdGhpcy5jbGllbnRUb29scy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICBpZiAodGhpcy5leGVjdXRhYmxlVG9vbEJ5TmFtZS5oYXModC5uYW1lKSkge1xuICAgICAgICBkdXBsaWNhdGVUb29scy5hZGQodC5uYW1lKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmNsaWVudFRvb2xCeU5hbWUuaGFzKHQubmFtZSkpIHtcbiAgICAgICAgZHVwbGljYXRlVG9vbHMuYWRkKHQubmFtZSk7XG4gICAgICB9XG4gICAgICB0aGlzLmNsaWVudFRvb2xCeU5hbWUuc2V0KHQubmFtZSwgdCk7XG4gICAgfSk7XG4gICAgaWYgKGR1cGxpY2F0ZVRvb2xzLnNpemUgPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUb29scyBtdXN0IGhhdmUgdW5pcXVlIG5hbWVzLiBEdXBsaWNhdGUgdG9vbHM6ICR7W1xuICAgICAgICAgIC4uLmR1cGxpY2F0ZVRvb2xzLFxuICAgICAgICBdLmpvaW4oJywgJyl9LmBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgYXNrQmVkcm9jayA9IGFzeW5jICgpOiBQcm9taXNlPENvbnRlbnRCbG9ja1tdPiA9PiB7XG4gICAgY29uc3QgeyBtb2RlbElkLCBzeXN0ZW1Qcm9tcHQsIGluZmVyZW5jZUNvbmZpZ3VyYXRpb24gfSA9XG4gICAgICB0aGlzLmV2ZW50Lm1vZGVsQ29uZmlndXJhdGlvbjtcblxuICAgIGNvbnN0IG1lc3NhZ2VzOiBBcnJheTxNZXNzYWdlPiA9IHRoaXMuZ2V0RXZlbnRNZXNzYWdlc0FzQmVkcm9ja01lc3NhZ2VzKCk7XG5cbiAgICBsZXQgYmVkcm9ja1Jlc3BvbnNlOiBDb252ZXJzZUNvbW1hbmRPdXRwdXQ7XG4gICAgZG8ge1xuICAgICAgY29uc3QgdG9vbENvbmZpZyA9IHRoaXMuY3JlYXRlVG9vbENvbmZpZ3VyYXRpb24oKTtcbiAgICAgIGNvbnN0IGNvbnZlcnNlQ29tbWFuZElucHV0OiBDb252ZXJzZUNvbW1hbmRJbnB1dCA9IHtcbiAgICAgICAgbW9kZWxJZCxcbiAgICAgICAgbWVzc2FnZXM6IFsuLi5tZXNzYWdlc10sXG4gICAgICAgIHN5c3RlbTogW3sgdGV4dDogc3lzdGVtUHJvbXB0IH1dLFxuICAgICAgICBpbmZlcmVuY2VDb25maWc6IGluZmVyZW5jZUNvbmZpZ3VyYXRpb24sXG4gICAgICAgIHRvb2xDb25maWcsXG4gICAgICB9O1xuICAgICAgYmVkcm9ja1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5iZWRyb2NrQ2xpZW50LnNlbmQoXG4gICAgICAgIG5ldyBDb252ZXJzZUNvbW1hbmQoY29udmVyc2VDb21tYW5kSW5wdXQpXG4gICAgICApO1xuICAgICAgaWYgKGJlZHJvY2tSZXNwb25zZS5vdXRwdXQ/Lm1lc3NhZ2UpIHtcbiAgICAgICAgbWVzc2FnZXMucHVzaChiZWRyb2NrUmVzcG9uc2Uub3V0cHV0Py5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIGlmIChiZWRyb2NrUmVzcG9uc2Uuc3RvcFJlYXNvbiA9PT0gJ3Rvb2xfdXNlJykge1xuICAgICAgICBjb25zdCByZXNwb25zZUNvbnRlbnRCbG9ja3MgPVxuICAgICAgICAgIGJlZHJvY2tSZXNwb25zZS5vdXRwdXQ/Lm1lc3NhZ2U/LmNvbnRlbnQgPz8gW107XG4gICAgICAgIGNvbnN0IHRvb2xVc2VCbG9ja3MgPSByZXNwb25zZUNvbnRlbnRCbG9ja3MuZmlsdGVyKFxuICAgICAgICAgIChibG9jaykgPT4gJ3Rvb2xVc2UnIGluIGJsb2NrXG4gICAgICAgICkgYXMgQXJyYXk8Q29udGVudEJsb2NrLlRvb2xVc2VNZW1iZXI+O1xuICAgICAgICBjb25zdCBjbGllbnRUb29sVXNlQmxvY2tzID0gcmVzcG9uc2VDb250ZW50QmxvY2tzLmZpbHRlcihcbiAgICAgICAgICAoYmxvY2spID0+XG4gICAgICAgICAgICBibG9jay50b29sVXNlPy5uYW1lICYmXG4gICAgICAgICAgICB0aGlzLmNsaWVudFRvb2xCeU5hbWUuaGFzKGJsb2NrLnRvb2xVc2U/Lm5hbWUpXG4gICAgICAgICk7XG4gICAgICAgIGlmIChjbGllbnRUb29sVXNlQmxvY2tzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAvLyBGb3Igbm93IGlmIGFueSBvZiBjbGllbnQgdG9vbHMgaXMgdXNlZCB3ZSBpZ25vcmUgZXhlY3V0YWJsZSB0b29sc1xuICAgICAgICAgIC8vIGFuZCBwcm9wYWdhdGUgcmVzdWx0IGJhY2sgdG8gY2xpZW50LlxuICAgICAgICAgIHJldHVybiBjbGllbnRUb29sVXNlQmxvY2tzO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgcmVzcG9uc2VDb250ZW50QmxvY2sgb2YgdG9vbFVzZUJsb2Nrcykge1xuICAgICAgICAgIGNvbnN0IHRvb2xVc2VCbG9jayA9XG4gICAgICAgICAgICByZXNwb25zZUNvbnRlbnRCbG9jayBhcyBDb250ZW50QmxvY2suVG9vbFVzZU1lbWJlcjtcbiAgICAgICAgICBjb25zdCB0b29sTWVzc2FnZSA9IGF3YWl0IHRoaXMuZXhlY3V0ZVRvb2wodG9vbFVzZUJsb2NrKTtcbiAgICAgICAgICBtZXNzYWdlcy5wdXNoKHRvb2xNZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gd2hpbGUgKGJlZHJvY2tSZXNwb25zZS5zdG9wUmVhc29uID09PSAndG9vbF91c2UnKTtcblxuICAgIHJldHVybiBiZWRyb2NrUmVzcG9uc2Uub3V0cHV0Py5tZXNzYWdlPy5jb250ZW50ID8/IFtdO1xuICB9O1xuXG4gIC8qKlxuICAgKiBNYXBzIGV2ZW50IG1lc3NhZ2VzIHRvIEJlZHJvY2sgdHlwZXMuXG4gICAqIDEuIE1ha2VzIGEgY29weSBzbyB0aGF0IHdlIGRvbid0IG11dGF0ZSBldmVudC5cbiAgICogMi4gRGVjb2RlcyBCYXNlNjQgZW5jb2RlZCBpbWFnZXMuXG4gICAqL1xuICBwcml2YXRlIGdldEV2ZW50TWVzc2FnZXNBc0JlZHJvY2tNZXNzYWdlcyA9ICgpOiBBcnJheTxNZXNzYWdlPiA9PiB7XG4gICAgY29uc3QgbWVzc2FnZXM6IEFycmF5PE1lc3NhZ2U+ID0gW107XG4gICAgZm9yIChjb25zdCBtZXNzYWdlIG9mIHRoaXMuZXZlbnQubWVzc2FnZXMpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2VDb250ZW50OiBBcnJheTxDb250ZW50QmxvY2s+ID0gW107XG4gICAgICBmb3IgKGNvbnN0IGNvbnRlbnRFbGVtZW50IG9mIG1lc3NhZ2UuY29udGVudCkge1xuICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnRFbGVtZW50LmltYWdlPy5zb3VyY2U/LmJ5dGVzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIG1lc3NhZ2VDb250ZW50LnB1c2goe1xuICAgICAgICAgICAgaW1hZ2U6IHtcbiAgICAgICAgICAgICAgZm9ybWF0OiBjb250ZW50RWxlbWVudC5pbWFnZS5mb3JtYXQsXG4gICAgICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgICAgIGJ5dGVzOiBCdWZmZXIuZnJvbShjb250ZW50RWxlbWVudC5pbWFnZS5zb3VyY2UuYnl0ZXMsICdiYXNlNjQnKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gT3RoZXJ3aXNlIHR5cGUgY29uZm9ybXMgdG8gQmVkcm9jaydzIHR5cGUgYW5kIGl0J3Mgc2FmZSB0byBjYXN0LlxuICAgICAgICAgIG1lc3NhZ2VDb250ZW50LnB1c2goY29udGVudEVsZW1lbnQgYXMgQ29udGVudEJsb2NrKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHJvbGU6IG1lc3NhZ2Uucm9sZSxcbiAgICAgICAgY29udGVudDogbWVzc2FnZUNvbnRlbnQsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2VzO1xuICB9O1xuXG4gIHByaXZhdGUgY3JlYXRlVG9vbENvbmZpZ3VyYXRpb24gPSAoKTogVG9vbENvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWQgPT4ge1xuICAgIGlmICh0aGlzLmFsbFRvb2xzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdG9vbHM6IHRoaXMuYWxsVG9vbHMubWFwKCh0KTogVG9vbCA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdG9vbFNwZWM6IHtcbiAgICAgICAgICAgIG5hbWU6IHQubmFtZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgaW5wdXRTY2hlbWE6IHQuaW5wdXRTY2hlbWEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgIH07XG4gIH07XG5cbiAgcHJpdmF0ZSBleGVjdXRlVG9vbCA9IGFzeW5jIChcbiAgICB0b29sVXNlQmxvY2s6IENvbnRlbnRCbG9jay5Ub29sVXNlTWVtYmVyXG4gICk6IFByb21pc2U8TWVzc2FnZT4gPT4ge1xuICAgIGlmICghdG9vbFVzZUJsb2NrLnRvb2xVc2UubmFtZSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0JlZHJvY2sgdG9vbCB1c2UgcmVzcG9uc2UgaXMgbWlzc2luZyBhIHRvb2wgbmFtZScpO1xuICAgIH1cbiAgICBjb25zdCB0b29sID0gdGhpcy5leGVjdXRhYmxlVG9vbEJ5TmFtZS5nZXQodG9vbFVzZUJsb2NrLnRvb2xVc2UubmFtZSk7XG4gICAgaWYgKCF0b29sKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgYEJlZHJvY2sgdG9vbCB1c2UgcmVzcG9uc2UgY29udGFpbnMgdW5rbm93biB0b29sICcke3Rvb2xVc2VCbG9jay50b29sVXNlLm5hbWV9J2BcbiAgICAgICk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCB0b29sUmVzcG9uc2UgPSBhd2FpdCB0b29sLmV4ZWN1dGUodG9vbFVzZUJsb2NrLnRvb2xVc2UuaW5wdXQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcm9sZTogJ3VzZXInLFxuICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdG9vbFJlc3VsdDoge1xuICAgICAgICAgICAgICB0b29sVXNlSWQ6IHRvb2xVc2VCbG9jay50b29sVXNlLnRvb2xVc2VJZCxcbiAgICAgICAgICAgICAgY29udGVudDogW3Rvb2xSZXNwb25zZV0sXG4gICAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcm9sZTogJ3VzZXInLFxuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdG9vbFJlc3VsdDoge1xuICAgICAgICAgICAgICAgIHRvb2xVc2VJZDogdG9vbFVzZUJsb2NrLnRvb2xVc2UudG9vbFVzZUlkLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFt7IHRleHQ6IGUudG9TdHJpbmcoKSB9XSxcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICByb2xlOiAndXNlcicsXG4gICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0b29sUmVzdWx0OiB7XG4gICAgICAgICAgICAgIHRvb2xVc2VJZDogdG9vbFVzZUJsb2NrLnRvb2xVc2UudG9vbFVzZUlkLFxuICAgICAgICAgICAgICBjb250ZW50OiBbeyB0ZXh0OiAndW5rbm93biBlcnJvciBvY2N1cnJlZCcgfV0sXG4gICAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgfVxuICB9O1xufVxuIl19
|
@@ -0,0 +1,30 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import { ConversationTurnResponseSender } from './conversation_turn_response_sender.js';
|
3
|
+
import { ConversationTurnEvent, ExecutableTool } from './types.js';
|
4
|
+
import { BedrockConverseAdapter } from './bedrock_converse_adapter.js';
|
5
|
+
/**
|
6
|
+
* This class is responsible for orchestrating conversation turn execution.
|
7
|
+
* The conversation turn consist of:
|
8
|
+
* 1. Accepting an event that is coming from conversational route resolvers in AppSync.
|
9
|
+
* 2. Interacting with AWS Bedrock to produce response.
|
10
|
+
* 3. Send response back to AppSync in a form of mutation.
|
11
|
+
*/
|
12
|
+
export declare class ConversationTurnExecutor {
|
13
|
+
private readonly event;
|
14
|
+
private readonly bedrockConverseAdapter;
|
15
|
+
private readonly responseSender;
|
16
|
+
private readonly logger;
|
17
|
+
/**
|
18
|
+
* Creates conversation turn executor.
|
19
|
+
*/
|
20
|
+
constructor(event: ConversationTurnEvent, additionalTools: Array<ExecutableTool>, bedrockConverseAdapter?: BedrockConverseAdapter, responseSender?: ConversationTurnResponseSender, logger?: Console);
|
21
|
+
execute: () => Promise<void>;
|
22
|
+
}
|
23
|
+
/**
|
24
|
+
* This function handles a conversation turn event that is coming from
|
25
|
+
* AppSync instance with conversational routes defined and sends response back.
|
26
|
+
*/
|
27
|
+
export declare const handleConversationTurnEvent: (event: ConversationTurnEvent, props?: {
|
28
|
+
tools?: Array<ExecutableTool>;
|
29
|
+
}) => Promise<void>;
|
30
|
+
//# sourceMappingURL=conversation_turn_executor.d.ts.map
|
@@ -0,0 +1,47 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.handleConversationTurnEvent = exports.ConversationTurnExecutor = void 0;
|
4
|
+
const conversation_turn_response_sender_js_1 = require("./conversation_turn_response_sender.js");
|
5
|
+
const bedrock_converse_adapter_js_1 = require("./bedrock_converse_adapter.js");
|
6
|
+
/**
|
7
|
+
* This class is responsible for orchestrating conversation turn execution.
|
8
|
+
* The conversation turn consist of:
|
9
|
+
* 1. Accepting an event that is coming from conversational route resolvers in AppSync.
|
10
|
+
* 2. Interacting with AWS Bedrock to produce response.
|
11
|
+
* 3. Send response back to AppSync in a form of mutation.
|
12
|
+
*/
|
13
|
+
class ConversationTurnExecutor {
|
14
|
+
/**
|
15
|
+
* Creates conversation turn executor.
|
16
|
+
*/
|
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
|
+
this.event = event;
|
19
|
+
this.bedrockConverseAdapter = bedrockConverseAdapter;
|
20
|
+
this.responseSender = responseSender;
|
21
|
+
this.logger = logger;
|
22
|
+
this.execute = async () => {
|
23
|
+
try {
|
24
|
+
this.logger.log(`Handling conversation turn event, currentMessageId=${this.event.currentMessageId}, conversationId=${this.event.conversationId}`);
|
25
|
+
const assistantResponse = await this.bedrockConverseAdapter.askBedrock();
|
26
|
+
await this.responseSender.sendResponse(assistantResponse);
|
27
|
+
this.logger.log(`Conversation turn event handled successfully, currentMessageId=${this.event.currentMessageId}, conversationId=${this.event.conversationId}`);
|
28
|
+
}
|
29
|
+
catch (e) {
|
30
|
+
this.logger.error(`Failed to handle conversation turn event, currentMessageId=${this.event.currentMessageId}, conversationId=${this.event.conversationId}`, e);
|
31
|
+
// Propagate error to mark lambda execution as failed in metrics.
|
32
|
+
throw e;
|
33
|
+
}
|
34
|
+
};
|
35
|
+
}
|
36
|
+
}
|
37
|
+
exports.ConversationTurnExecutor = ConversationTurnExecutor;
|
38
|
+
/**
|
39
|
+
* This function handles a conversation turn event that is coming from
|
40
|
+
* AppSync instance with conversational routes defined and sends response back.
|
41
|
+
*/
|
42
|
+
const handleConversationTurnEvent = async (event, props) => {
|
43
|
+
var _a;
|
44
|
+
await new ConversationTurnExecutor(event, (_a = props === null || props === void 0 ? void 0 : props.tools) !== null && _a !== void 0 ? _a : []).execute();
|
45
|
+
};
|
46
|
+
exports.handleConversationTurnEvent = handleConversationTurnEvent;
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uX3R1cm5fZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udmVyc2F0aW9uL3J1bnRpbWUvY29udmVyc2F0aW9uX3R1cm5fZXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUdBQXdGO0FBRXhGLCtFQUF1RTtBQUV2RTs7Ozs7O0dBTUc7QUFDSCxNQUFhLHdCQUF3QjtJQUNuQzs7T0FFRztJQUNILFlBQ21CLEtBQTRCLEVBQzdDLGVBQXNDLEVBQ3JCLHlCQUF5QixJQUFJLG9EQUFzQixDQUNsRSxLQUFLLEVBQ0wsZUFBZSxDQUNoQixFQUNnQixpQkFBaUIsSUFBSSxxRUFBOEIsQ0FBQyxLQUFLLENBQUMsRUFDMUQsU0FBUyxPQUFPO1FBUGhCLFVBQUssR0FBTCxLQUFLLENBQXVCO1FBRTVCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FHdEM7UUFDZ0IsbUJBQWMsR0FBZCxjQUFjLENBQTRDO1FBQzFELFdBQU0sR0FBTixNQUFNLENBQVU7UUFHbkMsWUFBTyxHQUFHLEtBQUssSUFBbUIsRUFBRTtZQUNsQyxJQUFJO2dCQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUNiLHNEQUFzRCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixvQkFBb0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FDakksQ0FBQztnQkFFRixNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUV6RSxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBRTFELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUNiLGtFQUFrRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixvQkFBb0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FDN0ksQ0FBQzthQUNIO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsOERBQThELElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLG9CQUFvQixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUN4SSxDQUFDLENBQ0YsQ0FBQztnQkFDRixpRUFBaUU7Z0JBQ2pFLE1BQU0sQ0FBQyxDQUFDO2FBQ1Q7UUFDSCxDQUFDLENBQUM7SUF2QkMsQ0FBQztDQXdCTDtBQXJDRCw0REFxQ0M7QUFFRDs7O0dBR0c7QUFDSSxNQUFNLDJCQUEyQixHQUFHLEtBQUssRUFDOUMsS0FBNEIsRUFDNUIsS0FBeUMsRUFDMUIsRUFBRTs7SUFDakIsTUFBTSxJQUFJLHdCQUF3QixDQUFDLEtBQUssRUFBRSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxLQUFLLG1DQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQzFFLENBQUMsQ0FBQztBQUxXLFFBQUEsMkJBQTJCLCtCQUt0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnZlcnNhdGlvblR1cm5SZXNwb25zZVNlbmRlciB9IGZyb20gJy4vY29udmVyc2F0aW9uX3R1cm5fcmVzcG9uc2Vfc2VuZGVyLmpzJztcbmltcG9ydCB7IENvbnZlcnNhdGlvblR1cm5FdmVudCwgRXhlY3V0YWJsZVRvb2wgfSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB7IEJlZHJvY2tDb252ZXJzZUFkYXB0ZXIgfSBmcm9tICcuL2JlZHJvY2tfY29udmVyc2VfYWRhcHRlci5qcyc7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3Igb3JjaGVzdHJhdGluZyBjb252ZXJzYXRpb24gdHVybiBleGVjdXRpb24uXG4gKiBUaGUgY29udmVyc2F0aW9uIHR1cm4gY29uc2lzdCBvZjpcbiAqIDEuIEFjY2VwdGluZyBhbiBldmVudCB0aGF0IGlzIGNvbWluZyBmcm9tIGNvbnZlcnNhdGlvbmFsIHJvdXRlIHJlc29sdmVycyBpbiBBcHBTeW5jLlxuICogMi4gSW50ZXJhY3Rpbmcgd2l0aCBBV1MgQmVkcm9jayB0byBwcm9kdWNlIHJlc3BvbnNlLlxuICogMy4gU2VuZCByZXNwb25zZSBiYWNrIHRvIEFwcFN5bmMgaW4gYSBmb3JtIG9mIG11dGF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQ29udmVyc2F0aW9uVHVybkV4ZWN1dG9yIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgY29udmVyc2F0aW9uIHR1cm4gZXhlY3V0b3IuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50OiBDb252ZXJzYXRpb25UdXJuRXZlbnQsXG4gICAgYWRkaXRpb25hbFRvb2xzOiBBcnJheTxFeGVjdXRhYmxlVG9vbD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBiZWRyb2NrQ29udmVyc2VBZGFwdGVyID0gbmV3IEJlZHJvY2tDb252ZXJzZUFkYXB0ZXIoXG4gICAgICBldmVudCxcbiAgICAgIGFkZGl0aW9uYWxUb29sc1xuICAgICksXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNwb25zZVNlbmRlciA9IG5ldyBDb252ZXJzYXRpb25UdXJuUmVzcG9uc2VTZW5kZXIoZXZlbnQpLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gY29uc29sZVxuICApIHt9XG5cbiAgZXhlY3V0ZSA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5sb2dnZXIubG9nKFxuICAgICAgICBgSGFuZGxpbmcgY29udmVyc2F0aW9uIHR1cm4gZXZlbnQsIGN1cnJlbnRNZXNzYWdlSWQ9JHt0aGlzLmV2ZW50LmN1cnJlbnRNZXNzYWdlSWR9LCBjb252ZXJzYXRpb25JZD0ke3RoaXMuZXZlbnQuY29udmVyc2F0aW9uSWR9YFxuICAgICAgKTtcblxuICAgICAgY29uc3QgYXNzaXN0YW50UmVzcG9uc2UgPSBhd2FpdCB0aGlzLmJlZHJvY2tDb252ZXJzZUFkYXB0ZXIuYXNrQmVkcm9jaygpO1xuXG4gICAgICBhd2FpdCB0aGlzLnJlc3BvbnNlU2VuZGVyLnNlbmRSZXNwb25zZShhc3Npc3RhbnRSZXNwb25zZSk7XG5cbiAgICAgIHRoaXMubG9nZ2VyLmxvZyhcbiAgICAgICAgYENvbnZlcnNhdGlvbiB0dXJuIGV2ZW50IGhhbmRsZWQgc3VjY2Vzc2Z1bGx5LCBjdXJyZW50TWVzc2FnZUlkPSR7dGhpcy5ldmVudC5jdXJyZW50TWVzc2FnZUlkfSwgY29udmVyc2F0aW9uSWQ9JHt0aGlzLmV2ZW50LmNvbnZlcnNhdGlvbklkfWBcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gaGFuZGxlIGNvbnZlcnNhdGlvbiB0dXJuIGV2ZW50LCBjdXJyZW50TWVzc2FnZUlkPSR7dGhpcy5ldmVudC5jdXJyZW50TWVzc2FnZUlkfSwgY29udmVyc2F0aW9uSWQ9JHt0aGlzLmV2ZW50LmNvbnZlcnNhdGlvbklkfWAsXG4gICAgICAgIGVcbiAgICAgICk7XG4gICAgICAvLyBQcm9wYWdhdGUgZXJyb3IgdG8gbWFyayBsYW1iZGEgZXhlY3V0aW9uIGFzIGZhaWxlZCBpbiBtZXRyaWNzLlxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBoYW5kbGVzIGEgY29udmVyc2F0aW9uIHR1cm4gZXZlbnQgdGhhdCBpcyBjb21pbmcgZnJvbVxuICogQXBwU3luYyBpbnN0YW5jZSB3aXRoIGNvbnZlcnNhdGlvbmFsIHJvdXRlcyBkZWZpbmVkIGFuZCBzZW5kcyByZXNwb25zZSBiYWNrLlxuICovXG5leHBvcnQgY29uc3QgaGFuZGxlQ29udmVyc2F0aW9uVHVybkV2ZW50ID0gYXN5bmMgKFxuICBldmVudDogQ29udmVyc2F0aW9uVHVybkV2ZW50LFxuICBwcm9wcz86IHsgdG9vbHM/OiBBcnJheTxFeGVjdXRhYmxlVG9vbD4gfVxuKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGF3YWl0IG5ldyBDb252ZXJzYXRpb25UdXJuRXhlY3V0b3IoZXZlbnQsIHByb3BzPy50b29scyA/PyBbXSkuZXhlY3V0ZSgpO1xufTtcbiJdfQ==
|
@@ -0,0 +1,18 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import { ConversationTurnEvent } from './types.js';
|
3
|
+
import type { ContentBlock } from '@aws-sdk/client-bedrock-runtime';
|
4
|
+
/**
|
5
|
+
* This class is responsible for sending a response produced by Bedrock back to AppSync
|
6
|
+
* in a form of mutation.
|
7
|
+
*/
|
8
|
+
export declare class ConversationTurnResponseSender {
|
9
|
+
private readonly event;
|
10
|
+
private readonly _fetch;
|
11
|
+
/**
|
12
|
+
* Creates conversation turn response sender.
|
13
|
+
*/
|
14
|
+
constructor(event: ConversationTurnEvent, _fetch?: typeof fetch);
|
15
|
+
sendResponse: (message: ContentBlock[]) => Promise<void>;
|
16
|
+
private createMutationRequest;
|
17
|
+
}
|
18
|
+
//# sourceMappingURL=conversation_turn_response_sender.d.ts.map
|
@@ -0,0 +1,66 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ConversationTurnResponseSender = void 0;
|
4
|
+
/**
|
5
|
+
* This class is responsible for sending a response produced by Bedrock back to AppSync
|
6
|
+
* in a form of mutation.
|
7
|
+
*/
|
8
|
+
class ConversationTurnResponseSender {
|
9
|
+
/**
|
10
|
+
* Creates conversation turn response sender.
|
11
|
+
*/
|
12
|
+
constructor(event, _fetch = fetch) {
|
13
|
+
this.event = event;
|
14
|
+
this._fetch = _fetch;
|
15
|
+
this.sendResponse = async (message) => {
|
16
|
+
const request = this.createMutationRequest(message);
|
17
|
+
const res = await this._fetch(request);
|
18
|
+
const responseHeaders = {};
|
19
|
+
res.headers.forEach((value, key) => (responseHeaders[key] = value));
|
20
|
+
if (!res.ok) {
|
21
|
+
const body = await res.text();
|
22
|
+
throw new Error(`Assistant response mutation request was not successful, response headers=${JSON.stringify(responseHeaders)}, body=${body}`);
|
23
|
+
}
|
24
|
+
const body = await res.json();
|
25
|
+
if (body && typeof body === 'object' && 'errors' in body) {
|
26
|
+
throw new Error(`Assistant response mutation request was not successful, response headers=${JSON.stringify(responseHeaders)}, body=${JSON.stringify(body)}`);
|
27
|
+
}
|
28
|
+
};
|
29
|
+
this.createMutationRequest = (content) => {
|
30
|
+
const query = `
|
31
|
+
mutation PublishModelResponse($input: ${this.event.responseMutation.inputTypeName}!) {
|
32
|
+
${this.event.responseMutation.name}(input: $input) {
|
33
|
+
${this.event.responseMutation.selectionSet}
|
34
|
+
}
|
35
|
+
}
|
36
|
+
`;
|
37
|
+
content = content.map((block) => {
|
38
|
+
if (block.toolUse) {
|
39
|
+
// The `input` field is typed as `AWS JSON` in the GraphQL API because it can represent
|
40
|
+
// arbitrary JSON values.
|
41
|
+
// We need to stringify it before sending it to AppSync to prevent type errors.
|
42
|
+
const input = JSON.stringify(block.toolUse.input);
|
43
|
+
return { toolUse: { ...block.toolUse, input } };
|
44
|
+
}
|
45
|
+
return block;
|
46
|
+
});
|
47
|
+
const variables = {
|
48
|
+
input: {
|
49
|
+
conversationId: this.event.conversationId,
|
50
|
+
content,
|
51
|
+
associatedUserMessageId: this.event.currentMessageId,
|
52
|
+
},
|
53
|
+
};
|
54
|
+
return new Request(this.event.graphqlApiEndpoint, {
|
55
|
+
method: 'POST',
|
56
|
+
headers: {
|
57
|
+
'Content-Type': 'application/graphql',
|
58
|
+
Authorization: this.event.request.headers.authorization,
|
59
|
+
},
|
60
|
+
body: JSON.stringify({ query, variables }),
|
61
|
+
});
|
62
|
+
};
|
63
|
+
}
|
64
|
+
}
|
65
|
+
exports.ConversationTurnResponseSender = ConversationTurnResponseSender;
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uX3R1cm5fcmVzcG9uc2Vfc2VuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnZlcnNhdGlvbi9ydW50aW1lL2NvbnZlcnNhdGlvbl90dXJuX3Jlc3BvbnNlX3NlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFXQTs7O0dBR0c7QUFDSCxNQUFhLDhCQUE4QjtJQUN6Qzs7T0FFRztJQUNILFlBQ21CLEtBQTRCLEVBQzVCLFNBQVMsS0FBSztRQURkLFVBQUssR0FBTCxLQUFLLENBQXVCO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFHakMsaUJBQVksR0FBRyxLQUFLLEVBQUUsT0FBdUIsRUFBRSxFQUFFO1lBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkMsTUFBTSxlQUFlLEdBQTJCLEVBQUUsQ0FBQztZQUNuRCxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1gsTUFBTSxJQUFJLEdBQUcsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sSUFBSSxLQUFLLENBQ2IsNEVBQTRFLElBQUksQ0FBQyxTQUFTLENBQ3hGLGVBQWUsQ0FDaEIsVUFBVSxJQUFJLEVBQUUsQ0FDbEIsQ0FBQzthQUNIO1lBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUIsSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUU7Z0JBQ3hELE1BQU0sSUFBSSxLQUFLLENBQ2IsNEVBQTRFLElBQUksQ0FBQyxTQUFTLENBQ3hGLGVBQWUsQ0FDaEIsVUFBVSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ2xDLENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQztRQUVNLDBCQUFxQixHQUFHLENBQUMsT0FBdUIsRUFBRSxFQUFFO1lBQzFELE1BQU0sS0FBSyxHQUFHO2dEQUM4QixJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGFBQWE7Y0FDM0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJO2tCQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFlBQVk7OztLQUdyRCxDQUFDO1lBQ0YsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO29CQUNqQix1RkFBdUY7b0JBQ3ZGLHlCQUF5QjtvQkFDekIsK0VBQStFO29CQUMvRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztpQkFDakQ7Z0JBQ0QsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sU0FBUyxHQUEwQjtnQkFDdkMsS0FBSyxFQUFFO29CQUNMLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWM7b0JBQ3pDLE9BQU87b0JBQ1AsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0I7aUJBQ3JEO2FBQ0YsQ0FBQztZQUNGLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRTtnQkFDaEQsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsT0FBTyxFQUFFO29CQUNQLGNBQWMsRUFBRSxxQkFBcUI7b0JBQ3JDLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYTtpQkFDeEQ7Z0JBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7YUFDM0MsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBMURDLENBQUM7Q0EyREw7QUFsRUQsd0VBa0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udmVyc2F0aW9uVHVybkV2ZW50IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IENvbnRlbnRCbG9jayB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1iZWRyb2NrLXJ1bnRpbWUnO1xuXG50eXBlIE11dGF0aW9uUmVzcG9uc2VJbnB1dCA9IHtcbiAgaW5wdXQ6IHtcbiAgICBjb252ZXJzYXRpb25JZDogc3RyaW5nO1xuICAgIGNvbnRlbnQ6IENvbnRlbnRCbG9ja1tdO1xuICAgIGFzc29jaWF0ZWRVc2VyTWVzc2FnZUlkOiBzdHJpbmc7XG4gIH07XG59O1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIHNlbmRpbmcgYSByZXNwb25zZSBwcm9kdWNlZCBieSBCZWRyb2NrIGJhY2sgdG8gQXBwU3luY1xuICogaW4gYSBmb3JtIG9mIG11dGF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQ29udmVyc2F0aW9uVHVyblJlc3BvbnNlU2VuZGVyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgY29udmVyc2F0aW9uIHR1cm4gcmVzcG9uc2Ugc2VuZGVyLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudDogQ29udmVyc2F0aW9uVHVybkV2ZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZldGNoID0gZmV0Y2hcbiAgKSB7fVxuXG4gIHNlbmRSZXNwb25zZSA9IGFzeW5jIChtZXNzYWdlOiBDb250ZW50QmxvY2tbXSkgPT4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLmNyZWF0ZU11dGF0aW9uUmVxdWVzdChtZXNzYWdlKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLl9mZXRjaChyZXF1ZXN0KTtcbiAgICBjb25zdCByZXNwb25zZUhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICByZXMuaGVhZGVycy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiAocmVzcG9uc2VIZWFkZXJzW2tleV0gPSB2YWx1ZSkpO1xuICAgIGlmICghcmVzLm9rKSB7XG4gICAgICBjb25zdCBib2R5ID0gYXdhaXQgcmVzLnRleHQoKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEFzc2lzdGFudCByZXNwb25zZSBtdXRhdGlvbiByZXF1ZXN0IHdhcyBub3Qgc3VjY2Vzc2Z1bCwgcmVzcG9uc2UgaGVhZGVycz0ke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHJlc3BvbnNlSGVhZGVyc1xuICAgICAgICApfSwgYm9keT0ke2JvZHl9YFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgYm9keSA9IGF3YWl0IHJlcy5qc29uKCk7XG4gICAgaWYgKGJvZHkgJiYgdHlwZW9mIGJvZHkgPT09ICdvYmplY3QnICYmICdlcnJvcnMnIGluIGJvZHkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEFzc2lzdGFudCByZXNwb25zZSBtdXRhdGlvbiByZXF1ZXN0IHdhcyBub3Qgc3VjY2Vzc2Z1bCwgcmVzcG9uc2UgaGVhZGVycz0ke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHJlc3BvbnNlSGVhZGVyc1xuICAgICAgICApfSwgYm9keT0ke0pTT04uc3RyaW5naWZ5KGJvZHkpfWBcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgY3JlYXRlTXV0YXRpb25SZXF1ZXN0ID0gKGNvbnRlbnQ6IENvbnRlbnRCbG9ja1tdKSA9PiB7XG4gICAgY29uc3QgcXVlcnkgPSBgXG4gICAgICAgIG11dGF0aW9uIFB1Ymxpc2hNb2RlbFJlc3BvbnNlKCRpbnB1dDogJHt0aGlzLmV2ZW50LnJlc3BvbnNlTXV0YXRpb24uaW5wdXRUeXBlTmFtZX0hKSB7XG4gICAgICAgICAgICAke3RoaXMuZXZlbnQucmVzcG9uc2VNdXRhdGlvbi5uYW1lfShpbnB1dDogJGlucHV0KSB7XG4gICAgICAgICAgICAgICAgJHt0aGlzLmV2ZW50LnJlc3BvbnNlTXV0YXRpb24uc2VsZWN0aW9uU2V0fVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgYDtcbiAgICBjb250ZW50ID0gY29udGVudC5tYXAoKGJsb2NrKSA9PiB7XG4gICAgICBpZiAoYmxvY2sudG9vbFVzZSkge1xuICAgICAgICAvLyBUaGUgYGlucHV0YCBmaWVsZCBpcyB0eXBlZCBhcyBgQVdTIEpTT05gIGluIHRoZSBHcmFwaFFMIEFQSSBiZWNhdXNlIGl0IGNhbiByZXByZXNlbnRcbiAgICAgICAgLy8gYXJiaXRyYXJ5IEpTT04gdmFsdWVzLlxuICAgICAgICAvLyBXZSBuZWVkIHRvIHN0cmluZ2lmeSBpdCBiZWZvcmUgc2VuZGluZyBpdCB0byBBcHBTeW5jIHRvIHByZXZlbnQgdHlwZSBlcnJvcnMuXG4gICAgICAgIGNvbnN0IGlucHV0ID0gSlNPTi5zdHJpbmdpZnkoYmxvY2sudG9vbFVzZS5pbnB1dCk7XG4gICAgICAgIHJldHVybiB7IHRvb2xVc2U6IHsgLi4uYmxvY2sudG9vbFVzZSwgaW5wdXQgfSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJsb2NrO1xuICAgIH0pO1xuICAgIGNvbnN0IHZhcmlhYmxlczogTXV0YXRpb25SZXNwb25zZUlucHV0ID0ge1xuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgY29udmVyc2F0aW9uSWQ6IHRoaXMuZXZlbnQuY29udmVyc2F0aW9uSWQsXG4gICAgICAgIGNvbnRlbnQsXG4gICAgICAgIGFzc29jaWF0ZWRVc2VyTWVzc2FnZUlkOiB0aGlzLmV2ZW50LmN1cnJlbnRNZXNzYWdlSWQsXG4gICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIG5ldyBSZXF1ZXN0KHRoaXMuZXZlbnQuZ3JhcGhxbEFwaUVuZHBvaW50LCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9ncmFwaHFsJyxcbiAgICAgICAgQXV0aG9yaXphdGlvbjogdGhpcy5ldmVudC5yZXF1ZXN0LmhlYWRlcnMuYXV0aG9yaXphdGlvbixcbiAgICAgIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHF1ZXJ5LCB2YXJpYWJsZXMgfSksXG4gICAgfSk7XG4gIH07XG59XG4iXX0=
|
@@ -0,0 +1,8 @@
|
|
1
|
+
/**
|
2
|
+
* A default conversation turn event handler.
|
3
|
+
* This is an entry point for Amplify provided implementation.
|
4
|
+
*/
|
5
|
+
export declare const handler: (event: import("./types.js").ConversationTurnEvent, props?: {
|
6
|
+
tools?: import("./types.js").ExecutableTool[] | undefined;
|
7
|
+
} | undefined) => Promise<void>;
|
8
|
+
//# sourceMappingURL=default_handler.d.ts.map
|
@@ -0,0 +1,10 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.handler = void 0;
|
4
|
+
const conversation_turn_executor_js_1 = require("./conversation_turn_executor.js");
|
5
|
+
/**
|
6
|
+
* A default conversation turn event handler.
|
7
|
+
* This is an entry point for Amplify provided implementation.
|
8
|
+
*/
|
9
|
+
exports.handler = conversation_turn_executor_js_1.handleConversationTurnEvent;
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdF9oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnZlcnNhdGlvbi9ydW50aW1lL2RlZmF1bHRfaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRkFBOEU7QUFFOUU7OztHQUdHO0FBQ1UsUUFBQSxPQUFPLEdBQUcsMkRBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBoYW5kbGVDb252ZXJzYXRpb25UdXJuRXZlbnQgfSBmcm9tICcuL2NvbnZlcnNhdGlvbl90dXJuX2V4ZWN1dG9yLmpzJztcblxuLyoqXG4gKiBBIGRlZmF1bHQgY29udmVyc2F0aW9uIHR1cm4gZXZlbnQgaGFuZGxlci5cbiAqIFRoaXMgaXMgYW4gZW50cnkgcG9pbnQgZm9yIEFtcGxpZnkgcHJvdmlkZWQgaW1wbGVtZW50YXRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBoYW5kbGVyID0gaGFuZGxlQ29udmVyc2F0aW9uVHVybkV2ZW50O1xuIl19
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { ConversationTurnEvent, ExecutableTool } from '../types';
|
2
|
+
import { GraphQlQueryFactory } from './graphql_query_factory';
|
3
|
+
/**
|
4
|
+
* Creates executable tools from definitions in conversation turn event.
|
5
|
+
*/
|
6
|
+
export declare class ConversationTurnEventToolsProvider {
|
7
|
+
private readonly event;
|
8
|
+
private readonly graphQlQueryFactory;
|
9
|
+
/**
|
10
|
+
* Creates conversation turn event tools provider.
|
11
|
+
*/
|
12
|
+
constructor(event: ConversationTurnEvent, graphQlQueryFactory?: GraphQlQueryFactory);
|
13
|
+
getEventTools: () => Array<ExecutableTool>;
|
14
|
+
}
|
15
|
+
//# sourceMappingURL=event_tools_provider.d.ts.map
|
@@ -0,0 +1,32 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ConversationTurnEventToolsProvider = void 0;
|
4
|
+
const graphql_tool_1 = require("./graphql_tool");
|
5
|
+
const graphql_query_factory_1 = require("./graphql_query_factory");
|
6
|
+
/**
|
7
|
+
* Creates executable tools from definitions in conversation turn event.
|
8
|
+
*/
|
9
|
+
class ConversationTurnEventToolsProvider {
|
10
|
+
/**
|
11
|
+
* Creates conversation turn event tools provider.
|
12
|
+
*/
|
13
|
+
constructor(event, graphQlQueryFactory = new graphql_query_factory_1.GraphQlQueryFactory()) {
|
14
|
+
this.event = event;
|
15
|
+
this.graphQlQueryFactory = graphQlQueryFactory;
|
16
|
+
this.getEventTools = () => {
|
17
|
+
var _a;
|
18
|
+
const { toolsConfiguration, graphqlApiEndpoint } = this.event;
|
19
|
+
if (!toolsConfiguration || !toolsConfiguration.dataTools) {
|
20
|
+
return [];
|
21
|
+
}
|
22
|
+
const tools = (_a = toolsConfiguration.dataTools) === null || _a === void 0 ? void 0 : _a.map((tool) => {
|
23
|
+
const { name, description, inputSchema } = tool;
|
24
|
+
const query = this.graphQlQueryFactory.createQuery(tool);
|
25
|
+
return new graphql_tool_1.GraphQlTool(name, description, inputSchema, graphqlApiEndpoint, query, this.event.request.headers.authorization);
|
26
|
+
});
|
27
|
+
return tools !== null && tools !== void 0 ? tools : [];
|
28
|
+
};
|
29
|
+
}
|
30
|
+
}
|
31
|
+
exports.ConversationTurnEventToolsProvider = ConversationTurnEventToolsProvider;
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRfdG9vbHNfcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udmVyc2F0aW9uL3J1bnRpbWUvZXZlbnQtdG9vbHMtcHJvdmlkZXIvZXZlbnRfdG9vbHNfcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaURBQTZDO0FBQzdDLG1FQUE4RDtBQUU5RDs7R0FFRztBQUNILE1BQWEsa0NBQWtDO0lBQzdDOztPQUVHO0lBQ0gsWUFDbUIsS0FBNEIsRUFDNUIsc0JBQTJDLElBQUksMkNBQW1CLEVBQUU7UUFEcEUsVUFBSyxHQUFMLEtBQUssQ0FBdUI7UUFDNUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFpRDtRQUd2RixrQkFBYSxHQUFHLEdBQTBCLEVBQUU7O1lBQzFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDOUQsSUFBSSxDQUFDLGtCQUFrQixJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFO2dCQUN4RCxPQUFPLEVBQUUsQ0FBQzthQUNYO1lBQ0QsTUFBTSxLQUFLLEdBQUcsTUFBQSxrQkFBa0IsQ0FBQyxTQUFTLDBDQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUN2RCxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUM7Z0JBQ2hELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pELE9BQU8sSUFBSSwwQkFBVyxDQUNwQixJQUFJLEVBQ0osV0FBVyxFQUNYLFdBQVcsRUFDWCxrQkFBa0IsRUFDbEIsS0FBSyxFQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQ3pDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sS0FBSyxhQUFMLEtBQUssY0FBTCxLQUFLLEdBQUksRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQztJQXBCQyxDQUFDO0NBcUJMO0FBNUJELGdGQTRCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnZlcnNhdGlvblR1cm5FdmVudCwgRXhlY3V0YWJsZVRvb2wgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBHcmFwaFFsVG9vbCB9IGZyb20gJy4vZ3JhcGhxbF90b29sJztcbmltcG9ydCB7IEdyYXBoUWxRdWVyeUZhY3RvcnkgfSBmcm9tICcuL2dyYXBocWxfcXVlcnlfZmFjdG9yeSc7XG5cbi8qKlxuICogQ3JlYXRlcyBleGVjdXRhYmxlIHRvb2xzIGZyb20gZGVmaW5pdGlvbnMgaW4gY29udmVyc2F0aW9uIHR1cm4gZXZlbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb252ZXJzYXRpb25UdXJuRXZlbnRUb29sc1Byb3ZpZGVyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgY29udmVyc2F0aW9uIHR1cm4gZXZlbnQgdG9vbHMgcHJvdmlkZXIuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50OiBDb252ZXJzYXRpb25UdXJuRXZlbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBncmFwaFFsUXVlcnlGYWN0b3J5OiBHcmFwaFFsUXVlcnlGYWN0b3J5ID0gbmV3IEdyYXBoUWxRdWVyeUZhY3RvcnkoKVxuICApIHt9XG5cbiAgZ2V0RXZlbnRUb29scyA9ICgpOiBBcnJheTxFeGVjdXRhYmxlVG9vbD4gPT4ge1xuICAgIGNvbnN0IHsgdG9vbHNDb25maWd1cmF0aW9uLCBncmFwaHFsQXBpRW5kcG9pbnQgfSA9IHRoaXMuZXZlbnQ7XG4gICAgaWYgKCF0b29sc0NvbmZpZ3VyYXRpb24gfHwgIXRvb2xzQ29uZmlndXJhdGlvbi5kYXRhVG9vbHMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgdG9vbHMgPSB0b29sc0NvbmZpZ3VyYXRpb24uZGF0YVRvb2xzPy5tYXAoKHRvb2wpID0+IHtcbiAgICAgIGNvbnN0IHsgbmFtZSwgZGVzY3JpcHRpb24sIGlucHV0U2NoZW1hIH0gPSB0b29sO1xuICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLmdyYXBoUWxRdWVyeUZhY3RvcnkuY3JlYXRlUXVlcnkodG9vbCk7XG4gICAgICByZXR1cm4gbmV3IEdyYXBoUWxUb29sKFxuICAgICAgICBuYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgaW5wdXRTY2hlbWEsXG4gICAgICAgIGdyYXBocWxBcGlFbmRwb2ludCxcbiAgICAgICAgcXVlcnksXG4gICAgICAgIHRoaXMuZXZlbnQucmVxdWVzdC5oZWFkZXJzLmF1dGhvcml6YXRpb25cbiAgICAgICk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRvb2xzID8/IFtdO1xuICB9O1xufVxuIl19
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { ConversationTurnEventToolConfiguration } from './types';
|
2
|
+
/**
|
3
|
+
* A factory that creates GraphQl queries from tool configuration.
|
4
|
+
*/
|
5
|
+
export declare class GraphQlQueryFactory {
|
6
|
+
createQuery: (toolDefinition: ConversationTurnEventToolConfiguration) => string;
|
7
|
+
private createQueryArgs;
|
8
|
+
}
|
9
|
+
//# sourceMappingURL=graphql_query_factory.d.ts.map
|
@@ -0,0 +1,44 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.GraphQlQueryFactory = void 0;
|
4
|
+
/**
|
5
|
+
* A factory that creates GraphQl queries from tool configuration.
|
6
|
+
*/
|
7
|
+
class GraphQlQueryFactory {
|
8
|
+
constructor() {
|
9
|
+
this.createQuery = (toolDefinition) => {
|
10
|
+
const { graphqlRequestInputDescriptor } = toolDefinition;
|
11
|
+
const { selectionSet, queryName } = graphqlRequestInputDescriptor;
|
12
|
+
const [topLevelQueryArgs, queryArgs] = this.createQueryArgs(toolDefinition);
|
13
|
+
const query = `
|
14
|
+
query ToolQuery${topLevelQueryArgs} {
|
15
|
+
${queryName}${queryArgs} {
|
16
|
+
${selectionSet}
|
17
|
+
}
|
18
|
+
}
|
19
|
+
`;
|
20
|
+
return query;
|
21
|
+
};
|
22
|
+
this.createQueryArgs = (toolDefinition) => {
|
23
|
+
const { inputSchema } = toolDefinition;
|
24
|
+
if (!(inputSchema === null || inputSchema === void 0 ? void 0 : inputSchema.json)) {
|
25
|
+
return ['', ''];
|
26
|
+
}
|
27
|
+
const { properties } = inputSchema.json;
|
28
|
+
if (!properties) {
|
29
|
+
return ['', ''];
|
30
|
+
}
|
31
|
+
const { propertyTypes } = toolDefinition.graphqlRequestInputDescriptor;
|
32
|
+
const propertyNames = Object.keys(properties);
|
33
|
+
const topLevelQueryArgs = propertyNames
|
34
|
+
.map((name) => `$${name}: ${propertyTypes[name]}`)
|
35
|
+
.join(', ');
|
36
|
+
const queryArgs = propertyNames
|
37
|
+
.map((name) => `${name}: $${name}`)
|
38
|
+
.join(', ');
|
39
|
+
return [`(${topLevelQueryArgs})`, `(${queryArgs})`];
|
40
|
+
};
|
41
|
+
}
|
42
|
+
}
|
43
|
+
exports.GraphQlQueryFactory = GraphQlQueryFactory;
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbF9xdWVyeV9mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnZlcnNhdGlvbi9ydW50aW1lL2V2ZW50LXRvb2xzLXByb3ZpZGVyL2dyYXBocWxfcXVlcnlfZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFPQTs7R0FFRztBQUNILE1BQWEsbUJBQW1CO0lBQWhDO1FBQ0UsZ0JBQVcsR0FBRyxDQUNaLGNBQXNELEVBQzlDLEVBQUU7WUFDVixNQUFNLEVBQUUsNkJBQTZCLEVBQUUsR0FBRyxjQUFjLENBQUM7WUFDekQsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyw2QkFBNkIsQ0FBQztZQUNsRSxNQUFNLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUU1RSxNQUFNLEtBQUssR0FBRztxQkFDRyxpQkFBaUI7UUFDOUIsU0FBUyxHQUFHLFNBQVM7VUFDbkIsWUFBWTs7O0dBR25CLENBQUM7WUFFQSxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQztRQUVNLG9CQUFlLEdBQUcsQ0FDeEIsY0FBc0QsRUFDcEMsRUFBRTtZQUNwQixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsY0FBYyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxDQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxJQUFJLENBQUEsRUFBRTtnQkFDdEIsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUNqQjtZQUVELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxXQUFXLENBQUMsSUFBdUIsQ0FBQztZQUMzRCxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNmLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDakI7WUFDRCxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsY0FBYyxDQUFDLDZCQUE2QixDQUFDO1lBQ3ZFLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFOUMsTUFBTSxpQkFBaUIsR0FBRyxhQUFhO2lCQUNwQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxLQUFLLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2lCQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFZCxNQUFNLFNBQVMsR0FBRyxhQUFhO2lCQUM1QixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxNQUFNLElBQUksRUFBRSxDQUFDO2lCQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFZCxPQUFPLENBQUMsSUFBSSxpQkFBaUIsR0FBRyxFQUFFLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUM7SUFDSixDQUFDO0NBQUE7QUE1Q0Qsa0RBNENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udmVyc2F0aW9uVHVybkV2ZW50VG9vbENvbmZpZ3VyYXRpb24gfSBmcm9tICcuL3R5cGVzJztcblxudHlwZSBJbnB1dFNjaGVtYUpzb24gPSB7XG4gIHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICByZXF1aXJlZDogc3RyaW5nW107XG59O1xuXG4vKipcbiAqIEEgZmFjdG9yeSB0aGF0IGNyZWF0ZXMgR3JhcGhRbCBxdWVyaWVzIGZyb20gdG9vbCBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgR3JhcGhRbFF1ZXJ5RmFjdG9yeSB7XG4gIGNyZWF0ZVF1ZXJ5ID0gKFxuICAgIHRvb2xEZWZpbml0aW9uOiBDb252ZXJzYXRpb25UdXJuRXZlbnRUb29sQ29uZmlndXJhdGlvblxuICApOiBzdHJpbmcgPT4ge1xuICAgIGNvbnN0IHsgZ3JhcGhxbFJlcXVlc3RJbnB1dERlc2NyaXB0b3IgfSA9IHRvb2xEZWZpbml0aW9uO1xuICAgIGNvbnN0IHsgc2VsZWN0aW9uU2V0LCBxdWVyeU5hbWUgfSA9IGdyYXBocWxSZXF1ZXN0SW5wdXREZXNjcmlwdG9yO1xuICAgIGNvbnN0IFt0b3BMZXZlbFF1ZXJ5QXJncywgcXVlcnlBcmdzXSA9IHRoaXMuY3JlYXRlUXVlcnlBcmdzKHRvb2xEZWZpbml0aW9uKTtcblxuICAgIGNvbnN0IHF1ZXJ5ID0gYFxuICAgIHF1ZXJ5IFRvb2xRdWVyeSR7dG9wTGV2ZWxRdWVyeUFyZ3N9IHtcbiAgICAgICR7cXVlcnlOYW1lfSR7cXVlcnlBcmdzfSB7XG4gICAgICAgICR7c2VsZWN0aW9uU2V0fVxuICAgICAgfVxuICAgIH1cbiAgYDtcblxuICAgIHJldHVybiBxdWVyeTtcbiAgfTtcblxuICBwcml2YXRlIGNyZWF0ZVF1ZXJ5QXJncyA9IChcbiAgICB0b29sRGVmaW5pdGlvbjogQ29udmVyc2F0aW9uVHVybkV2ZW50VG9vbENvbmZpZ3VyYXRpb25cbiAgKTogW3N0cmluZywgc3RyaW5nXSA9PiB7XG4gICAgY29uc3QgeyBpbnB1dFNjaGVtYSB9ID0gdG9vbERlZmluaXRpb247XG4gICAgaWYgKCFpbnB1dFNjaGVtYT8uanNvbikge1xuICAgICAgcmV0dXJuIFsnJywgJyddO1xuICAgIH1cblxuICAgIGNvbnN0IHsgcHJvcGVydGllcyB9ID0gaW5wdXRTY2hlbWEuanNvbiBhcyBJbnB1dFNjaGVtYUpzb247XG4gICAgaWYgKCFwcm9wZXJ0aWVzKSB7XG4gICAgICByZXR1cm4gWycnLCAnJ107XG4gICAgfVxuICAgIGNvbnN0IHsgcHJvcGVydHlUeXBlcyB9ID0gdG9vbERlZmluaXRpb24uZ3JhcGhxbFJlcXVlc3RJbnB1dERlc2NyaXB0b3I7XG4gICAgY29uc3QgcHJvcGVydHlOYW1lcyA9IE9iamVjdC5rZXlzKHByb3BlcnRpZXMpO1xuXG4gICAgY29uc3QgdG9wTGV2ZWxRdWVyeUFyZ3MgPSBwcm9wZXJ0eU5hbWVzXG4gICAgICAubWFwKChuYW1lKSA9PiBgJCR7bmFtZX06ICR7cHJvcGVydHlUeXBlc1tuYW1lXX1gKVxuICAgICAgLmpvaW4oJywgJyk7XG5cbiAgICBjb25zdCBxdWVyeUFyZ3MgPSBwcm9wZXJ0eU5hbWVzXG4gICAgICAubWFwKChuYW1lKSA9PiBgJHtuYW1lfTogJCR7bmFtZX1gKVxuICAgICAgLmpvaW4oJywgJyk7XG5cbiAgICByZXR1cm4gW2AoJHt0b3BMZXZlbFF1ZXJ5QXJnc30pYCwgYCgke3F1ZXJ5QXJnc30pYF07XG4gIH07XG59XG4iXX0=
|
@@ -0,0 +1,22 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import { ExecutableTool } from '../types';
|
3
|
+
import type { ToolInputSchema, ToolResultContentBlock } from '@aws-sdk/client-bedrock-runtime';
|
4
|
+
import { DocumentType } from '@smithy/types';
|
5
|
+
/**
|
6
|
+
* A tool that use GraphQl queries.
|
7
|
+
*/
|
8
|
+
export declare class GraphQlTool implements ExecutableTool {
|
9
|
+
name: string;
|
10
|
+
description: string;
|
11
|
+
inputSchema: ToolInputSchema;
|
12
|
+
private readonly graphQlEndpoint;
|
13
|
+
private readonly query;
|
14
|
+
private readonly accessToken;
|
15
|
+
private readonly _fetch;
|
16
|
+
/**
|
17
|
+
* Creates GraphQl Tool
|
18
|
+
*/
|
19
|
+
constructor(name: string, description: string, inputSchema: ToolInputSchema, graphQlEndpoint: string, query: string, accessToken: string, _fetch?: typeof fetch);
|
20
|
+
execute: (input: DocumentType | undefined) => Promise<ToolResultContentBlock>;
|
21
|
+
}
|
22
|
+
//# sourceMappingURL=graphql_tool.d.ts.map
|
@@ -0,0 +1,48 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.GraphQlTool = void 0;
|
4
|
+
/**
|
5
|
+
* A tool that use GraphQl queries.
|
6
|
+
*/
|
7
|
+
class GraphQlTool {
|
8
|
+
/**
|
9
|
+
* Creates GraphQl Tool
|
10
|
+
*/
|
11
|
+
constructor(name, description, inputSchema, graphQlEndpoint, query, accessToken, _fetch = fetch) {
|
12
|
+
this.name = name;
|
13
|
+
this.description = description;
|
14
|
+
this.inputSchema = inputSchema;
|
15
|
+
this.graphQlEndpoint = graphQlEndpoint;
|
16
|
+
this.query = query;
|
17
|
+
this.accessToken = accessToken;
|
18
|
+
this._fetch = _fetch;
|
19
|
+
this.execute = async (input) => {
|
20
|
+
if (!input) {
|
21
|
+
throw Error(`GraphQl tool '${this.name}' requires input to execute.`);
|
22
|
+
}
|
23
|
+
const options = {
|
24
|
+
method: 'POST',
|
25
|
+
headers: {
|
26
|
+
'Content-Type': 'application/graphql',
|
27
|
+
Authorization: this.accessToken,
|
28
|
+
},
|
29
|
+
body: JSON.stringify({ query: this.query, variables: input }),
|
30
|
+
};
|
31
|
+
const req = new Request(this.graphQlEndpoint, options);
|
32
|
+
const res = await this._fetch(req);
|
33
|
+
const responseHeaders = {};
|
34
|
+
res.headers.forEach((value, key) => (responseHeaders[key] = value));
|
35
|
+
if (!res.ok) {
|
36
|
+
const body = await res.text();
|
37
|
+
throw new Error(`GraphQl tool '${this.name}' failed, response headers=${JSON.stringify(responseHeaders)}, body=${body}`);
|
38
|
+
}
|
39
|
+
const body = await res.json();
|
40
|
+
if (body && typeof body === 'object' && 'errors' in body) {
|
41
|
+
throw new Error(`GraphQl tool '${this.name}' failed, response headers=${JSON.stringify(responseHeaders)}, body=${JSON.stringify(body)}`);
|
42
|
+
}
|
43
|
+
return { json: body };
|
44
|
+
};
|
45
|
+
}
|
46
|
+
}
|
47
|
+
exports.GraphQlTool = GraphQlTool;
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbF90b29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnZlcnNhdGlvbi9ydW50aW1lL2V2ZW50LXRvb2xzLXByb3ZpZGVyL2dyYXBocWxfdG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFPQTs7R0FFRztBQUNILE1BQWEsV0FBVztJQUN0Qjs7T0FFRztJQUNILFlBQ1MsSUFBWSxFQUNaLFdBQW1CLEVBQ25CLFdBQTRCLEVBQ2xCLGVBQXVCLEVBQ3ZCLEtBQWEsRUFDYixXQUFtQixFQUNuQixTQUFTLEtBQUs7UUFOeEIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUNsQixvQkFBZSxHQUFmLGVBQWUsQ0FBUTtRQUN2QixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUdqQyxZQUFPLEdBQUcsS0FBSyxFQUNiLEtBQStCLEVBQ0UsRUFBRTtZQUNuQyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNWLE1BQU0sS0FBSyxDQUFDLGlCQUFpQixJQUFJLENBQUMsSUFBSSw4QkFBOEIsQ0FBQyxDQUFDO2FBQ3ZFO1lBRUQsTUFBTSxPQUFPLEdBQWdCO2dCQUMzQixNQUFNLEVBQUUsTUFBTTtnQkFDZCxPQUFPLEVBQUU7b0JBQ1AsY0FBYyxFQUFFLHFCQUFxQjtvQkFDckMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXO2lCQUNoQztnQkFDRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQzthQUM5RCxDQUFDO1lBRUYsTUFBTSxHQUFHLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN2RCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFbkMsTUFBTSxlQUFlLEdBQTJCLEVBQUUsQ0FBQztZQUNuRCxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1gsTUFBTSxJQUFJLEdBQUcsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sSUFBSSxLQUFLLENBQ2IsaUJBQWlCLElBQUksQ0FBQyxJQUFJLDhCQUE4QixJQUFJLENBQUMsU0FBUyxDQUNwRSxlQUFlLENBQ2hCLFVBQVUsSUFBSSxFQUFFLENBQ2xCLENBQUM7YUFDSDtZQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzlCLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFO2dCQUN4RCxNQUFNLElBQUksS0FBSyxDQUNiLGlCQUFpQixJQUFJLENBQUMsSUFBSSw4QkFBOEIsSUFBSSxDQUFDLFNBQVMsQ0FDcEUsZUFBZSxDQUNoQixVQUFVLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbEMsQ0FBQzthQUNIO1lBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFvQixFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDO0lBekNDLENBQUM7Q0EwQ0w7QUF0REQsa0NBc0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhlY3V0YWJsZVRvb2wgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFRvb2xJbnB1dFNjaGVtYSxcbiAgVG9vbFJlc3VsdENvbnRlbnRCbG9jayxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWJlZHJvY2stcnVudGltZSc7XG5pbXBvcnQgeyBEb2N1bWVudFR5cGUgfSBmcm9tICdAc21pdGh5L3R5cGVzJztcblxuLyoqXG4gKiBBIHRvb2wgdGhhdCB1c2UgR3JhcGhRbCBxdWVyaWVzLlxuICovXG5leHBvcnQgY2xhc3MgR3JhcGhRbFRvb2wgaW1wbGVtZW50cyBFeGVjdXRhYmxlVG9vbCB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIEdyYXBoUWwgVG9vbFxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgICBwdWJsaWMgaW5wdXRTY2hlbWE6IFRvb2xJbnB1dFNjaGVtYSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdyYXBoUWxFbmRwb2ludDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcXVlcnk6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjY2Vzc1Rva2VuOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZmV0Y2ggPSBmZXRjaFxuICApIHt9XG5cbiAgZXhlY3V0ZSA9IGFzeW5jIChcbiAgICBpbnB1dDogRG9jdW1lbnRUeXBlIHwgdW5kZWZpbmVkXG4gICk6IFByb21pc2U8VG9vbFJlc3VsdENvbnRlbnRCbG9jaz4gPT4ge1xuICAgIGlmICghaW5wdXQpIHtcbiAgICAgIHRocm93IEVycm9yKGBHcmFwaFFsIHRvb2wgJyR7dGhpcy5uYW1lfScgcmVxdWlyZXMgaW5wdXQgdG8gZXhlY3V0ZS5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb25zOiBSZXF1ZXN0SW5pdCA9IHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2dyYXBocWwnLFxuICAgICAgICBBdXRob3JpemF0aW9uOiB0aGlzLmFjY2Vzc1Rva2VuLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgcXVlcnk6IHRoaXMucXVlcnksIHZhcmlhYmxlczogaW5wdXQgfSksXG4gICAgfTtcblxuICAgIGNvbnN0IHJlcSA9IG5ldyBSZXF1ZXN0KHRoaXMuZ3JhcGhRbEVuZHBvaW50LCBvcHRpb25zKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLl9mZXRjaChyZXEpO1xuXG4gICAgY29uc3QgcmVzcG9uc2VIZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgcmVzLmhlYWRlcnMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4gKHJlc3BvbnNlSGVhZGVyc1trZXldID0gdmFsdWUpKTtcbiAgICBpZiAoIXJlcy5vaykge1xuICAgICAgY29uc3QgYm9keSA9IGF3YWl0IHJlcy50ZXh0KCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBHcmFwaFFsIHRvb2wgJyR7dGhpcy5uYW1lfScgZmFpbGVkLCByZXNwb25zZSBoZWFkZXJzPSR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgcmVzcG9uc2VIZWFkZXJzXG4gICAgICAgICl9LCBib2R5PSR7Ym9keX1gXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBib2R5ID0gYXdhaXQgcmVzLmpzb24oKTtcbiAgICBpZiAoYm9keSAmJiB0eXBlb2YgYm9keSA9PT0gJ29iamVjdCcgJiYgJ2Vycm9ycycgaW4gYm9keSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgR3JhcGhRbCB0b29sICcke3RoaXMubmFtZX0nIGZhaWxlZCwgcmVzcG9uc2UgaGVhZGVycz0ke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHJlc3BvbnNlSGVhZGVyc1xuICAgICAgICApfSwgYm9keT0ke0pTT04uc3RyaW5naWZ5KGJvZHkpfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsganNvbjogYm9keSBhcyBEb2N1bWVudFR5cGUgfTtcbiAgfTtcbn1cbiJdfQ==
|