@animalabs/agent-framework 0.14.0 → 0.15.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.
Files changed (62) hide show
  1. package/dist/src/agent.d.ts +10 -0
  2. package/dist/src/agent.d.ts.map +1 -1
  3. package/dist/src/agent.js +39 -0
  4. package/dist/src/agent.js.map +1 -1
  5. package/dist/src/framework.d.ts +5 -2
  6. package/dist/src/framework.d.ts.map +1 -1
  7. package/dist/src/framework.js +126 -36
  8. package/dist/src/framework.js.map +1 -1
  9. package/dist/src/modules/history/index.d.ts +69 -0
  10. package/dist/src/modules/history/index.d.ts.map +1 -0
  11. package/dist/src/modules/history/index.js +519 -0
  12. package/dist/src/modules/history/index.js.map +1 -0
  13. package/dist/src/modules/history/search-regex-worker.d.ts +23 -0
  14. package/dist/src/modules/history/search-regex-worker.d.ts.map +1 -0
  15. package/dist/src/modules/history/search-regex-worker.js +57 -0
  16. package/dist/src/modules/history/search-regex-worker.js.map +1 -0
  17. package/dist/src/modules/index.d.ts +1 -0
  18. package/dist/src/modules/index.d.ts.map +1 -1
  19. package/dist/src/modules/index.js +1 -0
  20. package/dist/src/modules/index.js.map +1 -1
  21. package/dist/src/modules/workspace/index.d.ts.map +1 -1
  22. package/dist/src/modules/workspace/index.js +42 -1
  23. package/dist/src/modules/workspace/index.js.map +1 -1
  24. package/dist/src/modules/workspace/types.d.ts +5 -0
  25. package/dist/src/modules/workspace/types.d.ts.map +1 -1
  26. package/dist/src/modules/workspace/types.js.map +1 -1
  27. package/dist/src/types/trace.d.ts +4 -0
  28. package/dist/src/types/trace.d.ts.map +1 -1
  29. package/dist/test/history-module.test.d.ts +2 -0
  30. package/dist/test/history-module.test.d.ts.map +1 -0
  31. package/dist/test/history-module.test.js +449 -0
  32. package/dist/test/history-module.test.js.map +1 -0
  33. package/dist/test/kv-unified-open-flight-retry.test.d.ts +2 -0
  34. package/dist/test/kv-unified-open-flight-retry.test.d.ts.map +1 -0
  35. package/dist/test/kv-unified-open-flight-retry.test.js +189 -0
  36. package/dist/test/kv-unified-open-flight-retry.test.js.map +1 -0
  37. package/dist/test/kv-unified-wiring.test.js +39 -0
  38. package/dist/test/kv-unified-wiring.test.js.map +1 -1
  39. package/dist/test/puppet-tool-call.test.js +113 -1
  40. package/dist/test/puppet-tool-call.test.js.map +1 -1
  41. package/dist/test/puppet-turn-reservation.test.d.ts +2 -0
  42. package/dist/test/puppet-turn-reservation.test.d.ts.map +1 -0
  43. package/dist/test/puppet-turn-reservation.test.js +139 -0
  44. package/dist/test/puppet-turn-reservation.test.js.map +1 -0
  45. package/dist/test/save-recent-image.test.js +29 -0
  46. package/dist/test/save-recent-image.test.js.map +1 -1
  47. package/dist/test/tool-result-spill.test.js +114 -0
  48. package/dist/test/tool-result-spill.test.js.map +1 -1
  49. package/dist/test/workspace-read-text.test.d.ts +2 -0
  50. package/dist/test/workspace-read-text.test.d.ts.map +1 -0
  51. package/dist/test/workspace-read-text.test.js +101 -0
  52. package/dist/test/workspace-read-text.test.js.map +1 -0
  53. package/dist/tsconfig.tsbuildinfo +1 -1
  54. package/package.json +3 -3
  55. package/src/agent.ts +41 -0
  56. package/src/framework.ts +132 -43
  57. package/src/modules/history/index.ts +613 -0
  58. package/src/modules/history/search-regex-worker.ts +76 -0
  59. package/src/modules/index.ts +2 -0
  60. package/src/modules/workspace/index.ts +42 -1
  61. package/src/modules/workspace/types.ts +5 -0
  62. package/src/types/trace.ts +4 -0
@@ -1 +1 @@
1
- {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../../src/types/trace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../../src/types/trace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=history-module.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-module.test.d.ts","sourceRoot":"","sources":["../../test/history-module.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,449 @@
1
+ import { describe, it } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { HistoryModule } from '../src/modules/history/index.js';
4
+ /**
5
+ * HistoryModule's own logic is dispatch (always via
6
+ * queryMessagesByTimeAndChannel, per context-manager's own test evidence
7
+ * that it already handles "only one filter" and "neither filter"), input
8
+ * validation (ISO dates, regex, limit capping), and presentation (content
9
+ * flattening, snippet extraction, truncation detection). The underlying
10
+ * index-query *correctness* is context-manager's own responsibility and is
11
+ * covered by its test suite (test/message-store-history-index.test.ts) — so
12
+ * this stub implements realistic-but-simple in-memory filtering over a small
13
+ * fixture rather than standing up a real chronicle store, and a `calls` log
14
+ * lets tests assert on exactly what HistoryModule asked for (e.g. the capped
15
+ * limit).
16
+ */
17
+ function textBlock(text) {
18
+ return { type: 'text', text };
19
+ }
20
+ function metaFor(channelId) {
21
+ return channelId ? { external: { channelId } } : undefined;
22
+ }
23
+ function msg(id, ms, participant, content, channelId) {
24
+ return {
25
+ id,
26
+ sequence: Number(id.replace(/\D/g, '')),
27
+ participant,
28
+ content,
29
+ metadata: metaFor(channelId),
30
+ timestamp: new Date(ms),
31
+ };
32
+ }
33
+ function channelIdOf(m) {
34
+ return m.metadata?.external?.channelId;
35
+ }
36
+ /** Trivial, deterministic stand-in for real token estimation — tests only
37
+ * assert on shape/filtering, never on the exact number. */
38
+ function estimate(m) {
39
+ return m.content.reduce((n, b) => n + (b.type === 'text' ? b.text.length : 4), 0);
40
+ }
41
+ function buildStub(messages, opts = {}) {
42
+ const calls = [];
43
+ const unsupported = () => {
44
+ throw new Error('Chronicle history index unsupported: native field-index capability absent on this chronicle build.');
45
+ };
46
+ const cm = {
47
+ queryMessagesByTimeAndChannel(args) {
48
+ calls.push({ method: 'queryMessagesByTimeAndChannel', args });
49
+ if (opts.throwUnsupported)
50
+ return unsupported();
51
+ const filtered = messages.filter((m) => {
52
+ const ts = m.timestamp.getTime();
53
+ if (args.fromMs !== undefined && ts < args.fromMs)
54
+ return false;
55
+ if (args.toMs !== undefined && ts > args.toMs)
56
+ return false;
57
+ if (args.channelId !== undefined && channelIdOf(m) !== args.channelId)
58
+ return false;
59
+ return true;
60
+ });
61
+ const matchedCount = filtered.length;
62
+ const offset = args.offset ?? 0;
63
+ const limit = args.limit ?? filtered.length;
64
+ return { messages: filtered.slice(offset, offset + limit), matchedCount };
65
+ },
66
+ getChannelMessageCounts() {
67
+ calls.push({ method: 'getChannelMessageCounts', args: undefined });
68
+ if (opts.throwUnsupported)
69
+ return unsupported();
70
+ const counts = new Map();
71
+ for (const m of messages) {
72
+ const c = channelIdOf(m);
73
+ if (c)
74
+ counts.set(c, (counts.get(c) ?? 0) + 1);
75
+ }
76
+ return [...counts.entries()].map(([channelId, count]) => ({ channelId, messages: count }));
77
+ },
78
+ getChannelTokenStats(args) {
79
+ calls.push({ method: 'getChannelTokenStats', args });
80
+ if (opts.throwUnsupported)
81
+ return unsupported();
82
+ const inRange = messages.filter((m) => {
83
+ const ts = m.timestamp.getTime();
84
+ if (args?.fromMs !== undefined && ts < args.fromMs)
85
+ return false;
86
+ if (args?.toMs !== undefined && ts > args.toMs)
87
+ return false;
88
+ return true;
89
+ });
90
+ const byChannel = new Map();
91
+ let totalTokensEstimate = 0;
92
+ for (const m of inRange) {
93
+ const est = estimate(m);
94
+ totalTokensEstimate += est;
95
+ const c = channelIdOf(m);
96
+ if (c) {
97
+ const agg = byChannel.get(c) ?? { messages: 0, tokensEstimate: 0 };
98
+ agg.messages++;
99
+ agg.tokensEstimate += est;
100
+ byChannel.set(c, agg);
101
+ }
102
+ }
103
+ return {
104
+ totalMessages: inRange.length,
105
+ totalTokensEstimate,
106
+ byChannel: [...byChannel.entries()].map(([channelId, agg]) => ({ channelId, ...agg })),
107
+ };
108
+ },
109
+ };
110
+ return { cm, calls };
111
+ }
112
+ function call(name, input) {
113
+ return { id: `call-${name}`, name, input };
114
+ }
115
+ // Fixture: two channels (c1, c2), one channel-less message, spread across
116
+ // distinct timestamps so time-range filtering is exercisable.
117
+ const FIXTURE = [
118
+ msg('m1', 1000, 'User', [textBlock('hello world')], 'c1'),
119
+ msg('m2', 2000, 'Claude', [{ type: 'tool_use', id: 't1', name: 'search', input: {} }], 'c1'),
120
+ msg('m3', 3000, 'User', [textBlock('foo BAR baz')], 'c2'),
121
+ msg('m4', 4000, 'Claude', [{ type: 'thinking', thinking: 'hmm' }, textBlock('final answer')], 'c2'),
122
+ msg('m5', 5000, 'User', [textBlock('unchanneled message')]),
123
+ msg('m6', 6000, 'User', [textBlock('another c1 message with searchterm inside')], 'c1'),
124
+ ];
125
+ describe('HistoryModule', () => {
126
+ describe('stats', () => {
127
+ it('reports all-time message counts and range-scoped token stats separately', async () => {
128
+ const { cm } = buildStub(FIXTURE);
129
+ const h = new HistoryModule();
130
+ h.bind(cm);
131
+ // Range covers only m3..m5 (3000-5000), but messageCountsAllTime must
132
+ // still reflect the whole store.
133
+ const result = await h.handleToolCall(call('stats', { from: new Date(3000).toISOString(), to: new Date(5000).toISOString() }));
134
+ assert.equal(result.success, true, result.error);
135
+ const data = result.data;
136
+ const allTimeByChannel = new Map(data.messageCountsAllTime.map((c) => [c.channelId, c.messages]));
137
+ assert.equal(allTimeByChannel.get('c1'), 3); // m1, m2, m6 — unaffected by the range
138
+ assert.equal(allTimeByChannel.get('c2'), 2); // m3, m4
139
+ assert.equal(data.tokenStatsForRange.totalMessages, 3); // m3, m4, m5
140
+ const rangeByChannel = new Map(data.tokenStatsForRange.byChannel.map((c) => [c.channelId, c.messages]));
141
+ assert.equal(rangeByChannel.get('c2'), 2); // m3 and m4 both fall in [3000,5000]
142
+ assert.equal(rangeByChannel.has('c1'), false); // no c1 message falls in [3000,5000]
143
+ });
144
+ it('filters both parts of the response to one channelId when given', async () => {
145
+ const { cm } = buildStub(FIXTURE);
146
+ const h = new HistoryModule();
147
+ h.bind(cm);
148
+ const result = await h.handleToolCall(call('stats', { channelId: 'c1' }));
149
+ assert.equal(result.success, true, result.error);
150
+ const data = result.data;
151
+ assert.deepEqual(data.messageCountsAllTime.map((c) => c.channelId), ['c1']);
152
+ assert.deepEqual(data.tokenStatsForRange.byChannel.map((c) => c.channelId), ['c1']);
153
+ });
154
+ it('rejects an invalid ISO date cleanly instead of throwing', async () => {
155
+ const { cm } = buildStub(FIXTURE);
156
+ const h = new HistoryModule();
157
+ h.bind(cm);
158
+ const result = await h.handleToolCall(call('stats', { from: 'not-a-date' }));
159
+ assert.equal(result.success, false);
160
+ assert.equal(result.isError, true);
161
+ assert.match(result.error ?? '', /Invalid ISO 8601 date/);
162
+ });
163
+ it('surfaces the capability-absent error as a clean tool error, not a crash', async () => {
164
+ const { cm } = buildStub(FIXTURE, { throwUnsupported: true });
165
+ const h = new HistoryModule();
166
+ h.bind(cm);
167
+ const result = await h.handleToolCall(call('stats', {}));
168
+ assert.equal(result.success, false);
169
+ assert.equal(result.isError, true);
170
+ assert.match(result.error ?? '', /Chronicle history index unsupported/);
171
+ });
172
+ });
173
+ describe('extract', () => {
174
+ it('filters by channel and date range', async () => {
175
+ const { cm } = buildStub(FIXTURE);
176
+ const h = new HistoryModule();
177
+ h.bind(cm);
178
+ const result = await h.handleToolCall(call('extract', { channelId: 'c1', from: new Date(1500).toISOString() }));
179
+ assert.equal(result.success, true, result.error);
180
+ const data = result.data;
181
+ // c1 messages at ts >= 1500: m2 (2000), m6 (6000) — m1 (1000) excluded.
182
+ assert.deepEqual(data.messages.map((m) => m.id), ['m2', 'm6']);
183
+ assert.equal(data.returned, 2);
184
+ assert.equal(data.matchedCount, 2);
185
+ });
186
+ it('format:"text" flattens content; format:"raw" returns blocks as-is', async () => {
187
+ const { cm } = buildStub(FIXTURE);
188
+ const h = new HistoryModule();
189
+ h.bind(cm);
190
+ const textResult = await h.handleToolCall(call('extract', { channelId: 'c2', format: 'text' }));
191
+ const textData = textResult.data;
192
+ const m4 = textData.messages.find((m) => m.id === 'm4');
193
+ assert.equal(m4.content, '[thinking] final answer');
194
+ const rawResult = await h.handleToolCall(call('extract', { channelId: 'c2', format: 'raw' }));
195
+ const rawData = rawResult.data;
196
+ const m4Raw = rawData.messages.find((m) => m.id === 'm4');
197
+ assert.ok(Array.isArray(m4Raw.content));
198
+ assert.equal(m4Raw.content.length, 2);
199
+ assert.equal(m4Raw.content[0]?.type, 'thinking');
200
+ });
201
+ it('caps limit at the hard maximum before it reaches context-manager', async () => {
202
+ const { cm, calls } = buildStub(FIXTURE);
203
+ const h = new HistoryModule();
204
+ h.bind(cm);
205
+ await h.handleToolCall(call('extract', { limit: 999999 }));
206
+ const queryCall = calls.find((c) => c.method === 'queryMessagesByTimeAndChannel');
207
+ assert.equal((queryCall?.args).limit, 200);
208
+ });
209
+ it('clamps an out-of-u32-range offset to the native ceiling instead of passing it through to wrap (reviewer repro)', async () => {
210
+ // Number.MAX_SAFE_INTEGER is not a safe ceiling for a value that
211
+ // eventually crosses into a native u32 argument: 4294967296 (one past
212
+ // u32 max) must be clamped to 4294967295, not passed through as-is —
213
+ // otherwise it wraps/truncates at the N-API boundary into a small
214
+ // offset and silently returns the wrong page instead of an empty one.
215
+ const { cm, calls } = buildStub(FIXTURE);
216
+ const h = new HistoryModule();
217
+ h.bind(cm);
218
+ await h.handleToolCall(call('extract', { offset: 4294967296, limit: 1 }));
219
+ const queryCall = calls.find((c) => c.method === 'queryMessagesByTimeAndChannel');
220
+ assert.equal((queryCall?.args).offset, 4294967295);
221
+ });
222
+ it('surfaces the capability-absent error cleanly', async () => {
223
+ const { cm } = buildStub(FIXTURE, { throwUnsupported: true });
224
+ const h = new HistoryModule();
225
+ h.bind(cm);
226
+ const result = await h.handleToolCall(call('extract', {}));
227
+ assert.equal(result.success, false);
228
+ assert.equal(result.isError, true);
229
+ assert.match(result.error ?? '', /Chronicle history index unsupported/);
230
+ });
231
+ });
232
+ describe('search', () => {
233
+ it('matches a case-insensitive substring by default', async () => {
234
+ const { cm } = buildStub(FIXTURE);
235
+ const h = new HistoryModule();
236
+ h.bind(cm);
237
+ const result = await h.handleToolCall(call('search', { query: 'bar' }));
238
+ assert.equal(result.success, true, result.error);
239
+ const data = result.data;
240
+ assert.deepEqual(data.matches.map((m) => m.id), ['m3']);
241
+ assert.match(data.matches[0].snippet, /BAR/);
242
+ });
243
+ it('limit:0 (substring) returns zero matches instead of one (reviewer repro)', async () => {
244
+ // clampCount accepts 0 as a valid value (it's >= 0). Both matching
245
+ // loops used to push a match onto the results array BEFORE checking
246
+ // the limit, so with a matching candidate present, limit:0 still
247
+ // returned exactly 1 match.
248
+ const { cm } = buildStub(FIXTURE);
249
+ const h = new HistoryModule();
250
+ h.bind(cm);
251
+ const result = await h.handleToolCall(call('search', { query: 'bar', limit: 0 }));
252
+ assert.equal(result.success, true, result.error);
253
+ const data = result.data;
254
+ assert.equal(data.matches.length, 0);
255
+ });
256
+ it('limit:0 (regex) returns zero matches instead of one (reviewer repro)', async () => {
257
+ // Same bug, independently, in search-regex-worker.ts's own copy of
258
+ // the match loop.
259
+ const { cm } = buildStub(FIXTURE);
260
+ const h = new HistoryModule();
261
+ h.bind(cm);
262
+ const result = await h.handleToolCall(call('search', { query: '\\bworld\\b', regex: true, limit: 0 }));
263
+ assert.equal(result.success, true, result.error);
264
+ const data = result.data;
265
+ assert.equal(data.matches.length, 0);
266
+ });
267
+ it('caseSensitive:true respects case', async () => {
268
+ const { cm } = buildStub(FIXTURE);
269
+ const h = new HistoryModule();
270
+ h.bind(cm);
271
+ const result = await h.handleToolCall(call('search', { query: 'bar', caseSensitive: true }));
272
+ assert.equal(result.success, true, result.error);
273
+ const data = result.data;
274
+ assert.equal(data.matches.length, 0); // fixture only has "BAR", not "bar"
275
+ });
276
+ it('matches a regex', async () => {
277
+ const { cm } = buildStub(FIXTURE);
278
+ const h = new HistoryModule();
279
+ h.bind(cm);
280
+ const result = await h.handleToolCall(call('search', { query: '\\bworld\\b', regex: true }));
281
+ assert.equal(result.success, true, result.error);
282
+ const data = result.data;
283
+ assert.deepEqual(data.matches.map((m) => m.id), ['m1']);
284
+ });
285
+ it('forcibly terminates a catastrophically-backtracking (ReDoS) regex instead of hanging', async () => {
286
+ // Reviewer's repro: 32 'a's followed by a non-matching character, plus
287
+ // a classic exponential-backtracking pattern. `(a+)+$` against this
288
+ // input backtracks exponentially and (verified separately in an
289
+ // isolated child process) has to be force-killed after several
290
+ // seconds; the equivalent linear pattern `^a+$` returns instantly.
291
+ // This must never block the framework's single event loop — matching
292
+ // has to happen off-thread with a real, forcible deadline.
293
+ const evil = 'a'.repeat(32) + '!';
294
+ const { cm } = buildStub([msg('r1', 1000, 'User', [textBlock(evil)], 'c1')]);
295
+ const h = new HistoryModule();
296
+ h.bind(cm);
297
+ const start = Date.now();
298
+ const result = await h.handleToolCall(call('search', { query: '(a+)+$', regex: true, maxScan: 1 }));
299
+ const elapsed = Date.now() - start;
300
+ // Returns well within a bounded time (module deadline is 2s; generous
301
+ // slack here for worker spawn/CI jitter) — proves the test runner
302
+ // itself never hung waiting on this call.
303
+ assert.ok(elapsed < 8000, `search took ${elapsed}ms — should have been forcibly terminated near the deadline`);
304
+ // A cut-short match MUST be a clean, unambiguous failure, never
305
+ // success:true with an empty matches array — that would be
306
+ // indistinguishable from "no matches found", which is a lie.
307
+ assert.equal(result.success, false);
308
+ assert.equal(result.isError, true);
309
+ assert.match(result.error ?? '', /timed out/i);
310
+ });
311
+ it('a normal regex against the same kind of input still matches correctly (worker path is not just failing everything)', async () => {
312
+ const { cm } = buildStub([msg('r1', 1000, 'User', [textBlock('aaaa!')], 'c1')]);
313
+ const h = new HistoryModule();
314
+ h.bind(cm);
315
+ const result = await h.handleToolCall(call('search', { query: '^a+!$', regex: true }));
316
+ assert.equal(result.success, true, result.error);
317
+ const data = result.data;
318
+ assert.deepEqual(data.matches.map((m) => m.id), ['r1']);
319
+ });
320
+ it('returns a clean error for an invalid regex instead of throwing', async () => {
321
+ const { cm } = buildStub(FIXTURE);
322
+ const h = new HistoryModule();
323
+ h.bind(cm);
324
+ const result = await h.handleToolCall(call('search', { query: '(unclosed', regex: true }));
325
+ assert.equal(result.success, false);
326
+ assert.equal(result.isError, true);
327
+ assert.match(result.error ?? '', /Invalid regex/);
328
+ });
329
+ it('reports truncated:true up front when the candidate window exceeds maxScan', async () => {
330
+ const { cm } = buildStub(FIXTURE);
331
+ const h = new HistoryModule();
332
+ h.bind(cm);
333
+ const result = await h.handleToolCall(call('search', { query: 'm', maxScan: 3 }));
334
+ assert.equal(result.success, true, result.error);
335
+ const data = result.data;
336
+ assert.equal(data.truncated, true);
337
+ assert.equal(data.candidatePoolSize, 3);
338
+ assert.ok(data.scanned <= 3);
339
+ });
340
+ it('does not report truncated when the candidate window fits within maxScan', async () => {
341
+ const { cm } = buildStub(FIXTURE);
342
+ const h = new HistoryModule();
343
+ h.bind(cm);
344
+ const result = await h.handleToolCall(call('search', { query: 'searchterm', maxScan: 5000 }));
345
+ assert.equal(result.success, true, result.error);
346
+ const data = result.data;
347
+ assert.equal(data.truncated, false);
348
+ assert.deepEqual(data.matches.map((m) => m.id), ['m6']);
349
+ });
350
+ it('surfaces the capability-absent error cleanly', async () => {
351
+ const { cm } = buildStub(FIXTURE, { throwUnsupported: true });
352
+ const h = new HistoryModule();
353
+ h.bind(cm);
354
+ const result = await h.handleToolCall(call('search', { query: 'x' }));
355
+ assert.equal(result.success, false);
356
+ assert.equal(result.isError, true);
357
+ assert.match(result.error ?? '', /Chronicle history index unsupported/);
358
+ });
359
+ });
360
+ describe('pagination input validation', () => {
361
+ // Math.min(value, max) alone only enforces an UPPER bound —
362
+ // Math.min(-1, 200) is -1, not clamped up to anything — so a negative
363
+ // (or non-integer/non-finite) limit/offset/maxScan would previously
364
+ // reach context-manager's native query unbounded. Each of these must
365
+ // now be rejected before the native call is ever made.
366
+ const badValues = [
367
+ ['negative', -1],
368
+ ['non-integer', 1.5],
369
+ ['NaN', NaN],
370
+ ['Infinity', Infinity],
371
+ ];
372
+ for (const [label, value] of badValues) {
373
+ it(`extract: rejects a ${label} limit before it reaches context-manager`, async () => {
374
+ const { cm, calls } = buildStub(FIXTURE);
375
+ const h = new HistoryModule();
376
+ h.bind(cm);
377
+ const result = await h.handleToolCall(call('extract', { limit: value }));
378
+ assert.equal(result.success, false);
379
+ assert.equal(result.isError, true);
380
+ assert.equal(calls.length, 0, 'must reject before ever calling context-manager');
381
+ });
382
+ it(`extract: rejects a ${label} offset before it reaches context-manager`, async () => {
383
+ const { cm, calls } = buildStub(FIXTURE);
384
+ const h = new HistoryModule();
385
+ h.bind(cm);
386
+ const result = await h.handleToolCall(call('extract', { offset: value }));
387
+ assert.equal(result.success, false);
388
+ assert.equal(result.isError, true);
389
+ assert.equal(calls.length, 0);
390
+ });
391
+ it(`search: rejects a ${label} limit before it reaches context-manager`, async () => {
392
+ const { cm, calls } = buildStub(FIXTURE);
393
+ const h = new HistoryModule();
394
+ h.bind(cm);
395
+ const result = await h.handleToolCall(call('search', { query: 'm', limit: value }));
396
+ assert.equal(result.success, false);
397
+ assert.equal(result.isError, true);
398
+ assert.equal(calls.length, 0);
399
+ });
400
+ it(`search: rejects a ${label} maxScan before it reaches context-manager`, async () => {
401
+ const { cm, calls } = buildStub(FIXTURE);
402
+ const h = new HistoryModule();
403
+ h.bind(cm);
404
+ const result = await h.handleToolCall(call('search', { query: 'm', maxScan: value }));
405
+ assert.equal(result.success, false);
406
+ assert.equal(result.isError, true);
407
+ assert.equal(calls.length, 0);
408
+ });
409
+ }
410
+ it('extract: a real 250-message store with limit:-1 does NOT return everything (reviewer repro)', async () => {
411
+ // Reviewer's exact repro shape: a store larger than the hard cap, and
412
+ // a negative limit that must not bypass it.
413
+ const many = Array.from({ length: 250 }, (_, i) => msg(`p${i}`, 1000 + i, 'User', [textBlock(`m${i}`)], 'c1'));
414
+ const { cm } = buildStub(many);
415
+ const h = new HistoryModule();
416
+ h.bind(cm);
417
+ const result = await h.handleToolCall(call('extract', { limit: -1 }));
418
+ assert.equal(result.success, false);
419
+ assert.equal(result.isError, true);
420
+ });
421
+ it('search: a real large candidate pool with maxScan:-2 does NOT fetch everything (reviewer repro)', async () => {
422
+ const many = Array.from({ length: 248 }, (_, i) => msg(`q${i}`, 1000 + i, 'User', [textBlock(`m${i}`)], 'c1'));
423
+ const { cm, calls } = buildStub(many);
424
+ const h = new HistoryModule();
425
+ h.bind(cm);
426
+ const result = await h.handleToolCall(call('search', { query: 'm', maxScan: -2 }));
427
+ assert.equal(result.success, false);
428
+ assert.equal(result.isError, true);
429
+ assert.equal(calls.length, 0);
430
+ });
431
+ });
432
+ it('rejects tool calls before bind()', async () => {
433
+ const h = new HistoryModule();
434
+ const result = await h.handleToolCall(call('stats', {}));
435
+ assert.equal(result.success, false);
436
+ assert.equal(result.isError, true);
437
+ assert.match(result.error ?? '', /not bound/);
438
+ });
439
+ it('rejects an unknown tool name', async () => {
440
+ const { cm } = buildStub(FIXTURE);
441
+ const h = new HistoryModule();
442
+ h.bind(cm);
443
+ const result = await h.handleToolCall(call('bogus', {}));
444
+ assert.equal(result.success, false);
445
+ assert.equal(result.isError, true);
446
+ assert.match(result.error ?? '', /Unknown tool/);
447
+ });
448
+ });
449
+ //# sourceMappingURL=history-module.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-module.test.js","sourceRoot":"","sources":["../../test/history-module.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=kv-unified-open-flight-retry.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kv-unified-open-flight-retry.test.d.ts","sourceRoot":"","sources":["../../test/kv-unified-open-flight-retry.test.ts"],"names":[],"mappings":""}