M4b:ai_provider 删除手术①-⑥——神识全面接管模型出口

- ① 后端删除 app/ai_provider/(38 文件,含 anthropic/openai 格式、billing、audio、embedding)、services/ai_provider_admin.py、core/config/model_config.py、tests/ai_provider/(21 文件)
- ② 连带退役 application/agent/(旧 Agent 循环/steer/follow-up/确认注册表)、application/skill_executor.py、app/skills/(python skills 孤儿)、endpoints/audio.py、application/imports.py(ProviderManager 消费方);settings 端点收敛为生成偏好
- ③ runs.py 修剪:AgentRunRegistry/steer/follow-up/confirmations 端点退役,保留 list/get/events/cancel/stream;safety 确认改为直接落库裁决(pending→approved/denied)
- ④ 前端删除:models 页、ModelGatewayView、gateway.ts、GatewayPanel(玄关)、ModelGatewayPanel/ModelStrategyForm、audio.ts/useVoiceInput、网关类型与 mock;设置页收敛为外观/语言/通知
- ⑤ 配置收敛:config/models|providers|pricing.example.yaml 归档 shenshi/config/;.env.example 删 provider keys/MODEL_ENDPOINT_POOL/MODEL_CONFIG_PATH,收敛 SHENSHI_*
- ⑥ 验收:rg 审计灵台 Provider SDK import 与 ai_provider 引用归零;后端 528 passed(2 个预存失败经 HEAD 复跑验证与本手术无关)、前端 type-check+201 passed、神识 go vet+test、BFF 4 passed
This commit is contained in:
chenxin committed 2026-08-27 10:02:44 +08:00
1 parent 0d383725b5
commit 462d570751
129 files changed
+81 -15867

No files matched your search

+1 -29
View File
@@ -1,6 +1,6 @@
"""运行时 API schema。"""
from typing import Any, Literal
from typing import Any
from pydantic import BaseModel, ConfigDict, Field
@@ -85,31 +85,3 @@ class RunResponse(BaseModel):
error_message: str | None = Field(description="失败错误信息;成功时为空。")
created_at: str = Field(description="创建时间,UTC ISO 8601 字符串。")
updated_at: str = Field(description="更新时间,UTC ISO 8601 字符串。")
class AgentControlRequest(BaseModel):
"""运行中 steer / follow-up 消息。"""
content: str = Field(min_length=1, max_length=20_000)
class AgentControlResponse(BaseModel):
accepted: bool = True
class ConfirmationResolutionResponse(BaseModel):
"""工具确认 resolve 结果(approve/deny 端点成功响应)。"""
model_config = ConfigDict(
json_schema_extra={
"examples": [
{"status": "resolved", "approved": True},
{"status": "resolved", "approved": False},
]
}
)
status: Literal["resolved"] = Field(
default="resolved", description="恒为 resolved;失败路径由错误响应覆盖。"
)
approved: bool = Field(description="裁决结果:True=批准,False=拒绝。")