handleToolPartialResultEvent method

void handleToolPartialResultEvent(
  1. Map<String, dynamic> data
)

Handle TOOL_PARTIAL_RESULT events for tools that emit intermediate phases (currently document_create/document_update).

Implementation

void handleToolPartialResultEvent(Map<String, dynamic> data) {
  try {
    final ToolUsePartialResultData event = ToolUsePartialResultData.fromJson(
      data,
    );
    if (event.toolName.isEmpty || event.phase.isEmpty) return;
    markToolLoadingStarted(event.toolName);

    String? status;
    switch (event.phase) {
      case "lint":
        status = Strings.toolPhaseLint.tr;
        break;
      case "creating":
        status = Strings.toolPhaseCreating.tr;
        break;
      case "updating":
        status = Strings.toolPhaseUpdating.tr;
        break;
      default:
        break;
    }

    if (status == null) return;

    // Ensure the tool is tracked as active; partial results only happen for
    // tools that are currently running. Default to document icon where type
    // isn't already known.
    activeToolLoadings[event.toolName] = event.toolUseType;
    activeToolLoadings.refresh();
    toolPartialStatuses[event.toolName] = status;
    toolPartialStatuses.refresh();
    update();
    syncLoadingMessageFromActiveTools();
  } catch (_) {
    return;
  }
}