diff --git a/src/cli/commands/logs/command.tsx b/src/cli/commands/logs/command.tsx
index 39a50f33b..d3b209c63 100644
--- a/src/cli/commands/logs/command.tsx
+++ b/src/cli/commands/logs/command.tsx
@@ -2,6 +2,7 @@ import { COMMAND_DESCRIPTIONS } from '../../constants';
import { getErrorMessage } from '../../errors';
import { handleLogsEval } from '../../operations/eval';
import type { LogsEvalOptions } from '../../operations/eval';
+import { withCommandRunTelemetry } from '../../telemetry/cli-command-run.js';
import { requireProject } from '../../tui/guards';
import { handleLogs } from './action';
import type { LogsOptions } from './types';
@@ -31,7 +32,11 @@ export const registerLogs = (program: Command) => {
requireProject();
try {
- const result = await handleLogs(cliOptions);
+ const result = await withCommandRunTelemetry(
+ 'logs',
+ { has_query: !!cliOptions.query, has_level_filter: !!cliOptions.level },
+ () => handleLogs(cliOptions)
+ );
if (!result.success) {
render({result.error.message});
@@ -56,7 +61,9 @@ export const registerLogs = (program: Command) => {
requireProject();
try {
- const result = await handleLogsEval(cliOptions);
+ const result = await withCommandRunTelemetry('logs.evals', { has_follow: !!cliOptions.follow }, () =>
+ handleLogsEval(cliOptions)
+ );
if (!result.success) {
render({result.error.message});
diff --git a/src/cli/tui/screens/logs/useLogsFlow.ts b/src/cli/tui/screens/logs/useLogsFlow.ts
index fb8392d8b..262db152a 100644
--- a/src/cli/tui/screens/logs/useLogsFlow.ts
+++ b/src/cli/tui/screens/logs/useLogsFlow.ts
@@ -1,4 +1,4 @@
-import { toError } from '../../../../lib';
+import { ValidationError, toError } from '../../../../lib';
import type { AgentContext } from '../../../commands/logs/action';
import { resolveAgentContext } from '../../../commands/logs/action';
import { loadDeployedProjectConfig } from '../../../operations/resolve-agent';
@@ -40,7 +40,7 @@ export function useLogsFlow(): UseLogsFlowResult {
const runtimeNames = context.project.runtimes.map(r => r.name);
if (runtimeNames.length === 0) {
- return { success: false as const, error: new Error('No runtimes defined in agentcore.json') };
+ return { success: false as const, error: new ValidationError('No runtimes defined in agentcore.json') };
}
const resolved: AgentContext[] = [];
@@ -54,7 +54,7 @@ export function useLogsFlow(): UseLogsFlowResult {
if (resolved.length === 0) {
return {
success: false as const,
- error: new Error('No deployed agents found. Run `agentcore deploy` first.'),
+ error: new ValidationError('No deployed agents found. Run `agentcore deploy` first.'),
};
}