From 5d886c86db9c3d282636e36895d91b349b3e9d8a Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Sun, 22 Mar 2026 16:00:56 +0000 Subject: [PATCH] Initial upload: Agentic Codebase Memory Manager v0.1.0 --- src/memory_manager/api/schemas.py | 69 +++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 src/memory_manager/api/schemas.py diff --git a/src/memory_manager/api/schemas.py b/src/memory_manager/api/schemas.py new file mode 100644 index 0000000..17f6a27 --- /dev/null +++ b/src/memory_manager/api/schemas.py @@ -0,0 +1,69 @@ +"""Pydantic schemas for API.""" +from datetime import datetime +from typing import List, Optional +from pydantic import BaseModel, Field + + +class MemoryEntryCreate(BaseModel): + title: str = Field(..., min_length=1, max_length=255) + content: str = Field(..., min_length=1) + category: str = Field(...) + tags: List[str] = Field(default_factory=list) + agent_id: Optional[str] = Field(default="unknown") + project_path: Optional[str] = Field(default=".") + parent_id: Optional[int] = None + + +class MemoryEntryUpdate(BaseModel): + title: Optional[str] = Field(None, min_length=1, max_length=255) + content: Optional[str] = Field(None, min_length=1) + category: Optional[str] = None + tags: Optional[List[str]] = None + + +class MemoryEntryResponse(BaseModel): + id: int + title: str + content: str + category: str + tags: List[str] + agent_id: str + project_path: str + created_at: datetime + updated_at: datetime + parent_id: Optional[int] = None + + class Config: + from_attributes = True + + +class CommitCreate(BaseModel): + message: str = Field(..., min_length=1) + agent_id: Optional[str] = Field(default="unknown") + project_path: Optional[str] = Field(default=".") + + +class CommitResponse(BaseModel): + id: int + hash: str + message: str + agent_id: str + project_path: str + created_at: datetime + + class Config: + from_attributes = True + + +class DiffResponse(BaseModel): + hash1: str + hash2: str + added: List[dict] + removed: List[dict] + modified: List[dict] + + +class StatsResponse(BaseModel): + total_entries: int + total_commits: int + category_counts: dict