`add agent --type byo` ignores `--language TypeScript`
- Dominant language
- TypeScript
- Stars
- 283
- Forks
- 95
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 183
Description
### Description
`agentcore add agent --type byo --language TypeScript` registers the agent with `"runtimeVersion": "PYTHON_3_14"` in agentcore.json, ignoring `--language`. Packaging then selects the Python CodeZip packager and fails looking for pyproject.toml, so the BYO + TypeScript combination advertised by the `--language` help text (`Python (create), or Python/TypeScript/Other (BYO)`) cannot succeed with CLI flags alone.
### Steps to Reproduce
1. Create a project and add a BYO TypeScript agent:
```bash
agentcore create --name ByoRepro --no-agent
cd ByoRepro
agentcore add agent --name ByoRepro --type byo --code-location app/ByoRepro --entrypoint main.ts --language TypeScript --build CodeZip --framework Strands --model-provider Bedrock --memory none
```
2. Put a TypeScript agent in `app/ByoRepro/` (`main.ts` + `package.json`, `npm install` run).
3. Run `agentcore package` (or `agentcore deploy`) and observe the Python packager error. Inspect `agentcore/agentcore.json` to see the registered `runtimeVersion`.
### Expected Behavior
With `--language TypeScript`, the BYO path writes `"runtimeVersion": "NODE_22"` and defaults the entrypoint to `main.js`, the way the create path does via `DEFAULT_RUNTIME_BY_LANGUAGE` / `DEFAULT_ENTRYPOINT_BY_LANGUAGE`. (`main.js` because the Node CodeZip packager bundles the `main.ts` source into `main.js`, and the service rejects a `.ts` entrypoint for Node runtimes: `Entrypoint file type does not match your selected runtime. For NODE_22 runtime, your file should end with .js extension.`)
### Actual Behavior
1. `agentcore/agentcore.json` gets a Python runtime despite `--language TypeScript`:
```json
{
"name": "ByoRepro",
"build": "CodeZip",
"entrypoint": "main.ts",
"codeLocation": "app/ByoRepro/",
"runtimeVersion": "PYTHON_3_14",
"networkMode": "PUBLIC",
"protocol": "HTTP"
}
```
2. Packaging fails: `Required project file not found: .../app/ByoRepro/pyproject.toml`.
### CLI Version
0.27.1
### Operating System
Linux
### Additional Context
Root cause: `handleByoPath` in `src/cli/primitives/AgentPrimitive.tsx` hardcodes `runtimeVersion: DEFAULT_PYTHON_VERSION` and never consults `options.language`, while the create path maps language through `DEFAULT_RUNTIME_BY_LANGUAGE` / `DEFAULT_ENTRYPOINT_BY_LANGUAGE` (`src/cli/operations/agent/generate/schema-mapper.ts`).
Verified workaround: hand-editing agentcore.json after `add agent` (`"runtimeVersion": "NODE_22"`, `"entrypoint": "main.js"`) makes the same project deploy and invoke successfully, so the defect is confined to what the BYO path writes.
`--language Other` is BYO-only and has no entry in `DEFAULT_RUNTIME_BY_LANGUAGE`; this report is only about `TypeScript` silently mapping to Python.
I'm happy to send a PR applying the two language maps in `handleByoPath` (Python/TypeScript only, current behavior preserved for `Other`).
Contributor guide
Research direction
Start in src/cli/primitives/AgentPrimitive.tsx at handleByoPath and compare its runtime and entrypoint handling with DEFAULT_RUNTIME_BY_LANGUAGE and DEFAULT_ENTRYPOINT_BY_LANGUAGE in src/cli/operations/agent/generate/schema-mapper.ts. Verify that a BYO TypeScript agent records NODE_22 and main.js while preserving the existing Other behavior, then confirm packaging no longer selects the Python CodeZip path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 86/100