# DownloadFile

URL からファイルをダウンロードしてワークスペースに保存する。

## 基本

```js
DownloadFile({
  url: "https://example.com/chart.png",
  filename: "images/sales-chart.png",
  section: "output"
})
```

## パラメータ

- `url`: ダウンロード元 URL
- `filename`: 保存先パス（section 配下からの相対パス）
- `section`: `"input"` か `"output"` （成果物に使う場合は `"output"`）

## ファイル命名規約

### 画像（成果物に埋め込む場合）

- パス: `images/{わかりやすい名前}.png` （または .jpg / .webp / .gif）
- section: `"output"`
- 命名は内容を表すスラッグ（kebab-case 推奨）: `sales-q3-chart.png`, `product-screenshot-home.png`

### ダウンロード履歴

`logs/downloads.jsonl` に各ダウンロードのメタ情報（URL, 保存先, サイズ）が記録される。

## 成果物への画像埋め込み

ダウンロードした画像は Markdown レポートから相対パスで埋め込める:

```markdown
![Q3 売上推移](./images/sales-q3-chart.png)
```

レポート（output/report.md）と画像（output/images/*.png）が同じ section 配下にあれば `./images/` で参照可能。

## SSRF 保護

WebFetch と同じく、ローカル/プライベート IP はデフォルトブロック。Settings UI の「SSRF Allowed Hosts」で例外設定可能。

## 注意

- 大きすぎるファイル（数百MB以上）はタイムアウトしやすい
- バイナリファイル（PDF, 動画等）も保存可能だが、画像以外の用途では IngestDocument / TranscribeAudio 等の専用ツールも検討
