mirror of
https://github.com/ThearchyHelios/AgentLab.git
synced 2026-11-15 07:41:58 +00:00
3e311ec551
整合(3c-integrate) - 公共层:跨天时长(formatSpan / formatOffset / formatLapse)、本机署名(lib/actor)、检索分类色令牌、 数据源目录(useDatasources)收进公共层;失败说明能一次列出多个写坏的自定义工具,查询超时指到数据源的查询时限 - 管理页收尾:设置页接入统一的离开前确认;检查脚本不再把沙箱里的真实值打进输出 - 画布 ↔ 右栏:点出具印章、点节点能跳到右栏对应位置;「定位」直接聚焦到出问题的字段 - 回答流 / 问数据 / 记录页:失败信息带「去哪修」且不再被翻译两遍;协作团队的结局按执行截取; 等审批时断流重连、而运行已在空档里跑完的,补全事件 扫尾(3c-sweep) - 术语统一:开始运行 / 继续运行、工作流最大步数;未保存的运行统一叫「未保存的工作流」(后端新运行同步) - 沙箱报错不再带 Python 异常类名;新增 check-tokens,未定义的 CSS 变量为 0,两个旧别名迁移后删除 检查脚本(3c-checks) - check-ui 跟上新界面(运行列表按 data 属性找行),加上令牌与选中态的回归断言,输出里的名字打码 - 新增 check-all:按顺序跑全部检查、汇总退出码,--repeat 列出偶发项 - 单节出错只记这一节失败、不再带崩整个脚本;外壳遥测浮层「重新检测」时焦点不再掉到 body 网页工具与 fake-ip - Clash / mihomo 一类代理开 TUN + fake-ip 时,查什么都先拿到 198.18 段的假地址,被当成内网拦截。 新增 AGENTLAB_HTTP_TOOL_FAKE_IP_RANGES(默认空):落在段里的解析结果改向公共 DNS(DoH)核实真实地址, 公网放行、内网照拦、核实不了按拦截处理。DoH 默认先问境外的,境内公共 DNS 会对被封锁的域名返回污染结果 - 列表型环境变量接受逗号分隔(原来注释说逗号分隔、实际只认 JSON 数组);域名解析改为异步,不再阻塞事件循环 验证(沙箱):tsc 干净,pytest 866 passed(两遍),检查脚本全绿。
28 lines
968 B
Python
28 lines
968 B
Python
"""带机器码的 HTTP 错误。
|
|
|
|
detail 仍是给人看的那一句,老前端照旧直接显示;code 是给程序认的稳定标识。
|
|
以前前端只能按 detail 的开头几个字认出某一类错误,文案一改就悄悄失灵。
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
from fastapi import HTTPException, Request
|
|
from fastapi.responses import JSONResponse
|
|
|
|
#: 限定的数据源一个都不在了(删了或停用了),见 copilot._sources
|
|
DATASOURCE_SCOPE_EMPTY = "datasource_scope_empty"
|
|
|
|
|
|
class CodedHTTPException(HTTPException):
|
|
def __init__(self, status_code: int, detail: str, code: str) -> None:
|
|
super().__init__(status_code, detail)
|
|
self.code = code
|
|
|
|
|
|
async def coded_handler(_: Request, exc: Exception) -> JSONResponse:
|
|
assert isinstance(exc, CodedHTTPException)
|
|
return JSONResponse(
|
|
status_code=exc.status_code,
|
|
content={"detail": exc.detail, "code": exc.code},
|
|
headers=exc.headers,
|
|
)
|