refactor(chat): 重构聊天模块并集成历史消息加载功能

- 删除冗余的 chat_history_repository 和 home_mock_data
- 简化 ag_ui_event fromJson 使用工厂映射表
- 提取 ChatBloc 事件处理方法,添加 loadHistory/loadMoreHistory
- HomeScreen 集成 ChatBloc 实现历史消息加载和下拉刷新
- 更新 AGENTS.md 文档约束
This commit is contained in:
qzl
2026-03-02 15:05:10 +08:00
parent 6b32990986
commit e161ca22c4
16 changed files with 915 additions and 752 deletions
@@ -25,6 +25,7 @@ const _$AgUiEventTypeEnumMap = {
AgUiEventType.toolCallEnd: 'toolCallEnd',
AgUiEventType.toolCallResult: 'toolCallResult',
AgUiEventType.toolCallError: 'toolCallError',
AgUiEventType.messagesSnapshot: 'messagesSnapshot',
AgUiEventType.unknown: 'unknown',
};
@@ -157,3 +158,39 @@ Map<String, dynamic> _$ToolCallErrorEventToJson(ToolCallErrorEvent instance) =>
'error': instance.error,
'code': instance.code,
};
MessagesSnapshotEvent _$MessagesSnapshotEventFromJson(
Map<String, dynamic> json,
) => MessagesSnapshotEvent(
messages: (json['messages'] as List<dynamic>)
.map((e) => SnapshotMessage.fromJson(e as Map<String, dynamic>))
.toList(),
);
Map<String, dynamic> _$MessagesSnapshotEventToJson(
MessagesSnapshotEvent instance,
) => <String, dynamic>{'messages': instance.messages};
SnapshotMessage _$SnapshotMessageFromJson(Map<String, dynamic> json) =>
SnapshotMessage(
id: json['id'] as String,
role: json['role'] as String,
content: json['content'] as String?,
toolCallId: json['toolCallId'] as String?,
ui: json['ui'] == null
? null
: UiCard.fromJson(json['ui'] as Map<String, dynamic>),
timestamp: json['timestamp'] == null
? null
: DateTime.parse(json['timestamp'] as String),
);
Map<String, dynamic> _$SnapshotMessageToJson(SnapshotMessage instance) =>
<String, dynamic>{
'id': instance.id,
'role': instance.role,
'content': instance.content,
'toolCallId': instance.toolCallId,
'ui': instance.ui,
'timestamp': instance.timestamp?.toIso8601String(),
};