Spaces:
Running
Running
File size: 1,583 Bytes
1b8d07e a0a02f2 1b8d07e a0a02f2 1b8d07e a0a02f2 1b8d07e a0a02f2 1b8d07e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
import uuid
from typing import Dict, Any, Optional
from dataclasses import dataclass, field
from datetime import datetime
@dataclass
class ProjectDraft:
draft_id: str
name: str
description: str
type: str
created_at: datetime = field(default_factory=datetime.now)
code_files: Dict[str, str] = field(default_factory=dict)
metadata: Dict[str, Any] = field(default_factory=dict)
class SessionManager:
def __init__(self):
self._drafts: Dict[str, ProjectDraft] = {}
def create_draft(self, name: str, description: str, type: str = "adhoc") -> ProjectDraft:
"""Creates a new project draft."""
draft_id = str(uuid.uuid4())
draft = ProjectDraft(
draft_id=draft_id,
name=name,
description=description,
type=type
)
# Initialisation des fichiers de base
draft.code_files["requirements.txt"] = "mcp"
self._drafts[draft_id] = draft
return draft
def get_draft(self, draft_id: str) -> Optional[ProjectDraft]:
"""Retrieves a draft by its ID."""
return self._drafts.get(draft_id)
def update_code(self, draft_id: str, filename: str, content: str) -> bool:
"""Updates a code file in the draft."""
draft = self.get_draft(draft_id)
if not draft:
return False
draft.code_files[filename] = content
return True
def list_drafts(self) -> Dict[str, str]:
"""Lists all active drafts."""
return {d.draft_id: d.name for d in self._drafts.values()}
|