@agentstrack/collector 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +177 -1
- package/README.md +78 -28
- package/dist/adapters/claude.d.ts +18 -0
- package/dist/adapters/claude.js +153 -45
- package/dist/adapters/claude.js.map +1 -1
- package/dist/adapters/codex.d.ts +15 -1
- package/dist/adapters/codex.js +81 -33
- package/dist/adapters/codex.js.map +1 -1
- package/dist/adapters/opencode.d.ts +19 -7
- package/dist/adapters/opencode.js +88 -29
- package/dist/adapters/opencode.js.map +1 -1
- package/dist/adapters/types.d.ts +16 -0
- package/dist/adapters/types.js +61 -0
- package/dist/adapters/types.js.map +1 -1
- package/dist/cli.js +165 -34
- package/dist/cli.js.map +1 -1
- package/dist/commands/service.js +40 -10
- package/dist/commands/service.js.map +1 -1
- package/dist/config.d.ts +2 -1
- package/dist/config.js +31 -5
- package/dist/config.js.map +1 -1
- package/dist/daemon.d.ts +73 -21
- package/dist/daemon.js +358 -121
- package/dist/daemon.js.map +1 -1
- package/dist/git/commits.d.ts +7 -1
- package/dist/git/commits.js +36 -17
- package/dist/git/commits.js.map +1 -1
- package/dist/git/repo.d.ts +13 -4
- package/dist/git/repo.js +34 -20
- package/dist/git/repo.js.map +1 -1
- package/dist/machine.d.ts +27 -0
- package/dist/machine.js +46 -0
- package/dist/machine.js.map +1 -0
- package/dist/privacy/pipeline.d.ts +3 -0
- package/dist/privacy/pipeline.js +4 -2
- package/dist/privacy/pipeline.js.map +1 -1
- package/dist/privacy/redact.d.ts +10 -1
- package/dist/privacy/redact.js +29 -3
- package/dist/privacy/redact.js.map +1 -1
- package/dist/queue/event-id.d.ts +9 -0
- package/dist/queue/event-id.js +15 -0
- package/dist/queue/event-id.js.map +1 -0
- package/dist/queue/spool.d.ts +24 -5
- package/dist/queue/spool.js +89 -33
- package/dist/queue/spool.js.map +1 -1
- package/dist/queue/tailer.d.ts +27 -4
- package/dist/queue/tailer.js +89 -28
- package/dist/queue/tailer.js.map +1 -1
- package/dist/transport/client.d.ts +37 -13
- package/dist/transport/client.js +50 -3
- package/dist/transport/client.js.map +1 -1
- package/package.json +2 -2
|
@@ -15,13 +15,14 @@ import type { AgentAdapter, DetectionResult, HealthStatus, NormalizeContext, Nor
|
|
|
15
15
|
* part — the timeline: text, tool calls with input/output and timings.
|
|
16
16
|
*
|
|
17
17
|
* THIS IS A LIVE DATABASE THE USER'S EDITOR IS WRITING TO. It is opened
|
|
18
|
-
* read-only with a busy timeout
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* read-only with a busy timeout and only short queries run on it. The
|
|
19
|
+
* collector must never be the reason someone's session data is corrupted or
|
|
20
|
+
* their editor blocks.
|
|
21
21
|
*
|
|
22
22
|
* Because there are no lines, normalize() has nothing to do and the adapter
|
|
23
23
|
* implements poll() instead (see AgentAdapter.poll). Resumption uses the
|
|
24
|
-
* spool's meta store:
|
|
24
|
+
* spool's meta store: two cursors plus one marker per session whose
|
|
25
|
+
* session.started has been emitted.
|
|
25
26
|
*/
|
|
26
27
|
export declare const OPENCODE_DATA_DIR: string;
|
|
27
28
|
/**
|
|
@@ -36,8 +37,12 @@ export declare const OPENCODE_DATA_DIR: string;
|
|
|
36
37
|
export declare function resolveDbPath(dataDir?: string): string | undefined;
|
|
37
38
|
export declare class OpenCodeAdapter implements AgentAdapter {
|
|
38
39
|
private readonly dataDir;
|
|
40
|
+
private readonly backfillDays;
|
|
39
41
|
readonly id = "opencode";
|
|
40
|
-
|
|
42
|
+
/** The one read-only handle, opened lazily; statements are prepared once per handle. */
|
|
43
|
+
private conn?;
|
|
44
|
+
private version?;
|
|
45
|
+
constructor(dataDir?: string, backfillDays?: number);
|
|
41
46
|
detect(): Promise<DetectionResult>;
|
|
42
47
|
health(): Promise<HealthStatus>;
|
|
43
48
|
/** No-op: OpenCode has no log lines. Everything arrives through poll(). */
|
|
@@ -45,16 +50,23 @@ export declare class OpenCodeAdapter implements AgentAdapter {
|
|
|
45
50
|
poll(ctx: PollContext): Promise<NormalizedEvent[]>;
|
|
46
51
|
private sessionEvents;
|
|
47
52
|
private partEvents;
|
|
48
|
-
/**
|
|
53
|
+
/**
|
|
54
|
+
* Newest session's `version` column — OpenCode stamps its own version on
|
|
55
|
+
* every row. detect() runs every scan cycle; the value changes on upgrade,
|
|
56
|
+
* so a minute-old reading is plenty.
|
|
57
|
+
*/
|
|
49
58
|
private latestVersion;
|
|
50
59
|
/**
|
|
51
|
-
* One short read-only query
|
|
60
|
+
* One short read-only query on the shared handle.
|
|
52
61
|
*
|
|
53
62
|
* readonly + fileMustExist means a bug here cannot write, migrate or create
|
|
54
63
|
* anything; busy_timeout means a concurrent OpenCode write makes us wait
|
|
55
64
|
* briefly instead of failing, and query_only is the belt to that suspenders.
|
|
65
|
+
* The handle is dropped on any error or when the database path changes, so
|
|
66
|
+
* a rotated or replaced file is picked up on the next call.
|
|
56
67
|
*/
|
|
57
68
|
private query;
|
|
69
|
+
private disconnect;
|
|
58
70
|
}
|
|
59
71
|
type Wrap = (atMs: number, event_type: NormalizedEvent['event']['event_type'], payload: Record<string, unknown>) => NormalizedEvent;
|
|
60
72
|
/** `session.model` is a JSON blob — `{"id":"…","providerID":"…","variant":"…"}`. */
|
|
@@ -23,13 +23,14 @@ import { deriveTitle } from '../sessions/title.js';
|
|
|
23
23
|
* part — the timeline: text, tool calls with input/output and timings.
|
|
24
24
|
*
|
|
25
25
|
* THIS IS A LIVE DATABASE THE USER'S EDITOR IS WRITING TO. It is opened
|
|
26
|
-
* read-only with a busy timeout
|
|
27
|
-
*
|
|
28
|
-
*
|
|
26
|
+
* read-only with a busy timeout and only short queries run on it. The
|
|
27
|
+
* collector must never be the reason someone's session data is corrupted or
|
|
28
|
+
* their editor blocks.
|
|
29
29
|
*
|
|
30
30
|
* Because there are no lines, normalize() has nothing to do and the adapter
|
|
31
31
|
* implements poll() instead (see AgentAdapter.poll). Resumption uses the
|
|
32
|
-
* spool's meta store:
|
|
32
|
+
* spool's meta store: two cursors plus one marker per session whose
|
|
33
|
+
* session.started has been emitted.
|
|
33
34
|
*/
|
|
34
35
|
export const OPENCODE_DATA_DIR = process.env['OPENCODE_DATA_DIR'] ??
|
|
35
36
|
join(process.env['XDG_DATA_HOME'] ?? join(homedir(), '.local', 'share'), 'opencode');
|
|
@@ -63,18 +64,42 @@ export function resolveDbPath(dataDir = OPENCODE_DATA_DIR) {
|
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
66
|
/** How far back a first-ever poll reaches, matching the tailer's transcript horizon. */
|
|
66
|
-
|
|
67
|
+
/**
|
|
68
|
+
* How far back to reach when no cursor exists yet — a fresh install, or one
|
|
69
|
+
* whose cursors were reset to re-import history.
|
|
70
|
+
*
|
|
71
|
+
* This adapter reads a live database instead of tailing files, so it cannot
|
|
72
|
+
* use the file-mtime walk the others do and needs its own floor. It was
|
|
73
|
+
* hardcoded to 7 days, independently of `tracking.max_age_days`, which meant
|
|
74
|
+
* widening that knob backfilled Claude Code and Codex fully and left OpenCode
|
|
75
|
+
* still capped at a week: 4 of 19 sessions, with the other 15 emitting their
|
|
76
|
+
* parts but never a `session.started`.
|
|
77
|
+
*/
|
|
78
|
+
const DEFAULT_BACKFILL_DAYS = 7;
|
|
67
79
|
/** Bounds one poll so a cold start drains over several cycles instead of one huge batch. */
|
|
68
80
|
const SESSION_LIMIT = 200;
|
|
69
81
|
const PART_LIMIT = 1000;
|
|
70
|
-
const CURSOR_SESSION_CREATED = 'opencode:cursor:session_created';
|
|
71
82
|
const CURSOR_SESSION_UPDATED = 'opencode:cursor:session_updated';
|
|
72
83
|
const CURSOR_PART_UPDATED = 'opencode:cursor:part_updated';
|
|
84
|
+
/**
|
|
85
|
+
* `opencode:started:<session id>` = '1' once session.started went out. Sessions
|
|
86
|
+
* are fetched by time_updated, so a cursor on time_created missed every session
|
|
87
|
+
* that was created before one already seen and touched later — i.e. every
|
|
88
|
+
* resumed session.
|
|
89
|
+
*/
|
|
90
|
+
const STARTED_PREFIX = 'opencode:started:';
|
|
91
|
+
/** How long a detect() may reuse the version it last read from the database. */
|
|
92
|
+
const VERSION_TTL_MS = 60_000;
|
|
73
93
|
export class OpenCodeAdapter {
|
|
74
94
|
dataDir;
|
|
95
|
+
backfillDays;
|
|
75
96
|
id = 'opencode';
|
|
76
|
-
|
|
97
|
+
/** The one read-only handle, opened lazily; statements are prepared once per handle. */
|
|
98
|
+
conn;
|
|
99
|
+
version;
|
|
100
|
+
constructor(dataDir = OPENCODE_DATA_DIR, backfillDays = DEFAULT_BACKFILL_DAYS) {
|
|
77
101
|
this.dataDir = dataDir;
|
|
102
|
+
this.backfillDays = backfillDays;
|
|
78
103
|
}
|
|
79
104
|
async detect() {
|
|
80
105
|
const db = resolveDbPath(this.dataDir);
|
|
@@ -114,14 +139,13 @@ export class OpenCodeAdapter {
|
|
|
114
139
|
async poll(ctx) {
|
|
115
140
|
if (!resolveDbPath(this.dataDir))
|
|
116
141
|
return [];
|
|
117
|
-
const floor = Date.now() -
|
|
142
|
+
const floor = Date.now() - this.backfillDays * 86_400_000;
|
|
118
143
|
const cursor = (key) => {
|
|
119
144
|
const stored = Number(ctx.getMeta(key));
|
|
120
145
|
return Number.isFinite(stored) && stored > 0 ? stored : floor;
|
|
121
146
|
};
|
|
122
147
|
const events = [];
|
|
123
148
|
const sessionUpdated = cursor(CURSOR_SESSION_UPDATED);
|
|
124
|
-
const sessionCreated = cursor(CURSOR_SESSION_CREATED);
|
|
125
149
|
const partUpdated = cursor(CURSOR_PART_UPDATED);
|
|
126
150
|
const sessions = this.query(`SELECT id, parent_id, directory, title, version, agent, model, cost,
|
|
127
151
|
tokens_input, tokens_output, tokens_reasoning, tokens_cache_read, tokens_cache_write,
|
|
@@ -130,13 +154,11 @@ export class OpenCodeAdapter {
|
|
|
130
154
|
WHERE time_updated > ?
|
|
131
155
|
ORDER BY time_updated ASC
|
|
132
156
|
LIMIT ?`, sessionUpdated, SESSION_LIMIT);
|
|
133
|
-
const
|
|
157
|
+
const accounts = readOpenCodeAccounts(this.dataDir);
|
|
134
158
|
let maxUpdated = sessionUpdated;
|
|
135
|
-
let maxCreated = sessionCreated;
|
|
136
159
|
for (const row of sessions) {
|
|
137
|
-
events.push(...this.sessionEvents(row,
|
|
160
|
+
events.push(...this.sessionEvents(row, ctx, accounts));
|
|
138
161
|
maxUpdated = Math.max(maxUpdated, row.time_updated);
|
|
139
|
-
maxCreated = Math.max(maxCreated, row.time_created);
|
|
140
162
|
}
|
|
141
163
|
const parts = this.query(`SELECT p.session_id, p.time_created, p.time_updated, p.data,
|
|
142
164
|
m.data AS message_data, s.directory, s.version, s.model
|
|
@@ -147,21 +169,20 @@ export class OpenCodeAdapter {
|
|
|
147
169
|
ORDER BY p.time_updated ASC
|
|
148
170
|
LIMIT ?`, partUpdated, PART_LIMIT);
|
|
149
171
|
let maxPart = partUpdated;
|
|
150
|
-
const accounts = readOpenCodeAccounts(this.dataDir);
|
|
151
172
|
for (const row of parts) {
|
|
152
173
|
events.push(...this.partEvents(row, accounts));
|
|
153
174
|
maxPart = Math.max(maxPart, row.time_updated);
|
|
154
175
|
}
|
|
155
176
|
ctx.setMeta(CURSOR_SESSION_UPDATED, String(maxUpdated));
|
|
156
|
-
ctx.setMeta(CURSOR_SESSION_CREATED, String(maxCreated));
|
|
157
177
|
ctx.setMeta(CURSOR_PART_UPDATED, String(maxPart));
|
|
158
178
|
return events;
|
|
159
179
|
}
|
|
160
|
-
sessionEvents(row,
|
|
180
|
+
sessionEvents(row, ctx, accounts) {
|
|
161
181
|
const { model, provider } = parseModel(row.model);
|
|
162
182
|
const wrap = wrapper(row.id, row.version ?? undefined, row.directory, account(accounts, provider));
|
|
163
183
|
const events = [];
|
|
164
|
-
if (row.
|
|
184
|
+
if (ctx.getMeta(STARTED_PREFIX + row.id) === null) {
|
|
185
|
+
ctx.setMeta(STARTED_PREFIX + row.id, '1');
|
|
165
186
|
events.push(wrap(row.time_created, 'session.started', {
|
|
166
187
|
external_session_id: row.id,
|
|
167
188
|
cwd: row.directory,
|
|
@@ -194,7 +215,11 @@ export class OpenCodeAdapter {
|
|
|
194
215
|
const endedAt = row.time_archived ?? row.time_compacting;
|
|
195
216
|
if (endedAt) {
|
|
196
217
|
events.push(wrap(endedAt, 'session.ended', {
|
|
197
|
-
|
|
218
|
+
external_session_id: row.id,
|
|
219
|
+
// The server's `reason` enum is normal|timeout|crash|unknown; what
|
|
220
|
+
// OpenCode actually did rides alongside as an extra key.
|
|
221
|
+
reason: 'normal',
|
|
222
|
+
end_kind: row.time_archived ? 'archived' : 'compacted',
|
|
198
223
|
}));
|
|
199
224
|
}
|
|
200
225
|
return events;
|
|
@@ -226,35 +251,69 @@ export class OpenCodeAdapter {
|
|
|
226
251
|
return toolEvents(data, row.time_created, wrap);
|
|
227
252
|
return [];
|
|
228
253
|
}
|
|
229
|
-
/**
|
|
254
|
+
/**
|
|
255
|
+
* Newest session's `version` column — OpenCode stamps its own version on
|
|
256
|
+
* every row. detect() runs every scan cycle; the value changes on upgrade,
|
|
257
|
+
* so a minute-old reading is plenty.
|
|
258
|
+
*/
|
|
230
259
|
latestVersion() {
|
|
260
|
+
if (this.version && Date.now() - this.version.readAt < VERSION_TTL_MS)
|
|
261
|
+
return this.version.value;
|
|
262
|
+
let value;
|
|
231
263
|
try {
|
|
232
|
-
|
|
264
|
+
value =
|
|
265
|
+
this.query('SELECT version FROM session ORDER BY time_updated DESC LIMIT 1')[0]?.version ?? undefined;
|
|
233
266
|
}
|
|
234
267
|
catch {
|
|
235
|
-
|
|
268
|
+
value = undefined; // absent beats fabricated
|
|
236
269
|
}
|
|
270
|
+
this.version = { readAt: Date.now(), value };
|
|
271
|
+
return value;
|
|
237
272
|
}
|
|
238
273
|
/**
|
|
239
|
-
* One short read-only query
|
|
274
|
+
* One short read-only query on the shared handle.
|
|
240
275
|
*
|
|
241
276
|
* readonly + fileMustExist means a bug here cannot write, migrate or create
|
|
242
277
|
* anything; busy_timeout means a concurrent OpenCode write makes us wait
|
|
243
278
|
* briefly instead of failing, and query_only is the belt to that suspenders.
|
|
279
|
+
* The handle is dropped on any error or when the database path changes, so
|
|
280
|
+
* a rotated or replaced file is picked up on the next call.
|
|
244
281
|
*/
|
|
245
282
|
query(sql, ...params) {
|
|
246
283
|
const path = resolveDbPath(this.dataDir);
|
|
247
|
-
if (!path)
|
|
284
|
+
if (!path) {
|
|
285
|
+
this.disconnect();
|
|
248
286
|
return [];
|
|
249
|
-
|
|
287
|
+
}
|
|
288
|
+
if (this.conn && this.conn.path !== path)
|
|
289
|
+
this.disconnect();
|
|
290
|
+
try {
|
|
291
|
+
if (!this.conn) {
|
|
292
|
+
const db = new Database(path, { readonly: true, fileMustExist: true });
|
|
293
|
+
db.pragma('busy_timeout = 3000');
|
|
294
|
+
db.pragma('query_only = 1');
|
|
295
|
+
this.conn = { path, db, statements: new Map() };
|
|
296
|
+
}
|
|
297
|
+
let statement = this.conn.statements.get(sql);
|
|
298
|
+
if (!statement) {
|
|
299
|
+
statement = this.conn.db.prepare(sql);
|
|
300
|
+
this.conn.statements.set(sql, statement);
|
|
301
|
+
}
|
|
302
|
+
return statement.all(...params);
|
|
303
|
+
}
|
|
304
|
+
catch (error) {
|
|
305
|
+
this.disconnect();
|
|
306
|
+
throw error;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
disconnect() {
|
|
250
310
|
try {
|
|
251
|
-
db.
|
|
252
|
-
db.pragma('query_only = 1');
|
|
253
|
-
return db.prepare(sql).all(...params);
|
|
311
|
+
this.conn?.db.close();
|
|
254
312
|
}
|
|
255
|
-
|
|
256
|
-
|
|
313
|
+
catch {
|
|
314
|
+
// Already closed or never opened; nothing to release.
|
|
257
315
|
}
|
|
316
|
+
this.conn = undefined;
|
|
258
317
|
}
|
|
259
318
|
}
|
|
260
319
|
function account(accounts, provider) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/adapters/opencode.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/adapters/opencode.ts"],"names":[],"mappings":"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"}
|
package/dist/adapters/types.d.ts
CHANGED
|
@@ -91,7 +91,23 @@ export interface NormalizedEvent {
|
|
|
91
91
|
* same machine. Takes precedence over adapter.account().
|
|
92
92
|
*/
|
|
93
93
|
account?: AccountIdentity;
|
|
94
|
+
/**
|
|
95
|
+
* The id to spool the event under, when the adapter knows a seed more
|
|
96
|
+
* durable than "this line at this offset" — a message id that repeats
|
|
97
|
+
* across lines, say. Absent: the daemon derives one from the source line.
|
|
98
|
+
*/
|
|
99
|
+
eventId?: string;
|
|
94
100
|
}
|
|
95
101
|
export declare function safeJsonParse(line: string): Record<string, unknown> | null;
|
|
96
102
|
export declare function num(value: unknown): number;
|
|
97
103
|
export declare function str(value: unknown): string | undefined;
|
|
104
|
+
/**
|
|
105
|
+
* The complete lines within the first `bytes` of a file.
|
|
106
|
+
*
|
|
107
|
+
* detect() runs every scan cycle and only needs a version string that sits on
|
|
108
|
+
* the first line, so reading the whole transcript (13 MB for a live Codex
|
|
109
|
+
* rollout) for it was pure churn. Same (path, mtime) cache as account.ts.
|
|
110
|
+
*/
|
|
111
|
+
export declare function readHeadLines(path: string, bytes?: number): string[];
|
|
112
|
+
/** Newest `.jsonl` in a directory by mtime, not by readdir order. */
|
|
113
|
+
export declare function newestJsonl(dir: string): string | undefined;
|
package/dist/adapters/types.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { closeSync, openSync, readSync, readdirSync, statSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
1
3
|
export function safeJsonParse(line) {
|
|
2
4
|
const trimmed = line.trim();
|
|
3
5
|
if (!trimmed || trimmed[0] !== '{')
|
|
@@ -17,4 +19,63 @@ export function num(value) {
|
|
|
17
19
|
export function str(value) {
|
|
18
20
|
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
19
21
|
}
|
|
22
|
+
/** Head-of-file lines cached on (path, mtime) — see readHeadLines. */
|
|
23
|
+
const headCache = new Map();
|
|
24
|
+
/**
|
|
25
|
+
* The complete lines within the first `bytes` of a file.
|
|
26
|
+
*
|
|
27
|
+
* detect() runs every scan cycle and only needs a version string that sits on
|
|
28
|
+
* the first line, so reading the whole transcript (13 MB for a live Codex
|
|
29
|
+
* rollout) for it was pure churn. Same (path, mtime) cache as account.ts.
|
|
30
|
+
*/
|
|
31
|
+
export function readHeadLines(path, bytes = 16_384) {
|
|
32
|
+
let stats;
|
|
33
|
+
try {
|
|
34
|
+
stats = statSync(path);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
headCache.delete(path);
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
const hit = headCache.get(path);
|
|
41
|
+
if (hit && hit.mtimeMs === stats.mtimeMs)
|
|
42
|
+
return hit.lines;
|
|
43
|
+
let lines = [];
|
|
44
|
+
try {
|
|
45
|
+
const fd = openSync(path, 'r');
|
|
46
|
+
try {
|
|
47
|
+
const buffer = Buffer.alloc(bytes);
|
|
48
|
+
const read = readSync(fd, buffer, 0, bytes, 0);
|
|
49
|
+
lines = buffer.toString('utf8', 0, read).split('\n');
|
|
50
|
+
if (read === bytes)
|
|
51
|
+
lines.pop(); // the last line was cut by the window
|
|
52
|
+
}
|
|
53
|
+
finally {
|
|
54
|
+
closeSync(fd);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// Unreadable file: absent is better than fabricated.
|
|
59
|
+
}
|
|
60
|
+
headCache.set(path, { mtimeMs: stats.mtimeMs, lines });
|
|
61
|
+
return lines;
|
|
62
|
+
}
|
|
63
|
+
/** Newest `.jsonl` in a directory by mtime, not by readdir order. */
|
|
64
|
+
export function newestJsonl(dir) {
|
|
65
|
+
let best;
|
|
66
|
+
for (const name of readdirSync(dir)) {
|
|
67
|
+
if (!name.endsWith('.jsonl'))
|
|
68
|
+
continue;
|
|
69
|
+
const path = join(dir, name);
|
|
70
|
+
try {
|
|
71
|
+
const { mtimeMs } = statSync(path);
|
|
72
|
+
if (!best || mtimeMs > best.mtimeMs)
|
|
73
|
+
best = { path, mtimeMs };
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// Removed between readdir and stat.
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return best?.path;
|
|
80
|
+
}
|
|
20
81
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AA6GjC,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAkC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3F,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC;AAED,sEAAsE;AACtE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAgD,CAAC;AAE1E;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,KAAK,GAAG,MAAM;IACxD,IAAI,KAAK,CAAC;IACV,IAAI,CAAC;QACH,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC;IAE3D,IAAI,KAAK,GAAa,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC/C,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,IAAI,KAAK,KAAK;gBAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,sCAAsC;QACzE,CAAC;gBAAS,CAAC;YACT,SAAS,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qDAAqD;IACvD,CAAC;IACD,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,IAAmD,CAAC;IACxD,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,SAAS;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO;gBAAE,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,EAAE,IAAI,CAAC;AACpB,CAAC"}
|