ai-hist 0.6.0 → 0.8.2

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 (58) hide show
  1. package/README.md +34 -254
  2. package/dist/cli.d.ts +3 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +248 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/cloud-client.d.ts +0 -1
  7. package/dist/cloud-client.d.ts.map +1 -1
  8. package/dist/cloud-client.js +0 -2
  9. package/dist/cloud-client.js.map +1 -1
  10. package/dist/index.d.ts +138 -309
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +258 -1191
  13. package/dist/index.js.map +1 -1
  14. package/dist/mcp-server.d.ts +0 -9
  15. package/dist/mcp-server.d.ts.map +1 -1
  16. package/dist/mcp-server.js +52 -790
  17. package/dist/mcp-server.js.map +1 -1
  18. package/package.json +14 -8
  19. package/dist/cloud-push.d.ts +0 -51
  20. package/dist/cloud-push.d.ts.map +0 -1
  21. package/dist/cloud-push.js +0 -113
  22. package/dist/cloud-push.js.map +0 -1
  23. package/dist/cloud-push.test.d.ts +0 -2
  24. package/dist/cloud-push.test.d.ts.map +0 -1
  25. package/dist/cloud-push.test.js +0 -82
  26. package/dist/cloud-push.test.js.map +0 -1
  27. package/dist/jsonl-sources.d.ts +0 -33
  28. package/dist/jsonl-sources.d.ts.map +0 -1
  29. package/dist/jsonl-sources.js +0 -351
  30. package/dist/jsonl-sources.js.map +0 -1
  31. package/dist/mcp-smoke.test.d.ts +0 -2
  32. package/dist/mcp-smoke.test.d.ts.map +0 -1
  33. package/dist/mcp-smoke.test.js +0 -574
  34. package/dist/mcp-smoke.test.js.map +0 -1
  35. package/dist/pair-client.d.ts +0 -41
  36. package/dist/pair-client.d.ts.map +0 -1
  37. package/dist/pair-client.js +0 -60
  38. package/dist/pair-client.js.map +0 -1
  39. package/dist/pair-client.test.d.ts +0 -2
  40. package/dist/pair-client.test.d.ts.map +0 -1
  41. package/dist/pair-client.test.js +0 -118
  42. package/dist/pair-client.test.js.map +0 -1
  43. package/dist/session-catalog.d.ts +0 -257
  44. package/dist/session-catalog.d.ts.map +0 -1
  45. package/dist/session-catalog.js +0 -340
  46. package/dist/session-catalog.js.map +0 -1
  47. package/dist/session-catalog.test.d.ts +0 -2
  48. package/dist/session-catalog.test.d.ts.map +0 -1
  49. package/dist/session-catalog.test.js +0 -710
  50. package/dist/session-catalog.test.js.map +0 -1
  51. package/dist/session-events.test.d.ts +0 -2
  52. package/dist/session-events.test.d.ts.map +0 -1
  53. package/dist/session-events.test.js +0 -177
  54. package/dist/session-events.test.js.map +0 -1
  55. package/dist/trajectory-sources.d.ts +0 -36
  56. package/dist/trajectory-sources.d.ts.map +0 -1
  57. package/dist/trajectory-sources.js +0 -201
  58. package/dist/trajectory-sources.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,21 +1,30 @@
1
1
  /**
2
- * TypeScript SDK for reading the ai-hist SQLite database.
2
+ * RelayHistory's public TypeScript API.
3
3
  *
4
- * Backed by sql.js (WASM SQLite) so the package has zero native build
5
- * requirements — works in Electron, Node, and browser contexts without
6
- * needing electron-rebuild. The SDK reads the same ai-hist SQLite database
7
- * that `ai-hist sync` writes (default
8
- * `~/.local/share/ai-hist/ai-history.db`, or `$AI_HIST_DB`).
9
- *
10
- * Trade-off vs better-sqlite3: sql.js loads the whole DB file into
11
- * memory. Fine for the ai-hist scale (tens of thousands of rows, MBs
12
- * of data); revisit if anyone hits millions.
4
+ * Every production operation crosses one mandatory Node-API boundary into the
5
+ * Rust engine. This module owns only input defaults, object normalization,
6
+ * pagination ergonomics, and stable JavaScript errors.
13
7
  */
14
- import { type Database } from 'sql.js';
15
- import { type TrajectoryDecision, type TrajectoryRetrospective } from './trajectory-sources.js';
16
- import { type CatalogSession, type ListCatalogOptions, type SessionCatalogPage } from './session-catalog.js';
17
- export { SESSION_CATALOG_CONTRACT_VERSION, DiscoveryError, discoverSessions, type CatalogSession, type CatalogCursor, type SessionCatalogPage, type ListCatalogOptions, type DiscoverSessionsOptions, type DiscoverResult, type DiscoverySummary, type DiscoveryDiagnostic, type DiscoveryCounters, type ProviderDiscoverySummary, type SourceExemption, } from './session-catalog.js';
8
+ export declare const NATIVE_CONTRACT_VERSION = 2;
9
+ export declare const SESSION_CATALOG_CONTRACT_VERSION = 1;
18
10
  export type Source = 'claude' | 'codex' | 'cursor' | 'grok' | 'relay' | 'trajectory' | 'opencode';
11
+ export type CatalogSource = Exclude<Source, 'trajectory'>;
12
+ export declare class RelayHistoryError extends Error {
13
+ readonly code: string;
14
+ constructor(message: string, code: string, options?: ErrorOptions);
15
+ }
16
+ export declare class UnsupportedPlatformError extends RelayHistoryError {
17
+ }
18
+ export declare class NativePackageMissingError extends RelayHistoryError {
19
+ }
20
+ export declare class NativeLoadError extends RelayHistoryError {
21
+ }
22
+ export declare class NativeContractMismatchError extends RelayHistoryError {
23
+ }
24
+ export declare class DatabaseOpenError extends RelayHistoryError {
25
+ }
26
+ export declare class InvalidArgumentError extends RelayHistoryError {
27
+ }
19
28
  export interface HistoryEntry {
20
29
  id: number;
21
30
  source: Source;
@@ -23,72 +32,98 @@ export interface HistoryEntry {
23
32
  project: string | null;
24
33
  prompt: string;
25
34
  timestampMs: number;
26
- gitBranch: string | null;
27
35
  }
28
- /**
29
- * The pre-catalog `sessions` row shape, kept for backward compatibility.
30
- * New code wants {@link CatalogSession} (via `listSessionCatalog`), which
31
- * covers the whole catalog row: first prompt, models, originator, repo
32
- * identity, and discovery state.
33
- */
34
- export interface SessionMeta {
35
- sessionId: string;
36
- source: Source;
37
- cwd: string | null;
38
- gitBranch: string | null;
39
- firstActivityMs: number | null;
36
+ export interface ListOptions {
37
+ dbPath?: string;
38
+ source?: Source;
39
+ project?: string;
40
+ tag?: string;
41
+ beforeMs?: number;
42
+ limit?: number;
43
+ }
44
+ export interface SearchOptions extends ListOptions {
45
+ rawFts?: boolean;
46
+ }
47
+ export interface SessionOptions {
48
+ dbPath?: string;
49
+ source?: Source;
50
+ tag?: string;
51
+ }
52
+ export interface CatalogCursor {
40
53
  lastActivityMs: number | null;
41
- lastAssistantText: string | null;
42
- rawPath: string | null;
54
+ source: string;
55
+ sessionId: string;
43
56
  }
44
- export interface HandoffCandidate {
57
+ export interface CatalogSession {
58
+ source: CatalogSource;
45
59
  sessionId: string;
46
- source: Source;
47
60
  cwd: string | null;
48
61
  gitBranch: string | null;
49
62
  firstActivityMs: number | null;
50
63
  lastActivityMs: number | null;
51
- promptCount: number;
52
- goal: string;
53
- lastState: string;
64
+ firstPrompt: string | null;
54
65
  lastAssistantText: string | null;
55
- filesTouched: string[];
56
- resumeCommand: string | null;
57
- warmStartCommand: string;
58
- confidence: number;
59
- }
60
- export interface Tag {
61
- name: string;
62
- displayName: string;
63
- color: string | null;
64
- sessionCount: number;
65
- firstTaggedMs: number | null;
66
- lastTaggedMs: number | null;
66
+ models: string[];
67
+ originator: string | null;
68
+ agentVersion: string | null;
69
+ repoUrl: string | null;
70
+ initialCommit: string | null;
71
+ workspaceRoots: string[];
72
+ rawPath: string | null;
73
+ sourceStamp: string | null;
74
+ discoveryState: 'shallow' | 'full';
75
+ fromCache: boolean;
67
76
  }
68
- export interface TaggedSession {
69
- source: Source;
70
- sessionId: string;
71
- project: string | null;
72
- entryCount: number;
73
- lastActivityMs: number | null;
77
+ export interface ListCatalogOptions {
78
+ dbPath?: string;
79
+ sources?: CatalogSource[];
80
+ limit?: number;
81
+ beforeMs?: number;
82
+ after?: CatalogCursor;
83
+ }
84
+ export interface SessionCatalogPage {
85
+ contractVersion: number;
86
+ sessions: CatalogSession[];
87
+ nextCursor: CatalogCursor | null;
88
+ }
89
+ export interface DiscoveryDiagnostic {
90
+ source: string;
91
+ locator: string | null;
92
+ error: string;
93
+ }
94
+ export interface ProviderDiscoverySummary {
95
+ source: string;
96
+ candidates: number;
97
+ discovered: number;
98
+ skippedUnchanged: number;
99
+ failed: boolean;
100
+ }
101
+ export interface DiscoveryCounters {
102
+ candidatesEnumerated: number;
103
+ shallowReads: number;
104
+ skippedUnchanged: number;
105
+ filesOpened: number;
106
+ bytesRead: number;
107
+ }
108
+ export interface SourceExemption {
109
+ source: string;
110
+ reason: string;
111
+ }
112
+ export interface DiscoverSessionsOptions {
113
+ dbPath?: string;
114
+ sources?: CatalogSource[];
115
+ limit?: number;
74
116
  }
75
- export interface SessionSummary {
76
- sessionId: string;
77
- source: Source;
78
- project: string | null;
79
- firstPrompt: string;
80
- lastActivityMs: number;
81
- firstActivityMs: number;
82
- promptCount: number;
117
+ export interface DiscoverResult {
118
+ contractVersion: number;
119
+ sessions: CatalogSession[];
120
+ discovered: number;
121
+ skippedUnchanged: number;
122
+ providers: ProviderDiscoverySummary[];
123
+ exemptSources: SourceExemption[];
124
+ diagnostics: DiscoveryDiagnostic[];
125
+ counters: DiscoveryCounters;
83
126
  }
84
- /**
85
- * One normalized transcript event from the `session_events` table: user and
86
- * assistant text, thinking, tool calls, and tool results, in order.
87
- * `tokenUsage` is the parsed `token_json` blob — Claude's per-message
88
- * `usage` shape, or a Codex per-request delta (`input_tokens` inclusive of
89
- * `cached_input_tokens`). Claude repeats the same usage on every content
90
- * block of a message, so sum per distinct `messageId`, not per row.
91
- */
92
127
  export interface SessionEvent {
93
128
  id: number;
94
129
  source: Source;
@@ -106,32 +141,20 @@ export interface SessionEvent {
106
141
  tokenUsage: Record<string, unknown> | null;
107
142
  eventUid: string;
108
143
  }
109
- /** One tool invocation from the `tool_calls` table. */
110
- export interface SessionToolCall {
144
+ export interface EventCursor {
145
+ tsMs: number;
111
146
  id: number;
112
- source: Source;
113
- sessionId: string;
114
- messageId: string | null;
115
- toolUseId: string;
116
- name: string;
117
- target: string | null;
118
- argsJson: string | null;
119
- isError: boolean | null;
120
- tsMs: number | null;
121
147
  }
122
- export interface ListOptions {
148
+ export interface EventsPageOptions {
149
+ dbPath?: string;
123
150
  source?: Source;
124
- project?: string;
125
- tag?: string;
126
- /** Default 50. */
127
151
  limit?: number;
128
- /**
129
- * Paginate older than this timestamp (exclusive). Use the
130
- * `lastActivityMs` / `timestampMs` of the last item from the previous page.
131
- */
132
- beforeMs?: number;
152
+ after?: EventCursor;
153
+ }
154
+ export interface SessionEventsPage {
155
+ events: SessionEvent[];
156
+ nextCursor: EventCursor | null;
133
157
  }
134
- export type SearchOptions = ListOptions;
135
158
  export interface Stats {
136
159
  total: number;
137
160
  bySource: Partial<Record<Source, number>>;
@@ -142,231 +165,37 @@ export interface Stats {
142
165
  firstTimestampMs: number | null;
143
166
  lastTimestampMs: number | null;
144
167
  }
145
- export interface TrajectoryEntry {
146
- id: string;
147
- version: number | null;
148
- personaId: string | null;
149
- projectId: string | null;
150
- task: {
151
- title: string | null;
152
- description: string | null;
153
- };
154
- status: string | null;
155
- startedAt: string | null;
156
- completedAt: string | null;
157
- decisions: TrajectoryDecision[];
158
- retrospective: TrajectoryRetrospective;
159
- searchText: string;
160
- path: string | null;
161
- updatedMs: number;
162
- timestampMs: number;
163
- }
164
- export interface TrajectorySearchOptions {
165
- /** Default 20. */
166
- limit?: number;
167
- /** Filter to a trajectory projectId or path. */
168
- project?: string;
169
- }
170
- export interface GetHandoffOptions {
171
- /** Substring match against session cwd. */
172
- repo?: string;
173
- /** Substring match against git_branch. */
174
- branch?: string;
175
- /** Filter to a specific CLI source. */
176
- source?: 'claude' | 'codex';
177
- /** Max candidates to return. Default 3. */
178
- limit?: number;
179
- }
180
- /** Resolve the SQLite path that ai-hist writes to. */
181
- export declare function defaultDbPath(): string;
182
- export interface OpenOptions {
183
- /** Override the SQLite path (default: `$AI_HIST_DB` or `~/.local/share/ai-hist/ai-history.db`). */
168
+ export interface StatsOptions {
184
169
  dbPath?: string;
185
- /**
186
- * Restrict all reads to one project directory/path. Exact matches and
187
- * child paths are included, so a scope of `/repo` also includes `/repo/pkg`.
188
- */
189
- projectScope?: string;
190
- /**
191
- * What to do when the SQLite DB is missing:
192
- * - `'jsonl'` (default): scan local Claude/Codex/Cursor/Grok history files
193
- * directly into an in-memory SQLite — works without the native
194
- * `ai-hist` CLI installed.
195
- * - `'error'`: throw with an install hint (legacy 0.1.x behavior).
196
- */
197
- fallback?: 'jsonl' | 'error';
170
+ tag?: string;
198
171
  }
199
- export interface OpenSourceInfo {
200
- /** `'sqlite'` when the on-disk DB was used, `'jsonl'` when the fallback scan was. */
201
- kind: 'sqlite' | 'jsonl';
202
- /** SQLite DB path or, in jsonl mode, the paths that were scanned. */
203
- path: string;
172
+ export interface SyncOptions {
173
+ dbPath?: string;
204
174
  }
205
- /**
206
- * Open an `AiHist` reader. Async because sql.js initializes its WASM
207
- * runtime lazily and the DB file is read asynchronously so the host
208
- * process's event loop isn't blocked.
209
- *
210
- * Each call snapshots the data; to pick up later writes, call `reload()`
211
- * (or open a fresh instance).
212
- */
213
- export declare function openAiHist(opts?: OpenOptions): Promise<AiHist>;
214
- export declare class AiHist {
215
- private readonly db;
216
- private readonly _source;
217
- private readonly _projectScope;
218
- private closed;
219
- /** @internal — use `openAiHist(...)` to construct. */
220
- constructor(db: Database, source: OpenSourceInfo, opts?: Pick<OpenOptions, 'projectScope'>);
221
- /**
222
- * Path the data came from. SQLite mode: the .db path. JSONL fallback
223
- * mode: a comma-separated list of the scanned source paths.
224
- */
225
- get dbPath(): string;
226
- /** Which data path was used: `'sqlite'` (on-disk SQLite database) or `'jsonl'` (fallback). */
227
- get sourceKind(): 'sqlite' | 'jsonl';
228
- /** Server/client-wide project scope applied to every read, if configured. */
229
- get projectScope(): string | undefined;
230
- close(): void;
231
- private persistIfWritable;
232
- private ensureTag;
233
- private matchingSessions;
234
- tagSession(sessionId: string, tagName: string, opts?: {
235
- source?: Source;
236
- color?: string | null;
237
- }): TaggedSession[];
238
- untagSession(sessionId: string, tagName: string, opts?: {
239
- source?: Source;
240
- }): number;
241
- listTags(opts?: {
242
- tag?: string;
243
- includeSessions?: boolean;
244
- }): Array<Tag & {
245
- sessions?: TaggedSession[];
246
- }>;
247
- sessionsByTag(tagName: string): TaggedSession[];
248
- searchByTag(tagName: string, opts?: Omit<SearchOptions, 'tag'>): HistoryEntry[];
249
- /** Most recent prompts, newest first. */
250
- recent(opts?: ListOptions): HistoryEntry[];
251
- /**
252
- * Group history into sessions, ordered by last activity (newest first).
253
- * Sessions without a `session_id` are skipped.
254
- *
255
- * This derives sessions from the `history` table, so it only ever sees
256
- * sessions a full `ai-hist sync` has ingested, and it pays a window-function
257
- * pass over history to do it. For the fast and complete path — every session
258
- * the catalog knows, including ones only shallow discovery has seen, with
259
- * cwd, branch, models, originator and repo identity attached — use
260
- * {@link AiHist.listSessionCatalog}. This method stays as-is for callers
261
- * that want prompt counts and the project-derived grouping.
262
- *
263
- * Implementation note: this used to use a correlated scalar subquery
264
- * to pick `first_prompt`, which ran in O(sessions × rows) — ~19s on a
265
- * 35K-row DB. Switched to `ROW_NUMBER() OVER (PARTITION BY session_id
266
- * ORDER BY timestamp_ms)` so first-prompt picking is a single pass
267
- * over the table (~300ms on the same DB). Plus the index ensure step
268
- * in `openAiHist` keeps it fast even when the DB was written by an
269
- * older CLI that didn't create `idx_history_session`.
270
- */
271
- listSessions(opts?: ListOptions): SessionSummary[];
272
- /**
273
- * The session catalog, newest first — one indexed query over `sessions` and
274
- * nothing else.
275
- *
276
- * No provider transcript is opened and neither `history` nor
277
- * `session_events` is touched, so this stays fast on first paint even with
278
- * thousands of historical sessions. It is the read side of the native
279
- * `ai-hist sessions list`; populate the catalog with `discoverSessions()`
280
- * (or a full `ai-hist sync`).
281
- *
282
- * Details worth knowing:
283
- * - `trajectory` rows are excluded defensively — trajectories are derived
284
- * records, not sessions, and must never appear in a session list.
285
- * - The catalog's total order is
286
- * `(last_activity_ms DESC, source ASC, session_id ASC)`. SQLite sorts
287
- * NULL lowest, so rows of unknown recency land last under `DESC` without
288
- * a helper expression. Recency alone is not a key: one discovery pass can
289
- * stamp many sessions with the same mtime-derived millisecond, which is
290
- * why the identity columns are part of the order.
291
- * - To page, use {@link AiHist.listSessionCatalogPage} and follow its
292
- * `nextCursor`. `beforeMs` is only a *coarse* cutoff ("anything before
293
- * last Tuesday"): it cannot separate rows sharing a millisecond, so a
294
- * walk built on it drops every row tied with a page boundary. It is
295
- * ignored when `after` is set.
296
- * - A configured `projectScope` constrains rows by `cwd`, like
297
- * `getHandoff`. Sources with no working directory (relay) therefore drop
298
- * out of a scoped listing.
299
- * - In JSONL fallback mode (no SQLite database) the catalog is empty and
300
- * this returns `[]`: the fallback scan builds `history` rows only, and
301
- * only the native discovery engine writes the catalog.
302
- */
303
- listSessionCatalog(opts?: ListCatalogOptions): CatalogSession[];
304
- /**
305
- * {@link AiHist.listSessionCatalog} plus the cursor that continues it.
306
- *
307
- * Follow `nextCursor` until it comes back `null` to walk the whole catalog:
308
- * no skipped and no duplicated rows, even when a whole page shares one
309
- * millisecond, and the undated tail stays reachable from a dated cursor.
310
- * `nextCursor` is non-null only when the page filled its limit, mirroring
311
- * the native `list_session_catalog_page` and the CLI's `next_cursor`.
312
- */
313
- listSessionCatalogPage(opts?: ListCatalogOptions): SessionCatalogPage;
314
- /** All prompts in a session, ordered oldest → newest. */
315
- getSession(sessionId: string, opts?: Pick<ListOptions, 'source' | 'tag'>): HistoryEntry[];
316
- /**
317
- * All normalized events for a session, oldest first — messages, thinking,
318
- * tool calls, and tool results with per-event token usage where the
319
- * transcript provides it. Returns `[]` when the database predates the
320
- * `session_events` table (or in JSONL fallback mode, which has no events).
321
- *
322
- * Size caveat: this SDK loads the whole database file into memory, so on
323
- * large event-bearing databases prefer streaming from the native CLI
324
- * (`ai-hist events <session-id> --json`).
325
- */
326
- getSessionEvents(sessionId: string, opts?: {
327
- source?: Source;
328
- }): SessionEvent[];
329
- /** All tool calls for a session, oldest first; `[]` on pre-events databases. */
330
- getToolCalls(sessionId: string, opts?: {
331
- source?: Source;
332
- }): SessionToolCall[];
333
- /**
334
- * Substring search across prompt + project, case-insensitive, recent
335
- * matches first. The native CLI uses FTS5; this SDK uses LIKE because
336
- * sql.js's default WASM build doesn't ship the FTS5 module. Plenty fast
337
- * for the ai-hist scale (~tens of thousands of rows); revisit if a
338
- * future consumer needs phrase/boolean queries.
339
- *
340
- * The query is matched literally — `%` and `_` are escaped so users can
341
- * search for them. Empty queries return recent entries matching the filters.
342
- */
343
- search(query: string, opts?: SearchOptions): HistoryEntry[];
344
- /** Search compacted per-run trajectory WHY: decisions and retrospectives. */
345
- searchTrajectories(query: string, opts?: TrajectorySearchOptions): TrajectoryEntry[];
346
- /** Best-matching per-run trajectory for a task query, or `null` if none match. */
347
- whyForTask(query: string): TrajectoryEntry | null;
348
- /** Single entry by id, or `null` if not found. */
349
- getEntry(id: number): HistoryEntry | null;
350
- /**
351
- * All entries whose timestamp falls within [timestampMs - windowMs,
352
- * timestampMs + windowMs], ordered oldest first. Used by get_context.
353
- */
354
- getInTimeWindow(timestampMs: number, windowMs: number): HistoryEntry[];
355
- /**
356
- * Find sessions matching the given repo/branch/source and return ranked
357
- * handoff candidates with a warm-start command for the target CLI.
358
- *
359
- * Queries the `sessions` table (populated by `ai-hist sync`) for objective
360
- * metadata, then joins the last N user prompts from `history` to generate
361
- * a brief on demand — no pre-computed summaries.
362
- */
363
- getHandoff(opts?: GetHandoffOptions): HandoffCandidate[];
364
- /** Counts + date range, mirroring `ai-hist stats`. */
365
- stats(): Stats;
175
+ export interface SyncResult {
176
+ databasePath: string;
177
+ completed: boolean;
366
178
  }
179
+ export declare function runtimePlatform(): string;
180
+ export declare function validateNativeContract(actual: number): void;
181
+ export declare function defaultDbPath(): string;
367
182
  /**
368
- * Resume command for an entry/session, matching what `ai-hist show` prints.
369
- * Returns `null` for sources that don't have a resume affordance (relay).
183
+ * Optimization profile of the loaded native addon: 'release', 'debug', or
184
+ * 'unknown' for an addon predating the probe. Performance measurements are
185
+ * only meaningful against 'release'.
370
186
  */
187
+ export declare function nativeBuildProfile(): Promise<string>;
188
+ export declare function search(query: string, options?: SearchOptions): Promise<HistoryEntry[]>;
189
+ export declare function recent(options?: ListOptions): Promise<HistoryEntry[]>;
190
+ export declare function getSession(sessionId: string, options?: SessionOptions): Promise<HistoryEntry[]>;
191
+ export declare function listSessionCatalog(options?: ListCatalogOptions): Promise<CatalogSession[]>;
192
+ export declare function listSessionCatalogPage(options?: ListCatalogOptions): Promise<SessionCatalogPage>;
193
+ export declare function discoverSessions(options?: DiscoverSessionsOptions): Promise<DiscoverResult>;
194
+ export declare function discoverAndList(options?: DiscoverSessionsOptions & ListCatalogOptions): Promise<SessionCatalogPage>;
195
+ export declare function getSessionEventsPage(sessionId: string, options?: EventsPageOptions): Promise<SessionEventsPage>;
196
+ export declare function sessionEvents(sessionId: string, options?: Omit<EventsPageOptions, 'after'>): AsyncGenerator<SessionEvent>;
197
+ export declare function getSessionEvents(sessionId: string, options?: Omit<EventsPageOptions, 'after'>): Promise<SessionEvent[]>;
198
+ export declare function stats(options?: StatsOptions): Promise<Stats>;
199
+ export declare function sync(options?: SyncOptions): Promise<SyncResult>;
371
200
  export declare function resumeCommand(entry: Pick<HistoryEntry, 'source' | 'sessionId' | 'project'>): string | null;
372
201
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}