@aws-cdk/aws-bedrock-agentcore-alpha 2.221.1-alpha.0 → 2.222.0-alpha.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 +3794 -502
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +69 -1
- package/README.md +327 -5
- package/agentcore/index.d.ts +4 -0
- package/agentcore/index.js +5 -1
- package/agentcore/memory/memory-strategy.d.ts +164 -0
- package/agentcore/memory/memory-strategy.js +174 -0
- package/agentcore/memory/memory.d.ts +538 -0
- package/agentcore/memory/memory.js +661 -0
- package/agentcore/memory/perms.d.ts +63 -0
- package/agentcore/memory/perms.js +90 -0
- package/agentcore/memory/strategies/managed-strategy.d.ts +133 -0
- package/agentcore/memory/strategies/managed-strategy.js +209 -0
- package/agentcore/memory/strategies/self-managed-strategy.d.ts +127 -0
- package/agentcore/memory/strategies/self-managed-strategy.js +254 -0
- package/agentcore/memory/validation-helpers.d.ts +41 -0
- package/agentcore/memory/validation-helpers.js +89 -0
- package/agentcore/network/network-configuration.js +4 -4
- package/agentcore/runtime/runtime-artifact.js +1 -1
- package/agentcore/runtime/runtime-authorizer-configuration.d.ts +4 -4
- package/agentcore/runtime/runtime-authorizer-configuration.js +13 -32
- package/agentcore/runtime/runtime-base.js +3 -13
- package/agentcore/runtime/runtime-endpoint-base.js +1 -1
- package/agentcore/runtime/runtime-endpoint.js +1 -1
- package/agentcore/runtime/runtime.d.ts +2 -2
- package/agentcore/runtime/runtime.js +16 -17
- package/agentcore/runtime/types.d.ts +5 -1
- package/agentcore/runtime/types.js +5 -1
- package/agentcore/tools/browser.js +2 -2
- package/agentcore/tools/code-interpreter.js +2 -2
- package/package.json +14 -7
- package/rosetta/default.ts-fixture +4 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MemoryStrategy = exports.MemoryStrategyType = exports.MEMORY_NAME_MAX_LENGTH = exports.MEMORY_NAME_MIN_LENGTH = void 0;
|
|
4
|
+
const jsiiDeprecationWarnings = require("../../.warnings.jsii.js");
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
// Internal libs
|
|
7
|
+
const managed_strategy_1 = require("./strategies/managed-strategy");
|
|
8
|
+
const self_managed_strategy_1 = require("./strategies/self-managed-strategy");
|
|
9
|
+
/******************************************************************************
|
|
10
|
+
* CONSTANTS
|
|
11
|
+
*****************************************************************************/
|
|
12
|
+
/**
|
|
13
|
+
* Minimum length for memory strategy name
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
exports.MEMORY_NAME_MIN_LENGTH = 1;
|
|
17
|
+
/**
|
|
18
|
+
* Maximum length for memory strategy name
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
exports.MEMORY_NAME_MAX_LENGTH = 48;
|
|
22
|
+
/**
|
|
23
|
+
* Long-term memory extraction strategy types.
|
|
24
|
+
*/
|
|
25
|
+
var MemoryStrategyType;
|
|
26
|
+
(function (MemoryStrategyType) {
|
|
27
|
+
/**
|
|
28
|
+
* Summarization strategy - extracts concise summaries to preserve critical context and key insights
|
|
29
|
+
*/
|
|
30
|
+
MemoryStrategyType["SUMMARIZATION"] = "SUMMARIZATION";
|
|
31
|
+
/**
|
|
32
|
+
* Semantic memory strategy - extracts general factual knowledge, concepts and meanings from raw conversations
|
|
33
|
+
* using vector embeddings for similarity search.
|
|
34
|
+
*/
|
|
35
|
+
MemoryStrategyType["SEMANTIC"] = "SEMANTIC";
|
|
36
|
+
/**
|
|
37
|
+
* User preferences strategy - extracts user behavior patterns from raw conversations.
|
|
38
|
+
*/
|
|
39
|
+
MemoryStrategyType["USER_PREFERENCE"] = "USER_PREFERENCE";
|
|
40
|
+
/**
|
|
41
|
+
* Customize memory processing through custom foundation model and prompt templates.
|
|
42
|
+
*/
|
|
43
|
+
MemoryStrategyType["CUSTOM"] = "CUSTOM";
|
|
44
|
+
})(MemoryStrategyType || (exports.MemoryStrategyType = MemoryStrategyType = {}));
|
|
45
|
+
/******************************************************************************
|
|
46
|
+
* Factory
|
|
47
|
+
*****************************************************************************/
|
|
48
|
+
/**
|
|
49
|
+
* Factory class for creating memory strategies
|
|
50
|
+
* If you need long-term memory for context recall across sessions, you can setup memory extraction strategies to extract the relevant memory from the raw events.
|
|
51
|
+
* Use built-in strategies for quick setup, use built-in strategies with override to specify models and prompt templates.
|
|
52
|
+
*
|
|
53
|
+
* @see https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/memory-strategies.html
|
|
54
|
+
*/
|
|
55
|
+
class MemoryStrategy {
|
|
56
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.MemoryStrategy", version: "2.222.0-alpha.0" };
|
|
57
|
+
/**
|
|
58
|
+
* Default strategies for organizing and extracting memory data, each optimized for specific use cases.
|
|
59
|
+
* This strategy compresses conversations into concise overviews, preserving essential context and key insights for quick recall.
|
|
60
|
+
* Extracted memory example: Users confused by cloud setup during onboarding.
|
|
61
|
+
* @returns A ManagedMemoryStrategy.
|
|
62
|
+
*/
|
|
63
|
+
static usingBuiltInSummarization() {
|
|
64
|
+
return new managed_strategy_1.ManagedMemoryStrategy(MemoryStrategyType.SUMMARIZATION, {
|
|
65
|
+
name: 'summary_builtin_cdkGen0001',
|
|
66
|
+
description: 'Summarize interactions to preserve critical context and key insights',
|
|
67
|
+
namespaces: ['/strategies/{memoryStrategyId}/actors/{actorId}/sessions/{sessionId}'],
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Default strategies for organizing and extracting memory data, each optimized for specific use cases.
|
|
72
|
+
* Distills general facts, concepts, and underlying meanings from raw conversational data, presenting the information in a context-independent format.
|
|
73
|
+
* Extracted memory example: In-context learning = task-solving via examples, no training needed.
|
|
74
|
+
* @returns A ManagedMemoryStrategy.
|
|
75
|
+
*/
|
|
76
|
+
static usingBuiltInSemantic() {
|
|
77
|
+
return new managed_strategy_1.ManagedMemoryStrategy(MemoryStrategyType.SEMANTIC, {
|
|
78
|
+
name: 'semantic_builtin_cdkGen0001',
|
|
79
|
+
description: 'Extract general factual knowledge, concepts and meanings from raw conversations in a context-independent format.',
|
|
80
|
+
namespaces: ['/strategies/{memoryStrategyId}/actors/{actorId}'],
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Default strategies for organizing and extracting memory data, each optimized for specific use cases.
|
|
85
|
+
* Captures individual preferences, interaction patterns, and personalized settings to enhance future experiences.
|
|
86
|
+
* Extracted memory example: User needs clear guidance on cloud storage account connection during onboarding.
|
|
87
|
+
* @returns A ManagedMemoryStrategy.
|
|
88
|
+
*/
|
|
89
|
+
static usingBuiltInUserPreference() {
|
|
90
|
+
return new managed_strategy_1.ManagedMemoryStrategy(MemoryStrategyType.USER_PREFERENCE, {
|
|
91
|
+
name: 'preference_builtin_cdkGen0001',
|
|
92
|
+
description: 'Capture individual preferences, interaction patterns, and personalized settings to enhance future experiences.',
|
|
93
|
+
namespaces: ['/strategies/{memoryStrategyId}/actors/{actorId}'],
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Creates a semantic memory strategy with custom configuration.
|
|
98
|
+
* Distills general facts, concepts, and underlying meanings from raw conversational data, presenting the information in a context-independent format.
|
|
99
|
+
* Extracted memory example: In-context learning = task-solving via examples, no training needed.
|
|
100
|
+
* @param config - The configuration for the semantic memory strategy.
|
|
101
|
+
* @returns A ManagedMemoryStrategy.
|
|
102
|
+
*/
|
|
103
|
+
static usingSemantic(config) {
|
|
104
|
+
try {
|
|
105
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_ManagedStrategyProps(config);
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
109
|
+
Error.captureStackTrace(error, this.usingSemantic);
|
|
110
|
+
}
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
113
|
+
return new managed_strategy_1.ManagedMemoryStrategy(MemoryStrategyType.SEMANTIC, config);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Creates a user preference memory strategy with custom configuration.
|
|
117
|
+
* Captures individual preferences, interaction patterns, and personalized settings to enhance future experiences.
|
|
118
|
+
* Extracted memory example: User needs clear guidance on cloud storage account connection during onboarding.
|
|
119
|
+
* @param config - The configuration for the user preference memory strategy.
|
|
120
|
+
* @returns A ManagedMemoryStrategy.
|
|
121
|
+
*/
|
|
122
|
+
static usingUserPreference(config) {
|
|
123
|
+
try {
|
|
124
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_ManagedStrategyProps(config);
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
128
|
+
Error.captureStackTrace(error, this.usingUserPreference);
|
|
129
|
+
}
|
|
130
|
+
throw error;
|
|
131
|
+
}
|
|
132
|
+
return new managed_strategy_1.ManagedMemoryStrategy(MemoryStrategyType.USER_PREFERENCE, config);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Creates a summarization memory strategy with custom configuration.
|
|
136
|
+
* This strategy compresses conversations into concise overviews, preserving essential context and key insights for quick recall.
|
|
137
|
+
* Extracted memory example: Users confused by cloud setup during onboarding.
|
|
138
|
+
* @param config - The configuration for the summarization memory strategy.
|
|
139
|
+
* @returns A ManagedMemoryStrategy.
|
|
140
|
+
*/
|
|
141
|
+
static usingSummarization(config) {
|
|
142
|
+
try {
|
|
143
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_ManagedStrategyProps(config);
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
147
|
+
Error.captureStackTrace(error, this.usingSummarization);
|
|
148
|
+
}
|
|
149
|
+
throw error;
|
|
150
|
+
}
|
|
151
|
+
return new managed_strategy_1.ManagedMemoryStrategy(MemoryStrategyType.SUMMARIZATION, config);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Creates a self-managed memory strategy.
|
|
155
|
+
* A self-managed strategy gives you complete control over your memory extraction and consolidation pipelines.
|
|
156
|
+
* @param config - The configuration for the self-managed memory strategy.
|
|
157
|
+
* @returns A SelfManagedMemoryStrategy.
|
|
158
|
+
*/
|
|
159
|
+
static usingSelfManaged(config) {
|
|
160
|
+
try {
|
|
161
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_SelfManagedStrategyProps(config);
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
165
|
+
Error.captureStackTrace(error, this.usingSelfManaged);
|
|
166
|
+
}
|
|
167
|
+
throw error;
|
|
168
|
+
}
|
|
169
|
+
// Scope is passed for future use in permission granting
|
|
170
|
+
return new self_managed_strategy_1.SelfManagedMemoryStrategy(MemoryStrategyType.CUSTOM, config);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
exports.MemoryStrategy = MemoryStrategy;
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWVtb3J5LXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBZUEsZ0JBQWdCO0FBQ2hCLG9FQUE0RjtBQUM1Riw4RUFBeUc7QUFFekc7OytFQUUrRTtBQUMvRTs7O0dBR0c7QUFDVSxRQUFBLHNCQUFzQixHQUFHLENBQUMsQ0FBQztBQUN4Qzs7O0dBR0c7QUFDVSxRQUFBLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztBQUV6Qzs7R0FFRztBQUNILElBQVksa0JBa0JYO0FBbEJELFdBQVksa0JBQWtCO0lBQzVCOztPQUVHO0lBQ0gscURBQStCLENBQUE7SUFDL0I7OztPQUdHO0lBQ0gsMkNBQXFCLENBQUE7SUFDckI7O09BRUc7SUFDSCx5REFBbUMsQ0FBQTtJQUNuQzs7T0FFRztJQUNILHVDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFsQlcsa0JBQWtCLGtDQUFsQixrQkFBa0IsUUFrQjdCO0FBcUREOzsrRUFFK0U7QUFDL0U7Ozs7OztHQU1HO0FBQ0gsTUFBYSxjQUFjOztJQUN6Qjs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyx5QkFBeUI7UUFDckMsT0FBTyxJQUFJLHdDQUFxQixDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRTtZQUNqRSxJQUFJLEVBQUUsNEJBQTRCO1lBQ2xDLFdBQVcsRUFBRSxzRUFBc0U7WUFDbkYsVUFBVSxFQUFFLENBQUMsc0VBQXNFLENBQUM7U0FDckYsQ0FBQyxDQUFDO0tBQ0o7SUFDRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxvQkFBb0I7UUFDaEMsT0FBTyxJQUFJLHdDQUFxQixDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtZQUM1RCxJQUFJLEVBQUUsNkJBQTZCO1lBQ25DLFdBQVcsRUFDWCxrSEFBa0g7WUFDbEgsVUFBVSxFQUFFLENBQUMsaURBQWlELENBQUM7U0FDaEUsQ0FBQyxDQUFDO0tBQ0o7SUFDRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQywwQkFBMEI7UUFDdEMsT0FBTyxJQUFJLHdDQUFxQixDQUFDLGtCQUFrQixDQUFDLGVBQWUsRUFBRTtZQUNuRSxJQUFJLEVBQUUsK0JBQStCO1lBQ3JDLFdBQVcsRUFBRSxnSEFBZ0g7WUFDN0gsVUFBVSxFQUFFLENBQUMsaURBQWlELENBQUM7U0FDaEUsQ0FBQyxDQUFDO0tBQ0o7SUFDRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQTRCOzs7Ozs7Ozs7O1FBQ3RELE9BQU8sSUFBSSx3Q0FBcUIsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDdkU7SUFDRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsTUFBNEI7Ozs7Ozs7Ozs7UUFDNUQsT0FBTyxJQUFJLHdDQUFxQixDQUFDLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztLQUM5RTtJQUNEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxNQUE0Qjs7Ozs7Ozs7OztRQUMzRCxPQUFPLElBQUksd0NBQXFCLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQzVFO0lBQ0Q7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBZ0M7Ozs7Ozs7Ozs7UUFDN0Qsd0RBQXdEO1FBQ3hELE9BQU8sSUFBSSxpREFBeUIsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDekU7O0FBaEZILHdDQWlGQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCAqIGFzIGJlZHJvY2thZ2VudGNvcmUgZnJvbSAnYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmUnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuLy8gSW50ZXJuYWwgbGlic1xuaW1wb3J0IHsgTWFuYWdlZE1lbW9yeVN0cmF0ZWd5LCBNYW5hZ2VkU3RyYXRlZ3lQcm9wcyB9IGZyb20gJy4vc3RyYXRlZ2llcy9tYW5hZ2VkLXN0cmF0ZWd5JztcbmltcG9ydCB7IFNlbGZNYW5hZ2VkTWVtb3J5U3RyYXRlZ3ksIFNlbGZNYW5hZ2VkU3RyYXRlZ3lQcm9wcyB9IGZyb20gJy4vc3RyYXRlZ2llcy9zZWxmLW1hbmFnZWQtc3RyYXRlZ3knO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlNUQU5UU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqXG4gKiBNaW5pbXVtIGxlbmd0aCBmb3IgbWVtb3J5IHN0cmF0ZWd5IG5hbWVcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgTUVNT1JZX05BTUVfTUlOX0xFTkdUSCA9IDE7XG4vKipcbiAqIE1heGltdW0gbGVuZ3RoIGZvciBtZW1vcnkgc3RyYXRlZ3kgbmFtZVxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBNRU1PUllfTkFNRV9NQVhfTEVOR1RIID0gNDg7XG5cbi8qKlxuICogTG9uZy10ZXJtIG1lbW9yeSBleHRyYWN0aW9uIHN0cmF0ZWd5IHR5cGVzLlxuICovXG5leHBvcnQgZW51bSBNZW1vcnlTdHJhdGVneVR5cGUge1xuICAvKipcbiAgICogU3VtbWFyaXphdGlvbiBzdHJhdGVneSAtIGV4dHJhY3RzIGNvbmNpc2Ugc3VtbWFyaWVzIHRvIHByZXNlcnZlIGNyaXRpY2FsIGNvbnRleHQgYW5kIGtleSBpbnNpZ2h0c1xuICAgKi9cbiAgU1VNTUFSSVpBVElPTiA9ICdTVU1NQVJJWkFUSU9OJyxcbiAgLyoqXG4gICAqIFNlbWFudGljIG1lbW9yeSBzdHJhdGVneSAtIGV4dHJhY3RzIGdlbmVyYWwgZmFjdHVhbCBrbm93bGVkZ2UsIGNvbmNlcHRzIGFuZCBtZWFuaW5ncyBmcm9tIHJhdyBjb252ZXJzYXRpb25zXG4gICAqIHVzaW5nIHZlY3RvciBlbWJlZGRpbmdzIGZvciBzaW1pbGFyaXR5IHNlYXJjaC5cbiAgICovXG4gIFNFTUFOVElDID0gJ1NFTUFOVElDJyxcbiAgLyoqXG4gICAqIFVzZXIgcHJlZmVyZW5jZXMgc3RyYXRlZ3kgLSBleHRyYWN0cyB1c2VyIGJlaGF2aW9yIHBhdHRlcm5zIGZyb20gcmF3IGNvbnZlcnNhdGlvbnMuXG4gICAqL1xuICBVU0VSX1BSRUZFUkVOQ0UgPSAnVVNFUl9QUkVGRVJFTkNFJyxcbiAgLyoqXG4gICAqIEN1c3RvbWl6ZSBtZW1vcnkgcHJvY2Vzc2luZyB0aHJvdWdoIGN1c3RvbSBmb3VuZGF0aW9uIG1vZGVsIGFuZCBwcm9tcHQgdGVtcGxhdGVzLlxuICAgKi9cbiAgQ1VTVE9NID0gJ0NVU1RPTScsXG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbW9uXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBjb21tb24gZm9yIGFueSBtZW1vcnkgc3RyYXRlZ3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZW1vcnlTdHJhdGVneUNvbW1vblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIGZvciB0aGUgc3RyYXRlZ3lcbiAgICogQHJlcXVpcmVkIC0gWWVzXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIHN0cmF0ZWd5XG4gICAqIEBkZWZhdWx0IE5vIGRlc2NyaXB0aW9uXG4gICAqIEByZXF1aXJlZCAtIE5vXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmZhY2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogSW50ZXJmYWNlIGZvciBNZW1vcnkgc3RyYXRlZ2llc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElNZW1vcnlTdHJhdGVneSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgbWVtb3J5IHN0cmF0ZWd5XG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIG1lbW9yeSBzdHJhdGVneVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBtZW1vcnkgc3RyYXRlZ3lcbiAgICovXG4gIHJlYWRvbmx5IHN0cmF0ZWd5VHlwZTogTWVtb3J5U3RyYXRlZ3lUeXBlO1xuICAvKipcbiAgICogUmVuZGVycyBpbnRlcm5hbCBhdHRyaWJ1dGVzIHRvIENsb3VkRm9ybWF0aW9uXG4gICAqL1xuICByZW5kZXIoKTogYmVkcm9ja2FnZW50Y29yZS5DZm5NZW1vcnkuTWVtb3J5U3RyYXRlZ3lQcm9wZXJ0eTtcbiAgLyoqXG4gICAqIEdyYW50cyB0aGUgbmVjZXNzYXJ5IHBlcm1pc3Npb25zIHRvIHRoZSByb2xlXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIGdyYW50ZWUgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICogQHJldHVybnMgVGhlIEdyYW50IG9iamVjdCBmb3IgY2hhaW5pbmdcbiAgICovXG4gIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHwgdW5kZWZpbmVkO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhY3RvcnlcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogRmFjdG9yeSBjbGFzcyBmb3IgY3JlYXRpbmcgbWVtb3J5IHN0cmF0ZWdpZXNcbiAqIElmIHlvdSBuZWVkIGxvbmctdGVybSBtZW1vcnkgZm9yIGNvbnRleHQgcmVjYWxsIGFjcm9zcyBzZXNzaW9ucywgeW91IGNhbiBzZXR1cCBtZW1vcnkgZXh0cmFjdGlvbiBzdHJhdGVnaWVzIHRvIGV4dHJhY3QgdGhlIHJlbGV2YW50IG1lbW9yeSBmcm9tIHRoZSByYXcgZXZlbnRzLlxuICogVXNlIGJ1aWx0LWluIHN0cmF0ZWdpZXMgZm9yIHF1aWNrIHNldHVwLCB1c2UgYnVpbHQtaW4gc3RyYXRlZ2llcyB3aXRoIG92ZXJyaWRlIHRvIHNwZWNpZnkgbW9kZWxzIGFuZCBwcm9tcHQgdGVtcGxhdGVzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9kZXZndWlkZS9tZW1vcnktc3RyYXRlZ2llcy5odG1sXG4gKi9cbmV4cG9ydCBjbGFzcyBNZW1vcnlTdHJhdGVneSB7XG4gIC8qKlxuICAgKiBEZWZhdWx0IHN0cmF0ZWdpZXMgZm9yIG9yZ2FuaXppbmcgYW5kIGV4dHJhY3RpbmcgbWVtb3J5IGRhdGEsIGVhY2ggb3B0aW1pemVkIGZvciBzcGVjaWZpYyB1c2UgY2FzZXMuXG4gICAqIFRoaXMgc3RyYXRlZ3kgY29tcHJlc3NlcyBjb252ZXJzYXRpb25zIGludG8gY29uY2lzZSBvdmVydmlld3MsIHByZXNlcnZpbmcgZXNzZW50aWFsIGNvbnRleHQgYW5kIGtleSBpbnNpZ2h0cyBmb3IgcXVpY2sgcmVjYWxsLlxuICAgKiBFeHRyYWN0ZWQgbWVtb3J5IGV4YW1wbGU6IFVzZXJzIGNvbmZ1c2VkIGJ5IGNsb3VkIHNldHVwIGR1cmluZyBvbmJvYXJkaW5nLlxuICAgKiBAcmV0dXJucyBBIE1hbmFnZWRNZW1vcnlTdHJhdGVneS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXNpbmdCdWlsdEluU3VtbWFyaXphdGlvbigpOiBNYW5hZ2VkTWVtb3J5U3RyYXRlZ3kge1xuICAgIHJldHVybiBuZXcgTWFuYWdlZE1lbW9yeVN0cmF0ZWd5KE1lbW9yeVN0cmF0ZWd5VHlwZS5TVU1NQVJJWkFUSU9OLCB7XG4gICAgICBuYW1lOiAnc3VtbWFyeV9idWlsdGluX2Nka0dlbjAwMDEnLFxuICAgICAgZGVzY3JpcHRpb246ICdTdW1tYXJpemUgaW50ZXJhY3Rpb25zIHRvIHByZXNlcnZlIGNyaXRpY2FsIGNvbnRleHQgYW5kIGtleSBpbnNpZ2h0cycsXG4gICAgICBuYW1lc3BhY2VzOiBbJy9zdHJhdGVnaWVzL3ttZW1vcnlTdHJhdGVneUlkfS9hY3RvcnMve2FjdG9ySWR9L3Nlc3Npb25zL3tzZXNzaW9uSWR9J10sXG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIERlZmF1bHQgc3RyYXRlZ2llcyBmb3Igb3JnYW5pemluZyBhbmQgZXh0cmFjdGluZyBtZW1vcnkgZGF0YSwgZWFjaCBvcHRpbWl6ZWQgZm9yIHNwZWNpZmljIHVzZSBjYXNlcy5cbiAgICogRGlzdGlsbHMgZ2VuZXJhbCBmYWN0cywgY29uY2VwdHMsIGFuZCB1bmRlcmx5aW5nIG1lYW5pbmdzIGZyb20gcmF3IGNvbnZlcnNhdGlvbmFsIGRhdGEsIHByZXNlbnRpbmcgdGhlIGluZm9ybWF0aW9uIGluIGEgY29udGV4dC1pbmRlcGVuZGVudCBmb3JtYXQuXG4gICAqIEV4dHJhY3RlZCBtZW1vcnkgZXhhbXBsZTogSW4tY29udGV4dCBsZWFybmluZyA9IHRhc2stc29sdmluZyB2aWEgZXhhbXBsZXMsIG5vIHRyYWluaW5nIG5lZWRlZC5cbiAgICogQHJldHVybnMgQSBNYW5hZ2VkTWVtb3J5U3RyYXRlZ3kuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nQnVpbHRJblNlbWFudGljKCk6IE1hbmFnZWRNZW1vcnlTdHJhdGVneSB7XG4gICAgcmV0dXJuIG5ldyBNYW5hZ2VkTWVtb3J5U3RyYXRlZ3koTWVtb3J5U3RyYXRlZ3lUeXBlLlNFTUFOVElDLCB7XG4gICAgICBuYW1lOiAnc2VtYW50aWNfYnVpbHRpbl9jZGtHZW4wMDAxJyxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ0V4dHJhY3QgZ2VuZXJhbCBmYWN0dWFsIGtub3dsZWRnZSwgY29uY2VwdHMgYW5kIG1lYW5pbmdzIGZyb20gcmF3IGNvbnZlcnNhdGlvbnMgaW4gYSBjb250ZXh0LWluZGVwZW5kZW50IGZvcm1hdC4nLFxuICAgICAgbmFtZXNwYWNlczogWycvc3RyYXRlZ2llcy97bWVtb3J5U3RyYXRlZ3lJZH0vYWN0b3JzL3thY3RvcklkfSddLFxuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBEZWZhdWx0IHN0cmF0ZWdpZXMgZm9yIG9yZ2FuaXppbmcgYW5kIGV4dHJhY3RpbmcgbWVtb3J5IGRhdGEsIGVhY2ggb3B0aW1pemVkIGZvciBzcGVjaWZpYyB1c2UgY2FzZXMuXG4gICAqIENhcHR1cmVzIGluZGl2aWR1YWwgcHJlZmVyZW5jZXMsIGludGVyYWN0aW9uIHBhdHRlcm5zLCBhbmQgcGVyc29uYWxpemVkIHNldHRpbmdzIHRvIGVuaGFuY2UgZnV0dXJlIGV4cGVyaWVuY2VzLlxuICAgKiBFeHRyYWN0ZWQgbWVtb3J5IGV4YW1wbGU6IFVzZXIgbmVlZHMgY2xlYXIgZ3VpZGFuY2Ugb24gY2xvdWQgc3RvcmFnZSBhY2NvdW50IGNvbm5lY3Rpb24gZHVyaW5nIG9uYm9hcmRpbmcuXG4gICAqIEByZXR1cm5zIEEgTWFuYWdlZE1lbW9yeVN0cmF0ZWd5LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1c2luZ0J1aWx0SW5Vc2VyUHJlZmVyZW5jZSgpOiBNYW5hZ2VkTWVtb3J5U3RyYXRlZ3kge1xuICAgIHJldHVybiBuZXcgTWFuYWdlZE1lbW9yeVN0cmF0ZWd5KE1lbW9yeVN0cmF0ZWd5VHlwZS5VU0VSX1BSRUZFUkVOQ0UsIHtcbiAgICAgIG5hbWU6ICdwcmVmZXJlbmNlX2J1aWx0aW5fY2RrR2VuMDAwMScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0NhcHR1cmUgaW5kaXZpZHVhbCBwcmVmZXJlbmNlcywgaW50ZXJhY3Rpb24gcGF0dGVybnMsIGFuZCBwZXJzb25hbGl6ZWQgc2V0dGluZ3MgdG8gZW5oYW5jZSBmdXR1cmUgZXhwZXJpZW5jZXMuJyxcbiAgICAgIG5hbWVzcGFjZXM6IFsnL3N0cmF0ZWdpZXMve21lbW9yeVN0cmF0ZWd5SWR9L2FjdG9ycy97YWN0b3JJZH0nXSxcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlcyBhIHNlbWFudGljIG1lbW9yeSBzdHJhdGVneSB3aXRoIGN1c3RvbSBjb25maWd1cmF0aW9uLlxuICAgKiBEaXN0aWxscyBnZW5lcmFsIGZhY3RzLCBjb25jZXB0cywgYW5kIHVuZGVybHlpbmcgbWVhbmluZ3MgZnJvbSByYXcgY29udmVyc2F0aW9uYWwgZGF0YSwgcHJlc2VudGluZyB0aGUgaW5mb3JtYXRpb24gaW4gYSBjb250ZXh0LWluZGVwZW5kZW50IGZvcm1hdC5cbiAgICogRXh0cmFjdGVkIG1lbW9yeSBleGFtcGxlOiBJbi1jb250ZXh0IGxlYXJuaW5nID0gdGFzay1zb2x2aW5nIHZpYSBleGFtcGxlcywgbm8gdHJhaW5pbmcgbmVlZGVkLlxuICAgKiBAcGFyYW0gY29uZmlnIC0gVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzZW1hbnRpYyBtZW1vcnkgc3RyYXRlZ3kuXG4gICAqIEByZXR1cm5zIEEgTWFuYWdlZE1lbW9yeVN0cmF0ZWd5LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1c2luZ1NlbWFudGljKGNvbmZpZzogTWFuYWdlZFN0cmF0ZWd5UHJvcHMpOiBNYW5hZ2VkTWVtb3J5U3RyYXRlZ3kge1xuICAgIHJldHVybiBuZXcgTWFuYWdlZE1lbW9yeVN0cmF0ZWd5KE1lbW9yeVN0cmF0ZWd5VHlwZS5TRU1BTlRJQywgY29uZmlnKTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlcyBhIHVzZXIgcHJlZmVyZW5jZSBtZW1vcnkgc3RyYXRlZ3kgd2l0aCBjdXN0b20gY29uZmlndXJhdGlvbi5cbiAgICogQ2FwdHVyZXMgaW5kaXZpZHVhbCBwcmVmZXJlbmNlcywgaW50ZXJhY3Rpb24gcGF0dGVybnMsIGFuZCBwZXJzb25hbGl6ZWQgc2V0dGluZ3MgdG8gZW5oYW5jZSBmdXR1cmUgZXhwZXJpZW5jZXMuXG4gICAqIEV4dHJhY3RlZCBtZW1vcnkgZXhhbXBsZTogVXNlciBuZWVkcyBjbGVhciBndWlkYW5jZSBvbiBjbG91ZCBzdG9yYWdlIGFjY291bnQgY29ubmVjdGlvbiBkdXJpbmcgb25ib2FyZGluZy5cbiAgICogQHBhcmFtIGNvbmZpZyAtIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgdXNlciBwcmVmZXJlbmNlIG1lbW9yeSBzdHJhdGVneS5cbiAgICogQHJldHVybnMgQSBNYW5hZ2VkTWVtb3J5U3RyYXRlZ3kuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nVXNlclByZWZlcmVuY2UoY29uZmlnOiBNYW5hZ2VkU3RyYXRlZ3lQcm9wcyk6IE1hbmFnZWRNZW1vcnlTdHJhdGVneSB7XG4gICAgcmV0dXJuIG5ldyBNYW5hZ2VkTWVtb3J5U3RyYXRlZ3koTWVtb3J5U3RyYXRlZ3lUeXBlLlVTRVJfUFJFRkVSRU5DRSwgY29uZmlnKTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlcyBhIHN1bW1hcml6YXRpb24gbWVtb3J5IHN0cmF0ZWd5IHdpdGggY3VzdG9tIGNvbmZpZ3VyYXRpb24uXG4gICAqIFRoaXMgc3RyYXRlZ3kgY29tcHJlc3NlcyBjb252ZXJzYXRpb25zIGludG8gY29uY2lzZSBvdmVydmlld3MsIHByZXNlcnZpbmcgZXNzZW50aWFsIGNvbnRleHQgYW5kIGtleSBpbnNpZ2h0cyBmb3IgcXVpY2sgcmVjYWxsLlxuICAgKiBFeHRyYWN0ZWQgbWVtb3J5IGV4YW1wbGU6IFVzZXJzIGNvbmZ1c2VkIGJ5IGNsb3VkIHNldHVwIGR1cmluZyBvbmJvYXJkaW5nLlxuICAgKiBAcGFyYW0gY29uZmlnIC0gVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzdW1tYXJpemF0aW9uIG1lbW9yeSBzdHJhdGVneS5cbiAgICogQHJldHVybnMgQSBNYW5hZ2VkTWVtb3J5U3RyYXRlZ3kuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nU3VtbWFyaXphdGlvbihjb25maWc6IE1hbmFnZWRTdHJhdGVneVByb3BzKTogTWFuYWdlZE1lbW9yeVN0cmF0ZWd5IHtcbiAgICByZXR1cm4gbmV3IE1hbmFnZWRNZW1vcnlTdHJhdGVneShNZW1vcnlTdHJhdGVneVR5cGUuU1VNTUFSSVpBVElPTiwgY29uZmlnKTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlcyBhIHNlbGYtbWFuYWdlZCBtZW1vcnkgc3RyYXRlZ3kuXG4gICAqIEEgc2VsZi1tYW5hZ2VkIHN0cmF0ZWd5IGdpdmVzIHlvdSBjb21wbGV0ZSBjb250cm9sIG92ZXIgeW91ciBtZW1vcnkgZXh0cmFjdGlvbiBhbmQgY29uc29saWRhdGlvbiBwaXBlbGluZXMuXG4gICAqIEBwYXJhbSBjb25maWcgLSBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNlbGYtbWFuYWdlZCBtZW1vcnkgc3RyYXRlZ3kuXG4gICAqIEByZXR1cm5zIEEgU2VsZk1hbmFnZWRNZW1vcnlTdHJhdGVneS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXNpbmdTZWxmTWFuYWdlZChjb25maWc6IFNlbGZNYW5hZ2VkU3RyYXRlZ3lQcm9wcyk6IFNlbGZNYW5hZ2VkTWVtb3J5U3RyYXRlZ3kge1xuICAgIC8vIFNjb3BlIGlzIHBhc3NlZCBmb3IgZnV0dXJlIHVzZSBpbiBwZXJtaXNzaW9uIGdyYW50aW5nXG4gICAgcmV0dXJuIG5ldyBTZWxmTWFuYWdlZE1lbW9yeVN0cmF0ZWd5KE1lbW9yeVN0cmF0ZWd5VHlwZS5DVVNUT00sIGNvbmZpZyk7XG4gIH1cbn1cbiJdfQ==
|