-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodels.py
More file actions
138 lines (117 loc) · 2.9 KB
/
models.py
File metadata and controls
138 lines (117 loc) · 2.9 KB
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
from dataclasses import dataclass
from typing import Dict, List, Optional
@dataclass
class Memory:
id: str
content: str
number: int
total_estimated: int
timestamp: str
dependencies: List[str]
contradictions: List[str]
confidence: float
collection_id: Optional[str] = None
revision_of: Optional[str] = None
is_checkpoint: bool = False
tags: List[str] = None
trigger: Optional[str] = None
memory_type: Optional[str] = None
has_user_correction: bool = False
priority: int = 2
disclosure: Optional[str] = None
def __post_init__(self):
if self.tags is None:
self.tags = []
@dataclass
class Collection:
id: str
name: str
created_from: str
purpose: str
memories: List[str]
merged: bool = False
merge_target: Optional[str] = None
@dataclass
class MemorySession:
id: str
problem_statement: str
success_criteria: str
constraints: List[str]
main_thread: List[str]
collections: Dict[str, Collection]
patterns: List[str]
started: str
last_updated: str
@dataclass
class PackageAPI:
id: str
session_id: str
package_name: str
api_signature: str
usage_example: Optional[str] = None
documentation: Optional[str] = None
discovered_at: Optional[str] = None
last_used: Optional[str] = None
usage_count: int = 0
@dataclass
class CodebasePattern:
id: str
session_id: str
pattern_type: str
code_snippet: str
description: Optional[str] = None
language: Optional[str] = None
file_path: Optional[str] = None
created_at: Optional[str] = None
updated_at: Optional[str] = None
tags: List[str] = None
def __post_init__(self):
if self.tags is None:
self.tags = []
@dataclass
class CodingSession:
session_id: str
session_type: str
project_path: Optional[str] = None
language: Optional[str] = None
framework: Optional[str] = None
packages_discovered: int = 0
patterns_stored: int = 0
validation_checks: int = 0
@dataclass
class ValidationCheck:
id: str
session_id: str
check_type: str
target_code: str
result: str
message: Optional[str] = None
suggestions: List[str] = None
created_at: Optional[str] = None
def __post_init__(self):
if self.suggestions is None:
self.suggestions = []
@dataclass
class ToolError:
id: str
session_id: str
tool_name: str
error_message: str
error_context: Optional[str] = None
frequency: int = 1
first_seen: Optional[str] = None
last_seen: Optional[str] = None
resolved: bool = False
resolution_note: Optional[str] = None
@dataclass
class RuleViolation:
id: str
session_id: str
rule_id: str
rule_content: str
violation_type: str
before_content: str
after_content: str
detected_at: str
frequency: int = 1
resolved: bool = False