@cdklabs/cdk-appmod-catalog-blueprints 1.16.0 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +992 -168
- package/lib/document-processing/adapter/queued-s3-adapter.js +1 -1
- package/lib/document-processing/agentic-document-processing.js +1 -1
- package/lib/document-processing/base-document-processing.js +1 -1
- package/lib/document-processing/bedrock-document-processing.d.ts +1 -0
- package/lib/document-processing/bedrock-document-processing.js +10 -6
- package/lib/document-processing/default-document-processing-config.js +1 -1
- package/lib/document-processing/index.d.ts +2 -0
- package/lib/document-processing/index.js +3 -1
- package/lib/document-processing/localstack-agentic-document-processing.d.ts +20 -0
- package/lib/document-processing/localstack-agentic-document-processing.js +66 -0
- package/lib/document-processing/localstack-bedrock-document-processing.d.ts +16 -0
- package/lib/document-processing/localstack-bedrock-document-processing.js +38 -0
- package/lib/document-processing/resources/cleanup/handler.py +16 -1
- package/lib/document-processing/resources/default-localstack-invoke/index.py +184 -0
- package/lib/document-processing/resources/default-localstack-invoke/provider_runtime.py +251 -0
- package/lib/document-processing/resources/default-localstack-invoke/requirements.txt +5 -0
- package/lib/document-processing/resources/default-sqs-consumer/index.py +17 -2
- package/lib/document-processing/resources/pdf-chunking/handler.py +16 -1
- package/lib/document-processing/tests/localstack-agentic-document-processing.test.d.ts +1 -0
- package/lib/document-processing/tests/localstack-agentic-document-processing.test.js +78 -0
- package/lib/document-processing/tests/localstack-document-processing.test.d.ts +1 -0
- package/lib/document-processing/tests/localstack-document-processing.test.js +116 -0
- package/lib/framework/agents/base-agent.js +1 -1
- package/lib/framework/agents/batch-agent.d.ts +1 -0
- package/lib/framework/agents/batch-agent.js +7 -4
- package/lib/framework/agents/default-agent-config.js +1 -1
- package/lib/framework/agents/index.d.ts +1 -0
- package/lib/framework/agents/index.js +2 -1
- package/lib/framework/agents/interactive-agent.js +88 -11
- package/lib/framework/agents/knowledge-base/base-knowledge-base.js +1 -1
- package/lib/framework/agents/knowledge-base/bedrock-knowledge-base.js +1 -1
- package/lib/framework/agents/localstack-batch-agent.d.ts +15 -0
- package/lib/framework/agents/localstack-batch-agent.js +33 -0
- package/lib/framework/agents/resources/default-ollama-agent/batch.py +396 -0
- package/lib/framework/agents/resources/default-ollama-agent/models.py +7 -0
- package/lib/framework/agents/resources/default-ollama-agent/requirements.txt +9 -0
- package/lib/framework/agents/resources/default-ollama-agent/runtime_support.py +237 -0
- package/lib/framework/agents/resources/default-ollama-agent/utils.py +77 -0
- package/lib/framework/bedrock/bedrock.d.ts +9 -0
- package/lib/framework/bedrock/bedrock.js +20 -10
- package/lib/framework/custom-resource/default-runtimes.js +1 -1
- package/lib/framework/foundation/access-log.js +1 -1
- package/lib/framework/foundation/eventbridge-broker.js +1 -1
- package/lib/framework/foundation/network.d.ts +1 -1
- package/lib/framework/foundation/network.js +8 -3
- package/lib/framework/index.d.ts +1 -0
- package/lib/framework/index.js +2 -1
- package/lib/framework/localstack/index.d.ts +1 -0
- package/lib/framework/localstack/index.js +18 -0
- package/lib/framework/localstack/localstack-config.d.ts +79 -0
- package/lib/framework/localstack/localstack-config.js +49 -0
- package/lib/framework/tests/localstack-batch-agent.test.d.ts +1 -0
- package/lib/framework/tests/localstack-batch-agent.test.js +67 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/utilities/data-loader.js +1 -1
- package/lib/utilities/lambda-iam-utils.js +1 -1
- package/lib/utilities/observability/cloudfront-distribution-observability-property-injector.js +1 -1
- package/lib/utilities/observability/cloudwatch-transaction-search.js +1 -1
- package/lib/utilities/observability/default-observability-config.js +1 -1
- package/lib/utilities/observability/lambda-observability-property-injector.js +1 -1
- package/lib/utilities/observability/log-group-data-protection-utils.js +1 -1
- package/lib/utilities/observability/powertools-config.js +1 -1
- package/lib/utilities/observability/state-machine-observability-property-injector.js +1 -1
- package/lib/webapp/frontend-construct.js +1 -1
- package/package.json +1 -1
|
@@ -103,5 +103,5 @@ class BaseKnowledgeBase extends constructs_1.Construct {
|
|
|
103
103
|
}
|
|
104
104
|
exports.BaseKnowledgeBase = BaseKnowledgeBase;
|
|
105
105
|
_a = JSII_RTTI_SYMBOL_1;
|
|
106
|
-
BaseKnowledgeBase[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.BaseKnowledgeBase", version: "1.
|
|
106
|
+
BaseKnowledgeBase[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.BaseKnowledgeBase", version: "1.17.0" };
|
|
107
107
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1rbm93bGVkZ2UtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3VzZS1jYXNlcy9mcmFtZXdvcmsvYWdlbnRzL2tub3dsZWRnZS1iYXNlL2Jhc2Uta25vd2xlZGdlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFNQSwyQ0FBdUM7QUFTdkM7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFzQixpQkFBa0IsU0FBUSxzQkFBUztJQWlDdkQ7Ozs7Ozs7O09BUUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTZCO1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFLGVBQWUsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNqRSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDTyxhQUFhLENBQUMsS0FBNkI7UUFDbkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM1QyxNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7SUFDSCxDQUFDO0lBWUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQy9CLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUztTQUNwQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksa0JBQWtCO1FBQ3ZCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLG1CQUFtQjtRQUN4QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOztBQTlISCw4Q0ErSEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgTGF5ZXJWZXJzaW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBBc3NldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1hc3NldHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJS25vd2xlZGdlQmFzZSB9IGZyb20gJy4vaS1rbm93bGVkZ2UtYmFzZSc7XG5pbXBvcnQge1xuICBBY2xDb25maWd1cmF0aW9uLFxuICBCYXNlS25vd2xlZGdlQmFzZVByb3BzLFxuICBLbm93bGVkZ2VCYXNlUnVudGltZUNvbmZpZyxcbiAgUmV0cmlldmFsQ29uZmlndXJhdGlvbixcbn0gZnJvbSAnLi9rbm93bGVkZ2UtYmFzZS1wcm9wcyc7XG5cbi8qKlxuICogQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3Iga25vd2xlZGdlIGJhc2UgaW1wbGVtZW50YXRpb25zLlxuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgY29tbW9uIGZ1bmN0aW9uYWxpdHkgZm9yIGFsbCBrbm93bGVkZ2UgYmFzZSBpbXBsZW1lbnRhdGlvbnMsXG4gKiBpbmNsdWRpbmcgY29uZmlndXJhdGlvbiBtYW5hZ2VtZW50LCB2YWxpZGF0aW9uLCBhbmQgZGVmYXVsdCBiZWhhdmlvcnMuIENvbmNyZXRlXG4gKiBpbXBsZW1lbnRhdGlvbnMgKGxpa2UgQmVkcm9ja0tub3dsZWRnZUJhc2UpIGV4dGVuZCB0aGlzIGNsYXNzIGFuZCBpbXBsZW1lbnRcbiAqIHRoZSBhYnN0cmFjdCBtZXRob2RzLlxuICpcbiAqIFRoZSBiYXNlIGNsYXNzIGhhbmRsZXM6XG4gKiAtIFByb3BzIHZhbGlkYXRpb24gKG5hbWUgYW5kIGRlc2NyaXB0aW9uIGFyZSByZXF1aXJlZClcbiAqIC0gRGVmYXVsdCByZXRyaWV2YWwgY29uZmlndXJhdGlvbiAobnVtYmVyT2ZSZXN1bHRzIGRlZmF1bHRzIHRvIDUpXG4gKiAtIEFDTCBjb25maWd1cmF0aW9uIHN0b3JhZ2VcbiAqIC0gQmFzZSBydW50aW1lIGNvbmZpZ3VyYXRpb24gZXhwb3J0XG4gKlxuICogU3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudDpcbiAqIC0gYGdlbmVyYXRlSWFtUGVybWlzc2lvbnMoKWA6IFJldHVybiBJQU0gcGVybWlzc2lvbnMgc3BlY2lmaWMgdG8gdGhlIEtCIHR5cGVcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VLbm93bGVkZ2VCYXNlIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSUtub3dsZWRnZUJhc2Uge1xuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhpcyBrbm93bGVkZ2UgYmFzZS5cbiAgICpcbiAgICogVGhpcyBuYW1lIGlzIHVzZWQgZm9yIGxvZ2dpbmcsIGRpc3BsYXkgcHVycG9zZXMsIGFuZCB0byBoZWxwIHRoZSBhZ2VudFxuICAgKiBpZGVudGlmeSB3aGljaCBrbm93bGVkZ2UgYmFzZSB0byBxdWVyeS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhpcyBrbm93bGVkZ2UgYmFzZSBjb250YWlucy5cbiAgICpcbiAgICogVGhpcyBkZXNjcmlwdGlvbiBpcyBpbmNsdWRlZCBpbiB0aGUgYWdlbnQncyBzeXN0ZW0gcHJvbXB0IHRvIGhlbHBcbiAgICogdGhlIGFnZW50IGRlY2lkZSB3aGVuIHRvIHF1ZXJ5IHRoaXMga25vd2xlZGdlIGJhc2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcblxuICAvKipcbiAgICogUmV0cmlldmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMga25vd2xlZGdlIGJhc2UuXG4gICAqXG4gICAqIENvbnRhaW5zIHNldHRpbmdzIGxpa2UgbnVtYmVyT2ZSZXN1bHRzIGFuZCBvcHRpb25hbCBtZXRhZGF0YSBmaWx0ZXJzLlxuICAgKiBEZWZhdWx0cyB0byB7IG51bWJlck9mUmVzdWx0czogNSB9IGlmIG5vdCBwcm92aWRlZC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSByZXRyaWV2YWxDb25maWc6IFJldHJpZXZhbENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIEFDTCBjb25maWd1cmF0aW9uIGZvciBpZGVudGl0eS1hd2FyZSByZXRyaWV2YWwuXG4gICAqXG4gICAqIFdoZW4gZW5hYmxlZCwgcmV0cmlldmFsIHF1ZXJpZXMgd2lsbCBiZSBmaWx0ZXJlZCBiYXNlZCBvbiB1c2VyXG4gICAqIGlkZW50aXR5IGNvbnRleHQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWNsQ29uZmlnPzogQWNsQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBCYXNlS25vd2xlZGdlQmFzZSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgLSBUaGUgc2NvcGVkIGNvbnN0cnVjdCBJRFxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBrbm93bGVkZ2UgYmFzZVxuICAgKiBAdGhyb3dzIEVycm9yIGlmIG5hbWUgaXMgZW1wdHkgb3Igbm90IHByb3ZpZGVkXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgZGVzY3JpcHRpb24gaXMgZW1wdHkgb3Igbm90IHByb3ZpZGVkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQmFzZUtub3dsZWRnZUJhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnZhbGlkYXRlUHJvcHMocHJvcHMpO1xuXG4gICAgdGhpcy5uYW1lID0gcHJvcHMubmFtZTtcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gcHJvcHMuZGVzY3JpcHRpb247XG4gICAgdGhpcy5yZXRyaWV2YWxDb25maWcgPSBwcm9wcy5yZXRyaWV2YWwgPz8geyBudW1iZXJPZlJlc3VsdHM6IDUgfTtcbiAgICB0aGlzLmFjbENvbmZpZyA9IHByb3BzLmFjbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHByb3ZpZGVkIHByb3BzIGF0IGNvbnN0cnVjdGlvbiB0aW1lLlxuICAgKlxuICAgKiBFbnN1cmVzIHRoYXQgcmVxdWlyZWQgZmllbGRzIChuYW1lIGFuZCBkZXNjcmlwdGlvbikgYXJlIHByb3ZpZGVkXG4gICAqIGFuZCBub3QgZW1wdHkuIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIGFkZCBhZGRpdGlvbmFsXG4gICAqIHZhbGlkYXRpb24sIGJ1dCBzaG91bGQgY2FsbCBzdXBlci52YWxpZGF0ZVByb3BzKCkgZmlyc3QuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIFRoZSBwcm9wcyB0byB2YWxpZGF0ZVxuICAgKiBAdGhyb3dzIEVycm9yIGlmIG5hbWUgaXMgZW1wdHkgb3Igbm90IHByb3ZpZGVkXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgZGVzY3JpcHRpb24gaXMgZW1wdHkgb3Igbm90IHByb3ZpZGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgdmFsaWRhdGVQcm9wcyhwcm9wczogQmFzZUtub3dsZWRnZUJhc2VQcm9wcyk6IHZvaWQge1xuICAgIGlmICghcHJvcHMubmFtZSB8fCBwcm9wcy5uYW1lLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbmFtZSBpcyByZXF1aXJlZCBhbmQgY2Fubm90IGJlIGVtcHR5Jyk7XG4gICAgfVxuICAgIGlmICghcHJvcHMuZGVzY3JpcHRpb24gfHwgcHJvcHMuZGVzY3JpcHRpb24udHJpbSgpID09PSAnJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdkZXNjcmlwdGlvbiBpcyByZXF1aXJlZCBhbmQgY2Fubm90IGJlIGVtcHR5Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIElBTSBwb2xpY3kgc3RhdGVtZW50cyByZXF1aXJlZCBmb3IgYWNjZXNzaW5nIHRoaXMga25vd2xlZGdlIGJhc2UuXG4gICAqXG4gICAqIFRoaXMgYWJzdHJhY3QgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3NlcyB0byByZXR1cm4gdGhlXG4gICAqIHNwZWNpZmljIElBTSBwZXJtaXNzaW9ucyBuZWVkZWQgZm9yIHRoZWlyIGtub3dsZWRnZSBiYXNlIHR5cGUuXG4gICAqXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIElBTSBQb2xpY3lTdGF0ZW1lbnQgb2JqZWN0cyBncmFudGluZyBuZWNlc3NhcnkgcGVybWlzc2lvbnNcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZW5lcmF0ZUlhbVBlcm1pc3Npb25zKCk6IFBvbGljeVN0YXRlbWVudFtdO1xuXG4gIC8qKlxuICAgKiBFeHBvcnQgY29uZmlndXJhdGlvbiBmb3IgcnVudGltZSB1c2UgYnkgdGhlIHJldHJpZXZhbCB0b29sLlxuICAgKlxuICAgKiBSZXR1cm5zIGEgY29uZmlndXJhdGlvbiBvYmplY3QgY29udGFpbmluZyB0aGUgYmFzZSBrbm93bGVkZ2UgYmFzZVxuICAgKiBzZXR0aW5ncy4gU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gYWRkIGltcGxlbWVudGF0aW9uLVxuICAgKiBzcGVjaWZpYyBjb25maWd1cmF0aW9uLCBjYWxsaW5nIHN1cGVyLmV4cG9ydENvbmZpZ3VyYXRpb24oKSB0byBpbmNsdWRlXG4gICAqIHRoZSBiYXNlIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIFJ1bnRpbWUgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoZSByZXRyaWV2YWwgdG9vbFxuICAgKi9cbiAgcHVibGljIGV4cG9ydENvbmZpZ3VyYXRpb24oKTogS25vd2xlZGdlQmFzZVJ1bnRpbWVDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgIHJldHJpZXZhbDogdGhpcy5yZXRyaWV2YWxDb25maWcsXG4gICAgICBhY2w6IHRoaXMuYWNsQ29uZmlnLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZSB0aGUgcmV0cmlldmFsIHRvb2wgYXNzZXQgZm9yIHRoaXMga25vd2xlZGdlIGJhc2UgdHlwZS5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgcmV0dXJucyB1bmRlZmluZWQgdG8gdXNlIHRoZSBmcmFtZXdvcmsncyBkZWZhdWx0IHJldHJpZXZhbFxuICAgKiB0b29sLiBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBwcm92aWRlIGEgY3VzdG9tIHJldHJpZXZhbFxuICAgKiB0b29sIGltcGxlbWVudGF0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyB1bmRlZmluZWQgdG8gdXNlIHRoZSBkZWZhdWx0IHJldHJpZXZhbCB0b29sXG4gICAqL1xuICBwdWJsaWMgcmV0cmlldmFsVG9vbEFzc2V0KCk6IEFzc2V0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgTGFtYmRhIGxheWVycyByZXF1aXJlZCBieSB0aGUgcmV0cmlldmFsIHRvb2wuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHJldHVybnMgdW5kZWZpbmVkIGluZGljYXRpbmcgbm8gYWRkaXRpb25hbCBsYXllcnMgYXJlIG5lZWRlZC5cbiAgICogU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcHJvdmlkZSBMYW1iZGEgbGF5ZXJzIGNvbnRhaW5pbmdcbiAgICogZGVwZW5kZW5jaWVzIHJlcXVpcmVkIGJ5IHRoZWlyIHJldHJpZXZhbCB0b29sLlxuICAgKlxuICAgKiBAcmV0dXJucyB1bmRlZmluZWQgaW5kaWNhdGluZyBubyBhZGRpdGlvbmFsIGxheWVycyBuZWVkZWRcbiAgICovXG4gIHB1YmxpYyByZXRyaWV2YWxUb29sTGF5ZXJzKCk6IExheWVyVmVyc2lvbltdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
|
|
@@ -188,5 +188,5 @@ class BedrockKnowledgeBase extends base_knowledge_base_1.BaseKnowledgeBase {
|
|
|
188
188
|
}
|
|
189
189
|
exports.BedrockKnowledgeBase = BedrockKnowledgeBase;
|
|
190
190
|
_a = JSII_RTTI_SYMBOL_1;
|
|
191
|
-
BedrockKnowledgeBase[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.BedrockKnowledgeBase", version: "1.
|
|
191
|
+
BedrockKnowledgeBase[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.BedrockKnowledgeBase", version: "1.17.0" };
|
|
192
192
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVkcm9jay1rbm93bGVkZ2UtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3VzZS1jYXNlcy9mcmFtZXdvcmsvYWdlbnRzL2tub3dsZWRnZS1iYXNlL2JlZHJvY2sta25vd2xlZGdlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDO0FBRXRDLDZCQUE2QjtBQUM3Qiw2Q0FBb0M7QUFDcEMsaURBQThEO0FBQzlELDZEQUFrRDtBQUVsRCwrREFBMEQ7QUFTMUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBYSxvQkFBcUIsU0FBUSx1Q0FBaUI7SUFxRHpEOzs7Ozs7O09BT0c7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWdDO1FBQ3hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQyxNQUFNLEtBQUssR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRTdCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQztRQUM3QyxJQUFJLENBQUMsZ0JBQWdCO1lBQ25CLEtBQUssQ0FBQyxnQkFBZ0I7Z0JBQ3RCLG1CQUFtQixJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLG1CQUFtQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDM0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ3ZDLHlDQUF5QztRQUN6QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLFdBQVcs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QUksZ0JBQWdCLEdBQUc7aUJBQzlFO2FBQ0YsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNJLG1CQUFtQjtRQUN4QixPQUFPO1lBQ0wsR0FBRyxLQUFLLENBQUMsbUJBQW1CLEVBQUU7WUFDOUIsSUFBSSxFQUFFLFNBQVM7WUFDZixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDckMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtZQUNuQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWU7U0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLHFCQUFLLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFO1lBQzdDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxrQ0FBa0MsQ0FBQztZQUM5RCxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBeE9ILG9EQXlPQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEFzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEJhc2VLbm93bGVkZ2VCYXNlIH0gZnJvbSAnLi9iYXNlLWtub3dsZWRnZS1iYXNlJztcbmltcG9ydCB7XG4gIEJlZHJvY2tLbm93bGVkZ2VCYXNlUHJvcHMsXG4gIENyZWF0ZUtub3dsZWRnZUJhc2VDb25maWd1cmF0aW9uLFxuICBHdWFyZHJhaWxDb25maWd1cmF0aW9uLFxuICBLbm93bGVkZ2VCYXNlUnVudGltZUNvbmZpZyxcbiAgVmVjdG9yU3RvcmVDb25maWd1cmF0aW9uLFxufSBmcm9tICcuL2tub3dsZWRnZS1iYXNlLXByb3BzJztcblxuLyoqXG4gKiBBbWF6b24gQmVkcm9jayBLbm93bGVkZ2UgQmFzZSBpbXBsZW1lbnRhdGlvbi5cbiAqXG4gKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGludGVncmF0aW9uIHdpdGggQW1hem9uIEJlZHJvY2sgS25vd2xlZGdlIEJhc2VzLFxuICogd2hpY2ggdXNlIHZlY3RvciBzdG9yZXMgKFMzIFZlY3RvcnMgYnkgZGVmYXVsdCkgZm9yIHNlbWFudGljIHNlYXJjaC5cbiAqIEl0IGlzIHRoZSBkZWZhdWx0IGtub3dsZWRnZSBiYXNlIGltcGxlbWVudGF0aW9uIHdoZW4gbm9uZSBpcyBzcGVjaWZpZWQuXG4gKlxuICogVGhlIGltcGxlbWVudGF0aW9uIGhhbmRsZXM6XG4gKiAtIEFSTiBjb25zdHJ1Y3Rpb24gZnJvbSBrbm93bGVkZ2UgYmFzZSBJRCAoaWYgQVJOIG5vdCBwcm92aWRlZClcbiAqIC0gSUFNIHBlcm1pc3Npb24gZ2VuZXJhdGlvbiBmb3IgQmVkcm9jayBSZXRyaWV2ZSBhbmQgUmV0cmlldmVBbmRHZW5lcmF0ZSBBUElzXG4gKiAtIE9wdGlvbmFsIGd1YXJkcmFpbCBjb25maWd1cmF0aW9uIGZvciBjb250ZW50IGZpbHRlcmluZ1xuICogLSBSdW50aW1lIGNvbmZpZ3VyYXRpb24gZXhwb3J0IGZvciB0aGUgcmV0cmlldmFsIHRvb2xcbiAqL1xuZXhwb3J0IGNsYXNzIEJlZHJvY2tLbm93bGVkZ2VCYXNlIGV4dGVuZHMgQmFzZUtub3dsZWRnZUJhc2Uge1xuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgQmVkcm9jayBLbm93bGVkZ2UgQmFzZS5cbiAgICpcbiAgICogVGhpcyBpcyB0aGUgSUQgYXNzaWduZWQgYnkgQmVkcm9jayB3aGVuIHRoZSBrbm93bGVkZ2UgYmFzZSB3YXMgY3JlYXRlZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBrbm93bGVkZ2VCYXNlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgQmVkcm9jayBLbm93bGVkZ2UgQmFzZS5cbiAgICpcbiAgICogSWYgbm90IHByb3ZpZGVkIGluIHByb3BzLCB0aGlzIGlzIGNvbnN0cnVjdGVkIGZyb20gdGhlIGtub3dsZWRnZUJhc2VJZFxuICAgKiB1c2luZyB0aGUgY3VycmVudCByZWdpb24gYW5kIGFjY291bnQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkga25vd2xlZGdlQmFzZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHdWFyZHJhaWwgY29uZmlndXJhdGlvbiBmb3IgY29udGVudCBmaWx0ZXJpbmcuXG4gICAqXG4gICAqIFdoZW4gY29uZmlndXJlZCwgdGhlIGd1YXJkcmFpbCB3aWxsIGJlIGFwcGxpZWQgZHVyaW5nIHJldHJpZXZhbFxuICAgKiBvcGVyYXRpb25zIHRvIGZpbHRlciBpbmFwcHJvcHJpYXRlIG9yIHNlbnNpdGl2ZSBjb250ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBndWFyZHJhaWxDb25maWc/OiBHdWFyZHJhaWxDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBWZWN0b3Igc3RvcmUgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogRGVmaW5lcyB0aGUgdHlwZSBvZiB2ZWN0b3Igc3RvcmUgdXNlZCBieSB0aGlzIGtub3dsZWRnZSBiYXNlLlxuICAgKiBEZWZhdWx0cyB0byBTMyBWZWN0b3JzIGlmIG5vdCBzcGVjaWZpZWQuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHZlY3RvclN0b3JlQ29uZmlnOiBWZWN0b3JTdG9yZUNvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIGNyZWF0aW5nIGEgbmV3IGtub3dsZWRnZSBiYXNlLlxuICAgKlxuICAgKiBXaGVuIHByb3ZpZGVkLCBpbmRpY2F0ZXMgdGhhdCB0aGlzIGNvbnN0cnVjdCBzaG91bGQgY3JlYXRlIGEgbmV3XG4gICAqIEJlZHJvY2sgS25vd2xlZGdlIEJhc2UgcmF0aGVyIHRoYW4gcmVmZXJlbmNlIGFuIGV4aXN0aW5nIG9uZS5cbiAgICpcbiAgICogTm90ZTogS0IgY3JlYXRpb24gaXMgYW4gYWR2YW5jZWQgZmVhdHVyZS4gQ3VycmVudGx5LCB0aGlzIHByb3BlcnR5XG4gICAqIHN0b3JlcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgZnV0dXJlIGltcGxlbWVudGF0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBjcmVhdGVDb25maWc/OiBDcmVhdGVLbm93bGVkZ2VCYXNlQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIEFXUyByZWdpb24gd2hlcmUgdGhlIGtub3dsZWRnZSBiYXNlIGlzIGRlcGxveWVkLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFXUyBhY2NvdW50IElEIHdoZXJlIHRoZSBrbm93bGVkZ2UgYmFzZSBpcyBkZXBsb3llZC5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEJlZHJvY2tLbm93bGVkZ2VCYXNlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCAtIFRoZSBzY29wZWQgY29uc3RydWN0IElEXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIEJlZHJvY2sgS25vd2xlZGdlIEJhc2VcbiAgICogQHRocm93cyBFcnJvciBpZiBrbm93bGVkZ2VCYXNlSWQgaXMgZW1wdHkgb3Igbm90IHByb3ZpZGVkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQmVkcm9ja0tub3dsZWRnZUJhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy52YWxpZGF0ZUJlZHJvY2tQcm9wcyhwcm9wcyk7XG5cbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHRoaXMpO1xuICAgIHRoaXMucmVnaW9uID0gc3RhY2sucmVnaW9uO1xuICAgIHRoaXMuYWNjb3VudCA9IHN0YWNrLmFjY291bnQ7XG5cbiAgICB0aGlzLmtub3dsZWRnZUJhc2VJZCA9IHByb3BzLmtub3dsZWRnZUJhc2VJZDtcbiAgICB0aGlzLmtub3dsZWRnZUJhc2VBcm4gPVxuICAgICAgcHJvcHMua25vd2xlZGdlQmFzZUFybiA/P1xuICAgICAgYGFybjphd3M6YmVkcm9jazoke3RoaXMucmVnaW9ufToke3RoaXMuYWNjb3VudH06a25vd2xlZGdlLWJhc2UvJHtwcm9wcy5rbm93bGVkZ2VCYXNlSWR9YDtcbiAgICB0aGlzLmd1YXJkcmFpbENvbmZpZyA9IHByb3BzLmd1YXJkcmFpbDtcbiAgICAvLyBEZWZhdWx0IHRvIFMzIFZlY3RvcnMgaWYgbm90IHNwZWNpZmllZFxuICAgIHRoaXMudmVjdG9yU3RvcmVDb25maWcgPSBwcm9wcy52ZWN0b3JTdG9yZSA/PyB7IHR5cGU6ICdzMy12ZWN0b3JzJyB9O1xuICAgIHRoaXMuY3JlYXRlQ29uZmlnID0gcHJvcHMuY3JlYXRlO1xuXG4gICAgLy8gTm90ZTogS0IgY3JlYXRpb24gaXMgaGFuZGxlZCBzZXBhcmF0ZWx5IHdoZW4gY3JlYXRlIGNvbmZpZyBpcyBwcm92aWRlZFxuICAgIC8vIFRoaXMgaXMgYW4gYWR2YW5jZWQgZmVhdHVyZSB0aGF0IHdpbGwgY3JlYXRlIGFjdHVhbCBBV1MgcmVzb3VyY2VzXG4gICAgaWYgKHRoaXMuY3JlYXRlQ29uZmlnKSB7XG4gICAgICB0aGlzLnNldHVwS25vd2xlZGdlQmFzZUNyZWF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAga25vd2xlZGdlIGJhc2UgY3JlYXRpb24gd2hlbiBjcmVhdGUgY29uZmlndXJhdGlvbiBpcyBwcm92aWRlZC5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGR1cmluZyBjb25zdHJ1Y3Rpb24gd2hlbiB0aGUgYGNyZWF0ZWAgcHJvcGVydHlcbiAgICogaXMgc3BlY2lmaWVkLiBJdCBwcmVwYXJlcyB0aGUgbmVjZXNzYXJ5IHJlc291cmNlcyBmb3IgY3JlYXRpbmcgYSBuZXdcbiAgICogQmVkcm9jayBLbm93bGVkZ2UgQmFzZS5cbiAgICpcbiAgICogTm90ZTogRnVsbCBLQiBjcmVhdGlvbiBpbXBsZW1lbnRhdGlvbiByZXF1aXJlcyBDbG91ZEZvcm1hdGlvbiBjdXN0b21cbiAgICogcmVzb3VyY2VzIG9yIEwxIGNvbnN0cnVjdHMuIFRoaXMgaXMgYSBwbGFjZWhvbGRlciBmb3IgZnV0dXJlIGltcGxlbWVudGF0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cEtub3dsZWRnZUJhc2VDcmVhdGlvbigpOiB2b2lkIHtcbiAgICAvLyBLQiBjcmVhdGlvbiBpcyBhbiBhZHZhbmNlZCBmZWF0dXJlXG4gICAgLy8gVGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiB3b3VsZCBpbnZvbHZlOlxuICAgIC8vIDEuIENyZWF0aW5nIGFuIElBTSByb2xlIGZvciBCZWRyb2NrIEtCXG4gICAgLy8gMi4gQ3JlYXRpbmcgdGhlIEJlZHJvY2sgS0IgdmlhIENmbktub3dsZWRnZUJhc2VcbiAgICAvLyAzLiBDcmVhdGluZyBhIGRhdGEgc291cmNlIHBvaW50aW5nIHRvIHRoZSBTMyBidWNrZXRcbiAgICAvLyA0LiBDb25maWd1cmluZyB0aGUgZW1iZWRkaW5nIG1vZGVsXG4gICAgLy8gNS4gU2V0dGluZyB1cCB0aGUgdmVjdG9yIHN0b3JlIChTMyBWZWN0b3JzIGJ5IGRlZmF1bHQpXG4gICAgLy9cbiAgICAvLyBGb3Igbm93LCB0aGlzIHN0b3JlcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgcmVmZXJlbmNlLlxuICAgIC8vIFVzZXJzIHNob3VsZCBjcmVhdGUgS0JzIHZpYSB0aGUgQmVkcm9jayBjb25zb2xlIG9yIENMSVxuICAgIC8vIGFuZCByZWZlcmVuY2UgdGhlbSBieSBJRC5cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgQmVkcm9jay1zcGVjaWZpYyBwcm9wcyBhdCBjb25zdHJ1Y3Rpb24gdGltZS5cbiAgICpcbiAgICogRW5zdXJlcyB0aGF0IHRoZSBrbm93bGVkZ2VCYXNlSWQgaXMgcHJvdmlkZWQgYW5kIG5vdCBlbXB0eS5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIC0gVGhlIHByb3BzIHRvIHZhbGlkYXRlXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYga25vd2xlZGdlQmFzZUlkIGlzIGVtcHR5IG9yIG5vdCBwcm92aWRlZFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZUJlZHJvY2tQcm9wcyhwcm9wczogQmVkcm9ja0tub3dsZWRnZUJhc2VQcm9wcyk6IHZvaWQge1xuICAgIGlmICghcHJvcHMua25vd2xlZGdlQmFzZUlkIHx8IHByb3BzLmtub3dsZWRnZUJhc2VJZC50cmltKCkgPT09ICcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2tub3dsZWRnZUJhc2VJZCBpcyByZXF1aXJlZCBhbmQgY2Fubm90IGJlIGVtcHR5Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIElBTSBwb2xpY3kgc3RhdGVtZW50cyByZXF1aXJlZCBmb3IgYWNjZXNzaW5nIHRoaXMgQmVkcm9jayBLbm93bGVkZ2UgQmFzZS5cbiAgICpcbiAgICogUmV0dXJucyBwZXJtaXNzaW9ucyBmb3I6XG4gICAqIC0gYmVkcm9jazpSZXRyaWV2ZSAtIFF1ZXJ5IHRoZSBrbm93bGVkZ2UgYmFzZVxuICAgKiAtIGJlZHJvY2s6UmV0cmlldmVBbmRHZW5lcmF0ZSAtIFF1ZXJ5IGFuZCBnZW5lcmF0ZSByZXNwb25zZXNcbiAgICogLSBiZWRyb2NrOkFwcGx5R3VhcmRyYWlsIC0gQXBwbHkgZ3VhcmRyYWlsIChpZiBjb25maWd1cmVkKVxuICAgKiAtIHMzOkdldE9iamVjdCAtIEFjY2VzcyBTMyB2ZWN0b3JzIChpZiB1c2luZyBTMyBWZWN0b3JzIHdpdGggY3VzdG9tIGJ1Y2tldClcbiAgICogLSBzMzpHZXRPYmplY3QgLSBBY2Nlc3MgZGF0YSBzb3VyY2UgYnVja2V0IChpZiBjcmVhdGUgY29uZmlnIHByb3ZpZGVkKVxuICAgKlxuICAgKiBBbGwgcGVybWlzc2lvbnMgYXJlIHNjb3BlZCB0byB0aGUgc3BlY2lmaWMga25vd2xlZGdlIGJhc2UgQVJOXG4gICAqIGZvbGxvd2luZyB0aGUgcHJpbmNpcGxlIG9mIGxlYXN0IHByaXZpbGVnZS5cbiAgICpcbiAgICogQHJldHVybnMgQXJyYXkgb2YgSUFNIFBvbGljeVN0YXRlbWVudCBvYmplY3RzIGdyYW50aW5nIG5lY2Vzc2FyeSBwZXJtaXNzaW9uc1xuICAgKi9cbiAgcHVibGljIGdlbmVyYXRlSWFtUGVybWlzc2lvbnMoKTogUG9saWN5U3RhdGVtZW50W10ge1xuICAgIGNvbnN0IHN0YXRlbWVudHM6IFBvbGljeVN0YXRlbWVudFtdID0gW1xuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ2JlZHJvY2s6UmV0cmlldmUnLCAnYmVkcm9jazpSZXRyaWV2ZUFuZEdlbmVyYXRlJ10sXG4gICAgICAgIHJlc291cmNlczogW3RoaXMua25vd2xlZGdlQmFzZUFybl0sXG4gICAgICB9KSxcbiAgICBdO1xuXG4gICAgLy8gQWRkIGd1YXJkcmFpbCBwZXJtaXNzaW9ucyBpZiBjb25maWd1cmVkXG4gICAgaWYgKHRoaXMuZ3VhcmRyYWlsQ29uZmlnKSB7XG4gICAgICBzdGF0ZW1lbnRzLnB1c2goXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFsnYmVkcm9jazpBcHBseUd1YXJkcmFpbCddLFxuICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgYGFybjphd3M6YmVkcm9jazoke3RoaXMucmVnaW9ufToke3RoaXMuYWNjb3VudH06Z3VhcmRyYWlsLyR7dGhpcy5ndWFyZHJhaWxDb25maWcuZ3VhcmRyYWlsSWR9YCxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQWRkIFMzIHBlcm1pc3Npb25zIGlmIHVzaW5nIFMzIFZlY3RvcnMgd2l0aCBhIGN1c3RvbSBidWNrZXRcbiAgICBpZiAodGhpcy52ZWN0b3JTdG9yZUNvbmZpZy50eXBlID09PSAnczMtdmVjdG9ycycgJiYgdGhpcy52ZWN0b3JTdG9yZUNvbmZpZy5idWNrZXROYW1lKSB7XG4gICAgICBjb25zdCBwcmVmaXggPSB0aGlzLnZlY3RvclN0b3JlQ29uZmlnLnByZWZpeCA/PyAndmVjdG9ycy8nO1xuICAgICAgc3RhdGVtZW50cy5wdXNoKFxuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICBhY3Rpb25zOiBbJ3MzOkdldE9iamVjdCddLFxuICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgYGFybjphd3M6czM6Ojoke3RoaXMudmVjdG9yU3RvcmVDb25maWcuYnVja2V0TmFtZX0vJHtwcmVmaXh9KmAsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEFkZCBkYXRhIHNvdXJjZSBidWNrZXQgcGVybWlzc2lvbnMgaWYgY3JlYXRlIGNvbmZpZyBpcyBwcm92aWRlZFxuICAgIGlmICh0aGlzLmNyZWF0ZUNvbmZpZykge1xuICAgICAgY29uc3QgZGF0YVNvdXJjZVByZWZpeCA9IHRoaXMuY3JlYXRlQ29uZmlnLmRhdGFTb3VyY2VQcmVmaXggPz8gJyc7XG4gICAgICBzdGF0ZW1lbnRzLnB1c2goXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFsnczM6R2V0T2JqZWN0JywgJ3MzOkxpc3RCdWNrZXQnXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICAgIGBhcm46YXdzOnMzOjo6JHt0aGlzLmNyZWF0ZUNvbmZpZy5kYXRhU291cmNlQnVja2V0TmFtZX1gLFxuICAgICAgICAgICAgYGFybjphd3M6czM6Ojoke3RoaXMuY3JlYXRlQ29uZmlnLmRhdGFTb3VyY2VCdWNrZXROYW1lfS8ke2RhdGFTb3VyY2VQcmVmaXh9KmAsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnRzO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9ydCBjb25maWd1cmF0aW9uIGZvciBydW50aW1lIHVzZSBieSB0aGUgcmV0cmlldmFsIHRvb2wuXG4gICAqXG4gICAqIFJldHVybnMgYSBjb25maWd1cmF0aW9uIG9iamVjdCBjb250YWluaW5nIGFsbCBCZWRyb2NrLXNwZWNpZmljXG4gICAqIHNldHRpbmdzIG5lZWRlZCB0byBxdWVyeSB0aGUga25vd2xlZGdlIGJhc2UgYXQgcnVudGltZSwgaW5jbHVkaW5nOlxuICAgKiAtIEJhc2UgY29uZmlndXJhdGlvbiAobmFtZSwgZGVzY3JpcHRpb24sIHJldHJpZXZhbCwgYWNsKVxuICAgKiAtIEtub3dsZWRnZSBiYXNlIHR5cGUgKCdiZWRyb2NrJylcbiAgICogLSBLbm93bGVkZ2UgYmFzZSBJRCBhbmQgQVJOXG4gICAqIC0gVmVjdG9yIHN0b3JlIGNvbmZpZ3VyYXRpb25cbiAgICogLSBHdWFyZHJhaWwgY29uZmlndXJhdGlvbiAoaWYgcHJlc2VudClcbiAgICpcbiAgICogQHJldHVybnMgUnVudGltZSBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhlIHJldHJpZXZhbCB0b29sXG4gICAqL1xuICBwdWJsaWMgZXhwb3J0Q29uZmlndXJhdGlvbigpOiBLbm93bGVkZ2VCYXNlUnVudGltZUNvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLmV4cG9ydENvbmZpZ3VyYXRpb24oKSxcbiAgICAgIHR5cGU6ICdiZWRyb2NrJyxcbiAgICAgIGtub3dsZWRnZUJhc2VJZDogdGhpcy5rbm93bGVkZ2VCYXNlSWQsXG4gICAgICBrbm93bGVkZ2VCYXNlQXJuOiB0aGlzLmtub3dsZWRnZUJhc2VBcm4sXG4gICAgICB2ZWN0b3JTdG9yZTogdGhpcy52ZWN0b3JTdG9yZUNvbmZpZyxcbiAgICAgIGd1YXJkcmFpbDogdGhpcy5ndWFyZHJhaWxDb25maWcsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlIHRoZSBCZWRyb2NrLXNwZWNpZmljIHJldHJpZXZhbCB0b29sIGFzc2V0LlxuICAgKlxuICAgKiBSZXR1cm5zIGFuIEFzc2V0IGNvbnRhaW5pbmcgdGhlIFB5dGhvbiByZXRyaWV2YWwgdG9vbCB0aGF0IHVzZXNcbiAgICogdGhlIEFtYXpvbiBCZWRyb2NrIEFnZW50IFJ1bnRpbWUgQVBJIHRvIHF1ZXJ5IGtub3dsZWRnZSBiYXNlcy5cbiAgICogVGhpcyB0b29sIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gYWdlbnRzIHRoYXQgdXNlIEJlZHJvY2tcbiAgICoga25vd2xlZGdlIGJhc2VzLlxuICAgKlxuICAgKiBAcmV0dXJucyBBc3NldCBjb250YWluaW5nIHRoZSBCZWRyb2NrIHJldHJpZXZhbCB0b29sXG4gICAqL1xuICBwdWJsaWMgcmV0cmlldmFsVG9vbEFzc2V0KCk6IEFzc2V0IHtcbiAgICByZXR1cm4gbmV3IEFzc2V0KHRoaXMsICdCZWRyb2NrUmV0cmlldmFsVG9vbCcsIHtcbiAgICAgIHBhdGg6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9yZXNvdXJjZXMva25vd2xlZGdlLWJhc2UtdG9vbCcpLFxuICAgICAgZXhjbHVkZTogWyd0ZXN0XyonLCAnKl90ZXN0LnB5J10sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Construct } from 'constructs';
|
|
2
|
+
import { BatchAgent, BatchAgentProps } from './batch-agent';
|
|
3
|
+
import { LocalStackEndpointOverrides } from '../localstack';
|
|
4
|
+
export interface LocalStackBatchAgentProps extends BatchAgentProps {
|
|
5
|
+
/**
|
|
6
|
+
* LocalStack endpoint routing configuration for Lambda runtime SDK calls.
|
|
7
|
+
*
|
|
8
|
+
* @default { enabled: true }
|
|
9
|
+
*/
|
|
10
|
+
readonly localStack?: LocalStackEndpointOverrides;
|
|
11
|
+
}
|
|
12
|
+
export declare class LocalStackBatchAgent extends BatchAgent {
|
|
13
|
+
constructor(scope: Construct, id: string, props: LocalStackBatchAgentProps);
|
|
14
|
+
protected resolveAgentRuntimeEntry(): string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.LocalStackBatchAgent = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const path = require("path");
|
|
7
|
+
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
8
|
+
const batch_agent_1 = require("./batch-agent");
|
|
9
|
+
const localstack_1 = require("../localstack");
|
|
10
|
+
class LocalStackBatchAgent extends batch_agent_1.BatchAgent {
|
|
11
|
+
constructor(scope, id, props) {
|
|
12
|
+
super(scope, id, props);
|
|
13
|
+
const localStackEnv = localstack_1.LocalStackIntegrationUtils.toLambdaEnvironment({
|
|
14
|
+
enabled: true,
|
|
15
|
+
...props.localStack,
|
|
16
|
+
});
|
|
17
|
+
for (const child of this.node.findAll()) {
|
|
18
|
+
if (!(child instanceof aws_lambda_1.Function)) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
for (const [key, value] of Object.entries(localStackEnv)) {
|
|
22
|
+
child.addEnvironment(key, value);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
resolveAgentRuntimeEntry() {
|
|
27
|
+
return path.join(__dirname, 'resources/default-ollama-agent');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.LocalStackBatchAgent = LocalStackBatchAgent;
|
|
31
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
32
|
+
LocalStackBatchAgent[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.LocalStackBatchAgent", version: "1.17.0" };
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxzdGFjay1iYXRjaC1hZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3VzZS1jYXNlcy9mcmFtZXdvcmsvYWdlbnRzL2xvY2Fsc3RhY2stYmF0Y2gtYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsdURBQW9FO0FBRXBFLCtDQUE0RDtBQUM1RCw4Q0FBd0Y7QUFXeEYsTUFBYSxvQkFBcUIsU0FBUSx3QkFBVTtJQUNsRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWdDO1FBQ3hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLE1BQU0sYUFBYSxHQUFHLHVDQUEwQixDQUFDLG1CQUFtQixDQUFDO1lBQ25FLE9BQU8sRUFBRSxJQUFJO1lBQ2IsR0FBRyxLQUFLLENBQUMsVUFBVTtTQUNwQixDQUFDLENBQUM7UUFFSCxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsQ0FBQyxLQUFLLFlBQVkscUJBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLFNBQVM7WUFDWCxDQUFDO1lBQ0QsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztnQkFDekQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRVMsd0JBQXdCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQztJQUNoRSxDQUFDOztBQXJCSCxvREFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRnVuY3Rpb24gYXMgTGFtYmRhRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQmF0Y2hBZ2VudCwgQmF0Y2hBZ2VudFByb3BzIH0gZnJvbSAnLi9iYXRjaC1hZ2VudCc7XG5pbXBvcnQgeyBMb2NhbFN0YWNrRW5kcG9pbnRPdmVycmlkZXMsIExvY2FsU3RhY2tJbnRlZ3JhdGlvblV0aWxzIH0gZnJvbSAnLi4vbG9jYWxzdGFjayc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxTdGFja0JhdGNoQWdlbnRQcm9wcyBleHRlbmRzIEJhdGNoQWdlbnRQcm9wcyB7XG4gIC8qKlxuICAgKiBMb2NhbFN0YWNrIGVuZHBvaW50IHJvdXRpbmcgY29uZmlndXJhdGlvbiBmb3IgTGFtYmRhIHJ1bnRpbWUgU0RLIGNhbGxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB7IGVuYWJsZWQ6IHRydWUgfVxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYWxTdGFjaz86IExvY2FsU3RhY2tFbmRwb2ludE92ZXJyaWRlcztcbn1cblxuZXhwb3J0IGNsYXNzIExvY2FsU3RhY2tCYXRjaEFnZW50IGV4dGVuZHMgQmF0Y2hBZ2VudCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBMb2NhbFN0YWNrQmF0Y2hBZ2VudFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBjb25zdCBsb2NhbFN0YWNrRW52ID0gTG9jYWxTdGFja0ludGVncmF0aW9uVXRpbHMudG9MYW1iZGFFbnZpcm9ubWVudCh7XG4gICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgLi4ucHJvcHMubG9jYWxTdGFjayxcbiAgICB9KTtcblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5ub2RlLmZpbmRBbGwoKSkge1xuICAgICAgaWYgKCEoY2hpbGQgaW5zdGFuY2VvZiBMYW1iZGFGdW5jdGlvbikpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhsb2NhbFN0YWNrRW52KSkge1xuICAgICAgICBjaGlsZC5hZGRFbnZpcm9ubWVudChrZXksIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVzb2x2ZUFnZW50UnVudGltZUVudHJ5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBhdGguam9pbihfX2Rpcm5hbWUsICdyZXNvdXJjZXMvZGVmYXVsdC1vbGxhbWEtYWdlbnQnKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Batch agent Lambda handler for processing documents with AI agents.
|
|
3
|
+
|
|
4
|
+
This module provides the Lambda handler for batch processing of documents
|
|
5
|
+
using Amazon Bedrock agents with tool integration.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import json
|
|
9
|
+
import os
|
|
10
|
+
import re
|
|
11
|
+
from enum import Enum
|
|
12
|
+
from typing import Any, Dict, Optional
|
|
13
|
+
|
|
14
|
+
from aws_lambda_powertools import Logger, Metrics, Tracer
|
|
15
|
+
from aws_lambda_powertools.metrics import MetricUnit
|
|
16
|
+
from strands import Agent
|
|
17
|
+
from strands_tools import file_read
|
|
18
|
+
|
|
19
|
+
import runtime_support
|
|
20
|
+
from utils import (
|
|
21
|
+
convert_tools_config_into_model,
|
|
22
|
+
create_boto3_client,
|
|
23
|
+
download_and_load_system_prompt,
|
|
24
|
+
download_tools,
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class ContentType(str, Enum):
|
|
29
|
+
"""
|
|
30
|
+
Document content type enumeration.
|
|
31
|
+
|
|
32
|
+
Defines how document content is provided to the agent.
|
|
33
|
+
"""
|
|
34
|
+
FILE = "file" # Document stored in S3 or file system
|
|
35
|
+
DATA = "data" # Document content provided inline
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class ContentLocation(str, Enum):
|
|
39
|
+
"""
|
|
40
|
+
Document storage location enumeration.
|
|
41
|
+
|
|
42
|
+
Defines where file-based documents are stored.
|
|
43
|
+
"""
|
|
44
|
+
S3 = "s3" # Document stored in Amazon S3
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class InvokeType(str, Enum):
|
|
48
|
+
"""
|
|
49
|
+
Agent invocation type enumeration.
|
|
50
|
+
|
|
51
|
+
Defines the processing mode for the agent.
|
|
52
|
+
"""
|
|
53
|
+
BATCH = "batch" # Batch processing (one document at a time)
|
|
54
|
+
INTERACTIVE = "interactive" # Interactive conversation mode (future)
|
|
55
|
+
ATTACH_DIRECTLY = "attach-directly" # Direct invocation (e.g., RAG, API endpoints)
|
|
56
|
+
CLASSIFICATION = "classification" # Document classification step
|
|
57
|
+
PROCESSING = "processing" # Document processing step
|
|
58
|
+
AGGREGATION = "aggregation" # Document aggregation step
|
|
59
|
+
|
|
60
|
+
# Initialize AWS Lambda Powertools
|
|
61
|
+
logger = Logger()
|
|
62
|
+
metrics = Metrics()
|
|
63
|
+
tracer = Tracer()
|
|
64
|
+
|
|
65
|
+
# Initialize AWS clients
|
|
66
|
+
s3_client = create_boto3_client('s3', 'AWS_ENDPOINT_URL_S3')
|
|
67
|
+
|
|
68
|
+
# Load configuration at module initialization
|
|
69
|
+
TOOLS_CONFIG = convert_tools_config_into_model(os.getenv('TOOLS_CONFIG', '{}'))
|
|
70
|
+
AGENT_TOOLS = download_tools(TOOLS_CONFIG)
|
|
71
|
+
SYSTEM_PROMPT = download_and_load_system_prompt(
|
|
72
|
+
os.environ['SYSTEM_PROMPT_S3_BUCKET_NAME'],
|
|
73
|
+
os.environ['SYSTEM_PROMPT_S3_KEY']
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def extract_json_from_text(text: str) -> Optional[Dict[str, Any]]:
|
|
78
|
+
"""
|
|
79
|
+
Extract JSON object from text containing JSON in code blocks or raw format.
|
|
80
|
+
|
|
81
|
+
Attempts to extract JSON in the following order:
|
|
82
|
+
1. JSON within ```json code blocks
|
|
83
|
+
2. Raw JSON objects in the text
|
|
84
|
+
|
|
85
|
+
Args:
|
|
86
|
+
text: Text potentially containing JSON data
|
|
87
|
+
|
|
88
|
+
Returns:
|
|
89
|
+
Parsed JSON dictionary if found, None otherwise
|
|
90
|
+
"""
|
|
91
|
+
return runtime_support.extract_json_from_text(text, logger)
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
def download_document_from_s3(bucket: str, key: str) -> str:
|
|
95
|
+
"""
|
|
96
|
+
Download a document from S3 to local /tmp directory.
|
|
97
|
+
|
|
98
|
+
Args:
|
|
99
|
+
bucket: S3 bucket name
|
|
100
|
+
key: S3 object key
|
|
101
|
+
|
|
102
|
+
Returns:
|
|
103
|
+
Local file path where document was downloaded
|
|
104
|
+
|
|
105
|
+
Raises:
|
|
106
|
+
ClientError: If S3 download fails
|
|
107
|
+
"""
|
|
108
|
+
filename = key.split('/')[-1]
|
|
109
|
+
local_path = f"/tmp/{filename}"
|
|
110
|
+
|
|
111
|
+
logger.info("Downloading document from S3", extra={
|
|
112
|
+
"bucket": bucket,
|
|
113
|
+
"key": key,
|
|
114
|
+
"local_path": local_path
|
|
115
|
+
})
|
|
116
|
+
|
|
117
|
+
s3_client.download_file(bucket, key, local_path)
|
|
118
|
+
return local_path
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def build_agent_prompt(base_prompt: str, event: Dict[str, Any], invoke_type: InvokeType) -> str:
|
|
122
|
+
"""
|
|
123
|
+
Build the complete agent prompt from base prompt and event data.
|
|
124
|
+
|
|
125
|
+
Args:
|
|
126
|
+
base_prompt: Base prompt template
|
|
127
|
+
event: Lambda event containing document and classification data
|
|
128
|
+
|
|
129
|
+
Returns:
|
|
130
|
+
Complete prompt with document information and classification
|
|
131
|
+
|
|
132
|
+
Raises:
|
|
133
|
+
ValueError: If content_type is invalid or required fields are missing
|
|
134
|
+
"""
|
|
135
|
+
prompt = base_prompt or "Analyze the attached document and verify the information using the provided tools."
|
|
136
|
+
|
|
137
|
+
# Replace classification placeholder if present
|
|
138
|
+
if 'classificationResult' in event:
|
|
139
|
+
classification = event['classificationResult']['documentClassification']
|
|
140
|
+
prompt = prompt.replace("[ACTUAL_CLASSIFICATION]", classification)
|
|
141
|
+
logger.info("Added classification to prompt", extra={"classification": classification})
|
|
142
|
+
|
|
143
|
+
# Validate and process content based on type
|
|
144
|
+
content_type_str = event.get('contentType', '')
|
|
145
|
+
content = event.get('content', {})
|
|
146
|
+
|
|
147
|
+
try:
|
|
148
|
+
content_type = ContentType(content_type_str)
|
|
149
|
+
except ValueError:
|
|
150
|
+
logger.error("Invalid content type", extra={
|
|
151
|
+
"content_type": content_type_str,
|
|
152
|
+
"valid_types": [ct.value for ct in ContentType]
|
|
153
|
+
})
|
|
154
|
+
raise ValueError(
|
|
155
|
+
f"Invalid content_type '{content_type_str}'. "
|
|
156
|
+
f"Must be one of: {', '.join(ct.value for ct in ContentType)}"
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
# Process based on content type
|
|
160
|
+
if content_type == ContentType.FILE:
|
|
161
|
+
location = content.get('location', '')
|
|
162
|
+
|
|
163
|
+
# Validate location
|
|
164
|
+
try:
|
|
165
|
+
location_enum = ContentLocation(location)
|
|
166
|
+
except ValueError:
|
|
167
|
+
logger.error("Invalid content location", extra={
|
|
168
|
+
"location": location,
|
|
169
|
+
"valid_locations": [loc.value for loc in ContentLocation]
|
|
170
|
+
})
|
|
171
|
+
raise ValueError(
|
|
172
|
+
f"Invalid content location '{location}'. "
|
|
173
|
+
f"Must be one of: {', '.join(loc.value for loc in ContentLocation)}"
|
|
174
|
+
)
|
|
175
|
+
|
|
176
|
+
if location_enum == ContentLocation.S3:
|
|
177
|
+
if 'bucket' not in content or 'key' not in content:
|
|
178
|
+
raise ValueError("S3 content must include 'bucket' and 'key' fields")
|
|
179
|
+
|
|
180
|
+
local_path = download_document_from_s3(content['bucket'], content['key'])
|
|
181
|
+
prompt += f" Attached document is located in {local_path}"
|
|
182
|
+
logger.info("Added file location to prompt", extra={"path": local_path})
|
|
183
|
+
|
|
184
|
+
elif content_type == ContentType.DATA:
|
|
185
|
+
if 'data' not in content:
|
|
186
|
+
raise ValueError("Data content must include 'data' field")
|
|
187
|
+
|
|
188
|
+
if invoke_type == InvokeType.BATCH:
|
|
189
|
+
prompt += f" Attached document content are as follows: {content['data']}"
|
|
190
|
+
elif invoke_type == InvokeType.ATTACH_DIRECTLY:
|
|
191
|
+
prompt += f" {content['data']}"
|
|
192
|
+
logger.info("Added inline data to prompt")
|
|
193
|
+
|
|
194
|
+
return prompt
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
@metrics.log_metrics
|
|
198
|
+
@tracer.capture_lambda_handler
|
|
199
|
+
def handler(event: Dict[str, Any], context: Any) -> Dict[str, Any]:
|
|
200
|
+
"""
|
|
201
|
+
Lambda handler for batch agent processing.
|
|
202
|
+
|
|
203
|
+
Processes documents using an AI agent with tool integration.
|
|
204
|
+
Supports both file-based (S3) and inline data inputs.
|
|
205
|
+
|
|
206
|
+
Args:
|
|
207
|
+
event: Lambda event containing:
|
|
208
|
+
- contentType: 'file' or 'data' (see ContentType enum)
|
|
209
|
+
- content: Document location or inline data
|
|
210
|
+
- classificationResult: Optional document classification
|
|
211
|
+
context: Lambda context object
|
|
212
|
+
|
|
213
|
+
Returns:
|
|
214
|
+
Dictionary with 'result' key containing agent response
|
|
215
|
+
(parsed as JSON if EXPECT_JSON is enabled)
|
|
216
|
+
|
|
217
|
+
Raises:
|
|
218
|
+
KeyError: If required environment variables are missing
|
|
219
|
+
ValueError: If event contains invalid content_type or missing required fields
|
|
220
|
+
Exception: If agent invocation fails
|
|
221
|
+
"""
|
|
222
|
+
# Load configuration
|
|
223
|
+
runtime_support.configure_provider_runtime()
|
|
224
|
+
model_id = os.getenv("MODEL_ID")
|
|
225
|
+
model = runtime_support.build_agent_model(model_id)
|
|
226
|
+
base_prompt = os.getenv("PROMPT")
|
|
227
|
+
expect_json = bool(os.getenv("EXPECT_JSON", ""))
|
|
228
|
+
output_contract = runtime_support.resolve_output_contract()
|
|
229
|
+
invoke_type_str = os.environ.get("INVOKE_TYPE", InvokeType.BATCH.value)
|
|
230
|
+
|
|
231
|
+
# Validate invoke type
|
|
232
|
+
try:
|
|
233
|
+
invoke_type = InvokeType(invoke_type_str)
|
|
234
|
+
except ValueError:
|
|
235
|
+
logger.warning("Invalid invoke type, using default", extra={
|
|
236
|
+
"invoke_type": invoke_type_str,
|
|
237
|
+
"default": InvokeType.BATCH.value
|
|
238
|
+
})
|
|
239
|
+
invoke_type = InvokeType.BATCH
|
|
240
|
+
|
|
241
|
+
# Add observability metadata
|
|
242
|
+
tracer.put_annotation(key="invoke_type", value=invoke_type.value)
|
|
243
|
+
tracer.put_annotation(key="expect_json", value=expect_json)
|
|
244
|
+
metrics.add_dimension(name="invoke_type", value=invoke_type.value)
|
|
245
|
+
metrics.add_dimension(name="output_contract", value=output_contract)
|
|
246
|
+
|
|
247
|
+
logger.info("Processing batch agent request", extra={
|
|
248
|
+
"model_id": model_id,
|
|
249
|
+
"expect_json": expect_json,
|
|
250
|
+
"output_contract": output_contract,
|
|
251
|
+
"invoke_type": invoke_type.value,
|
|
252
|
+
"content_type": event.get('contentType')
|
|
253
|
+
})
|
|
254
|
+
|
|
255
|
+
try:
|
|
256
|
+
# Build complete prompt (validates content_type and structure)
|
|
257
|
+
prompt = build_agent_prompt(base_prompt, event, invoke_type)
|
|
258
|
+
if runtime_support.debug_agent_payload_enabled():
|
|
259
|
+
logger.info(
|
|
260
|
+
"Agent payload debug",
|
|
261
|
+
extra={
|
|
262
|
+
"system_prompt_preview": runtime_support.truncate_for_debug(SYSTEM_PROMPT),
|
|
263
|
+
"prompt_preview": runtime_support.truncate_for_debug(prompt),
|
|
264
|
+
},
|
|
265
|
+
)
|
|
266
|
+
|
|
267
|
+
# Initialize and invoke agent
|
|
268
|
+
agent = Agent(
|
|
269
|
+
model=model,
|
|
270
|
+
tools=AGENT_TOOLS + [file_read],
|
|
271
|
+
system_prompt=SYSTEM_PROMPT
|
|
272
|
+
)
|
|
273
|
+
|
|
274
|
+
logger.info("Invoking agent", extra={"prompt_length": len(prompt)})
|
|
275
|
+
response = agent(prompt)
|
|
276
|
+
|
|
277
|
+
message_payload = runtime_support.extract_response_message(response)
|
|
278
|
+
if runtime_support.debug_agent_payload_enabled():
|
|
279
|
+
logger.info(
|
|
280
|
+
"Agent response payload debug",
|
|
281
|
+
extra={
|
|
282
|
+
"message_preview": runtime_support.truncate_for_debug(json.dumps(message_payload)),
|
|
283
|
+
},
|
|
284
|
+
)
|
|
285
|
+
if runtime_support.debug_agent_tool_flow_enabled():
|
|
286
|
+
logger.info(
|
|
287
|
+
"Agent tool flow summary",
|
|
288
|
+
extra=runtime_support.summarize_tool_usage_from_message(message_payload),
|
|
289
|
+
)
|
|
290
|
+
|
|
291
|
+
# Extract response text
|
|
292
|
+
response_text = runtime_support.extract_response_text(response)
|
|
293
|
+
logger.info("Agent invocation successful", extra={
|
|
294
|
+
"response_length": len(response_text)
|
|
295
|
+
})
|
|
296
|
+
|
|
297
|
+
# Record success metric
|
|
298
|
+
metrics.add_metric(
|
|
299
|
+
name="SuccessfulAgentInvocation",
|
|
300
|
+
unit=MetricUnit.Count,
|
|
301
|
+
value=1
|
|
302
|
+
)
|
|
303
|
+
|
|
304
|
+
# Parse JSON if requested
|
|
305
|
+
if expect_json:
|
|
306
|
+
result = extract_json_from_text(response_text)
|
|
307
|
+
if result is None or runtime_support.is_empty_assistant_payload(result):
|
|
308
|
+
logger.warning(
|
|
309
|
+
"Expected JSON but final response was empty or non-JSON; requesting final JSON retry",
|
|
310
|
+
extra={
|
|
311
|
+
"initial_response_length": len(response_text),
|
|
312
|
+
"initial_response_preview": response_text[:500],
|
|
313
|
+
},
|
|
314
|
+
)
|
|
315
|
+
retry_response = agent(runtime_support.build_final_json_retry_prompt())
|
|
316
|
+
retry_text = runtime_support.extract_response_text(retry_response)
|
|
317
|
+
retry_message_payload = runtime_support.extract_response_message(retry_response)
|
|
318
|
+
if runtime_support.debug_agent_payload_enabled():
|
|
319
|
+
logger.info(
|
|
320
|
+
"Agent retry payload debug",
|
|
321
|
+
extra={
|
|
322
|
+
"retry_message_preview": runtime_support.truncate_for_debug(json.dumps(retry_message_payload)),
|
|
323
|
+
},
|
|
324
|
+
)
|
|
325
|
+
if runtime_support.debug_agent_tool_flow_enabled():
|
|
326
|
+
logger.info(
|
|
327
|
+
"Agent retry tool flow summary",
|
|
328
|
+
extra=runtime_support.summarize_tool_usage_from_message(retry_message_payload),
|
|
329
|
+
)
|
|
330
|
+
retry_result = extract_json_from_text(retry_text)
|
|
331
|
+
|
|
332
|
+
if retry_result is None or runtime_support.is_empty_assistant_payload(retry_result):
|
|
333
|
+
logger.warning(
|
|
334
|
+
"Retry did not return valid JSON",
|
|
335
|
+
extra={
|
|
336
|
+
"retry_response_length": len(retry_text),
|
|
337
|
+
"retry_response_preview": retry_text[:500],
|
|
338
|
+
},
|
|
339
|
+
)
|
|
340
|
+
result = {
|
|
341
|
+
"raw_response": retry_text,
|
|
342
|
+
"initial_response": response_text,
|
|
343
|
+
}
|
|
344
|
+
else:
|
|
345
|
+
result = retry_result
|
|
346
|
+
|
|
347
|
+
if (
|
|
348
|
+
runtime_support.is_fraud_output_contract_enabled()
|
|
349
|
+
and isinstance(result, dict)
|
|
350
|
+
and not runtime_support.is_complete_fraud_result(result)
|
|
351
|
+
):
|
|
352
|
+
logger.warning(
|
|
353
|
+
"Result JSON missing required fraud schema fields; forcing a required-tools retry",
|
|
354
|
+
extra={
|
|
355
|
+
"result_preview": runtime_support.truncate_for_debug(json.dumps(result)),
|
|
356
|
+
},
|
|
357
|
+
)
|
|
358
|
+
schema_retry_response = agent(runtime_support.build_required_tools_retry_prompt())
|
|
359
|
+
schema_retry_text = runtime_support.extract_response_text(schema_retry_response)
|
|
360
|
+
schema_retry_result = extract_json_from_text(schema_retry_text)
|
|
361
|
+
|
|
362
|
+
if schema_retry_result is None or not runtime_support.is_complete_fraud_result(schema_retry_result):
|
|
363
|
+
raise ValueError(
|
|
364
|
+
"Agent response did not include required fraud schema after required-tools retry",
|
|
365
|
+
)
|
|
366
|
+
|
|
367
|
+
result = schema_retry_result
|
|
368
|
+
else:
|
|
369
|
+
result = response_text
|
|
370
|
+
|
|
371
|
+
return {"result": result}
|
|
372
|
+
|
|
373
|
+
except ValueError as e:
|
|
374
|
+
# Validation errors (invalid content_type, missing fields, etc.)
|
|
375
|
+
logger.error("Validation error", extra={
|
|
376
|
+
"error": str(e),
|
|
377
|
+
"error_type": "ValidationError"
|
|
378
|
+
})
|
|
379
|
+
metrics.add_metric(
|
|
380
|
+
name="ValidationError",
|
|
381
|
+
unit=MetricUnit.Count,
|
|
382
|
+
value=1
|
|
383
|
+
)
|
|
384
|
+
raise
|
|
385
|
+
|
|
386
|
+
except Exception as e:
|
|
387
|
+
logger.error("Agent invocation failed", extra={
|
|
388
|
+
"error": str(e),
|
|
389
|
+
"error_type": type(e).__name__
|
|
390
|
+
})
|
|
391
|
+
metrics.add_metric(
|
|
392
|
+
name="FailedAgentInvocation",
|
|
393
|
+
unit=MetricUnit.Count,
|
|
394
|
+
value=1
|
|
395
|
+
)
|
|
396
|
+
raise
|