This commit is contained in:
@@ -38,12 +38,22 @@ class HeartbeatRequest(BaseModel):
|
||||
host_id: str = Field(min_length=1)
|
||||
address: str | None = None
|
||||
devices: list[DeviceSnapshotModel] = Field(default_factory=list)
|
||||
policy_revision: int = Field(default=0, ge=0)
|
||||
|
||||
|
||||
class HostGovernancePolicyModel(BaseModel):
|
||||
revision: int = Field(ge=1)
|
||||
self_submission_enabled: bool
|
||||
max_active_tasks: int | None = None
|
||||
daily_token_budget: int | None = None
|
||||
|
||||
|
||||
class HeartbeatResponse(BaseModel):
|
||||
host_id: str
|
||||
accepted_devices: int
|
||||
received_at: datetime
|
||||
policy_revision: int = Field(default=0, ge=0)
|
||||
policy: HostGovernancePolicyModel | None = None
|
||||
|
||||
|
||||
class ClaimRequest(BaseModel):
|
||||
@@ -93,6 +103,16 @@ class TerminalResultResponse(BaseModel):
|
||||
status: Literal["recorded", "already_recorded"]
|
||||
|
||||
|
||||
class HostTaskSubmissionRequest(BaseModel):
|
||||
host_id: str = Field(min_length=1)
|
||||
goal: str = Field(min_length=1)
|
||||
device_id: str | None = Field(default=None, min_length=1)
|
||||
|
||||
|
||||
class HostTaskSubmissionResponse(BaseModel):
|
||||
task_id: str
|
||||
|
||||
|
||||
class StaleLeaseConflict(BaseModel):
|
||||
code: Literal["stale_lease"] = "stale_lease"
|
||||
detail: str
|
||||
@@ -116,6 +136,9 @@ class PlannerDecisionRequest(BaseModel):
|
||||
class PlannerDecisionResponse(BaseModel):
|
||||
tool_name: str
|
||||
arguments: dict[str, Any] = Field(default_factory=dict)
|
||||
input_tokens: int | None = Field(default=None, ge=0)
|
||||
output_tokens: int | None = Field(default=None, ge=0)
|
||||
total_tokens: int | None = Field(default=None, ge=0)
|
||||
|
||||
|
||||
class PlannerDecisionError(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user