当前 LLMAdapter 接口定义在 packages/services/service-ai/src/adapters/types.ts(service-ai 内部),而非 @objectstack/spec/contracts。这导致:
- 第三方 adapter 实现(OpenAI / Anthropic / Ollama)无法仅依赖
@objectstack/spec 就完成类型对齐
- adapter 接口与
IAIService 的方法签名 1:1 镜像,天然属于协议层定义
- 其他 spec contracts(
IDataDriver、IHttpServer)均定义在 spec 中,LLMAdapter 是唯一例外
任务
- 新增
packages/spec/src/contracts/llm-adapter.ts,将以下接口从 service-ai 迁移到 spec:
LLMAdapter interface
- 保留
name, chat, complete, streamChat?, embed?, listModels? 签名不变
- 更新
packages/spec/src/contracts/index.ts,导出 LLMAdapter
- 更新
packages/services/service-ai/src/adapters/types.ts:
- 改为
export type { LLMAdapter } from '@objectstack/spec/contracts' re-export
- 或直接删除本地定义,改 import 路径
- 更新 service-ai 所有引用
LLMAdapter 的文件 import 路径
- 更新
ROADMAP.md Contract Implementation Matrix,在 AI Service 行备注中补充 LLMAdapter
- 运行全量测试确保无回归
验收标准
Labels: enhancement, spec, ai
Priority: P2
当前
LLMAdapter接口定义在packages/services/service-ai/src/adapters/types.ts(service-ai 内部),而非@objectstack/spec/contracts。这导致:@objectstack/spec就完成类型对齐IAIService的方法签名 1:1 镜像,天然属于协议层定义IDataDriver、IHttpServer)均定义在 spec 中,LLMAdapter是唯一例外任务
packages/spec/src/contracts/llm-adapter.ts,将以下接口从 service-ai 迁移到 spec:LLMAdapterinterfacename,chat,complete,streamChat?,embed?,listModels?签名不变packages/spec/src/contracts/index.ts,导出LLMAdapterpackages/services/service-ai/src/adapters/types.ts:export type { LLMAdapter } from '@objectstack/spec/contracts're-exportLLMAdapter的文件 import 路径ROADMAP.mdContract Implementation Matrix,在 AI Service 行备注中补充LLMAdapter验收标准
LLMAdapter定义在@objectstack/spec/contracts中import type { LLMAdapter } from '@objectstack/spec/contracts'可编译Labels:
enhancement,spec,aiPriority: P2