Package Exports
- @femtomc/mu-control-plane
Readme
@femtomc/mu-control-plane
Control-plane command pipeline for messaging ingress, policy/confirmation safety, idempotency, and outbox delivery. The messaging meta-agent runtime lives in @femtomc/mu-agent.
First-platform messaging adapters (v1)
- Slack
- Discord
- Telegram
All three adapters normalize inbound commands into the same control-plane pipeline and preserve correlation across command journal and outbox delivery.
Interaction contract + visual presentation (v1)
Control-plane responses now use a deterministic interaction contract (interaction_contract.ts) and a shared presenter.
Contract fields
speaker:user | meta_agent | mu_system | mu_toolintent:chat | ack | lifecycle | result | errorstatus:info | success | warning | errorstate: normalized lifecycle state (awaiting_confirmation,completed, etc.)summary: concise one-line summarydetails: deterministic key/value details withprimaryvssecondaryimportanceactions: suggested next commands (for example/mu confirm <id>)transition: optionalfrom -> tostate transitionpayload: structured JSON for expandable detail in rich clients
Rendering modes
- Compact: webhook ACK path (summary-first + key details)
- Detailed: deferred outbox delivery (summary + hierarchy + structured payload block)
Outbox metadata stores the structured contract alongside rendered text (interaction_message,
interaction_contract_version, interaction_render_mode) so follow-on channel renderers can build richer,
collapsible UI while preserving deterministic serialization.
Messaging meta-agent + safe CLI triggers
MessagingMetaAgentRuntime (from @femtomc/mu-agent) is a dedicated user-facing runtime that sits outside orchestration execution dispatch. It can translate conversational channel input into an approved command proposal and routes that through the same policy/idempotency/confirmation pipeline.
CLI execution is constrained through an explicit allowlist (MuCliCommandSurface) and a non-shell runner (MuCliRunner).
Meta-agent proposals can bridge readonly status/info queries (status, ready, issue list, issue get, forum read) plus mutating run lifecycle actions (run start, run resume), with run triggers still requiring confirmation and correlated end-to-end via:
meta_session_idmeta_turn_idcli_invocation_idcli_command_kindrun_root_id
Unsafe or ambiguous requests are rejected with explicit reasons (context_missing, context_ambiguous, context_unauthorized, cli_validation_failed, etc.).
iMessage status
iMessage is explicitly de-scoped from first-platform runtime support in v1. Legacy iMessage identity rows are quarantined as channel_deprecated during replay and are not treated as active bindings.