@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
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
export interface LocalStackIntegrationConfig {
|
|
2
|
+
/**
|
|
3
|
+
* Enable LocalStack endpoint routing for runtime AWS SDK calls.
|
|
4
|
+
*
|
|
5
|
+
* @default false
|
|
6
|
+
*/
|
|
7
|
+
readonly enabled?: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Default endpoint used when service-specific endpoints are not provided.
|
|
10
|
+
*
|
|
11
|
+
* @default http://localhost.localstack.cloud:4566
|
|
12
|
+
*/
|
|
13
|
+
readonly endpointUrl?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Optional service-specific S3 endpoint override.
|
|
16
|
+
*/
|
|
17
|
+
readonly s3EndpointUrl?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Optional service-specific Step Functions endpoint override.
|
|
20
|
+
*/
|
|
21
|
+
readonly stepFunctionsEndpointUrl?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Optional service-specific Bedrock Runtime endpoint override.
|
|
24
|
+
*/
|
|
25
|
+
readonly bedrockRuntimeEndpointUrl?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Optional service-specific Bedrock Agent Runtime endpoint override.
|
|
28
|
+
*/
|
|
29
|
+
readonly bedrockAgentRuntimeEndpointUrl?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface LocalStackEndpointOverrides {
|
|
32
|
+
/**
|
|
33
|
+
* Default endpoint used when service-specific endpoints are not provided.
|
|
34
|
+
*
|
|
35
|
+
* @default http://localhost.localstack.cloud:4566
|
|
36
|
+
*/
|
|
37
|
+
readonly endpointUrl?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Optional service-specific S3 endpoint override.
|
|
40
|
+
*/
|
|
41
|
+
readonly s3EndpointUrl?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Optional service-specific Step Functions endpoint override.
|
|
44
|
+
*/
|
|
45
|
+
readonly stepFunctionsEndpointUrl?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Optional service-specific Bedrock Runtime endpoint override.
|
|
48
|
+
*/
|
|
49
|
+
readonly bedrockRuntimeEndpointUrl?: string;
|
|
50
|
+
/**
|
|
51
|
+
* Optional service-specific Bedrock Agent Runtime endpoint override.
|
|
52
|
+
*/
|
|
53
|
+
readonly bedrockAgentRuntimeEndpointUrl?: string;
|
|
54
|
+
}
|
|
55
|
+
export interface ResolvedLocalStackIntegrationConfig {
|
|
56
|
+
readonly enabled: boolean;
|
|
57
|
+
readonly endpointUrl: string;
|
|
58
|
+
readonly s3EndpointUrl: string;
|
|
59
|
+
readonly stepFunctionsEndpointUrl: string;
|
|
60
|
+
readonly bedrockRuntimeEndpointUrl: string;
|
|
61
|
+
readonly bedrockAgentRuntimeEndpointUrl: string;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Default local model ID used for LocalStack/Ollama sandbox examples and tests.
|
|
65
|
+
*/
|
|
66
|
+
export declare const DEFAULT_LOCALSTACK_OLLAMA_MODEL_ID = "ollama.qwen3.5:9b";
|
|
67
|
+
/**
|
|
68
|
+
* LocalStack edge endpoint commonly used by containerized local runtimes.
|
|
69
|
+
*/
|
|
70
|
+
export declare const DEFAULT_LOCALSTACK_SANDBOX_ENDPOINT_URL = "http://host.docker.internal:4566";
|
|
71
|
+
/**
|
|
72
|
+
* Ollama endpoint commonly used by containerized local runtimes.
|
|
73
|
+
*/
|
|
74
|
+
export declare const DEFAULT_LOCALSTACK_OLLAMA_BASE_URL = "http://host.docker.internal:11434";
|
|
75
|
+
export declare class LocalStackIntegrationUtils {
|
|
76
|
+
static readonly DEFAULT_ENDPOINT_URL = "http://localhost.localstack.cloud:4566";
|
|
77
|
+
static resolveConfig(config?: LocalStackIntegrationConfig): ResolvedLocalStackIntegrationConfig;
|
|
78
|
+
static toLambdaEnvironment(config?: LocalStackIntegrationConfig): Record<string, string>;
|
|
79
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.LocalStackIntegrationUtils = exports.DEFAULT_LOCALSTACK_OLLAMA_BASE_URL = exports.DEFAULT_LOCALSTACK_SANDBOX_ENDPOINT_URL = exports.DEFAULT_LOCALSTACK_OLLAMA_MODEL_ID = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
/**
|
|
7
|
+
* Default local model ID used for LocalStack/Ollama sandbox examples and tests.
|
|
8
|
+
*/
|
|
9
|
+
exports.DEFAULT_LOCALSTACK_OLLAMA_MODEL_ID = 'ollama.qwen3.5:9b';
|
|
10
|
+
/**
|
|
11
|
+
* LocalStack edge endpoint commonly used by containerized local runtimes.
|
|
12
|
+
*/
|
|
13
|
+
exports.DEFAULT_LOCALSTACK_SANDBOX_ENDPOINT_URL = 'http://host.docker.internal:4566';
|
|
14
|
+
/**
|
|
15
|
+
* Ollama endpoint commonly used by containerized local runtimes.
|
|
16
|
+
*/
|
|
17
|
+
exports.DEFAULT_LOCALSTACK_OLLAMA_BASE_URL = 'http://host.docker.internal:11434';
|
|
18
|
+
class LocalStackIntegrationUtils {
|
|
19
|
+
static resolveConfig(config) {
|
|
20
|
+
const endpointUrl = config?.endpointUrl || LocalStackIntegrationUtils.DEFAULT_ENDPOINT_URL;
|
|
21
|
+
return {
|
|
22
|
+
enabled: config?.enabled ?? false,
|
|
23
|
+
endpointUrl,
|
|
24
|
+
s3EndpointUrl: config?.s3EndpointUrl || endpointUrl,
|
|
25
|
+
stepFunctionsEndpointUrl: config?.stepFunctionsEndpointUrl || endpointUrl,
|
|
26
|
+
bedrockRuntimeEndpointUrl: config?.bedrockRuntimeEndpointUrl || endpointUrl,
|
|
27
|
+
bedrockAgentRuntimeEndpointUrl: config?.bedrockAgentRuntimeEndpointUrl || endpointUrl,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
static toLambdaEnvironment(config) {
|
|
31
|
+
const resolved = LocalStackIntegrationUtils.resolveConfig(config);
|
|
32
|
+
if (!resolved.enabled) {
|
|
33
|
+
return {};
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
LOCALSTACK_ENABLED: 'true',
|
|
37
|
+
AWS_ENDPOINT_URL: resolved.endpointUrl,
|
|
38
|
+
AWS_ENDPOINT_URL_S3: resolved.s3EndpointUrl,
|
|
39
|
+
AWS_ENDPOINT_URL_STEPFUNCTIONS: resolved.stepFunctionsEndpointUrl,
|
|
40
|
+
AWS_ENDPOINT_URL_BEDROCK_RUNTIME: resolved.bedrockRuntimeEndpointUrl,
|
|
41
|
+
AWS_ENDPOINT_URL_BEDROCK_AGENT_RUNTIME: resolved.bedrockAgentRuntimeEndpointUrl,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.LocalStackIntegrationUtils = LocalStackIntegrationUtils;
|
|
46
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
47
|
+
LocalStackIntegrationUtils[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.LocalStackIntegrationUtils", version: "1.17.0" };
|
|
48
|
+
LocalStackIntegrationUtils.DEFAULT_ENDPOINT_URL = 'http://localhost.localstack.cloud:4566';
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxzdGFjay1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi91c2UtY2FzZXMvZnJhbWV3b3JrL2xvY2Fsc3RhY2svbG9jYWxzdGFjay1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFzRUE7O0dBRUc7QUFDVSxRQUFBLGtDQUFrQyxHQUFHLG1CQUFtQixDQUFDO0FBQ3RFOztHQUVHO0FBQ1UsUUFBQSx1Q0FBdUMsR0FBRyxrQ0FBa0MsQ0FBQztBQUMxRjs7R0FFRztBQUNVLFFBQUEsa0NBQWtDLEdBQUcsbUNBQW1DLENBQUM7QUFFdEYsTUFBYSwwQkFBMEI7SUFHOUIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFvQztRQUM5RCxNQUFNLFdBQVcsR0FBRyxNQUFNLEVBQUUsV0FBVyxJQUFJLDBCQUEwQixDQUFDLG9CQUFvQixDQUFDO1FBRTNGLE9BQU87WUFDTCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sSUFBSSxLQUFLO1lBQ2pDLFdBQVc7WUFDWCxhQUFhLEVBQUUsTUFBTSxFQUFFLGFBQWEsSUFBSSxXQUFXO1lBQ25ELHdCQUF3QixFQUFFLE1BQU0sRUFBRSx3QkFBd0IsSUFBSSxXQUFXO1lBQ3pFLHlCQUF5QixFQUFFLE1BQU0sRUFBRSx5QkFBeUIsSUFBSSxXQUFXO1lBQzNFLDhCQUE4QixFQUFFLE1BQU0sRUFBRSw4QkFBOEIsSUFBSSxXQUFXO1NBQ3RGLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLE1BQW9DO1FBQ3BFLE1BQU0sUUFBUSxHQUFHLDBCQUEwQixDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE9BQU87WUFDTCxrQkFBa0IsRUFBRSxNQUFNO1lBQzFCLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxXQUFXO1lBQ3RDLG1CQUFtQixFQUFFLFFBQVEsQ0FBQyxhQUFhO1lBQzNDLDhCQUE4QixFQUFFLFFBQVEsQ0FBQyx3QkFBd0I7WUFDakUsZ0NBQWdDLEVBQUUsUUFBUSxDQUFDLHlCQUF5QjtZQUNwRSxzQ0FBc0MsRUFBRSxRQUFRLENBQUMsOEJBQThCO1NBQ2hGLENBQUM7SUFDSixDQUFDOztBQTlCSCxnRUErQkM7OztBQTlCd0IsK0NBQW9CLEdBQUcsd0NBQXdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIExvY2FsU3RhY2tJbnRlZ3JhdGlvbkNvbmZpZyB7XG4gIC8qKlxuICAgKiBFbmFibGUgTG9jYWxTdGFjayBlbmRwb2ludCByb3V0aW5nIGZvciBydW50aW1lIEFXUyBTREsgY2FsbHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVmYXVsdCBlbmRwb2ludCB1c2VkIHdoZW4gc2VydmljZS1zcGVjaWZpYyBlbmRwb2ludHMgYXJlIG5vdCBwcm92aWRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgaHR0cDovL2xvY2FsaG9zdC5sb2NhbHN0YWNrLmNsb3VkOjQ1NjZcbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50VXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzZXJ2aWNlLXNwZWNpZmljIFMzIGVuZHBvaW50IG92ZXJyaWRlLlxuICAgKi9cbiAgcmVhZG9ubHkgczNFbmRwb2ludFVybD86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgc2VydmljZS1zcGVjaWZpYyBTdGVwIEZ1bmN0aW9ucyBlbmRwb2ludCBvdmVycmlkZS5cbiAgICovXG4gIHJlYWRvbmx5IHN0ZXBGdW5jdGlvbnNFbmRwb2ludFVybD86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgc2VydmljZS1zcGVjaWZpYyBCZWRyb2NrIFJ1bnRpbWUgZW5kcG9pbnQgb3ZlcnJpZGUuXG4gICAqL1xuICByZWFkb25seSBiZWRyb2NrUnVudGltZUVuZHBvaW50VXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzZXJ2aWNlLXNwZWNpZmljIEJlZHJvY2sgQWdlbnQgUnVudGltZSBlbmRwb2ludCBvdmVycmlkZS5cbiAgICovXG4gIHJlYWRvbmx5IGJlZHJvY2tBZ2VudFJ1bnRpbWVFbmRwb2ludFVybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbFN0YWNrRW5kcG9pbnRPdmVycmlkZXMge1xuICAvKipcbiAgICogRGVmYXVsdCBlbmRwb2ludCB1c2VkIHdoZW4gc2VydmljZS1zcGVjaWZpYyBlbmRwb2ludHMgYXJlIG5vdCBwcm92aWRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgaHR0cDovL2xvY2FsaG9zdC5sb2NhbHN0YWNrLmNsb3VkOjQ1NjZcbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50VXJsPzogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9uYWwgc2VydmljZS1zcGVjaWZpYyBTMyBlbmRwb2ludCBvdmVycmlkZS5cbiAgICovXG4gIHJlYWRvbmx5IHMzRW5kcG9pbnRVcmw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBzZXJ2aWNlLXNwZWNpZmljIFN0ZXAgRnVuY3Rpb25zIGVuZHBvaW50IG92ZXJyaWRlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RlcEZ1bmN0aW9uc0VuZHBvaW50VXJsPzogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9uYWwgc2VydmljZS1zcGVjaWZpYyBCZWRyb2NrIFJ1bnRpbWUgZW5kcG9pbnQgb3ZlcnJpZGUuXG4gICAqL1xuICByZWFkb25seSBiZWRyb2NrUnVudGltZUVuZHBvaW50VXJsPzogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9uYWwgc2VydmljZS1zcGVjaWZpYyBCZWRyb2NrIEFnZW50IFJ1bnRpbWUgZW5kcG9pbnQgb3ZlcnJpZGUuXG4gICAqL1xuICByZWFkb25seSBiZWRyb2NrQWdlbnRSdW50aW1lRW5kcG9pbnRVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWRMb2NhbFN0YWNrSW50ZWdyYXRpb25Db25maWcge1xuICByZWFkb25seSBlbmFibGVkOiBib29sZWFuO1xuICByZWFkb25seSBlbmRwb2ludFVybDogc3RyaW5nO1xuICByZWFkb25seSBzM0VuZHBvaW50VXJsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN0ZXBGdW5jdGlvbnNFbmRwb2ludFVybDogc3RyaW5nO1xuICByZWFkb25seSBiZWRyb2NrUnVudGltZUVuZHBvaW50VXJsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJlZHJvY2tBZ2VudFJ1bnRpbWVFbmRwb2ludFVybDogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlZmF1bHQgbG9jYWwgbW9kZWwgSUQgdXNlZCBmb3IgTG9jYWxTdGFjay9PbGxhbWEgc2FuZGJveCBleGFtcGxlcyBhbmQgdGVzdHMuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xPQ0FMU1RBQ0tfT0xMQU1BX01PREVMX0lEID0gJ29sbGFtYS5xd2VuMy41OjliJztcbi8qKlxuICogTG9jYWxTdGFjayBlZGdlIGVuZHBvaW50IGNvbW1vbmx5IHVzZWQgYnkgY29udGFpbmVyaXplZCBsb2NhbCBydW50aW1lcy5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTE9DQUxTVEFDS19TQU5EQk9YX0VORFBPSU5UX1VSTCA9ICdodHRwOi8vaG9zdC5kb2NrZXIuaW50ZXJuYWw6NDU2Nic7XG4vKipcbiAqIE9sbGFtYSBlbmRwb2ludCBjb21tb25seSB1c2VkIGJ5IGNvbnRhaW5lcml6ZWQgbG9jYWwgcnVudGltZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xPQ0FMU1RBQ0tfT0xMQU1BX0JBU0VfVVJMID0gJ2h0dHA6Ly9ob3N0LmRvY2tlci5pbnRlcm5hbDoxMTQzNCc7XG5cbmV4cG9ydCBjbGFzcyBMb2NhbFN0YWNrSW50ZWdyYXRpb25VdGlscyB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9FTkRQT0lOVF9VUkwgPSAnaHR0cDovL2xvY2FsaG9zdC5sb2NhbHN0YWNrLmNsb3VkOjQ1NjYnO1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVzb2x2ZUNvbmZpZyhjb25maWc/OiBMb2NhbFN0YWNrSW50ZWdyYXRpb25Db25maWcpOiBSZXNvbHZlZExvY2FsU3RhY2tJbnRlZ3JhdGlvbkNvbmZpZyB7XG4gICAgY29uc3QgZW5kcG9pbnRVcmwgPSBjb25maWc/LmVuZHBvaW50VXJsIHx8IExvY2FsU3RhY2tJbnRlZ3JhdGlvblV0aWxzLkRFRkFVTFRfRU5EUE9JTlRfVVJMO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVuYWJsZWQ6IGNvbmZpZz8uZW5hYmxlZCA/PyBmYWxzZSxcbiAgICAgIGVuZHBvaW50VXJsLFxuICAgICAgczNFbmRwb2ludFVybDogY29uZmlnPy5zM0VuZHBvaW50VXJsIHx8IGVuZHBvaW50VXJsLFxuICAgICAgc3RlcEZ1bmN0aW9uc0VuZHBvaW50VXJsOiBjb25maWc/LnN0ZXBGdW5jdGlvbnNFbmRwb2ludFVybCB8fCBlbmRwb2ludFVybCxcbiAgICAgIGJlZHJvY2tSdW50aW1lRW5kcG9pbnRVcmw6IGNvbmZpZz8uYmVkcm9ja1J1bnRpbWVFbmRwb2ludFVybCB8fCBlbmRwb2ludFVybCxcbiAgICAgIGJlZHJvY2tBZ2VudFJ1bnRpbWVFbmRwb2ludFVybDogY29uZmlnPy5iZWRyb2NrQWdlbnRSdW50aW1lRW5kcG9pbnRVcmwgfHwgZW5kcG9pbnRVcmwsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdG9MYW1iZGFFbnZpcm9ubWVudChjb25maWc/OiBMb2NhbFN0YWNrSW50ZWdyYXRpb25Db25maWcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBjb25zdCByZXNvbHZlZCA9IExvY2FsU3RhY2tJbnRlZ3JhdGlvblV0aWxzLnJlc29sdmVDb25maWcoY29uZmlnKTtcbiAgICBpZiAoIXJlc29sdmVkLmVuYWJsZWQpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgTE9DQUxTVEFDS19FTkFCTEVEOiAndHJ1ZScsXG4gICAgICBBV1NfRU5EUE9JTlRfVVJMOiByZXNvbHZlZC5lbmRwb2ludFVybCxcbiAgICAgIEFXU19FTkRQT0lOVF9VUkxfUzM6IHJlc29sdmVkLnMzRW5kcG9pbnRVcmwsXG4gICAgICBBV1NfRU5EUE9JTlRfVVJMX1NURVBGVU5DVElPTlM6IHJlc29sdmVkLnN0ZXBGdW5jdGlvbnNFbmRwb2ludFVybCxcbiAgICAgIEFXU19FTkRQT0lOVF9VUkxfQkVEUk9DS19SVU5USU1FOiByZXNvbHZlZC5iZWRyb2NrUnVudGltZUVuZHBvaW50VXJsLFxuICAgICAgQVdTX0VORFBPSU5UX1VSTF9CRURST0NLX0FHRU5UX1JVTlRJTUU6IHJlc29sdmVkLmJlZHJvY2tBZ2VudFJ1bnRpbWVFbmRwb2ludFVybCxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const path = require("path");
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const assertions_1 = require("aws-cdk-lib/assertions");
|
|
6
|
+
const aws_s3_assets_1 = require("aws-cdk-lib/aws-s3-assets");
|
|
7
|
+
const test_utils_1 = require("../../utilities/test-utils");
|
|
8
|
+
const localstack_batch_agent_1 = require("../agents/localstack-batch-agent");
|
|
9
|
+
const localstack_1 = require("../localstack");
|
|
10
|
+
class TestableLocalStackBatchAgent extends localstack_batch_agent_1.LocalStackBatchAgent {
|
|
11
|
+
runtimeEntryPath() {
|
|
12
|
+
return this.resolveAgentRuntimeEntry();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
describe('LocalStackBatchAgent', () => {
|
|
16
|
+
test('injects LocalStack endpoint environment variables', () => {
|
|
17
|
+
const app = (0, test_utils_1.createTestApp)();
|
|
18
|
+
const stack = new aws_cdk_lib_1.Stack(app, 'LocalStackBatchAgentStack');
|
|
19
|
+
const systemPrompt = new aws_s3_assets_1.Asset(stack, 'SystemPrompt', {
|
|
20
|
+
path: path.join(__dirname, '../agents/resources/default-strands-agent/batch.py'),
|
|
21
|
+
});
|
|
22
|
+
new localstack_batch_agent_1.LocalStackBatchAgent(stack, 'LocalStackBatchAgent', {
|
|
23
|
+
agentName: 'LocalAgent',
|
|
24
|
+
prompt: 'Analyze this document',
|
|
25
|
+
agentDefinition: {
|
|
26
|
+
bedrockModel: {
|
|
27
|
+
customModelId: localstack_1.DEFAULT_LOCALSTACK_OLLAMA_MODEL_ID,
|
|
28
|
+
},
|
|
29
|
+
systemPrompt,
|
|
30
|
+
},
|
|
31
|
+
localStack: {
|
|
32
|
+
endpointUrl: localstack_1.DEFAULT_LOCALSTACK_SANDBOX_ENDPOINT_URL,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
const template = assertions_1.Template.fromStack(stack);
|
|
36
|
+
template.hasResourceProperties('AWS::Lambda::Function', {
|
|
37
|
+
Environment: {
|
|
38
|
+
Variables: assertions_1.Match.objectLike({
|
|
39
|
+
LOCALSTACK_ENABLED: 'true',
|
|
40
|
+
AWS_ENDPOINT_URL: localstack_1.DEFAULT_LOCALSTACK_SANDBOX_ENDPOINT_URL,
|
|
41
|
+
AWS_ENDPOINT_URL_S3: localstack_1.DEFAULT_LOCALSTACK_SANDBOX_ENDPOINT_URL,
|
|
42
|
+
AWS_ENDPOINT_URL_BEDROCK_RUNTIME: localstack_1.DEFAULT_LOCALSTACK_SANDBOX_ENDPOINT_URL,
|
|
43
|
+
AWS_ENDPOINT_URL_BEDROCK_AGENT_RUNTIME: localstack_1.DEFAULT_LOCALSTACK_SANDBOX_ENDPOINT_URL,
|
|
44
|
+
}),
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
test('uses the LocalStack/Ollama runtime entry', () => {
|
|
49
|
+
const app = (0, test_utils_1.createTestApp)();
|
|
50
|
+
const stack = new aws_cdk_lib_1.Stack(app, 'LocalStackBatchAgentRuntimeStack');
|
|
51
|
+
const systemPrompt = new aws_s3_assets_1.Asset(stack, 'RuntimeSystemPrompt', {
|
|
52
|
+
path: path.join(__dirname, '../agents/resources/default-strands-agent/batch.py'),
|
|
53
|
+
});
|
|
54
|
+
const agent = new TestableLocalStackBatchAgent(stack, 'LocalStackBatchAgentRuntime', {
|
|
55
|
+
agentName: 'LocalAgentRuntime',
|
|
56
|
+
prompt: 'Analyze this document',
|
|
57
|
+
agentDefinition: {
|
|
58
|
+
bedrockModel: {
|
|
59
|
+
customModelId: localstack_1.DEFAULT_LOCALSTACK_OLLAMA_MODEL_ID,
|
|
60
|
+
},
|
|
61
|
+
systemPrompt,
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
expect(agent.runtimeEntryPath()).toContain(path.join('resources', 'default-ollama-agent'));
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxzdGFjay1iYXRjaC1hZ2VudC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdXNlLWNhc2VzL2ZyYW1ld29yay90ZXN0cy9sb2NhbHN0YWNrLWJhdGNoLWFnZW50LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2QkFBNkI7QUFDN0IsNkNBQW9DO0FBQ3BDLHVEQUF5RDtBQUN6RCw2REFBa0Q7QUFDbEQsMkRBQTJEO0FBQzNELDZFQUF3RTtBQUN4RSw4Q0FBNEc7QUFFNUcsTUFBTSw0QkFBNkIsU0FBUSw2Q0FBb0I7SUFDdEQsZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDekMsQ0FBQztDQUNGO0FBRUQsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNwQyxJQUFJLENBQUMsbURBQW1ELEVBQUUsR0FBRyxFQUFFO1FBQzdELE1BQU0sR0FBRyxHQUFHLElBQUEsMEJBQWEsR0FBRSxDQUFDO1FBQzVCLE1BQU0sS0FBSyxHQUFHLElBQUksbUJBQUssQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztRQUUxRCxNQUFNLFlBQVksR0FBRyxJQUFJLHFCQUFLLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRTtZQUNwRCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsb0RBQW9ELENBQUM7U0FDakYsQ0FBQyxDQUFDO1FBRUgsSUFBSSw2Q0FBb0IsQ0FBQyxLQUFLLEVBQUUsc0JBQXNCLEVBQUU7WUFDdEQsU0FBUyxFQUFFLFlBQVk7WUFDdkIsTUFBTSxFQUFFLHVCQUF1QjtZQUMvQixlQUFlLEVBQUU7Z0JBQ2YsWUFBWSxFQUFFO29CQUNaLGFBQWEsRUFBRSwrQ0FBa0M7aUJBQ2xEO2dCQUNELFlBQVk7YUFDYjtZQUNELFVBQVUsRUFBRTtnQkFDVixXQUFXLEVBQUUsb0RBQXVDO2FBQ3JEO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcscUJBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsUUFBUSxDQUFDLHFCQUFxQixDQUFDLHVCQUF1QixFQUFFO1lBQ3RELFdBQVcsRUFBRTtnQkFDWCxTQUFTLEVBQUUsa0JBQUssQ0FBQyxVQUFVLENBQUM7b0JBQzFCLGtCQUFrQixFQUFFLE1BQU07b0JBQzFCLGdCQUFnQixFQUFFLG9EQUF1QztvQkFDekQsbUJBQW1CLEVBQUUsb0RBQXVDO29CQUM1RCxnQ0FBZ0MsRUFBRSxvREFBdUM7b0JBQ3pFLHNDQUFzQyxFQUFFLG9EQUF1QztpQkFDaEYsQ0FBQzthQUNIO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsMENBQTBDLEVBQUUsR0FBRyxFQUFFO1FBQ3BELE1BQU0sR0FBRyxHQUFHLElBQUEsMEJBQWEsR0FBRSxDQUFDO1FBQzVCLE1BQU0sS0FBSyxHQUFHLElBQUksbUJBQUssQ0FBQyxHQUFHLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztRQUVqRSxNQUFNLFlBQVksR0FBRyxJQUFJLHFCQUFLLENBQUMsS0FBSyxFQUFFLHFCQUFxQixFQUFFO1lBQzNELElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxvREFBb0QsQ0FBQztTQUNqRixDQUFDLENBQUM7UUFFSCxNQUFNLEtBQUssR0FBRyxJQUFJLDRCQUE0QixDQUFDLEtBQUssRUFBRSw2QkFBNkIsRUFBRTtZQUNuRixTQUFTLEVBQUUsbUJBQW1CO1lBQzlCLE1BQU0sRUFBRSx1QkFBdUI7WUFDL0IsZUFBZSxFQUFFO2dCQUNmLFlBQVksRUFBRTtvQkFDWixhQUFhLEVBQUUsK0NBQWtDO2lCQUNsRDtnQkFDRCxZQUFZO2FBQ2I7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0lBQzdGLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBNYXRjaCwgVGVtcGxhdGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hc3NlcnRpb25zJztcbmltcG9ydCB7IEFzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBjcmVhdGVUZXN0QXBwIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL3Rlc3QtdXRpbHMnO1xuaW1wb3J0IHsgTG9jYWxTdGFja0JhdGNoQWdlbnQgfSBmcm9tICcuLi9hZ2VudHMvbG9jYWxzdGFjay1iYXRjaC1hZ2VudCc7XG5pbXBvcnQgeyBERUZBVUxUX0xPQ0FMU1RBQ0tfT0xMQU1BX01PREVMX0lELCBERUZBVUxUX0xPQ0FMU1RBQ0tfU0FOREJPWF9FTkRQT0lOVF9VUkwgfSBmcm9tICcuLi9sb2NhbHN0YWNrJztcblxuY2xhc3MgVGVzdGFibGVMb2NhbFN0YWNrQmF0Y2hBZ2VudCBleHRlbmRzIExvY2FsU3RhY2tCYXRjaEFnZW50IHtcbiAgcHVibGljIHJ1bnRpbWVFbnRyeVBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlQWdlbnRSdW50aW1lRW50cnkoKTtcbiAgfVxufVxuXG5kZXNjcmliZSgnTG9jYWxTdGFja0JhdGNoQWdlbnQnLCAoKSA9PiB7XG4gIHRlc3QoJ2luamVjdHMgTG9jYWxTdGFjayBlbmRwb2ludCBlbnZpcm9ubWVudCB2YXJpYWJsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgYXBwID0gY3JlYXRlVGVzdEFwcCgpO1xuICAgIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKGFwcCwgJ0xvY2FsU3RhY2tCYXRjaEFnZW50U3RhY2snKTtcblxuICAgIGNvbnN0IHN5c3RlbVByb21wdCA9IG5ldyBBc3NldChzdGFjaywgJ1N5c3RlbVByb21wdCcsIHtcbiAgICAgIHBhdGg6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9hZ2VudHMvcmVzb3VyY2VzL2RlZmF1bHQtc3RyYW5kcy1hZ2VudC9iYXRjaC5weScpLFxuICAgIH0pO1xuXG4gICAgbmV3IExvY2FsU3RhY2tCYXRjaEFnZW50KHN0YWNrLCAnTG9jYWxTdGFja0JhdGNoQWdlbnQnLCB7XG4gICAgICBhZ2VudE5hbWU6ICdMb2NhbEFnZW50JyxcbiAgICAgIHByb21wdDogJ0FuYWx5emUgdGhpcyBkb2N1bWVudCcsXG4gICAgICBhZ2VudERlZmluaXRpb246IHtcbiAgICAgICAgYmVkcm9ja01vZGVsOiB7XG4gICAgICAgICAgY3VzdG9tTW9kZWxJZDogREVGQVVMVF9MT0NBTFNUQUNLX09MTEFNQV9NT0RFTF9JRCxcbiAgICAgICAgfSxcbiAgICAgICAgc3lzdGVtUHJvbXB0LFxuICAgICAgfSxcbiAgICAgIGxvY2FsU3RhY2s6IHtcbiAgICAgICAgZW5kcG9pbnRVcmw6IERFRkFVTFRfTE9DQUxTVEFDS19TQU5EQk9YX0VORFBPSU5UX1VSTCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gICAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nLCB7XG4gICAgICBFbnZpcm9ubWVudDoge1xuICAgICAgICBWYXJpYWJsZXM6IE1hdGNoLm9iamVjdExpa2Uoe1xuICAgICAgICAgIExPQ0FMU1RBQ0tfRU5BQkxFRDogJ3RydWUnLFxuICAgICAgICAgIEFXU19FTkRQT0lOVF9VUkw6IERFRkFVTFRfTE9DQUxTVEFDS19TQU5EQk9YX0VORFBPSU5UX1VSTCxcbiAgICAgICAgICBBV1NfRU5EUE9JTlRfVVJMX1MzOiBERUZBVUxUX0xPQ0FMU1RBQ0tfU0FOREJPWF9FTkRQT0lOVF9VUkwsXG4gICAgICAgICAgQVdTX0VORFBPSU5UX1VSTF9CRURST0NLX1JVTlRJTUU6IERFRkFVTFRfTE9DQUxTVEFDS19TQU5EQk9YX0VORFBPSU5UX1VSTCxcbiAgICAgICAgICBBV1NfRU5EUE9JTlRfVVJMX0JFRFJPQ0tfQUdFTlRfUlVOVElNRTogREVGQVVMVF9MT0NBTFNUQUNLX1NBTkRCT1hfRU5EUE9JTlRfVVJMLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xuXG4gIHRlc3QoJ3VzZXMgdGhlIExvY2FsU3RhY2svT2xsYW1hIHJ1bnRpbWUgZW50cnknLCAoKSA9PiB7XG4gICAgY29uc3QgYXBwID0gY3JlYXRlVGVzdEFwcCgpO1xuICAgIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKGFwcCwgJ0xvY2FsU3RhY2tCYXRjaEFnZW50UnVudGltZVN0YWNrJyk7XG5cbiAgICBjb25zdCBzeXN0ZW1Qcm9tcHQgPSBuZXcgQXNzZXQoc3RhY2ssICdSdW50aW1lU3lzdGVtUHJvbXB0Jywge1xuICAgICAgcGF0aDogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2FnZW50cy9yZXNvdXJjZXMvZGVmYXVsdC1zdHJhbmRzLWFnZW50L2JhdGNoLnB5JyksXG4gICAgfSk7XG5cbiAgICBjb25zdCBhZ2VudCA9IG5ldyBUZXN0YWJsZUxvY2FsU3RhY2tCYXRjaEFnZW50KHN0YWNrLCAnTG9jYWxTdGFja0JhdGNoQWdlbnRSdW50aW1lJywge1xuICAgICAgYWdlbnROYW1lOiAnTG9jYWxBZ2VudFJ1bnRpbWUnLFxuICAgICAgcHJvbXB0OiAnQW5hbHl6ZSB0aGlzIGRvY3VtZW50JyxcbiAgICAgIGFnZW50RGVmaW5pdGlvbjoge1xuICAgICAgICBiZWRyb2NrTW9kZWw6IHtcbiAgICAgICAgICBjdXN0b21Nb2RlbElkOiBERUZBVUxUX0xPQ0FMU1RBQ0tfT0xMQU1BX01PREVMX0lELFxuICAgICAgICB9LFxuICAgICAgICBzeXN0ZW1Qcm9tcHQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KGFnZW50LnJ1bnRpbWVFbnRyeVBhdGgoKSkudG9Db250YWluKHBhdGguam9pbigncmVzb3VyY2VzJywgJ2RlZmF1bHQtb2xsYW1hLWFnZW50JykpO1xuICB9KTtcbn0pO1xuIl19
|