---
url: >-
  https://adk.nht.io/api/@nhtio/adk/batteries/tools/_shared/functions/resolveArtifactSync.md
---

# Function: resolveArtifactSync()

```ts
function resolveArtifactSync(
  resolver: SyncArtifactResolver,
  onInvalid: (reason: string) => never,
): () => SpooledArtifactCtor;
```

Defined in: [batteries/tools/\_shared/index.ts:139](https://github.com/NHTIO/ADK/blob/v1.20260609.1/src/batteries/tools/_shared/index.ts#L139)

Synchronous [resolveArtifact](resolveArtifact.md): accepts only the [SyncArtifactResolver](../type-aliases/SyncArtifactResolver.md) subset and
throws (via `onInvalid`) on an async resolver — a runtime guard for JS callers who bypass the
compile-time narrowing.

## Parameters

| Parameter   | Type                                                              | Description                                                      |
| ----------- | ----------------------------------------------------------------- | ---------------------------------------------------------------- |
| `resolver`  | [`SyncArtifactResolver`](../type-aliases/SyncArtifactResolver.md) | A constructor or a sync resolver.                                |
| `onInvalid` | (`reason`: `string`) => `never`                                   | Throws a battery-scoped error; receives a human-readable reason. |

## Returns

A sync `() => SpooledArtifactCtor` suitable for `Tool.artifactConstructor`.

() => [`SpooledArtifactCtor`](../type-aliases/SpooledArtifactCtor.md)
