mirror of
https://github.com/basicmachines-co/basic-memory
synced 2026-06-21 13:47:35 +00:00
8d2e70cfc8
Signed-off-by: phernandez <paul@basicmachines.co> Co-authored-by: Claude <noreply@anthropic.com>
44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
"""utility functions for commands"""
|
|
|
|
from typing import Optional
|
|
|
|
from mcp.server.fastmcp.exceptions import ToolError
|
|
import typer
|
|
|
|
from rich.console import Console
|
|
|
|
from basic_memory.mcp.async_client import get_client
|
|
|
|
from basic_memory.mcp.tools.utils import call_post, call_get
|
|
from basic_memory.mcp.project_context import get_active_project
|
|
from basic_memory.schemas import ProjectInfoResponse
|
|
|
|
console = Console()
|
|
|
|
|
|
async def run_sync(project: Optional[str] = None):
|
|
"""Run sync operation via API endpoint."""
|
|
|
|
try:
|
|
async with get_client() as client:
|
|
project_item = await get_active_project(client, project, None)
|
|
response = await call_post(client, f"{project_item.project_url}/project/sync")
|
|
data = response.json()
|
|
console.print(f"[green]✓ {data['message']}[/green]")
|
|
except (ToolError, ValueError) as e:
|
|
console.print(f"[red]✗ Sync failed: {e}[/red]")
|
|
raise typer.Exit(1)
|
|
|
|
|
|
async def get_project_info(project: str):
|
|
"""Get project information via API endpoint."""
|
|
|
|
try:
|
|
async with get_client() as client:
|
|
project_item = await get_active_project(client, project, None)
|
|
response = await call_get(client, f"{project_item.project_url}/project/info")
|
|
return ProjectInfoResponse.model_validate(response.json())
|
|
except (ToolError, ValueError) as e:
|
|
console.print(f"[red]✗ Sync failed: {e}[/red]")
|
|
raise typer.Exit(1)
|