| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- from __future__ import annotations
- from typing import Literal
- from pydantic import BaseModel, Field
- ConfirmStatus = Literal["PENDING", "TRUSTED", "SUSPICIOUS", "IGNORED", "NEED_MORE_INFO"]
- ItemType = Literal["service", "process"]
- class StatusUpdate(BaseModel):
- confirm_status: ConfirmStatus
- user_note: str | None = None
- class BatchStatusUpdate(BaseModel):
- ids: list[int] = Field(default_factory=list)
- confirm_status: ConfirmStatus
- user_note: str | None = None
- class AiImportItem(BaseModel):
- type: ItemType
- name: str
- description: str | None = None
- judgement: Literal["TRUSTED", "SUSPICIOUS", "NEED_MORE_INFO"]
- risk_level: Literal["LOW", "MEDIUM", "HIGH"]
- reason: str | None = None
- suggestion: str | None = None
- class AiImportRequest(BaseModel):
- items: list[AiImportItem]
- class PromptRequest(BaseModel):
- ids: list[int] | None = None
- scope: Literal["selected", "pending"] = "pending"
- class TagCreate(BaseModel):
- name: str = Field(min_length=1, max_length=80)
- description: str | None = None
- is_controllable: bool = True
- class TagUpdate(BaseModel):
- name: str = Field(min_length=1, max_length=80)
- description: str | None = None
- is_controllable: bool = True
- class TagAssignRequest(BaseModel):
- tag_ids: list[int] = Field(default_factory=list)
- class ProcessStartRequest(BaseModel):
- command: str = Field(min_length=1)
- cwd: str | None = None
|