← Schema index / Config Reference
messaging schema
Canonical generated docsThis section is generated from
caco config schema --json. The table below preserves the runtime field path, type, required/default markers, and canonical description for every value in this slice.Messaging policy and scoped Mustache-style live-injection templates. The canonical section is messaging (messages is a deserialize-only alias); messaging.nodes / messaging.projects select node/project overlays; resolution is global < node < project < matching agent override.
| Field path | Type | Required | Default | Canonical description |
|---|---|---|---|---|
messaging | section | optional | Messaging policy and scoped Mustache-style live-injection templates. The canonical section is messaging (messages is a deserialize-only alias); messaging.nodes / messaging.projects select node/project overlays; resolution is global < node < project < matching agent override. | |
└ messaging.direct | map | optional | Direct-message live-injection wrapper. | |
└ messaging.direct.template | string | optional | Mustache-style live-injection wrapper. {{message}} expands to the original body; optional variables are {{message_id}}, {{sender}}, {{timestamp}}, {{kind}}, {{node}}, {{project}}, and {{agent}}. | |
└ messaging.broadcast | map | optional | Broadcast delivery policy and live-injection wrapper. | |
└ messaging.broadcast.live_inject_max_age_secs | i64 | optional | 600 | Max age in seconds for LIVE tmux re-injection of a peer-replicated broadcast on node reconnect. Older broadcasts remain in inbox history. 0 disables the gate. CACO_MSG_BROADCAST_LIVE_INJECT_MAX_AGE_SECS wins. |
└ messaging.broadcast.template | string | optional | Mustache-style broadcast live-injection wrapper; {{message}} is the original body and {{message_id}} is its durable delivery identity. | |
└ messaging.speak | map | optional | Speak-message wrapper for injection-capable consumers. | |
└ messaging.speak.template | string | optional | Mustache-style live-injection wrapper. {{message}} expands to the original body; optional variables are {{message_id}}, {{sender}}, {{timestamp}}, {{kind}}, {{node}}, {{project}}, and {{agent}}. | |
└ messaging.system | map | optional | System-message wrapper for injection-capable consumers. | |
└ messaging.system.template | string | optional | Mustache-style live-injection wrapper. {{message}} expands to the original body; optional variables are {{message_id}}, {{sender}}, {{timestamp}}, {{kind}}, {{node}}, {{project}}, and {{agent}}. | |
└ messaging.nodes | map[string, map] | optional | Node-scoped sparse wrappers keyed by static or dynamic node name. | |
└ messaging.nodes.<node>.direct | map | optional | Node-scoped direct-message wrapper. | |
└ messaging.nodes.<node>.direct.template | string | optional | Mustache-style live-injection wrapper. {{message}} expands to the original body; optional variables are {{message_id}}, {{sender}}, {{timestamp}}, {{kind}}, {{node}}, {{project}}, and {{agent}}. | |
└ messaging.nodes.<node>.broadcast | map | optional | Node-scoped broadcast wrapper. | |
└ messaging.nodes.<node>.broadcast.template | string | optional | Mustache-style live-injection wrapper. {{message}} expands to the original body; optional variables are {{message_id}}, {{sender}}, {{timestamp}}, {{kind}}, {{node}}, {{project}}, and {{agent}}. | |
└ messaging.nodes.<node>.speak | map | optional | Node-scoped speak wrapper. | |
└ messaging.nodes.<node>.speak.template | string | optional | Mustache-style live-injection wrapper. {{message}} expands to the original body; optional variables are {{message_id}}, {{sender}}, {{timestamp}}, {{kind}}, {{node}}, {{project}}, and {{agent}}. | |
└ messaging.nodes.<node>.system | map | optional | Node-scoped system wrapper. | |
└ messaging.nodes.<node>.system.template | string | optional | Mustache-style live-injection wrapper. {{message}} expands to the original body; optional variables are {{message_id}}, {{sender}}, {{timestamp}}, {{kind}}, {{node}}, {{project}}, and {{agent}}. | |
└ messaging.projects | map[string, map] | optional | Project-scoped sparse wrappers keyed by project name. | |
└ messaging.projects.<project>.direct | map | optional | Project-scoped direct-message wrapper. | |
└ messaging.projects.<project>.direct.template | string | optional | Mustache-style live-injection wrapper. {{message}} expands to the original body; optional variables are {{message_id}}, {{sender}}, {{timestamp}}, {{kind}}, {{node}}, {{project}}, and {{agent}}. | |
└ messaging.projects.<project>.broadcast | map | optional | Project-scoped broadcast wrapper. | |
└ messaging.projects.<project>.broadcast.template | string | optional | Mustache-style live-injection wrapper. {{message}} expands to the original body; optional variables are {{message_id}}, {{sender}}, {{timestamp}}, {{kind}}, {{node}}, {{project}}, and {{agent}}. | |
└ messaging.projects.<project>.speak | map | optional | Project-scoped speak wrapper. | |
└ messaging.projects.<project>.speak.template | string | optional | Mustache-style live-injection wrapper. {{message}} expands to the original body; optional variables are {{message_id}}, {{sender}}, {{timestamp}}, {{kind}}, {{node}}, {{project}}, and {{agent}}. | |
└ messaging.projects.<project>.system | map | optional | Project-scoped system wrapper. | |
└ messaging.projects.<project>.system.template | string | optional | Mustache-style live-injection wrapper. {{message}} expands to the original body; optional variables are {{message_id}}, {{sender}}, {{timestamp}}, {{kind}}, {{node}}, {{project}}, and {{agent}}. | |
└ messaging.overrides | map[string, map] | optional | Per-agent sparse template overrides keyed by persistent declaration name, profile, or concrete agent id. | |
└ messaging.overrides.<agent>.direct | map | optional | Per-agent direct-message wrapper. | |
└ messaging.overrides.<agent>.direct.template | string | optional | Mustache-style live-injection wrapper. {{message}} expands to the original body; optional variables are {{message_id}}, {{sender}}, {{timestamp}}, {{kind}}, {{node}}, {{project}}, and {{agent}}. | |
└ messaging.overrides.<agent>.broadcast | map | optional | Per-agent broadcast wrapper. | |
└ messaging.overrides.<agent>.broadcast.template | string | optional | Mustache-style live-injection wrapper. {{message}} expands to the original body; optional variables are {{message_id}}, {{sender}}, {{timestamp}}, {{kind}}, {{node}}, {{project}}, and {{agent}}. | |
└ messaging.overrides.<agent>.speak | map | optional | Per-agent speak wrapper. | |
└ messaging.overrides.<agent>.speak.template | string | optional | Mustache-style live-injection wrapper. {{message}} expands to the original body; optional variables are {{message_id}}, {{sender}}, {{timestamp}}, {{kind}}, {{node}}, {{project}}, and {{agent}}. | |
└ messaging.overrides.<agent>.system | map | optional | Per-agent system wrapper. | |
└ messaging.overrides.<agent>.system.template | string | optional | Mustache-style live-injection wrapper. {{message}} expands to the original body; optional variables are {{message_id}}, {{sender}}, {{timestamp}}, {{kind}}, {{node}}, {{project}}, and {{agent}}. |