Files
Auto-GPT/frontend/lib/models/step.dart
hunteraraujo b04f4e0f55 Added Artifact Handling for Chat Messages
- Enhanced the `Chat` model to include an `artifacts` field to hold associated artifacts.
- Updated the `AgentMessageTile` widget to display the number of artifacts and added functionality to trigger artifact downloads upon button press.
- Introduced a method in `ChatViewModel` to leverage the `ChatService` for artifact downloads.
2023-09-27 22:37:06 -07:00

51 lines
1.5 KiB
Dart

// TODO: Refactor this to match which values are required and optional
class Step {
final String input;
final Map<String, dynamic> additionalInput;
final String taskId;
final String stepId;
final String name;
final String status;
final String output;
final Map<String, dynamic> additionalOutput;
// TODO: Create an actual artifact object
final List<dynamic> artifacts;
final bool isLast;
Step({
required this.input,
required this.additionalInput,
required this.taskId,
required this.stepId,
required this.name,
required this.status,
required this.output,
required this.additionalOutput,
required this.artifacts,
required this.isLast,
});
factory Step.fromMap(Map<String, dynamic>? map) {
if (map == null) {
throw ArgumentError('Null map provided to Step.fromMap');
}
return Step(
input: map['input'] ?? '',
additionalInput: map['additional_input'] != null
? Map<String, dynamic>.from(map['additional_input'])
: {},
taskId: map['task_id'] ?? '',
stepId: map['step_id'] ?? '',
name: map['name'] ?? '',
status: map['status'] ?? '',
output: map['output'] ?? '',
additionalOutput: map['additional_output'] != null
? Map<String, dynamic>.from(map['additional_output'])
: {},
artifacts:
map['artifacts'] != null ? List<dynamic>.from(map['artifacts']) : [],
isLast: map['is_last'] ?? false,
);
}
}