# onemessagebus-agent
The agent profile over the `onemessagebus` core: the vocabulary the agent stack
shares, declared once here and re-exported by every consumer.
- `Source::{Agentgraph, Vcs, Pipeline}` — the three producers, and the envelope
version each writes against (`pipeline` 2, the others 1).
- `Phase::{Development, Integrate, Review, Release}` — the reserved top-level
dimension, omitted from the wire when absent.
- `Labels` — `run_id`, `round`, `node`, `step`, `member`, `persona`, plus a
flattened map of free-form extras.
- `Envelope`, `EventFilter`, `Matcher`, `Emitter`, `Reader`, `Merge` — the core's
generic types over this vocabulary, serializing to the bytes `oneagentgraph`,
`onevcs` and `onepipeline` write today.
- `note` — the agent note contract: `Note`, `Addressee`, `Criterion`,
`Accepted`, and `Notes`/`NoteInbox`, the core's inbox pair over them, so a note
reaches a live conversation in process, through a spool, or carried to a later
one.
- `registry()` — every schema the stack registers: `agent.event-envelope` at
`[2, 1]`, `agent.reply-envelope` at `[3, 2]`, and the artifact reference, the
filter, the labels, the note, the planner channel's four records and the
transport plugin protocol's three shapes (`agent.artifact-ref`,
`agent.event-filter`, `agent.labels`, `agent.note`, `agent.planner-surface`,
`agent.queued-reply`, `agent.queued-commands`, `agent.command-outcome`,
`onemessagebus.transport-hello`, `onemessagebus.transport-request`,
`onemessagebus.transport-reply`) at 1, and the five onejudge protocol frames
(`agent.onejudge-frame.respond`, `agent.onejudge-frame.user`,
`agent.onejudge-frame.supervisor`, `agent.onejudge-frame.judge`,
`agent.onejudge-frame.assess`) at 6.
```rust
use onemessagebus_agent::{Emitter, Labels, Phase, Source};
use serde_json::Map;
let emitter = Emitter::new("s-1", Source::Vcs, Box::new(std::io::stdout()))
.with_labels(Labels { run_id: Some("R".into()), ..Labels::default() })
.with_dimensions(Phase::Development.into());
let envelope = emitter.emit("push", Map::new());
assert_eq!(envelope.v, 1);
```
The contract every consumer restates from is
[`docs/contract.md`](https://github.com/nickderobertis/onemessagebus/blob/main/docs/contract.md).