ai-hist 0.3.1 → 0.3.3

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.
@@ -1,10 +1,88 @@
1
1
  import assert from 'node:assert/strict';
2
2
  import { spawn } from 'node:child_process';
3
- import { mkdtemp, mkdir, writeFile } from 'node:fs/promises';
3
+ import { mkdtemp, mkdir, realpath, stat, writeFile } from 'node:fs/promises';
4
4
  import { tmpdir } from 'node:os';
5
5
  import { join } from 'node:path';
6
6
  import { test } from 'node:test';
7
+ import initSqlJs from 'sql.js';
7
8
  import { openAiHist } from './index.js';
9
+ test('SDK projectScope restricts all history and trajectory reads', async () => {
10
+ const root = await mkdtemp(join(tmpdir(), 'ai-hist-scope-'));
11
+ const dbPath = join(root, 'history.db');
12
+ await writeScopeFixtureDb(dbPath);
13
+ const hist = await openAiHist({ dbPath, projectScope: '/work/app' });
14
+ try {
15
+ assert.equal(hist.projectScope, '/work/app');
16
+ assert.deepEqual(hist.recent({ limit: 10 }).map((entry) => entry.prompt), ['scoped child prompt', 'scoped root prompt']);
17
+ assert.deepEqual(hist.recent({ limit: 10, project: '/work/app/pkg' }).map((entry) => entry.prompt), ['scoped child prompt']);
18
+ assert.deepEqual(hist.recent({ limit: 10, project: '/work/other' }), []);
19
+ assert.deepEqual(hist.search('prompt', { limit: 10 }).map((entry) => entry.prompt), ['scoped child prompt', 'scoped root prompt']);
20
+ assert.deepEqual(hist.getSession('shared').map((entry) => entry.prompt), ['scoped root prompt', 'scoped child prompt']);
21
+ assert.equal(hist.getEntry(3), null);
22
+ assert.deepEqual(hist.getInTimeWindow(2_000, 2_000).map((entry) => entry.prompt), ['scoped root prompt', 'scoped child prompt']);
23
+ assert.equal(hist.stats().total, 2);
24
+ assert.deepEqual(hist.searchTrajectories('decision', { limit: 10 }).map((entry) => entry.id), ['scoped-run']);
25
+ }
26
+ finally {
27
+ hist.close();
28
+ }
29
+ const rootScopedHist = await openAiHist({ dbPath, projectScope: '/' });
30
+ try {
31
+ assert.deepEqual(rootScopedHist.recent({ limit: 10 }).map((entry) => entry.prompt), ['outside prompt', 'scoped child prompt', 'scoped root prompt']);
32
+ assert.deepEqual(rootScopedHist.searchTrajectories('decision', { limit: 10 }).map((entry) => entry.id), ['outside-run', 'scoped-run']);
33
+ }
34
+ finally {
35
+ rootScopedHist.close();
36
+ }
37
+ });
38
+ test('SDK tags sessions, filters reads by tag, and persists SQLite writes', async () => {
39
+ const root = await mkdtemp(join(tmpdir(), 'ai-hist-tags-'));
40
+ const dbPath = join(root, 'history.db');
41
+ await writeScopeFixtureDb(dbPath);
42
+ const hist = await openAiHist({ dbPath });
43
+ try {
44
+ const tagged = hist.tagSession('shared', 'Release Work', { source: 'claude', color: 'blue' });
45
+ assert.equal(tagged.length, 1);
46
+ assert.deepEqual(hist.search('prompt', { tag: 'release work', limit: 10 }).map((entry) => entry.prompt), ['scoped root prompt']);
47
+ assert.equal(hist.listTags({ includeSessions: true })[0].sessions?.[0].sessionId, 'shared');
48
+ }
49
+ finally {
50
+ hist.close();
51
+ }
52
+ const reopened = await openAiHist({ dbPath });
53
+ try {
54
+ assert.deepEqual(reopened.recent({ tag: 'release work', limit: 10 }).map((entry) => entry.prompt), ['scoped root prompt']);
55
+ assert.equal(reopened.untagSession('shared', 'release work', { source: 'claude' }), 1);
56
+ assert.deepEqual(reopened.recent({ tag: 'release work', limit: 10 }), []);
57
+ }
58
+ finally {
59
+ reopened.close();
60
+ }
61
+ });
62
+ test('SDK projectScope restricts tag counts and included tagged sessions', async () => {
63
+ const root = await mkdtemp(join(tmpdir(), 'ai-hist-tag-scope-'));
64
+ const dbPath = join(root, 'history.db');
65
+ await writeScopeFixtureDb(dbPath);
66
+ const unscoped = await openAiHist({ dbPath });
67
+ try {
68
+ assert.equal(unscoped.tagSession('shared', 'Scoped Tag', { source: 'claude' }).length, 1);
69
+ assert.equal(unscoped.tagSession('shared', 'Scoped Tag', { source: 'cursor' }).length, 1);
70
+ }
71
+ finally {
72
+ unscoped.close();
73
+ }
74
+ const scoped = await openAiHist({ dbPath, projectScope: '/work/app' });
75
+ try {
76
+ const tags = scoped.listTags({ tag: 'scoped tag', includeSessions: true });
77
+ assert.equal(tags.length, 1);
78
+ assert.equal(tags[0].sessionCount, 1);
79
+ assert.deepEqual(tags[0].sessions?.map((session) => session.source), ['claude']);
80
+ assert.deepEqual(scoped.recent({ tag: 'scoped tag', limit: 10 }).map((entry) => entry.prompt), ['scoped root prompt']);
81
+ }
82
+ finally {
83
+ scoped.close();
84
+ }
85
+ });
8
86
  test('SDK fallback ingests compacted per-run trajectories from TRAJECTORY_ROOT', async () => {
9
87
  const root = await mkdtemp(join(tmpdir(), 'ai-hist-trajectory-'));
10
88
  const compacted = join(root, 'planner', 'compacted');
@@ -58,12 +136,76 @@ test('SDK fallback ingests compacted per-run trajectories from TRAJECTORY_ROOT',
58
136
  process.env.AI_HIST_DB = previousDb;
59
137
  }
60
138
  });
139
+ test('SDK fallback ingests OpenCode rows committed in WAL files', async () => {
140
+ const root = await mkdtemp(join(tmpdir(), 'ai-hist-opencode-wal-'));
141
+ const dbPath = join(root, 'opencode.db');
142
+ const readyPath = join(root, 'ready');
143
+ const child = spawn('python3', [
144
+ '-c',
145
+ `
146
+ import json, pathlib, sqlite3, time
147
+ db = pathlib.Path(${JSON.stringify(dbPath)})
148
+ ready = pathlib.Path(${JSON.stringify(readyPath)})
149
+ conn = sqlite3.connect(db)
150
+ conn.execute("PRAGMA journal_mode=WAL")
151
+ conn.execute("PRAGMA wal_autocheckpoint=0")
152
+ conn.execute("CREATE TABLE session (id TEXT PRIMARY KEY, directory TEXT, time_created INTEGER)")
153
+ conn.execute("CREATE TABLE message (id TEXT PRIMARY KEY, session_id TEXT, time_created INTEGER, data TEXT)")
154
+ conn.execute("CREATE TABLE part (id TEXT PRIMARY KEY, message_id TEXT, session_id TEXT, time_created INTEGER, data TEXT)")
155
+ conn.execute("INSERT INTO session VALUES ('oc-ts-wal', '/tmp/opencode-ts', 1700000000000)")
156
+ conn.execute("INSERT INTO message VALUES ('msg-ts-wal', 'oc-ts-wal', 1700000001000, ?)", (json.dumps({"role":"user"}),))
157
+ conn.execute("INSERT INTO part VALUES ('part-ts-wal', 'msg-ts-wal', 'oc-ts-wal', 1700000002000, ?)", (json.dumps({"type":"text","text":"ts wal opencode prompt"}),))
158
+ conn.commit()
159
+ live = sqlite3.connect(db)
160
+ assert live.execute("SELECT COUNT(*) FROM part").fetchone()[0] == 1
161
+ live.close()
162
+ ready.write_text("ready")
163
+ time.sleep(60)
164
+ `,
165
+ ], { stdio: ['ignore', 'ignore', 'pipe'] });
166
+ const stderr = [];
167
+ child.stderr.on('data', (chunk) => stderr.push(chunk));
168
+ const previousDb = process.env.AI_HIST_DB;
169
+ const previousOpenCode = process.env.OPENCODE_DB;
170
+ const previousTrajectory = process.env.TRAJECTORY_ROOT;
171
+ process.env.AI_HIST_DB = join(root, 'missing-ai-hist.db');
172
+ process.env.OPENCODE_DB = dbPath;
173
+ process.env.TRAJECTORY_ROOT = join(root, 'missing-trajectories');
174
+ try {
175
+ await waitForFile(readyPath, () => Buffer.concat(stderr).toString('utf8'));
176
+ const hist = await openAiHist({ dbPath: process.env.AI_HIST_DB });
177
+ try {
178
+ assert.deepEqual(hist.search('ts wal opencode', { source: 'opencode', limit: 5 }).map((entry) => entry.prompt), ['ts wal opencode prompt']);
179
+ }
180
+ finally {
181
+ hist.close();
182
+ }
183
+ }
184
+ finally {
185
+ child.kill();
186
+ if (previousDb === undefined)
187
+ delete process.env.AI_HIST_DB;
188
+ else
189
+ process.env.AI_HIST_DB = previousDb;
190
+ if (previousOpenCode === undefined)
191
+ delete process.env.OPENCODE_DB;
192
+ else
193
+ process.env.OPENCODE_DB = previousOpenCode;
194
+ if (previousTrajectory === undefined)
195
+ delete process.env.TRAJECTORY_ROOT;
196
+ else
197
+ process.env.TRAJECTORY_ROOT = previousTrajectory;
198
+ }
199
+ });
61
200
  test('MCP server exposes history and trajectory tools over stdio', async () => {
62
- const root = await mkdtemp(join(tmpdir(), 'ai-hist-mcp-'));
63
- const child = spawn(process.execPath, [new URL('./mcp-server.js', import.meta.url).pathname], {
201
+ const root = await realpath(await mkdtemp(join(tmpdir(), 'ai-hist-mcp-')));
202
+ const dbPath = join(root, 'history.db');
203
+ await writeScopeFixtureDb(dbPath);
204
+ const child = spawn(process.execPath, [new URL('./mcp-server.js', import.meta.url).pathname, '--project', '--project-path=.'], {
205
+ cwd: root,
64
206
  env: {
65
207
  ...process.env,
66
- AI_HIST_DB: join(root, 'missing.db'),
208
+ AI_HIST_DB: dbPath,
67
209
  TRAJECTORY_ROOT: root,
68
210
  },
69
211
  stdio: ['pipe', 'pipe', 'pipe'],
@@ -71,9 +213,11 @@ test('MCP server exposes history and trajectory tools over stdio', async () => {
71
213
  const stderr = [];
72
214
  child.stderr.on('data', (chunk) => stderr.push(chunk));
73
215
  try {
74
- const tools = await new Promise((resolve, reject) => {
75
- const timer = setTimeout(() => reject(new Error('timed out waiting for MCP tools/list')), 5000);
216
+ const { tools, stats } = await new Promise((resolve, reject) => {
217
+ const timer = setTimeout(() => reject(new Error('timed out waiting for MCP responses')), 5000);
76
218
  let buffer = '';
219
+ let tools = null;
220
+ let stats = null;
77
221
  child.stdout.on('data', (chunk) => {
78
222
  buffer += chunk.toString('utf8');
79
223
  while (true) {
@@ -91,9 +235,15 @@ test('MCP server exposes history and trajectory tools over stdio', async () => {
91
235
  return;
92
236
  }
93
237
  if (message.id === 2) {
238
+ tools = new Set((message.result?.tools ?? []).map((tool) => tool.name));
239
+ }
240
+ if (message.id === 3) {
241
+ const text = message.result?.content?.find((item) => item.type === 'text')?.text ?? '{}';
242
+ stats = JSON.parse(text);
243
+ }
244
+ if (tools && stats) {
94
245
  clearTimeout(timer);
95
- resolve(new Set((message.result?.tools ?? []).map((tool) => tool.name)));
96
- return;
246
+ resolve({ tools, stats });
97
247
  }
98
248
  }
99
249
  });
@@ -128,6 +278,12 @@ test('MCP server exposes history and trajectory tools over stdio', async () => {
128
278
  method: 'tools/list',
129
279
  params: {},
130
280
  });
281
+ writeJsonRpc(child.stdin, {
282
+ jsonrpc: '2.0',
283
+ id: 3,
284
+ method: 'tools/call',
285
+ params: { name: 'stats', arguments: {} },
286
+ });
131
287
  });
132
288
  for (const name of [
133
289
  'search_history',
@@ -135,11 +291,16 @@ test('MCP server exposes history and trajectory tools over stdio', async () => {
135
291
  'get_session',
136
292
  'get_context',
137
293
  'stats',
294
+ 'tag_session',
295
+ 'untag_session',
296
+ 'list_tags',
138
297
  'search_trajectories',
139
298
  'why_for_task',
299
+ 'get_handoff',
140
300
  ]) {
141
301
  assert.ok(tools.has(name), `missing MCP tool ${name}`);
142
302
  }
303
+ assert.equal(stats.projectScope, root);
143
304
  }
144
305
  finally {
145
306
  child.kill();
@@ -148,4 +309,114 @@ test('MCP server exposes history and trajectory tools over stdio', async () => {
148
309
  function writeJsonRpc(stdin, payload) {
149
310
  stdin.write(`${JSON.stringify(payload)}\n`);
150
311
  }
312
+ async function waitForFile(path, getError) {
313
+ const deadline = Date.now() + 5_000;
314
+ while (Date.now() < deadline) {
315
+ try {
316
+ await stat(path);
317
+ return;
318
+ }
319
+ catch {
320
+ await new Promise((resolve) => setTimeout(resolve, 50));
321
+ }
322
+ }
323
+ throw new Error(`timed out waiting for ${path}: ${getError()}`);
324
+ }
325
+ async function writeScopeFixtureDb(dbPath) {
326
+ const SQL = await initSqlJs();
327
+ const db = new SQL.Database();
328
+ try {
329
+ db.run(`CREATE TABLE history (
330
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
331
+ source TEXT NOT NULL,
332
+ session_id TEXT,
333
+ project TEXT,
334
+ prompt TEXT NOT NULL,
335
+ timestamp_ms INTEGER NOT NULL,
336
+ git_branch TEXT
337
+ )`);
338
+ db.run(`CREATE TABLE sessions (
339
+ session_id TEXT NOT NULL,
340
+ source TEXT NOT NULL,
341
+ cwd TEXT,
342
+ git_branch TEXT,
343
+ first_activity_ms INTEGER,
344
+ last_activity_ms INTEGER,
345
+ last_assistant_text TEXT,
346
+ raw_path TEXT,
347
+ parser_version INTEGER NOT NULL DEFAULT 1,
348
+ PRIMARY KEY (session_id, source)
349
+ )`);
350
+ db.run(`CREATE TABLE trajectories (
351
+ id TEXT PRIMARY KEY,
352
+ version INTEGER,
353
+ persona_id TEXT,
354
+ project_id TEXT,
355
+ task_title TEXT,
356
+ task_description TEXT,
357
+ status TEXT,
358
+ started_at TEXT,
359
+ completed_at TEXT,
360
+ decisions_json TEXT NOT NULL,
361
+ retrospective_json TEXT NOT NULL,
362
+ search_text TEXT NOT NULL,
363
+ path TEXT,
364
+ updated_ms INTEGER NOT NULL,
365
+ timestamp_ms INTEGER NOT NULL
366
+ )`);
367
+ const insertHistory = db.prepare('INSERT INTO history (source, session_id, project, prompt, timestamp_ms) VALUES (?, ?, ?, ?, ?)');
368
+ const insertTrajectory = db.prepare(`INSERT INTO trajectories
369
+ (id, version, persona_id, project_id, task_title, task_description, status,
370
+ started_at, completed_at, decisions_json, retrospective_json, search_text,
371
+ path, updated_ms, timestamp_ms)
372
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
373
+ try {
374
+ insertHistory.run(['claude', 'shared', '/work/app', 'scoped root prompt', 1_000]);
375
+ insertHistory.run(['codex', 'shared', '/work/app/pkg', 'scoped child prompt', 2_000]);
376
+ insertHistory.run(['cursor', 'shared', '/work/other', 'outside prompt', 3_000]);
377
+ insertTrajectory.run([
378
+ 'scoped-run',
379
+ 1,
380
+ 'planner',
381
+ 'app',
382
+ 'Scoped task',
383
+ 'Scoped decision',
384
+ 'completed',
385
+ null,
386
+ null,
387
+ '[]',
388
+ '{}',
389
+ 'scoped decision',
390
+ '/work/app/.trajectories/planner/compacted/scoped-run.json',
391
+ 4_000,
392
+ 4_000,
393
+ ]);
394
+ insertTrajectory.run([
395
+ 'outside-run',
396
+ 1,
397
+ 'planner',
398
+ 'other',
399
+ 'Outside task',
400
+ 'Outside decision',
401
+ 'completed',
402
+ null,
403
+ null,
404
+ '[]',
405
+ '{}',
406
+ 'outside decision',
407
+ '/work/other/.trajectories/planner/compacted/outside-run.json',
408
+ 5_000,
409
+ 5_000,
410
+ ]);
411
+ }
412
+ finally {
413
+ insertHistory.free();
414
+ insertTrajectory.free();
415
+ }
416
+ await writeFile(dbPath, Buffer.from(db.export()));
417
+ }
418
+ finally {
419
+ db.close();
420
+ }
421
+ }
151
422
  //# sourceMappingURL=mcp-smoke.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-smoke.test.js","sourceRoot":"","sources":["../src/mcp-smoke.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-smoke.test.js","sourceRoot":"","sources":["../src/mcp-smoke.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-hist",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "TypeScript SDK and MCP server for AI coding agent session history — Claude Code, Codex, Cursor, and Agent Relay in one searchable index. Works with or without ai-hist sync via automatic JSONL fallback.",
5
5
  "license": "MIT",
6
6
  "private": false,
@@ -36,7 +36,7 @@
36
36
  "coding-agent",
37
37
  "session-history"
38
38
  ],
39
- "homepage": "https://github.com/AgentWorkforce/ai-hist",
39
+ "homepage": "https://github.com/AgentWorkforce/relayhistory",
40
40
  "files": [
41
41
  "dist",
42
42
  "README.md",
@@ -44,7 +44,7 @@
44
44
  ],
45
45
  "repository": {
46
46
  "type": "git",
47
- "url": "https://github.com/AgentWorkforce/ai-hist",
47
+ "url": "https://github.com/AgentWorkforce/relayhistory",
48
48
  "directory": "sdk-ts"
49
49
  },
50
50
  "publishConfig": {