79 lines
2.0 KiB
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);
|
|
}
|