Documentation
¶
Overview ¶
Package meetingexec connects approved meeting turns to the existing Rysh executor on a private, in-process-only bus. Nothing is published to pane, history, sharing or audit subscribers on the user's session bus.
Index ¶
- func LiveProviderError(prov provider.AgenticProvider) error
- func New(system *actor.ActorSystem, prov provider.AgenticProvider, readDir string) (meeting.Execute, error)
- func NewSummarizer(system *actor.ActorSystem, prov provider.AgenticProvider) (meeting.Execute, error)
- func NewToolAgent(system *actor.ActorSystem, a ToolAgent) (meeting.Execute, error)
- type ToolAgent
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func LiveProviderError ¶
func LiveProviderError(prov provider.AgenticProvider) error
LiveProviderError says why prov cannot answer in a meeting, or returns nil. Meeting answers are spoken to real people, so a replayed transcript, a recorded session or the mock fallback (a session with no usable provider key) must never reach one. Each case names its own fix: a session started without a provider key used to be told about RYSH_RECORD_DIR/RYSH_REPLAY_DIR, which it never had set.
func New ¶
func New(system *actor.ActorSystem, prov provider.AgenticProvider, readDir string) (meeting.Execute, error)
New deliberately exposes no live parent tool registry, shell, secret access, scope resolver, auto-approval or session memory. Optional reads are confined to an operator-selected directory. Each approved turn gets a fresh executor. This is plain "hey rysh"; attached agents use NewToolAgent (agent.go).
func NewSummarizer ¶
func NewSummarizer(system *actor.ActorSystem, prov provider.AgenticProvider) (meeting.Execute, error)
NewSummarizer is the meeting reporter's LLM (design 045): the session provider on the same isolated in-process bus as New, with no tools at all, so meeting speech summarized into a report can never act. The reporter's prompts carry their own rules; the boundary here only fixes the role.
func NewToolAgent ¶
NewToolAgent returns the meeting executor for a tool-using agent.
Types ¶
type ToolAgent ¶
type ToolAgent struct {
Name string
// Live reports whether the agent may still answer (loaded and active).
Live func() error
// Build returns a new executor with bus id id (unique per turn, so it
// never shares subjects with the live agent). It must auto-approve.
Build func(id string) *sharedagentic.LLMPromptExecutionActor
// NC and Codecs are the session bus the executor publishes steps on.
NC *nats.Conn
Codecs *msg.CodecRegistry
}
ToolAgent is a `##agent`-spawned agent answering meeting turns with its own toolset (founder decision 2026-09-28: "all tools should be available to the agents in the meeting without any approval"). Each turn gets a fresh executor from Build — the same construction as the session's agent, on the session bus — so its tools, MCP servers, integrations and policy are the agent's own. There is no per-action approval; the controls are the speaker allowlist, the kill switch (stop/pause/leave) and the audit log.