@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsView.d.ts","sourceRoot":"","sources":["../../src/ui/SettingsView.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAc9C,UAAU,iBAAiB;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,OAAO,EACP,MAAM,EACN,KAAK,EACL,WAAW,EACX,cAAc,GACf,EAAE,iBAAiB,2CAiNnB"}
@@ -0,0 +1,155 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useMemo } from 'react';
3
+ import { Box, Text, useInput } from 'ink';
4
+ import os from 'node:os';
5
+ import path from 'node:path';
6
+ import { LABEL_CATEGORIES, getConfigPath } from '../config.js';
7
+ function tildify(p) {
8
+ const home = os.homedir();
9
+ if (p === home || p.startsWith(home + path.sep))
10
+ return '~' + p.slice(home.length);
11
+ return p;
12
+ }
13
+ export default function SettingsView({ scanResult, disabledTools, disabledCategories, onToggleTool, onToggleCategory, onClose, height, width, configRoots, hasCursorToken, }) {
14
+ const [cursor, setCursor] = useState(0);
15
+ const items = useMemo(() => {
16
+ const result = [];
17
+ const dim = '\u2502';
18
+ const branch = '\u251C\u2500\u2500';
19
+ const last = '\u2514\u2500\u2500';
20
+ const col = 22;
21
+ result.push({ kind: 'header', id: 'config-header', label: 'Configuration' });
22
+ result.push({
23
+ kind: 'info', id: 'config-path',
24
+ render: () => (_jsxs(Text, { children: [' ', _jsx(Text, { dimColor: true, children: 'Config'.padEnd(col) }), _jsx(Text, { children: tildify(getConfigPath()) })] })),
25
+ });
26
+ const projectCount = scanResult.projects?.length ?? 0;
27
+ result.push({
28
+ kind: 'info', id: 'projects-count',
29
+ render: () => (_jsxs(Text, { children: [' ', _jsx(Text, { dimColor: true, children: 'Discovered Projects'.padEnd(col) }), _jsx(Text, { children: projectCount > 0 ? String(projectCount) : '--' })] })),
30
+ });
31
+ result.push({
32
+ kind: 'info', id: 'cursor-token',
33
+ render: () => (_jsxs(Text, { children: [' ', _jsx(Text, { dimColor: true, children: 'Cursor Token'.padEnd(col) }), hasCursorToken
34
+ ? _jsx(Text, { color: "green", children: "configured" })
35
+ : _jsx(Text, { dimColor: true, children: "not set" })] })),
36
+ });
37
+ if (!hasCursorToken) {
38
+ result.push({
39
+ kind: 'info', id: 'cursor-hint',
40
+ render: () => (_jsxs(Text, { dimColor: true, children: [' '.padEnd(col + 4), "agentlens config --set-cursor-token ", '<token>'] })),
41
+ });
42
+ }
43
+ result.push({
44
+ kind: 'info', id: 'roots-header',
45
+ render: () => (_jsxs(Text, { children: [' ', _jsx(Text, { dimColor: true, children: 'Workspace Roots'.padEnd(col) }), configRoots.length > 0
46
+ ? _jsx(Text, { children: configRoots.length })
47
+ : _jsx(Text, { dimColor: true, children: "none" })] })),
48
+ });
49
+ if (configRoots.length > 0) {
50
+ for (let i = 0; i < configRoots.length; i++) {
51
+ const isLast = i === configRoots.length - 1;
52
+ const prefix = isLast ? last : branch;
53
+ const idx = i;
54
+ result.push({
55
+ kind: 'info', id: `root-${i}`,
56
+ render: () => (_jsxs(Text, { children: [' ', _jsxs(Text, { dimColor: true, children: [' '.repeat(col), prefix, " "] }), _jsx(Text, { color: "white", children: tildify(configRoots[idx]) })] })),
57
+ });
58
+ }
59
+ }
60
+ else {
61
+ result.push({
62
+ kind: 'info', id: 'roots-hint',
63
+ render: () => (_jsxs(Text, { dimColor: true, children: [' '.padEnd(col + 4), "agentlens config --add-root ", '<path>'] })),
64
+ });
65
+ }
66
+ result.push({
67
+ kind: 'info', id: 'config-spacer',
68
+ render: () => _jsx(Text, { children: ' ' }),
69
+ });
70
+ const toolNames = new Set();
71
+ for (const tc of [...scanResult.global, ...scanResult.project]) {
72
+ toolNames.add(tc.tool);
73
+ }
74
+ result.push({ kind: 'header', id: 'tools-header', label: 'Tools' });
75
+ for (const name of [...toolNames].sort()) {
76
+ result.push({ kind: 'toggle', type: 'tool', id: name, label: name });
77
+ }
78
+ const presentLabels = new Set();
79
+ for (const tc of [...scanResult.global, ...scanResult.project]) {
80
+ if (!tc.label)
81
+ continue;
82
+ for (const cat of LABEL_CATEGORIES) {
83
+ if (tc.label.startsWith(cat.match)) {
84
+ presentLabels.add(cat.id);
85
+ }
86
+ }
87
+ }
88
+ if (presentLabels.size > 0) {
89
+ result.push({ kind: 'header', id: 'categories-header', label: 'Categories' });
90
+ for (const cat of LABEL_CATEGORIES) {
91
+ if (presentLabels.has(cat.id)) {
92
+ result.push({ kind: 'toggle', type: 'category', id: cat.id, label: cat.label });
93
+ }
94
+ }
95
+ }
96
+ return result;
97
+ }, [scanResult, configRoots, hasCursorToken]);
98
+ const selectableIndices = useMemo(() => {
99
+ const out = [];
100
+ items.forEach((item, i) => {
101
+ if (item.kind === 'toggle')
102
+ out.push(i);
103
+ });
104
+ return out;
105
+ }, [items]);
106
+ const selectablePos = selectableIndices.indexOf(selectableIndices.find((si) => si >= cursor) ?? selectableIndices[0]);
107
+ useInput((input, key) => {
108
+ if (key.escape || input === 'q') {
109
+ onClose();
110
+ return;
111
+ }
112
+ if (key.upArrow || input === 'k') {
113
+ const prev = selectablePos - 1;
114
+ if (prev >= 0)
115
+ setCursor(selectableIndices[prev]);
116
+ return;
117
+ }
118
+ if (key.downArrow || input === 'j') {
119
+ const next = selectablePos + 1;
120
+ if (next < selectableIndices.length)
121
+ setCursor(selectableIndices[next]);
122
+ return;
123
+ }
124
+ if (input === ' ' || key.return) {
125
+ const item = items[cursor];
126
+ if (item.kind !== 'toggle')
127
+ return;
128
+ if (item.type === 'tool')
129
+ onToggleTool(item.id);
130
+ else
131
+ onToggleCategory(item.id);
132
+ return;
133
+ }
134
+ });
135
+ const listHeight = Math.max(1, height - 6);
136
+ const scrollOffset = Math.max(0, Math.min(cursor - listHeight + 1, items.length - listHeight));
137
+ const visible = items.slice(scrollOffset, scrollOffset + listHeight);
138
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", paddingX: 1, paddingY: 1, height: height, width: width, children: [_jsx(Text, { bold: true, children: "SETTINGS" }), _jsx(Text, { children: ' ' }), _jsx(Box, { flexDirection: "column", flexGrow: 1, children: visible.map((item, i) => {
139
+ const globalIdx = scrollOffset + i;
140
+ if (item.kind === 'header') {
141
+ return _jsxs(Text, { bold: true, dimColor: true, children: [" ", item.label] }, item.id);
142
+ }
143
+ if (item.kind === 'info') {
144
+ return _jsx(Box, { children: item.render() }, item.id);
145
+ }
146
+ const isSelected = globalIdx === cursor;
147
+ const isDisabled = item.type === 'tool'
148
+ ? disabledTools.has(item.id)
149
+ : disabledCategories.has(item.id);
150
+ const checkbox = isDisabled ? '[ ]' : '[x]';
151
+ const checkColor = isDisabled ? 'red' : 'green';
152
+ return (_jsx(Box, { children: _jsxs(Text, { inverse: isSelected, children: [' ', _jsx(Text, { color: checkColor, children: checkbox }), ' ', item.label, ' '] }) }, `${item.type}:${item.id}`));
153
+ }) }), _jsxs(Box, { justifyContent: "space-between", children: [_jsx(Text, { dimColor: true, children: "j/k: navigate space/enter: toggle q/esc: back" }), items.length > listHeight && (_jsxs(Text, { dimColor: true, children: ["[", scrollOffset + 1, "-", Math.min(scrollOffset + listHeight, items.length), "/", items.length, "]"] }))] })] }));
154
+ }
155
+ //# sourceMappingURL=SettingsView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsView.js","sourceRoot":"","sources":["../../src/ui/SettingsView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import type { TreeNode } from '../types.js';
3
+ interface TreeViewProps {
4
+ nodes: TreeNode[];
5
+ searchQuery: string;
6
+ onSelect: (node: TreeNode) => void;
7
+ onQuit: () => void;
8
+ onSearchActivate: () => void;
9
+ onSearchClear: () => void;
10
+ onToggleHelp: () => void;
11
+ onOpenSettings: () => void;
12
+ onCommandBarOpen: () => void;
13
+ active: boolean;
14
+ height: number;
15
+ width: number;
16
+ cursor: number;
17
+ onCursorChange: (cursor: number) => void;
18
+ scrollOffset: number;
19
+ onScrollOffsetChange: (offset: number) => void;
20
+ expandedOverride: Map<string, boolean>;
21
+ onExpandedOverrideChange: React.Dispatch<React.SetStateAction<Map<string, boolean>>>;
22
+ focusNodeId?: string;
23
+ }
24
+ export default function TreeView({ nodes, searchQuery, onSelect, onQuit, onSearchActivate, onSearchClear, onToggleHelp, onOpenSettings, onCommandBarOpen, active, height, width, cursor, onCursorChange: setCursor, scrollOffset, onScrollOffsetChange: setScrollOffset, expandedOverride, onExpandedOverrideChange: setExpandedOverride, focusNodeId, }: TreeViewProps): import("react/jsx-runtime").JSX.Element;
25
+ export {};
26
+ //# sourceMappingURL=TreeView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeView.d.ts","sourceRoot":"","sources":["../../src/ui/TreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C,UAAU,aAAa;IACrB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,wBAAwB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA6DD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,KAAK,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,cAAc,EAAE,SAAS,EACzB,YAAY,EACZ,oBAAoB,EAAE,eAAe,EACrC,gBAAgB,EAChB,wBAAwB,EAAE,mBAAmB,EAC7C,WAAW,GACZ,EAAE,aAAa,2CA6Mf"}
@@ -0,0 +1,240 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState, useMemo, useCallback, useEffect } from 'react';
3
+ import { Box, Text, useInput } from 'ink';
4
+ import { theme, tree } from './theme.js';
5
+ import cliTruncate from 'cli-truncate';
6
+ function renderNodeLine(node, prefix, isSelected, searchQuery, maxWidth, expanded) {
7
+ const q = searchQuery.toLowerCase();
8
+ const matchIdx = q.length > 0 ? node.label.toLowerCase().indexOf(q) : -1;
9
+ let mainStyle;
10
+ switch (node.type) {
11
+ case 'scope':
12
+ if (node.label.startsWith('CURRENT'))
13
+ mainStyle = theme.scopeCurrent;
14
+ else if (node.label.startsWith('GLOBAL'))
15
+ mainStyle = theme.scopeGlobal;
16
+ else
17
+ mainStyle = theme.scopeProject;
18
+ break;
19
+ case 'tool':
20
+ mainStyle = theme.toolName;
21
+ break;
22
+ case 'category':
23
+ mainStyle = theme.category;
24
+ break;
25
+ case 'entry':
26
+ case 'symlink-target':
27
+ mainStyle = theme.toolName;
28
+ break;
29
+ default: mainStyle = (s) => s;
30
+ }
31
+ let label;
32
+ if (isSelected) {
33
+ label = theme.selected(node.label);
34
+ }
35
+ else if (matchIdx >= 0 && q.length > 0) {
36
+ const before = node.label.slice(0, matchIdx);
37
+ const match = node.label.slice(matchIdx, matchIdx + q.length);
38
+ const after = node.label.slice(matchIdx + q.length);
39
+ label = mainStyle(before) + theme.searchHighlight(match) + mainStyle(after);
40
+ }
41
+ else {
42
+ label = mainStyle(node.label);
43
+ }
44
+ let line = theme.treeLine(prefix) + label;
45
+ if (node.type === 'scope' && node.hasChildren && !expanded && !isSelected) {
46
+ line += ' ' + theme.dim('(l to expand)');
47
+ }
48
+ if (node.pathLabel && !isSelected) {
49
+ line += ' ' + theme.path(node.pathLabel);
50
+ }
51
+ if (node.symlinkTarget) {
52
+ line += ' ' + theme.symlinkArrow + ' ' + theme.symlinkTarget(node.symlinkTarget);
53
+ }
54
+ if (node.description && !isSelected) {
55
+ const truncated = node.description.length > 50
56
+ ? node.description.slice(0, 47) + '...'
57
+ : node.description;
58
+ line += ' ' + theme.description(truncated);
59
+ }
60
+ return _jsx(Text, { children: cliTruncate(line, maxWidth) });
61
+ }
62
+ export default function TreeView({ nodes, searchQuery, onSelect, onQuit, onSearchActivate, onSearchClear, onToggleHelp, onOpenSettings, onCommandBarOpen, active, height, width, cursor, onCursorChange: setCursor, scrollOffset, onScrollOffsetChange: setScrollOffset, expandedOverride, onExpandedOverrideChange: setExpandedOverride, focusNodeId, }) {
63
+ const [pendingG, setPendingG] = useState(false);
64
+ const isExpanded = useCallback((node) => {
65
+ const over = expandedOverride.get(node.id);
66
+ if (over !== undefined)
67
+ return over;
68
+ return node.expanded;
69
+ }, [expandedOverride]);
70
+ const flattened = useMemo(() => {
71
+ const out = [];
72
+ function collect(ns, indent) {
73
+ for (let i = 0; i < ns.length; i++) {
74
+ const node = ns[i];
75
+ const isLast = i === ns.length - 1;
76
+ const branch = isLast ? tree.last : tree.branch;
77
+ out.push({ node, indent, branch });
78
+ if (node.children.length > 0 && isExpanded(node)) {
79
+ collect(node.children, indent + (isLast ? tree.space : tree.pipe));
80
+ }
81
+ }
82
+ }
83
+ collect(nodes, '');
84
+ return out;
85
+ }, [nodes, expandedOverride, isExpanded]);
86
+ const visibleHeight = Math.max(0, height);
87
+ useEffect(() => {
88
+ if (flattened.length === 0)
89
+ return;
90
+ const idx = Math.min(cursor, flattened.length - 1);
91
+ setCursor(idx);
92
+ if (idx < scrollOffset)
93
+ setScrollOffset(idx);
94
+ else if (idx >= scrollOffset + visibleHeight)
95
+ setScrollOffset(idx - visibleHeight + 1);
96
+ }, [flattened.length, visibleHeight]);
97
+ useEffect(() => {
98
+ if (!focusNodeId || flattened.length === 0)
99
+ return;
100
+ const idx = flattened.findIndex((f) => f.node.id === focusNodeId);
101
+ if (idx >= 0) {
102
+ setCursor(idx);
103
+ if (idx < scrollOffset) {
104
+ setScrollOffset(idx);
105
+ }
106
+ else if (idx >= scrollOffset + visibleHeight) {
107
+ setScrollOffset(Math.min(Math.max(0, flattened.length - visibleHeight), idx - visibleHeight + 1));
108
+ }
109
+ }
110
+ }, [focusNodeId]);
111
+ const moveCursor = useCallback((target) => {
112
+ const clamped = Math.max(0, Math.min(flattened.length - 1, target));
113
+ setCursor(clamped);
114
+ if (clamped < scrollOffset) {
115
+ setScrollOffset(clamped);
116
+ }
117
+ else if (clamped >= scrollOffset + visibleHeight) {
118
+ setScrollOffset(Math.min(Math.max(0, flattened.length - visibleHeight), clamped - visibleHeight + 1));
119
+ }
120
+ }, [flattened.length, scrollOffset, visibleHeight, setCursor, setScrollOffset]);
121
+ useInput((input, key) => {
122
+ if (!active)
123
+ return;
124
+ if (pendingG) {
125
+ setPendingG(false);
126
+ if (input === 'g') {
127
+ moveCursor(0);
128
+ }
129
+ return;
130
+ }
131
+ if (key.escape) {
132
+ if (searchQuery.length > 0) {
133
+ onSearchClear();
134
+ }
135
+ return;
136
+ }
137
+ if (input === 'q') {
138
+ onQuit();
139
+ return;
140
+ }
141
+ if (input === '?') {
142
+ onToggleHelp();
143
+ return;
144
+ }
145
+ if (input === '/') {
146
+ onSearchActivate();
147
+ return;
148
+ }
149
+ if (input === ':') {
150
+ onCommandBarOpen();
151
+ return;
152
+ }
153
+ if (key.upArrow || input === 'k') {
154
+ moveCursor(cursor - 1);
155
+ return;
156
+ }
157
+ if (key.downArrow || input === 'j') {
158
+ moveCursor(cursor + 1);
159
+ return;
160
+ }
161
+ if (input === 'G') {
162
+ moveCursor(flattened.length - 1);
163
+ return;
164
+ }
165
+ if (input === 'g') {
166
+ setPendingG(true);
167
+ return;
168
+ }
169
+ if (input === 'c') {
170
+ const idx = flattened.findIndex((f) => f.node.id.startsWith('scope:CURRENT'));
171
+ if (idx >= 0)
172
+ moveCursor(idx);
173
+ return;
174
+ }
175
+ if (input === 's') {
176
+ onOpenSettings();
177
+ return;
178
+ }
179
+ if (key.ctrl && input === 'd') {
180
+ moveCursor(cursor + Math.floor(visibleHeight / 2));
181
+ return;
182
+ }
183
+ if (key.ctrl && input === 'u') {
184
+ moveCursor(cursor - Math.floor(visibleHeight / 2));
185
+ return;
186
+ }
187
+ if (key.leftArrow || input === 'h') {
188
+ const item = flattened[cursor];
189
+ if (!item)
190
+ return;
191
+ const { node } = item;
192
+ if (node.children.length > 0 && isExpanded(node)) {
193
+ setExpandedOverride((prev) => {
194
+ const next = new Map(prev);
195
+ next.set(node.id, false);
196
+ return next;
197
+ });
198
+ }
199
+ else {
200
+ let parentIdx = -1;
201
+ for (let i = cursor - 1; i >= 0; i--) {
202
+ if (flattened[i].node.depth < node.depth) {
203
+ parentIdx = i;
204
+ break;
205
+ }
206
+ }
207
+ if (parentIdx >= 0)
208
+ setCursor(parentIdx);
209
+ }
210
+ return;
211
+ }
212
+ if (key.rightArrow || input === 'l') {
213
+ const item = flattened[cursor];
214
+ if (!item)
215
+ return;
216
+ const { node } = item;
217
+ if (node.children.length > 0 && !isExpanded(node)) {
218
+ setExpandedOverride((prev) => {
219
+ const next = new Map(prev);
220
+ next.set(node.id, true);
221
+ return next;
222
+ });
223
+ }
224
+ return;
225
+ }
226
+ if (key.return) {
227
+ const item = flattened[cursor];
228
+ if (item)
229
+ onSelect(item.node);
230
+ }
231
+ }, { isActive: active });
232
+ const visible = flattened.slice(scrollOffset, scrollOffset + visibleHeight);
233
+ return (_jsx(Box, { flexDirection: "column", flexGrow: 1, width: width, overflow: "hidden", children: visible.map(({ node, indent, branch }, i) => {
234
+ const globalIdx = scrollOffset + i;
235
+ const isSelected = globalIdx === cursor;
236
+ const fullPrefix = indent + branch;
237
+ return (_jsx(Box, { children: renderNodeLine(node, fullPrefix, isSelected, searchQuery, width, isExpanded(node)) }, node.id));
238
+ }) }));
239
+ }
240
+ //# sourceMappingURL=TreeView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeView.js","sourceRoot":"","sources":["../../src/ui/TreeView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export declare const theme: {
2
+ readonly title: import("chalk").ChalkInstance;
3
+ readonly scopeHeader: import("chalk").ChalkInstance;
4
+ readonly scopeGlobal: import("chalk").ChalkInstance;
5
+ readonly scopeCurrent: import("chalk").ChalkInstance;
6
+ readonly scopeProject: import("chalk").ChalkInstance;
7
+ readonly toolName: import("chalk").ChalkInstance;
8
+ readonly category: import("chalk").ChalkInstance;
9
+ readonly categoryExtra: import("chalk").ChalkInstance;
10
+ readonly path: import("chalk").ChalkInstance;
11
+ readonly symlinkArrow: string;
12
+ readonly symlinkTarget: import("chalk").ChalkInstance;
13
+ readonly description: import("chalk").ChalkInstance;
14
+ readonly notFound: import("chalk").ChalkInstance;
15
+ readonly treeLine: import("chalk").ChalkInstance;
16
+ readonly selected: import("chalk").ChalkInstance;
17
+ readonly searchHighlight: import("chalk").ChalkInstance;
18
+ readonly dim: import("chalk").ChalkInstance;
19
+ readonly error: import("chalk").ChalkInstance;
20
+ readonly warn: import("chalk").ChalkInstance;
21
+ readonly info: import("chalk").ChalkInstance;
22
+ };
23
+ export declare const tree: {
24
+ readonly branch: "├── ";
25
+ readonly last: "└── ";
26
+ readonly pipe: "│ ";
27
+ readonly space: " ";
28
+ readonly arrow: " --> ";
29
+ };
30
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;CAqBR,CAAC;AAEX,eAAO,MAAM,IAAI;;;;;;CAMP,CAAC"}
@@ -0,0 +1,31 @@
1
+ import chalk from 'chalk';
2
+ export const theme = {
3
+ title: chalk.bold,
4
+ scopeHeader: chalk.bold.white,
5
+ scopeGlobal: chalk.bold.blue,
6
+ scopeCurrent: chalk.bold.green,
7
+ scopeProject: chalk.bold.white,
8
+ toolName: chalk.bold.white,
9
+ category: chalk.yellow,
10
+ categoryExtra: chalk.dim.yellow,
11
+ path: chalk.dim,
12
+ symlinkArrow: chalk.cyan('-->'),
13
+ symlinkTarget: chalk.cyan,
14
+ description: chalk.gray,
15
+ notFound: chalk.dim.italic,
16
+ treeLine: chalk.dim,
17
+ selected: chalk.inverse,
18
+ searchHighlight: chalk.bold.underline,
19
+ dim: chalk.dim,
20
+ error: chalk.red.bold,
21
+ warn: chalk.yellow.bold,
22
+ info: chalk.blue.bold,
23
+ };
24
+ export const tree = {
25
+ branch: '├── ',
26
+ last: '└── ',
27
+ pipe: '│ ',
28
+ space: ' ',
29
+ arrow: ' --> ',
30
+ };
31
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,KAAK,EAAE,KAAK,CAAC,IAAI;IACjB,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;IAC7B,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;IAC5B,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;IAC9B,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;IAC9B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;IAC1B,QAAQ,EAAE,KAAK,CAAC,MAAM;IACtB,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM;IAC/B,IAAI,EAAE,KAAK,CAAC,GAAG;IACf,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IAC/B,aAAa,EAAE,KAAK,CAAC,IAAI;IACzB,WAAW,EAAE,KAAK,CAAC,IAAI;IACvB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM;IAC1B,QAAQ,EAAE,KAAK,CAAC,GAAG;IACnB,QAAQ,EAAE,KAAK,CAAC,OAAO;IACvB,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;IACrC,GAAG,EAAE,KAAK,CAAC,GAAG;IACd,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;IACrB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;IACvB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;CACb,CAAC;AAEX,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,OAAO;CACN,CAAC"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@tasszz2k/agentlens",
3
+ "version": "0.3.0",
4
+ "description": "CLI tool to scan agent configuration, track usage costs, and inspect skills/rules/MCP across Cursor, Claude Code, Codex, and Copilot",
5
+ "type": "module",
6
+ "bin": {
7
+ "agentlens": "dist/cli.js"
8
+ },
9
+ "files": [
10
+ "dist",
11
+ "README.md",
12
+ "LICENSE",
13
+ "package.json"
14
+ ],
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "dev": "tsx src/cli.ts",
18
+ "start": "node dist/cli.js",
19
+ "prepublishOnly": "npm run build"
20
+ },
21
+ "keywords": [
22
+ "ai",
23
+ "agent",
24
+ "cli",
25
+ "cursor",
26
+ "claude",
27
+ "codex",
28
+ "copilot"
29
+ ],
30
+ "license": "MIT",
31
+ "author": "Tass Dinh",
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "git+https://github.com/tasszz2k/agent-lens.git"
35
+ },
36
+ "homepage": "https://github.com/tasszz2k/agent-lens",
37
+ "engines": {
38
+ "node": ">=18"
39
+ },
40
+ "dependencies": {
41
+ "chalk": "^5.6.2",
42
+ "cli-truncate": "^5.2.0",
43
+ "commander": "^14.0.3",
44
+ "gray-matter": "^4.0.3",
45
+ "ink": "^6.8.0",
46
+ "react": "^19.2.4",
47
+ "smol-toml": "^1.6.0"
48
+ },
49
+ "devDependencies": {
50
+ "@types/node": "^25.3.5",
51
+ "@types/react": "^19.2.14",
52
+ "tsx": "^4.21.0",
53
+ "typescript": "^5.9.3"
54
+ }
55
+ }