TraceStudio/agent/core/models.py

24 lines
1.1 KiB
Python
Raw Normal View History

2026-01-13 00:29:18 +08:00
from typing import Dict, List, Optional
from pydantic import BaseModel, Field
class RunRequest(BaseModel):
tool: str = Field(..., description="工具名称,对应 config.yaml 的 tools key")
args: List[str] = Field(default_factory=list, description="传给可执行文件的参数")
workdir: Optional[str] = Field(None, description="工作目录,默认使用 config.base_workdir")
timeout: Optional[int] = Field(None, description="超时时间秒,默认取 config.run_defaults")
env: Optional[Dict[str, str]] = Field(None, description="额外环境变量")
capture_output: Optional[bool] = Field(None, description="是否捕获 stdout/stderr")
strip_output: Optional[bool] = Field(None, description="是否 strip 输出换行/空白")
class RunResult(BaseModel):
success: bool
return_code: Optional[int] = None
stdout: Optional[str] = None
stderr: Optional[str] = None
elapsed: Optional[float] = None
tool_path: Optional[str] = None
workdir: Optional[str] = None
output_path: Optional[str] = None # 若生成文件,返回落盘路径(由调用方基于共享卷读取)