Skip to main content

Module proposal

Module proposal 

Source
Expand description

Agent-proposed commands and actions — the propose tool’s shared model.

An agent that needs the user to run something calls propose; murmur shows it as a chip above the composer. Two families:

  • insert-only (shell, slash): Tab puts the text into an empty composer; the user reviews and sends it. Never sent by a single key.
  • executable (restart): Enter on an empty, idle composer runs it.

vet is the one gate. The runtime calls it inside the tool’s execute (a rejection goes back to the model as a tool error) and murmur calls it on the streamed args (so an arg the runtime would reject is never rendered). It is pure — same input, same verdict on both sides.

It lives here because mur-agent-runtime must not depend on mur-core, and both of them need the type. No I/O.

restart takes no target: it always means “restart the agent that proposed it”, so a proposal aimed at another agent cannot be expressed.

Design: docs/superpowers/specs/2026-09-28-murmur-proposal-chip-design.md.

Structs§

Proposal
A vetted proposal. Only vet builds one from untrusted args.

Enums§

ProposalKind
What a proposal does when the user accepts it.
VetError
Why a proposal was rejected. Display is the tool error the model reads, so every message says what to change.

Constants§

COMMAND_MAX_CHARS
Longest insert-only command accepted, in chars.
KINDS
Allowlist of kind values, in schema order.
KIND_RESTART
KIND_SHELL
Wire values of the kind argument.
KIND_SLASH
LABEL_MAX_CHARS
Longest label accepted, in chars. The chip is one line above the composer.
PROPOSE_TOOL
Canonical tool name. Shared by the runtime executor and the TUI interceptor.

Functions§

vet
Vet raw propose tool args into a Proposal.