bedrock-agentcore-starter-toolkit 0.1.9__py3-none-any.whl → 0.1.11__py3-none-any.whl
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.
Potentially problematic release.
This version of bedrock-agentcore-starter-toolkit might be problematic. Click here for more details.
- bedrock_agentcore_starter_toolkit/cli/cli.py +3 -1
- bedrock_agentcore_starter_toolkit/cli/runtime/commands.py +453 -176
- bedrock_agentcore_starter_toolkit/operations/gateway/create_role.py +6 -11
- bedrock_agentcore_starter_toolkit/operations/runtime/__init__.py +4 -0
- bedrock_agentcore_starter_toolkit/operations/runtime/destroy.py +547 -0
- bedrock_agentcore_starter_toolkit/operations/runtime/invoke.py +2 -2
- bedrock_agentcore_starter_toolkit/operations/runtime/launch.py +15 -0
- bedrock_agentcore_starter_toolkit/operations/runtime/models.py +10 -0
- bedrock_agentcore_starter_toolkit/services/import_agent/scripts/base_bedrock_translate.py +4 -3
- bedrock_agentcore_starter_toolkit/services/import_agent/utils.py +14 -0
- bedrock_agentcore_starter_toolkit/services/runtime.py +38 -4
- bedrock_agentcore_starter_toolkit/services/xray.py +161 -0
- bedrock_agentcore_starter_toolkit/utils/runtime/logs.py +18 -2
- bedrock_agentcore_starter_toolkit/utils/runtime/templates/Dockerfile.j2 +11 -25
- {bedrock_agentcore_starter_toolkit-0.1.9.dist-info → bedrock_agentcore_starter_toolkit-0.1.11.dist-info}/METADATA +4 -3
- {bedrock_agentcore_starter_toolkit-0.1.9.dist-info → bedrock_agentcore_starter_toolkit-0.1.11.dist-info}/RECORD +20 -18
- {bedrock_agentcore_starter_toolkit-0.1.9.dist-info → bedrock_agentcore_starter_toolkit-0.1.11.dist-info}/WHEEL +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.9.dist-info → bedrock_agentcore_starter_toolkit-0.1.11.dist-info}/entry_points.txt +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.9.dist-info → bedrock_agentcore_starter_toolkit-0.1.11.dist-info}/licenses/LICENSE.txt +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.9.dist-info → bedrock_agentcore_starter_toolkit-0.1.11.dist-info}/licenses/NOTICE.txt +0 -0
|
@@ -77,3 +77,13 @@ class StatusResult(BaseModel):
|
|
|
77
77
|
config: StatusConfigInfo = Field(..., description="Configuration information")
|
|
78
78
|
agent: Optional[Dict[str, Any]] = Field(None, description="Agent runtime details or error")
|
|
79
79
|
endpoint: Optional[Dict[str, Any]] = Field(None, description="Endpoint details or error")
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
class DestroyResult(BaseModel):
|
|
83
|
+
"""Result of destroy operation."""
|
|
84
|
+
|
|
85
|
+
agent_name: str = Field(..., description="Name of the destroyed agent")
|
|
86
|
+
resources_removed: List[str] = Field(default_factory=list, description="List of removed AWS resources")
|
|
87
|
+
warnings: List[str] = Field(default_factory=list, description="List of warnings during destruction")
|
|
88
|
+
errors: List[str] = Field(default_factory=list, description="List of errors during destruction")
|
|
89
|
+
dry_run: bool = Field(default=False, description="Whether this was a dry run")
|
|
@@ -21,6 +21,7 @@ from openapi_schema_to_json_schema import to_json_schema
|
|
|
21
21
|
|
|
22
22
|
from ....operations.gateway import GatewayClient
|
|
23
23
|
from ..utils import (
|
|
24
|
+
clean_gateway_or_target_name,
|
|
24
25
|
clean_variable_name,
|
|
25
26
|
generate_pydantic_models,
|
|
26
27
|
get_base_dir,
|
|
@@ -1033,7 +1034,7 @@ class BaseBedrockTranslator:
|
|
|
1033
1034
|
|
|
1034
1035
|
def _get_url_regex_pattern(self) -> str:
|
|
1035
1036
|
"""Get the URL regex pattern for source extraction."""
|
|
1036
|
-
return r
|
|
1037
|
+
return r"(?:https?://|www\.)(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}(?:/[^/\s]*)*"
|
|
1037
1038
|
|
|
1038
1039
|
def generate_entrypoint_code(self, platform: str) -> str:
|
|
1039
1040
|
"""Generate entrypoint code for the agent."""
|
|
@@ -1179,7 +1180,7 @@ class BaseBedrockTranslator:
|
|
|
1179
1180
|
continue
|
|
1180
1181
|
|
|
1181
1182
|
action_group_name = ag.get("actionGroupName", "AG")
|
|
1182
|
-
clean_action_group_name =
|
|
1183
|
+
clean_action_group_name = clean_gateway_or_target_name(action_group_name)
|
|
1183
1184
|
action_group_desc = ag.get("description", "").replace('"', '\\"')
|
|
1184
1185
|
end_lambda_arn = ag.get("actionGroupExecutor", {}).get("lambda", "")
|
|
1185
1186
|
tools = []
|
|
@@ -1323,7 +1324,7 @@ class BaseBedrockTranslator:
|
|
|
1323
1324
|
"lambdaRegion": end_lambda_arn.split(":")[3] if end_lambda_arn else "us-west-2",
|
|
1324
1325
|
}
|
|
1325
1326
|
|
|
1326
|
-
func_desc =
|
|
1327
|
+
func_desc = func.get("description", "No Description Provided.")
|
|
1327
1328
|
func_desc += f"\\nThis tool is part of the group of tools called {action_group_name}{f' (description: {action_group_desc})' if action_group_desc else ''}."
|
|
1328
1329
|
|
|
1329
1330
|
func_parameters = func.get("parameters", {})
|
|
@@ -50,6 +50,20 @@ def clean_variable_name(text):
|
|
|
50
50
|
return cleaned
|
|
51
51
|
|
|
52
52
|
|
|
53
|
+
def clean_gateway_or_target_name(text):
|
|
54
|
+
"""Clean a string to create a valid Gateway or Target name."""
|
|
55
|
+
text = str(text)
|
|
56
|
+
cleaned = re.sub(r"[^a-zA-Z0-9\s]", " ", text)
|
|
57
|
+
cleaned = cleaned.lower()
|
|
58
|
+
cleaned = re.sub(r"\s+", " ", cleaned)
|
|
59
|
+
cleaned = cleaned.strip()
|
|
60
|
+
cleaned = cleaned.replace(" ", "-")
|
|
61
|
+
if not cleaned:
|
|
62
|
+
cleaned = "gateway-or-target"
|
|
63
|
+
|
|
64
|
+
return cleaned
|
|
65
|
+
|
|
66
|
+
|
|
53
67
|
def unindent_by_one(input_code, spaces_per_indent=4):
|
|
54
68
|
"""Unindents the input code by one level of indentation.
|
|
55
69
|
|
|
@@ -29,7 +29,6 @@ def _handle_http_response(response) -> dict:
|
|
|
29
29
|
if "text/event-stream" in response.headers.get("content-type", ""):
|
|
30
30
|
return _handle_streaming_response(response)
|
|
31
31
|
else:
|
|
32
|
-
# Check if response has content
|
|
33
32
|
if not response.content:
|
|
34
33
|
raise ValueError("Empty response from agent endpoint")
|
|
35
34
|
|
|
@@ -43,6 +42,15 @@ def _handle_aws_response(response) -> dict:
|
|
|
43
42
|
try:
|
|
44
43
|
events = []
|
|
45
44
|
for event in response.get("response", []):
|
|
45
|
+
if isinstance(event, bytes):
|
|
46
|
+
try:
|
|
47
|
+
decoded = event.decode("utf-8")
|
|
48
|
+
if decoded.startswith('"') and decoded.endswith('"'):
|
|
49
|
+
event = json.loads(decoded)
|
|
50
|
+
else:
|
|
51
|
+
event = decoded
|
|
52
|
+
except (UnicodeDecodeError, json.JSONDecodeError):
|
|
53
|
+
pass
|
|
46
54
|
events.append(event)
|
|
47
55
|
except Exception as e:
|
|
48
56
|
events = [f"Error reading EventStream: {e}"]
|
|
@@ -64,11 +72,11 @@ def _handle_streaming_response(response) -> Dict[str, Any]:
|
|
|
64
72
|
text_chunk = parsed_chunk
|
|
65
73
|
else:
|
|
66
74
|
text_chunk = json.dumps(parsed_chunk, ensure_ascii=False)
|
|
67
|
-
text_chunk += "\n"
|
|
68
|
-
console.print(text_chunk, end=""
|
|
75
|
+
text_chunk += "\n\n"
|
|
76
|
+
console.print(text_chunk, end="")
|
|
69
77
|
complete_text += text_chunk
|
|
70
78
|
except json.JSONDecodeError:
|
|
71
|
-
console.print(json_chunk
|
|
79
|
+
console.print(json_chunk)
|
|
72
80
|
continue
|
|
73
81
|
console.print()
|
|
74
82
|
return {}
|
|
@@ -375,6 +383,32 @@ class BedrockAgentCoreClient:
|
|
|
375
383
|
endpointName=endpoint_name,
|
|
376
384
|
)
|
|
377
385
|
|
|
386
|
+
def delete_agent_runtime_endpoint(self, agent_id: str, endpoint_name: str = "DEFAULT") -> Dict:
|
|
387
|
+
"""Delete agent runtime endpoint.
|
|
388
|
+
|
|
389
|
+
Args:
|
|
390
|
+
agent_id: Agent ID to delete endpoint for
|
|
391
|
+
endpoint_name: Endpoint name, defaults to "DEFAULT"
|
|
392
|
+
|
|
393
|
+
Returns:
|
|
394
|
+
Response containing the deletion status
|
|
395
|
+
"""
|
|
396
|
+
self.logger.info("Deleting agent runtime endpoint '%s' for agent ID: %s", endpoint_name, agent_id)
|
|
397
|
+
try:
|
|
398
|
+
response = self.client.delete_agent_runtime_endpoint(
|
|
399
|
+
agentRuntimeId=agent_id,
|
|
400
|
+
endpointName=endpoint_name,
|
|
401
|
+
)
|
|
402
|
+
self.logger.info(
|
|
403
|
+
"Successfully initiated deletion of endpoint '%s' for agent ID: %s",
|
|
404
|
+
endpoint_name,
|
|
405
|
+
agent_id,
|
|
406
|
+
)
|
|
407
|
+
return response
|
|
408
|
+
except Exception as e:
|
|
409
|
+
self.logger.error("Failed to delete endpoint '%s' for agent ID '%s': %s", endpoint_name, agent_id, str(e))
|
|
410
|
+
raise
|
|
411
|
+
|
|
378
412
|
def invoke_endpoint(
|
|
379
413
|
self,
|
|
380
414
|
agent_arn: str,
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"""X-Ray Transaction Search service for enabling observability."""
|
|
2
|
+
|
|
3
|
+
import json
|
|
4
|
+
import logging
|
|
5
|
+
|
|
6
|
+
import boto3
|
|
7
|
+
from botocore.exceptions import ClientError
|
|
8
|
+
|
|
9
|
+
logger = logging.getLogger(__name__)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def _need_resource_policy(logs_client, policy_name="TransactionSearchXRayAccess"):
|
|
13
|
+
"""Check if resource policy needs to be created (fail-safe)."""
|
|
14
|
+
try:
|
|
15
|
+
response = logs_client.describe_resource_policies()
|
|
16
|
+
for policy in response.get("resourcePolicies", []):
|
|
17
|
+
if policy.get("policyName") == policy_name:
|
|
18
|
+
return False # Already exists
|
|
19
|
+
return True # Needs creation
|
|
20
|
+
except Exception:
|
|
21
|
+
return True # If check fails, assume we need it (safe)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def _need_trace_destination(xray_client):
|
|
25
|
+
"""Check if trace destination needs to be set (fail-safe)."""
|
|
26
|
+
try:
|
|
27
|
+
response = xray_client.get_trace_segment_destination()
|
|
28
|
+
return response.get("Destination") != "CloudWatchLogs"
|
|
29
|
+
except Exception:
|
|
30
|
+
return True # If check fails, assume we need it (safe)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _need_indexing_rule(xray_client):
|
|
34
|
+
"""Check if indexing rule needs to be configured (fail-safe)."""
|
|
35
|
+
try:
|
|
36
|
+
response = xray_client.get_indexing_rules()
|
|
37
|
+
for rule in response.get("IndexingRules", []):
|
|
38
|
+
if rule.get("Name") == "Default":
|
|
39
|
+
return False # Already configured
|
|
40
|
+
return True # Needs configuration
|
|
41
|
+
except Exception:
|
|
42
|
+
return True # If check fails, assume we need it (safe)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def enable_transaction_search_if_needed(region: str, account_id: str) -> bool:
|
|
46
|
+
"""Enable X-Ray Transaction Search components that are not already configured.
|
|
47
|
+
|
|
48
|
+
This function checks what's already configured and only runs needed steps.
|
|
49
|
+
It's fail-safe - if checks fail, it assumes configuration is needed.
|
|
50
|
+
|
|
51
|
+
Args:
|
|
52
|
+
region: AWS region
|
|
53
|
+
account_id: AWS account ID
|
|
54
|
+
|
|
55
|
+
Returns:
|
|
56
|
+
bool: True if Transaction Search was configured successfully, False if failed
|
|
57
|
+
"""
|
|
58
|
+
try:
|
|
59
|
+
session = boto3.Session(region_name=region)
|
|
60
|
+
logs_client = session.client("logs")
|
|
61
|
+
xray_client = session.client("xray")
|
|
62
|
+
|
|
63
|
+
steps_run = []
|
|
64
|
+
|
|
65
|
+
# Step 1: Resource policy (only if needed)
|
|
66
|
+
if _need_resource_policy(logs_client):
|
|
67
|
+
_create_cloudwatch_logs_resource_policy(logs_client, account_id, region)
|
|
68
|
+
steps_run.append("resource_policy")
|
|
69
|
+
else:
|
|
70
|
+
logger.info("CloudWatch Logs resource policy already configured")
|
|
71
|
+
|
|
72
|
+
# Step 2: Trace destination (only if needed)
|
|
73
|
+
if _need_trace_destination(xray_client):
|
|
74
|
+
_configure_trace_segment_destination(xray_client)
|
|
75
|
+
steps_run.append("trace_destination")
|
|
76
|
+
else:
|
|
77
|
+
logger.info("X-Ray trace destination already configured")
|
|
78
|
+
|
|
79
|
+
# Step 3: Indexing rule (only if needed)
|
|
80
|
+
if _need_indexing_rule(xray_client):
|
|
81
|
+
_configure_indexing_rule(xray_client)
|
|
82
|
+
steps_run.append("indexing_rule")
|
|
83
|
+
else:
|
|
84
|
+
logger.info("X-Ray indexing rule already configured")
|
|
85
|
+
|
|
86
|
+
if steps_run:
|
|
87
|
+
logger.info("✅ Transaction Search configured: %s", ", ".join(steps_run))
|
|
88
|
+
else:
|
|
89
|
+
logger.info("✅ Transaction Search already fully configured")
|
|
90
|
+
|
|
91
|
+
return True
|
|
92
|
+
|
|
93
|
+
except Exception as e:
|
|
94
|
+
logger.warning("Transaction Search configuration failed: %s", str(e))
|
|
95
|
+
logger.info("Agent launch will continue without Transaction Search")
|
|
96
|
+
return False # Don't fail launch
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def _create_cloudwatch_logs_resource_policy(logs_client, account_id: str, region: str) -> None:
|
|
100
|
+
"""Create CloudWatch Logs resource policy for X-Ray access (idempotent)."""
|
|
101
|
+
policy_name = "TransactionSearchXRayAccess"
|
|
102
|
+
|
|
103
|
+
policy_document = {
|
|
104
|
+
"Version": "2012-10-17",
|
|
105
|
+
"Statement": [
|
|
106
|
+
{
|
|
107
|
+
"Sid": "TransactionSearchXRayAccess",
|
|
108
|
+
"Effect": "Allow",
|
|
109
|
+
"Principal": {"Service": "xray.amazonaws.com"},
|
|
110
|
+
"Action": "logs:PutLogEvents",
|
|
111
|
+
"Resource": [
|
|
112
|
+
f"arn:aws:logs:{region}:{account_id}:log-group:aws/spans:*",
|
|
113
|
+
f"arn:aws:logs:{region}:{account_id}:log-group:/aws/application-signals/data:*",
|
|
114
|
+
],
|
|
115
|
+
"Condition": {
|
|
116
|
+
"ArnLike": {"aws:SourceArn": f"arn:aws:xray:{region}:{account_id}:*"},
|
|
117
|
+
"StringEquals": {"aws:SourceAccount": account_id},
|
|
118
|
+
},
|
|
119
|
+
}
|
|
120
|
+
],
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
try:
|
|
124
|
+
logs_client.put_resource_policy(policyName=policy_name, policyDocument=json.dumps(policy_document))
|
|
125
|
+
logger.info("Created/updated CloudWatch Logs resource policy")
|
|
126
|
+
except ClientError as e:
|
|
127
|
+
if e.response["Error"]["Code"] == "InvalidParameterException":
|
|
128
|
+
# Policy might already exist with same content
|
|
129
|
+
logger.info("CloudWatch Logs resource policy already configured")
|
|
130
|
+
else:
|
|
131
|
+
raise
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def _configure_trace_segment_destination(xray_client) -> None:
|
|
135
|
+
"""Configure X-Ray trace segment destination to CloudWatch Logs (idempotent)."""
|
|
136
|
+
try:
|
|
137
|
+
# Configure trace segments to be sent to CloudWatch Logs
|
|
138
|
+
# This enables Transaction Search functionality
|
|
139
|
+
xray_client.update_trace_segment_destination(Destination="CloudWatchLogs")
|
|
140
|
+
logger.info("Configured X-Ray trace segment destination to CloudWatch Logs")
|
|
141
|
+
except ClientError as e:
|
|
142
|
+
if e.response["Error"]["Code"] == "InvalidRequestException":
|
|
143
|
+
# Destination might already be configured
|
|
144
|
+
logger.info("X-Ray trace segment destination already configured")
|
|
145
|
+
else:
|
|
146
|
+
raise
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
def _configure_indexing_rule(xray_client) -> None:
|
|
150
|
+
"""Configure X-Ray indexing rule for transaction search (idempotent)."""
|
|
151
|
+
try:
|
|
152
|
+
# Update the default indexing rule with probabilistic sampling
|
|
153
|
+
# This is idempotent - it will update the existing rule
|
|
154
|
+
xray_client.update_indexing_rule(Name="Default", Rule={"Probabilistic": {"DesiredSamplingPercentage": 1}})
|
|
155
|
+
logger.info("Updated X-Ray indexing rule for Transaction Search")
|
|
156
|
+
except ClientError as e:
|
|
157
|
+
if e.response["Error"]["Code"] == "InvalidRequestException":
|
|
158
|
+
# Rule might already be configured
|
|
159
|
+
logger.info("X-Ray indexing rule already configured")
|
|
160
|
+
else:
|
|
161
|
+
raise
|
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
"""Utility functions for agent log information."""
|
|
2
2
|
|
|
3
|
+
from datetime import datetime, timezone
|
|
3
4
|
from typing import Optional, Tuple
|
|
4
5
|
|
|
5
6
|
|
|
7
|
+
def get_genai_observability_url(region: str) -> str:
|
|
8
|
+
"""Get GenAI Observability Dashboard console URL.
|
|
9
|
+
|
|
10
|
+
Args:
|
|
11
|
+
region: The AWS region
|
|
12
|
+
|
|
13
|
+
Returns:
|
|
14
|
+
The GenAI Observability Dashboard console URL
|
|
15
|
+
"""
|
|
16
|
+
return f"https://console.aws.amazon.com/cloudwatch/home?region={region}#gen-ai-observability/agent-core"
|
|
17
|
+
|
|
18
|
+
|
|
6
19
|
def get_agent_log_paths(agent_id: str, endpoint_name: Optional[str] = None) -> Tuple[str, str]:
|
|
7
20
|
"""Get CloudWatch log group paths for an agent.
|
|
8
21
|
|
|
@@ -14,8 +27,11 @@ def get_agent_log_paths(agent_id: str, endpoint_name: Optional[str] = None) -> T
|
|
|
14
27
|
Tuple of (runtime_log_group, otel_log_group)
|
|
15
28
|
"""
|
|
16
29
|
endpoint_name = endpoint_name or "DEFAULT"
|
|
17
|
-
runtime_log_group =
|
|
18
|
-
|
|
30
|
+
runtime_log_group = (
|
|
31
|
+
f"/aws/bedrock-agentcore/runtimes/{agent_id}-{endpoint_name} "
|
|
32
|
+
f'--log-stream-name-prefix "{datetime.now(timezone.utc).strftime("%Y/%m/%d")}/\\[runtime-logs]"'
|
|
33
|
+
)
|
|
34
|
+
otel_log_group = f'/aws/bedrock-agentcore/runtimes/{agent_id}-{endpoint_name} --log-stream-names "otel-rt-logs"'
|
|
19
35
|
return runtime_log_group, otel_log_group
|
|
20
36
|
|
|
21
37
|
|
|
@@ -1,43 +1,29 @@
|
|
|
1
1
|
FROM ghcr.io/astral-sh/uv:python{{ python_version }}-bookworm-slim
|
|
2
|
-
WORKDIR /app
|
|
3
2
|
|
|
4
|
-
#
|
|
5
|
-
ENV UV_SYSTEM_PYTHON=1 UV_COMPILE_BYTECODE=1
|
|
3
|
+
# All environment variables in one layer
|
|
4
|
+
ENV UV_SYSTEM_PYTHON=1 UV_COMPILE_BYTECODE=1 PYTHONUNBUFFERED=1 \
|
|
5
|
+
{% if aws_region %} AWS_REGION={{ aws_region }} AWS_DEFAULT_REGION={{ aws_region }} \
|
|
6
|
+
{% endif %} DOCKER_CONTAINER=1
|
|
6
7
|
|
|
7
8
|
{% if dependencies_file %}
|
|
8
9
|
{% if dependencies_install_path %}
|
|
9
10
|
COPY {{ dependencies_install_path }} {{ dependencies_install_path }}
|
|
10
|
-
# Install from pyproject.toml directory
|
|
11
|
-
RUN uv pip install {{ dependencies_install_path }}
|
|
12
11
|
{% else %}
|
|
13
12
|
COPY {{ dependencies_file }} {{ dependencies_file }}
|
|
14
|
-
# Install from requirements file
|
|
15
|
-
RUN uv pip install -r {{ dependencies_file }}
|
|
16
13
|
{% endif %}
|
|
17
14
|
{% endif %}
|
|
18
15
|
|
|
19
|
-
{% if observability_enabled %}
|
|
20
|
-
RUN uv pip install
|
|
21
|
-
{% endif %}
|
|
22
|
-
|
|
23
|
-
# Set AWS region environment variable
|
|
24
|
-
{% if aws_region %}
|
|
25
|
-
ENV AWS_REGION={{ aws_region }}
|
|
26
|
-
ENV AWS_DEFAULT_REGION={{ aws_region }}
|
|
16
|
+
{% if dependencies_file or observability_enabled %}
|
|
17
|
+
RUN {% if dependencies_file %}{% if dependencies_install_path %}uv pip install {{ dependencies_install_path }}{% else %}uv pip install -r {{ dependencies_file }}{% endif %}{% endif %}{% if observability_enabled %}{% if dependencies_file %} && \
|
|
18
|
+
{% endif %}uv pip install aws-opentelemetry-distro>=0.10.1{% endif %}
|
|
27
19
|
{% endif %}
|
|
28
20
|
|
|
29
|
-
|
|
30
|
-
ENV DOCKER_CONTAINER=1
|
|
21
|
+
EXPOSE 8080 8000
|
|
31
22
|
|
|
32
|
-
#
|
|
33
|
-
|
|
34
|
-
USER bedrock_agentcore
|
|
35
|
-
|
|
36
|
-
EXPOSE 8080
|
|
37
|
-
EXPOSE 8000
|
|
38
|
-
|
|
39
|
-
# Copy entire project (respecting .dockerignore)
|
|
23
|
+
# Copy entire project
|
|
24
|
+
{% if not dependencies_install_path or dependencies_install_path != '.' %}
|
|
40
25
|
COPY . .
|
|
26
|
+
{% endif %}
|
|
41
27
|
|
|
42
28
|
# Use the full module path
|
|
43
29
|
{% if observability_enabled %}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bedrock-agentcore-starter-toolkit
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.11
|
|
4
4
|
Summary: A starter toolkit for using Bedrock AgentCore
|
|
5
5
|
Project-URL: Homepage, https://github.com/aws/bedrock-agentcore-starter-toolkit
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/aws/bedrock-agentcore-starter-toolkit/issues
|
|
@@ -22,7 +22,7 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
|
22
22
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
23
|
Requires-Python: >=3.10
|
|
24
24
|
Requires-Dist: autopep8>=2.3.2
|
|
25
|
-
Requires-Dist: bedrock-agentcore>=0.1.
|
|
25
|
+
Requires-Dist: bedrock-agentcore>=0.1.4
|
|
26
26
|
Requires-Dist: boto3>=1.39.7
|
|
27
27
|
Requires-Dist: botocore>=1.39.7
|
|
28
28
|
Requires-Dist: docstring-parser<1.0,>=0.15
|
|
@@ -38,6 +38,7 @@ Requires-Dist: questionary>=2.1.0
|
|
|
38
38
|
Requires-Dist: requests>=2.25.0
|
|
39
39
|
Requires-Dist: rich>=13.0.0
|
|
40
40
|
Requires-Dist: ruamel-yaml>=0.18.14
|
|
41
|
+
Requires-Dist: strands-agents>=1.7.1
|
|
41
42
|
Requires-Dist: toml>=0.10.2
|
|
42
43
|
Requires-Dist: typer>=0.16.0
|
|
43
44
|
Requires-Dist: typing-extensions<5.0.0,>=4.13.2
|
|
@@ -87,6 +88,7 @@ AgentCore Runtime is a secure, serverless runtime purpose-built for deploying an
|
|
|
87
88
|
## 🧠 Amazon Bedrock AgentCore Memory
|
|
88
89
|
AgentCore Memory makes it easy for developers to build context aware agents by eliminating complex memory infrastructure management while providing full control over what the AI agent remembers. Memory provides industry-leading accuracy along with support for both short-term memory for multi-turn conversations and long-term memory that can be shared across agents and sessions.
|
|
89
90
|
|
|
91
|
+
|
|
90
92
|
**[Memory Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/memory/quickstart.html)**
|
|
91
93
|
|
|
92
94
|
## 🔗 Amazon Bedrock AgentCore Gateway
|
|
@@ -99,7 +101,6 @@ AgentCore Code Interpreter tool enables agents to securely execute code in isola
|
|
|
99
101
|
|
|
100
102
|
**[Code Interpreter Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/builtin-tools/quickstart-code-interpreter.html)**
|
|
101
103
|
|
|
102
|
-
|
|
103
104
|
## 🌐 Amazon Bedrock AgentCore Browser
|
|
104
105
|
AgentCore Browser tool provides a fast, secure, cloud-based browser runtime to enable AI agents to interact with websites at scale. It provides enterprise-grade security, comprehensive observability features, and automatically scales— all without infrastructure management overhead.
|
|
105
106
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
bedrock_agentcore_starter_toolkit/__init__.py,sha256=tN3-JWKvxk4ZSJQJIHQ4mMsDtt8J_cDCz-drcGU9USA,120
|
|
2
2
|
bedrock_agentcore_starter_toolkit/cli/__init__.py,sha256=WuIWfHtJKD9gQA-mE49bq8OHGb0Ugt8upRGaOp6-H90,62
|
|
3
|
-
bedrock_agentcore_starter_toolkit/cli/cli.py,sha256=
|
|
3
|
+
bedrock_agentcore_starter_toolkit/cli/cli.py,sha256=G910onhHZRGVwFITZXYY-x1A_C7hmERyqYrdgcmZcoI,1064
|
|
4
4
|
bedrock_agentcore_starter_toolkit/cli/common.py,sha256=R9ZRKmW9gq7u7gkTiCUOTCQTno2lXnsplnq2x0-k2v8,1311
|
|
5
5
|
bedrock_agentcore_starter_toolkit/cli/gateway/__init__.py,sha256=8IZ0kSe6Kz5s2j-SBsoc6qy04MbK85RMTQwZCiR2wmo,68
|
|
6
6
|
bedrock_agentcore_starter_toolkit/cli/gateway/commands.py,sha256=3DuXCvqXlmHU2cmjGzDruyc2Fkrpgoi158myj0vc3nA,3265
|
|
@@ -9,7 +9,7 @@ bedrock_agentcore_starter_toolkit/cli/import_agent/__init__.py,sha256=tyM3dXM3Tc
|
|
|
9
9
|
bedrock_agentcore_starter_toolkit/cli/import_agent/agent_info.py,sha256=V0fZEbV76_H3gmkA17yscyJ8UdcMAquzNqENQ9DXdHA,9477
|
|
10
10
|
bedrock_agentcore_starter_toolkit/cli/import_agent/commands.py,sha256=vpA66fGwKf6cxBelT3Yb_Af5Ow3AMquGLIDe-tBLjmc,22419
|
|
11
11
|
bedrock_agentcore_starter_toolkit/cli/runtime/__init__.py,sha256=0zKPPoYThoDIr3DZhIQJavq5nVTKRsgcE1s9--wx118,60
|
|
12
|
-
bedrock_agentcore_starter_toolkit/cli/runtime/commands.py,sha256=
|
|
12
|
+
bedrock_agentcore_starter_toolkit/cli/runtime/commands.py,sha256=s7-JKK5gEmY7amfXPcPmQGQv7487fU-mxdUfTOEz9KA,45283
|
|
13
13
|
bedrock_agentcore_starter_toolkit/cli/runtime/configuration_manager.py,sha256=5TJK80uzA1ARh263smLfthw1t5Ona3bAtdO1pE7OfNo,5808
|
|
14
14
|
bedrock_agentcore_starter_toolkit/notebook/__init__.py,sha256=wH1ZzIVKsKT_P0qX2kIIoyVxeHj8K40odfR1YI3McHw,129
|
|
15
15
|
bedrock_agentcore_starter_toolkit/notebook/runtime/__init__.py,sha256=DoGfB_uGFLANJVE9rSZtTH3ymw76WBWmD9vORvBIdXs,66
|
|
@@ -19,27 +19,29 @@ bedrock_agentcore_starter_toolkit/operations/gateway/__init__.py,sha256=5Qo1GeN-
|
|
|
19
19
|
bedrock_agentcore_starter_toolkit/operations/gateway/client.py,sha256=8WP2E_u6h1-mPfz4TgNMloD6bcXfoXQDL3UCrbyhT7g,20068
|
|
20
20
|
bedrock_agentcore_starter_toolkit/operations/gateway/constants.py,sha256=0_4J6BN4VAE4-XTQhPTEACkhilRrFqu_iKiuHSm2pYk,4610
|
|
21
21
|
bedrock_agentcore_starter_toolkit/operations/gateway/create_lambda.py,sha256=MQsBJfUj26zBh7LqYWLoekHuvbAHIJE8qcXwrmJOhM0,2875
|
|
22
|
-
bedrock_agentcore_starter_toolkit/operations/gateway/create_role.py,sha256=
|
|
22
|
+
bedrock_agentcore_starter_toolkit/operations/gateway/create_role.py,sha256=Oma9s6K4T9EFgwPAUDungDL9fGa3W0LsHBknIXUmSpI,4474
|
|
23
23
|
bedrock_agentcore_starter_toolkit/operations/gateway/exceptions.py,sha256=WjsrE7lT2708CJniM_ISMzkfNX4IUteGgvOxleD9JZY,272
|
|
24
|
-
bedrock_agentcore_starter_toolkit/operations/runtime/__init__.py,sha256=
|
|
24
|
+
bedrock_agentcore_starter_toolkit/operations/runtime/__init__.py,sha256=0jRUuwSoqh4R_WqzfP4XAXngrgyFK5uH8JGXUVars6Y,793
|
|
25
25
|
bedrock_agentcore_starter_toolkit/operations/runtime/configure.py,sha256=7xjNN6fn1U2cv20W2tmHdlbSjc-RU953tnbOaH5iXPQ,9056
|
|
26
26
|
bedrock_agentcore_starter_toolkit/operations/runtime/create_role.py,sha256=o3rimy-9SDOS0r-DKHctKSS6dAVIGelhn1zUhrSeolY,15952
|
|
27
|
-
bedrock_agentcore_starter_toolkit/operations/runtime/
|
|
28
|
-
bedrock_agentcore_starter_toolkit/operations/runtime/
|
|
29
|
-
bedrock_agentcore_starter_toolkit/operations/runtime/
|
|
27
|
+
bedrock_agentcore_starter_toolkit/operations/runtime/destroy.py,sha256=XuQQ_fBetQxanIZQx5MMvKYQGbaUHqU9JwJXZOeraco,23541
|
|
28
|
+
bedrock_agentcore_starter_toolkit/operations/runtime/invoke.py,sha256=Cd3GwL0ft2z6nqSy-ESi94yI_anagLjrFV4uNLJTPaA,4562
|
|
29
|
+
bedrock_agentcore_starter_toolkit/operations/runtime/launch.py,sha256=NWiMHPnhz1LMFd5o9HV2OkezCsK6T52MK7PELuCEKtk,19928
|
|
30
|
+
bedrock_agentcore_starter_toolkit/operations/runtime/models.py,sha256=iSpD6Zc-FyS4Fu_oRzXzre4N9uYuzBMDkvZZx4MhBGE,4220
|
|
30
31
|
bedrock_agentcore_starter_toolkit/operations/runtime/status.py,sha256=tpOtzAq1S3z_7baxR_WOT8Avo3MtWKGpelVOOfb-uMA,2516
|
|
31
32
|
bedrock_agentcore_starter_toolkit/services/__init__.py,sha256=s7QtYYFCCX2ff0gZHUdDxCDI3zhUq0fPsjevZbF9xdA,66
|
|
32
33
|
bedrock_agentcore_starter_toolkit/services/codebuild.py,sha256=77aagVvjSMQxBfNmwYTO6lwE_2izXGqgc6kWp9Bf98U,13618
|
|
33
34
|
bedrock_agentcore_starter_toolkit/services/ecr.py,sha256=nW9wIZcXI6amZeLVSmM9F6awVBQP1-zrFXTozSNEDjo,2805
|
|
34
|
-
bedrock_agentcore_starter_toolkit/services/runtime.py,sha256=
|
|
35
|
+
bedrock_agentcore_starter_toolkit/services/runtime.py,sha256=azrGTGjQhQczEY_F3dwfsNeUx0n2Uc_9R9WAu4HOSrM,19984
|
|
36
|
+
bedrock_agentcore_starter_toolkit/services/xray.py,sha256=CRlcfVXpghVy7PvZqLUC4rp49Sw5DQ98rUU61HAluRM,6363
|
|
35
37
|
bedrock_agentcore_starter_toolkit/services/import_agent/__init__.py,sha256=ig-xanZqA3oJdRTucYz9xF9_2yi31ADRVIKFsnIw_l4,68
|
|
36
|
-
bedrock_agentcore_starter_toolkit/services/import_agent/utils.py,sha256=
|
|
38
|
+
bedrock_agentcore_starter_toolkit/services/import_agent/utils.py,sha256=yCnzqv3S8sbQi6ArTz3MeR4ggRcojbAgMbBb7KAf0sA,16077
|
|
37
39
|
bedrock_agentcore_starter_toolkit/services/import_agent/assets/memory_manager_template.py,sha256=RKrtTxir5XxyMg6cim4CAEbguaxb4mg1Qb31pd7D_kY,7892
|
|
38
40
|
bedrock_agentcore_starter_toolkit/services/import_agent/assets/requirements_langchain.j2,sha256=gZcpxIW0D4qSU6hNPSRZ75zBB6ES7IZj1G-mrfEJG1s,181
|
|
39
41
|
bedrock_agentcore_starter_toolkit/services/import_agent/assets/requirements_strands.j2,sha256=ZAWzCFwdj8Mbq8aBGO3Jnxz0G8XJZPNpIsPf_2Jetfk,100
|
|
40
42
|
bedrock_agentcore_starter_toolkit/services/import_agent/assets/template_fixtures_merged.json,sha256=Xem7jS8n96QEyHBmnPAvWHM4AyTLyma7Nq9sCVHuXJA,175239
|
|
41
43
|
bedrock_agentcore_starter_toolkit/services/import_agent/scripts/__init__.py,sha256=UmhcnsfIo2P1Z9VAJ6Ua2mSkxs4BOeTxgFMcgQXQWCQ,79
|
|
42
|
-
bedrock_agentcore_starter_toolkit/services/import_agent/scripts/base_bedrock_translate.py,sha256=
|
|
44
|
+
bedrock_agentcore_starter_toolkit/services/import_agent/scripts/base_bedrock_translate.py,sha256=0xxHXhsQP_FG-1RgbHqx9r8U6CrBY8GhDKRnWTmYEJQ,72751
|
|
43
45
|
bedrock_agentcore_starter_toolkit/services/import_agent/scripts/bedrock_to_langchain.py,sha256=xwoZcmZ27CfYohwSfLIgbFxa2ubiBFhvufgQEWZkmLk,14950
|
|
44
46
|
bedrock_agentcore_starter_toolkit/services/import_agent/scripts/bedrock_to_strands.py,sha256=eC3v2Ts7B_RUGl4bkUim2uFYYuZZYP9syYBlylJ2gXs,14642
|
|
45
47
|
bedrock_agentcore_starter_toolkit/utils/endpoints.py,sha256=1gIDRd1oO1fymYpiedVit7m6zl5k6N8Ns9N-2ix7ZaE,1153
|
|
@@ -47,16 +49,16 @@ bedrock_agentcore_starter_toolkit/utils/logging_config.py,sha256=NtZDyndNKCAbz7j
|
|
|
47
49
|
bedrock_agentcore_starter_toolkit/utils/runtime/config.py,sha256=qRQid59rD3zJ0d0hcBY4-8R52PNIWEIUt9iR3biuz_c,4495
|
|
48
50
|
bedrock_agentcore_starter_toolkit/utils/runtime/container.py,sha256=wGJLxwT2mhTGPxSoFb6x9lW7Tyz37YghIvSs4jBnO8A,15679
|
|
49
51
|
bedrock_agentcore_starter_toolkit/utils/runtime/entrypoint.py,sha256=d-XjEwvQOdpRHvBGLdIBCs1fgUwNwB0EL_WkcdQXwXQ,5893
|
|
50
|
-
bedrock_agentcore_starter_toolkit/utils/runtime/logs.py,sha256=
|
|
52
|
+
bedrock_agentcore_starter_toolkit/utils/runtime/logs.py,sha256=ZZ9PD4QO0BSms5KphhUb3-6-IPTkmwkY-Zn2AWM9Aew,1601
|
|
51
53
|
bedrock_agentcore_starter_toolkit/utils/runtime/policy_template.py,sha256=CgER7YXPh0BpR6JcTcumDL_k8bhmfLSEok1sf09-31I,2054
|
|
52
54
|
bedrock_agentcore_starter_toolkit/utils/runtime/schema.py,sha256=gZ0zPvry-ZkXwqUEAy6Izz1RJvmZaXA6a2twnSdk1AY,6418
|
|
53
|
-
bedrock_agentcore_starter_toolkit/utils/runtime/templates/Dockerfile.j2,sha256=
|
|
55
|
+
bedrock_agentcore_starter_toolkit/utils/runtime/templates/Dockerfile.j2,sha256=X_tNR3Qw7G9rz1rtM6WP2RuqZhehzplgobT8Vx3TDok,1245
|
|
54
56
|
bedrock_agentcore_starter_toolkit/utils/runtime/templates/dockerignore.template,sha256=b_70sBi0MwkTuA9TqxPqFcWK7TcmpaXBJ6M2Ipox65Q,691
|
|
55
57
|
bedrock_agentcore_starter_toolkit/utils/runtime/templates/execution_role_policy.json.j2,sha256=-0AXT46IYVQr4fwueXTQ0FVXcCshZFNx7-2mViR34Co,4941
|
|
56
58
|
bedrock_agentcore_starter_toolkit/utils/runtime/templates/execution_role_trust_policy.json.j2,sha256=PPJF6Ofq70W5DUE0NlbmnZjw5RkgepPgkskxEgEG28o,473
|
|
57
|
-
bedrock_agentcore_starter_toolkit-0.1.
|
|
58
|
-
bedrock_agentcore_starter_toolkit-0.1.
|
|
59
|
-
bedrock_agentcore_starter_toolkit-0.1.
|
|
60
|
-
bedrock_agentcore_starter_toolkit-0.1.
|
|
61
|
-
bedrock_agentcore_starter_toolkit-0.1.
|
|
62
|
-
bedrock_agentcore_starter_toolkit-0.1.
|
|
59
|
+
bedrock_agentcore_starter_toolkit-0.1.11.dist-info/METADATA,sha256=mD8ZbSvNP-ysXpbQyPDOBTJyUa9qwNY66CH9_afM8Nc,9744
|
|
60
|
+
bedrock_agentcore_starter_toolkit-0.1.11.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
61
|
+
bedrock_agentcore_starter_toolkit-0.1.11.dist-info/entry_points.txt,sha256=Tf94DkUf2Tp8P7p8MEXLxre7A7Pp_XNukteiz0wHnk8,77
|
|
62
|
+
bedrock_agentcore_starter_toolkit-0.1.11.dist-info/licenses/LICENSE.txt,sha256=nNPOMinitYdtfbhdQgsPgz1UowBznU6QVN3Xs0pSTKU,10768
|
|
63
|
+
bedrock_agentcore_starter_toolkit-0.1.11.dist-info/licenses/NOTICE.txt,sha256=rkBsg8DbKqfIoQbveqX9foR4uJPUVAokbkr02pRPilE,8674
|
|
64
|
+
bedrock_agentcore_starter_toolkit-0.1.11.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|