(singleTenant bool)
| 797 | } |
| 798 | |
| 799 | func createEnvironmentFileDeleteTool(singleTenant bool) *Tool { |
| 800 | return &Tool{ |
| 801 | Definition: newEnvironmentTool( |
| 802 | envToolOptions{ |
| 803 | name: "environment_file_delete", |
| 804 | description: "Deletes a file at the specified path.", |
| 805 | useCurrentEnvironment: singleTenant, |
| 806 | }, |
| 807 | mcp.WithString("target_file", |
| 808 | mcp.Description("Path of the file to delete, absolute or relative to the workdir."), |
| 809 | mcp.Required(), |
| 810 | ), |
| 811 | ), |
| 812 | Handler: func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) { |
| 813 | repo, env, err := openEnvironment(ctx, request) |
| 814 | if err != nil { |
| 815 | return nil, err |
| 816 | } |
| 817 | |
| 818 | targetFile, err := request.RequireString("target_file") |
| 819 | if err != nil { |
| 820 | return nil, err |
| 821 | } |
| 822 | |
| 823 | if err := env.FileDelete(ctx, request.GetString("explanation", ""), targetFile); err != nil { |
| 824 | return nil, fmt.Errorf("failed to delete file: %w", err) |
| 825 | } |
| 826 | |
| 827 | if err := repo.Update(ctx, env, request.GetString("explanation", "")); err != nil { |
| 828 | return nil, fmt.Errorf("failed to update env: %w", err) |
| 829 | } |
| 830 | |
| 831 | return mcp.NewToolResultText(fmt.Sprintf("file %s deleted successfully and committed to container-use/%s remote ref", targetFile, env.ID)), nil |
| 832 | }, |
| 833 | } |
| 834 | } |
| 835 | |
| 836 | func createEnvironmentCheckpointTool(singleTenant bool) *Tool { |
| 837 | return &Tool{ |
no test coverage detected