Skip to content

[FEAT]: Add support for defined tools #36

@StevanFreeborn

Description

@StevanFreeborn

Text editor tool: https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/text-editor-tool
Web search tool: https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/web-search-tool
Code execution tool: https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/code-execution-tool

  • When implementing this should add test to make sure files created via this tool can be downloaded
public async Task GetFileAsync_WhenCalled_ItShouldReturnFileContent()
{
  var httpClient = new HttpClient();
  httpClient.DefaultRequestHeaders.Add("anthropic-beta", "files-api-2025-04-14");
  var client = CreateClient(httpClient);

  var filePath = TestFileHelper.GetTestFilePath("story.txt");
  var fileContent = await File.ReadAllTextAsync(filePath);
  var fileBytes = await File.ReadAllBytesAsync(TestFileHelper.GetTestFilePath("story.txt"));
  var createFileRequest = new CreateFileRequest(fileBytes, "story.txt", "text/plain");
  var createdFile = await client.CreateFileAsync(createFileRequest);

  var result = await client.GetFileAsync(createdFile.Value.Id);

  result.IsSuccess.Should().BeTrue();
  result.Value.Should().BeOfType<MemoryStream>();

  using var streamReader = new StreamReader(result.Value);
  var content = await streamReader.ReadToEndAsync();
  content.Should().Be(fileContent);
}

Metadata

Metadata

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions