@swarmify/agents-cli 1.7.0 → 1.8.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.
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerSessionsCommands(program: Command): void;
3
+ //# sourceMappingURL=sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/commands/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8IzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8B/D"}
@@ -0,0 +1,171 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import { SESSION_AGENTS } from '../lib/session/types.js';
4
+ import { discoverSessions, resolveSessionById } from '../lib/session/discover.js';
5
+ import { parseSession } from '../lib/session/parse.js';
6
+ import { renderTranscript, renderSummary, renderTrace, renderJson } from '../lib/session/render.js';
7
+ const AGENT_COLORS = {
8
+ claude: chalk.magenta,
9
+ codex: chalk.green,
10
+ gemini: chalk.blue,
11
+ };
12
+ async function listAction(options) {
13
+ const agent = options.agent;
14
+ if (agent && !SESSION_AGENTS.includes(agent)) {
15
+ console.error(chalk.red(`Unknown agent: ${agent}. Use: ${SESSION_AGENTS.join(', ')}`));
16
+ process.exit(1);
17
+ }
18
+ const limit = parseInt(options.limit || '20', 10);
19
+ const spinner = ora('Scanning sessions...').start();
20
+ try {
21
+ const sessions = await discoverSessions({
22
+ agent,
23
+ project: options.project,
24
+ limit,
25
+ });
26
+ spinner.stop();
27
+ if (sessions.length === 0) {
28
+ console.log(chalk.gray('No sessions found.'));
29
+ return;
30
+ }
31
+ // Print header
32
+ console.log(chalk.gray(padRight('ID', 10) +
33
+ padRight('Agent', 8) +
34
+ padRight('Project', 20) +
35
+ padRight('When', 16) +
36
+ 'Branch'));
37
+ for (const session of sessions) {
38
+ const agentColor = AGENT_COLORS[session.agent] || chalk.white;
39
+ const when = formatRelativeTime(session.timestamp);
40
+ const project = session.project || '-';
41
+ const branch = session.gitBranch || '';
42
+ console.log(chalk.white(padRight(session.shortId, 10)) +
43
+ agentColor(padRight(session.agent, 8)) +
44
+ chalk.cyan(padRight(project.length > 18 ? project.slice(0, 17) + '.' : project, 20)) +
45
+ chalk.gray(padRight(when, 16)) +
46
+ chalk.gray(branch));
47
+ }
48
+ console.log(chalk.gray(`\n${sessions.length} session${sessions.length === 1 ? '' : 's'}. Use 'agents sessions view <id>' to read.`));
49
+ }
50
+ catch (err) {
51
+ spinner.stop();
52
+ console.error(chalk.red(`Failed to discover sessions: ${err.message}`));
53
+ process.exit(1);
54
+ }
55
+ }
56
+ async function viewAction(idQuery, options) {
57
+ // Determine output mode
58
+ let mode = 'transcript';
59
+ if (options.summary)
60
+ mode = 'summary';
61
+ else if (options.trace)
62
+ mode = 'trace';
63
+ else if (options.json)
64
+ mode = 'json';
65
+ const spinner = ora('Finding session...').start();
66
+ try {
67
+ // Discover all sessions to resolve the ID
68
+ const allSessions = await discoverSessions({ limit: 500 });
69
+ const matches = resolveSessionById(allSessions, idQuery);
70
+ if (matches.length === 0) {
71
+ spinner.stop();
72
+ console.error(chalk.red(`No session found matching: ${idQuery}`));
73
+ console.error(chalk.gray('Run "agents sessions" to list available sessions.'));
74
+ process.exit(1);
75
+ }
76
+ if (matches.length > 1) {
77
+ spinner.stop();
78
+ console.error(chalk.yellow(`Multiple sessions match "${idQuery}":`));
79
+ for (const m of matches) {
80
+ const agentColor = AGENT_COLORS[m.agent] || chalk.white;
81
+ console.error(` ${chalk.white(m.id)} ${agentColor(m.agent)} ${chalk.cyan(m.project || '-')} ${chalk.gray(formatRelativeTime(m.timestamp))}`);
82
+ }
83
+ console.error(chalk.gray('\nProvide a longer ID to narrow the match.'));
84
+ process.exit(1);
85
+ }
86
+ const session = matches[0];
87
+ spinner.text = `Parsing ${session.agent} session...`;
88
+ const events = parseSession(session.filePath, session.agent);
89
+ spinner.stop();
90
+ // Render and output
91
+ let output;
92
+ switch (mode) {
93
+ case 'transcript':
94
+ output = renderTranscript(events);
95
+ break;
96
+ case 'summary':
97
+ output = renderSummary(events);
98
+ break;
99
+ case 'trace':
100
+ output = renderTrace(events);
101
+ break;
102
+ case 'json':
103
+ output = renderJson(events);
104
+ break;
105
+ }
106
+ console.log(output);
107
+ }
108
+ catch (err) {
109
+ spinner.stop();
110
+ console.error(chalk.red(`Failed to read session: ${err.message}`));
111
+ process.exit(1);
112
+ }
113
+ }
114
+ export function registerSessionsCommands(program) {
115
+ const sessionsCmd = program
116
+ .command('sessions')
117
+ .description('List and view agent sessions')
118
+ .option('--agent <agent>', 'Filter by agent (claude, codex, gemini)')
119
+ .option('--project <name>', 'Filter by project name')
120
+ .option('-n, --limit <n>', 'Max sessions to show', '20')
121
+ .action(async (options) => {
122
+ await listAction(options);
123
+ });
124
+ sessionsCmd
125
+ .command('list')
126
+ .description('List sessions across agents')
127
+ .option('--agent <agent>', 'Filter by agent (claude, codex, gemini)')
128
+ .option('--project <name>', 'Filter by project name')
129
+ .option('-n, --limit <n>', 'Max sessions to show', '20')
130
+ .action(async (options) => {
131
+ await listAction(options);
132
+ });
133
+ sessionsCmd
134
+ .command('view <id>')
135
+ .description('View a session')
136
+ .option('--summary', 'Show activity fingerprint (files, commands)')
137
+ .option('--trace', 'Show reasoning trace as markdown')
138
+ .option('--json', 'Output normalized events as JSON')
139
+ .action(async (id, options) => {
140
+ await viewAction(id, options);
141
+ });
142
+ }
143
+ // ---------------------------------------------------------------------------
144
+ // Formatting helpers
145
+ // ---------------------------------------------------------------------------
146
+ function padRight(s, width) {
147
+ return s.length >= width ? s + ' ' : s + ' '.repeat(width - s.length);
148
+ }
149
+ function formatRelativeTime(isoTimestamp) {
150
+ const now = Date.now();
151
+ const then = new Date(isoTimestamp).getTime();
152
+ if (isNaN(then))
153
+ return isoTimestamp;
154
+ const diffMs = now - then;
155
+ const diffMin = Math.floor(diffMs / 60_000);
156
+ const diffHrs = Math.floor(diffMs / 3_600_000);
157
+ const diffDays = Math.floor(diffMs / 86_400_000);
158
+ if (diffMin < 1)
159
+ return 'just now';
160
+ if (diffMin < 60)
161
+ return `${diffMin} min ago`;
162
+ if (diffHrs < 24)
163
+ return `${diffHrs} hour${diffHrs === 1 ? '' : 's'} ago`;
164
+ if (diffDays < 7)
165
+ return `${diffDays} day${diffDays === 1 ? '' : 's'} ago`;
166
+ // Older: show date
167
+ const d = new Date(then);
168
+ const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
169
+ return `${months[d.getMonth()]} ${d.getDate()}`;
170
+ }
171
+ //# sourceMappingURL=sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/commands/sessions.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -33,6 +33,7 @@ import { registerExecCommand } from './commands/exec.js';
33
33
  import { registerSubagentsCommands } from './commands/subagents.js';
34
34
  import { registerPluginsCommands } from './commands/plugins.js';
35
35
  import { registerSyncCommand } from './commands/sync.js';
36
+ import { registerSessionsCommands } from './commands/sessions.js';
36
37
  import { applyGlobalHelpConventions } from './lib/help.js';
37
38
  import { isPromptCancelled } from './commands/utils.js';
38
39
  const program = new Command();
@@ -70,6 +71,9 @@ Packages
70
71
  search <query> Search MCP servers
71
72
  install <pkg> Install mcp:name or skill:user/repo
72
73
 
74
+ Sessions
75
+ sessions List and view agent sessions
76
+
73
77
  Automation
74
78
  cron Manage scheduled jobs
75
79
  daemon Manage the scheduler daemon
@@ -230,6 +234,7 @@ registerPackagesCommands(program);
230
234
  registerDaemonCommands(program);
231
235
  registerCronCommands(program);
232
236
  registerExecCommand(program);
237
+ registerSessionsCommands(program);
233
238
  registerSyncCommand(program);
234
239
  // Deprecated 'jobs' alias for 'cron'
235
240
  program
@@ -296,5 +301,5 @@ program.on('command:*', (operands) => {
296
301
  });
297
302
  // Run update check on EVERY invocation before parsing
298
303
  await checkForUpdates();
299
- program.parse();
304
+ await program.parseAsync();
300
305
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { SessionAgentId, SessionMeta } from './types.js';
2
+ export interface DiscoverOptions {
3
+ agent?: SessionAgentId;
4
+ project?: string;
5
+ limit?: number;
6
+ }
7
+ /**
8
+ * Discover sessions across all installed agents.
9
+ * Returns SessionMeta[] sorted by timestamp descending (most recent first).
10
+ */
11
+ export declare function discoverSessions(options?: DiscoverOptions): Promise<SessionMeta[]>;
12
+ /**
13
+ * Resolve a session by full or short ID from the full index.
14
+ */
15
+ export declare function resolveSessionById(sessions: SessionMeta[], idQuery: string): SessionMeta[];
16
+ //# sourceMappingURL=discover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/lib/session/discover.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9D,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA8BxF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAO1F"}
@@ -0,0 +1,376 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import * as os from 'os';
4
+ import * as crypto from 'crypto';
5
+ import * as readline from 'readline';
6
+ import { SESSION_AGENTS } from './types.js';
7
+ const HOME = os.homedir();
8
+ /**
9
+ * Discover sessions across all installed agents.
10
+ * Returns SessionMeta[] sorted by timestamp descending (most recent first).
11
+ */
12
+ export async function discoverSessions(options) {
13
+ const agents = options?.agent ? [options.agent] : SESSION_AGENTS;
14
+ const limit = options?.limit ?? 50;
15
+ const results = await Promise.all(agents.map(agent => {
16
+ switch (agent) {
17
+ case 'claude': return discoverClaudeSessions();
18
+ case 'codex': return discoverCodexSessions();
19
+ case 'gemini': return discoverGeminiSessions();
20
+ }
21
+ }));
22
+ let sessions = results.flat();
23
+ // Filter by project (case-insensitive substring match)
24
+ if (options?.project) {
25
+ const query = options.project.toLowerCase();
26
+ sessions = sessions.filter(s => s.project?.toLowerCase().includes(query));
27
+ }
28
+ // Sort by timestamp descending
29
+ sessions.sort((a, b) => {
30
+ const ta = new Date(a.timestamp).getTime() || 0;
31
+ const tb = new Date(b.timestamp).getTime() || 0;
32
+ return tb - ta;
33
+ });
34
+ return sessions.slice(0, limit);
35
+ }
36
+ /**
37
+ * Resolve a session by full or short ID from the full index.
38
+ */
39
+ export function resolveSessionById(sessions, idQuery) {
40
+ const query = idQuery.toLowerCase();
41
+ // Exact match first
42
+ const exact = sessions.filter(s => s.id.toLowerCase() === query);
43
+ if (exact.length > 0)
44
+ return exact;
45
+ // Prefix match
46
+ return sessions.filter(s => s.id.toLowerCase().startsWith(query));
47
+ }
48
+ // ---------------------------------------------------------------------------
49
+ // Claude
50
+ // ---------------------------------------------------------------------------
51
+ async function discoverClaudeSessions() {
52
+ const projectsDir = path.join(HOME, '.claude', 'projects');
53
+ if (!fs.existsSync(projectsDir))
54
+ return [];
55
+ const sessions = [];
56
+ let projectDirs;
57
+ try {
58
+ projectDirs = fs.readdirSync(projectsDir);
59
+ }
60
+ catch {
61
+ return [];
62
+ }
63
+ for (const dirName of projectDirs) {
64
+ const dirPath = path.join(projectsDir, dirName);
65
+ const stat = safeStatSync(dirPath);
66
+ if (!stat?.isDirectory())
67
+ continue;
68
+ let files;
69
+ try {
70
+ files = fs.readdirSync(dirPath).filter(f => f.endsWith('.jsonl'));
71
+ }
72
+ catch {
73
+ continue;
74
+ }
75
+ for (const file of files) {
76
+ const filePath = path.join(dirPath, file);
77
+ const sessionId = file.replace('.jsonl', '');
78
+ try {
79
+ const meta = await readClaudeMeta(filePath, sessionId);
80
+ if (meta) {
81
+ sessions.push(meta);
82
+ }
83
+ }
84
+ catch {
85
+ // Skip unreadable files
86
+ }
87
+ }
88
+ }
89
+ return sessions;
90
+ }
91
+ async function readClaudeMeta(filePath, sessionId) {
92
+ const lines = await readFirstLines(filePath, 5);
93
+ for (const line of lines) {
94
+ let parsed;
95
+ try {
96
+ parsed = JSON.parse(line);
97
+ }
98
+ catch {
99
+ continue;
100
+ }
101
+ // Look for first user or assistant line with timestamp/cwd
102
+ if ((parsed.type === 'user' || parsed.type === 'assistant') && parsed.timestamp) {
103
+ const cwd = parsed.cwd || '';
104
+ return {
105
+ id: sessionId,
106
+ shortId: sessionId.slice(0, 8),
107
+ agent: 'claude',
108
+ timestamp: parsed.timestamp,
109
+ project: cwd ? path.basename(cwd) : undefined,
110
+ cwd,
111
+ filePath,
112
+ gitBranch: parsed.gitBranch || undefined,
113
+ };
114
+ }
115
+ }
116
+ // Fallback: use file mtime
117
+ const stat = safeStatSync(filePath);
118
+ return {
119
+ id: sessionId,
120
+ shortId: sessionId.slice(0, 8),
121
+ agent: 'claude',
122
+ timestamp: stat ? stat.mtime.toISOString() : new Date().toISOString(),
123
+ filePath,
124
+ };
125
+ }
126
+ // ---------------------------------------------------------------------------
127
+ // Codex
128
+ // ---------------------------------------------------------------------------
129
+ async function discoverCodexSessions() {
130
+ const sessionsDir = path.join(HOME, '.codex', 'sessions');
131
+ if (!fs.existsSync(sessionsDir))
132
+ return [];
133
+ const sessions = [];
134
+ const jsonlFiles = walkForFiles(sessionsDir, '.jsonl', 200);
135
+ for (const filePath of jsonlFiles) {
136
+ try {
137
+ const meta = await readCodexMeta(filePath);
138
+ if (meta)
139
+ sessions.push(meta);
140
+ }
141
+ catch {
142
+ // Skip unreadable files
143
+ }
144
+ }
145
+ return sessions;
146
+ }
147
+ async function readCodexMeta(filePath) {
148
+ const lines = await readFirstLines(filePath, 1);
149
+ if (lines.length === 0)
150
+ return null;
151
+ let parsed;
152
+ try {
153
+ parsed = JSON.parse(lines[0]);
154
+ }
155
+ catch {
156
+ return null;
157
+ }
158
+ if (parsed.type !== 'session_meta')
159
+ return null;
160
+ const payload = parsed.payload || {};
161
+ const sessionId = payload.id || '';
162
+ if (!sessionId)
163
+ return null;
164
+ const cwd = payload.cwd || '';
165
+ return {
166
+ id: sessionId,
167
+ shortId: sessionId.slice(0, 8),
168
+ agent: 'codex',
169
+ timestamp: payload.timestamp || parsed.timestamp || new Date().toISOString(),
170
+ project: cwd ? path.basename(cwd) : undefined,
171
+ cwd,
172
+ filePath,
173
+ gitBranch: payload.git?.branch || undefined,
174
+ };
175
+ }
176
+ // ---------------------------------------------------------------------------
177
+ // Gemini
178
+ // ---------------------------------------------------------------------------
179
+ async function discoverGeminiSessions() {
180
+ const tmpDir = path.join(HOME, '.gemini', 'tmp');
181
+ if (!fs.existsSync(tmpDir))
182
+ return [];
183
+ // Build project hash -> name map
184
+ const projectMap = buildGeminiProjectMap();
185
+ const sessions = [];
186
+ let hashDirs;
187
+ try {
188
+ hashDirs = fs.readdirSync(tmpDir);
189
+ }
190
+ catch {
191
+ return [];
192
+ }
193
+ for (const hashDir of hashDirs) {
194
+ const chatsDir = path.join(tmpDir, hashDir, 'chats');
195
+ if (!fs.existsSync(chatsDir))
196
+ continue;
197
+ let chatFiles;
198
+ try {
199
+ chatFiles = fs.readdirSync(chatsDir).filter(f => f.endsWith('.json'));
200
+ }
201
+ catch {
202
+ continue;
203
+ }
204
+ for (const file of chatFiles) {
205
+ const filePath = path.join(chatsDir, file);
206
+ try {
207
+ const meta = readGeminiMeta(filePath, hashDir, projectMap);
208
+ if (meta)
209
+ sessions.push(meta);
210
+ }
211
+ catch {
212
+ // Skip unreadable files
213
+ }
214
+ }
215
+ }
216
+ return sessions;
217
+ }
218
+ function readGeminiMeta(filePath, hashDir, projectMap) {
219
+ // Read the first ~2KB to get top-level fields without parsing entire messages array
220
+ const fd = fs.openSync(filePath, 'r');
221
+ const buf = Buffer.alloc(2048);
222
+ const bytesRead = fs.readSync(fd, buf, 0, 2048, 0);
223
+ fs.closeSync(fd);
224
+ const header = buf.toString('utf-8', 0, bytesRead);
225
+ // Extract fields via regex (avoids parsing potentially huge messages array)
226
+ const sessionId = extractJsonField(header, 'sessionId');
227
+ const startTime = extractJsonField(header, 'startTime');
228
+ const projectHash = extractJsonField(header, 'projectHash');
229
+ if (!sessionId)
230
+ return null;
231
+ // Resolve project name from hash
232
+ const projectInfo = projectMap.get(projectHash || hashDir);
233
+ const project = projectInfo?.name || hashDir.slice(0, 12);
234
+ const cwd = projectInfo?.path;
235
+ // Count messages roughly by counting occurrences of "type":" in the full file size
236
+ const stat = safeStatSync(filePath);
237
+ return {
238
+ id: sessionId,
239
+ shortId: sessionId.slice(0, 8),
240
+ agent: 'gemini',
241
+ timestamp: startTime || (stat ? stat.mtime.toISOString() : new Date().toISOString()),
242
+ project,
243
+ cwd,
244
+ filePath,
245
+ };
246
+ }
247
+ function buildGeminiProjectMap() {
248
+ const map = new Map();
249
+ const projectsJsonPath = path.join(HOME, '.gemini', 'projects.json');
250
+ if (!fs.existsSync(projectsJsonPath))
251
+ return map;
252
+ try {
253
+ const data = JSON.parse(fs.readFileSync(projectsJsonPath, 'utf-8'));
254
+ const projects = data.projects;
255
+ if (typeof projects === 'object' && projects !== null) {
256
+ if (Array.isArray(projects)) {
257
+ // Array format: ["path1", "path2"]
258
+ for (const p of projects) {
259
+ if (typeof p === 'string') {
260
+ const hash = sha256(p);
261
+ map.set(hash, { name: path.basename(p), path: p });
262
+ // Also try the raw directory name
263
+ map.set(p, { name: path.basename(p), path: p });
264
+ }
265
+ }
266
+ }
267
+ else {
268
+ // Object format: {path: name}
269
+ for (const [p, name] of Object.entries(projects)) {
270
+ const hash = sha256(p);
271
+ map.set(hash, { name: String(name), path: p });
272
+ }
273
+ }
274
+ }
275
+ }
276
+ catch {
277
+ // Ignore parse errors
278
+ }
279
+ // Also check ~/.gemini/history/*/.project_root for additional mappings
280
+ const historyDir = path.join(HOME, '.gemini', 'history');
281
+ if (fs.existsSync(historyDir)) {
282
+ try {
283
+ for (const name of fs.readdirSync(historyDir)) {
284
+ const rootFile = path.join(historyDir, name, '.project_root');
285
+ if (fs.existsSync(rootFile)) {
286
+ try {
287
+ const projectPath = fs.readFileSync(rootFile, 'utf-8').trim();
288
+ if (projectPath) {
289
+ const hash = sha256(projectPath);
290
+ map.set(hash, { name, path: projectPath });
291
+ }
292
+ }
293
+ catch {
294
+ // Skip
295
+ }
296
+ }
297
+ }
298
+ }
299
+ catch {
300
+ // Skip
301
+ }
302
+ }
303
+ return map;
304
+ }
305
+ // ---------------------------------------------------------------------------
306
+ // Utilities
307
+ // ---------------------------------------------------------------------------
308
+ function readFirstLines(filePath, maxLines) {
309
+ return new Promise((resolve) => {
310
+ const lines = [];
311
+ const stream = fs.createReadStream(filePath, { encoding: 'utf-8' });
312
+ const rl = readline.createInterface({ input: stream, crlfDelay: Infinity });
313
+ rl.on('line', (line) => {
314
+ if (line.trim()) {
315
+ lines.push(line);
316
+ }
317
+ if (lines.length >= maxLines) {
318
+ rl.close();
319
+ stream.destroy();
320
+ }
321
+ });
322
+ rl.on('close', () => resolve(lines));
323
+ rl.on('error', () => resolve(lines));
324
+ });
325
+ }
326
+ /**
327
+ * Walk a directory recursively for files with a given extension.
328
+ * Returns at most `limit` files, sorted by mtime descending.
329
+ */
330
+ function walkForFiles(dir, ext, limit) {
331
+ const results = [];
332
+ function walk(d, depth) {
333
+ if (depth > 5)
334
+ return; // Prevent deep recursion
335
+ let entries;
336
+ try {
337
+ entries = fs.readdirSync(d);
338
+ }
339
+ catch {
340
+ return;
341
+ }
342
+ for (const entry of entries) {
343
+ const full = path.join(d, entry);
344
+ const stat = safeStatSync(full);
345
+ if (!stat)
346
+ continue;
347
+ if (stat.isDirectory()) {
348
+ walk(full, depth + 1);
349
+ }
350
+ else if (entry.endsWith(ext)) {
351
+ results.push({ path: full, mtime: stat.mtimeMs });
352
+ }
353
+ }
354
+ }
355
+ walk(dir, 0);
356
+ // Sort by mtime descending and limit
357
+ results.sort((a, b) => b.mtime - a.mtime);
358
+ return results.slice(0, limit).map(r => r.path);
359
+ }
360
+ function extractJsonField(text, field) {
361
+ const re = new RegExp(`"${field}"\\s*:\\s*"([^"]*)"`, 'i');
362
+ const match = text.match(re);
363
+ return match ? match[1] : '';
364
+ }
365
+ function sha256(input) {
366
+ return crypto.createHash('sha256').update(input).digest('hex');
367
+ }
368
+ function safeStatSync(p) {
369
+ try {
370
+ return fs.statSync(p);
371
+ }
372
+ catch {
373
+ return null;
374
+ }
375
+ }
376
+ //# sourceMappingURL=discover.js.map