---
url: 'https://adk.nht.io/api/@nhtio/adk/common/functions/effectiveToolMethods.md'
---

# Function: effectiveToolMethods()

```ts
function effectiveToolMethods(ctor: unknown): readonly ToolMethodDescriptor[];
```

Defined in: [src/lib/classes/spooled\_artifact.ts:81](https://github.com/NHTIO/ADK/blob/v1.20260911.0/src/src/lib/classes/spooled_artifact.ts#L81)

Returns the effective artifact tool descriptors from a constructor's static prototype chain.

Core subclasses declare only their own `toolMethods`; a static property shadows its ancestor
rather than concatenating it. This walks leaf-first and deduplicates by `name`, the absolute
model-facing tool identifier, rather than `method`, which is the instance dispatch name and may
legitimately differ (and is not the vocabulary exposed to callers). The nearest declaration
wins, matching tool collision replacement semantics.

## Parameters

| Parameter | Type      | Description                                                      |
| --------- | --------- | ---------------------------------------------------------------- |
| `ctor`    | `unknown` | The artifact constructor whose effective descriptors are wanted. |

## Returns

readonly [`ToolMethodDescriptor`](../interfaces/ToolMethodDescriptor.md)\[]

A frozen, leaf-first array of descriptors, or an empty array when none are declared.
