Skip to content

Commit 1060b0b

Browse files
chore: merge main into preview (conflicts need resolution)
2 parents 06ae93d + 2854150 commit 1060b0b

38 files changed

Lines changed: 1139 additions & 167 deletions

docs/configuration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ Strategy configuration:
244244
"type": "SEMANTIC",
245245
"name": "custom_semantic",
246246
"description": "Custom semantic memory",
247-
"namespaces": ["/users/facts", "/users/preferences"]
247+
"namespaceTemplates": ["/users/facts", "/users/preferences"]
248248
}
249249
```
250250

docs/memory.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -196,17 +196,19 @@ Each strategy can have optional configuration:
196196
"type": "SEMANTIC",
197197
"name": "custom_semantic",
198198
"description": "Custom semantic memory",
199-
"namespaces": ["/users/facts", "/users/preferences"]
199+
"namespaceTemplates": ["/users/facts", "/users/preferences"]
200200
}
201201
```
202202

203-
| Field | Required | Description |
204-
| ---------------------- | ------------- | --------------------------------------------------------------------------- |
205-
| `type` | Yes | Strategy type |
206-
| `name` | No | Custom name (defaults to `<memoryName>-<type>`) |
207-
| `description` | No | Strategy description |
208-
| `namespaces` | No | Array of namespace paths for scoping |
209-
| `reflectionNamespaces` | EPISODIC only | Namespaces for cross-episode reflections (must be a prefix of `namespaces`) |
203+
| Field | Required | Description |
204+
| ------------------------------ | ------------- | --------------------------------------------------------------------------------------------- |
205+
| `type` | Yes | Strategy type |
206+
| `name` | No | Custom name (defaults to `<memoryName>-<type>`) |
207+
| `description` | No | Strategy description |
208+
| `namespaceTemplates` | No | Array of namespace templates for scoping |
209+
| `reflectionNamespaceTemplates` | EPISODIC only | Templates for cross-episode reflections (must be a prefix of `namespaceTemplates`) |
210+
| `namespaces` | No | **Deprecated alias for `namespaceTemplates`.** Accepted for backward compatibility. |
211+
| `reflectionNamespaces` | EPISODIC only | **Deprecated alias for `reflectionNamespaceTemplates`.** Accepted for backward compatibility. |
210212

211213
## Event Expiry
212214

e2e-tests/fixtures/import/setup_memory_full.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def main():
3131
"semanticMemoryStrategy": {
3232
"name": "bugbash_semantic",
3333
"description": "Semantic strategy for bugbash testing",
34-
"namespaces": ["default"],
34+
"namespaceTemplates": ["default"],
3535
}
3636
},
3737
{
@@ -68,7 +68,7 @@ def main():
6868
print(f" eventExpiryDuration: 30")
6969
print(f" executionRoleArn: {role_arn}")
7070
print(" strategies:")
71-
print(" - type: SEMANTIC, name: bugbash_semantic, namespaces: [default]")
71+
print(" - type: SEMANTIC, name: bugbash_semantic, namespaceTemplates: [default]")
7272
print(" - type: SUMMARIZATION, name: bugbash_summary")
7373
print(" - type: USER_PREFERENCE, name: bugbash_userpref")
7474
print(" tags: {env: bugbash, team: agentcore-cli}")

integ-tests/add-remove-resources.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ describe('integration: add and remove resources', () => {
4545
telemetry.assertMetricEmitted({ command: 'add.memory', exit_reason: 'success' });
4646
});
4747

48-
it('adds a memory with EPISODIC strategy and verifies reflectionNamespaces', async () => {
48+
it('adds a memory with EPISODIC strategy and verifies reflectionNamespaceTemplates', async () => {
4949
const episodicMemName = `EpiMem${Date.now().toString().slice(-6)}`;
5050
const result = await runCLI(
5151
['add', 'memory', '--name', episodicMemName, '--strategies', 'EPISODIC', '--json'],
@@ -57,19 +57,19 @@ describe('integration: add and remove resources', () => {
5757
const json = JSON.parse(result.stdout);
5858
expect(json.success).toBe(true);
5959

60-
// Verify EPISODIC in config with reflectionNamespaces
60+
// Verify EPISODIC in config with reflectionNamespaceTemplates
6161
const config = await readProjectConfig(project.projectPath);
6262
const memories = config.memories as {
6363
name: string;
64-
strategies: { type: string; reflectionNamespaces?: string[] }[];
64+
strategies: { type: string; reflectionNamespaceTemplates?: string[] }[];
6565
}[];
6666
const mem = memories.find(m => m.name === episodicMemName);
6767
expect(mem, 'Memory should exist').toBeTruthy();
6868

6969
const episodic = mem!.strategies.find(s => s.type === 'EPISODIC');
7070
expect(episodic, 'EPISODIC strategy should exist').toBeTruthy();
71-
expect(episodic!.reflectionNamespaces, 'Should have reflectionNamespaces').toBeDefined();
72-
expect(episodic!.reflectionNamespaces!.length).toBeGreaterThan(0);
71+
expect(episodic!.reflectionNamespaceTemplates, 'Should have reflectionNamespaceTemplates').toBeDefined();
72+
expect(episodic!.reflectionNamespaceTemplates!.length).toBeGreaterThan(0);
7373

7474
// Verify telemetry
7575
telemetry.assertMetricEmitted({

integ-tests/create-memory.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ describe.skipIf(!prereqs.npm || !prereqs.git)('integration: create with memory o
8080

8181
// longAndShortTerm should have strategies defined
8282
const memory = memories![0]!;
83-
const strategies = memory.strategies as { type: string; reflectionNamespaces?: string[] }[] | undefined;
83+
const strategies = memory.strategies as { type: string; reflectionNamespaceTemplates?: string[] }[] | undefined;
8484
expect(strategies, 'memory should have strategies').toBeDefined();
8585
expect(strategies!.length).toBe(4);
8686

@@ -91,10 +91,10 @@ describe.skipIf(!prereqs.npm || !prereqs.git)('integration: create with memory o
9191
expect(types).toContain('SUMMARIZATION');
9292
expect(types).toContain('EPISODIC');
9393

94-
// Verify EPISODIC has reflectionNamespaces
94+
// Verify EPISODIC has reflectionNamespaceTemplates
9595
const episodic = strategies!.find(s => s.type === 'EPISODIC');
9696
expect(episodic, 'EPISODIC strategy should exist').toBeTruthy();
97-
expect(episodic!.reflectionNamespaces, 'EPISODIC should have reflectionNamespaces').toBeDefined();
98-
expect(episodic!.reflectionNamespaces!.length).toBeGreaterThan(0);
97+
expect(episodic!.reflectionNamespaceTemplates, 'EPISODIC should have reflectionNamespaceTemplates').toBeDefined();
98+
expect(episodic!.reflectionNamespaceTemplates!.length).toBeGreaterThan(0);
9999
});
100100
});

integ-tests/tui/add-memory-episodic.test.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
*
44
* Drives the "Add Memory" wizard through the TUI to verify that when a user
55
* selects the EPISODIC strategy, it is correctly persisted in agentcore.json
6-
* with both namespaces and reflectionNamespaces.
6+
* with both namespaceTemplates and reflectionNamespaceTemplates.
77
*
88
* Exercises:
99
* - Navigation from HelpScreen -> Add Resource -> Memory
1010
* - Memory name input
1111
* - Expiry selection (default 30 days)
1212
* - Strategy multi-select including EPISODIC
1313
* - Confirm review screen
14-
* - Verification that agentcore.json contains EPISODIC with reflectionNamespaces
14+
* - Verification that agentcore.json contains EPISODIC with reflectionNamespaceTemplates
1515
*/
1616
import { TuiSession, WaitForTimeoutError } from '../../src/tui-harness/index.js';
1717
import { createMinimalProjectDir } from './helpers.js';
@@ -177,14 +177,14 @@ describe('Add Memory with EPISODIC Strategy', () => {
177177
expect(found).toBe(true);
178178
});
179179

180-
it('Step 9: agentcore.json contains EPISODIC with reflectionNamespaces', async () => {
180+
it('Step 9: agentcore.json contains EPISODIC with reflectionNamespaceTemplates', async () => {
181181
const configPath = join(projectDir.dir, 'agentcore', 'agentcore.json');
182182
const raw = await readFileAsync(configPath, 'utf-8');
183183
const config = JSON.parse(raw);
184184

185185
const memories = config.memories as {
186186
name: string;
187-
strategies: { type: string; namespaces?: string[]; reflectionNamespaces?: string[] }[];
187+
strategies: { type: string; namespaceTemplates?: string[]; reflectionNamespaceTemplates?: string[] }[];
188188
}[];
189189
expect(memories.length).toBeGreaterThan(0);
190190

@@ -198,12 +198,12 @@ describe('Add Memory with EPISODIC Strategy', () => {
198198
expect(types).toContain('USER_PREFERENCE');
199199
expect(types).toContain('EPISODIC');
200200

201-
// Verify EPISODIC has namespaces AND reflectionNamespaces
201+
// Verify EPISODIC has namespaceTemplates AND reflectionNamespaceTemplates
202202
const episodic = memory!.strategies.find(s => s.type === 'EPISODIC');
203203
expect(episodic, 'EPISODIC strategy should exist').toBeTruthy();
204-
expect(episodic!.namespaces, 'EPISODIC should have namespaces').toBeDefined();
205-
expect(episodic!.namespaces!.length).toBeGreaterThan(0);
206-
expect(episodic!.reflectionNamespaces, 'EPISODIC should have reflectionNamespaces').toBeDefined();
207-
expect(episodic!.reflectionNamespaces!.length).toBeGreaterThan(0);
204+
expect(episodic!.namespaceTemplates, 'EPISODIC should have namespaceTemplates').toBeDefined();
205+
expect(episodic!.namespaceTemplates!.length).toBeGreaterThan(0);
206+
expect(episodic!.reflectionNamespaceTemplates, 'EPISODIC should have reflectionNamespaceTemplates').toBeDefined();
207+
expect(episodic!.reflectionNamespaceTemplates!.length).toBeGreaterThan(0);
208208
});
209209
});

src/assets/__tests__/__snapshots__/assets.snapshot.test.ts.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1949,7 +1949,7 @@ dependencies = [
19491949
{{#if (eq modelProvider "Anthropic")}}"anthropic >= 0.30.0",
19501950
{{/if}}"a2a-sdk[all] >= 0.2.0, < 1.0.0",
19511951
"aws-opentelemetry-distro",
1952-
"bedrock-agentcore[a2a] >= 1.0.3",
1952+
"bedrock-agentcore[a2a] >= 1.9.1",
19531953
"botocore[crt] >= 1.35.0",
19541954
{{#if (eq modelProvider "Gemini")}}"google-genai >= 1.0.0",
19551955
{{/if}}{{#if (eq modelProvider "OpenAI")}}"openai >= 1.0.0",
@@ -2786,7 +2786,7 @@ dependencies = [
27862786
{{/if}}"ag-ui-strands >= 0.1.7",
27872787
"ag-ui-protocol >= 0.1.10",
27882788
"aws-opentelemetry-distro",
2789-
"bedrock-agentcore >= 1.0.3",
2789+
"bedrock-agentcore >= 1.9.1",
27902790
"botocore[crt] >= 1.35.0",
27912791
"fastapi >= 0.115.12",
27922792
{{#if (eq modelProvider "Gemini")}}"google-genai >= 1.0.0",
@@ -5167,7 +5167,7 @@ requires-python = ">=3.10"
51675167
dependencies = [
51685168
{{#if (eq modelProvider "Anthropic")}}"anthropic >= 0.30.0",
51695169
{{/if}}"aws-opentelemetry-distro",
5170-
"bedrock-agentcore >= 1.0.3",
5170+
"bedrock-agentcore >= 1.9.1",
51715171
"botocore[crt] >= 1.35.0",
51725172
{{#if (eq modelProvider "Gemini")}}"google-genai >= 1.0.0",
51735173
{{/if}}"mcp >= 1.19.0",

src/assets/python/a2a/strands/base/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ dependencies = [
1212
{{#if (eq modelProvider "Anthropic")}}"anthropic >= 0.30.0",
1313
{{/if}}"a2a-sdk[all] >= 0.2.0, < 1.0.0",
1414
"aws-opentelemetry-distro",
15-
"bedrock-agentcore[a2a] >= 1.0.3",
15+
"bedrock-agentcore[a2a] >= 1.9.1",
1616
"botocore[crt] >= 1.35.0",
1717
{{#if (eq modelProvider "Gemini")}}"google-genai >= 1.0.0",
1818
{{/if}}{{#if (eq modelProvider "OpenAI")}}"openai >= 1.0.0",

src/assets/python/agui/strands/base/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dependencies = [
1313
{{/if}}"ag-ui-strands >= 0.1.7",
1414
"ag-ui-protocol >= 0.1.10",
1515
"aws-opentelemetry-distro",
16-
"bedrock-agentcore >= 1.0.3",
16+
"bedrock-agentcore >= 1.9.1",
1717
"botocore[crt] >= 1.35.0",
1818
"fastapi >= 0.115.12",
1919
{{#if (eq modelProvider "Gemini")}}"google-genai >= 1.0.0",

src/assets/python/http/strands/base/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ requires-python = ">=3.10"
1111
dependencies = [
1212
{{#if (eq modelProvider "Anthropic")}}"anthropic >= 0.30.0",
1313
{{/if}}"aws-opentelemetry-distro",
14-
"bedrock-agentcore >= 1.0.3",
14+
"bedrock-agentcore >= 1.9.1",
1515
"botocore[crt] >= 1.35.0",
1616
{{#if (eq modelProvider "Gemini")}}"google-genai >= 1.0.0",
1717
{{/if}}"mcp >= 1.19.0",

0 commit comments

Comments
 (0)