05668e398f
Implementa el comando built-in !metrics que lee los JSONL logs del dia actual usando shell/logger/query.go y calcula agregados en memoria: - Mensajes recibidos (handling event) - Comandos ejecutados (command_received) - Llamadas LLM (count, tokens totales, latencia media) - Llamadas a tools (count, errores) - Errores totales (nivel ERROR) - Total de entradas de log El comando se registra como built-in disponible para todos los agentes. Recibe logDir via Option pattern (WithLogDir) para no romper la firma de agents.New(). El launcher pasa logDir al crear cada agente. Formatea la salida como tabla markdown para Matrix. Incluye tests unitarios con logs JSONL sinteticos. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
72 lines
1.6 KiB
Go
72 lines
1.6 KiB
Go
package command
|
|
|
|
// Builtins returns the specs of all built-in commands. Pure.
|
|
func Builtins() []Spec {
|
|
return []Spec{
|
|
{
|
|
Name: "help",
|
|
Aliases: []string{"h"},
|
|
Description: "Lista comandos disponibles",
|
|
Usage: "!help",
|
|
},
|
|
{
|
|
Name: "tools",
|
|
Description: "Lista tools registradas con descripcion",
|
|
Usage: "!tools",
|
|
},
|
|
{
|
|
Name: "tool",
|
|
Description: "Ejecutar una tool directamente",
|
|
Usage: "!tool <nombre> [key=value ...]",
|
|
},
|
|
{
|
|
Name: "ping",
|
|
Description: "Alive check",
|
|
Usage: "!ping",
|
|
},
|
|
{
|
|
Name: "status",
|
|
Description: "Info del agente: uptime, rooms activos",
|
|
Usage: "!status",
|
|
},
|
|
{
|
|
Name: "info",
|
|
Description: "Nombre, version y descripcion del agente",
|
|
Usage: "!info",
|
|
},
|
|
{
|
|
Name: "clear",
|
|
Description: "Limpia ventana de conversacion del room actual",
|
|
Usage: "!clear",
|
|
},
|
|
{
|
|
Name: "prompts",
|
|
Description: "Lista prompt-commands disponibles (archivos .md en prompts/)",
|
|
Usage: "!prompts",
|
|
},
|
|
{
|
|
Name: "version",
|
|
Aliases: []string{"v"},
|
|
Description: "Version del agente",
|
|
Usage: "!version",
|
|
},
|
|
{
|
|
Name: "metrics",
|
|
Description: "Metricas agregadas del dia actual",
|
|
Usage: "!metrics",
|
|
},
|
|
}
|
|
}
|
|
|
|
// BuiltinNames returns just the command names (including aliases) for lookup. Pure.
|
|
func BuiltinNames() map[string]string {
|
|
m := make(map[string]string)
|
|
for _, spec := range Builtins() {
|
|
m[spec.Name] = spec.Name
|
|
for _, alias := range spec.Aliases {
|
|
m[alias] = spec.Name
|
|
}
|
|
}
|
|
return m
|
|
}
|