forked from BasedHardware/omi
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodels.py
More file actions
141 lines (97 loc) · 3.26 KB
/
Copy pathmodels.py
File metadata and controls
141 lines (97 loc) · 3.26 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
139
140
141
"""
Pydantic models for the Hive Omi plugin.
"""
from datetime import datetime
from typing import List, Optional, Any, Dict
from pydantic import BaseModel
from omi_plugin_sdk.models import Conversation, EndpointResponse, Structured, TranscriptSegment
# ============================================
# Hive Entity Models
# ============================================
class HiveUser(BaseModel):
"""Hive user information."""
id: str
email: Optional[str] = None
name: Optional[str] = None
profile_url: Optional[str] = None
class HiveWorkspace(BaseModel):
"""Hive workspace information."""
id: str
name: str
description: Optional[str] = None
class HiveProject(BaseModel):
"""Hive project information."""
id: str
name: str
description: Optional[str] = None
status: Optional[str] = None
workspace_id: Optional[str] = None
workspace_name: Optional[str] = None
created_at: Optional[datetime] = None
updated_at: Optional[datetime] = None
class HiveTask(BaseModel):
"""Hive task (action card) information."""
id: str
name: str
description: Optional[str] = None
status: Optional[str] = None
project_id: Optional[str] = None
project_name: Optional[str] = None
assignees: List[str] = []
due_date: Optional[datetime] = None
created_at: Optional[datetime] = None
updated_at: Optional[datetime] = None
class HiveAction(BaseModel):
"""Hive action item (sub-task/checklist item)."""
id: str
name: str
completed: bool = False
task_id: Optional[str] = None
task_name: Optional[str] = None
assignee: Optional[str] = None
due_date: Optional[datetime] = None
# ============================================
# Omi Chat Tool Models
# ============================================
class ChatToolRequest(BaseModel):
"""Base request model for Omi chat tools."""
uid: str
app_id: Optional[str] = None
tool_name: Optional[str] = None
class GetProjectsRequest(ChatToolRequest):
"""Request model for getting projects."""
workspace_name: Optional[str] = None
limit: int = 10
class CreateTaskRequest(ChatToolRequest):
"""Request model for creating a task."""
task_name: str
project_name: Optional[str] = None
project_id: Optional[str] = None
description: Optional[str] = None
due_date: Optional[str] = None
class GetTasksRequest(ChatToolRequest):
"""Request model for getting tasks."""
project_name: Optional[str] = None
project_id: Optional[str] = None
status: Optional[str] = None
limit: int = 10
class CreateActionRequest(ChatToolRequest):
"""Request model for creating an action item."""
action_name: str
task_name: Optional[str] = None
task_id: Optional[str] = None
assignee: Optional[str] = None
due_date: Optional[str] = None
class SearchRequest(ChatToolRequest):
"""Request model for searching tasks/projects."""
query: str
limit: int = 10
class UpdateTaskStatusRequest(ChatToolRequest):
"""Request model for updating task status."""
task_name: Optional[str] = None
task_id: Optional[str] = None
status: str
class ChatToolResponse(BaseModel):
"""Response model for Omi chat tools."""
result: Optional[str] = None
error: Optional[str] = None