Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Main project configuration using a **flat resource model**. Agents, memories, an
"build": "CodeZip",
"entrypoint": "main.py",
"codeLocation": "app/MyAgent/",
"runtimeVersion": "PYTHON_3_14",
"runtimeVersion": "PYTHON_3_13",
"networkMode": "PUBLIC",
"protocol": "HTTP"
}
Expand Down Expand Up @@ -168,7 +168,7 @@ on the next deployment.
"build": "CodeZip",
"entrypoint": "main.py",
"codeLocation": "app/MyAgent/",
"runtimeVersion": "PYTHON_3_14",
"runtimeVersion": "PYTHON_3_13",
"networkMode": "PUBLIC",
"envVars": [{ "name": "MY_VAR", "value": "my-value" }],
"instrumentation": {
Expand Down
2 changes: 1 addition & 1 deletion docs/container-builds.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ In `agentcore.json`, set `"build": "Container"`:
"build": "Container",
"entrypoint": "main.py",
"codeLocation": "app/MyAgent/",
"runtimeVersion": "PYTHON_3_14"
"runtimeVersion": "PYTHON_3_13"
}
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ describe('mapGenerateConfigToAgent', () => {
expect(result.name).toBe('TestProject');
expect(result.build).toBe('CodeZip');
expect(result.entrypoint).toBe('main.py');
expect(result.runtimeVersion).toBe('PYTHON_3_14');
expect(result.runtimeVersion).toBe('PYTHON_3_13');
expect(result.networkMode).toBe('PUBLIC');
expect(result.protocol).toBe('HTTP');
});
Expand Down
16 changes: 15 additions & 1 deletion src/cli/tui/screens/mcp/__tests__/types.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import { AUTHORIZER_TYPE_OPTIONS, ENTER_KB_ID_MANUALLY, SKIP_FOR_NOW, TARGET_TYPE_OPTIONS } from '../types.js';
import {
AUTHORIZER_TYPE_OPTIONS,
ENTER_KB_ID_MANUALLY,
PYTHON_VERSION_OPTIONS,
SKIP_FOR_NOW,
TARGET_TYPE_OPTIONS,
} from '../types.js';
import { describe, expect, it } from 'vitest';

describe('MCP types constants', () => {
Expand Down Expand Up @@ -26,4 +32,12 @@ describe('MCP types constants', () => {
// the screen branches on this exact id when the user picks the manual path.
expect(ENTER_KB_ID_MANUALLY).toBe('__enter_kb_id__');
});

it('PYTHON_VERSION_OPTIONS defaults to a universally-available runtime, not PYTHON_3_14', () => {
// 3.14 is not yet GA in every region, so it must not be the first/highlighted pick.
expect(PYTHON_VERSION_OPTIONS[0]?.id).toBe('PYTHON_3_13');
expect(PYTHON_VERSION_OPTIONS[0]?.id).not.toBe('PYTHON_3_14');
// 3.14 stays selectable for users in supported regions.
expect(PYTHON_VERSION_OPTIONS.some(opt => opt.id === 'PYTHON_3_14')).toBe(true);
});
});
4 changes: 2 additions & 2 deletions src/cli/tui/screens/mcp/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -425,8 +425,8 @@ export const POLICY_ENGINE_MODE_OPTIONS = [
] as const;

export const PYTHON_VERSION_OPTIONS = [
{ id: 'PYTHON_3_14', title: 'Python 3.14', description: 'Latest' },
{ id: 'PYTHON_3_13', title: 'Python 3.13', description: '' },
{ id: 'PYTHON_3_13', title: 'Python 3.13', description: 'Recommended' },
{ id: 'PYTHON_3_14', title: 'Python 3.14', description: 'Not yet available in all regions' },

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The picker copy here is good — Recommended / Not yet available in all regions clearly steers users to the safe choice while keeping 3.14 selectable. Just noting that this is the only user-facing surface that explains the constraint; the docs at docs/configuration.md and docs/container-builds.md still hardcode PYTHON_3_14 in their example agentcore.json snippets and should be updated in this PR to match the new default.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done — updated the example agentcore.json snippets in docs/configuration.md (lines 34 and 171) and docs/container-builds.md (line 84) to PYTHON_3_13 so they match the new default. The Runtime Versions reference list still includes PYTHON_3_14 since it remains a selectable opt-in value. Fixed in commit ec3e86b.

{ id: 'PYTHON_3_12', title: 'Python 3.12', description: '' },
{ id: 'PYTHON_3_11', title: 'Python 3.11', description: '' },
{ id: 'PYTHON_3_10', title: 'Python 3.10', description: '' },
Expand Down
6 changes: 6 additions & 0 deletions src/schema/__tests__/constants.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {
DEFAULT_PYTHON_VERSION,
LANGUAGE_FRAMEWORK_MATRIX,
ModelProviderSchema,
NetworkModeSchema,
Expand Down Expand Up @@ -75,6 +76,11 @@ describe('RuntimeVersionSchemas', () => {
expect(NodeRuntimeSchema.safeParse('NODE_24').success).toBe(false);
expect(RuntimeVersionSchema.safeParse('RUBY_3_0').success).toBe(false);
});

it('defaults new agents to a universally-available Python runtime (not PYTHON_3_14)', () => {
expect(DEFAULT_PYTHON_VERSION).toBe('PYTHON_3_13');
expect(PythonRuntimeSchema.safeParse(DEFAULT_PYTHON_VERSION).success).toBe(true);
});
});

describe('NetworkModeSchema', () => {
Expand Down
2 changes: 1 addition & 1 deletion src/schema/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ export const PythonRuntimeSchema = z.enum(['PYTHON_3_10', 'PYTHON_3_11', 'PYTHON
export type PythonRuntime = z.infer<typeof PythonRuntimeSchema>;

/** Default Python runtime version for new agents and MCP tools */
export const DEFAULT_PYTHON_VERSION: PythonRuntime = 'PYTHON_3_14';
export const DEFAULT_PYTHON_VERSION: PythonRuntime = 'PYTHON_3_13';

export const NodeRuntimeSchema = z.enum(['NODE_18', 'NODE_20', 'NODE_22']);
export type NodeRuntime = z.infer<typeof NodeRuntimeSchema>;
Expand Down
Loading