feat(agentscope): add memory system and automation job support

- Add consumer_registry and pipeline_registry for runtime orchestration
- Add Visibility schema for message filtering
- Add PipelineSpec for agent pipeline configuration
- Add automation job models and configuration
- Remove memory_prompt.py (consolidated into memory system)
- Update runtime components: context_loader, context_service, orchestrator, runner, tasks
- Update toolkit: tool_config, tool_middleware, custom tools (calendar, user_lookup)
- Add auth_helpers and calendar_domain utilities
- Add system_agents.yaml configuration
This commit is contained in:
qzl
2026-03-19 18:42:35 +08:00
parent 0661016827
commit 0abf51e837
55 changed files with 2172 additions and 1233 deletions
@@ -1,61 +0,0 @@
# UI Schema File Split Implementation Plan
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:**`apps/lib/core/schemas/ui_schema.dart` 从超大单文件拆分为同库的多个 `part` 文件,在不改变协议行为的前提下提升可维护性。
**Architecture:** 保留 `ui_schema.dart` 作为唯一对外入口和 single source of truth;通过 `part` 把 enums、common types、actions、nodes、document、builder 按职责拆分到 `core/schemas/ui_schema/` 子目录。所有类型名、JSON 字段、默认值与工厂方法逻辑保持完全一致,避免协议漂移。
**Tech Stack:** Dart library/part、Flutter analyze、Flutter test
---
### Task 1: 建立拆分骨架并保留外部接口
**Files:**
- Modify: `apps/lib/core/schemas/ui_schema.dart`
- Create: `apps/lib/core/schemas/ui_schema/enums.dart`
- Create: `apps/lib/core/schemas/ui_schema/common_types.dart`
- Create: `apps/lib/core/schemas/ui_schema/actions.dart`
- Create: `apps/lib/core/schemas/ui_schema/nodes.dart`
- Create: `apps/lib/core/schemas/ui_schema/document.dart`
- Create: `apps/lib/core/schemas/ui_schema/builders.dart`
- [ ] **Step 1: 在主文件添加 `part` 声明并保留文件头注释**
- [ ] **Step 1.1: 所有子文件统一使用 `part of '../ui_schema.dart';`,避免子目录相对路径错误**
- [ ] **Step 2: 将 enum 定义迁移到 `enums.dart`,语义不变**
- [ ] **Step 3: 将基础 DTO 迁移到 `common_types.dart`,语义不变**
- [ ] **Step 4: 将 Action 协议与解析逻辑迁移到 `actions.dart`,语义不变**
- [ ] **Step 5: 将 UiNode 与各 node 实现迁移到 `nodes.dart`,语义不变**
- [ ] **Step 6: 将文档配置/文档模型迁移到 `document.dart`,语义不变**
- [ ] **Step 7: 将 `buildSuccessDocument`/`buildErrorDocument` 迁移到 `builders.dart`**
### Task 2: 进行协议稳定性验证
**Files:**
- Create: `apps/test/core/schemas/ui_schema_test.dart`
- Test: `apps/test/features/chat/ui_schema_renderer_test.dart`
- Test: `apps/test/features/chat/ui_schema_navigation_test.dart`
- Test: `apps/test/features/chat/ag_ui_event_test.dart`
- [ ] **Step 1: 新增 `ui_schema.dart` 直连回归测试**
- 覆盖 enum fallback、`actionSpecFromJson` 分支、`UiNode.fromJson` 分支、Document/builder 默认值、round-trip 稳定性。
- [ ] **Step 2: 在 `apps/` 目录运行 analyze,确认 `part` 结构无编译错误**
- Run (`apps/`): `flutter analyze`
- [ ] **Step 3: 在 `apps/` 目录运行 UI Schema 渲染与导航相关测试**
- Run: `flutter test test/features/chat/ui_schema_renderer_test.dart`
- Run: `flutter test test/features/chat/ui_schema_navigation_test.dart`
- [ ] **Step 4: 在 `apps/` 目录运行 AG-UI 事件模型回归测试**
- Run: `flutter test test/features/chat/ag_ui_event_test.dart`
- [ ] **Step 5: 在 `apps/` 目录运行新增 schema 回归测试**
- Run: `flutter test test/core/schemas/ui_schema_test.dart`
### Task 3: 完成收尾与风险核对
**Files:**
- Modify: `apps/lib/core/schemas/ui_schema.dart`
- Modify: `apps/lib/core/schemas/ui_schema/*.dart`
- [ ] **Step 1: 检查 public API 未变化(类型名/函数名不变)**
- [ ] **Step 2: 检查 JSON 键、默认值、fallback 分支未变化**
- [ ] **Step 3: 确认 `ui_schema.dart` 行数显著下降并保留 single source 入口定位**