@tasszz2k/agentlens 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.
Files changed (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +402 -0
  3. package/dist/ai.d.ts +5 -0
  4. package/dist/ai.d.ts.map +1 -0
  5. package/dist/ai.js +56 -0
  6. package/dist/ai.js.map +1 -0
  7. package/dist/cli.d.ts +3 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +313 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/config.d.ts +29 -0
  12. package/dist/config.d.ts.map +1 -0
  13. package/dist/config.js +193 -0
  14. package/dist/config.js.map +1 -0
  15. package/dist/cost.d.ts +5 -0
  16. package/dist/cost.d.ts.map +1 -0
  17. package/dist/cost.js +362 -0
  18. package/dist/cost.js.map +1 -0
  19. package/dist/parse.d.ts +26 -0
  20. package/dist/parse.d.ts.map +1 -0
  21. package/dist/parse.js +391 -0
  22. package/dist/parse.js.map +1 -0
  23. package/dist/render.d.ts +8 -0
  24. package/dist/render.d.ts.map +1 -0
  25. package/dist/render.js +346 -0
  26. package/dist/render.js.map +1 -0
  27. package/dist/scan.d.ts +23 -0
  28. package/dist/scan.d.ts.map +1 -0
  29. package/dist/scan.js +457 -0
  30. package/dist/scan.js.map +1 -0
  31. package/dist/symlink.d.ts +5 -0
  32. package/dist/symlink.d.ts.map +1 -0
  33. package/dist/symlink.js +56 -0
  34. package/dist/symlink.js.map +1 -0
  35. package/dist/troubleshoot.d.ts +4 -0
  36. package/dist/troubleshoot.d.ts.map +1 -0
  37. package/dist/troubleshoot.js +193 -0
  38. package/dist/troubleshoot.js.map +1 -0
  39. package/dist/types.d.ts +103 -0
  40. package/dist/types.d.ts.map +1 -0
  41. package/dist/types.js +2 -0
  42. package/dist/types.js.map +1 -0
  43. package/dist/ui/App.d.ts +16 -0
  44. package/dist/ui/App.d.ts.map +1 -0
  45. package/dist/ui/App.js +452 -0
  46. package/dist/ui/App.js.map +1 -0
  47. package/dist/ui/CommandBar.d.ts +8 -0
  48. package/dist/ui/CommandBar.d.ts.map +1 -0
  49. package/dist/ui/CommandBar.js +77 -0
  50. package/dist/ui/CommandBar.js.map +1 -0
  51. package/dist/ui/CostView.d.ts +14 -0
  52. package/dist/ui/CostView.d.ts.map +1 -0
  53. package/dist/ui/CostView.js +200 -0
  54. package/dist/ui/CostView.js.map +1 -0
  55. package/dist/ui/DetailPanel.d.ts +12 -0
  56. package/dist/ui/DetailPanel.d.ts.map +1 -0
  57. package/dist/ui/DetailPanel.js +224 -0
  58. package/dist/ui/DetailPanel.js.map +1 -0
  59. package/dist/ui/HelpBar.d.ts +7 -0
  60. package/dist/ui/HelpBar.d.ts.map +1 -0
  61. package/dist/ui/HelpBar.js +51 -0
  62. package/dist/ui/HelpBar.js.map +1 -0
  63. package/dist/ui/SearchBar.d.ts +9 -0
  64. package/dist/ui/SearchBar.d.ts.map +1 -0
  65. package/dist/ui/SearchBar.js +46 -0
  66. package/dist/ui/SearchBar.js.map +1 -0
  67. package/dist/ui/SettingsView.d.ts +16 -0
  68. package/dist/ui/SettingsView.d.ts.map +1 -0
  69. package/dist/ui/SettingsView.js +155 -0
  70. package/dist/ui/SettingsView.js.map +1 -0
  71. package/dist/ui/TreeView.d.ts +26 -0
  72. package/dist/ui/TreeView.d.ts.map +1 -0
  73. package/dist/ui/TreeView.js +240 -0
  74. package/dist/ui/TreeView.js.map +1 -0
  75. package/dist/ui/theme.d.ts +30 -0
  76. package/dist/ui/theme.d.ts.map +1 -0
  77. package/dist/ui/theme.js +31 -0
  78. package/dist/ui/theme.js.map +1 -0
  79. package/package.json +55 -0
package/dist/parse.js ADDED
@@ -0,0 +1,391 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { execFile } from 'node:child_process';
4
+ import { promisify } from 'node:util';
5
+ import matter from 'gray-matter';
6
+ import { parse as parseToml } from 'smol-toml';
7
+ const execFileAsync = promisify(execFile);
8
+ async function readFileSafe(filePath) {
9
+ try {
10
+ return await fs.readFile(filePath, 'utf-8');
11
+ }
12
+ catch {
13
+ return null;
14
+ }
15
+ }
16
+ async function statSafe(filePath) {
17
+ try {
18
+ return await fs.stat(filePath);
19
+ }
20
+ catch {
21
+ return null;
22
+ }
23
+ }
24
+ function parseFrontmatterManual(content) {
25
+ const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
26
+ if (!match)
27
+ return {};
28
+ const fm = {};
29
+ for (const line of match[1].split(/\r?\n/)) {
30
+ const idx = line.indexOf(':');
31
+ if (idx < 0)
32
+ continue;
33
+ const key = line.slice(0, idx).trim();
34
+ const val = line.slice(idx + 1).trim();
35
+ if (key)
36
+ fm[key] = val;
37
+ }
38
+ return fm;
39
+ }
40
+ function parseResultToParsedFile(filePath, result, extra) {
41
+ const body = result.content.trim();
42
+ const lineCount = body ? body.split(/\n/).length : 0;
43
+ return {
44
+ path: filePath,
45
+ frontmatter: result.data,
46
+ body,
47
+ lineCount,
48
+ ...extra,
49
+ };
50
+ }
51
+ export async function parseFrontmatter(filePath) {
52
+ const content = await readFileSafe(filePath);
53
+ if (!content) {
54
+ return {
55
+ path: filePath,
56
+ frontmatter: {},
57
+ body: '',
58
+ lineCount: 0,
59
+ };
60
+ }
61
+ const result = matter(content);
62
+ return parseResultToParsedFile(filePath, result);
63
+ }
64
+ export async function parseSkillFile(filePath) {
65
+ const content = await readFileSafe(filePath);
66
+ if (!content) {
67
+ return {
68
+ path: filePath,
69
+ frontmatter: {},
70
+ body: '',
71
+ lineCount: 0,
72
+ };
73
+ }
74
+ const result = matter(content);
75
+ const fm = result.data;
76
+ return parseResultToParsedFile(filePath, result, {
77
+ name: typeof fm.name === 'string' ? fm.name : undefined,
78
+ description: typeof fm.description === 'string' ? fm.description : undefined,
79
+ });
80
+ }
81
+ export async function parseMdcFile(filePath) {
82
+ const content = await readFileSafe(filePath);
83
+ if (!content) {
84
+ return {
85
+ path: filePath,
86
+ frontmatter: {},
87
+ body: '',
88
+ lineCount: 0,
89
+ };
90
+ }
91
+ try {
92
+ const result = matter(content);
93
+ const fm = result.data;
94
+ return parseResultToParsedFile(filePath, result, {
95
+ description: typeof fm.description === 'string' ? fm.description : undefined,
96
+ });
97
+ }
98
+ catch {
99
+ const fm = parseFrontmatterManual(content);
100
+ const bodyStart = content.indexOf('---', 3);
101
+ const body = bodyStart >= 0 ? content.slice(bodyStart + 3).trim() : content.trim();
102
+ const lineCount = body ? body.split(/\n/).length : 0;
103
+ return {
104
+ path: filePath,
105
+ frontmatter: fm,
106
+ body,
107
+ lineCount,
108
+ description: typeof fm.description === 'string' ? fm.description : undefined,
109
+ };
110
+ }
111
+ }
112
+ export async function parseCommandFile(filePath) {
113
+ const content = await readFileSafe(filePath);
114
+ if (!content) {
115
+ return {
116
+ path: filePath,
117
+ frontmatter: {},
118
+ body: '',
119
+ lineCount: 0,
120
+ };
121
+ }
122
+ const result = matter(content);
123
+ const fm = result.data;
124
+ return parseResultToParsedFile(filePath, result, {
125
+ name: typeof fm.name === 'string' ? fm.name : undefined,
126
+ description: typeof fm.description === 'string' ? fm.description : undefined,
127
+ });
128
+ }
129
+ export async function getFileInfo(filePath) {
130
+ const stats = await statSafe(filePath);
131
+ if (!stats) {
132
+ return {
133
+ path: filePath,
134
+ exists: false,
135
+ size: 0,
136
+ mtime: new Date(0),
137
+ lineCount: 0,
138
+ };
139
+ }
140
+ const content = await readFileSafe(filePath);
141
+ const lineCount = content ? content.split(/\n/).length : 0;
142
+ return {
143
+ path: filePath,
144
+ exists: true,
145
+ size: stats.size,
146
+ mtime: stats.mtime,
147
+ lineCount,
148
+ };
149
+ }
150
+ function hasAuthInEntry(entry) {
151
+ const headers = entry.headers;
152
+ if (headers && typeof headers === 'object') {
153
+ for (const v of Object.values(headers)) {
154
+ if (typeof v === 'string' && v.trim().length > 0)
155
+ return true;
156
+ }
157
+ }
158
+ const env = entry.env;
159
+ if (env && typeof env === 'object') {
160
+ for (const k of Object.keys(env)) {
161
+ const upper = k.toUpperCase();
162
+ if ((upper.includes('TOKEN') ||
163
+ upper.includes('SECRET') ||
164
+ upper.includes('KEY') ||
165
+ upper.includes('PASSWORD')) &&
166
+ typeof env[k] === 'string' &&
167
+ env[k].trim().length > 0) {
168
+ return true;
169
+ }
170
+ }
171
+ }
172
+ if (entry.oauth !== undefined && entry.oauth !== null)
173
+ return true;
174
+ return false;
175
+ }
176
+ function serverEntryToMcp(name, entry) {
177
+ const hasUrl = typeof entry.url === 'string' && entry.url.length > 0;
178
+ const hasCommand = typeof entry.command === 'string' && entry.command.length > 0;
179
+ if (!hasUrl && !hasCommand)
180
+ return null;
181
+ const type = hasUrl ? 'http' : 'stdio';
182
+ const result = {
183
+ name,
184
+ type,
185
+ hasAuth: hasAuthInEntry(entry),
186
+ };
187
+ if (hasUrl)
188
+ result.url = entry.url;
189
+ if (hasCommand)
190
+ result.command = entry.command;
191
+ if (Array.isArray(entry.args))
192
+ result.args = entry.args;
193
+ return result;
194
+ }
195
+ function collectFromServersObject(mcpServers, into) {
196
+ for (const [name, val] of Object.entries(mcpServers)) {
197
+ if (val && typeof val === 'object' && !Array.isArray(val)) {
198
+ const mcp = serverEntryToMcp(name, val);
199
+ if (mcp)
200
+ into.push(mcp);
201
+ }
202
+ }
203
+ }
204
+ export async function parseMcpJson(filePath) {
205
+ try {
206
+ const content = await readFileSafe(filePath);
207
+ if (!content)
208
+ return [];
209
+ const data = JSON.parse(content);
210
+ if (!data || typeof data !== 'object')
211
+ return [];
212
+ const results = [];
213
+ if (data.mcpServers && typeof data.mcpServers === 'object') {
214
+ collectFromServersObject(data.mcpServers, results);
215
+ return results;
216
+ }
217
+ if (data.projects && typeof data.projects === 'object') {
218
+ const seen = new Set();
219
+ const projects = data.projects;
220
+ for (const proj of Object.values(projects)) {
221
+ if (proj && typeof proj === 'object') {
222
+ const servers = proj
223
+ .mcpServers;
224
+ if (servers && typeof servers === 'object') {
225
+ for (const [name, val] of Object.entries(servers)) {
226
+ if (seen.has(name))
227
+ continue;
228
+ seen.add(name);
229
+ if (val && typeof val === 'object' && !Array.isArray(val)) {
230
+ const mcp = serverEntryToMcp(name, val);
231
+ if (mcp)
232
+ results.push(mcp);
233
+ }
234
+ }
235
+ }
236
+ }
237
+ }
238
+ return results;
239
+ }
240
+ for (const [name, val] of Object.entries(data)) {
241
+ if (val && typeof val === 'object' && !Array.isArray(val)) {
242
+ const mcp = serverEntryToMcp(name, val);
243
+ if (mcp)
244
+ results.push(mcp);
245
+ }
246
+ }
247
+ return results;
248
+ }
249
+ catch {
250
+ return [];
251
+ }
252
+ }
253
+ export async function parseMcpToml(filePath) {
254
+ try {
255
+ const content = await readFileSafe(filePath);
256
+ if (!content)
257
+ return [];
258
+ const data = parseToml(content);
259
+ if (!data || typeof data !== 'object')
260
+ return [];
261
+ const mcpServers = data.mcp_servers;
262
+ if (!mcpServers || typeof mcpServers !== 'object')
263
+ return [];
264
+ const results = [];
265
+ for (const [name, val] of Object.entries(mcpServers)) {
266
+ if (val && typeof val === 'object' && !Array.isArray(val)) {
267
+ const mcp = serverEntryToMcp(name, val);
268
+ if (mcp)
269
+ results.push(mcp);
270
+ }
271
+ }
272
+ return results;
273
+ }
274
+ catch {
275
+ return [];
276
+ }
277
+ }
278
+ export async function parseHooksFromSettings(filePath) {
279
+ const content = await readFileSafe(filePath);
280
+ if (!content)
281
+ return [];
282
+ let data;
283
+ try {
284
+ data = JSON.parse(content);
285
+ }
286
+ catch {
287
+ return [];
288
+ }
289
+ const hooks = data.hooks;
290
+ if (!hooks || typeof hooks !== 'object' || Array.isArray(hooks))
291
+ return [];
292
+ const entries = [];
293
+ for (const [eventName, matcherGroups] of Object.entries(hooks)) {
294
+ if (!Array.isArray(matcherGroups))
295
+ continue;
296
+ const matcherCount = matcherGroups.length;
297
+ const matchers = [];
298
+ const handlers = [];
299
+ for (const mg of matcherGroups) {
300
+ if (!mg || typeof mg !== 'object' || Array.isArray(mg))
301
+ continue;
302
+ const m = mg;
303
+ const matcher = String(m.matcher ?? '');
304
+ if (matcher && matcher !== '*')
305
+ matchers.push(matcher);
306
+ const hookList = m.hooks;
307
+ if (!Array.isArray(hookList))
308
+ continue;
309
+ for (const h of hookList) {
310
+ if (!h || typeof h !== 'object' || Array.isArray(h))
311
+ continue;
312
+ const handler = h;
313
+ const type = String(handler.type ?? '');
314
+ handlers.push({
315
+ type,
316
+ command: typeof handler.command === 'string' ? handler.command : undefined,
317
+ url: typeof handler.url === 'string' ? handler.url : undefined,
318
+ async: typeof handler.async === 'boolean' ? handler.async : undefined,
319
+ timeout: typeof handler.timeout === 'number' ? handler.timeout : undefined,
320
+ });
321
+ }
322
+ }
323
+ const hookCount = handlers.length;
324
+ const hookLabel = hookCount === 1 ? '1 hook' : `${hookCount} hooks`;
325
+ let description;
326
+ if (matcherCount === 1 && hookCount === 1) {
327
+ const h = handlers[0];
328
+ if (h.type === 'command' && h.command) {
329
+ description = `command: ${path.basename(h.command)}`;
330
+ }
331
+ else if (h.type === 'http' && h.url) {
332
+ description = `http: ${h.url}`;
333
+ }
334
+ else {
335
+ description = h.type || 'hook';
336
+ }
337
+ }
338
+ else if (matcherCount === 1) {
339
+ description =
340
+ matchers.length === 1
341
+ ? `1 matcher (${matchers[0]}), ${hookLabel}`
342
+ : `1 matcher, ${hookLabel}`;
343
+ }
344
+ else {
345
+ description = `${matcherCount} matchers, ${hookLabel}`;
346
+ }
347
+ entries.push({
348
+ name: eventName,
349
+ path: filePath,
350
+ exists: true,
351
+ description,
352
+ frontmatter: {
353
+ matcherCount,
354
+ hookCount,
355
+ matchers,
356
+ handlers,
357
+ },
358
+ });
359
+ }
360
+ entries.sort((a, b) => a.name.localeCompare(b.name));
361
+ return entries;
362
+ }
363
+ export async function parseCursorUserRules(dbPath) {
364
+ try {
365
+ await fs.stat(dbPath);
366
+ }
367
+ catch {
368
+ return [];
369
+ }
370
+ try {
371
+ const { stdout } = await execFileAsync('sqlite3', [
372
+ dbPath,
373
+ "SELECT value FROM ItemTable WHERE key = 'aicontext.personalContext';",
374
+ ], { timeout: 5000 });
375
+ const value = stdout.trim();
376
+ if (!value)
377
+ return [];
378
+ const lines = value.split(/\n/).length;
379
+ const preview = value.length > 120 ? value.slice(0, 120) + '...' : value;
380
+ return [{
381
+ name: 'User Rules',
382
+ path: dbPath,
383
+ exists: true,
384
+ description: `${value.length} chars, ${lines} lines: ${preview}`,
385
+ }];
386
+ }
387
+ catch {
388
+ return [];
389
+ }
390
+ }
391
+ //# sourceMappingURL=parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ScanResult, ConfigEntry, Diagnostic, CostReport } from './types.js';
2
+ import type { WhereInstallation } from './scan.js';
3
+ export declare function renderStatic(result: ScanResult, disabledTools?: string[], disabledCategories?: string[]): string;
4
+ export declare function renderDiagnostics(diagnostics: Diagnostic[]): string;
5
+ export declare function renderWhereResult(canonicalSkills: ConfigEntry[], installations: WhereInstallation[]): string;
6
+ export declare function renderCostStatic(report: CostReport): string;
7
+ export declare function renderJson(data: unknown): string;
8
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAc,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AA0JnD,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CA+DhH;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CAkBnE;AAED,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,MAAM,CA2B5G;AAQD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAsF3D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAEhD"}