tools

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package tools holds the brainjar MCP tool implementations. Each file groups the tools for one resource; shared helpers live here.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterBrain

func RegisterBrain(s *mcp.Server, ws models.WorkspaceID, app BrainApp)

func RegisterCompose

func RegisterCompose(s *mcp.Server, ws models.WorkspaceID, app ComposeApp)

func RegisterPersona

func RegisterPersona(s *mcp.Server, ws models.WorkspaceID, app PersonaApp)

func RegisterRule

func RegisterRule(s *mcp.Server, ws models.WorkspaceID, app RuleApp)

func RegisterSoul

func RegisterSoul(s *mcp.Server, ws models.WorkspaceID, app SoulApp)

RegisterSoul mounts soul_list / soul_show / soul_save / soul_delete on the server, bound to the given workspace and app.

func RegisterState

func RegisterState(s *mcp.Server, ws models.WorkspaceID, app StateApp)

func RegisterStatus

func RegisterStatus(s *mcp.Server, ws models.WorkspaceID, app StateApp)

Types

type BrainApp

type BrainApp interface {
	List(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Brain, error)
	Get(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Brain, error)
	Upsert(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug, soulSlug, personaSlug models.Slug, ruleSlugs []models.Slug, modelPrefs *models.ModelPrefs) (*models.Brain, error)
	Delete(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
}

type ComposeApp

type ComposeApp interface {
	Compose(ctx context.Context, req models.ComposeRequest) (*models.ComposeResponse, error)
}

type PersonaApp

type PersonaApp interface {
	List(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Persona, error)
	Get(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Persona, error)
	Upsert(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug, content string, bundledRules []models.Slug) (*models.Persona, error)
	Delete(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
}

type RuleApp

type RuleApp interface {
	List(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Rule, error)
	Get(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Rule, error)
	Upsert(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug, entries []models.RuleEntry) (*models.Rule, error)
	Delete(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
}

type SoulApp

type SoulApp interface {
	List(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Soul, error)
	Get(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Soul, error)
	Upsert(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug, content string) (*models.Soul, error)
	Delete(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
}

SoulApp is the subset of apps.SoulApp the soul tools depend on.

type StateApp

type StateApp interface {
	ResolveForScope(ctx context.Context, wsID models.WorkspaceID, projectSlug, sessionID string) (*models.EffectiveState, error)
	FindLayers(ctx context.Context, wsID models.WorkspaceID, projectSlug, sessionID string) ([]models.LayerOverride, error)
	SetState(ctx context.Context, wsID models.WorkspaceID, scopeType models.ScopeType, referenceID string, partial *models.LayerOverride) error
	DeleteState(ctx context.Context, wsID models.WorkspaceID, scopeType models.ScopeType, referenceID string) error
}

Jump to

Keyboard shortcuts

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