it0/it0_app/lib/features/chat/domain/entities/stream_event.dart

79 lines
2.0 KiB
Dart

sealed class StreamEvent {}
class ThinkingEvent extends StreamEvent {
final String content;
ThinkingEvent(this.content);
}
class TextEvent extends StreamEvent {
final String content;
TextEvent(this.content);
}
class ToolUseEvent extends StreamEvent {
final String toolName;
final Map<String, dynamic> input;
ToolUseEvent(this.toolName, this.input);
}
class ToolResultEvent extends StreamEvent {
final String toolName;
final String output;
final bool isError;
ToolResultEvent(this.toolName, this.output, this.isError);
}
class ApprovalRequiredEvent extends StreamEvent {
final String taskId;
final String command;
final int riskLevel;
ApprovalRequiredEvent(this.taskId, this.command, this.riskLevel);
}
class CompletedEvent extends StreamEvent {
final String summary;
CompletedEvent(this.summary);
}
class ErrorEvent extends StreamEvent {
final String message;
ErrorEvent(this.message);
}
class StandingOrderDraftEvent extends StreamEvent {
final Map<String, dynamic> draft;
StandingOrderDraftEvent(this.draft);
}
class StandingOrderConfirmedEvent extends StreamEvent {
final String orderId;
final String orderName;
StandingOrderConfirmedEvent(this.orderId, this.orderName);
}
/// Carries the real sessionId assigned by the backend.
class SessionInfoEvent extends StreamEvent {
final String sessionId;
SessionInfoEvent(this.sessionId);
}
/// Carries the taskId assigned by the backend for cancel tracking.
class TaskInfoEvent extends StreamEvent {
final String taskId;
TaskInfoEvent(this.taskId);
}
/// Emitted when a task is cancelled (by user or by injection).
class CancelledEvent extends StreamEvent {
CancelledEvent();
}
/// Emitted when the agent wants to trigger DingTalk OAuth for an agent instance.
/// The UI should show an authorization card so the user can tap "立即授权".
class OAuthPromptEvent extends StreamEvent {
final String url;
final String instanceId;
final String instanceName;
OAuthPromptEvent(this.url, this.instanceId, this.instanceName);
}