agency

package
v0.0.0-...-237f1dd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 2, 2026 License: MIT Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var KokoroVoiceMap = map[string]string{
	"coordinator": "am_adam",
	"architect":   "bm_daniel",
	"developer":   "am_michael",
	"analyst":     "bf_emma",
	"scheduler":   "af_bella",
	"reviewer":    "bm_george",
	"default":     "af_heart",
}

KokoroVoiceMap maps agent role archetypes to Kokoro voice IDs.

Functions

func ActorChannel

func ActorChannel(actorID string) string

func ApprovalChannel

func ApprovalChannel(organizationID string) string

func BulletinChannel

func BulletinChannel(organizationID string) string

BulletinChannel returns the pub/sub channel name for an organization's bulletin.

func GISTScriptPath

func GISTScriptPath(baseDir string) string

GISTScriptPath returns the conventional path to the GIST subprocess script.

func IPCSocketPath

func IPCSocketPath(baseDir, orgID string) string

IPCSocketPath returns the conventional socket path for an organization.

func KokoroProsodyRate

func KokoroProsodyRate(signalKind string) string

KokoroProsodyRate returns the speech rate multiplier for a given signal kind.

func OrganizationChannel

func OrganizationChannel(organizationID string) string

func ParseScheduleInterval

func ParseScheduleInterval(expr string) (time.Duration, error)

ParseScheduleInterval parses a schedule expression and returns its firing interval.

func PlatformTTSCommand

func PlatformTTSCommand(baseDir string) (command string, args []string, available bool)

PlatformTTSCommand returns the best available TTS command for the current platform. Priority: Kokoro Python wrapper > macOS say fallback.

func PublishPerformance

func PublishPerformance(ctx context.Context, bus EventBus, rec PerformanceRecord) error

PublishPerformance serialises a PerformanceRecord into a WakeSignal and publishes it to the organization's bulletin channel.

func RunActorDaemon

func RunActorDaemon(ctx context.Context, cfg ActorDaemonConfig) error

func TTSNotInstalledMsg

func TTSNotInstalledMsg() string

TTSNotInstalledMsg returns the install hint message.

func VoiceIDForRole

func VoiceIDForRole(role string) string

VoiceIDForRole returns the Kokoro voice ID for a given agent role name.

Types

type ActionIntent

type ActionIntent struct {
	TaskType        string   `json:"taskType"`
	Complexity      float64  `json:"complexity"`
	LatencyBudgetMs int64    `json:"latencyBudgetMs"`
	PrivacyLevel    string   `json:"privacyLevel"`
	CostCeilingUsd  float64  `json:"costCeilingUsd"`
	RequiredTools   []string `json:"requiredTools,omitempty"`
}

ActionIntent carries model routing requirements derived from a GISTVerdict.

type ActionProposal

type ActionProposal struct {
	ID             string         `json:"id"`
	ActorID        string         `json:"actorId"`
	OrganizationID string         `json:"organizationId"`
	Type           ActionType     `json:"type"`
	Target         string         `json:"target,omitempty"`
	Payload        map[string]any `json:"payload,omitempty"`
	ObservedAt     int64          `json:"observedAt,omitempty"`
	ProposedAt     int64          `json:"proposedAt"`
}

type ActionType

type ActionType string
const (
	ActionWriteCode       ActionType = "write_code"
	ActionRunTest         ActionType = "run_test"
	ActionPingPeer        ActionType = "ping_peer"
	ActionUpdateTask      ActionType = "update_task"
	ActionRequestReview   ActionType = "request_review"
	ActionBroadcast       ActionType = "broadcast"
	ActionSpawnAgent      ActionType = "spawn_agent"
	ActionPublishArtifact ActionType = "publish_artifact"
	ActionHandoffShift    ActionType = "handoff_shift"
)

type Actor

type Actor interface {
	Identity() AgentIdentity
	Capabilities() CapabilityPack
	Handle(context.Context, ObservationSnapshot, WakeSignal) ([]ActionProposal, error)
}

type ActorDaemonConfig

type ActorDaemonConfig struct {
	BaseDir         string
	SharedWorkplace string
	Redis           *RedisConfig
	Constitution    AgencyConstitution
	SpecPath        string
	// LatticeStore persists GIST lattice state across wake cycles.
	// If nil, lattice state is not persisted (in-memory only).
	LatticeStore LatticeStore
	// RoutingLog persists model routing decisions. Optional.
	RoutingLog RoutingLog
	// ExecutionPolicy constrains model selection. Zero value = permissive.
	ExecutionPolicy ExecutionPolicy
}

type ActorLLMConfig

type ActorLLMConfig struct {
	ModelID   string
	MaxTokens int
	APIKey    string
	BaseURL   string
}

ActorLLMConfig holds configuration for LLM-backed action generation.

func DefaultActorLLMConfig

func DefaultActorLLMConfig() ActorLLMConfig

DefaultActorLLMConfig reads config from environment variables.

type ActorRuntimeSpec

type ActorRuntimeSpec struct {
	Identity        AgentIdentity  `json:"identity"`
	Capabilities    CapabilityPack `json:"capabilities"`
	SharedWorkplace string         `json:"sharedWorkplace,omitempty"`
	OrganizationID  string         `json:"organizationId,omitempty"`
	RegisteredAt    int64          `json:"registeredAt"`
	RuntimeMode     RuntimeMode    `json:"runtimeMode,omitempty"`
	Metadata        map[string]any `json:"metadata,omitempty"`
}

type AgencyConstitution

type AgencyConstitution struct {
	ID             string              `json:"id"`
	Name           string              `json:"name"`
	Description    string              `json:"description,omitempty"`
	OrganizationID string              `json:"organizationId"`
	GovernanceMode GovernanceMode      `json:"governanceMode"`
	Roles          map[string]RoleSpec `json:"roles"`
	Metadata       map[string]string   `json:"metadata,omitempty"`
}

func ConstitutionFromConfig

func ConstitutionFromConfig(cfg *projectconfig.Config, preferred string) (AgencyConstitution, error)

type AgentDaemon

type AgentDaemon struct {
	// contains filtered or unexported fields
}

func NewAgentDaemon

func NewAgentDaemon(cfg RuntimeConfig, constitution AgencyConstitution, actor Actor) *AgentDaemon

func (*AgentDaemon) Run

func (d *AgentDaemon) Run(ctx context.Context) error

type AgentIdentity

type AgentIdentity struct {
	ID             string            `json:"id"`
	Name           string            `json:"name"`
	Role           string            `json:"role"`
	OrganizationID string            `json:"organizationId"`
	ParentID       string            `json:"parentId,omitempty"`
	AvatarPrompt   string            `json:"avatarPrompt,omitempty"`
	Metadata       map[string]string `json:"metadata,omitempty"`
}

type AgentSchedule

type AgentSchedule struct {
	ID                string            `json:"id"`
	ActorID           string            `json:"actorId"`
	Expression        string            `json:"expression"`
	Timezone          string            `json:"timezone,omitempty"`
	Enabled           bool              `json:"enabled"`
	DefaultSignalKind SignalKind        `json:"defaultSignalKind"`
	Metadata          map[string]string `json:"metadata,omitempty"`
}

type AnthropicAdapter

type AnthropicAdapter struct {
	// contains filtered or unexported fields
}

func NewAnthropicAdapter

func NewAnthropicAdapter() *AnthropicAdapter

func (*AnthropicAdapter) Available

func (a *AnthropicAdapter) Available(_ context.Context) bool

func (*AnthropicAdapter) Execute

func (*AnthropicAdapter) ModelID

func (a *AnthropicAdapter) ModelID() string

func (*AnthropicAdapter) Name

func (a *AnthropicAdapter) Name() string

type Bootstrap

type Bootstrap struct {
	Config       Config
	Constitution AgencyConstitution
}

func LoadBootstrap

func LoadBootstrap(workingDir string, constitutionOverride string, runtimeMode RuntimeMode, actorBinary string) (Bootstrap, error)

type CapabilityPack

type CapabilityPack struct {
	Skills            []string          `json:"skills,omitempty"`
	Tools             []string          `json:"tools,omitempty"`
	ActionConstraints []ActionType      `json:"actionConstraints,omitempty"`
	ContextScopes     []string          `json:"contextScopes,omitempty"`
	Metadata          map[string]string `json:"metadata,omitempty"`
}

type CommitCertificate

type CommitCertificate struct {
	EntryID     string            `json:"entryId"`
	Sequence    int64             `json:"sequence"`
	Hash        string            `json:"hash"`
	CommittedAt int64             `json:"committedAt"`
	QuorumSize  int               `json:"quorumSize"`
	Status      LedgerEntryStatus `json:"status,omitempty"`
	Approvals   int               `json:"approvals,omitempty"`
	Rejections  int               `json:"rejections,omitempty"`
}

type Config

type Config struct {
	BaseDir         string
	SharedWorkplace string
	WorkingDir      string
	RuntimeMode     RuntimeMode
	ActorBinaryPath string
	Redis           *RedisConfig
	Voice           *VoiceGatewayConfig
}

type ConsensusRequirement

type ConsensusRequirement struct {
	Strategy          ConsensusStrategy `json:"strategy,omitempty"`
	QuorumKey         string            `json:"quorumKey,omitempty"`
	RequiredApprovals int               `json:"requiredApprovals,omitempty"`
	EligibleVoters    []string          `json:"eligibleVoters,omitempty"`
	AutoFinalize      bool              `json:"autoFinalize,omitempty"`
}

type ConsensusStrategy

type ConsensusStrategy string
const (
	ConsensusStrategyDirect ConsensusStrategy = "direct"
	ConsensusStrategyQuorum ConsensusStrategy = "quorum"
)

type ConsensusVote

type ConsensusVote struct {
	VoterID  string `json:"voterId"`
	EntryID  string `json:"entryId"`
	Approved bool   `json:"approved"`
	Reason   string `json:"reason,omitempty"`
	VotedAt  int64  `json:"votedAt"`
}

type ContextSnapshot

type ContextSnapshot struct {
	OrganizationID string              `json:"organizationId"`
	LedgerSequence int64               `json:"ledgerSequence"`
	Actors         []AgentIdentity     `json:"actors,omitempty"`
	Publications   []PublicationRecord `json:"publications,omitempty"`
	LastSignal     *WakeSignal         `json:"lastSignal,omitempty"`
	VoiceRooms     []VoiceRoomState    `json:"voiceRooms,omitempty"`
	LastVoiceEvent *VoiceEvent         `json:"lastVoiceEvent,omitempty"`
	OpenSchedules  []AgentSchedule     `json:"openSchedules,omitempty"`
	UpdatedAt      int64               `json:"updatedAt"`
	Metadata       map[string]string   `json:"metadata,omitempty"`
}

type CorrectionSignal

type CorrectionSignal struct {
	Code          string `json:"code"`
	Message       string `json:"message"`
	TargetActorID string `json:"targetActorId,omitempty"`
	CreatedAt     int64  `json:"createdAt"`
}

type CredentialBroker

type CredentialBroker struct {
	// contains filtered or unexported fields
}

CredentialBroker loads and validates provider credentials from environment.

func NewCredentialBroker

func NewCredentialBroker() *CredentialBroker

NewCredentialBroker probes the environment for known provider API keys.

func (*CredentialBroker) Handle

func (b *CredentialBroker) Handle(provider string) (CredentialHandle, bool)

Handle returns the credential handle for the given provider name.

func (*CredentialBroker) ValidHandles

func (b *CredentialBroker) ValidHandles() []CredentialHandle

ValidHandles returns only handles whose status is "valid".

type CredentialHandle

type CredentialHandle struct {
	Provider string `json:"provider"`
	KeyRef   string `json:"keyRef"`  // env var name
	Status   string `json:"status"`  // "valid", "missing", "expired"
	ModelID  string `json:"modelId"` // default model for this credential
}

CredentialHandle represents a validated provider credential.

type ElasticBudget

type ElasticBudget struct {
	RecallThreshold float64 `json:"recallThreshold"`
	MaxTTLMs        int64   `json:"maxTtlMs"`
	StretchFactor   float64 `json:"stretchFactor,omitempty"`
}

ElasticBudget controls how much GIST elastic stretch is allowed per wake cycle.

func DefaultGISTBudget

func DefaultGISTBudget() ElasticBudget

DefaultGISTBudget reads elastic budget settings from environment variables.

type EventBus

type EventBus interface {
	Publish(context.Context, WakeSignal) error
	Subscribe(context.Context, string) (<-chan WakeSignal, error)
	Close(context.Context) error
}

type ExecProcessSpawner

type ExecProcessSpawner struct {
	BinaryPath       string
	WorkingDirectory string
	BaseDir          string
	SharedWorkplace  string
	Redis            *RedisConfig
	ConstitutionName string
}

func (*ExecProcessSpawner) Spawn

type ExecutionPolicy

type ExecutionPolicy struct {
	AllowedProviders []string `json:"allowedProviders,omitempty"`
	PreferLocal      bool     `json:"preferLocal"`
	MaxCostUsd       float64  `json:"maxCostUsd,omitempty"`
	MaxLatencyMs     int64    `json:"maxLatencyMs,omitempty"`
	PrivacyLevel     string   `json:"privacyLevel,omitempty"` // "local", "cloud", "any"
}

ExecutionPolicy constrains which providers the ModelRouter may select.

type GISTAgentCore

type GISTAgentCore struct {
	// contains filtered or unexported fields
}

GISTAgentCore manages the per-agent GIST Python subprocess. It provides causal compression of observations into GISTVerdict values that are used to prefix LLM calls.

If the subprocess is unavailable the core degrades gracefully, returning a low-confidence verdict so the actor can still act.

func NewGISTAgentCore

func NewGISTAgentCore(agentID, scriptPath string, budget ElasticBudget) *GISTAgentCore

NewGISTAgentCore creates a new core for the given agent. scriptPath should point to the gist Python entry-point (e.g. scripts/gist_subprocess.py). If the script does not exist the core will return degraded verdicts on every call.

func (*GISTAgentCore) BuildAtoms

func (g *GISTAgentCore) BuildAtoms(obs ObservationSnapshot, signal WakeSignal) []gistAtom

BuildAtoms converts an observation snapshot and wake signal into GIST atoms.

func (*GISTAgentCore) Compress

func (g *GISTAgentCore) Compress(ctx context.Context, atoms []gistAtom) (GISTVerdict, string, error)

Compress sends atoms to the GIST Python subprocess and returns a verdict. Degrades gracefully if the subprocess is unavailable or errors.

func (*GISTAgentCore) ElasticStretch

func (g *GISTAgentCore) ElasticStretch(verdict GISTVerdict, lastWakeMs int64) GISTVerdict

ElasticStretch adjusts verdict confidence based on the elastic budget TTL. If the previous lattice is fresh enough, it boosts confidence; otherwise it returns the verdict unchanged.

func (*GISTAgentCore) LatticeJSON

func (g *GISTAgentCore) LatticeJSON() string

LatticeJSON returns the current lattice JSON (to be persisted to DB after wake).

func (*GISTAgentCore) SetLattice

func (g *GISTAgentCore) SetLattice(latticeJSON string)

SetLattice updates the persisted lattice state (loaded from DB before each wake).

type GISTVerdict

type GISTVerdict struct {
	Verdict         string   `json:"verdict"`
	Confidence      float64  `json:"confidence"`
	CausalChain     []string `json:"causalChain,omitempty"`
	OpenQuestions   []string `json:"openQuestions,omitempty"`
	ExecutionIntent string   `json:"executionIntent"`
}

GISTVerdict is the output of the GIST causal compression step.

type GeminiAdapter

type GeminiAdapter struct {
	// contains filtered or unexported fields
}

func NewGeminiAdapter

func NewGeminiAdapter() *GeminiAdapter

func (*GeminiAdapter) Available

func (g *GeminiAdapter) Available(_ context.Context) bool

func (*GeminiAdapter) Execute

func (*GeminiAdapter) ModelID

func (g *GeminiAdapter) ModelID() string

func (*GeminiAdapter) Name

func (g *GeminiAdapter) Name() string

type GenesisManufacturingInput

type GenesisManufacturingInput struct {
	Intent           string
	Domain           string
	TimeHorizon      string
	WorkingStyle     string
	Governance       string
	GoalShape        string
	ConstitutionName string
	Constitution     config.AgencyConstitution
	Template         config.TeamTemplate
	RequestedRoles   []string
	DefaultCadence   string
	Timezone         string
	SharedWorkplace  string
	RedisAddress     string
	LedgerPath       string
}

type GenesisPlan

type GenesisPlan struct {
	Intent               OrgIntent           `json:"intent"`
	Summary              string              `json:"summary"`
	ConstitutionName     string              `json:"constitutionName"`
	Blueprint            string              `json:"blueprint,omitempty"`
	TeamTemplate         string              `json:"teamTemplate,omitempty"`
	Topology             string              `json:"topology,omitempty"`
	RoleBundles          []GenesisRoleBundle `json:"roleBundles,omitempty"`
	SocialThread         []string            `json:"socialThread,omitempty"`
	ManufacturingSignals []string            `json:"manufacturingSignals,omitempty"`
}

func ManufactureGenesis

func ManufactureGenesis(input GenesisManufacturingInput) GenesisPlan

type GenesisRoleBundle

type GenesisRoleBundle struct {
	RoleName            string            `json:"roleName"`
	DisplayName         string            `json:"displayName"`
	Profile             string            `json:"profile,omitempty"`
	ReportsTo           string            `json:"reportsTo,omitempty"`
	Archetype           string            `json:"archetype,omitempty"`
	Mission             string            `json:"mission"`
	WorkingPosture      string            `json:"workingPosture,omitempty"`
	Personality         string            `json:"personality,omitempty"`
	OfficePresence      string            `json:"officePresence,omitempty"`
	AvatarPrompt        string            `json:"avatarPrompt,omitempty"`
	SystemPrompt        string            `json:"systemPrompt,omitempty"`
	Skills              []string          `json:"skills,omitempty"`
	Tools               []string          `json:"tools,omitempty"`
	AllowedActions      []ActionType      `json:"allowedActions,omitempty"`
	ObservationScopes   []string          `json:"observationScopes,omitempty"`
	PeerRouting         map[string]string `json:"peerRouting,omitempty"`
	CapabilityPack      CapabilityPack    `json:"capabilityPack"`
	RecommendedSchedule AgentSchedule     `json:"recommendedSchedule"`
	SpawnOrder          int               `json:"spawnOrder"`
	CanSpawnAgents      bool              `json:"canSpawnAgents"`
}

type GovernanceMode

type GovernanceMode string
const (
	GovernanceHierarchical GovernanceMode = "hierarchical"
	GovernancePeer         GovernanceMode = "peer"
	GovernanceFederated    GovernanceMode = "federated"
	GovernanceFlat         GovernanceMode = "flat"
	GovernanceHybrid       GovernanceMode = "hybrid"
)

type IPCApprovalPayload

type IPCApprovalPayload struct {
	ProposalID string `json:"proposalId"`
	ActorID    string `json:"actorId"`
	ActionType string `json:"actionType"`
	Target     string `json:"target"`
	CreatedAt  int64  `json:"createdAt"`
}

IPCApprovalPayload carries a pending action proposal.

type IPCBroadcastPayload

type IPCBroadcastPayload struct {
	ActorID   string `json:"actorId"`
	Message   string `json:"message"`
	CreatedAt int64  `json:"createdAt"`
}

IPCBroadcastPayload carries a live agent message.

type IPCBulletinPayload

type IPCBulletinPayload struct {
	ActorID   string  `json:"actorId"`
	Directive string  `json:"directive"`
	Output    string  `json:"output"`
	Score     float64 `json:"score"`
	Provider  string  `json:"provider"`
	ModelID   string  `json:"modelId"`
	CreatedAt int64   `json:"createdAt"`
}

IPCBulletinPayload carries a performance record.

type IPCHandshake

type IPCHandshake struct {
	OrgID      string `json:"orgId"`
	ClientType string `json:"clientType"` // "desktop", "cli", "web"
}

IPCHandshake is the first message a client sends after connecting.

type IPCMessage

type IPCMessage struct {
	Type    IPCMessageType  `json:"type"`
	Payload json.RawMessage `json:"payload,omitempty"`
}

IPCMessage is the newline-delimited JSON envelope exchanged over the socket.

type IPCMessageType

type IPCMessageType string

IPCMessageType identifies the kind of event sent over the socket.

const (
	IPCTypeBroadcast IPCMessageType = "broadcast"
	IPCTypeApproval  IPCMessageType = "approval"
	IPCTypeBulletin  IPCMessageType = "bulletin"
	IPCTypeVote      IPCMessageType = "vote"
	IPCTypeHandshake IPCMessageType = "handshake"
	IPCTypePing      IPCMessageType = "ping"
	IPCTypePong      IPCMessageType = "pong"
)

type IPCServer

type IPCServer struct {
	// contains filtered or unexported fields
}

IPCServer listens on a Unix socket and fans out office events to connected clients. Clients subscribe by sending a handshake; they can send votes back.

func NewIPCServer

func NewIPCServer(socketPath string, bus EventBus) *IPCServer

NewIPCServer creates an IPC server that will listen on socketPath.

func (*IPCServer) Broadcast

func (s *IPCServer) Broadcast(orgID string, msg IPCMessage)

Broadcast sends a message directly to all connected clients for an org. Used for server-initiated notifications (e.g. office boot/stop).

func (*IPCServer) Serve

func (s *IPCServer) Serve(ctx context.Context) error

Serve starts accepting connections. Blocks until ctx is cancelled.

type IPCVote

type IPCVote struct {
	ProposalID string `json:"proposalId"`
	Approved   bool   `json:"approved"`
}

IPCVote is sent by a client to approve or reject a pending proposal.

type InferenceRequest

type InferenceRequest struct {
	System      string       `json:"system"`
	UserMessage string       `json:"userMessage"`
	Intent      ActionIntent `json:"intent"`
	AgentID     string       `json:"agentId"`
	OrgID       string       `json:"orgId"`
}

InferenceRequest is the input to the ModelRouter.

type InferenceResult

type InferenceResult struct {
	Text       string `json:"text"`
	Provider   string `json:"provider"`
	ModelID    string `json:"modelId"`
	LatencyMs  int64  `json:"latencyMs"`
	TokensUsed int    `json:"tokensUsed,omitempty"`
}

InferenceResult is the output from a ProviderAdapter.

type Kernel

type Kernel struct{}

func NewKernel

func NewKernel() *Kernel

func (*Kernel) ValidateAction

func (k *Kernel) ValidateAction(constitution AgencyConstitution, actor AgentIdentity, proposal ActionProposal) KernelDecision

func (*Kernel) ValidateObservation

func (k *Kernel) ValidateObservation(constitution AgencyConstitution, observation ObservationSnapshot) KernelDecision

type KernelDecision

type KernelDecision struct {
	Accepted      bool               `json:"accepted"`
	Reason        string             `json:"reason,omitempty"`
	Corrections   []CorrectionSignal `json:"corrections,omitempty"`
	ValidatedAt   int64              `json:"validatedAt"`
	CommitAllowed bool               `json:"commitAllowed"`
}

type LLMActorProposer

type LLMActorProposer struct {
	// contains filtered or unexported fields
}

LLMActorProposer generates action proposals via LLM for a given observation.

func NewLLMActorProposer

func NewLLMActorProposer(cfg ActorLLMConfig) *LLMActorProposer

NewLLMActorProposer creates a new proposer.

func (*LLMActorProposer) BuildSystemPrompt

func (p *LLMActorProposer) BuildSystemPrompt(obs ObservationSnapshot, role RoleSpec) string

BuildSystemPrompt returns the system prompt for the given observation and role.

func (*LLMActorProposer) BuildUserMessage

func (p *LLMActorProposer) BuildUserMessage(obs ObservationSnapshot, signal WakeSignal) string

BuildUserMessage returns the user message for the given observation and signal.

func (*LLMActorProposer) Propose

Propose generates action proposals for the given observation and signal. If the API key is not configured, returns a safe default proposal.

func (*LLMActorProposer) SetGISTContext

func (p *LLMActorProposer) SetGISTContext(verdict GISTVerdict)

SetGISTContext attaches a GIST verdict whose Verdict string is prepended to the LLM system prompt and whose ExecutionIntent is stored on each proposal.

type LatticeStore

type LatticeStore interface {
	GetLattice(ctx context.Context, agentID string) (string, error)
	SetLattice(ctx context.Context, agentID, latticeJSON string) error
}

LatticeStore is the persistence interface for per-agent GIST lattice state. Implementations may be DB-backed or no-op.

type LedgerEntry

type LedgerEntry struct {
	Sequence       int64                 `json:"sequence"`
	ID             string                `json:"id"`
	OrganizationID string                `json:"organizationId"`
	Kind           LedgerEntryKind       `json:"kind"`
	Status         LedgerEntryStatus     `json:"status,omitempty"`
	ActorID        string                `json:"actorId,omitempty"`
	Action         *ActionProposal       `json:"action,omitempty"`
	Decision       *KernelDecision       `json:"decision,omitempty"`
	Snapshot       *ContextSnapshot      `json:"snapshot,omitempty"`
	Signal         *WakeSignal           `json:"signal,omitempty"`
	Publication    *PublicationRecord    `json:"publication,omitempty"`
	Voice          *VoiceEvent           `json:"voice,omitempty"`
	Consensus      *ConsensusRequirement `json:"consensus,omitempty"`
	Quorum         *QuorumState          `json:"quorum,omitempty"`
	Certificate    *CommitCertificate    `json:"certificate,omitempty"`
	Votes          []ConsensusVote       `json:"votes,omitempty"`
	ProposedAt     int64                 `json:"proposedAt,omitempty"`
	CommittedAt    int64                 `json:"committedAt"`
	FinalizedAt    int64                 `json:"finalizedAt,omitempty"`
	RejectedAt     int64                 `json:"rejectedAt,omitempty"`
}

type LedgerEntryKind

type LedgerEntryKind string
const (
	LedgerEntryAction      LedgerEntryKind = "action"
	LedgerEntrySignal      LedgerEntryKind = "signal"
	LedgerEntrySnapshot    LedgerEntryKind = "snapshot"
	LedgerEntrySchedule    LedgerEntryKind = "schedule"
	LedgerEntryPublication LedgerEntryKind = "publication"
	LedgerEntryVoice       LedgerEntryKind = "voice"
)

type LedgerEntryStatus

type LedgerEntryStatus string
const (
	LedgerEntryStatusProposed  LedgerEntryStatus = "proposed"
	LedgerEntryStatusPending   LedgerEntryStatus = "pending"
	LedgerEntryStatusFinalized LedgerEntryStatus = "finalized"
	LedgerEntryStatusRejected  LedgerEntryStatus = "rejected"
)

type LedgerService

type LedgerService struct {
	// contains filtered or unexported fields
}

func NewLedgerService

func NewLedgerService(baseDir string) (*LedgerService, error)

func (*LedgerService) Append

func (*LedgerService) AppendSchedule

func (l *LedgerService) AppendSchedule(ctx context.Context, schedule AgentSchedule, signal WakeSignal) (CommitCertificate, error)

func (*LedgerService) AppendSignal

func (l *LedgerService) AppendSignal(ctx context.Context, signal WakeSignal) (CommitCertificate, error)

func (*LedgerService) AppendSnapshot

func (l *LedgerService) AppendSnapshot(ctx context.Context, snapshot ContextSnapshot) (CommitCertificate, error)

func (*LedgerService) AppendVoiceEvent

func (l *LedgerService) AppendVoiceEvent(ctx context.Context, event VoiceEvent) (CommitCertificate, error)

func (*LedgerService) Finalize

func (l *LedgerService) Finalize(ctx context.Context, entryID string) (CommitCertificate, error)

func (*LedgerService) LatestSnapshot

func (l *LedgerService) LatestSnapshot(ctx context.Context, organizationID string) (*ContextSnapshot, error)

func (*LedgerService) Pending

func (l *LedgerService) Pending(ctx context.Context, organizationID string) ([]LedgerEntry, error)

func (*LedgerService) Propose

func (l *LedgerService) Propose(ctx context.Context, entry LedgerEntry) (LedgerEntry, error)

func (*LedgerService) Replay

func (l *LedgerService) Replay(ctx context.Context) ([]LedgerEntry, error)

func (*LedgerService) Vote

func (l *LedgerService) Vote(ctx context.Context, entryID string, vote ConsensusVote) (QuorumState, error)

type MemoryEventBus

type MemoryEventBus struct {
	// contains filtered or unexported fields
}

func NewMemoryEventBus

func NewMemoryEventBus() *MemoryEventBus

func (*MemoryEventBus) Close

func (b *MemoryEventBus) Close(ctx context.Context) error

func (*MemoryEventBus) Publish

func (b *MemoryEventBus) Publish(ctx context.Context, signal WakeSignal) error

func (*MemoryEventBus) Subscribe

func (b *MemoryEventBus) Subscribe(ctx context.Context, channel string) (<-chan WakeSignal, error)

type ModelRouter

type ModelRouter struct {
	// contains filtered or unexported fields
}

ModelRouter performs deterministic provider selection. Hard gates are applied in order: capability → auth → privacy → tools → budget. Remaining candidates are soft-scored and the highest scorer is returned.

func NewModelRouter

func NewModelRouter(adapters []ProviderAdapter, broker *CredentialBroker, policy ExecutionPolicy) *ModelRouter

NewModelRouter creates a router with the given adapters and policy.

func (*ModelRouter) Route

Route selects the best available adapter for the inference request. Returns an error only if no adapter passes all hard gates.

type NestedScheduler

type NestedScheduler struct {
	// contains filtered or unexported fields
}

NestedScheduler wraps Scheduler to support a tree of schedule nodes. Each node may carry a prompt_injection directive that is embedded in the fired WakeSignal payload and consumed by the actor daemon as a high-weight GIST directive atom.

func NewNestedScheduler

func NewNestedScheduler(bus EventBus) *NestedScheduler

NewNestedScheduler creates a NestedScheduler backed by the given event bus.

func (*NestedScheduler) Nodes

func (n *NestedScheduler) Nodes() []ScheduleNode

Nodes returns a snapshot of all registered schedule nodes.

func (*NestedScheduler) RegisterNode

func (n *NestedScheduler) RegisterNode(ctx context.Context, node ScheduleNode) error

RegisterNode adds a node to the schedule tree and starts its cron ticker. The node's PromptInjection (if set) is embedded in every WakeSignal fired.

func (*NestedScheduler) SetPublisher

func (n *NestedScheduler) SetPublisher(fn func(context.Context, AgentSchedule, WakeSignal) error)

SetPublisher delegates to the inner Scheduler's SetPublisher.

func (*NestedScheduler) Stop

func (n *NestedScheduler) Stop()

Stop cancels all running schedule tickers.

type ObservationSnapshot

type ObservationSnapshot struct {
	OrganizationID string            `json:"organizationId"`
	Actor          AgentIdentity     `json:"actor"`
	LedgerSequence int64             `json:"ledgerSequence"`
	PendingTasks   []TaskSummary     `json:"pendingTasks,omitempty"`
	RecentSignals  []WakeSignal      `json:"recentSignals,omitempty"`
	Resources      ResourceState     `json:"resources"`
	CurrentTime    time.Time         `json:"currentTime"`
	Metadata       map[string]string `json:"metadata,omitempty"`
}

type OfficeStatus

type OfficeStatus struct {
	BaseDir         string              `json:"baseDir"`
	SharedWorkplace string              `json:"sharedWorkplace"`
	RuntimeMode     RuntimeMode         `json:"runtimeMode"`
	OrganizationID  string              `json:"organizationId"`
	LedgerSequence  int64               `json:"ledgerSequence"`
	ActorCount      int                 `json:"actorCount"`
	ScheduleCount   int                 `json:"scheduleCount"`
	Running         bool                `json:"running"`
	BusBackend      string              `json:"busBackend"`
	LastSignal      *WakeSignal         `json:"lastSignal,omitempty"`
	Actors          []AgentIdentity     `json:"actors,omitempty"`
	Schedules       []AgentSchedule     `json:"schedules,omitempty"`
	Constitution    AgencyConstitution  `json:"constitution"`
	Voice           *VoiceGatewayStatus `json:"voice,omitempty"`
}

type OllamaAdapter

type OllamaAdapter struct {
	// contains filtered or unexported fields
}

func NewOllamaAdapter

func NewOllamaAdapter() *OllamaAdapter

func (*OllamaAdapter) Available

func (o *OllamaAdapter) Available(ctx context.Context) bool

func (*OllamaAdapter) Execute

func (*OllamaAdapter) ModelID

func (o *OllamaAdapter) ModelID() string

func (*OllamaAdapter) Name

func (o *OllamaAdapter) Name() string

type OpenAIAdapter

type OpenAIAdapter struct {
	// contains filtered or unexported fields
}

func NewOpenAIAdapter

func NewOpenAIAdapter() *OpenAIAdapter

func (*OpenAIAdapter) Available

func (o *OpenAIAdapter) Available(_ context.Context) bool

func (*OpenAIAdapter) Execute

func (*OpenAIAdapter) ModelID

func (o *OpenAIAdapter) ModelID() string

func (*OpenAIAdapter) Name

func (o *OpenAIAdapter) Name() string

type OrgIntent

type OrgIntent struct {
	ID           string            `json:"id"`
	Domain       string            `json:"domain"`
	TimeHorizon  string            `json:"timeHorizon"`
	WorkingStyle string            `json:"workingStyle"`
	GoalShape    string            `json:"goalShape"`
	Governance   GovernanceMode    `json:"governance"`
	Summary      string            `json:"summary"`
	Requirements []string          `json:"requirements,omitempty"`
	Metadata     map[string]string `json:"metadata,omitempty"`
}

type PerformanceRecord

type PerformanceRecord struct {
	ID             string  `json:"id"`
	OrganizationID string  `json:"organizationId"`
	ActorID        string  `json:"actorId"`
	Directive      string  `json:"directive"` // prompt_injection or signal summary
	Output         string  `json:"output"`    // LLM inference result text
	Score          float64 `json:"score"`     // GIST confidence as proxy score
	SignalID       string  `json:"signalId"`
	Provider       string  `json:"provider"`
	ModelID        string  `json:"modelId"`
	CreatedAt      int64   `json:"createdAt"`
}

PerformanceRecord captures a single directive→output→score cycle for an actor. Published to the bulletin channel so the TUI can display the timeline.

type ProcessHandle

type ProcessHandle interface {
	PID() int
	Wait() error
	Stop(context.Context) error
}

type ProcessSpawner

type ProcessSpawner interface {
	Spawn(context.Context, ActorRuntimeSpec) (ProcessHandle, error)
}

type ProjectionDaemon

type ProjectionDaemon struct {
	// contains filtered or unexported fields
}

func NewProjectionDaemon

func NewProjectionDaemon(ledger *LedgerService, organizationID, outputPath string, interval time.Duration) *ProjectionDaemon

func (*ProjectionDaemon) Run

func (d *ProjectionDaemon) Run(ctx context.Context) error

type ProviderAdapter

type ProviderAdapter interface {
	// Name returns the provider identifier (e.g. "anthropic", "ollama").
	Name() string
	// ModelID returns the model this adapter will use.
	ModelID() string
	// Available returns true if the provider is reachable and credentials are valid.
	Available(ctx context.Context) bool
	// Execute runs a single inference and returns the result.
	Execute(ctx context.Context, req InferenceRequest) (InferenceResult, error)
}

ProviderAdapter is the interface all LLM provider adapters must implement.

type PublicationRecord

type PublicationRecord struct {
	ID           string   `json:"id"`
	ActorID      string   `json:"actorId"`
	Target       string   `json:"target"`
	Status       string   `json:"status"`
	Summary      string   `json:"summary,omitempty"`
	ArtifactRefs []string `json:"artifactRefs,omitempty"`
	CreatedAt    int64    `json:"createdAt"`
}

type QuorumState

type QuorumState struct {
	QuorumKey         string   `json:"quorumKey,omitempty"`
	RequiredApprovals int      `json:"requiredApprovals"`
	EligibleVoters    []string `json:"eligibleVoters,omitempty"`
	Approvals         int      `json:"approvals"`
	Rejections        int      `json:"rejections"`
	MissingApprovals  int      `json:"missingApprovals,omitempty"`
	LastVoteAt        int64    `json:"lastVoteAt,omitempty"`
	Finalizable       bool     `json:"finalizable"`
	Finalized         bool     `json:"finalized"`
	Rejected          bool     `json:"rejected"`
}

type RedisConfig

type RedisConfig struct {
	Addr        string
	Password    string
	DB          int
	DialTimeout time.Duration
}

type RedisEventBus

type RedisEventBus struct {
	// contains filtered or unexported fields
}

func NewRedisEventBus

func NewRedisEventBus(cfg RedisConfig) *RedisEventBus

func (*RedisEventBus) Close

func (b *RedisEventBus) Close(ctx context.Context) error

func (*RedisEventBus) Publish

func (b *RedisEventBus) Publish(ctx context.Context, signal WakeSignal) error

func (*RedisEventBus) Subscribe

func (b *RedisEventBus) Subscribe(ctx context.Context, channel string) (<-chan WakeSignal, error)

type ResourceState

type ResourceState struct {
	SharedWorkplace string            `json:"sharedWorkplace"`
	AvailableTools  []string          `json:"availableTools,omitempty"`
	Metadata        map[string]string `json:"metadata,omitempty"`
}

type RoleSpec

type RoleSpec struct {
	Name              string            `json:"name"`
	Mission           string            `json:"mission"`
	Personality       string            `json:"personality,omitempty"`
	WorkingPosture    string            `json:"workingPosture,omitempty"`
	SystemPrompt      string            `json:"systemPrompt,omitempty"`
	AllowedActions    []ActionType      `json:"allowedActions,omitempty"`
	ObservationScopes []string          `json:"observationScopes,omitempty"`
	ToolBindings      []string          `json:"toolBindings,omitempty"`
	PeerRouting       map[string]string `json:"peerRouting,omitempty"`
	CanSpawnAgents    bool              `json:"canSpawnAgents"`
}

type RoutingDecision

type RoutingDecision struct {
	SelectedProvider string
	SelectedModel    string
	GateReason       string // empty = passed all gates
	RejectedOrder    []string
	ScoredAt         int64
}

RoutingDecision records why a provider was selected or rejected.

type RoutingLog

type RoutingLog interface {
	LogDecision(ctx context.Context, agentID, orgID string, result InferenceResult, decision RoutingDecision, intent ActionIntent) error
}

RoutingLog persists model routing decisions for audit. If nil, routing decisions are only logged to stderr.

type RuntimeConfig

type RuntimeConfig struct {
	BaseDir         string
	SharedWorkplace string
	Ledger          *LedgerService
	Bus             EventBus
	Kernel          *Kernel
	Mode            RuntimeMode
	Spawner         ProcessSpawner
}

type RuntimeManager

type RuntimeManager struct {
	// contains filtered or unexported fields
}

func NewRuntimeManager

func NewRuntimeManager(cfg RuntimeConfig) *RuntimeManager

func (*RuntimeManager) Actors

func (r *RuntimeManager) Actors() []AgentIdentity

func (*RuntimeManager) Register

func (r *RuntimeManager) Register(ctx context.Context, actor Actor) error

func (*RuntimeManager) RegisterSpec

func (r *RuntimeManager) RegisterSpec(ctx context.Context, spec ActorRuntimeSpec) error

func (*RuntimeManager) Running

func (r *RuntimeManager) Running() bool

func (*RuntimeManager) SetConstitution

func (r *RuntimeManager) SetConstitution(constitution AgencyConstitution)

func (*RuntimeManager) Specs

func (r *RuntimeManager) Specs() []ActorRuntimeSpec

func (*RuntimeManager) Start

func (r *RuntimeManager) Start(ctx context.Context) error

func (*RuntimeManager) Stop

func (r *RuntimeManager) Stop()

type RuntimeMode

type RuntimeMode string
const (
	RuntimeModeEmbedded   RuntimeMode = "embedded"
	RuntimeModeDaemonized RuntimeMode = "daemonized"
)

type ScheduleLayerConfig

type ScheduleLayerConfig struct {
	LayerDepth             int    `json:"layerDepth"`
	MaxNodes               int    `json:"maxNodes"`
	DefaultExpression      string `json:"defaultExpression"`
	InheritParentInjection bool   `json:"inheritParentInjection"`
}

ScheduleLayerConfig configures defaults for a depth level in the schedule tree.

type ScheduleNode

type ScheduleNode struct {
	ID              string            `json:"id"`
	OrganizationID  string            `json:"organizationId"`
	ActorID         string            `json:"actorId"`
	ParentID        string            `json:"parentId,omitempty"`
	Expression      string            `json:"expression"`
	PromptInjection string            `json:"promptInjection,omitempty"`
	Layer           int               `json:"layer"`
	Enabled         bool              `json:"enabled"`
	Metadata        map[string]string `json:"metadata,omitempty"`
	CreatedAt       int64             `json:"createdAt"`
	UpdatedAt       int64             `json:"updatedAt"`
}

ScheduleNode is a single node in the nested temporal schedule tree. Each node can carry a prompt_injection directive that is added as a high-weight GIST atom when the schedule fires.

type Scheduler

type Scheduler struct {
	// contains filtered or unexported fields
}

func NewScheduler

func NewScheduler(bus EventBus) *Scheduler

func (*Scheduler) Register

func (s *Scheduler) Register(ctx context.Context, schedule AgentSchedule, base WakeSignal) error

func (*Scheduler) Schedules

func (s *Scheduler) Schedules() []AgentSchedule

func (*Scheduler) SetPublisher

func (s *Scheduler) SetPublisher(fn func(context.Context, AgentSchedule, WakeSignal) error)

func (*Scheduler) Stop

func (s *Scheduler) Stop()

type Service

type Service struct {
	Ledger    *LedgerService
	Bus       EventBus
	Kernel    *Kernel
	Scheduler *Scheduler
	Runtime   *RuntimeManager
	Voice     *VoiceGateway
	// contains filtered or unexported fields
}

func NewService

func NewService(ctx context.Context, cfg Config) (*Service, error)

func (*Service) PublishSignal

func (s *Service) PublishSignal(ctx context.Context, signal WakeSignal) error

func (*Service) RegisterActor

func (s *Service) RegisterActor(ctx context.Context, actor Actor) error

func (*Service) RegisterSchedule

func (s *Service) RegisterSchedule(ctx context.Context, schedule AgentSchedule) error

func (*Service) Shutdown

func (s *Service) Shutdown(ctx context.Context) error

func (*Service) Snapshot

func (s *Service) Snapshot(ctx context.Context, organizationID string) (*ContextSnapshot, error)

func (*Service) StartCoordinator

func (s *Service) StartCoordinator(ctx context.Context, constitution AgencyConstitution) error

func (*Service) StartOffice

func (s *Service) StartOffice(ctx context.Context, constitution AgencyConstitution) error

func (*Service) StartRuntime

func (s *Service) StartRuntime(ctx context.Context, constitution AgencyConstitution) error

func (*Service) StartScheduler

func (s *Service) StartScheduler(ctx context.Context, organizationID string) error

func (*Service) Status

func (s *Service) Status(ctx context.Context, organizationID string) (OfficeStatus, error)

type ServiceRole

type ServiceRole string
const (
	ServiceRoleOfficeCoordinator ServiceRole = "office-coordinator"
	ServiceRoleRuntimeDaemon     ServiceRole = "runtime-daemon"
	ServiceRoleSchedulerDaemon   ServiceRole = "scheduler-daemon"
	ServiceRoleActorDaemon       ServiceRole = "actor-daemon"
)

type ShiftHandoff

type ShiftHandoff struct {
	ID          string   `json:"id"`
	FromActorID string   `json:"fromActorId"`
	ToActorID   string   `json:"toActorId"`
	Summary     string   `json:"summary"`
	OpenTasks   []string `json:"openTasks,omitempty"`
	CreatedAt   int64    `json:"createdAt"`
}

type SignalKind

type SignalKind string
const (
	SignalTick        SignalKind = "tick"
	SignalSchedule    SignalKind = "schedule"
	SignalPeerMessage SignalKind = "peer_message"
	SignalTaskChange  SignalKind = "task_change"
	SignalReview      SignalKind = "review"
	SignalCorrection  SignalKind = "correction"
	SignalBroadcast   SignalKind = "broadcast"
	SignalVoice       SignalKind = "voice"
	SignalProjection  SignalKind = "projection"
)

type SpawnLineage

type SpawnLineage struct {
	ParentActorID string `json:"parentActorId"`
	ChildActorID  string `json:"childActorId"`
	RootActorID   string `json:"rootActorId"`
	Depth         int    `json:"depth"`
	SpawnedAt     int64  `json:"spawnedAt"`
}

type SpeechRuntimeConfig

type SpeechRuntimeConfig struct {
	Enabled     bool
	Command     string
	Args        []string
	InputMode   string
	OutputMode  string
	Language    string
	Voice       string
	AudioFormat string
	Timeout     time.Duration
}

type TaskSummary

type TaskSummary struct {
	ID       string `json:"id"`
	Title    string `json:"title"`
	Status   string `json:"status"`
	Assigned string `json:"assigned,omitempty"`
}

type VoiceEvent

type VoiceEvent struct {
	ID             string            `json:"id"`
	OrganizationID string            `json:"organizationId"`
	ActorID        string            `json:"actorId,omitempty"`
	RoomID         string            `json:"roomId,omitempty"`
	Kind           VoiceEventKind    `json:"kind"`
	CanonicalText  string            `json:"canonicalText,omitempty"`
	AudioInputRef  string            `json:"audioInputRef,omitempty"`
	AudioOutputRef string            `json:"audioOutputRef,omitempty"`
	Engine         string            `json:"engine,omitempty"`
	Projection     *VoiceRoomState   `json:"projection,omitempty"`
	Metadata       map[string]string `json:"metadata,omitempty"`
	CreatedAt      int64             `json:"createdAt"`
}

type VoiceEventKind

type VoiceEventKind string
const (
	VoiceEventTranscript VoiceEventKind = "transcript"
	VoiceEventSynthesis  VoiceEventKind = "synthesis"
	VoiceEventProjection VoiceEventKind = "projection"
)

type VoiceGateway

type VoiceGateway struct {
	// contains filtered or unexported fields
}

func NewVoiceGateway

func NewVoiceGateway(cfg VoiceGatewayConfig, ledger *LedgerService, bus EventBus) *VoiceGateway

func (*VoiceGateway) IngestTranscript

func (*VoiceGateway) Serve

func (g *VoiceGateway) Serve(ctx context.Context, organizationID string) error

func (*VoiceGateway) SetProjection

func (*VoiceGateway) Status

func (g *VoiceGateway) Status(ctx context.Context, organizationID string) (VoiceGatewayStatus, error)

func (*VoiceGateway) Synthesize

type VoiceGatewayConfig

type VoiceGatewayConfig struct {
	Enabled              bool
	Provider             string
	StatePath            string
	AssetDir             string
	ControlChannel       string
	SynthesisChannel     string
	MeetingTranscriptDir string
	DefaultRoom          string
	Projection           VoiceProjectionDefaults
	STT                  SpeechRuntimeConfig
	TTS                  SpeechRuntimeConfig
}

type VoiceGatewayStatus

type VoiceGatewayStatus struct {
	Enabled              bool             `json:"enabled"`
	Provider             string           `json:"provider,omitempty"`
	OrganizationID       string           `json:"organizationId"`
	StatePath            string           `json:"statePath"`
	AssetDir             string           `json:"assetDir"`
	ControlChannel       string           `json:"controlChannel"`
	SynthesisChannel     string           `json:"synthesisChannel"`
	MeetingTranscriptDir string           `json:"meetingTranscriptDir"`
	DefaultRoom          string           `json:"defaultRoom"`
	STTConfigured        bool             `json:"sttConfigured"`
	TTSConfigured        bool             `json:"ttsConfigured"`
	Rooms                []VoiceRoomState `json:"rooms,omitempty"`
	LastVoiceEvent       *VoiceEvent      `json:"lastVoiceEvent,omitempty"`
}

type VoiceProjectionDefaults

type VoiceProjectionDefaults struct {
	TranscriptProjection  bool
	AudioProjection       bool
	AutoProjectTranscript bool
	AutoProjectSynthesis  bool
}

type VoiceProjectionRequest

type VoiceProjectionRequest struct {
	OrganizationID       string
	RoomID               string
	ProjectionEnabled    bool
	TranscriptProjection *bool
	AudioProjection      *bool
	Metadata             map[string]string
}

type VoiceRoomState

type VoiceRoomState struct {
	RoomID               string            `json:"roomId"`
	ProjectionEnabled    bool              `json:"projectionEnabled"`
	TranscriptProjection bool              `json:"transcriptProjection"`
	AudioProjection      bool              `json:"audioProjection"`
	LastTranscriptID     string            `json:"lastTranscriptId,omitempty"`
	LastSynthesisID      string            `json:"lastSynthesisId,omitempty"`
	Metadata             map[string]string `json:"metadata,omitempty"`
	UpdatedAt            int64             `json:"updatedAt"`
}

type VoiceSynthesisRequest

type VoiceSynthesisRequest struct {
	OrganizationID string
	ActorID        string
	RoomID         string
	Text           string
	OutputPath     string
	Metadata       map[string]string
}

type VoiceSynthesisResult

type VoiceSynthesisResult struct {
	Event       VoiceEvent        `json:"event"`
	Certificate CommitCertificate `json:"certificate"`
	Room        VoiceRoomState    `json:"room"`
}

type VoiceTranscriptRequest

type VoiceTranscriptRequest struct {
	OrganizationID string
	ActorID        string
	RoomID         string
	Text           string
	AudioPath      string
	Metadata       map[string]string
}

type VoiceTranscriptResult

type VoiceTranscriptResult struct {
	Event       VoiceEvent        `json:"event"`
	Certificate CommitCertificate `json:"certificate"`
	Room        VoiceRoomState    `json:"room"`
}

type WakeSignal

type WakeSignal struct {
	ID             string            `json:"id"`
	OrganizationID string            `json:"organizationId"`
	ActorID        string            `json:"actorId,omitempty"`
	Channel        string            `json:"channel"`
	Kind           SignalKind        `json:"kind"`
	Payload        map[string]string `json:"payload,omitempty"`
	CreatedAt      int64             `json:"createdAt"`
}

Directories

Path Synopsis
cmd
actor-daemon command
ipc-server command
office-daemon command
runtime-daemon command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL