import "package:provider/provider.dart"; import "package:shadcn_flutter/shadcn_flutter.dart"; import "../../../../providers/chat_provider.dart"; import "../permission_decision.dart"; import "../../../../utils/path_utils.dart"; import "tool_bubble_base.dart"; class GrepBubble extends StatelessWidget { const GrepBubble({ super.key, required this.input, this.result, this.pendingPermission, }); final Map input; final String? result; final PendingPermission? pendingPermission; @override Widget build(BuildContext context) { final projectRoot = context.read().workingDirectory; final pattern = input["pattern"] as String? ?? ""; final searchPath = input["path"] as String?; final detail = searchPath != null && searchPath.isNotEmpty ? "${shortenPath(searchPath, projectRoot)} — $pattern" : pattern; return ToolBubbleBase( toolName: "Grep", icon: LucideIcons.search, result: result, pendingPermission: pendingPermission, detail: detail, ); } }