@agentlensai/cli 0.3.0 → 0.6.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,210 @@
1
+ /**
2
+ * agentlens reflect — Pattern analysis across agent sessions
3
+ */
4
+ import { parseArgs } from 'node:util';
5
+ import { createClientFromConfig } from '../lib/client.js';
6
+ import { printTable, printJson, formatTimestamp, truncate } from '../lib/output.js';
7
+ const ANALYSIS_TYPES = ['error_patterns', 'cost_analysis', 'tool_sequences', 'performance_trends'];
8
+ const HELP = `Usage: agentlens reflect <analysis_type> [options]
9
+
10
+ Analyze behavioral patterns from agent sessions.
11
+
12
+ Analysis Types:
13
+ error_patterns Recurring error patterns across sessions
14
+ cost_analysis Cost breakdown and trends by model/agent
15
+ tool_sequences Common tool usage patterns and error rates
16
+ performance_trends Success rate and duration trends over time
17
+
18
+ Options:
19
+ --agent <id> Filter by agent ID
20
+ --from <date> Start date (ISO 8601)
21
+ --to <date> End date (ISO 8601)
22
+ --limit <n> Maximum results (default: 20)
23
+ --url <url> Server URL (overrides config)
24
+ -j, --json Output raw JSON
25
+ -h, --help Show help
26
+
27
+ Examples:
28
+ agentlens reflect error_patterns
29
+ agentlens reflect cost_analysis --agent my-agent --from 2026-01-01
30
+ agentlens reflect tool_sequences --limit 20
31
+ agentlens reflect performance_trends`;
32
+ export async function runReflectCommand(argv) {
33
+ const { values, positionals } = parseArgs({
34
+ args: argv,
35
+ options: {
36
+ agent: { type: 'string', short: 'a' },
37
+ from: { type: 'string' },
38
+ to: { type: 'string' },
39
+ limit: { type: 'string', short: 'l' },
40
+ url: { type: 'string' },
41
+ json: { type: 'boolean', short: 'j', default: false },
42
+ help: { type: 'boolean', short: 'h', default: false },
43
+ },
44
+ allowPositionals: true,
45
+ });
46
+ if (values.help || positionals.length === 0) {
47
+ console.log(HELP);
48
+ return;
49
+ }
50
+ const analysis = positionals[0];
51
+ if (!ANALYSIS_TYPES.includes(analysis)) {
52
+ console.error(`Unknown analysis type: ${analysis}`);
53
+ console.error(`Valid types: ${ANALYSIS_TYPES.join(', ')}`);
54
+ process.exit(1);
55
+ }
56
+ const client = createClientFromConfig(values.url);
57
+ const result = await client.reflect({
58
+ analysis,
59
+ agentId: values.agent ?? undefined,
60
+ from: values.from ?? undefined,
61
+ to: values.to ?? undefined,
62
+ limit: values.limit ? parseInt(values.limit, 10) : undefined,
63
+ });
64
+ if (values.json) {
65
+ printJson(result);
66
+ return;
67
+ }
68
+ // Dispatch to per-analysis-type formatter
69
+ switch (analysis) {
70
+ case 'error_patterns':
71
+ formatErrorPatterns(result);
72
+ break;
73
+ case 'cost_analysis':
74
+ formatCostAnalysis(result);
75
+ break;
76
+ case 'tool_sequences':
77
+ formatToolSequences(result);
78
+ break;
79
+ case 'performance_trends':
80
+ formatPerformanceTrends(result);
81
+ break;
82
+ }
83
+ // Always show metadata
84
+ const m = result.metadata;
85
+ console.log(`\nAnalyzed ${m.sessionsAnalyzed} session(s), ${m.eventsAnalyzed} event(s).`);
86
+ console.log(`Time range: ${m.timeRange.from} → ${m.timeRange.to}`);
87
+ }
88
+ function formatErrorPatterns(result) {
89
+ console.log('\nError Patterns\n');
90
+ if (result.insights.length === 0) {
91
+ console.log('No error patterns found.');
92
+ return;
93
+ }
94
+ const headers = ['Pattern', 'Count', 'First Seen', 'Last Seen'];
95
+ const rows = result.insights.map((insight) => {
96
+ const d = insight.data;
97
+ return [
98
+ truncate(insight.summary, 50),
99
+ String(d.count ?? ''),
100
+ d.firstSeen ? formatTimestamp(String(d.firstSeen)) : '',
101
+ d.lastSeen ? formatTimestamp(String(d.lastSeen)) : '',
102
+ ];
103
+ });
104
+ printTable(headers, rows);
105
+ }
106
+ function formatCostAnalysis(result) {
107
+ console.log('\nCost Analysis\n');
108
+ if (result.insights.length === 0) {
109
+ console.log('No cost data found.');
110
+ return;
111
+ }
112
+ // Look for summary insight
113
+ const summaryInsight = result.insights.find((i) => i.type === 'cost_summary');
114
+ if (summaryInsight) {
115
+ const d = summaryInsight.data;
116
+ console.log(` Total Cost: $${Number(d.totalCost ?? 0).toFixed(4)}`);
117
+ console.log(` Avg/Session: $${Number(d.avgPerSession ?? 0).toFixed(4)}`);
118
+ console.log(` Total Sessions: ${d.totalSessions ?? ''}`);
119
+ console.log('');
120
+ }
121
+ // Look for model breakdown insights
122
+ const modelInsights = result.insights.filter((i) => i.type === 'cost_by_model');
123
+ if (modelInsights.length > 0) {
124
+ console.log('Model Breakdown:');
125
+ const headers = ['Model', 'Calls', 'Cost', 'Avg/Call'];
126
+ const rows = modelInsights.map((insight) => {
127
+ const d = insight.data;
128
+ return [
129
+ truncate(String(d.model ?? insight.summary), 30),
130
+ String(d.callCount ?? d.calls ?? ''),
131
+ `$${Number(d.totalCost ?? d.costUsd ?? 0).toFixed(4)}`,
132
+ `$${Number(d.avgCostPerCall ?? 0).toFixed(4)}`,
133
+ ];
134
+ });
135
+ printTable(headers, rows);
136
+ }
137
+ // If no structured data, show general insights
138
+ if (!summaryInsight && modelInsights.length === 0) {
139
+ for (const insight of result.insights) {
140
+ console.log(` [${insight.type}] ${insight.summary}`);
141
+ }
142
+ }
143
+ }
144
+ function formatToolSequences(result) {
145
+ console.log('\nTool Sequences\n');
146
+ if (result.insights.length === 0) {
147
+ console.log('No tool sequence patterns found.');
148
+ return;
149
+ }
150
+ const headers = ['Sequence', 'Frequency', 'Sessions', 'Error Rate'];
151
+ const rows = result.insights.map((insight) => {
152
+ const d = insight.data;
153
+ const tools = d.tools;
154
+ const seq = tools ? tools.join(' → ') : insight.summary;
155
+ return [
156
+ truncate(seq, 50),
157
+ String(d.frequency ?? ''),
158
+ String(d.sessions ?? ''),
159
+ d.errorRate !== undefined ? `${(Number(d.errorRate) * 100).toFixed(1)}%` : '',
160
+ ];
161
+ });
162
+ printTable(headers, rows);
163
+ }
164
+ function formatPerformanceTrends(result) {
165
+ console.log('\nPerformance Trends\n');
166
+ if (result.insights.length === 0) {
167
+ console.log('No performance data found.');
168
+ return;
169
+ }
170
+ // Look for current stats
171
+ const currentInsight = result.insights.find((i) => i.type === 'current' || i.type === 'performance_current');
172
+ if (currentInsight) {
173
+ const d = currentInsight.data;
174
+ console.log(` Success Rate: ${d.successRate !== undefined ? `${(Number(d.successRate) * 100).toFixed(1)}%` : 'N/A'}`);
175
+ console.log(` Avg Duration: ${d.avgDuration !== undefined ? `${Number(d.avgDuration).toFixed(0)}ms` : 'N/A'}`);
176
+ console.log(` Avg Tool Calls: ${d.avgToolCalls ?? 'N/A'}`);
177
+ console.log(` Avg Errors: ${d.avgErrors ?? 'N/A'}`);
178
+ console.log('');
179
+ }
180
+ // Look for assessment
181
+ const assessmentInsight = result.insights.find((i) => i.type === 'assessment' || i.type === 'trend_assessment');
182
+ if (assessmentInsight) {
183
+ const assessment = String(assessmentInsight.data.assessment ?? assessmentInsight.summary);
184
+ const icon = assessment === 'improving' ? '📈' : assessment === 'degrading' ? '📉' : '📊';
185
+ console.log(` Trend: ${icon} ${assessment}`);
186
+ console.log('');
187
+ }
188
+ // Show trend data if present
189
+ const trendInsights = result.insights.filter((i) => i.type === 'trend_bucket' || i.type === 'trend');
190
+ if (trendInsights.length > 0) {
191
+ const headers = ['Date', 'Success Rate', 'Duration', 'Errors'];
192
+ const rows = trendInsights.map((insight) => {
193
+ const d = insight.data;
194
+ return [
195
+ String(d.date ?? insight.summary),
196
+ d.successRate !== undefined ? `${(Number(d.successRate) * 100).toFixed(1)}%` : '',
197
+ d.duration !== undefined ? `${Number(d.duration).toFixed(0)}ms` : '',
198
+ String(d.errors ?? ''),
199
+ ];
200
+ });
201
+ printTable(headers, rows);
202
+ }
203
+ // Fallback: show all insights
204
+ if (!currentInsight && !assessmentInsight && trendInsights.length === 0) {
205
+ for (const insight of result.insights) {
206
+ console.log(` [${insight.type}] ${insight.summary} (confidence: ${(insight.confidence * 100).toFixed(0)}%)`);
207
+ }
208
+ }
209
+ }
210
+ //# sourceMappingURL=reflect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflect.js","sourceRoot":"","sources":["../../src/commands/reflect.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,8 +5,14 @@
5
5
  * Uses node:util parseArgs for lightweight argument parsing.
6
6
  */
7
7
  import { runConfigCommand } from './commands/config.js';
8
+ import { runContextCommand } from './commands/context.js';
8
9
  import { runEventsCommand } from './commands/events.js';
10
+ import { runHealthCommand } from './commands/health.js';
11
+ import { runLessonsCommand } from './commands/lessons.js';
9
12
  import { runLlmCommand } from './commands/llm.js';
13
+ import { runOptimizeCommand } from './commands/optimize.js';
14
+ import { runRecallCommand } from './commands/recall.js';
15
+ import { runReflectCommand } from './commands/reflect.js';
10
16
  import { runSessionsCommand } from './commands/sessions.js';
11
17
  import { runTailCommand } from './commands/tail.js';
12
18
  const HELP = `AgentLens CLI — Observability for AI agents
@@ -15,10 +21,16 @@ Usage: agentlens <command> [options]
15
21
 
16
22
  Commands:
17
23
  config Get or set configuration (url, api-key)
24
+ context Retrieve cross-session context for a topic
18
25
  events Query events
26
+ health Agent health scores and trends
27
+ lessons Manage agent lessons (list, create, get, update, delete, search)
28
+ llm LLM call tracking (stats, models, recent)
29
+ optimize Cost optimization recommendations
30
+ recall Semantic search over agent memory
31
+ reflect Pattern analysis across agent sessions
19
32
  sessions List and inspect sessions
20
33
  tail Stream live events (SSE)
21
- llm LLM call tracking (stats, models, recent)
22
34
 
23
35
  Run "agentlens <command> --help" for command-specific help.
24
36
 
@@ -35,12 +47,30 @@ async function main() {
35
47
  case 'config':
36
48
  runConfigCommand(rest);
37
49
  break;
50
+ case 'context':
51
+ await runContextCommand(rest);
52
+ break;
38
53
  case 'events':
39
54
  await runEventsCommand(rest);
40
55
  break;
56
+ case 'health':
57
+ await runHealthCommand(rest);
58
+ break;
59
+ case 'lessons':
60
+ await runLessonsCommand(rest);
61
+ break;
41
62
  case 'llm':
42
63
  await runLlmCommand(rest);
43
64
  break;
65
+ case 'optimize':
66
+ await runOptimizeCommand(rest);
67
+ break;
68
+ case 'recall':
69
+ await runRecallCommand(rest);
70
+ break;
71
+ case 'reflect':
72
+ await runReflectCommand(rest);
73
+ break;
44
74
  case 'sessions':
45
75
  await runSessionsCommand(rest);
46
76
  break;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;CAiBZ,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3B,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ;YACX,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM;QAER,KAAK,QAAQ;YACX,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM;QAER,KAAK,KAAK;YACR,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM;QAER,KAAK,UAAU;YACb,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM;QAER,KAAK,MAAM;YACT,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM;QAER,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI,CAAC;QACV,KAAK,SAAS;YACZ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM;QAER,KAAK,WAAW,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrB,MAAM;QAER;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QACpD,MAAM,CAAC,GAAG,GAAyD,CAAC;QACpE,qCAAqC;QACrC,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAC5D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;QACtG,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC/C,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentlensai/cli",
3
- "version": "0.3.0",
3
+ "version": "0.6.0",
4
4
  "description": "Command-line interface for AgentLens — query events, sessions, and manage your observability server",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -36,14 +36,14 @@
36
36
  "files": [
37
37
  "dist"
38
38
  ],
39
- "dependencies": {
40
- "@agentlensai/sdk": "0.3.0"
41
- },
42
39
  "scripts": {
43
40
  "build": "tsc -b",
44
41
  "dev": "tsc -b --watch",
45
42
  "typecheck": "tsc --noEmit",
46
43
  "test": "vitest run",
47
44
  "test:watch": "vitest"
45
+ },
46
+ "dependencies": {
47
+ "@agentlensai/sdk": "workspace:*"
48
48
  }
49
- }
49
+ }
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Amit Paz
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.