---
url: 'https://adk.nht.io/api/@nhtio/adk/batteries/skills/interfaces/SkillManager.md'
description: Stateful skill lifecycle; construct one manager per conversation or session.
---

# Interface: SkillManager

Defined in: [src/batteries/skills/types.ts:243](https://github.com/NHTIO/ADK/blob/v1.20260911.0/src/src/batteries/skills/types.ts#L243)

Stateful skill lifecycle; construct one manager per conversation or session.

## Properties

| Property                                      | Modifier   | Type                                          | Description                                                                            | Defined in                                                                                                                  |
| --------------------------------------------- | ---------- | --------------------------------------------- | -------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
|  `middleware` | `readonly` | [`SkillMiddlewareSet`](SkillMiddlewareSet.md) | Middleware set with stable shape; functionality is derived from manager configuration. | [src/batteries/skills/types.ts:263](https://github.com/NHTIO/ADK/blob/v1.20260911.0/src/src/batteries/skills/types.ts#L263) |
|  `unsafe`         | `readonly` | readonly `string`\[]                           | Explicitly enabled containment controls, derived from the manager configuration.       | [src/batteries/skills/types.ts:261](https://github.com/NHTIO/ADK/blob/v1.20260911.0/src/src/batteries/skills/types.ts#L261) |

## Methods

### catalog()

```ts
catalog(): readonly CatalogEntry[];
```

Defined in: [src/batteries/skills/types.ts:245](https://github.com/NHTIO/ADK/blob/v1.20260911.0/src/src/batteries/skills/types.ts#L245)

Synchronous resolved catalog, including losing candidates and update flags.

#### Returns

readonly [`CatalogEntry`](CatalogEntry.md)\[]

***

### dispose()

```ts
dispose(): Promise<void>;
```

Defined in: [src/batteries/skills/types.ts:259](https://github.com/NHTIO/ADK/blob/v1.20260911.0/src/src/batteries/skills/types.ts#L259)

Disposes skill workspaces and drops all projections, including when middleware is skipped.

#### Returns

`Promise`<`void`>

***

### load()

```ts
load(id: string, ctx: DispatchContext): Promise<LoadResult>;
```

Defined in: [src/batteries/skills/types.ts:255](https://github.com/NHTIO/ADK/blob/v1.20260911.0/src/src/batteries/skills/types.ts#L255)

Initializes and immediately projects a skill's body and tools for this dispatch.

#### Parameters

| Parameter | Type                                                              |
| --------- | ----------------------------------------------------------------- |
| `id`      | `string`                                                          |
| `ctx`     | [`DispatchContext`](../../../types/interfaces/DispatchContext.md) |

#### Returns

`Promise`<[`LoadResult`](LoadResult.md)>

***

### loaded()

```ts
loaded(): readonly string[];
```

Defined in: [src/batteries/skills/types.ts:247](https://github.com/NHTIO/ADK/blob/v1.20260911.0/src/src/batteries/skills/types.ts#L247)

Initialized manager state, independent of any turn context.

#### Returns

readonly `string`\[]

***

### projected()

```ts
projected(ctx:
  | TurnContext
  | DispatchContext): readonly ProjectedSkill[];
```

Defined in: [src/batteries/skills/types.ts:249](https://github.com/NHTIO/ADK/blob/v1.20260911.0/src/src/batteries/skills/types.ts#L249)

Skills actually projected into this context and callable in this turn.

#### Parameters

| Parameter | Type                                                                                                                              |
| --------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `ctx`     | | [`TurnContext`](../../../types/interfaces/TurnContext.md) | [`DispatchContext`](../../../types/interfaces/DispatchContext.md) |

#### Returns

readonly [`ProjectedSkill`](ProjectedSkill.md)\[]

***

### refresh()

```ts
refresh(id?: string): Promise<RefreshResult>;
```

Defined in: [src/batteries/skills/types.ts:251](https://github.com/NHTIO/ADK/blob/v1.20260911.0/src/src/batteries/skills/types.ts#L251)

Catalog-only rediscovery; never swaps an initialized version.

#### Parameters

| Parameter | Type     |
| --------- | -------- |
| `id?`     | `string` |

#### Returns

`Promise`<[`RefreshResult`](RefreshResult.md)>

***

### refreshAndProject()

```ts
refreshAndProject(ctx:
  | TurnContext
| DispatchContext, id?: string): Promise<RefreshResult>;
```

Defined in: [src/batteries/skills/types.ts:253](https://github.com/NHTIO/ADK/blob/v1.20260911.0/src/src/batteries/skills/types.ts#L253)

Explicitly re-reads and swaps the loaded version, then projects it into this context.

#### Parameters

| Parameter | Type                                                                                                                              |
| --------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `ctx`     | | [`TurnContext`](../../../types/interfaces/TurnContext.md) | [`DispatchContext`](../../../types/interfaces/DispatchContext.md) |
| `id?`     | `string`                                                                                                                          |

#### Returns

`Promise`<[`RefreshResult`](RefreshResult.md)>

***

### unload()

```ts
unload(id: string, ctx: DispatchContext): Promise<void>;
```

Defined in: [src/batteries/skills/types.ts:257](https://github.com/NHTIO/ADK/blob/v1.20260911.0/src/src/batteries/skills/types.ts#L257)

Removes a skill from initialized state and unregisters its projected tools.

#### Parameters

| Parameter | Type                                                              |
| --------- | ----------------------------------------------------------------- |
| `id`      | `string`                                                          |
| `ctx`     | [`DispatchContext`](../../../types/interfaces/DispatchContext.md) |

#### Returns

`Promise`<`void`>
