Skip to content

Commit 9fec2fa

Browse files
committed
fix: use /episodes/{actorId}/{sessionId} and /reflections/{actorId} for EPISODIC namespaces
1 parent 47aa7ad commit 9fec2fa

4 files changed

Lines changed: 13 additions & 13 deletions

File tree

src/cli/commands/add/__tests__/add-memory.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,8 @@ describe('add memory command', () => {
139139
expect(summarization?.namespaces).toEqual(['/summaries/{actorId}/{sessionId}']);
140140

141141
const episodic = memory?.strategies?.find((s: { type: string }) => s.type === 'EPISODIC');
142-
expect(episodic?.namespaces).toEqual(['/strategy/{memoryStrategyId}/actor/{actorId}/']);
143-
expect(episodic?.reflectionNamespaces).toEqual(['/strategy/{memoryStrategyId}/actor/{actorId}/']);
142+
expect(episodic?.namespaces).toEqual(['/episodes/{actorId}/{sessionId}']);
143+
expect(episodic?.reflectionNamespaces).toEqual(['/reflections/{actorId}']);
144144
});
145145

146146
it('creates memory with EPISODIC strategy including default namespaces and reflectionNamespaces', async () => {
@@ -154,8 +154,8 @@ describe('add memory command', () => {
154154
const memory = projectSpec.memories.find((m: { name: string }) => m.name === memoryName);
155155
const episodic = memory?.strategies?.find((s: { type: string }) => s.type === 'EPISODIC');
156156
expect(episodic).toBeTruthy();
157-
expect(episodic?.namespaces).toEqual(['/strategy/{memoryStrategyId}/actor/{actorId}/']);
158-
expect(episodic?.reflectionNamespaces).toEqual(['/strategy/{memoryStrategyId}/actor/{actorId}/']);
157+
expect(episodic?.namespaces).toEqual(['/episodes/{actorId}/{sessionId}']);
158+
expect(episodic?.reflectionNamespaces).toEqual(['/reflections/{actorId}']);
159159
});
160160
});
161161
});

src/cli/commands/create/__tests__/create.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,8 @@ describe('create command', () => {
141141

142142
const episodic = memory?.strategies?.find((s: { type: string }) => s.type === 'EPISODIC');
143143
expect(episodic, 'EPISODIC strategy should exist in longAndShortTerm').toBeTruthy();
144-
expect(episodic?.namespaces).toEqual(['/strategy/{memoryStrategyId}/actor/{actorId}/']);
145-
expect(episodic?.reflectionNamespaces).toEqual(['/strategy/{memoryStrategyId}/actor/{actorId}/']);
144+
expect(episodic?.namespaces).toEqual(['/episodes/{actorId}/{sessionId}']);
145+
expect(episodic?.reflectionNamespaces).toEqual(['/reflections/{actorId}']);
146146
});
147147
});
148148

src/schema/schemas/primitives/__tests__/memory.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,24 +76,24 @@ describe('MemoryStrategySchema', () => {
7676
it('accepts EPISODIC strategy with reflectionNamespaces', () => {
7777
const result = MemoryStrategySchema.safeParse({
7878
type: 'EPISODIC',
79-
namespaces: ['/strategy/{memoryStrategyId}/actor/{actorId}/'],
80-
reflectionNamespaces: ['/strategy/{memoryStrategyId}/actor/{actorId}/'],
79+
namespaces: ['/episodes/{actorId}/{sessionId}'],
80+
reflectionNamespaces: ['/reflections/{actorId}'],
8181
});
8282
expect(result.success).toBe(true);
8383
});
8484

8585
it('rejects EPISODIC strategy without reflectionNamespaces', () => {
8686
const result = MemoryStrategySchema.safeParse({
8787
type: 'EPISODIC',
88-
namespaces: ['/strategy/{memoryStrategyId}/actor/{actorId}/'],
88+
namespaces: ['/episodes/{actorId}/{sessionId}'],
8989
});
9090
expect(result.success).toBe(false);
9191
});
9292

9393
it('rejects EPISODIC strategy with empty reflectionNamespaces', () => {
9494
const result = MemoryStrategySchema.safeParse({
9595
type: 'EPISODIC',
96-
namespaces: ['/strategy/{memoryStrategyId}/actor/{actorId}/'],
96+
namespaces: ['/episodes/{actorId}/{sessionId}'],
9797
reflectionNamespaces: [],
9898
});
9999
expect(result.success).toBe(false);
@@ -119,7 +119,7 @@ describe('DEFAULT_STRATEGY_NAMESPACES', () => {
119119
});
120120

121121
it('has default namespaces for EPISODIC', () => {
122-
expect(DEFAULT_STRATEGY_NAMESPACES.EPISODIC).toEqual(['/strategy/{memoryStrategyId}/actor/{actorId}/']);
122+
expect(DEFAULT_STRATEGY_NAMESPACES.EPISODIC).toEqual(['/episodes/{actorId}/{sessionId}']);
123123
});
124124

125125
it('does not have default namespaces for CUSTOM (removed)', () => {

src/schema/schemas/primitives/memory.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@ export const DEFAULT_STRATEGY_NAMESPACES: Partial<Record<MemoryStrategyType, str
2424
SEMANTIC: ['/users/{actorId}/facts'],
2525
USER_PREFERENCE: ['/users/{actorId}/preferences'],
2626
SUMMARIZATION: ['/summaries/{actorId}/{sessionId}'],
27-
EPISODIC: ['/strategy/{memoryStrategyId}/actor/{actorId}/'],
27+
EPISODIC: ['/episodes/{actorId}/{sessionId}'],
2828
};
2929

3030
/**
3131
* Default reflection namespaces for the EPISODIC strategy.
3232
* The service requires reflection namespaces to be the same as or a prefix of episode namespaces.
3333
*/
34-
export const DEFAULT_EPISODIC_REFLECTION_NAMESPACES: string[] = ['/strategy/{memoryStrategyId}/actor/{actorId}/'];
34+
export const DEFAULT_EPISODIC_REFLECTION_NAMESPACES: string[] = ['/reflections/{actorId}'];
3535

3636
/**
3737
* Memory strategy name validation.

0 commit comments

Comments
 (0)