- workspace-mcp: add proxy.py (port 8080) that reads X-Actor-Id header,
fetches per-user Google credentials from Secrets Manager, writes creds
file, sets USER_GOOGLE_EMAIL, proxies to workspace-mcp on port 8081
- workspace-mcp: update bootstrap to start workspace-mcp on 8081 + proxy on 8080
- workspace-mcp: update Dockerfile to include proxy.py
- oauth-handler Lambda: new Lambda with /oauth/start + /oauth/callback
routes; exchanges Google auth code, stores tokens in Secrets Manager
at agent-claw/google-credentials/{actor_id_safe}, updates DynamoDB
- CDK: add OAuthHandler Lambda + GET /oauth/start + /oauth/callback routes
- CDK: remove shared google-workspace-credentials secret; add per-user
secret IAM grants (agent-claw/google-credentials/*) for workspace-mcp
role, runtime1 role, and oauth-handler role
- CDK: output OAuthStartUrl + OAuthRedirectUri
- agent-runner: pass google_email in user_profile payload
- main.py: pass actor_id as X-Actor-Id header in workspace-mcp MCP calls;
skip workspace-mcp if user has no google_email; add connect_google_account
tool that generates OAuth URL for the current user
- main.py: include google_email in user_context for system prompt
- agentcore.json: add OAUTH_START_URL env var for agent runtime
58 lines
1.3 KiB
JSON
58 lines
1.3 KiB
JSON
{
|
|
"$schema": "https://schema.agentcore.aws.dev/v1/agentcore.json",
|
|
"name": "agentclaw",
|
|
"version": 1,
|
|
"managedBy": "CDK",
|
|
"tags": {
|
|
"agentcore:created-by": "agentcore-cli",
|
|
"agentcore:project-name": "agentclaw"
|
|
},
|
|
"runtimes": [
|
|
{
|
|
"name": "agent_claw_main",
|
|
"build": "CodeZip",
|
|
"entrypoint": "main.py",
|
|
"codeLocation": "app/agent_claw_main/",
|
|
"runtimeVersion": "PYTHON_3_14",
|
|
"networkMode": "PUBLIC",
|
|
"protocol": "HTTP",
|
|
"environmentVariables": {
|
|
"OAUTH_START_URL": "https://sptejrymri.execute-api.us-east-1.amazonaws.com/oauth/start"
|
|
}
|
|
}
|
|
],
|
|
"memories": [
|
|
{
|
|
"name": "AgentClawMemory",
|
|
"eventExpiryDuration": 30,
|
|
"strategies": [
|
|
{
|
|
"type": "SEMANTIC",
|
|
"namespaces": [
|
|
"/users/{actorId}/facts"
|
|
]
|
|
},
|
|
{
|
|
"type": "SUMMARIZATION",
|
|
"namespaces": [
|
|
"/summaries/{actorId}/{sessionId}"
|
|
]
|
|
},
|
|
{
|
|
"type": "USER_PREFERENCE",
|
|
"namespaces": [
|
|
"/users/{actorId}/preferences"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"credentials": [],
|
|
"evaluators": [],
|
|
"onlineEvalConfigs": [],
|
|
"agentCoreGateways": [],
|
|
"policyEngines": [],
|
|
"configBundles": [],
|
|
"abTests": [],
|
|
"httpGateways": []
|
|
} |