---
editLink: false
lastUpdated: false
---

[@salesforce/b2c-tooling-sdk](../../modules.md) / [cli](../index.md) / CartridgeDiscoveryOptions

# Interface: CartridgeDiscoveryOptions

Defined in: [packages/b2c-tooling-sdk/src/cli/cartridge-providers.ts:14](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1d26e4f14bc46a8c61692ab405f47c9ce084d9b1/packages/b2c-tooling-sdk/src/cli/cartridge-providers.ts#L14)

Extended options for cartridge discovery that includes instance context.

## Extends

- [`FindCartridgesOptions`](../../operations/code/interfaces/FindCartridgesOptions.md)

## Properties

### codeVersion?

> `optional` **codeVersion**: `string`

Defined in: [packages/b2c-tooling-sdk/src/cli/cartridge-providers.ts:18](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1d26e4f14bc46a8c61692ab405f47c9ce084d9b1/packages/b2c-tooling-sdk/src/cli/cartridge-providers.ts#L18)

Code version being deployed to (if known)

***

### directory

> **directory**: `string`

Defined in: [packages/b2c-tooling-sdk/src/cli/cartridge-providers.ts:16](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1d26e4f14bc46a8c61692ab405f47c9ce084d9b1/packages/b2c-tooling-sdk/src/cli/cartridge-providers.ts#L16)

Directory to search for cartridges

***

### exclude?

> `optional` **exclude**: `string`[]

Defined in: [packages/b2c-tooling-sdk/src/operations/code/cartridges.ts:28](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1d26e4f14bc46a8c61692ab405f47c9ce084d9b1/packages/b2c-tooling-sdk/src/operations/code/cartridges.ts#L28)

Cartridge names to exclude

#### Inherited from

[`FindCartridgesOptions`](../../operations/code/interfaces/FindCartridgesOptions.md).[`exclude`](../../operations/code/interfaces/FindCartridgesOptions.md#exclude)

***

### firstMatchOnly?

> `optional` **firstMatchOnly**: `boolean`

Defined in: [packages/b2c-tooling-sdk/src/operations/code/cartridges.ts:48](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1d26e4f14bc46a8c61692ab405f47c9ce084d9b1/packages/b2c-tooling-sdk/src/operations/code/cartridges.ts#L48)

When true, stop at the first matching cartridge and return only that one.
Useful for existence checks (e.g. workspace-type detection) where the full
list is not needed — it lets the underlying scan short-circuit instead of
enumerating every `.project` file. Filters from `include`/`exclude` are
applied while scanning, so the returned cartridge always satisfies them.

#### Inherited from

[`FindCartridgesOptions`](../../operations/code/interfaces/FindCartridgesOptions.md).[`firstMatchOnly`](../../operations/code/interfaces/FindCartridgesOptions.md#firstmatchonly)

***

### include?

> `optional` **include**: `string`[]

Defined in: [packages/b2c-tooling-sdk/src/operations/code/cartridges.ts:26](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1d26e4f14bc46a8c61692ab405f47c9ce084d9b1/packages/b2c-tooling-sdk/src/operations/code/cartridges.ts#L26)

Cartridge names to include (if empty, all are included)

#### Inherited from

[`FindCartridgesOptions`](../../operations/code/interfaces/FindCartridgesOptions.md).[`include`](../../operations/code/interfaces/FindCartridgesOptions.md#include)

***

### instance?

> `optional` **instance**: [`B2CInstance`](../../instance/classes/B2CInstance.md)

Defined in: [packages/b2c-tooling-sdk/src/cli/cartridge-providers.ts:20](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1d26e4f14bc46a8c61692ab405f47c9ce084d9b1/packages/b2c-tooling-sdk/src/cli/cartridge-providers.ts#L20)

B2C instance context (if available)

***

### maxDepth?

> `optional` **maxDepth**: `number`

Defined in: [packages/b2c-tooling-sdk/src/operations/code/cartridges.ts:40](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/1d26e4f14bc46a8c61692ab405f47c9ce084d9b1/packages/b2c-tooling-sdk/src/operations/code/cartridges.ts#L40)

Maximum directory depth to recurse when searching for cartridges,
expressed as the number of path segments to the marker file relative to
the search directory. A cartridge at `cartridges/<name>/.project` is
depth 3; the equivalent `cartridge/*.properties` marker at
`cartridges/<name>/cartridge/<name>.properties` is automatically adjusted
to depth 4 (maxDepth + 1) so both discovery methods honour the same
logical cartridge-nesting bound. When omitted the search is unbounded
(default). Bound this for untrusted/broad roots (e.g. an MCP server
launched from a home directory) to avoid scanning the whole filesystem.

#### Inherited from

[`FindCartridgesOptions`](../../operations/code/interfaces/FindCartridgesOptions.md).[`maxDepth`](../../operations/code/interfaces/FindCartridgesOptions.md#maxdepth)
