7c66075ee9caa9f990d6d6ad7619f7af8d9040e8
Why: The final reply is composed after the work loop, and the automatic end check needs its own part and event so the timeline can show it without mixing it into the user-facing text. Evidence: go test ./... Impact: New RunPhase finalizing, PartType check, and run.check. Existing payloads are unchanged. Refs: feature/final-reply-compose Co-authored-by: Cursor <cursoragent@cursor.com>
Agent-System-Core
系统核心契约:领域模型(Project/Conversation/Message/Run/Artifact/Plan)、流式事件信封、
HITL 卡片协议、插件 API 与 manifest、AgentProfile 画像、设置 schema、UI 扩展词汇、
文档解析(ParsedDocument IR)与检索/记忆契约。Go 模块路径 agent-system-core。
三态一致
同一契约以三种形态发布,变更须保持一致:
- Go 类型(
*.go,camelCase JSON 标签)——后端与代码插件使用。 - 黄金样本(
testdata/golden/*.json)——线格式权威,go test ./...强校验;变更显式重生成(go test ./... -update)。 - TS 类型(
ts/types.ts)——前端镜像,前端测试按黄金样本做形状断言。
原则
- 只含契约与纯函数,不含实现、不含 I/O、不依赖生态仓。
- 前向兼容:字段只增不删;消费方对未知
type/词汇静默忽略(v字段协商)。 - 摄取 IR(ParsedDocument)是解析器与下游的隔离层;检索/记忆契约先行、实现后置。
验证
go test ./...
Description
系统核心契约:领域模型、流式事件与 HITL 卡片协议、插件 API、设置与 UI 扩展词汇、文档解析/检索/记忆契约,供前后端与插件共同依赖;不含实现。
579 KiB
Languages
Go
84.5%
TypeScript
12.3%
Shell
3.2%