> ## Documentation Index
> Fetch the complete documentation index at: https://developers.telnyx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# defineAgentHarnessPortsContract()

> **defineAgentHarnessPortsContract**(`label`, `factory`): `void`

Register the executable v2 ports contract against an adapter factory.

Runtime and plain-Node adapters call this same function; adapter-specific
tests may add stricter checks, but may not weaken these shared semantics.

**Parameters**

| Parameter | Type |
| - | - |
| `label` | `string` |
| `factory` | [`AgentHarnessPortsContractFactory`](/docs/agent-sdk/harness-sdk/adapters/contract#agentharnessportscontractfactory) |

**Returns**
`void`

## AgentHarnessPortsContractFixture

A fresh adapter fixture consumed by the shared ports contract suite.

**Properties**
**delivery**

> **delivery**: `object`

Test-host control for exercising current due-task delivery and retry.

**advanceBy()**

> **advanceBy**(`milliseconds`): `void`

**Parameters**

| Parameter | Type |
| - | - |
| `milliseconds` | `number` |

**Returns**
`void`

**calls()**

> **calls**(): readonly `string`\[]

**Returns**
readonly `string`\[]

**drainDue()**

> **drainDue**(): `Promise`\<`number`>

**Returns**
`Promise`\<`number`>

**failNext()**

> **failNext**(`count?`): `void`

**Parameters**

| Parameter | Type |
| - | - |
| `count?` | `number` |

**Returns**
`void`

**selfCancelAndThrow()**

> **selfCancelAndThrow**(): `Promise`\<`number`>

Exercise a task handler that cancels its own recurring id, then throws.

**Returns**
`Promise`\<`number`>

**selfReplaceAndThrow()**

> **selfReplaceAndThrow**(): `Promise`\<`number`>

Exercise a task handler that re-arms its own id, then throws.

**Returns**
`Promise`\<`number`>

**ports**

> **ports**: [`AgentHarnessPorts`](/docs/agent-sdk/harness-sdk/ports)\<`TestState`>

Adapter under test.

**stateHook**

> **stateHook**: `object`

Test-host control for exercising post-commit state-hook failures.

**calls()**

> **calls**(): readonly `Readonly`\<\{ `next`: `TestState`; `prev`: `TestState`; }>\[]

**Returns**
readonly `Readonly`\<\{ `next`: `TestState`; `prev`: `TestState`; }>\[]

**failNext()**

> **failNext**(`count?`): `void`

**Parameters**

| Parameter | Type |
| - | - |
| `count?` | `number` |

**Returns**
`void`

**Methods**
**close()**

> **close**(): `void` | `Promise`\<`void`>

Release fixture-owned resources.

**Returns**
`void` | `Promise`\<`void`>

**reopen()**

> **reopen**(): [`AgentHarnessPorts`](/docs/agent-sdk/harness-sdk/ports)\<`TestState`> | `Promise`\<[`AgentHarnessPorts`](/docs/agent-sdk/harness-sdk/ports)\<`TestState`>>

Reconstruct an adapter over the same persistent backing.

**Returns**
[`AgentHarnessPorts`](/docs/agent-sdk/harness-sdk/ports)\<`TestState`> | `Promise`\<[`AgentHarnessPorts`](/docs/agent-sdk/harness-sdk/ports)\<`TestState`>>

**rewrapLive()**

> **rewrapLive**(): [`AgentHarnessPorts`](/docs/agent-sdk/harness-sdk/ports)\<`TestState`>

Construct a distinct wrapper for the current live activation.

**Returns**
[`AgentHarnessPorts`](/docs/agent-sdk/harness-sdk/ports)\<`TestState`>

## AgentHarnessPortsContractFactory

> **AgentHarnessPortsContractFactory** = () => `Promise`\<[`AgentHarnessPortsContractFixture`](/docs/agent-sdk/harness-sdk/adapters/contract#agentharnessportscontractfixture)> | [`AgentHarnessPortsContractFixture`](/docs/agent-sdk/harness-sdk/adapters/contract#agentharnessportscontractfixture)

Factory used by [defineAgentHarnessPortsContract](/docs/agent-sdk/harness-sdk/adapters/contract).

**Returns**
`Promise`\<[`AgentHarnessPortsContractFixture`](/docs/agent-sdk/harness-sdk/adapters/contract#agentharnessportscontractfixture)> | [`AgentHarnessPortsContractFixture`](/docs/agent-sdk/harness-sdk/adapters/contract#agentharnessportscontractfixture)
