onemessagebus-agent 0.3.0

The agent profile over the onemessagebus core: the envelope, labels, sources, phases and schema registry the agent stack shares.
Documentation

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.
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.