{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "urn:hermes-agent:schema:shared-metrics:v1", "title": "Hermes Shared Metrics Package v1", "type": "object", "additionalProperties": false, "required": [ "schema_version", "package_id", "install_id", "period_start", "period_end", "generated_at", "resource", "metrics" ], "properties": { "schema_version": { "const": "hermes.shared_metrics.v1" }, "package_id": { "$ref": "#/$defs/uuid" }, "install_id": { "description": "Random persistent identifier scoped to one HERMES_HOME; local-only in schema v1.", "$ref": "#/$defs/uuid" }, "period_start": { "type": "string", "format": "date-time" }, "period_end": { "type": "string", "format": "date-time" }, "generated_at": { "type": "string", "format": "date-time" }, "resource": { "type": "object", "additionalProperties": false, "required": [ "hermes_version" ], "properties": { "hermes_version": { "type": "string", "minLength": 1, "maxLength": 64 } } }, "metrics": { "type": "array", "minItems": 1, "items": { "oneOf": [ { "$ref": "#/$defs/model_call_counter" }, { "$ref": "#/$defs/task_started_counter" }, { "$ref": "#/$defs/task_finished_counter" } ] } } }, "$defs": { "uuid": { "type": "string", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" }, "model_call_counter": { "type": "object", "additionalProperties": false, "required": [ "name", "type", "dimensions", "value" ], "properties": { "name": { "const": "hermes.model_call.count" }, "type": { "const": "counter" }, "dimensions": { "type": "object", "additionalProperties": false, "required": [ "call_role", "locality", "model_family", "outcome", "provider_family" ], "properties": { "call_role": { "const": "primary" }, "locality": { "enum": [ "local", "remote", "unknown" ] }, "model_family": { "enum": [ "claude", "deepseek", "gemini", "gemma", "glm", "gpt", "grok", "kimi", "llama", "minimax", "mimo", "mistral", "nemotron", "nova", "o1", "o3", "o4", "qwen", "step", "trinity", "unknown" ] }, "outcome": { "enum": [ "cancelled", "failed", "success" ] }, "provider_family": { "enum": [ "aggregator", "custom", "direct", "local", "unknown" ] } } }, "value": { "type": "integer", "minimum": 1 } } }, "task_started_counter": { "type": "object", "additionalProperties": false, "required": [ "name", "type", "dimensions", "value" ], "properties": { "name": { "const": "hermes.task_run.started" }, "type": { "const": "counter" }, "dimensions": { "type": "object", "additionalProperties": false, "required": [ "entrypoint", "execution_surface" ], "properties": { "entrypoint": { "$ref": "#/$defs/task_entrypoint" }, "execution_surface": { "$ref": "#/$defs/execution_surface" } } }, "value": { "type": "integer", "minimum": 1 } } }, "task_finished_counter": { "type": "object", "additionalProperties": false, "required": [ "name", "type", "dimensions", "value" ], "properties": { "name": { "const": "hermes.task_run.finished" }, "type": { "const": "counter" }, "dimensions": { "type": "object", "additionalProperties": false, "required": [ "duration_bucket", "end_reason", "entrypoint", "execution_surface", "model_call_count_bucket", "outcome", "retry_count_bucket", "termination", "tool_call_count_bucket" ], "properties": { "duration_bucket": { "$ref": "#/$defs/duration_bucket" }, "end_reason": { "enum": [ "approval_denied", "completed", "failed", "guardrail_blocked", "iteration_limit", "system_aborted", "timed_out", "unknown", "user_cancelled" ] }, "entrypoint": { "$ref": "#/$defs/task_entrypoint" }, "execution_surface": { "$ref": "#/$defs/execution_surface" }, "model_call_count_bucket": { "$ref": "#/$defs/count_bucket" }, "outcome": { "enum": [ "cancelled", "failed", "success", "timed_out", "unknown" ] }, "retry_count_bucket": { "$ref": "#/$defs/count_bucket" }, "termination": { "enum": [ "none", "system_aborted", "timed_out", "unknown", "user_cancelled" ] }, "tool_call_count_bucket": { "$ref": "#/$defs/count_bucket" } } }, "value": { "type": "integer", "minimum": 1 } } }, "execution_surface": { "enum": [ "api", "batch", "cli", "desktop", "gateway", "other", "python", "scheduled_task", "tui", "unknown" ] }, "task_entrypoint": { "enum": [ "api", "background", "batch", "delegated", "gateway_message", "interactive", "other", "python", "scheduled_task", "unknown" ] }, "duration_bucket": { "enum": [ "1s_to_5s", "2m_to_10m", "30s_to_2m", "5s_to_30s", "gte_10m", "lt_1s" ] }, "count_bucket": { "enum": [ "0", "1", "2", "3_to_5", "6_to_10", "gte_11" ] } } }