---
url: 'https://adk.nht.io/api/@nhtio/adk/batteries/classes/HostEndpoint.md'
description: >-
  Host-side correlation engine over a [`PortLike`](https://adk.nht.io/api/@nhtio/adk/batteries/interfaces/PortLike). Queues
  calls/stream-starts made before `ready` and flushes them in order once it
  arrives; tracks in-flight calls (one-shot, resolved/rejected by a `result`
  envelope) and open streams (persistent, fed by
  `stream:delta`/`stream:end`/`stream:error` until closed). `terminate()`
  rejects every in-flight call and errors every open stream with a
  caller-supplied reason (the message text `host.ts` uses is
  `E_ISOLATED_TERMINATED`'s message).
---

# Class: HostEndpoint

Defined in: [src/batteries/isolation/protocol.ts:111](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/protocol.ts#L111)

Host-side correlation engine over a [PortLike](../interfaces/PortLike.md). Queues calls/stream-starts made before `ready`
and flushes them in order once it arrives; tracks in-flight calls (one-shot, resolved/rejected by a
`result` envelope) and open streams (persistent, fed by `stream:delta`/`stream:end`/`stream:error`
until closed). `terminate()` rejects every in-flight call and errors every open stream with a
caller-supplied reason (the message text `host.ts` uses is `E_ISOLATED_TERMINATED`'s message).

## Constructors

### Constructor

```ts
new HostEndpoint(port: PortLike, hooks?: HostEndpointHooks): HostEndpoint;
```

Defined in: [src/batteries/isolation/protocol.ts:121](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/protocol.ts#L121)

#### Parameters

| Parameter | Type                                                      |
| --------- | --------------------------------------------------------- |
| `port`    | [`PortLike`](../interfaces/PortLike.md)                   |
| `hooks`   | [`HostEndpointHooks`](../interfaces/HostEndpointHooks.md) |

#### Returns

`HostEndpoint`

## Accessors

### isReady

#### Get Signature

```ts
get isReady(): boolean;
```

Defined in: [src/batteries/isolation/protocol.ts:128](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/protocol.ts#L128)

Whether the guest has signaled `ready` yet.

##### Returns

`boolean`

***

### openStreamCount

#### Get Signature

```ts
get openStreamCount(): number;
```

Defined in: [src/batteries/isolation/protocol.ts:140](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/protocol.ts#L140)

Number of streams currently open (started, not yet ended/errored). Used by `host.ts` alongside
[pendingCallCount](#pendingcallcount) to report an accurate `inFlight` count on a crash.

##### Returns

`number`

***

### pendingCallCount

#### Get Signature

```ts
get pendingCallCount(): number;
```

Defined in: [src/batteries/isolation/protocol.ts:134](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/protocol.ts#L134)

Number of calls currently awaiting a `result` envelope. Used by `host.ts` to report an accurate
`inFlight` count on a crash before `terminate()` clears the pending map.

##### Returns

`number`

## Methods

### abort()

```ts
abort(id: string): void;
```

Defined in: [src/batteries/isolation/protocol.ts:223](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/protocol.ts#L223)

Send an `abort` envelope for an in-flight call's id. Does not itself reject the call — the guest
is expected to respond with a `result` (ok:false) once it observes the abort.

#### Parameters

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

#### Returns

`void`

***

### call()

```ts
call(method: string, args: WireValue[]): {
  id: string;
  promise: Promise<WireValue>;
};
```

Defined in: [src/batteries/isolation/protocol.ts:208](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/protocol.ts#L208)

Issue a request/response call. Resolves with the guest's returned [WireValue](../type-aliases/WireValue.md), rejects with a
reconstructed `Error` (see [wireErrorToError](../functions/wireErrorToError.md)) on failure or on `terminate()`.

#### Parameters

| Parameter | Type                                          |
| --------- | --------------------------------------------- |
| `method`  | `string`                                      |
| `args`    | [`WireValue`](../type-aliases/WireValue.md)\[] |

#### Returns

```ts
{
  id: string;
  promise: Promise<WireValue>;
}
```

| Name      | Type                                                     | Defined in                                                                                                                              |
| --------- | -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `id`      | `string`                                                 | [src/batteries/isolation/protocol.ts:208](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/protocol.ts#L208) |
| `promise` | `Promise`<[`WireValue`](../type-aliases/WireValue.md)> | [src/batteries/isolation/protocol.ts:208](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/protocol.ts#L208) |

***

### cancelStream()

```ts
cancelStream(id: string, reason?: WireValue): void;
```

Defined in: [src/batteries/isolation/protocol.ts:240](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/protocol.ts#L240)

Send a `stream:cancel` envelope and stop tracking the stream locally.

#### Parameters

| Parameter | Type                                        |
| --------- | ------------------------------------------- |
| `id`      | `string`                                    |
| `reason?` | [`WireValue`](../type-aliases/WireValue.md) |

#### Returns

`void`

***

### shutdown()

```ts
shutdown(): void;
```

Defined in: [src/batteries/isolation/protocol.ts:246](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/protocol.ts#L246)

Send a `shutdown` envelope (graceful-exit request; does not itself tear down the port).

#### Returns

`void`

***

### startStream()

```ts
startStream(
   stream: string,
   args: WireValue[],
   sink: StreamSink): string;
```

Defined in: [src/batteries/isolation/protocol.ts:232](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/protocol.ts#L232)

Start a fire-and-forward stream. Returns the correlation id immediately (before the guest
necessarily even exists, if not yet `ready`) and a `sink` the caller wires to a `ReadableStream`
controller.

#### Parameters

| Parameter | Type                                          |
| --------- | --------------------------------------------- |
| `stream`  | `string`                                      |
| `args`    | [`WireValue`](../type-aliases/WireValue.md)\[] |
| `sink`    | `StreamSink`                                  |

#### Returns

`string`

***

### terminate()

```ts
terminate(reason: string): void;
```

Defined in: [src/batteries/isolation/protocol.ts:254](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/protocol.ts#L254)

Reject every in-flight call and error every open stream with `reason`, clear all queued-but-unsent
envelopes, and unsubscribe from the port. Idempotent.

#### Parameters

| Parameter | Type     |
| --------- | -------- |
| `reason`  | `string` |

#### Returns

`void`
