createGetPackageInfoTool function

Tool<Object, ToolOptions, Object> createGetPackageInfoTool()

Implementation

Tool createGetPackageInfoTool() {
  return Tool.fromFunction<GetPackageInfoInput, String>(
    name: 'get_package_info',
    description:
        'Fetch comprehensive information about a specific package from pub.flutter-io.cn. '
        'Returns: version, description, homepage, repository URL, pub points, popularity score, '
        'like count, SDK constraints, dependencies, and dev dependencies. '
        'Use this to gather detailed metrics for packages you are considering recommending. '
        'Call this for your top 2-3 candidates after searching to make informed comparisons.',
    inputJsonSchema: object({
      'package': string().min(1).meta(
          const MetadataEntry(description: 'Package name to get info for')),
    }).toJsonSchema(),
    func: (GetPackageInfoInput input) async =>
        await _fetchPackageInfo(input.package),
    getInputFromJson: (json) => GetPackageInfoInput.fromJson(json),
  );
}