MCPcopy Index your code
hub / github.com/BlockRunAI/ClawRouter / createStatsCommand

Function createStatsCommand

src/commands/stats.ts:8–48  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

6import { getStats, formatStatsAscii, clearStats } from "../stats.js";
7
8export function createStatsCommand(): OpenClawPluginCommandDefinition {
9 return {
10 name: "stats",
11 description: "Show ClawRouter usage statistics and cost savings",
12 acceptsArgs: true,
13 requireAuth: false,
14 handler: async (ctx: PluginCommandContext) => {
15 const arg = ctx.args?.trim().toLowerCase() || "7";
16
17 if (arg === "clear" || arg === "reset") {
18 try {
19 const { deletedFiles } = await clearStats();
20 return {
21 text: `Stats cleared — ${deletedFiles} log file(s) deleted. Fresh start!`,
22 };
23 } catch (err) {
24 return {
25 text: `Failed to clear stats: ${err instanceof Error ? err.message : String(err)}`,
26 isError: true,
27 };
28 }
29 }
30
31 const days = parseInt(arg, 10) || 7;
32
33 try {
34 const stats = await getStats(Math.min(days, 30)); // Cap at 30 days
35 const ascii = formatStatsAscii(stats);
36
37 return {
38 text: ["```", ascii, "```"].join("\n"),
39 };
40 } catch (err) {
41 return {
42 text: `Failed to load stats: ${err instanceof Error ? err.message : String(err)}`,
43 isError: true,
44 };
45 }
46 },
47 };
48}

Callers 1

registerFunction · 0.85

Calls 3

clearStatsFunction · 0.85
getStatsFunction · 0.85
formatStatsAsciiFunction · 0.85

Tested by

no test coverage detected