# get_duplicate_nodes()

指定スロットで名前が重複しているノードだけを取得します。右クリックメニュー **Duplicate Nodes** に対応します。

### シグネチャ
```python
api.get_duplicate_nodes(slot, select=0) -> dict
```

### パラメータ

| 名前 | 型 | 必須 | 説明 |
| --- | --- | --- | --- |
| `slot` | `int` | ○ | スロット番号（0～9）。bool/str/float → `TypeError` |
| `select` | `int` (0/1) または `bool` | ×（既定 `0`） | `0`=取得のみ、`1`=取得後にシーン選択 |

### 戻り値
```python
{
    "success": bool,
    "slot": int,
    "category": "duplicate_nodes",
    "count": int,
    "handles": list,               # list[int], 有効ノードのみ
    "names": list,                 # list[str], handles と 1:1
    "selected": int,               # 正規化済み select（0 または 1）
    "selected_count": int,
    "duplicate_names": list,       # list[str] duplicate name strings
    "message": str,
}
```

### 例
```python
from os_fast_ref.api import FastRefAPI

api = FastRefAPI()

# 取得のみ（パイプライン検証 — シーン選択なし）
dup = api.get_duplicate_nodes(slot=0)
if dup["duplicate_names"]:
    print("duplicates:", dup["duplicate_names"])
    print("nodes:", dup["names"])
else:
    print("no duplicates")

# 取得 + シーン選択（右クリックメニューと同じ）
api.get_duplicate_nodes(slot=0, select=1)
```

### ノート
- 空結果（`count=0`）はエラーではありません。
- 不正な `slot`/`select` は即例外です（`TypeError` / `ValueError`）。
- 共通契約・例外表は Get Nodes 概要ページを参照してください。
- `duplicate_names` に重複名一覧が追加で返ります。重複がなければ空リストです。