idun-agent-schema 0.1.41__tar.gz → 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of idun-agent-schema might be problematic. Click here for more details.
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/PKG-INFO +1 -1
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/pyproject.toml +1 -1
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/engine/__init__.py +1 -2
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/engine/config.py +15 -10
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/engine/haystack.py +1 -1
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/manager/__init__.py +5 -2
- idun_agent_schema-0.2.0/src/idun_agent_schema/manager/api.py +286 -0
- idun_agent_schema-0.1.41/src/idun_agent_schema/manager/api.py +0 -158
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/.gitignore +0 -0
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/README.md +0 -0
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/__init__.py +0 -0
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/engine/agent.py +0 -0
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/engine/api.py +0 -0
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/engine/langgraph.py +0 -0
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/engine/server.py +0 -0
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/manager/deployments.py +0 -0
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/manager/deps.py +0 -0
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/manager/domain.py +0 -0
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/manager/dto.py +0 -0
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/manager/errors.py +0 -0
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/manager/settings.py +0 -0
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/py.typed +0 -0
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/shared/__init__.py +0 -0
- {idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/shared/observability.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: idun-agent-schema
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: Centralized Pydantic schema library for Idun Agent Engine and Manager
|
|
5
5
|
Project-URL: Homepage, https://github.com/geoffreyharrazi/idun-agent-platform
|
|
6
6
|
Project-URL: Repository, https://github.com/geoffreyharrazi/idun-agent-platform
|
{idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/engine/__init__.py
RENAMED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from .agent import BaseAgentConfig # noqa: F401
|
|
4
4
|
from .api import ChatRequest, ChatResponse # noqa: F401
|
|
5
|
-
from .config import AgentConfig, EngineConfig # noqa: F401
|
|
6
|
-
from .haystack import HaystackAgentConfig
|
|
5
|
+
from .config import AgentConfig, AgentFramework, EngineConfig # noqa: F401
|
|
7
6
|
from .langgraph import ( # noqa: F401
|
|
8
7
|
CheckpointConfig,
|
|
9
8
|
LangGraphAgentConfig,
|
|
@@ -1,25 +1,30 @@
|
|
|
1
1
|
"""Top-level engine configuration models."""
|
|
2
2
|
|
|
3
|
-
from
|
|
4
|
-
|
|
3
|
+
from enum import Enum
|
|
5
4
|
from pydantic import BaseModel, Field
|
|
6
5
|
|
|
7
|
-
from idun_agent_schema.engine.haystack import HaystackAgentConfig
|
|
8
|
-
|
|
9
6
|
from .agent import BaseAgentConfig
|
|
10
7
|
from .langgraph import LangGraphAgentConfig
|
|
11
8
|
from .server import ServerConfig
|
|
12
9
|
|
|
13
10
|
|
|
14
|
-
class
|
|
15
|
-
"""
|
|
11
|
+
class AgentFramework(str, Enum):
|
|
12
|
+
"""Supported agent frameworks for engine."""
|
|
16
13
|
|
|
17
|
-
|
|
14
|
+
LANGGRAPH = "langgraph"
|
|
15
|
+
ADK = "ADK"
|
|
16
|
+
CREWAI = "CREWAI"
|
|
17
|
+
HAYSTACK = "haystack"
|
|
18
|
+
CUSTOM = "custom"
|
|
18
19
|
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
class AgentConfig(BaseModel):
|
|
22
|
+
"""Configuration for agent specification and settings."""
|
|
23
|
+
|
|
24
|
+
type: AgentFramework = Field(default=AgentFramework.LANGGRAPH)
|
|
25
|
+
config: BaseAgentConfig | LangGraphAgentConfig = Field(
|
|
26
|
+
default_factory=BaseAgentConfig
|
|
27
|
+
)
|
|
23
28
|
|
|
24
29
|
|
|
25
30
|
class EngineConfig(BaseModel):
|
{idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/manager/__init__.py
RENAMED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
"""Manager-related schemas."""
|
|
2
2
|
|
|
3
3
|
from .api import ( # noqa: F401
|
|
4
|
-
|
|
4
|
+
Agent,
|
|
5
|
+
AgentCreate,
|
|
6
|
+
AgentPatch,
|
|
7
|
+
AgentReplace,
|
|
5
8
|
AgentResponse,
|
|
6
9
|
AgentRunRequest,
|
|
7
10
|
AgentRunResponse,
|
|
8
11
|
AgentRunSummaryResponse,
|
|
9
12
|
AgentStatsResponse,
|
|
10
13
|
AgentSummaryResponse,
|
|
11
|
-
|
|
14
|
+
AgentUpdate,
|
|
12
15
|
PaginatedAgentsResponse,
|
|
13
16
|
PaginatedResponse,
|
|
14
17
|
PaginatedRunsResponse,
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
"""Pydantic schemas for Agent Manager API I/O."""
|
|
2
|
+
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
from typing import Any
|
|
5
|
+
from uuid import UUID
|
|
6
|
+
|
|
7
|
+
from pydantic import BaseModel, Field, field_validator
|
|
8
|
+
|
|
9
|
+
from ..engine.config import AgentConfig
|
|
10
|
+
from .domain import AgentFramework, AgentStatus
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class AgentRunRequest(BaseModel):
|
|
16
|
+
"""Request payload to execute an agent run."""
|
|
17
|
+
|
|
18
|
+
input_data: dict[str, Any]
|
|
19
|
+
trace_id: str | None = Field(None, max_length=100)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class AgentResponse(BaseModel):
|
|
23
|
+
"""Response shape for a single agent resource."""
|
|
24
|
+
|
|
25
|
+
id: UUID
|
|
26
|
+
name: str
|
|
27
|
+
description: str | None
|
|
28
|
+
framework: AgentFramework
|
|
29
|
+
status: AgentStatus
|
|
30
|
+
config: dict[str, Any]
|
|
31
|
+
environment_variables: dict[str, str]
|
|
32
|
+
version: str
|
|
33
|
+
tags: list[str]
|
|
34
|
+
tenant_id: UUID
|
|
35
|
+
created_at: datetime
|
|
36
|
+
updated_at: datetime
|
|
37
|
+
deployed_at: datetime | None
|
|
38
|
+
total_runs: int
|
|
39
|
+
success_rate: float | None
|
|
40
|
+
avg_response_time_ms: float | None
|
|
41
|
+
|
|
42
|
+
class Config:
|
|
43
|
+
"""Pydantic configuration for ORM compatibility."""
|
|
44
|
+
|
|
45
|
+
from_attributes = True
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class AgentSummaryResponse(BaseModel):
|
|
49
|
+
"""Reduced agent fields for listing views."""
|
|
50
|
+
|
|
51
|
+
id: UUID
|
|
52
|
+
name: str
|
|
53
|
+
description: str | None
|
|
54
|
+
framework: AgentFramework
|
|
55
|
+
status: AgentStatus
|
|
56
|
+
version: str
|
|
57
|
+
tags: list[str]
|
|
58
|
+
created_at: datetime
|
|
59
|
+
updated_at: datetime
|
|
60
|
+
total_runs: int
|
|
61
|
+
success_rate: float | None
|
|
62
|
+
|
|
63
|
+
class Config:
|
|
64
|
+
"""Pydantic configuration for ORM compatibility."""
|
|
65
|
+
|
|
66
|
+
from_attributes = True
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class AgentRunResponse(BaseModel):
|
|
70
|
+
"""Detailed run record returned after execution."""
|
|
71
|
+
|
|
72
|
+
id: UUID
|
|
73
|
+
agent_id: UUID
|
|
74
|
+
tenant_id: UUID
|
|
75
|
+
input_data: dict[str, Any]
|
|
76
|
+
output_data: dict[str, Any] | None
|
|
77
|
+
status: str
|
|
78
|
+
started_at: datetime
|
|
79
|
+
completed_at: datetime | None
|
|
80
|
+
error_message: str | None
|
|
81
|
+
response_time_ms: float | None
|
|
82
|
+
tokens_used: int | None
|
|
83
|
+
cost_usd: float | None
|
|
84
|
+
trace_id: str | None
|
|
85
|
+
span_id: str | None
|
|
86
|
+
|
|
87
|
+
class Config:
|
|
88
|
+
"""Pydantic configuration for ORM compatibility."""
|
|
89
|
+
|
|
90
|
+
from_attributes = True
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
class AgentRunSummaryResponse(BaseModel):
|
|
94
|
+
"""Reduced run fields for list views."""
|
|
95
|
+
|
|
96
|
+
id: UUID
|
|
97
|
+
agent_id: UUID
|
|
98
|
+
status: str
|
|
99
|
+
started_at: datetime
|
|
100
|
+
completed_at: datetime | None
|
|
101
|
+
response_time_ms: float | None
|
|
102
|
+
tokens_used: int | None
|
|
103
|
+
cost_usd: float | None
|
|
104
|
+
|
|
105
|
+
class Config:
|
|
106
|
+
"""Pydantic configuration for ORM compatibility."""
|
|
107
|
+
|
|
108
|
+
from_attributes = True
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
class PaginatedResponse(BaseModel):
|
|
112
|
+
"""Base pagination container used by list endpoints."""
|
|
113
|
+
|
|
114
|
+
total: int
|
|
115
|
+
limit: int
|
|
116
|
+
offset: int
|
|
117
|
+
has_more: bool
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
class PaginatedAgentsResponse(PaginatedResponse):
|
|
121
|
+
"""Paginated list of agents."""
|
|
122
|
+
|
|
123
|
+
items: list[AgentSummaryResponse]
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
class PaginatedRunsResponse(PaginatedResponse):
|
|
127
|
+
"""Paginated list of agent runs."""
|
|
128
|
+
|
|
129
|
+
items: list[AgentRunSummaryResponse]
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
class AgentStatsResponse(BaseModel):
|
|
133
|
+
"""Aggregated statistics across all agents."""
|
|
134
|
+
|
|
135
|
+
total_agents: int
|
|
136
|
+
active_agents: int
|
|
137
|
+
total_runs_today: int
|
|
138
|
+
total_runs_this_month: int
|
|
139
|
+
avg_success_rate: float | None
|
|
140
|
+
avg_response_time_ms: float | None
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
class AgentCreate(BaseModel):
|
|
144
|
+
"""Schema for creating a new agent.
|
|
145
|
+
|
|
146
|
+
Framework is inferred from config.type (e.g., config.type = "langgraph").
|
|
147
|
+
"""
|
|
148
|
+
|
|
149
|
+
name: str = Field(..., min_length=1, max_length=100, description="Agent name")
|
|
150
|
+
description: str | None = Field(
|
|
151
|
+
None, max_length=500, description="Agent description"
|
|
152
|
+
)
|
|
153
|
+
# Use schema's AgentConfig instead of AgentPayload
|
|
154
|
+
config: AgentConfig = Field(
|
|
155
|
+
..., description="Framework-specific agent configuration"
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
@field_validator("name") # noqa: N805 - Pydantic validator uses `cls` by convention
|
|
159
|
+
@classmethod
|
|
160
|
+
def validate_name(cls, v):
|
|
161
|
+
if not v.strip():
|
|
162
|
+
raise ValueError("Name cannot be empty or whitespace only")
|
|
163
|
+
return v.strip()
|
|
164
|
+
|
|
165
|
+
class Config:
|
|
166
|
+
json_schema_extra = {
|
|
167
|
+
"example": {
|
|
168
|
+
"name": "My AI Assistant",
|
|
169
|
+
"description": "A helpful AI assistant for customer support",
|
|
170
|
+
"config": {
|
|
171
|
+
"type": "langgraph",
|
|
172
|
+
"config": {
|
|
173
|
+
"name": "My AI Assistant",
|
|
174
|
+
"graph_definition": "./examples/01_basic_config_file/example_agent.py:app",
|
|
175
|
+
"checkpointer": None,
|
|
176
|
+
"store": None,
|
|
177
|
+
"input_schema_definition": {},
|
|
178
|
+
"output_schema_definition": {},
|
|
179
|
+
"observability": None,
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
class AgentUpdate(BaseModel):
|
|
187
|
+
"""Schema for updating an existing agent."""
|
|
188
|
+
|
|
189
|
+
name: str | None = Field(
|
|
190
|
+
None, min_length=1, max_length=100, description="Agent name"
|
|
191
|
+
)
|
|
192
|
+
description: str | None = Field(
|
|
193
|
+
None, max_length=500, description="Agent description"
|
|
194
|
+
)
|
|
195
|
+
framework: AgentFramework | None = Field(None, description="Agent framework")
|
|
196
|
+
|
|
197
|
+
@field_validator("name") # noqa: N805
|
|
198
|
+
@classmethod
|
|
199
|
+
def validate_name(cls, v):
|
|
200
|
+
if v is not None and not v.strip():
|
|
201
|
+
raise ValueError("Name cannot be empty or whitespace only")
|
|
202
|
+
return v.strip() if v else v
|
|
203
|
+
|
|
204
|
+
class Config:
|
|
205
|
+
json_schema_extra = {
|
|
206
|
+
"example": {
|
|
207
|
+
"name": "Updated Agent Name",
|
|
208
|
+
"description": "Updated description",
|
|
209
|
+
"framework": "langchain",
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
class Agent(BaseModel):
|
|
215
|
+
"""Complete agent model for responses."""
|
|
216
|
+
|
|
217
|
+
id: str = Field(..., description="Unique agent identifier")
|
|
218
|
+
name: str = Field(..., description="Agent name")
|
|
219
|
+
description: str | None = Field(None, description="Agent description")
|
|
220
|
+
framework: AgentFramework = Field(..., description="Agent framework")
|
|
221
|
+
status: AgentStatus = Field(AgentStatus.DRAFT, description="Agent status")
|
|
222
|
+
created_at: datetime = Field(..., description="Creation timestamp")
|
|
223
|
+
updated_at: datetime = Field(..., description="Last update timestamp")
|
|
224
|
+
|
|
225
|
+
class Config:
|
|
226
|
+
json_schema_extra = {
|
|
227
|
+
"example": {
|
|
228
|
+
"id": "550e8400-e29b-41d4-a716-446655440000",
|
|
229
|
+
"name": "My AI Assistant",
|
|
230
|
+
"description": "A helpful AI assistant",
|
|
231
|
+
"framework": "langgraph",
|
|
232
|
+
"status": "draft",
|
|
233
|
+
"created_at": "2024-01-01T00:00:00",
|
|
234
|
+
"updated_at": "2024-01-01T00:00:00",
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
class AgentReplace(BaseModel):
|
|
240
|
+
"""Full replacement schema for PUT of an agent.
|
|
241
|
+
|
|
242
|
+
Represents the complete updatable representation of an agent.
|
|
243
|
+
Server-managed fields like id, status, and timestamps are excluded.
|
|
244
|
+
"""
|
|
245
|
+
|
|
246
|
+
name: str = Field(..., min_length=1, max_length=100, description="Agent name")
|
|
247
|
+
description: str | None = Field(
|
|
248
|
+
None, max_length=500, description="Agent description"
|
|
249
|
+
)
|
|
250
|
+
config: AgentConfig = Field(
|
|
251
|
+
..., description="Framework-specific agent configuration"
|
|
252
|
+
)
|
|
253
|
+
|
|
254
|
+
@field_validator("name") # noqa: N805
|
|
255
|
+
@classmethod
|
|
256
|
+
def validate_name(cls, v):
|
|
257
|
+
if not v.strip():
|
|
258
|
+
raise ValueError("Name cannot be empty or whitespace only")
|
|
259
|
+
return v.strip()
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
class AgentPatch(BaseModel):
|
|
263
|
+
"""Partial update schema for PATCH of an agent.
|
|
264
|
+
|
|
265
|
+
Only provided fields will be updated. If config is provided, the
|
|
266
|
+
framework will be inferred from config.type.
|
|
267
|
+
"""
|
|
268
|
+
|
|
269
|
+
name: str | None = Field(
|
|
270
|
+
None, min_length=1, max_length=100, description="Agent name"
|
|
271
|
+
)
|
|
272
|
+
description: str | None = Field(
|
|
273
|
+
None, max_length=500, description="Agent description"
|
|
274
|
+
)
|
|
275
|
+
config: AgentConfig | None = Field(
|
|
276
|
+
None, description="Framework-specific agent configuration"
|
|
277
|
+
)
|
|
278
|
+
|
|
279
|
+
@field_validator("name") # noqa: N805
|
|
280
|
+
@classmethod
|
|
281
|
+
def validate_name(cls, v):
|
|
282
|
+
if v is not None and not v.strip():
|
|
283
|
+
raise ValueError("Name cannot be empty or whitespace only")
|
|
284
|
+
return v.strip() if v else v
|
|
285
|
+
|
|
286
|
+
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
"""Pydantic schemas for Agent Manager API I/O."""
|
|
2
|
-
|
|
3
|
-
from datetime import datetime
|
|
4
|
-
from typing import Any
|
|
5
|
-
from uuid import UUID
|
|
6
|
-
|
|
7
|
-
from pydantic import BaseModel, Field
|
|
8
|
-
|
|
9
|
-
from .domain import AgentFramework, AgentStatus
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class AgentCreateRequest(BaseModel):
|
|
13
|
-
"""Request payload to create a new agent."""
|
|
14
|
-
|
|
15
|
-
name: str = Field(..., min_length=1, max_length=255)
|
|
16
|
-
description: str | None = Field(None, max_length=1000)
|
|
17
|
-
framework: AgentFramework
|
|
18
|
-
config: dict[str, Any] = Field(default_factory=dict)
|
|
19
|
-
environment_variables: dict[str, str] = Field(default_factory=dict)
|
|
20
|
-
tags: list[str] = Field(default_factory=list)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
class AgentUpdateRequest(BaseModel):
|
|
24
|
-
"""Request payload to update an existing agent (partial)."""
|
|
25
|
-
|
|
26
|
-
name: str | None = Field(None, min_length=1, max_length=255)
|
|
27
|
-
description: str | None = Field(None, max_length=1000)
|
|
28
|
-
config: dict[str, Any] | None = None
|
|
29
|
-
environment_variables: dict[str, str] | None = None
|
|
30
|
-
tags: list[str] | None = None
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
class AgentRunRequest(BaseModel):
|
|
34
|
-
"""Request payload to execute an agent run."""
|
|
35
|
-
|
|
36
|
-
input_data: dict[str, Any]
|
|
37
|
-
trace_id: str | None = Field(None, max_length=100)
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
class AgentResponse(BaseModel):
|
|
41
|
-
"""Response shape for a single agent resource."""
|
|
42
|
-
|
|
43
|
-
id: UUID
|
|
44
|
-
name: str
|
|
45
|
-
description: str | None
|
|
46
|
-
framework: AgentFramework
|
|
47
|
-
status: AgentStatus
|
|
48
|
-
config: dict[str, Any]
|
|
49
|
-
environment_variables: dict[str, str]
|
|
50
|
-
version: str
|
|
51
|
-
tags: list[str]
|
|
52
|
-
tenant_id: UUID
|
|
53
|
-
created_at: datetime
|
|
54
|
-
updated_at: datetime
|
|
55
|
-
deployed_at: datetime | None
|
|
56
|
-
total_runs: int
|
|
57
|
-
success_rate: float | None
|
|
58
|
-
avg_response_time_ms: float | None
|
|
59
|
-
|
|
60
|
-
class Config:
|
|
61
|
-
"""Pydantic configuration for ORM compatibility."""
|
|
62
|
-
|
|
63
|
-
from_attributes = True
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
class AgentSummaryResponse(BaseModel):
|
|
67
|
-
"""Reduced agent fields for listing views."""
|
|
68
|
-
|
|
69
|
-
id: UUID
|
|
70
|
-
name: str
|
|
71
|
-
description: str | None
|
|
72
|
-
framework: AgentFramework
|
|
73
|
-
status: AgentStatus
|
|
74
|
-
version: str
|
|
75
|
-
tags: list[str]
|
|
76
|
-
created_at: datetime
|
|
77
|
-
updated_at: datetime
|
|
78
|
-
total_runs: int
|
|
79
|
-
success_rate: float | None
|
|
80
|
-
|
|
81
|
-
class Config:
|
|
82
|
-
"""Pydantic configuration for ORM compatibility."""
|
|
83
|
-
|
|
84
|
-
from_attributes = True
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
class AgentRunResponse(BaseModel):
|
|
88
|
-
"""Detailed run record returned after execution."""
|
|
89
|
-
|
|
90
|
-
id: UUID
|
|
91
|
-
agent_id: UUID
|
|
92
|
-
tenant_id: UUID
|
|
93
|
-
input_data: dict[str, Any]
|
|
94
|
-
output_data: dict[str, Any] | None
|
|
95
|
-
status: str
|
|
96
|
-
started_at: datetime
|
|
97
|
-
completed_at: datetime | None
|
|
98
|
-
error_message: str | None
|
|
99
|
-
response_time_ms: float | None
|
|
100
|
-
tokens_used: int | None
|
|
101
|
-
cost_usd: float | None
|
|
102
|
-
trace_id: str | None
|
|
103
|
-
span_id: str | None
|
|
104
|
-
|
|
105
|
-
class Config:
|
|
106
|
-
"""Pydantic configuration for ORM compatibility."""
|
|
107
|
-
|
|
108
|
-
from_attributes = True
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
class AgentRunSummaryResponse(BaseModel):
|
|
112
|
-
"""Reduced run fields for list views."""
|
|
113
|
-
|
|
114
|
-
id: UUID
|
|
115
|
-
agent_id: UUID
|
|
116
|
-
status: str
|
|
117
|
-
started_at: datetime
|
|
118
|
-
completed_at: datetime | None
|
|
119
|
-
response_time_ms: float | None
|
|
120
|
-
tokens_used: int | None
|
|
121
|
-
cost_usd: float | None
|
|
122
|
-
|
|
123
|
-
class Config:
|
|
124
|
-
"""Pydantic configuration for ORM compatibility."""
|
|
125
|
-
|
|
126
|
-
from_attributes = True
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
class PaginatedResponse(BaseModel):
|
|
130
|
-
"""Base pagination container used by list endpoints."""
|
|
131
|
-
|
|
132
|
-
total: int
|
|
133
|
-
limit: int
|
|
134
|
-
offset: int
|
|
135
|
-
has_more: bool
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
class PaginatedAgentsResponse(PaginatedResponse):
|
|
139
|
-
"""Paginated list of agents."""
|
|
140
|
-
|
|
141
|
-
items: list[AgentSummaryResponse]
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
class PaginatedRunsResponse(PaginatedResponse):
|
|
145
|
-
"""Paginated list of agent runs."""
|
|
146
|
-
|
|
147
|
-
items: list[AgentRunSummaryResponse]
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
class AgentStatsResponse(BaseModel):
|
|
151
|
-
"""Aggregated statistics across all agents."""
|
|
152
|
-
|
|
153
|
-
total_agents: int
|
|
154
|
-
active_agents: int
|
|
155
|
-
total_runs_today: int
|
|
156
|
-
total_runs_this_month: int
|
|
157
|
-
avg_success_rate: float | None
|
|
158
|
-
avg_response_time_ms: float | None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/engine/langgraph.py
RENAMED
|
File without changes
|
|
File without changes
|
{idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/manager/deployments.py
RENAMED
|
File without changes
|
|
File without changes
|
{idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/manager/domain.py
RENAMED
|
File without changes
|
|
File without changes
|
{idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/manager/errors.py
RENAMED
|
File without changes
|
{idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/manager/settings.py
RENAMED
|
File without changes
|
|
File without changes
|
{idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/shared/__init__.py
RENAMED
|
File without changes
|
{idun_agent_schema-0.1.41 → idun_agent_schema-0.2.0}/src/idun_agent_schema/shared/observability.py
RENAMED
|
File without changes
|