@animalabs/context-manager 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/blob-manager.d.ts +37 -0
- package/dist/src/blob-manager.d.ts.map +1 -0
- package/dist/src/blob-manager.js +128 -0
- package/dist/src/blob-manager.js.map +1 -0
- package/dist/src/context-log.d.ts +99 -0
- package/dist/src/context-log.d.ts.map +1 -0
- package/dist/src/context-log.js +277 -0
- package/dist/src/context-log.js.map +1 -0
- package/dist/src/context-manager.d.ts +245 -0
- package/dist/src/context-manager.d.ts.map +1 -0
- package/dist/src/context-manager.js +553 -0
- package/dist/src/context-manager.js.map +1 -0
- package/dist/src/index.d.ts +12 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +12 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/message-store.d.ts +135 -0
- package/dist/src/message-store.d.ts.map +1 -0
- package/dist/src/message-store.js +372 -0
- package/dist/src/message-store.js.map +1 -0
- package/dist/src/strategies/autobiographical.d.ts +199 -0
- package/dist/src/strategies/autobiographical.d.ts.map +1 -0
- package/dist/src/strategies/autobiographical.js +1122 -0
- package/dist/src/strategies/autobiographical.js.map +1 -0
- package/dist/src/strategies/index.d.ts +3 -0
- package/dist/src/strategies/index.d.ts.map +1 -0
- package/dist/src/strategies/index.js +3 -0
- package/dist/src/strategies/index.js.map +1 -0
- package/dist/src/strategies/knowledge.d.ts +46 -0
- package/dist/src/strategies/knowledge.d.ts.map +1 -0
- package/dist/src/strategies/knowledge.js +270 -0
- package/dist/src/strategies/knowledge.js.map +1 -0
- package/dist/src/strategies/passthrough.d.ts +17 -0
- package/dist/src/strategies/passthrough.d.ts.map +1 -0
- package/dist/src/strategies/passthrough.js +69 -0
- package/dist/src/strategies/passthrough.js.map +1 -0
- package/dist/src/types/context.d.ts +108 -0
- package/dist/src/types/context.d.ts.map +1 -0
- package/dist/src/types/context.js +2 -0
- package/dist/src/types/context.js.map +1 -0
- package/dist/src/types/index.d.ts +5 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +2 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/message.d.ts +129 -0
- package/dist/src/types/message.d.ts.map +1 -0
- package/dist/src/types/message.js +2 -0
- package/dist/src/types/message.js.map +1 -0
- package/dist/src/types/strategy.d.ts +233 -0
- package/dist/src/types/strategy.d.ts.map +1 -0
- package/dist/src/types/strategy.js +32 -0
- package/dist/src/types/strategy.js.map +1 -0
- package/dist/test/autobiographical.test.d.ts +2 -0
- package/dist/test/autobiographical.test.d.ts.map +1 -0
- package/dist/test/autobiographical.test.js +46 -0
- package/dist/test/autobiographical.test.js.map +1 -0
- package/dist/test/head-window-reset.test.d.ts +17 -0
- package/dist/test/head-window-reset.test.d.ts.map +1 -0
- package/dist/test/head-window-reset.test.js +342 -0
- package/dist/test/head-window-reset.test.js.map +1 -0
- package/dist/test/integration.test.d.ts +2 -0
- package/dist/test/integration.test.d.ts.map +1 -0
- package/dist/test/integration.test.js +1341 -0
- package/dist/test/integration.test.js.map +1 -0
- package/dist/test/knowledge.test.d.ts +2 -0
- package/dist/test/knowledge.test.d.ts.map +1 -0
- package/dist/test/knowledge.test.js +617 -0
- package/dist/test/knowledge.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +48 -0
- package/src/blob-manager.ts +155 -0
- package/src/context-log.ts +342 -0
- package/src/context-manager.ts +726 -0
- package/src/index.ts +50 -0
- package/src/message-store.ts +479 -0
- package/src/strategies/autobiographical.ts +1355 -0
- package/src/strategies/index.ts +2 -0
- package/src/strategies/knowledge.ts +336 -0
- package/src/strategies/passthrough.ts +98 -0
- package/src/types/context.ts +119 -0
- package/src/types/index.ts +42 -0
- package/src/types/message.ts +140 -0
- package/src/types/strategy.ts +282 -0
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for the resettable head window / topic transition feature.
|
|
3
|
+
*
|
|
4
|
+
* Covers:
|
|
5
|
+
* - resetHeadWindow() shifts the head window anchor
|
|
6
|
+
* - getHeadWindowStartIndex() resolves IDs correctly
|
|
7
|
+
* - selectHierarchical() excludes old head window from verbatim zone
|
|
8
|
+
* - rebuildChunks() includes old head window in compressible zone
|
|
9
|
+
* - isTopicTransitionMessage() detection
|
|
10
|
+
* - initialize() restores headWindowStartId from persisted markers
|
|
11
|
+
* - tool_use boundary retreat (if, not while)
|
|
12
|
+
* - KnowledgeStrategy inherits head window reset behavior
|
|
13
|
+
* - ContextManager.resetHeadWindow() public API
|
|
14
|
+
* - ResettableStrategy type guard
|
|
15
|
+
*/
|
|
16
|
+
import { describe, it, before, after } from 'node:test';
|
|
17
|
+
import assert from 'node:assert';
|
|
18
|
+
import { rmSync, existsSync } from 'node:fs';
|
|
19
|
+
import { ContextManager, AutobiographicalStrategy, KnowledgeStrategy, PassthroughStrategy, isResettableStrategy, } from '../src/index.js';
|
|
20
|
+
const TEST_STORE_PATH = './test-head-window-reset';
|
|
21
|
+
function cleanup() {
|
|
22
|
+
if (existsSync(TEST_STORE_PATH)) {
|
|
23
|
+
rmSync(TEST_STORE_PATH, { recursive: true, force: true });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function textBlock(text) {
|
|
27
|
+
return [{ type: 'text', text }];
|
|
28
|
+
}
|
|
29
|
+
describe('Head Window Reset', () => {
|
|
30
|
+
before(() => cleanup());
|
|
31
|
+
after(() => cleanup());
|
|
32
|
+
describe('AutobiographicalStrategy.resetHeadWindow', () => {
|
|
33
|
+
it('should shift the head window to start from the specified message', async () => {
|
|
34
|
+
cleanup();
|
|
35
|
+
const strategy = new AutobiographicalStrategy({
|
|
36
|
+
headWindowTokens: 200,
|
|
37
|
+
recentWindowTokens: 100,
|
|
38
|
+
});
|
|
39
|
+
const manager = await ContextManager.open({
|
|
40
|
+
path: TEST_STORE_PATH,
|
|
41
|
+
strategy,
|
|
42
|
+
});
|
|
43
|
+
// Topic A messages (will be in head window initially)
|
|
44
|
+
manager.addMessage('user', textBlock('Topic A: Tell me about cats'));
|
|
45
|
+
manager.addMessage('assistant', textBlock('Topic A: Cats are great pets'));
|
|
46
|
+
manager.addMessage('user', textBlock('Topic A: What breeds exist?'));
|
|
47
|
+
// Inject transition marker
|
|
48
|
+
const transitionId = manager.addMessage('Context Manager', textBlock('[Topic Transition]\n\nWe discussed cats.'));
|
|
49
|
+
// Topic B messages
|
|
50
|
+
manager.addMessage('user', textBlock('Topic B: Now tell me about dogs'));
|
|
51
|
+
manager.addMessage('assistant', textBlock('Topic B: Dogs are loyal companions'));
|
|
52
|
+
// Reset head window to start from the transition message
|
|
53
|
+
strategy.resetHeadWindow(transitionId);
|
|
54
|
+
const { messages } = await manager.compile();
|
|
55
|
+
// Head window should start from the transition, not from Topic A
|
|
56
|
+
const firstMsg = messages[0];
|
|
57
|
+
assert.ok(firstMsg, 'Should have at least one message');
|
|
58
|
+
// Topic A messages should NOT be the first verbatim messages
|
|
59
|
+
const firstText = firstMsg.content
|
|
60
|
+
.filter((b) => b.type === 'text')
|
|
61
|
+
.map(b => b.text)
|
|
62
|
+
.join('');
|
|
63
|
+
assert.ok(!firstText.includes('Topic A'), `First message should not be Topic A content, got: ${firstText.slice(0, 80)}`);
|
|
64
|
+
// The transition marker or Topic B should be in the output
|
|
65
|
+
const allText = messages.flatMap(m => m.content.filter((b) => b.type === 'text').map(b => b.text)).join('\n');
|
|
66
|
+
assert.ok(allText.includes('Topic B'), 'Topic B should be in compiled output');
|
|
67
|
+
manager.close();
|
|
68
|
+
});
|
|
69
|
+
it('should make old head window messages compressible', async () => {
|
|
70
|
+
cleanup();
|
|
71
|
+
const strategy = new AutobiographicalStrategy({
|
|
72
|
+
headWindowTokens: 200,
|
|
73
|
+
recentWindowTokens: 50,
|
|
74
|
+
targetChunkTokens: 100,
|
|
75
|
+
});
|
|
76
|
+
const manager = await ContextManager.open({
|
|
77
|
+
path: TEST_STORE_PATH,
|
|
78
|
+
strategy,
|
|
79
|
+
});
|
|
80
|
+
// Add enough Topic A messages to fill the head window
|
|
81
|
+
for (let i = 0; i < 5; i++) {
|
|
82
|
+
manager.addMessage(i % 2 === 0 ? 'user' : 'assistant', textBlock(`Topic A message ${i}: ${'a'.repeat(50)}`));
|
|
83
|
+
}
|
|
84
|
+
// Transition
|
|
85
|
+
const transitionId = manager.addMessage('Context Manager', textBlock('[Topic Transition]\n\nSummary of Topic A.'));
|
|
86
|
+
strategy.resetHeadWindow(transitionId);
|
|
87
|
+
// Add Topic B messages
|
|
88
|
+
for (let i = 0; i < 5; i++) {
|
|
89
|
+
manager.addMessage(i % 2 === 0 ? 'user' : 'assistant', textBlock(`Topic B message ${i}: ${'b'.repeat(50)}`));
|
|
90
|
+
}
|
|
91
|
+
// Compiling should work without errors — old head window is now chunkable
|
|
92
|
+
const { messages } = await manager.compile();
|
|
93
|
+
assert.ok(messages.length > 0, 'Should compile messages');
|
|
94
|
+
manager.close();
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
describe('getHeadWindowStartIndex', () => {
|
|
98
|
+
it('should return 0 when no head window start is set', async () => {
|
|
99
|
+
cleanup();
|
|
100
|
+
const strategy = new AutobiographicalStrategy({
|
|
101
|
+
headWindowTokens: 200,
|
|
102
|
+
recentWindowTokens: 100,
|
|
103
|
+
});
|
|
104
|
+
const manager = await ContextManager.open({
|
|
105
|
+
path: TEST_STORE_PATH,
|
|
106
|
+
strategy,
|
|
107
|
+
});
|
|
108
|
+
manager.addMessage('user', textBlock('Hello'));
|
|
109
|
+
manager.addMessage('assistant', textBlock('Hi'));
|
|
110
|
+
// With no reset, head window starts from 0
|
|
111
|
+
const { messages } = await manager.compile();
|
|
112
|
+
const firstText = messages[0].content
|
|
113
|
+
.filter((b) => b.type === 'text')
|
|
114
|
+
.map(b => b.text)
|
|
115
|
+
.join('');
|
|
116
|
+
assert.ok(firstText.includes('Hello'), 'First message should be the first one added');
|
|
117
|
+
manager.close();
|
|
118
|
+
});
|
|
119
|
+
it('should fall back to 0 if referenced message is deleted', async () => {
|
|
120
|
+
cleanup();
|
|
121
|
+
const strategy = new AutobiographicalStrategy({
|
|
122
|
+
headWindowTokens: 500,
|
|
123
|
+
recentWindowTokens: 100,
|
|
124
|
+
});
|
|
125
|
+
const manager = await ContextManager.open({
|
|
126
|
+
path: TEST_STORE_PATH,
|
|
127
|
+
strategy,
|
|
128
|
+
});
|
|
129
|
+
manager.addMessage('user', textBlock('First'));
|
|
130
|
+
const midId = manager.addMessage('assistant', textBlock('Second'));
|
|
131
|
+
manager.addMessage('user', textBlock('Third'));
|
|
132
|
+
// Reset to mid message, then remove it
|
|
133
|
+
strategy.resetHeadWindow(midId);
|
|
134
|
+
manager.removeMessage(midId);
|
|
135
|
+
// Should not throw — falls back to 0
|
|
136
|
+
const { messages } = await manager.compile();
|
|
137
|
+
assert.ok(messages.length > 0);
|
|
138
|
+
manager.close();
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
describe('isTopicTransitionMessage detection', () => {
|
|
142
|
+
it('should detect [Topic Transition] messages from Context Manager', async () => {
|
|
143
|
+
cleanup();
|
|
144
|
+
const strategy = new AutobiographicalStrategy({
|
|
145
|
+
headWindowTokens: 200,
|
|
146
|
+
recentWindowTokens: 200,
|
|
147
|
+
});
|
|
148
|
+
const manager = await ContextManager.open({
|
|
149
|
+
path: TEST_STORE_PATH,
|
|
150
|
+
strategy,
|
|
151
|
+
});
|
|
152
|
+
// Add regular messages
|
|
153
|
+
manager.addMessage('user', textBlock('Hello'));
|
|
154
|
+
manager.addMessage('assistant', textBlock('[Topic Transition] fake'));
|
|
155
|
+
// Add real transition
|
|
156
|
+
const realTransitionId = manager.addMessage('Context Manager', textBlock('[Topic Transition]\n\nReal transition.'));
|
|
157
|
+
// Add another regular message
|
|
158
|
+
manager.addMessage('user', textBlock('After transition'));
|
|
159
|
+
manager.close();
|
|
160
|
+
// Reopen — initialize should find the transition marker
|
|
161
|
+
const strategy2 = new AutobiographicalStrategy({
|
|
162
|
+
headWindowTokens: 200,
|
|
163
|
+
recentWindowTokens: 200,
|
|
164
|
+
});
|
|
165
|
+
const manager2 = await ContextManager.open({
|
|
166
|
+
path: TEST_STORE_PATH,
|
|
167
|
+
strategy: strategy2,
|
|
168
|
+
});
|
|
169
|
+
// The head window should start from the transition message
|
|
170
|
+
const { messages } = await manager2.compile();
|
|
171
|
+
const allText = messages.flatMap(m => m.content.filter((b) => b.type === 'text').map(b => b.text)).join('\n');
|
|
172
|
+
// The first verbatim message should be the transition or after it,
|
|
173
|
+
// NOT the initial "Hello"
|
|
174
|
+
const firstText = messages[0].content
|
|
175
|
+
.filter((b) => b.type === 'text')
|
|
176
|
+
.map(b => b.text)
|
|
177
|
+
.join('');
|
|
178
|
+
assert.ok(firstText.includes('Topic Transition') || firstText.includes('After transition'), `Expected transition or post-transition as first message, got: ${firstText.slice(0, 80)}`);
|
|
179
|
+
manager2.close();
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
describe('Persistence across restarts', () => {
|
|
183
|
+
it('should restore headWindowStartId from topic transition markers', async () => {
|
|
184
|
+
cleanup();
|
|
185
|
+
// Session 1: create messages and reset head window
|
|
186
|
+
const strategy1 = new AutobiographicalStrategy({
|
|
187
|
+
headWindowTokens: 300,
|
|
188
|
+
recentWindowTokens: 100,
|
|
189
|
+
});
|
|
190
|
+
const manager1 = await ContextManager.open({
|
|
191
|
+
path: TEST_STORE_PATH,
|
|
192
|
+
strategy: strategy1,
|
|
193
|
+
});
|
|
194
|
+
manager1.addMessage('user', textBlock('Old topic: planning'));
|
|
195
|
+
manager1.addMessage('assistant', textBlock('Old topic: sure, lets plan'));
|
|
196
|
+
const transitionId = manager1.addMessage('Context Manager', textBlock('[Topic Transition]\n\nWe planned things.'));
|
|
197
|
+
strategy1.resetHeadWindow(transitionId);
|
|
198
|
+
manager1.addMessage('user', textBlock('New topic: execution'));
|
|
199
|
+
manager1.sync();
|
|
200
|
+
manager1.close();
|
|
201
|
+
// Session 2: reopen with fresh strategy
|
|
202
|
+
const strategy2 = new AutobiographicalStrategy({
|
|
203
|
+
headWindowTokens: 300,
|
|
204
|
+
recentWindowTokens: 100,
|
|
205
|
+
});
|
|
206
|
+
const manager2 = await ContextManager.open({
|
|
207
|
+
path: TEST_STORE_PATH,
|
|
208
|
+
strategy: strategy2,
|
|
209
|
+
});
|
|
210
|
+
const { messages } = await manager2.compile();
|
|
211
|
+
// The old topic messages should not be in the head window
|
|
212
|
+
const firstText = messages[0].content
|
|
213
|
+
.filter((b) => b.type === 'text')
|
|
214
|
+
.map(b => b.text)
|
|
215
|
+
.join('');
|
|
216
|
+
assert.ok(!firstText.includes('Old topic'), `After restart, head window should not start from old topic: ${firstText.slice(0, 80)}`);
|
|
217
|
+
manager2.close();
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
describe('Tool use boundary retreat', () => {
|
|
221
|
+
it('should retreat at most one position for tool_use at head window boundary', async () => {
|
|
222
|
+
cleanup();
|
|
223
|
+
const strategy = new AutobiographicalStrategy({
|
|
224
|
+
headWindowTokens: 300,
|
|
225
|
+
recentWindowTokens: 50,
|
|
226
|
+
});
|
|
227
|
+
const manager = await ContextManager.open({
|
|
228
|
+
path: TEST_STORE_PATH,
|
|
229
|
+
strategy,
|
|
230
|
+
});
|
|
231
|
+
// Fill with tool_use/tool_result pairs that push the boundary
|
|
232
|
+
manager.addMessage('user', textBlock('Start'));
|
|
233
|
+
manager.addMessage('assistant', [
|
|
234
|
+
{ type: 'text', text: 'Tool 1' },
|
|
235
|
+
{ type: 'tool_use', id: 'c1', name: 'search', input: {} },
|
|
236
|
+
]);
|
|
237
|
+
manager.addMessage('user', [
|
|
238
|
+
{ type: 'tool_result', toolUseId: 'c1', content: 'result1' },
|
|
239
|
+
]);
|
|
240
|
+
manager.addMessage('assistant', [
|
|
241
|
+
{ type: 'text', text: 'Tool 2' },
|
|
242
|
+
{ type: 'tool_use', id: 'c2', name: 'search', input: {} },
|
|
243
|
+
]);
|
|
244
|
+
manager.addMessage('user', [
|
|
245
|
+
{ type: 'tool_result', toolUseId: 'c2', content: 'result2' },
|
|
246
|
+
]);
|
|
247
|
+
// Push well over the head window budget
|
|
248
|
+
manager.addMessage('assistant', textBlock('x'.repeat(1000)));
|
|
249
|
+
manager.addMessage('user', textBlock('End'));
|
|
250
|
+
const { messages } = await manager.compile();
|
|
251
|
+
// The head window should not be empty — the retreat should NOT
|
|
252
|
+
// hollow out the entire head window through consecutive tool_use messages
|
|
253
|
+
assert.ok(messages.length >= 2, `Should have multiple messages, got ${messages.length}`);
|
|
254
|
+
// Validate no orphaned tool_use/tool_result
|
|
255
|
+
for (let i = 0; i < messages.length; i++) {
|
|
256
|
+
const hasToolUse = messages[i].content.some(b => b.type === 'tool_use');
|
|
257
|
+
if (hasToolUse && i + 1 < messages.length) {
|
|
258
|
+
const nextHasToolResult = messages[i + 1].content.some(b => b.type === 'tool_result');
|
|
259
|
+
assert.ok(nextHasToolResult, 'tool_use must be followed by tool_result');
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
manager.close();
|
|
263
|
+
});
|
|
264
|
+
});
|
|
265
|
+
describe('KnowledgeStrategy compatibility', () => {
|
|
266
|
+
it('should support head window reset on KnowledgeStrategy', async () => {
|
|
267
|
+
cleanup();
|
|
268
|
+
const strategy = new KnowledgeStrategy({
|
|
269
|
+
headWindowTokens: 200,
|
|
270
|
+
recentWindowTokens: 100,
|
|
271
|
+
});
|
|
272
|
+
const manager = await ContextManager.open({
|
|
273
|
+
path: TEST_STORE_PATH,
|
|
274
|
+
strategy,
|
|
275
|
+
});
|
|
276
|
+
manager.addMessage('user', textBlock('Knowledge topic A'));
|
|
277
|
+
manager.addMessage('assistant', textBlock('Analyzing topic A'));
|
|
278
|
+
const transitionId = manager.addMessage('Context Manager', textBlock('[Topic Transition]\n\nTransitioned to new topic.'));
|
|
279
|
+
strategy.resetHeadWindow(transitionId);
|
|
280
|
+
manager.addMessage('user', textBlock('Knowledge topic B'));
|
|
281
|
+
manager.addMessage('assistant', textBlock('Analyzing topic B'));
|
|
282
|
+
const { messages } = await manager.compile();
|
|
283
|
+
assert.ok(messages.length > 0);
|
|
284
|
+
// First message should be the transition marker, not "Knowledge topic A"
|
|
285
|
+
const firstText = messages[0].content
|
|
286
|
+
.filter((b) => b.type === 'text')
|
|
287
|
+
.map(b => b.text)
|
|
288
|
+
.join('');
|
|
289
|
+
assert.ok(firstText.includes('[Topic Transition]') || firstText.includes('topic B'), `KnowledgeStrategy head should start from transition or topic B, got: ${firstText.slice(0, 80)}`);
|
|
290
|
+
manager.close();
|
|
291
|
+
});
|
|
292
|
+
});
|
|
293
|
+
describe('ContextManager.resetHeadWindow public API', () => {
|
|
294
|
+
it('should inject transition marker and reset strategy', async () => {
|
|
295
|
+
cleanup();
|
|
296
|
+
const strategy = new AutobiographicalStrategy({
|
|
297
|
+
headWindowTokens: 300,
|
|
298
|
+
recentWindowTokens: 100,
|
|
299
|
+
});
|
|
300
|
+
const manager = await ContextManager.open({
|
|
301
|
+
path: TEST_STORE_PATH,
|
|
302
|
+
strategy,
|
|
303
|
+
});
|
|
304
|
+
manager.addMessage('user', textBlock('Old context'));
|
|
305
|
+
manager.addMessage('assistant', textBlock('Old response'));
|
|
306
|
+
// Call public API with explicit text
|
|
307
|
+
const summary = await manager.resetHeadWindow('User switched from old to new topic.');
|
|
308
|
+
assert.strictEqual(summary, 'User switched from old to new topic.');
|
|
309
|
+
manager.addMessage('user', textBlock('New context'));
|
|
310
|
+
const { messages } = await manager.compile();
|
|
311
|
+
// Transition marker should be in the output
|
|
312
|
+
const allText = messages.flatMap(m => m.content.filter((b) => b.type === 'text').map(b => b.text)).join('\n');
|
|
313
|
+
assert.ok(allText.includes('[Topic Transition]'), 'Should contain transition marker');
|
|
314
|
+
assert.ok(allText.includes('New context'), 'Should contain new topic');
|
|
315
|
+
manager.close();
|
|
316
|
+
});
|
|
317
|
+
it('should throw for strategies that do not support reset', async () => {
|
|
318
|
+
cleanup();
|
|
319
|
+
const manager = await ContextManager.open({
|
|
320
|
+
path: TEST_STORE_PATH,
|
|
321
|
+
strategy: new PassthroughStrategy(),
|
|
322
|
+
});
|
|
323
|
+
await assert.rejects(() => manager.resetHeadWindow('test'), { message: /does not support head window reset/ });
|
|
324
|
+
manager.close();
|
|
325
|
+
});
|
|
326
|
+
});
|
|
327
|
+
describe('isResettableStrategy type guard', () => {
|
|
328
|
+
it('should return true for AutobiographicalStrategy', () => {
|
|
329
|
+
const strategy = new AutobiographicalStrategy();
|
|
330
|
+
assert.strictEqual(isResettableStrategy(strategy), true);
|
|
331
|
+
});
|
|
332
|
+
it('should return true for KnowledgeStrategy', () => {
|
|
333
|
+
const strategy = new KnowledgeStrategy();
|
|
334
|
+
assert.strictEqual(isResettableStrategy(strategy), true);
|
|
335
|
+
});
|
|
336
|
+
it('should return false for PassthroughStrategy', () => {
|
|
337
|
+
const strategy = new PassthroughStrategy();
|
|
338
|
+
assert.strictEqual(isResettableStrategy(strategy), false);
|
|
339
|
+
});
|
|
340
|
+
});
|
|
341
|
+
});
|
|
342
|
+
//# sourceMappingURL=head-window-reset.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"head-window-reset.test.js","sourceRoot":"","sources":["../../test/head-window-reset.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration.test.d.ts","sourceRoot":"","sources":["../../test/integration.test.ts"],"names":[],"mappings":""}
|