@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/cli.js ADDED
@@ -0,0 +1,313 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from 'node:module';
3
+ import { Command } from 'commander';
4
+ import { scanAll, scanForWhereCommand } from './scan.js';
5
+ import { loadConfig, addRoot, removeRoot, setToolEnabled as configSetToolEnabled, setCategoryEnabled as configSetCategoryEnabled, setCursorToken, LABEL_CATEGORIES, discoverProjects, getConfigPath } from './config.js';
6
+ import { runChecks } from './troubleshoot.js';
7
+ import { analyzeWithClaude, isClaudeAvailable } from './ai.js';
8
+ import { formatDiagnosticsForAI } from './troubleshoot.js';
9
+ import { renderStatic, renderDiagnostics, renderWhereResult, renderJson } from './render.js';
10
+ const require = createRequire(import.meta.url);
11
+ const { version } = require('../package.json');
12
+ const program = new Command();
13
+ program
14
+ .name('agentlens')
15
+ .description('Analyze agent configuration files across AI coding tools')
16
+ .version(version);
17
+ async function runDiagnosticsAndAI(diagnostics, noAi) {
18
+ if (diagnostics.length === 0)
19
+ return;
20
+ console.log();
21
+ console.log(renderDiagnostics(diagnostics));
22
+ if (!noAi) {
23
+ const available = await isClaudeAvailable();
24
+ if (available) {
25
+ console.log();
26
+ console.log('AI ANALYSIS');
27
+ console.log();
28
+ await analyzeWithClaude(diagnostics);
29
+ }
30
+ }
31
+ }
32
+ program
33
+ .command('scan', { isDefault: true })
34
+ .description('Scan and display agent configuration tree')
35
+ .option('-p, --project <path>', 'Project directory to scan', process.cwd())
36
+ .option('--no-global', 'Skip global config scanning')
37
+ .option('--no-ai', 'Skip AI analysis even if issues found')
38
+ .option('--json', 'Output JSON instead of diagram')
39
+ .action(async (opts) => {
40
+ const projectPath = opts.project;
41
+ const includeGlobal = opts.global !== false;
42
+ const result = await scanAll(projectPath, includeGlobal);
43
+ const diagnostics = await runChecks(result);
44
+ if (opts.json) {
45
+ console.log(renderJson({ scan: result, diagnostics }));
46
+ return;
47
+ }
48
+ const isTTY = process.stdout.isTTY;
49
+ if (isTTY && !opts.json) {
50
+ process.stdout.write('\x1b[?1049h');
51
+ process.stdout.write('\x1b[H');
52
+ const { render } = await import('ink');
53
+ const React = await import('react');
54
+ const { default: App } = await import('./ui/App.js');
55
+ const config = await loadConfig();
56
+ const instance = render(React.createElement(App, {
57
+ scanResult: result,
58
+ diagnostics,
59
+ mode: 'scan',
60
+ initialDisabledTools: config.disabledTools,
61
+ initialDisabledCategories: config.disabledCategories,
62
+ configRoots: config.roots,
63
+ hasCursorToken: !!config.cursorSessionToken,
64
+ }));
65
+ instance.waitUntilExit().then(() => {
66
+ process.stdout.write('\x1b[?1049l');
67
+ });
68
+ }
69
+ else {
70
+ const config = await loadConfig();
71
+ console.log(renderStatic(result, config.disabledTools, config.disabledCategories));
72
+ await runDiagnosticsAndAI(diagnostics, opts.ai === false);
73
+ }
74
+ });
75
+ program
76
+ .command('cost')
77
+ .description('Show agent usage cost dashboard')
78
+ .option('--json', 'Output JSON instead of formatted text')
79
+ .option('--no-cursor', 'Skip Cursor API (only show Claude Code costs)')
80
+ .action(async (opts) => {
81
+ const { fetchAllCosts, fetchClaudeCodeCosts } = await import('./cost.js');
82
+ if (opts.json) {
83
+ let report;
84
+ if (opts.cursor === false) {
85
+ const claudeCosts = await fetchClaudeCodeCosts();
86
+ const now = new Date();
87
+ const monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
88
+ report = {
89
+ tools: [claudeCosts],
90
+ month: `${monthNames[now.getMonth()]} ${now.getFullYear()}`,
91
+ monthStart: new Date(now.getFullYear(), now.getMonth(), 1).toISOString().slice(0, 10),
92
+ fetchedAt: now.toISOString(),
93
+ };
94
+ }
95
+ else {
96
+ report = await fetchAllCosts();
97
+ }
98
+ console.log(renderJson(report));
99
+ return;
100
+ }
101
+ const isTTY = process.stdout.isTTY;
102
+ if (isTTY) {
103
+ process.stdout.write('\x1b[?1049h');
104
+ process.stdout.write('\x1b[H');
105
+ const { render } = await import('ink');
106
+ const React = await import('react');
107
+ const { default: App } = await import('./ui/App.js');
108
+ const config = await loadConfig();
109
+ const result = await scanAll(process.cwd(), true);
110
+ const diagnostics = await runChecks(result);
111
+ const instance = render(React.createElement(App, {
112
+ scanResult: result,
113
+ diagnostics,
114
+ mode: 'scan',
115
+ initialDisabledTools: config.disabledTools,
116
+ initialDisabledCategories: config.disabledCategories,
117
+ initialPage: 'cost',
118
+ configRoots: config.roots,
119
+ hasCursorToken: !!config.cursorSessionToken,
120
+ }));
121
+ instance.waitUntilExit().then(() => {
122
+ process.stdout.write('\x1b[?1049l');
123
+ });
124
+ }
125
+ else {
126
+ const { renderCostStatic } = await import('./render.js');
127
+ let report;
128
+ if (opts.cursor === false) {
129
+ const claudeCosts = await fetchClaudeCodeCosts();
130
+ const now = new Date();
131
+ const monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
132
+ report = {
133
+ tools: [claudeCosts],
134
+ month: `${monthNames[now.getMonth()]} ${now.getFullYear()}`,
135
+ monthStart: new Date(now.getFullYear(), now.getMonth(), 1).toISOString().slice(0, 10),
136
+ fetchedAt: now.toISOString(),
137
+ };
138
+ }
139
+ else {
140
+ report = await fetchAllCosts();
141
+ }
142
+ console.log(renderCostStatic(report));
143
+ }
144
+ });
145
+ program
146
+ .command('where [name]')
147
+ .description('Trace where canonical skills are installed')
148
+ .option('--no-ai', 'Skip AI analysis even if issues found')
149
+ .option('--json', 'Output JSON instead of diagram')
150
+ .action(async (name, opts) => {
151
+ const config = await loadConfig();
152
+ const projects = await discoverProjects(config.roots);
153
+ const whereResult = await scanForWhereCommand(name);
154
+ if (opts.json) {
155
+ console.log(renderJson(whereResult));
156
+ return;
157
+ }
158
+ console.log();
159
+ if (name) {
160
+ console.log(`Tracing skill: ${name}`);
161
+ }
162
+ else {
163
+ console.log('Tracing all canonical skills');
164
+ }
165
+ console.log();
166
+ console.log(renderWhereResult(whereResult.canonicalSkills, whereResult.installations));
167
+ const fullResult = await scanAll(process.cwd(), true);
168
+ const diagnostics = await runChecks(fullResult);
169
+ await runDiagnosticsAndAI(diagnostics, opts.ai === false);
170
+ });
171
+ program
172
+ .command('troubleshoot')
173
+ .description('Run comprehensive health checks with AI analysis')
174
+ .option('-p, --project <path>', 'Project directory to check', process.cwd())
175
+ .option('--no-ai', 'Skip Claude Code analysis')
176
+ .option('--json', 'Output JSON')
177
+ .action(async (opts) => {
178
+ const projectPath = opts.project;
179
+ console.log('Scanning...');
180
+ console.log();
181
+ const result = await scanAll(projectPath, true);
182
+ const diagnostics = await runChecks(result);
183
+ if (opts.json) {
184
+ console.log(renderJson({ scan: result, diagnostics }));
185
+ return;
186
+ }
187
+ if (diagnostics.length === 0) {
188
+ console.log('No issues found. Configuration looks healthy.');
189
+ return;
190
+ }
191
+ console.log(renderDiagnostics(diagnostics));
192
+ if (opts.ai !== false) {
193
+ const available = await isClaudeAvailable();
194
+ if (available) {
195
+ console.log();
196
+ console.log('AI ANALYSIS');
197
+ console.log();
198
+ await analyzeWithClaude(diagnostics, formatDiagnosticsForAI(diagnostics));
199
+ }
200
+ else {
201
+ console.log();
202
+ console.log('Install Claude Code CLI for AI-powered analysis: https://docs.anthropic.com/en/docs/claude-code');
203
+ }
204
+ }
205
+ });
206
+ const configCmd = program
207
+ .command('config')
208
+ .description('Manage agentlens configuration')
209
+ .option('--add-root <path>', 'Add a workspace root directory')
210
+ .option('--remove-root <path>', 'Remove a workspace root directory')
211
+ .option('--list-roots', 'List configured root directories')
212
+ .option('--set-cursor-token <token>', 'Set Cursor session token for cost tracking')
213
+ .option('--clear-cursor-token', 'Remove stored Cursor session token')
214
+ .action(async (opts) => {
215
+ if (opts.setCursorToken) {
216
+ await setCursorToken(opts.setCursorToken);
217
+ console.log('Cursor session token saved.');
218
+ console.log('Run "agentlens cost" to view your Cursor usage costs.');
219
+ return;
220
+ }
221
+ if (opts.clearCursorToken) {
222
+ await setCursorToken(undefined);
223
+ console.log('Cursor session token removed.');
224
+ return;
225
+ }
226
+ if (opts.addRoot) {
227
+ const config = await addRoot(opts.addRoot);
228
+ console.log(`Added root: ${opts.addRoot}`);
229
+ console.log(`Total roots: ${config.roots.length}`);
230
+ return;
231
+ }
232
+ if (opts.removeRoot) {
233
+ const config = await removeRoot(opts.removeRoot);
234
+ console.log(`Removed root: ${opts.removeRoot}`);
235
+ console.log(`Total roots: ${config.roots.length}`);
236
+ return;
237
+ }
238
+ const config = await loadConfig();
239
+ console.log(`Config: ${getConfigPath()}`);
240
+ console.log();
241
+ if (config.roots.length === 0) {
242
+ console.log('No workspace roots configured.');
243
+ console.log('Add one with: agentlens config --add-root <path>');
244
+ }
245
+ else {
246
+ console.log('Workspace roots:');
247
+ for (const root of config.roots) {
248
+ console.log(` ${root}`);
249
+ }
250
+ }
251
+ console.log();
252
+ const disabled = config.disabledTools ?? [];
253
+ if (disabled.length > 0) {
254
+ console.log('Disabled tools:');
255
+ for (const t of disabled) {
256
+ console.log(` ${t}`);
257
+ }
258
+ }
259
+ else {
260
+ console.log('All tools enabled.');
261
+ }
262
+ console.log();
263
+ console.log('Manage tools: agentlens config tools');
264
+ });
265
+ configCmd
266
+ .command('tools')
267
+ .description('Manage tool and category visibility filters')
268
+ .option('--enable <name>', 'Enable a tool or category')
269
+ .option('--disable <name>', 'Disable a tool or category')
270
+ .action(async (opts) => {
271
+ const knownTools = ['Canonical', 'Claude Code', 'Cursor', 'Codex', 'Copilot', 'Multi-agent'];
272
+ const categoryIds = LABEL_CATEGORIES.map((c) => c.id);
273
+ if (opts.enable) {
274
+ if (categoryIds.includes(opts.enable)) {
275
+ await configSetCategoryEnabled(opts.enable, true);
276
+ }
277
+ else {
278
+ await configSetToolEnabled(opts.enable, true);
279
+ }
280
+ console.log(`Enabled: ${opts.enable}`);
281
+ return;
282
+ }
283
+ if (opts.disable) {
284
+ if (categoryIds.includes(opts.disable)) {
285
+ await configSetCategoryEnabled(opts.disable, false);
286
+ }
287
+ else {
288
+ await configSetToolEnabled(opts.disable, false);
289
+ }
290
+ console.log(`Disabled: ${opts.disable}`);
291
+ return;
292
+ }
293
+ const config = await loadConfig();
294
+ const disabledTools = new Set(config.disabledTools ?? []);
295
+ const disabledCats = new Set(config.disabledCategories ?? []);
296
+ console.log('Tools:');
297
+ for (const tool of knownTools) {
298
+ const status = disabledTools.has(tool) ? '[ ]' : '[x]';
299
+ console.log(` ${status} ${tool}`);
300
+ }
301
+ console.log();
302
+ console.log('Categories:');
303
+ for (const cat of LABEL_CATEGORIES) {
304
+ const status = disabledCats.has(cat.id) ? '[ ]' : '[x]';
305
+ console.log(` ${status} ${cat.label} (${cat.id})`);
306
+ }
307
+ console.log();
308
+ console.log('Usage:');
309
+ console.log(' agentlens config tools --enable "Codex"');
310
+ console.log(' agentlens config tools --disable "plugin"');
311
+ });
312
+ program.parse();
313
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { AgentLensConfig } from './types.js';
2
+ export declare function getConfigPath(): string;
3
+ export declare function loadConfig(): Promise<AgentLensConfig>;
4
+ export declare function saveConfig(config: AgentLensConfig): Promise<void>;
5
+ export declare function addRoot(rootPath: string): Promise<AgentLensConfig>;
6
+ export declare function removeRoot(rootPath: string): Promise<AgentLensConfig>;
7
+ export declare function setToolEnabled(tool: string, enabled: boolean): Promise<AgentLensConfig>;
8
+ export declare function setCategoryEnabled(category: string, enabled: boolean): Promise<AgentLensConfig>;
9
+ export declare function setCursorToken(token: string | undefined): Promise<AgentLensConfig>;
10
+ export declare const LABEL_CATEGORIES: readonly [{
11
+ readonly id: "built-in";
12
+ readonly label: "Built-in skills";
13
+ readonly match: "(built-in)";
14
+ }, {
15
+ readonly id: "system";
16
+ readonly label: "System skills";
17
+ readonly match: "(system)";
18
+ }, {
19
+ readonly id: "plugin";
20
+ readonly label: "Plugin skills";
21
+ readonly match: "(plugin";
22
+ }, {
23
+ readonly id: "user-rules";
24
+ readonly label: "User rules (vscdb)";
25
+ readonly match: "(user rules)";
26
+ }];
27
+ export declare function matchesDisabledCategory(tcLabel: string | undefined, disabled: Set<string>): boolean;
28
+ export declare function discoverProjects(roots: string[], maxDepth?: number): Promise<string[]>;
29
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA8BlD,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,eAAe,CAAC,CAqB3D;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBvE;AAED,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAUxE;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAO3E;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAc7F;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAcrG;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAKxF;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;EAKnB,CAAC;AAEX,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAMnG;AAeD,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,SAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAgCvF"}
package/dist/config.js ADDED
@@ -0,0 +1,193 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import os from 'node:os';
4
+ const CONFIG_DIR = '.config/agentlens';
5
+ const CONFIG_FILE = 'config.json';
6
+ const AGENT_MARKERS = [
7
+ '.claude',
8
+ '.cursor',
9
+ 'CLAUDE.md',
10
+ 'AGENTS.md',
11
+ '.github/copilot-instructions.md',
12
+ ];
13
+ function toPortable(p) {
14
+ const home = os.homedir();
15
+ const normalized = path.normalize(p);
16
+ if (normalized === home || normalized.startsWith(home + path.sep)) {
17
+ const relative = path.relative(home, normalized);
18
+ return relative ? `~/${relative}` : '~';
19
+ }
20
+ return normalized;
21
+ }
22
+ function fromPortable(p) {
23
+ if (p.startsWith('~/') || p === '~') {
24
+ return path.join(os.homedir(), p.slice(1) || '');
25
+ }
26
+ return path.normalize(p);
27
+ }
28
+ export function getConfigPath() {
29
+ return path.join(os.homedir(), CONFIG_DIR, CONFIG_FILE);
30
+ }
31
+ export async function loadConfig() {
32
+ const configPath = getConfigPath();
33
+ try {
34
+ const raw = await fs.readFile(configPath, 'utf-8');
35
+ const parsed = JSON.parse(raw);
36
+ const roots = Array.isArray(parsed?.roots)
37
+ ? parsed.roots.map(fromPortable)
38
+ : [];
39
+ const disabledTools = Array.isArray(parsed?.disabledTools)
40
+ ? parsed.disabledTools
41
+ : undefined;
42
+ const disabledCategories = Array.isArray(parsed?.disabledCategories)
43
+ ? parsed.disabledCategories
44
+ : undefined;
45
+ const cursorSessionToken = typeof parsed?.cursorSessionToken === 'string'
46
+ ? parsed.cursorSessionToken
47
+ : undefined;
48
+ return { roots, disabledTools, disabledCategories, cursorSessionToken };
49
+ }
50
+ catch {
51
+ return { roots: [] };
52
+ }
53
+ }
54
+ export async function saveConfig(config) {
55
+ const configPath = getConfigPath();
56
+ const dir = path.dirname(configPath);
57
+ await fs.mkdir(dir, { recursive: true });
58
+ const portable = {
59
+ roots: config.roots.map(toPortable),
60
+ };
61
+ if (config.disabledTools && config.disabledTools.length > 0) {
62
+ portable.disabledTools = config.disabledTools;
63
+ }
64
+ if (config.disabledCategories && config.disabledCategories.length > 0) {
65
+ portable.disabledCategories = config.disabledCategories;
66
+ }
67
+ if (config.cursorSessionToken) {
68
+ portable.cursorSessionToken = config.cursorSessionToken;
69
+ }
70
+ await fs.writeFile(configPath, JSON.stringify(portable, null, 2) + '\n');
71
+ }
72
+ export async function addRoot(rootPath) {
73
+ const config = await loadConfig();
74
+ const normalized = path.resolve(rootPath);
75
+ const roots = [...config.roots];
76
+ if (!roots.includes(normalized)) {
77
+ roots.push(normalized);
78
+ }
79
+ const next = { ...config, roots };
80
+ await saveConfig(next);
81
+ return next;
82
+ }
83
+ export async function removeRoot(rootPath) {
84
+ const config = await loadConfig();
85
+ const normalized = path.resolve(rootPath);
86
+ const roots = config.roots.filter((r) => path.normalize(r) !== normalized);
87
+ const next = { ...config, roots };
88
+ await saveConfig(next);
89
+ return next;
90
+ }
91
+ export async function setToolEnabled(tool, enabled) {
92
+ const config = await loadConfig();
93
+ const disabled = new Set(config.disabledTools ?? []);
94
+ if (enabled) {
95
+ disabled.delete(tool);
96
+ }
97
+ else {
98
+ disabled.add(tool);
99
+ }
100
+ const next = {
101
+ ...config,
102
+ disabledTools: disabled.size > 0 ? [...disabled].sort() : undefined,
103
+ };
104
+ await saveConfig(next);
105
+ return next;
106
+ }
107
+ export async function setCategoryEnabled(category, enabled) {
108
+ const config = await loadConfig();
109
+ const disabled = new Set(config.disabledCategories ?? []);
110
+ if (enabled) {
111
+ disabled.delete(category);
112
+ }
113
+ else {
114
+ disabled.add(category);
115
+ }
116
+ const next = {
117
+ ...config,
118
+ disabledCategories: disabled.size > 0 ? [...disabled].sort() : undefined,
119
+ };
120
+ await saveConfig(next);
121
+ return next;
122
+ }
123
+ export async function setCursorToken(token) {
124
+ const config = await loadConfig();
125
+ const next = { ...config, cursorSessionToken: token };
126
+ await saveConfig(next);
127
+ return next;
128
+ }
129
+ export const LABEL_CATEGORIES = [
130
+ { id: 'built-in', label: 'Built-in skills', match: '(built-in)' },
131
+ { id: 'system', label: 'System skills', match: '(system)' },
132
+ { id: 'plugin', label: 'Plugin skills', match: '(plugin' },
133
+ { id: 'user-rules', label: 'User rules (vscdb)', match: '(user rules)' },
134
+ ];
135
+ export function matchesDisabledCategory(tcLabel, disabled) {
136
+ if (!tcLabel || disabled.size === 0)
137
+ return false;
138
+ for (const cat of LABEL_CATEGORIES) {
139
+ if (disabled.has(cat.id) && tcLabel.startsWith(cat.match))
140
+ return true;
141
+ }
142
+ return false;
143
+ }
144
+ async function hasAnyMarker(dir) {
145
+ for (const marker of AGENT_MARKERS) {
146
+ const p = path.join(dir, marker);
147
+ try {
148
+ await fs.access(p);
149
+ return true;
150
+ }
151
+ catch {
152
+ continue;
153
+ }
154
+ }
155
+ return false;
156
+ }
157
+ export async function discoverProjects(roots, maxDepth = 3) {
158
+ const projects = [];
159
+ const seen = new Set();
160
+ async function walk(dir, depth) {
161
+ if (depth > maxDepth)
162
+ return;
163
+ let entries;
164
+ try {
165
+ entries = await fs.readdir(dir, { withFileTypes: true });
166
+ }
167
+ catch {
168
+ return;
169
+ }
170
+ for (const entry of entries) {
171
+ if (!entry.isDirectory())
172
+ continue;
173
+ if (entry.name.startsWith('.') || entry.name === 'node_modules' || entry.name === 'vendor')
174
+ continue;
175
+ const childPath = path.join(dir, entry.name);
176
+ const normalized = path.normalize(childPath);
177
+ if (seen.has(normalized))
178
+ continue;
179
+ if (await hasAnyMarker(childPath)) {
180
+ seen.add(normalized);
181
+ projects.push(childPath);
182
+ }
183
+ else if (depth < maxDepth) {
184
+ await walk(childPath, depth + 1);
185
+ }
186
+ }
187
+ }
188
+ for (const root of roots) {
189
+ await walk(path.resolve(root), 1);
190
+ }
191
+ return projects;
192
+ }
193
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/cost.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ import type { CostReport, ToolCostSummary } from './types.js';
2
+ export declare function fetchClaudeCodeCosts(): Promise<ToolCostSummary>;
3
+ export declare function fetchCursorCosts(): Promise<ToolCostSummary>;
4
+ export declare function fetchAllCosts(): Promise<CostReport>;
5
+ //# sourceMappingURL=cost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../src/cost.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAsB,MAAM,YAAY,CAAC;AAgDlF,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,eAAe,CAAC,CAiHrE;AA0DD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC,CA2GjE;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,CA8CzD"}