package tools import ( "context" "github.com/modelcontextprotocol/go-sdk/mcp" "git.warky.dev/wdevs/amcs/internal/store" ) type ArchiveTool struct { store *store.DB } type ArchiveInput struct { ID string `json:"id" jsonschema:"the thought id"` } type ArchiveOutput struct { Archived bool `json:"archived"` } func NewArchiveTool(db *store.DB) *ArchiveTool { return &ArchiveTool{store: db} } func (t *ArchiveTool) Handle(ctx context.Context, _ *mcp.CallToolRequest, in ArchiveInput) (*mcp.CallToolResult, ArchiveOutput, error) { id, err := parseUUID(in.ID) if err != nil { return nil, ArchiveOutput{}, err } if err := t.store.ArchiveThought(ctx, id); err != nil { return nil, ArchiveOutput{}, err } return nil, ArchiveOutput{Archived: true}, nil }