anthropics / anthropics/claude-plugins-official
aws-core: marketplace pins agent-toolkit-for-aws to a pre-fix commit — asm-exec resolves no secrets (fixed upstream, PR #296)
- Lenguaje dominante
- Python
- Estrellas
- 36.3k
- Forks
- 4.1k
- Merge medio
- 2 d 14 h
- PR fusionados (30 d)
- 539
Descripción
## Summary
The marketplace pins `aws-core` to `aws/agent-toolkit-for-aws` commit `08ad220e4e9bbc498821ce9360b3dcdf4813121d` (2026-07-15). That revision predates a critical fix to `asm-exec` — the `references/asm-exec` script the `aws-secrets-manager` skill tells agents to use as the *only* sanctioned way to resolve a `{{resolve:secretsmanager:...}}` reference into a shell command without the secret entering agent context.
On any host without a local Secrets Manager Agent daemon on `localhost:2773` (i.e. most non-Lambda/non-EC2 environments), `asm-exec` fails to resolve **every** secret reference with `asm-exec: ERROR: Failed to resolve: `.
## Root cause (fixed upstream, not yet picked up by the pin)
Two independent defects, reported and fixed together upstream:
1. `_resolve_via_mcp` calls a tool named `aws___call_aws`, which no longer exists on the AWS MCP endpoint (`aws-mcp.us-east-1.api.aws/mcp`). Every call now returns a JSON-RPC error:
```json
{"jsonrpc":"2.0","id":2,"error":{"code":-32600,"message":"The call_aws tool has been removed, use another one."}}
```
`tools/list` on the same session confirms the replacement set: `aws___run_script`, `aws___get_presigned_url`, `aws___get_tasks`, `aws___get_regional_availability`, `aws___list_regions`, `aws___read_documentation`, `aws___retrieve_skill`, `aws___search_documentation`. The CLI-passthrough tool was retired server-side in favor of `aws___run_script` (a sandboxed Python executor with `call_boto3(service_name, operation_name, region_name, params)`, where `operation_name` is the PascalCase botocore API name, e.g. `GetSecretValue`).
2. `_resolve_via_mcp`'s except clause swallows the failure into one generic message regardless of cause:
```python
except (urllib.error.URLError, OSError, json.JSONDecodeError,
KeyError, TypeError, RuntimeError):
pass
return None
```
A removed tool, a timeout, a missing IAM permission, and a misspelled secret name all produce the identical `Failed to resolve: `, with no diagnostic to tell them apart.
This was independently found, reported, and fixed upstream in `aws/agent-toolkit-for-aws`:
- Issue: https://github.com/aws/agent-toolkit-for-aws/issues/293
- Fix: https://github.com/aws/agent-toolkit-for-aws/commit/6d1de54ace0b (PR #296, "fix(asm-exec): resolve secrets via run_script (fixes #293)", merged 2026-09-07)
The fix ports `_resolve_via_mcp` to `aws___run_script`, widens/parameterizes the MCP call timeout (the `run_script` round trip commonly exceeds the old hard-coded `timeout=10`), makes `_extract_secret_string` traverse the `return_value` key that `run_script` responses nest the boto3 result under, and reports the actual failure cause to stderr instead of collapsing everything into one string.
## Reproduce
```bash
# 1. What the marketplace currently pins for aws-core
gh api repos/anthropics/claude-plugins-official/contents/.claude-plugin/marketplace.json --jq '.content' \
| base64 -d | jq -r '.plugins[] | select(.name=="aws-core") | .source'
# {"source":"git-subdir","url":"https://github.com/aws/agent-toolkit-for-aws.git",
# "path":"plugins/aws-core","ref":"main","sha":"08ad220e4e9bbc498821ce9360b3dcdf4813121d"}
# 2. That pinned SHA does not contain the fix
gh api "repos/aws/agent-toolkit-for-aws/contents/plugins/aws-core/skills/aws-secrets-manager/references/asm-exec?ref=08ad220e4e9bbc498821ce9360b3dcdf4813121d" \
--jq '.content' | base64 -d | grep -c 'aws___run_script'
# 0
# 3. The symptom, on any host without SMA, with otherwise-valid AWS credentials
# (aws sts get-caller-identity succeeds throughout)
asm-exec -- echo test '{{resolve:secretsmanager::SecretString:}}'
# asm-exec: ERROR: Failed to resolve: :SecretString:
```
## Requested change
Bump the pinned SHA for `aws-core` in `.claude-plugin/marketplace.json` to a revision at or after `aws/agent-toolkit-for-aws@6d1de54ace0b` (2026-09-07). `main` HEAD as of this report is `fe6cf8776cc2e9eeb782427950943b01dc0934a6` (2026-09-08).
## Impact
The `aws-secrets-manager` skill's own instructions tell agents `asm-exec` is the only sanctioned path to pull a secret into a shell command without it entering agent/LLM context — and a companion `secret-safety` hook actively blocks fetching a secret's plaintext value through the AWS CLI directly, for exactly that reason. With the pinned `asm-exec` non-functional on any host without a local SMA daemon, there is no safe local mitigation short of standing up SMA: the sanctioned path is broken, and the one workaround the hook exists to prevent is the only thing left that still works.
## Environment
- Windows 11, `aws-core` 1.1.0 installed from `claude-plugins-official` (user scope).
- Marketplace pin verified live via `gh api` at time of writing (not a stale local cache read).
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Open .claude-plugin/marketplace.json and inspect the aws-core source pin, then compare it with aws/agent-toolkit-for-aws commit 6d1de54ace0b or a later revision. Update only the pinned SHA, validate the marketplace JSON, and confirm the referenced asm-exec contains the aws___run_script fix.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- aws, github
- Área
- release
- Tipo de issue
- Error
- Dificultad
- 1/5
- Tiempo estimado
- Menos de una hora
- Estado de actividad
- Activo
- Claridad
- Bien especificado
- Aptitud para principiantes
- 88/100