reflectt-node 0.1.20 → 0.1.22

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 (103) hide show
  1. package/README.md +64 -0
  2. package/dist/canvas-interactive.d.ts +53 -0
  3. package/dist/canvas-interactive.d.ts.map +1 -1
  4. package/dist/canvas-interactive.js +194 -0
  5. package/dist/canvas-interactive.js.map +1 -1
  6. package/dist/canvas-push.d.ts +2 -0
  7. package/dist/canvas-push.d.ts.map +1 -1
  8. package/dist/canvas-push.js +89 -0
  9. package/dist/canvas-push.js.map +1 -1
  10. package/dist/channels.d.ts +1 -1
  11. package/dist/intervention-template.d.ts +67 -0
  12. package/dist/intervention-template.d.ts.map +1 -0
  13. package/dist/intervention-template.js +290 -0
  14. package/dist/intervention-template.js.map +1 -0
  15. package/dist/request-tracker.d.ts +1 -0
  16. package/dist/request-tracker.d.ts.map +1 -1
  17. package/dist/request-tracker.js +16 -4
  18. package/dist/request-tracker.js.map +1 -1
  19. package/dist/server.d.ts.map +1 -1
  20. package/dist/server.js +157 -4
  21. package/dist/server.js.map +1 -1
  22. package/dist/stall-detector.d.ts +109 -0
  23. package/dist/stall-detector.d.ts.map +1 -0
  24. package/dist/stall-detector.js +279 -0
  25. package/dist/stall-detector.js.map +1 -0
  26. package/package.json +1 -1
  27. package/public/docs.md +9 -0
  28. package/dist/agent-config.test.d.ts +0 -2
  29. package/dist/agent-config.test.d.ts.map +0 -1
  30. package/dist/agent-config.test.js +0 -91
  31. package/dist/agent-config.test.js.map +0 -1
  32. package/dist/agent-exec-guardrail.test.d.ts +0 -2
  33. package/dist/agent-exec-guardrail.test.d.ts.map +0 -1
  34. package/dist/agent-exec-guardrail.test.js +0 -55
  35. package/dist/agent-exec-guardrail.test.js.map +0 -1
  36. package/dist/agent-memories.test.d.ts +0 -2
  37. package/dist/agent-memories.test.d.ts.map +0 -1
  38. package/dist/agent-memories.test.js +0 -327
  39. package/dist/agent-memories.test.js.map +0 -1
  40. package/dist/agent-messaging.test.d.ts +0 -2
  41. package/dist/agent-messaging.test.d.ts.map +0 -1
  42. package/dist/agent-messaging.test.js +0 -105
  43. package/dist/agent-messaging.test.js.map +0 -1
  44. package/dist/agent-runs.test.d.ts +0 -2
  45. package/dist/agent-runs.test.d.ts.map +0 -1
  46. package/dist/agent-runs.test.js +0 -386
  47. package/dist/agent-runs.test.js.map +0 -1
  48. package/dist/api.test.d.ts +0 -2
  49. package/dist/api.test.d.ts.map +0 -1
  50. package/dist/api.test.js +0 -99
  51. package/dist/api.test.js.map +0 -1
  52. package/dist/approval-queue.test.d.ts +0 -2
  53. package/dist/approval-queue.test.d.ts.map +0 -1
  54. package/dist/approval-queue.test.js +0 -118
  55. package/dist/approval-queue.test.js.map +0 -1
  56. package/dist/artifact-store.test.d.ts +0 -2
  57. package/dist/artifact-store.test.d.ts.map +0 -1
  58. package/dist/artifact-store.test.js +0 -119
  59. package/dist/artifact-store.test.js.map +0 -1
  60. package/dist/canvas-input.test.d.ts +0 -2
  61. package/dist/canvas-input.test.d.ts.map +0 -1
  62. package/dist/canvas-input.test.js +0 -96
  63. package/dist/canvas-input.test.js.map +0 -1
  64. package/dist/canvas-render.test.d.ts +0 -2
  65. package/dist/canvas-render.test.d.ts.map +0 -1
  66. package/dist/canvas-render.test.js +0 -95
  67. package/dist/canvas-render.test.js.map +0 -1
  68. package/dist/e2e-loop-proof.test.d.ts +0 -2
  69. package/dist/e2e-loop-proof.test.d.ts.map +0 -1
  70. package/dist/e2e-loop-proof.test.js +0 -114
  71. package/dist/e2e-loop-proof.test.js.map +0 -1
  72. package/dist/email-sms-send.test.d.ts +0 -2
  73. package/dist/email-sms-send.test.d.ts.map +0 -1
  74. package/dist/email-sms-send.test.js +0 -96
  75. package/dist/email-sms-send.test.js.map +0 -1
  76. package/dist/handoff-state.test.d.ts +0 -2
  77. package/dist/handoff-state.test.d.ts.map +0 -1
  78. package/dist/handoff-state.test.js +0 -102
  79. package/dist/handoff-state.test.js.map +0 -1
  80. package/dist/routing-enforcement.test.d.ts +0 -2
  81. package/dist/routing-enforcement.test.d.ts.map +0 -1
  82. package/dist/routing-enforcement.test.js +0 -62
  83. package/dist/routing-enforcement.test.js.map +0 -1
  84. package/dist/run-retention.test.d.ts +0 -2
  85. package/dist/run-retention.test.d.ts.map +0 -1
  86. package/dist/run-retention.test.js +0 -57
  87. package/dist/run-retention.test.js.map +0 -1
  88. package/dist/run-stream.test.d.ts +0 -2
  89. package/dist/run-stream.test.d.ts.map +0 -1
  90. package/dist/run-stream.test.js +0 -70
  91. package/dist/run-stream.test.js.map +0 -1
  92. package/dist/webhook-storage.test.d.ts +0 -2
  93. package/dist/webhook-storage.test.d.ts.map +0 -1
  94. package/dist/webhook-storage.test.js +0 -86
  95. package/dist/webhook-storage.test.js.map +0 -1
  96. package/dist/workflow-canvas-state.test.d.ts +0 -2
  97. package/dist/workflow-canvas-state.test.d.ts.map +0 -1
  98. package/dist/workflow-canvas-state.test.js +0 -53
  99. package/dist/workflow-canvas-state.test.js.map +0 -1
  100. package/dist/workflow-templates.test.d.ts +0 -2
  101. package/dist/workflow-templates.test.d.ts.map +0 -1
  102. package/dist/workflow-templates.test.js +0 -76
  103. package/dist/workflow-templates.test.js.map +0 -1
@@ -1,327 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- import { describe, it, beforeEach } from 'node:test';
3
- import assert from 'node:assert/strict';
4
- import Database from 'better-sqlite3';
5
- import fs from 'node:fs';
6
- import path from 'node:path';
7
- import os from 'node:os';
8
- // ── Test helpers — bootstrap in-memory DB with migration v22 ────────────
9
- let testDb;
10
- function setupTestDb() {
11
- testDb = new Database(':memory:');
12
- testDb.pragma('journal_mode = WAL');
13
- testDb.exec(`
14
- CREATE TABLE IF NOT EXISTS agent_memories (
15
- id TEXT PRIMARY KEY,
16
- agent_id TEXT NOT NULL,
17
- namespace TEXT NOT NULL DEFAULT 'default',
18
- key TEXT NOT NULL,
19
- content TEXT NOT NULL,
20
- tags TEXT NOT NULL DEFAULT '[]',
21
- expires_at INTEGER,
22
- created_at INTEGER NOT NULL,
23
- updated_at INTEGER NOT NULL
24
- );
25
- CREATE UNIQUE INDEX IF NOT EXISTS idx_agent_memories_unique ON agent_memories(agent_id, namespace, key);
26
- CREATE INDEX IF NOT EXISTS idx_agent_memories_agent ON agent_memories(agent_id, namespace, updated_at);
27
- CREATE INDEX IF NOT EXISTS idx_agent_memories_expires ON agent_memories(expires_at) WHERE expires_at IS NOT NULL;
28
- `);
29
- }
30
- // We test through the module, but need to intercept getDb.
31
- // Approach: test the SQL patterns directly against the in-memory DB,
32
- // mirroring the module's logic exactly.
33
- function setMemory(opts) {
34
- const now = Date.now();
35
- const namespace = opts.namespace ?? 'default';
36
- const tags = opts.tags ?? [];
37
- const expiresAt = opts.expiresAt ?? null;
38
- const existing = testDb.prepare('SELECT id FROM agent_memories WHERE agent_id = ? AND namespace = ? AND key = ?').get(opts.agentId, namespace, opts.key);
39
- if (existing) {
40
- testDb.prepare(`
41
- UPDATE agent_memories SET content = ?, tags = ?, expires_at = ?, updated_at = ?
42
- WHERE id = ?
43
- `).run(opts.content, JSON.stringify(tags), expiresAt, now, existing.id);
44
- return testDb.prepare('SELECT * FROM agent_memories WHERE id = ?').get(existing.id);
45
- }
46
- const id = `amem-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
47
- testDb.prepare(`
48
- INSERT INTO agent_memories (id, agent_id, namespace, key, content, tags, expires_at, created_at, updated_at)
49
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
50
- `).run(id, opts.agentId, namespace, opts.key, opts.content, JSON.stringify(tags), expiresAt, now, now);
51
- return testDb.prepare('SELECT * FROM agent_memories WHERE id = ?').get(id);
52
- }
53
- function getMemory(agentId, key, namespace) {
54
- const ns = namespace ?? 'default';
55
- const row = testDb.prepare('SELECT * FROM agent_memories WHERE agent_id = ? AND namespace = ? AND key = ?').get(agentId, ns, key);
56
- if (!row)
57
- return null;
58
- if (row.expires_at && row.expires_at <= Date.now()) {
59
- testDb.prepare('DELETE FROM agent_memories WHERE id = ?').run(row.id);
60
- return null;
61
- }
62
- return row;
63
- }
64
- function listMemories(opts) {
65
- const limit = opts.limit ?? 100;
66
- const conditions = ['agent_id = ?'];
67
- const params = [opts.agentId];
68
- if (opts.namespace) {
69
- conditions.push('namespace = ?');
70
- params.push(opts.namespace);
71
- }
72
- if (!opts.includeExpired) {
73
- conditions.push('(expires_at IS NULL OR expires_at > ?)');
74
- params.push(Date.now());
75
- }
76
- if (opts.tag) {
77
- conditions.push("EXISTS (SELECT 1 FROM json_each(tags) WHERE json_each.value = ?)");
78
- params.push(opts.tag);
79
- }
80
- if (opts.search) {
81
- conditions.push('(key LIKE ? OR content LIKE ?)');
82
- const pattern = `%${opts.search}%`;
83
- params.push(pattern, pattern);
84
- }
85
- const sql = `SELECT * FROM agent_memories WHERE ${conditions.join(' AND ')} ORDER BY updated_at DESC LIMIT ?`;
86
- params.push(limit);
87
- return testDb.prepare(sql).all(...params);
88
- }
89
- function deleteMemory(agentId, key, namespace) {
90
- const ns = namespace ?? 'default';
91
- const result = testDb.prepare('DELETE FROM agent_memories WHERE agent_id = ? AND namespace = ? AND key = ?').run(agentId, ns, key);
92
- return result.changes > 0;
93
- }
94
- function countMemories(agentId, namespace) {
95
- if (namespace) {
96
- const row = testDb.prepare('SELECT COUNT(*) as count FROM agent_memories WHERE agent_id = ? AND namespace = ?').get(agentId, namespace);
97
- return row.count;
98
- }
99
- return testDb.prepare('SELECT COUNT(*) as count FROM agent_memories WHERE agent_id = ?').get(agentId).count;
100
- }
101
- function purgeExpired() {
102
- const result = testDb.prepare('DELETE FROM agent_memories WHERE expires_at IS NOT NULL AND expires_at <= ?').run(Date.now());
103
- return result.changes;
104
- }
105
- // ── Tests ──────────────────────────────────────────────────────────────────
106
- describe('Agent Memories', () => {
107
- beforeEach(() => {
108
- setupTestDb();
109
- });
110
- describe('basic CRUD', () => {
111
- it('stores and retrieves a memory', () => {
112
- const mem = setMemory({ agentId: 'link', key: 'last-task', content: 'coverage push' });
113
- assert.ok(mem.id.startsWith('amem-'));
114
- assert.equal(mem.agent_id, 'link');
115
- assert.equal(mem.key, 'last-task');
116
- assert.equal(mem.content, 'coverage push');
117
- assert.equal(mem.namespace, 'default');
118
- const got = getMemory('link', 'last-task');
119
- assert.ok(got);
120
- assert.equal(got.content, 'coverage push');
121
- });
122
- it('upserts on same agentId + namespace + key', () => {
123
- setMemory({ agentId: 'link', key: 'state', content: 'v1' });
124
- const updated = setMemory({ agentId: 'link', key: 'state', content: 'v2' });
125
- assert.equal(updated.content, 'v2');
126
- // Only one entry should exist
127
- const count = countMemories('link');
128
- assert.equal(count, 1);
129
- });
130
- it('separates by namespace', () => {
131
- setMemory({ agentId: 'link', namespace: 'work', key: 'focus', content: 'memory' });
132
- setMemory({ agentId: 'link', namespace: 'personal', key: 'focus', content: 'sleep' });
133
- const work = getMemory('link', 'focus', 'work');
134
- const personal = getMemory('link', 'focus', 'personal');
135
- assert.equal(work.content, 'memory');
136
- assert.equal(personal.content, 'sleep');
137
- });
138
- it('separates by agent', () => {
139
- setMemory({ agentId: 'link', key: 'role', content: 'builder' });
140
- setMemory({ agentId: 'kai', key: 'role', content: 'coordinator' });
141
- assert.equal(getMemory('link', 'role').content, 'builder');
142
- assert.equal(getMemory('kai', 'role').content, 'coordinator');
143
- });
144
- it('deletes a memory', () => {
145
- setMemory({ agentId: 'link', key: 'temp', content: 'gone soon' });
146
- const deleted = deleteMemory('link', 'temp');
147
- assert.equal(deleted, true);
148
- assert.equal(getMemory('link', 'temp'), null);
149
- });
150
- it('returns false for deleting non-existent memory', () => {
151
- assert.equal(deleteMemory('link', 'nope'), false);
152
- });
153
- it('returns null for non-existent memory', () => {
154
- assert.equal(getMemory('link', 'nope'), null);
155
- });
156
- });
157
- describe('tags', () => {
158
- it('stores and retrieves tags', () => {
159
- const mem = setMemory({
160
- agentId: 'link',
161
- key: 'pr-review',
162
- content: 'reviewed #870',
163
- tags: ['pr', 'review', 'agent-runs'],
164
- });
165
- const tags = JSON.parse(mem.tags);
166
- assert.deepEqual(tags, ['pr', 'review', 'agent-runs']);
167
- });
168
- it('filters by tag', () => {
169
- setMemory({ agentId: 'link', key: 'm1', content: 'one', tags: ['sprint'] });
170
- setMemory({ agentId: 'link', key: 'm2', content: 'two', tags: ['sprint', 'memory'] });
171
- setMemory({ agentId: 'link', key: 'm3', content: 'three', tags: ['review'] });
172
- const sprint = listMemories({ agentId: 'link', tag: 'sprint' });
173
- assert.equal(sprint.length, 2);
174
- const memory = listMemories({ agentId: 'link', tag: 'memory' });
175
- assert.equal(memory.length, 1);
176
- assert.equal(memory[0].key, 'm2');
177
- });
178
- it('updates tags on upsert', () => {
179
- setMemory({ agentId: 'link', key: 'evolving', content: 'v1', tags: ['draft'] });
180
- setMemory({ agentId: 'link', key: 'evolving', content: 'v2', tags: ['final', 'shipped'] });
181
- const mem = getMemory('link', 'evolving');
182
- const tags = JSON.parse(mem.tags);
183
- assert.deepEqual(tags, ['final', 'shipped']);
184
- });
185
- });
186
- describe('expiration', () => {
187
- it('returns null for expired memory', () => {
188
- setMemory({
189
- agentId: 'link',
190
- key: 'ephemeral',
191
- content: 'gone',
192
- expiresAt: Date.now() - 1000, // already expired
193
- });
194
- const result = getMemory('link', 'ephemeral');
195
- assert.equal(result, null);
196
- });
197
- it('returns memory that has not expired', () => {
198
- setMemory({
199
- agentId: 'link',
200
- key: 'fresh',
201
- content: 'still here',
202
- expiresAt: Date.now() + 60000,
203
- });
204
- const result = getMemory('link', 'fresh');
205
- assert.ok(result);
206
- assert.equal(result.content, 'still here');
207
- });
208
- it('excludes expired from list by default', () => {
209
- setMemory({ agentId: 'link', key: 'alive', content: 'yes' });
210
- setMemory({ agentId: 'link', key: 'dead', content: 'no', expiresAt: Date.now() - 1000 });
211
- const list = listMemories({ agentId: 'link' });
212
- assert.equal(list.length, 1);
213
- assert.equal(list[0].key, 'alive');
214
- });
215
- it('includes expired when asked', () => {
216
- setMemory({ agentId: 'link', key: 'alive', content: 'yes' });
217
- setMemory({ agentId: 'link', key: 'dead', content: 'no', expiresAt: Date.now() - 1000 });
218
- const list = listMemories({ agentId: 'link', includeExpired: true });
219
- assert.equal(list.length, 2);
220
- });
221
- it('purges expired memories', () => {
222
- setMemory({ agentId: 'link', key: 'keep', content: 'forever' });
223
- setMemory({ agentId: 'link', key: 'expire1', content: 'gone1', expiresAt: Date.now() - 1000 });
224
- setMemory({ agentId: 'link', key: 'expire2', content: 'gone2', expiresAt: Date.now() - 2000 });
225
- const purged = purgeExpired();
226
- assert.equal(purged, 2);
227
- assert.equal(countMemories('link'), 1);
228
- });
229
- });
230
- describe('search', () => {
231
- it('searches by key substring', () => {
232
- setMemory({ agentId: 'link', key: 'pr-870-review', content: 'approved' });
233
- setMemory({ agentId: 'link', key: 'pr-814-review', content: 'needs work' });
234
- setMemory({ agentId: 'link', key: 'daily-note', content: 'March 11' });
235
- const results = listMemories({ agentId: 'link', search: 'pr-' });
236
- assert.equal(results.length, 2);
237
- });
238
- it('searches by content substring', () => {
239
- setMemory({ agentId: 'link', key: 'm1', content: 'shipped memory API' });
240
- setMemory({ agentId: 'link', key: 'm2', content: 'reviewed browser PR' });
241
- const results = listMemories({ agentId: 'link', search: 'memory' });
242
- assert.equal(results.length, 1);
243
- assert.equal(results[0].key, 'm1');
244
- });
245
- });
246
- describe('listing', () => {
247
- it('lists by namespace', () => {
248
- setMemory({ agentId: 'link', namespace: 'session', key: 'a', content: '1' });
249
- setMemory({ agentId: 'link', namespace: 'session', key: 'b', content: '2' });
250
- setMemory({ agentId: 'link', namespace: 'long-term', key: 'c', content: '3' });
251
- const session = listMemories({ agentId: 'link', namespace: 'session' });
252
- assert.equal(session.length, 2);
253
- });
254
- it('respects limit', () => {
255
- for (let i = 0; i < 10; i++) {
256
- setMemory({ agentId: 'link', key: `item-${i}`, content: `content ${i}` });
257
- }
258
- const limited = listMemories({ agentId: 'link', limit: 3 });
259
- assert.equal(limited.length, 3);
260
- });
261
- it('counts memories per agent', () => {
262
- setMemory({ agentId: 'link', key: 'a', content: '1' });
263
- setMemory({ agentId: 'link', key: 'b', content: '2' });
264
- setMemory({ agentId: 'kai', key: 'c', content: '3' });
265
- assert.equal(countMemories('link'), 2);
266
- assert.equal(countMemories('kai'), 1);
267
- });
268
- it('counts memories per namespace', () => {
269
- setMemory({ agentId: 'link', namespace: 'work', key: 'a', content: '1' });
270
- setMemory({ agentId: 'link', namespace: 'work', key: 'b', content: '2' });
271
- setMemory({ agentId: 'link', namespace: 'play', key: 'c', content: '3' });
272
- assert.equal(countMemories('link', 'work'), 2);
273
- assert.equal(countMemories('link', 'play'), 1);
274
- });
275
- });
276
- describe('survive-restart (gate check)', () => {
277
- it('data persists across DB close/reopen (file-backed)', () => {
278
- // This test uses a file-backed DB to prove restart survival
279
- const tmpFile = path.join(os.tmpdir(), `reflectt-memory-test-${Date.now()}.db`);
280
- try {
281
- // Phase 1: write memory
282
- const db1 = new Database(tmpFile);
283
- db1.pragma('journal_mode = WAL');
284
- db1.exec(`
285
- CREATE TABLE IF NOT EXISTS agent_memories (
286
- id TEXT PRIMARY KEY, agent_id TEXT NOT NULL, namespace TEXT NOT NULL DEFAULT 'default',
287
- key TEXT NOT NULL, content TEXT NOT NULL, tags TEXT NOT NULL DEFAULT '[]',
288
- expires_at INTEGER, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL
289
- );
290
- CREATE UNIQUE INDEX IF NOT EXISTS idx_agent_memories_unique ON agent_memories(agent_id, namespace, key);
291
- `);
292
- const now = Date.now();
293
- db1.prepare(`
294
- INSERT INTO agent_memories (id, agent_id, namespace, key, content, tags, expires_at, created_at, updated_at)
295
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
296
- `).run('amem-test-1', 'link', 'default', 'survive-key', 'I persist across restarts', '["gate-check"]', null, now, now);
297
- db1.close();
298
- // Phase 2: reopen and read back (simulates node restart)
299
- const db2 = new Database(tmpFile);
300
- const row = db2.prepare('SELECT * FROM agent_memories WHERE agent_id = ? AND key = ?').get('link', 'survive-key');
301
- db2.close();
302
- assert.ok(row, 'Memory should survive DB close/reopen');
303
- assert.equal(row.content, 'I persist across restarts');
304
- assert.equal(row.agent_id, 'link');
305
- assert.equal(row.key, 'survive-key');
306
- const tags = JSON.parse(row.tags);
307
- assert.deepEqual(tags, ['gate-check']);
308
- }
309
- finally {
310
- // Cleanup
311
- try {
312
- fs.unlinkSync(tmpFile);
313
- }
314
- catch { }
315
- try {
316
- fs.unlinkSync(tmpFile + '-wal');
317
- }
318
- catch { }
319
- try {
320
- fs.unlinkSync(tmpFile + '-shm');
321
- }
322
- catch { }
323
- }
324
- });
325
- });
326
- });
327
- //# sourceMappingURL=agent-memories.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-memories.test.js","sourceRoot":"","sources":["../src/agent-memories.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=agent-messaging.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-messaging.test.d.ts","sourceRoot":"","sources":["../src/agent-messaging.test.ts"],"names":[],"mappings":""}
@@ -1,105 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- import { describe, it, beforeEach } from 'node:test';
3
- import assert from 'node:assert/strict';
4
- class InMemoryMessageStore {
5
- messages = [];
6
- counter = 0;
7
- send(from, to, content, channel = 'direct') {
8
- const msg = { id: `amsg-${++this.counter}`, from, to, channel, content, readAt: null };
9
- this.messages.push(msg);
10
- return msg;
11
- }
12
- inbox(agentId, opts) {
13
- let result = this.messages.filter(m => m.to === agentId);
14
- if (opts?.unreadOnly)
15
- result = result.filter(m => m.readAt === null);
16
- if (opts?.channel)
17
- result = result.filter(m => m.channel === opts.channel);
18
- return result;
19
- }
20
- sent(agentId) {
21
- return this.messages.filter(m => m.from === agentId);
22
- }
23
- markRead(agentId, ids) {
24
- let count = 0;
25
- for (const m of this.messages) {
26
- if (m.to !== agentId || m.readAt !== null)
27
- continue;
28
- if (!ids || ids.includes(m.id)) {
29
- m.readAt = Date.now();
30
- count++;
31
- }
32
- }
33
- return count;
34
- }
35
- unreadCount(agentId) {
36
- return this.messages.filter(m => m.to === agentId && m.readAt === null).length;
37
- }
38
- channel(ch) {
39
- return this.messages.filter(m => m.channel === ch);
40
- }
41
- clear() { this.messages = []; this.counter = 0; }
42
- }
43
- describe('agent messaging', () => {
44
- let store;
45
- beforeEach(() => { store = new InMemoryMessageStore(); });
46
- it('sends a direct message', () => {
47
- const msg = store.send('link', 'kai', 'PR #879 ready for review');
48
- assert.equal(msg.from, 'link');
49
- assert.equal(msg.to, 'kai');
50
- assert.equal(msg.channel, 'direct');
51
- assert.equal(msg.readAt, null);
52
- });
53
- it('shows in recipient inbox', () => {
54
- store.send('link', 'kai', 'Hello');
55
- const inbox = store.inbox('kai');
56
- assert.equal(inbox.length, 1);
57
- assert.equal(inbox[0].content, 'Hello');
58
- });
59
- it('does not show in sender inbox', () => {
60
- store.send('link', 'kai', 'Hello');
61
- assert.equal(store.inbox('link').length, 0);
62
- });
63
- it('shows in sender sent', () => {
64
- store.send('link', 'kai', 'Hello');
65
- assert.equal(store.sent('link').length, 1);
66
- });
67
- it('tracks unread count', () => {
68
- store.send('link', 'kai', 'msg1');
69
- store.send('pixel', 'kai', 'msg2');
70
- assert.equal(store.unreadCount('kai'), 2);
71
- });
72
- it('marks specific messages read', () => {
73
- const m1 = store.send('link', 'kai', 'msg1');
74
- store.send('pixel', 'kai', 'msg2');
75
- store.markRead('kai', [m1.id]);
76
- assert.equal(store.unreadCount('kai'), 1);
77
- });
78
- it('marks all messages read', () => {
79
- store.send('link', 'kai', 'msg1');
80
- store.send('pixel', 'kai', 'msg2');
81
- store.markRead('kai');
82
- assert.equal(store.unreadCount('kai'), 0);
83
- });
84
- it('filters unread only', () => {
85
- store.send('link', 'kai', 'msg1');
86
- const m2 = store.send('pixel', 'kai', 'msg2');
87
- store.markRead('kai', [m2.id]);
88
- const unread = store.inbox('kai', { unreadOnly: true });
89
- assert.equal(unread.length, 1);
90
- });
91
- it('supports channel messages', () => {
92
- store.send('link', 'team', 'broadcast', 'shipping');
93
- store.send('pixel', 'team', 'design update', 'shipping');
94
- store.send('kai', 'team', 'ops note', 'general');
95
- assert.equal(store.channel('shipping').length, 2);
96
- assert.equal(store.channel('general').length, 1);
97
- });
98
- it('filters inbox by channel', () => {
99
- store.send('link', 'kai', 'direct msg');
100
- store.send('link', 'kai', 'channel msg', 'reviews');
101
- assert.equal(store.inbox('kai', { channel: 'reviews' }).length, 1);
102
- assert.equal(store.inbox('kai', { channel: 'direct' }).length, 1);
103
- });
104
- });
105
- //# sourceMappingURL=agent-messaging.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-messaging.test.js","sourceRoot":"","sources":["../src/agent-messaging.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=agent-runs.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-runs.test.d.ts","sourceRoot":"","sources":["../src/agent-runs.test.ts"],"names":[],"mappings":""}