aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
2 lines (1 loc) • 6.18 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ManagedMemoryStrategy=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var aws_iam_1=()=>{var tmp=require("../../../../aws-iam");return aws_iam_1=()=>tmp,tmp},core_1=()=>{var tmp=require("../../../../core");return core_1=()=>tmp,tmp},validation_helpers_1=()=>{var tmp=require("../../common/validation-helpers");return validation_helpers_1=()=>tmp,tmp},memory_strategy_1=()=>{var tmp=require("../memory-strategy");return memory_strategy_1=()=>tmp,tmp};const PROMPT_MIN_LENGTH=1,PROMPT_MAX_LENGTH=3e4;class ManagedMemoryStrategy{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_bedrockagentcore.ManagedMemoryStrategy",version:"2.257.0"};strategyName;description;namespaces;consolidationOverride;extractionOverride;reflectionConfiguration;strategyType;constructor(strategyType,props){try{jsiiDeprecationWarnings().aws_cdk_lib_aws_bedrockagentcore_MemoryStrategyType(strategyType),jsiiDeprecationWarnings().aws_cdk_lib_aws_bedrockagentcore_ManagedStrategyProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,ManagedMemoryStrategy),error}this.strategyName=props.strategyName,this.description=props.description,this.namespaces=props.namespaces,this.strategyType=strategyType,this.consolidationOverride=props.customConsolidation,this.extractionOverride=props.customExtraction,this.reflectionConfiguration=props.reflectionConfiguration,(0,validation_helpers_1().throwIfInvalid)(this._validatePrompt,this.consolidationOverride?.appendToPrompt),(0,validation_helpers_1().throwIfInvalid)(this._validatePrompt,this.extractionOverride?.appendToPrompt),(0,validation_helpers_1().throwIfInvalid)(this._validateMemoryStrategyName,this.strategyName),this.namespaces&&(0,validation_helpers_1().throwIfInvalid)(this._validateMemoryStrategyNamespaces,this.namespaces),this.reflectionConfiguration&&(0,validation_helpers_1().throwIfInvalid)(this._validateReflectionConfiguration,this.reflectionConfiguration)}render(){if(!this.consolidationOverride&&!this.extractionOverride&&!this.reflectionConfiguration)return{[{[memory_strategy_1().MemoryStrategyType.USER_PREFERENCE]:"userPreferenceMemoryStrategy",[memory_strategy_1().MemoryStrategyType.SEMANTIC]:"semanticMemoryStrategy",[memory_strategy_1().MemoryStrategyType.SUMMARIZATION]:"summaryMemoryStrategy",[memory_strategy_1().MemoryStrategyType.EPISODIC]:"episodicMemoryStrategy",[memory_strategy_1().MemoryStrategyType.CUSTOM]:"customMemoryStrategy"}[this.strategyType]]:{name:this.strategyName,description:this.description,namespaces:this.namespaces,type:this.strategyType}};if(this.strategyType===memory_strategy_1().MemoryStrategyType.EPISODIC&&this.reflectionConfiguration&&!this.consolidationOverride&&!this.extractionOverride)return{episodicMemoryStrategy:{name:this.strategyName,description:this.description,namespaces:this.namespaces,type:this.strategyType,reflectionConfiguration:{namespaces:this.reflectionConfiguration.namespaces}}};const strategyKey={[memory_strategy_1().MemoryStrategyType.USER_PREFERENCE]:"userPreferenceOverride",[memory_strategy_1().MemoryStrategyType.SEMANTIC]:"semanticOverride",[memory_strategy_1().MemoryStrategyType.SUMMARIZATION]:"summaryOverride",[memory_strategy_1().MemoryStrategyType.EPISODIC]:"episodicOverride",[memory_strategy_1().MemoryStrategyType.CUSTOM]:""}[this.strategyType];return{customMemoryStrategy:{name:this.strategyName,description:this.description,namespaces:this.namespaces,type:this.strategyType,configuration:{[strategyKey]:{...this.consolidationOverride&&{consolidation:{modelId:core_1().Arn.split(this.consolidationOverride.model.modelArn,core_1().ArnFormat.SLASH_RESOURCE_NAME).resourceName,appendToPrompt:this.consolidationOverride.appendToPrompt}},...this.extractionOverride&&{extraction:{modelId:core_1().Arn.split(this.extractionOverride.model.modelArn,core_1().ArnFormat.SLASH_RESOURCE_NAME).resourceName,appendToPrompt:this.extractionOverride.appendToPrompt}}}}}}}grant(grantee){try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iam_IGrantable(grantee)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.grant),error}const grant1=this.consolidationOverride?aws_iam_1().Grant.addToPrincipal({grantee,actions:["bedrock:InvokeModel*"],resourceArns:[this.consolidationOverride.model.modelArn]}):void 0,grant2=this.extractionOverride?aws_iam_1().Grant.addToPrincipal({grantee,actions:["bedrock:InvokeModel*"],resourceArns:[this.extractionOverride.model.modelArn]}):void 0;return grant1&&grant2?grant1.combine(grant2):grant1||grant2}_validateMemoryStrategyName=(name,scope)=>{let errors=[];errors.push(...(0,validation_helpers_1().validateStringFieldLength)({value:name,fieldName:"Memory name",minLength:memory_strategy_1().MEMORY_NAME_MIN_LENGTH,maxLength:memory_strategy_1().MEMORY_NAME_MAX_LENGTH},scope));const validNamePattern=/^[a-zA-Z][a-zA-Z0-9_]{0,47}$/;return errors.push(...(0,validation_helpers_1().validateFieldPattern)(name,"Memory name",validNamePattern,void 0,scope)),errors};_validatePrompt=(prompt,scope)=>{let errors=[];return prompt&&errors.push(...(0,validation_helpers_1().validateStringFieldLength)({value:prompt,fieldName:"Prompt",minLength:PROMPT_MIN_LENGTH,maxLength:PROMPT_MAX_LENGTH},scope)),errors};_validateMemoryStrategyNamespaces=namespaces=>{let errors=[];if(namespaces.length===0)return errors;for(const namespace of namespaces)namespace.includes("{")&&!(namespace.includes("{actorId}")||namespace.includes("{sessionId}")||namespace.includes("{memoryStrategyId}"))&&errors.push(`Namespace with templates should contain valid variables: ${namespace}`);return errors};_validateReflectionConfiguration=config=>{let errors=[];return(!config.namespaces||config.namespaces.length===0)&&errors.push("Reflection configuration must have at least one namespace"),config.namespaces&&errors.push(...this._validateMemoryStrategyNamespaces(config.namespaces)),errors}}exports.ManagedMemoryStrategy=ManagedMemoryStrategy;