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

# API Reference (Auto)

> Autogenerated API reference from TypeScript sources.

# API Reference (Auto)

This section is autogenerated from TypeScript source files using TypeDoc. Each area is grouped into collapsible sections.

<Note>
  Run `pnpm docs:generate` after API changes to refresh this section.
</Note>

## Core exports

<AccordionGroup>
  <Accordion title="Core exports: classes/AgentToolDiscoveryService">
    @fentaris/core / AgentToolDiscoveryService

    Defined in: packages/core/src/tools/index.ts:127

    Agent-native tool discovery helpers.

    ## Constructors

    ### Constructor

    > **new AgentToolDiscoveryService**(`config`): `AgentToolDiscoveryService`

    Defined in: packages/core/src/tools/index.ts:130

    #### Parameters

    ##### config

    `McpProxyOptions`

    #### Returns

    `AgentToolDiscoveryService`

    ## Methods

    ### authList()

    > **authList**(): `AgentJsonEnvelope`\<`object`\[]>

    Defined in: packages/core/src/tools/index.ts:184

    #### Returns

    `AgentJsonEnvelope`\<`object`\[]>

    ### authLogin()

    > **authLogin**(`mcp`, `selector`): `AgentJsonEnvelope`\<\{ `instructions`: `string`; `loginMode`: `"delegated"`; `mcp`: `string`; `selector`: `string`; `status`: `AuthStatus`; }>

    Defined in: packages/core/src/tools/index.ts:216

    #### Parameters

    ##### mcp

    `string`

    ##### selector

    `string`

    #### Returns

    `AgentJsonEnvelope`\<\{ `instructions`: `string`; `loginMode`: `"delegated"`; `mcp`: `string`; `selector`: `string`; `status`: `AuthStatus`; }>

    ### authStatus()

    > **authStatus**(`mcp`, `selector`): `AuthStatus`

    Defined in: packages/core/src/tools/index.ts:193

    #### Parameters

    ##### mcp

    `string`

    ##### selector

    `string`

    #### Returns

    `AuthStatus`

    ### authStatusEnvelope()

    > **authStatusEnvelope**(`mcp`, `selector`): `AgentJsonEnvelope`\<\{ `allowed`: `string`]; `mcp`: `string`; `selector`: `string`; `status`: \[`AuthStatus`; }>

    Defined in: packages/core/src/tools/index.ts:206

    #### Parameters

    ##### mcp

    `string`

    ##### selector

    `string`

    #### Returns

    `AgentJsonEnvelope`\<\{ `allowed`: `string`]; `mcp`: `string`; `selector`: `string`; `status`: \[`AuthStatus`; }>

    ### get()

    > **get**(`toolName`, `options?`): `Promise`\<`AgentJsonEnvelope`\<`DetailedToolMetadata`>>

    Defined in: packages/core/src/tools/index.ts:154

    #### Parameters

    ##### toolName

    `string`

    ##### options?

    `ToolDiscoveryOptions` = `{}`

    #### Returns

    `Promise`\<`AgentJsonEnvelope`\<`DetailedToolMetadata`>>

    ### list()

    > **list**(`options?`): `Promise`\<`AgentJsonEnvelope`\<`CompactToolMetadata`] | \[`DetailedToolMetadata`\[]>>

    Defined in: packages/core/src/tools/index.ts:135

    #### Parameters

    ##### options?

    `ToolDiscoveryOptions` = `{}`

    #### Returns

    `Promise`\<`AgentJsonEnvelope`\<`CompactToolMetadata`] | \[`DetailedToolMetadata`\[]>>

    ### schema()

    > **schema**(`toolName`, `options?`): `Promise`\<`AgentJsonEnvelope`\<`SchemaInspection`>>

    Defined in: packages/core/src/tools/index.ts:166

    #### Parameters

    ##### toolName

    `string`

    ##### options?

    `ToolDiscoveryOptions` & `object` = `{}`

    #### Returns

    `Promise`\<`AgentJsonEnvelope`\<`SchemaInspection`>>

    ### search()

    > **search**(`query`, `options?`): `Promise`\<`AgentJsonEnvelope`\<`CompactToolMetadata`] | \[`DetailedToolMetadata`\[]>>

    Defined in: packages/core/src/tools/index.ts:142

    #### Parameters

    ##### query

    `string`

    ##### options?

    `ToolDiscoveryOptions` = `{}`

    #### Returns

    `Promise`\<`AgentJsonEnvelope`\<`CompactToolMetadata`] | \[`DetailedToolMetadata`\[]>>
  </Accordion>

  <Accordion title="Core exports: classes/ConsoleLoggerDriver">
    @fentaris/core / ConsoleLoggerDriver

    Defined in: packages/core/src/logging/logger.ts:77

    Console-based logger driver.

    ## Implements

    * `LoggerDriver`

    ## Constructors

    ### Constructor

    > **new ConsoleLoggerDriver**(): `ConsoleLoggerDriver`

    #### Returns

    `ConsoleLoggerDriver`

    ## Methods

    ### write()

    > **write**(`entry`): `void`

    Defined in: packages/core/src/logging/logger.ts:82

    Write the log entry to the console.

    #### Parameters

    ##### entry

    `LogEntry`

    #### Returns

    `void`

    #### Implementation of

    `LoggerDriver.write`
  </Accordion>

  <Accordion title="Core exports: classes/DefaultEdgeControlPlaneService">
    @fentaris/core / DefaultEdgeControlPlaneService

    Defined in: packages/core/src/edge/management.ts:79

    Reference service composing replaceable registry and connection contracts.

    ## Implements

    * `EdgeControlPlaneService`

    ## Constructors

    ### Constructor

    > **new DefaultEdgeControlPlaneService**(`devices`, `connections`, `terminator`): `DefaultEdgeControlPlaneService`

    Defined in: packages/core/src/edge/management.ts:80

    #### Parameters

    ##### devices

    `EdgeDeviceRegistry`

    ##### connections

    `EdgeConnectionStore`

    ##### terminator

    `EdgeConnectionTerminator`

    #### Returns

    `DefaultEdgeControlPlaneService`

    ## Methods

    ### disconnect()

    > **disconnect**(`context`, `deviceName`): `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    Defined in: packages/core/src/edge/management.ts:164

    #### Parameters

    ##### context

    `EdgeManagementContext`

    ##### deviceName

    `string`

    #### Returns

    `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    #### Implementation of

    `EdgeControlPlaneService`.`disconnect`

    ### get()

    > **get**(`context`, `deviceName`): `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    Defined in: packages/core/src/edge/management.ts:160

    #### Parameters

    ##### context

    `EdgeManagementContext`

    ##### deviceName

    `string`

    #### Returns

    `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    #### Implementation of

    `EdgeControlPlaneService`.`get`

    ### join()

    > **join**(`request`): `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    Defined in: packages/core/src/edge/management.ts:86

    #### Parameters

    ##### request

    `EdgeJoinRequest`

    #### Returns

    `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    #### Implementation of

    `EdgeControlPlaneService`.`join`

    ### list()

    > **list**(`context`, `options?`): `Promise`\<`EdgeManagementPage`\<`EdgeManagedDeviceView`>>

    Defined in: packages/core/src/edge/management.ts:123

    #### Parameters

    ##### context

    `EdgeManagementContext`

    ##### options?

    `EdgeInventoryListOptions` = `{}`

    #### Returns

    `Promise`\<`EdgeManagementPage`\<`EdgeManagedDeviceView`>>

    #### Implementation of

    `EdgeControlPlaneService`.`list`

    ### revoke()

    > **revoke**(`context`, `deviceName`): `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    Defined in: packages/core/src/edge/management.ts:178

    #### Parameters

    ##### context

    `EdgeManagementContext`

    ##### deviceName

    `string`

    #### Returns

    `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    #### Implementation of

    `EdgeControlPlaneService`.`revoke`

    ### update()

    > **update**(`context`, `deviceName`, `update`): `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    Defined in: packages/core/src/edge/management.ts:113

    #### Parameters

    ##### context

    `EdgeManagementContext`

    ##### deviceName

    `string`

    ##### update

    `EdgeInventoryUpdate`

    #### Returns

    `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    #### Implementation of

    `EdgeControlPlaneService`.`update`
  </Accordion>

  <Accordion title="Core exports: classes/DefaultErrorMapper">
    @fentaris/core / DefaultErrorMapper

    Defined in: packages/core/src/errors/errors.ts:18

    Default error mapper for upstream and governance errors.

    ## Implements

    * `ErrorMapper`

    ## Constructors

    ### Constructor

    > **new DefaultErrorMapper**(): `DefaultErrorMapper`

    #### Returns

    `DefaultErrorMapper`

    ## Methods

    ### mapError()

    > **mapError**(`error`): `object`

    Defined in: packages/core/src/errors/errors.ts:19

    #### Parameters

    ##### error

    `unknown`

    #### Returns

    `object`

    ##### code

    > **code**: `number`

    ##### message

    > **message**: `string`

    #### Implementation of

    `ErrorMapper.mapError`
  </Accordion>

  <Accordion title="Core exports: classes/DeviceSelectorBuilder">
    @fentaris/core / DeviceSelectorBuilder

    Defined in: packages/core/src/edge/target.ts:61

    Composable device selector builder. Own enumerable fields are serializable;
    the DeviceSelectorBuilder.or method lives on the prototype and is
    omitted by `JSON.stringify`.

    ## Implements

    * `DeviceSelector`

    ## Properties

    ### alias?

    > `readonly` `optional` **alias?**: `string`

    Defined in: packages/core/src/edge/target.ts:63

    Alias for a `named` selector.

    #### Implementation of

    `DeviceSelector`.`alias`

    ### pool?

    > `readonly` `optional` **pool?**: `string`

    Defined in: packages/core/src/edge/target.ts:64

    Pool name for a `pool` selector.

    #### Implementation of

    `DeviceSelector`.`pool`

    ### selectors?

    > `readonly` `optional` **selectors?**: readonly `DeviceSelector`\[]

    Defined in: packages/core/src/edge/target.ts:66

    Ordered selectors for a `fallback` selector; first eligible wins.

    #### Implementation of

    `DeviceSelector`.`selectors`

    ### strategy?

    > `readonly` `optional` **strategy?**: `TargetSelectionStrategy`

    Defined in: packages/core/src/edge/target.ts:65

    Selection strategy for a `pool` selector.

    #### Implementation of

    `DeviceSelector`.`strategy`

    ### type

    > `readonly` **type**: `DeviceSelectorType`

    Defined in: packages/core/src/edge/target.ts:62

    #### Implementation of

    `DeviceSelector`.`type`

    ## Methods

    ### or()

    > **or**(`other`): `DeviceSelectorBuilder`

    Defined in: packages/core/src/edge/target.ts:109

    Compose a fallback: resolve `this` first, then `other` if not eligible.

    #### Parameters

    ##### other

    `DeviceSelector`

    #### Returns

    `DeviceSelectorBuilder`

    ### toJSON()

    > **toJSON**(): `DeviceSelector`

    Defined in: packages/core/src/edge/target.ts:114

    Return a plain serializable selector object without prototype methods.

    #### Returns

    `DeviceSelector`

    ### named()

    > `static` **named**(`alias`): `DeviceSelectorBuilder`

    Defined in: packages/core/src/edge/target.ts:93

    Resolve a control-plane named alias to a device.

    #### Parameters

    ##### alias

    `string`

    #### Returns

    `DeviceSelectorBuilder`

    ### pool()

    > `static` **pool**(`name`, `strategy?`): `DeviceSelectorBuilder`

    Defined in: packages/core/src/edge/target.ts:101

    Resolve one eligible device from a shared pool using `strategy`.

    #### Parameters

    ##### name

    `string`

    ##### strategy?

    `TargetSelectionStrategy`

    #### Returns

    `DeviceSelectorBuilder`

    ### session()

    > `static` **session**(): `DeviceSelectorBuilder`

    Defined in: packages/core/src/edge/target.ts:83

    Select the device requested during downstream session establishment.

    #### Returns

    `DeviceSelectorBuilder`

    ### userDefault()

    > `static` **userDefault**(): `DeviceSelectorBuilder`

    Defined in: packages/core/src/edge/target.ts:88

    Select the subject's configured default device.

    #### Returns

    `DeviceSelectorBuilder`
  </Accordion>

  <Accordion title="Core exports: classes/EdgeCapabilityCache">
    @fentaris/core / EdgeCapabilityCache

    Defined in: packages/core/src/edge/capabilityCache.ts:57

    Validated capability cache keyed by logical deployment, never public device identity.

    ## Constructors

    ### Constructor

    > **new EdgeCapabilityCache**(`store?`, `now?`): `EdgeCapabilityCache`

    Defined in: packages/core/src/edge/capabilityCache.ts:62

    #### Parameters

    ##### store?

    `EdgeCapabilityCacheStore` = `...`

    ##### now?

    () => `number`

    #### Returns

    `EdgeCapabilityCache`

    ## Properties

    ### store

    > `readonly` **store**: `EdgeCapabilityCacheStore`

    Defined in: packages/core/src/edge/capabilityCache.ts:63

    ## Methods

    ### addListener()

    > **addListener**(`listener`): () => `void`

    Defined in: packages/core/src/edge/capabilityCache.ts:67

    #### Parameters

    ##### listener

    `EdgeCapabilityChangeListener`

    #### Returns

    () => `void`

    ### discoveryTransport()

    > **discoveryTransport**(`tenantId`, `deploymentId`): `FentarisTransport`

    Defined in: packages/core/src/edge/capabilityCache.ts:120

    Read-only transport facade consumed by proxy list operations.

    #### Parameters

    ##### tenantId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `FentarisTransport`

    ### setDesiredRecipe()

    > **setDesiredRecipe**(`tenantId`, `deploymentId`, `recipeDigest`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/capabilityCache.ts:72

    #### Parameters

    ##### tenantId

    `string`

    ##### deploymentId

    `string`

    ##### recipeDigest

    `string`

    #### Returns

    `Promise`\<`void`>

    ### setOnline()

    > **setOnline**(`tenantId`, `deploymentId`, `online`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/capabilityCache.ts:94

    #### Parameters

    ##### tenantId

    `string`

    ##### deploymentId

    `string`

    ##### online

    `boolean`

    #### Returns

    `Promise`\<`void`>

    ### state()

    > **state**(`tenantId`, `deploymentId`): `Promise`\<`EdgeDiscoveryState`>

    Defined in: packages/core/src/edge/capabilityCache.ts:99

    #### Parameters

    ##### tenantId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`EdgeDiscoveryState`>

    ### update()

    > **update**(`manifest`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/capabilityCache.ts:82

    #### Parameters

    ##### manifest

    `EdgeCapabilityManifest`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: classes/EdgeChildBindingManager">
    @fentaris/core / EdgeChildBindingManager

    Defined in: packages/core/src/edge/sessionSelection.ts:110

    Allocates and cleans isolated child bindings without touching parent pins.

    ## Constructors

    ### Constructor

    > **new EdgeChildBindingManager**(`options`): `EdgeChildBindingManager`

    Defined in: packages/core/src/edge/sessionSelection.ts:115

    #### Parameters

    ##### options

    `EdgeChildBindingManagerOptions`

    #### Returns

    `EdgeChildBindingManager`

    ## Methods

    ### allocate()

    > **allocate**(`input`): `Promise`\<\{ `binding`: `EdgeChildBinding`; `signal`: `AbortSignal`; }>

    Defined in: packages/core/src/edge/sessionSelection.ts:120

    #### Parameters

    ##### input

    `EdgeChildBindingAllocation`

    #### Returns

    `Promise`\<\{ `binding`: `EdgeChildBinding`; `signal`: `AbortSignal`; }>

    ### cancel()

    > **cancel**(`childBindingId`): `Promise`\<`EdgeChildBinding` | `undefined`>

    Defined in: packages/core/src/edge/sessionSelection.ts:155

    #### Parameters

    ##### childBindingId

    `string`

    #### Returns

    `Promise`\<`EdgeChildBinding` | `undefined`>

    ### endParent()

    > **endParent**(`parentSessionId`, `parentRequestId?`): `Promise`\<readonly `EdgeChildBinding`\[]>

    Defined in: packages/core/src/edge/sessionSelection.ts:159

    #### Parameters

    ##### parentSessionId

    `string`

    ##### parentRequestId?

    `string`

    #### Returns

    `Promise`\<readonly `EdgeChildBinding`\[]>

    ### finish()

    > **finish**(`childBindingId`, `reason`): `Promise`\<`EdgeChildBinding` | `undefined`>

    Defined in: packages/core/src/edge/sessionSelection.ts:144

    #### Parameters

    ##### childBindingId

    `string`

    ##### reason

    `EdgeChildBindingTerminalReason`

    #### Returns

    `Promise`\<`EdgeChildBinding` | `undefined`>

    ### get()

    > **get**(`childBindingId`): `Promise`\<`EdgeChildBinding` | `undefined`>

    Defined in: packages/core/src/edge/sessionSelection.ts:140

    Resolve one child correlation without exposing or changing parent pins.

    #### Parameters

    ##### childBindingId

    `string`

    #### Returns

    `Promise`\<`EdgeChildBinding` | `undefined`>

    ### purgeExpired()

    > **purgeExpired**(): `Promise`\<readonly `EdgeChildBinding`\[]>

    Defined in: packages/core/src/edge/sessionSelection.ts:169

    #### Returns

    `Promise`\<readonly `EdgeChildBinding`\[]>

    ### shutdown()

    > **shutdown**(`parentSessionIds`): `Promise`\<readonly `EdgeChildBinding`\[]>

    Defined in: packages/core/src/edge/sessionSelection.ts:179

    #### Parameters

    ##### parentSessionIds

    readonly `string`\[]

    #### Returns

    `Promise`\<readonly `EdgeChildBinding`\[]>
  </Accordion>

  <Accordion title="Core exports: classes/EdgeFanoutCoordinator">
    @fentaris/core / EdgeFanoutCoordinator

    Defined in: packages/core/src/edge/fanout.ts:69

    Coordinates child calls without retries or mutation of transparent parent pins.

    ## Constructors

    ### Constructor

    > **new EdgeFanoutCoordinator**(`options`): `EdgeFanoutCoordinator`

    Defined in: packages/core/src/edge/fanout.ts:73

    #### Parameters

    ##### options

    `EdgeFanoutCoordinatorOptions`

    #### Returns

    `EdgeFanoutCoordinator`

    ## Properties

    ### limits

    > `readonly` **limits**: `EdgeOrchestrationLimits`

    Defined in: packages/core/src/edge/fanout.ts:70

    ## Methods

    ### callMany()

    > **callMany**(`context`, `raw`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/edge/fanout.ts:79

    #### Parameters

    ##### context

    `ProxyContext`

    ##### raw

    `Readonly`\<`Record`\<`string`, `unknown`>>

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>
  </Accordion>

  <Accordion title="Core exports: classes/EdgeInstallationTelemetry">
    @fentaris/core / EdgeInstallationTelemetry

    Defined in: packages/core/src/edge/installationObservability.ts:26

    Structured managed-installation telemetry with mandatory protocol/local-data redaction.

    ## Constructors

    ### Constructor

    > **new EdgeInstallationTelemetry**(`sink`, `now?`): `EdgeInstallationTelemetry`

    Defined in: packages/core/src/edge/installationObservability.ts:27

    #### Parameters

    ##### sink

    `EdgeInstallationTelemetrySink`

    ##### now?

    () => `number`

    #### Returns

    `EdgeInstallationTelemetry`

    ## Methods

    ### emit()

    > **emit**(`event`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/installationObservability.ts:32

    #### Parameters

    ##### event

    `Omit`\<`EdgeInstallationRuntimeEvent`, `"occurredAt"`> & `object`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: classes/EdgeInventoryService">
    @fentaris/core / EdgeInventoryService

    Defined in: packages/core/src/edge/inventoryService.ts:169

    Composes durable identity/metadata with authorization, authenticated dynamic
    state, readiness, and capability manifests before producing public views.

    ## Constructors

    ### Constructor

    > **new EdgeInventoryService**(`options`): `EdgeInventoryService`

    Defined in: packages/core/src/edge/inventoryService.ts:173

    #### Parameters

    ##### options

    `EdgeInventoryServiceOptions`

    #### Returns

    `EdgeInventoryService`

    ## Methods

    ### get()

    > **get**(`context`, `deviceName`): `Promise`\<`EdgePublicDeviceView`>

    Defined in: packages/core/src/edge/inventoryService.ts:193

    #### Parameters

    ##### context

    `EdgeInventoryContext`

    ##### deviceName

    `string`

    #### Returns

    `Promise`\<`EdgePublicDeviceView`>

    ### list()

    > **list**(`context`, `query?`): `Promise`\<`EdgePublicInventoryPage`>

    Defined in: packages/core/src/edge/inventoryService.ts:178

    #### Parameters

    ##### context

    `EdgeInventoryContext`

    ##### query?

    `EdgeInventoryQuery` = `{}`

    #### Returns

    `Promise`\<`EdgePublicInventoryPage`>

    ### revalidateForDispatch()

    > **revalidateForDispatch**(`context`, `deviceRef`, `deploymentId?`): `Promise`\<`EdgeDispatchDeviceResolution`>

    Defined in: packages/core/src/edge/inventoryService.ts:277

    #### Parameters

    ##### context

    `EdgeInventoryContext`

    ##### deviceRef

    `EdgePublicDeviceRef`

    ##### deploymentId?

    `string`

    #### Returns

    `Promise`\<`EdgeDispatchDeviceResolution`>

    ### select()

    > **select**(`context`, `request`): `Promise`\<`EdgeSelectionResult`>

    Defined in: packages/core/src/edge/inventoryService.ts:202

    #### Parameters

    ##### context

    `EdgeInventoryContext`

    ##### request

    `EdgeSelectionRequest`

    #### Returns

    `Promise`\<`EdgeSelectionResult`>

    ### selectMany()

    > **selectMany**(`context`, `request`, `maxResults`): `Promise`\<`EdgeSelectionSetResult`>

    Defined in: packages/core/src/edge/inventoryService.ts:239

    Resolve all eligible candidates up to a caller-supplied hard result cap.

    #### Parameters

    ##### context

    `EdgeInventoryContext`

    ##### request

    `EdgeSelectionRequest`

    ##### maxResults

    `number`

    #### Returns

    `Promise`\<`EdgeSelectionSetResult`>
  </Accordion>

  <Accordion title="Core exports: classes/EdgeLocalAuthorityStore">
    @fentaris/core / EdgeLocalAuthorityStore

    Defined in: packages/core/src/edge/integratedLocalStore.ts:100

    Atomic owner-only file-backed local authority store.
    Not safe for multi-instance writers; acquires an exclusive process lock.

    ## Constructors

    ### Constructor

    > **new EdgeLocalAuthorityStore**(`options`): `EdgeLocalAuthorityStore`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:108

    #### Parameters

    ##### options

    `EdgeLocalAuthorityStoreOptions`

    #### Returns

    `EdgeLocalAuthorityStore`

    ## Properties

    ### diagnostics

    > `readonly` **diagnostics**: `EdgeAdapterDiagnostics` = `LOCAL_EDGE_AUTHORITY_ADAPTER_DIAGNOSTICS`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:101

    ## Accessors

    ### directory

    #### Get Signature

    > **get** **directory**(): `string`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:113

    ##### Returns

    `string`

    ### lockPath

    #### Get Signature

    > **get** **lockPath**(): `string`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:121

    ##### Returns

    `string`

    ### statePath

    #### Get Signature

    > **get** **statePath**(): `string`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:117

    ##### Returns

    `string`

    ## Methods

    ### close()

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

    Defined in: packages/core/src/edge/integratedLocalStore.ts:136

    #### Returns

    `Promise`\<`void`>

    ### consumeRefreshCredential()

    > **consumeRefreshCredential**(`refreshToken`): `Promise`\<`EdgeLocalRefreshCredential` | `undefined`>

    Defined in: packages/core/src/edge/integratedLocalStore.ts:183

    #### Parameters

    ##### refreshToken

    `string`

    #### Returns

    `Promise`\<`EdgeLocalRefreshCredential` | `undefined`>

    ### decryptSigningKey()

    > **decryptSigningKey**(): `Buffer`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:290

    #### Returns

    `Buffer`

    ### getEnrolledDevice()

    > **getEnrolledDevice**(`tenantId`, `edgeNodeId`): `Promise`\<`EdgeEnrolledDeviceAuthority` | `undefined`>

    Defined in: packages/core/src/edge/integratedLocalStore.ts:217

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`EdgeEnrolledDeviceAuthority` | `undefined`>

    ### getSessionByDeviceCodeHash()

    > **getSessionByDeviceCodeHash**(`deviceCodeHash`): `Promise`\<`EdgeAuthorizationSession` | `undefined`>

    Defined in: packages/core/src/edge/integratedLocalStore.ts:157

    #### Parameters

    ##### deviceCodeHash

    `string`

    #### Returns

    `Promise`\<`EdgeAuthorizationSession` | `undefined`>

    ### getSessionByUserCode()

    > **getSessionByUserCode**(`userCode`): `Promise`\<`EdgeAuthorizationSession` | `undefined`>

    Defined in: packages/core/src/edge/integratedLocalStore.ts:152

    #### Parameters

    ##### userCode

    `string`

    #### Returns

    `Promise`\<`EdgeAuthorizationSession` | `undefined`>

    ### open()

    > **open**(): `Promise`\<`EdgeLocalAuthorityDocument`>

    Defined in: packages/core/src/edge/integratedLocalStore.ts:125

    #### Returns

    `Promise`\<`EdgeLocalAuthorityDocument`>

    ### putAuthorizationSession()

    > **putAuthorizationSession**(`session`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedLocalStore.ts:161

    #### Parameters

    ##### session

    `EdgeAuthorizationSession`

    #### Returns

    `Promise`\<`void`>

    ### putDesiredAssignment()

    > **putDesiredAssignment**(`snapshot`, `expectedVersion`): `Promise`\<`"unchanged"` | `"updated"` | `"conflict"`>

    Defined in: packages/core/src/edge/integratedLocalStore.ts:256

    #### Parameters

    ##### snapshot

    `EdgeDesiredAssignmentSnapshot`

    ##### expectedVersion

    `number` | `undefined`

    #### Returns

    `Promise`\<`"unchanged"` | `"updated"` | `"conflict"`>

    ### putEnrolledDevice()

    > **putEnrolledDevice**(`device`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedLocalStore.ts:205

    #### Parameters

    ##### device

    `EdgeEnrolledDeviceAuthority`

    #### Returns

    `Promise`\<`void`>

    ### putRefreshCredential()

    > **putRefreshCredential**(`credential`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedLocalStore.ts:171

    #### Parameters

    ##### credential

    `EdgeLocalRefreshCredential`

    #### Returns

    `Promise`\<`void`>

    ### removeDesiredAssignment()

    > **removeDesiredAssignment**(`tenantId`, `edgeNodeId`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedLocalStore.ts:281

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`void`>

    ### revokeDevice()

    > **revokeDevice**(`tenantId`, `edgeNodeId`, `revokedAt?`): `Promise`\<`EdgeEnrolledDeviceAuthority` | `undefined`>

    Defined in: packages/core/src/edge/integratedLocalStore.ts:223

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### revokedAt?

    `number` = `...`

    #### Returns

    `Promise`\<`EdgeEnrolledDeviceAuthority` | `undefined`>

    ### snapshot()

    > **snapshot**(): `EdgeLocalAuthorityDocument`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:147

    #### Returns

    `EdgeLocalAuthorityDocument`
  </Accordion>

  <Accordion title="Core exports: classes/EdgeLocalOperatorClient">
    @fentaris/core / EdgeLocalOperatorClient

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:250

    Client for the protected local operator channel.

    ## Constructors

    ### Constructor

    > **new EdgeLocalOperatorClient**(`endpoint`): `EdgeLocalOperatorClient`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:251

    #### Parameters

    ##### endpoint

    `EdgeLocalOperatorEndpoint`

    #### Returns

    `EdgeLocalOperatorClient`

    ## Methods

    ### request()

    > **request**(`request`): `Promise`\<`EdgeLocalOperatorResponse`>

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:253

    #### Parameters

    ##### request

    `Omit`\<\{ `command`: `"approve"`; `credential`: `string`; `decision`: `EdgeDeviceApprovalDecision`; `userCode`: `string`; }, `"credential"`> & `object` | `Omit`\<\{ `command`: `"deny"`; `credential`: `string`; `decision`: `Omit`\<`EdgeDeviceApprovalDecision`, `"subjectId"`> & `object`; `userCode`: `string`; }, `"credential"`> & `object` | `Omit`\<\{ `command`: `"status"`; `credential`: `string`; }, `"credential"`> & `object`

    #### Returns

    `Promise`\<`EdgeLocalOperatorResponse`>
  </Accordion>

  <Accordion title="Core exports: classes/EdgeLocalOperatorServer">
    @fentaris/core / EdgeLocalOperatorServer

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:95

    Owner-protected local operator channel used by `fentaris edge approve`.
    It never mutates authority files directly from the CLI process.

    ## Implements

    * `EdgeLocalOperatorChannel`

    ## Constructors

    ### Constructor

    > **new EdgeLocalOperatorServer**(`options`): `EdgeLocalOperatorServer`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:98

    #### Parameters

    ##### options

    `EdgeLocalOperatorServerOptions`

    #### Returns

    `EdgeLocalOperatorServer`

    ## Accessors

    ### endpoint

    #### Get Signature

    > **get** **endpoint**(): `EdgeLocalOperatorEndpoint`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:100

    ##### Returns

    `EdgeLocalOperatorEndpoint`

    ## Methods

    ### approve()

    > **approve**(`userCode`, `decision`): `Promise`\<`EdgeAuthorizationSession`>

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:155

    #### Parameters

    ##### userCode

    `string`

    ##### decision

    `EdgeDeviceApprovalDecision`

    #### Returns

    `Promise`\<`EdgeAuthorizationSession`>

    #### Implementation of

    `EdgeLocalOperatorChannel`.`approve`

    ### close()

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

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:133

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeLocalOperatorChannel`.`close`

    ### deny()

    > **deny**(`userCode`, `decision`): `Promise`\<`EdgeAuthorizationSession`>

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:159

    #### Parameters

    ##### userCode

    `string`

    ##### decision

    `Omit`\<`EdgeDeviceApprovalDecision`, `"subjectId"`> & `object`

    #### Returns

    `Promise`\<`EdgeAuthorizationSession`>

    #### Implementation of

    `EdgeLocalOperatorChannel`.`deny`

    ### start()

    > **start**(): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:104

    #### Returns

    `Promise`\<`void`>

    ### status()

    > **status**(): `Promise`\<\{ `enrolledDevices`: `number`; `mode`: `"local"`; `multiInstance`: `false`; `pendingApprovals`: `number`; }>

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:169

    #### Returns

    `Promise`\<\{ `enrolledDevices`: `number`; `mode`: `"local"`; `multiInstance`: `false`; `pendingApprovals`: `number`; }>

    #### Implementation of

    `EdgeLocalOperatorChannel`.`status`
  </Accordion>

  <Accordion title="Core exports: classes/EdgeSessionPinner">
    @fentaris/core / EdgeSessionPinner

    Defined in: packages/core/src/edge/sessionPinning.ts:86

    Lazily pins downstream sessions to edge devices and reuses pins across
    MCP declarations that share a logical target in the same session.

    ## Constructors

    ### Constructor

    > **new EdgeSessionPinner**(`inputs`): `EdgeSessionPinner`

    Defined in: packages/core/src/edge/sessionPinning.ts:93

    #### Parameters

    ##### inputs

    `EdgeSessionPinnerInputs`

    #### Returns

    `EdgeSessionPinner`

    ## Properties

    ### store

    > `readonly` **store**: `SessionBindingStore`

    Defined in: packages/core/src/edge/sessionPinning.ts:90

    ## Methods

    ### addListener()

    > **addListener**(`listener`): `void`

    Defined in: packages/core/src/edge/sessionPinning.ts:105

    Register a removal listener (see SessionBindingStore.addListener).

    #### Parameters

    ##### listener

    `SessionBindingListener`

    #### Returns

    `void`

    ### endSession()

    > **endSession**(`sessionId`): `Promise`\<readonly `SessionTargetBinding`\[]>

    Defined in: packages/core/src/edge/sessionPinning.ts:236

    Remove and return bindings for a session on downstream session end.

    #### Parameters

    ##### sessionId

    `string`

    #### Returns

    `Promise`\<readonly `SessionTargetBinding`\[]>

    ### pin()

    > **pin**(`request`): `Promise`\<`SessionPinResult`>

    Defined in: packages/core/src/edge/sessionPinning.ts:122

    Lazily resolve and pin `{ session, subject, target }` to one eligible edge
    node before the first edge-dependent operation, reusing an existing pin
    for the same logical target within the same downstream session.

    #### Parameters

    ##### request

    `SessionPinRequest`

    #### Returns

    `Promise`\<`SessionPinResult`>

    #### Throws

    `EDGE_UNAUTHORIZED_TARGET` for an ineligible explicit
    session selection.

    #### Throws

    `EDGE_PLACEMENT_AMBIGUOUS` for unresolved runtime group
    overlap.

    #### Throws

    `EDGE_UNAVAILABLE` when no eligible device exists or a
    different edge node attempts to take over an existing pin.

    ### purgeExpired()

    > **purgeExpired**(): `Promise`\<readonly `SessionTargetBinding`\[]>

    Defined in: packages/core/src/edge/sessionPinning.ts:248

    Remove expired bindings.

    #### Returns

    `Promise`\<readonly `SessionTargetBinding`\[]>

    ### reconnect()

    > **reconnect**(`key`, `edgeNodeId`, `connectionGeneration`): `Promise`\<`SessionTargetBinding` | `undefined`>

    Defined in: packages/core/src/edge/sessionPinning.ts:214

    Advance the connection generation for a pinned binding on reconnect by
    the same enrolled node. Throws `EDGE_UNAVAILABLE` when a different node
    attempts to resume the binding (silent takeover is rejected).

    #### Parameters

    ##### key

    `SessionBindingKey`

    ##### edgeNodeId

    `string`

    ##### connectionGeneration

    `number`

    #### Returns

    `Promise`\<`SessionTargetBinding` | `undefined`>

    ### removeTarget()

    > **removeTarget**(`targetName`): `Promise`\<readonly `SessionTargetBinding`\[]>

    Defined in: packages/core/src/edge/sessionPinning.ts:243

    Remove and return bindings for a target on target removal/shutdown.

    #### Parameters

    ##### targetName

    `string`

    #### Returns

    `Promise`\<readonly `SessionTargetBinding`\[]>

    ### shutdown()

    > **shutdown**(): `Promise`\<readonly `SessionTargetBinding`\[]>

    Defined in: packages/core/src/edge/sessionPinning.ts:253

    Remove every binding on runtime shutdown.

    #### Returns

    `Promise`\<readonly `SessionTargetBinding`\[]>
  </Accordion>

  <Accordion title="Core exports: classes/EdgeSessionSelectionService">
    @fentaris/core / EdgeSessionSelectionService

    Defined in: packages/core/src/edge/sessionSelection.ts:35

    Validates and stores agent-requested device choices only before target pinning.

    ## Constructors

    ### Constructor

    > **new EdgeSessionSelectionService**(`options`): `EdgeSessionSelectionService`

    Defined in: packages/core/src/edge/sessionSelection.ts:40

    #### Parameters

    ##### options

    `EdgeSessionSelectionServiceOptions`

    #### Returns

    `EdgeSessionSelectionService`

    ## Methods

    ### endSession()

    > **endSession**(`sessionId`): `Promise`\<readonly `EdgeSessionSelection`\[]>

    Defined in: packages/core/src/edge/sessionSelection.ts:79

    #### Parameters

    ##### sessionId

    `string`

    #### Returns

    `Promise`\<readonly `EdgeSessionSelection`\[]>

    ### get()

    > **get**(`sessionId`, `subjectId`, `targetName`): `Promise`\<`EdgeSessionSelection` | `undefined`>

    Defined in: packages/core/src/edge/sessionSelection.ts:75

    #### Parameters

    ##### sessionId

    `string`

    ##### subjectId

    `string`

    ##### targetName

    `string`

    #### Returns

    `Promise`\<`EdgeSessionSelection` | `undefined`>

    ### select()

    > **select**(`request`): `Promise`\<`EdgeSessionSelection`>

    Defined in: packages/core/src/edge/sessionSelection.ts:46

    #### Parameters

    ##### request

    `EdgeSessionSelectionRequest`

    #### Returns

    `Promise`\<`EdgeSessionSelection`>
  </Accordion>

  <Accordion title="Core exports: classes/EdgeSingleCallCoordinator">
    @fentaris/core / EdgeSingleCallCoordinator

    Defined in: packages/core/src/edge/controlInvocation.ts:59

    Resolve, validate, isolate, dispatch, and clean up one explicit Edge call.

    ## Constructors

    ### Constructor

    > **new EdgeSingleCallCoordinator**(`options`): `EdgeSingleCallCoordinator`

    Defined in: packages/core/src/edge/controlInvocation.ts:65

    #### Parameters

    ##### options

    `EdgeSingleCallCoordinatorOptions`

    #### Returns

    `EdgeSingleCallCoordinator`

    ## Methods

    ### call()

    > **call**(`context`, `raw`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/edge/controlInvocation.ts:72

    #### Parameters

    ##### context

    `ProxyContext`

    ##### raw

    `Readonly`\<`Record`\<`string`, `unknown`>>

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>
  </Accordion>

  <Accordion title="Core exports: classes/EdgeTelemetry">
    @fentaris/core / EdgeTelemetry

    Defined in: packages/core/src/edge/observability.ts:48

    Structured edge telemetry emitter with mandatory protocol/local-data redaction.

    ## Constructors

    ### Constructor

    > **new EdgeTelemetry**(`sink`, `now?`): `EdgeTelemetry`

    Defined in: packages/core/src/edge/observability.ts:49

    #### Parameters

    ##### sink

    `EdgeTelemetrySink`

    ##### now?

    () => `number`

    #### Returns

    `EdgeTelemetry`

    ## Methods

    ### emit()

    > **emit**(`event`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/observability.ts:54

    #### Parameters

    ##### event

    `Omit`\<`EdgeRuntimeEvent`, `"occurredAt"`> & `object`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: classes/EdgeTransport">
    @fentaris/core / EdgeTransport

    Defined in: packages/core/src/edge/EdgeTransport.ts:71

    Virtual MCP transport backed by a correlated edge channel.

    The selected route is supplied through the explicit proxy-context contract.
    Requests enforce deadlines, propagate cancellation, reject mismatched or
    malformed responses, and never allow a late result to satisfy another call.

    ## Implements

    * `FentarisTransport`

    ## Constructors

    ### Constructor

    > **new EdgeTransport**(`options`): `EdgeTransport`

    Defined in: packages/core/src/edge/EdgeTransport.ts:82

    #### Parameters

    ##### options

    `EdgeTransportOptions`

    #### Returns

    `EdgeTransport`

    ## Methods

    ### callTool()

    > **callTool**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/edge/EdgeTransport.ts:102

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `unknown`; }

    ###### name

    `string`

    ###### task?

    \{ `ttl?`: `number`; }

    ###### task.ttl?

    `number`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    #### Implementation of

    `FentarisTransport.callTool`

    ### close()

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

    Defined in: packages/core/src/edge/EdgeTransport.ts:134

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `FentarisTransport.close`

    ### complete()

    > **complete**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    Defined in: packages/core/src/edge/EdgeTransport.ts:126

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### argument

    \{ `name`: `string`; `value`: `string`; }

    ###### argument.name

    `string`

    ###### argument.value

    `string`

    ###### context?

    \{ `arguments?`: \{\[`key`: `string`]: `string`; }; }

    ###### context.arguments?

    \{\[`key`: `string`]: `string`; }

    ###### ref

    \{ `name`: `string`; `type`: `"ref/prompt"`; } | \{ `type`: `"ref/resource"`; `uri`: `string`; }

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    #### Implementation of

    `FentarisTransport.complete`

    ### getPrompt()

    > **getPrompt**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    Defined in: packages/core/src/edge/EdgeTransport.ts:122

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `string`; }

    ###### name

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.getPrompt`

    ### listPrompts()

    > **listPrompts**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    Defined in: packages/core/src/edge/EdgeTransport.ts:118

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listPrompts`

    ### listResources()

    > **listResources**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    Defined in: packages/core/src/edge/EdgeTransport.ts:106

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listResources`

    ### listResourceTemplates()

    > **listResourceTemplates**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    Defined in: packages/core/src/edge/EdgeTransport.ts:114

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listResourceTemplates`

    ### listTools()

    > **listTools**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    Defined in: packages/core/src/edge/EdgeTransport.ts:98

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listTools`

    ### ping()

    > **ping**(): `Promise`\<\{ `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; }>

    Defined in: packages/core/src/edge/EdgeTransport.ts:130

    #### Returns

    `Promise`\<\{ `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; }>

    #### Implementation of

    `FentarisTransport.ping`

    ### readResource()

    > **readResource**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    Defined in: packages/core/src/edge/EdgeTransport.ts:110

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### uri

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    #### Implementation of

    `FentarisTransport.readResource`

    ### withProxyContext()

    > **withProxyContext**\<`T`>(`context`, `run`): `Promise`\<`T`>

    Defined in: packages/core/src/edge/EdgeTransport.ts:94

    Run an MCP operation with the governed proxy context that authorized it.

    Context-aware transports (including edge dispatch) use this explicit
    contract to observe the authenticated subject, downstream session, policy
    decision, and selected capability without changing operation signatures.
    Transports that do not need proxy context may omit it.

    #### Type Parameters

    ##### T

    `T`

    #### Parameters

    ##### context

    `ProxyContext`

    ##### run

    () => `Promise`\<`T`>

    #### Returns

    `Promise`\<`T`>

    #### Implementation of

    `FentarisTransport.withProxyContext`
  </Accordion>

  <Accordion title="Core exports: classes/EdgeWebSocketGateway">
    @fentaris/core / EdgeWebSocketGateway

    Defined in: packages/core/src/edge/gateway.ts:117

    Reference single-process outbound WebSocket gateway.

    Production multi-instance deployments should replace its active socket map
    with a distributed channel broker while retaining these authentication,
    generation, authorization, and protocol semantics.

    ## Implements

    * `EdgeTransportChannel`
    * `EdgeConnectionTerminator`

    ## Constructors

    ### Constructor

    > **new EdgeWebSocketGateway**(`options`): `EdgeWebSocketGateway`

    Defined in: packages/core/src/edge/gateway.ts:127

    #### Parameters

    ##### options

    `EdgeWebSocketGatewayOptions`

    #### Returns

    `EdgeWebSocketGateway`

    ## Methods

    ### accept()

    > **accept**(`socket`, `credential`): `Promise`\<`EdgeConnectionRecord`>

    Defined in: packages/core/src/edge/gateway.ts:142

    Accept an outbound edge socket and complete hello/authentication/protocol
    negotiation before exposing the connection.

    #### Parameters

    ##### socket

    `EdgeGatewaySocket`

    ##### credential

    `string`

    #### Returns

    `Promise`\<`EdgeConnectionRecord`>

    ### close()

    > **close**(`reason?`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/gateway.ts:267

    Stop accepting routed work and close every active generation idempotently.

    #### Parameters

    ##### reason?

    `string` = `"runtime-shutdown"`

    #### Returns

    `Promise`\<`void`>

    ### disconnect()

    > **disconnect**(`tenantId`, `edgeNodeId`, `connectionGeneration`, `reason`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/gateway.ts:210

    Close and clean the exact authenticated connection generation.

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### connectionGeneration

    `number`

    ##### reason

    `"revoked"` | `"operator-disconnect"`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeConnectionTerminator`.`disconnect`

    ### onMessage()

    > **onMessage**(`handler`): () => `void`

    Defined in: packages/core/src/edge/gateway.ts:204

    #### Parameters

    ##### handler

    (`message`) => `void`

    #### Returns

    () => `void`

    #### Implementation of

    `EdgeTransportChannel`.`onMessage`

    ### publishDesiredState()

    > **publishDesiredState**(`state`): `Promise`\<`"published"` | `"unchanged"`>

    Defined in: packages/core/src/edge/gateway.ts:226

    Publish desired state idempotently. A repeated identical version is stored
    as unchanged and is not resent; stale or conflicting versions are rejected.

    #### Parameters

    ##### state

    `EdgeDesiredStateMessage`

    #### Returns

    `Promise`\<`"published"` | `"unchanged"`>

    ### send()

    > **send**(`message`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/gateway.ts:195

    Send a correlated MCP request/cancellation to its authenticated edge.

    #### Parameters

    ##### message

    `EdgeMcpOutboundEnvelope`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeTransportChannel`.`send`

    ### sweepExpiredConnections()

    > **sweepExpiredConnections**(): `Promise`\<readonly `EdgeConnectionRecord`\[]>

    Defined in: packages/core/src/edge/gateway.ts:251

    Close connections whose authenticated heartbeat expired.

    #### Returns

    `Promise`\<readonly `EdgeConnectionRecord`\[]>
  </Accordion>

  <Accordion title="Core exports: classes/FentarisAuth">
    @fentaris/core / FentarisAuth

    Defined in: packages/core/src/auth/auth.ts:92

    Unified local auth configuration.

    ## Methods

    ### getBinding()

    > **getBinding**(`serverName`): \{ `credential`: `string`; `type`: `"bearer"`; } | \{ `credential`: `string`; `header`: `string`; `type`: `"header"`; } | \{ `credential`: `string`; `env`: `string`; `type`: `"env"`; } | `undefined`

    Defined in: packages/core/src/auth/auth.ts:186

    #### Parameters

    ##### serverName

    `string`

    #### Returns

    \{ `credential`: `string`; `type`: `"bearer"`; } | \{ `credential`: `string`; `header`: `string`; `type`: `"header"`; } | \{ `credential`: `string`; `env`: `string`; `type`: `"env"`; } | `undefined`

    ### identityStrategy()

    > **identityStrategy**(`options?`): `IdentityStrategy`

    Defined in: packages/core/src/auth/auth.ts:182

    #### Parameters

    ##### options?

    ###### header?

    `string`

    ###### name?

    `string`

    #### Returns

    `IdentityStrategy`

    ### resolveApiKey()

    > **resolveApiKey**(`apiKey`): `string` | `null`

    Defined in: packages/core/src/auth/auth.ts:172

    #### Parameters

    ##### apiKey

    `string`

    #### Returns

    `string` | `null`

    ### resolveCredential()

    > **resolveCredential**(`reference`, `subject`): `CredentialResolution` | `null`

    Defined in: packages/core/src/auth/auth.ts:190

    #### Parameters

    ##### reference

    `string`

    ##### subject

    `ResolvedSubject`

    #### Returns

    `CredentialResolution` | `null`

    ### compareApiKey()

    > `static` **compareApiKey**(`candidate`, `provided`): `boolean`

    Defined in: packages/core/src/auth/auth.ts:168

    Compare a stored raw or hashed API key with a provided raw key.

    #### Parameters

    ##### candidate

    `string`

    ##### provided

    `string`

    #### Returns

    `boolean`

    ### decryptCredentials()

    > `static` **decryptCredentials**(`envelope`, `key`): `object`

    Defined in: packages/core/src/auth/auth.ts:151

    Decrypt and validate a local credentials envelope.

    #### Parameters

    ##### envelope

    `unknown`

    ##### key

    `string` | `Buffer`\<`ArrayBufferLike`>

    #### Returns

    `object`

    ##### defaults

    > **defaults**: `Record`\<`string`, `string`>

    ##### groups

    > **groups**: `Record`\<`string`, `Record`\<`string`, `string`>>

    ##### users

    > **users**: `Record`\<`string`, \{ `apiKeys`: `string`\[]; `credentials`: `Record`\<`string`, `string`>; }>

    ### encryptCredentials()

    > `static` **encryptCredentials**(`credentials`, `key`): \{ `algorithm`: `"aes-256-gcm"`; `ciphertext`: `string`; `iv`: `string`; `salt`: `string`; `tag`: `string`; `version`: `1`; } | \{ `algorithm`: `"aes-256-gcm"`; `ciphertext`: `string`; `iv`: `string`; `kdf`: \{ `iterations`: `number`; `keyLength`: `32`; `name`: `"pbkdf2-sha256"`; `salt`: `string`; }; `tag`: `string`; `version`: `2`; }

    Defined in: packages/core/src/auth/auth.ts:124

    Build an encrypted credentials envelope for local auth files.

    #### Parameters

    ##### credentials

    ###### defaults

    `Record`\<`string`, `string`> = `...`

    ###### groups

    `Record`\<`string`, `Record`\<`string`, `string`>> = `...`

    ###### users

    `Record`\<`string`, \{ `apiKeys`: `string`\[]; `credentials`: `Record`\<`string`, `string`>; }> = `...`

    ##### key

    `string` | `Buffer`\<`ArrayBufferLike`>

    #### Returns

    \{ `algorithm`: `"aes-256-gcm"`; `ciphertext`: `string`; `iv`: `string`; `salt`: `string`; `tag`: `string`; `version`: `1`; } | \{ `algorithm`: `"aes-256-gcm"`; `ciphertext`: `string`; `iv`: `string`; `kdf`: \{ `iterations`: `number`; `keyLength`: `32`; `name`: `"pbkdf2-sha256"`; `salt`: `string`; }; `tag`: `string`; `version`: `2`; }

    ### hashApiKey()

    > `static` **hashApiKey**(`apiKey`): `string`

    Defined in: packages/core/src/auth/auth.ts:160

    Return the supported API-key hash encoding for local credentials.

    #### Parameters

    ##### apiKey

    `string`

    #### Returns

    `string`

    ### local()

    > `static` **local**(`options`): `Promise`\<`FentarisAuth`>

    Defined in: packages/core/src/auth/auth.ts:105

    Load local encrypted credentials and upstream auth bindings from a directory.

    #### Parameters

    ##### options

    `LocalAuthOptions`

    #### Returns

    `Promise`\<`FentarisAuth`>
  </Accordion>

  <Accordion title="Core exports: classes/FentarisConfigError">
    @fentaris/core / FentarisConfigError

    Defined in: packages/core/src/config/error.ts:8

    Error thrown when Fentaris configuration validation reports error diagnostics.

    ## Extends

    * `Error`

    ## Constructors

    ### Constructor

    > **new FentarisConfigError**(`diagnostics`, `message?`): `FentarisConfigError`

    Defined in: packages/core/src/config/error.ts:11

    #### Parameters

    ##### diagnostics

    readonly `FentarisDiagnostic`\[]

    ##### message?

    `string`

    #### Returns

    `FentarisConfigError`

    #### Overrides

    `Error.constructor`

    ## Properties

    ### cause?

    > `optional` **cause?**: `unknown`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es2022.error.d.ts:24

    #### Inherited from

    `Error.cause`

    ### diagnostics

    > `readonly` **diagnostics**: `FentarisDiagnostic`\[]

    Defined in: packages/core/src/config/error.ts:9

    ### message

    > **message**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1075

    #### Inherited from

    `Error.message`

    ### name

    > **name**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1074

    #### Inherited from

    `Error.name`

    ### stack?

    > `optional` **stack?**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1076

    #### Inherited from

    `Error.stack`

    ### stackTraceLimit

    > `static` **stackTraceLimit**: `number`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:67

    The `Error.stackTraceLimit` property specifies the number of stack frames
    collected by a stack trace (whether generated by `new Error().stack` or
    `Error.captureStackTrace(obj)`).

    The default value is `10` but may be set to any valid JavaScript number. Changes
    will affect any stack trace captured *after* the value has been changed.

    If set to a non-number value, or set to a negative number, stack traces will
    not capture any frames.

    #### Inherited from

    `Error.stackTraceLimit`

    ## Methods

    ### format()

    > **format**(`options?`): `string`

    Defined in: packages/core/src/config/error.ts:17

    #### Parameters

    ##### options?

    `FentarisDiagnosticFormatterOptions` = `{}`

    #### Returns

    `string`

    ### toJSON()

    > **toJSON**(): `object`

    Defined in: packages/core/src/config/error.ts:21

    #### Returns

    `object`

    ##### diagnostics

    > **diagnostics**: `FentarisDiagnostic`\[]

    ##### message

    > **message**: `string`

    ##### name

    > **name**: `string`

    ### captureStackTrace()

    > `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:51

    Creates a `.stack` property on `targetObject`, which when accessed returns
    a string representing the location in the code at which
    `Error.captureStackTrace()` was called.

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    const myObject = {};
    Error.captureStackTrace(myObject);
    myObject.stack;  // Similar to `new Error().stack`
    ```

    The first line of the trace will be prefixed with
    `${myObject.name}: ${myObject.message}`.

    The optional `constructorOpt` argument accepts a function. If given, all frames
    above `constructorOpt`, including `constructorOpt`, will be omitted from the
    generated stack trace.

    The `constructorOpt` argument is useful for hiding implementation
    details of error generation from the user. For instance:

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    function a() {
      b();
    }

    function b() {
      c();
    }

    function c() {
      // Create an error without stack trace to avoid calculating the stack trace twice.
      const { stackTraceLimit } = Error;
      Error.stackTraceLimit = 0;
      const error = new Error();
      Error.stackTraceLimit = stackTraceLimit;

      // Capture the stack trace above function b
      Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
      throw error;
    }

    a();
    ```

    #### Parameters

    ##### targetObject

    `object`

    ##### constructorOpt?

    `Function`

    #### Returns

    `void`

    #### Inherited from

    `Error.captureStackTrace`

    ### prepareStackTrace()

    > `static` **prepareStackTrace**(`err`, `stackTraces`): `any`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:55

    #### Parameters

    ##### err

    `Error`

    ##### stackTraces

    `CallSite`\[]

    #### Returns

    `any`

    #### See

    [https://v8.dev/docs/stack-trace-api#customizing-stack-traces](https://v8.dev/docs/stack-trace-api#customizing-stack-traces)

    #### Inherited from

    `Error.prepareStackTrace`
  </Accordion>

  <Accordion title="Core exports: classes/FentarisExtensionError">
    @fentaris/core / FentarisExtensionError

    Defined in: packages/core/src/profiler/errors.ts:47

    Runtime profiler, event, sink, and runtime error APIs.

    ## Extends

    * `FentarisRuntimeError`

    ## Constructors

    ### Constructor

    > **new FentarisExtensionError**(`message`, `options?`): `FentarisExtensionError`

    Defined in: packages/core/src/profiler/errors.ts:48

    #### Parameters

    ##### message

    `string`

    ##### options?

    `FentarisRuntimeErrorOptions` = `{}`

    #### Returns

    `FentarisExtensionError`

    #### Overrides

    `FentarisRuntimeError`.`constructor`

    ## Properties

    ### cause?

    > `optional` **cause?**: `unknown`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es2022.error.d.ts:24

    #### Inherited from

    `FentarisRuntimeError`.`cause`

    ### code

    > `readonly` **code**: `string`

    Defined in: packages/core/src/profiler/errors.ts:14

    #### Inherited from

    `FentarisRuntimeError`.`code`

    ### context

    > `readonly` **context**: `RuntimeErrorContext`

    Defined in: packages/core/src/profiler/errors.ts:17

    #### Inherited from

    `FentarisRuntimeError`.`context`

    ### hints

    > `readonly` **hints**: `string`\[]

    Defined in: packages/core/src/profiler/errors.ts:16

    #### Inherited from

    `FentarisRuntimeError`.`hints`

    ### message

    > **message**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1075

    #### Inherited from

    `FentarisRuntimeError`.`message`

    ### name

    > **name**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1074

    #### Inherited from

    `FentarisRuntimeError`.`name`

    ### severity

    > `readonly` **severity**: `RuntimeEventLevel`

    Defined in: packages/core/src/profiler/errors.ts:15

    #### Inherited from

    `FentarisRuntimeError`.`severity`

    ### stack?

    > `optional` **stack?**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1076

    #### Inherited from

    `FentarisRuntimeError`.`stack`

    ### stackTraceLimit

    > `static` **stackTraceLimit**: `number`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:67

    The `Error.stackTraceLimit` property specifies the number of stack frames
    collected by a stack trace (whether generated by `new Error().stack` or
    `Error.captureStackTrace(obj)`).

    The default value is `10` but may be set to any valid JavaScript number. Changes
    will affect any stack trace captured *after* the value has been changed.

    If set to a non-number value, or set to a negative number, stack traces will
    not capture any frames.

    #### Inherited from

    `FentarisRuntimeError`.`stackTraceLimit`

    ## Methods

    ### captureStackTrace()

    > `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:51

    Creates a `.stack` property on `targetObject`, which when accessed returns
    a string representing the location in the code at which
    `Error.captureStackTrace()` was called.

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    const myObject = {};
    Error.captureStackTrace(myObject);
    myObject.stack;  // Similar to `new Error().stack`
    ```

    The first line of the trace will be prefixed with
    `${myObject.name}: ${myObject.message}`.

    The optional `constructorOpt` argument accepts a function. If given, all frames
    above `constructorOpt`, including `constructorOpt`, will be omitted from the
    generated stack trace.

    The `constructorOpt` argument is useful for hiding implementation
    details of error generation from the user. For instance:

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    function a() {
      b();
    }

    function b() {
      c();
    }

    function c() {
      // Create an error without stack trace to avoid calculating the stack trace twice.
      const { stackTraceLimit } = Error;
      Error.stackTraceLimit = 0;
      const error = new Error();
      Error.stackTraceLimit = stackTraceLimit;

      // Capture the stack trace above function b
      Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
      throw error;
    }

    a();
    ```

    #### Parameters

    ##### targetObject

    `object`

    ##### constructorOpt?

    `Function`

    #### Returns

    `void`

    #### Inherited from

    `FentarisRuntimeError`.`captureStackTrace`

    ### prepareStackTrace()

    > `static` **prepareStackTrace**(`err`, `stackTraces`): `any`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:55

    #### Parameters

    ##### err

    `Error`

    ##### stackTraces

    `CallSite`\[]

    #### Returns

    `any`

    #### See

    [https://v8.dev/docs/stack-trace-api#customizing-stack-traces](https://v8.dev/docs/stack-trace-api#customizing-stack-traces)

    #### Inherited from

    `FentarisRuntimeError`.`prepareStackTrace`
  </Accordion>

  <Accordion title="Core exports: classes/FentarisMcpError">
    @fentaris/core / FentarisMcpError

    Defined in: packages/core/src/profiler/errors.ts:29

    Runtime profiler, event, sink, and runtime error APIs.

    ## Extends

    * `FentarisRuntimeError`

    ## Constructors

    ### Constructor

    > **new FentarisMcpError**(`message`, `options?`): `FentarisMcpError`

    Defined in: packages/core/src/profiler/errors.ts:30

    #### Parameters

    ##### message

    `string`

    ##### options?

    `FentarisRuntimeErrorOptions` = `{}`

    #### Returns

    `FentarisMcpError`

    #### Overrides

    `FentarisRuntimeError`.`constructor`

    ## Properties

    ### cause?

    > `optional` **cause?**: `unknown`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es2022.error.d.ts:24

    #### Inherited from

    `FentarisRuntimeError`.`cause`

    ### code

    > `readonly` **code**: `string`

    Defined in: packages/core/src/profiler/errors.ts:14

    #### Inherited from

    `FentarisRuntimeError`.`code`

    ### context

    > `readonly` **context**: `RuntimeErrorContext`

    Defined in: packages/core/src/profiler/errors.ts:17

    #### Inherited from

    `FentarisRuntimeError`.`context`

    ### hints

    > `readonly` **hints**: `string`\[]

    Defined in: packages/core/src/profiler/errors.ts:16

    #### Inherited from

    `FentarisRuntimeError`.`hints`

    ### message

    > **message**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1075

    #### Inherited from

    `FentarisRuntimeError`.`message`

    ### name

    > **name**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1074

    #### Inherited from

    `FentarisRuntimeError`.`name`

    ### severity

    > `readonly` **severity**: `RuntimeEventLevel`

    Defined in: packages/core/src/profiler/errors.ts:15

    #### Inherited from

    `FentarisRuntimeError`.`severity`

    ### stack?

    > `optional` **stack?**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1076

    #### Inherited from

    `FentarisRuntimeError`.`stack`

    ### stackTraceLimit

    > `static` **stackTraceLimit**: `number`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:67

    The `Error.stackTraceLimit` property specifies the number of stack frames
    collected by a stack trace (whether generated by `new Error().stack` or
    `Error.captureStackTrace(obj)`).

    The default value is `10` but may be set to any valid JavaScript number. Changes
    will affect any stack trace captured *after* the value has been changed.

    If set to a non-number value, or set to a negative number, stack traces will
    not capture any frames.

    #### Inherited from

    `FentarisRuntimeError`.`stackTraceLimit`

    ## Methods

    ### captureStackTrace()

    > `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:51

    Creates a `.stack` property on `targetObject`, which when accessed returns
    a string representing the location in the code at which
    `Error.captureStackTrace()` was called.

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    const myObject = {};
    Error.captureStackTrace(myObject);
    myObject.stack;  // Similar to `new Error().stack`
    ```

    The first line of the trace will be prefixed with
    `${myObject.name}: ${myObject.message}`.

    The optional `constructorOpt` argument accepts a function. If given, all frames
    above `constructorOpt`, including `constructorOpt`, will be omitted from the
    generated stack trace.

    The `constructorOpt` argument is useful for hiding implementation
    details of error generation from the user. For instance:

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    function a() {
      b();
    }

    function b() {
      c();
    }

    function c() {
      // Create an error without stack trace to avoid calculating the stack trace twice.
      const { stackTraceLimit } = Error;
      Error.stackTraceLimit = 0;
      const error = new Error();
      Error.stackTraceLimit = stackTraceLimit;

      // Capture the stack trace above function b
      Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
      throw error;
    }

    a();
    ```

    #### Parameters

    ##### targetObject

    `object`

    ##### constructorOpt?

    `Function`

    #### Returns

    `void`

    #### Inherited from

    `FentarisRuntimeError`.`captureStackTrace`

    ### prepareStackTrace()

    > `static` **prepareStackTrace**(`err`, `stackTraces`): `any`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:55

    #### Parameters

    ##### err

    `Error`

    ##### stackTraces

    `CallSite`\[]

    #### Returns

    `any`

    #### See

    [https://v8.dev/docs/stack-trace-api#customizing-stack-traces](https://v8.dev/docs/stack-trace-api#customizing-stack-traces)

    #### Inherited from

    `FentarisRuntimeError`.`prepareStackTrace`
  </Accordion>

  <Accordion title="Core exports: classes/FentarisPolicyError">
    @fentaris/core / FentarisPolicyError

    Defined in: packages/core/src/profiler/errors.ts:41

    Runtime profiler, event, sink, and runtime error APIs.

    ## Extends

    * `FentarisRuntimeError`

    ## Constructors

    ### Constructor

    > **new FentarisPolicyError**(`message`, `options?`): `FentarisPolicyError`

    Defined in: packages/core/src/profiler/errors.ts:42

    #### Parameters

    ##### message

    `string`

    ##### options?

    `FentarisRuntimeErrorOptions` = `{}`

    #### Returns

    `FentarisPolicyError`

    #### Overrides

    `FentarisRuntimeError`.`constructor`

    ## Properties

    ### cause?

    > `optional` **cause?**: `unknown`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es2022.error.d.ts:24

    #### Inherited from

    `FentarisRuntimeError`.`cause`

    ### code

    > `readonly` **code**: `string`

    Defined in: packages/core/src/profiler/errors.ts:14

    #### Inherited from

    `FentarisRuntimeError`.`code`

    ### context

    > `readonly` **context**: `RuntimeErrorContext`

    Defined in: packages/core/src/profiler/errors.ts:17

    #### Inherited from

    `FentarisRuntimeError`.`context`

    ### hints

    > `readonly` **hints**: `string`\[]

    Defined in: packages/core/src/profiler/errors.ts:16

    #### Inherited from

    `FentarisRuntimeError`.`hints`

    ### message

    > **message**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1075

    #### Inherited from

    `FentarisRuntimeError`.`message`

    ### name

    > **name**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1074

    #### Inherited from

    `FentarisRuntimeError`.`name`

    ### severity

    > `readonly` **severity**: `RuntimeEventLevel`

    Defined in: packages/core/src/profiler/errors.ts:15

    #### Inherited from

    `FentarisRuntimeError`.`severity`

    ### stack?

    > `optional` **stack?**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1076

    #### Inherited from

    `FentarisRuntimeError`.`stack`

    ### stackTraceLimit

    > `static` **stackTraceLimit**: `number`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:67

    The `Error.stackTraceLimit` property specifies the number of stack frames
    collected by a stack trace (whether generated by `new Error().stack` or
    `Error.captureStackTrace(obj)`).

    The default value is `10` but may be set to any valid JavaScript number. Changes
    will affect any stack trace captured *after* the value has been changed.

    If set to a non-number value, or set to a negative number, stack traces will
    not capture any frames.

    #### Inherited from

    `FentarisRuntimeError`.`stackTraceLimit`

    ## Methods

    ### captureStackTrace()

    > `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:51

    Creates a `.stack` property on `targetObject`, which when accessed returns
    a string representing the location in the code at which
    `Error.captureStackTrace()` was called.

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    const myObject = {};
    Error.captureStackTrace(myObject);
    myObject.stack;  // Similar to `new Error().stack`
    ```

    The first line of the trace will be prefixed with
    `${myObject.name}: ${myObject.message}`.

    The optional `constructorOpt` argument accepts a function. If given, all frames
    above `constructorOpt`, including `constructorOpt`, will be omitted from the
    generated stack trace.

    The `constructorOpt` argument is useful for hiding implementation
    details of error generation from the user. For instance:

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    function a() {
      b();
    }

    function b() {
      c();
    }

    function c() {
      // Create an error without stack trace to avoid calculating the stack trace twice.
      const { stackTraceLimit } = Error;
      Error.stackTraceLimit = 0;
      const error = new Error();
      Error.stackTraceLimit = stackTraceLimit;

      // Capture the stack trace above function b
      Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
      throw error;
    }

    a();
    ```

    #### Parameters

    ##### targetObject

    `object`

    ##### constructorOpt?

    `Function`

    #### Returns

    `void`

    #### Inherited from

    `FentarisRuntimeError`.`captureStackTrace`

    ### prepareStackTrace()

    > `static` **prepareStackTrace**(`err`, `stackTraces`): `any`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:55

    #### Parameters

    ##### err

    `Error`

    ##### stackTraces

    `CallSite`\[]

    #### Returns

    `any`

    #### See

    [https://v8.dev/docs/stack-trace-api#customizing-stack-traces](https://v8.dev/docs/stack-trace-api#customizing-stack-traces)

    #### Inherited from

    `FentarisRuntimeError`.`prepareStackTrace`
  </Accordion>

  <Accordion title="Core exports: classes/FentarisRuntimeError">
    @fentaris/core / FentarisRuntimeError

    Defined in: packages/core/src/profiler/errors.ts:13

    Runtime profiler, event, sink, and runtime error APIs.

    ## Extends

    * `Error`

    ## Extended by

    * `FentarisExtensionError`
    * `FentarisMcpError`
    * `FentarisPolicyError`
    * `FentarisTimeoutError`
    * `FentarisTransportError`

    ## Constructors

    ### Constructor

    > **new FentarisRuntimeError**(`message`, `options?`): `FentarisRuntimeError`

    Defined in: packages/core/src/profiler/errors.ts:19

    #### Parameters

    ##### message

    `string`

    ##### options?

    `FentarisRuntimeErrorOptions` = `{}`

    #### Returns

    `FentarisRuntimeError`

    #### Overrides

    `Error.constructor`

    ## Properties

    ### cause?

    > `optional` **cause?**: `unknown`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es2022.error.d.ts:24

    #### Inherited from

    `Error.cause`

    ### code

    > `readonly` **code**: `string`

    Defined in: packages/core/src/profiler/errors.ts:14

    ### context

    > `readonly` **context**: `RuntimeErrorContext`

    Defined in: packages/core/src/profiler/errors.ts:17

    ### hints

    > `readonly` **hints**: `string`\[]

    Defined in: packages/core/src/profiler/errors.ts:16

    ### message

    > **message**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1075

    #### Inherited from

    `Error.message`

    ### name

    > **name**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1074

    #### Inherited from

    `Error.name`

    ### severity

    > `readonly` **severity**: `RuntimeEventLevel`

    Defined in: packages/core/src/profiler/errors.ts:15

    ### stack?

    > `optional` **stack?**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1076

    #### Inherited from

    `Error.stack`

    ### stackTraceLimit

    > `static` **stackTraceLimit**: `number`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:67

    The `Error.stackTraceLimit` property specifies the number of stack frames
    collected by a stack trace (whether generated by `new Error().stack` or
    `Error.captureStackTrace(obj)`).

    The default value is `10` but may be set to any valid JavaScript number. Changes
    will affect any stack trace captured *after* the value has been changed.

    If set to a non-number value, or set to a negative number, stack traces will
    not capture any frames.

    #### Inherited from

    `Error.stackTraceLimit`

    ## Methods

    ### captureStackTrace()

    > `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:51

    Creates a `.stack` property on `targetObject`, which when accessed returns
    a string representing the location in the code at which
    `Error.captureStackTrace()` was called.

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    const myObject = {};
    Error.captureStackTrace(myObject);
    myObject.stack;  // Similar to `new Error().stack`
    ```

    The first line of the trace will be prefixed with
    `${myObject.name}: ${myObject.message}`.

    The optional `constructorOpt` argument accepts a function. If given, all frames
    above `constructorOpt`, including `constructorOpt`, will be omitted from the
    generated stack trace.

    The `constructorOpt` argument is useful for hiding implementation
    details of error generation from the user. For instance:

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    function a() {
      b();
    }

    function b() {
      c();
    }

    function c() {
      // Create an error without stack trace to avoid calculating the stack trace twice.
      const { stackTraceLimit } = Error;
      Error.stackTraceLimit = 0;
      const error = new Error();
      Error.stackTraceLimit = stackTraceLimit;

      // Capture the stack trace above function b
      Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
      throw error;
    }

    a();
    ```

    #### Parameters

    ##### targetObject

    `object`

    ##### constructorOpt?

    `Function`

    #### Returns

    `void`

    #### Inherited from

    `Error.captureStackTrace`

    ### prepareStackTrace()

    > `static` **prepareStackTrace**(`err`, `stackTraces`): `any`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:55

    #### Parameters

    ##### err

    `Error`

    ##### stackTraces

    `CallSite`\[]

    #### Returns

    `any`

    #### See

    [https://v8.dev/docs/stack-trace-api#customizing-stack-traces](https://v8.dev/docs/stack-trace-api#customizing-stack-traces)

    #### Inherited from

    `Error.prepareStackTrace`
  </Accordion>

  <Accordion title="Core exports: classes/FentarisTimeoutError">
    @fentaris/core / FentarisTimeoutError

    Defined in: packages/core/src/profiler/errors.ts:53

    Runtime profiler, event, sink, and runtime error APIs.

    ## Extends

    * `FentarisRuntimeError`

    ## Constructors

    ### Constructor

    > **new FentarisTimeoutError**(`message`, `options?`): `FentarisTimeoutError`

    Defined in: packages/core/src/profiler/errors.ts:54

    #### Parameters

    ##### message

    `string`

    ##### options?

    `FentarisRuntimeErrorOptions` = `{}`

    #### Returns

    `FentarisTimeoutError`

    #### Overrides

    `FentarisRuntimeError`.`constructor`

    ## Properties

    ### cause?

    > `optional` **cause?**: `unknown`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es2022.error.d.ts:24

    #### Inherited from

    `FentarisRuntimeError`.`cause`

    ### code

    > `readonly` **code**: `string`

    Defined in: packages/core/src/profiler/errors.ts:14

    #### Inherited from

    `FentarisRuntimeError`.`code`

    ### context

    > `readonly` **context**: `RuntimeErrorContext`

    Defined in: packages/core/src/profiler/errors.ts:17

    #### Inherited from

    `FentarisRuntimeError`.`context`

    ### hints

    > `readonly` **hints**: `string`\[]

    Defined in: packages/core/src/profiler/errors.ts:16

    #### Inherited from

    `FentarisRuntimeError`.`hints`

    ### message

    > **message**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1075

    #### Inherited from

    `FentarisRuntimeError`.`message`

    ### name

    > **name**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1074

    #### Inherited from

    `FentarisRuntimeError`.`name`

    ### severity

    > `readonly` **severity**: `RuntimeEventLevel`

    Defined in: packages/core/src/profiler/errors.ts:15

    #### Inherited from

    `FentarisRuntimeError`.`severity`

    ### stack?

    > `optional` **stack?**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1076

    #### Inherited from

    `FentarisRuntimeError`.`stack`

    ### stackTraceLimit

    > `static` **stackTraceLimit**: `number`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:67

    The `Error.stackTraceLimit` property specifies the number of stack frames
    collected by a stack trace (whether generated by `new Error().stack` or
    `Error.captureStackTrace(obj)`).

    The default value is `10` but may be set to any valid JavaScript number. Changes
    will affect any stack trace captured *after* the value has been changed.

    If set to a non-number value, or set to a negative number, stack traces will
    not capture any frames.

    #### Inherited from

    `FentarisRuntimeError`.`stackTraceLimit`

    ## Methods

    ### captureStackTrace()

    > `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:51

    Creates a `.stack` property on `targetObject`, which when accessed returns
    a string representing the location in the code at which
    `Error.captureStackTrace()` was called.

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    const myObject = {};
    Error.captureStackTrace(myObject);
    myObject.stack;  // Similar to `new Error().stack`
    ```

    The first line of the trace will be prefixed with
    `${myObject.name}: ${myObject.message}`.

    The optional `constructorOpt` argument accepts a function. If given, all frames
    above `constructorOpt`, including `constructorOpt`, will be omitted from the
    generated stack trace.

    The `constructorOpt` argument is useful for hiding implementation
    details of error generation from the user. For instance:

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    function a() {
      b();
    }

    function b() {
      c();
    }

    function c() {
      // Create an error without stack trace to avoid calculating the stack trace twice.
      const { stackTraceLimit } = Error;
      Error.stackTraceLimit = 0;
      const error = new Error();
      Error.stackTraceLimit = stackTraceLimit;

      // Capture the stack trace above function b
      Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
      throw error;
    }

    a();
    ```

    #### Parameters

    ##### targetObject

    `object`

    ##### constructorOpt?

    `Function`

    #### Returns

    `void`

    #### Inherited from

    `FentarisRuntimeError`.`captureStackTrace`

    ### prepareStackTrace()

    > `static` **prepareStackTrace**(`err`, `stackTraces`): `any`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:55

    #### Parameters

    ##### err

    `Error`

    ##### stackTraces

    `CallSite`\[]

    #### Returns

    `any`

    #### See

    [https://v8.dev/docs/stack-trace-api#customizing-stack-traces](https://v8.dev/docs/stack-trace-api#customizing-stack-traces)

    #### Inherited from

    `FentarisRuntimeError`.`prepareStackTrace`
  </Accordion>

  <Accordion title="Core exports: classes/FentarisTransportError">
    @fentaris/core / FentarisTransportError

    Defined in: packages/core/src/profiler/errors.ts:35

    Runtime profiler, event, sink, and runtime error APIs.

    ## Extends

    * `FentarisRuntimeError`

    ## Constructors

    ### Constructor

    > **new FentarisTransportError**(`message`, `options?`): `FentarisTransportError`

    Defined in: packages/core/src/profiler/errors.ts:36

    #### Parameters

    ##### message

    `string`

    ##### options?

    `FentarisRuntimeErrorOptions` = `{}`

    #### Returns

    `FentarisTransportError`

    #### Overrides

    `FentarisRuntimeError`.`constructor`

    ## Properties

    ### cause?

    > `optional` **cause?**: `unknown`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es2022.error.d.ts:24

    #### Inherited from

    `FentarisRuntimeError`.`cause`

    ### code

    > `readonly` **code**: `string`

    Defined in: packages/core/src/profiler/errors.ts:14

    #### Inherited from

    `FentarisRuntimeError`.`code`

    ### context

    > `readonly` **context**: `RuntimeErrorContext`

    Defined in: packages/core/src/profiler/errors.ts:17

    #### Inherited from

    `FentarisRuntimeError`.`context`

    ### hints

    > `readonly` **hints**: `string`\[]

    Defined in: packages/core/src/profiler/errors.ts:16

    #### Inherited from

    `FentarisRuntimeError`.`hints`

    ### message

    > **message**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1075

    #### Inherited from

    `FentarisRuntimeError`.`message`

    ### name

    > **name**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1074

    #### Inherited from

    `FentarisRuntimeError`.`name`

    ### severity

    > `readonly` **severity**: `RuntimeEventLevel`

    Defined in: packages/core/src/profiler/errors.ts:15

    #### Inherited from

    `FentarisRuntimeError`.`severity`

    ### stack?

    > `optional` **stack?**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1076

    #### Inherited from

    `FentarisRuntimeError`.`stack`

    ### stackTraceLimit

    > `static` **stackTraceLimit**: `number`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:67

    The `Error.stackTraceLimit` property specifies the number of stack frames
    collected by a stack trace (whether generated by `new Error().stack` or
    `Error.captureStackTrace(obj)`).

    The default value is `10` but may be set to any valid JavaScript number. Changes
    will affect any stack trace captured *after* the value has been changed.

    If set to a non-number value, or set to a negative number, stack traces will
    not capture any frames.

    #### Inherited from

    `FentarisRuntimeError`.`stackTraceLimit`

    ## Methods

    ### captureStackTrace()

    > `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:51

    Creates a `.stack` property on `targetObject`, which when accessed returns
    a string representing the location in the code at which
    `Error.captureStackTrace()` was called.

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    const myObject = {};
    Error.captureStackTrace(myObject);
    myObject.stack;  // Similar to `new Error().stack`
    ```

    The first line of the trace will be prefixed with
    `${myObject.name}: ${myObject.message}`.

    The optional `constructorOpt` argument accepts a function. If given, all frames
    above `constructorOpt`, including `constructorOpt`, will be omitted from the
    generated stack trace.

    The `constructorOpt` argument is useful for hiding implementation
    details of error generation from the user. For instance:

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    function a() {
      b();
    }

    function b() {
      c();
    }

    function c() {
      // Create an error without stack trace to avoid calculating the stack trace twice.
      const { stackTraceLimit } = Error;
      Error.stackTraceLimit = 0;
      const error = new Error();
      Error.stackTraceLimit = stackTraceLimit;

      // Capture the stack trace above function b
      Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
      throw error;
    }

    a();
    ```

    #### Parameters

    ##### targetObject

    `object`

    ##### constructorOpt?

    `Function`

    #### Returns

    `void`

    #### Inherited from

    `FentarisRuntimeError`.`captureStackTrace`

    ### prepareStackTrace()

    > `static` **prepareStackTrace**(`err`, `stackTraces`): `any`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:55

    #### Parameters

    ##### err

    `Error`

    ##### stackTraces

    `CallSite`\[]

    #### Returns

    `any`

    #### See

    [https://v8.dev/docs/stack-trace-api#customizing-stack-traces](https://v8.dev/docs/stack-trace-api#customizing-stack-traces)

    #### Inherited from

    `FentarisRuntimeError`.`prepareStackTrace`
  </Accordion>

  <Accordion title="Core exports: classes/Group">
    @fentaris/core / Group

    Defined in: packages/core/src/governance/governance.ts:43

    First-class group declaration that owns users and policy.

    ## Constructors

    ### Constructor

    > **new Group**(`options`): `Group`

    Defined in: packages/core/src/governance/governance.ts:52

    #### Parameters

    ##### options

    `GroupOptions`

    #### Returns

    `Group`

    ## Properties

    ### credentials

    > `readonly` **credentials**: `CredentialSourceMap`

    Defined in: packages/core/src/governance/governance.ts:48

    ### id

    > `readonly` **id**: `string`

    Defined in: packages/core/src/governance/governance.ts:44

    ### metadata?

    > `readonly` `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/governance/governance.ts:50

    ### name?

    > `readonly` `optional` **name?**: `string`

    Defined in: packages/core/src/governance/governance.ts:45

    ### policy

    > `readonly` **policy**: `PolicyContract`

    Defined in: packages/core/src/governance/governance.ts:47

    ### servers

    > `readonly` **servers**: `McpServer`\[]

    Defined in: packages/core/src/governance/governance.ts:49

    ### users

    > `readonly` **users**: `User`\[]

    Defined in: packages/core/src/governance/governance.ts:46
  </Accordion>

  <Accordion title="Core exports: classes/HttpProxyExposureTransport">
    @fentaris/core / HttpProxyExposureTransport

    Defined in: packages/core/src/transports/exposure/HttpProxyExposureTransport.ts:60

    HTTP Streamable MCP downstream proxy exposure.

    ## Implements

    * `ProxyExposureTransport`\<`HttpProxyExposureHandle`>

    ## Constructors

    ### Constructor

    > **new HttpProxyExposureTransport**(`options?`): `HttpProxyExposureTransport`

    Defined in: packages/core/src/transports/exposure/HttpProxyExposureTransport.ts:68

    Create an HTTP proxy exposure transport.

    #### Parameters

    ##### options?

    `HttpProxyExposureTransportOptions` = `{}`

    #### Returns

    `HttpProxyExposureTransport`

    ## Methods

    ### listen()

    > **listen**(`runtime`): `Promise`\<`HttpProxyExposureHandle`>

    Defined in: packages/core/src/transports/exposure/HttpProxyExposureTransport.ts:80

    #### Parameters

    ##### runtime

    `ProxyRuntime`

    #### Returns

    `Promise`\<`HttpProxyExposureHandle`>

    #### Implementation of

    `ProxyExposureTransport.listen`
  </Accordion>

  <Accordion title="Core exports: classes/HttpTransport">
    @fentaris/core / HttpTransport

    Defined in: packages/core/src/transports/client/HttpTransport.ts:31

    HTTP-based MCP transport adapter.

    ## Implements

    * `FentarisTransport`

    ## Constructors

    ### Constructor

    > **new HttpTransport**(`options`): `HttpTransport`

    Defined in: packages/core/src/transports/client/HttpTransport.ts:39

    Create a new HTTP transport.

    #### Parameters

    ##### options

    `HttpTransportOptions`

    #### Returns

    `HttpTransport`

    ## Methods

    ### callTool()

    > **callTool**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/transports/client/HttpTransport.ts:68

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `unknown`; }

    ###### name

    `string`

    ###### task?

    \{ `ttl?`: `number`; }

    ###### task.ttl?

    `number`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    #### Implementation of

    `FentarisTransport.callTool`

    ### close()

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

    Defined in: packages/core/src/transports/client/HttpTransport.ts:72

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `FentarisTransport.close`

    ### listTools()

    > **listTools**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/HttpTransport.ts:64

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listTools`

    ### withEnv()

    > **withEnv**(`env`): `HttpTransport`

    Defined in: packages/core/src/transports/client/HttpTransport.ts:52

    Return a copy with explicitly mapped env-derived headers merged in.

    #### Parameters

    ##### env

    `Record`\<`string`, `string`>

    #### Returns

    `HttpTransport`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryEdgeCapabilityCacheStore">
    @fentaris/core / InMemoryEdgeCapabilityCacheStore

    Defined in: packages/core/src/edge/capabilityCache.ts:43

    Edge execution targets, runtime inputs, setup fields, launch recipes, and errors.

    ## Implements

    * `EdgeCapabilityCacheStore`

    ## Constructors

    ### Constructor

    > **new InMemoryEdgeCapabilityCacheStore**(): `InMemoryEdgeCapabilityCacheStore`

    #### Returns

    `InMemoryEdgeCapabilityCacheStore`

    ## Methods

    ### delete()

    > **delete**(`tenantId`, `deploymentId`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/capabilityCache.ts:51

    #### Parameters

    ##### tenantId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeCapabilityCacheStore`.`delete`

    ### get()

    > **get**(`tenantId`, `deploymentId`): `Promise`\<`EdgeCapabilityManifest` | `undefined`>

    Defined in: packages/core/src/edge/capabilityCache.ts:45

    #### Parameters

    ##### tenantId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`EdgeCapabilityManifest` | `undefined`>

    #### Implementation of

    `EdgeCapabilityCacheStore`.`get`

    ### put()

    > **put**(`manifest`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/capabilityCache.ts:48

    #### Parameters

    ##### manifest

    `EdgeCapabilityManifest`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeCapabilityCacheStore`.`put`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryEdgeCapabilityManifestStore">
    @fentaris/core / InMemoryEdgeCapabilityManifestStore

    Defined in: packages/core/src/edge/controlPlane.ts:370

    Reference single-process capability-manifest store.

    ## Implements

    * `EdgeCapabilityManifestStore`

    ## Constructors

    ### Constructor

    > **new InMemoryEdgeCapabilityManifestStore**(): `InMemoryEdgeCapabilityManifestStore`

    #### Returns

    `InMemoryEdgeCapabilityManifestStore`

    ## Methods

    ### delete()

    > **delete**(`tenantId`, `edgeNodeId`, `deploymentId`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:386

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeCapabilityManifestStore`.`delete`

    ### get()

    > **get**(`tenantId`, `edgeNodeId`, `deploymentId`): `Promise`\<`EdgeCapabilityManifestMessage` | `undefined`>

    Defined in: packages/core/src/edge/controlPlane.ts:372

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`EdgeCapabilityManifestMessage` | `undefined`>

    #### Implementation of

    `EdgeCapabilityManifestStore`.`get`

    ### put()

    > **put**(`manifest`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:375

    #### Parameters

    ##### manifest

    `EdgeCapabilityManifestMessage`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeCapabilityManifestStore`.`put`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryEdgeChannelBroker">
    @fentaris/core / InMemoryEdgeChannelBroker

    Defined in: packages/core/src/edge/controlPlane.ts:418

    Reference single-process pub/sub broker.

    ## Implements

    * `EdgeChannelBroker`

    ## Constructors

    ### Constructor

    > **new InMemoryEdgeChannelBroker**(): `InMemoryEdgeChannelBroker`

    #### Returns

    `InMemoryEdgeChannelBroker`

    ## Properties

    ### diagnostics

    > `readonly` **diagnostics**: `EdgeAdapterDiagnostics` = `IN_MEMORY_EDGE_ADAPTER_DIAGNOSTICS`

    Defined in: packages/core/src/edge/controlPlane.ts:419

    #### Implementation of

    `EdgeChannelBroker`.`diagnostics`

    ## Methods

    ### publish()

    > **publish**(`channel`, `message`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:421

    #### Parameters

    ##### channel

    `string`

    ##### message

    `string`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeChannelBroker`.`publish`

    ### subscribe()

    > **subscribe**(`channel`, `handler`): () => `void`

    Defined in: packages/core/src/edge/controlPlane.ts:424

    #### Parameters

    ##### channel

    `string`

    ##### handler

    (`message`) => `void`

    #### Returns

    () => `void`

    #### Implementation of

    `EdgeChannelBroker`.`subscribe`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryEdgeChildBindingStore">
    @fentaris/core / InMemoryEdgeChildBindingStore

    Defined in: packages/core/src/edge/inventory.ts:336

    Deterministic single-process isolated child-binding store.

    ## Implements

    * `EdgeChildBindingStore`

    ## Constructors

    ### Constructor

    > **new InMemoryEdgeChildBindingStore**(`createId?`): `InMemoryEdgeChildBindingStore`

    Defined in: packages/core/src/edge/inventory.ts:340

    #### Parameters

    ##### createId?

    () => `string`

    #### Returns

    `InMemoryEdgeChildBindingStore`

    ## Properties

    ### diagnostics

    > `readonly` **diagnostics**: `EdgeAdapterDiagnostics` = `IN_MEMORY_EDGE_ADAPTER_DIAGNOSTICS`

    Defined in: packages/core/src/edge/inventory.ts:337

    #### Implementation of

    `EdgeChildBindingStore`.`diagnostics`

    ## Methods

    ### allocate()

    > **allocate**(`input`): `Promise`\<`EdgeChildBinding`>

    Defined in: packages/core/src/edge/inventory.ts:342

    #### Parameters

    ##### input

    `Omit`\<`EdgeChildBinding`, `"childBindingId"`> & `object`

    #### Returns

    `Promise`\<`EdgeChildBinding`>

    #### Implementation of

    `EdgeChildBindingStore`.`allocate`

    ### delete()

    > **delete**(`childBindingId`): `Promise`\<`EdgeChildBinding` | `undefined`>

    Defined in: packages/core/src/edge/inventory.ts:356

    #### Parameters

    ##### childBindingId

    `string`

    #### Returns

    `Promise`\<`EdgeChildBinding` | `undefined`>

    #### Implementation of

    `EdgeChildBindingStore`.`delete`

    ### deleteParent()

    > **deleteParent**(`parentSessionId`, `parentRequestId?`): `Promise`\<readonly `EdgeChildBinding`\[]>

    Defined in: packages/core/src/edge/inventory.ts:360

    #### Parameters

    ##### parentSessionId

    `string`

    ##### parentRequestId?

    `string`

    #### Returns

    `Promise`\<readonly `EdgeChildBinding`\[]>

    #### Implementation of

    `EdgeChildBindingStore`.`deleteParent`

    ### get()

    > **get**(`childBindingId`): `Promise`\<`EdgeChildBinding` | `undefined`>

    Defined in: packages/core/src/edge/inventory.ts:352

    #### Parameters

    ##### childBindingId

    `string`

    #### Returns

    `Promise`\<`EdgeChildBinding` | `undefined`>

    #### Implementation of

    `EdgeChildBindingStore`.`get`

    ### purgeExpired()

    > **purgeExpired**(`evaluatedAt`): `Promise`\<readonly `EdgeChildBinding`\[]>

    Defined in: packages/core/src/edge/inventory.ts:365

    #### Parameters

    ##### evaluatedAt

    `number`

    #### Returns

    `Promise`\<readonly `EdgeChildBinding`\[]>

    #### Implementation of

    `EdgeChildBindingStore`.`purgeExpired`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryEdgeConnectionStore">
    @fentaris/core / InMemoryEdgeConnectionStore

    Defined in: packages/core/src/edge/controlPlane.ts:392

    Reference single-process active-connection store.

    ## Implements

    * `EdgeConnectionStore`

    ## Constructors

    ### Constructor

    > **new InMemoryEdgeConnectionStore**(): `InMemoryEdgeConnectionStore`

    #### Returns

    `InMemoryEdgeConnectionStore`

    ## Methods

    ### bind()

    > **bind**(`connection`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:397

    #### Parameters

    ##### connection

    `EdgeConnectionRecord`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeConnectionStore`.`bind`

    ### get()

    > **get**(`tenantId`, `edgeNodeId`): `Promise`\<`EdgeConnectionRecord` | `undefined`>

    Defined in: packages/core/src/edge/controlPlane.ts:394

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`EdgeConnectionRecord` | `undefined`>

    #### Implementation of

    `EdgeConnectionStore`.`get`

    ### heartbeat()

    > **heartbeat**(`tenantId`, `edgeNodeId`, `generation`, `at`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:404

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### generation

    `number`

    ##### at

    `number`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeConnectionStore`.`heartbeat`

    ### remove()

    > **remove**(`tenantId`, `edgeNodeId`, `generation`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:411

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### generation

    `number`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeConnectionStore`.`remove`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryEdgeDesiredStateStore">
    @fentaris/core / InMemoryEdgeDesiredStateStore

    Defined in: packages/core/src/edge/controlPlane.ts:285

    Reference single-process desired-state store.

    ## Implements

    * `EdgeDesiredStateStore`

    ## Constructors

    ### Constructor

    > **new InMemoryEdgeDesiredStateStore**(): `InMemoryEdgeDesiredStateStore`

    #### Returns

    `InMemoryEdgeDesiredStateStore`

    ## Methods

    ### acknowledge()

    > **acknowledge**(`ack`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:309

    #### Parameters

    ##### ack

    `EdgeDesiredStateAckMessage`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeDesiredStateStore`.`acknowledge`

    ### acknowledgedVersion()

    > **acknowledgedVersion**(`tenantId`, `edgeNodeId`): `Promise`\<`number` | `undefined`>

    Defined in: packages/core/src/edge/controlPlane.ts:317

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`number` | `undefined`>

    #### Implementation of

    `EdgeDesiredStateStore`.`acknowledgedVersion`

    ### get()

    > **get**(`tenantId`, `edgeNodeId`): `Promise`\<`EdgeDesiredStateMessage` | `undefined`>

    Defined in: packages/core/src/edge/controlPlane.ts:289

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`EdgeDesiredStateMessage` | `undefined`>

    #### Implementation of

    `EdgeDesiredStateStore`.`get`

    ### publish()

    > **publish**(`state`): `Promise`\<`"published"` | `"unchanged"`>

    Defined in: packages/core/src/edge/controlPlane.ts:293

    #### Parameters

    ##### state

    `EdgeDesiredStateMessage`

    #### Returns

    `Promise`\<`"published"` | `"unchanged"`>

    #### Implementation of

    `EdgeDesiredStateStore`.`publish`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryEdgeDeviceRegistry">
    @fentaris/core / InMemoryEdgeDeviceRegistry

    Defined in: packages/core/src/edge/controlPlane.ts:159

    Reference single-process device registry. Not suitable for multi-instance deployments.

    ## Implements

    * `EdgeDeviceRegistry`

    ## Constructors

    ### Constructor

    > **new InMemoryEdgeDeviceRegistry**(): `InMemoryEdgeDeviceRegistry`

    #### Returns

    `InMemoryEdgeDeviceRegistry`

    ## Properties

    ### diagnostics

    > `readonly` **diagnostics**: `EdgeAdapterDiagnostics` = `IN_MEMORY_EDGE_ADAPTER_DIAGNOSTICS`

    Defined in: packages/core/src/edge/controlPlane.ts:160

    #### Implementation of

    `EdgeDeviceRegistry`.`diagnostics`

    ## Methods

    ### get()

    > **get**(`tenantId`, `edgeNodeId`): `Promise`\<`EdgeDeviceRecord` | `undefined`>

    Defined in: packages/core/src/edge/controlPlane.ts:163

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`EdgeDeviceRecord` | `undefined`>

    #### Implementation of

    `EdgeDeviceRegistry`.`get`

    ### getByName()

    > **getByName**(`tenantId`, `name`, `at?`): `Promise`\<`EdgeDeviceRecord` | `undefined`>

    Defined in: packages/core/src/edge/controlPlane.ts:173

    #### Parameters

    ##### tenantId

    `string`

    ##### name

    `string`

    ##### at?

    `number` = `...`

    #### Returns

    `Promise`\<`EdgeDeviceRecord` | `undefined`>

    #### Implementation of

    `EdgeDeviceRegistry`.`getByName`

    ### list()

    > **list**(`tenantId`, `options?`): `Promise`\<`EdgeInventoryListPage`>

    Defined in: packages/core/src/edge/controlPlane.ts:230

    #### Parameters

    ##### tenantId

    `string`

    ##### options?

    `EdgeInventoryListOptions` = `{}`

    #### Returns

    `Promise`\<`EdgeInventoryListPage`>

    #### Implementation of

    `EdgeDeviceRegistry`.`list`

    ### put()

    > **put**(`device`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:167

    #### Parameters

    ##### device

    `EdgeDeviceRecord`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeDeviceRegistry`.`put`

    ### revoke()

    > **revoke**(`tenantId`, `edgeNodeId`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:265

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeDeviceRegistry`.`revoke`

    ### updateConnection()

    > **updateConnection**(`tenantId`, `edgeNodeId`, `generation`, `lastSeenAt`): `Promise`\<`EdgeDeviceRecord`>

    Defined in: packages/core/src/edge/controlPlane.ts:252

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### generation

    `number`

    ##### lastSeenAt

    `number`

    #### Returns

    `Promise`\<`EdgeDeviceRecord`>

    #### Implementation of

    `EdgeDeviceRegistry`.`updateConnection`

    ### updateInventory()

    > **updateInventory**(`tenantId`, `edgeNodeId`, `update`): `Promise`\<`EdgeInventoryRecord`>

    Defined in: packages/core/src/edge/controlPlane.ts:184

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### update

    `EdgeInventoryUpdate`

    #### Returns

    `Promise`\<`EdgeInventoryRecord`>

    #### Implementation of

    `EdgeDeviceRegistry`.`updateInventory`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryEdgeInstallationStatusStore">
    @fentaris/core / InMemoryEdgeInstallationStatusStore

    Defined in: packages/core/src/edge/controlPlane.ts:342

    Reference single-process managed-installation lifecycle store.

    ## Implements

    * `EdgeInstallationStatusStore`

    ## Constructors

    ### Constructor

    > **new InMemoryEdgeInstallationStatusStore**(): `InMemoryEdgeInstallationStatusStore`

    #### Returns

    `InMemoryEdgeInstallationStatusStore`

    ## Methods

    ### delete()

    > **delete**(`tenantId`, `edgeNodeId`, `deploymentId`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:364

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeInstallationStatusStore`.`delete`

    ### get()

    > **get**(`tenantId`, `edgeNodeId`, `deploymentId`): `Promise`\<`EdgeInstallationStatusMessage` | `undefined`>

    Defined in: packages/core/src/edge/controlPlane.ts:344

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`EdgeInstallationStatusMessage` | `undefined`>

    #### Implementation of

    `EdgeInstallationStatusStore`.`get`

    ### list()

    > **list**(`tenantId`, `edgeNodeId`): `Promise`\<readonly `EdgeInstallationStatusMessage`\[]>

    Defined in: packages/core/src/edge/controlPlane.ts:347

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<readonly `EdgeInstallationStatusMessage`\[]>

    #### Implementation of

    `EdgeInstallationStatusStore`.`list`

    ### put()

    > **put**(`status`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:352

    #### Parameters

    ##### status

    `EdgeInstallationStatusMessage`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeInstallationStatusStore`.`put`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryEdgePoolSelectionStore">
    @fentaris/core / InMemoryEdgePoolSelectionStore

    Defined in: packages/core/src/edge/distributed.ts:62

    Deterministic reference selector; atomic only within one JavaScript process.

    ## Implements

    * `EdgePoolSelectionStore`

    ## Constructors

    ### Constructor

    > **new InMemoryEdgePoolSelectionStore**(): `InMemoryEdgePoolSelectionStore`

    #### Returns

    `InMemoryEdgePoolSelectionStore`

    ## Properties

    ### diagnostics

    > `readonly` **diagnostics**: `EdgeAdapterDiagnostics` = `IN_MEMORY_DISTRIBUTED_DIAGNOSTICS`

    Defined in: packages/core/src/edge/distributed.ts:63

    #### Implementation of

    `EdgePoolSelectionStore`.`diagnostics`

    ## Methods

    ### select()

    > **select**(`tenantId`, `pool`, `candidates`, `strategy`, `stickyKey?`): `Promise`\<`EdgePoolCandidate`>

    Defined in: packages/core/src/edge/distributed.ts:67

    #### Parameters

    ##### tenantId

    `string`

    ##### pool

    `string`

    ##### candidates

    readonly `EdgePoolCandidate`\[]

    ##### strategy

    `EdgeCoordinatedPoolStrategy`

    ##### stickyKey?

    `string`

    #### Returns

    `Promise`\<`EdgePoolCandidate`>

    #### Implementation of

    `EdgePoolSelectionStore`.`select`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryEdgePresenceStore">
    @fentaris/core / InMemoryEdgePresenceStore

    Defined in: packages/core/src/edge/inventory.ts:220

    Deterministic single-process presence store.

    ## Implements

    * `EdgePresenceStore`

    ## Constructors

    ### Constructor

    > **new InMemoryEdgePresenceStore**(): `InMemoryEdgePresenceStore`

    #### Returns

    `InMemoryEdgePresenceStore`

    ## Properties

    ### diagnostics

    > `readonly` **diagnostics**: `EdgeAdapterDiagnostics` = `IN_MEMORY_EDGE_ADAPTER_DIAGNOSTICS`

    Defined in: packages/core/src/edge/inventory.ts:221

    #### Implementation of

    `EdgePresenceStore`.`diagnostics`

    ## Methods

    ### get()

    > **get**(`tenantId`, `edgeNodeId`): `Promise`\<`EdgePresence` | `undefined`>

    Defined in: packages/core/src/edge/inventory.ts:224

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`EdgePresence` | `undefined`>

    #### Implementation of

    `EdgePresenceStore`.`get`

    ### purgeStale()

    > **purgeStale**(`evaluatedAt`): `Promise`\<readonly `EdgePresence`\[]>

    Defined in: packages/core/src/edge/inventory.ts:244

    #### Parameters

    ##### evaluatedAt

    `number`

    #### Returns

    `Promise`\<readonly `EdgePresence`\[]>

    #### Implementation of

    `EdgePresenceStore`.`purgeStale`

    ### put()

    > **put**(`presence`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/inventory.ts:228

    #### Parameters

    ##### presence

    `EdgePresence`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgePresenceStore`.`put`

    ### remove()

    > **remove**(`tenantId`, `edgeNodeId`, `connectionGeneration`): `Promise`\<`EdgePresence` | `undefined`>

    Defined in: packages/core/src/edge/inventory.ts:236

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### connectionGeneration

    `number`

    #### Returns

    `Promise`\<`EdgePresence` | `undefined`>

    #### Implementation of

    `EdgePresenceStore`.`remove`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryEdgeReadinessStore">
    @fentaris/core / InMemoryEdgeReadinessStore

    Defined in: packages/core/src/edge/inventory.ts:263

    Deterministic single-process readiness store.

    ## Implements

    * `EdgeReadinessStore`

    ## Constructors

    ### Constructor

    > **new InMemoryEdgeReadinessStore**(): `InMemoryEdgeReadinessStore`

    #### Returns

    `InMemoryEdgeReadinessStore`

    ## Properties

    ### diagnostics

    > `readonly` **diagnostics**: `EdgeAdapterDiagnostics` = `IN_MEMORY_EDGE_ADAPTER_DIAGNOSTICS`

    Defined in: packages/core/src/edge/inventory.ts:264

    #### Implementation of

    `EdgeReadinessStore`.`diagnostics`

    ## Methods

    ### delete()

    > **delete**(`tenantId`, `edgeNodeId`, `deploymentId`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/inventory.ts:292

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeReadinessStore`.`delete`

    ### get()

    > **get**(`tenantId`, `edgeNodeId`, `deploymentId`): `Promise`\<`EdgeDeploymentReadiness` | `undefined`>

    Defined in: packages/core/src/edge/inventory.ts:267

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`EdgeDeploymentReadiness` | `undefined`>

    #### Implementation of

    `EdgeReadinessStore`.`get`

    ### list()

    > **list**(`tenantId`, `edgeNodeId`): `Promise`\<readonly `EdgeDeploymentReadiness`\[]>

    Defined in: packages/core/src/edge/inventory.ts:271

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<readonly `EdgeDeploymentReadiness`\[]>

    #### Implementation of

    `EdgeReadinessStore`.`list`

    ### purgeExpired()

    > **purgeExpired**(`evaluatedAt`): `Promise`\<readonly `EdgeDeploymentReadiness`\[]>

    Defined in: packages/core/src/edge/inventory.ts:296

    #### Parameters

    ##### evaluatedAt

    `number`

    #### Returns

    `Promise`\<readonly `EdgeDeploymentReadiness`\[]>

    #### Implementation of

    `EdgeReadinessStore`.`purgeExpired`

    ### put()

    > **put**(`readiness`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/inventory.ts:277

    #### Parameters

    ##### readiness

    `EdgeDeploymentReadiness`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeReadinessStore`.`put`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryEdgeResultCorrelationStore">
    @fentaris/core / InMemoryEdgeResultCorrelationStore

    Defined in: packages/core/src/edge/distributed.ts:101

    Atomic-take in-memory correlation fixture for distributed harnesses.

    ## Implements

    * `EdgeResultCorrelationStore`

    ## Constructors

    ### Constructor

    > **new InMemoryEdgeResultCorrelationStore**(): `InMemoryEdgeResultCorrelationStore`

    #### Returns

    `InMemoryEdgeResultCorrelationStore`

    ## Properties

    ### diagnostics

    > `readonly` **diagnostics**: `EdgeAdapterDiagnostics` = `IN_MEMORY_DISTRIBUTED_DIAGNOSTICS`

    Defined in: packages/core/src/edge/distributed.ts:102

    #### Implementation of

    `EdgeResultCorrelationStore`.`diagnostics`

    ## Methods

    ### purgeExpired()

    > **purgeExpired**(`at`): `Promise`\<readonly `EdgeResultCorrelation`\[]>

    Defined in: packages/core/src/edge/distributed.ts:116

    #### Parameters

    ##### at

    `number`

    #### Returns

    `Promise`\<readonly `EdgeResultCorrelation`\[]>

    #### Implementation of

    `EdgeResultCorrelationStore`.`purgeExpired`

    ### put()

    > **put**(`value`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/distributed.ts:105

    #### Parameters

    ##### value

    `EdgeResultCorrelation`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeResultCorrelationStore`.`put`

    ### take()

    > **take**(`requestId`): `Promise`\<`EdgeResultCorrelation` | `undefined`>

    Defined in: packages/core/src/edge/distributed.ts:110

    #### Parameters

    ##### requestId

    `string`

    #### Returns

    `Promise`\<`EdgeResultCorrelation` | `undefined`>

    #### Implementation of

    `EdgeResultCorrelationStore`.`take`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryEdgeSessionSelectionStore">
    @fentaris/core / InMemoryEdgeSessionSelectionStore

    Defined in: packages/core/src/edge/inventory.ts:302

    Deterministic single-process pre-pin selection store.

    ## Implements

    * `EdgeSessionSelectionStore`

    ## Constructors

    ### Constructor

    > **new InMemoryEdgeSessionSelectionStore**(`now?`): `InMemoryEdgeSessionSelectionStore`

    Defined in: packages/core/src/edge/inventory.ts:306

    #### Parameters

    ##### now?

    () => `number`

    #### Returns

    `InMemoryEdgeSessionSelectionStore`

    ## Properties

    ### diagnostics

    > `readonly` **diagnostics**: `EdgeAdapterDiagnostics` = `IN_MEMORY_EDGE_ADAPTER_DIAGNOSTICS`

    Defined in: packages/core/src/edge/inventory.ts:303

    #### Implementation of

    `EdgeSessionSelectionStore`.`diagnostics`

    ## Methods

    ### delete()

    > **delete**(`sessionId`, `subjectId`, `targetName`): `Promise`\<`EdgeSessionSelection` | `undefined`>

    Defined in: packages/core/src/edge/inventory.ts:322

    #### Parameters

    ##### sessionId

    `string`

    ##### subjectId

    `string`

    ##### targetName

    `string`

    #### Returns

    `Promise`\<`EdgeSessionSelection` | `undefined`>

    #### Implementation of

    `EdgeSessionSelectionStore`.`delete`

    ### deleteSession()

    > **deleteSession**(`sessionId`): `Promise`\<readonly `EdgeSessionSelection`\[]>

    Defined in: packages/core/src/edge/inventory.ts:326

    #### Parameters

    ##### sessionId

    `string`

    #### Returns

    `Promise`\<readonly `EdgeSessionSelection`\[]>

    #### Implementation of

    `EdgeSessionSelectionStore`.`deleteSession`

    ### get()

    > **get**(`sessionId`, `subjectId`, `targetName`): `Promise`\<`EdgeSessionSelection` | `undefined`>

    Defined in: packages/core/src/edge/inventory.ts:312

    #### Parameters

    ##### sessionId

    `string`

    ##### subjectId

    `string`

    ##### targetName

    `string`

    #### Returns

    `Promise`\<`EdgeSessionSelection` | `undefined`>

    #### Implementation of

    `EdgeSessionSelectionStore`.`get`

    ### purgeExpired()

    > **purgeExpired**(`evaluatedAt`): `Promise`\<readonly `EdgeSessionSelection`\[]>

    Defined in: packages/core/src/edge/inventory.ts:330

    #### Parameters

    ##### evaluatedAt

    `number`

    #### Returns

    `Promise`\<readonly `EdgeSessionSelection`\[]>

    #### Implementation of

    `EdgeSessionSelectionStore`.`purgeExpired`

    ### put()

    > **put**(`selection`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/inventory.ts:308

    #### Parameters

    ##### selection

    `EdgeSessionSelection`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeSessionSelectionStore`.`put`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryEdgeSetupStatusStore">
    @fentaris/core / InMemoryEdgeSetupStatusStore

    Defined in: packages/core/src/edge/controlPlane.ts:323

    Reference single-process setup-status store.

    ## Implements

    * `EdgeSetupStatusStore`

    ## Constructors

    ### Constructor

    > **new InMemoryEdgeSetupStatusStore**(): `InMemoryEdgeSetupStatusStore`

    #### Returns

    `InMemoryEdgeSetupStatusStore`

    ## Methods

    ### get()

    > **get**(`tenantId`, `edgeNodeId`, `deploymentId`): `Promise`\<`EdgeSetupStatusMessage` | `undefined`>

    Defined in: packages/core/src/edge/controlPlane.ts:325

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`EdgeSetupStatusMessage` | `undefined`>

    #### Implementation of

    `EdgeSetupStatusStore`.`get`

    ### put()

    > **put**(`status`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:328

    #### Parameters

    ##### status

    `EdgeSetupStatusMessage`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeSetupStatusStore`.`put`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryInstallationApprovalStore">
    @fentaris/core / InMemoryInstallationApprovalStore

    Defined in: packages/core/src/edge/installation.ts:422

    Edge execution targets, runtime inputs, setup fields, launch recipes, and errors.

    ## Implements

    * `InstallationApprovalStore`

    ## Constructors

    ### Constructor

    > **new InMemoryInstallationApprovalStore**(): `InMemoryInstallationApprovalStore`

    #### Returns

    `InMemoryInstallationApprovalStore`

    ## Methods

    ### get()

    > **get**(`digest`, `cleanup?`): `Promise`\<`InstallationApprovalRecord` | `undefined`>

    Defined in: packages/core/src/edge/installation.ts:424

    #### Parameters

    ##### digest

    `` `sha256:${string}` ``

    ##### cleanup?

    `boolean` = `false`

    #### Returns

    `Promise`\<`InstallationApprovalRecord` | `undefined`>

    #### Implementation of

    `InstallationApprovalStore`.`get`

    ### put()

    > **put**(`value`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/installation.ts:425

    #### Parameters

    ##### value

    `InstallationApprovalRecord`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `InstallationApprovalStore`.`put`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryInstallationArtifactStore">
    @fentaris/core / InMemoryInstallationArtifactStore

    Defined in: packages/core/src/edge/installation.ts:435

    Edge execution targets, runtime inputs, setup fields, launch recipes, and errors.

    ## Implements

    * `InstallationArtifactStore`

    ## Constructors

    ### Constructor

    > **new InMemoryInstallationArtifactStore**(): `InMemoryInstallationArtifactStore`

    #### Returns

    `InMemoryInstallationArtifactStore`

    ## Methods

    ### delete()

    > **delete**(`digest`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/installation.ts:440

    #### Parameters

    ##### digest

    `` `sha256:${string}` ``

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `InstallationArtifactStore`.`delete`

    ### get()

    > **get**(`digest`): `Promise`\<`InstallationArtifactRecord` | `undefined`>

    Defined in: packages/core/src/edge/installation.ts:437

    #### Parameters

    ##### digest

    `` `sha256:${string}` ``

    #### Returns

    `Promise`\<`InstallationArtifactRecord` | `undefined`>

    #### Implementation of

    `InstallationArtifactStore`.`get`

    ### list()

    > **list**(): `Promise`\<`InstallationArtifactRecord`\[]>

    Defined in: packages/core/src/edge/installation.ts:438

    #### Returns

    `Promise`\<`InstallationArtifactRecord`\[]>

    #### Implementation of

    `InstallationArtifactStore`.`list`

    ### put()

    > **put**(`value`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/installation.ts:439

    #### Parameters

    ##### value

    `InstallationArtifactRecord`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `InstallationArtifactStore`.`put`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryInstallationAttemptStore">
    @fentaris/core / InMemoryInstallationAttemptStore

    Defined in: packages/core/src/edge/installation.ts:415

    Deterministic single-process adapter implementations for tests and local use.

    ## Implements

    * `InstallationAttemptStore`

    ## Constructors

    ### Constructor

    > **new InMemoryInstallationAttemptStore**(): `InMemoryInstallationAttemptStore`

    #### Returns

    `InMemoryInstallationAttemptStore`

    ## Methods

    ### get()

    > **get**(`id`): `Promise`\<`InstallationAttemptSummary` | `undefined`>

    Defined in: packages/core/src/edge/installation.ts:417

    #### Parameters

    ##### id

    `string`

    #### Returns

    `Promise`\<`InstallationAttemptSummary` | `undefined`>

    #### Implementation of

    `InstallationAttemptStore`.`get`

    ### list()

    > **list**(`digest`): `Promise`\<`InstallationAttemptSummary`\[]>

    Defined in: packages/core/src/edge/installation.ts:418

    #### Parameters

    ##### digest

    `` `sha256:${string}` ``

    #### Returns

    `Promise`\<`InstallationAttemptSummary`\[]>

    #### Implementation of

    `InstallationAttemptStore`.`list`

    ### put()

    > **put**(`value`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/installation.ts:419

    #### Parameters

    ##### value

    `InstallationAttemptSummary`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `InstallationAttemptStore`.`put`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryInstallationLifecycleStore">
    @fentaris/core / InMemoryInstallationLifecycleStore

    Defined in: packages/core/src/edge/installation.ts:428

    Edge execution targets, runtime inputs, setup fields, launch recipes, and errors.

    ## Implements

    * `InstallationLifecycleStore`

    ## Constructors

    ### Constructor

    > **new InMemoryInstallationLifecycleStore**(): `InMemoryInstallationLifecycleStore`

    #### Returns

    `InMemoryInstallationLifecycleStore`

    ## Methods

    ### get()

    > **get**(`id`): `Promise`\<`InstallationLifecycleSummary` | `undefined`>

    Defined in: packages/core/src/edge/installation.ts:430

    #### Parameters

    ##### id

    `string`

    #### Returns

    `Promise`\<`InstallationLifecycleSummary` | `undefined`>

    #### Implementation of

    `InstallationLifecycleStore`.`get`

    ### list()

    > **list**(): `Promise`\<`InstallationLifecycleSummary`\[]>

    Defined in: packages/core/src/edge/installation.ts:431

    #### Returns

    `Promise`\<`InstallationLifecycleSummary`\[]>

    #### Implementation of

    `InstallationLifecycleStore`.`list`

    ### put()

    > **put**(`value`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/installation.ts:432

    #### Parameters

    ##### value

    `InstallationLifecycleSummary`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `InstallationLifecycleStore`.`put`
  </Accordion>

  <Accordion title="Core exports: classes/InMemoryInstallationMutationLock">
    @fentaris/core / InMemoryInstallationMutationLock

    Defined in: packages/core/src/edge/installation.ts:443

    Edge execution targets, runtime inputs, setup fields, launch recipes, and errors.

    ## Implements

    * `InstallationMutationLock`

    ## Constructors

    ### Constructor

    > **new InMemoryInstallationMutationLock**(): `InMemoryInstallationMutationLock`

    #### Returns

    `InMemoryInstallationMutationLock`

    ## Methods

    ### runExclusive()

    > **runExclusive**\<`T`>(`key`, `operation`): `Promise`\<`T`>

    Defined in: packages/core/src/edge/installation.ts:445

    #### Type Parameters

    ##### T

    `T`

    #### Parameters

    ##### key

    `string`

    ##### operation

    () => `Promise`\<`T`>

    #### Returns

    `Promise`\<`T`>

    #### Implementation of

    `InstallationMutationLock`.`runExclusive`
  </Accordion>

  <Accordion title="Core exports: classes/InMemorySessionBindingStore">
    @fentaris/core / InMemorySessionBindingStore

    Defined in: packages/core/src/edge/sessionBinding.ts:162

    Reference single-process in-memory SessionBindingStore.

    Atomicity is implemented with a single async lock serializing mutating
    operations on the same key; reads use the same lock to observe a consistent
    snapshot. This implementation is intentionally not durable and not safe for
    multi-process deployments; managed clouds must supply a durable adapter.

    ## Implements

    * `SessionBindingStore`

    ## Constructors

    ### Constructor

    > **new InMemorySessionBindingStore**(`expiry?`): `InMemorySessionBindingStore`

    Defined in: packages/core/src/edge/sessionBinding.ts:169

    #### Parameters

    ##### expiry?

    `SessionBindingExpiryOptions` = `{}`

    #### Returns

    `InMemorySessionBindingStore`

    ## Methods

    ### addListener()

    > **addListener**(`listener`): `void`

    Defined in: packages/core/src/edge/sessionBinding.ts:173

    Register a removal listener.

    #### Parameters

    ##### listener

    `SessionBindingListener`

    #### Returns

    `void`

    #### Implementation of

    `SessionBindingStore`.`addListener`

    ### clear()

    > **clear**(): `Promise`\<readonly `SessionTargetBinding`\[]>

    Defined in: packages/core/src/edge/sessionBinding.ts:322

    Remove every binding (runtime shutdown); returns the removed bindings.

    #### Returns

    `Promise`\<readonly `SessionTargetBinding`\[]>

    #### Implementation of

    `SessionBindingStore`.`clear`

    ### delete()

    > **delete**(`key`): `Promise`\<`SessionTargetBinding` | `undefined`>

    Defined in: packages/core/src/edge/sessionBinding.ts:260

    Delete a specific binding; returns the removed binding, if any.

    #### Parameters

    ##### key

    `SessionBindingKey`

    #### Returns

    `Promise`\<`SessionTargetBinding` | `undefined`>

    #### Implementation of

    `SessionBindingStore`.`delete`

    ### deleteSession()

    > **deleteSession**(`sessionId`): `Promise`\<readonly `SessionTargetBinding`\[]>

    Defined in: packages/core/src/edge/sessionBinding.ts:272

    Delete every binding for a session; returns the removed bindings.

    #### Parameters

    ##### sessionId

    `string`

    #### Returns

    `Promise`\<readonly `SessionTargetBinding`\[]>

    #### Implementation of

    `SessionBindingStore`.`deleteSession`

    ### deleteTarget()

    > **deleteTarget**(`targetName`): `Promise`\<readonly `SessionTargetBinding`\[]>

    Defined in: packages/core/src/edge/sessionBinding.ts:288

    Delete every binding for a target; returns the removed bindings.

    #### Parameters

    ##### targetName

    `string`

    #### Returns

    `Promise`\<readonly `SessionTargetBinding`\[]>

    #### Implementation of

    `SessionBindingStore`.`deleteTarget`

    ### get()

    > **get**(`key`): `Promise`\<`SessionTargetBinding` | `undefined`>

    Defined in: packages/core/src/edge/sessionBinding.ts:238

    Read a live binding, refreshing its idle timer. Returns `undefined` when
    the binding is missing or has expired (expired bindings are removed).

    #### Parameters

    ##### key

    `SessionBindingKey`

    #### Returns

    `Promise`\<`SessionTargetBinding` | `undefined`>

    #### Implementation of

    `SessionBindingStore`.`get`

    ### listBySession()

    > **listBySession**(`sessionId`): `Promise`\<readonly `SessionTargetBinding`\[]>

    Defined in: packages/core/src/edge/sessionBinding.ts:333

    List all live bindings for a session.

    #### Parameters

    ##### sessionId

    `string`

    #### Returns

    `Promise`\<readonly `SessionTargetBinding`\[]>

    #### Implementation of

    `SessionBindingStore`.`listBySession`

    ### purgeExpired()

    > **purgeExpired**(): `Promise`\<readonly `SessionTargetBinding`\[]>

    Defined in: packages/core/src/edge/sessionBinding.ts:304

    Remove and return all expired bindings.

    #### Returns

    `Promise`\<readonly `SessionTargetBinding`\[]>

    #### Implementation of

    `SessionBindingStore`.`purgeExpired`

    ### size()

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

    Defined in: packages/core/src/edge/sessionBinding.ts:350

    Number of live bindings currently stored.

    #### Returns

    `Promise`\<`number`>

    #### Implementation of

    `SessionBindingStore`.`size`

    ### store()

    > **store**(`key`, `value`): `Promise`\<`SessionTargetBinding`>

    Defined in: packages/core/src/edge/sessionBinding.ts:197

    Atomically store a new binding. Idempotent when the same node replays an
    equal-or-lower generation. Throws `EDGE_UNAVAILABLE` when an existing live
    binding is pinned to a different edge node (silent takeover is rejected).

    #### Parameters

    ##### key

    `SessionBindingKey`

    ##### value

    `SessionBindingInput`

    #### Returns

    `Promise`\<`SessionTargetBinding`>

    #### Implementation of

    `SessionBindingStore`.`store`
  </Accordion>

  <Accordion title="Core exports: classes/InProcessIsolation">
    @fentaris/core / InProcessIsolation

    Defined in: packages/core/src/isolation/isolation.ts:14

    In-process per-user isolation runtime.

    ## Implements

    * `Isolation`

    ## Constructors

    ### Constructor

    > **new InProcessIsolation**(`options?`): `InProcessIsolation`

    Defined in: packages/core/src/isolation/isolation.ts:23

    Create an in-process isolation runtime.

    #### Parameters

    ##### options?

    ###### maxConcurrency?

    `number`

    #### Returns

    `InProcessIsolation`

    ## Methods

    ### close()

    > **close**(): `void`

    Defined in: packages/core/src/isolation/isolation.ts:47

    #### Returns

    `void`

    #### Implementation of

    `Isolation`.`close`

    ### queue()

    > **queue**(`userId`, `fn`, `timeout?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/isolation/isolation.ts:30

    #### Parameters

    ##### userId

    `string`

    ##### fn

    () => `MaybePromise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    ##### timeout?

    `number`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    #### Implementation of

    `Isolation`.`queue`
  </Accordion>

  <Accordion title="Core exports: classes/IntegratedEdgeAuthServices">
    @fentaris/core / IntegratedEdgeAuthServices

    Defined in: packages/core/src/edge/integratedAuthServices.ts:86

    Local-mode composition of device authorization, tokens, approval, enrollment,
    and revocation against the protected authority store.

    ## Implements

    * `EdgeDeviceAuthorizationService`
    * `EdgeTokenIssuanceService`
    * `EdgeApprovalService`
    * `EdgeEnrollmentService`

    ## Constructors

    ### Constructor

    > **new IntegratedEdgeAuthServices**(`options`): `IntegratedEdgeAuthServices`

    Defined in: packages/core/src/edge/integratedAuthServices.ts:101

    #### Parameters

    ##### options

    `IntegratedAuthServicesOptions`

    #### Returns

    `IntegratedEdgeAuthServices`

    ## Methods

    ### approve()

    > **approve**(`userCode`, `decision`): `Promise`\<`EdgeAuthorizationSession`>

    Defined in: packages/core/src/edge/integratedAuthServices.ts:195

    #### Parameters

    ##### userCode

    `string`

    ##### decision

    `EdgeDeviceApprovalDecision`

    #### Returns

    `Promise`\<`EdgeAuthorizationSession`>

    #### Implementation of

    `EdgeApprovalService`.`approve`

    ### authenticateHello()

    > **authenticateHello**(`proof`): `Promise`\<`EdgeAuthenticatedHelloResult`>

    Defined in: packages/core/src/edge/integratedAuthServices.ts:393

    #### Parameters

    ##### proof

    `EdgeAuthenticatedHelloProof`

    #### Returns

    `Promise`\<`EdgeAuthenticatedHelloResult`>

    #### Implementation of

    `EdgeEnrollmentService`.`authenticateHello`

    ### begin()

    > **begin**(`request`): `Promise`\<`EdgeDeviceAuthorizeResponse`>

    Defined in: packages/core/src/edge/integratedAuthServices.ts:107

    #### Parameters

    ##### request

    `EdgeDeviceAuthorizeRequest`

    #### Returns

    `Promise`\<`EdgeDeviceAuthorizeResponse`>

    #### Implementation of

    `EdgeDeviceAuthorizationService`.`begin`

    ### confidentialErrorBody()

    > **confidentialErrorBody**(`code`, `description?`): `EdgeControlPlaneErrorBody`

    Defined in: packages/core/src/edge/integratedAuthServices.ts:426

    #### Parameters

    ##### code

    `"revoked"` | `"invalid_request"` | `"unauthorized"` | `"authorization_pending"` | `"slow_down"` | `"access_denied"` | `"expired_token"` | `"invalid_grant"` | `"rate_limited"` | `"payload_too_large"` | `"server_error"`

    ##### description?

    `string`

    #### Returns

    `EdgeControlPlaneErrorBody`

    ### deny()

    > **deny**(`userCode`, `decision`): `Promise`\<`EdgeAuthorizationSession`>

    Defined in: packages/core/src/edge/integratedAuthServices.ts:219

    #### Parameters

    ##### userCode

    `string`

    ##### decision

    `Omit`\<`EdgeDeviceApprovalDecision`, `"subjectId"`> & `object`

    #### Returns

    `Promise`\<`EdgeAuthorizationSession`>

    #### Implementation of

    `EdgeApprovalService`.`deny`

    ### enroll()

    > **enroll**(`request`): `Promise`\<`EdgeEnrollResponse`>

    Defined in: packages/core/src/edge/integratedAuthServices.ts:308

    #### Parameters

    ##### request

    `EdgeEnrollRequest`

    #### Returns

    `Promise`\<`EdgeEnrollResponse`>

    #### Implementation of

    `EdgeEnrollmentService`.`enroll`

    ### getPendingByUserCode()

    > **getPendingByUserCode**(`userCode`): `Promise`\<`EdgeAuthorizationSession` | `undefined`>

    Defined in: packages/core/src/edge/integratedAuthServices.ts:187

    #### Parameters

    ##### userCode

    `string`

    #### Returns

    `Promise`\<`EdgeAuthorizationSession` | `undefined`>

    #### Implementation of

    `EdgeDeviceAuthorizationService`.`getPendingByUserCode`

    ### inspectAccessToken()

    > **inspectAccessToken**(`accessToken`): `Promise`\<\{ `deviceCodeHash`: `string`; `expiresAt`: `number`; `subjectId`: `string`; `tenantId`: `string`; } | `undefined`>

    Defined in: packages/core/src/edge/integratedAuthServices.ts:289

    #### Parameters

    ##### accessToken

    `string`

    #### Returns

    `Promise`\<\{ `deviceCodeHash`: `string`; `expiresAt`: `number`; `subjectId`: `string`; `tenantId`: `string`; } | `undefined`>

    #### Implementation of

    `EdgeTokenIssuanceService`.`inspectAccessToken`

    ### issueForApprovedSession()

    > **issueForApprovedSession**(`session`): `Promise`\<`EdgeControlPlaneTokenResponse`>

    Defined in: packages/core/src/edge/integratedAuthServices.ts:241

    #### Parameters

    ##### session

    `EdgeAuthorizationSession`

    #### Returns

    `Promise`\<`EdgeControlPlaneTokenResponse`>

    #### Implementation of

    `EdgeTokenIssuanceService`.`issueForApprovedSession`

    ### poll()

    > **poll**(`request`): `Promise`\<\{ `interval?`: `number`; `status`: `"pending"` | `"slow-down"`; } | \{ `status`: `"authorized"`; `tokens`: `EdgeControlPlaneTokenResponse`; } | \{ `status`: `"denied"` | `"expired"`; }>

    Defined in: packages/core/src/edge/integratedAuthServices.ts:141

    #### Parameters

    ##### request

    `EdgeDeviceTokenRequest`

    #### Returns

    `Promise`\<\{ `interval?`: `number`; `status`: `"pending"` | `"slow-down"`; } | \{ `status`: `"authorized"`; `tokens`: `EdgeControlPlaneTokenResponse`; } | \{ `status`: `"denied"` | `"expired"`; }>

    #### Implementation of

    `EdgeDeviceAuthorizationService`.`poll`

    ### refresh()

    > **refresh**(`request`): `Promise`\<`EdgeControlPlaneTokenResponse`>

    Defined in: packages/core/src/edge/integratedAuthServices.ts:253

    #### Parameters

    ##### request

    `EdgeTokenRefreshRequest`

    #### Returns

    `Promise`\<`EdgeControlPlaneTokenResponse`>

    #### Implementation of

    `EdgeTokenIssuanceService`.`refresh`

    ### revoke()

    > **revoke**(`request`, `accessToken`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedAuthServices.ts:373

    #### Parameters

    ##### request

    `EdgeRevokeRequest`

    ##### accessToken

    `string`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeEnrollmentService`.`revoke`

    ### revokeDeviceTokens()

    > **revokeDeviceTokens**(`tenantId`, `edgeNodeId`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedAuthServices.ts:280

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeTokenIssuanceService`.`revokeDeviceTokens`
  </Accordion>

  <Accordion title="Core exports: classes/IntegratedEdgeDeviceResolver">
    @fentaris/core / IntegratedEdgeDeviceResolver

    Defined in: packages/core/src/edge/integratedReconciliation.ts:361

    Device resolver backed by authenticated inventory, presence and desired state.

    ## Implements

    * `DeviceResolver`

    ## Constructors

    ### Constructor

    > **new IntegratedEdgeDeviceResolver**(`options`): `IntegratedEdgeDeviceResolver`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:362

    #### Parameters

    ##### options

    ###### desired

    `EdgeDesiredStateStore`

    ###### devices

    `EdgeDeviceRegistry`

    ###### presence

    `EdgePresenceStore`

    ###### readiness

    `EdgeReadinessStore`

    #### Returns

    `IntegratedEdgeDeviceResolver`

    ## Methods

    ### resolveNamedAlias()

    > **resolveNamedAlias**(`alias`, `context`): `Promise`\<`DeviceResolution` | `null`>

    Defined in: packages/core/src/edge/integratedReconciliation.ts:380

    Resolve a control-plane named alias to a device.

    #### Parameters

    ##### alias

    `string`

    ##### context

    `DeviceResolverContext`

    #### Returns

    `Promise`\<`DeviceResolution` | `null`>

    #### Implementation of

    `DeviceResolver`.`resolveNamedAlias`

    ### resolvePool()

    > **resolvePool**(`pool`, `strategy`, `context`): `Promise`\<`DeviceResolution` | `null`>

    Defined in: packages/core/src/edge/integratedReconciliation.ts:386

    Resolve one eligible device from a shared pool using `strategy`.

    #### Parameters

    ##### pool

    `string`

    ##### strategy

    `TargetSelectionStrategy` | `undefined`

    ##### context

    `DeviceResolverContext`

    #### Returns

    `Promise`\<`DeviceResolution` | `null`>

    #### Implementation of

    `DeviceResolver`.`resolvePool`

    ### resolveSessionDevice()

    > **resolveSessionDevice**(`context`): `Promise`\<`DeviceResolution` | `null`>

    Defined in: packages/core/src/edge/integratedReconciliation.ts:369

    Resolve the device requested during downstream session establishment.

    #### Parameters

    ##### context

    `DeviceResolverContext`

    #### Returns

    `Promise`\<`DeviceResolution` | `null`>

    #### Implementation of

    `DeviceResolver`.`resolveSessionDevice`

    ### resolveUserDefaultDevice()

    > **resolveUserDefaultDevice**(`context`): `Promise`\<`DeviceResolution` | `null`>

    Defined in: packages/core/src/edge/integratedReconciliation.ts:375

    Resolve the subject's configured default device.

    #### Parameters

    ##### context

    `DeviceResolverContext`

    #### Returns

    `Promise`\<`DeviceResolution` | `null`>

    #### Implementation of

    `DeviceResolver`.`resolveUserDefaultDevice`
  </Accordion>

  <Accordion title="Core exports: classes/IntegratedEdgeGatewayBridge">
    @fentaris/core / IntegratedEdgeGatewayBridge

    Defined in: packages/core/src/edge/integratedBridge.ts:36

    Bridges authenticated gateway state into reconciliation, discovery and dispatch.

    ## Implements

    * `EdgeGatewayEventSink`
    * `EdgeGatewayAuthorizer`

    ## Constructors

    ### Constructor

    > **new IntegratedEdgeGatewayBridge**(`options`): `IntegratedEdgeGatewayBridge`

    Defined in: packages/core/src/edge/integratedBridge.ts:37

    #### Parameters

    ##### options

    `IntegratedEdgeBridgeOptions`

    #### Returns

    `IntegratedEdgeGatewayBridge`

    ## Methods

    ### authorize()

    > **authorize**(`input`): `Promise`\<`boolean`>

    Defined in: packages/core/src/edge/integratedBridge.ts:114

    #### Parameters

    ##### input

    `EdgeGatewayAuthorization`

    #### Returns

    `Promise`\<`boolean`>

    #### Implementation of

    `EdgeGatewayAuthorizer`.`authorize`

    ### connected()

    > **connected**(`connection`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedBridge.ts:39

    #### Parameters

    ##### connection

    `EdgeConnectionRecord`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeGatewayEventSink`.`connected`

    ### desiredAcknowledged()

    > **desiredAcknowledged**(`message`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedBridge.ts:52

    #### Parameters

    ##### message

    `EdgeDesiredStateAckMessage`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeGatewayEventSink`.`desiredAcknowledged`

    ### disconnected()

    > **disconnected**(`connection`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedBridge.ts:48

    #### Parameters

    ##### connection

    `EdgeConnectionRecord`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeGatewayEventSink`.`disconnected`

    ### installationChanged()

    > **installationChanged**(`message`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedBridge.ts:106

    #### Parameters

    ##### message

    `EdgeInstallationStatusMessage`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeGatewayEventSink`.`installationChanged`

    ### manifestChanged()

    > **manifestChanged**(`message`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedBridge.ts:77

    #### Parameters

    ##### message

    `EdgeCapabilityManifestMessage`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeGatewayEventSink`.`manifestChanged`

    ### presenceChanged()

    > **presenceChanged**(`message`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedBridge.ts:94

    #### Parameters

    ##### message

    `EdgePresenceReportMessage`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeGatewayEventSink`.`presenceChanged`

    ### setupChanged()

    > **setupChanged**(`message`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedBridge.ts:60

    #### Parameters

    ##### message

    `EdgeSetupStatusMessage`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeGatewayEventSink`.`setupChanged`
  </Accordion>

  <Accordion title="Core exports: classes/IntegratedEdgeReconciler">
    @fentaris/core / IntegratedEdgeReconciler

    Defined in: packages/core/src/edge/integratedReconciliation.ts:201

    Per-device serialized desired-state reconciliation with durable CAS.

    ## Implements

    * `EdgeReconciliationTriggerService`

    ## Constructors

    ### Constructor

    > **new IntegratedEdgeReconciler**(`options`): `IntegratedEdgeReconciler`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:207

    #### Parameters

    ##### options

    `IntegratedEdgeReconcilerOptions`

    #### Returns

    `IntegratedEdgeReconciler`

    ## Methods

    ### drain()

    > **drain**(): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedReconciliation.ts:248

    #### Returns

    `Promise`\<`void`>

    ### enqueue()

    > **enqueue**(`input`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedReconciliation.ts:211

    #### Parameters

    ##### input

    ###### edgeNodeId

    `string`

    ###### tenantId

    `string`

    ###### trigger

    `EdgeReconciliationTrigger`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeReconciliationTriggerService`.`enqueue`

    ### reconcileAll()

    > **reconcileAll**(`trigger?`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedReconciliation.ts:227

    #### Parameters

    ##### trigger?

    `EdgeReconciliationTrigger` = `"application-start"`

    #### Returns

    `Promise`\<`void`>

    ### reconcileNow()

    > **reconcileNow**(`input`): `Promise`\<`EdgeDesiredAssignmentSnapshot` | `undefined`>

    Defined in: packages/core/src/edge/integratedReconciliation.ts:219

    #### Parameters

    ##### input

    ###### edgeNodeId

    `string`

    ###### tenantId

    `string`

    ###### trigger

    `EdgeReconciliationTrigger`

    #### Returns

    `Promise`\<`EdgeDesiredAssignmentSnapshot` | `undefined`>

    #### Implementation of

    `EdgeReconciliationTriggerService`.`reconcileNow`

    ### stopAccepting()

    > **stopAccepting**(): `void`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:244

    #### Returns

    `void`

    ### withheld()

    > **withheld**(`tenantId`, `edgeNodeId`): readonly `EdgeDeploymentCatalogDiagnostic`\[]

    Defined in: packages/core/src/edge/integratedReconciliation.ts:240

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    readonly `EdgeDeploymentCatalogDiagnostic`\[]
  </Accordion>

  <Accordion title="Core exports: classes/JsonConsoleLoggerDriver">
    @fentaris/core / JsonConsoleLoggerDriver

    Defined in: packages/core/src/logging/logger.ts:104

    Console driver that writes one JSON log entry per line.

    ## Implements

    * `LoggerDriver`

    ## Constructors

    ### Constructor

    > **new JsonConsoleLoggerDriver**(`options?`): `JsonConsoleLoggerDriver`

    Defined in: packages/core/src/logging/logger.ts:111

    Create a JSON console logger driver.

    #### Parameters

    ##### options?

    `JsonConsoleLoggerDriverOptions` = `{}`

    #### Returns

    `JsonConsoleLoggerDriver`

    ## Methods

    ### write()

    > **write**(`entry`): `void`

    Defined in: packages/core/src/logging/logger.ts:119

    Write the log entry as a single JSON line.

    #### Parameters

    ##### entry

    `LogEntry`

    #### Returns

    `void`

    #### Implementation of

    `LoggerDriver.write`
  </Accordion>

  <Accordion title="Core exports: classes/LocalEdgeDesiredAssignmentStore">
    @fentaris/core / LocalEdgeDesiredAssignmentStore

    Defined in: packages/core/src/edge/integratedReconciliation.ts:340

    Edge execution targets, runtime inputs, setup fields, launch recipes, and errors.

    ## Implements

    * `EdgeDesiredAssignmentStore`

    ## Constructors

    ### Constructor

    > **new LocalEdgeDesiredAssignmentStore**(`store`): `LocalEdgeDesiredAssignmentStore`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:341

    #### Parameters

    ##### store

    ###### putDesiredAssignment

    ###### removeDesiredAssignment

    ###### snapshot

    #### Returns

    `LocalEdgeDesiredAssignmentStore`

    ## Methods

    ### compareAndSwap()

    > **compareAndSwap**(`snapshot`, `expectedVersion`): `Promise`\<`"unchanged"` | `"updated"` | `"conflict"`>

    Defined in: packages/core/src/edge/integratedReconciliation.ts:351

    #### Parameters

    ##### snapshot

    `EdgeDesiredAssignmentSnapshot`

    ##### expectedVersion

    `number` | `undefined`

    #### Returns

    `Promise`\<`"unchanged"` | `"updated"` | `"conflict"`>

    #### Implementation of

    `EdgeDesiredAssignmentStore`.`compareAndSwap`

    ### get()

    > **get**(`tenantId`, `edgeNodeId`): `Promise`\<`EdgeDesiredAssignmentSnapshot` | `undefined`>

    Defined in: packages/core/src/edge/integratedReconciliation.ts:347

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`EdgeDesiredAssignmentSnapshot` | `undefined`>

    #### Implementation of

    `EdgeDesiredAssignmentStore`.`get`

    ### remove()

    > **remove**(`tenantId`, `edgeNodeId`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedReconciliation.ts:355

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `EdgeDesiredAssignmentStore`.`remove`
  </Accordion>

  <Accordion title="Core exports: classes/LocalSecretsBackend">
    @fentaris/core / LocalSecretsBackend

    Defined in: packages/core/src/secrets/local-backend.ts:18

    Local encrypted secrets backend backed by credentials.enc.json.

    ## Implements

    * `SecretsBackend`

    ## Constructors

    ### Constructor

    > **new LocalSecretsBackend**(`options`): `LocalSecretsBackend`

    Defined in: packages/core/src/secrets/local-backend.ts:24

    #### Parameters

    ##### options

    `LocalSecretsBackendOptions`

    #### Returns

    `LocalSecretsBackend`

    ## Properties

    ### provider

    > `readonly` **provider**: `"local"`

    Defined in: packages/core/src/secrets/local-backend.ts:19

    #### Implementation of

    `SecretsBackend`.`provider`

    ## Methods

    ### addUserApiKey()

    > **addUserApiKey**(`userId`, `apiKey`): `Promise`\<`boolean`>

    Defined in: packages/core/src/secrets/local-backend.ts:81

    Add a hashed API key for a local user identity.

    #### Parameters

    ##### userId

    `string`

    ##### apiKey

    `string`

    #### Returns

    `Promise`\<`boolean`>

    ### credentialsExist()

    > **credentialsExist**(): `Promise`\<`boolean`>

    Defined in: packages/core/src/secrets/local-backend.ts:157

    #### Returns

    `Promise`\<`boolean`>

    ### has()

    > **has**(`ref`, `scope`): `Promise`\<`boolean`>

    Defined in: packages/core/src/secrets/local-backend.ts:47

    #### Parameters

    ##### ref

    `string`

    ##### scope

    `SecretScope`

    #### Returns

    `Promise`\<`boolean`>

    #### Implementation of

    `SecretsBackend`.`has`

    ### initEmpty()

    > **initEmpty**(): `Promise`\<`void`>

    Defined in: packages/core/src/secrets/local-backend.ts:153

    #### Returns

    `Promise`\<`void`>

    ### listRefs()

    > **listRefs**(): `Promise`\<`SecretRef`\[]>

    Defined in: packages/core/src/secrets/local-backend.ts:39

    #### Returns

    `Promise`\<`SecretRef`\[]>

    #### Implementation of

    `SecretsBackend`.`listRefs`

    ### removeUserApiKey()

    > **removeUserApiKey**(`userId`, `apiKey`): `Promise`\<`boolean`>

    Defined in: packages/core/src/secrets/local-backend.ts:99

    Remove a local user API key by matching its raw value.

    #### Parameters

    ##### userId

    `string`

    ##### apiKey

    `string`

    #### Returns

    `Promise`\<`boolean`>

    ### set()

    > **set**(`ref`, `value`, `scope`): `Promise`\<`void`>

    Defined in: packages/core/src/secrets/local-backend.ts:61

    #### Parameters

    ##### ref

    `string`

    ##### value

    `string`

    ##### scope

    `SecretScope`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `SecretsBackend`.`set`

    ### unset()

    > **unset**(`ref`, `scope`): `Promise`\<`boolean`>

    Defined in: packages/core/src/secrets/local-backend.ts:120

    #### Parameters

    ##### ref

    `string`

    ##### scope

    `SecretScope`

    #### Returns

    `Promise`\<`boolean`>

    #### Implementation of

    `SecretsBackend`.`unset`

    ### open()

    > `static` **open**(`options`): `Promise`\<`LocalSecretsBackend`>

    Defined in: packages/core/src/secrets/local-backend.ts:34

    Create a backend when the encrypted store may not exist yet.

    #### Parameters

    ##### options

    `LocalSecretsBackendOptions`

    #### Returns

    `Promise`\<`LocalSecretsBackend`>
  </Accordion>

  <Accordion title="Core exports: classes/Logger">
    @fentaris/core / Logger

    Defined in: packages/core/src/logging/logger.ts:191

    Structured logger with level filtering.

    ## Constructors

    ### Constructor

    > **new Logger**(`options?`): `Logger`

    Defined in: packages/core/src/logging/logger.ts:204

    Create a new logger instance.

    #### Parameters

    ##### options?

    `LoggerOptions` = `{}`

    #### Returns

    `Logger`

    ## Methods

    ### annotate()

    > **annotate**(`key`, `value`): `this`

    Defined in: packages/core/src/logging/logger.ts:236

    Add mutable metadata that will be included in future log writes.

    #### Parameters

    ##### key

    `string`

    ##### value

    `unknown`

    #### Returns

    `this`

    ### child()

    > **child**(`context`): `Logger`

    Defined in: packages/core/src/logging/logger.ts:217

    Create a child logger with merged context.

    #### Parameters

    ##### context

    `Record`\<`string`, `unknown`>

    #### Returns

    `Logger`

    ### debug()

    > **debug**(`message`, `metadata?`): `void`

    Defined in: packages/core/src/logging/logger.ts:254

    Emit a debug log entry.

    #### Parameters

    ##### message

    `string`

    ##### metadata?

    `Record`\<`string`, `unknown`> = `{}`

    #### Returns

    `void`

    ### error()

    > **error**(`message`, `metadata?`): `void`

    Defined in: packages/core/src/logging/logger.ts:278

    Emit an error log entry.

    #### Parameters

    ##### message

    `string`

    ##### metadata?

    `Record`\<`string`, `unknown`> = `{}`

    #### Returns

    `void`

    ### fatal()

    > **fatal**(`message`, `metadata?`): `void`

    Defined in: packages/core/src/logging/logger.ts:286

    Emit a fatal log entry.

    #### Parameters

    ##### message

    `string`

    ##### metadata?

    `Record`\<`string`, `unknown`> = `{}`

    #### Returns

    `void`

    ### info()

    > **info**(`message`, `metadata?`): `void`

    Defined in: packages/core/src/logging/logger.ts:262

    Emit an info log entry.

    #### Parameters

    ##### message

    `string`

    ##### metadata?

    `Record`\<`string`, `unknown`> = `{}`

    #### Returns

    `void`

    ### setTag()

    > **setTag**(`key`, `value`): `this`

    Defined in: packages/core/src/logging/logger.ts:245

    Add a tag to future log writes.

    #### Parameters

    ##### key

    `string`

    ##### value

    `unknown`

    #### Returns

    `this`

    ### warn()

    > **warn**(`message`, `metadata?`): `void`

    Defined in: packages/core/src/logging/logger.ts:270

    Emit a warning log entry.

    #### Parameters

    ##### message

    `string`

    ##### metadata?

    `Record`\<`string`, `unknown`> = `{}`

    #### Returns

    `void`
  </Accordion>

  <Accordion title="Core exports: classes/McpProxy">
    @fentaris/core / McpProxy

    Defined in: packages/core/src/proxy/McpProxy.ts:405

    HTTP proxy for multiple MCP servers.

    ## Constructors

    ### Constructor

    > **new McpProxy**(`options?`): `McpProxy`

    Defined in: packages/core/src/proxy/McpProxy.ts:463

    Create a new MCP proxy instance.

    #### Parameters

    ##### options?

    `McpProxyOptions` = `{}`

    #### Returns

    `McpProxy`

    ## Methods

    ### addGroupUsers()

    > **addGroupUsers**(`groupId`, `users`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2657

    #### Parameters

    ##### groupId

    `string`

    ##### users

    `User`\[]

    #### Returns

    `void`

    ### assertGroupHandleKnown()

    > **assertGroupHandleKnown**(`groupId`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2697

    #### Parameters

    ##### groupId

    `string`

    #### Returns

    `void`

    ### assertServerHandleVisible()

    > **assertServerHandleVisible**(`serverName`, `groupId?`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2669

    #### Parameters

    ##### serverName

    `string`

    ##### groupId?

    `string`

    #### Returns

    `void`

    ### callTool()

    > **callTool**(`params`, `user?`, `identity?`, `subject?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:1877

    Call a proxied tool with middleware dispatch.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `unknown`; }

    ###### name

    `string`

    ###### task?

    \{ `ttl?`: `number`; }

    ###### task.ttl?

    `number`

    ##### user?

    `UserContext` = `{}`

    ##### identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    ### close()

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

    Defined in: packages/core/src/proxy/McpProxy.ts:1639

    Close the HTTP server and all backends.

    #### Returns

    `Promise`\<`void`>

    ### complete()

    > **complete**(`params`, `user?`, `identity?`, `subject?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:2421

    Complete a proxied prompt or resource-template argument.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### argument

    \{ `name`: `string`; `value`: `string`; }

    ###### argument.name

    `string`

    ###### argument.value

    `string`

    ###### context?

    \{ `arguments?`: \{\[`key`: `string`]: `string`; }; }

    ###### context.arguments?

    \{\[`key`: `string`]: `string`; }

    ###### ref

    \{ `name`: `string`; `type`: `"ref/prompt"`; } | \{ `type`: `"ref/resource"`; `uri`: `string`; }

    ##### user?

    `UserContext` = `{}`

    ##### identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    ### edgeSessionPinner()

    > **edgeSessionPinner**(): `EdgeSessionPinner` | `undefined`

    Defined in: packages/core/src/proxy/McpProxy.ts:854

    Lazily build (and cache) the edge session pinner over the registered
    targets, normalized bindings, and configured device resolver. Returns
    `undefined` when no device resolver is configured (cloud-only runtime).

    #### Returns

    `EdgeSessionPinner` | `undefined`

    ### emitSessionEnd()

    > **emitSessionEnd**(`context`): `Promise`\<`void`>

    Defined in: packages/core/src/proxy/McpProxy.ts:2538

    Emit a downstream session end lifecycle event.

    #### Parameters

    ##### context

    `LifecycleHookContext`

    #### Returns

    `Promise`\<`void`>

    ### emitSessionStart()

    > **emitSessionStart**(`context`): `Promise`\<`void`>

    Defined in: packages/core/src/proxy/McpProxy.ts:2500

    Emit a downstream session start lifecycle event.

    #### Parameters

    ##### context

    `LifecycleHookContext`

    #### Returns

    `Promise`\<`void`>

    ### endEdgeSession()

    > **endEdgeSession**(`sessionId`): `Promise`\<`void`>

    Defined in: packages/core/src/proxy/McpProxy.ts:1050

    Remove every session-target binding for a downstream session.

    #### Parameters

    ##### sessionId

    `string`

    #### Returns

    `Promise`\<`void`>

    ### getPrompt()

    > **getPrompt**(`params`, `user?`, `identity?`, `subject?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:2366

    Get a proxied prompt from its owning upstream server.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `string`; }

    ###### name

    `string`

    ##### user?

    `UserContext` = `{}`

    ##### identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    ### group()

    > **group**(`groupId`): `ProxyGroupHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:732

    Register or retrieve a scoped group handle.

    #### Parameters

    ##### groupId

    `string`

    #### Returns

    `ProxyGroupHandle`

    ### health()

    > **health**(): `Promise`\<`HealthReport`>

    Defined in: packages/core/src/proxy/McpProxy.ts:1693

    Run configured runtime health checks.

    #### Returns

    `Promise`\<`HealthReport`>

    ### listen()

    > **listen**\<`THandle`>(`transport`): `Promise`\<`THandle`>

    Defined in: packages/core/src/proxy/McpProxy.ts:1350

    Start the proxy with an explicit downstream exposure transport.

    #### Type Parameters

    ##### THandle

    `THandle` *extends* `ProxyExposureHandle`

    #### Parameters

    ##### transport

    `ProxyExposureTransport`\<`THandle`>

    #### Returns

    `Promise`\<`THandle`>

    ### listPrompts()

    > **listPrompts**(`params?`, `user?`, `_identity?`, `subject?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:2301

    List prompts across all configured servers.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    ##### user?

    `UserContext` = `{}`

    ##### \_identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    ### listResources()

    > **listResources**(`params?`, `user?`, `_identity?`, `subject?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:2096

    List resources across all configured servers.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    ##### user?

    `UserContext` = `{}`

    ##### \_identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    ### listResourceTemplates()

    > **listResourceTemplates**(`params?`, `user?`, `_identity?`, `subject?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:2230

    List resource templates across all configured servers.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    ##### user?

    `UserContext` = `{}`

    ##### \_identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    ### listTools()

    > **listTools**(`params?`, `user?`, `identity?`, `subject?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:1767

    List tools across all configured servers.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    ##### user?

    `UserContext` = `{}`

    ##### identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    ### local()

    > **local**(`name`): `ProxyLocalHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:712

    Register or retrieve a named local MCP capability namespace.

    #### Parameters

    ##### name

    `string`

    #### Returns

    `ProxyLocalHandle`

    ### mcp()

    #### Call Signature

    > **mcp**(`name`): `ProxyMcpHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:641

    Register or retrieve a scoped upstream MCP handle.

    ##### Parameters

    ###### name

    `string`

    ##### Returns

    `ProxyMcpHandle`

    #### Call Signature

    > **mcp**(`name`, `options`): `ProxyMcpHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:642

    Register or retrieve a scoped upstream MCP handle.

    ##### Parameters

    ###### name

    `string`

    ###### options

    `ProxyMcpDeclarationOptions`

    ##### Returns

    `ProxyMcpHandle`

    #### Call Signature

    > **mcp**(`name`, `server`): `ProxyMcpHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:643

    Register or retrieve a scoped upstream MCP handle.

    ##### Parameters

    ###### name

    `string`

    ###### server

    `McpServer`

    ##### Returns

    `ProxyMcpHandle`

    #### Call Signature

    > **mcp**(`config`): `ProxyMcpHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:644

    Register or retrieve a scoped upstream MCP handle.

    ##### Parameters

    ###### config

    `McpServerOptions`

    ##### Returns

    `ProxyMcpHandle`

    ### mcpHealth()

    > **mcpHealth**(`name`): `Promise`\<`HealthCheckResult`>

    Defined in: packages/core/src/proxy/McpProxy.ts:1758

    Check a configured upstream MCP server health.

    #### Parameters

    ##### name

    `string`

    #### Returns

    `Promise`\<`HealthCheckResult`>

    ### on()

    #### Call Signature

    > **on**(`event`, `handler`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:1178

    Register an event hook.

    ##### Parameters

    ###### event

    `"call"`

    ###### handler

    `ToolCallHook`

    ##### Returns

    `this`

    #### Call Signature

    > **on**(`event`, `filter`, `handler`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:1183

    Register a filtered event hook.

    ##### Parameters

    ###### event

    `"call"`

    ###### filter

    `ToolCallHookFilter`

    ###### handler

    `ToolCallHook`

    ##### Returns

    `this`

    #### Call Signature

    > **on**(`event`, `handler`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:1188

    Register a unified proxy event handler.

    ##### Parameters

    ###### event

    `ProxyEventName`

    ###### handler

    `ProxyEventHandler`

    ##### Returns

    `this`

    #### Call Signature

    > **on**(`event`, `filter`, `handler`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:1193

    Register a filtered unified proxy event handler.

    ##### Parameters

    ###### event

    `ProxyEventName`

    ###### filter

    `ProxyEventFilter`

    ###### handler

    `ProxyEventHandler`

    ##### Returns

    `this`

    ### onLifecycle()

    > **onLifecycle**(`event`, `handler`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:1227

    Register a lifecycle hook.

    #### Parameters

    ##### event

    `LifecycleHookEvent`

    ##### handler

    `LifecycleHook`

    #### Returns

    `this`

    ### onListTools()

    > **onListTools**(`hook`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:1242

    Register a hook that can transform listed tools.

    #### Parameters

    ##### hook

    `ListToolsHook`

    #### Returns

    `this`

    ### operation()

    > **operation**(`operation`, `handler`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:589

    Register a global operation route for governed non-tool operations.

    #### Parameters

    ##### operation

    `ProxyOperation`

    ##### handler

    `ProxyMiddleware`

    #### Returns

    `this`

    ### pingMcp()

    > **pingMcp**(`name`): `Promise`\<`HealthCheckResult`>

    Defined in: packages/core/src/proxy/McpProxy.ts:1749

    Ping a configured upstream MCP server by listing tools.

    #### Parameters

    ##### name

    `string`

    #### Returns

    `Promise`\<`HealthCheckResult`>

    ### pinSessionTarget()

    > **pinSessionTarget**(`request`): `Promise`\<`SessionPinResult`>

    Defined in: packages/core/src/proxy/McpProxy.ts:882

    Lazily resolve and pin a downstream session to one eligible edge device
    per logical target before the first edge-dependent operation. Cloud
    targets return without pinning. Throws normalized edge errors.

    #### Parameters

    ##### request

    `SessionPinRequest`

    #### Returns

    `Promise`\<`SessionPinResult`>

    ### placementResolver()

    > **placementResolver**(): `PlacementResolver`

    Defined in: packages/core/src/proxy/McpProxy.ts:829

    Build a PlacementResolver over the registered targets and
    normalized placement bindings. The resolver never grants capability
    access; callers must have already established server-catalog visibility
    and policy authorization before relying on its result.

    #### Returns

    `PlacementResolver`

    ### policy()

    > **policy**(`name`): `Policy`

    Defined in: packages/core/src/proxy/McpProxy.ts:598

    Register or retrieve a named app-level policy declaration.

    #### Parameters

    ##### name

    `string`

    #### Returns

    `Policy`

    ### readResource()

    > **readResource**(`params`, `user?`, `identity?`, `subject?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:2167

    Read a proxied resource from its owning upstream server.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### uri

    `string`

    ##### user?

    `UserContext` = `{}`

    ##### identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    ### ready()

    > **ready**(`options?`): `Promise`\<`RuntimeLifecycleSnapshot`>

    Defined in: packages/core/src/proxy/McpProxy.ts:1647

    Wait for the runtime to reach readiness.

    #### Parameters

    ##### options?

    `RuntimeLifecycleOptions`

    #### Returns

    `Promise`\<`RuntimeLifecycleSnapshot`>

    ### registerGroupEvent()

    > **registerGroupEvent**(`groupId`, `eventName`, `filter`, `handler`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2645

    #### Parameters

    ##### groupId

    `string`

    ##### eventName

    `ProxyEventName`

    ##### filter

    `ProxyEventFilter`

    ##### handler

    `ProxyEventHandler`

    #### Returns

    `void`

    ### registerGroupMiddleware()

    > **registerGroupMiddleware**(`groupId`, `handler`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2635

    #### Parameters

    ##### groupId

    `string`

    ##### handler

    `Middleware`

    #### Returns

    `void`

    ### registerGroupOperation()

    > **registerGroupOperation**(`groupId`, `operation`, `handler`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2640

    #### Parameters

    ##### groupId

    `string`

    ##### operation

    `ProxyOperation`

    ##### handler

    `ProxyMiddleware`

    #### Returns

    `void`

    ### registerPlacementBinding()

    > **registerPlacementBinding**(`binding`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:1138

    Record a placement binding unless a conflicting one already exists.

    #### Parameters

    ##### binding

    `PlacementBindingConfig`

    #### Returns

    `void`

    ### registerServerEvent()

    > **registerServerEvent**(`serverName`, `eventName`, `filter`, `handler`, `groupId?`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2622

    #### Parameters

    ##### serverName

    `string`

    ##### eventName

    `ProxyEventName`

    ##### filter

    `ProxyEventFilter`

    ##### handler

    `ProxyEventHandler`

    ##### groupId?

    `string`

    #### Returns

    `void`

    ### registerServerMiddleware()

    > **registerServerMiddleware**(`serverName`, `handler`, `groupId?`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2607

    #### Parameters

    ##### serverName

    `string`

    ##### handler

    `Middleware`

    ##### groupId?

    `string`

    #### Returns

    `void`

    ### registerServerOperation()

    > **registerServerOperation**(`serverName`, `operation`, `handler`, `groupId?`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2617

    #### Parameters

    ##### serverName

    `string`

    ##### operation

    `ProxyOperation`

    ##### handler

    `ProxyMiddleware`

    ##### groupId?

    `string`

    #### Returns

    `void`

    ### registerServerSetup()

    > **registerServerSetup**(`serverName`, `schema`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:1121

    Register a setup schema for a server.

    #### Parameters

    ##### serverName

    `string`

    ##### schema

    `SetupSchema` | `Record`\<`string`, `SetupFieldDescriptor`>

    #### Returns

    `void`

    ### registerServerTool()

    > **registerServerTool**(`serverName`, `pattern`, `handler`, `groupId?`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2612

    #### Parameters

    ##### serverName

    `string`

    ##### pattern

    `string`

    ##### handler

    `ProxyMiddleware`

    ##### groupId?

    `string`

    #### Returns

    `void`

    ### resolveHttpUser()

    > **resolveHttpUser**(`req`): `Promise`\<\{ `identity?`: `IdentityMetadata`; `subject?`: `ResolvedSubject`; `user`: `UserContext`; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:2483

    Resolve user context from an HTTP downstream request.

    #### Parameters

    ##### req

    `IncomingMessage`

    #### Returns

    `Promise`\<\{ `identity?`: `IdentityMetadata`; `subject?`: `ResolvedSubject`; `user`: `UserContext`; }>

    ### resolvePlacement()

    > **resolvePlacement**(`request`): `PlacementResolution`

    Defined in: packages/core/src/proxy/McpProxy.ts:844

    Resolve a placement for an already-authorized request. Intended to be
    called at dispatch time, after server-catalog visibility and policy
    authorization have established that the subject may use the server.
    Throws `EDGE_UNAUTHORIZED_TARGET` for an ineligible explicit selection and
    `EDGE_PLACEMENT_AMBIGUOUS` for unresolved runtime group overlap.

    #### Parameters

    ##### request

    `PlacementRequest`

    #### Returns

    `PlacementResolution`

    ### resolveStdioUser()

    > **resolveStdioUser**(): `Promise`\<\{ `identity?`: `IdentityMetadata`; `subject?`: `ResolvedSubject`; `user`: `UserContext`; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:2491

    Resolve user context for non-HTTP stdio downstream exposure.

    #### Returns

    `Promise`\<\{ `identity?`: `IdentityMetadata`; `subject?`: `ResolvedSubject`; `user`: `UserContext`; }>

    ### resolveTarget()

    > **resolveTarget**(`name`): `ExecutionTarget`

    Defined in: packages/core/src/proxy/McpProxy.ts:802

    Resolve a registered or built-in target by name.

    #### Parameters

    ##### name

    `string`

    #### Returns

    `ExecutionTarget`

    ### server()

    #### Call Signature

    > **server**(`name`): `ProxyMcpHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:689

    Register or retrieve a scoped upstream MCP handle.
    Alias for `mcp(...)`.

    ##### Parameters

    ###### name

    `string`

    ##### Returns

    `ProxyMcpHandle`

    #### Call Signature

    > **server**(`name`, `options`): `ProxyMcpHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:690

    Register or retrieve a scoped upstream MCP handle.
    Alias for `mcp(...)`.

    ##### Parameters

    ###### name

    `string`

    ###### options

    `ProxyMcpDeclarationOptions`

    ##### Returns

    `ProxyMcpHandle`

    #### Call Signature

    > **server**(`name`, `server`): `ProxyMcpHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:691

    Register or retrieve a scoped upstream MCP handle.
    Alias for `mcp(...)`.

    ##### Parameters

    ###### name

    `string`

    ###### server

    `McpServer`

    ##### Returns

    `ProxyMcpHandle`

    #### Call Signature

    > **server**(`config`): `ProxyMcpHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:692

    Register or retrieve a scoped upstream MCP handle.
    Alias for `mcp(...)`.

    ##### Parameters

    ###### config

    `McpServerOptions`

    ##### Returns

    `ProxyMcpHandle`

    ### setGroupPolicy()

    > **setGroupPolicy**(`groupId`, `policy`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2663

    #### Parameters

    ##### groupId

    `string`

    ##### policy

    `string` | `PolicyContract`

    #### Returns

    `void`

    ### shutdownEdgeSessions()

    > **shutdownEdgeSessions**(): `Promise`\<`void`>

    Defined in: packages/core/src/proxy/McpProxy.ts:1057

    Remove every session-target binding on runtime shutdown.

    #### Returns

    `Promise`\<`void`>

    ### start()

    #### Call Signature

    > **start**(`onStarted?`): `Promise`\<`Server`\<*typeof* `IncomingMessage`, *typeof* `ServerResponse`>>

    Defined in: packages/core/src/proxy/McpProxy.ts:1251

    Start the HTTP server.

    ##### Parameters

    ###### onStarted?

    () => `void`

    ##### Returns

    `Promise`\<`Server`\<*typeof* `IncomingMessage`, *typeof* `ServerResponse`>>

    #### Call Signature

    > **start**(`options?`, `onStarted?`): `Promise`\<`Server`\<*typeof* `IncomingMessage`, *typeof* `ServerResponse`>>

    Defined in: packages/core/src/proxy/McpProxy.ts:1256

    Start the HTTP server with optional overrides.

    ##### Parameters

    ###### options?

    `McpProxyStartOptions`

    ###### onStarted?

    () => `void`

    ##### Returns

    `Promise`\<`Server`\<*typeof* `IncomingMessage`, *typeof* `ServerResponse`>>

    ### state()

    > **state**(): `RuntimeLifecycleSnapshot`

    Defined in: packages/core/src/proxy/McpProxy.ts:1685

    Inspect the current runtime lifecycle state.

    #### Returns

    `RuntimeLifecycleSnapshot`

    ### stop()

    > **stop**(`options?`): `Promise`\<`void`>

    Defined in: packages/core/src/proxy/McpProxy.ts:1655

    Stop the runtime and close owned resources.

    #### Parameters

    ##### options?

    `McpProxyStopOptions` = `{}`

    #### Returns

    `Promise`\<`void`>

    ### target()

    > **target**(`name`, `target?`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:744

    Register or retrieve a reusable named execution target. Target bindings
    describe where an MCP runs and never grant MCP capability access. The
    built-in `cloud` target always executes the configured transport on the
    Fentaris host and need not be registered.

    #### Parameters

    ##### name

    `string`

    ##### target?

    `ExecutionTarget`

    #### Returns

    `this`

    ### tool()

    > **tool**(`pattern`, `handler`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:580

    Register a global tool route with a public server.tool pattern.

    #### Parameters

    ##### pattern

    `string`

    ##### handler

    `ProxyMiddleware`

    #### Returns

    `this`

    ### use()

    #### Call Signature

    > **use**(`middleware`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:568

    Register a middleware handler.

    ##### Parameters

    ###### middleware

    `ProxyMiddleware`

    ##### Returns

    `this`

    #### Call Signature

    > **use**(`middleware`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:569

    Register a middleware handler.

    ##### Parameters

    ###### middleware

    `LegacyMiddleware`

    ##### Returns

    `this`

    ### usePolicy()

    > **usePolicy**(`policyNameOrPolicy`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:614

    Apply a named or concrete policy as the global proxy policy.

    #### Parameters

    ##### policyNameOrPolicy

    `string` | `PolicyContract`

    #### Returns

    `this`

    ### user()

    > **user**(`userId`): `ProxyUserHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:1158

    Retrieve a user-scoped MCP handle. Records placement bindings without
    creating or authenticating a subject.

    #### Parameters

    ##### userId

    `string`

    #### Returns

    `ProxyUserHandle`

    ### validateEdgeConfiguration()

    > **validateEdgeConfiguration**(): `FentarisDiagnostic`\[]

    Defined in: packages/core/src/proxy/McpProxy.ts:1402

    Validate fluent and constructor-style target, setup, and placement
    declarations: unresolved user handles, missing targets, duplicate
    conflicting bindings, incompatible setup fields, undeclared runtime
    references, unused required fields, and unsafe secret defaults. Target
    bindings never grant MCP capability access.

    #### Returns

    `FentarisDiagnostic`\[]
  </Accordion>

  <Accordion title="Core exports: classes/McpServer">
    @fentaris/core / McpServer

    Defined in: packages/core/src/server/McpServer.ts:86

    MCP server wrapper with optional per-user env injection.

    ## Constructors

    ### Constructor

    > **new McpServer**(`options`): `McpServer`

    Defined in: packages/core/src/server/McpServer.ts:102

    Create a new MCP server wrapper.

    #### Parameters

    ##### options

    `McpServerOptions`

    #### Returns

    `McpServer`

    ## Properties

    ### displayName

    > `readonly` **displayName**: `string`

    Defined in: packages/core/src/server/McpServer.ts:88

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/server/McpServer.ts:87

    ### transport

    > `readonly` **transport**: `FentarisTransport`

    Defined in: packages/core/src/server/McpServer.ts:91

    The transport backing this server; exposed for edge recipe/validation.

    ## Methods

    ### callTool()

    > **callTool**(`params`, `user?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/server/McpServer.ts:126

    Call a tool for a given user.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `unknown`; }

    ###### name

    `string`

    ###### task?

    \{ `ttl?`: `number`; }

    ###### task.ttl?

    `number`

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    ### close()

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

    Defined in: packages/core/src/server/McpServer.ts:265

    Close all transports.

    #### Returns

    `Promise`\<`void`>

    ### complete()

    > **complete**(`params`, `user?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    Defined in: packages/core/src/server/McpServer.ts:215

    Complete a prompt or resource argument for a given user.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### argument

    \{ `name`: `string`; `value`: `string`; }

    ###### argument.name

    `string`

    ###### argument.value

    `string`

    ###### context?

    \{ `arguments?`: \{\[`key`: `string`]: `string`; }; }

    ###### context.arguments?

    \{\[`key`: `string`]: `string`; }

    ###### ref

    \{ `name`: `string`; `type`: `"ref/prompt"`; } | \{ `type`: `"ref/resource"`; `uri`: `string`; }

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    ### getCredentialBindings()

    > **getCredentialBindings**(): `ServerCredentialBinding`\[]

    Defined in: packages/core/src/server/McpServer.ts:276

    Credential bindings declared with this server.

    #### Returns

    `ServerCredentialBinding`\[]

    ### getPrompt()

    > **getPrompt**(`params`, `user?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    Defined in: packages/core/src/server/McpServer.ts:202

    Get a prompt for a given user.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `string`; }

    ###### name

    `string`

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    ### listPrompts()

    > **listPrompts**(`params?`, `user?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    Defined in: packages/core/src/server/McpServer.ts:189

    List prompts for a given user.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    ### listResources()

    > **listResources**(`params?`, `user?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    Defined in: packages/core/src/server/McpServer.ts:147

    List resources for a given user.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    ### listResourceTemplates()

    > **listResourceTemplates**(`params?`, `user?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    Defined in: packages/core/src/server/McpServer.ts:173

    List resource templates for a given user.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    ### listTools()

    > **listTools**(`params?`, `user?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    Defined in: packages/core/src/server/McpServer.ts:118

    List tools for a given user.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    ### readResource()

    > **readResource**(`params`, `user?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    Defined in: packages/core/src/server/McpServer.ts:160

    Read a resource for a given user.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### uri

    `string`

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    ### supportsCompletions()

    > **supportsCompletions**(): `boolean`

    Defined in: packages/core/src/server/McpServer.ts:257

    Whether the configured transport exposes completion operations.

    #### Returns

    `boolean`

    ### supportsPrompts()

    > **supportsPrompts**(): `boolean`

    Defined in: packages/core/src/server/McpServer.ts:249

    Whether the configured transport exposes prompt operations.

    #### Returns

    `boolean`

    ### supportsResources()

    > **supportsResources**(): `boolean`

    Defined in: packages/core/src/server/McpServer.ts:241

    Whether the configured transport exposes resource operations.

    #### Returns

    `boolean`

    ### withProxyContext()

    > **withProxyContext**\<`T`>(`context`, `run`): `Promise`\<`T`>

    Defined in: packages/core/src/server/McpServer.ts:228

    Run a server operation with a governed proxy context when the transport supports it.

    #### Type Parameters

    ##### T

    `T`

    #### Parameters

    ##### context

    `ProxyContext`

    ##### run

    () => `Promise`\<`T`>

    #### Returns

    `Promise`\<`T`>
  </Accordion>

  <Accordion title="Core exports: classes/MemoryRateLimitStore">
    @fentaris/core / MemoryRateLimitStore

    Defined in: packages/core/src/rate-limit/rateLimit.ts:21

    In-memory rate limit store with expiring buckets.

    ## Implements

    * `RateLimitStore`

    ## Constructors

    ### Constructor

    > **new MemoryRateLimitStore**(): `MemoryRateLimitStore`

    #### Returns

    `MemoryRateLimitStore`

    ## Methods

    ### consume()

    > **consume**(`key`, `window`, `limit`): `Promise`\<`boolean`>

    Defined in: packages/core/src/rate-limit/rateLimit.ts:36

    #### Parameters

    ##### key

    `string`

    ##### window

    `number`

    ##### limit

    `number`

    #### Returns

    `Promise`\<`boolean`>

    #### Implementation of

    `RateLimitStore`.`consume`

    ### consumeMany()

    > **consumeMany**(`limits`): `Promise`\<`boolean`>

    Defined in: packages/core/src/rate-limit/rateLimit.ts:56

    #### Parameters

    ##### limits

    `RateLimitBucket`\[]

    #### Returns

    `Promise`\<`boolean`>

    #### Implementation of

    `RateLimitStore`.`consumeMany`

    ### get()

    > **get**(`key`): `Promise`\<`number`>

    Defined in: packages/core/src/rate-limit/rateLimit.ts:82

    #### Parameters

    ##### key

    `string`

    #### Returns

    `Promise`\<`number`>

    #### Implementation of

    `RateLimitStore`.`get`

    ### increment()

    > **increment**(`key`, `window`): `Promise`\<`number`>

    Defined in: packages/core/src/rate-limit/rateLimit.ts:24

    #### Parameters

    ##### key

    `string`

    ##### window

    `number`

    #### Returns

    `Promise`\<`number`>

    #### Implementation of

    `RateLimitStore`.`increment`

    ### reset()

    > **reset**(`key`): `Promise`\<`void`>

    Defined in: packages/core/src/rate-limit/rateLimit.ts:86

    #### Parameters

    ##### key

    `string`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `RateLimitStore`.`reset`
  </Accordion>

  <Accordion title="Core exports: classes/MemoryRegistry">
    @fentaris/core / MemoryRegistry

    Defined in: packages/core/src/registry/registry.ts:26

    Development registry backed by in-memory maps.

    ## Implements

    * `Registry`

    ## Constructors

    ### Constructor

    > **new MemoryRegistry**(`options?`): `MemoryRegistry`

    Defined in: packages/core/src/registry/registry.ts:35

    Create an in-memory registry.

    #### Parameters

    ##### options?

    ###### secrets?

    `Record`\<`string`, `Record`\<`string`, `string`>>

    ###### tokens?

    `Record`\<`string`, `Record`\<`string`, `string`>>

    ###### users?

    `Record`\<`string`, `UserContext`>

    #### Returns

    `MemoryRegistry`

    ## Methods

    ### getSecrets()

    > **getSecrets**(`userId`): `Promise`\<`Record`\<`string`, `string`> | `null`>

    Defined in: packages/core/src/registry/registry.ts:84

    #### Parameters

    ##### userId

    `string`

    #### Returns

    `Promise`\<`Record`\<`string`, `string`> | `null`>

    #### Implementation of

    `Registry`.`getSecrets`

    ### getTokens()

    > **getTokens**(`userId`): `Promise`\<`Record`\<`string`, `string`> | `null`>

    Defined in: packages/core/src/registry/registry.ts:88

    #### Parameters

    ##### userId

    `string`

    #### Returns

    `Promise`\<`Record`\<`string`, `string`> | `null`>

    #### Implementation of

    `Registry`.`getTokens`

    ### getUser()

    > **getUser**(`userId`): `Promise`\<`UserContext` | `null`>

    Defined in: packages/core/src/registry/registry.ts:80

    #### Parameters

    ##### userId

    `string`

    #### Returns

    `Promise`\<`UserContext` | `null`>

    #### Implementation of

    `Registry`.`getUser`

    ### setSecrets()

    > **setSecrets**(`userId`, `secrets`): `this`

    Defined in: packages/core/src/registry/registry.ts:66

    Store or replace user secrets.

    #### Parameters

    ##### userId

    `string`

    ##### secrets

    `Record`\<`string`, `string`>

    #### Returns

    `this`

    ### setTokens()

    > **setTokens**(`userId`, `tokens`): `this`

    Defined in: packages/core/src/registry/registry.ts:75

    Store or replace user tokens.

    #### Parameters

    ##### userId

    `string`

    ##### tokens

    `Record`\<`string`, `string`>

    #### Returns

    `this`

    ### setUser()

    > **setUser**(`userId`, `user`): `this`

    Defined in: packages/core/src/registry/registry.ts:57

    Store or replace a user record.

    #### Parameters

    ##### userId

    `string`

    ##### user

    `UserContext`

    #### Returns

    `this`
  </Accordion>

  <Accordion title="Core exports: classes/MissingHttpTransportCredentialError">
    @fentaris/core / MissingHttpTransportCredentialError

    Defined in: packages/core/src/transports/auth/transportAuth.ts:44

    Error thrown before an upstream HTTP-family request when required credentials are missing.

    ## Extends

    * `Error`

    ## Constructors

    ### Constructor

    > **new MissingHttpTransportCredentialError**(`message?`): `MissingHttpTransportCredentialError`

    Defined in: packages/core/src/transports/auth/transportAuth.ts:47

    #### Parameters

    ##### message?

    `string` = `"Missing required upstream HTTP transport credentials"`

    #### Returns

    `MissingHttpTransportCredentialError`

    #### Overrides

    `Error.constructor`

    ## Properties

    ### cause?

    > `optional` **cause?**: `unknown`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es2022.error.d.ts:24

    #### Inherited from

    `Error.cause`

    ### code

    > `readonly` **code**: `-32040` = `FentarisErrorCode.Unauthorized`

    Defined in: packages/core/src/transports/auth/transportAuth.ts:45

    ### message

    > **message**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1075

    #### Inherited from

    `Error.message`

    ### name

    > **name**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1074

    #### Inherited from

    `Error.name`

    ### stack?

    > `optional` **stack?**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1076

    #### Inherited from

    `Error.stack`

    ### stackTraceLimit

    > `static` **stackTraceLimit**: `number`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:67

    The `Error.stackTraceLimit` property specifies the number of stack frames
    collected by a stack trace (whether generated by `new Error().stack` or
    `Error.captureStackTrace(obj)`).

    The default value is `10` but may be set to any valid JavaScript number. Changes
    will affect any stack trace captured *after* the value has been changed.

    If set to a non-number value, or set to a negative number, stack traces will
    not capture any frames.

    #### Inherited from

    `Error.stackTraceLimit`

    ## Methods

    ### captureStackTrace()

    > `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:51

    Creates a `.stack` property on `targetObject`, which when accessed returns
    a string representing the location in the code at which
    `Error.captureStackTrace()` was called.

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    const myObject = {};
    Error.captureStackTrace(myObject);
    myObject.stack;  // Similar to `new Error().stack`
    ```

    The first line of the trace will be prefixed with
    `${myObject.name}: ${myObject.message}`.

    The optional `constructorOpt` argument accepts a function. If given, all frames
    above `constructorOpt`, including `constructorOpt`, will be omitted from the
    generated stack trace.

    The `constructorOpt` argument is useful for hiding implementation
    details of error generation from the user. For instance:

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    function a() {
      b();
    }

    function b() {
      c();
    }

    function c() {
      // Create an error without stack trace to avoid calculating the stack trace twice.
      const { stackTraceLimit } = Error;
      Error.stackTraceLimit = 0;
      const error = new Error();
      Error.stackTraceLimit = stackTraceLimit;

      // Capture the stack trace above function b
      Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
      throw error;
    }

    a();
    ```

    #### Parameters

    ##### targetObject

    `object`

    ##### constructorOpt?

    `Function`

    #### Returns

    `void`

    #### Inherited from

    `Error.captureStackTrace`

    ### prepareStackTrace()

    > `static` **prepareStackTrace**(`err`, `stackTraces`): `any`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:55

    #### Parameters

    ##### err

    `Error`

    ##### stackTraces

    `CallSite`\[]

    #### Returns

    `any`

    #### See

    [https://v8.dev/docs/stack-trace-api#customizing-stack-traces](https://v8.dev/docs/stack-trace-api#customizing-stack-traces)

    #### Inherited from

    `Error.prepareStackTrace`
  </Accordion>

  <Accordion title="Core exports: classes/PlacementResolver">
    @fentaris/core / PlacementResolver

    Defined in: packages/core/src/edge/placement.ts:103

    A resolver that turns bindings and targets into a placement decision.

    ## Constructors

    ### Constructor

    > **new PlacementResolver**(`inputs`): `PlacementResolver`

    Defined in: packages/core/src/edge/placement.ts:107

    #### Parameters

    ##### inputs

    `PlacementResolverInputs`

    #### Returns

    `PlacementResolver`

    ## Methods

    ### eligibleTargets()

    > **eligibleTargets**(`request`): `Set`\<`string`>

    Defined in: packages/core/src/edge/placement.ts:157

    Target names a subject is eligible to select from explicitly (user, group
    when unambiguous, and global). The implicit `cloud` target is always
    eligible because it never requires a binding.

    #### Parameters

    ##### request

    `PlacementRequest`

    #### Returns

    `Set`\<`string`>

    ### resolve()

    > **resolve**(`request`): `PlacementResolution`

    Defined in: packages/core/src/edge/placement.ts:121

    Resolve the placement for a server and subject.

    #### Parameters

    ##### request

    `PlacementRequest`

    #### Returns

    `PlacementResolution`

    #### Throws

    `EDGE_UNAUTHORIZED_TARGET` when an explicit session
    target is not among the subject's eligible bindings.

    #### Throws

    `EDGE_PLACEMENT_AMBIGUOUS` when matching group bindings
    select different equally specific targets.
  </Accordion>

  <Accordion title="Core exports: classes/Policy">
    @fentaris/core / Policy

    Defined in: packages/core/src/governance/governance.ts:97

    Fluent policy declaration.

    ## Implements

    * `PolicyContract`

    ## Constructors

    ### Constructor

    > **new Policy**(`options`): `Policy`

    Defined in: packages/core/src/governance/governance.ts:104

    #### Parameters

    ##### options

    ###### description?

    `string`

    ###### metadata?

    \{\[`key`: `string`]: `unknown`; `maxDailyCalls?`: `number`; `requiresApproval?`: `boolean`; }

    ###### metadata.maxDailyCalls?

    `number`

    ###### metadata.requiresApproval?

    `boolean`

    ###### name

    `string`

    #### Returns

    `Policy`

    ## Properties

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/governance/governance.ts:99

    #### Implementation of

    `PolicyContract`.`description`

    ### metadata?

    > `readonly` `optional` **metadata?**: `object`

    Defined in: packages/core/src/governance/governance.ts:100

    #### Index Signature

    \[`key`: `string`]: `unknown`

    #### maxDailyCalls?

    > `optional` **maxDailyCalls?**: `number`

    #### requiresApproval?

    > `optional` **requiresApproval?**: `boolean`

    #### Implementation of

    `PolicyContract`.`metadata`

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/governance/governance.ts:98

    #### Implementation of

    `PolicyContract`.`name`

    ## Methods

    ### allow()

    > **allow**(`serverName`, `toolName`, `options?`): `this`

    Defined in: packages/core/src/governance/governance.ts:134

    Add an allow permission.

    #### Parameters

    ##### serverName

    `string`

    ##### toolName

    `string`

    ##### options?

    `ToolPermissionOptions` = `{}`

    #### Returns

    `this`

    ### allowCapability()

    > **allowCapability**(`serverName`, `permission`): `this`

    Defined in: packages/core/src/governance/governance.ts:150

    Add an allow permission for any governed MCP operation.

    #### Parameters

    ##### serverName

    `string`

    ##### permission

    `CapabilityPermissionOptions`

    #### Returns

    `this`

    ### deny()

    > **deny**(`serverName`, `toolName`, `options?`): `this`

    Defined in: packages/core/src/governance/governance.ts:142

    Add a deny permission.

    #### Parameters

    ##### serverName

    `string`

    ##### toolName

    `string`

    ##### options?

    `ToolPermissionOptions` = `{}`

    #### Returns

    `this`

    ### denyCapability()

    > **denyCapability**(`serverName`, `permission`): `this`

    Defined in: packages/core/src/governance/governance.ts:158

    Add a deny permission for any governed MCP operation.

    #### Parameters

    ##### serverName

    `string`

    ##### permission

    `CapabilityPermissionOptions`

    #### Returns

    `this`

    ### evaluate()

    > **evaluate**(`request`, `user`, `context?`): `Promise`\<`PolicyDecision`>

    Defined in: packages/core/src/governance/governance.ts:197

    #### Parameters

    ##### request

    `ToolCallRequest` | `CapabilityOperationRequest`

    ##### user

    `UserContext`

    ##### context?

    `MiddlewareContext`

    #### Returns

    `Promise`\<`PolicyDecision`>

    #### Implementation of

    `PolicyContract`.`evaluate`

    ### getCapabilityPermissions()

    > **getCapabilityPermissions**(`serverName`): `CapabilityPermission`\[]

    Defined in: packages/core/src/governance/governance.ts:169

    #### Parameters

    ##### serverName

    `string`

    #### Returns

    `CapabilityPermission`\[]

    #### Implementation of

    `PolicyContract`.`getCapabilityPermissions`

    ### getDeclaredPermissions()

    > **getDeclaredPermissions**(): `object`\[]

    Defined in: packages/core/src/governance/governance.ts:189

    Return policy declarations for static configuration validation.

    #### Returns

    `object`\[]

    ### getDeclaredServerNames()

    > **getDeclaredServerNames**(): `string`\[]

    Defined in: packages/core/src/governance/governance.ts:181

    Return the server names explicitly declared by this policy.

    #### Returns

    `string`\[]

    ### getPermissions()

    > **getPermissions**(`serverName`): `ToolPermission`\[]

    Defined in: packages/core/src/governance/governance.ts:162

    #### Parameters

    ##### serverName

    `string`

    #### Returns

    `ToolPermission`\[]

    #### Implementation of

    `PolicyContract`.`getPermissions`

    ### mcp()

    > **mcp**(`serverName`): `PolicyMcpBuilder`

    Defined in: packages/core/src/governance/governance.ts:126

    Select an upstream MCP server for fluent permission declarations.

    #### Parameters

    ##### serverName

    `string`

    #### Returns

    `PolicyMcpBuilder`

    ### allowAll()

    > `static` **allowAll**(`name?`): `Policy`

    Defined in: packages/core/src/governance/governance.ts:118

    Create an allow-all policy.

    #### Parameters

    ##### name?

    `string` = `"allow-all"`

    #### Returns

    `Policy`
  </Accordion>

  <Accordion title="Core exports: classes/PolicyMcpBuilder">
    @fentaris/core / PolicyMcpBuilder

    Defined in: packages/core/src/governance/governance.ts:292

    Builder returned by `policy.mcp(name)`.

    ## Constructors

    ### Constructor

    > **new PolicyMcpBuilder**(`policy`, `serverName`): `PolicyMcpBuilder`

    Defined in: packages/core/src/governance/governance.ts:293

    #### Parameters

    ##### policy

    `Policy`

    ##### serverName

    `string`

    #### Returns

    `PolicyMcpBuilder`

    ## Methods

    ### allow()

    > **allow**(`toolName`, `options?`): `Policy`

    Defined in: packages/core/src/governance/governance.ts:298

    #### Parameters

    ##### toolName

    `string`

    ##### options?

    `ToolPermissionOptions` = `{}`

    #### Returns

    `Policy`

    ### allowCapability()

    > **allowCapability**(`permission`): `Policy`

    Defined in: packages/core/src/governance/governance.ts:306

    #### Parameters

    ##### permission

    `CapabilityPermissionOptions`

    #### Returns

    `Policy`

    ### deny()

    > **deny**(`toolName`, `options?`): `Policy`

    Defined in: packages/core/src/governance/governance.ts:302

    #### Parameters

    ##### toolName

    `string`

    ##### options?

    `ToolPermissionOptions` = `{}`

    #### Returns

    `Policy`

    ### denyCapability()

    > **denyCapability**(`permission`): `Policy`

    Defined in: packages/core/src/governance/governance.ts:310

    #### Parameters

    ##### permission

    `CapabilityPermissionOptions`

    #### Returns

    `Policy`
  </Accordion>

  <Accordion title="Core exports: classes/RedisLoggerDriver">
    @fentaris/core / RedisLoggerDriver

    Defined in: packages/core/src/logging/logger.ts:169

    Redis-backed logger driver that appends JSON log entries to a list.

    ## Implements

    * `LoggerDriver`

    ## Constructors

    ### Constructor

    > **new RedisLoggerDriver**(`options`): `RedisLoggerDriver`

    Defined in: packages/core/src/logging/logger.ts:177

    Create a Redis logger driver.

    #### Parameters

    ##### options

    `RedisLoggerDriverOptions`

    #### Returns

    `RedisLoggerDriver`

    ## Methods

    ### write()

    > **write**(`entry`): `Promise`\<`void`>

    Defined in: packages/core/src/logging/logger.ts:182

    #### Parameters

    ##### entry

    `LogEntry`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `LoggerDriver.write`
  </Accordion>

  <Accordion title="Core exports: classes/RedisRegistry">
    @fentaris/core / RedisRegistry

    Defined in: packages/core/src/registry/registry.ts:101

    Redis-backed registry using JSON values.

    ## Implements

    * `Registry`

    ## Constructors

    ### Constructor

    > **new RedisRegistry**(`options`): `RedisRegistry`

    Defined in: packages/core/src/registry/registry.ts:109

    Create a Redis-backed registry.

    #### Parameters

    ##### options

    `RedisRegistryOptions`

    #### Returns

    `RedisRegistry`

    ## Methods

    ### getSecrets()

    > **getSecrets**(`userId`): `Promise`\<`Record`\<`string`, `string`> | `null`>

    Defined in: packages/core/src/registry/registry.ts:142

    #### Parameters

    ##### userId

    `string`

    #### Returns

    `Promise`\<`Record`\<`string`, `string`> | `null`>

    #### Implementation of

    `Registry`.`getSecrets`

    ### getTokens()

    > **getTokens**(`userId`): `Promise`\<`Record`\<`string`, `string`> | `null`>

    Defined in: packages/core/src/registry/registry.ts:146

    #### Parameters

    ##### userId

    `string`

    #### Returns

    `Promise`\<`Record`\<`string`, `string`> | `null`>

    #### Implementation of

    `Registry`.`getTokens`

    ### getUser()

    > **getUser**(`userId`): `Promise`\<`UserContext` | `null`>

    Defined in: packages/core/src/registry/registry.ts:138

    #### Parameters

    ##### userId

    `string`

    #### Returns

    `Promise`\<`UserContext` | `null`>

    #### Implementation of

    `Registry`.`getUser`

    ### setSecrets()

    > **setSecrets**(`userId`, `secrets`): `Promise`\<`void`>

    Defined in: packages/core/src/registry/registry.ts:126

    Store or replace user secrets.

    #### Parameters

    ##### userId

    `string`

    ##### secrets

    `Record`\<`string`, `string`>

    #### Returns

    `Promise`\<`void`>

    ### setTokens()

    > **setTokens**(`userId`, `tokens`): `Promise`\<`void`>

    Defined in: packages/core/src/registry/registry.ts:134

    Store or replace user tokens.

    #### Parameters

    ##### userId

    `string`

    ##### tokens

    `Record`\<`string`, `string`>

    #### Returns

    `Promise`\<`void`>

    ### setUser()

    > **setUser**(`userId`, `user`): `Promise`\<`void`>

    Defined in: packages/core/src/registry/registry.ts:118

    Store or replace a user record.

    #### Parameters

    ##### userId

    `string`

    ##### user

    `UserContext`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: classes/ResponseController">
    @fentaris/core / ResponseController

    Defined in: packages/core/src/types/middleware.ts:93

    Helper for returning allow/deny responses from middleware.

    ## Constructors

    ### Constructor

    > **new ResponseController**(): `ResponseController`

    #### Returns

    `ResponseController`

    ## Methods

    ### continue()

    > **continue**(): `undefined`

    Defined in: packages/core/src/types/middleware.ts:128

    Allow middleware to continue without overriding the response.

    #### Returns

    `undefined`

    ### deny()

    > **deny**(`message`): `object`

    Defined in: packages/core/src/types/middleware.ts:102

    Deny a tool call with a message.

    #### Parameters

    ##### message

    `string`

    #### Returns

    `object`

    ##### \_meta?

    > `optional` **\_meta?**: `object`

    ###### Index Signature

    \[`key`: `string`]: `unknown`

    ###### \_meta.io.modelcontextprotocol/related-task?

    > `optional` **io.modelcontextprotocol/related-task?**: `object`

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    > **taskId**: `string`

    ###### \_meta.progressToken?

    > `optional` **progressToken?**: `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ##### content

    > **content**: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]

    ##### isError?

    > `optional` **isError?**: `boolean`

    ##### structuredContent?

    > `optional` **structuredContent?**: `object`

    ###### Index Signature

    \[`key`: `string`]: `unknown`

    ### fail()

    > **fail**(`code`, `message`): `object`

    Defined in: packages/core/src/types/middleware.ts:113

    Return a structured MCP-style error without throwing.

    #### Parameters

    ##### code

    `number`

    ##### message

    `string`

    #### Returns

    `object`

    ##### \_meta?

    > `optional` **\_meta?**: `object`

    ###### Index Signature

    \[`key`: `string`]: `unknown`

    ###### \_meta.io.modelcontextprotocol/related-task?

    > `optional` **io.modelcontextprotocol/related-task?**: `object`

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    > **taskId**: `string`

    ###### \_meta.progressToken?

    > `optional` **progressToken?**: `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ##### content

    > **content**: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]

    ##### isError?

    > `optional` **isError?**: `boolean`

    ##### structuredContent?

    > `optional` **structuredContent?**: `object`

    ###### Index Signature

    \[`key`: `string`]: `unknown`

    ### injectToAgent()

    > **injectToAgent**(`message`): `void`

    Defined in: packages/core/src/types/middleware.ts:136

    Add guidance for the calling agent to the eventual tool response.

    #### Parameters

    ##### message

    `string`

    #### Returns

    `void`

    ### on()

    > **on**(`event`, `handler`): `void`

    Defined in: packages/core/src/types/middleware.ts:146

    Register a response event handler.

    #### Parameters

    ##### event

    `"error"`

    ##### handler

    (`error`) => `MaybePromise`\<`void`>

    #### Returns

    `void`
  </Accordion>

  <Accordion title="Core exports: classes/RuntimeProfiler">
    @fentaris/core / RuntimeProfiler

    Defined in: packages/core/src/profiler/profiler.ts:168

    Runtime profiler, event, sink, and runtime error APIs.

    ## Constructors

    ### Constructor

    > **new RuntimeProfiler**(`config`): `RuntimeProfiler`

    Defined in: packages/core/src/profiler/profiler.ts:169

    #### Parameters

    ##### config

    `NormalizedRuntimeProfiler` | `null`

    #### Returns

    `RuntimeProfiler`

    ## Methods

    ### emit()

    > **emit**(`event`): `Promise`\<`void`>

    Defined in: packages/core/src/profiler/profiler.ts:171

    #### Parameters

    ##### event

    `RuntimeEvent`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: classes/SimplePolicy">
    @fentaris/core / SimplePolicy

    Defined in: packages/core/src/policy/policy.ts:10

    Default policy implementation with RBAC-style permissions.

    ## Implements

    * `PolicyContract`

    ## Constructors

    ### Constructor

    > **new SimplePolicy**(`options`): `SimplePolicy`

    Defined in: packages/core/src/policy/policy.ts:21

    Create a new policy.

    #### Parameters

    ##### options

    ###### capabilityPermissions?

    `Record`\<`string`, `CapabilityPermission`\[]>

    ###### description?

    `string`

    ###### metadata?

    \{\[`key`: `string`]: `unknown`; `maxDailyCalls?`: `number`; `requiresApproval?`: `boolean`; }

    ###### metadata.maxDailyCalls?

    `number`

    ###### metadata.requiresApproval?

    `boolean`

    ###### name

    `string`

    ###### permissions

    `Record`\<`string`, `ToolPermission`\[]>

    #### Returns

    `SimplePolicy`

    ## Properties

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/policy/policy.ts:12

    #### Implementation of

    `PolicyContract`.`description`

    ### metadata?

    > `readonly` `optional` **metadata?**: `object`

    Defined in: packages/core/src/policy/policy.ts:15

    #### Index Signature

    \[`key`: `string`]: `unknown`

    #### maxDailyCalls?

    > `optional` **maxDailyCalls?**: `number`

    #### requiresApproval?

    > `optional` **requiresApproval?**: `boolean`

    #### Implementation of

    `PolicyContract`.`metadata`

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/policy/policy.ts:11

    #### Implementation of

    `PolicyContract`.`name`

    ## Methods

    ### evaluate()

    > **evaluate**(`request`, `user`, `context?`): `Promise`\<`PolicyDecision`>

    Defined in: packages/core/src/policy/policy.ts:58

    Evaluate if a tool call is allowed.

    #### Parameters

    ##### request

    `ToolCallRequest` | `CapabilityOperationRequest`

    ##### user

    `UserContext`

    ##### context?

    `MiddlewareContext`

    #### Returns

    `Promise`\<`PolicyDecision`>

    #### Implementation of

    `PolicyContract`.`evaluate`

    ### getCapabilityPermissions()

    > **getCapabilityPermissions**(`serverName`): `CapabilityPermission`\[]

    Defined in: packages/core/src/policy/policy.ts:47

    Get operation-based permissions for a server, including adapted tool permissions.

    #### Parameters

    ##### serverName

    `string`

    #### Returns

    `CapabilityPermission`\[]

    #### Implementation of

    `PolicyContract`.`getCapabilityPermissions`

    ### getPermissions()

    > **getPermissions**(`serverName`): `ToolPermission`\[]

    Defined in: packages/core/src/policy/policy.ts:39

    Get permissions for a server.

    #### Parameters

    ##### serverName

    `string`

    #### Returns

    `ToolPermission`\[]

    #### Implementation of

    `PolicyContract`.`getPermissions`
  </Accordion>

  <Accordion title="Core exports: classes/SlidingWindowRateLimiter">
    @fentaris/core / SlidingWindowRateLimiter

    Defined in: packages/core/src/rate-limit/rateLimit.ts:109

    Sliding-window rate limiter with optional daily quota.

    ## Implements

    * `RateLimiter`

    ## Constructors

    ### Constructor

    > **new SlidingWindowRateLimiter**(`options`): `SlidingWindowRateLimiter`

    Defined in: packages/core/src/rate-limit/rateLimit.ts:119

    Create a sliding-window limiter.

    #### Parameters

    ##### options

    ###### keyPrefix?

    `string`

    ###### maxDailyCalls?

    `number`

    ###### maxPerWindow?

    `number`

    ###### store?

    `RateLimitStore`

    ###### windowMs?

    `number`

    #### Returns

    `SlidingWindowRateLimiter`

    ## Properties

    ### metadata

    > `readonly` **metadata**: \{ `maxDailyCalls?`: `number`; `maxPerWindow?`: `number`; `windowMs?`: `number`; } | `undefined`

    Defined in: packages/core/src/rate-limit/rateLimit.ts:110

    #### Implementation of

    `RateLimiter`.`metadata`

    ## Methods

    ### checkLimit()

    > **checkLimit**(`key`): `Promise`\<`boolean`>

    Defined in: packages/core/src/rate-limit/rateLimit.ts:135

    #### Parameters

    ##### key

    `string`

    #### Returns

    `Promise`\<`boolean`>

    #### Implementation of

    `RateLimiter`.`checkLimit`

    ### consume()

    > **consume**(`key`): `Promise`\<`boolean`>

    Defined in: packages/core/src/rate-limit/rateLimit.ts:152

    #### Parameters

    ##### key

    `string`

    #### Returns

    `Promise`\<`boolean`>

    #### Implementation of

    `RateLimiter`.`consume`

    ### getRemainingCalls()

    > **getRemainingCalls**(`key`): `Promise`\<`number`>

    Defined in: packages/core/src/rate-limit/rateLimit.ts:179

    #### Parameters

    ##### key

    `string`

    #### Returns

    `Promise`\<`number`>

    #### Implementation of

    `RateLimiter`.`getRemainingCalls`

    ### recordCall()

    > **recordCall**(`key`): `Promise`\<`void`>

    Defined in: packages/core/src/rate-limit/rateLimit.ts:172

    #### Parameters

    ##### key

    `string`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `RateLimiter`.`recordCall`
  </Accordion>

  <Accordion title="Core exports: classes/SseMcpTransport">
    @fentaris/core / SseMcpTransport

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:46

    Native MCP SSE upstream transport.

    ## Implements

    * `FentarisTransport`

    ## Constructors

    ### Constructor

    > **new SseMcpTransport**(`options`, `user?`): `SseMcpTransport`

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:57

    Create a native MCP SSE transport.

    #### Parameters

    ##### options

    `SseMcpTransportOptions`

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `SseMcpTransport`

    ## Methods

    ### callTool()

    > **callTool**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:84

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `unknown`; }

    ###### name

    `string`

    ###### task?

    \{ `ttl?`: `number`; }

    ###### task.ttl?

    `number`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    #### Implementation of

    `FentarisTransport.callTool`

    ### close()

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

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:142

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `FentarisTransport.close`

    ### complete()

    > **complete**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:133

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### argument

    \{ `name`: `string`; `value`: `string`; }

    ###### argument.name

    `string`

    ###### argument.value

    `string`

    ###### context?

    \{ `arguments?`: \{\[`key`: `string`]: `string`; }; }

    ###### context.arguments?

    \{\[`key`: `string`]: `string`; }

    ###### ref

    \{ `name`: `string`; `type`: `"ref/prompt"`; } | \{ `type`: `"ref/resource"`; `uri`: `string`; }

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    #### Implementation of

    `FentarisTransport.complete`

    ### getPrompt()

    > **getPrompt**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:124

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `string`; }

    ###### name

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.getPrompt`

    ### listPrompts()

    > **listPrompts**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:115

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listPrompts`

    ### listResources()

    > **listResources**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:88

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listResources`

    ### listResourceTemplates()

    > **listResourceTemplates**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:106

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listResourceTemplates`

    ### listTools()

    > **listTools**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:75

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listTools`

    ### readResource()

    > **readResource**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:97

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### uri

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    #### Implementation of

    `FentarisTransport.readResource`

    ### withUser()

    > **withUser**(`user`): `SseMcpTransport`

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:71

    Return a copy bound to the current proxy user context.

    #### Parameters

    ##### user

    `UserContext`

    #### Returns

    `SseMcpTransport`
  </Accordion>

  <Accordion title="Core exports: classes/SseProxyExposureTransport">
    @fentaris/core / SseProxyExposureTransport

    Defined in: packages/core/src/transports/exposure/SseProxyExposureTransport.ts:53

    SSE MCP downstream proxy exposure.

    ## Implements

    * `ProxyExposureTransport`\<`SseProxyExposureHandle`>

    ## Constructors

    ### Constructor

    > **new SseProxyExposureTransport**(`options?`): `SseProxyExposureTransport`

    Defined in: packages/core/src/transports/exposure/SseProxyExposureTransport.ts:61

    Create an SSE proxy exposure transport.

    #### Parameters

    ##### options?

    `SseProxyExposureTransportOptions` = `{}`

    #### Returns

    `SseProxyExposureTransport`

    ## Methods

    ### listen()

    > **listen**(`runtime`): `Promise`\<`SseProxyExposureHandle`>

    Defined in: packages/core/src/transports/exposure/SseProxyExposureTransport.ts:71

    #### Parameters

    ##### runtime

    `ProxyRuntime`

    #### Returns

    `Promise`\<`SseProxyExposureHandle`>

    #### Implementation of

    `ProxyExposureTransport.listen`
  </Accordion>

  <Accordion title="Core exports: classes/StdioProxyExposureTransport">
    @fentaris/core / StdioProxyExposureTransport

    Defined in: packages/core/src/transports/exposure/StdioProxyExposureTransport.ts:25

    Stdio MCP downstream proxy exposure.

    ## Implements

    * `ProxyExposureTransport`

    ## Constructors

    ### Constructor

    > **new StdioProxyExposureTransport**(`options?`): `StdioProxyExposureTransport`

    Defined in: packages/core/src/transports/exposure/StdioProxyExposureTransport.ts:32

    Create a stdio proxy exposure transport.

    #### Parameters

    ##### options?

    `StdioProxyExposureTransportOptions` = `{}`

    #### Returns

    `StdioProxyExposureTransport`

    ## Methods

    ### listen()

    > **listen**(`runtime`): `Promise`\<`ProxyExposureHandle`>

    Defined in: packages/core/src/transports/exposure/StdioProxyExposureTransport.ts:36

    #### Parameters

    ##### runtime

    `ProxyRuntime`

    #### Returns

    `Promise`\<`ProxyExposureHandle`>

    #### Implementation of

    `ProxyExposureTransport.listen`
  </Accordion>

  <Accordion title="Core exports: classes/StdioTransport">
    @fentaris/core / StdioTransport

    Defined in: packages/core/src/transports/client/StdioTransport.ts:57

    Stdio-based MCP transport implementation.

    ## Implements

    * `FentarisTransport`

    ## Constructors

    ### Constructor

    > **new StdioTransport**(`options`): `StdioTransport`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:66

    Create a new stdio transport.

    #### Parameters

    ##### options

    `StdioTransportOptions`

    #### Returns

    `StdioTransport`

    ## Methods

    ### callTool()

    > **callTool**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:138

    Call a tool on the MCP server.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `unknown`; }

    ###### name

    `string`

    ###### task?

    \{ `ttl?`: `number`; }

    ###### task.ttl?

    `number`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    #### Implementation of

    `FentarisTransport.callTool`

    ### close()

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

    Defined in: packages/core/src/transports/client/StdioTransport.ts:205

    Close the underlying client connection.

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `FentarisTransport.close`

    ### complete()

    > **complete**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:187

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### argument

    \{ `name`: `string`; `value`: `string`; }

    ###### argument.name

    `string`

    ###### argument.value

    `string`

    ###### context?

    \{ `arguments?`: \{\[`key`: `string`]: `string`; }; }

    ###### context.arguments?

    \{\[`key`: `string`]: `string`; }

    ###### ref

    \{ `name`: `string`; `type`: `"ref/prompt"`; } | \{ `type`: `"ref/resource"`; `uri`: `string`; }

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    #### Implementation of

    `FentarisTransport.complete`

    ### getPrompt()

    > **getPrompt**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:178

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `string`; }

    ###### name

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.getPrompt`

    ### listPrompts()

    > **listPrompts**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:169

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listPrompts`

    ### listResources()

    > **listResources**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:142

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listResources`

    ### listResourceTemplates()

    > **listResourceTemplates**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:160

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listResourceTemplates`

    ### listTools()

    > **listTools**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:125

    List tools exposed by the MCP server.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listTools`

    ### readResource()

    > **readResource**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:151

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### uri

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    #### Implementation of

    `FentarisTransport.readResource`

    ### runtimeValueTokens()

    > **runtimeValueTokens**(): `RuntimeValueToken`\[]

    Defined in: packages/core/src/transports/client/StdioTransport.ts:90

    Return every runtime-value token declared in arguments and environment.
    Used by configuration validation to reconcile references against setup
    fields without exposing the full options object.

    #### Returns

    `RuntimeValueToken`\[]

    ### serverCapabilities()

    > **serverCapabilities**(): `Promise`\<\{ `completions?`: `object`; `experimental?`: \{\[`key`: `string`]: `object`; }; `extensions?`: \{\[`key`: `string`]: `object`; }; `logging?`: `object`; `prompts?`: \{ `listChanged?`: `boolean`; }; `resources?`: \{ `listChanged?`: `boolean`; `subscribe?`: `boolean`; }; `tasks?`: \{\[`key`: `string`]: `unknown`; `cancel?`: `object`; `list?`: `object`; `requests?`: \{\[`key`: `string`]: `unknown`; `tools?`: \{\[`key`: `string`]: `unknown`; `call?`: `object`; }; }; }; `tools?`: \{ `listChanged?`: `boolean`; }; } | `undefined`>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:197

    Return the initialized upstream capability declaration.

    #### Returns

    `Promise`\<\{ `completions?`: `object`; `experimental?`: \{\[`key`: `string`]: `object`; }; `extensions?`: \{\[`key`: `string`]: `object`; }; `logging?`: `object`; `prompts?`: \{ `listChanged?`: `boolean`; }; `resources?`: \{ `listChanged?`: `boolean`; `subscribe?`: `boolean`; }; `tasks?`: \{\[`key`: `string`]: `unknown`; `cancel?`: `object`; `list?`: `object`; `requests?`: \{\[`key`: `string`]: `unknown`; `tools?`: \{\[`key`: `string`]: `unknown`; `call?`: `object`; }; }; }; `tools?`: \{ `listChanged?`: `boolean`; }; } | `undefined`>

    ### toLaunchRecipe()

    > **toLaunchRecipe**(`schema?`): `LaunchRecipe`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:80

    Compile this transport's declaration into a serializable launch recipe bound
    to an optional setup schema. Cloud/edge validation uses this to reconcile
    runtime-value references against declared setup fields.

    #### Parameters

    ##### schema?

    `SetupSchema`

    #### Returns

    `LaunchRecipe`

    ### unresolvedCloudRuntimeRefs()

    > **unresolvedCloudRuntimeRefs**(): `string`\[]

    Defined in: packages/core/src/transports/client/StdioTransport.ts:102

    Runtime references that have no explicit cloud-side value.

    #### Returns

    `string`\[]

    ### withEnv()

    > **withEnv**(`env`): `StdioTransport`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:111

    Return a copy with merged environment variables.

    #### Parameters

    ##### env

    `Record`\<`string`, `string`>

    #### Returns

    `StdioTransport`
  </Accordion>

  <Accordion title="Core exports: classes/StreamableHttpMcpTransport">
    @fentaris/core / StreamableHttpMcpTransport

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:46

    Native MCP Streamable HTTP upstream transport for http\:// and https\:// servers.

    ## Implements

    * `FentarisTransport`

    ## Constructors

    ### Constructor

    > **new StreamableHttpMcpTransport**(`options`, `user?`): `StreamableHttpMcpTransport`

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:57

    Create a native MCP Streamable HTTP transport.

    #### Parameters

    ##### options

    `StreamableHttpMcpTransportOptions`

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `StreamableHttpMcpTransport`

    ## Methods

    ### callTool()

    > **callTool**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:84

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `unknown`; }

    ###### name

    `string`

    ###### task?

    \{ `ttl?`: `number`; }

    ###### task.ttl?

    `number`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    #### Implementation of

    `FentarisTransport.callTool`

    ### close()

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

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:142

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `FentarisTransport.close`

    ### complete()

    > **complete**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:133

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### argument

    \{ `name`: `string`; `value`: `string`; }

    ###### argument.name

    `string`

    ###### argument.value

    `string`

    ###### context?

    \{ `arguments?`: \{\[`key`: `string`]: `string`; }; }

    ###### context.arguments?

    \{\[`key`: `string`]: `string`; }

    ###### ref

    \{ `name`: `string`; `type`: `"ref/prompt"`; } | \{ `type`: `"ref/resource"`; `uri`: `string`; }

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    #### Implementation of

    `FentarisTransport.complete`

    ### getPrompt()

    > **getPrompt**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:124

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `string`; }

    ###### name

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.getPrompt`

    ### listPrompts()

    > **listPrompts**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:115

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listPrompts`

    ### listResources()

    > **listResources**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:88

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listResources`

    ### listResourceTemplates()

    > **listResourceTemplates**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:106

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listResourceTemplates`

    ### listTools()

    > **listTools**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:75

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listTools`

    ### readResource()

    > **readResource**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:97

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### uri

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    #### Implementation of

    `FentarisTransport.readResource`

    ### withUser()

    > **withUser**(`user`): `StreamableHttpMcpTransport`

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:71

    Return a copy bound to the current proxy user context.

    #### Parameters

    ##### user

    `UserContext`

    #### Returns

    `StreamableHttpMcpTransport`
  </Accordion>

  <Accordion title="Core exports: classes/ToolDiscoveryError">
    @fentaris/core / ToolDiscoveryError

    Defined in: packages/core/src/tools/index.ts:107

    Agent-native tool discovery helpers.

    ## Extends

    * `Error`

    ## Constructors

    ### Constructor

    > **new ToolDiscoveryError**(`code`, `message`, `options?`): `ToolDiscoveryError`

    Defined in: packages/core/src/tools/index.ts:113

    #### Parameters

    ##### code

    `string`

    ##### message

    `string`

    ##### options?

    ###### details?

    `Record`\<`string`, `unknown`>

    ###### nextActions?

    `AgentJsonNextAction`\[]

    ###### warnings?

    `AgentJsonWarning`\[]

    #### Returns

    `ToolDiscoveryError`

    #### Overrides

    `Error.constructor`

    ## Properties

    ### cause?

    > `optional` **cause?**: `unknown`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es2022.error.d.ts:24

    #### Inherited from

    `Error.cause`

    ### code

    > `readonly` **code**: `string`

    Defined in: packages/core/src/tools/index.ts:108

    ### details?

    > `readonly` `optional` **details?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/tools/index.ts:109

    ### message

    > **message**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1075

    #### Inherited from

    `Error.message`

    ### name

    > **name**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1074

    #### Inherited from

    `Error.name`

    ### nextActions

    > `readonly` **nextActions**: `AgentJsonNextAction`\[]

    Defined in: packages/core/src/tools/index.ts:111

    ### stack?

    > `optional` **stack?**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1076

    #### Inherited from

    `Error.stack`

    ### warnings

    > `readonly` **warnings**: `AgentJsonWarning`\[]

    Defined in: packages/core/src/tools/index.ts:110

    ### stackTraceLimit

    > `static` **stackTraceLimit**: `number`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:67

    The `Error.stackTraceLimit` property specifies the number of stack frames
    collected by a stack trace (whether generated by `new Error().stack` or
    `Error.captureStackTrace(obj)`).

    The default value is `10` but may be set to any valid JavaScript number. Changes
    will affect any stack trace captured *after* the value has been changed.

    If set to a non-number value, or set to a negative number, stack traces will
    not capture any frames.

    #### Inherited from

    `Error.stackTraceLimit`

    ## Methods

    ### captureStackTrace()

    > `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:51

    Creates a `.stack` property on `targetObject`, which when accessed returns
    a string representing the location in the code at which
    `Error.captureStackTrace()` was called.

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    const myObject = {};
    Error.captureStackTrace(myObject);
    myObject.stack;  // Similar to `new Error().stack`
    ```

    The first line of the trace will be prefixed with
    `${myObject.name}: ${myObject.message}`.

    The optional `constructorOpt` argument accepts a function. If given, all frames
    above `constructorOpt`, including `constructorOpt`, will be omitted from the
    generated stack trace.

    The `constructorOpt` argument is useful for hiding implementation
    details of error generation from the user. For instance:

    ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    function a() {
      b();
    }

    function b() {
      c();
    }

    function c() {
      // Create an error without stack trace to avoid calculating the stack trace twice.
      const { stackTraceLimit } = Error;
      Error.stackTraceLimit = 0;
      const error = new Error();
      Error.stackTraceLimit = stackTraceLimit;

      // Capture the stack trace above function b
      Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
      throw error;
    }

    a();
    ```

    #### Parameters

    ##### targetObject

    `object`

    ##### constructorOpt?

    `Function`

    #### Returns

    `void`

    #### Inherited from

    `Error.captureStackTrace`

    ### prepareStackTrace()

    > `static` **prepareStackTrace**(`err`, `stackTraces`): `any`

    Defined in: node\_modules/.pnpm/@types+node\@25.9.1/node\_modules/@types/node/globals.d.ts:55

    #### Parameters

    ##### err

    `Error`

    ##### stackTraces

    `CallSite`\[]

    #### Returns

    `any`

    #### See

    [https://v8.dev/docs/stack-trace-api#customizing-stack-traces](https://v8.dev/docs/stack-trace-api#customizing-stack-traces)

    #### Inherited from

    `Error.prepareStackTrace`
  </Accordion>

  <Accordion title="Core exports: classes/User">
    @fentaris/core / User

    Defined in: packages/core/src/governance/governance.ts:13

    First-class non-sensitive subject declaration.

    ## Constructors

    ### Constructor

    > **new User**(`id`, `metadata?`): `User`

    Defined in: packages/core/src/governance/governance.ts:23

    #### Parameters

    ##### id

    `string`

    ##### metadata?

    `UserOptions` = `{}`

    #### Returns

    `User`

    ## Properties

    ### apiKeys

    > `readonly` **apiKeys**: `CredentialSource`\[]

    Defined in: packages/core/src/governance/governance.ts:20

    ### credentials

    > `readonly` **credentials**: `CredentialSourceMap`

    Defined in: packages/core/src/governance/governance.ts:21

    ### displayName?

    > `readonly` `optional` **displayName?**: `string`

    Defined in: packages/core/src/governance/governance.ts:15

    ### email?

    > `readonly` `optional` **email?**: `string`

    Defined in: packages/core/src/governance/governance.ts:16

    ### id

    > `readonly` **id**: `string`

    Defined in: packages/core/src/governance/governance.ts:14

    ### metadata?

    > `readonly` `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/governance/governance.ts:19

    ### tenant?

    > `readonly` `optional` **tenant?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/governance/governance.ts:18

    ### tenantId?

    > `readonly` `optional` **tenantId?**: `string`

    Defined in: packages/core/src/governance/governance.ts:17
  </Accordion>

  <Accordion title="Core exports: functions/acceptEdgeGatewayWebSocket">
    @fentaris/core / acceptEdgeGatewayWebSocket

    > **acceptEdgeGatewayWebSocket**(`req`, `socket`, `head`): `EdgeGatewaySocket`

    Defined in: packages/core/src/transports/exposure/edgeGatewayWebSocket.ts:13

    Complete the WebSocket handshake and return a text-frame gateway socket.

    ## Parameters

    ### req

    `IncomingMessage`

    ### socket

    `Duplex`

    ### head

    `Buffer`

    ## Returns

    `EdgeGatewaySocket`
  </Accordion>

  <Accordion title="Core exports: functions/adaptDesiredStateForEdgeProtocol">
    @fentaris/core / adaptDesiredStateForEdgeProtocol

    > **adaptDesiredStateForEdgeProtocol**(`state`, `version`): `EdgeDesiredStateMessage`

    Defined in: packages/core/src/edge/controlProtocol.ts:273

    Adapt desired state without exposing recipes unsupported by older agents.

    ## Parameters

    ### state

    `EdgeDesiredStateMessage`

    ### version

    `EdgeProtocolVersion`

    ## Returns

    `EdgeDesiredStateMessage`
  </Accordion>

  <Accordion title="Core exports: functions/agentJsonFailure">
    @fentaris/core / agentJsonFailure

    > **agentJsonFailure**(`code`, `message`, `details`, `warnings`, `nextActions`): `AgentJsonFailure`

    Defined in: packages/core/src/tools/index.ts:339

    Agent-native tool discovery helpers.

    ## Parameters

    ### code

    `string`

    ### message

    `string`

    ### details

    `Record`\<`string`, `unknown`> | `undefined`

    ### warnings

    `AgentJsonWarning`\[]

    ### nextActions

    `AgentJsonNextAction`\[]

    ## Returns

    `AgentJsonFailure`
  </Accordion>

  <Accordion title="Core exports: functions/agentJsonSuccess">
    @fentaris/core / agentJsonSuccess

    > **agentJsonSuccess**\<`T`>(`data`, `warnings`, `nextActions`, `pagination?`): `AgentJsonSuccess`\<`T`>

    Defined in: packages/core/src/tools/index.ts:335

    Agent-native tool discovery helpers.

    ## Type Parameters

    ### T

    `T`

    ## Parameters

    ### data

    `T`

    ### warnings

    `AgentJsonWarning`\[]

    ### nextActions

    `AgentJsonNextAction`\[]

    ### pagination?

    `AgentPagination`

    ## Returns

    `AgentJsonSuccess`\<`T`>
  </Accordion>

  <Accordion title="Core exports: functions/allow">
    @fentaris/core / allow

    > **allow**(`toolName`, `options?`): `ToolPermission`

    Defined in: packages/core/src/governance/governance.ts:363

    Helper to declare an allow permission.

    ## Parameters

    ### toolName

    `string`

    ### options?

    `ToolPermissionOptions` = `{}`

    ## Returns

    `ToolPermission`
  </Accordion>

  <Accordion title="Core exports: functions/allowAll">
    @fentaris/core / allowAll

    > **allowAll**(`name?`): `Policy`

    Defined in: packages/core/src/governance/governance.ts:395

    Helper to declare an allow-all policy.

    ## Parameters

    ### name?

    `string`

    ## Returns

    `Policy`
  </Accordion>

  <Accordion title="Core exports: functions/allowCapability">
    @fentaris/core / allowCapability

    > **allowCapability**(`permission`): `CapabilityPermission`

    Defined in: packages/core/src/governance/governance.ts:379

    Helper to declare an allow capability permission.

    ## Parameters

    ### permission

    `CapabilityPermissionOptions`

    ## Returns

    `CapabilityPermission`
  </Accordion>

  <Accordion title="Core exports: functions/apiKeyIdentityStrategy">
    @fentaris/core / apiKeyIdentityStrategy

    > **apiKeyIdentityStrategy**(`options`): `IdentityStrategy`

    Defined in: packages/core/src/auth/auth.ts:223

    API-key identity strategy backed by encrypted local auth storage.

    ## Parameters

    ### options

    #### auth

    `FentarisAuth`

    #### header?

    `string`

    #### name?

    `string`

    ## Returns

    `IdentityStrategy`
  </Accordion>

  <Accordion title="Core exports: functions/assertValidFentarisConfig">
    @fentaris/core / assertValidFentarisConfig

    > **assertValidFentarisConfig**(`config`, `options?`): `FentarisConfigValidationResult`

    Defined in: packages/core/src/config/validation.ts:161

    Validate Fentaris configuration and throw on error-severity diagnostics.

    ## Parameters

    ### config

    `McpProxyOptions`

    ### options?

    `FentarisConfigValidationOptions` = `{}`

    ## Returns

    `FentarisConfigValidationResult`
  </Accordion>

  <Accordion title="Core exports: functions/bearer">
    @fentaris/core / bearer

    > **bearer**(`credential`): `BearerCredentialAuth`

    Defined in: packages/core/src/server/McpServer.ts:343

    Apply a credential as an Authorization bearer token.

    ## Parameters

    ### credential

    `CredentialReference`

    ## Returns

    `BearerCredentialAuth`
  </Accordion>

  <Accordion title="Core exports: functions/bearerTokenIdentityStrategy">
    @fentaris/core / bearerTokenIdentityStrategy

    > **bearerTokenIdentityStrategy**(`options`): `IdentityStrategy`

    Defined in: packages/core/src/identity/identity.ts:45

    Create a strategy that resolves identity from bearer tokens.

    ## Parameters

    ### options

    #### authorizationHeader?

    `string`

    #### name?

    `string`

    #### resolveToken

    (`token`) => `UserContext` | `Promise`\<`UserContext` | `null`> | `null`

    ## Returns

    `IdentityStrategy`
  </Accordion>

  <Accordion title="Core exports: functions/buildEdgeControlPlaneUrls">
    @fentaris/core / buildEdgeControlPlaneUrls

    > **buildEdgeControlPlaneUrls**(`publicOrigin`, `basePath`): `object`

    Defined in: packages/core/src/edge/integratedConfig.ts:453

    Build absolute join and gateway URLs from a validated canonical public origin.

    ## Parameters

    ### publicOrigin

    `string`

    ### basePath

    `string`

    ## Returns

    `object`

    ### authorizeUrl

    > `readonly` **authorizeUrl**: `string`

    ### enrollUrl

    > `readonly` **enrollUrl**: `string`

    ### gatewayUrl

    > `readonly` **gatewayUrl**: `string`

    ### joinBaseUrl

    > `readonly` **joinBaseUrl**: `string`

    ### refreshUrl

    > `readonly` **refreshUrl**: `string`

    ### revokeUrl

    > `readonly` **revokeUrl**: `string`

    ### tokenUrl

    > `readonly` **tokenUrl**: `string`

    ### verificationUrl

    > `readonly` **verificationUrl**: `string`
  </Accordion>

  <Accordion title="Core exports: functions/buildSubjectIndex">
    @fentaris/core / buildSubjectIndex

    > **buildSubjectIndex**(`groups`): `SubjectIndex`

    Defined in: packages/core/src/governance/governance.ts:473

    First-class governance declaration APIs.

    ## Parameters

    ### groups

    `Group`\[]

    ## Returns

    `SubjectIndex`
  </Accordion>

  <Accordion title="Core exports: functions/canonicalizeInstallationValue">
    @fentaris/core / canonicalizeInstallationValue

    > **canonicalizeInstallationValue**(`value`): `string`

    Defined in: packages/core/src/edge/installation.ts:291

    Canonical JSON serialization used for digest and approval identity.

    ## Parameters

    ### value

    `unknown`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/collectRecipeRuntimeRefs">
    @fentaris/core / collectRecipeRuntimeRefs

    > **collectRecipeRuntimeRefs**(`args`, `env`): `string`\[]

    Defined in: packages/core/src/edge/recipe.ts:66

    Collect setup field names referenced by runtime-value tokens in a recipe.

    ## Parameters

    ### args

    readonly (`string` | `RuntimeValueToken`)\[]

    ### env

    `Readonly`\<`Record`\<`string`, `string` | `RuntimeValueToken`>>

    ## Returns

    `string`\[]
  </Accordion>

  <Accordion title="Core exports: functions/compareSecretHash">
    @fentaris/core / compareSecretHash

    > **compareSecretHash**(`storedHash`, `provided`): `boolean`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:385

    Compare a raw secret with a stored hash without leaking timing through length branches beyond the digest.

    ## Parameters

    ### storedHash

    `string`

    ### provided

    `string`

    ## Returns

    `boolean`
  </Accordion>

  <Accordion title="Core exports: functions/compileEdgeDeploymentCatalog">
    @fentaris/core / compileEdgeDeploymentCatalog

    > **compileEdgeDeploymentCatalog**(`options`): `EdgeDeploymentCatalog`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:69

    Compile application declarations once into a deterministic immutable Edge catalog.

    ## Parameters

    ### options

    `CompileEdgeDeploymentCatalogOptions`

    ## Returns

    `EdgeDeploymentCatalog`
  </Accordion>

  <Accordion title="Core exports: functions/compileInstallationRecipe">
    @fentaris/core / compileInstallationRecipe

    > **compileInstallationRecipe**(`input`): `InstallationRecipe`

    Defined in: packages/core/src/edge/installation.ts:301

    Compile and strictly validate an installation recipe.

    ## Parameters

    ### input

    `InstallationRecipeInput`

    ## Returns

    `InstallationRecipe`
  </Accordion>

  <Accordion title="Core exports: functions/compileLaunchRecipe">
    @fentaris/core / compileLaunchRecipe

    > **compileLaunchRecipe**(`options`, `schema?`): `LaunchRecipe`

    Defined in: packages/core/src/edge/recipe.ts:86

    Compile a LaunchRecipe from stdio transport options. Collects the
    setup field names referenced by runtime-value tokens and binds the recipe to
    a setup schema version when provided. Throws for empty commands.

    ## Parameters

    ### options

    `StdioTransportOptions`

    ### schema?

    `SetupSchema`

    ## Returns

    `LaunchRecipe`
  </Accordion>

  <Accordion title="Core exports: functions/computeInstallationDigest">
    @fentaris/core / computeInstallationDigest

    > **computeInstallationDigest**(`value`): `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/installation.ts:296

    Compute a stable SHA-256 installation digest.

    ## Parameters

    ### value

    `unknown`

    ## Returns

    `` `sha256:${string}` ``
  </Accordion>

  <Accordion title="Core exports: functions/computeRecipeDigest">
    @fentaris/core / computeRecipeDigest

    > **computeRecipeDigest**(`payload`): `string`

    Defined in: packages/core/src/edge/recipe.ts:61

    Compute a stable SHA-256 digest for a recipe payload.

    ## Parameters

    ### payload

    `Omit`\<`LaunchRecipe`, `"digest"`>

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/createEdgeControlPlaneRoutes">
    @fentaris/core / createEdgeControlPlaneRoutes

    > **createEdgeControlPlaneRoutes**(`options`): `object`

    Defined in: packages/core/src/transports/exposure/edgeControlPlaneRoutes.ts:25

    Build the reserved Edge HTTP routes under the configured base path.

    ## Parameters

    ### options

    `EdgeControlPlaneRouteOptions`

    ## Returns

    `object`

    ### httpRoutes

    > `readonly` **httpRoutes**: readonly `ProxyExposureHttpRoute`\[]
  </Accordion>

  <Accordion title="Core exports: functions/createEdgeLocalOperatorEndpoint">
    @fentaris/core / createEdgeLocalOperatorEndpoint

    > **createEdgeLocalOperatorEndpoint**(`stateDirectory`): `EdgeLocalOperatorEndpoint`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:71

    Create a short Unix-socket endpoint path and random credential.

    ## Parameters

    ### stateDirectory

    `string`

    ## Returns

    `EdgeLocalOperatorEndpoint`
  </Accordion>

  <Accordion title="Core exports: functions/createProxy">
    @fentaris/core / createProxy

    > **createProxy**(`options?`): `McpProxy`

    Defined in: packages/core/src/proxy/McpProxy.ts:3709

    Create a Fentaris proxy with the express-like routing API.

    ## Parameters

    ### options?

    `McpProxyOptions` = `{}`

    ## Returns

    `McpProxy`
  </Accordion>

  <Accordion title="Core exports: functions/createRuntimeEvent">
    @fentaris/core / createRuntimeEvent

    > **createRuntimeEvent**\<`N`>(`event`): `RuntimeEvent`\<`N`>

    Defined in: packages/core/src/profiler/profiler.ts:270

    Runtime profiler, event, sink, and runtime error APIs.

    ## Type Parameters

    ### N

    `N` *extends* keyof `RuntimeEventMap`

    ## Parameters

    ### event

    `object` & `Record`\<`string`, `unknown`>

    ## Returns

    `RuntimeEvent`\<`N`>
  </Accordion>

  <Accordion title="Core exports: functions/createSetupSchema">
    @fentaris/core / createSetupSchema

    > **createSetupSchema**(`fields`, `version?`): `SetupSchema`

    Defined in: packages/core/src/edge/setup.ts:259

    Build a SetupSchema from keyed field descriptors. Field names are
    assigned from the object keys and must be valid identifiers.

    ## Parameters

    ### fields

    `Record`\<`string`, `SetupFieldDescriptor`>

    ### version?

    `number`

    ## Returns

    `SetupSchema`
  </Accordion>

  <Accordion title="Core exports: functions/credential">
    @fentaris/core / credential

    > **credential**(`reference`): `CredentialReference`

    Defined in: packages/core/src/credentials/credentials.ts:70

    Reference a credential by logical name from server configuration.

    ## Parameters

    ### reference

    `string`

    ## Returns

    `CredentialReference`
  </Accordion>

  <Accordion title="Core exports: functions/credentialEnv">
    @fentaris/core / credentialEnv

    > **credentialEnv**(`name`): `CredentialEnvSource`

    Defined in: packages/core/src/credentials/credentials.ts:94

    Resolve a value from an environment variable.

    ## Parameters

    ### name

    `string`

    ## Returns

    `CredentialEnvSource`
  </Accordion>

  <Accordion title="Core exports: functions/credentialJson">
    @fentaris/core / credentialJson

    > **credentialJson**(`path`, `options?`): `CredentialJsonSource`

    Defined in: packages/core/src/credentials/credentials.ts:82

    Resolve a value from the encrypted local credentials JSON.

    ## Parameters

    ### path

    `string`

    ### options?

    `CredentialJsonOptions` = `{}`

    ## Returns

    `CredentialJsonSource`
  </Accordion>

  <Accordion title="Core exports: functions/credentialsToRefs">
    @fentaris/core / credentialsToRefs

    > **credentialsToRefs**(`credentials`): `SecretRef`\[]

    Defined in: packages/core/src/secrets/local-backend.ts:184

    Convert decrypted local credentials to secret refs.

    ## Parameters

    ### credentials

    #### defaults

    `Record`\<`string`, `string`> = `...`

    #### groups

    `Record`\<`string`, `Record`\<`string`, `string`>> = `...`

    #### users

    `Record`\<`string`, \{ `apiKeys`: `string`\[]; `credentials`: `Record`\<`string`, `string`>; }> = `...`

    ## Returns

    `SecretRef`\[]
  </Accordion>

  <Accordion title="Core exports: functions/decodeSecretScope">
    @fentaris/core / decodeSecretScope

    > **decodeSecretScope**(`encoded`): `SecretScope`

    Defined in: packages/core/src/secrets/types.ts:87

    Decode a manifest scope string to a secret scope.

    ## Parameters

    ### encoded

    `string`

    ## Returns

    `SecretScope`
  </Accordion>

  <Accordion title="Core exports: functions/defineFentarisConfig">
    @fentaris/core / defineFentarisConfig

    > **defineFentarisConfig**\<`TConfig`>(`config`): `TConfig`

    Defined in: packages/core/src/config/validation.ts:36

    Preserve TypeScript inference for Fentaris configuration objects.

    ## Type Parameters

    ### TConfig

    `TConfig` *extends* `McpProxyOptions`

    ## Parameters

    ### config

    `TConfig`

    ## Returns

    `TConfig`
  </Accordion>

  <Accordion title="Core exports: functions/deny">
    @fentaris/core / deny

    > **deny**(`toolName`, `options?`): `ToolPermission`

    Defined in: packages/core/src/governance/governance.ts:371

    Helper to declare a deny permission.

    ## Parameters

    ### toolName

    `string`

    ### options?

    `ToolPermissionOptions` = `{}`

    ## Returns

    `ToolPermission`
  </Accordion>

  <Accordion title="Core exports: functions/denyCapability">
    @fentaris/core / denyCapability

    > **denyCapability**(`permission`): `CapabilityPermission`

    Defined in: packages/core/src/governance/governance.ts:387

    Helper to declare a deny capability permission.

    ## Parameters

    ### permission

    `CapabilityPermissionOptions`

    ## Returns

    `CapabilityPermission`
  </Accordion>

  <Accordion title="Core exports: functions/deriveEligibleEdgeDeployments">
    @fentaris/core / deriveEligibleEdgeDeployments

    > **deriveEligibleEdgeDeployments**(`context`): `Promise`\<`EdgeEligibilityResult`>

    Defined in: packages/core/src/edge/integratedReconciliation.ts:151

    Derive only assignments proven for both the subject and selected device.

    ## Parameters

    ### context

    `EdgeEligibilityContext`

    ## Returns

    `Promise`\<`EdgeEligibilityResult`>
  </Accordion>

  <Accordion title="Core exports: functions/describeRuntimeValueToken">
    @fentaris/core / describeRuntimeValueToken

    > **describeRuntimeValueToken**(`token`): `string`

    Defined in: packages/core/src/edge/runtimeInput.ts:68

    Inspect a token's kind for safe logging/diagnostics without resolved values.

    ## Parameters

    ### token

    `RuntimeValueToken`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/detectStaticPlacementOverlaps">
    @fentaris/core / detectStaticPlacementOverlaps

    > **detectStaticPlacementOverlaps**(`inputs`): `PlacementOverlapDiagnostic`\[]

    Defined in: packages/core/src/edge/placement.ts:256

    Detect statically overlapping group bindings that bind the same server to
    different targets for the same subject and have no user binding to resolve
    the conflict. Dynamic membership that cannot be known at startup is not
    reported here; it surfaces as a runtime `EDGE_PLACEMENT_AMBIGUOUS` error.

    ## Parameters

    ### inputs

    `StaticOverlapInputs`

    ## Returns

    `PlacementOverlapDiagnostic`\[]
  </Accordion>

  <Accordion title="Core exports: functions/diagnoseEdgeProductionAdapters">
    @fentaris/core / diagnoseEdgeProductionAdapters

    > **diagnoseEdgeProductionAdapters**(`adapters`, `claimsProductionReady`): readonly `EdgeProductionAdapterDiagnostic`\[]

    Defined in: packages/core/src/edge/distributed.ts:137

    Surface actionable diagnostics when production claims depend on reference adapters.

    ## Parameters

    ### adapters

    `Readonly`\<`Record`\<`string`, \{ `diagnostics?`: `EdgeAdapterDiagnostics`; } | `undefined`>>

    ### claimsProductionReady

    `boolean`

    ## Returns

    readonly `EdgeProductionAdapterDiagnostic`\[]
  </Accordion>

  <Accordion title="Core exports: functions/diffManifest">
    @fentaris/core / diffManifest

    > **diffManifest**(`required`, `stored`): `SecretsManifestDiff`

    Defined in: packages/core/src/secrets/manifest.ts:53

    Compare required manifest entries against stored secret refs.

    ## Parameters

    ### required

    `SecretsManifestEntry`\[]

    ### stored

    `SecretRef`\[]

    ## Returns

    `SecretsManifestDiff`
  </Accordion>

  <Accordion title="Core exports: functions/edgeControlPlaneError">
    @fentaris/core / edgeControlPlaneError

    > **edgeControlPlaneError**(`error`, `description?`, `extras?`): `EdgeControlPlaneErrorBody`

    Defined in: packages/core/src/edge/integratedProtocol.ts:137

    Build a redacted control-plane error body.

    ## Parameters

    ### error

    `EdgeControlPlaneErrorCode`

    ### description?

    `string`

    ### extras?

    #### interval?

    `number`

    ## Returns

    `EdgeControlPlaneErrorBody`
  </Accordion>

  <Accordion title="Core exports: functions/edgeError">
    @fentaris/core / edgeError

    > **edgeError**(`code`, `message`, `options?`): `EdgeError`

    Defined in: packages/core/src/edge/errors.ts:63

    Create a normalized EdgeError.

    `details` should not contain resolved secrets, local paths, credentials, or
    full command environments; redaction is the caller's responsibility.

    ## Parameters

    ### code

    `EdgeErrorCode`

    ### message

    `string`

    ### options?

    `EdgeErrorOptions`

    ## Returns

    `EdgeError`
  </Accordion>

  <Accordion title="Core exports: functions/edgeHealth">
    @fentaris/core / edgeHealth

    > **edgeHealth**(`options`): `HealthBuilder`

    Defined in: packages/core/src/edge/observability.ts:85

    Build standard edge health checks using existing Fentaris health primitives.

    ## Parameters

    ### options

    `EdgeHealthOptions`

    ## Returns

    `HealthBuilder`
  </Accordion>

  <Accordion title="Core exports: functions/edgeInstallationHealth">
    @fentaris/core / edgeInstallationHealth

    > **edgeInstallationHealth**(`options`): `HealthBuilder`

    Defined in: packages/core/src/edge/installationObservability.ts:51

    Build standard managed-installation health checks.

    ## Parameters

    ### options

    `EdgeInstallationHealthOptions`

    ## Returns

    `HealthBuilder`
  </Accordion>

  <Accordion title="Core exports: functions/encodeSecretScope">
    @fentaris/core / encodeSecretScope

    > **encodeSecretScope**(`scope`): `string`

    Defined in: packages/core/src/secrets/types.ts:73

    Encode a secret scope to manifest string form.

    ## Parameters

    ### scope

    `SecretScope`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/exposurePathsConflict">
    @fentaris/core / exposurePathsConflict

    > **exposurePathsConflict**(`left`, `right`): `boolean`

    Defined in: packages/core/src/transports/exposure/routeRegistry.ts:45

    True when two absolute paths overlap as prefixes or exact matches.

    ## Parameters

    ### left

    `string`

    ### right

    `string`

    ## Returns

    `boolean`
  </Accordion>

  <Accordion title="Core exports: functions/filterToolsByPolicy">
    @fentaris/core / filterToolsByPolicy

    > **filterToolsByPolicy**\<`TTool`>(`tools`, `serverName`, `policy`): `TTool`\[]

    Defined in: packages/core/src/policy/policy.ts:131

    Filter tools by policy.

    ## Type Parameters

    ### TTool

    `TTool` *extends* `object`

    ## Parameters

    ### tools

    `TTool`\[]

    ### serverName

    `string`

    ### policy

    `PolicyContract`

    ## Returns

    `TTool`\[]
  </Accordion>

  <Accordion title="Core exports: functions/formatFentarisDiagnostics">
    @fentaris/core / formatFentarisDiagnostics

    > **formatFentarisDiagnostics**(`diagnostics`, `options?`): `string`

    Defined in: packages/core/src/config/format.ts:7

    Format diagnostics for humans or JSON-oriented tooling.

    ## Parameters

    ### diagnostics

    readonly `FentarisDiagnostic`\[]

    ### options?

    `FentarisDiagnosticFormatterOptions` = `{}`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/fromProxyToolName">
    @fentaris/core / fromProxyToolName

    > **fromProxyToolName**(`proxyToolName`): `object`

    Defined in: packages/core/src/naming/nameMapping.ts:37

    Split a proxied tool name into server and tool parts.

    ## Parameters

    ### proxyToolName

    `string`

    ## Returns

    `object`

    ### serverName

    > **serverName**: `string`

    ### toolName

    > **toolName**: `string`
  </Accordion>

  <Accordion title="Core exports: functions/functionProfilerSink">
    @fentaris/core / functionProfilerSink

    > **functionProfilerSink**(`write`, `name?`): `ProfilerSink`

    Defined in: packages/core/src/profiler/profiler.ts:279

    Runtime profiler, event, sink, and runtime error APIs.

    ## Parameters

    ### write

    `ProfilerFunctionSink`

    ### name?

    `string` = `"function"`

    ## Returns

    `ProfilerSink`
  </Accordion>

  <Accordion title="Core exports: functions/getCapabilityPermission">
    @fentaris/core / getCapabilityPermission

    > **getCapabilityPermission**(`permissions`, `request`): `CapabilityPermission` | `undefined`

    Defined in: packages/core/src/policy/policy.ts:239

    Return the effective capability permission, preferring exact matches over wildcards.

    ## Parameters

    ### permissions

    `CapabilityPermission`\[]

    ### request

    `CapabilityOperationRequest`

    ## Returns

    `CapabilityPermission` | `undefined`
  </Accordion>

  <Accordion title="Core exports: functions/getToolPermission">
    @fentaris/core / getToolPermission

    > **getToolPermission**(`permissions`, `toolName`): `ToolPermission` | `undefined`

    Defined in: packages/core/src/policy/policy.ts:144

    Return the effective permission for a tool, preferring exact matches over wildcard permissions.

    ## Parameters

    ### permissions

    `ToolPermission`\[]

    ### toolName

    `string`

    ## Returns

    `ToolPermission` | `undefined`
  </Accordion>

  <Accordion title="Core exports: functions/group">
    @fentaris/core / group

    > **group**(`options`): `Group`

    Defined in: packages/core/src/governance/governance.ts:347

    Helper to declare a group.

    ## Parameters

    ### options

    `GroupOptions`

    ## Returns

    `Group`
  </Accordion>

  <Accordion title="Core exports: functions/hashSecret">
    @fentaris/core / hashSecret

    > **hashSecret**(`value`): `string`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:380

    Hash a bearer, refresh, or device credential for equality checks at rest.

    ## Parameters

    ### value

    `string`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/header">
    @fentaris/core / header

    > **header**(`name`, `credential`): `HeaderCredentialAuth`

    Defined in: packages/core/src/server/McpServer.ts:351

    Apply a credential as a named request header.

    ## Parameters

    ### name

    `string`

    ### credential

    `CredentialReference`

    ## Returns

    `HeaderCredentialAuth`
  </Accordion>

  <Accordion title="Core exports: functions/headerIdentityStrategy">
    @fentaris/core / headerIdentityStrategy

    > **headerIdentityStrategy**(`options?`): `IdentityStrategy`

    Defined in: packages/core/src/identity/identity.ts:8

    Create a strategy that resolves identity from request headers.

    ## Parameters

    ### options?

    #### metadataHeaders?

    `Record`\<`string`, `string`>

    #### name?

    `string`

    #### userIdHeader?

    `string`

    ## Returns

    `IdentityStrategy`
  </Accordion>

  <Accordion title="Core exports: functions/health">
    @fentaris/core / health

    > **health**(`options?`): `HealthBuilder`

    Defined in: packages/core/src/health/health.ts:142

    Runtime lifecycle and health APIs.

    ## Parameters

    ### options?

    `HealthBuilderOptions` = `{}`

    ## Returns

    `HealthBuilder`
  </Accordion>

  <Accordion title="Core exports: functions/installationApprovalDigest">
    @fentaris/core / installationApprovalDigest

    > **installationApprovalDigest**(`recipe`, `localPolicy`): `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/installation.ts:366

    Edge execution targets, runtime inputs, setup fields, launch recipes, and errors.

    ## Parameters

    ### recipe

    `InstallationRecipe`

    ### localPolicy

    `unknown`

    ## Returns

    `` `sha256:${string}` ``
  </Accordion>

  <Accordion title="Core exports: functions/installedArtifact">
    @fentaris/core / installedArtifact

    > **installedArtifact**(`recipe`, `output`): `InstalledArtifactReference`

    Defined in: packages/core/src/edge/installation.ts:347

    Create a serializable reference to one declared installation output.

    ## Parameters

    ### recipe

    `InstallationRecipe`

    ### output

    `string`

    ## Returns

    `InstalledArtifactReference`
  </Accordion>

  <Accordion title="Core exports: functions/isCapabilityAllowedByPermissions">
    @fentaris/core / isCapabilityAllowedByPermissions

    > **isCapabilityAllowedByPermissions**(`permissions`, `request`): `boolean`

    Defined in: packages/core/src/policy/policy.ts:250

    Check whether a capability is allowed by a permission set.

    ## Parameters

    ### permissions

    `CapabilityPermission`\[]

    ### request

    `CapabilityOperationRequest`

    ## Returns

    `boolean`
  </Accordion>

  <Accordion title="Core exports: functions/isCloudTarget">
    @fentaris/core / isCloudTarget

    > **isCloudTarget**(`target`): `target is CloudExecutionTarget`

    Defined in: packages/core/src/edge/target.ts:196

    Type guard for a cloud target.

    ## Parameters

    ### target

    `ExecutionTarget`

    ## Returns

    `target is CloudExecutionTarget`
  </Accordion>

  <Accordion title="Core exports: functions/isEdgeControlPlaneErrorBody">
    @fentaris/core / isEdgeControlPlaneErrorBody

    > **isEdgeControlPlaneErrorBody**(`value`): `value is EdgeControlPlaneErrorBody`

    Defined in: packages/core/src/edge/integratedProtocol.ts:127

    Type guard for a control-plane error body.

    ## Parameters

    ### value

    `unknown`

    ## Returns

    `value is EdgeControlPlaneErrorBody`
  </Accordion>

  <Accordion title="Core exports: functions/isEdgeError">
    @fentaris/core / isEdgeError

    > **isEdgeError**(`value`): `value is EdgeError`

    Defined in: packages/core/src/edge/errors.ts:77

    Type guard for EdgeError.

    ## Parameters

    ### value

    `unknown`

    ## Returns

    `value is EdgeError`
  </Accordion>

  <Accordion title="Core exports: functions/isEdgeMcpInboundEnvelope">
    @fentaris/core / isEdgeMcpInboundEnvelope

    > **isEdgeMcpInboundEnvelope**(`value`): `value is EdgeMcpInboundEnvelope`

    Defined in: packages/core/src/edge/protocol.ts:86

    Return true when an unknown value is a structurally valid terminal envelope.

    ## Parameters

    ### value

    `unknown`

    ## Returns

    `value is EdgeMcpInboundEnvelope`
  </Accordion>

  <Accordion title="Core exports: functions/isEdgeTarget">
    @fentaris/core / isEdgeTarget

    > **isEdgeTarget**(`target`): `target is EdgeExecutionTarget`

    Defined in: packages/core/src/edge/target.ts:201

    Type guard for an edge target.

    ## Parameters

    ### target

    `ExecutionTarget`

    ## Returns

    `target is EdgeExecutionTarget`
  </Accordion>

  <Accordion title="Core exports: functions/isInstalledArtifactReference">
    @fentaris/core / isInstalledArtifactReference

    > **isInstalledArtifactReference**(`value`): `value is InstalledArtifactReference`

    Defined in: packages/core/src/edge/installation.ts:353

    Edge execution targets, runtime inputs, setup fields, launch recipes, and errors.

    ## Parameters

    ### value

    `unknown`

    ## Returns

    `value is InstalledArtifactReference`
  </Accordion>

  <Accordion title="Core exports: functions/isRuntimeValueToken">
    @fentaris/core / isRuntimeValueToken

    > **isRuntimeValueToken**(`value`): `value is RuntimeValueToken`

    Defined in: packages/core/src/edge/runtimeInput.ts:63

    Type guard for RuntimeValueToken.

    ## Parameters

    ### value

    `unknown`

    ## Returns

    `value is RuntimeValueToken`
  </Accordion>

  <Accordion title="Core exports: functions/isToolAllowedByPermissions">
    @fentaris/core / isToolAllowedByPermissions

    > **isToolAllowedByPermissions**(`permissions`, `toolName`): `boolean`

    Defined in: packages/core/src/policy/policy.ts:155

    Check whether a tool is allowed by a permission set.

    ## Parameters

    ### permissions

    `ToolPermission`\[]

    ### toolName

    `string`

    ## Returns

    `boolean`
  </Accordion>

  <Accordion title="Core exports: functions/jsonConsoleLogger">
    @fentaris/core / jsonConsoleLogger

    > **jsonConsoleLogger**(`options?`): `Logger`

    Defined in: packages/core/src/logging/logger.ts:140

    Create a logger that writes structured JSON entries to stdout.

    ## Parameters

    ### options?

    `JsonConsoleLoggerOptions` = `{}`

    ## Returns

    `Logger`
  </Accordion>

  <Accordion title="Core exports: functions/jsonProfilerSink">
    @fentaris/core / jsonProfilerSink

    > **jsonProfilerSink**(`writer?`): `ProfilerSink`

    Defined in: packages/core/src/profiler/profiler.ts:305

    Runtime profiler, event, sink, and runtime error APIs.

    ## Parameters

    ### writer?

    (`line`) => `void`

    ## Returns

    `ProfilerSink`
  </Accordion>

  <Accordion title="Core exports: functions/limit">
    @fentaris/core / limit

    > **limit**(`limiter`): `Pick`\<`ToolPermissionOptions`, `"limiter"`>

    Defined in: packages/core/src/governance/governance.ts:403

    Permission helper for limiters.

    ## Parameters

    ### limiter

    `RateLimiter` | `undefined`

    ## Returns

    `Pick`\<`ToolPermissionOptions`, `"limiter"`>
  </Accordion>

  <Accordion title="Core exports: functions/loggerProfilerSink">
    @fentaris/core / loggerProfilerSink

    > **loggerProfilerSink**(`options`): `ProfilerSink`

    Defined in: packages/core/src/profiler/profiler.ts:283

    Runtime profiler, event, sink, and runtime error APIs.

    ## Parameters

    ### options

    `LoggerSinkOptions`

    ## Returns

    `ProfilerSink`
  </Accordion>

  <Accordion title="Core exports: functions/manifestEntryKey">
    @fentaris/core / manifestEntryKey

    > **manifestEntryKey**(`entry`): `string`

    Defined in: packages/core/src/secrets/types.ts:112

    Stable key for manifest entries.

    ## Parameters

    ### entry

    `SecretsManifestEntry`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/manifestFromSecretRefs">
    @fentaris/core / manifestFromSecretRefs

    > **manifestFromSecretRefs**(`refs`, `envVars?`): `SecretsManifest`

    Defined in: packages/core/src/secrets/manifest.ts:72

    Build manifest entries from credential secret refs.

    ## Parameters

    ### refs

    `SecretRef`\[]

    ### envVars?

    `string`\[] = `[]`

    ## Returns

    `SecretsManifest`
  </Accordion>

  <Accordion title="Core exports: functions/manifestsEqual">
    @fentaris/core / manifestsEqual

    > **manifestsEqual**(`left`, `right`): `boolean`

    Defined in: packages/core/src/secrets/manifest.ts:88

    Compare two manifests for equality (order-insensitive).

    ## Parameters

    ### left

    `SecretsManifest`

    ### right

    `SecretsManifest`

    ## Returns

    `boolean`
  </Accordion>

  <Accordion title="Core exports: functions/mcp">
    @fentaris/core / mcp

    > **mcp**(`name`, `options`): `McpServer`

    Defined in: packages/core/src/server/McpServer.ts:335

    Create an upstream MCP server declaration.

    ## Parameters

    ### name

    `string`

    ### options

    `Omit`\<`McpServerOptions`, `"name"`>

    ## Returns

    `McpServer`
  </Accordion>

  <Accordion title="Core exports: functions/mergeEdgeControlPlaneConfig">
    @fentaris/core / mergeEdgeControlPlaneConfig

    > **mergeEdgeControlPlaneConfig**(`typescriptConfig`, `jsonConfig`): `EdgeControlPlaneConfig` | `undefined`

    Defined in: packages/core/src/edge/integratedConfig.ts:214

    Merge serializable `fentaris.json` Edge control-plane options with TypeScript
    config. TypeScript wins for every overlapping serializable field; adapters
    and callbacks are TypeScript-only and are never taken from JSON.

    ## Parameters

    ### typescriptConfig

    `EdgeControlPlaneConfig` | `undefined`

    ### jsonConfig

    `SerializableEdgeControlPlaneConfig` | `undefined`

    ## Returns

    `EdgeControlPlaneConfig` | `undefined`
  </Accordion>

  <Accordion title="Core exports: functions/normalizeEdgeControlPlaneConfig">
    @fentaris/core / normalizeEdgeControlPlaneConfig

    > **normalizeEdgeControlPlaneConfig**(`config`): `NormalizedEdgeControlPlaneConfig` | `undefined`

    Defined in: packages/core/src/edge/integratedConfig.ts:284

    Normalize an enabled control-plane configuration with secure defaults.
    Returns `undefined` when the control plane is absent or disabled.

    ## Parameters

    ### config

    `EdgeControlPlaneConfig` | `undefined`

    ## Returns

    `NormalizedEdgeControlPlaneConfig` | `undefined`
  </Accordion>

  <Accordion title="Core exports: functions/normalizeEdgeDeviceName">
    @fentaris/core / normalizeEdgeDeviceName

    > **normalizeEdgeDeviceName**(`name`): `string`

    Defined in: packages/core/src/edge/controlPlane.ts:440

    Normalize a tenant-scoped public Edge name for collision checks.

    ## Parameters

    ### name

    `string`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/normalizeExposurePath">
    @fentaris/core / normalizeExposurePath

    > **normalizeExposurePath**(`value`): `string`

    Defined in: packages/core/src/transports/exposure/routeRegistry.ts:52

    Normalize an exposure path to a non-trailing-slash absolute form.

    ## Parameters

    ### value

    `string`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/normalizeInstallationReadiness">
    @fentaris/core / normalizeInstallationReadiness

    > **normalizeInstallationReadiness**(`state`): `"ready"` | `"blocked"` | `"setup-required"` | `"unavailable"`

    Defined in: packages/core/src/edge/installation.ts:359

    Normalize detailed installation state for compatible readiness clients.

    ## Parameters

    ### state

    `InstallationLifecycleState`

    ## Returns

    `"ready"` | `"blocked"` | `"setup-required"` | `"unavailable"`
  </Accordion>

  <Accordion title="Core exports: functions/normalizeRuntimeError">
    @fentaris/core / normalizeRuntimeError

    > **normalizeRuntimeError**(`error`, `options?`): `FentarisRuntimeError`

    Defined in: packages/core/src/profiler/errors.ts:64

    Runtime profiler, event, sink, and runtime error APIs.

    ## Parameters

    ### error

    `unknown`

    ### options?

    `FentarisRuntimeErrorOptions` = `{}`

    ## Returns

    `FentarisRuntimeError`
  </Accordion>

  <Accordion title="Core exports: functions/normalizeRuntimeProfiler">
    @fentaris/core / normalizeRuntimeProfiler

    > **normalizeRuntimeProfiler**(`config`, `logger?`): `NormalizedRuntimeProfiler` | `null`

    Defined in: packages/core/src/profiler/profiler.ts:133

    Runtime profiler, event, sink, and runtime error APIs.

    ## Parameters

    ### config

    `RuntimeProfilerConfig`

    ### logger?

    `Logger`

    ## Returns

    `NormalizedRuntimeProfiler` | `null`
  </Accordion>

  <Accordion title="Core exports: functions/normalizeUserCode">
    @fentaris/core / normalizeUserCode

    > **normalizeUserCode**(`userCode`): `string`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:390

    Normalize a human user code for durable lookup.

    ## Parameters

    ### userCode

    `string`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/parseEdgeProtocolMessage">
    @fentaris/core / parseEdgeProtocolMessage

    > **parseEdgeProtocolMessage**(`frame`): `EdgeProtocolMessage`

    Defined in: packages/core/src/edge/controlProtocol.ts:238

    Parse a JSON edge frame and reject unsupported/malformed protocol shells.

    ## Parameters

    ### frame

    `string`

    ## Returns

    `EdgeProtocolMessage`
  </Accordion>

  <Accordion title="Core exports: functions/parseInstallationRecipe">
    @fentaris/core / parseInstallationRecipe

    > **parseInstallationRecipe**(`data`): `InstallationRecipe`

    Defined in: packages/core/src/edge/installation.ts:311

    Edge execution targets, runtime inputs, setup fields, launch recipes, and errors.

    ## Parameters

    ### data

    `string`

    ## Returns

    `InstallationRecipe`
  </Accordion>

  <Accordion title="Core exports: functions/parseLaunchRecipe">
    @fentaris/core / parseLaunchRecipe

    > **parseLaunchRecipe**(`data`): `LaunchRecipe`

    Defined in: packages/core/src/edge/recipe.ts:113

    Parse and validate a serialized recipe.

    ## Parameters

    ### data

    `string`

    ## Returns

    `LaunchRecipe`
  </Accordion>

  <Accordion title="Core exports: functions/parseManifest">
    @fentaris/core / parseManifest

    > **parseManifest**(`value`): `SecretsManifest`

    Defined in: packages/core/src/secrets/manifest.ts:28

    Parse and validate a secrets manifest.

    ## Parameters

    ### value

    `unknown`

    ## Returns

    `SecretsManifest`
  </Accordion>

  <Accordion title="Core exports: functions/parseSerializableEdgeControlPlaneConfig">
    @fentaris/core / parseSerializableEdgeControlPlaneConfig

    > **parseSerializableEdgeControlPlaneConfig**(`value`, `diagnostics?`, `path?`): `SerializableEdgeControlPlaneConfig` | `undefined`

    Defined in: packages/core/src/edge/integratedConfig.ts:377

    Parse serializable Edge control-plane options from raw `fentaris.json` input.
    Unknown adapter-like keys are rejected rather than silently ignored.

    ## Parameters

    ### value

    `unknown`

    ### diagnostics?

    `FentarisDiagnostic`\[] = `[]`

    ### path?

    (`string` | `number`)\[] = `...`

    ## Returns

    `SerializableEdgeControlPlaneConfig` | `undefined`
  </Accordion>

  <Accordion title="Core exports: functions/policy">
    @fentaris/core / policy

    > **policy**(`name`, `options?`): `Policy`

    Defined in: packages/core/src/governance/governance.ts:355

    Helper to declare a policy.

    ## Parameters

    ### name

    `string`

    ### options?

    #### description?

    `string`

    #### metadata?

    \{\[`key`: `string`]: `unknown`; `maxDailyCalls?`: `number`; `requiresApproval?`: `boolean`; }

    #### metadata.maxDailyCalls?

    `number`

    #### metadata.requiresApproval?

    `boolean`

    ## Returns

    `Policy`
  </Accordion>

  <Accordion title="Core exports: functions/prettyProfilerSink">
    @fentaris/core / prettyProfilerSink

    > **prettyProfilerSink**(`options?`): `ProfilerSink`

    Defined in: packages/core/src/profiler/profiler.ts:294

    Runtime profiler, event, sink, and runtime error APIs.

    ## Parameters

    ### options?

    `ProfilerPrettySinkOptions` = `{}`

    ## Returns

    `ProfilerSink`
  </Accordion>

  <Accordion title="Core exports: functions/profiler">
    @fentaris/core / profiler

    > **profiler**(): `ProfilerBuilder`

    Defined in: packages/core/src/profiler/profiler.ts:129

    Runtime profiler, event, sink, and runtime error APIs.

    ## Returns

    `ProfilerBuilder`
  </Accordion>

  <Accordion title="Core exports: functions/rateLimitKey">
    @fentaris/core / rateLimitKey

    > **rateLimitKey**(`request`, `user`): `string`

    Defined in: packages/core/src/rate-limit/rateLimit.ts:274

    Build a stable rate-limit key for a user/server/tool tuple.

    ## Parameters

    ### request

    `ToolCallRequest`

    ### user

    `UserContext`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/rateLimitMiddleware">
    @fentaris/core / rateLimitMiddleware

    > **rateLimitMiddleware**(`options?`): `Middleware`

    Defined in: packages/core/src/rate-limit/rateLimit.ts:282

    Middleware helper that enforces a rate limiter before forwarding tool calls.

    ## Parameters

    ### options?

    #### key?

    (`request`, `user`) => `string`

    #### limiter?

    `RateLimiter`

    #### message?

    `string`

    ## Returns

    `Middleware`
  </Accordion>

  <Accordion title="Core exports: functions/readEdgeLocalOperatorEndpoint">
    @fentaris/core / readEdgeLocalOperatorEndpoint

    > **readEdgeLocalOperatorEndpoint**(`stateDirectory`): `Promise`\<`EdgeLocalOperatorEndpoint`>

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:81

    Read the running owner-protected operator endpoint without opening authority state.

    ## Parameters

    ### stateDirectory

    `string`

    ## Returns

    `Promise`\<`EdgeLocalOperatorEndpoint`>
  </Accordion>

  <Accordion title="Core exports: functions/redactEdgeAuthorityValue">
    @fentaris/core / redactEdgeAuthorityValue

    > **redactEdgeAuthorityValue**(`value`): `unknown`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:395

    Redact secret-bearing values from errors and telemetry payloads.

    ## Parameters

    ### value

    `unknown`

    ## Returns

    `unknown`
  </Accordion>

  <Accordion title="Core exports: functions/redactEdgeProtocolValue">
    @fentaris/core / redactEdgeProtocolValue

    > **redactEdgeProtocolValue**(`value`, `key?`): `unknown`

    Defined in: packages/core/src/edge/observability.ts:103

    Redact edge credentials, local paths, secrets, environments, and auth fields.

    ## Parameters

    ### value

    `unknown`

    ### key?

    `string` = `""`

    ## Returns

    `unknown`
  </Accordion>

  <Accordion title="Core exports: functions/redactProfilerValue">
    @fentaris/core / redactProfilerValue

    > **redactProfilerValue**\<`T`>(`value`, `options`): `T`

    Defined in: packages/core/src/profiler/redaction.ts:58

    Runtime profiler, event, sink, and runtime error APIs.

    ## Type Parameters

    ### T

    `T`

    ## Parameters

    ### value

    `T`

    ### options

    `NormalizedProfilerRedaction`

    ## Returns

    `T`
  </Accordion>

  <Accordion title="Core exports: functions/registerEdgeControlProvider">
    @fentaris/core / registerEdgeControlProvider

    > **registerEdgeControlProvider**(`handle`, `options`): `void`

    Defined in: packages/core/src/edge/controlProvider.ts:168

    Register the reserved provider through the normal local capability machinery.

    ## Parameters

    ### handle

    `ProxyLocalHandle`

    ### options

    `EdgeControlProviderOptions`

    ## Returns

    `void`
  </Accordion>

  <Accordion title="Core exports: functions/renderRuntimeError">
    @fentaris/core / renderRuntimeError

    > **renderRuntimeError**(`error`): `string`

    Defined in: packages/core/src/profiler/errors.ts:108

    Runtime profiler, event, sink, and runtime error APIs.

    ## Parameters

    ### error

    `unknown`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/requireDevice">
    @fentaris/core / requireDevice

    > **requireDevice**(`selector`, `context`, `resolver`): `Promise`\<`DeviceResolution`>

    Defined in: packages/core/src/edge/placement.ts:432

    Resolve a device selector and return a structured `EDGE_UNAVAILABLE` error
    when no eligible device is found. Never leaks private device inventory.

    ## Parameters

    ### selector

    `DeviceSelector`

    ### context

    `DeviceResolverContext`

    ### resolver

    `DeviceResolver`

    ## Returns

    `Promise`\<`DeviceResolution`>
  </Accordion>

  <Accordion title="Core exports: functions/resolveDeviceSelector">
    @fentaris/core / resolveDeviceSelector

    > **resolveDeviceSelector**(`selector`, `context`, `resolver`): `Promise`\<`DeviceResolution` | `null`>

    Defined in: packages/core/src/edge/placement.ts:384

    Resolve a DeviceSelector against a DeviceResolver.

    A `fallback` selector resolves its children in order and returns the first
    eligible device. `null` from a child means "no eligible device for this
    selector", so fallback proceeds; only when every child is ineligible does
    this function return `null`.

    ## Parameters

    ### selector

    `DeviceSelector`

    ### context

    `DeviceResolverContext`

    ### resolver

    `DeviceResolver`

    ## Returns

    `Promise`\<`DeviceResolution` | `null`>
  </Accordion>

  <Accordion title="Core exports: functions/resolveHttpTransportHeaders">
    @fentaris/core / resolveHttpTransportHeaders

    > **resolveHttpTransportHeaders**(`options`, `user?`): `Promise`\<`Record`\<`string`, `string`>>

    Defined in: packages/core/src/transports/auth/transportAuth.ts:57

    Resolve outbound HTTP-family transport headers for a user context.

    ## Parameters

    ### options

    `HttpTransportAuthOptions` | `undefined`

    ### user?

    `UserContext` = `{}`

    ## Returns

    `Promise`\<`Record`\<`string`, `string`>>
  </Accordion>

  <Accordion title="Core exports: functions/runtimeErrorEvent">
    @fentaris/core / runtimeErrorEvent

    > **runtimeErrorEvent**(`error`, `context?`): `RuntimeProfilerErrorPayload`

    Defined in: packages/core/src/profiler/errors.ts:118

    Runtime profiler, event, sink, and runtime error APIs.

    ## Parameters

    ### error

    `unknown`

    ### context?

    `RuntimeErrorContext` = `{}`

    ## Returns

    `RuntimeProfilerErrorPayload`
  </Accordion>

  <Accordion title="Core exports: functions/runtimeErrorToEventPayload">
    @fentaris/core / runtimeErrorToEventPayload

    > **runtimeErrorToEventPayload**(`error`): `RuntimeProfilerErrorPayload`

    Defined in: packages/core/src/profiler/profiler.ts:314

    Runtime profiler, event, sink, and runtime error APIs.

    ## Parameters

    ### error

    `unknown`

    ## Returns

    `RuntimeProfilerErrorPayload`
  </Accordion>

  <Accordion title="Core exports: functions/runtimeValueRef">
    @fentaris/core / runtimeValueRef

    > **runtimeValueRef**(`token`): `string`

    Defined in: packages/core/src/edge/runtimeInput.ts:73

    Extract the setup field name from a runtime value token.

    ## Parameters

    ### token

    `RuntimeValueToken`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/secretRefKey">
    @fentaris/core / secretRefKey

    > **secretRefKey**(`ref`, `scope`): `string`

    Defined in: packages/core/src/secrets/types.ts:104

    Stable key for comparing secret references.

    ## Parameters

    ### ref

    `string`

    ### scope

    `SecretScope`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/selectHighestMutualEdgeProtocolVersion">
    @fentaris/core / selectHighestMutualEdgeProtocolVersion

    > **selectHighestMutualEdgeProtocolVersion**(`peerVersions`, `supportedVersions?`): `EdgeProtocolVersion` | `undefined`

    Defined in: packages/core/src/edge/controlProtocol.ts:264

    Select the highest version supported by both peers.

    ## Parameters

    ### peerVersions

    readonly `number`\[]

    ### supportedVersions?

    readonly `EdgeProtocolVersion`\[] = `EDGE_SUPPORTED_PROTOCOL_VERSIONS`

    ## Returns

    `EdgeProtocolVersion` | `undefined`
  </Accordion>

  <Accordion title="Core exports: functions/sensitive">
    @fentaris/core / sensitive

    > **sensitive**(`metadata?`): `Pick`\<`ToolPermissionOptions`, `"sensitive"`>

    Defined in: packages/core/src/governance/governance.ts:464

    Permission helper for sensitive-operation metadata.

    ## Parameters

    ### metadata?

    `Record`\<`string`, `unknown`> = `{}`

    ## Returns

    `Pick`\<`ToolPermissionOptions`, `"sensitive"`>
  </Accordion>

  <Accordion title="Core exports: functions/serializeEdgePublicValue">
    @fentaris/core / serializeEdgePublicValue

    > **serializeEdgePublicValue**(`value`, `limits?`): `unknown`

    Defined in: packages/core/src/edge/observability.ts:128

    Redact and bound an untrusted public/diagnostic value before serialization.

    ## Parameters

    ### value

    `unknown`

    ### limits?

    `EdgeSerializationLimits` = `{}`

    ## Returns

    `unknown`
  </Accordion>

  <Accordion title="Core exports: functions/serializeInstallationRecipe">
    @fentaris/core / serializeInstallationRecipe

    > **serializeInstallationRecipe**(`recipe`): `string`

    Defined in: packages/core/src/edge/installation.ts:306

    Edge execution targets, runtime inputs, setup fields, launch recipes, and errors.

    ## Parameters

    ### recipe

    `InstallationRecipe`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/serializeLaunchRecipe">
    @fentaris/core / serializeLaunchRecipe

    > **serializeLaunchRecipe**(`recipe`): `string`

    Defined in: packages/core/src/edge/recipe.ts:108

    Serialize a recipe to a canonical JSON string.

    ## Parameters

    ### recipe

    `LaunchRecipe`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/serializeManifest">
    @fentaris/core / serializeManifest

    > **serializeManifest**(`manifest`): `string`

    Defined in: packages/core/src/secrets/manifest.ts:40

    Serialize a secrets manifest to JSON.

    ## Parameters

    ### manifest

    `SecretsManifest`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/startIntegratedEdgeControlPlane">
    @fentaris/core / startIntegratedEdgeControlPlane

    > **startIntegratedEdgeControlPlane**(`options`): `Promise`\<`IntegratedEdgeControlPlaneRuntime`>

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:107

    Open local authority state, authorization services, gateway, operator
    channel, and exposure routes for an enabled integrated control plane.

    ## Parameters

    ### options

    `IntegratedEdgeControlPlaneRuntimeOptions`

    ## Returns

    `Promise`\<`IntegratedEdgeControlPlaneRuntime`>
  </Accordion>

  <Accordion title="Core exports: functions/stdio">
    @fentaris/core / stdio

    > **stdio**(`options`): `StdioTransport`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:293

    Create a stdio upstream transport.

    ## Parameters

    ### options

    `StdioTransportOptions`

    ## Returns

    `StdioTransport`
  </Accordion>

  <Accordion title="Core exports: functions/streamableHttp">
    @fentaris/core / streamableHttp

    > **streamableHttp**(`options`): `StreamableHttpMcpTransport`

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:200

    Create a Streamable HTTP upstream transport.

    ## Parameters

    ### options

    `StreamableHttpMcpTransportOptions`

    ## Returns

    `StreamableHttpMcpTransport`
  </Accordion>

  <Accordion title="Core exports: functions/toCapabilityPermissions">
    @fentaris/core / toCapabilityPermissions

    > **toCapabilityPermissions**(`serverName`, `permissions`): `CapabilityPermission`\[]

    Defined in: packages/core/src/policy/policy.ts:164

    Return operation-based permissions adapted from tool permissions.

    ## Parameters

    ### serverName

    `string`

    ### permissions

    `ToolPermission`\[]

    ## Returns

    `CapabilityPermission`\[]
  </Accordion>

  <Accordion title="Core exports: functions/toCapabilityRequest">
    @fentaris/core / toCapabilityRequest

    > **toCapabilityRequest**(`request`): `CapabilityOperationRequest`

    Defined in: packages/core/src/policy/policy.ts:187

    Normalize a legacy tool-call request into a capability request.

    ## Parameters

    ### request

    `ToolCallRequest` | `CapabilityOperationRequest`

    ## Returns

    `CapabilityOperationRequest`
  </Accordion>

  <Accordion title="Core exports: functions/toProxyToolName">
    @fentaris/core / toProxyToolName

    > **toProxyToolName**(`serverName`, `toolName`): `string`

    Defined in: packages/core/src/naming/nameMapping.ts:28

    Combine server and tool names into a proxied tool name.

    ## Parameters

    ### serverName

    `string`

    ### toolName

    `string`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Core exports: functions/toRuntimeErrorPayload">
    @fentaris/core / toRuntimeErrorPayload

    > **toRuntimeErrorPayload**(`error`): `RuntimeProfilerErrorPayload`

    Defined in: packages/core/src/profiler/errors.ts:95

    Runtime profiler, event, sink, and runtime error APIs.

    ## Parameters

    ### error

    `unknown`

    ## Returns

    `RuntimeProfilerErrorPayload`
  </Accordion>

  <Accordion title="Core exports: functions/user">
    @fentaris/core / user

    > **user**(`id`, `metadata?`): `User`

    Defined in: packages/core/src/governance/governance.ts:339

    Helper to declare a user.

    ## Parameters

    ### id

    `string`

    ### metadata?

    `UserOptions` = `{}`

    ## Returns

    `User`
  </Accordion>

  <Accordion title="Core exports: functions/validateDeviceSelector">
    @fentaris/core / validateDeviceSelector

    > **validateDeviceSelector**(`selector`): `string`\[]

    Defined in: packages/core/src/edge/target.ts:214

    Validate a device selector structure and return collected diagnostic messages.

    ## Parameters

    ### selector

    `DeviceSelector`

    ## Returns

    `string`\[]
  </Accordion>

  <Accordion title="Core exports: functions/validateEdgeControlPlaneConfig">
    @fentaris/core / validateEdgeControlPlaneConfig

    > **validateEdgeControlPlaneConfig**(`config`, `options?`): `FentarisDiagnostic`\[]

    Defined in: packages/core/src/edge/integratedConfig.ts:320

    Validate integrated Edge control-plane configuration. Callers supply the MCP
    path and optional listener host so route conflicts and loopback origin rules
    can be evaluated before startup.

    ## Parameters

    ### config

    `EdgeControlPlaneConfig` | `undefined`

    ### options?

    #### authDir?

    `string`

    #### listenerHost?

    `string`

    #### mcpPath?

    `string`

    ## Returns

    `FentarisDiagnostic`\[]
  </Accordion>

  <Accordion title="Core exports: functions/validateEdgePresenceReport">
    @fentaris/core / validateEdgePresenceReport

    > **validateEdgePresenceReport**(`message`): `void`

    Defined in: packages/core/src/edge/controlProtocol.ts:288

    Validate bounded protocol-v2 observed facts and dynamic report fields.

    ## Parameters

    ### message

    `EdgePresenceReportMessage`

    ## Returns

    `void`
  </Accordion>

  <Accordion title="Core exports: functions/validateFentarisConfig">
    @fentaris/core / validateFentarisConfig

    > **validateFentarisConfig**(`config`, `options?`): `FentarisConfigValidationResult`

    Defined in: packages/core/src/config/validation.ts:44

    Validate Fentaris configuration and return structured diagnostics.

    ## Parameters

    ### config

    `McpProxyOptions`

    ### options?

    `FentarisConfigValidationOptions` = `{}`

    ## Returns

    `FentarisConfigValidationResult`
  </Accordion>

  <Accordion title="Core exports: functions/validateInstallationRecipe">
    @fentaris/core / validateInstallationRecipe

    > **validateInstallationRecipe**(`value`): `InstallationRecipe`

    Defined in: packages/core/src/edge/installation.ts:318

    Strictly validate immutable sources, bounded permissions, outputs, and digest.

    ## Parameters

    ### value

    `unknown`

    ## Returns

    `InstallationRecipe`
  </Accordion>

  <Accordion title="Core exports: functions/validateLaunchRecipe">
    @fentaris/core / validateLaunchRecipe

    > **validateLaunchRecipe**(`value`): `LaunchRecipe`

    Defined in: packages/core/src/edge/recipe.ts:124

    Validate an already-decoded launch recipe object.

    ## Parameters

    ### value

    `unknown`

    ## Returns

    `LaunchRecipe`
  </Accordion>

  <Accordion title="Core exports: functions/validateSetupSchema">
    @fentaris/core / validateSetupSchema

    > **validateSetupSchema**(`schema`): `SetupDiagnostic`\[]

    Defined in: packages/core/src/edge/setup.ts:284

    Validate a setup schema and return diagnostics. Rejects unsafe secret
    defaults, incompatible cloud-visible flags on sensitive fields, select
    fields without options, and duplicate field names (structurally impossible
    from `createSetupSchema`, possible when constructed by hand).

    ## Parameters

    ### schema

    `SetupSchema`

    ## Returns

    `SetupDiagnostic`\[]
  </Accordion>

  <Accordion title="Core exports: interfaces/ArchiveInstallationSource">
    @fentaris/core / ArchiveInstallationSource

    Defined in: packages/core/src/edge/installation.ts:39

    ## Properties

    ### credentialRef?

    > `readonly` `optional` **credentialRef?**: `string`

    Defined in: packages/core/src/edge/installation.ts:43

    ### integrity

    > `readonly` **integrity**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/installation.ts:42

    ### kind

    > `readonly` **kind**: `"archive"`

    Defined in: packages/core/src/edge/installation.ts:40

    ### maxBytes?

    > `readonly` `optional` **maxBytes?**: `number`

    Defined in: packages/core/src/edge/installation.ts:44

    ### url

    > `readonly` **url**: `string`

    Defined in: packages/core/src/edge/installation.ts:41
  </Accordion>

  <Accordion title="Core exports: interfaces/AttributedEdgeValue">
    @fentaris/core / AttributedEdgeValue

    Defined in: packages/core/src/edge/inventory.ts:18

    A value paired with its trusted source and capture time.

    ## Type Parameters

    ### T

    `T`

    ## Properties

    ### authority

    > `readonly` **authority**: `EdgeMetadataAuthority`

    Defined in: packages/core/src/edge/inventory.ts:20

    ### capturedAt

    > `readonly` **capturedAt**: `number`

    Defined in: packages/core/src/edge/inventory.ts:21

    ### value

    > `readonly` **value**: `T`

    Defined in: packages/core/src/edge/inventory.ts:19
  </Accordion>

  <Accordion title="Core exports: interfaces/AuthenticatedEdgeIdentity">
    @fentaris/core / AuthenticatedEdgeIdentity

    Defined in: packages/core/src/edge/gateway.ts:45

    Trusted identity returned after validating a device-bound credential/proof.

    ## Properties

    ### credentialId

    > `readonly` **credentialId**: `string`

    Defined in: packages/core/src/edge/gateway.ts:48

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/gateway.ts:47

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/gateway.ts:46
  </Accordion>

  <Accordion title="Core exports: interfaces/BinaryInstallationProvider">
    @fentaris/core / BinaryInstallationProvider

    Defined in: packages/core/src/edge/installation.ts:86

    ## Properties

    ### kind

    > `readonly` **kind**: `"binary"`

    Defined in: packages/core/src/edge/installation.ts:87

    ### source

    > `readonly` **source**: `ArchiveInstallationSource`

    Defined in: packages/core/src/edge/installation.ts:88
  </Accordion>

  <Accordion title="Core exports: interfaces/BooleanSetupField">
    @fentaris/core / BooleanSetupField

    Defined in: packages/core/src/edge/setup.ts:72

    Boolean field, with an optional safe default.

    ## Extends

    * `SetupFieldCommon`

    ## Properties

    ### cloudVisible?

    > `readonly` `optional` **cloudVisible?**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:42

    Whether the resolved value may be returned to the control plane. Defaults to
    `false` for sensitive local fields. Only non-sensitive fields may opt in.

    #### Inherited from

    `SetupFieldCommon.cloudVisible`

    ### default?

    > `readonly` `optional` **default?**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:74

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/edge/setup.ts:36

    Description for setup prompts. Must not contain resolved values.

    #### Inherited from

    `SetupFieldCommon.description`

    ### kind

    > `readonly` **kind**: `"boolean"`

    Defined in: packages/core/src/edge/setup.ts:73

    ### label?

    > `readonly` `optional` **label?**: `string`

    Defined in: packages/core/src/edge/setup.ts:34

    Human-readable label for setup prompts.

    #### Inherited from

    `SetupFieldCommon.label`

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/edge/setup.ts:30

    Field name; assigned from the setup schema object key.

    #### Inherited from

    `SetupFieldCommon.name`

    ### required

    > `readonly` **required**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:32

    Whether the field must be supplied. Defaults to `true`.

    #### Inherited from

    `SetupFieldCommon.required`
  </Accordion>

  <Accordion title="Core exports: interfaces/CloudExecutionTarget">
    @fentaris/core / CloudExecutionTarget

    Defined in: packages/core/src/edge/target.ts:130

    Cloud execution target: run the configured transport on the Fentaris host.

    ## Properties

    ### kind

    > `readonly` **kind**: `"cloud"`

    Defined in: packages/core/src/edge/target.ts:131
  </Accordion>

  <Accordion title="Core exports: interfaces/ContainerInstallationProvider">
    @fentaris/core / ContainerInstallationProvider

    Defined in: packages/core/src/edge/installation.ts:91

    ## Properties

    ### digest

    > `readonly` **digest**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/installation.ts:94

    ### image

    > `readonly` **image**: `string`

    Defined in: packages/core/src/edge/installation.ts:93

    ### kind

    > `readonly` **kind**: `"container"`

    Defined in: packages/core/src/edge/installation.ts:92

    ### runtime?

    > `readonly` `optional` **runtime?**: `"docker"` | `"podman"`

    Defined in: packages/core/src/edge/installation.ts:95
  </Accordion>

  <Accordion title="Core exports: interfaces/CustomInstallationProvider">
    @fentaris/core / CustomInstallationProvider

    Defined in: packages/core/src/edge/installation.ts:105

    ## Properties

    ### args?

    > `readonly` `optional` **args?**: readonly `string`\[]

    Defined in: packages/core/src/edge/installation.ts:110

    ### entrypoint

    > `readonly` **entrypoint**: `string`

    Defined in: packages/core/src/edge/installation.ts:108

    ### interpreter

    > `readonly` **interpreter**: `"python"` | `"executable"` | `"sh"` | `"bash"` | `"node"` | `"powershell"`

    Defined in: packages/core/src/edge/installation.ts:109

    ### kind

    > `readonly` **kind**: `"custom"`

    Defined in: packages/core/src/edge/installation.ts:106

    ### source

    > `readonly` **source**: `InstallationSource`

    Defined in: packages/core/src/edge/installation.ts:107
  </Accordion>

  <Accordion title="Core exports: interfaces/DeviceResolution">
    @fentaris/core / DeviceResolution

    Defined in: packages/core/src/edge/placement.ts:332

    A resolved eligible enrolled device.

    ## Properties

    ### alias?

    > `readonly` `optional` **alias?**: `string`

    Defined in: packages/core/src/edge/placement.ts:336

    Control-plane alias, when known.

    ### connectionGeneration?

    > `readonly` `optional` **connectionGeneration?**: `number`

    Defined in: packages/core/src/edge/placement.ts:338

    Active generation to pin after a current-state selection revalidation.

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/placement.ts:334

    Stable opaque edge node id backing the device key.

    ### selection?

    > `readonly` `optional` **selection?**: `EdgeSelectionExplanation`

    Defined in: packages/core/src/edge/placement.ts:340

    Redacted explanation when declarative selection chose the device.
  </Accordion>

  <Accordion title="Core exports: interfaces/DeviceResolver">
    @fentaris/core / DeviceResolver

    Defined in: packages/core/src/edge/placement.ts:353

    Control-plane interface that maps logical selectors onto enrolled devices.

    Implementations own device aliases, pool membership, subject grants, health,
    capacity, and default-device preferences. Each method resolves only devices
    eligible for the authenticated subject, tenant, target, deployment, and
    current connection state, returning `null` for "no eligible device" so
    fallback selectors can proceed.

    ## Methods

    ### resolveDeclarativeDevice()?

    > `optional` **resolveDeclarativeDevice**(`selection`, `context`): `Promise`\<`DeviceResolution` & `object` | `null`>

    Defined in: packages/core/src/edge/placement.ts:361

    Resolve typed requirements/preferences against the current authorized inventory.

    #### Parameters

    ##### selection

    `EdgeSelectionRequest`

    ##### context

    `DeviceResolverContext`

    #### Returns

    `Promise`\<`DeviceResolution` & `object` | `null`>

    ### resolveNamedAlias()

    > **resolveNamedAlias**(`alias`, `context`): `Promise`\<`DeviceResolution` | `null`>

    Defined in: packages/core/src/edge/placement.ts:370

    Resolve a control-plane named alias to a device.

    #### Parameters

    ##### alias

    `string`

    ##### context

    `DeviceResolverContext`

    #### Returns

    `Promise`\<`DeviceResolution` | `null`>

    ### resolvePool()

    > **resolvePool**(`pool`, `strategy`, `context`): `Promise`\<`DeviceResolution` | `null`>

    Defined in: packages/core/src/edge/placement.ts:372

    Resolve one eligible device from a shared pool using `strategy`.

    #### Parameters

    ##### pool

    `string`

    ##### strategy

    `TargetSelectionStrategy` | `undefined`

    ##### context

    `DeviceResolverContext`

    #### Returns

    `Promise`\<`DeviceResolution` | `null`>

    ### resolveSelectedDevice()?

    > `optional` **resolveSelectedDevice**(`edgeNodeId`, `inventoryVersion`, `context`): `Promise`\<`DeviceResolution` & `object` | `null`>

    Defined in: packages/core/src/edge/placement.ts:355

    Revalidate and resolve a durable pre-pin selection by opaque node id.

    #### Parameters

    ##### edgeNodeId

    `string`

    ##### inventoryVersion

    `number`

    ##### context

    `DeviceResolverContext`

    #### Returns

    `Promise`\<`DeviceResolution` & `object` | `null`>

    ### resolveSessionDevice()?

    > `optional` **resolveSessionDevice**(`context`): `Promise`\<`DeviceResolution` | `null`>

    Defined in: packages/core/src/edge/placement.ts:366

    Resolve the device requested during downstream session establishment.

    #### Parameters

    ##### context

    `DeviceResolverContext`

    #### Returns

    `Promise`\<`DeviceResolution` | `null`>

    ### resolveUserDefaultDevice()?

    > `optional` **resolveUserDefaultDevice**(`context`): `Promise`\<`DeviceResolution` | `null`>

    Defined in: packages/core/src/edge/placement.ts:368

    Resolve the subject's configured default device.

    #### Parameters

    ##### context

    `DeviceResolverContext`

    #### Returns

    `Promise`\<`DeviceResolution` | `null`>
  </Accordion>

  <Accordion title="Core exports: interfaces/DeviceResolverContext">
    @fentaris/core / DeviceResolverContext

    Defined in: packages/core/src/edge/placement.ts:316

    Context passed to a DeviceResolver when resolving a selector.

    Carries only non-sensitive routing metadata. Physical device identities are
    never embedded in application code; the control plane maps the logical
    selector onto an enrolled device.

    ## Properties

    ### declarativeSelection?

    > `readonly` `optional` **declarativeSelection?**: `EdgeSelectionRequest`

    Defined in: packages/core/src/edge/placement.ts:328

    Optional typed declarative selection supplied for this first pin.

    ### requestedDeviceId?

    > `readonly` `optional` **requestedDeviceId?**: `string`

    Defined in: packages/core/src/edge/placement.ts:324

    Device id requested during downstream session establishment, if any.

    ### strategy?

    > `readonly` `optional` **strategy?**: `TargetSelectionStrategy`

    Defined in: packages/core/src/edge/placement.ts:326

    Pool selection strategy declared on the target, if any.

    ### subjectId?

    > `readonly` `optional` **subjectId?**: `string`

    Defined in: packages/core/src/edge/placement.ts:318

    Authenticated subject id, if known.

    ### targetName

    > `readonly` **targetName**: `string`

    Defined in: packages/core/src/edge/placement.ts:322

    Target name being resolved.

    ### tenantId?

    > `readonly` `optional` **tenantId?**: `string`

    Defined in: packages/core/src/edge/placement.ts:320

    Tenant id, if known.
  </Accordion>

  <Accordion title="Core exports: interfaces/DeviceSelector">
    @fentaris/core / DeviceSelector

    Defined in: packages/core/src/edge/target.ts:43

    A serializable, composable device selector. Selector instances carry an `or`
    method on the prototype (not serialized) but expose only data fields through
    `JSON.stringify`, so they remain plain-data across the control-plane boundary.

    ## Properties

    ### alias?

    > `readonly` `optional` **alias?**: `string`

    Defined in: packages/core/src/edge/target.ts:46

    Alias for a `named` selector.

    ### pool?

    > `readonly` `optional` **pool?**: `string`

    Defined in: packages/core/src/edge/target.ts:48

    Pool name for a `pool` selector.

    ### selectors?

    > `readonly` `optional` **selectors?**: readonly `DeviceSelector`\[]

    Defined in: packages/core/src/edge/target.ts:52

    Ordered selectors for a `fallback` selector; first eligible wins.

    ### strategy?

    > `readonly` `optional` **strategy?**: `TargetSelectionStrategy`

    Defined in: packages/core/src/edge/target.ts:50

    Selection strategy for a `pool` selector.

    ### type

    > `readonly` **type**: `DeviceSelectorType`

    Defined in: packages/core/src/edge/target.ts:44
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeAdapterDiagnostics">
    @fentaris/core / EdgeAdapterDiagnostics

    Defined in: packages/core/src/edge/inventory.ts:161

    Diagnostics every replaceable Edge adapter exposes.

    ## Properties

    ### adapter

    > `readonly` **adapter**: `string`

    Defined in: packages/core/src/edge/inventory.ts:162

    ### durable

    > `readonly` **durable**: `boolean`

    Defined in: packages/core/src/edge/inventory.ts:163

    ### multiInstance

    > `readonly` **multiInstance**: `boolean`

    Defined in: packages/core/src/edge/inventory.ts:164

    ### productionReady

    > `readonly` **productionReady**: `boolean`

    Defined in: packages/core/src/edge/inventory.ts:165

    ### warnings

    > `readonly` **warnings**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventory.ts:166
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeAggregateApprovalContext">
    @fentaris/core / EdgeAggregateApprovalContext

    Defined in: packages/core/src/edge/fanout.ts:59

    ## Properties

    ### argumentSummary

    > `readonly` **argumentSummary**: `object`

    Defined in: packages/core/src/edge/fanout.ts:61

    #### bytes

    > `readonly` **bytes**: `number`

    #### keys

    > `readonly` **keys**: readonly `string`\[]

    ### concurrency

    > `readonly` **concurrency**: `number`

    Defined in: packages/core/src/edge/fanout.ts:64

    ### deadlineMs

    > `readonly` **deadlineMs**: `number`

    Defined in: packages/core/src/edge/fanout.ts:65

    ### devices

    > `readonly` **devices**: readonly `EdgePublicDeviceRef`\[]

    Defined in: packages/core/src/edge/fanout.ts:62

    ### failurePolicy

    > `readonly` **failurePolicy**: `"collect"` | `"fail-fast"`

    Defined in: packages/core/src/edge/fanout.ts:63

    ### tool

    > `readonly` **tool**: `string`

    Defined in: packages/core/src/edge/fanout.ts:60
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeApprovalService">
    @fentaris/core / EdgeApprovalService

    Defined in: packages/core/src/edge/integratedServices.ts:78

    Operator approval service.

    ## Methods

    ### approve()

    > **approve**(`userCode`, `decision`): `Promise`\<`EdgeAuthorizationSession`>

    Defined in: packages/core/src/edge/integratedServices.ts:79

    #### Parameters

    ##### userCode

    `string`

    ##### decision

    `EdgeDeviceApprovalDecision`

    #### Returns

    `Promise`\<`EdgeAuthorizationSession`>

    ### deny()

    > **deny**(`userCode`, `decision`): `Promise`\<`EdgeAuthorizationSession`>

    Defined in: packages/core/src/edge/integratedServices.ts:80

    #### Parameters

    ##### userCode

    `string`

    ##### decision

    `Omit`\<`EdgeDeviceApprovalDecision`, `"subjectId"`> & `object`

    #### Returns

    `Promise`\<`EdgeAuthorizationSession`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeAssignmentResolver">
    @fentaris/core / EdgeAssignmentResolver

    Defined in: packages/core/src/edge/integratedConfig.ts:97

    Optional managed assignment resolver for subjects that cannot be enumerated
    statically from application configuration.

    ## Properties

    ### diagnostics?

    > `readonly` `optional` **diagnostics?**: `EdgeAdapterDiagnostics`

    Defined in: packages/core/src/edge/integratedConfig.ts:98

    ## Methods

    ### resolveEligibleDevices()

    > **resolveEligibleDevices**(`input`): `Promise`\<readonly `string`\[]>

    Defined in: packages/core/src/edge/integratedConfig.ts:99

    #### Parameters

    ##### input

    ###### deploymentId

    `string`

    ###### serverName

    `string`

    ###### subjectId

    `string`

    ###### tenantId

    `string`

    #### Returns

    `Promise`\<readonly `string`\[]>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeCapabilityCacheStore">
    @fentaris/core / EdgeCapabilityCacheStore

    Defined in: packages/core/src/edge/capabilityCache.ts:24

    ## Methods

    ### delete()

    > **delete**(`tenantId`, `deploymentId`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/capabilityCache.ts:27

    #### Parameters

    ##### tenantId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`void`>

    ### get()

    > **get**(`tenantId`, `deploymentId`): `Promise`\<`EdgeCapabilityManifest` | `undefined`>

    Defined in: packages/core/src/edge/capabilityCache.ts:25

    #### Parameters

    ##### tenantId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`EdgeCapabilityManifest` | `undefined`>

    ### put()

    > **put**(`manifest`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/capabilityCache.ts:26

    #### Parameters

    ##### manifest

    `EdgeCapabilityManifest`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeCapabilityManifest">
    @fentaris/core / EdgeCapabilityManifest

    Defined in: packages/core/src/edge/capabilityCache.ts:10

    ## Properties

    ### capturedAt

    > `readonly` **capturedAt**: `number`

    Defined in: packages/core/src/edge/capabilityCache.ts:16

    ### connectionGeneration?

    > `readonly` `optional` **connectionGeneration?**: `number`

    Defined in: packages/core/src/edge/capabilityCache.ts:13

    ### deploymentId

    > `readonly` **deploymentId**: `string`

    Defined in: packages/core/src/edge/capabilityCache.ts:14

    ### edgeNodeId?

    > `readonly` `optional` **edgeNodeId?**: `string`

    Defined in: packages/core/src/edge/capabilityCache.ts:12

    ### prompts

    > `readonly` **prompts**: `object`\[]

    Defined in: packages/core/src/edge/capabilityCache.ts:20

    #### \_meta?

    > `optional` **\_meta?**: `object`

    ##### Index Signature

    \[`key`: `string`]: `unknown`

    #### arguments?

    > `optional` **arguments?**: `object`\[]

    #### description?

    > `optional` **description?**: `string`

    #### icons?

    > `optional` **icons?**: `object`\[]

    #### name

    > **name**: `string`

    #### title?

    > `optional` **title?**: `string`

    ### recipeDigest

    > `readonly` **recipeDigest**: `string`

    Defined in: packages/core/src/edge/capabilityCache.ts:15

    ### resources

    > `readonly` **resources**: `object`\[]

    Defined in: packages/core/src/edge/capabilityCache.ts:18

    #### \_meta?

    > `optional` **\_meta?**: `object`

    ##### Index Signature

    \[`key`: `string`]: `unknown`

    #### annotations?

    > `optional` **annotations?**: `object`

    ##### annotations.audience?

    > `optional` **audience?**: (`"user"` | `"assistant"`)\[]

    ##### annotations.lastModified?

    > `optional` **lastModified?**: `string`

    ##### annotations.priority?

    > `optional` **priority?**: `number`

    #### description?

    > `optional` **description?**: `string`

    #### icons?

    > `optional` **icons?**: `object`\[]

    #### mimeType?

    > `optional` **mimeType?**: `string`

    #### name

    > **name**: `string`

    #### size?

    > `optional` **size?**: `number`

    #### title?

    > `optional` **title?**: `string`

    #### uri

    > **uri**: `string`

    ### resourceTemplates

    > `readonly` **resourceTemplates**: `object`\[]

    Defined in: packages/core/src/edge/capabilityCache.ts:19

    #### \_meta?

    > `optional` **\_meta?**: `object`

    ##### Index Signature

    \[`key`: `string`]: `unknown`

    #### annotations?

    > `optional` **annotations?**: `object`

    ##### annotations.audience?

    > `optional` **audience?**: (`"user"` | `"assistant"`)\[]

    ##### annotations.lastModified?

    > `optional` **lastModified?**: `string`

    ##### annotations.priority?

    > `optional` **priority?**: `number`

    #### description?

    > `optional` **description?**: `string`

    #### icons?

    > `optional` **icons?**: `object`\[]

    #### mimeType?

    > `optional` **mimeType?**: `string`

    #### name

    > **name**: `string`

    #### title?

    > `optional` **title?**: `string`

    #### uriTemplate

    > **uriTemplate**: `string`

    ### supportsCompletion

    > `readonly` **supportsCompletion**: `boolean`

    Defined in: packages/core/src/edge/capabilityCache.ts:21

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/capabilityCache.ts:11

    ### tools

    > `readonly` **tools**: `object`\[]

    Defined in: packages/core/src/edge/capabilityCache.ts:17

    #### \_meta?

    > `optional` **\_meta?**: `object`

    ##### Index Signature

    \[`key`: `string`]: `unknown`

    #### annotations?

    > `optional` **annotations?**: `object`

    ##### annotations.destructiveHint?

    > `optional` **destructiveHint?**: `boolean`

    ##### annotations.idempotentHint?

    > `optional` **idempotentHint?**: `boolean`

    ##### annotations.openWorldHint?

    > `optional` **openWorldHint?**: `boolean`

    ##### annotations.readOnlyHint?

    > `optional` **readOnlyHint?**: `boolean`

    ##### annotations.title?

    > `optional` **title?**: `string`

    #### description?

    > `optional` **description?**: `string`

    #### execution?

    > `optional` **execution?**: `object`

    ##### execution.taskSupport?

    > `optional` **taskSupport?**: `"optional"` | `"required"` | `"forbidden"`

    #### icons?

    > `optional` **icons?**: `object`\[]

    #### inputSchema

    > **inputSchema**: `object`

    ##### Index Signature

    \[`key`: `string`]: `unknown`

    ##### inputSchema.properties?

    > `optional` **properties?**: `object`

    ###### Index Signature

    \[`key`: `string`]: `object`

    ##### inputSchema.required?

    > `optional` **required?**: `string`\[]

    ##### inputSchema.type

    > **type**: `"object"`

    #### name

    > **name**: `string`

    #### outputSchema?

    > `optional` **outputSchema?**: `object`

    ##### Index Signature

    \[`key`: `string`]: `unknown`

    ##### outputSchema.properties?

    > `optional` **properties?**: `object`

    ###### Index Signature

    \[`key`: `string`]: `object`

    ##### outputSchema.required?

    > `optional` **required?**: `string`\[]

    ##### outputSchema.type

    > **type**: `"object"`

    #### title?

    > `optional` **title?**: `string`
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeCapabilityManifestMessage">
    @fentaris/core / EdgeCapabilityManifestMessage

    Defined in: packages/core/src/edge/controlProtocol.ts:184

    Common trusted routing claims carried by edge control messages.

    ## Extends

    * `EdgeProtocolClaims`

    ## Properties

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:36

    #### Inherited from

    `EdgeProtocolClaims`.`connectionGeneration`

    ### deploymentId

    > `readonly` **deploymentId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:187

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:35

    #### Inherited from

    `EdgeProtocolClaims`.`edgeNodeId`

    ### kind

    > `readonly` **kind**: `"edge.capability-manifest"`

    Defined in: packages/core/src/edge/controlProtocol.ts:186

    ### prompts

    > `readonly` **prompts**: readonly `unknown`\[]

    Defined in: packages/core/src/edge/controlProtocol.ts:192

    ### recipeDigest

    > `readonly` **recipeDigest**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:188

    ### resources

    > `readonly` **resources**: readonly `unknown`\[]

    Defined in: packages/core/src/edge/controlProtocol.ts:190

    ### resourceTemplates

    > `readonly` **resourceTemplates**: readonly `unknown`\[]

    Defined in: packages/core/src/edge/controlProtocol.ts:191

    ### supportsCompletion

    > `readonly` **supportsCompletion**: `boolean`

    Defined in: packages/core/src/edge/controlProtocol.ts:193

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:34

    #### Inherited from

    `EdgeProtocolClaims`.`tenantId`

    ### tools

    > `readonly` **tools**: readonly `unknown`\[]

    Defined in: packages/core/src/edge/controlProtocol.ts:189

    ### version

    > `readonly` **version**: `EdgeProtocolVersion`

    Defined in: packages/core/src/edge/controlProtocol.ts:185
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeCapabilityManifestStore">
    @fentaris/core / EdgeCapabilityManifestStore

    Defined in: packages/core/src/edge/controlPlane.ts:127

    Replaceable capability-manifest cache contract.

    ## Methods

    ### delete()

    > **delete**(`tenantId`, `edgeNodeId`, `deploymentId`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:130

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`void`>

    ### get()

    > **get**(`tenantId`, `edgeNodeId`, `deploymentId`): `Promise`\<`EdgeCapabilityManifestMessage` | `undefined`>

    Defined in: packages/core/src/edge/controlPlane.ts:128

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`EdgeCapabilityManifestMessage` | `undefined`>

    ### put()

    > **put**(`manifest`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:129

    #### Parameters

    ##### manifest

    `EdgeCapabilityManifestMessage`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeCapacitySnapshot">
    @fentaris/core / EdgeCapacitySnapshot

    Defined in: packages/core/src/edge/inventory.ts:63

    Dynamic execution capacity reported by an authenticated Edge agent.

    ## Properties

    ### available

    > `readonly` **available**: `number`

    Defined in: packages/core/src/edge/inventory.ts:65

    ### maxConcurrent

    > `readonly` **maxConcurrent**: `number`

    Defined in: packages/core/src/edge/inventory.ts:64

    ### reportedAt

    > `readonly` **reportedAt**: `number`

    Defined in: packages/core/src/edge/inventory.ts:66
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeChannelBroker">
    @fentaris/core / EdgeChannelBroker

    Defined in: packages/core/src/edge/controlPlane.ts:152

    Replaceable distributed edge channel broker contract.

    ## Properties

    ### diagnostics?

    > `readonly` `optional` **diagnostics?**: `EdgeAdapterDiagnostics`

    Defined in: packages/core/src/edge/controlPlane.ts:153

    ## Methods

    ### publish()

    > **publish**(`channel`, `message`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:154

    #### Parameters

    ##### channel

    `string`

    ##### message

    `string`

    #### Returns

    `Promise`\<`void`>

    ### subscribe()

    > **subscribe**(`channel`, `handler`): () => `void`

    Defined in: packages/core/src/edge/controlPlane.ts:155

    #### Parameters

    ##### channel

    `string`

    ##### handler

    (`message`) => `void`

    #### Returns

    () => `void`
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeChildBinding">
    @fentaris/core / EdgeChildBinding

    Defined in: packages/core/src/edge/inventory.ts:146

    Isolated placement binding for an explicit orchestration child.

    ## Properties

    ### childBindingId

    > `readonly` **childBindingId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:147

    ### childRequestId

    > `readonly` **childRequestId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:150

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/inventory.ts:155

    ### createdAt

    > `readonly` **createdAt**: `number`

    Defined in: packages/core/src/edge/inventory.ts:156

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:154

    ### expiresAt

    > `readonly` **expiresAt**: `number`

    Defined in: packages/core/src/edge/inventory.ts:157

    ### parentRequestId

    > `readonly` **parentRequestId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:149

    ### parentSessionId

    > `readonly` **parentSessionId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:148

    ### subjectId

    > `readonly` **subjectId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:152

    ### targetName

    > `readonly` **targetName**: `string`

    Defined in: packages/core/src/edge/inventory.ts:153

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:151
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeChildBindingAllocation">
    @fentaris/core / EdgeChildBindingAllocation

    Defined in: packages/core/src/edge/sessionSelection.ts:86

    ## Properties

    ### childRequestId?

    > `readonly` `optional` **childRequestId?**: `string`

    Defined in: packages/core/src/edge/sessionSelection.ts:95

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/sessionSelection.ts:93

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/sessionSelection.ts:92

    ### parentRequestId

    > `readonly` **parentRequestId**: `string`

    Defined in: packages/core/src/edge/sessionSelection.ts:88

    ### parentSessionId

    > `readonly` **parentSessionId**: `string`

    Defined in: packages/core/src/edge/sessionSelection.ts:87

    ### subjectId

    > `readonly` **subjectId**: `string`

    Defined in: packages/core/src/edge/sessionSelection.ts:90

    ### targetName

    > `readonly` **targetName**: `string`

    Defined in: packages/core/src/edge/sessionSelection.ts:91

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/sessionSelection.ts:89

    ### ttlMs

    > `readonly` **ttlMs**: `number`

    Defined in: packages/core/src/edge/sessionSelection.ts:94
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeChildBindingCleanup">
    @fentaris/core / EdgeChildBindingCleanup

    Defined in: packages/core/src/edge/sessionSelection.ts:98

    ## Methods

    ### cleanup()

    > **cleanup**(`binding`, `reason`): `void` | `Promise`\<`void`>

    Defined in: packages/core/src/edge/sessionSelection.ts:99

    #### Parameters

    ##### binding

    `EdgeChildBinding`

    ##### reason

    `EdgeChildBindingTerminalReason`

    #### Returns

    `void` | `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeChildBindingManagerOptions">
    @fentaris/core / EdgeChildBindingManagerOptions

    Defined in: packages/core/src/edge/sessionSelection.ts:102

    ## Properties

    ### cleanup?

    > `readonly` `optional` **cleanup?**: `EdgeChildBindingCleanup`

    Defined in: packages/core/src/edge/sessionSelection.ts:104

    ### createId?

    > `readonly` `optional` **createId?**: () => `string`

    Defined in: packages/core/src/edge/sessionSelection.ts:106

    #### Returns

    `string`

    ### now?

    > `readonly` `optional` **now?**: () => `number`

    Defined in: packages/core/src/edge/sessionSelection.ts:105

    #### Returns

    `number`

    ### store

    > `readonly` **store**: `EdgeChildBindingStore`

    Defined in: packages/core/src/edge/sessionSelection.ts:103
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeChildBindingStore">
    @fentaris/core / EdgeChildBindingStore

    Defined in: packages/core/src/edge/inventory.ts:210

    Replaceable isolated child-binding store.

    ## Properties

    ### diagnostics

    > `readonly` **diagnostics**: `EdgeAdapterDiagnostics`

    Defined in: packages/core/src/edge/inventory.ts:211

    ## Methods

    ### allocate()

    > **allocate**(`input`): `Promise`\<`EdgeChildBinding`>

    Defined in: packages/core/src/edge/inventory.ts:212

    #### Parameters

    ##### input

    `Omit`\<`EdgeChildBinding`, `"childBindingId"`> & `object`

    #### Returns

    `Promise`\<`EdgeChildBinding`>

    ### delete()

    > **delete**(`childBindingId`): `Promise`\<`EdgeChildBinding` | `undefined`>

    Defined in: packages/core/src/edge/inventory.ts:214

    #### Parameters

    ##### childBindingId

    `string`

    #### Returns

    `Promise`\<`EdgeChildBinding` | `undefined`>

    ### deleteParent()

    > **deleteParent**(`parentSessionId`, `parentRequestId?`): `Promise`\<readonly `EdgeChildBinding`\[]>

    Defined in: packages/core/src/edge/inventory.ts:215

    #### Parameters

    ##### parentSessionId

    `string`

    ##### parentRequestId?

    `string`

    #### Returns

    `Promise`\<readonly `EdgeChildBinding`\[]>

    ### get()

    > **get**(`childBindingId`): `Promise`\<`EdgeChildBinding` | `undefined`>

    Defined in: packages/core/src/edge/inventory.ts:213

    #### Parameters

    ##### childBindingId

    `string`

    #### Returns

    `Promise`\<`EdgeChildBinding` | `undefined`>

    ### purgeExpired()

    > **purgeExpired**(`evaluatedAt`): `Promise`\<readonly `EdgeChildBinding`\[]>

    Defined in: packages/core/src/edge/inventory.ts:216

    #### Parameters

    ##### evaluatedAt

    `number`

    #### Returns

    `Promise`\<readonly `EdgeChildBinding`\[]>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeConnectionRecord">
    @fentaris/core / EdgeConnectionRecord

    Defined in: packages/core/src/edge/controlPlane.ts:77

    Authenticated active edge connection record.

    ## Properties

    ### connectedAt

    > `readonly` **connectedAt**: `number`

    Defined in: packages/core/src/edge/controlPlane.ts:83

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/controlPlane.ts:81

    ### connectionId

    > `readonly` **connectionId**: `string`

    Defined in: packages/core/src/edge/controlPlane.ts:80

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/controlPlane.ts:79

    ### lastHeartbeatAt

    > `readonly` **lastHeartbeatAt**: `number`

    Defined in: packages/core/src/edge/controlPlane.ts:84

    ### protocolVersion

    > `readonly` **protocolVersion**: `number`

    Defined in: packages/core/src/edge/controlPlane.ts:82

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/controlPlane.ts:78
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeConnectionStore">
    @fentaris/core / EdgeConnectionStore

    Defined in: packages/core/src/edge/controlPlane.ts:134

    Replaceable active-connection store contract.

    ## Methods

    ### bind()

    > **bind**(`connection`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:136

    #### Parameters

    ##### connection

    `EdgeConnectionRecord`

    #### Returns

    `Promise`\<`void`>

    ### get()

    > **get**(`tenantId`, `edgeNodeId`): `Promise`\<`EdgeConnectionRecord` | `undefined`>

    Defined in: packages/core/src/edge/controlPlane.ts:135

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`EdgeConnectionRecord` | `undefined`>

    ### heartbeat()

    > **heartbeat**(`tenantId`, `edgeNodeId`, `generation`, `at`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:137

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### generation

    `number`

    ##### at

    `number`

    #### Returns

    `Promise`\<`void`>

    ### remove()

    > **remove**(`tenantId`, `edgeNodeId`, `generation`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:138

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### generation

    `number`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeConnectionTerminator">
    @fentaris/core / EdgeConnectionTerminator

    Defined in: packages/core/src/edge/controlPlane.ts:142

    Control path that terminates the authenticated channel for one generation.

    ## Methods

    ### disconnect()

    > **disconnect**(`tenantId`, `edgeNodeId`, `connectionGeneration`, `reason`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:143

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### connectionGeneration

    `number`

    ##### reason

    `"revoked"` | `"operator-disconnect"`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeControlDeviceSummary">
    @fentaris/core / EdgeControlDeviceSummary

    Defined in: packages/core/src/edge/controlProvider.ts:28

    ## Properties

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/edge/controlProvider.ts:30

    ### device

    > `readonly` **device**: `object`

    Defined in: packages/core/src/edge/controlProvider.ts:29

    #### inventoryVersion

    > `readonly` **inventoryVersion**: `number`

    #### name

    > `readonly` **name**: `string`

    ### executionFeatures?

    > `readonly` `optional` **executionFeatures?**: readonly `string`\[]

    Defined in: packages/core/src/edge/controlProvider.ts:35

    ### heartbeatFresh

    > `readonly` **heartbeatFresh**: `boolean`

    Defined in: packages/core/src/edge/controlProvider.ts:32

    ### metadata?

    > `readonly` `optional` **metadata?**: `object`

    Defined in: packages/core/src/edge/controlProvider.ts:38

    #### agent

    > `readonly` **agent**: readonly `string`\[]

    #### controlPlane

    > `readonly` **controlPlane**: readonly `string`\[]

    #### user

    > `readonly` **user**: readonly `string`\[]

    ### platform?

    > `readonly` `optional` **platform?**: `string`

    Defined in: packages/core/src/edge/controlProvider.ts:34

    ### pools?

    > `readonly` `optional` **pools?**: readonly `string`\[]

    Defined in: packages/core/src/edge/controlProvider.ts:36

    ### readiness?

    > `readonly` `optional` **readiness?**: readonly `EdgePublicReadinessSummary`\[]

    Defined in: packages/core/src/edge/controlProvider.ts:37

    ### status

    > `readonly` **status**: `string`

    Defined in: packages/core/src/edge/controlProvider.ts:31

    ### tags?

    > `readonly` `optional` **tags?**: readonly `string`\[]

    Defined in: packages/core/src/edge/controlProvider.ts:33

    ### warnings

    > `readonly` **warnings**: readonly `string`\[]

    Defined in: packages/core/src/edge/controlProvider.ts:43
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeControlGetResult">
    @fentaris/core / EdgeControlGetResult

    Defined in: packages/core/src/edge/controlProvider.ts:46

    ## Properties

    ### device

    > `readonly` **device**: `EdgeControlDeviceSummary`

    Defined in: packages/core/src/edge/controlProvider.ts:47

    ### nextActions

    > `readonly` **nextActions**: readonly `string`\[]

    Defined in: packages/core/src/edge/controlProvider.ts:48
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeControlInvocationRequest">
    @fentaris/core / EdgeControlInvocationRequest

    Defined in: packages/core/src/edge/controlProvider.ts:59

    ## Properties

    ### arguments

    > `readonly` **arguments**: `Readonly`\<`Record`\<`string`, `unknown`>>

    Defined in: packages/core/src/edge/controlProvider.ts:61

    ### context

    > `readonly` **context**: `ProxyContext`

    Defined in: packages/core/src/edge/controlProvider.ts:60
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeControlInvoker">
    @fentaris/core / EdgeControlInvoker

    Defined in: packages/core/src/edge/controlProvider.ts:64

    ## Methods

    ### call()

    > **call**(`request`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/edge/controlProvider.ts:65

    #### Parameters

    ##### request

    `EdgeControlInvocationRequest`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    ### callMany()

    > **callMany**(`request`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/edge/controlProvider.ts:66

    #### Parameters

    ##### request

    `EdgeControlInvocationRequest`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeControlListResult">
    @fentaris/core / EdgeControlListResult

    Defined in: packages/core/src/edge/controlProvider.ts:21

    ## Properties

    ### devices

    > `readonly` **devices**: readonly `EdgeControlDeviceSummary`\[]

    Defined in: packages/core/src/edge/controlProvider.ts:22

    ### nextActions

    > `readonly` **nextActions**: readonly `string`\[]

    Defined in: packages/core/src/edge/controlProvider.ts:25

    ### nextCursor?

    > `readonly` `optional` **nextCursor?**: `string`

    Defined in: packages/core/src/edge/controlProvider.ts:23

    ### warnings

    > `readonly` **warnings**: readonly `string`\[]

    Defined in: packages/core/src/edge/controlProvider.ts:24
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeControlPlaneService">
    @fentaris/core / EdgeControlPlaneService

    Defined in: packages/core/src/edge/management.ts:65

    Replaceable control-plane service used by CLI and Edge Control providers.

    ## Methods

    ### disconnect()

    > **disconnect**(`context`, `deviceName`): `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    Defined in: packages/core/src/edge/management.ts:74

    #### Parameters

    ##### context

    `EdgeManagementContext`

    ##### deviceName

    `string`

    #### Returns

    `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    ### get()

    > **get**(`context`, `deviceName`): `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    Defined in: packages/core/src/edge/management.ts:73

    #### Parameters

    ##### context

    `EdgeManagementContext`

    ##### deviceName

    `string`

    #### Returns

    `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    ### join()

    > **join**(`request`): `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    Defined in: packages/core/src/edge/management.ts:66

    #### Parameters

    ##### request

    `EdgeJoinRequest`

    #### Returns

    `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    ### list()

    > **list**(`context`, `options?`): `Promise`\<`EdgeManagementPage`\<`EdgeManagedDeviceView`>>

    Defined in: packages/core/src/edge/management.ts:72

    #### Parameters

    ##### context

    `EdgeManagementContext`

    ##### options?

    `EdgeInventoryListOptions`

    #### Returns

    `Promise`\<`EdgeManagementPage`\<`EdgeManagedDeviceView`>>

    ### revoke()

    > **revoke**(`context`, `deviceName`): `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    Defined in: packages/core/src/edge/management.ts:75

    #### Parameters

    ##### context

    `EdgeManagementContext`

    ##### deviceName

    `string`

    #### Returns

    `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    ### update()

    > **update**(`context`, `deviceName`, `update`): `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>

    Defined in: packages/core/src/edge/management.ts:67

    #### Parameters

    ##### context

    `EdgeManagementContext`

    ##### deviceName

    `string`

    ##### update

    `EdgeInventoryUpdate`

    #### Returns

    `Promise`\<`EdgeManagementResult`\<`EdgeManagedDeviceView`>>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeControlProviderOptions">
    @fentaris/core / EdgeControlProviderOptions

    Defined in: packages/core/src/edge/controlProvider.ts:69

    ## Properties

    ### approveOrchestration?

    > `readonly` `optional` **approveOrchestration?**: (`approval`, `context`) => `boolean` | `Promise`\<`boolean`>

    Defined in: packages/core/src/edge/controlProvider.ts:75

    #### Parameters

    ##### approval

    `EdgeAggregateApprovalContext`

    ##### context

    `ProxyContext`

    #### Returns

    `boolean` | `Promise`\<`boolean`>

    ### defaultTargetName?

    > `readonly` `optional` **defaultTargetName?**: `string`

    Defined in: packages/core/src/edge/controlProvider.ts:73

    ### inventory

    > `readonly` **inventory**: `EdgeInventoryService`

    Defined in: packages/core/src/edge/controlProvider.ts:70

    ### invoker?

    > `readonly` `optional` **invoker?**: `EdgeControlInvoker`

    Defined in: packages/core/src/edge/controlProvider.ts:72

    ### limits?

    > `readonly` `optional` **limits?**: `Partial`\<`EdgeOrchestrationLimits`>

    Defined in: packages/core/src/edge/controlProvider.ts:74

    ### selections

    > `readonly` **selections**: `EdgeSessionSelectionService`

    Defined in: packages/core/src/edge/controlProvider.ts:71
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeControlSelectResult">
    @fentaris/core / EdgeControlSelectResult

    Defined in: packages/core/src/edge/controlProvider.ts:51

    ## Properties

    ### device

    > `readonly` **device**: `object`

    Defined in: packages/core/src/edge/controlProvider.ts:53

    #### inventoryVersion

    > `readonly` **inventoryVersion**: `number`

    #### name

    > `readonly` **name**: `string`

    ### expiresAt

    > `readonly` **expiresAt**: `number`

    Defined in: packages/core/src/edge/controlProvider.ts:54

    ### explanation?

    > `readonly` `optional` **explanation?**: `unknown`

    Defined in: packages/core/src/edge/controlProvider.ts:55

    ### nextActions

    > `readonly` **nextActions**: readonly `string`\[]

    Defined in: packages/core/src/edge/controlProvider.ts:56

    ### target

    > `readonly` **target**: `string`

    Defined in: packages/core/src/edge/controlProvider.ts:52
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeDeploymentReadiness">
    @fentaris/core / EdgeDeploymentReadiness

    Defined in: packages/core/src/edge/inventory.ts:112

    Per-device deployment readiness without grant values or local paths.

    ## Properties

    ### attemptId?

    > `readonly` `optional` **attemptId?**: `string`

    Defined in: packages/core/src/edge/inventory.ts:126

    ### connectionGeneration?

    > `readonly` `optional` **connectionGeneration?**: `number`

    Defined in: packages/core/src/edge/inventory.ts:116

    ### credentialId?

    > `readonly` `optional` **credentialId?**: `string`

    Defined in: packages/core/src/edge/inventory.ts:115

    ### deploymentId

    > `readonly` **deploymentId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:117

    ### desiredVersion?

    > `readonly` `optional` **desiredVersion?**: `number`

    Defined in: packages/core/src/edge/inventory.ts:120

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:114

    ### expiresAt?

    > `readonly` `optional` **expiresAt?**: `number`

    Defined in: packages/core/src/edge/inventory.ts:128

    ### installationDigest?

    > `readonly` `optional` **installationDigest?**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/inventory.ts:121

    ### installationState?

    > `readonly` `optional` **installationState?**: `InstallationLifecycleState`

    Defined in: packages/core/src/edge/inventory.ts:123

    ### launchDigest?

    > `readonly` `optional` **launchDigest?**: `string`

    Defined in: packages/core/src/edge/inventory.ts:122

    ### nextActions?

    > `readonly` `optional` **nextActions?**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventory.ts:130

    ### observedAt

    > `readonly` **observedAt**: `number`

    Defined in: packages/core/src/edge/inventory.ts:127

    ### reasonCategory?

    > `readonly` `optional` **reasonCategory?**: `string`

    Defined in: packages/core/src/edge/inventory.ts:129

    ### reasonCode?

    > `readonly` `optional` **reasonCode?**: `InstallationReasonCode`

    Defined in: packages/core/src/edge/inventory.ts:124

    ### recipeVersion?

    > `readonly` `optional` **recipeVersion?**: `number`

    Defined in: packages/core/src/edge/inventory.ts:119

    ### retryable?

    > `readonly` `optional` **retryable?**: `boolean`

    Defined in: packages/core/src/edge/inventory.ts:125

    ### status

    > `readonly` **status**: `EdgeDeploymentReadinessStatus`

    Defined in: packages/core/src/edge/inventory.ts:118

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:113
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeDesiredAssignmentStore">
    @fentaris/core / EdgeDesiredAssignmentStore

    Defined in: packages/core/src/edge/integratedServices.ts:108

    Desired-state assignment store with compare-and-swap semantics.

    ## Methods

    ### compareAndSwap()

    > **compareAndSwap**(`snapshot`, `expectedVersion`): `Promise`\<`"unchanged"` | `"updated"` | `"conflict"`>

    Defined in: packages/core/src/edge/integratedServices.ts:110

    #### Parameters

    ##### snapshot

    `EdgeDesiredAssignmentSnapshot`

    ##### expectedVersion

    `number` | `undefined`

    #### Returns

    `Promise`\<`"unchanged"` | `"updated"` | `"conflict"`>

    ### get()

    > **get**(`tenantId`, `edgeNodeId`): `Promise`\<`EdgeDesiredAssignmentSnapshot` | `undefined`>

    Defined in: packages/core/src/edge/integratedServices.ts:109

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`EdgeDesiredAssignmentSnapshot` | `undefined`>

    ### remove()

    > **remove**(`tenantId`, `edgeNodeId`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedServices.ts:114

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeDesiredDeployment">
    @fentaris/core / EdgeDesiredDeployment

    Defined in: packages/core/src/edge/controlProtocol.ts:95

    ## Properties

    ### deploymentId

    > `readonly` **deploymentId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:96

    ### installationDigest?

    > `readonly` `optional` **installationDigest?**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/controlProtocol.ts:103

    ### installationRecipe?

    > `readonly` `optional` **installationRecipe?**: `InstallationRecipe`

    Defined in: packages/core/src/edge/controlProtocol.ts:102

    Optional managed installation recipe, carried only by protocol v3.

    ### launchDigest?

    > `readonly` `optional` **launchDigest?**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:100

    Correlation identity for the launch recipe. Required for protocol v3 managed installations.

    ### recipe

    > `readonly` **recipe**: `LaunchRecipe`

    Defined in: packages/core/src/edge/controlProtocol.ts:98

    ### requiresAgentUpgrade?

    > `readonly` `optional` **requiresAgentUpgrade?**: `boolean`

    Defined in: packages/core/src/edge/controlProtocol.ts:105

    Compatibility marker sent instead of a recipe to older agents.

    ### serverName

    > `readonly` **serverName**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:97

    ### setupSchema

    > `readonly` **setupSchema**: `SetupSchema`

    Defined in: packages/core/src/edge/controlProtocol.ts:107

    Complete unresolved setup schema collected locally by the edge agent.

    ### setupSchemaVersion?

    > `readonly` `optional` **setupSchemaVersion?**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:108

    ### subjectIds?

    > `readonly` `optional` **subjectIds?**: readonly `string`\[]

    Defined in: packages/core/src/edge/controlProtocol.ts:109
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeDesiredStateAckMessage">
    @fentaris/core / EdgeDesiredStateAckMessage

    Defined in: packages/core/src/edge/controlProtocol.ts:119

    Common trusted routing claims carried by edge control messages.

    ## Extends

    * `EdgeProtocolClaims`

    ## Properties

    ### blockedDeploymentIds?

    > `readonly` `optional` **blockedDeploymentIds?**: readonly `string`\[]

    Defined in: packages/core/src/edge/controlProtocol.ts:124

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:36

    #### Inherited from

    `EdgeProtocolClaims`.`connectionGeneration`

    ### deploymentDigests?

    > `readonly` `optional` **deploymentDigests?**: `Readonly`\<`Record`\<`string`, \{ `installationDigest?`: `` `sha256:${string}` ``; `launchDigest`: `string`; }>>

    Defined in: packages/core/src/edge/controlProtocol.ts:125

    ### desiredVersion

    > `readonly` **desiredVersion**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:122

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:35

    #### Inherited from

    `EdgeProtocolClaims`.`edgeNodeId`

    ### kind

    > `readonly` **kind**: `"edge.desired-state.ack"`

    Defined in: packages/core/src/edge/controlProtocol.ts:121

    ### status

    > `readonly` **status**: `"blocked"` | `"applied"`

    Defined in: packages/core/src/edge/controlProtocol.ts:123

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:34

    #### Inherited from

    `EdgeProtocolClaims`.`tenantId`

    ### version

    > `readonly` **version**: `EdgeProtocolVersion`

    Defined in: packages/core/src/edge/controlProtocol.ts:120
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeDesiredStateMessage">
    @fentaris/core / EdgeDesiredStateMessage

    Defined in: packages/core/src/edge/controlProtocol.ts:112

    Common trusted routing claims carried by edge control messages.

    ## Extends

    * `EdgeProtocolClaims`

    ## Properties

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:36

    #### Inherited from

    `EdgeProtocolClaims`.`connectionGeneration`

    ### deployments

    > `readonly` **deployments**: readonly `EdgeDesiredDeployment`\[]

    Defined in: packages/core/src/edge/controlProtocol.ts:116

    ### desiredVersion

    > `readonly` **desiredVersion**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:115

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:35

    #### Inherited from

    `EdgeProtocolClaims`.`edgeNodeId`

    ### kind

    > `readonly` **kind**: `"edge.desired-state"`

    Defined in: packages/core/src/edge/controlProtocol.ts:114

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:34

    #### Inherited from

    `EdgeProtocolClaims`.`tenantId`

    ### version

    > `readonly` **version**: `EdgeProtocolVersion`

    Defined in: packages/core/src/edge/controlProtocol.ts:113
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeDesiredStateStore">
    @fentaris/core / EdgeDesiredStateStore

    Defined in: packages/core/src/edge/controlPlane.ts:105

    Replaceable desired-state store contract.

    ## Methods

    ### acknowledge()

    > **acknowledge**(`ack`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:108

    #### Parameters

    ##### ack

    `EdgeDesiredStateAckMessage`

    #### Returns

    `Promise`\<`void`>

    ### acknowledgedVersion()

    > **acknowledgedVersion**(`tenantId`, `edgeNodeId`): `Promise`\<`number` | `undefined`>

    Defined in: packages/core/src/edge/controlPlane.ts:109

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`number` | `undefined`>

    ### get()

    > **get**(`tenantId`, `edgeNodeId`): `Promise`\<`EdgeDesiredStateMessage` | `undefined`>

    Defined in: packages/core/src/edge/controlPlane.ts:106

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`EdgeDesiredStateMessage` | `undefined`>

    ### publish()

    > **publish**(`state`): `Promise`\<`"published"` | `"unchanged"`>

    Defined in: packages/core/src/edge/controlPlane.ts:107

    #### Parameters

    ##### state

    `EdgeDesiredStateMessage`

    #### Returns

    `Promise`\<`"published"` | `"unchanged"`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeDeviceAlias">
    @fentaris/core / EdgeDeviceAlias

    Defined in: packages/core/src/edge/inventory.ts:49

    A retained public alias with an optional expiry.

    ## Properties

    ### expiresAt?

    > `readonly` `optional` **expiresAt?**: `number`

    Defined in: packages/core/src/edge/inventory.ts:53

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/edge/inventory.ts:50

    ### normalizedName

    > `readonly` **normalizedName**: `string`

    Defined in: packages/core/src/edge/inventory.ts:51

    ### retainedAt

    > `readonly` **retainedAt**: `number`

    Defined in: packages/core/src/edge/inventory.ts:52
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeDeviceApprovalAdapter">
    @fentaris/core / EdgeDeviceApprovalAdapter

    Defined in: packages/core/src/edge/integratedConfig.ts:86

    Replaceable approval adapter used by managed consoles or identity systems.

    ## Properties

    ### diagnostics?

    > `readonly` `optional` **diagnostics?**: `EdgeAdapterDiagnostics`

    Defined in: packages/core/src/edge/integratedConfig.ts:87

    ## Methods

    ### approve()

    > **approve**(`userCode`, `decision`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedConfig.ts:88

    #### Parameters

    ##### userCode

    `string`

    ##### decision

    `EdgeDeviceApprovalDecision`

    #### Returns

    `Promise`\<`void`>

    ### deny()?

    > `optional` **deny**(`userCode`, `decision`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedConfig.ts:89

    #### Parameters

    ##### userCode

    `string`

    ##### decision

    `Omit`\<`EdgeDeviceApprovalDecision`, `"subjectId"`> & `object`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeDeviceAuthorizationService">
    @fentaris/core / EdgeDeviceAuthorizationService

    Defined in: packages/core/src/edge/integratedServices.ts:54

    Device authorization domain service.

    ## Methods

    ### begin()

    > **begin**(`request`): `Promise`\<`EdgeDeviceAuthorizeResponse`>

    Defined in: packages/core/src/edge/integratedServices.ts:55

    #### Parameters

    ##### request

    `EdgeDeviceAuthorizeRequest`

    #### Returns

    `Promise`\<`EdgeDeviceAuthorizeResponse`>

    ### getPendingByUserCode()

    > **getPendingByUserCode**(`userCode`): `Promise`\<`EdgeAuthorizationSession` | `undefined`>

    Defined in: packages/core/src/edge/integratedServices.ts:61

    #### Parameters

    ##### userCode

    `string`

    #### Returns

    `Promise`\<`EdgeAuthorizationSession` | `undefined`>

    ### poll()

    > **poll**(`request`): `Promise`\<\{ `interval?`: `number`; `status`: `"pending"` | `"slow-down"`; } | \{ `status`: `"authorized"`; `tokens`: `EdgeControlPlaneTokenResponse`; } | \{ `status`: `"denied"` | `"expired"`; }>

    Defined in: packages/core/src/edge/integratedServices.ts:56

    #### Parameters

    ##### request

    `EdgeDeviceTokenRequest`

    #### Returns

    `Promise`\<\{ `interval?`: `number`; `status`: `"pending"` | `"slow-down"`; } | \{ `status`: `"authorized"`; `tokens`: `EdgeControlPlaneTokenResponse`; } | \{ `status`: `"denied"` | `"expired"`; }>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeDeviceRecord">
    @fentaris/core / EdgeDeviceRecord

    Defined in: packages/core/src/edge/controlPlane.ts:20

    Registered edge device record owned by the control plane.

    ## Extended by

    * `EdgeInventoryRecord`

    ## Properties

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/controlPlane.ts:26

    ### credentialId

    > `readonly` **credentialId**: `string`

    Defined in: packages/core/src/edge/controlPlane.ts:23

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/controlPlane.ts:22

    ### inventorySchemaVersion?

    > `readonly` `optional` **inventorySchemaVersion?**: `1`

    Defined in: packages/core/src/edge/controlPlane.ts:28

    ### inventoryVersion?

    > `readonly` `optional` **inventoryVersion?**: `number`

    Defined in: packages/core/src/edge/controlPlane.ts:29

    ### lastSeenAt?

    > `readonly` `optional` **lastSeenAt?**: `number`

    Defined in: packages/core/src/edge/controlPlane.ts:27

    ### managed?

    > `readonly` `optional` **managed?**: `EdgeManagedMetadata`

    Defined in: packages/core/src/edge/controlPlane.ts:32

    ### observed?

    > `readonly` `optional` **observed?**: `EdgeObservedFacts`

    Defined in: packages/core/src/edge/controlPlane.ts:31

    ### revoked

    > `readonly` **revoked**: `boolean`

    Defined in: packages/core/src/edge/controlPlane.ts:25

    ### subjectId?

    > `readonly` `optional` **subjectId?**: `string`

    Defined in: packages/core/src/edge/controlPlane.ts:24

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/controlPlane.ts:21

    ### user?

    > `readonly` `optional` **user?**: `EdgeUserMetadata`

    Defined in: packages/core/src/edge/controlPlane.ts:30
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeDeviceRegistry">
    @fentaris/core / EdgeDeviceRegistry

    Defined in: packages/core/src/edge/controlPlane.ts:88

    Replaceable device registry contract.

    ## Properties

    ### diagnostics?

    > `readonly` `optional` **diagnostics?**: `EdgeAdapterDiagnostics`

    Defined in: packages/core/src/edge/controlPlane.ts:89

    ## Methods

    ### get()

    > **get**(`tenantId`, `edgeNodeId`): `Promise`\<`EdgeDeviceRecord` | `undefined`>

    Defined in: packages/core/src/edge/controlPlane.ts:90

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`EdgeDeviceRecord` | `undefined`>

    ### getByName()

    > **getByName**(`tenantId`, `name`, `at?`): `Promise`\<`EdgeDeviceRecord` | `undefined`>

    Defined in: packages/core/src/edge/controlPlane.ts:91

    #### Parameters

    ##### tenantId

    `string`

    ##### name

    `string`

    ##### at?

    `number`

    #### Returns

    `Promise`\<`EdgeDeviceRecord` | `undefined`>

    ### list()

    > **list**(`tenantId`, `options?`): `Promise`\<`EdgeInventoryListPage`>

    Defined in: packages/core/src/edge/controlPlane.ts:94

    #### Parameters

    ##### tenantId

    `string`

    ##### options?

    `EdgeInventoryListOptions`

    #### Returns

    `Promise`\<`EdgeInventoryListPage`>

    ### put()

    > **put**(`device`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:92

    #### Parameters

    ##### device

    `EdgeDeviceRecord`

    #### Returns

    `Promise`\<`void`>

    ### revoke()

    > **revoke**(`tenantId`, `edgeNodeId`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:101

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`void`>

    ### updateConnection()

    > **updateConnection**(`tenantId`, `edgeNodeId`, `generation`, `lastSeenAt`): `Promise`\<`EdgeDeviceRecord`>

    Defined in: packages/core/src/edge/controlPlane.ts:95

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### generation

    `number`

    ##### lastSeenAt

    `number`

    #### Returns

    `Promise`\<`EdgeDeviceRecord`>

    ### updateInventory()

    > **updateInventory**(`tenantId`, `edgeNodeId`, `update`): `Promise`\<`EdgeInventoryRecord`>

    Defined in: packages/core/src/edge/controlPlane.ts:93

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### update

    `EdgeInventoryUpdate`

    #### Returns

    `Promise`\<`EdgeInventoryRecord`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeDiscoveryState">
    @fentaris/core / EdgeDiscoveryState

    Defined in: packages/core/src/edge/capabilityCache.ts:30

    ## Properties

    ### cacheAgeMs?

    > `readonly` `optional` **cacheAgeMs?**: `number`

    Defined in: packages/core/src/edge/capabilityCache.ts:33

    ### diagnostic?

    > `readonly` `optional` **diagnostic?**: `string`

    Defined in: packages/core/src/edge/capabilityCache.ts:32

    ### manifest?

    > `readonly` `optional` **manifest?**: `EdgeCapabilityManifest`

    Defined in: packages/core/src/edge/capabilityCache.ts:34

    ### status

    > `readonly` **status**: `"ready"` | `"setup-required"` | `"offline-cached"`

    Defined in: packages/core/src/edge/capabilityCache.ts:31
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeDispatchDeviceResolution">
    @fentaris/core / EdgeDispatchDeviceResolution

    Defined in: packages/core/src/edge/inventoryService.ts:146

    Internal dispatch resolution returned only after current-state revalidation.

    ## Properties

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/inventoryService.ts:149

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:148

    ### inventoryVersion

    > `readonly` **inventoryVersion**: `number`

    Defined in: packages/core/src/edge/inventoryService.ts:150

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:147
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeEnrolledDeviceStore">
    @fentaris/core / EdgeEnrolledDeviceStore

    Defined in: packages/core/src/edge/integratedServices.ts:84

    Enrolled-device storage and lookup for gateway authentication.

    ## Methods

    ### get()

    > **get**(`tenantId`, `edgeNodeId`): `Promise`\<`EdgeEnrolledDeviceAuthority` | `undefined`>

    Defined in: packages/core/src/edge/integratedServices.ts:85

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`EdgeEnrolledDeviceAuthority` | `undefined`>

    ### put()

    > **put**(`device`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedServices.ts:86

    #### Parameters

    ##### device

    `EdgeEnrolledDeviceAuthority`

    #### Returns

    `Promise`\<`void`>

    ### revoke()

    > **revoke**(`tenantId`, `edgeNodeId`, `revokedAt`): `Promise`\<`EdgeEnrolledDeviceAuthority` | `undefined`>

    Defined in: packages/core/src/edge/integratedServices.ts:87

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### revokedAt

    `number`

    #### Returns

    `Promise`\<`EdgeEnrolledDeviceAuthority` | `undefined`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeEnrollmentService">
    @fentaris/core / EdgeEnrollmentService

    Defined in: packages/core/src/edge/integratedServices.ts:91

    Enrollment domain service.

    ## Methods

    ### authenticateHello()

    > **authenticateHello**(`proof`): `Promise`\<`EdgeAuthenticatedHelloResult`>

    Defined in: packages/core/src/edge/integratedServices.ts:94

    #### Parameters

    ##### proof

    `EdgeAuthenticatedHelloProof`

    #### Returns

    `Promise`\<`EdgeAuthenticatedHelloResult`>

    ### enroll()

    > **enroll**(`request`): `Promise`\<`EdgeEnrollResponse`>

    Defined in: packages/core/src/edge/integratedServices.ts:92

    #### Parameters

    ##### request

    `EdgeEnrollRequest`

    #### Returns

    `Promise`\<`EdgeEnrollResponse`>

    ### revoke()

    > **revoke**(`request`, `accessToken`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedServices.ts:93

    #### Parameters

    ##### request

    `EdgeRevokeRequest`

    ##### accessToken

    `string`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeError">
    @fentaris/core / EdgeError

    Defined in: packages/core/src/edge/errors.ts:45

    A normalized edge error carrying a stable code and redacted details.

    ## Extends

    * `Error`

    ## Properties

    ### cause?

    > `optional` **cause?**: `unknown`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es2022.error.d.ts:24

    #### Inherited from

    `Error.cause`

    ### code

    > `readonly` **code**: `EdgeErrorCode`

    Defined in: packages/core/src/edge/errors.ts:46

    ### details?

    > `readonly` `optional` **details?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/edge/errors.ts:47

    ### message

    > **message**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1075

    #### Inherited from

    `Error.message`

    ### name

    > **name**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1074

    #### Inherited from

    `Error.name`

    ### stack?

    > `optional` **stack?**: `string`

    Defined in: node\_modules/.pnpm/typescript\@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1076

    #### Inherited from

    `Error.stack`
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeExecutionTarget">
    @fentaris/core / EdgeExecutionTarget

    Defined in: packages/core/src/edge/target.ts:135

    Edge execution target: run on an enrolled device selected by `device`.

    ## Properties

    ### device

    > `readonly` **device**: `DeviceSelector`

    Defined in: packages/core/src/edge/target.ts:138

    Device selector for this target.

    ### kind

    > `readonly` **kind**: `"edge"`

    Defined in: packages/core/src/edge/target.ts:136

    ### strategy?

    > `readonly` `optional` **strategy?**: `TargetSelectionStrategy`

    Defined in: packages/core/src/edge/target.ts:140

    Selection strategy for pool selectors declared on the target.
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeFanoutCoordinatorOptions">
    @fentaris/core / EdgeFanoutCoordinatorOptions

    Defined in: packages/core/src/edge/fanout.ts:50

    ## Properties

    ### approve?

    > `readonly` `optional` **approve?**: (`approval`, `context`) => `boolean` | `Promise`\<`boolean`>

    Defined in: packages/core/src/edge/fanout.ts:56

    #### Parameters

    ##### approval

    `EdgeAggregateApprovalContext`

    ##### context

    `ProxyContext`

    #### Returns

    `boolean` | `Promise`\<`boolean`>

    ### inventory

    > `readonly` **inventory**: `EdgeInventoryService`

    Defined in: packages/core/src/edge/fanout.ts:51

    ### limits?

    > `readonly` `optional` **limits?**: `Partial`\<`EdgeOrchestrationLimits`>

    Defined in: packages/core/src/edge/fanout.ts:53

    ### now?

    > `readonly` `optional` **now?**: () => `number`

    Defined in: packages/core/src/edge/fanout.ts:54

    #### Returns

    `number`

    ### single

    > `readonly` **single**: `EdgeSingleCallCoordinator`

    Defined in: packages/core/src/edge/fanout.ts:52

    ### telemetry?

    > `readonly` `optional` **telemetry?**: `EdgeTelemetry`

    Defined in: packages/core/src/edge/fanout.ts:55
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeFanoutEntry">
    @fentaris/core / EdgeFanoutEntry

    Defined in: packages/core/src/edge/fanout.ts:31

    ## Properties

    ### correlationId?

    > `readonly` `optional` **correlationId?**: `string`

    Defined in: packages/core/src/edge/fanout.ts:34

    ### device

    > `readonly` **device**: `EdgePublicDeviceRef`

    Defined in: packages/core/src/edge/fanout.ts:32

    ### error?

    > `readonly` `optional` **error?**: `object`

    Defined in: packages/core/src/edge/fanout.ts:36

    #### code

    > `readonly` **code**: `string`

    #### message

    > `readonly` **message**: `string`

    #### outcome?

    > `readonly` `optional` **outcome?**: `"indeterminate"`

    ### result?

    > `readonly` `optional` **result?**: `object`

    Defined in: packages/core/src/edge/fanout.ts:35

    #### Index Signature

    \[`key`: `string`]: `unknown`

    #### \_meta?

    > `optional` **\_meta?**: `object`

    ##### Index Signature

    \[`key`: `string`]: `unknown`

    ##### \_meta.io.modelcontextprotocol/related-task?

    > `optional` **io.modelcontextprotocol/related-task?**: `object`

    If specified, this request is related to the provided task.

    ##### \_meta.io.modelcontextprotocol/related-task.taskId

    > **taskId**: `string`

    ##### \_meta.progressToken?

    > `optional` **progressToken?**: `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    #### content

    > **content**: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]

    #### isError?

    > `optional` **isError?**: `boolean`

    #### structuredContent?

    > `optional` **structuredContent?**: `object`

    ##### Index Signature

    \[`key`: `string`]: `unknown`

    ### retryable?

    > `readonly` `optional` **retryable?**: `false`

    Defined in: packages/core/src/edge/fanout.ts:37

    ### status

    > `readonly` **status**: `EdgeFanoutStatus`

    Defined in: packages/core/src/edge/fanout.ts:33
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeFanoutResult">
    @fentaris/core / EdgeFanoutResult

    Defined in: packages/core/src/edge/fanout.ts:40

    ## Properties

    ### counts

    > `readonly` **counts**: `Readonly`\<`Record`\<`EdgeFanoutStatus`, `number`>>

    Defined in: packages/core/src/edge/fanout.ts:44

    ### failurePolicy

    > `readonly` **failurePolicy**: `"collect"` | `"fail-fast"`

    Defined in: packages/core/src/edge/fanout.ts:42

    ### nextActions

    > `readonly` **nextActions**: readonly `string`\[]

    Defined in: packages/core/src/edge/fanout.ts:47

    ### resolvedDevices

    > `readonly` **resolvedDevices**: `number`

    Defined in: packages/core/src/edge/fanout.ts:43

    ### results

    > `readonly` **results**: readonly `EdgeFanoutEntry`\[]

    Defined in: packages/core/src/edge/fanout.ts:45

    ### status

    > `readonly` **status**: `"failed"` | `"cancelled"` | `"succeeded"` | `"partial"`

    Defined in: packages/core/src/edge/fanout.ts:41

    ### warnings

    > `readonly` **warnings**: readonly `string`\[]

    Defined in: packages/core/src/edge/fanout.ts:46
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeGatewayAuthenticator">
    @fentaris/core / EdgeGatewayAuthenticator

    Defined in: packages/core/src/edge/gateway.ts:52

    Device-bound gateway authentication contract.

    ## Methods

    ### authenticate()

    > **authenticate**(`credential`, `hello`): `Promise`\<`AuthenticatedEdgeIdentity`>

    Defined in: packages/core/src/edge/gateway.ts:53

    #### Parameters

    ##### credential

    `string`

    ##### hello

    `EdgeHelloMessage`

    #### Returns

    `Promise`\<`AuthenticatedEdgeIdentity`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeGatewayAuthorization">
    @fentaris/core / EdgeGatewayAuthorization

    Defined in: packages/core/src/edge/gateway.ts:57

    Per-message authorization input.

    ## Properties

    ### connection

    > `readonly` **connection**: `EdgeConnectionRecord`

    Defined in: packages/core/src/edge/gateway.ts:60

    ### direction

    > `readonly` **direction**: `"inbound"` | `"outbound"`

    Defined in: packages/core/src/edge/gateway.ts:58

    ### identity

    > `readonly` **identity**: `AuthenticatedEdgeIdentity`

    Defined in: packages/core/src/edge/gateway.ts:59

    ### message

    > `readonly` **message**: `EdgeMcpRequestEnvelope` | `EdgeMcpResultEnvelope` | `EdgeMcpErrorEnvelope` | `EdgeMcpCancelEnvelope` | `EdgeHelloMessage` | `EdgeHelloAckMessage` | `EdgeHeartbeatMessage` | `EdgePresenceReportMessage` | `EdgeDesiredStateMessage` | `EdgeDesiredStateAckMessage` | `EdgeInstallationStatusMessage` | `EdgeInstallationControlMessage` | `EdgeInstallationApprovalMessage` | `EdgeSetupStatusMessage` | `EdgeCapabilityManifestMessage` | `EdgeLifecycleMessage`

    Defined in: packages/core/src/edge/gateway.ts:61
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeGatewayAuthorizer">
    @fentaris/core / EdgeGatewayAuthorizer

    Defined in: packages/core/src/edge/gateway.ts:65

    Server-side message authorization contract.

    ## Methods

    ### authorize()

    > **authorize**(`input`): `Promise`\<`boolean`>

    Defined in: packages/core/src/edge/gateway.ts:66

    #### Parameters

    ##### input

    `EdgeGatewayAuthorization`

    #### Returns

    `Promise`\<`boolean`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeGatewayEventSink">
    @fentaris/core / EdgeGatewayEventSink

    Defined in: packages/core/src/edge/gateway.ts:70

    Authenticated gateway events consumed by the integrated inventory bridge.

    ## Methods

    ### connected()?

    > `optional` **connected**(`connection`): `void` | `Promise`\<`void`>

    Defined in: packages/core/src/edge/gateway.ts:71

    #### Parameters

    ##### connection

    `EdgeConnectionRecord`

    #### Returns

    `void` | `Promise`\<`void`>

    ### desiredAcknowledged()?

    > `optional` **desiredAcknowledged**(`message`): `void` | `Promise`\<`void`>

    Defined in: packages/core/src/edge/gateway.ts:73

    #### Parameters

    ##### message

    `EdgeDesiredStateAckMessage`

    #### Returns

    `void` | `Promise`\<`void`>

    ### disconnected()?

    > `optional` **disconnected**(`connection`): `void` | `Promise`\<`void`>

    Defined in: packages/core/src/edge/gateway.ts:72

    #### Parameters

    ##### connection

    `EdgeConnectionRecord`

    #### Returns

    `void` | `Promise`\<`void`>

    ### installationChanged()?

    > `optional` **installationChanged**(`message`): `void` | `Promise`\<`void`>

    Defined in: packages/core/src/edge/gateway.ts:77

    #### Parameters

    ##### message

    `EdgeInstallationStatusMessage`

    #### Returns

    `void` | `Promise`\<`void`>

    ### manifestChanged()?

    > `optional` **manifestChanged**(`message`): `void` | `Promise`\<`void`>

    Defined in: packages/core/src/edge/gateway.ts:75

    #### Parameters

    ##### message

    `EdgeCapabilityManifestMessage`

    #### Returns

    `void` | `Promise`\<`void`>

    ### presenceChanged()?

    > `optional` **presenceChanged**(`message`): `void` | `Promise`\<`void`>

    Defined in: packages/core/src/edge/gateway.ts:76

    #### Parameters

    ##### message

    `EdgePresenceReportMessage`

    #### Returns

    `void` | `Promise`\<`void`>

    ### setupChanged()?

    > `optional` **setupChanged**(`message`): `void` | `Promise`\<`void`>

    Defined in: packages/core/src/edge/gateway.ts:74

    #### Parameters

    ##### message

    `EdgeSetupStatusMessage`

    #### Returns

    `void` | `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeGatewaySocket">
    @fentaris/core / EdgeGatewaySocket

    Defined in: packages/core/src/edge/gateway.ts:36

    Minimal server-side WebSocket seam used by the reference gateway.

    ## Properties

    ### bufferedAmount?

    > `readonly` `optional` **bufferedAmount?**: `number`

    Defined in: packages/core/src/edge/gateway.ts:37

    ## Methods

    ### close()

    > **close**(`code?`, `reason?`): `void`

    Defined in: packages/core/src/edge/gateway.ts:39

    #### Parameters

    ##### code?

    `number`

    ##### reason?

    `string`

    #### Returns

    `void`

    ### onClose()

    > **onClose**(`handler`): () => `void`

    Defined in: packages/core/src/edge/gateway.ts:41

    #### Parameters

    ##### handler

    () => `void`

    #### Returns

    () => `void`

    ### onMessage()

    > **onMessage**(`handler`): () => `void`

    Defined in: packages/core/src/edge/gateway.ts:40

    #### Parameters

    ##### handler

    (`frame`) => `void`

    #### Returns

    () => `void`

    ### send()

    > **send**(`frame`): `void` | `Promise`\<`void`>

    Defined in: packages/core/src/edge/gateway.ts:38

    #### Parameters

    ##### frame

    `string`

    #### Returns

    `void` | `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeHealthOptions">
    @fentaris/core / EdgeHealthOptions

    Defined in: packages/core/src/edge/observability.ts:68

    ## Properties

    ### capabilityCache?

    > `readonly` `optional` **capabilityCache?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/observability.ts:73

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### channelRouting?

    > `readonly` `optional` **channelRouting?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/observability.ts:78

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### childBindingCleanup?

    > `readonly` `optional` **childBindingCleanup?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/observability.ts:77

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### deploymentReadiness?

    > `readonly` `optional` **deploymentReadiness?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/observability.ts:72

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### deviceAvailability?

    > `readonly` `optional` **deviceAvailability?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/observability.ts:71

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### gateway?

    > `readonly` `optional` **gateway?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/observability.ts:69

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### inventoryStore?

    > `readonly` `optional` **inventoryStore?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/observability.ts:74

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### presenceExpiry?

    > `readonly` `optional` **presenceExpiry?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/observability.ts:75

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### protocolDistribution?

    > `readonly` `optional` **protocolDistribution?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/observability.ts:79

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### selectionService?

    > `readonly` `optional` **selectionService?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/observability.ts:76

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### staleReadiness?

    > `readonly` `optional` **staleReadiness?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/observability.ts:80

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### targetResolution?

    > `readonly` `optional` **targetResolution?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/observability.ts:70

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### timeoutMs?

    > `readonly` `optional` **timeoutMs?**: `number`

    Defined in: packages/core/src/edge/observability.ts:81
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeHealthProbeResult">
    @fentaris/core / EdgeHealthProbeResult

    Defined in: packages/core/src/edge/observability.ts:62

    ## Properties

    ### message?

    > `readonly` `optional` **message?**: `string`

    Defined in: packages/core/src/edge/observability.ts:64

    ### metadata?

    > `readonly` `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/edge/observability.ts:65

    ### status

    > `readonly` **status**: `HealthStatus`

    Defined in: packages/core/src/edge/observability.ts:63
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeHeartbeatFreshness">
    @fentaris/core / EdgeHeartbeatFreshness

    Defined in: packages/core/src/edge/inventory.ts:78

    Heartbeat freshness derived by the control plane.

    ## Properties

    ### evaluatedAt

    > `readonly` **evaluatedAt**: `number`

    Defined in: packages/core/src/edge/inventory.ts:81

    ### fresh

    > `readonly` **fresh**: `boolean`

    Defined in: packages/core/src/edge/inventory.ts:82

    ### lastHeartbeatAt

    > `readonly` **lastHeartbeatAt**: `number`

    Defined in: packages/core/src/edge/inventory.ts:79

    ### staleAfterMs

    > `readonly` **staleAfterMs**: `number`

    Defined in: packages/core/src/edge/inventory.ts:80
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeHeartbeatMessage">
    @fentaris/core / EdgeHeartbeatMessage

    Defined in: packages/core/src/edge/controlProtocol.ts:58

    Common trusted routing claims carried by edge control messages.

    ## Extends

    * `EdgeProtocolClaims`

    ## Properties

    ### capacity?

    > `readonly` `optional` **capacity?**: `EdgeCapacitySnapshot`

    Defined in: packages/core/src/edge/controlProtocol.ts:64

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:36

    #### Inherited from

    `EdgeProtocolClaims`.`connectionGeneration`

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:35

    #### Inherited from

    `EdgeProtocolClaims`.`edgeNodeId`

    ### kind

    > `readonly` **kind**: `"edge.heartbeat"`

    Defined in: packages/core/src/edge/controlProtocol.ts:60

    ### load?

    > `readonly` `optional` **load?**: `number` | `EdgeLoadSnapshot`

    Defined in: packages/core/src/edge/controlProtocol.ts:63

    Legacy v1 scalar load.

    ### sentAt

    > `readonly` **sentAt**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:61

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:34

    #### Inherited from

    `EdgeProtocolClaims`.`tenantId`

    ### version

    > `readonly` **version**: `EdgeProtocolVersion`

    Defined in: packages/core/src/edge/controlProtocol.ts:59
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeHelloAckMessage">
    @fentaris/core / EdgeHelloAckMessage

    Defined in: packages/core/src/edge/controlProtocol.ts:51

    Common trusted routing claims carried by edge control messages.

    ## Extends

    * `EdgeProtocolClaims`

    ## Properties

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:36

    #### Inherited from

    `EdgeProtocolClaims`.`connectionGeneration`

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:35

    #### Inherited from

    `EdgeProtocolClaims`.`edgeNodeId`

    ### kind

    > `readonly` **kind**: `"edge.hello.ack"`

    Defined in: packages/core/src/edge/controlProtocol.ts:53

    ### protocolVersion

    > `readonly` **protocolVersion**: `EdgeProtocolVersion`

    Defined in: packages/core/src/edge/controlProtocol.ts:54

    ### serverTime

    > `readonly` **serverTime**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:55

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:34

    #### Inherited from

    `EdgeProtocolClaims`.`tenantId`

    ### version

    > `readonly` **version**: `EdgeProtocolVersion`

    Defined in: packages/core/src/edge/controlProtocol.ts:52
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeHelloMessage">
    @fentaris/core / EdgeHelloMessage

    Defined in: packages/core/src/edge/controlProtocol.ts:39

    ## Properties

    ### deviceCredential?

    > `readonly` `optional` **deviceCredential?**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:48

    Enrolled opaque device credential carried inside the protected WebSocket channel.

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:43

    ### kind

    > `readonly` **kind**: `"edge.hello"`

    Defined in: packages/core/src/edge/controlProtocol.ts:41

    ### nonce

    > `readonly` **nonce**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:45

    ### proof

    > `readonly` **proof**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:46

    ### supportedVersions

    > `readonly` **supportedVersions**: readonly `number`\[]

    Defined in: packages/core/src/edge/controlProtocol.ts:44

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:42

    ### version

    > `readonly` **version**: `EdgeProtocolVersion`

    Defined in: packages/core/src/edge/controlProtocol.ts:40
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeInstallationApprovalMessage">
    @fentaris/core / EdgeInstallationApprovalMessage

    Defined in: packages/core/src/edge/controlProtocol.ts:162

    Local approval decision reported without review material or credentials.

    ## Extends

    * `EdgeProtocolClaims`

    ## Properties

    ### approvalDigest

    > `readonly` **approvalDigest**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/controlProtocol.ts:168

    ### cleanup

    > `readonly` **cleanup**: `boolean`

    Defined in: packages/core/src/edge/controlProtocol.ts:170

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:36

    #### Inherited from

    `EdgeProtocolClaims`.`connectionGeneration`

    ### decidedAt

    > `readonly` **decidedAt**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:171

    ### decision

    > `readonly` **decision**: `"approved"` | `"denied"` | `"revoked"`

    Defined in: packages/core/src/edge/controlProtocol.ts:169

    ### deploymentId

    > `readonly` **deploymentId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:165

    ### desiredVersion

    > `readonly` **desiredVersion**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:166

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:35

    #### Inherited from

    `EdgeProtocolClaims`.`edgeNodeId`

    ### installationDigest

    > `readonly` **installationDigest**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/controlProtocol.ts:167

    ### kind

    > `readonly` **kind**: `"edge.installation-approval"`

    Defined in: packages/core/src/edge/controlProtocol.ts:164

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:34

    #### Inherited from

    `EdgeProtocolClaims`.`tenantId`

    ### version

    > `readonly` **version**: `3`

    Defined in: packages/core/src/edge/controlProtocol.ts:163
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeInstallationControlMessage">
    @fentaris/core / EdgeInstallationControlMessage

    Defined in: packages/core/src/edge/controlProtocol.ts:151

    Explicit authorized retry/removal command; never arbitrary script execution.

    ## Extends

    * `EdgeProtocolClaims`

    ## Properties

    ### action

    > `readonly` **action**: `"retry"` | `"remove"`

    Defined in: packages/core/src/edge/controlProtocol.ts:157

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:36

    #### Inherited from

    `EdgeProtocolClaims`.`connectionGeneration`

    ### deploymentId

    > `readonly` **deploymentId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:154

    ### desiredVersion

    > `readonly` **desiredVersion**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:155

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:35

    #### Inherited from

    `EdgeProtocolClaims`.`edgeNodeId`

    ### installationDigest

    > `readonly` **installationDigest**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/controlProtocol.ts:156

    ### kind

    > `readonly` **kind**: `"edge.installation-control"`

    Defined in: packages/core/src/edge/controlProtocol.ts:153

    ### requestId

    > `readonly` **requestId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:158

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:34

    #### Inherited from

    `EdgeProtocolClaims`.`tenantId`

    ### version

    > `readonly` **version**: `3`

    Defined in: packages/core/src/edge/controlProtocol.ts:152
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeInstallationHealthOptions">
    @fentaris/core / EdgeInstallationHealthOptions

    Defined in: packages/core/src/edge/installationObservability.ts:40

    ## Properties

    ### agentUpgradeRequirements?

    > `readonly` `optional` **agentUpgradeRequirements?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/installationObservability.ts:46

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### interruptedAttempts?

    > `readonly` `optional` **interruptedAttempts?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/installationObservability.ts:41

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### isolation?

    > `readonly` `optional` **isolation?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/installationObservability.ts:44

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### orphanedArtifacts?

    > `readonly` `optional` **orphanedArtifacts?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/installationObservability.ts:45

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### staleLifecycle?

    > `readonly` `optional` **staleLifecycle?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/installationObservability.ts:42

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### storage?

    > `readonly` `optional` **storage?**: () => `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    Defined in: packages/core/src/edge/installationObservability.ts:43

    #### Returns

    `EdgeHealthProbeResult` | `Promise`\<`EdgeHealthProbeResult`>

    ### timeoutMs?

    > `readonly` `optional` **timeoutMs?**: `number`

    Defined in: packages/core/src/edge/installationObservability.ts:47
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeInstallationRuntimeEvent">
    @fentaris/core / EdgeInstallationRuntimeEvent

    Defined in: packages/core/src/edge/installationObservability.ts:13

    ## Properties

    ### deploymentId?

    > `readonly` `optional` **deploymentId?**: `string`

    Defined in: packages/core/src/edge/installationObservability.ts:16

    ### metadata?

    > `readonly` `optional` **metadata?**: `Readonly`\<`Record`\<`string`, `unknown`>>

    Defined in: packages/core/src/edge/installationObservability.ts:18

    ### name

    > `readonly` **name**: `EdgeInstallationRuntimeEventName`

    Defined in: packages/core/src/edge/installationObservability.ts:14

    ### occurredAt

    > `readonly` **occurredAt**: `number`

    Defined in: packages/core/src/edge/installationObservability.ts:15

    ### outcome?

    > `readonly` `optional` **outcome?**: `string`

    Defined in: packages/core/src/edge/installationObservability.ts:17
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeInstallationStatusMessage">
    @fentaris/core / EdgeInstallationStatusMessage

    Defined in: packages/core/src/edge/controlProtocol.ts:129

    Bounded installation lifecycle report carried by protocol v3.

    ## Extends

    * `EdgeProtocolClaims`

    ## Properties

    ### approvalRequired?

    > `readonly` `optional` **approvalRequired?**: `object`

    Defined in: packages/core/src/edge/controlProtocol.ts:142

    #### approvalDigest

    > `readonly` **approvalDigest**: `` `sha256:${string}` ``

    #### cleanup

    > `readonly` **cleanup**: `boolean`

    #### sourceKind

    > `readonly` **sourceKind**: `string`

    ### attemptId?

    > `readonly` `optional` **attemptId?**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:139

    ### attemptStartedAt?

    > `readonly` `optional` **attemptStartedAt?**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:140

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:36

    #### Inherited from

    `EdgeProtocolClaims`.`connectionGeneration`

    ### deploymentId

    > `readonly` **deploymentId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:132

    ### desiredVersion

    > `readonly` **desiredVersion**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:133

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:35

    #### Inherited from

    `EdgeProtocolClaims`.`edgeNodeId`

    ### installationDigest

    > `readonly` **installationDigest**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/controlProtocol.ts:134

    ### kind

    > `readonly` **kind**: `"edge.installation-status"`

    Defined in: packages/core/src/edge/controlProtocol.ts:131

    ### launchDigest

    > `readonly` **launchDigest**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:135

    ### nextAction?

    > `readonly` `optional` **nextAction?**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:147

    ### observedAt

    > `readonly` **observedAt**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:141

    ### reasonCode?

    > `readonly` `optional` **reasonCode?**: `InstallationReasonCode`

    Defined in: packages/core/src/edge/controlProtocol.ts:137

    ### retryable

    > `readonly` **retryable**: `boolean`

    Defined in: packages/core/src/edge/controlProtocol.ts:138

    ### state

    > `readonly` **state**: `InstallationLifecycleState`

    Defined in: packages/core/src/edge/controlProtocol.ts:136

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:34

    #### Inherited from

    `EdgeProtocolClaims`.`tenantId`

    ### version

    > `readonly` **version**: `3`

    Defined in: packages/core/src/edge/controlProtocol.ts:130
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeInstallationStatusStore">
    @fentaris/core / EdgeInstallationStatusStore

    Defined in: packages/core/src/edge/controlPlane.ts:119

    Replaceable bounded managed-installation lifecycle store.

    ## Methods

    ### delete()

    > **delete**(`tenantId`, `edgeNodeId`, `deploymentId`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:123

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`void`>

    ### get()

    > **get**(`tenantId`, `edgeNodeId`, `deploymentId`): `Promise`\<`EdgeInstallationStatusMessage` | `undefined`>

    Defined in: packages/core/src/edge/controlPlane.ts:120

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`EdgeInstallationStatusMessage` | `undefined`>

    ### list()

    > **list**(`tenantId`, `edgeNodeId`): `Promise`\<readonly `EdgeInstallationStatusMessage`\[]>

    Defined in: packages/core/src/edge/controlPlane.ts:121

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<readonly `EdgeInstallationStatusMessage`\[]>

    ### put()

    > **put**(`status`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:122

    #### Parameters

    ##### status

    `EdgeInstallationStatusMessage`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeInstallationTelemetrySink">
    @fentaris/core / EdgeInstallationTelemetrySink

    Defined in: packages/core/src/edge/installationObservability.ts:21

    ## Methods

    ### emit()

    > **emit**(`event`): `void` | `Promise`\<`void`>

    Defined in: packages/core/src/edge/installationObservability.ts:22

    #### Parameters

    ##### event

    `EdgeInstallationRuntimeEvent`

    #### Returns

    `void` | `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeInventoryAuthorizer">
    @fentaris/core / EdgeInventoryAuthorizer

    Defined in: packages/core/src/edge/inventoryService.ts:24

    Policy/grant seam evaluated before any device enters the visible set.

    ## Methods

    ### canAccessDeployment()

    > **canAccessDeployment**(`context`, `device`, `deploymentId`): `boolean` | `Promise`\<`boolean`>

    Defined in: packages/core/src/edge/inventoryService.ts:26

    #### Parameters

    ##### context

    `EdgeInventoryContext`

    ##### device

    `EdgeInventoryListItem`

    ##### deploymentId

    `string`

    #### Returns

    `boolean` | `Promise`\<`boolean`>

    ### canAccessDevice()

    > **canAccessDevice**(`context`, `device`): `boolean` | `Promise`\<`boolean`>

    Defined in: packages/core/src/edge/inventoryService.ts:25

    #### Parameters

    ##### context

    `EdgeInventoryContext`

    ##### device

    `EdgeInventoryListItem`

    #### Returns

    `boolean` | `Promise`\<`boolean`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeInventoryContext">
    @fentaris/core / EdgeInventoryContext

    Defined in: packages/core/src/edge/inventoryService.ts:17

    Authenticated inventory-query context.

    ## Properties

    ### groups?

    > `readonly` `optional` **groups?**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:20

    ### subjectId

    > `readonly` **subjectId**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:19

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:18
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeInventoryListOptions">
    @fentaris/core / EdgeInventoryListOptions

    Defined in: packages/core/src/edge/controlPlane.ts:49

    Authorization-scoped inventory list filters.

    ## Properties

    ### cursor?

    > `readonly` `optional` **cursor?**: `string`

    Defined in: packages/core/src/edge/controlPlane.ts:55

    ### limit?

    > `readonly` `optional` **limit?**: `number`

    Defined in: packages/core/src/edge/controlPlane.ts:54

    ### name?

    > `readonly` `optional` **name?**: `string`

    Defined in: packages/core/src/edge/controlPlane.ts:50

    ### pool?

    > `readonly` `optional` **pool?**: `string`

    Defined in: packages/core/src/edge/controlPlane.ts:52

    ### revoked?

    > `readonly` `optional` **revoked?**: `boolean`

    Defined in: packages/core/src/edge/controlPlane.ts:53

    ### tags?

    > `readonly` `optional` **tags?**: readonly `string`\[]

    Defined in: packages/core/src/edge/controlPlane.ts:51
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeInventoryListPage">
    @fentaris/core / EdgeInventoryListPage

    Defined in: packages/core/src/edge/controlPlane.ts:59

    Cursor-paginated credential-free inventory result.

    ## Properties

    ### items

    > `readonly` **items**: readonly `EdgeInventoryListItem`\[]

    Defined in: packages/core/src/edge/controlPlane.ts:60

    ### nextCursor?

    > `readonly` `optional` **nextCursor?**: `string`

    Defined in: packages/core/src/edge/controlPlane.ts:61
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeInventoryQuery">
    @fentaris/core / EdgeInventoryQuery

    Defined in: packages/core/src/edge/inventoryService.ts:77

    Bounded filters applied only after device authorization.

    ## Properties

    ### cursor?

    > `readonly` `optional` **cursor?**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:87

    ### deploymentId?

    > `readonly` `optional` **deploymentId?**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:84

    ### features?

    > `readonly` `optional` **features?**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:80

    ### limit?

    > `readonly` `optional` **limit?**: `number`

    Defined in: packages/core/src/edge/inventoryService.ts:86

    ### name?

    > `readonly` `optional` **name?**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:78

    ### platforms?

    > `readonly` `optional` **platforms?**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:81

    ### pool?

    > `readonly` `optional` **pool?**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:82

    ### readiness?

    > `readonly` `optional` **readiness?**: readonly `EdgeDeploymentReadinessStatus`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:85

    ### statuses?

    > `readonly` `optional` **statuses?**: readonly `EdgePresenceStatus`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:83

    ### tags?

    > `readonly` `optional` **tags?**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:79
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeInventoryRecord">
    @fentaris/core / EdgeInventoryRecord

    Defined in: packages/core/src/edge/controlPlane.ts:36

    Fully initialized durable inventory record.

    ## Extends

    * `EdgeDeviceRecord`

    ## Properties

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/controlPlane.ts:26

    #### Inherited from

    `EdgeDeviceRecord`.`connectionGeneration`

    ### credentialId

    > `readonly` **credentialId**: `string`

    Defined in: packages/core/src/edge/controlPlane.ts:23

    #### Inherited from

    `EdgeDeviceRecord`.`credentialId`

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/controlPlane.ts:22

    #### Inherited from

    `EdgeDeviceRecord`.`edgeNodeId`

    ### inventorySchemaVersion

    > `readonly` **inventorySchemaVersion**: `1`

    Defined in: packages/core/src/edge/controlPlane.ts:37

    #### Overrides

    `EdgeDeviceRecord`.`inventorySchemaVersion`

    ### inventoryVersion

    > `readonly` **inventoryVersion**: `number`

    Defined in: packages/core/src/edge/controlPlane.ts:38

    #### Overrides

    `EdgeDeviceRecord`.`inventoryVersion`

    ### lastSeenAt?

    > `readonly` `optional` **lastSeenAt?**: `number`

    Defined in: packages/core/src/edge/controlPlane.ts:27

    #### Inherited from

    `EdgeDeviceRecord`.`lastSeenAt`

    ### managed

    > `readonly` **managed**: `EdgeManagedMetadata`

    Defined in: packages/core/src/edge/controlPlane.ts:40

    #### Overrides

    `EdgeDeviceRecord`.`managed`

    ### observed?

    > `readonly` `optional` **observed?**: `EdgeObservedFacts`

    Defined in: packages/core/src/edge/controlPlane.ts:31

    #### Inherited from

    `EdgeDeviceRecord`.`observed`

    ### revoked

    > `readonly` **revoked**: `boolean`

    Defined in: packages/core/src/edge/controlPlane.ts:25

    #### Inherited from

    `EdgeDeviceRecord`.`revoked`

    ### subjectId?

    > `readonly` `optional` **subjectId?**: `string`

    Defined in: packages/core/src/edge/controlPlane.ts:24

    #### Inherited from

    `EdgeDeviceRecord`.`subjectId`

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/controlPlane.ts:21

    #### Inherited from

    `EdgeDeviceRecord`.`tenantId`

    ### user

    > `readonly` **user**: `EdgeUserMetadata`

    Defined in: packages/core/src/edge/controlPlane.ts:39

    #### Overrides

    `EdgeDeviceRecord`.`user`
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeInventoryServiceOptions">
    @fentaris/core / EdgeInventoryServiceOptions

    Defined in: packages/core/src/edge/inventoryService.ts:154

    Inventory query service configuration.

    ## Properties

    ### authorizer

    > `readonly` **authorizer**: `EdgeInventoryAuthorizer`

    Defined in: packages/core/src/edge/inventoryService.ts:159

    ### capabilities?

    > `readonly` `optional` **capabilities?**: `EdgeCapabilityManifestStore`

    Defined in: packages/core/src/edge/inventoryService.ts:158

    ### devices

    > `readonly` **devices**: `EdgeDeviceRegistry`

    Defined in: packages/core/src/edge/inventoryService.ts:155

    ### maxCandidates?

    > `readonly` `optional` **maxCandidates?**: `number`

    Defined in: packages/core/src/edge/inventoryService.ts:161

    ### now?

    > `readonly` `optional` **now?**: () => `number`

    Defined in: packages/core/src/edge/inventoryService.ts:160

    #### Returns

    `number`

    ### presence

    > `readonly` **presence**: `EdgePresenceStore`

    Defined in: packages/core/src/edge/inventoryService.ts:156

    ### readiness

    > `readonly` **readiness**: `EdgeReadinessStore`

    Defined in: packages/core/src/edge/inventoryService.ts:157
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeInventoryUpdate">
    @fentaris/core / EdgeInventoryUpdate

    Defined in: packages/core/src/edge/controlPlane.ts:65

    Optimistic inventory mutation. Only explicitly supplied sections change.

    ## Properties

    ### description?

    > `readonly` `optional` **description?**: `string` | `null`

    Defined in: packages/core/src/edge/controlPlane.ts:68

    ### expectedInventoryVersion

    > `readonly` **expectedInventoryVersion**: `number`

    Defined in: packages/core/src/edge/controlPlane.ts:66

    ### name?

    > `readonly` `optional` **name?**: `string`

    Defined in: packages/core/src/edge/controlPlane.ts:67

    ### observed?

    > `readonly` `optional` **observed?**: `EdgeObservedFacts` | `null`

    Defined in: packages/core/src/edge/controlPlane.ts:70

    ### pools?

    > `readonly` `optional` **pools?**: readonly `string`\[]

    Defined in: packages/core/src/edge/controlPlane.ts:71

    ### retainPreviousNameUntil?

    > `readonly` `optional` **retainPreviousNameUntil?**: `number`

    Defined in: packages/core/src/edge/controlPlane.ts:72

    ### tags?

    > `readonly` `optional` **tags?**: readonly `string`\[]

    Defined in: packages/core/src/edge/controlPlane.ts:69

    ### updatedAt

    > `readonly` **updatedAt**: `number`

    Defined in: packages/core/src/edge/controlPlane.ts:73
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeJoinRequest">
    @fentaris/core / EdgeJoinRequest

    Defined in: packages/core/src/edge/management.ts:22

    Trusted enrollment input produced after device authorization.

    ## Properties

    ### credentialId

    > `readonly` **credentialId**: `string`

    Defined in: packages/core/src/edge/management.ts:26

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/edge/management.ts:28

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/management.ts:25

    ### enrolledAt

    > `readonly` **enrolledAt**: `number`

    Defined in: packages/core/src/edge/management.ts:30

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/edge/management.ts:27

    ### subjectId?

    > `readonly` `optional` **subjectId?**: `string`

    Defined in: packages/core/src/edge/management.ts:24

    ### tags?

    > `readonly` `optional` **tags?**: readonly `string`\[]

    Defined in: packages/core/src/edge/management.ts:29

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/management.ts:23
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeLifecycleMessage">
    @fentaris/core / EdgeLifecycleMessage

    Defined in: packages/core/src/edge/controlProtocol.ts:196

    Common trusted routing claims carried by edge control messages.

    ## Extends

    * `EdgeProtocolClaims`

    ## Properties

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:36

    #### Inherited from

    `EdgeProtocolClaims`.`connectionGeneration`

    ### deploymentId?

    > `readonly` `optional` **deploymentId?**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:207

    ### downstreamSessionId?

    > `readonly` `optional` **downstreamSessionId?**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:208

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:35

    #### Inherited from

    `EdgeProtocolClaims`.`edgeNodeId`

    ### event

    > `readonly` **event**: `"connected"` | `"disconnected"` | `"setup-pending"` | `"setup-ready"` | `"workload-started"` | `"workload-stopped"` | `"workload-failed"`

    Defined in: packages/core/src/edge/controlProtocol.ts:199

    ### kind

    > `readonly` **kind**: `"edge.lifecycle"`

    Defined in: packages/core/src/edge/controlProtocol.ts:198

    ### metadata?

    > `readonly` `optional` **metadata?**: `Readonly`\<`Record`\<`string`, `unknown`>>

    Defined in: packages/core/src/edge/controlProtocol.ts:210

    ### occurredAt

    > `readonly` **occurredAt**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:209

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:34

    #### Inherited from

    `EdgeProtocolClaims`.`tenantId`

    ### version

    > `readonly` **version**: `EdgeProtocolVersion`

    Defined in: packages/core/src/edge/controlProtocol.ts:197
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeLoadSnapshot">
    @fentaris/core / EdgeLoadSnapshot

    Defined in: packages/core/src/edge/inventory.ts:70

    Dynamic load reported by an authenticated Edge agent.

    ## Properties

    ### active

    > `readonly` **active**: `number`

    Defined in: packages/core/src/edge/inventory.ts:71

    ### queued

    > `readonly` **queued**: `number`

    Defined in: packages/core/src/edge/inventory.ts:72

    ### reportedAt

    > `readonly` **reportedAt**: `number`

    Defined in: packages/core/src/edge/inventory.ts:74

    ### utilization?

    > `readonly` `optional` **utilization?**: `number`

    Defined in: packages/core/src/edge/inventory.ts:73
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeLocalOperatorChannel">
    @fentaris/core / EdgeLocalOperatorChannel

    Defined in: packages/core/src/edge/integratedServices.ts:143

    Protected local operator channel used by CLI approval commands.

    ## Methods

    ### approve()

    > **approve**(`userCode`, `decision`): `Promise`\<`EdgeAuthorizationSession`>

    Defined in: packages/core/src/edge/integratedServices.ts:144

    #### Parameters

    ##### userCode

    `string`

    ##### decision

    `EdgeDeviceApprovalDecision`

    #### Returns

    `Promise`\<`EdgeAuthorizationSession`>

    ### close()

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

    Defined in: packages/core/src/edge/integratedServices.ts:152

    #### Returns

    `Promise`\<`void`>

    ### deny()

    > **deny**(`userCode`, `decision`): `Promise`\<`EdgeAuthorizationSession`>

    Defined in: packages/core/src/edge/integratedServices.ts:145

    #### Parameters

    ##### userCode

    `string`

    ##### decision

    `Omit`\<`EdgeDeviceApprovalDecision`, `"subjectId"`> & `object`

    #### Returns

    `Promise`\<`EdgeAuthorizationSession`>

    ### status()

    > **status**(): `Promise`\<\{ `enrolledDevices`: `number`; `mode`: `"local"`; `multiInstance`: `false`; `pendingApprovals`: `number`; }>

    Defined in: packages/core/src/edge/integratedServices.ts:146

    #### Returns

    `Promise`\<\{ `enrolledDevices`: `number`; `mode`: `"local"`; `multiInstance`: `false`; `pendingApprovals`: `number`; }>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeManagedDeviceView">
    @fentaris/core / EdgeManagedDeviceView

    Defined in: packages/core/src/edge/management.ts:40

    Agent/operator-safe device view. Credentials and opaque routing IDs are omitted.

    ## Properties

    ### connected

    > `readonly` **connected**: `boolean`

    Defined in: packages/core/src/edge/management.ts:47

    ### device

    > `readonly` **device**: `EdgePublicDeviceRef`

    Defined in: packages/core/src/edge/management.ts:42

    ### lastSeenAt?

    > `readonly` `optional` **lastSeenAt?**: `number`

    Defined in: packages/core/src/edge/management.ts:48

    ### managed

    > `readonly` **managed**: `Pick`\<`EdgeManagedMetadata`, `"pools"` | `"updatedAt"`>

    Defined in: packages/core/src/edge/management.ts:45

    ### observed?

    > `readonly` `optional` **observed?**: `EdgeObservedFacts`

    Defined in: packages/core/src/edge/management.ts:44

    ### revoked

    > `readonly` **revoked**: `boolean`

    Defined in: packages/core/src/edge/management.ts:46

    ### schemaVersion

    > `readonly` **schemaVersion**: `1`

    Defined in: packages/core/src/edge/management.ts:41

    ### user

    > `readonly` **user**: `EdgeUserMetadata`

    Defined in: packages/core/src/edge/management.ts:43
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeManagedMetadata">
    @fentaris/core / EdgeManagedMetadata

    Defined in: packages/core/src/edge/inventory.ts:42

    Metadata controlled only by the control plane.

    ## Properties

    ### aliases

    > `readonly` **aliases**: readonly `EdgeDeviceAlias`\[]

    Defined in: packages/core/src/edge/inventory.ts:43

    ### pools

    > `readonly` **pools**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventory.ts:44

    ### updatedAt

    > `readonly` **updatedAt**: `number`

    Defined in: packages/core/src/edge/inventory.ts:45
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeManagementContext">
    @fentaris/core / EdgeManagementContext

    Defined in: packages/core/src/edge/management.ts:34

    Trusted request context for a tenant-scoped device operation.

    ## Properties

    ### subjectId?

    > `readonly` `optional` **subjectId?**: `string`

    Defined in: packages/core/src/edge/management.ts:36

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/management.ts:35
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeManagementPage">
    @fentaris/core / EdgeManagementPage

    Defined in: packages/core/src/edge/management.ts:60

    Canonical paginated service result.

    ## Extends

    * `EdgeManagementResult`\<readonly `T`\[]>

    ## Type Parameters

    ### T

    `T`

    ## Properties

    ### data

    > `readonly` **data**: readonly `T`\[]

    Defined in: packages/core/src/edge/management.ts:54

    #### Inherited from

    `EdgeManagementResult`.`data`

    ### nextActions

    > `readonly` **nextActions**: readonly `string`\[]

    Defined in: packages/core/src/edge/management.ts:56

    #### Inherited from

    `EdgeManagementResult`.`nextActions`

    ### ok

    > `readonly` **ok**: `true`

    Defined in: packages/core/src/edge/management.ts:53

    #### Inherited from

    `EdgeManagementResult`.`ok`

    ### pagination

    > `readonly` **pagination**: `object`

    Defined in: packages/core/src/edge/management.ts:61

    #### nextCursor?

    > `readonly` `optional` **nextCursor?**: `string`

    ### warnings

    > `readonly` **warnings**: readonly `string`\[]

    Defined in: packages/core/src/edge/management.ts:55

    #### Inherited from

    `EdgeManagementResult`.`warnings`
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeManagementResult">
    @fentaris/core / EdgeManagementResult

    Defined in: packages/core/src/edge/management.ts:52

    Canonical service result with stable warnings and next actions.

    ## Extended by

    * `EdgeManagementPage`

    ## Type Parameters

    ### T

    `T`

    ## Properties

    ### data

    > `readonly` **data**: `T`

    Defined in: packages/core/src/edge/management.ts:54

    ### nextActions

    > `readonly` **nextActions**: readonly `string`\[]

    Defined in: packages/core/src/edge/management.ts:56

    ### ok

    > `readonly` **ok**: `true`

    Defined in: packages/core/src/edge/management.ts:53

    ### warnings

    > `readonly` **warnings**: readonly `string`\[]

    Defined in: packages/core/src/edge/management.ts:55
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeMcpCancelEnvelope">
    @fentaris/core / EdgeMcpCancelEnvelope

    Defined in: packages/core/src/edge/protocol.ts:71

    A normalized edge MCP cancellation request.

    ## Properties

    ### kind

    > `readonly` **kind**: `"mcp.cancel"`

    Defined in: packages/core/src/edge/protocol.ts:73

    ### reason

    > `readonly` **reason**: `"shutdown"` | `"aborted"` | `"deadline"`

    Defined in: packages/core/src/edge/protocol.ts:76

    ### requestId

    > `readonly` **requestId**: `string`

    Defined in: packages/core/src/edge/protocol.ts:74

    ### route

    > `readonly` **route**: `EdgeMcpRoute`

    Defined in: packages/core/src/edge/protocol.ts:75

    ### version

    > `readonly` **version**: `1`

    Defined in: packages/core/src/edge/protocol.ts:72
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeMcpErrorEnvelope">
    @fentaris/core / EdgeMcpErrorEnvelope

    Defined in: packages/core/src/edge/protocol.ts:57

    A normalized failed edge MCP result.

    ## Properties

    ### error

    > `readonly` **error**: `object`

    Defined in: packages/core/src/edge/protocol.ts:63

    #### code

    > `readonly` **code**: `EdgeErrorCode`

    #### details?

    > `readonly` `optional` **details?**: `Readonly`\<`Record`\<`string`, `unknown`>>

    #### message

    > `readonly` **message**: `string`

    ### kind

    > `readonly` **kind**: `"mcp.error"`

    Defined in: packages/core/src/edge/protocol.ts:59

    ### operation

    > `readonly` **operation**: `EdgeMcpOperation`

    Defined in: packages/core/src/edge/protocol.ts:61

    ### requestId

    > `readonly` **requestId**: `string`

    Defined in: packages/core/src/edge/protocol.ts:60

    ### route

    > `readonly` **route**: `EdgeMcpRoute`

    Defined in: packages/core/src/edge/protocol.ts:62

    ### version

    > `readonly` **version**: `1`

    Defined in: packages/core/src/edge/protocol.ts:58
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeMcpRequestEnvelope">
    @fentaris/core / EdgeMcpRequestEnvelope

    Defined in: packages/core/src/edge/protocol.ts:35

    A normalized edge MCP request.

    ## Properties

    ### deadline

    > `readonly` **deadline**: `number`

    Defined in: packages/core/src/edge/protocol.ts:41

    ### kind

    > `readonly` **kind**: `"mcp.request"`

    Defined in: packages/core/src/edge/protocol.ts:37

    ### operation

    > `readonly` **operation**: `EdgeMcpOperation`

    Defined in: packages/core/src/edge/protocol.ts:39

    ### params?

    > `readonly` `optional` **params?**: `unknown`

    Defined in: packages/core/src/edge/protocol.ts:42

    ### requestId

    > `readonly` **requestId**: `string`

    Defined in: packages/core/src/edge/protocol.ts:38

    ### route

    > `readonly` **route**: `EdgeMcpRoute`

    Defined in: packages/core/src/edge/protocol.ts:40

    ### trace?

    > `readonly` `optional` **trace?**: `Readonly`\<`Record`\<`string`, `string`>>

    Defined in: packages/core/src/edge/protocol.ts:43

    ### version

    > `readonly` **version**: `1`

    Defined in: packages/core/src/edge/protocol.ts:36
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeMcpResultEnvelope">
    @fentaris/core / EdgeMcpResultEnvelope

    Defined in: packages/core/src/edge/protocol.ts:47

    A normalized successful edge MCP result.

    ## Properties

    ### kind

    > `readonly` **kind**: `"mcp.result"`

    Defined in: packages/core/src/edge/protocol.ts:49

    ### operation

    > `readonly` **operation**: `EdgeMcpOperation`

    Defined in: packages/core/src/edge/protocol.ts:51

    ### requestId

    > `readonly` **requestId**: `string`

    Defined in: packages/core/src/edge/protocol.ts:50

    ### result

    > `readonly` **result**: `unknown`

    Defined in: packages/core/src/edge/protocol.ts:53

    ### route

    > `readonly` **route**: `EdgeMcpRoute`

    Defined in: packages/core/src/edge/protocol.ts:52

    ### version

    > `readonly` **version**: `1`

    Defined in: packages/core/src/edge/protocol.ts:48
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeMcpRoute">
    @fentaris/core / EdgeMcpRoute

    Defined in: packages/core/src/edge/protocol.ts:19

    Trusted routing fields attached by the Fentaris control plane.

    ## Properties

    ### childBindingId?

    > `readonly` `optional` **childBindingId?**: `string`

    Defined in: packages/core/src/edge/protocol.ts:29

    Trusted isolated child binding, for explicit child calls only.

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/protocol.ts:21

    ### deploymentId

    > `readonly` **deploymentId**: `string`

    Defined in: packages/core/src/edge/protocol.ts:22

    ### downstreamSessionId

    > `readonly` **downstreamSessionId**: `string`

    Defined in: packages/core/src/edge/protocol.ts:23

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/protocol.ts:20

    ### orchestrationId?

    > `readonly` `optional` **orchestrationId?**: `string`

    Defined in: packages/core/src/edge/protocol.ts:31

    Trusted aggregate orchestration correlation, for fan-out only.

    ### parentRequestId?

    > `readonly` `optional` **parentRequestId?**: `string`

    Defined in: packages/core/src/edge/protocol.ts:27

    Trusted parent orchestration request, for explicit child calls only.

    ### subjectId?

    > `readonly` `optional` **subjectId?**: `string`

    Defined in: packages/core/src/edge/protocol.ts:24

    ### targetName

    > `readonly` **targetName**: `string`

    Defined in: packages/core/src/edge/protocol.ts:25
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeObservedFacts">
    @fentaris/core / EdgeObservedFacts

    Defined in: packages/core/src/edge/inventory.ts:33

    Authenticated facts observed by the Edge agent.

    ## Properties

    ### agentVersion

    > `readonly` **agentVersion**: `string`

    Defined in: packages/core/src/edge/inventory.ts:36

    ### architecture

    > `readonly` **architecture**: `string`

    Defined in: packages/core/src/edge/inventory.ts:35

    ### executionFeatures

    > `readonly` **executionFeatures**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventory.ts:37

    ### platform

    > `readonly` **platform**: `string`

    Defined in: packages/core/src/edge/inventory.ts:34

    ### reportedAt

    > `readonly` **reportedAt**: `number`

    Defined in: packages/core/src/edge/inventory.ts:38
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeOrchestrationLimits">
    @fentaris/core / EdgeOrchestrationLimits

    Defined in: packages/core/src/edge/fanout.ts:11

    ## Properties

    ### maxAggregateBytes

    > `readonly` **maxAggregateBytes**: `number`

    Defined in: packages/core/src/edge/fanout.ts:17

    ### maxChildBytes

    > `readonly` **maxChildBytes**: `number`

    Defined in: packages/core/src/edge/fanout.ts:16

    ### maxConcurrency

    > `readonly` **maxConcurrency**: `number`

    Defined in: packages/core/src/edge/fanout.ts:13

    ### maxDeadlineMs

    > `readonly` **maxDeadlineMs**: `number`

    Defined in: packages/core/src/edge/fanout.ts:14

    ### maxDevices

    > `readonly` **maxDevices**: `number`

    Defined in: packages/core/src/edge/fanout.ts:12

    ### maxSelectorCandidates

    > `readonly` **maxSelectorCandidates**: `number`

    Defined in: packages/core/src/edge/fanout.ts:15
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgePoolCandidate">
    @fentaris/core / EdgePoolCandidate

    Defined in: packages/core/src/edge/distributed.ts:6

    ## Properties

    ### capacity?

    > `readonly` `optional` **capacity?**: `number`

    Defined in: packages/core/src/edge/distributed.ts:10

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/distributed.ts:8

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/distributed.ts:7

    ### load?

    > `readonly` `optional` **load?**: `number`

    Defined in: packages/core/src/edge/distributed.ts:9
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgePoolSelectionStore">
    @fentaris/core / EdgePoolSelectionStore

    Defined in: packages/core/src/edge/distributed.ts:16

    Durable implementations must perform selection/cursor update atomically.

    ## Properties

    ### diagnostics

    > `readonly` **diagnostics**: `EdgeAdapterDiagnostics`

    Defined in: packages/core/src/edge/distributed.ts:17

    ## Methods

    ### select()

    > **select**(`tenantId`, `pool`, `candidates`, `strategy`, `stickyKey?`): `Promise`\<`EdgePoolCandidate`>

    Defined in: packages/core/src/edge/distributed.ts:18

    #### Parameters

    ##### tenantId

    `string`

    ##### pool

    `string`

    ##### candidates

    readonly `EdgePoolCandidate`\[]

    ##### strategy

    `EdgeCoordinatedPoolStrategy`

    ##### stickyKey?

    `string`

    #### Returns

    `Promise`\<`EdgePoolCandidate`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgePresence">
    @fentaris/core / EdgePresence

    Defined in: packages/core/src/edge/inventory.ts:89

    High-churn authenticated device presence.

    ## Properties

    ### capacity?

    > `readonly` `optional` **capacity?**: `EdgeCapacitySnapshot`

    Defined in: packages/core/src/edge/inventory.ts:99

    ### connectedAt

    > `readonly` **connectedAt**: `number`

    Defined in: packages/core/src/edge/inventory.ts:96

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/inventory.ts:94

    ### connectionId

    > `readonly` **connectionId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:93

    ### credentialId

    > `readonly` **credentialId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:92

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:91

    ### heartbeat

    > `readonly` **heartbeat**: `EdgeHeartbeatFreshness`

    Defined in: packages/core/src/edge/inventory.ts:97

    ### load?

    > `readonly` `optional` **load?**: `EdgeLoadSnapshot`

    Defined in: packages/core/src/edge/inventory.ts:100

    ### protocolVersion

    > `readonly` **protocolVersion**: `number`

    Defined in: packages/core/src/edge/inventory.ts:95

    ### status

    > `readonly` **status**: `EdgePresenceStatus`

    Defined in: packages/core/src/edge/inventory.ts:98

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:90
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgePresenceReportMessage">
    @fentaris/core / EdgePresenceReportMessage

    Defined in: packages/core/src/edge/controlProtocol.ts:85

    Authenticated protocol-v2 observed facts and dynamic state.

    ## Extends

    * `EdgeProtocolClaims`

    ## Properties

    ### capacity?

    > `readonly` `optional` **capacity?**: `EdgeCapacitySnapshot`

    Defined in: packages/core/src/edge/controlProtocol.ts:89

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:36

    #### Inherited from

    `EdgeProtocolClaims`.`connectionGeneration`

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:35

    #### Inherited from

    `EdgeProtocolClaims`.`edgeNodeId`

    ### kind

    > `readonly` **kind**: `"edge.presence"`

    Defined in: packages/core/src/edge/controlProtocol.ts:87

    ### load?

    > `readonly` `optional` **load?**: `EdgeLoadSnapshot`

    Defined in: packages/core/src/edge/controlProtocol.ts:90

    ### observed

    > `readonly` **observed**: `EdgeObservedFacts`

    Defined in: packages/core/src/edge/controlProtocol.ts:88

    ### readiness

    > `readonly` **readiness**: readonly `EdgeReadinessReport`\[]

    Defined in: packages/core/src/edge/controlProtocol.ts:91

    ### reportedAt

    > `readonly` **reportedAt**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:92

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:34

    #### Inherited from

    `EdgeProtocolClaims`.`tenantId`

    ### version

    > `readonly` **version**: `2` | `3`

    Defined in: packages/core/src/edge/controlProtocol.ts:86
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgePresenceStore">
    @fentaris/core / EdgePresenceStore

    Defined in: packages/core/src/edge/inventory.ts:181

    Replaceable authenticated presence store.

    ## Properties

    ### diagnostics

    > `readonly` **diagnostics**: `EdgeAdapterDiagnostics`

    Defined in: packages/core/src/edge/inventory.ts:182

    ## Methods

    ### get()

    > **get**(`tenantId`, `edgeNodeId`): `Promise`\<`EdgePresence` | `undefined`>

    Defined in: packages/core/src/edge/inventory.ts:183

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`EdgePresence` | `undefined`>

    ### purgeStale()

    > **purgeStale**(`evaluatedAt`): `Promise`\<readonly `EdgePresence`\[]>

    Defined in: packages/core/src/edge/inventory.ts:186

    #### Parameters

    ##### evaluatedAt

    `number`

    #### Returns

    `Promise`\<readonly `EdgePresence`\[]>

    ### put()

    > **put**(`presence`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/inventory.ts:184

    #### Parameters

    ##### presence

    `EdgePresence`

    #### Returns

    `Promise`\<`void`>

    ### remove()

    > **remove**(`tenantId`, `edgeNodeId`, `connectionGeneration`): `Promise`\<`EdgePresence` | `undefined`>

    Defined in: packages/core/src/edge/inventory.ts:185

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### connectionGeneration

    `number`

    #### Returns

    `Promise`\<`EdgePresence` | `undefined`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeProductionAdapterDiagnostic">
    @fentaris/core / EdgeProductionAdapterDiagnostic

    Defined in: packages/core/src/edge/distributed.ts:128

    ## Properties

    ### adapterRole

    > `readonly` **adapterRole**: `string`

    Defined in: packages/core/src/edge/distributed.ts:131

    ### code

    > `readonly` **code**: `"EDGE_ADAPTER_NOT_PRODUCTION_READY"` | `"EDGE_ADAPTER_NOT_DURABLE"` | `"EDGE_ADAPTER_NOT_MULTI_INSTANCE"`

    Defined in: packages/core/src/edge/distributed.ts:130

    ### message

    > `readonly` **message**: `string`

    Defined in: packages/core/src/edge/distributed.ts:132

    ### nextActions

    > `readonly` **nextActions**: readonly `string`\[]

    Defined in: packages/core/src/edge/distributed.ts:133

    ### severity

    > `readonly` **severity**: `"error"` | `"warning"`

    Defined in: packages/core/src/edge/distributed.ts:129
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeProtocolClaims">
    @fentaris/core / EdgeProtocolClaims

    Defined in: packages/core/src/edge/controlProtocol.ts:33

    Common trusted routing claims carried by edge control messages.

    ## Extended by

    * `EdgeCapabilityManifestMessage`
    * `EdgeDesiredStateAckMessage`
    * `EdgeDesiredStateMessage`
    * `EdgeHeartbeatMessage`
    * `EdgeHelloAckMessage`
    * `EdgeLifecycleMessage`
    * `EdgeInstallationApprovalMessage`
    * `EdgeInstallationControlMessage`
    * `EdgeInstallationStatusMessage`
    * `EdgePresenceReportMessage`
    * `EdgeSetupStatusMessage`

    ## Properties

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:36

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:35

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:34
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgePublicDeviceRef">
    @fentaris/core / EdgePublicDeviceRef

    Defined in: packages/core/src/edge/inventory.ts:57

    Stable agent-visible device selector. It intentionally contains no opaque IDs.

    ## Properties

    ### inventoryVersion

    > `readonly` **inventoryVersion**: `number`

    Defined in: packages/core/src/edge/inventory.ts:59

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/edge/inventory.ts:58
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgePublicDeviceView">
    @fentaris/core / EdgePublicDeviceView

    Defined in: packages/core/src/edge/inventoryService.ts:58

    Agent-visible Edge inventory view.

    ## Properties

    ### agentVersion?

    > `readonly` `optional` **agentVersion?**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:64

    ### architecture?

    > `readonly` `optional` **architecture?**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:63

    ### capacity?

    > `readonly` `optional` **capacity?**: `EdgeCapacitySnapshot`

    Defined in: packages/core/src/edge/inventoryService.ts:70

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:60

    ### device

    > `readonly` **device**: `EdgePublicDeviceRef`

    Defined in: packages/core/src/edge/inventoryService.ts:59

    ### executionFeatures

    > `readonly` **executionFeatures**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:65

    ### heartbeatFresh

    > `readonly` **heartbeatFresh**: `boolean`

    Defined in: packages/core/src/edge/inventoryService.ts:68

    ### lastHeartbeatAt?

    > `readonly` `optional` **lastHeartbeatAt?**: `number`

    Defined in: packages/core/src/edge/inventoryService.ts:69

    ### load?

    > `readonly` `optional` **load?**: `EdgeLoadSnapshot`

    Defined in: packages/core/src/edge/inventoryService.ts:71

    ### platform?

    > `readonly` `optional` **platform?**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:62

    ### pools

    > `readonly` **pools**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:66

    ### readiness

    > `readonly` **readiness**: readonly `EdgePublicReadinessSummary`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:72

    ### status

    > `readonly` **status**: `EdgePresenceStatus`

    Defined in: packages/core/src/edge/inventoryService.ts:67

    ### tags

    > `readonly` **tags**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:61

    ### warnings

    > `readonly` **warnings**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:73
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgePublicInventoryPage">
    @fentaris/core / EdgePublicInventoryPage

    Defined in: packages/core/src/edge/inventoryService.ts:91

    Cursor-paginated policy-filtered inventory response.

    ## Properties

    ### devices

    > `readonly` **devices**: readonly `EdgePublicDeviceView`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:92

    ### nextCursor?

    > `readonly` `optional` **nextCursor?**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:93

    ### warnings

    > `readonly` **warnings**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:94
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgePublicReadinessSummary">
    @fentaris/core / EdgePublicReadinessSummary

    Defined in: packages/core/src/edge/inventoryService.ts:34

    Policy-filtered readiness summary without local grant or path values.

    ## Properties

    ### deploymentId

    > `readonly` **deploymentId**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:35

    ### desiredVersion?

    > `readonly` `optional` **desiredVersion?**: `number`

    Defined in: packages/core/src/edge/inventoryService.ts:44

    ### fresh

    > `readonly` **fresh**: `boolean`

    Defined in: packages/core/src/edge/inventoryService.ts:39

    ### installation?

    > `readonly` `optional` **installation?**: `object`

    Defined in: packages/core/src/edge/inventoryService.ts:46

    #### attemptId?

    > `readonly` `optional` **attemptId?**: `string`

    #### digest?

    > `readonly` `optional` **digest?**: `` `sha256:${string}` ``

    #### reasonCode?

    > `readonly` `optional` **reasonCode?**: `InstallationReasonCode`

    #### retryable

    > `readonly` **retryable**: `boolean`

    #### state

    > `readonly` **state**: `InstallationLifecycleState`

    ### launchDigest?

    > `readonly` `optional` **launchDigest?**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:45

    ### nextActions?

    > `readonly` `optional` **nextActions?**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:43

    ### observedAt

    > `readonly` **observedAt**: `number`

    Defined in: packages/core/src/edge/inventoryService.ts:38

    ### reasonCategory?

    > `readonly` `optional` **reasonCategory?**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:42

    ### recipeVersion?

    > `readonly` `optional` **recipeVersion?**: `number`

    Defined in: packages/core/src/edge/inventoryService.ts:37

    ### resourceCount?

    > `readonly` `optional` **resourceCount?**: `number`

    Defined in: packages/core/src/edge/inventoryService.ts:41

    ### setup

    > `readonly` **setup**: `object`

    Defined in: packages/core/src/edge/inventoryService.ts:53

    #### state

    > `readonly` **state**: `"pending"` | `"ready"` | `"blocked"` | `"not-started"`

    ### status

    > `readonly` **status**: `EdgeDeploymentReadinessStatus`

    Defined in: packages/core/src/edge/inventoryService.ts:36

    ### toolCount?

    > `readonly` `optional` **toolCount?**: `number`

    Defined in: packages/core/src/edge/inventoryService.ts:40

    ### workload

    > `readonly` **workload**: `object`

    Defined in: packages/core/src/edge/inventoryService.ts:54

    #### state

    > `readonly` **state**: `"starting"` | `"ready"` | `"degraded"` | `"stopped"` | `"not-started"`
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeReadinessReport">
    @fentaris/core / EdgeReadinessReport

    Defined in: packages/core/src/edge/controlProtocol.ts:68

    Public readiness report carried only by protocol v2.

    ## Properties

    ### attemptId?

    > `readonly` `optional` **attemptId?**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:78

    ### deploymentId

    > `readonly` **deploymentId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:69

    ### desiredVersion?

    > `readonly` `optional` **desiredVersion?**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:72

    ### expiresAt?

    > `readonly` `optional` **expiresAt?**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:80

    ### installationDigest?

    > `readonly` `optional` **installationDigest?**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/controlProtocol.ts:73

    ### installationState?

    > `readonly` `optional` **installationState?**: `InstallationLifecycleState`

    Defined in: packages/core/src/edge/controlProtocol.ts:75

    ### launchDigest?

    > `readonly` `optional` **launchDigest?**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:74

    ### observedAt

    > `readonly` **observedAt**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:79

    ### reasonCategory?

    > `readonly` `optional` **reasonCategory?**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:81

    ### reasonCode?

    > `readonly` `optional` **reasonCode?**: `InstallationReasonCode`

    Defined in: packages/core/src/edge/controlProtocol.ts:76

    ### recipeVersion?

    > `readonly` `optional` **recipeVersion?**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:71

    ### retryable?

    > `readonly` `optional` **retryable?**: `boolean`

    Defined in: packages/core/src/edge/controlProtocol.ts:77

    ### status

    > `readonly` **status**: `EdgeDeploymentReadinessStatus`

    Defined in: packages/core/src/edge/controlProtocol.ts:70
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeReadinessStore">
    @fentaris/core / EdgeReadinessStore

    Defined in: packages/core/src/edge/inventory.ts:190

    Replaceable per-deployment readiness store.

    ## Properties

    ### diagnostics

    > `readonly` **diagnostics**: `EdgeAdapterDiagnostics`

    Defined in: packages/core/src/edge/inventory.ts:191

    ## Methods

    ### delete()

    > **delete**(`tenantId`, `edgeNodeId`, `deploymentId`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/inventory.ts:195

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`void`>

    ### get()

    > **get**(`tenantId`, `edgeNodeId`, `deploymentId`): `Promise`\<`EdgeDeploymentReadiness` | `undefined`>

    Defined in: packages/core/src/edge/inventory.ts:192

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`EdgeDeploymentReadiness` | `undefined`>

    ### list()

    > **list**(`tenantId`, `edgeNodeId`): `Promise`\<readonly `EdgeDeploymentReadiness`\[]>

    Defined in: packages/core/src/edge/inventory.ts:193

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<readonly `EdgeDeploymentReadiness`\[]>

    ### purgeExpired()

    > **purgeExpired**(`evaluatedAt`): `Promise`\<readonly `EdgeDeploymentReadiness`\[]>

    Defined in: packages/core/src/edge/inventory.ts:196

    #### Parameters

    ##### evaluatedAt

    `number`

    #### Returns

    `Promise`\<readonly `EdgeDeploymentReadiness`\[]>

    ### put()

    > **put**(`readiness`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/inventory.ts:194

    #### Parameters

    ##### readiness

    `EdgeDeploymentReadiness`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeReconciliationTriggerService">
    @fentaris/core / EdgeReconciliationTriggerService

    Defined in: packages/core/src/edge/integratedServices.ts:129

    Reconciliation scheduler / trigger surface.

    ## Methods

    ### enqueue()

    > **enqueue**(`input`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedServices.ts:130

    #### Parameters

    ##### input

    ###### edgeNodeId

    `string`

    ###### tenantId

    `string`

    ###### trigger

    `EdgeReconciliationTrigger`

    #### Returns

    `Promise`\<`void`>

    ### reconcileNow()

    > **reconcileNow**(`input`): `Promise`\<`EdgeDesiredAssignmentSnapshot` | `undefined`>

    Defined in: packages/core/src/edge/integratedServices.ts:135

    #### Parameters

    ##### input

    ###### edgeNodeId

    `string`

    ###### tenantId

    `string`

    ###### trigger

    `EdgeReconciliationTrigger`

    #### Returns

    `Promise`\<`EdgeDesiredAssignmentSnapshot` | `undefined`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeResultCorrelation">
    @fentaris/core / EdgeResultCorrelation

    Defined in: packages/core/src/edge/distributed.ts:28

    Durable in-flight result correlation used across proxy/gateway instances.

    ## Properties

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/distributed.ts:32

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/distributed.ts:31

    ### expiresAt

    > `readonly` **expiresAt**: `number`

    Defined in: packages/core/src/edge/distributed.ts:34

    ### ownerInstanceId

    > `readonly` **ownerInstanceId**: `string`

    Defined in: packages/core/src/edge/distributed.ts:33

    ### requestId

    > `readonly` **requestId**: `string`

    Defined in: packages/core/src/edge/distributed.ts:29

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/distributed.ts:30
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeResultCorrelationStore">
    @fentaris/core / EdgeResultCorrelationStore

    Defined in: packages/core/src/edge/distributed.ts:37

    ## Properties

    ### diagnostics

    > `readonly` **diagnostics**: `EdgeAdapterDiagnostics`

    Defined in: packages/core/src/edge/distributed.ts:38

    ## Methods

    ### purgeExpired()

    > **purgeExpired**(`at`): `Promise`\<readonly `EdgeResultCorrelation`\[]>

    Defined in: packages/core/src/edge/distributed.ts:41

    #### Parameters

    ##### at

    `number`

    #### Returns

    `Promise`\<readonly `EdgeResultCorrelation`\[]>

    ### put()

    > **put**(`value`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/distributed.ts:39

    #### Parameters

    ##### value

    `EdgeResultCorrelation`

    #### Returns

    `Promise`\<`void`>

    ### take()

    > **take**(`requestId`): `Promise`\<`EdgeResultCorrelation` | `undefined`>

    Defined in: packages/core/src/edge/distributed.ts:40

    #### Parameters

    ##### requestId

    `string`

    #### Returns

    `Promise`\<`EdgeResultCorrelation` | `undefined`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeRuntimeEvent">
    @fentaris/core / EdgeRuntimeEvent

    Defined in: packages/core/src/edge/observability.ts:27

    ## Properties

    ### connectionGeneration?

    > `readonly` `optional` **connectionGeneration?**: `number`

    Defined in: packages/core/src/edge/observability.ts:36

    ### deploymentId?

    > `readonly` `optional` **deploymentId?**: `string`

    Defined in: packages/core/src/edge/observability.ts:34

    ### downstreamSessionId?

    > `readonly` `optional` **downstreamSessionId?**: `string`

    Defined in: packages/core/src/edge/observability.ts:37

    ### durationMs?

    > `readonly` `optional` **durationMs?**: `number`

    Defined in: packages/core/src/edge/observability.ts:30

    ### edgeNodeId?

    > `readonly` `optional` **edgeNodeId?**: `string`

    Defined in: packages/core/src/edge/observability.ts:35

    ### metadata?

    > `readonly` `optional` **metadata?**: `Readonly`\<`Record`\<`string`, `unknown`>>

    Defined in: packages/core/src/edge/observability.ts:40

    ### name

    > `readonly` **name**: `EdgeRuntimeEventName`

    Defined in: packages/core/src/edge/observability.ts:28

    ### occurredAt

    > `readonly` **occurredAt**: `number`

    Defined in: packages/core/src/edge/observability.ts:29

    ### outcome?

    > `readonly` `optional` **outcome?**: `string`

    Defined in: packages/core/src/edge/observability.ts:39

    ### requestId?

    > `readonly` `optional` **requestId?**: `string`

    Defined in: packages/core/src/edge/observability.ts:38

    ### subjectId?

    > `readonly` `optional` **subjectId?**: `string`

    Defined in: packages/core/src/edge/observability.ts:31

    ### targetName?

    > `readonly` `optional` **targetName?**: `string`

    Defined in: packages/core/src/edge/observability.ts:33

    ### tenantId?

    > `readonly` `optional` **tenantId?**: `string`

    Defined in: packages/core/src/edge/observability.ts:32
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeSelectionExplanation">
    @fentaris/core / EdgeSelectionExplanation

    Defined in: packages/core/src/edge/inventoryService.ts:124

    Redacted selection explanation.

    ## Properties

    ### appliedPreferences

    > `readonly` **appliedPreferences**: readonly `EdgeSelectionPreference`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:126

    ### evaluatedAt

    > `readonly` **evaluatedAt**: `number`

    Defined in: packages/core/src/edge/inventoryService.ts:130

    ### evaluatedCandidates

    > `readonly` **evaluatedCandidates**: `number`

    Defined in: packages/core/src/edge/inventoryService.ts:128

    ### inventoryVersion

    > `readonly` **inventoryVersion**: `number`

    Defined in: packages/core/src/edge/inventoryService.ts:129

    ### satisfiedRequirements

    > `readonly` **satisfiedRequirements**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:125

    ### strategy

    > `readonly` **strategy**: `EdgeSelectionStrategy`

    Defined in: packages/core/src/edge/inventoryService.ts:127
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeSelectionRequest">
    @fentaris/core / EdgeSelectionRequest

    Defined in: packages/core/src/edge/inventoryService.ts:115

    Declarative selector evaluated against one bounded visible snapshot.

    ## Properties

    ### maxCandidates?

    > `readonly` `optional` **maxCandidates?**: `number`

    Defined in: packages/core/src/edge/inventoryService.ts:120

    ### prefer?

    > `readonly` `optional` **prefer?**: readonly `EdgeSelectionPreference`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:117

    ### requires?

    > `readonly` `optional` **requires?**: `EdgeSelectionRequirements`

    Defined in: packages/core/src/edge/inventoryService.ts:116

    ### strategy?

    > `readonly` `optional` **strategy?**: `EdgeSelectionStrategy`

    Defined in: packages/core/src/edge/inventoryService.ts:118

    ### userDefaultDeviceName?

    > `readonly` `optional` **userDefaultDeviceName?**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:119
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeSelectionRequirements">
    @fentaris/core / EdgeSelectionRequirements

    Defined in: packages/core/src/edge/inventoryService.ts:98

    Hard constraints for declarative device selection.

    ## Properties

    ### deploymentId?

    > `readonly` `optional` **deploymentId?**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:103

    ### features?

    > `readonly` `optional` **features?**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:100

    ### installationDigest?

    > `readonly` `optional` **installationDigest?**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/inventoryService.ts:104

    ### launchDigest?

    > `readonly` `optional` **launchDigest?**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:105

    ### platforms?

    > `readonly` `optional` **platforms?**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:101

    ### pool?

    > `readonly` `optional` **pool?**: `string`

    Defined in: packages/core/src/edge/inventoryService.ts:102

    ### tags?

    > `readonly` `optional` **tags?**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:99
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeSelectionResult">
    @fentaris/core / EdgeSelectionResult

    Defined in: packages/core/src/edge/inventoryService.ts:134

    Selected public device plus a safe explanation.

    ## Properties

    ### device

    > `readonly` **device**: `EdgePublicDeviceView`

    Defined in: packages/core/src/edge/inventoryService.ts:135

    ### explanation

    > `readonly` **explanation**: `EdgeSelectionExplanation`

    Defined in: packages/core/src/edge/inventoryService.ts:136
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeSelectionSetResult">
    @fentaris/core / EdgeSelectionSetResult

    Defined in: packages/core/src/edge/inventoryService.ts:140

    Immutable bounded device set selected from one authorized inventory snapshot.

    ## Properties

    ### devices

    > `readonly` **devices**: readonly `EdgePublicDeviceView`\[]

    Defined in: packages/core/src/edge/inventoryService.ts:141

    ### explanation

    > `readonly` **explanation**: `EdgeSelectionExplanation`

    Defined in: packages/core/src/edge/inventoryService.ts:142
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeSerializationLimits">
    @fentaris/core / EdgeSerializationLimits

    Defined in: packages/core/src/edge/observability.ts:120

    ## Properties

    ### maxArrayItems?

    > `readonly` `optional` **maxArrayItems?**: `number`

    Defined in: packages/core/src/edge/observability.ts:122

    ### maxBytes?

    > `readonly` `optional` **maxBytes?**: `number`

    Defined in: packages/core/src/edge/observability.ts:124

    ### maxDepth?

    > `readonly` `optional` **maxDepth?**: `number`

    Defined in: packages/core/src/edge/observability.ts:121

    ### maxStringLength?

    > `readonly` `optional` **maxStringLength?**: `number`

    Defined in: packages/core/src/edge/observability.ts:123
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeSessionPinnerInputs">
    @fentaris/core / EdgeSessionPinnerInputs

    Defined in: packages/core/src/edge/sessionPinning.ts:70

    Inputs for constructing an EdgeSessionPinner.

    ## Extends

    * `PlacementResolverInputs`

    ## Properties

    ### bindings

    > `readonly` **bindings**: readonly `PlacementBindingModel`\[]

    Defined in: packages/core/src/edge/placement.ts:97

    Normalized placement bindings.

    #### Inherited from

    `PlacementResolverInputs`.`bindings`

    ### deviceResolver

    > `readonly` **deviceResolver**: `DeviceResolver`

    Defined in: packages/core/src/edge/sessionPinning.ts:72

    Control-plane device resolver. Required for edge targets.

    ### expiry?

    > `readonly` `optional` **expiry?**: `SessionBindingExpiryOptions`

    Defined in: packages/core/src/edge/sessionPinning.ts:76

    Binding expiry configuration for the default in-memory store.

    ### selectionStore?

    > `readonly` `optional` **selectionStore?**: `EdgeSessionSelectionStore`

    Defined in: packages/core/src/edge/sessionPinning.ts:78

    Durable pre-pin selections, when agent-native selection is enabled.

    ### store?

    > `readonly` `optional` **store?**: `SessionBindingStore`

    Defined in: packages/core/src/edge/sessionPinning.ts:74

    Replaceable binding store; defaults to InMemorySessionBindingStore.

    ### targets

    > `readonly` **targets**: `ReadonlyMap`\<`string`, `ExecutionTarget`>

    Defined in: packages/core/src/edge/placement.ts:95

    Registered execution targets, keyed by name.

    #### Inherited from

    `PlacementResolverInputs`.`targets`
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeSessionSelection">
    @fentaris/core / EdgeSessionSelection

    Defined in: packages/core/src/edge/inventory.ts:134

    Durable pre-pin selection requested by an authorized session.

    ## Properties

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:139

    ### expiresAt

    > `readonly` **expiresAt**: `number`

    Defined in: packages/core/src/edge/inventory.ts:142

    ### inventoryVersion

    > `readonly` **inventoryVersion**: `number`

    Defined in: packages/core/src/edge/inventory.ts:140

    ### selectedAt

    > `readonly` **selectedAt**: `number`

    Defined in: packages/core/src/edge/inventory.ts:141

    ### sessionId

    > `readonly` **sessionId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:135

    ### subjectId

    > `readonly` **subjectId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:136

    ### targetName

    > `readonly` **targetName**: `string`

    Defined in: packages/core/src/edge/inventory.ts:137

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/inventory.ts:138
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeSessionSelectionRequest">
    @fentaris/core / EdgeSessionSelectionRequest

    Defined in: packages/core/src/edge/sessionSelection.ts:15

    ## Properties

    ### deploymentId?

    > `readonly` `optional` **deploymentId?**: `string`

    Defined in: packages/core/src/edge/sessionSelection.ts:21

    ### device

    > `readonly` **device**: `EdgePublicDeviceRef`

    Defined in: packages/core/src/edge/sessionSelection.ts:20

    ### sessionId

    > `readonly` **sessionId**: `string`

    Defined in: packages/core/src/edge/sessionSelection.ts:16

    ### subjectId

    > `readonly` **subjectId**: `string`

    Defined in: packages/core/src/edge/sessionSelection.ts:17

    ### targetName

    > `readonly` **targetName**: `string`

    Defined in: packages/core/src/edge/sessionSelection.ts:19

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/sessionSelection.ts:18

    ### ttlMs?

    > `readonly` `optional` **ttlMs?**: `number`

    Defined in: packages/core/src/edge/sessionSelection.ts:22
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeSessionSelectionServiceOptions">
    @fentaris/core / EdgeSessionSelectionServiceOptions

    Defined in: packages/core/src/edge/sessionSelection.ts:25

    ## Properties

    ### bindings

    > `readonly` **bindings**: `SessionBindingStore`

    Defined in: packages/core/src/edge/sessionSelection.ts:27

    ### defaultTtlMs?

    > `readonly` `optional` **defaultTtlMs?**: `number`

    Defined in: packages/core/src/edge/sessionSelection.ts:30

    ### inventory

    > `readonly` **inventory**: `EdgeInventoryService`

    Defined in: packages/core/src/edge/sessionSelection.ts:28

    ### maxTtlMs?

    > `readonly` `optional` **maxTtlMs?**: `number`

    Defined in: packages/core/src/edge/sessionSelection.ts:31

    ### now?

    > `readonly` `optional` **now?**: () => `number`

    Defined in: packages/core/src/edge/sessionSelection.ts:29

    #### Returns

    `number`

    ### selections

    > `readonly` **selections**: `EdgeSessionSelectionStore`

    Defined in: packages/core/src/edge/sessionSelection.ts:26
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeSessionSelectionStore">
    @fentaris/core / EdgeSessionSelectionStore

    Defined in: packages/core/src/edge/inventory.ts:200

    Replaceable pre-pin session-selection store.

    ## Properties

    ### diagnostics

    > `readonly` **diagnostics**: `EdgeAdapterDiagnostics`

    Defined in: packages/core/src/edge/inventory.ts:201

    ## Methods

    ### delete()

    > **delete**(`sessionId`, `subjectId`, `targetName`): `Promise`\<`EdgeSessionSelection` | `undefined`>

    Defined in: packages/core/src/edge/inventory.ts:204

    #### Parameters

    ##### sessionId

    `string`

    ##### subjectId

    `string`

    ##### targetName

    `string`

    #### Returns

    `Promise`\<`EdgeSessionSelection` | `undefined`>

    ### deleteSession()

    > **deleteSession**(`sessionId`): `Promise`\<readonly `EdgeSessionSelection`\[]>

    Defined in: packages/core/src/edge/inventory.ts:205

    #### Parameters

    ##### sessionId

    `string`

    #### Returns

    `Promise`\<readonly `EdgeSessionSelection`\[]>

    ### get()

    > **get**(`sessionId`, `subjectId`, `targetName`): `Promise`\<`EdgeSessionSelection` | `undefined`>

    Defined in: packages/core/src/edge/inventory.ts:203

    #### Parameters

    ##### sessionId

    `string`

    ##### subjectId

    `string`

    ##### targetName

    `string`

    #### Returns

    `Promise`\<`EdgeSessionSelection` | `undefined`>

    ### purgeExpired()

    > **purgeExpired**(`evaluatedAt`): `Promise`\<readonly `EdgeSessionSelection`\[]>

    Defined in: packages/core/src/edge/inventory.ts:206

    #### Parameters

    ##### evaluatedAt

    `number`

    #### Returns

    `Promise`\<readonly `EdgeSessionSelection`\[]>

    ### put()

    > **put**(`selection`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/inventory.ts:202

    #### Parameters

    ##### selection

    `EdgeSessionSelection`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeSetupStatusMessage">
    @fentaris/core / EdgeSetupStatusMessage

    Defined in: packages/core/src/edge/controlProtocol.ts:174

    Common trusted routing claims carried by edge control messages.

    ## Extends

    * `EdgeProtocolClaims`

    ## Properties

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:36

    #### Inherited from

    `EdgeProtocolClaims`.`connectionGeneration`

    ### deploymentId

    > `readonly` **deploymentId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:177

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:35

    #### Inherited from

    `EdgeProtocolClaims`.`edgeNodeId`

    ### grantRefs?

    > `readonly` `optional` **grantRefs?**: `Readonly`\<`Record`\<`string`, `string`>>

    Defined in: packages/core/src/edge/controlProtocol.ts:181

    ### kind

    > `readonly` **kind**: `"edge.setup-status"`

    Defined in: packages/core/src/edge/controlProtocol.ts:176

    ### recipeDigest

    > `readonly` **recipeDigest**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:178

    ### setupSchemaVersion

    > `readonly` **setupSchemaVersion**: `number`

    Defined in: packages/core/src/edge/controlProtocol.ts:179

    ### status

    > `readonly` **status**: `"denied"` | `"pending"` | `"ready"` | `"revoked"`

    Defined in: packages/core/src/edge/controlProtocol.ts:180

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/controlProtocol.ts:34

    #### Inherited from

    `EdgeProtocolClaims`.`tenantId`

    ### version

    > `readonly` **version**: `EdgeProtocolVersion`

    Defined in: packages/core/src/edge/controlProtocol.ts:175
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeSetupStatusStore">
    @fentaris/core / EdgeSetupStatusStore

    Defined in: packages/core/src/edge/controlPlane.ts:113

    Replaceable edge setup/readiness store contract.

    ## Methods

    ### get()

    > **get**(`tenantId`, `edgeNodeId`, `deploymentId`): `Promise`\<`EdgeSetupStatusMessage` | `undefined`>

    Defined in: packages/core/src/edge/controlPlane.ts:114

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`EdgeSetupStatusMessage` | `undefined`>

    ### put()

    > **put**(`status`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/controlPlane.ts:115

    #### Parameters

    ##### status

    `EdgeSetupStatusMessage`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeSingleCallCoordinatorOptions">
    @fentaris/core / EdgeSingleCallCoordinatorOptions

    Defined in: packages/core/src/edge/controlInvocation.ts:29

    ## Properties

    ### children

    > `readonly` **children**: `EdgeChildBindingManager`

    Defined in: packages/core/src/edge/controlInvocation.ts:31

    ### createId?

    > `readonly` `optional` **createId?**: () => `string`

    Defined in: packages/core/src/edge/controlInvocation.ts:43

    #### Returns

    `string`

    ### defaultDeadlineMs?

    > `readonly` `optional` **defaultDeadlineMs?**: `number`

    Defined in: packages/core/src/edge/controlInvocation.ts:45

    ### dispatch

    > `readonly` **dispatch**: (`route`, `toolName`, `args`, `context`) => `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/edge/controlInvocation.ts:37

    #### Parameters

    ##### route

    `EdgeTrustedChildRoute`

    ##### toolName

    `string`

    ##### args

    `Record`\<`string`, `unknown`>

    ##### context

    `ProxyContext`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    ### inventory

    > `readonly` **inventory**: `EdgeInventoryService`

    Defined in: packages/core/src/edge/controlInvocation.ts:30

    ### listTools

    > `readonly` **listTools**: (`user`, `identity`, `subject`) => `Promise`\<readonly `object`\[]>

    Defined in: packages/core/src/edge/controlInvocation.ts:32

    #### Parameters

    ##### user

    `UserContext`

    ##### identity

    `IdentityMetadata` | `undefined`

    ##### subject

    `ResolvedSubject` | `undefined`

    #### Returns

    `Promise`\<readonly `object`\[]>

    ### maxDeadlineMs?

    > `readonly` `optional` **maxDeadlineMs?**: `number`

    Defined in: packages/core/src/edge/controlInvocation.ts:46

    ### now?

    > `readonly` `optional` **now?**: () => `number`

    Defined in: packages/core/src/edge/controlInvocation.ts:44

    #### Returns

    `number`
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeSingleCallStructuredResult">
    @fentaris/core / EdgeSingleCallStructuredResult

    Defined in: packages/core/src/edge/controlInvocation.ts:49

    ## Properties

    ### correlationId

    > `readonly` **correlationId**: `string`

    Defined in: packages/core/src/edge/controlInvocation.ts:52

    ### device

    > `readonly` **device**: `EdgePublicDeviceRef`

    Defined in: packages/core/src/edge/controlInvocation.ts:51

    ### nextActions

    > `readonly` **nextActions**: readonly `string`\[]

    Defined in: packages/core/src/edge/controlInvocation.ts:55

    ### result

    > `readonly` **result**: `object`

    Defined in: packages/core/src/edge/controlInvocation.ts:53

    #### Index Signature

    \[`key`: `string`]: `unknown`

    #### \_meta?

    > `optional` **\_meta?**: `object`

    ##### Index Signature

    \[`key`: `string`]: `unknown`

    ##### \_meta.io.modelcontextprotocol/related-task?

    > `optional` **io.modelcontextprotocol/related-task?**: `object`

    If specified, this request is related to the provided task.

    ##### \_meta.io.modelcontextprotocol/related-task.taskId

    > **taskId**: `string`

    ##### \_meta.progressToken?

    > `optional` **progressToken?**: `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    #### content

    > **content**: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]

    #### isError?

    > `optional` **isError?**: `boolean`

    #### structuredContent?

    > `optional` **structuredContent?**: `object`

    ##### Index Signature

    \[`key`: `string`]: `unknown`

    ### status

    > `readonly` **status**: `"failed"` | `"succeeded"`

    Defined in: packages/core/src/edge/controlInvocation.ts:50

    ### warnings

    > `readonly` **warnings**: readonly `string`\[]

    Defined in: packages/core/src/edge/controlInvocation.ts:54
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeTargetOptions">
    @fentaris/core / EdgeTargetOptions

    Defined in: packages/core/src/edge/target.ts:147

    Options for edge.

    ## Properties

    ### device

    > **device**: `DeviceSelector`

    Defined in: packages/core/src/edge/target.ts:149

    Device selector for the target.

    ### strategy?

    > `optional` **strategy?**: `TargetSelectionStrategy`

    Defined in: packages/core/src/edge/target.ts:151

    Selection strategy for pool resolution.
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeTelemetrySink">
    @fentaris/core / EdgeTelemetrySink

    Defined in: packages/core/src/edge/observability.ts:43

    ## Methods

    ### emit()

    > **emit**(`event`): `void` | `Promise`\<`void`>

    Defined in: packages/core/src/edge/observability.ts:44

    #### Parameters

    ##### event

    `EdgeRuntimeEvent`

    #### Returns

    `void` | `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeTokenIssuanceService">
    @fentaris/core / EdgeTokenIssuanceService

    Defined in: packages/core/src/edge/integratedServices.ts:65

    Token issuance and refresh rotation.

    ## Methods

    ### inspectAccessToken()

    > **inspectAccessToken**(`accessToken`): `Promise`\<\{ `deviceCodeHash`: `string`; `expiresAt`: `number`; `subjectId`: `string`; `tenantId`: `string`; } | `undefined`>

    Defined in: packages/core/src/edge/integratedServices.ts:69

    #### Parameters

    ##### accessToken

    `string`

    #### Returns

    `Promise`\<\{ `deviceCodeHash`: `string`; `expiresAt`: `number`; `subjectId`: `string`; `tenantId`: `string`; } | `undefined`>

    ### issueForApprovedSession()

    > **issueForApprovedSession**(`session`): `Promise`\<`EdgeControlPlaneTokenResponse`>

    Defined in: packages/core/src/edge/integratedServices.ts:66

    #### Parameters

    ##### session

    `EdgeAuthorizationSession`

    #### Returns

    `Promise`\<`EdgeControlPlaneTokenResponse`>

    ### refresh()

    > **refresh**(`request`): `Promise`\<`EdgeControlPlaneTokenResponse`>

    Defined in: packages/core/src/edge/integratedServices.ts:67

    #### Parameters

    ##### request

    `EdgeTokenRefreshRequest`

    #### Returns

    `Promise`\<`EdgeControlPlaneTokenResponse`>

    ### revokeDeviceTokens()

    > **revokeDeviceTokens**(`tenantId`, `edgeNodeId`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedServices.ts:68

    #### Parameters

    ##### tenantId

    `string`

    ##### edgeNodeId

    `string`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeTransportChannel">
    @fentaris/core / EdgeTransportChannel

    Defined in: packages/core/src/edge/EdgeTransport.ts:38

    Bidirectional channel used by EdgeTransport.

    ## Methods

    ### onMessage()

    > **onMessage**(`handler`): () => `void`

    Defined in: packages/core/src/edge/EdgeTransport.ts:40

    #### Parameters

    ##### handler

    (`message`) => `void`

    #### Returns

    () => `void`

    ### send()

    > **send**(`message`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/EdgeTransport.ts:39

    #### Parameters

    ##### message

    `EdgeMcpOutboundEnvelope`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeTransportOptions">
    @fentaris/core / EdgeTransportOptions

    Defined in: packages/core/src/edge/EdgeTransport.ts:44

    Configuration for EdgeTransport.

    ## Properties

    ### channel

    > **channel**: `EdgeTransportChannel`

    Defined in: packages/core/src/edge/EdgeTransport.ts:45

    ### defaultTimeoutMs?

    > `optional` **defaultTimeoutMs?**: `number`

    Defined in: packages/core/src/edge/EdgeTransport.ts:46

    ### onLateResult?

    > `optional` **onLateResult?**: (`message`) => `void`

    Defined in: packages/core/src/edge/EdgeTransport.ts:48

    #### Parameters

    ##### message

    `EdgeMcpInboundEnvelope`

    #### Returns

    `void`

    ### requestId?

    > `optional` **requestId?**: () => `string`

    Defined in: packages/core/src/edge/EdgeTransport.ts:47

    #### Returns

    `string`

    ### telemetry?

    > `optional` **telemetry?**: `EdgeTelemetry`

    Defined in: packages/core/src/edge/EdgeTransport.ts:49
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeTrustedChildRoute">
    @fentaris/core / EdgeTrustedChildRoute

    Defined in: packages/core/src/edge/controlInvocation.ts:14

    ## Properties

    ### childBindingId

    > `readonly` **childBindingId**: `string`

    Defined in: packages/core/src/edge/controlInvocation.ts:17

    ### childRequestId

    > `readonly` **childRequestId**: `string`

    Defined in: packages/core/src/edge/controlInvocation.ts:18

    ### childSessionId

    > `readonly` **childSessionId**: `string`

    Defined in: packages/core/src/edge/controlInvocation.ts:16

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/controlInvocation.ts:23

    ### deadline?

    > `readonly` `optional` **deadline?**: `number`

    Defined in: packages/core/src/edge/controlInvocation.ts:25

    ### deploymentId

    > `readonly` **deploymentId**: `string`

    Defined in: packages/core/src/edge/controlInvocation.ts:24

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/controlInvocation.ts:22

    ### parentSessionId

    > `readonly` **parentSessionId**: `string`

    Defined in: packages/core/src/edge/controlInvocation.ts:15

    ### signal

    > `readonly` **signal**: `AbortSignal`

    Defined in: packages/core/src/edge/controlInvocation.ts:26

    ### subjectId

    > `readonly` **subjectId**: `string`

    Defined in: packages/core/src/edge/controlInvocation.ts:20

    ### targetName

    > `readonly` **targetName**: `string`

    Defined in: packages/core/src/edge/controlInvocation.ts:21

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/controlInvocation.ts:19
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeUserMetadata">
    @fentaris/core / EdgeUserMetadata

    Defined in: packages/core/src/edge/inventory.ts:25

    User-maintained descriptive metadata. It never grants access.

    ## Properties

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/edge/inventory.ts:27

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/edge/inventory.ts:26

    ### tags

    > `readonly` **tags**: readonly `string`\[]

    Defined in: packages/core/src/edge/inventory.ts:28

    ### updatedAt

    > `readonly` **updatedAt**: `number`

    Defined in: packages/core/src/edge/inventory.ts:29
  </Accordion>

  <Accordion title="Core exports: interfaces/EdgeWebSocketGatewayOptions">
    @fentaris/core / EdgeWebSocketGatewayOptions

    Defined in: packages/core/src/edge/gateway.ts:81

    Configuration for the reference outbound WebSocket gateway.

    ## Properties

    ### authenticator

    > **authenticator**: `EdgeGatewayAuthenticator`

    Defined in: packages/core/src/edge/gateway.ts:82

    ### authorizer?

    > `optional` **authorizer?**: `EdgeGatewayAuthorizer`

    Defined in: packages/core/src/edge/gateway.ts:91

    ### capabilityManifestStore

    > **capabilityManifestStore**: `EdgeCapabilityManifestStore`

    Defined in: packages/core/src/edge/gateway.ts:87

    ### connectionId?

    > `optional` **connectionId?**: () => `string`

    Defined in: packages/core/src/edge/gateway.ts:96

    #### Returns

    `string`

    ### connectionStore

    > **connectionStore**: `EdgeConnectionStore`

    Defined in: packages/core/src/edge/gateway.ts:84

    ### desiredStateStore

    > **desiredStateStore**: `EdgeDesiredStateStore`

    Defined in: packages/core/src/edge/gateway.ts:85

    ### deviceRegistry

    > **deviceRegistry**: `EdgeDeviceRegistry`

    Defined in: packages/core/src/edge/gateway.ts:83

    ### events?

    > `optional` **events?**: `EdgeGatewayEventSink`

    Defined in: packages/core/src/edge/gateway.ts:98

    ### handshakeTimeoutMs?

    > `optional` **handshakeTimeoutMs?**: `number`

    Defined in: packages/core/src/edge/gateway.ts:92

    ### heartbeatTimeoutMs?

    > `optional` **heartbeatTimeoutMs?**: `number`

    Defined in: packages/core/src/edge/gateway.ts:93

    ### installationStatusStore?

    > `optional` **installationStatusStore?**: `EdgeInstallationStatusStore`

    Defined in: packages/core/src/edge/gateway.ts:90

    ### maxBufferedBytes?

    > `optional` **maxBufferedBytes?**: `number`

    Defined in: packages/core/src/edge/gateway.ts:94

    ### now?

    > `optional` **now?**: () => `number`

    Defined in: packages/core/src/edge/gateway.ts:95

    #### Returns

    `number`

    ### presenceStore?

    > `optional` **presenceStore?**: `EdgePresenceStore`

    Defined in: packages/core/src/edge/gateway.ts:88

    ### readinessStore?

    > `optional` **readinessStore?**: `EdgeReadinessStore`

    Defined in: packages/core/src/edge/gateway.ts:89

    ### setupStatusStore

    > **setupStatusStore**: `EdgeSetupStatusStore`

    Defined in: packages/core/src/edge/gateway.ts:86

    ### telemetry?

    > `optional` **telemetry?**: `EdgeTelemetry`

    Defined in: packages/core/src/edge/gateway.ts:97
  </Accordion>

  <Accordion title="Core exports: interfaces/EnterpriseInstallationSource">
    @fentaris/core / EnterpriseInstallationSource

    Defined in: packages/core/src/edge/installation.ts:59

    ## Properties

    ### adapter

    > `readonly` **adapter**: `string`

    Defined in: packages/core/src/edge/installation.ts:61

    ### artifactRef

    > `readonly` **artifactRef**: `string`

    Defined in: packages/core/src/edge/installation.ts:62

    ### credentialRef?

    > `readonly` `optional` **credentialRef?**: `string`

    Defined in: packages/core/src/edge/installation.ts:64

    ### integrity

    > `readonly` **integrity**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/installation.ts:63

    ### kind

    > `readonly` **kind**: `"enterprise"`

    Defined in: packages/core/src/edge/installation.ts:60
  </Accordion>

  <Accordion title="Core exports: interfaces/FileSetupField">
    @fentaris/core / FileSetupField

    Defined in: packages/core/src/edge/setup.ts:53

    File grant field.

    ## Extends

    * `SetupFieldCommon`

    ## Properties

    ### access

    > `readonly` **access**: `SetupFieldAccess`

    Defined in: packages/core/src/edge/setup.ts:56

    Requested access for the local file grant.

    ### cloudVisible?

    > `readonly` `optional` **cloudVisible?**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:42

    Whether the resolved value may be returned to the control plane. Defaults to
    `false` for sensitive local fields. Only non-sensitive fields may opt in.

    #### Inherited from

    `SetupFieldCommon.cloudVisible`

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/edge/setup.ts:36

    Description for setup prompts. Must not contain resolved values.

    #### Inherited from

    `SetupFieldCommon.description`

    ### kind

    > `readonly` **kind**: `"file"`

    Defined in: packages/core/src/edge/setup.ts:54

    ### label?

    > `readonly` `optional` **label?**: `string`

    Defined in: packages/core/src/edge/setup.ts:34

    Human-readable label for setup prompts.

    #### Inherited from

    `SetupFieldCommon.label`

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/edge/setup.ts:30

    Field name; assigned from the setup schema object key.

    #### Inherited from

    `SetupFieldCommon.name`

    ### required

    > `readonly` **required**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:32

    Whether the field must be supplied. Defaults to `true`.

    #### Inherited from

    `SetupFieldCommon.required`
  </Accordion>

  <Accordion title="Core exports: interfaces/FileSystemFieldOptions">
    @fentaris/core / FileSystemFieldOptions

    Defined in: packages/core/src/edge/setup.ts:128

    Builder options for folder/file fields.

    ## Properties

    ### access?

    > `readonly` `optional` **access?**: `SetupFieldAccess`

    Defined in: packages/core/src/edge/setup.ts:129

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/edge/setup.ts:132

    ### label?

    > `readonly` `optional` **label?**: `string`

    Defined in: packages/core/src/edge/setup.ts:131

    ### required?

    > `readonly` `optional` **required?**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:130
  </Accordion>

  <Accordion title="Core exports: interfaces/FolderSetupField">
    @fentaris/core / FolderSetupField

    Defined in: packages/core/src/edge/setup.ts:46

    Folder grant field.

    ## Extends

    * `SetupFieldCommon`

    ## Properties

    ### access

    > `readonly` **access**: `SetupFieldAccess`

    Defined in: packages/core/src/edge/setup.ts:49

    Requested access for the local directory grant.

    ### cloudVisible?

    > `readonly` `optional` **cloudVisible?**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:42

    Whether the resolved value may be returned to the control plane. Defaults to
    `false` for sensitive local fields. Only non-sensitive fields may opt in.

    #### Inherited from

    `SetupFieldCommon.cloudVisible`

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/edge/setup.ts:36

    Description for setup prompts. Must not contain resolved values.

    #### Inherited from

    `SetupFieldCommon.description`

    ### kind

    > `readonly` **kind**: `"folder"`

    Defined in: packages/core/src/edge/setup.ts:47

    ### label?

    > `readonly` `optional` **label?**: `string`

    Defined in: packages/core/src/edge/setup.ts:34

    Human-readable label for setup prompts.

    #### Inherited from

    `SetupFieldCommon.label`

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/edge/setup.ts:30

    Field name; assigned from the setup schema object key.

    #### Inherited from

    `SetupFieldCommon.name`

    ### required

    > `readonly` **required**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:32

    Whether the field must be supplied. Defaults to `true`.

    #### Inherited from

    `SetupFieldCommon.required`
  </Accordion>

  <Accordion title="Core exports: interfaces/GitInstallationSource">
    @fentaris/core / GitInstallationSource

    Defined in: packages/core/src/edge/installation.ts:31

    ## Properties

    ### commit

    > `readonly` **commit**: `string`

    Defined in: packages/core/src/edge/installation.ts:34

    ### credentialRef?

    > `readonly` `optional` **credentialRef?**: `string`

    Defined in: packages/core/src/edge/installation.ts:36

    ### kind

    > `readonly` **kind**: `"git"`

    Defined in: packages/core/src/edge/installation.ts:32

    ### repository

    > `readonly` **repository**: `string`

    Defined in: packages/core/src/edge/installation.ts:33

    ### submodules?

    > `readonly` `optional` **submodules?**: `Readonly`\<`Record`\<`string`, `` `sha256:${string}` ``>>

    Defined in: packages/core/src/edge/installation.ts:35
  </Accordion>

  <Accordion title="Core exports: interfaces/InlineInstallationSource">
    @fentaris/core / InlineInstallationSource

    Defined in: packages/core/src/edge/installation.ts:47

    ## Properties

    ### content

    > `readonly` **content**: `string`

    Defined in: packages/core/src/edge/installation.ts:49

    ### filename?

    > `readonly` `optional` **filename?**: `string`

    Defined in: packages/core/src/edge/installation.ts:50

    ### kind

    > `readonly` **kind**: `"inline"`

    Defined in: packages/core/src/edge/installation.ts:48
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationApprovalRecord">
    @fentaris/core / InstallationApprovalRecord

    Defined in: packages/core/src/edge/installation.ts:229

    ## Properties

    ### approvalDigest

    > `readonly` **approvalDigest**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/installation.ts:230

    ### cleanup?

    > `readonly` `optional` **cleanup?**: `boolean`

    Defined in: packages/core/src/edge/installation.ts:234

    ### decidedAt

    > `readonly` **decidedAt**: `number`

    Defined in: packages/core/src/edge/installation.ts:233

    ### decision

    > `readonly` **decision**: `"approved"` | `"denied"` | `"revoked"`

    Defined in: packages/core/src/edge/installation.ts:232

    ### recipeDigest

    > `readonly` **recipeDigest**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/installation.ts:231
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationApprovalStore">
    @fentaris/core / InstallationApprovalStore

    Defined in: packages/core/src/edge/installation.ts:268

    ## Methods

    ### get()

    > **get**(`approvalDigest`, `cleanup?`): `Promise`\<`InstallationApprovalRecord` | `undefined`>

    Defined in: packages/core/src/edge/installation.ts:269

    #### Parameters

    ##### approvalDigest

    `` `sha256:${string}` ``

    ##### cleanup?

    `boolean`

    #### Returns

    `Promise`\<`InstallationApprovalRecord` | `undefined`>

    ### put()

    > **put**(`approval`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/installation.ts:270

    #### Parameters

    ##### approval

    `InstallationApprovalRecord`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationArtifactRecord">
    @fentaris/core / InstallationArtifactRecord

    Defined in: packages/core/src/edge/installation.ts:219

    ## Properties

    ### active

    > `readonly` **active**: `boolean`

    Defined in: packages/core/src/edge/installation.ts:224

    ### externalSideEffects?

    > `readonly` `optional` **externalSideEffects?**: `boolean`

    Defined in: packages/core/src/edge/installation.ts:226

    ### outputs

    > `readonly` **outputs**: `Readonly`\<`Record`\<`string`, `string`>>

    Defined in: packages/core/src/edge/installation.ts:222

    ### recipeDigest

    > `readonly` **recipeDigest**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/installation.ts:220

    ### references

    > `readonly` **references**: `number`

    Defined in: packages/core/src/edge/installation.ts:225

    ### root

    > `readonly` **root**: `string`

    Defined in: packages/core/src/edge/installation.ts:221

    ### verifiedAt

    > `readonly` **verifiedAt**: `number`

    Defined in: packages/core/src/edge/installation.ts:223
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationArtifactStore">
    @fentaris/core / InstallationArtifactStore

    Defined in: packages/core/src/edge/installation.ts:279

    ## Methods

    ### delete()

    > **delete**(`recipeDigest`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/installation.ts:283

    #### Parameters

    ##### recipeDigest

    `` `sha256:${string}` ``

    #### Returns

    `Promise`\<`void`>

    ### get()

    > **get**(`recipeDigest`): `Promise`\<`InstallationArtifactRecord` | `undefined`>

    Defined in: packages/core/src/edge/installation.ts:280

    #### Parameters

    ##### recipeDigest

    `` `sha256:${string}` ``

    #### Returns

    `Promise`\<`InstallationArtifactRecord` | `undefined`>

    ### list()

    > **list**(): `Promise`\<readonly `InstallationArtifactRecord`\[]>

    Defined in: packages/core/src/edge/installation.ts:281

    #### Returns

    `Promise`\<readonly `InstallationArtifactRecord`\[]>

    ### put()

    > **put**(`artifact`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/installation.ts:282

    #### Parameters

    ##### artifact

    `InstallationArtifactRecord`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationAttemptStore">
    @fentaris/core / InstallationAttemptStore

    Defined in: packages/core/src/edge/installation.ts:262

    ## Methods

    ### get()

    > **get**(`attemptId`): `Promise`\<`InstallationAttemptSummary` | `undefined`>

    Defined in: packages/core/src/edge/installation.ts:263

    #### Parameters

    ##### attemptId

    `string`

    #### Returns

    `Promise`\<`InstallationAttemptSummary` | `undefined`>

    ### list()

    > **list**(`recipeDigest`): `Promise`\<readonly `InstallationAttemptSummary`\[]>

    Defined in: packages/core/src/edge/installation.ts:264

    #### Parameters

    ##### recipeDigest

    `` `sha256:${string}` ``

    #### Returns

    `Promise`\<readonly `InstallationAttemptSummary`\[]>

    ### put()

    > **put**(`attempt`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/installation.ts:265

    #### Parameters

    ##### attempt

    `InstallationAttemptSummary`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationAttemptSummary">
    @fentaris/core / InstallationAttemptSummary

    Defined in: packages/core/src/edge/installation.ts:196

    ## Properties

    ### attemptId

    > `readonly` **attemptId**: `string`

    Defined in: packages/core/src/edge/installation.ts:197

    ### finishedAt?

    > `readonly` `optional` **finishedAt?**: `number`

    Defined in: packages/core/src/edge/installation.ts:201

    ### reasonCode?

    > `readonly` `optional` **reasonCode?**: `InstallationReasonCode`

    Defined in: packages/core/src/edge/installation.ts:202

    ### recipeDigest

    > `readonly` **recipeDigest**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/installation.ts:198

    ### retryable

    > `readonly` **retryable**: `boolean`

    Defined in: packages/core/src/edge/installation.ts:203

    ### startedAt

    > `readonly` **startedAt**: `number`

    Defined in: packages/core/src/edge/installation.ts:200

    ### state

    > `readonly` **state**: `InstallationLifecycleState`

    Defined in: packages/core/src/edge/installation.ts:199
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationBuilderDefaults">
    @fentaris/core / InstallationBuilderDefaults

    Defined in: packages/core/src/edge/installation.ts:370

    ## Properties

    ### cleanup?

    > `readonly` `optional` **cleanup?**: `InstallationCleanup`

    Defined in: packages/core/src/edge/installation.ts:375

    ### outputs

    > `readonly` **outputs**: readonly `InstallationOutput`\[]

    Defined in: packages/core/src/edge/installation.ts:373

    ### permissions?

    > `readonly` `optional` **permissions?**: `Partial`\<`InstallationPermissions`>

    Defined in: packages/core/src/edge/installation.ts:371

    ### platforms?

    > `readonly` `optional` **platforms?**: `InstallationPlatformConstraint`

    Defined in: packages/core/src/edge/installation.ts:376

    ### retention?

    > `readonly` `optional` **retention?**: `InstallationRetention`

    Defined in: packages/core/src/edge/installation.ts:374

    ### verification

    > `readonly` **verification**: readonly `InstallationVerification`\[]

    Defined in: packages/core/src/edge/installation.ts:372
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationCleanup">
    @fentaris/core / InstallationCleanup

    Defined in: packages/core/src/edge/installation.ts:160

    ## Properties

    ### args?

    > `readonly` `optional` **args?**: readonly `string`\[]

    Defined in: packages/core/src/edge/installation.ts:164

    ### entrypoint?

    > `readonly` `optional` **entrypoint?**: `string`

    Defined in: packages/core/src/edge/installation.ts:162

    ### externalSideEffects?

    > `readonly` `optional` **externalSideEffects?**: `boolean`

    Defined in: packages/core/src/edge/installation.ts:165

    ### interpreter?

    > `readonly` `optional` **interpreter?**: `"python"` | `"executable"` | `"sh"` | `"bash"` | `"node"` | `"powershell"`

    Defined in: packages/core/src/edge/installation.ts:163

    ### kind

    > `readonly` **kind**: `"custom"` | `"manual"` | `"managed-directory"`

    Defined in: packages/core/src/edge/installation.ts:161
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationFilesystemPermission">
    @fentaris/core / InstallationFilesystemPermission

    Defined in: packages/core/src/edge/installation.ts:117

    ## Properties

    ### access

    > `readonly` **access**: `"read"` | `"read-write"`

    Defined in: packages/core/src/edge/installation.ts:119

    ### grantRef

    > `readonly` **grantRef**: `string`

    Defined in: packages/core/src/edge/installation.ts:118
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationLifecycleStore">
    @fentaris/core / InstallationLifecycleStore

    Defined in: packages/core/src/edge/installation.ts:273

    ## Methods

    ### get()

    > **get**(`deploymentId`): `Promise`\<`InstallationLifecycleSummary` | `undefined`>

    Defined in: packages/core/src/edge/installation.ts:274

    #### Parameters

    ##### deploymentId

    `string`

    #### Returns

    `Promise`\<`InstallationLifecycleSummary` | `undefined`>

    ### list()

    > **list**(): `Promise`\<readonly `InstallationLifecycleSummary`\[]>

    Defined in: packages/core/src/edge/installation.ts:275

    #### Returns

    `Promise`\<readonly `InstallationLifecycleSummary`\[]>

    ### put()

    > **put**(`lifecycle`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/installation.ts:276

    #### Parameters

    ##### lifecycle

    `InstallationLifecycleSummary`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationLifecycleSummary">
    @fentaris/core / InstallationLifecycleSummary

    Defined in: packages/core/src/edge/installation.ts:206

    ## Properties

    ### attempt?

    > `readonly` `optional` **attempt?**: `InstallationAttemptSummary`

    Defined in: packages/core/src/edge/installation.ts:214

    ### deploymentId

    > `readonly` **deploymentId**: `string`

    Defined in: packages/core/src/edge/installation.ts:207

    ### desiredVersion

    > `readonly` **desiredVersion**: `number`

    Defined in: packages/core/src/edge/installation.ts:208

    ### launchDigest

    > `readonly` **launchDigest**: `string`

    Defined in: packages/core/src/edge/installation.ts:210

    ### nextAction?

    > `readonly` `optional` **nextAction?**: `string`

    Defined in: packages/core/src/edge/installation.ts:216

    ### observedAt

    > `readonly` **observedAt**: `number`

    Defined in: packages/core/src/edge/installation.ts:213

    ### readiness

    > `readonly` **readiness**: `"ready"` | `"blocked"` | `"setup-required"` | `"unavailable"`

    Defined in: packages/core/src/edge/installation.ts:212

    ### reasonCode?

    > `readonly` `optional` **reasonCode?**: `InstallationReasonCode`

    Defined in: packages/core/src/edge/installation.ts:215

    ### recipeDigest

    > `readonly` **recipeDigest**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/installation.ts:209

    ### state

    > `readonly` **state**: `InstallationLifecycleState`

    Defined in: packages/core/src/edge/installation.ts:211
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationLimits">
    @fentaris/core / InstallationLimits

    Defined in: packages/core/src/edge/installation.ts:122

    ## Properties

    ### maxDiskBytes

    > `readonly` **maxDiskBytes**: `number`

    Defined in: packages/core/src/edge/installation.ts:125

    ### maxOutputBytes

    > `readonly` **maxOutputBytes**: `number`

    Defined in: packages/core/src/edge/installation.ts:124

    ### maxProcesses

    > `readonly` **maxProcesses**: `number`

    Defined in: packages/core/src/edge/installation.ts:126

    ### timeoutMs

    > `readonly` **timeoutMs**: `number`

    Defined in: packages/core/src/edge/installation.ts:123
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationMutationLock">
    @fentaris/core / InstallationMutationLock

    Defined in: packages/core/src/edge/installation.ts:286

    ## Methods

    ### runExclusive()

    > **runExclusive**\<`T`>(`installationRoot`, `operation`): `Promise`\<`T`>

    Defined in: packages/core/src/edge/installation.ts:287

    #### Type Parameters

    ##### T

    `T`

    #### Parameters

    ##### installationRoot

    `string`

    ##### operation

    () => `Promise`\<`T`>

    #### Returns

    `Promise`\<`T`>
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationOutput">
    @fentaris/core / InstallationOutput

    Defined in: packages/core/src/edge/installation.ts:149

    ## Properties

    ### kind

    > `readonly` **kind**: `InstallationOutputKind`

    Defined in: packages/core/src/edge/installation.ts:151

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/edge/installation.ts:150

    ### path

    > `readonly` **path**: `string`

    Defined in: packages/core/src/edge/installation.ts:152
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationPermissions">
    @fentaris/core / InstallationPermissions

    Defined in: packages/core/src/edge/installation.ts:129

    ## Properties

    ### elevation

    > `readonly` **elevation**: `false`

    Defined in: packages/core/src/edge/installation.ts:135

    ### environment?

    > `readonly` `optional` **environment?**: readonly `string`\[]

    Defined in: packages/core/src/edge/installation.ts:134

    ### executables?

    > `readonly` `optional` **executables?**: readonly `string`\[]

    Defined in: packages/core/src/edge/installation.ts:133

    ### filesystem?

    > `readonly` `optional` **filesystem?**: readonly `InstallationFilesystemPermission`\[]

    Defined in: packages/core/src/edge/installation.ts:132

    ### limits

    > `readonly` **limits**: `InstallationLimits`

    Defined in: packages/core/src/edge/installation.ts:138

    ### network

    > `readonly` **network**: `InstallationNetworkMode`

    Defined in: packages/core/src/edge/installation.ts:130

    ### networkHosts?

    > `readonly` `optional` **networkHosts?**: readonly `string`\[]

    Defined in: packages/core/src/edge/installation.ts:131

    ### requireFilesystemIsolation?

    > `readonly` `optional` **requireFilesystemIsolation?**: `boolean`

    Defined in: packages/core/src/edge/installation.ts:136

    ### requireNetworkIsolation?

    > `readonly` `optional` **requireNetworkIsolation?**: `boolean`

    Defined in: packages/core/src/edge/installation.ts:137
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationPlatformConstraint">
    @fentaris/core / InstallationPlatformConstraint

    Defined in: packages/core/src/edge/installation.ts:168

    ## Properties

    ### architectures?

    > `readonly` `optional` **architectures?**: readonly `string`\[]

    Defined in: packages/core/src/edge/installation.ts:170

    ### platforms?

    > `readonly` `optional` **platforms?**: readonly `Platform`\[]

    Defined in: packages/core/src/edge/installation.ts:169

    ### runtimes?

    > `readonly` `optional` **runtimes?**: `Readonly`\<`Record`\<`string`, `string`>>

    Defined in: packages/core/src/edge/installation.ts:171
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationProviderAdapter">
    @fentaris/core / InstallationProviderAdapter

    Defined in: packages/core/src/edge/installation.ts:244

    ## Properties

    ### kind

    > `readonly` **kind**: `InstallationProviderKind`

    Defined in: packages/core/src/edge/installation.ts:245

    ## Methods

    ### cleanup()

    > **cleanup**(`context`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/installation.ts:249

    #### Parameters

    ##### context

    `InstallationProviderContext`

    #### Returns

    `Promise`\<`void`>

    ### install()

    > **install**(`context`): `Promise`\<`void`>

    Defined in: packages/core/src/edge/installation.ts:247

    #### Parameters

    ##### context

    `InstallationProviderContext`

    #### Returns

    `Promise`\<`void`>

    ### preflight()

    > **preflight**(`context`): `Promise`\<\{ `ready`: `boolean`; `reasonCode?`: `InstallationReasonCode`; }>

    Defined in: packages/core/src/edge/installation.ts:246

    #### Parameters

    ##### context

    `InstallationProviderContext`

    #### Returns

    `Promise`\<\{ `ready`: `boolean`; `reasonCode?`: `InstallationReasonCode`; }>

    ### verify()

    > **verify**(`context`): `Promise`\<`Readonly`\<`Record`\<`string`, `string`>>>

    Defined in: packages/core/src/edge/installation.ts:248

    #### Parameters

    ##### context

    `InstallationProviderContext`

    #### Returns

    `Promise`\<`Readonly`\<`Record`\<`string`, `string`>>>
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationProviderContext">
    @fentaris/core / InstallationProviderContext

    Defined in: packages/core/src/edge/installation.ts:237

    ## Properties

    ### attemptId

    > `readonly` **attemptId**: `string`

    Defined in: packages/core/src/edge/installation.ts:239

    ### installationRoot

    > `readonly` **installationRoot**: `string`

    Defined in: packages/core/src/edge/installation.ts:241

    ### recipe

    > `readonly` **recipe**: `InstallationRecipe`

    Defined in: packages/core/src/edge/installation.ts:238

    ### stagingRoot

    > `readonly` **stagingRoot**: `string`

    Defined in: packages/core/src/edge/installation.ts:240
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationRecipe">
    @fentaris/core / InstallationRecipe

    Defined in: packages/core/src/edge/installation.ts:175

    Complete versioned installation recipe.

    ## Properties

    ### cleanup

    > `readonly` **cleanup**: `InstallationCleanup`

    Defined in: packages/core/src/edge/installation.ts:182

    ### digest

    > `readonly` **digest**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/installation.ts:184

    ### outputs

    > `readonly` **outputs**: readonly `InstallationOutput`\[]

    Defined in: packages/core/src/edge/installation.ts:180

    ### permissions

    > `readonly` **permissions**: `InstallationPermissions`

    Defined in: packages/core/src/edge/installation.ts:178

    ### platforms?

    > `readonly` `optional` **platforms?**: `InstallationPlatformConstraint`

    Defined in: packages/core/src/edge/installation.ts:183

    ### provider

    > `readonly` **provider**: `InstallationProvider`

    Defined in: packages/core/src/edge/installation.ts:177

    ### retention

    > `readonly` **retention**: `InstallationRetention`

    Defined in: packages/core/src/edge/installation.ts:181

    ### verification

    > `readonly` **verification**: readonly `InstallationVerification`\[]

    Defined in: packages/core/src/edge/installation.ts:179

    ### version

    > `readonly` **version**: `1`

    Defined in: packages/core/src/edge/installation.ts:176
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationResolvedSource">
    @fentaris/core / InstallationResolvedSource

    Defined in: packages/core/src/edge/installation.ts:252

    ## Properties

    ### digest

    > `readonly` **digest**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/installation.ts:254

    ### root

    > `readonly` **root**: `string`

    Defined in: packages/core/src/edge/installation.ts:253
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationRetention">
    @fentaris/core / InstallationRetention

    Defined in: packages/core/src/edge/installation.ts:155

    ## Properties

    ### maxAgeMs?

    > `readonly` `optional` **maxAgeMs?**: `number`

    Defined in: packages/core/src/edge/installation.ts:157

    ### previousVersions

    > `readonly` **previousVersions**: `number`

    Defined in: packages/core/src/edge/installation.ts:156
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationSourceResolver">
    @fentaris/core / InstallationSourceResolver

    Defined in: packages/core/src/edge/installation.ts:257

    ## Properties

    ### kind

    > `readonly` **kind**: `"git"` | `"archive"` | `"inline"` | `"local"` | `"enterprise"`

    Defined in: packages/core/src/edge/installation.ts:258

    ## Methods

    ### resolve()

    > **resolve**(`source`, `destination`, `credentials?`): `Promise`\<`InstallationResolvedSource`>

    Defined in: packages/core/src/edge/installation.ts:259

    #### Parameters

    ##### source

    `InstallationSource`

    ##### destination

    `string`

    ##### credentials?

    `Readonly`\<`Record`\<`string`, `string`>>

    #### Returns

    `Promise`\<`InstallationResolvedSource`>
  </Accordion>

  <Accordion title="Core exports: interfaces/InstallationVerification">
    @fentaris/core / InstallationVerification

    Defined in: packages/core/src/edge/installation.ts:141

    ## Properties

    ### args?

    > `readonly` `optional` **args?**: readonly `string`\[]

    Defined in: packages/core/src/edge/installation.ts:144

    ### expectedDigest?

    > `readonly` `optional` **expectedDigest?**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/installation.ts:146

    ### expectedVersion?

    > `readonly` `optional` **expectedVersion?**: `string`

    Defined in: packages/core/src/edge/installation.ts:145

    ### kind

    > `readonly` **kind**: `"file"` | `"executable"` | `"command"` | `"container-image"`

    Defined in: packages/core/src/edge/installation.ts:142

    ### target

    > `readonly` **target**: `string`

    Defined in: packages/core/src/edge/installation.ts:143
  </Accordion>

  <Accordion title="Core exports: interfaces/InstalledArtifactReference">
    @fentaris/core / InstalledArtifactReference

    Defined in: packages/core/src/edge/installation.ts:189

    ## Properties

    ### \_\_fentarisInstalledArtifact

    > `readonly` **\_\_fentarisInstalledArtifact**: `true`

    Defined in: packages/core/src/edge/installation.ts:190

    ### installationDigest

    > `readonly` **installationDigest**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/installation.ts:191

    ### kind

    > `readonly` **kind**: `InstallationOutputKind`

    Defined in: packages/core/src/edge/installation.ts:193

    ### output

    > `readonly` **output**: `string`

    Defined in: packages/core/src/edge/installation.ts:192
  </Accordion>

  <Accordion title="Core exports: interfaces/Isolation">
    @fentaris/core / Isolation

    Defined in: packages/core/src/types/policy.ts:127

    Isolation runtime for per-user execution.

    ## Methods

    ### close()

    > **close**(): `MaybePromise`\<`void`>

    Defined in: packages/core/src/types/policy.ts:133

    #### Returns

    `MaybePromise`\<`void`>

    ### queue()

    > **queue**(`userId`, `fn`, `timeout?`): `MaybePromise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/types/policy.ts:128

    #### Parameters

    ##### userId

    `string`

    ##### fn

    () => `MaybePromise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    ##### timeout?

    `number`

    #### Returns

    `MaybePromise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>
  </Accordion>

  <Accordion title="Core exports: interfaces/LaunchRecipe">
    @fentaris/core / LaunchRecipe

    Defined in: packages/core/src/edge/recipe.ts:23

    A versioned, serializable launch recipe.

    ## Properties

    ### args

    > `readonly` **args**: readonly (`string` | `RuntimeValueToken`)\[]

    Defined in: packages/core/src/edge/recipe.ts:29

    Argument templates; entries may be runtime-value tokens.

    ### clientName?

    > `readonly` `optional` **clientName?**: `string`

    Defined in: packages/core/src/edge/recipe.ts:35

    Client name reported to the upstream MCP.

    ### clientVersion?

    > `readonly` `optional` **clientVersion?**: `string`

    Defined in: packages/core/src/edge/recipe.ts:37

    Client version reported to the upstream MCP.

    ### command

    > `readonly` **command**: `string` | `InstalledArtifactReference`

    Defined in: packages/core/src/edge/recipe.ts:27

    Executable command.

    ### digest

    > `readonly` **digest**: `string`

    Defined in: packages/core/src/edge/recipe.ts:43

    Stable content digest over the canonical recipe payload.

    ### env

    > `readonly` **env**: `Readonly`\<`Record`\<`string`, `string` | `RuntimeValueToken`>>

    Defined in: packages/core/src/edge/recipe.ts:31

    Environment templates; values may be runtime-value tokens.

    ### setupFieldRefs

    > `readonly` **setupFieldRefs**: readonly `string`\[]

    Defined in: packages/core/src/edge/recipe.ts:41

    Sorted setup field names referenced by this recipe.

    ### setupSchemaVersion?

    > `readonly` `optional` **setupSchemaVersion?**: `number`

    Defined in: packages/core/src/edge/recipe.ts:39

    Setup schema version this recipe expects.

    ### stderr?

    > `readonly` `optional` **stderr?**: `"pipe"` | `"inherit"` | `"overlapped"` | `"ignore"`

    Defined in: packages/core/src/edge/recipe.ts:33

    Stderr policy.

    ### version

    > `readonly` **version**: `number`

    Defined in: packages/core/src/edge/recipe.ts:25

    Recipe serialization version.
  </Accordion>

  <Accordion title="Core exports: interfaces/LocalInstallationSource">
    @fentaris/core / LocalInstallationSource

    Defined in: packages/core/src/edge/installation.ts:53

    ## Properties

    ### grantRef

    > `readonly` **grantRef**: `string`

    Defined in: packages/core/src/edge/installation.ts:55

    ### integrity

    > `readonly` **integrity**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/installation.ts:56

    ### kind

    > `readonly` **kind**: `"local"`

    Defined in: packages/core/src/edge/installation.ts:54
  </Accordion>

  <Accordion title="Core exports: interfaces/ManualInstallationProvider">
    @fentaris/core / ManualInstallationProvider

    Defined in: packages/core/src/edge/installation.ts:98

    ## Properties

    ### detect

    > `readonly` **detect**: `InstallationVerification`

    Defined in: packages/core/src/edge/installation.ts:101

    ### kind

    > `readonly` **kind**: `"manual"`

    Defined in: packages/core/src/edge/installation.ts:99

    ### nextAction

    > `readonly` **nextAction**: `string`

    Defined in: packages/core/src/edge/installation.ts:102

    ### requirement

    > `readonly` **requirement**: `string`

    Defined in: packages/core/src/edge/installation.ts:100
  </Accordion>

  <Accordion title="Core exports: interfaces/NodePackageInstallationProvider">
    @fentaris/core / NodePackageInstallationProvider

    Defined in: packages/core/src/edge/installation.ts:70

    ## Properties

    ### allowLifecycleScripts?

    > `readonly` `optional` **allowLifecycleScripts?**: `boolean`

    Defined in: packages/core/src/edge/installation.ts:75

    ### integrity

    > `readonly` **integrity**: `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/installation.ts:74

    ### kind

    > `readonly` **kind**: `"node-package"`

    Defined in: packages/core/src/edge/installation.ts:71

    ### package

    > `readonly` **package**: `string`

    Defined in: packages/core/src/edge/installation.ts:72

    ### version

    > `readonly` **version**: `string`

    Defined in: packages/core/src/edge/installation.ts:73
  </Accordion>

  <Accordion title="Core exports: interfaces/NumberFieldOptions">
    @fentaris/core / NumberFieldOptions

    Defined in: packages/core/src/edge/setup.ts:150

    Builder options for a number field.

    ## Extends

    * `ScalarFieldOptions`

    ## Properties

    ### cloudVisible?

    > `readonly` `optional` **cloudVisible?**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:140

    #### Inherited from

    `ScalarFieldOptions`.`cloudVisible`

    ### default?

    > `readonly` `optional` **default?**: `number`

    Defined in: packages/core/src/edge/setup.ts:151

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/edge/setup.ts:139

    #### Inherited from

    `ScalarFieldOptions`.`description`

    ### label?

    > `readonly` `optional` **label?**: `string`

    Defined in: packages/core/src/edge/setup.ts:138

    #### Inherited from

    `ScalarFieldOptions`.`label`

    ### max?

    > `readonly` `optional` **max?**: `number`

    Defined in: packages/core/src/edge/setup.ts:153

    ### min?

    > `readonly` `optional` **min?**: `number`

    Defined in: packages/core/src/edge/setup.ts:152

    ### required?

    > `readonly` `optional` **required?**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:137

    #### Inherited from

    `ScalarFieldOptions`.`required`
  </Accordion>

  <Accordion title="Core exports: interfaces/NumberSetupField">
    @fentaris/core / NumberSetupField

    Defined in: packages/core/src/edge/setup.ts:78

    Number field, with optional safe default and bounds.

    ## Extends

    * `SetupFieldCommon`

    ## Properties

    ### cloudVisible?

    > `readonly` `optional` **cloudVisible?**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:42

    Whether the resolved value may be returned to the control plane. Defaults to
    `false` for sensitive local fields. Only non-sensitive fields may opt in.

    #### Inherited from

    `SetupFieldCommon.cloudVisible`

    ### default?

    > `readonly` `optional` **default?**: `number`

    Defined in: packages/core/src/edge/setup.ts:80

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/edge/setup.ts:36

    Description for setup prompts. Must not contain resolved values.

    #### Inherited from

    `SetupFieldCommon.description`

    ### kind

    > `readonly` **kind**: `"number"`

    Defined in: packages/core/src/edge/setup.ts:79

    ### label?

    > `readonly` `optional` **label?**: `string`

    Defined in: packages/core/src/edge/setup.ts:34

    Human-readable label for setup prompts.

    #### Inherited from

    `SetupFieldCommon.label`

    ### max?

    > `readonly` `optional` **max?**: `number`

    Defined in: packages/core/src/edge/setup.ts:82

    ### min?

    > `readonly` `optional` **min?**: `number`

    Defined in: packages/core/src/edge/setup.ts:81

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/edge/setup.ts:30

    Field name; assigned from the setup schema object key.

    #### Inherited from

    `SetupFieldCommon.name`

    ### required

    > `readonly` **required**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:32

    Whether the field must be supplied. Defaults to `true`.

    #### Inherited from

    `SetupFieldCommon.required`
  </Accordion>

  <Accordion title="Core exports: interfaces/PlacementBindingModel">
    @fentaris/core / PlacementBindingModel

    Defined in: packages/core/src/edge/placement.ts:45

    A normalized placement binding, independent of declaration style.

    ## Properties

    ### groupId?

    > `readonly` `optional` **groupId?**: `string`

    Defined in: packages/core/src/edge/placement.ts:51

    Group id for group-scoped bindings.

    ### scope

    > `readonly` **scope**: `PlacementScope`

    Defined in: packages/core/src/edge/placement.ts:49

    Scope of the binding.

    ### serverName

    > `readonly` **serverName**: `string`

    Defined in: packages/core/src/edge/placement.ts:47

    Server name the binding applies to.

    ### targetName

    > `readonly` **targetName**: `string`

    Defined in: packages/core/src/edge/placement.ts:55

    Registered or built-in target name.

    ### userId?

    > `readonly` `optional` **userId?**: `string`

    Defined in: packages/core/src/edge/placement.ts:53

    User id for user-scoped bindings.
  </Accordion>

  <Accordion title="Core exports: interfaces/PlacementOverlapDiagnostic">
    @fentaris/core / PlacementOverlapDiagnostic

    Defined in: packages/core/src/edge/placement.ts:81

    A normalized startup diagnostic for static placement ambiguity.

    ## Properties

    ### groupIds

    > `readonly` **groupIds**: readonly `string`\[]

    Defined in: packages/core/src/edge/placement.ts:89

    Group ids that produced the overlap.

    ### serverName

    > `readonly` **serverName**: `string`

    Defined in: packages/core/src/edge/placement.ts:83

    Server with overlapping group bindings.

    ### subjectId

    > `readonly` **subjectId**: `string`

    Defined in: packages/core/src/edge/placement.ts:85

    Subject whose groups overlap.

    ### targets

    > `readonly` **targets**: readonly `string`\[]

    Defined in: packages/core/src/edge/placement.ts:87

    Distinct targets the overlapping groups bind.
  </Accordion>

  <Accordion title="Core exports: interfaces/PlacementRequest">
    @fentaris/core / PlacementRequest

    Defined in: packages/core/src/edge/placement.ts:59

    Inputs for resolving placement for a subject and server.

    ## Extended by

    * `SessionPinRequest`

    ## Properties

    ### groupIds

    > `readonly` **groupIds**: readonly `string`\[]

    Defined in: packages/core/src/edge/placement.ts:65

    Group ids the subject is a member of at resolution time.

    ### requestedTarget?

    > `readonly` `optional` **requestedTarget?**: `string`

    Defined in: packages/core/src/edge/placement.ts:67

    Explicit target requested by the downstream session, if any.

    ### serverName

    > `readonly` **serverName**: `string`

    Defined in: packages/core/src/edge/placement.ts:61

    Server the operation targets.

    ### subjectId?

    > `readonly` `optional` **subjectId?**: `string`

    Defined in: packages/core/src/edge/placement.ts:63

    Authenticated subject id, if known.
  </Accordion>

  <Accordion title="Core exports: interfaces/PlacementResolution">
    @fentaris/core / PlacementResolution

    Defined in: packages/core/src/edge/placement.ts:71

    A resolved placement. Carries no capability information.

    ## Properties

    ### kind

    > `readonly` **kind**: `TargetKind`

    Defined in: packages/core/src/edge/placement.ts:75

    Target kind, copied from the registered declaration.

    ### source

    > `readonly` **source**: `PlacementSource`

    Defined in: packages/core/src/edge/placement.ts:77

    Which precedence layer selected this placement.

    ### targetName

    > `readonly` **targetName**: `string`

    Defined in: packages/core/src/edge/placement.ts:73

    Resolved target name (registered or the built-in `cloud`).
  </Accordion>

  <Accordion title="Core exports: interfaces/PlacementResolverInputs">
    @fentaris/core / PlacementResolverInputs

    Defined in: packages/core/src/edge/placement.ts:93

    Inputs for PlacementResolver.

    ## Extended by

    * `EdgeSessionPinnerInputs`

    ## Properties

    ### bindings

    > `readonly` **bindings**: readonly `PlacementBindingModel`\[]

    Defined in: packages/core/src/edge/placement.ts:97

    Normalized placement bindings.

    ### targets

    > `readonly` **targets**: `ReadonlyMap`\<`string`, `ExecutionTarget`>

    Defined in: packages/core/src/edge/placement.ts:95

    Registered execution targets, keyed by name.
  </Accordion>

  <Accordion title="Core exports: interfaces/PolicyContract">
    @fentaris/core / PolicyContract

    Defined in: packages/core/src/types/policy.ts:59

    Policy for RBAC-style permission enforcement.

    ## Properties

    ### description?

    > `optional` **description?**: `string`

    Defined in: packages/core/src/types/policy.ts:61

    ### metadata?

    > `optional` **metadata?**: `object`

    Defined in: packages/core/src/types/policy.ts:69

    #### Index Signature

    \[`key`: `string`]: `unknown`

    #### maxDailyCalls?

    > `optional` **maxDailyCalls?**: `number`

    #### requiresApproval?

    > `optional` **requiresApproval?**: `boolean`

    ### name

    > **name**: `string`

    Defined in: packages/core/src/types/policy.ts:60

    ## Methods

    ### evaluate()

    > **evaluate**(`request`, `user`, `context?`): `MaybePromise`\<`PolicyDecision`>

    Defined in: packages/core/src/types/policy.ts:64

    #### Parameters

    ##### request

    `ToolCallRequest` | `CapabilityOperationRequest`

    ##### user

    `UserContext`

    ##### context?

    `MiddlewareContext`

    #### Returns

    `MaybePromise`\<`PolicyDecision`>

    ### getCapabilityPermissions()?

    > `optional` **getCapabilityPermissions**(`serverName`): `CapabilityPermission`\[]

    Defined in: packages/core/src/types/policy.ts:63

    #### Parameters

    ##### serverName

    `string`

    #### Returns

    `CapabilityPermission`\[]

    ### getPermissions()

    > **getPermissions**(`serverName`): `ToolPermission`\[]

    Defined in: packages/core/src/types/policy.ts:62

    #### Parameters

    ##### serverName

    `string`

    #### Returns

    `ToolPermission`\[]
  </Accordion>

  <Accordion title="Core exports: interfaces/PythonInstallationProvider">
    @fentaris/core / PythonInstallationProvider

    Defined in: packages/core/src/edge/installation.ts:78

    ## Properties

    ### hashes

    > `readonly` **hashes**: readonly `` `sha256:${string}` ``\[]

    Defined in: packages/core/src/edge/installation.ts:82

    ### kind

    > `readonly` **kind**: `"python"`

    Defined in: packages/core/src/edge/installation.ts:79

    ### package

    > `readonly` **package**: `string`

    Defined in: packages/core/src/edge/installation.ts:80

    ### python?

    > `readonly` `optional` **python?**: `string`

    Defined in: packages/core/src/edge/installation.ts:83

    ### version

    > `readonly` **version**: `string`

    Defined in: packages/core/src/edge/installation.ts:81
  </Accordion>

  <Accordion title="Core exports: interfaces/RateLimiter">
    @fentaris/core / RateLimiter

    Defined in: packages/core/src/types/policy.ts:102

    Rate limiter with sliding window and quota support.

    ## Properties

    ### metadata?

    > `optional` **metadata?**: `object`

    Defined in: packages/core/src/types/policy.ts:107

    #### maxDailyCalls?

    > `optional` **maxDailyCalls?**: `number`

    #### maxPerWindow?

    > `optional` **maxPerWindow?**: `number`

    #### windowMs?

    > `optional` **windowMs?**: `number`

    ## Methods

    ### checkLimit()

    > **checkLimit**(`key`): `MaybePromise`\<`boolean`>

    Defined in: packages/core/src/types/policy.ts:104

    #### Parameters

    ##### key

    `string`

    #### Returns

    `MaybePromise`\<`boolean`>

    ### consume()

    > **consume**(`key`): `MaybePromise`\<`boolean`>

    Defined in: packages/core/src/types/policy.ts:103

    #### Parameters

    ##### key

    `string`

    #### Returns

    `MaybePromise`\<`boolean`>

    ### getRemainingCalls()

    > **getRemainingCalls**(`key`): `MaybePromise`\<`number`>

    Defined in: packages/core/src/types/policy.ts:106

    #### Parameters

    ##### key

    `string`

    #### Returns

    `MaybePromise`\<`number`>

    ### recordCall()

    > **recordCall**(`key`): `MaybePromise`\<`void`>

    Defined in: packages/core/src/types/policy.ts:105

    #### Parameters

    ##### key

    `string`

    #### Returns

    `MaybePromise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/RateLimitStore">
    @fentaris/core / RateLimitStore

    Defined in: packages/core/src/types/policy.ts:90

    Rate limit store for distributed tracking.

    ## Methods

    ### consume()

    > **consume**(`key`, `window`, `limit`): `MaybePromise`\<`boolean`>

    Defined in: packages/core/src/types/policy.ts:92

    #### Parameters

    ##### key

    `string`

    ##### window

    `number`

    ##### limit

    `number`

    #### Returns

    `MaybePromise`\<`boolean`>

    ### consumeMany()?

    > `optional` **consumeMany**(`limits`): `MaybePromise`\<`boolean`>

    Defined in: packages/core/src/types/policy.ts:93

    #### Parameters

    ##### limits

    `object`\[]

    #### Returns

    `MaybePromise`\<`boolean`>

    ### get()

    > **get**(`key`): `MaybePromise`\<`number`>

    Defined in: packages/core/src/types/policy.ts:94

    #### Parameters

    ##### key

    `string`

    #### Returns

    `MaybePromise`\<`number`>

    ### increment()

    > **increment**(`key`, `window`): `MaybePromise`\<`number`>

    Defined in: packages/core/src/types/policy.ts:91

    #### Parameters

    ##### key

    `string`

    ##### window

    `number`

    #### Returns

    `MaybePromise`\<`number`>

    ### reset()

    > **reset**(`key`): `MaybePromise`\<`void`>

    Defined in: packages/core/src/types/policy.ts:95

    #### Parameters

    ##### key

    `string`

    #### Returns

    `MaybePromise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: interfaces/Registry">
    @fentaris/core / Registry

    Defined in: packages/core/src/types/policy.ts:80

    Registry for resolving user data and secrets.

    ## Methods

    ### getSecrets()

    > **getSecrets**(`userId`): `MaybePromise`\<`Record`\<`string`, `string`> | `null`>

    Defined in: packages/core/src/types/policy.ts:82

    #### Parameters

    ##### userId

    `string`

    #### Returns

    `MaybePromise`\<`Record`\<`string`, `string`> | `null`>

    ### getTokens()

    > **getTokens**(`userId`): `MaybePromise`\<`Record`\<`string`, `string`> | `null`>

    Defined in: packages/core/src/types/policy.ts:83

    #### Parameters

    ##### userId

    `string`

    #### Returns

    `MaybePromise`\<`Record`\<`string`, `string`> | `null`>

    ### getUser()

    > **getUser**(`userId`): `MaybePromise`\<`UserContext` | `null`>

    Defined in: packages/core/src/types/policy.ts:81

    #### Parameters

    ##### userId

    `string`

    #### Returns

    `MaybePromise`\<`UserContext` | `null`>
  </Accordion>

  <Accordion title="Core exports: interfaces/RuntimeValueToken">
    @fentaris/core / RuntimeValueToken

    Defined in: packages/core/src/edge/runtimeInput.ts:24

    A serializable runtime-value token referencing a setup field by name.

    ## Properties

    ### \_\_fentarisRuntimeValue

    > `readonly` **\_\_fentarisRuntimeValue**: `true`

    Defined in: packages/core/src/edge/runtimeInput.ts:25

    ### kind

    > `readonly` **kind**: `RuntimeValueTokenKind`

    Defined in: packages/core/src/edge/runtimeInput.ts:26

    ### ref

    > `readonly` **ref**: `string`

    Defined in: packages/core/src/edge/runtimeInput.ts:28

    Name of the setup field this token resolves to.
  </Accordion>

  <Accordion title="Core exports: interfaces/ScalarFieldOptions">
    @fentaris/core / ScalarFieldOptions

    Defined in: packages/core/src/edge/setup.ts:136

    Builder options for simple scalar fields.

    ## Extended by

    * `NumberFieldOptions`
    * `SelectFieldOptions`

    ## Properties

    ### cloudVisible?

    > `readonly` `optional` **cloudVisible?**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:140

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/edge/setup.ts:139

    ### label?

    > `readonly` `optional` **label?**: `string`

    Defined in: packages/core/src/edge/setup.ts:138

    ### required?

    > `readonly` `optional` **required?**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:137
  </Accordion>

  <Accordion title="Core exports: interfaces/SecretsBackend">
    @fentaris/core / SecretsBackend

    Defined in: packages/core/src/secrets/types.ts:61

    Secrets storage backend contract.

    ## Properties

    ### provider

    > `readonly` **provider**: `SecretsProvider`

    Defined in: packages/core/src/secrets/types.ts:62

    ## Methods

    ### has()

    > **has**(`ref`, `scope`): `Promise`\<`boolean`>

    Defined in: packages/core/src/secrets/types.ts:64

    #### Parameters

    ##### ref

    `string`

    ##### scope

    `SecretScope`

    #### Returns

    `Promise`\<`boolean`>

    ### listRefs()

    > **listRefs**(): `Promise`\<`SecretRef`\[]>

    Defined in: packages/core/src/secrets/types.ts:63

    #### Returns

    `Promise`\<`SecretRef`\[]>

    ### set()

    > **set**(`ref`, `value`, `scope`): `Promise`\<`void`>

    Defined in: packages/core/src/secrets/types.ts:65

    #### Parameters

    ##### ref

    `string`

    ##### value

    `string`

    ##### scope

    `SecretScope`

    #### Returns

    `Promise`\<`void`>

    ### unset()

    > **unset**(`ref`, `scope`): `Promise`\<`boolean`>

    Defined in: packages/core/src/secrets/types.ts:66

    #### Parameters

    ##### ref

    `string`

    ##### scope

    `SecretScope`

    #### Returns

    `Promise`\<`boolean`>
  </Accordion>

  <Accordion title="Core exports: interfaces/SecretSetupField">
    @fentaris/core / SecretSetupField

    Defined in: packages/core/src/edge/setup.ts:60

    Secret field. Never carries a value; never cloud-visible.

    ## Extends

    * `SetupFieldCommon`

    ## Properties

    ### cloudVisible?

    > `readonly` `optional` **cloudVisible?**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:42

    Whether the resolved value may be returned to the control plane. Defaults to
    `false` for sensitive local fields. Only non-sensitive fields may opt in.

    #### Inherited from

    `SetupFieldCommon.cloudVisible`

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/edge/setup.ts:36

    Description for setup prompts. Must not contain resolved values.

    #### Inherited from

    `SetupFieldCommon.description`

    ### kind

    > `readonly` **kind**: `"secret"`

    Defined in: packages/core/src/edge/setup.ts:61

    ### label?

    > `readonly` `optional` **label?**: `string`

    Defined in: packages/core/src/edge/setup.ts:34

    Human-readable label for setup prompts.

    #### Inherited from

    `SetupFieldCommon.label`

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/edge/setup.ts:30

    Field name; assigned from the setup schema object key.

    #### Inherited from

    `SetupFieldCommon.name`

    ### required

    > `readonly` **required**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:32

    Whether the field must be supplied. Defaults to `true`.

    #### Inherited from

    `SetupFieldCommon.required`
  </Accordion>

  <Accordion title="Core exports: interfaces/SelectFieldOptions">
    @fentaris/core / SelectFieldOptions

    Defined in: packages/core/src/edge/setup.ts:144

    Builder options for a select field.

    ## Extends

    * `ScalarFieldOptions`

    ## Properties

    ### cloudVisible?

    > `readonly` `optional` **cloudVisible?**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:140

    #### Inherited from

    `ScalarFieldOptions`.`cloudVisible`

    ### default?

    > `readonly` `optional` **default?**: `string`

    Defined in: packages/core/src/edge/setup.ts:146

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/edge/setup.ts:139

    #### Inherited from

    `ScalarFieldOptions`.`description`

    ### label?

    > `readonly` `optional` **label?**: `string`

    Defined in: packages/core/src/edge/setup.ts:138

    #### Inherited from

    `ScalarFieldOptions`.`label`

    ### options

    > `readonly` **options**: readonly (`string` | `SelectOption`)\[]

    Defined in: packages/core/src/edge/setup.ts:145

    ### required?

    > `readonly` `optional` **required?**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:137

    #### Inherited from

    `ScalarFieldOptions`.`required`
  </Accordion>

  <Accordion title="Core exports: interfaces/SelectOption">
    @fentaris/core / SelectOption

    Defined in: packages/core/src/edge/setup.ts:86

    Select field with a closed value set.

    ## Properties

    ### label?

    > `readonly` `optional` **label?**: `string`

    Defined in: packages/core/src/edge/setup.ts:90

    Optional human-readable label.

    ### value

    > `readonly` **value**: `string`

    Defined in: packages/core/src/edge/setup.ts:88

    Stable value resolved at launch.
  </Accordion>

  <Accordion title="Core exports: interfaces/SelectSetupField">
    @fentaris/core / SelectSetupField

    Defined in: packages/core/src/edge/setup.ts:93

    ## Extends

    * `SetupFieldCommon`

    ## Properties

    ### cloudVisible?

    > `readonly` `optional` **cloudVisible?**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:42

    Whether the resolved value may be returned to the control plane. Defaults to
    `false` for sensitive local fields. Only non-sensitive fields may opt in.

    #### Inherited from

    `SetupFieldCommon.cloudVisible`

    ### default?

    > `readonly` `optional` **default?**: `string`

    Defined in: packages/core/src/edge/setup.ts:96

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/edge/setup.ts:36

    Description for setup prompts. Must not contain resolved values.

    #### Inherited from

    `SetupFieldCommon.description`

    ### kind

    > `readonly` **kind**: `"select"`

    Defined in: packages/core/src/edge/setup.ts:94

    ### label?

    > `readonly` `optional` **label?**: `string`

    Defined in: packages/core/src/edge/setup.ts:34

    Human-readable label for setup prompts.

    #### Inherited from

    `SetupFieldCommon.label`

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/edge/setup.ts:30

    Field name; assigned from the setup schema object key.

    #### Inherited from

    `SetupFieldCommon.name`

    ### options

    > `readonly` **options**: readonly `SelectOption`\[]

    Defined in: packages/core/src/edge/setup.ts:95

    ### required

    > `readonly` **required**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:32

    Whether the field must be supplied. Defaults to `true`.

    #### Inherited from

    `SetupFieldCommon.required`
  </Accordion>

  <Accordion title="Core exports: interfaces/SessionBindingExpiryOptions">
    @fentaris/core / SessionBindingExpiryOptions

    Defined in: packages/core/src/edge/sessionBinding.ts:75

    Expiry configuration for session-target bindings.

    ## Properties

    ### fixedMs?

    > `readonly` `optional` **fixedMs?**: `number`

    Defined in: packages/core/src/edge/sessionBinding.ts:88

    Fixed absolute expiry in milliseconds from creation. When omitted,
    bindings do not have a hard lifetime cap.

    ### idleMs?

    > `readonly` `optional` **idleMs?**: `number`

    Defined in: packages/core/src/edge/sessionBinding.ts:82

    Idle timeout in milliseconds. Refreshed on every access via SessionBindingStore.get. When omitted, bindings do not expire by
    inactivity.
  </Accordion>

  <Accordion title="Core exports: interfaces/SessionBindingKey">
    @fentaris/core / SessionBindingKey

    Defined in: packages/core/src/edge/sessionBinding.ts:28

    Key identifying one session-target binding.

    ## Properties

    ### sessionId

    > `readonly` **sessionId**: `string`

    Defined in: packages/core/src/edge/sessionBinding.ts:30

    Downstream MCP session id.

    ### subjectId?

    > `readonly` `optional` **subjectId?**: `string`

    Defined in: packages/core/src/edge/sessionBinding.ts:32

    Authenticated subject id, when known.

    ### targetName

    > `readonly` **targetName**: `string`

    Defined in: packages/core/src/edge/sessionBinding.ts:34

    Logical execution-target name.
  </Accordion>

  <Accordion title="Core exports: interfaces/SessionBindingListener">
    @fentaris/core / SessionBindingListener

    Defined in: packages/core/src/edge/sessionBinding.ts:69

    Listener notified when bindings are removed.

    ## Methods

    ### onSessionBindingRemoved()?

    > `optional` **onSessionBindingRemoved**(`binding`, `reason`): `void`

    Defined in: packages/core/src/edge/sessionBinding.ts:71

    Called for every binding removal. Synchronous listeners must not throw.

    #### Parameters

    ##### binding

    `SessionTargetBinding`

    ##### reason

    `SessionBindingRemovalReason`

    #### Returns

    `void`
  </Accordion>

  <Accordion title="Core exports: interfaces/SessionBindingStore">
    @fentaris/core / SessionBindingStore

    Defined in: packages/core/src/edge/sessionBinding.ts:104

    Durable contract for session-target bindings.

    Methods are atomic with respect to a single key: a concurrent `store` for
    the same key either fully replaces the prior value (same node reconnect) or
    is rejected (different-node takeover). Implementations must not leak the
    resolved private device inventory in thrown errors.

    ## Methods

    ### addListener()

    > **addListener**(`listener`): `void`

    Defined in: packages/core/src/edge/sessionBinding.ts:133

    Register a removal listener.

    #### Parameters

    ##### listener

    `SessionBindingListener`

    #### Returns

    `void`

    ### clear()

    > **clear**(): `Promise`\<readonly `SessionTargetBinding`\[]>

    Defined in: packages/core/src/edge/sessionBinding.ts:127

    Remove every binding (runtime shutdown); returns the removed bindings.

    #### Returns

    `Promise`\<readonly `SessionTargetBinding`\[]>

    ### delete()

    > **delete**(`key`): `Promise`\<`SessionTargetBinding` | `undefined`>

    Defined in: packages/core/src/edge/sessionBinding.ts:119

    Delete a specific binding; returns the removed binding, if any.

    #### Parameters

    ##### key

    `SessionBindingKey`

    #### Returns

    `Promise`\<`SessionTargetBinding` | `undefined`>

    ### deleteSession()

    > **deleteSession**(`sessionId`): `Promise`\<readonly `SessionTargetBinding`\[]>

    Defined in: packages/core/src/edge/sessionBinding.ts:121

    Delete every binding for a session; returns the removed bindings.

    #### Parameters

    ##### sessionId

    `string`

    #### Returns

    `Promise`\<readonly `SessionTargetBinding`\[]>

    ### deleteTarget()

    > **deleteTarget**(`targetName`): `Promise`\<readonly `SessionTargetBinding`\[]>

    Defined in: packages/core/src/edge/sessionBinding.ts:123

    Delete every binding for a target; returns the removed bindings.

    #### Parameters

    ##### targetName

    `string`

    #### Returns

    `Promise`\<readonly `SessionTargetBinding`\[]>

    ### get()

    > **get**(`key`): `Promise`\<`SessionTargetBinding` | `undefined`>

    Defined in: packages/core/src/edge/sessionBinding.ts:117

    Read a live binding, refreshing its idle timer. Returns `undefined` when
    the binding is missing or has expired (expired bindings are removed).

    #### Parameters

    ##### key

    `SessionBindingKey`

    #### Returns

    `Promise`\<`SessionTargetBinding` | `undefined`>

    ### listBySession()

    > **listBySession**(`sessionId`): `Promise`\<readonly `SessionTargetBinding`\[]>

    Defined in: packages/core/src/edge/sessionBinding.ts:129

    List all live bindings for a session.

    #### Parameters

    ##### sessionId

    `string`

    #### Returns

    `Promise`\<readonly `SessionTargetBinding`\[]>

    ### purgeExpired()

    > **purgeExpired**(): `Promise`\<readonly `SessionTargetBinding`\[]>

    Defined in: packages/core/src/edge/sessionBinding.ts:125

    Remove and return all expired bindings.

    #### Returns

    `Promise`\<readonly `SessionTargetBinding`\[]>

    ### size()

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

    Defined in: packages/core/src/edge/sessionBinding.ts:131

    Number of live bindings currently stored.

    #### Returns

    `Promise`\<`number`>

    ### store()

    > **store**(`key`, `value`): `Promise`\<`SessionTargetBinding`>

    Defined in: packages/core/src/edge/sessionBinding.ts:111

    Atomically store a new binding. Idempotent when the same node replays an
    equal-or-lower generation. Throws `EDGE_UNAVAILABLE` when an existing live
    binding is pinned to a different edge node (silent takeover is rejected).

    #### Parameters

    ##### key

    `SessionBindingKey`

    ##### value

    `SessionBindingInput`

    #### Returns

    `Promise`\<`SessionTargetBinding`>
  </Accordion>

  <Accordion title="Core exports: interfaces/SessionPinRequest">
    @fentaris/core / SessionPinRequest

    Defined in: packages/core/src/edge/sessionPinning.ts:44

    A request to pin (or reuse) a session target for one server.

    ## Extends

    * `PlacementRequest`

    ## Properties

    ### connectionGeneration?

    > `readonly` `optional` **connectionGeneration?**: `number`

    Defined in: packages/core/src/edge/sessionPinning.ts:48

    Connection generation of the candidate edge node (when known).

    ### deviceSelection?

    > `readonly` `optional` **deviceSelection?**: `EdgeSelectionRequest`

    Defined in: packages/core/src/edge/sessionPinning.ts:54

    Optional one-shot declarative device constraints for the first pin.

    ### groupIds

    > `readonly` **groupIds**: readonly `string`\[]

    Defined in: packages/core/src/edge/placement.ts:65

    Group ids the subject is a member of at resolution time.

    #### Inherited from

    `PlacementRequest`.`groupIds`

    ### requestedDeviceId?

    > `readonly` `optional` **requestedDeviceId?**: `string`

    Defined in: packages/core/src/edge/sessionPinning.ts:50

    Device id requested during downstream session establishment, if any.

    ### requestedTarget?

    > `readonly` `optional` **requestedTarget?**: `string`

    Defined in: packages/core/src/edge/placement.ts:67

    Explicit target requested by the downstream session, if any.

    #### Inherited from

    `PlacementRequest`.`requestedTarget`

    ### serverName

    > `readonly` **serverName**: `string`

    Defined in: packages/core/src/edge/placement.ts:61

    Server the operation targets.

    #### Inherited from

    `PlacementRequest`.`serverName`

    ### sessionId

    > `readonly` **sessionId**: `string`

    Defined in: packages/core/src/edge/sessionPinning.ts:46

    Downstream MCP session id.

    ### subjectId?

    > `readonly` `optional` **subjectId?**: `string`

    Defined in: packages/core/src/edge/placement.ts:63

    Authenticated subject id, if known.

    #### Inherited from

    `PlacementRequest`.`subjectId`

    ### tenantId?

    > `readonly` `optional` **tenantId?**: `string`

    Defined in: packages/core/src/edge/sessionPinning.ts:52

    Tenant id, when known.
  </Accordion>

  <Accordion title="Core exports: interfaces/SessionTargetBinding">
    @fentaris/core / SessionTargetBinding

    Defined in: packages/core/src/edge/sessionBinding.ts:38

    A pinned session-target binding.

    ## Properties

    ### alias?

    > `readonly` `optional` **alias?**: `string`

    Defined in: packages/core/src/edge/sessionBinding.ts:48

    Control-plane alias, when known.

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/sessionBinding.ts:50

    Connection generation of the edge node at pin time.

    ### createdAt

    > `readonly` **createdAt**: `number`

    Defined in: packages/core/src/edge/sessionBinding.ts:52

    Epoch milliseconds when the binding was created.

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/sessionBinding.ts:46

    Stable opaque edge node id backing the device key.

    ### expiresAt?

    > `readonly` `optional` **expiresAt?**: `number`

    Defined in: packages/core/src/edge/sessionBinding.ts:56

    Epoch milliseconds at which the binding expires, when applicable.

    ### lastAccessAt

    > `readonly` **lastAccessAt**: `number`

    Defined in: packages/core/src/edge/sessionBinding.ts:54

    Epoch milliseconds of the last access (touch).

    ### sessionId

    > `readonly` **sessionId**: `string`

    Defined in: packages/core/src/edge/sessionBinding.ts:40

    Downstream MCP session id.

    ### subjectId?

    > `readonly` `optional` **subjectId?**: `string`

    Defined in: packages/core/src/edge/sessionBinding.ts:42

    Authenticated subject id, when known.

    ### targetName

    > `readonly` **targetName**: `string`

    Defined in: packages/core/src/edge/sessionBinding.ts:44

    Logical execution-target name the binding pins.
  </Accordion>

  <Accordion title="Core exports: interfaces/SetupDiagnostic">
    @fentaris/core / SetupDiagnostic

    Defined in: packages/core/src/edge/setup.ts:247

    A diagnostic produced by setup schema validation.

    ## Properties

    ### code

    > `readonly` **code**: `"EDGE_PLACEMENT_AMBIGUOUS"` | `"EDGE_UNAUTHORIZED_TARGET"` | `"EDGE_UNAVAILABLE"` | `"EDGE_CAPACITY"` | `"EDGE_SESSION_PINNED"` | `"EDGE_INPUT_INVALID"` | `"EDGE_INVENTORY_CONFLICT"` | `"EDGE_NAME_CONFLICT"` | `"EDGE_PROTOCOL"` | `"EDGE_WORKLOAD"` | `"EDGE_GRANT"` | `"EDGE_UNRESOLVED_RUNTIME_INPUT"` | `` `EDGE_SETUP_${string}` ``

    Defined in: packages/core/src/edge/setup.ts:249

    ### field?

    > `readonly` `optional` **field?**: `string`

    Defined in: packages/core/src/edge/setup.ts:250

    ### message

    > `readonly` **message**: `string`

    Defined in: packages/core/src/edge/setup.ts:251

    ### severity

    > `readonly` **severity**: `"error"` | `"warning"`

    Defined in: packages/core/src/edge/setup.ts:248
  </Accordion>

  <Accordion title="Core exports: interfaces/SetupSchema">
    @fentaris/core / SetupSchema

    Defined in: packages/core/src/edge/setup.ts:120

    A normalized, versioned setup schema.

    ## Properties

    ### fields

    > `readonly` **fields**: `Readonly`\<`Record`\<`string`, `SetupField`>>

    Defined in: packages/core/src/edge/setup.ts:124

    Fields keyed by name.

    ### version

    > `readonly` **version**: `number`

    Defined in: packages/core/src/edge/setup.ts:122

    Schema version; bumped on incompatible field changes.
  </Accordion>

  <Accordion title="Core exports: interfaces/StringSetupField">
    @fentaris/core / StringSetupField

    Defined in: packages/core/src/edge/setup.ts:66

    Free-form string field, with an optional safe default.

    ## Extends

    * `SetupFieldCommon`

    ## Properties

    ### cloudVisible?

    > `readonly` `optional` **cloudVisible?**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:42

    Whether the resolved value may be returned to the control plane. Defaults to
    `false` for sensitive local fields. Only non-sensitive fields may opt in.

    #### Inherited from

    `SetupFieldCommon.cloudVisible`

    ### default?

    > `readonly` `optional` **default?**: `string`

    Defined in: packages/core/src/edge/setup.ts:68

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/edge/setup.ts:36

    Description for setup prompts. Must not contain resolved values.

    #### Inherited from

    `SetupFieldCommon.description`

    ### kind

    > `readonly` **kind**: `"string"`

    Defined in: packages/core/src/edge/setup.ts:67

    ### label?

    > `readonly` `optional` **label?**: `string`

    Defined in: packages/core/src/edge/setup.ts:34

    Human-readable label for setup prompts.

    #### Inherited from

    `SetupFieldCommon.label`

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/edge/setup.ts:30

    Field name; assigned from the setup schema object key.

    #### Inherited from

    `SetupFieldCommon.name`

    ### required

    > `readonly` **required**: `boolean`

    Defined in: packages/core/src/edge/setup.ts:32

    Whether the field must be supplied. Defaults to `true`.

    #### Inherited from

    `SetupFieldCommon.required`
  </Accordion>

  <Accordion title="Core exports: type-aliases/AgentJsonEnvelope">
    @fentaris/core / AgentJsonEnvelope

    > **AgentJsonEnvelope**\<`TData`> = `AgentJsonSuccess`\<`TData`> | `AgentJsonFailure`

    Defined in: packages/core/src/tools/index.ts:51

    ## Type Parameters

    ### TData

    `TData`
  </Accordion>

  <Accordion title="Core exports: type-aliases/AgentJsonFailure">
    @fentaris/core / AgentJsonFailure

    > **AgentJsonFailure** = `object`

    Defined in: packages/core/src/tools/index.ts:40

    ## Properties

    ### error

    > **error**: `object`

    Defined in: packages/core/src/tools/index.ts:42

    #### code

    > **code**: `string`

    #### details?

    > `optional` **details?**: `Record`\<`string`, `unknown`>

    #### message

    > **message**: `string`

    ### nextActions

    > **nextActions**: `AgentJsonNextAction`\[]

    Defined in: packages/core/src/tools/index.ts:48

    ### ok

    > **ok**: `false`

    Defined in: packages/core/src/tools/index.ts:41

    ### warnings

    > **warnings**: `AgentJsonWarning`\[]

    Defined in: packages/core/src/tools/index.ts:47
  </Accordion>

  <Accordion title="Core exports: type-aliases/AgentJsonNextAction">
    @fentaris/core / AgentJsonNextAction

    > **AgentJsonNextAction** = `object`

    Defined in: packages/core/src/tools/index.ts:17

    ## Properties

    ### command?

    > `optional` **command?**: `string`

    Defined in: packages/core/src/tools/index.ts:19

    ### label

    > **label**: `string`

    Defined in: packages/core/src/tools/index.ts:18

    ### reason?

    > `optional` **reason?**: `string`

    Defined in: packages/core/src/tools/index.ts:20
  </Accordion>

  <Accordion title="Core exports: type-aliases/AgentJsonSuccess">
    @fentaris/core / AgentJsonSuccess

    > **AgentJsonSuccess**\<`TData`> = `object`

    Defined in: packages/core/src/tools/index.ts:32

    ## Type Parameters

    ### TData

    `TData`

    ## Properties

    ### data

    > **data**: `TData`

    Defined in: packages/core/src/tools/index.ts:34

    ### nextActions

    > **nextActions**: `AgentJsonNextAction`\[]

    Defined in: packages/core/src/tools/index.ts:37

    ### ok

    > **ok**: `true`

    Defined in: packages/core/src/tools/index.ts:33

    ### pagination?

    > `optional` **pagination?**: `AgentPagination`

    Defined in: packages/core/src/tools/index.ts:35

    ### warnings

    > **warnings**: `AgentJsonWarning`\[]

    Defined in: packages/core/src/tools/index.ts:36
  </Accordion>

  <Accordion title="Core exports: type-aliases/AgentJsonWarning">
    @fentaris/core / AgentJsonWarning

    > **AgentJsonWarning** = `object`

    Defined in: packages/core/src/tools/index.ts:9

    ## Properties

    ### code

    > **code**: `string`

    Defined in: packages/core/src/tools/index.ts:10

    ### details?

    > `optional` **details?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/tools/index.ts:14

    ### mcp?

    > `optional` **mcp?**: `string`

    Defined in: packages/core/src/tools/index.ts:12

    ### message

    > **message**: `string`

    Defined in: packages/core/src/tools/index.ts:11

    ### selector?

    > `optional` **selector?**: `string`

    Defined in: packages/core/src/tools/index.ts:13
  </Accordion>

  <Accordion title="Core exports: type-aliases/AgentPagination">
    @fentaris/core / AgentPagination

    > **AgentPagination** = `object`

    Defined in: packages/core/src/tools/index.ts:23

    ## Properties

    ### cursor

    > **cursor**: `string` | `null`

    Defined in: packages/core/src/tools/index.ts:25

    ### limit

    > **limit**: `number`

    Defined in: packages/core/src/tools/index.ts:24

    ### nextCursor

    > **nextCursor**: `string` | `null`

    Defined in: packages/core/src/tools/index.ts:26

    ### returned

    > **returned**: `number`

    Defined in: packages/core/src/tools/index.ts:28

    ### total

    > **total**: `number`

    Defined in: packages/core/src/tools/index.ts:27

    ### truncated?

    > `optional` **truncated?**: `boolean`

    Defined in: packages/core/src/tools/index.ts:29
  </Accordion>

  <Accordion title="Core exports: type-aliases/ApprovalDecisionController">
    @fentaris/core / ApprovalDecisionController

    > **ApprovalDecisionController** = `object`

    Defined in: packages/core/src/types/shared.ts:142

    Ergonomic helpers for approval callbacks.

    ## Methods

    ### approve()

    > **approve**(`metadata?`): `ApprovalResult`

    Defined in: packages/core/src/types/shared.ts:143

    #### Parameters

    ##### metadata?

    `Record`\<`string`, `unknown`>

    #### Returns

    `ApprovalResult`

    ### deny()

    > **deny**(`reason?`, `metadata?`): `ApprovalResult`

    Defined in: packages/core/src/types/shared.ts:144

    #### Parameters

    ##### reason?

    `string`

    ##### metadata?

    `Record`\<`string`, `unknown`>

    #### Returns

    `ApprovalResult`

    ### pending()

    > **pending**(`reason?`, `metadata?`): `ApprovalResult`

    Defined in: packages/core/src/types/shared.ts:145

    #### Parameters

    ##### reason?

    `string`

    ##### metadata?

    `Record`\<`string`, `unknown`>

    #### Returns

    `ApprovalResult`
  </Accordion>

  <Accordion title="Core exports: type-aliases/ApprovalHandler">
    @fentaris/core / ApprovalHandler

    > **ApprovalHandler**\<`TRequest`> = (`request`, `context`) => `MaybePromise`\<`ApprovalResult`>

    Defined in: packages/core/src/types/shared.ts:168

    Permission approval callback.

    ## Type Parameters

    ### TRequest

    `TRequest`

    ## Parameters

    ### request

    `TRequest`

    ### context

    `MiddlewareContext`

    ## Returns

    `MaybePromise`\<`ApprovalResult`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/ApprovalMetadata">
    @fentaris/core / ApprovalMetadata

    > **ApprovalMetadata** = `object`

    Defined in: packages/core/src/types/shared.ts:58

    Safe approval metadata exposed through policy decisions and logs.

    ## Properties

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/shared.ts:63

    ### reason?

    > `optional` **reason?**: `string`

    Defined in: packages/core/src/types/shared.ts:60

    ### requestId?

    > `optional` **requestId?**: `string`

    Defined in: packages/core/src/types/shared.ts:62

    ### status

    > **status**: `"approved"` | `"denied"` | `"pending"`

    Defined in: packages/core/src/types/shared.ts:59

    ### url?

    > `optional` **url?**: `string`

    Defined in: packages/core/src/types/shared.ts:61
  </Accordion>

  <Accordion title="Core exports: type-aliases/ApprovalResult">
    @fentaris/core / ApprovalResult

    > **ApprovalResult** = `boolean` | \{ `approved`: `boolean`; `metadata?`: `Record`\<`string`, `unknown`>; `reason?`: `string`; } | \{ `metadata?`: `Record`\<`string`, `unknown`>; `reason?`: `string`; `requestId?`: `string`; `status`: `"approved"` | `"denied"` | `"pending"`; `url?`: `string`; }

    Defined in: packages/core/src/types/shared.ts:123

    Structured result for permission approval callbacks.
  </Accordion>

  <Accordion title="Core exports: type-aliases/AuthStatus">
    @fentaris/core / AuthStatus

    > **AuthStatus** = `"authenticated"` | `"requires-login"` | `"unsupported"` | `"blocked"`

    Defined in: packages/core/src/tools/index.ts:95
  </Accordion>

  <Accordion title="Core exports: type-aliases/AutoLogOptions">
    @fentaris/core / AutoLogOptions

    > **AutoLogOptions** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:365

    Auto-log configuration for proxied tool calls.

    ## Properties

    ### enabled?

    > `optional` **enabled?**: `boolean`

    Defined in: packages/core/src/proxy/McpProxy.ts:366

    ### failureLevel?

    > `optional` **failureLevel?**: `"warn"` | `"error"`

    Defined in: packages/core/src/proxy/McpProxy.ts:369

    ### startLevel?

    > `optional` **startLevel?**: `"debug"` | `"info"`

    Defined in: packages/core/src/proxy/McpProxy.ts:367

    ### successLevel?

    > `optional` **successLevel?**: `"debug"` | `"info"`

    Defined in: packages/core/src/proxy/McpProxy.ts:368
  </Accordion>

  <Accordion title="Core exports: type-aliases/BearerCredentialAuth">
    @fentaris/core / BearerCredentialAuth

    > **BearerCredentialAuth** = `object`

    Defined in: packages/core/src/server/McpServer.ts:44

    MCP server option types.

    ## Properties

    ### credential

    > **credential**: `CredentialReference`

    Defined in: packages/core/src/server/McpServer.ts:46

    ### type

    > **type**: `"bearer"`

    Defined in: packages/core/src/server/McpServer.ts:45
  </Accordion>

  <Accordion title="Core exports: type-aliases/CapabilityOperationRequest">
    @fentaris/core / CapabilityOperationRequest

    > **CapabilityOperationRequest** = `object`

    Defined in: packages/core/src/types/mcp-operation.ts:110

    Normalized request used for operation-based policy evaluation.

    ## Properties

    ### operation

    > **operation**: `McpOperationName`

    Defined in: packages/core/src/types/mcp-operation.ts:112

    ### raw?

    > `optional` **raw?**: `unknown`

    Defined in: packages/core/src/types/mcp-operation.ts:115

    ### serverName

    > **serverName**: `string`

    Defined in: packages/core/src/types/mcp-operation.ts:111

    ### target?

    > `optional` **target?**: `string`

    Defined in: packages/core/src/types/mcp-operation.ts:113

    ### targetKind?

    > `optional` **targetKind?**: `CapabilityTargetKind`

    Defined in: packages/core/src/types/mcp-operation.ts:114
  </Accordion>

  <Accordion title="Core exports: type-aliases/CapabilityPermission">
    @fentaris/core / CapabilityPermission

    > **CapabilityPermission** = `object`

    Defined in: packages/core/src/types/policy.ts:34

    Operation-based permission model for governed MCP capabilities.

    ## Properties

    ### approval?

    > `optional` **approval?**: `ApprovalHandler`\<`CapabilityOperationRequest`>

    Defined in: packages/core/src/types/policy.ts:41

    ### effect?

    > `optional` **effect?**: `"allow"` | `"deny"`

    Defined in: packages/core/src/types/policy.ts:39

    ### limiter?

    > `optional` **limiter?**: `RateLimiter`

    Defined in: packages/core/src/types/policy.ts:40

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/policy.ts:42

    ### operation

    > **operation**: `McpOperationName` | `"*"`

    Defined in: packages/core/src/types/policy.ts:36

    ### server?

    > `optional` **server?**: `string`

    Defined in: packages/core/src/types/policy.ts:35

    ### target?

    > `optional` **target?**: `string`

    Defined in: packages/core/src/types/policy.ts:37

    ### targetKind?

    > `optional` **targetKind?**: `CapabilityTargetKind`

    Defined in: packages/core/src/types/policy.ts:38
  </Accordion>

  <Accordion title="Core exports: type-aliases/CapabilityPermissionOptions">
    @fentaris/core / CapabilityPermissionOptions

    > **CapabilityPermissionOptions** = `Omit`\<`CapabilityPermission`, `"effect"`> & `object`

    Defined in: packages/core/src/governance/governance.ts:330

    Operation-based permission helper options.

    ## Type Declaration

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    ### sensitive?

    > `optional` **sensitive?**: `boolean` | `Record`\<`string`, `unknown`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/CapabilityTargetKind">
    @fentaris/core / CapabilityTargetKind

    > **CapabilityTargetKind** = `"tool"` | `"resource"` | `"resourceTemplate"` | `"prompt"` | `"completion"`

    Defined in: packages/core/src/types/mcp-operation.ts:104

    Capability target selector kind for policy permissions.
  </Accordion>

  <Accordion title="Core exports: type-aliases/CompactToolMetadata">
    @fentaris/core / CompactToolMetadata

    > **CompactToolMetadata** = `object`

    Defined in: packages/core/src/tools/index.ts:66

    ## Properties

    ### authStatus

    > **authStatus**: `AuthStatus`

    Defined in: packages/core/src/tools/index.ts:73

    ### available

    > **available**: `boolean`

    Defined in: packages/core/src/tools/index.ts:72

    ### description?

    > `optional` **description?**: `string`

    Defined in: packages/core/src/tools/index.ts:71

    ### discovery

    > **discovery**: `DiscoveryMetadata`

    Defined in: packages/core/src/tools/index.ts:78

    ### mcp

    > **mcp**: `string`

    Defined in: packages/core/src/tools/index.ts:68

    ### name

    > **name**: `string`

    Defined in: packages/core/src/tools/index.ts:67

    ### schema

    > **schema**: `object`

    Defined in: packages/core/src/tools/index.ts:74

    #### input

    > **input**: `"available"` | `"unavailable"`

    #### output

    > **output**: `"available"` | `"unavailable"`

    ### title?

    > `optional` **title?**: `string`

    Defined in: packages/core/src/tools/index.ts:70

    ### upstreamName

    > **upstreamName**: `string`

    Defined in: packages/core/src/tools/index.ts:69
  </Accordion>

  <Accordion title="Core exports: type-aliases/CompileEdgeDeploymentCatalogOptions">
    @fentaris/core / CompileEdgeDeploymentCatalogOptions

    > **CompileEdgeDeploymentCatalogOptions** = `object`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:60

    ## Properties

    ### bindings

    > `readonly` **bindings**: readonly `PlacementBindingModel`\[]

    Defined in: packages/core/src/edge/integratedReconciliation.ts:63

    ### installationRecipes?

    > `readonly` `optional` **installationRecipes?**: `ReadonlyMap`\<`string`, `InstallationRecipe`>

    Defined in: packages/core/src/edge/integratedReconciliation.ts:65

    ### servers

    > `readonly` **servers**: readonly `McpServer`\[]

    Defined in: packages/core/src/edge/integratedReconciliation.ts:61

    ### setupSchemas

    > `readonly` **setupSchemas**: `ReadonlyMap`\<`string`, `SetupSchema`>

    Defined in: packages/core/src/edge/integratedReconciliation.ts:64

    ### targets

    > `readonly` **targets**: `ReadonlyMap`\<`string`, `ExecutionTarget`>

    Defined in: packages/core/src/edge/integratedReconciliation.ts:62
  </Accordion>

  <Accordion title="Core exports: type-aliases/CompleteParams">
    @fentaris/core / CompleteParams

    > **CompleteParams** = `CompleteRequest`\[`"params"`]

    Defined in: packages/core/src/types/mcp-operation.ts:45

    Request/result aliases for MCP completion operations.
  </Accordion>

  <Accordion title="Core exports: type-aliases/CompleteResponse">
    @fentaris/core / CompleteResponse

    > **CompleteResponse** = `CompleteResult`

    Defined in: packages/core/src/types/mcp-operation.ts:46

    Core middleware and transport types.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ConnectionGeneration">
    @fentaris/core / ConnectionGeneration

    > **ConnectionGeneration** = `number`

    Defined in: packages/core/src/edge/sessionBinding.ts:25

    A monotonically increasing per-device connection generation.
  </Accordion>

  <Accordion title="Core exports: type-aliases/CredentialEnvSource">
    @fentaris/core / CredentialEnvSource

    > **CredentialEnvSource** = `object`

    Defined in: packages/core/src/credentials/credentials.ts:44

    Environment variable credential source.

    ## Properties

    ### \[credentialSourceMarker]

    > `readonly` **\[credentialSourceMarker]**: `true`

    Defined in: packages/core/src/credentials/credentials.ts:45

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/credentials/credentials.ts:47

    ### type

    > `readonly` **type**: `"env"`

    Defined in: packages/core/src/credentials/credentials.ts:46
  </Accordion>

  <Accordion title="Core exports: type-aliases/CredentialJsonOptions">
    @fentaris/core / CredentialJsonOptions

    > **CredentialJsonOptions** = `object`

    Defined in: packages/core/src/credentials/credentials.ts:60

    Options for encrypted local JSON credential lookup.

    ## Properties

    ### file?

    > `optional` **file?**: `string`

    Defined in: packages/core/src/credentials/credentials.ts:61

    ### key?

    > `optional` **key?**: `string`

    Defined in: packages/core/src/credentials/credentials.ts:62

    ### keyEnv?

    > `optional` **keyEnv?**: `string`

    Defined in: packages/core/src/credentials/credentials.ts:63
  </Accordion>

  <Accordion title="Core exports: type-aliases/CredentialJsonSource">
    @fentaris/core / CredentialJsonSource

    > **CredentialJsonSource** = `object`

    Defined in: packages/core/src/credentials/credentials.ts:31

    Encrypted local JSON credential source.

    ## Properties

    ### \[credentialSourceMarker]

    > `readonly` **\[credentialSourceMarker]**: `true`

    Defined in: packages/core/src/credentials/credentials.ts:32

    ### file?

    > `readonly` `optional` **file?**: `string`

    Defined in: packages/core/src/credentials/credentials.ts:35

    ### key?

    > `readonly` `optional` **key?**: `string`

    Defined in: packages/core/src/credentials/credentials.ts:36

    ### keyEnv?

    > `readonly` `optional` **keyEnv?**: `string`

    Defined in: packages/core/src/credentials/credentials.ts:37

    ### path

    > `readonly` **path**: `string`

    Defined in: packages/core/src/credentials/credentials.ts:34

    ### type

    > `readonly` **type**: `"json"`

    Defined in: packages/core/src/credentials/credentials.ts:33
  </Accordion>

  <Accordion title="Core exports: type-aliases/CredentialReference">
    @fentaris/core / CredentialReference

    > **CredentialReference** = `object`

    Defined in: packages/core/src/credentials/credentials.ts:16

    Logical credential reference resolved against the current subject.

    ## Properties

    ### \[credentialReferenceMarker]

    > `readonly` **\[credentialReferenceMarker]**: `true`

    Defined in: packages/core/src/credentials/credentials.ts:17

    ### reference

    > `readonly` **reference**: `string`

    Defined in: packages/core/src/credentials/credentials.ts:18
  </Accordion>

  <Accordion title="Core exports: type-aliases/CredentialResolution">
    @fentaris/core / CredentialResolution

    > **CredentialResolution** = `CredentialSourceMetadata` & `object`

    Defined in: packages/core/src/auth/auth.ts:84

    ## Type Declaration

    ### value

    > **value**: `string`
  </Accordion>

  <Accordion title="Core exports: type-aliases/CredentialSource">
    @fentaris/core / CredentialSource

    > **CredentialSource** = `CredentialJsonSource` | `CredentialEnvSource`

    Defined in: packages/core/src/credentials/credentials.ts:25

    Concrete source for a credential value.
  </Accordion>

  <Accordion title="Core exports: type-aliases/CredentialSourceMap">
    @fentaris/core / CredentialSourceMap

    > **CredentialSourceMap** = `Record`\<`string`, `CredentialSource`>

    Defined in: packages/core/src/credentials/credentials.ts:54

    Credential source map declared on users, groups, or defaults.
  </Accordion>

  <Accordion title="Core exports: type-aliases/CredentialSourceMetadata">
    @fentaris/core / CredentialSourceMetadata

    > **CredentialSourceMetadata** = `object`

    Defined in: packages/core/src/types/shared.ts:47

    Credential source metadata safe to expose in middleware and logs.

    ## Properties

    ### groupId?

    > `optional` **groupId?**: `string`

    Defined in: packages/core/src/types/shared.ts:51

    ### reference

    > **reference**: `string`

    Defined in: packages/core/src/types/shared.ts:48

    ### source

    > **source**: `"user"` | `"group"` | `"default"`

    Defined in: packages/core/src/types/shared.ts:49

    ### userId?

    > `optional` **userId?**: `string`

    Defined in: packages/core/src/types/shared.ts:50
  </Accordion>

  <Accordion title="Core exports: type-aliases/DetailedToolMetadata">
    @fentaris/core / DetailedToolMetadata

    > **DetailedToolMetadata** = `CompactToolMetadata` & `object`

    Defined in: packages/core/src/tools/index.ts:81

    ## Type Declaration

    ### inputSchema?

    > `optional` **inputSchema?**: `unknown`

    ### outputSchema?

    > `optional` **outputSchema?**: `unknown`

    ### sideEffects?

    > `optional` **sideEffects?**: `Record`\<`string`, `unknown`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/DeviceSelectorType">
    @fentaris/core / DeviceSelectorType

    > **DeviceSelectorType** = `"session"` | `"user-default"` | `"named"` | `"pool"` | `"fallback"`

    Defined in: packages/core/src/edge/target.ts:30

    Device selector discriminator.
  </Accordion>

  <Accordion title="Core exports: type-aliases/DiscoveryMetadata">
    @fentaris/core / DiscoveryMetadata

    > **DiscoveryMetadata** = `object`

    Defined in: packages/core/src/tools/index.ts:97

    ## Properties

    ### cacheStatus

    > **cacheStatus**: `"not-used"` | `"refreshed"`

    Defined in: packages/core/src/tools/index.ts:99

    ### refreshed

    > **refreshed**: `boolean`

    Defined in: packages/core/src/tools/index.ts:101

    ### startupStatus

    > **startupStatus**: `"started-or-reused"` | `"not-started"` | `"not-required"`

    Defined in: packages/core/src/tools/index.ts:100

    ### transportKind

    > **transportKind**: `"stdio"` | `"custom"`

    Defined in: packages/core/src/tools/index.ts:98
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeAgentMessage">
    @fentaris/core / EdgeAgentMessage

    > **EdgeAgentMessage** = `EdgeHeartbeatMessage` | `EdgePresenceReportMessage` | `EdgeDesiredStateAckMessage` | `EdgeSetupStatusMessage` | `EdgeCapabilityManifestMessage` | `EdgeLifecycleMessage` | `EdgeInstallationStatusMessage` | `EdgeInstallationApprovalMessage` | `EdgeMcpResultEnvelope` | `EdgeMcpErrorEnvelope`

    Defined in: packages/core/src/edge/controlProtocol.ts:214

    Messages accepted from an edge after hello.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeAuthenticatedHelloProof">
    @fentaris/core / EdgeAuthenticatedHelloProof

    > **EdgeAuthenticatedHelloProof** = `object`

    Defined in: packages/core/src/edge/integratedProtocol.ts:102

    Authenticated gateway hello envelope fields required by the integrated
    control plane. Protocol-v2 message contracts remain unchanged; this documents
    the proof-carrying fields the gateway validates.

    ## Properties

    ### deviceCredential

    > `readonly` **deviceCredential**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:107

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:103

    ### nonce

    > `readonly` **nonce**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:105

    ### proof

    > `readonly` **proof**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:106

    ### protocolVersions

    > `readonly` **protocolVersions**: readonly `number`\[]

    Defined in: packages/core/src/edge/integratedProtocol.ts:108

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:104
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeAuthenticatedHelloResult">
    @fentaris/core / EdgeAuthenticatedHelloResult

    > **EdgeAuthenticatedHelloResult** = \{ `connectionGeneration`: `number`; `credentialId`: `string`; `edgeNodeId`: `string`; `protocolVersion`: `number`; `status`: `"accepted"`; `tenantId`: `string`; } | \{ `error`: `EdgeControlPlaneErrorCode`; `status`: `"rejected"`; }

    Defined in: packages/core/src/edge/integratedProtocol.ts:112

    Result of validating an authenticated hello proof.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeAuthorizationSession">
    @fentaris/core / EdgeAuthorizationSession

    > **EdgeAuthorizationSession** = `object`

    Defined in: packages/core/src/edge/integratedServices.ts:23

    Durable authorization-session record used by device-code flows.

    ## Properties

    ### actorId?

    > `readonly` `optional` **actorId?**: `string`

    Defined in: packages/core/src/edge/integratedServices.ts:34

    ### approvedAt?

    > `readonly` `optional` **approvedAt?**: `number`

    Defined in: packages/core/src/edge/integratedServices.ts:35

    ### clientId

    > `readonly` **clientId**: `string`

    Defined in: packages/core/src/edge/integratedServices.ts:25

    ### createdAt

    > `readonly` **createdAt**: `number`

    Defined in: packages/core/src/edge/integratedServices.ts:28

    ### deviceCodeHash

    > `readonly` **deviceCodeHash**: `string`

    Defined in: packages/core/src/edge/integratedServices.ts:26

    ### expiresAt

    > `readonly` **expiresAt**: `number`

    Defined in: packages/core/src/edge/integratedServices.ts:29

    ### intervalSeconds

    > `readonly` **intervalSeconds**: `number`

    Defined in: packages/core/src/edge/integratedServices.ts:30

    ### metadata?

    > `readonly` `optional` **metadata?**: `Readonly`\<`Record`\<`string`, `string`>>

    Defined in: packages/core/src/edge/integratedServices.ts:36

    ### pollAttempts

    > `readonly` **pollAttempts**: `number`

    Defined in: packages/core/src/edge/integratedServices.ts:31

    ### status

    > `readonly` **status**: `"pending"` | `"approved"` | `"denied"` | `"consumed"` | `"expired"`

    Defined in: packages/core/src/edge/integratedServices.ts:32

    ### subjectId?

    > `readonly` `optional` **subjectId?**: `string`

    Defined in: packages/core/src/edge/integratedServices.ts:33

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/integratedServices.ts:24

    ### userCodeNormalized

    > `readonly` **userCodeNormalized**: `string`

    Defined in: packages/core/src/edge/integratedServices.ts:27
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeCapabilityChangeListener">
    @fentaris/core / EdgeCapabilityChangeListener

    > **EdgeCapabilityChangeListener** = (`tenantId`, `deploymentId`, `state`) => `void` | `Promise`\<`void`>

    Defined in: packages/core/src/edge/capabilityCache.ts:37

    ## Parameters

    ### tenantId

    `string`

    ### deploymentId

    `string`

    ### state

    `EdgeDiscoveryState`

    ## Returns

    `void` | `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeChildBindingTerminalReason">
    @fentaris/core / EdgeChildBindingTerminalReason

    > **EdgeChildBindingTerminalReason** = `"succeeded"` | `"failed"` | `"timeout"` | `"cancelled"` | `"parent-end"` | `"shutdown"`

    Defined in: packages/core/src/edge/sessionSelection.ts:84
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeControlPlaneConfig">
    @fentaris/core / EdgeControlPlaneConfig

    > **EdgeControlPlaneConfig** = \{ `enabled?`: `false`; } | `object` & `SerializableEdgeControlPlaneConfig` | `object` & `SerializableEdgeControlPlaneConfig`

    Defined in: packages/core/src/edge/integratedConfig.ts:137

    Public application configuration for the integrated Edge control plane.
    Omitting this object preserves today's low-level `edge` wiring.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeControlPlaneErrorBody">
    @fentaris/core / EdgeControlPlaneErrorBody

    > **EdgeControlPlaneErrorBody** = `object`

    Defined in: packages/core/src/edge/integratedProtocol.ts:27

    Confidential control-plane error body. Never includes secrets or existence proofs.

    ## Properties

    ### error

    > `readonly` **error**: `EdgeControlPlaneErrorCode`

    Defined in: packages/core/src/edge/integratedProtocol.ts:28

    ### error\_description?

    > `readonly` `optional` **error\_description?**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:29

    ### interval?

    > `readonly` `optional` **interval?**: `number`

    Defined in: packages/core/src/edge/integratedProtocol.ts:30
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeControlPlaneErrorCode">
    @fentaris/core / EdgeControlPlaneErrorCode

    > **EdgeControlPlaneErrorCode** = *typeof* `EDGE_CONTROL_PLANE_ERROR_CODES`\keyof *typeof* \[`EDGE_CONTROL_PLANE_ERROR_CODES`]

    Defined in: packages/core/src/edge/integratedProtocol.ts:23
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeControlPlaneManagedAdapters">
    @fentaris/core / EdgeControlPlaneManagedAdapters

    > **EdgeControlPlaneManagedAdapters** = `object`

    Defined in: packages/core/src/edge/integratedConfig.ts:115

    Durable/managed adapters required when `mode: "managed"`.

    ## Properties

    ### approval?

    > `readonly` `optional` **approval?**: `EdgeDeviceApprovalAdapter`

    Defined in: packages/core/src/edge/integratedConfig.ts:128

    ### assignmentResolver?

    > `readonly` `optional` **assignmentResolver?**: `EdgeAssignmentResolver`

    Defined in: packages/core/src/edge/integratedConfig.ts:129

    ### assignmentStore

    > `readonly` **assignmentStore**: `EdgeDesiredAssignmentStore`

    Defined in: packages/core/src/edge/integratedConfig.ts:123

    ### capabilityManifestStore

    > `readonly` **capabilityManifestStore**: `EdgeCapabilityManifestStore`

    Defined in: packages/core/src/edge/integratedConfig.ts:119

    ### channelBroker?

    > `readonly` `optional` **channelBroker?**: `EdgeChannelBroker`

    Defined in: packages/core/src/edge/integratedConfig.ts:127

    ### childBindingStore?

    > `readonly` `optional` **childBindingStore?**: `EdgeChildBindingStore`

    Defined in: packages/core/src/edge/integratedConfig.ts:126

    ### connectionStore

    > `readonly` **connectionStore**: `EdgeConnectionStore`

    Defined in: packages/core/src/edge/integratedConfig.ts:120

    ### desiredStateStore

    > `readonly` **desiredStateStore**: `EdgeDesiredStateStore`

    Defined in: packages/core/src/edge/integratedConfig.ts:117

    ### deviceRegistry

    > `readonly` **deviceRegistry**: `EdgeDeviceRegistry`

    Defined in: packages/core/src/edge/integratedConfig.ts:116

    ### presenceStore

    > `readonly` **presenceStore**: `EdgePresenceStore`

    Defined in: packages/core/src/edge/integratedConfig.ts:121

    ### readinessStore

    > `readonly` **readinessStore**: `EdgeReadinessStore`

    Defined in: packages/core/src/edge/integratedConfig.ts:122

    ### services

    > `readonly` **services**: `EdgeControlPlaneManagedServices`

    Defined in: packages/core/src/edge/integratedConfig.ts:124

    ### sessionSelectionStore?

    > `readonly` `optional` **sessionSelectionStore?**: `EdgeSessionSelectionStore`

    Defined in: packages/core/src/edge/integratedConfig.ts:125

    ### setupStatusStore

    > `readonly` **setupStatusStore**: `EdgeSetupStatusStore`

    Defined in: packages/core/src/edge/integratedConfig.ts:118
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeControlPlaneManagedServices">
    @fentaris/core / EdgeControlPlaneManagedServices

    > **EdgeControlPlaneManagedServices** = `object`

    Defined in: packages/core/src/edge/integratedConfig.ts:108

    Managed authorization/enrollment services owned by the deployment identity boundary.

    ## Properties

    ### authorization

    > `readonly` **authorization**: `EdgeDeviceAuthorizationService`

    Defined in: packages/core/src/edge/integratedConfig.ts:109

    ### enrollment

    > `readonly` **enrollment**: `EdgeEnrollmentService`

    Defined in: packages/core/src/edge/integratedConfig.ts:111

    ### tokens

    > `readonly` **tokens**: `EdgeTokenIssuanceService`

    Defined in: packages/core/src/edge/integratedConfig.ts:110
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeControlPlaneMessage">
    @fentaris/core / EdgeControlPlaneMessage

    > **EdgeControlPlaneMessage** = `EdgeHelloAckMessage` | `EdgeDesiredStateMessage` | `EdgeInstallationControlMessage` | `EdgeMcpRequestEnvelope` | `EdgeMcpCancelEnvelope`

    Defined in: packages/core/src/edge/controlProtocol.ts:227

    Messages sent by the control plane after hello.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeControlPlaneMode">
    @fentaris/core / EdgeControlPlaneMode

    > **EdgeControlPlaneMode** = `"local"` | `"managed"`

    Defined in: packages/core/src/edge/integratedConfig.ts:32

    Integrated control-plane deployment mode.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeControlPlaneTokenResponse">
    @fentaris/core / EdgeControlPlaneTokenResponse

    > **EdgeControlPlaneTokenResponse** = `object`

    Defined in: packages/core/src/edge/integratedProtocol.ts:57

    Successful token issuance shared by poll and refresh.

    ## Properties

    ### accessToken

    > `readonly` **accessToken**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:58

    ### expiresAt

    > `readonly` **expiresAt**: `number`

    Defined in: packages/core/src/edge/integratedProtocol.ts:60

    ### refreshToken

    > `readonly` **refreshToken**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:59

    ### tokenType

    > `readonly` **tokenType**: `"Bearer"`

    Defined in: packages/core/src/edge/integratedProtocol.ts:61
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeCoordinatedPoolStrategy">
    @fentaris/core / EdgeCoordinatedPoolStrategy

    > **EdgeCoordinatedPoolStrategy** = `"round-robin"` | `"sticky"` | `"least-loaded"` | `"highest-capacity"`

    Defined in: packages/core/src/edge/distributed.ts:13
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeDeploymentCatalog">
    @fentaris/core / EdgeDeploymentCatalog

    > **EdgeDeploymentCatalog** = `object`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:54

    ## Properties

    ### diagnostics

    > `readonly` **diagnostics**: readonly `EdgeDeploymentCatalogDiagnostic`\[]

    Defined in: packages/core/src/edge/integratedReconciliation.ts:57

    ### digest

    > `readonly` **digest**: `string`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:55

    ### entries

    > `readonly` **entries**: readonly `EdgeDeploymentCatalogEntry`\[]

    Defined in: packages/core/src/edge/integratedReconciliation.ts:56
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeDeploymentCatalogDiagnostic">
    @fentaris/core / EdgeDeploymentCatalogDiagnostic

    > **EdgeDeploymentCatalogDiagnostic** = `object`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:40

    ## Properties

    ### reason

    > `readonly` **reason**: `EdgeDeploymentWithheldReason`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:42

    ### serverName

    > `readonly` **serverName**: `string`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:41
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeDeploymentCatalogEntry">
    @fentaris/core / EdgeDeploymentCatalogEntry

    > **EdgeDeploymentCatalogEntry** = `object`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:45

    ## Properties

    ### deployment

    > `readonly` **deployment**: `EdgeDesiredDeployment`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:46

    ### groupId?

    > `readonly` `optional` **groupId?**: `string`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:51

    ### scope

    > `readonly` **scope**: `PlacementBindingModel`\[`"scope"`]

    Defined in: packages/core/src/edge/integratedReconciliation.ts:49

    ### selector

    > `readonly` **selector**: `DeviceSelector`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:48

    ### targetName

    > `readonly` **targetName**: `string`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:47

    ### userId?

    > `readonly` `optional` **userId?**: `string`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:50
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeDeploymentReadinessStatus">
    @fentaris/core / EdgeDeploymentReadinessStatus

    > **EdgeDeploymentReadinessStatus** = `"ready"` | `"setup-required"` | `"blocked"` | `"stale"` | `"unavailable"`

    Defined in: packages/core/src/edge/inventory.ts:104

    Public, non-sensitive deployment readiness state.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeDeploymentWithheldReason">
    @fentaris/core / EdgeDeploymentWithheldReason

    > **EdgeDeploymentWithheldReason** = `"cloud-placement"` | `"unsupported-transport"` | `"missing-setup-schema"` | `"subject-not-authorized"` | `"device-not-selected"` | `"ambiguous-placement"` | `"managed-assignment-unavailable"`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:31
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeDesiredAssignmentSnapshot">
    @fentaris/core / EdgeDesiredAssignmentSnapshot

    > **EdgeDesiredAssignmentSnapshot** = `object`

    Defined in: packages/core/src/edge/integratedServices.ts:98

    Desired-state assignment snapshot for one device.

    ## Properties

    ### deploymentIds

    > `readonly` **deploymentIds**: readonly `string`\[]

    Defined in: packages/core/src/edge/integratedServices.ts:103

    ### digest

    > `readonly` **digest**: `string`

    Defined in: packages/core/src/edge/integratedServices.ts:102

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/integratedServices.ts:100

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/integratedServices.ts:99

    ### updatedAt

    > `readonly` **updatedAt**: `number`

    Defined in: packages/core/src/edge/integratedServices.ts:104

    ### version

    > `readonly` **version**: `number`

    Defined in: packages/core/src/edge/integratedServices.ts:101
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeDeviceApprovalDecision">
    @fentaris/core / EdgeDeviceApprovalDecision

    > **EdgeDeviceApprovalDecision** = `object`

    Defined in: packages/core/src/edge/integratedConfig.ts:77

    Approval decision recorded for an exact pending device-authorization request.

    ## Properties

    ### actorId

    > `readonly` **actorId**: `string`

    Defined in: packages/core/src/edge/integratedConfig.ts:80

    ### approvedAt

    > `readonly` **approvedAt**: `number`

    Defined in: packages/core/src/edge/integratedConfig.ts:81

    ### notes?

    > `readonly` `optional` **notes?**: `string`

    Defined in: packages/core/src/edge/integratedConfig.ts:82

    ### subjectId

    > `readonly` **subjectId**: `string`

    Defined in: packages/core/src/edge/integratedConfig.ts:79

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/integratedConfig.ts:78
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeDeviceAuthorizeRequest">
    @fentaris/core / EdgeDeviceAuthorizeRequest

    > **EdgeDeviceAuthorizeRequest** = `object`

    Defined in: packages/core/src/edge/integratedProtocol.ts:34

    Device authorization creation request.

    ## Properties

    ### clientId

    > `readonly` **clientId**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:35

    ### metadata?

    > `readonly` `optional` **metadata?**: `Readonly`\<`Record`\<`string`, `string`>>

    Defined in: packages/core/src/edge/integratedProtocol.ts:37

    ### tenantId?

    > `readonly` `optional` **tenantId?**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:36
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeDeviceAuthorizeResponse">
    @fentaris/core / EdgeDeviceAuthorizeResponse

    > **EdgeDeviceAuthorizeResponse** = `object`

    Defined in: packages/core/src/edge/integratedProtocol.ts:41

    Device authorization creation response.

    ## Properties

    ### deviceCode

    > `readonly` **deviceCode**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:42

    ### expiresIn

    > `readonly` **expiresIn**: `number`

    Defined in: packages/core/src/edge/integratedProtocol.ts:46

    ### interval

    > `readonly` **interval**: `number`

    Defined in: packages/core/src/edge/integratedProtocol.ts:47

    ### userCode

    > `readonly` **userCode**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:43

    ### verificationUri

    > `readonly` **verificationUri**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:44

    ### verificationUriComplete?

    > `readonly` `optional` **verificationUriComplete?**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:45
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeDeviceTokenRequest">
    @fentaris/core / EdgeDeviceTokenRequest

    > **EdgeDeviceTokenRequest** = `object`

    Defined in: packages/core/src/edge/integratedProtocol.ts:51

    Device token poll request.

    ## Properties

    ### clientId

    > `readonly` **clientId**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:52

    ### deviceCode

    > `readonly` **deviceCode**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:53
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeEligibilityContext">
    @fentaris/core / EdgeEligibilityContext

    > **EdgeEligibilityContext** = `object`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:137

    ## Properties

    ### assignmentResolver?

    > `readonly` `optional` **assignmentResolver?**: `EdgeAssignmentResolver`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:142

    ### catalog

    > `readonly` **catalog**: `EdgeDeploymentCatalog`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:139

    ### device

    > `readonly` **device**: `EdgeDeviceRecord`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:138

    ### groupIds

    > `readonly` **groupIds**: readonly `string`\[]

    Defined in: packages/core/src/edge/integratedReconciliation.ts:140

    ### tenantDevices

    > `readonly` **tenantDevices**: readonly `EdgeInventoryListItem`\[]

    Defined in: packages/core/src/edge/integratedReconciliation.ts:141
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeEligibilityResult">
    @fentaris/core / EdgeEligibilityResult

    > **EdgeEligibilityResult** = `object`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:145

    ## Properties

    ### deployments

    > `readonly` **deployments**: readonly `EdgeDesiredDeployment`\[]

    Defined in: packages/core/src/edge/integratedReconciliation.ts:146

    ### withheld

    > `readonly` **withheld**: readonly `EdgeDeploymentCatalogDiagnostic`\[]

    Defined in: packages/core/src/edge/integratedReconciliation.ts:147
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeEncryptedBlob">
    @fentaris/core / EdgeEncryptedBlob

    > **EdgeEncryptedBlob** = `object`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:75

    AES-GCM encrypted blob stored under the protected auth boundary.

    ## Properties

    ### algorithm

    > `readonly` **algorithm**: `"aes-256-gcm"`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:76

    ### ciphertext

    > `readonly` **ciphertext**: `string`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:85

    ### iv

    > `readonly` **iv**: `string`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:83

    ### kdf

    > `readonly` **kdf**: `object`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:77

    #### iterations

    > `readonly` **iterations**: `number`

    #### keyLength

    > `readonly` **keyLength**: `32`

    #### name

    > `readonly` **name**: `"pbkdf2-sha256"`

    #### salt

    > `readonly` **salt**: `string`

    ### tag

    > `readonly` **tag**: `string`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:84
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeEnrolledDeviceAuthority">
    @fentaris/core / EdgeEnrolledDeviceAuthority

    > **EdgeEnrolledDeviceAuthority** = `object`

    Defined in: packages/core/src/edge/integratedServices.ts:40

    Enrolled device authority used for gateway authentication.

    ## Properties

    ### connectionGeneration

    > `readonly` **connectionGeneration**: `number`

    Defined in: packages/core/src/edge/integratedServices.ts:50

    ### credentialHash

    > `readonly` **credentialHash**: `string`

    Defined in: packages/core/src/edge/integratedServices.ts:46

    ### credentialId

    > `readonly` **credentialId**: `string`

    Defined in: packages/core/src/edge/integratedServices.ts:45

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/integratedServices.ts:42

    ### enrolledAt

    > `readonly` **enrolledAt**: `number`

    Defined in: packages/core/src/edge/integratedServices.ts:47

    ### publicKey

    > `readonly` **publicKey**: `string`

    Defined in: packages/core/src/edge/integratedServices.ts:44

    ### revoked

    > `readonly` **revoked**: `boolean`

    Defined in: packages/core/src/edge/integratedServices.ts:48

    ### revokedAt?

    > `readonly` `optional` **revokedAt?**: `number`

    Defined in: packages/core/src/edge/integratedServices.ts:49

    ### subjectId

    > `readonly` **subjectId**: `string`

    Defined in: packages/core/src/edge/integratedServices.ts:43

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/integratedServices.ts:41
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeEnrollRequest">
    @fentaris/core / EdgeEnrollRequest

    > **EdgeEnrollRequest** = `object`

    Defined in: packages/core/src/edge/integratedProtocol.ts:71

    Enrollment request carrying proof of possession for the device key.

    ## Properties

    ### accessToken

    > `readonly` **accessToken**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:72

    ### description?

    > `readonly` `optional` **description?**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:79

    ### deviceCode

    > `readonly` **deviceCode**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:74

    ### hostnameLabel?

    > `readonly` `optional` **hostnameLabel?**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:77

    ### name?

    > `readonly` `optional` **name?**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:78

    ### nonce

    > `readonly` **nonce**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:75

    ### proof

    > `readonly` **proof**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:76

    ### publicKey

    > `readonly` **publicKey**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:73

    ### tags?

    > `readonly` `optional` **tags?**: readonly `string`\[]

    Defined in: packages/core/src/edge/integratedProtocol.ts:80
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeEnrollResponse">
    @fentaris/core / EdgeEnrollResponse

    > **EdgeEnrollResponse** = `object`

    Defined in: packages/core/src/edge/integratedProtocol.ts:84

    Enrollment success response.

    ## Properties

    ### deviceCredential

    > `readonly` **deviceCredential**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:88

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:85

    ### gatewayUrl

    > `readonly` **gatewayUrl**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:87

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:86
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeErrorCode">
    @fentaris/core / EdgeErrorCode

    > **EdgeErrorCode** = `"EDGE_PLACEMENT_AMBIGUOUS"` | `"EDGE_UNAUTHORIZED_TARGET"` | `"EDGE_SETUP_REQUIRED"` | `"EDGE_UNAVAILABLE"` | `"EDGE_CAPACITY"` | `"EDGE_SESSION_PINNED"` | `"EDGE_INPUT_INVALID"` | `"EDGE_INVENTORY_CONFLICT"` | `"EDGE_NAME_CONFLICT"` | `"EDGE_PROTOCOL"` | `"EDGE_WORKLOAD"` | `"EDGE_GRANT"` | `"EDGE_UNRESOLVED_RUNTIME_INPUT"`

    Defined in: packages/core/src/edge/errors.ts:12

    Normalized edge error code.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeFanoutStatus">
    @fentaris/core / EdgeFanoutStatus

    > **EdgeFanoutStatus** = `"succeeded"` | `"failed"` | `"cancelled"` | `"not-started"`

    Defined in: packages/core/src/edge/fanout.ts:29
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeInstallationRuntimeEventName">
    @fentaris/core / EdgeInstallationRuntimeEventName

    > **EdgeInstallationRuntimeEventName** = `"edge.installation.source"` | `"edge.installation.approval"` | `"edge.installation.attempt"` | `"edge.installation.verification"` | `"edge.installation.activation"` | `"edge.installation.rollback"` | `"edge.installation.cleanup"`

    Defined in: packages/core/src/edge/installationObservability.ts:4
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeInventoryListItem">
    @fentaris/core / EdgeInventoryListItem

    > **EdgeInventoryListItem** = `Omit`\<`EdgeInventoryRecord`, `"credentialId"`> & `object`

    Defined in: packages/core/src/edge/controlPlane.ts:44

    Credential-free inventory record returned from list operations.

    ## Type Declaration

    ### deviceRef

    > `readonly` **deviceRef**: `EdgePublicDeviceRef`
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeLocalAuthorityDocument">
    @fentaris/core / EdgeLocalAuthorityDocument

    > **EdgeLocalAuthorityDocument** = `object`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:63

    Durable local authority document. Secrets are hashed or encrypted at rest.

    ## Properties

    ### authorizationSessions

    > `readonly` **authorizationSessions**: readonly `EdgeAuthorizationSession`\[]

    Defined in: packages/core/src/edge/integratedLocalStore.ts:66

    ### desiredAssignments

    > `readonly` **desiredAssignments**: readonly `EdgeDesiredAssignmentSnapshot`\[]

    Defined in: packages/core/src/edge/integratedLocalStore.ts:69

    ### enrolledDevices

    > `readonly` **enrolledDevices**: readonly `EdgeEnrolledDeviceAuthority`\[]

    Defined in: packages/core/src/edge/integratedLocalStore.ts:68

    ### inventory

    > `readonly` **inventory**: `Readonly`\<`Record`\<`string`, `unknown`>>

    Defined in: packages/core/src/edge/integratedLocalStore.ts:70

    ### refreshCredentials

    > `readonly` **refreshCredentials**: readonly `EdgeLocalRefreshCredential`\[]

    Defined in: packages/core/src/edge/integratedLocalStore.ts:67

    ### schemaVersion

    > `readonly` **schemaVersion**: *typeof* `EDGE_LOCAL_AUTHORITY_SCHEMA_VERSION`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:64

    ### server

    > `readonly` **server**: `EdgeLocalServerIdentity`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:65

    ### updatedAt

    > `readonly` **updatedAt**: `number`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:71
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeLocalAuthorityStoreOptions">
    @fentaris/core / EdgeLocalAuthorityStoreOptions

    > **EdgeLocalAuthorityStoreOptions** = `object`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:88

    ## Properties

    ### directory

    > `readonly` **directory**: `string`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:89

    ### lockTimeoutMs?

    > `readonly` `optional` **lockTimeoutMs?**: `number`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:92

    ### now?

    > `readonly` `optional` **now?**: () => `number`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:91

    #### Returns

    `number`

    ### protectionKey

    > `readonly` **protectionKey**: `string` | `Buffer`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:90
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeLocalOperatorClientRequest">
    @fentaris/core / EdgeLocalOperatorClientRequest

    > **EdgeLocalOperatorClientRequest** = `EdgeLocalOperatorRequest` *extends* infer Request ? `Request` *extends* `object` ? `Omit`\<`Request`, `"credential"`> & `object` : `never` : `never`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:46
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeLocalOperatorCommand">
    @fentaris/core / EdgeLocalOperatorCommand

    > **EdgeLocalOperatorCommand** = `"approve"` | `"deny"` | `"status"`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:20
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeLocalOperatorEndpoint">
    @fentaris/core / EdgeLocalOperatorEndpoint

    > **EdgeLocalOperatorEndpoint** = `object`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:52

    ## Properties

    ### address

    > `readonly` **address**: `string`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:53

    ### credential

    > `readonly` **credential**: `string`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:54

    ### descriptorPath?

    > `readonly` `optional` **descriptorPath?**: `string`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:55
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeLocalOperatorRequest">
    @fentaris/core / EdgeLocalOperatorRequest

    > **EdgeLocalOperatorRequest** = \{ `command`: `"approve"`; `credential`: `string`; `decision`: `EdgeDeviceApprovalDecision`; `userCode`: `string`; } | \{ `command`: `"deny"`; `credential`: `string`; `decision`: `Omit`\<`EdgeDeviceApprovalDecision`, `"subjectId"`> & `object`; `userCode`: `string`; } | \{ `command`: `"status"`; `credential`: `string`; }

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:22
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeLocalOperatorResponse">
    @fentaris/core / EdgeLocalOperatorResponse

    > **EdgeLocalOperatorResponse** = `object`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:40

    ## Properties

    ### data?

    > `readonly` `optional` **data?**: `unknown`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:42

    ### error?

    > `readonly` `optional` **error?**: `object`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:43

    #### code

    > `readonly` **code**: `string`

    #### message

    > `readonly` **message**: `string`

    ### ok

    > `readonly` **ok**: `boolean`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:41
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeLocalOperatorServerOptions">
    @fentaris/core / EdgeLocalOperatorServerOptions

    > **EdgeLocalOperatorServerOptions** = `object`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:58

    ## Properties

    ### approval

    > `readonly` **approval**: `EdgeApprovalService`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:60

    ### endpoint

    > `readonly` **endpoint**: `EdgeLocalOperatorEndpoint`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:59

    ### maxRequestBytes?

    > `readonly` `optional` **maxRequestBytes?**: `number`

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:67

    ### status

    > `readonly` **status**: () => `Promise`\<\{ `enrolledDevices`: `number`; `mode`: `"local"`; `multiInstance`: `false`; `pendingApprovals`: `number`; }>

    Defined in: packages/core/src/edge/integratedOperatorChannel.ts:61

    #### Returns

    `Promise`\<\{ `enrolledDevices`: `number`; `mode`: `"local"`; `multiInstance`: `false`; `pendingApprovals`: `number`; }>
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeLocalRefreshCredential">
    @fentaris/core / EdgeLocalRefreshCredential

    > **EdgeLocalRefreshCredential** = `object`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:53

    Hashed refresh credential bound to a device.

    ## Properties

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:55

    ### expiresAt

    > `readonly` **expiresAt**: `number`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:58

    ### refreshTokenHash

    > `readonly` **refreshTokenHash**: `string`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:57

    ### rotatedAt

    > `readonly` **rotatedAt**: `number`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:59

    ### subjectId

    > `readonly` **subjectId**: `string`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:56

    ### tenantId

    > `readonly` **tenantId**: `string`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:54
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeLocalServerIdentity">
    @fentaris/core / EdgeLocalServerIdentity

    > **EdgeLocalServerIdentity** = `object`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:46

    Server identity persisted for the local control plane.

    ## Properties

    ### createdAt

    > `readonly` **createdAt**: `number`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:48

    ### encryptedSigningKey

    > `readonly` **encryptedSigningKey**: `EdgeEncryptedBlob`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:49

    ### serverId

    > `readonly` **serverId**: `string`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:47
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeMcpInboundEnvelope">
    @fentaris/core / EdgeMcpInboundEnvelope

    > **EdgeMcpInboundEnvelope** = `EdgeMcpResultEnvelope` | `EdgeMcpErrorEnvelope`

    Defined in: packages/core/src/edge/protocol.ts:83

    Terminal messages returned by an edge connection.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeMcpOperation">
    @fentaris/core / EdgeMcpOperation

    > **EdgeMcpOperation** = `"tools/list"` | `"tools/call"` | `"resources/list"` | `"resources/read"` | `"resources/templates/list"` | `"prompts/list"` | `"prompts/get"` | `"completion/complete"` | `"ping"`

    Defined in: packages/core/src/edge/protocol.ts:7

    MCP operations supported across the edge execution boundary.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeMcpOutboundEnvelope">
    @fentaris/core / EdgeMcpOutboundEnvelope

    > **EdgeMcpOutboundEnvelope** = `EdgeMcpRequestEnvelope` | `EdgeMcpCancelEnvelope`

    Defined in: packages/core/src/edge/protocol.ts:80

    Messages sent from the control plane to an edge connection.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeMetadataAuthority">
    @fentaris/core / EdgeMetadataAuthority

    > **EdgeMetadataAuthority** = `"user"` | `"agent"` | `"control-plane"`

    Defined in: packages/core/src/edge/inventory.ts:15

    Authority responsible for an inventory value.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgePresenceStatus">
    @fentaris/core / EdgePresenceStatus

    > **EdgePresenceStatus** = `"online"` | `"stale"` | `"offline"` | `"revoked"`

    Defined in: packages/core/src/edge/inventory.ts:86

    Availability derived from authenticated presence and freshness.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeProtocolMessage">
    @fentaris/core / EdgeProtocolMessage

    > **EdgeProtocolMessage** = `EdgeHelloMessage` | `EdgeAgentMessage` | `EdgeControlPlaneMessage`

    Defined in: packages/core/src/edge/controlProtocol.ts:235

    All versioned edge protocol messages.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeProtocolVersion">
    @fentaris/core / EdgeProtocolVersion

    > **EdgeProtocolVersion** = `1` | `2` | `3`

    Defined in: packages/core/src/edge/controlProtocol.ts:30

    A negotiated Edge control protocol version.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeReconciliationTrigger">
    @fentaris/core / EdgeReconciliationTrigger

    > **EdgeReconciliationTrigger** = `"application-start"` | `"enrollment"` | `"connection"` | `"inventory-change"` | `"readiness-change"` | `"grant-update"` | `"assignment-update"` | `"revocation"`

    Defined in: packages/core/src/edge/integratedServices.ts:118

    Triggers that enqueue per-device reconciliation.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeRevokeRequest">
    @fentaris/core / EdgeRevokeRequest

    > **EdgeRevokeRequest** = `object`

    Defined in: packages/core/src/edge/integratedProtocol.ts:92

    Operator or self-revocation request.

    ## Properties

    ### edgeNodeId

    > `readonly` **edgeNodeId**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:93
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeRuntimeEventName">
    @fentaris/core / EdgeRuntimeEventName

    > **EdgeRuntimeEventName** = `"edge.target.resolved"` | `"edge.session.bound"` | `"edge.connection.generation"` | `"edge.desired.reconciled"` | `"edge.setup.transition"` | `"edge.workload.lifecycle"` | `"edge.request.started"` | `"edge.request.completed"` | `"edge.request.timeout"` | `"edge.request.cancelled"` | `"edge.request.failed"` | `"edge.orchestration.started"` | `"edge.orchestration.child"` | `"edge.orchestration.completed"` | `"edge.orchestration.cleanup"` | `"edge.authorization.created"` | `"edge.authorization.approved"` | `"edge.authorization.denied"` | `"edge.enrollment.completed"` | `"edge.device.revoked"` | `"edge.connection.authenticated"` | `"edge.dispatch.gated"`

    Defined in: packages/core/src/edge/observability.ts:3
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeRuntimeOptions">
    @fentaris/core / EdgeRuntimeOptions

    > **EdgeRuntimeOptions** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:331

    Edge runtime wiring supplied to McpProxyOptions.edge.

    ## Properties

    ### capabilityCache?

    > `optional` **capabilityCache?**: `EdgeCapabilityCache`

    Defined in: packages/core/src/proxy/McpProxy.ts:343

    Validated per-deployment manifest cache used by edge discovery.

    ### childBindingManager?

    > `optional` **childBindingManager?**: `EdgeChildBindingManager`

    Defined in: packages/core/src/proxy/McpProxy.ts:351

    Optional managed child-binding manager for explicit orchestration.

    ### control?

    > `optional` **control?**: `object` & `EdgeControlProviderOptions` | \{ `enabled?`: `false`; }

    Defined in: packages/core/src/proxy/McpProxy.ts:349

    Explicit opt-in configuration for the governed Edge Control provider.

    ### controlPlane?

    > `optional` **controlPlane?**: `EdgeControlPlaneConfig`

    Defined in: packages/core/src/proxy/McpProxy.ts:358

    Integrated Edge control-plane configuration. When enabled, `app.start()`
    mounts authorization, enrollment, revocation, and gateway routes. Disabled
    by default; omitting this field preserves low-level edge wiring only.

    ### deviceResolver?

    > `optional` **deviceResolver?**: `DeviceResolver`

    Defined in: packages/core/src/proxy/McpProxy.ts:333

    Control-plane device resolver used to pin edge targets.

    ### sessionBindingExpiry?

    > `optional` **sessionBindingExpiry?**: `SessionBindingExpiryOptions`

    Defined in: packages/core/src/proxy/McpProxy.ts:337

    Expiry configuration for the default in-memory binding store.

    ### sessionBindingListener?

    > `optional` **sessionBindingListener?**: `SessionBindingListener`

    Defined in: packages/core/src/proxy/McpProxy.ts:339

    Removal listener for session-target bindings.

    ### sessionBindingStore?

    > `optional` **sessionBindingStore?**: `SessionBindingStore`

    Defined in: packages/core/src/proxy/McpProxy.ts:335

    Replaceable session-binding store; defaults to in-memory.

    ### sessionSelectionStore?

    > `optional` **sessionSelectionStore?**: `EdgeSessionSelectionStore`

    Defined in: packages/core/src/proxy/McpProxy.ts:347

    Durable store for agent-requested pre-pin selections.

    ### telemetry?

    > `optional` **telemetry?**: `EdgeTelemetry`

    Defined in: packages/core/src/proxy/McpProxy.ts:345

    Structured, redacted edge lifecycle telemetry.

    ### transport?

    > `optional` **transport?**: `FentarisTransport`

    Defined in: packages/core/src/proxy/McpProxy.ts:341

    Virtual edge transport used after an edge target has been pinned.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeSelectionPreference">
    @fentaris/core / EdgeSelectionPreference

    > **EdgeSelectionPreference** = `"lowest-load"` | `"highest-capacity"` | `"user-default"` | `"name"`

    Defined in: packages/core/src/edge/inventoryService.ts:109

    Ranked preference understood by the reference selector.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeSelectionStrategy">
    @fentaris/core / EdgeSelectionStrategy

    > **EdgeSelectionStrategy** = `"least-loaded"` | `"highest-capacity"` | `"name"`

    Defined in: packages/core/src/edge/inventoryService.ts:112

    Deterministic tie-breaking strategy.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EdgeTokenRefreshRequest">
    @fentaris/core / EdgeTokenRefreshRequest

    > **EdgeTokenRefreshRequest** = `object`

    Defined in: packages/core/src/edge/integratedProtocol.ts:65

    Refresh-token rotation request.

    ## Properties

    ### clientId

    > `readonly` **clientId**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:66

    ### refreshToken

    > `readonly` **refreshToken**: `string`

    Defined in: packages/core/src/edge/integratedProtocol.ts:67
  </Accordion>

  <Accordion title="Core exports: type-aliases/EnvResolver">
    @fentaris/core / EnvResolver

    > **EnvResolver** = `Record`\<`string`, `EnvValue`> | ((`user`) => `Record`\<`string`, `string`>)

    Defined in: packages/core/src/server/McpServer.ts:36

    Resolve environment variables per user.
  </Accordion>

  <Accordion title="Core exports: type-aliases/EnvValue">
    @fentaris/core / EnvValue

    > **EnvValue** = `string` | `CredentialReference`

    Defined in: packages/core/src/server/McpServer.ts:30

    Resolve environment variables per user.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ErrorMapper">
    @fentaris/core / ErrorMapper

    > **ErrorMapper** = `object`

    Defined in: packages/core/src/types/policy.ts:140

    Error mapper for standardized MCP error responses.

    ## Methods

    ### mapError()

    > **mapError**(`error`, `context`): `object`

    Defined in: packages/core/src/types/policy.ts:141

    #### Parameters

    ##### error

    `unknown`

    ##### context

    ###### serverName?

    `string`

    ###### toolName?

    `string`

    #### Returns

    `object`

    ##### code

    > **code**: `number`

    ##### message

    > **message**: `string`
  </Accordion>

  <Accordion title="Core exports: type-aliases/ExecutionTarget">
    @fentaris/core / ExecutionTarget

    > **ExecutionTarget** = `CloudExecutionTarget` | `EdgeExecutionTarget`

    Defined in: packages/core/src/edge/target.ts:144

    A reusable execution target declaration.
  </Accordion>

  <Accordion title="Core exports: type-aliases/FentarisCliMcpAccountConfig">
    @fentaris/core / FentarisCliMcpAccountConfig

    > **FentarisCliMcpAccountConfig** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:320

    CLI account selector configuration for one MCP server.

    ## Properties

    ### allowed

    > **allowed**: `string`\[]

    Defined in: packages/core/src/proxy/McpProxy.ts:324

    Selectors the CLI may use for this MCP.

    ### default

    > **default**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:322

    Default selector used when `--as` is omitted for this MCP.
  </Accordion>

  <Accordion title="Core exports: type-aliases/FentarisCliOptions">
    @fentaris/core / FentarisCliOptions

    > **FentarisCliOptions** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:311

    Agent-facing CLI configuration embedded in Fentaris app config.

    ## Properties

    ### mcpAccounts?

    > `optional` **mcpAccounts?**: `Record`\<`string`, `FentarisCliMcpAccountConfig`>

    Defined in: packages/core/src/proxy/McpProxy.ts:313

    Configured MCP account selectors available to CLI discovery/auth commands.
  </Accordion>

  <Accordion title="Core exports: type-aliases/FentarisConfigPath">
    @fentaris/core / FentarisConfigPath

    > **FentarisConfigPath** = (`string` | `number`)\[]

    Defined in: packages/core/src/config/diagnostics.ts:11

    Semantic path into a TypeScript Fentaris config object.
  </Accordion>

  <Accordion title="Core exports: type-aliases/FentarisConfigValidationOptions">
    @fentaris/core / FentarisConfigValidationOptions

    > **FentarisConfigValidationOptions** = `object`

    Defined in: packages/core/src/config/validation.ts:21

    Options for explicit configuration validation.

    ## Properties

    ### requirePolicyServerVisibility?

    > `optional` **requirePolicyServerVisibility?**: `boolean`

    Defined in: packages/core/src/config/validation.ts:29

    Require policies to reference servers already visible in the config being validated.

    Defaults to `true`. Fentaris uses `false` internally while composing an app so `app.mcp(...)`
    can register upstream MCP servers before startup validation runs.
  </Accordion>

  <Accordion title="Core exports: type-aliases/FentarisConfigValidationResult">
    @fentaris/core / FentarisConfigValidationResult

    > **FentarisConfigValidationResult** = `object`

    Defined in: packages/core/src/config/diagnostics.ts:74

    Result returned from explicit config validation.

    ## Properties

    ### diagnostics

    > **diagnostics**: `FentarisDiagnostic`\[]

    Defined in: packages/core/src/config/diagnostics.ts:76

    ### errors

    > **errors**: `FentarisDiagnostic`\[]

    Defined in: packages/core/src/config/diagnostics.ts:77

    ### infos

    > **infos**: `FentarisDiagnostic`\[]

    Defined in: packages/core/src/config/diagnostics.ts:79

    ### valid

    > **valid**: `boolean`

    Defined in: packages/core/src/config/diagnostics.ts:75

    ### warnings

    > **warnings**: `FentarisDiagnostic`\[]

    Defined in: packages/core/src/config/diagnostics.ts:78
  </Accordion>

  <Accordion title="Core exports: type-aliases/FentarisDiagnostic">
    @fentaris/core / FentarisDiagnostic

    > **FentarisDiagnostic** = `object`

    Defined in: packages/core/src/config/diagnostics.ts:36

    Structured, renderer-independent configuration diagnostic.

    ## Properties

    ### code

    > **code**: `string`

    Defined in: packages/core/src/config/diagnostics.ts:38

    ### docsUrl?

    > `optional` **docsUrl?**: `string`

    Defined in: packages/core/src/config/diagnostics.ts:43

    ### hint?

    > `optional` **hint?**: `string`

    Defined in: packages/core/src/config/diagnostics.ts:42

    ### message

    > **message**: `string`

    Defined in: packages/core/src/config/diagnostics.ts:40

    ### path?

    > `optional` **path?**: `FentarisConfigPath`

    Defined in: packages/core/src/config/diagnostics.ts:41

    ### related?

    > `optional` **related?**: `FentarisDiagnosticRelatedEntry`\[]

    Defined in: packages/core/src/config/diagnostics.ts:44

    ### severity

    > **severity**: `FentarisDiagnosticSeverity`

    Defined in: packages/core/src/config/diagnostics.ts:37

    ### suggestions?

    > `optional` **suggestions?**: `FentarisDiagnosticSuggestion`\[]

    Defined in: packages/core/src/config/diagnostics.ts:45

    ### title

    > **title**: `string`

    Defined in: packages/core/src/config/diagnostics.ts:39
  </Accordion>

  <Accordion title="Core exports: type-aliases/FentarisDiagnosticFormat">
    @fentaris/core / FentarisDiagnosticFormat

    > **FentarisDiagnosticFormat** = `"pretty"` | `"plain"` | `"compact"` | `"json"`

    Defined in: packages/core/src/config/diagnostics.ts:52

    Diagnostic formatter mode.
  </Accordion>

  <Accordion title="Core exports: type-aliases/FentarisDiagnosticFormatterOptions">
    @fentaris/core / FentarisDiagnosticFormatterOptions

    > **FentarisDiagnosticFormatterOptions** = `object`

    Defined in: packages/core/src/config/diagnostics.ts:58

    Options for rendering diagnostics.

    ## Properties

    ### color?

    > `optional` **color?**: `"auto"` | `"always"` | `"never"` | `boolean`

    Defined in: packages/core/src/config/diagnostics.ts:60

    ### format?

    > `optional` **format?**: `FentarisDiagnosticFormat`

    Defined in: packages/core/src/config/diagnostics.ts:59

    ### includeInfo?

    > `optional` **includeInfo?**: `boolean`

    Defined in: packages/core/src/config/diagnostics.ts:63

    ### includeWarnings?

    > `optional` **includeWarnings?**: `boolean`

    Defined in: packages/core/src/config/diagnostics.ts:62

    ### terminal?

    > `optional` **terminal?**: `object`

    Defined in: packages/core/src/config/diagnostics.ts:64

    #### env?

    > `optional` **env?**: `Record`\<`string`, `string` | `undefined`>

    #### isTTY?

    > `optional` **isTTY?**: `boolean`

    ### unicode?

    > `optional` **unicode?**: `"auto"` | `"always"` | `"never"` | `boolean`

    Defined in: packages/core/src/config/diagnostics.ts:61
  </Accordion>

  <Accordion title="Core exports: type-aliases/FentarisDiagnosticRelatedEntry">
    @fentaris/core / FentarisDiagnosticRelatedEntry

    > **FentarisDiagnosticRelatedEntry** = `object`

    Defined in: packages/core/src/config/diagnostics.ts:17

    Additional config location related to a diagnostic.

    ## Properties

    ### message

    > **message**: `string`

    Defined in: packages/core/src/config/diagnostics.ts:19

    ### path?

    > `optional` **path?**: `FentarisConfigPath`

    Defined in: packages/core/src/config/diagnostics.ts:18
  </Accordion>

  <Accordion title="Core exports: type-aliases/FentarisDiagnosticSeverity">
    @fentaris/core / FentarisDiagnosticSeverity

    > **FentarisDiagnosticSeverity** = `"error"` | `"warning"` | `"info"`

    Defined in: packages/core/src/config/diagnostics.ts:5

    Severity assigned to a configuration diagnostic.
  </Accordion>

  <Accordion title="Core exports: type-aliases/FentarisDiagnosticSuggestion">
    @fentaris/core / FentarisDiagnosticSuggestion

    > **FentarisDiagnosticSuggestion** = `object`

    Defined in: packages/core/src/config/diagnostics.ts:26

    Suggested remediation for a configuration diagnostic.

    ## Properties

    ### message?

    > `optional` **message?**: `string`

    Defined in: packages/core/src/config/diagnostics.ts:28

    ### path?

    > `optional` **path?**: `FentarisConfigPath`

    Defined in: packages/core/src/config/diagnostics.ts:29

    ### title

    > **title**: `string`

    Defined in: packages/core/src/config/diagnostics.ts:27
  </Accordion>

  <Accordion title="Core exports: type-aliases/FentarisTransport">
    @fentaris/core / FentarisTransport

    > **FentarisTransport** = `object`

    Defined in: packages/core/src/types/transport.ts:22

    Transport interface for MCP client interactions.

    ## Methods

    ### callTool()

    > **callTool**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `content`: `z.ZodDefault`\<`z.ZodArray`\<`z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `text`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `description`: `z.ZodOptional`\<...>; `icons`: `z.ZodOptional`\<...>; `mimeType`: `z.ZodOptional`\<...>; `name`: `z.ZodString`; `size`: `z.ZodOptional`\<...>; `title`: `z.ZodOptional`\<...>; `type`: `z.ZodLiteral`\<...>; `uri`: `z.ZodString`; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `resource`: `z.ZodUnion`\<...>; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>]>>>; `isError?`: `z.ZodOptional`\<`z.ZodBoolean`>; `structuredContent?`: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodUnknown`>>; }>

    Defined in: packages/core/src/types/transport.ts:34

    #### Parameters

    ##### params

    ###### \_meta?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ###### arguments?

    `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodUnknown`>>

    ###### name

    `z.ZodString`

    ###### task?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `ttl`: `z.ZodOptional`\<`z.ZodNumber`>; }, `z.core.$strip`>>

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `content`: `z.ZodDefault`\<`z.ZodArray`\<`z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `text`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `description`: `z.ZodOptional`\<...>; `icons`: `z.ZodOptional`\<...>; `mimeType`: `z.ZodOptional`\<...>; `name`: `z.ZodString`; `size`: `z.ZodOptional`\<...>; `title`: `z.ZodOptional`\<...>; `type`: `z.ZodLiteral`\<...>; `uri`: `z.ZodString`; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `resource`: `z.ZodUnion`\<...>; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>]>>>; `isError?`: `z.ZodOptional`\<`z.ZodBoolean`>; `structuredContent?`: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodUnknown`>>; }>

    ### close()

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

    Defined in: packages/core/src/types/transport.ts:42

    #### Returns

    `Promise`\<`void`>

    ### complete()?

    > `optional` **complete**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `completion`: `z.ZodObject`\<\{ `hasMore`: `z.ZodOptional`\<`z.ZodBoolean`>; `total`: `z.ZodOptional`\<`z.ZodNumber`>; `values`: `z.ZodArray`\<`z.ZodString`>; }, `z.core.$loose`>; }>

    Defined in: packages/core/src/types/transport.ts:40

    #### Parameters

    ##### params

    ###### \_meta?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ###### argument

    `z.ZodObject`\<\{ `name`: `z.ZodString`; `value`: `z.ZodString`; }, `z.core.$strip`>

    ###### context?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `arguments`: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodString`>>; }, `z.core.$strip`>>

    ###### ref

    `z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `name`: `z.ZodString`; `type`: `z.ZodLiteral`\<`"ref/prompt"`>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `type`: `z.ZodLiteral`\<`"ref/resource"`>; `uri`: `z.ZodString`; }, `z.core.$strip`>]>

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `completion`: `z.ZodObject`\<\{ `hasMore`: `z.ZodOptional`\<`z.ZodBoolean`>; `total`: `z.ZodOptional`\<`z.ZodNumber`>; `values`: `z.ZodArray`\<`z.ZodString`>; }, `z.core.$loose`>; }>

    ### getPrompt()?

    > `optional` **getPrompt**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `description?`: `z.ZodOptional`\<`z.ZodString`>; `messages`: `z.ZodArray`\<`z.ZodObject`\<\{ `content`: `z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `text`: ...; `type`: ...; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `data`: ...; `mimeType`: ...; `type`: ...; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `data`: ...; `mimeType`: ...; `type`: ...; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `description`: ...; `icons`: ...; `mimeType`: ...; `name`: ...; `size`: ...; `title`: ...; `type`: ...; `uri`: ...; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `resource`: ...; `type`: ...; }, `z.core.$strip`>]>; `role`: `z.ZodEnum`\<\{ `assistant`: `"assistant"`; `user`: `"user"`; }>; }, `z.core.$strip`>>; }>

    Defined in: packages/core/src/types/transport.ts:39

    #### Parameters

    ##### params

    ###### \_meta?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ###### arguments?

    `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodString`>>

    ###### name

    `z.ZodString`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `description?`: `z.ZodOptional`\<`z.ZodString`>; `messages`: `z.ZodArray`\<`z.ZodObject`\<\{ `content`: `z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `text`: ...; `type`: ...; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `data`: ...; `mimeType`: ...; `type`: ...; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `data`: ...; `mimeType`: ...; `type`: ...; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `description`: ...; `icons`: ...; `mimeType`: ...; `name`: ...; `size`: ...; `title`: ...; `type`: ...; `uri`: ...; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `resource`: ...; `type`: ...; }, `z.core.$strip`>]>; `role`: `z.ZodEnum`\<\{ `assistant`: `"assistant"`; `user`: `"user"`; }>; }, `z.core.$strip`>>; }>

    ### listPrompts()?

    > `optional` **listPrompts**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `nextCursor?`: `z.ZodOptional`\<`z.ZodString`>; `prompts`: `z.ZodArray`\<`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodObject`\<\{ }, `z.core.$loose`>>; `arguments`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `description`: `z.ZodOptional`\<...>; `name`: `z.ZodString`; `required`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `description`: `z.ZodOptional`\<`z.ZodString`>; `icons`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `mimeType`: `z.ZodOptional`\<...>; `sizes`: `z.ZodOptional`\<...>; `src`: `z.ZodString`; `theme`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `name`: `z.ZodString`; `title`: `z.ZodOptional`\<`z.ZodString`>; }, `z.core.$strip`>>; }>

    Defined in: packages/core/src/types/transport.ts:38

    #### Parameters

    ##### params?

    ###### \_meta?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ###### cursor?

    `z.ZodOptional`\<`z.ZodString`>

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `nextCursor?`: `z.ZodOptional`\<`z.ZodString`>; `prompts`: `z.ZodArray`\<`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodObject`\<\{ }, `z.core.$loose`>>; `arguments`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `description`: `z.ZodOptional`\<...>; `name`: `z.ZodString`; `required`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `description`: `z.ZodOptional`\<`z.ZodString`>; `icons`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `mimeType`: `z.ZodOptional`\<...>; `sizes`: `z.ZodOptional`\<...>; `src`: `z.ZodString`; `theme`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `name`: `z.ZodString`; `title`: `z.ZodOptional`\<`z.ZodString`>; }, `z.core.$strip`>>; }>

    ### listResources()?

    > `optional` **listResources**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `nextCursor?`: `z.ZodOptional`\<`z.ZodString`>; `resources`: `z.ZodArray`\<`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodObject`\<\{ }, `z.core.$loose`>>; `annotations`: `z.ZodOptional`\<`z.ZodObject`\<\{ `audience`: `z.ZodOptional`\<`z.ZodArray`\<...>>; `lastModified`: `z.ZodOptional`\<`z.ZodISODateTime`>; `priority`: `z.ZodOptional`\<`z.ZodNumber`>; }, `z.core.$strip`>>; `description`: `z.ZodOptional`\<`z.ZodString`>; `icons`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `mimeType`: `z.ZodOptional`\<...>; `sizes`: `z.ZodOptional`\<...>; `src`: `z.ZodString`; `theme`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `mimeType`: `z.ZodOptional`\<`z.ZodString`>; `name`: `z.ZodString`; `size`: `z.ZodOptional`\<`z.ZodNumber`>; `title`: `z.ZodOptional`\<`z.ZodString`>; `uri`: `z.ZodString`; }, `z.core.$strip`>>; }>

    Defined in: packages/core/src/types/transport.ts:35

    #### Parameters

    ##### params?

    ###### \_meta?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ###### cursor?

    `z.ZodOptional`\<`z.ZodString`>

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `nextCursor?`: `z.ZodOptional`\<`z.ZodString`>; `resources`: `z.ZodArray`\<`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodObject`\<\{ }, `z.core.$loose`>>; `annotations`: `z.ZodOptional`\<`z.ZodObject`\<\{ `audience`: `z.ZodOptional`\<`z.ZodArray`\<...>>; `lastModified`: `z.ZodOptional`\<`z.ZodISODateTime`>; `priority`: `z.ZodOptional`\<`z.ZodNumber`>; }, `z.core.$strip`>>; `description`: `z.ZodOptional`\<`z.ZodString`>; `icons`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `mimeType`: `z.ZodOptional`\<...>; `sizes`: `z.ZodOptional`\<...>; `src`: `z.ZodString`; `theme`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `mimeType`: `z.ZodOptional`\<`z.ZodString`>; `name`: `z.ZodString`; `size`: `z.ZodOptional`\<`z.ZodNumber`>; `title`: `z.ZodOptional`\<`z.ZodString`>; `uri`: `z.ZodString`; }, `z.core.$strip`>>; }>

    ### listResourceTemplates()?

    > `optional` **listResourceTemplates**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `nextCursor?`: `z.ZodOptional`\<`z.ZodString`>; `resourceTemplates`: `z.ZodArray`\<`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodObject`\<\{ }, `z.core.$loose`>>; `annotations`: `z.ZodOptional`\<`z.ZodObject`\<\{ `audience`: `z.ZodOptional`\<`z.ZodArray`\<...>>; `lastModified`: `z.ZodOptional`\<`z.ZodISODateTime`>; `priority`: `z.ZodOptional`\<`z.ZodNumber`>; }, `z.core.$strip`>>; `description`: `z.ZodOptional`\<`z.ZodString`>; `icons`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `mimeType`: `z.ZodOptional`\<...>; `sizes`: `z.ZodOptional`\<...>; `src`: `z.ZodString`; `theme`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `mimeType`: `z.ZodOptional`\<`z.ZodString`>; `name`: `z.ZodString`; `title`: `z.ZodOptional`\<`z.ZodString`>; `uriTemplate`: `z.ZodString`; }, `z.core.$strip`>>; }>

    Defined in: packages/core/src/types/transport.ts:37

    #### Parameters

    ##### params?

    ###### \_meta?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ###### cursor?

    `z.ZodOptional`\<`z.ZodString`>

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `nextCursor?`: `z.ZodOptional`\<`z.ZodString`>; `resourceTemplates`: `z.ZodArray`\<`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodObject`\<\{ }, `z.core.$loose`>>; `annotations`: `z.ZodOptional`\<`z.ZodObject`\<\{ `audience`: `z.ZodOptional`\<`z.ZodArray`\<...>>; `lastModified`: `z.ZodOptional`\<`z.ZodISODateTime`>; `priority`: `z.ZodOptional`\<`z.ZodNumber`>; }, `z.core.$strip`>>; `description`: `z.ZodOptional`\<`z.ZodString`>; `icons`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `mimeType`: `z.ZodOptional`\<...>; `sizes`: `z.ZodOptional`\<...>; `src`: `z.ZodString`; `theme`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `mimeType`: `z.ZodOptional`\<`z.ZodString`>; `name`: `z.ZodString`; `title`: `z.ZodOptional`\<`z.ZodString`>; `uriTemplate`: `z.ZodString`; }, `z.core.$strip`>>; }>

    ### listTools()

    > **listTools**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `nextCursor?`: `z.ZodOptional`\<`z.ZodString`>; `tools`: `z.ZodArray`\<`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodUnknown`>>; `annotations`: `z.ZodOptional`\<`z.ZodObject`\<\{ `destructiveHint`: `z.ZodOptional`\<`z.ZodBoolean`>; `idempotentHint`: `z.ZodOptional`\<`z.ZodBoolean`>; `openWorldHint`: `z.ZodOptional`\<`z.ZodBoolean`>; `readOnlyHint`: `z.ZodOptional`\<`z.ZodBoolean`>; `title`: `z.ZodOptional`\<`z.ZodString`>; }, `z.core.$strip`>>; `description`: `z.ZodOptional`\<`z.ZodString`>; `execution`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskSupport`: `z.ZodOptional`\<`z.ZodEnum`\<...>>; }, `z.core.$strip`>>; `icons`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `mimeType`: `z.ZodOptional`\<...>; `sizes`: `z.ZodOptional`\<...>; `src`: `z.ZodString`; `theme`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `inputSchema`: `z.ZodObject`\<\{ `properties`: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodCustom`\<..., ...>>>; `required`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodString`>>; `type`: `z.ZodLiteral`\<`"object"`>; }, `z.core.$catchall`\<`z.ZodUnknown`>>; `name`: `z.ZodString`; `outputSchema`: `z.ZodOptional`\<`z.ZodObject`\<\{ `properties`: `z.ZodOptional`\<`z.ZodRecord`\<..., ...>>; `required`: `z.ZodOptional`\<`z.ZodArray`\<...>>; `type`: `z.ZodLiteral`\<`"object"`>; }, `z.core.$catchall`\<`z.ZodUnknown`>>>; `title`: `z.ZodOptional`\<`z.ZodString`>; }, `z.core.$strip`>>; }>

    Defined in: packages/core/src/types/transport.ts:33

    #### Parameters

    ##### params?

    ###### \_meta?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ###### cursor?

    `z.ZodOptional`\<`z.ZodString`>

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `nextCursor?`: `z.ZodOptional`\<`z.ZodString`>; `tools`: `z.ZodArray`\<`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodUnknown`>>; `annotations`: `z.ZodOptional`\<`z.ZodObject`\<\{ `destructiveHint`: `z.ZodOptional`\<`z.ZodBoolean`>; `idempotentHint`: `z.ZodOptional`\<`z.ZodBoolean`>; `openWorldHint`: `z.ZodOptional`\<`z.ZodBoolean`>; `readOnlyHint`: `z.ZodOptional`\<`z.ZodBoolean`>; `title`: `z.ZodOptional`\<`z.ZodString`>; }, `z.core.$strip`>>; `description`: `z.ZodOptional`\<`z.ZodString`>; `execution`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskSupport`: `z.ZodOptional`\<`z.ZodEnum`\<...>>; }, `z.core.$strip`>>; `icons`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `mimeType`: `z.ZodOptional`\<...>; `sizes`: `z.ZodOptional`\<...>; `src`: `z.ZodString`; `theme`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `inputSchema`: `z.ZodObject`\<\{ `properties`: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodCustom`\<..., ...>>>; `required`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodString`>>; `type`: `z.ZodLiteral`\<`"object"`>; }, `z.core.$catchall`\<`z.ZodUnknown`>>; `name`: `z.ZodString`; `outputSchema`: `z.ZodOptional`\<`z.ZodObject`\<\{ `properties`: `z.ZodOptional`\<`z.ZodRecord`\<..., ...>>; `required`: `z.ZodOptional`\<`z.ZodArray`\<...>>; `type`: `z.ZodLiteral`\<`"object"`>; }, `z.core.$catchall`\<`z.ZodUnknown`>>>; `title`: `z.ZodOptional`\<`z.ZodString`>; }, `z.core.$strip`>>; }>

    ### ping()?

    > `optional` **ping**(): `Promise`\<\{ `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; }>

    Defined in: packages/core/src/types/transport.ts:41

    #### Returns

    `Promise`\<\{ `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; }>

    ### readResource()?

    > `optional` **readResource**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `contents`: `z.ZodArray`\<`z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodRecord`\<..., ...>>; `mimeType`: `z.ZodOptional`\<`z.ZodString`>; `text`: `z.ZodString`; `uri`: `z.ZodString`; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodRecord`\<..., ...>>; `blob`: `z.ZodString`; `mimeType`: `z.ZodOptional`\<`z.ZodString`>; `uri`: `z.ZodString`; }, `z.core.$strip`>]>>; }>

    Defined in: packages/core/src/types/transport.ts:36

    #### Parameters

    ##### params

    ###### \_meta?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ###### uri

    `z.ZodString`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `contents`: `z.ZodArray`\<`z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodRecord`\<..., ...>>; `mimeType`: `z.ZodOptional`\<`z.ZodString`>; `text`: `z.ZodString`; `uri`: `z.ZodString`; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodRecord`\<..., ...>>; `blob`: `z.ZodString`; `mimeType`: `z.ZodOptional`\<`z.ZodString`>; `uri`: `z.ZodString`; }, `z.core.$strip`>]>>; }>

    ### withProxyContext()?

    > `optional` **withProxyContext**\<`T`>(`context`, `run`): `Promise`\<`T`>

    Defined in: packages/core/src/types/transport.ts:32

    Run an MCP operation with the governed proxy context that authorized it.

    Context-aware transports (including edge dispatch) use this explicit
    contract to observe the authenticated subject, downstream session, policy
    decision, and selected capability without changing operation signatures.
    Transports that do not need proxy context may omit it.

    #### Type Parameters

    ##### T

    `T`

    #### Parameters

    ##### context

    `ProxyContext`

    ##### run

    () => `Promise`\<`T`>

    #### Returns

    `Promise`\<`T`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/GetPromptParams">
    @fentaris/core / GetPromptParams

    > **GetPromptParams** = `GetPromptRequest`\[`"params"`]

    Defined in: packages/core/src/types/mcp-operation.ts:38

    Core middleware and transport types.
  </Accordion>

  <Accordion title="Core exports: type-aliases/GetPromptResponse">
    @fentaris/core / GetPromptResponse

    > **GetPromptResponse** = `GetPromptResult`

    Defined in: packages/core/src/types/mcp-operation.ts:39

    Core middleware and transport types.
  </Accordion>

  <Accordion title="Core exports: type-aliases/GovernanceContext">
    @fentaris/core / GovernanceContext

    > **GovernanceContext** = `MiddlewareContext` & `object`

    Defined in: packages/core/src/types/policy.ts:151

    Extended middleware context with governance.

    ## Type Declaration

    ### identity?

    > `optional` **identity?**: `IdentityMetadata`

    ### policy?

    > `optional` **policy?**: `PolicyContract`

    ### policyDecision?

    > `optional` **policyDecision?**: `PolicyDecision`

    ### rateLimiter?

    > `optional` **rateLimiter?**: `RateLimiter`

    ### registry?

    > `optional` **registry?**: `Registry`
  </Accordion>

  <Accordion title="Core exports: type-aliases/GroupMembership">
    @fentaris/core / GroupMembership

    > **GroupMembership** = `object`

    Defined in: packages/core/src/types/shared.ts:37

    Configured group membership metadata for a resolved subject.

    ## Properties

    ### id

    > **id**: `string`

    Defined in: packages/core/src/types/shared.ts:38

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/shared.ts:40

    ### name?

    > `optional` **name?**: `string`

    Defined in: packages/core/src/types/shared.ts:39
  </Accordion>

  <Accordion title="Core exports: type-aliases/GroupOptions">
    @fentaris/core / GroupOptions

    > **GroupOptions** = `object`

    Defined in: packages/core/src/governance/governance.ts:74

    Group declaration options.

    ## Properties

    ### credentials?

    > `optional` **credentials?**: `CredentialSourceMap`

    Defined in: packages/core/src/governance/governance.ts:79

    ### id

    > **id**: `string`

    Defined in: packages/core/src/governance/governance.ts:75

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/governance/governance.ts:81

    ### name?

    > `optional` **name?**: `string`

    Defined in: packages/core/src/governance/governance.ts:76

    ### policy

    > **policy**: `PolicyContract`

    Defined in: packages/core/src/governance/governance.ts:78

    ### servers?

    > `optional` **servers?**: `McpServer`\[]

    Defined in: packages/core/src/governance/governance.ts:80

    ### users

    > **users**: `User`\[]

    Defined in: packages/core/src/governance/governance.ts:77
  </Accordion>

  <Accordion title="Core exports: type-aliases/HeaderCredentialAuth">
    @fentaris/core / HeaderCredentialAuth

    > **HeaderCredentialAuth** = `object`

    Defined in: packages/core/src/server/McpServer.ts:49

    MCP server option types.

    ## Properties

    ### credential

    > **credential**: `CredentialReference`

    Defined in: packages/core/src/server/McpServer.ts:52

    ### header

    > **header**: `string`

    Defined in: packages/core/src/server/McpServer.ts:51

    ### type

    > **type**: `"header"`

    Defined in: packages/core/src/server/McpServer.ts:50
  </Accordion>

  <Accordion title="Core exports: type-aliases/HealthBuilderOptions">
    @fentaris/core / HealthBuilderOptions

    > **HealthBuilderOptions** = `object`

    Defined in: packages/core/src/health/health.ts:33

    ## Properties

    ### checks?

    > `optional` **checks?**: `boolean`

    Defined in: packages/core/src/health/health.ts:34

    ### include?

    > `optional` **include?**: `HealthIncludeCategory`\[]

    Defined in: packages/core/src/health/health.ts:35

    ### timeoutMs?

    > `optional` **timeoutMs?**: `number`

    Defined in: packages/core/src/health/health.ts:36
  </Accordion>

  <Accordion title="Core exports: type-aliases/HealthCheckContext">
    @fentaris/core / HealthCheckContext

    > **HealthCheckContext** = `object`

    Defined in: packages/core/src/health/health.ts:86

    ## Properties

    ### auth

    > **auth**: `object`

    Defined in: packages/core/src/health/health.ts:92

    #### state()

    > **state**(): `HealthCheckResult`

    ##### Returns

    `HealthCheckResult`

    ### identity

    > **identity**: `object`

    Defined in: packages/core/src/health/health.ts:93

    #### state()

    > **state**(): `HealthCheckResult`

    ##### Returns

    `HealthCheckResult`

    ### policy

    > **policy**: `object`

    Defined in: packages/core/src/health/health.ts:91

    #### state()

    > **state**(): `HealthCheckResult`

    ##### Returns

    `HealthCheckResult`

    ### runtime

    > **runtime**: `HealthRuntimeContext`

    Defined in: packages/core/src/health/health.ts:87

    ## Methods

    ### group()

    > **group**(`id`): `HealthGroupContext`

    Defined in: packages/core/src/health/health.ts:89

    #### Parameters

    ##### id

    `string`

    #### Returns

    `HealthGroupContext`

    ### mcp()

    > **mcp**(`name`): `HealthServerContext`

    Defined in: packages/core/src/health/health.ts:88

    #### Parameters

    ##### name

    `string`

    #### Returns

    `HealthServerContext`

    ### transport()

    > **transport**(`nameOrType?`): `HealthTransportContext`

    Defined in: packages/core/src/health/health.ts:90

    #### Parameters

    ##### nameOrType?

    `string`

    #### Returns

    `HealthTransportContext`
  </Accordion>

  <Accordion title="Core exports: type-aliases/HealthCheckHandler">
    @fentaris/core / HealthCheckHandler

    > **HealthCheckHandler** = (`ctx`) => `HealthStatus` | `Partial`\<`HealthCheckResult`> | `Promise`\<`HealthStatus` | `Partial`\<`HealthCheckResult`>>

    Defined in: packages/core/src/health/health.ts:28

    ## Parameters

    ### ctx

    `HealthCheckContext`

    ## Returns

    `HealthStatus` | `Partial`\<`HealthCheckResult`> | `Promise`\<`HealthStatus` | `Partial`\<`HealthCheckResult`>>
  </Accordion>

  <Accordion title="Core exports: type-aliases/HealthCheckResult">
    @fentaris/core / HealthCheckResult

    > **HealthCheckResult** = `object`

    Defined in: packages/core/src/health/health.ts:10

    ## Properties

    ### checkedAt

    > **checkedAt**: `Date`

    Defined in: packages/core/src/health/health.ts:15

    ### durationMs

    > **durationMs**: `number`

    Defined in: packages/core/src/health/health.ts:14

    ### error?

    > `optional` **error?**: `ReturnType`\<*typeof* `runtimeErrorToEventPayload`>

    Defined in: packages/core/src/health/health.ts:17

    ### message?

    > `optional` **message?**: `string`

    Defined in: packages/core/src/health/health.ts:13

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/health/health.ts:16

    ### name

    > **name**: `string`

    Defined in: packages/core/src/health/health.ts:11

    ### status

    > **status**: `HealthStatus`

    Defined in: packages/core/src/health/health.ts:12
  </Accordion>

  <Accordion title="Core exports: type-aliases/HealthConfig">
    @fentaris/core / HealthConfig

    > **HealthConfig** = `boolean` | `HealthBuilder` | `HealthBuilderOptions` & `object`

    Defined in: packages/core/src/health/health.ts:39
  </Accordion>

  <Accordion title="Core exports: type-aliases/HealthGroupContext">
    @fentaris/core / HealthGroupContext

    > **HealthGroupContext** = `object`

    Defined in: packages/core/src/health/health.ts:77

    ## Properties

    ### id

    > `readonly` **id**: `string`

    Defined in: packages/core/src/health/health.ts:78

    ## Methods

    ### servers()

    > **servers**(): `object`\[]

    Defined in: packages/core/src/health/health.ts:79

    #### Returns

    `object`\[]
  </Accordion>

  <Accordion title="Core exports: type-aliases/HealthIncludeCategory">
    @fentaris/core / HealthIncludeCategory

    > **HealthIncludeCategory** = `"runtime"` | `"mcp"` | `"transport"` | `"groups"`

    Defined in: packages/core/src/health/health.ts:8
  </Accordion>

  <Accordion title="Core exports: type-aliases/HealthReport">
    @fentaris/core / HealthReport

    > **HealthReport** = `object`

    Defined in: packages/core/src/health/health.ts:20

    ## Properties

    ### checkedAt

    > **checkedAt**: `Date`

    Defined in: packages/core/src/health/health.ts:22

    ### checks

    > **checks**: `HealthCheckResult`\[]

    Defined in: packages/core/src/health/health.ts:24

    ### durationMs

    > **durationMs**: `number`

    Defined in: packages/core/src/health/health.ts:23

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/health/health.ts:25

    ### status

    > **status**: `HealthStatus`

    Defined in: packages/core/src/health/health.ts:21
  </Accordion>

  <Accordion title="Core exports: type-aliases/HealthRuntimeContext">
    @fentaris/core / HealthRuntimeContext

    > **HealthRuntimeContext** = `object`

    Defined in: packages/core/src/health/health.ts:66

    ## Methods

    ### state()

    > **state**(): `RuntimeLifecycleSnapshot`

    Defined in: packages/core/src/health/health.ts:67

    #### Returns

    `RuntimeLifecycleSnapshot`
  </Accordion>

  <Accordion title="Core exports: type-aliases/HealthServerContext">
    @fentaris/core / HealthServerContext

    > **HealthServerContext** = `object`

    Defined in: packages/core/src/health/health.ts:70

    ## Properties

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/health/health.ts:71

    ## Methods

    ### health()

    > **health**(): `Promise`\<`HealthCheckResult`>

    Defined in: packages/core/src/health/health.ts:74

    #### Returns

    `Promise`\<`HealthCheckResult`>

    ### ping()

    > **ping**(): `Promise`\<`HealthCheckResult`>

    Defined in: packages/core/src/health/health.ts:73

    #### Returns

    `Promise`\<`HealthCheckResult`>

    ### state()

    > **state**(): `HealthCheckResult`

    Defined in: packages/core/src/health/health.ts:72

    #### Returns

    `HealthCheckResult`
  </Accordion>

  <Accordion title="Core exports: type-aliases/HealthStatus">
    @fentaris/core / HealthStatus

    > **HealthStatus** = `"ok"` | `"degraded"` | `"down"` | `"unknown"`

    Defined in: packages/core/src/health/health.ts:7
  </Accordion>

  <Accordion title="Core exports: type-aliases/HealthTransportContext">
    @fentaris/core / HealthTransportContext

    > **HealthTransportContext** = `object`

    Defined in: packages/core/src/health/health.ts:82

    ## Methods

    ### state()

    > **state**(): `HealthCheckResult`

    Defined in: packages/core/src/health/health.ts:83

    #### Returns

    `HealthCheckResult`
  </Accordion>

  <Accordion title="Core exports: type-aliases/HttpProxyExposureHandle">
    @fentaris/core / HttpProxyExposureHandle

    > **HttpProxyExposureHandle** = `ProxyExposureHandle` & `object`

    Defined in: packages/core/src/transports/exposure/HttpProxyExposureTransport.ts:37

    Active HTTP proxy exposure handle.

    ## Type Declaration

    ### server

    > **server**: `HttpServer`
  </Accordion>

  <Accordion title="Core exports: type-aliases/HttpProxyExposureTransportOptions">
    @fentaris/core / HttpProxyExposureTransportOptions

    > **HttpProxyExposureTransportOptions** = `object`

    Defined in: packages/core/src/transports/exposure/HttpProxyExposureTransport.ts:22

    Options for HTTP downstream proxy exposure.

    ## Properties

    ### host?

    > `optional` **host?**: `string`

    Defined in: packages/core/src/transports/exposure/HttpProxyExposureTransport.ts:24

    ### httpRoutes?

    > `optional` **httpRoutes?**: readonly `ProxyExposureHttpRoute`\[]

    Defined in: packages/core/src/transports/exposure/HttpProxyExposureTransport.ts:28

    Additional owned HTTP routes co-located with the MCP endpoint.

    ### onStarted?

    > `optional` **onStarted?**: () => `void`

    Defined in: packages/core/src/transports/exposure/HttpProxyExposureTransport.ts:26

    #### Returns

    `void`

    ### path?

    > `optional` **path?**: `string`

    Defined in: packages/core/src/transports/exposure/HttpProxyExposureTransport.ts:25

    ### port?

    > `optional` **port?**: `number`

    Defined in: packages/core/src/transports/exposure/HttpProxyExposureTransport.ts:23

    ### upgradeRoutes?

    > `optional` **upgradeRoutes?**: readonly `ProxyExposureUpgradeRoute`\[]

    Defined in: packages/core/src/transports/exposure/HttpProxyExposureTransport.ts:30

    Additional WebSocket upgrade routes co-located with the MCP endpoint.
  </Accordion>

  <Accordion title="Core exports: type-aliases/HttpTransportApiKeyAuth">
    @fentaris/core / HttpTransportApiKeyAuth

    > **HttpTransportApiKeyAuth** = \{ `header`: `string`; `required?`: `boolean`; `value`: `string`; } | \{ `header`: `string`; `required?`: `boolean`; `resolve`: (`context`) => `MaybePromise`\<`string` | `null` | `undefined`>; }

    Defined in: packages/core/src/transports/auth/transportAuth.ts:16

    API key auth options for HTTP-family MCP transports.
  </Accordion>

  <Accordion title="Core exports: type-aliases/HttpTransportAuthContext">
    @fentaris/core / HttpTransportAuthContext

    > **HttpTransportAuthContext** = `object`

    Defined in: packages/core/src/transports/auth/transportAuth.ts:8

    User-aware HTTP-family auth resolver context.

    ## Properties

    ### user

    > **user**: `UserContext`

    Defined in: packages/core/src/transports/auth/transportAuth.ts:9
  </Accordion>

  <Accordion title="Core exports: type-aliases/HttpTransportAuthOptions">
    @fentaris/core / HttpTransportAuthOptions

    > **HttpTransportAuthOptions** = `object`

    Defined in: packages/core/src/transports/auth/transportAuth.ts:32

    Shared auth options for HTTP-family upstream MCP transports.

    ## Properties

    ### apiKey?

    > `optional` **apiKey?**: `HttpTransportApiKeyAuth`

    Defined in: packages/core/src/transports/auth/transportAuth.ts:35

    ### bearerToken?

    > `optional` **bearerToken?**: `string` | ((`context`) => `MaybePromise`\<`string` | `null` | `undefined`>)

    Defined in: packages/core/src/transports/auth/transportAuth.ts:34

    ### headers?

    > `optional` **headers?**: `Record`\<`string`, `string`>

    Defined in: packages/core/src/transports/auth/transportAuth.ts:33

    ### required?

    > `optional` **required?**: `boolean`

    Defined in: packages/core/src/transports/auth/transportAuth.ts:37

    ### resolveHeaders?

    > `optional` **resolveHeaders?**: (`context`) => `MaybePromise`\<`Record`\<`string`, `string`> | `null` | `undefined`>

    Defined in: packages/core/src/transports/auth/transportAuth.ts:36

    #### Parameters

    ##### context

    `HttpTransportAuthContext`

    #### Returns

    `MaybePromise`\<`Record`\<`string`, `string`> | `null` | `undefined`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/HttpTransportEnvHeaderMap">
    @fentaris/core / HttpTransportEnvHeaderMap

    > **HttpTransportEnvHeaderMap** = `Record`\<`string`, `string`> | ((`env`) => `Record`\<`string`, `string`>)

    Defined in: packages/core/src/transports/client/HttpTransport.ts:11

    HTTP transport option types.
  </Accordion>

  <Accordion title="Core exports: type-aliases/HttpTransportOptions">
    @fentaris/core / HttpTransportOptions

    > **HttpTransportOptions** = `object`

    Defined in: packages/core/src/transports/client/HttpTransport.ts:17

    Options for HTTP transport.

    ## Properties

    ### auth?

    > `optional` **auth?**: `HttpTransportAuthOptions`

    Defined in: packages/core/src/transports/client/HttpTransport.ts:21

    ### authToken?

    > `optional` **authToken?**: `string`

    Defined in: packages/core/src/transports/client/HttpTransport.ts:20

    ### baseUrl

    > **baseUrl**: `string`

    Defined in: packages/core/src/transports/client/HttpTransport.ts:18

    ### envHeaderMap?

    > `optional` **envHeaderMap?**: `HttpTransportEnvHeaderMap`

    Defined in: packages/core/src/transports/client/HttpTransport.ts:22

    ### fetch?

    > `optional` **fetch?**: *typeof* `fetch`

    Defined in: packages/core/src/transports/client/HttpTransport.ts:24

    ### headers?

    > `optional` **headers?**: `Record`\<`string`, `string`>

    Defined in: packages/core/src/transports/client/HttpTransport.ts:19

    ### network?

    > `optional` **network?**: `UpstreamHttpNetworkOptions`

    Defined in: packages/core/src/transports/client/HttpTransport.ts:23
  </Accordion>

  <Accordion title="Core exports: type-aliases/IdentityMetadata">
    @fentaris/core / IdentityMetadata

    > **IdentityMetadata** = `object`

    Defined in: packages/core/src/types/shared.ts:112

    Identity metadata resolved at the proxy edge.

    ## Properties

    ### authenticated?

    > `optional` **authenticated?**: `boolean`

    Defined in: packages/core/src/types/shared.ts:114

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/shared.ts:116

    ### strategy?

    > `optional` **strategy?**: `string`

    Defined in: packages/core/src/types/shared.ts:113

    ### userId?

    > `optional` **userId?**: `string`

    Defined in: packages/core/src/types/shared.ts:115
  </Accordion>

  <Accordion title="Core exports: type-aliases/IdentityResolverOptions">
    @fentaris/core / IdentityResolverOptions

    > **IdentityResolverOptions** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:376

    Identity resolver configuration for proxy-edge auth.

    ## Properties

    ### required?

    > `optional` **required?**: `boolean`

    Defined in: packages/core/src/proxy/McpProxy.ts:378

    ### strategy

    > **strategy**: `IdentityStrategy`

    Defined in: packages/core/src/proxy/McpProxy.ts:377
  </Accordion>

  <Accordion title="Core exports: type-aliases/IdentityStrategy">
    @fentaris/core / IdentityStrategy

    > **IdentityStrategy** = `object`

    Defined in: packages/core/src/types/policy.ts:118

    Identity resolution strategy.

    ## Properties

    ### name

    > **name**: `string`

    Defined in: packages/core/src/types/policy.ts:119

    ## Methods

    ### resolve()

    > **resolve**(`request`): `MaybePromise`\<`UserContext` | `null`>

    Defined in: packages/core/src/types/policy.ts:120

    #### Parameters

    ##### request

    ###### headers?

    `Record`\<`string`, `string`>

    #### Returns

    `MaybePromise`\<`UserContext` | `null`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/InstallationDigest">
    @fentaris/core / InstallationDigest

    > **InstallationDigest** = `` `sha256:${string}` ``

    Defined in: packages/core/src/edge/installation.ts:15
  </Accordion>

  <Accordion title="Core exports: type-aliases/InstallationLifecycleState">
    @fentaris/core / InstallationLifecycleState

    > **InstallationLifecycleState** = `"assigned"` | `"checking"` | `"approval-required"` | `"installing"` | `"installed"` | `"configuring"` | `"starting"` | `"ready"` | `"degraded"` | `"failed"` | `"blocked"` | `"removing"` | `"removed"`

    Defined in: packages/core/src/edge/installation.ts:19
  </Accordion>

  <Accordion title="Core exports: type-aliases/InstallationNetworkMode">
    @fentaris/core / InstallationNetworkMode

    > **InstallationNetworkMode** = `"none"` | `"source-only"` | `"restricted"`

    Defined in: packages/core/src/edge/installation.ts:18
  </Accordion>

  <Accordion title="Core exports: type-aliases/InstallationOutputKind">
    @fentaris/core / InstallationOutputKind

    > **InstallationOutputKind** = `"executable"` | `"file"` | `"directory"`

    Defined in: packages/core/src/edge/installation.ts:17
  </Accordion>

  <Accordion title="Core exports: type-aliases/InstallationProvider">
    @fentaris/core / InstallationProvider

    > **InstallationProvider** = `NodePackageInstallationProvider` | `PythonInstallationProvider` | `BinaryInstallationProvider` | `ContainerInstallationProvider` | `ManualInstallationProvider` | `CustomInstallationProvider`

    Defined in: packages/core/src/edge/installation.ts:113
  </Accordion>

  <Accordion title="Core exports: type-aliases/InstallationProviderKind">
    @fentaris/core / InstallationProviderKind

    > **InstallationProviderKind** = `"node-package"` | `"python"` | `"binary"` | `"container"` | `"manual"` | `"custom"`

    Defined in: packages/core/src/edge/installation.ts:16
  </Accordion>

  <Accordion title="Core exports: type-aliases/InstallationReasonCode">
    @fentaris/core / InstallationReasonCode

    > **InstallationReasonCode** = `"approval-required"` | `"approval-denied"` | `"approval-revoked"` | `"agent-upgrade-required"` | `"unsupported-platform"` | `"manual-prerequisite-required"` | `"source-integrity-failed"` | `"source-unavailable"` | `"source-credential-required"` | `"isolation-unavailable"` | `"elevation-denied"` | `"limit-exceeded"` | `"verification-failed"` | `"installation-failed"` | `"attempt-interrupted"` | `"stale-message"` | `"artifact-missing"` | `"artifact-escape"` | `"cleanup-approval-required"`

    Defined in: packages/core/src/edge/installation.ts:23
  </Accordion>

  <Accordion title="Core exports: type-aliases/InstallationRecipeInput">
    @fentaris/core / InstallationRecipeInput

    > **InstallationRecipeInput** = `Omit`\<`InstallationRecipe`, `"version"` | `"digest"`>

    Defined in: packages/core/src/edge/installation.ts:187
  </Accordion>

  <Accordion title="Core exports: type-aliases/InstallationSource">
    @fentaris/core / InstallationSource

    > **InstallationSource** = `GitInstallationSource` | `ArchiveInstallationSource` | `InlineInstallationSource` | `LocalInstallationSource` | `EnterpriseInstallationSource`

    Defined in: packages/core/src/edge/installation.ts:67
  </Accordion>

  <Accordion title="Core exports: type-aliases/IntegratedAuthServicesOptions">
    @fentaris/core / IntegratedAuthServicesOptions

    > **IntegratedAuthServicesOptions** = `object`

    Defined in: packages/core/src/edge/integratedAuthServices.ts:45

    ## Properties

    ### config

    > `readonly` **config**: `NormalizedEdgeControlPlaneConfig`

    Defined in: packages/core/src/edge/integratedAuthServices.ts:47

    ### defaultTenantId?

    > `readonly` `optional` **defaultTenantId?**: `string`

    Defined in: packages/core/src/edge/integratedAuthServices.ts:49

    ### now?

    > `readonly` `optional` **now?**: () => `number`

    Defined in: packages/core/src/edge/integratedAuthServices.ts:50

    #### Returns

    `number`

    ### onEnrolled?

    > `readonly` `optional` **onEnrolled?**: (`device`, `request`) => `void` | `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedAuthServices.ts:53

    #### Parameters

    ##### device

    `EdgeEnrolledDeviceAuthority`

    ##### request

    `EdgeEnrollRequest`

    #### Returns

    `void` | `Promise`\<`void`>

    ### onRevoked?

    > `readonly` `optional` **onRevoked?**: (`device`) => `void` | `Promise`\<`void`>

    Defined in: packages/core/src/edge/integratedAuthServices.ts:54

    #### Parameters

    ##### device

    `EdgeEnrolledDeviceAuthority`

    #### Returns

    `void` | `Promise`\<`void`>

    ### publicOrigin

    > `readonly` **publicOrigin**: `string`

    Defined in: packages/core/src/edge/integratedAuthServices.ts:48

    ### random?

    > `readonly` `optional` **random?**: () => `string`

    Defined in: packages/core/src/edge/integratedAuthServices.ts:52

    #### Returns

    `string`

    ### store

    > `readonly` **store**: `EdgeLocalAuthorityStore`

    Defined in: packages/core/src/edge/integratedAuthServices.ts:46

    ### telemetry?

    > `readonly` `optional` **telemetry?**: `EdgeTelemetry`

    Defined in: packages/core/src/edge/integratedAuthServices.ts:51
  </Accordion>

  <Accordion title="Core exports: type-aliases/IntegratedEdgeBridgeOptions">
    @fentaris/core / IntegratedEdgeBridgeOptions

    > **IntegratedEdgeBridgeOptions** = `object`

    Defined in: packages/core/src/edge/integratedBridge.ts:22

    ## Properties

    ### capabilityCache

    > `readonly` **capabilityCache**: `EdgeCapabilityCache`

    Defined in: packages/core/src/edge/integratedBridge.ts:30

    ### desired

    > `readonly` **desired**: `EdgeDesiredStateStore`

    Defined in: packages/core/src/edge/integratedBridge.ts:24

    ### devices

    > `readonly` **devices**: `EdgeDeviceRegistry`

    Defined in: packages/core/src/edge/integratedBridge.ts:23

    ### installation?

    > `readonly` `optional` **installation?**: `EdgeInstallationStatusStore`

    Defined in: packages/core/src/edge/integratedBridge.ts:31

    ### manifests

    > `readonly` **manifests**: `EdgeCapabilityManifestStore`

    Defined in: packages/core/src/edge/integratedBridge.ts:26

    ### presence

    > `readonly` **presence**: `EdgePresenceStore`

    Defined in: packages/core/src/edge/integratedBridge.ts:27

    ### readiness

    > `readonly` **readiness**: `EdgeReadinessStore`

    Defined in: packages/core/src/edge/integratedBridge.ts:28

    ### reconciler

    > `readonly` **reconciler**: `IntegratedEdgeReconciler`

    Defined in: packages/core/src/edge/integratedBridge.ts:29

    ### setup

    > `readonly` **setup**: `EdgeSetupStatusStore`

    Defined in: packages/core/src/edge/integratedBridge.ts:25

    ### telemetry?

    > `readonly` `optional` **telemetry?**: `EdgeTelemetry`

    Defined in: packages/core/src/edge/integratedBridge.ts:32
  </Accordion>

  <Accordion title="Core exports: type-aliases/IntegratedEdgeControlPlaneHealth">
    @fentaris/core / IntegratedEdgeControlPlaneHealth

    > **IntegratedEdgeControlPlaneHealth** = `object`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:72

    ## Properties

    ### authority

    > `readonly` **authority**: `"ready"` | `"unavailable"`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:76

    ### catalogDeployments

    > `readonly` **catalogDeployments**: `number`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:78

    ### desiredAssignments

    > `readonly` **desiredAssignments**: `number`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:81

    ### enrolledDevices

    > `readonly` **enrolledDevices**: `number`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:79

    ### gateway

    > `readonly` **gateway**: `"ready"` | `"stopping"`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:77

    ### mode

    > `readonly` **mode**: `"local"` | `"managed"`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:74

    ### multiInstance

    > `readonly` **multiInstance**: `boolean`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:75

    ### pendingApprovals

    > `readonly` **pendingApprovals**: `number`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:80

    ### status

    > `readonly` **status**: `"ok"` | `"degraded"` | `"down"`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:73

    ### warnings

    > `readonly` **warnings**: readonly `string`\[]

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:82
  </Accordion>

  <Accordion title="Core exports: type-aliases/IntegratedEdgeControlPlaneRuntime">
    @fentaris/core / IntegratedEdgeControlPlaneRuntime

    > **IntegratedEdgeControlPlaneRuntime** = `object`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:85

    ## Properties

    ### auth

    > `readonly` **auth**: `EdgeDeviceAuthorizationService` & `EdgeTokenIssuanceService` & `EdgeEnrollmentService`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:89

    ### capabilityCache

    > `readonly` **capabilityCache**: `EdgeCapabilityCache`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:93

    ### config

    > `readonly` **config**: `NormalizedEdgeControlPlaneConfig`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:86

    ### deviceResolver

    > `readonly` **deviceResolver**: `IntegratedEdgeDeviceResolver`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:92

    ### gateway

    > `readonly` **gateway**: `EdgeWebSocketGateway`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:90

    ### httpRoutes

    > `readonly` **httpRoutes**: readonly `ProxyExposureHttpRoute`\[]

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:96

    ### operator?

    > `readonly` `optional` **operator?**: `EdgeLocalOperatorServer`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:95

    ### publicOrigin

    > `readonly` **publicOrigin**: `string`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:87

    ### reconciler

    > `readonly` **reconciler**: `IntegratedEdgeReconciler`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:94

    ### store?

    > `readonly` `optional` **store?**: `EdgeLocalAuthorityStore`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:88

    ### transport

    > `readonly` **transport**: `EdgeTransport`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:91

    ### upgradeRoutes

    > `readonly` **upgradeRoutes**: readonly `ProxyExposureUpgradeRoute`\[]

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:97

    ## Methods

    ### close()

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

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:99

    #### Returns

    `Promise`\<`void`>

    ### health()

    > **health**(): `Promise`\<`IntegratedEdgeControlPlaneHealth`>

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:98

    #### Returns

    `Promise`\<`IntegratedEdgeControlPlaneHealth`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/IntegratedEdgeControlPlaneRuntimeOptions">
    @fentaris/core / IntegratedEdgeControlPlaneRuntimeOptions

    > **IntegratedEdgeControlPlaneRuntimeOptions** = `object`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:60

    ## Properties

    ### authDir?

    > `readonly` `optional` **authDir?**: `string`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:62

    ### catalog?

    > `readonly` `optional` **catalog?**: `EdgeDeploymentCatalog`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:67

    ### controlPlane

    > `readonly` **controlPlane**: `EdgeControlPlaneConfig`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:61

    ### groupsForSubject?

    > `readonly` `optional` **groupsForSubject?**: (`subjectId`) => readonly `string`\[]

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:68

    #### Parameters

    ##### subjectId

    `string`

    #### Returns

    readonly `string`\[]

    ### listenerHost?

    > `readonly` `optional` **listenerHost?**: `string`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:65

    ### listenerPort?

    > `readonly` `optional` **listenerPort?**: `number`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:66

    ### protectionKey?

    > `readonly` `optional` **protectionKey?**: `string` | `Buffer`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:64

    ### publicOrigin?

    > `readonly` `optional` **publicOrigin?**: `string`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:63

    ### telemetry?

    > `readonly` `optional` **telemetry?**: `EdgeTelemetry`

    Defined in: packages/core/src/transports/exposure/integratedRuntime.ts:69
  </Accordion>

  <Accordion title="Core exports: type-aliases/IntegratedEdgeReconcilerOptions">
    @fentaris/core / IntegratedEdgeReconcilerOptions

    > **IntegratedEdgeReconcilerOptions** = `object`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:188

    ## Properties

    ### assignmentResolver?

    > `readonly` `optional` **assignmentResolver?**: `EdgeAssignmentResolver`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:195

    ### assignmentStore

    > `readonly` **assignmentStore**: `EdgeDesiredAssignmentStore`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:192

    ### catalog

    > `readonly` **catalog**: `EdgeDeploymentCatalog`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:189

    ### desiredStateStore

    > `readonly` **desiredStateStore**: `EdgeDesiredStateStore`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:191

    ### deviceRegistry

    > `readonly` **deviceRegistry**: `EdgeDeviceRegistry`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:190

    ### groupsForSubject?

    > `readonly` `optional` **groupsForSubject?**: (`subjectId`) => readonly `string`\[]

    Defined in: packages/core/src/edge/integratedReconciliation.ts:194

    #### Parameters

    ##### subjectId

    `string`

    #### Returns

    readonly `string`\[]

    ### now?

    > `readonly` `optional` **now?**: () => `number`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:197

    #### Returns

    `number`

    ### publish

    > `readonly` **publish**: (`state`) => `Promise`\<`"published"` | `"unchanged"`>

    Defined in: packages/core/src/edge/integratedReconciliation.ts:193

    #### Parameters

    ##### state

    `EdgeDesiredStateMessage`

    #### Returns

    `Promise`\<`"published"` | `"unchanged"`>

    ### telemetry?

    > `readonly` `optional` **telemetry?**: `EdgeTelemetry`

    Defined in: packages/core/src/edge/integratedReconciliation.ts:196
  </Accordion>

  <Accordion title="Core exports: type-aliases/JsonConsoleLoggerDriverOptions">
    @fentaris/core / JsonConsoleLoggerDriverOptions

    > **JsonConsoleLoggerDriverOptions** = `object`

    Defined in: packages/core/src/logging/logger.ts:96

    JSON console logger driver options.

    ## Properties

    ### writeLine?

    > `optional` **writeLine?**: (`line`) => `void`

    Defined in: packages/core/src/logging/logger.ts:97

    #### Parameters

    ##### line

    `string`

    #### Returns

    `void`
  </Accordion>

  <Accordion title="Core exports: type-aliases/JsonConsoleLoggerOptions">
    @fentaris/core / JsonConsoleLoggerOptions

    > **JsonConsoleLoggerOptions** = `Omit`\<`LoggerOptions`, `"driver"`> & `JsonConsoleLoggerDriverOptions`

    Defined in: packages/core/src/logging/logger.ts:134

    JSON stdout logger factory options.
  </Accordion>

  <Accordion title="Core exports: type-aliases/LegacyMiddleware">
    @fentaris/core / LegacyMiddleware

    > **LegacyMiddleware** = (`request`, `context`, `next`) => `MaybePromise`\<`CallToolResult` | `void`>

    Defined in: packages/core/src/types/middleware.ts:247

    Legacy middleware function signature.

    ## Parameters

    ### request

    `ToolCallRequest`

    ### context

    `MiddlewareContext`

    ### next

    `Next`

    ## Returns

    `MaybePromise`\<`CallToolResult` | `void`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/LifecycleHook">
    @fentaris/core / LifecycleHook

    > **LifecycleHook** = (`event`, `context`) => `MaybePromise`\<`void`>

    Defined in: packages/core/src/types/middleware.ts:55

    Hook invoked for proxy lifecycle events.

    ## Parameters

    ### event

    `LifecycleHookEvent`

    ### context

    `LifecycleHookContext`

    ## Returns

    `MaybePromise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/LifecycleHookContext">
    @fentaris/core / LifecycleHookContext

    > **LifecycleHookContext** = `object`

    Defined in: packages/core/src/types/middleware.ts:41

    Lifecycle hook context.

    ## Properties

    ### error?

    > `optional` **error?**: `Error`

    Defined in: packages/core/src/types/middleware.ts:47

    ### identity?

    > `optional` **identity?**: `IdentityMetadata`

    Defined in: packages/core/src/types/middleware.ts:44

    ### log

    > **log**: `Logger`

    Defined in: packages/core/src/types/middleware.ts:48

    ### request?

    > `optional` **request?**: `ToolCallRequest`

    Defined in: packages/core/src/types/middleware.ts:46

    ### sessionId?

    > `optional` **sessionId?**: `string`

    Defined in: packages/core/src/types/middleware.ts:45

    ### subject?

    > `optional` **subject?**: `ResolvedSubject`

    Defined in: packages/core/src/types/middleware.ts:43

    ### user

    > **user**: `UserContext`

    Defined in: packages/core/src/types/middleware.ts:42
  </Accordion>

  <Accordion title="Core exports: type-aliases/LifecycleHookEvent">
    @fentaris/core / LifecycleHookEvent

    > **LifecycleHookEvent** = `"sessionStart"` | `"sessionEnd"` | `"toolFailure"`

    Defined in: packages/core/src/types/middleware.ts:35

    Lifecycle event names emitted by the proxy.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ListPromptsParams">
    @fentaris/core / ListPromptsParams

    > **ListPromptsParams** = `ListPromptsRequest`\[`"params"`]

    Defined in: packages/core/src/types/mcp-operation.ts:36

    Request/result aliases for MCP server prompt operations.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ListPromptsResponse">
    @fentaris/core / ListPromptsResponse

    > **ListPromptsResponse** = `ListPromptsResult`

    Defined in: packages/core/src/types/mcp-operation.ts:37

    Core middleware and transport types.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ListResourcesParams">
    @fentaris/core / ListResourcesParams

    > **ListResourcesParams** = `ListResourcesRequest`\[`"params"`]

    Defined in: packages/core/src/types/mcp-operation.ts:25

    Request/result aliases for MCP server resource operations.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ListResourcesResponse">
    @fentaris/core / ListResourcesResponse

    > **ListResourcesResponse** = `ListResourcesResult`

    Defined in: packages/core/src/types/mcp-operation.ts:26

    Core middleware and transport types.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ListResourceTemplatesParams">
    @fentaris/core / ListResourceTemplatesParams

    > **ListResourceTemplatesParams** = `ListResourceTemplatesRequest`\[`"params"`]

    Defined in: packages/core/src/types/mcp-operation.ts:29

    Core middleware and transport types.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ListResourceTemplatesResponse">
    @fentaris/core / ListResourceTemplatesResponse

    > **ListResourceTemplatesResponse** = `ListResourceTemplatesResult`

    Defined in: packages/core/src/types/mcp-operation.ts:30

    Core middleware and transport types.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ListToolsContext">
    @fentaris/core / ListToolsContext

    > **ListToolsContext** = `object`

    Defined in: packages/core/src/types/middleware.ts:79

    Context passed to list tool hooks.

    ## Properties

    ### credentialSources?

    > `optional` **credentialSources?**: `CredentialSourceMetadata`\[]

    Defined in: packages/core/src/types/middleware.ts:86

    ### identity?

    > `optional` **identity?**: `IdentityMetadata`

    Defined in: packages/core/src/types/middleware.ts:82

    ### log

    > **log**: `Logger`

    Defined in: packages/core/src/types/middleware.ts:83

    ### policy?

    > `optional` **policy?**: `PolicyContract`

    Defined in: packages/core/src/types/middleware.ts:84

    ### policyDecision?

    > `optional` **policyDecision?**: `PolicyDecision`

    Defined in: packages/core/src/types/middleware.ts:85

    ### subject?

    > `optional` **subject?**: `ResolvedSubject`

    Defined in: packages/core/src/types/middleware.ts:81

    ### user

    > **user**: `UserContext`

    Defined in: packages/core/src/types/middleware.ts:80
  </Accordion>

  <Accordion title="Core exports: type-aliases/ListToolsHook">
    @fentaris/core / ListToolsHook

    > **ListToolsHook** = (`tools`, `context`) => `MaybePromise`\<`ListToolsResult`\[`"tools"`] | `ListToolsResult` | `void`>

    Defined in: packages/core/src/types/middleware.ts:70

    Hook invoked after upstream tool discovery and before returning tools to the client.

    ## Parameters

    ### tools

    `ListToolsResult`\[`"tools"`]

    ### context

    `ListToolsContext`

    ## Returns

    `MaybePromise`\<`ListToolsResult`\[`"tools"`] | `ListToolsResult` | `void`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/LocalAuthOptions">
    @fentaris/core / LocalAuthOptions

    > **LocalAuthOptions** = `object`

    Defined in: packages/core/src/auth/auth.ts:76

    ## Properties

    ### credentialsFile?

    > `optional` **credentialsFile?**: `string`

    Defined in: packages/core/src/auth/auth.ts:79

    ### dir

    > **dir**: `string`

    Defined in: packages/core/src/auth/auth.ts:77

    ### key

    > **key**: `string` | `Buffer`

    Defined in: packages/core/src/auth/auth.ts:78

    ### upstreamAuth?

    > `optional` **upstreamAuth?**: `UpstreamAuthBindings`

    Defined in: packages/core/src/auth/auth.ts:81

    ### upstreamAuthFile?

    > `optional` **upstreamAuthFile?**: `string`

    Defined in: packages/core/src/auth/auth.ts:80
  </Accordion>

  <Accordion title="Core exports: type-aliases/LocalCompletionHandler">
    @fentaris/core / LocalCompletionHandler

    > **LocalCompletionHandler** = (`ctx`, `params`) => `MaybePromise`\<`CompleteResult`>

    Defined in: packages/core/src/local/declarations.ts:84

    Local completion handler.

    ## Parameters

    ### ctx

    `ProxyContext`

    ### params

    `CompleteRequest`\[`"params"`]

    ## Returns

    `MaybePromise`\<`CompleteResult`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/LocalCompletionReference">
    @fentaris/core / LocalCompletionReference

    > **LocalCompletionReference** = \{ `name`: `string`; `type`: `"ref/prompt"`; } | \{ `type`: `"ref/resource"`; `uriTemplate`: `string`; }

    Defined in: packages/core/src/local/declarations.ts:93

    Reference used to bind a local completion handler.
  </Accordion>

  <Accordion title="Core exports: type-aliases/LocalCredentials">
    @fentaris/core / LocalCredentials

    > **LocalCredentials** = `z.infer`\<*typeof* `localCredentialsSchema`>

    Defined in: packages/core/src/auth/auth.ts:72
  </Accordion>

  <Accordion title="Core exports: type-aliases/LocalPromptHandler">
    @fentaris/core / LocalPromptHandler

    > **LocalPromptHandler** = (`ctx`, `params`) => `MaybePromise`\<`GetPromptResult`>

    Defined in: packages/core/src/local/declarations.ts:75

    Local prompt handler.

    ## Parameters

    ### ctx

    `ProxyContext`

    ### params

    `GetPromptRequest`\[`"params"`]

    ## Returns

    `MaybePromise`\<`GetPromptResult`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/LocalPromptMetadata">
    @fentaris/core / LocalPromptMetadata

    > **LocalPromptMetadata** = `Omit`\<`Prompt`, `"name"`>

    Defined in: packages/core/src/local/declarations.ts:51

    Metadata accepted when declaring a local prompt.
  </Accordion>

  <Accordion title="Core exports: type-aliases/LocalResourceHandler">
    @fentaris/core / LocalResourceHandler

    > **LocalResourceHandler** = (`ctx`, `params`) => `MaybePromise`\<`ReadResourceResult`>

    Defined in: packages/core/src/local/declarations.ts:66

    Local resource read handler.

    ## Parameters

    ### ctx

    `ProxyContext`

    ### params

    `ReadResourceRequest`\[`"params"`]

    ## Returns

    `MaybePromise`\<`ReadResourceResult`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/LocalResourceMetadata">
    @fentaris/core / LocalResourceMetadata

    > **LocalResourceMetadata** = `Omit`\<`Resource`, `"uri"`>

    Defined in: packages/core/src/local/declarations.ts:39

    Metadata accepted when declaring a local exact resource.
  </Accordion>

  <Accordion title="Core exports: type-aliases/LocalResourceTemplateMetadata">
    @fentaris/core / LocalResourceTemplateMetadata

    > **LocalResourceTemplateMetadata** = `Omit`\<`ResourceTemplate`, `"uriTemplate"`>

    Defined in: packages/core/src/local/declarations.ts:45

    Metadata accepted when declaring a local resource template.
  </Accordion>

  <Accordion title="Core exports: type-aliases/LocalSecretsBackendOptions">
    @fentaris/core / LocalSecretsBackendOptions

    > **LocalSecretsBackendOptions** = `object`

    Defined in: packages/core/src/secrets/local-backend.ts:8

    ## Properties

    ### credentialsFile?

    > `optional` **credentialsFile?**: `string`

    Defined in: packages/core/src/secrets/local-backend.ts:11

    ### dir

    > **dir**: `string`

    Defined in: packages/core/src/secrets/local-backend.ts:9

    ### key

    > **key**: `string` | `Buffer`

    Defined in: packages/core/src/secrets/local-backend.ts:10
  </Accordion>

  <Accordion title="Core exports: type-aliases/LocalToolHandler">
    @fentaris/core / LocalToolHandler

    > **LocalToolHandler** = (`ctx`, `params`) => `MaybePromise`\<`CallToolResult`>

    Defined in: packages/core/src/local/declarations.ts:57

    Local tool handler.

    ## Parameters

    ### ctx

    `ProxyContext`

    ### params

    `CallToolRequest`\[`"params"`]

    ## Returns

    `MaybePromise`\<`CallToolResult`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/LocalToolMetadata">
    @fentaris/core / LocalToolMetadata

    > **LocalToolMetadata** = `Omit`\<`Tool`, `"name"`>

    Defined in: packages/core/src/local/declarations.ts:33

    Metadata accepted when declaring a local tool.
  </Accordion>

  <Accordion title="Core exports: type-aliases/LogEntry">
    @fentaris/core / LogEntry

    > **LogEntry** = `object`

    Defined in: packages/core/src/logging/logger.ts:16

    Structured log entry payload.

    ## Properties

    ### context

    > **context**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/logging/logger.ts:20

    ### level

    > **level**: `LogLevel`

    Defined in: packages/core/src/logging/logger.ts:17

    ### message

    > **message**: `string`

    Defined in: packages/core/src/logging/logger.ts:18

    ### metadata

    > **metadata**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/logging/logger.ts:21

    ### timestamp

    > **timestamp**: `Date`

    Defined in: packages/core/src/logging/logger.ts:19
  </Accordion>

  <Accordion title="Core exports: type-aliases/LoggerDriver">
    @fentaris/core / LoggerDriver

    > **LoggerDriver** = `object`

    Defined in: packages/core/src/logging/logger.ts:28

    Low-level logger driver interface.

    ## Methods

    ### write()

    > **write**(`entry`): `void` | `Promise`\<`void`>

    Defined in: packages/core/src/logging/logger.ts:29

    #### Parameters

    ##### entry

    `LogEntry`

    #### Returns

    `void` | `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/LoggerOptions">
    @fentaris/core / LoggerOptions

    > **LoggerOptions** = `object`

    Defined in: packages/core/src/logging/logger.ts:36

    Logger configuration options.

    ## Properties

    ### context?

    > `optional` **context?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/logging/logger.ts:39

    ### driver?

    > `optional` **driver?**: `LoggerDriver`

    Defined in: packages/core/src/logging/logger.ts:38

    ### level?

    > `optional` **level?**: `LogLevel`

    Defined in: packages/core/src/logging/logger.ts:37

    ### onWrite?

    > `optional` **onWrite?**: (`entry`) => `void` | `Promise`\<`void`>

    Defined in: packages/core/src/logging/logger.ts:40

    #### Parameters

    ##### entry

    `LogEntry`

    #### Returns

    `void` | `Promise`\<`void`>

    ### redact?

    > `optional` **redact?**: `boolean` | `LoggerRedactionOptions`

    Defined in: packages/core/src/logging/logger.ts:41
  </Accordion>

  <Accordion title="Core exports: type-aliases/LoggerRedactionOptions">
    @fentaris/core / LoggerRedactionOptions

    > **LoggerRedactionOptions** = `object`

    Defined in: packages/core/src/logging/logger.ts:48

    Logger redaction configuration.

    ## Properties

    ### enabled?

    > `optional` **enabled?**: `boolean`

    Defined in: packages/core/src/logging/logger.ts:49

    ### keys?

    > `optional` **keys?**: (`string` | `RegExp`)\[]

    Defined in: packages/core/src/logging/logger.ts:51

    ### paths?

    > `optional` **paths?**: `string`\[]

    Defined in: packages/core/src/logging/logger.ts:52

    ### redact?

    > `optional` **redact?**: (`value`, `path`, `key?`) => `unknown`

    Defined in: packages/core/src/logging/logger.ts:53

    #### Parameters

    ##### value

    `unknown`

    ##### path

    `string`\[]

    ##### key?

    `string`

    #### Returns

    `unknown`

    ### replacement?

    > `optional` **replacement?**: `string`

    Defined in: packages/core/src/logging/logger.ts:50
  </Accordion>

  <Accordion title="Core exports: type-aliases/LoggerSinkOptions">
    @fentaris/core / LoggerSinkOptions

    > **LoggerSinkOptions** = `object`

    Defined in: packages/core/src/profiler/events.ts:142

    ## Properties

    ### logger

    > **logger**: `Logger`

    Defined in: packages/core/src/profiler/events.ts:143
  </Accordion>

  <Accordion title="Core exports: type-aliases/LogLevel">
    @fentaris/core / LogLevel

    > **LogLevel** = `"debug"` | `"info"` | `"warn"` | `"error"` | `"fatal"`

    Defined in: packages/core/src/logging/logger.ts:10

    Supported log levels.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ManualApprovalOptions">
    @fentaris/core / ManualApprovalOptions

    > **ManualApprovalOptions** = `object`

    Defined in: packages/core/src/governance/governance.ts:418

    Options for an external approval workflow.

    ## Properties

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`> | ((`request`, `context`) => `Record`\<`string`, `unknown`> | `undefined`)

    Defined in: packages/core/src/governance/governance.ts:422

    ### reason?

    > `optional` **reason?**: `string` | ((`request`, `context`) => `string` | `undefined`)

    Defined in: packages/core/src/governance/governance.ts:421

    ### requestId?

    > `optional` **requestId?**: `string` | ((`request`, `context`) => `string`)

    Defined in: packages/core/src/governance/governance.ts:419

    ### resolve?

    > `optional` **resolve?**: `ApprovalHandler`\<`ToolApprovalRequest`>

    Defined in: packages/core/src/governance/governance.ts:423

    ### url?

    > `optional` **url?**: `string` | ((`request`, `context`) => `string` | `undefined`)

    Defined in: packages/core/src/governance/governance.ts:420
  </Accordion>

  <Accordion title="Core exports: type-aliases/MaybePromise">
    @fentaris/core / MaybePromise

    > **MaybePromise**\<`T`> = `T` | `Promise`\<`T`>

    Defined in: packages/core/src/types/shared.ts:8

    Maybe a promise for async compatibility.

    ## Type Parameters

    ### T

    `T`
  </Accordion>

  <Accordion title="Core exports: type-aliases/McpOperationName">
    @fentaris/core / McpOperationName

    > **McpOperationName** = `"tools:list"` | `"tool:call"` | `"resources:list"` | `"resource:read"` | `"resource-templates:list"` | `"prompts:list"` | `"prompt:get"` | `"completion:complete"`

    Defined in: packages/core/src/types/mcp-operation.ts:90

    Governed MCP operation names used by capability permissions.
  </Accordion>

  <Accordion title="Core exports: type-aliases/McpProxyOptions">
    @fentaris/core / McpProxyOptions

    > **McpProxyOptions** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:266

    Options for creating an MCP proxy server.

    ## Properties

    ### auth?

    > `optional` **auth?**: `FentarisAuth`

    Defined in: packages/core/src/proxy/McpProxy.ts:279

    ### autoLog?

    > `optional` **autoLog?**: `boolean` | `AutoLogOptions`

    Defined in: packages/core/src/proxy/McpProxy.ts:281

    ### cli?

    > `optional` **cli?**: `FentarisCliOptions`

    Defined in: packages/core/src/proxy/McpProxy.ts:297

    Agent-facing CLI configuration.

    ### defaults?

    > `optional` **defaults?**: `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:276

    #### credentials?

    > `optional` **credentials?**: `CredentialSourceMap`

    ### edge?

    > `optional` **edge?**: `EdgeRuntimeOptions`

    Defined in: packages/core/src/proxy/McpProxy.ts:304

    Edge execution wiring: control-plane device resolver, replaceable
    session-binding store, expiry, and removal listener. When omitted, edge
    targets cannot be pinned and the runtime behaves as cloud-only.

    ### errorMapper?

    > `optional` **errorMapper?**: `ErrorMapper`

    Defined in: packages/core/src/proxy/McpProxy.ts:285

    ### groups?

    > `optional` **groups?**: `Group`\[]

    Defined in: packages/core/src/proxy/McpProxy.ts:275

    ### health?

    > `optional` **health?**: `HealthConfig`

    Defined in: packages/core/src/proxy/McpProxy.ts:284

    ### host?

    > `optional` **host?**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:269

    ### identity?

    > `optional` **identity?**: `IdentityStrategy` | `IdentityResolverOptions`

    Defined in: packages/core/src/proxy/McpProxy.ts:273

    ### installations?

    > `optional` **installations?**: `Record`\<`string`, `InstallationRecipe`>

    Defined in: packages/core/src/proxy/McpProxy.ts:293

    Constructor-style managed installation recipes keyed by MCP server name.

    ### lifecycle?

    > `optional` **lifecycle?**: `RuntimeLifecycleOptions`

    Defined in: packages/core/src/proxy/McpProxy.ts:283

    ### logger?

    > `optional` **logger?**: `Logger`

    Defined in: packages/core/src/proxy/McpProxy.ts:271

    ### name?

    > `optional` **name?**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:286

    ### path?

    > `optional` **path?**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:270

    ### placements?

    > `optional` **placements?**: `PlacementBindingConfig`\[]

    Defined in: packages/core/src/proxy/McpProxy.ts:295

    Constructor-style placement bindings.

    ### policy?

    > `optional` **policy?**: `PolicyContract`

    Defined in: packages/core/src/proxy/McpProxy.ts:274

    ### port?

    > `optional` **port?**: `number`

    Defined in: packages/core/src/proxy/McpProxy.ts:268

    ### profiler?

    > `optional` **profiler?**: `RuntimeProfilerConfig`

    Defined in: packages/core/src/proxy/McpProxy.ts:282

    ### registry?

    > `optional` **registry?**: `Registry`

    Defined in: packages/core/src/proxy/McpProxy.ts:280

    ### servers?

    > `optional` **servers?**: `McpServer`\[]

    Defined in: packages/core/src/proxy/McpProxy.ts:267

    ### setup?

    > `optional` **setup?**: `Record`\<`string`, `Record`\<`string`, `SetupFieldDescriptor`> | `SetupSchema`>

    Defined in: packages/core/src/proxy/McpProxy.ts:291

    Constructor-style per-server setup schemas.

    ### targets?

    > `optional` **targets?**: `Record`\<`string`, `ExecutionTarget`>

    Defined in: packages/core/src/proxy/McpProxy.ts:289

    Constructor-style execution-target declarations.

    ### user?

    > `optional` **user?**: `UserContext` | ((`request`) => `UserContext` | `Promise`\<`UserContext`>)

    Defined in: packages/core/src/proxy/McpProxy.ts:272

    ### version?

    > `optional` **version?**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:287
  </Accordion>

  <Accordion title="Core exports: type-aliases/McpProxyStartOptions">
    @fentaris/core / McpProxyStartOptions

    > **McpProxyStartOptions** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:385

    Optional start overrides for the MCP proxy.

    ## Properties

    ### host?

    > `optional` **host?**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:387

    ### path?

    > `optional` **path?**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:388

    ### port?

    > `optional` **port?**: `number`

    Defined in: packages/core/src/proxy/McpProxy.ts:386

    ### startupTimeoutMs?

    > `optional` **startupTimeoutMs?**: `number`

    Defined in: packages/core/src/proxy/McpProxy.ts:389
  </Accordion>

  <Accordion title="Core exports: type-aliases/McpProxyStopOptions">
    @fentaris/core / McpProxyStopOptions

    > **McpProxyStopOptions** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:396

    Optional stop overrides for the MCP proxy.

    ## Properties

    ### shutdownTimeoutMs?

    > `optional` **shutdownTimeoutMs?**: `number`

    Defined in: packages/core/src/proxy/McpProxy.ts:397
  </Accordion>

  <Accordion title="Core exports: type-aliases/McpServerAuth">
    @fentaris/core / McpServerAuth

    > **McpServerAuth** = `BearerCredentialAuth` | `HeaderCredentialAuth`

    Defined in: packages/core/src/server/McpServer.ts:42

    Server credential application configuration.
  </Accordion>

  <Accordion title="Core exports: type-aliases/McpServerOptions">
    @fentaris/core / McpServerOptions

    > **McpServerOptions** = `object`

    Defined in: packages/core/src/server/McpServer.ts:64

    Configuration for an MCP server wrapper.

    ## Properties

    ### auth?

    > `optional` **auth?**: `McpServerAuth`

    Defined in: packages/core/src/server/McpServer.ts:68

    ### displayName?

    > `optional` **displayName?**: `string`

    Defined in: packages/core/src/server/McpServer.ts:66

    ### env?

    > `optional` **env?**: `EnvResolver`

    Defined in: packages/core/src/server/McpServer.ts:69

    ### isolation?

    > `optional` **isolation?**: `Isolation`

    Defined in: packages/core/src/server/McpServer.ts:70

    ### isolationTimeout?

    > `optional` **isolationTimeout?**: `number`

    Defined in: packages/core/src/server/McpServer.ts:71

    ### name

    > **name**: `string`

    Defined in: packages/core/src/server/McpServer.ts:65

    ### transport

    > **transport**: `FentarisTransport`

    Defined in: packages/core/src/server/McpServer.ts:67
  </Accordion>

  <Accordion title="Core exports: type-aliases/Middleware">
    @fentaris/core / Middleware

    > **Middleware** = `LegacyMiddleware` | `ProxyMiddleware`

    Defined in: packages/core/src/types/middleware.ts:266

    Middleware function signature.
  </Accordion>

  <Accordion title="Core exports: type-aliases/MiddlewareContext">
    @fentaris/core / MiddlewareContext

    > **MiddlewareContext** = `object`

    Defined in: packages/core/src/types/middleware.ts:217

    Middleware execution context.

    ## Properties

    ### approval

    > **approval**: `ApprovalDecisionController`

    Defined in: packages/core/src/types/middleware.ts:221

    ### credentialSources?

    > `optional` **credentialSources?**: `CredentialSourceMetadata`\[]

    Defined in: packages/core/src/types/middleware.ts:228

    ### identity?

    > `optional` **identity?**: `IdentityMetadata`

    Defined in: packages/core/src/types/middleware.ts:220

    ### log

    > **log**: `Logger`

    Defined in: packages/core/src/types/middleware.ts:222

    ### policy?

    > `optional` **policy?**: `PolicyContract` | `ProxyPolicyContext`

    Defined in: packages/core/src/types/middleware.ts:224

    ### policyDecision?

    > `optional` **policyDecision?**: `PolicyDecision`

    Defined in: packages/core/src/types/middleware.ts:225

    ### rateLimiter?

    > `optional` **rateLimiter?**: `RateLimiter`

    Defined in: packages/core/src/types/middleware.ts:227

    ### registry?

    > `optional` **registry?**: `Registry`

    Defined in: packages/core/src/types/middleware.ts:226

    ### res

    > **res**: `ResponseController`

    Defined in: packages/core/src/types/middleware.ts:223

    ### subject?

    > `optional` **subject?**: `ResolvedSubject`

    Defined in: packages/core/src/types/middleware.ts:219

    ### user

    > **user**: `UserContext`

    Defined in: packages/core/src/types/middleware.ts:218
  </Accordion>

  <Accordion title="Core exports: type-aliases/Next">
    @fentaris/core / Next

    > **Next** = () => `Promise`\<`CallToolResult`>

    Defined in: packages/core/src/types/middleware.ts:235

    Next middleware handler.

    ## Returns

    `Promise`\<`CallToolResult`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/NormalizedEdgeControlPlaneConfig">
    @fentaris/core / NormalizedEdgeControlPlaneConfig

    > **NormalizedEdgeControlPlaneConfig** = `object`

    Defined in: packages/core/src/edge/integratedConfig.ts:161

    Normalized runtime configuration after merge and defaults. Present only when
    the integrated control plane is enabled.

    ## Properties

    ### accessTokenTtlSeconds

    > `readonly` **accessTokenTtlSeconds**: `number`

    Defined in: packages/core/src/edge/integratedConfig.ts:167

    ### adapters?

    > `readonly` `optional` **adapters?**: `Partial`\<`EdgeControlPlaneManagedAdapters`>

    Defined in: packages/core/src/edge/integratedConfig.ts:175

    ### approval?

    > `readonly` `optional` **approval?**: `EdgeDeviceApprovalAdapter`

    Defined in: packages/core/src/edge/integratedConfig.ts:176

    ### assignmentResolver?

    > `readonly` `optional` **assignmentResolver?**: `EdgeAssignmentResolver`

    Defined in: packages/core/src/edge/integratedConfig.ts:177

    ### authorizationCodeTtlSeconds

    > `readonly` **authorizationCodeTtlSeconds**: `number`

    Defined in: packages/core/src/edge/integratedConfig.ts:169

    ### basePath

    > `readonly` **basePath**: `string`

    Defined in: packages/core/src/edge/integratedConfig.ts:164

    ### enabled

    > `readonly` **enabled**: `true`

    Defined in: packages/core/src/edge/integratedConfig.ts:162

    ### maxMetadataBytes

    > `readonly` **maxMetadataBytes**: `number`

    Defined in: packages/core/src/edge/integratedConfig.ts:173

    ### maxPollAttempts

    > `readonly` **maxPollAttempts**: `number`

    Defined in: packages/core/src/edge/integratedConfig.ts:171

    ### maxRequestBytes

    > `readonly` **maxRequestBytes**: `number`

    Defined in: packages/core/src/edge/integratedConfig.ts:172

    ### mode

    > `readonly` **mode**: `EdgeControlPlaneMode`

    Defined in: packages/core/src/edge/integratedConfig.ts:163

    ### pollIntervalSeconds

    > `readonly` **pollIntervalSeconds**: `number`

    Defined in: packages/core/src/edge/integratedConfig.ts:170

    ### publicOrigin?

    > `readonly` `optional` **publicOrigin?**: `string`

    Defined in: packages/core/src/edge/integratedConfig.ts:165

    ### rateLimitPerMinute

    > `readonly` **rateLimitPerMinute**: `number`

    Defined in: packages/core/src/edge/integratedConfig.ts:174

    ### refreshTokenTtlSeconds

    > `readonly` **refreshTokenTtlSeconds**: `number`

    Defined in: packages/core/src/edge/integratedConfig.ts:168

    ### stateDir

    > `readonly` **stateDir**: `string`

    Defined in: packages/core/src/edge/integratedConfig.ts:166
  </Accordion>

  <Accordion title="Core exports: type-aliases/NormalizedProfilerRedaction">
    @fentaris/core / NormalizedProfilerRedaction

    > **NormalizedProfilerRedaction** = `object`

    Defined in: packages/core/src/profiler/redaction.ts:14

    ## Properties

    ### custom

    > **custom**: (`value`, `path`, `key?`) => `unknown`\[]

    Defined in: packages/core/src/profiler/redaction.ts:19

    #### Parameters

    ##### value

    `unknown`

    ##### path

    `string`\[]

    ##### key?

    `string`

    #### Returns

    `unknown`

    ### enabled

    > **enabled**: `boolean`

    Defined in: packages/core/src/profiler/redaction.ts:15

    ### keys

    > **keys**: (`string` | `RegExp`)\[]

    Defined in: packages/core/src/profiler/redaction.ts:17

    ### paths

    > **paths**: `string`\[]\[]

    Defined in: packages/core/src/profiler/redaction.ts:18

    ### replacement

    > **replacement**: `unknown`

    Defined in: packages/core/src/profiler/redaction.ts:16
  </Accordion>

  <Accordion title="Core exports: type-aliases/NormalizedRuntimeProfiler">
    @fentaris/core / NormalizedRuntimeProfiler

    > **NormalizedRuntimeProfiler** = `object`

    Defined in: packages/core/src/profiler/profiler.ts:52

    ## Properties

    ### failureMode

    > **failureMode**: `ProfilerFailureMode`

    Defined in: packages/core/src/profiler/profiler.ts:59

    ### filters

    > **filters**: `ProfilerFilter`\[]

    Defined in: packages/core/src/profiler/profiler.ts:55

    ### handlers

    > **handlers**: `RuntimeProfilerHandlerEntry`\[]

    Defined in: packages/core/src/profiler/profiler.ts:57

    ### level

    > **level**: `RuntimeEventLevel`

    Defined in: packages/core/src/profiler/profiler.ts:53

    ### onSinkError?

    > `optional` **onSinkError?**: (`error`, `event`) => `void` | `Promise`\<`void`>

    Defined in: packages/core/src/profiler/profiler.ts:60

    #### Parameters

    ##### error

    `FentarisExtensionError`

    ##### event

    `RuntimeEvent`

    #### Returns

    `void` | `Promise`\<`void`>

    ### redaction

    > **redaction**: `NormalizedProfilerRedaction`

    Defined in: packages/core/src/profiler/profiler.ts:58

    ### sinks

    > **sinks**: `ProfilerSink`\[]

    Defined in: packages/core/src/profiler/profiler.ts:56

    ### track

    > **track**: `Set`\<`ProfilerTrack`>

    Defined in: packages/core/src/profiler/profiler.ts:54
  </Accordion>

  <Accordion title="Core exports: type-aliases/PlacementBindingConfig">
    @fentaris/core / PlacementBindingConfig

    > **PlacementBindingConfig** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:245

    A placement binding declared through fluent or constructor-style config.

    ## Properties

    ### groupId?

    > `optional` **groupId?**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:251

    Group id for group-scoped bindings.

    ### scope

    > **scope**: `PlacementScope`

    Defined in: packages/core/src/proxy/McpProxy.ts:249

    Scope of the binding.

    ### serverName

    > **serverName**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:247

    Server name the binding applies to.

    ### targetName

    > **targetName**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:255

    Registered or built-in target name.

    ### userId?

    > `optional` **userId?**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:253

    User id for user-scoped bindings.
  </Accordion>

  <Accordion title="Core exports: type-aliases/PlacementScope">
    @fentaris/core / PlacementScope

    > **PlacementScope** = `"global"` | `"group"` | `"user"`

    Defined in: packages/core/src/edge/placement.ts:39

    Placement scope of a binding.
  </Accordion>

  <Accordion title="Core exports: type-aliases/PlacementSource">
    @fentaris/core / PlacementSource

    > **PlacementSource** = `"explicit"` | `"user"` | `"group"` | `"global"` | `"implicit-cloud"`

    Defined in: packages/core/src/edge/placement.ts:42

    Where a resolved placement came from.
  </Accordion>

  <Accordion title="Core exports: type-aliases/PolicyDecision">
    @fentaris/core / PolicyDecision

    > **PolicyDecision** = `object`

    Defined in: packages/core/src/types/policy.ts:49

    Policy evaluation result.

    ## Properties

    ### allowed

    > **allowed**: `boolean`

    Defined in: packages/core/src/types/policy.ts:50

    ### metadata?

    > `optional` **metadata?**: `PolicyMetadata` & `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/policy.ts:52

    ### reason?

    > `optional` **reason?**: `string`

    Defined in: packages/core/src/types/policy.ts:51
  </Accordion>

  <Accordion title="Core exports: type-aliases/PolicyMetadata">
    @fentaris/core / PolicyMetadata

    > **PolicyMetadata** = `object`

    Defined in: packages/core/src/types/shared.ts:70

    Effective policy metadata safe to expose in middleware and logs.

    ## Properties

    ### approval?

    > `optional` **approval?**: `ApprovalMetadata`

    Defined in: packages/core/src/types/shared.ts:85

    ### denialReason?

    > `optional` **denialReason?**: `string`

    Defined in: packages/core/src/types/shared.ts:84

    ### matchedGroups?

    > `optional` **matchedGroups?**: `string`\[]

    Defined in: packages/core/src/types/shared.ts:72

    ### matchedPermissions?

    > `optional` **matchedPermissions?**: `object`\[]

    Defined in: packages/core/src/types/shared.ts:73

    #### effect

    > **effect**: `"allow"` | `"deny"`

    #### groupId?

    > `optional` **groupId?**: `string`

    #### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    #### operation

    > **operation**: `McpOperationName`

    #### policyName

    > **policyName**: `string`

    #### serverName

    > **serverName**: `string`

    #### target?

    > `optional` **target?**: `string`

    #### targetKind?

    > `optional` **targetKind?**: `CapabilityTargetKind`

    #### toolName?

    > `optional` **toolName?**: `string`

    ### policyName?

    > `optional` **policyName?**: `string`

    Defined in: packages/core/src/types/shared.ts:71
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProfilerFailureMode">
    @fentaris/core / ProfilerFailureMode

    > **ProfilerFailureMode** = `"isolate"` | `"strict"`

    Defined in: packages/core/src/profiler/profiler.ts:29
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProfilerFilter">
    @fentaris/core / ProfilerFilter

    > **ProfilerFilter** = `object`

    Defined in: packages/core/src/profiler/events.ts:117

    ## Properties

    ### category?

    > `optional` **category?**: `ProfilerTrack` | `ProfilerTrack`\[]

    Defined in: packages/core/src/profiler/events.ts:118

    ### group?

    > `optional` **group?**: `string` | `string`\[]

    Defined in: packages/core/src/profiler/events.ts:121

    ### level?

    > `optional` **level?**: `RuntimeEventLevel`

    Defined in: packages/core/src/profiler/events.ts:119

    ### minDurationMs?

    > `optional` **minDurationMs?**: `number`

    Defined in: packages/core/src/profiler/events.ts:124

    ### operation?

    > `optional` **operation?**: `string` | `string`\[]

    Defined in: packages/core/src/profiler/events.ts:123

    ### server?

    > `optional` **server?**: `string` | `string`\[]

    Defined in: packages/core/src/profiler/events.ts:120

    ### user?

    > `optional` **user?**: `string` | `string`\[]

    Defined in: packages/core/src/profiler/events.ts:122
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProfilerFunctionSink">
    @fentaris/core / ProfilerFunctionSink

    > **ProfilerFunctionSink** = (`event`) => `void` | `Promise`\<`void`>

    Defined in: packages/core/src/profiler/events.ts:136

    ## Parameters

    ### event

    `RuntimeEvent`

    ## Returns

    `void` | `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProfilerHandlerOptions">
    @fentaris/core / ProfilerHandlerOptions

    > **ProfilerHandlerOptions** = `object`

    Defined in: packages/core/src/profiler/events.ts:127

    ## Properties

    ### where?

    > `optional` **where?**: `ProfilerFilter`

    Defined in: packages/core/src/profiler/events.ts:128
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProfilerObjectConfig">
    @fentaris/core / ProfilerObjectConfig

    > **ProfilerObjectConfig** = `object`

    Defined in: packages/core/src/profiler/profiler.ts:31

    ## Properties

    ### failureMode?

    > `optional` **failureMode?**: `ProfilerFailureMode`

    Defined in: packages/core/src/profiler/profiler.ts:41

    ### handlers?

    > `optional` **handlers?**: `RuntimeProfilerHandlerEntry`\[]

    Defined in: packages/core/src/profiler/profiler.ts:38

    ### level?

    > `optional` **level?**: `RuntimeEventLevel`

    Defined in: packages/core/src/profiler/profiler.ts:33

    ### onSinkError?

    > `optional` **onSinkError?**: (`error`, `event`) => `void` | `Promise`\<`void`>

    Defined in: packages/core/src/profiler/profiler.ts:40

    #### Parameters

    ##### error

    `FentarisExtensionError`

    ##### event

    `RuntimeEvent`

    #### Returns

    `void` | `Promise`\<`void`>

    ### preset?

    > `optional` **preset?**: `"pretty"` | `"silent"` | `"json"`

    Defined in: packages/core/src/profiler/profiler.ts:32

    ### redact?

    > `optional` **redact?**: `boolean` | `ProfilerRedactionOptions`

    Defined in: packages/core/src/profiler/profiler.ts:39

    ### sink?

    > `optional` **sink?**: `ProfilerSinkLike`

    Defined in: packages/core/src/profiler/profiler.ts:37

    ### sinks?

    > `optional` **sinks?**: `ProfilerSinkLike`\[]

    Defined in: packages/core/src/profiler/profiler.ts:36

    ### track?

    > `optional` **track?**: `ProfilerTrack`\[]

    Defined in: packages/core/src/profiler/profiler.ts:34

    ### where?

    > `optional` **where?**: `ProfilerFilter`

    Defined in: packages/core/src/profiler/profiler.ts:35
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProfilerPrettySinkOptions">
    @fentaris/core / ProfilerPrettySinkOptions

    > **ProfilerPrettySinkOptions** = `object`

    Defined in: packages/core/src/profiler/events.ts:138

    ## Properties

    ### writer?

    > `optional` **writer?**: (`line`) => `void`

    Defined in: packages/core/src/profiler/events.ts:139

    #### Parameters

    ##### line

    `string`

    #### Returns

    `void`
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProfilerRedactionOptions">
    @fentaris/core / ProfilerRedactionOptions

    > **ProfilerRedactionOptions** = `object`

    Defined in: packages/core/src/profiler/redaction.ts:6

    ## Properties

    ### enabled?

    > `optional` **enabled?**: `boolean`

    Defined in: packages/core/src/profiler/redaction.ts:7

    ### keys?

    > `optional` **keys?**: (`string` | `RegExp`)\[]

    Defined in: packages/core/src/profiler/redaction.ts:9

    ### paths?

    > `optional` **paths?**: (`string` | `string`\[])\[]

    Defined in: packages/core/src/profiler/redaction.ts:10

    ### replacement?

    > `optional` **replacement?**: `unknown`

    Defined in: packages/core/src/profiler/redaction.ts:8

    ### rules?

    > `optional` **rules?**: `ProfilerRedactionRule`\[]

    Defined in: packages/core/src/profiler/redaction.ts:11
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProfilerRedactionRule">
    @fentaris/core / ProfilerRedactionRule

    > **ProfilerRedactionRule** = \{ `key`: `string` | `RegExp`; `replacement?`: `unknown`; } | \{ `path`: `string` | `string`\[]; `replacement?`: `unknown`; } | ((`value`, `path`, `key?`) => `unknown`)

    Defined in: packages/core/src/profiler/redaction.ts:1
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProfilerSink">
    @fentaris/core / ProfilerSink

    > **ProfilerSink** = `object`

    Defined in: packages/core/src/profiler/events.ts:131

    ## Properties

    ### name?

    > `optional` **name?**: `string`

    Defined in: packages/core/src/profiler/events.ts:132

    ## Methods

    ### write()

    > **write**(`event`): `void` | `Promise`\<`void`>

    Defined in: packages/core/src/profiler/events.ts:133

    #### Parameters

    ##### event

    `RuntimeEventDimensions` & `object` & `object` | `RuntimeEventDimensions` & `object` & `object` | `RuntimeEventDimensions` & `object` & `object` | `RuntimeEventDimensions` & `object` & `object` | `RuntimeEventDimensions` & `object` & `object` | `RuntimeEventDimensions` & `object` & `object` | `RuntimeEventDimensions` & `object` & `object` | `RuntimeEventDimensions` & `object` & `object` | `RuntimeEventDimensions` & `object` & `object` | `RuntimeTransportEvent` | `RuntimeEventDimensions` & `object` & `object` | `RuntimeEventDimensions` & `object` & `object` | `RuntimeEventDimensions` & `object` & `object` | `RuntimeEventDimensions` & `object` & `object` | `RuntimeEventDimensions` & `object` & `object` | `RuntimeExtensionEvent` | `RuntimeProfilerEvent` | `RuntimeEventDimensions` & `object` & `object` & `object` | `RuntimeEventDimensions` & `object` & `object` & `object`

    #### Returns

    `void` | `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProfilerSinkLike">
    @fentaris/core / ProfilerSinkLike

    > **ProfilerSinkLike** = `ProfilerSink` | `ProfilerFunctionSink`

    Defined in: packages/core/src/profiler/events.ts:146
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProfilerTrack">
    @fentaris/core / ProfilerTrack

    > **ProfilerTrack** = `RuntimeEventCategory`

    Defined in: packages/core/src/profiler/events.ts:115
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyAuthContext">
    @fentaris/core / ProxyAuthContext

    > **ProxyAuthContext** = `object`

    Defined in: packages/core/src/types/proxy.ts:92

    Normalized authentication metadata exposed through the unified context.

    ## Properties

    ### authenticated

    > **authenticated**: `boolean`

    Defined in: packages/core/src/types/proxy.ts:94

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/proxy.ts:96

    ### strategy?

    > `optional` **strategy?**: `string`

    Defined in: packages/core/src/types/proxy.ts:93

    ### userId?

    > `optional` **userId?**: `string`

    Defined in: packages/core/src/types/proxy.ts:95
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyCompletionContext">
    @fentaris/core / ProxyCompletionContext

    > **ProxyCompletionContext** = `object`

    Defined in: packages/core/src/types/proxy.ts:156

    Selected completion metadata.

    ## Properties

    ### argumentName

    > **argumentName**: `string`

    Defined in: packages/core/src/types/proxy.ts:160

    ### proxyTarget?

    > `optional` **proxyTarget?**: `string`

    Defined in: packages/core/src/types/proxy.ts:159

    ### refType

    > **refType**: `"ref/prompt"` | `"ref/resource"`

    Defined in: packages/core/src/types/proxy.ts:157

    ### target

    > **target**: `string`

    Defined in: packages/core/src/types/proxy.ts:158
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyContext">
    @fentaris/core / ProxyContext

    > **ProxyContext** = `MiddlewareContext` & `object`

    Defined in: packages/core/src/types/proxy.ts:167

    Unified context for new proxy middleware, routes, and events.

    ## Type Declaration

    ### args?

    > `optional` **args?**: `CallToolRequest`\[`"params"`]\[`"arguments"`]

    ### auth

    > **auth**: `ProxyAuthContext`

    ### completion?

    > `optional` **completion?**: `ProxyCompletionContext`

    ### credentials

    > **credentials**: `object`

    #### credentials.sources

    > **sources**: `CredentialSourceMetadata`\[]

    ### execution?

    > `optional` **execution?**: `ProxyExecutionContext`

    ### operation

    > **operation**: `ProxyOperation`

    ### policy

    > **policy**: `ProxyPolicyContext`

    ### prompt?

    > `optional` **prompt?**: `ProxyPromptContext`

    ### raw?

    > `optional` **raw?**: `CallToolRequest`\[`"params"`] | `CompleteRequest`\[`"params"`] | `GetPromptRequest`\[`"params"`] | `ListPromptsRequest`\[`"params"`] | `ListResourcesRequest`\[`"params"`] | `ListResourceTemplatesRequest`\[`"params"`] | `ListToolsRequest`\[`"params"`] | `ReadResourceRequest`\[`"params"`]

    ### requestId?

    > `optional` **requestId?**: `string`

    ### resource?

    > `optional` **resource?**: `ProxyResourceContext`

    ### response

    > **response**: `ResponseController`

    ### server?

    > `optional` **server?**: `ProxyServerContext`

    ### state

    > **state**: `Record`\<`string`, `unknown`>

    ### tool?

    > `optional` **tool?**: `ProxyToolContext`

    ### transport

    > **transport**: `ProxyTransportContext`

    ### continue()

    > **continue**(): `undefined`

    #### Returns

    `undefined`

    ### deny()

    > **deny**(`message`): `object`

    #### Parameters

    ##### message

    `string`

    #### Returns

    `object`

    ##### \_meta?

    > `optional` **\_meta?**: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ##### content

    > **content**: `z.ZodDefault`\<`z.ZodArray`\<`z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `text`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `description`: `z.ZodOptional`\<...>; `icons`: `z.ZodOptional`\<...>; `mimeType`: `z.ZodOptional`\<...>; `name`: `z.ZodString`; `size`: `z.ZodOptional`\<...>; `title`: `z.ZodOptional`\<...>; `type`: `z.ZodLiteral`\<...>; `uri`: `z.ZodString`; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `resource`: `z.ZodUnion`\<...>; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>]>>>

    ##### isError?

    > `optional` **isError?**: `z.ZodOptional`\<`z.ZodBoolean`>

    ##### structuredContent?

    > `optional` **structuredContent?**: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodUnknown`>>

    ### error()

    > **error**(`code`, `message`): `object`

    #### Parameters

    ##### code

    `number`

    ##### message

    `string`

    #### Returns

    `object`

    ##### \_meta?

    > `optional` **\_meta?**: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ##### content

    > **content**: `z.ZodDefault`\<`z.ZodArray`\<`z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `text`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `description`: `z.ZodOptional`\<...>; `icons`: `z.ZodOptional`\<...>; `mimeType`: `z.ZodOptional`\<...>; `name`: `z.ZodString`; `size`: `z.ZodOptional`\<...>; `title`: `z.ZodOptional`\<...>; `type`: `z.ZodLiteral`\<...>; `uri`: `z.ZodString`; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `resource`: `z.ZodUnion`\<...>; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>]>>>

    ##### isError?

    > `optional` **isError?**: `z.ZodOptional`\<`z.ZodBoolean`>

    ##### structuredContent?

    > `optional` **structuredContent?**: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodUnknown`>>

    ### fail()

    > **fail**(`code`, `message`): `object`

    #### Parameters

    ##### code

    `number`

    ##### message

    `string`

    #### Returns

    `object`

    ##### \_meta?

    > `optional` **\_meta?**: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ##### content

    > **content**: `z.ZodDefault`\<`z.ZodArray`\<`z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `text`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `description`: `z.ZodOptional`\<...>; `icons`: `z.ZodOptional`\<...>; `mimeType`: `z.ZodOptional`\<...>; `name`: `z.ZodString`; `size`: `z.ZodOptional`\<...>; `title`: `z.ZodOptional`\<...>; `type`: `z.ZodLiteral`\<...>; `uri`: `z.ZodString`; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `resource`: `z.ZodUnion`\<...>; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>]>>>

    ##### isError?

    > `optional` **isError?**: `z.ZodOptional`\<`z.ZodBoolean`>

    ##### structuredContent?

    > `optional` **structuredContent?**: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodUnknown`>>

    ### inject()

    > **inject**(`message`): `void`

    #### Parameters

    ##### message

    `string`

    #### Returns

    `void`
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyEventFilter">
    @fentaris/core / ProxyEventFilter

    > **ProxyEventFilter** = `object`

    Defined in: packages/core/src/types/proxy.ts:248

    Filter for unified proxy events.

    ## Properties

    ### group?

    > `optional` **group?**: `string`

    Defined in: packages/core/src/types/proxy.ts:250

    ### proxyTool?

    > `optional` **proxyTool?**: `string`

    Defined in: packages/core/src/types/proxy.ts:252

    ### server?

    > `optional` **server?**: `string`

    Defined in: packages/core/src/types/proxy.ts:249

    ### tool?

    > `optional` **tool?**: `string`

    Defined in: packages/core/src/types/proxy.ts:251
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyEventHandler">
    @fentaris/core / ProxyEventHandler

    > **ProxyEventHandler** = (`payload`) => `MaybePromise`\<`ListToolsResult`\[`"tools"`] | `SdkListToolsResult` | `void`>

    Defined in: packages/core/src/types/proxy.ts:272

    Unified event handler.

    ## Parameters

    ### payload

    `ProxyEventPayload`

    ## Returns

    `MaybePromise`\<`ListToolsResult`\[`"tools"`] | `SdkListToolsResult` | `void`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyEventName">
    @fentaris/core / ProxyEventName

    > **ProxyEventName** = `"session:start"` | `"session:end"` | `"tools:list:after"` | `"tool:start"` | `"tool:success"` | `"tool:error"` | `"tool:after"` | `"resource:start"` | `"resource:success"` | `"resource:error"` | `"resource:after"` | `"prompt:start"` | `"prompt:success"` | `"prompt:error"` | `"prompt:after"` | `"completion:start"` | `"completion:success"` | `"completion:error"` | `"completion:after"`

    Defined in: packages/core/src/types/proxy.ts:223

    Unified event names emitted by the proxy runtime.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyExecutionContext">
    @fentaris/core / ProxyExecutionContext

    > **ProxyExecutionContext** = \{ `deploymentId`: `string`; `kind`: `"cloud"`; `targetName`: `string`; } | \{ `deploymentId`: `string`; `kind`: `"edge-cache"`; `targetName`: `string`; `tenantId`: `string`; } | \{ `connectionGeneration`: `number`; `deploymentId`: `string`; `edgeNodeId`: `string`; `kind`: `"edge"`; `reused`: `boolean`; `targetName`: `string`; }

    Defined in: packages/core/src/types/proxy.ts:67

    Selected execution target and pinned edge route for one operation.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyExposureHandle">
    @fentaris/core / ProxyExposureHandle

    > **ProxyExposureHandle** = `object`

    Defined in: packages/core/src/types/proxy.ts:351

    Active downstream proxy exposure handle.

    ## Methods

    ### close()

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

    Defined in: packages/core/src/types/proxy.ts:352

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyExposureHttpRoute">
    @fentaris/core / ProxyExposureHttpRoute

    > **ProxyExposureHttpRoute** = `object`

    Defined in: packages/core/src/transports/exposure/routeRegistry.ts:26

    One owned HTTP route beneath the exposure listener.

    ## Properties

    ### handler

    > `readonly` **handler**: `ProxyExposureHttpRouteHandler`

    Defined in: packages/core/src/transports/exposure/routeRegistry.ts:29

    ### method

    > `readonly` **method**: `"GET"` | `"POST"` | `"PUT"` | `"PATCH"` | `"DELETE"` | `"OPTIONS"`

    Defined in: packages/core/src/transports/exposure/routeRegistry.ts:27

    ### path

    > `readonly` **path**: `string`

    Defined in: packages/core/src/transports/exposure/routeRegistry.ts:28
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyExposureHttpRouteHandler">
    @fentaris/core / ProxyExposureHttpRouteHandler

    > **ProxyExposureHttpRouteHandler** = (`req`, `res`, `url`) => `void` | `Promise`\<`void`>

    Defined in: packages/core/src/transports/exposure/routeRegistry.ts:11

    HTTP route handler registered on the shared exposure listener.

    ## Parameters

    ### req

    `IncomingMessage`

    ### res

    `ServerResponse`

    ### url

    `URL`

    ## Returns

    `void` | `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyExposureRouteRegistry">
    @fentaris/core / ProxyExposureRouteRegistry

    > **ProxyExposureRouteRegistry** = `object`

    Defined in: packages/core/src/transports/exposure/routeRegistry.ts:39

    Optional route/upgrade registration surface for exposure transports.

    ## Properties

    ### httpRoutes?

    > `readonly` `optional` **httpRoutes?**: readonly `ProxyExposureHttpRoute`\[]

    Defined in: packages/core/src/transports/exposure/routeRegistry.ts:40

    ### upgradeRoutes?

    > `readonly` `optional` **upgradeRoutes?**: readonly `ProxyExposureUpgradeRoute`\[]

    Defined in: packages/core/src/transports/exposure/routeRegistry.ts:41
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyExposureTransport">
    @fentaris/core / ProxyExposureTransport

    > **ProxyExposureTransport**\<`THandle`> = `object`

    Defined in: packages/core/src/types/proxy.ts:386

    Transport interface for exposing the Fentaris proxy to downstream MCP clients.

    ## Type Parameters

    ### THandle

    `THandle` *extends* `ProxyExposureHandle` = `ProxyExposureHandle`

    ## Methods

    ### listen()

    > **listen**(`runtime`): `Promise`\<`THandle`>

    Defined in: packages/core/src/types/proxy.ts:387

    #### Parameters

    ##### runtime

    `ProxyRuntime`

    #### Returns

    `Promise`\<`THandle`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyExposureUpgradeHandler">
    @fentaris/core / ProxyExposureUpgradeHandler

    > **ProxyExposureUpgradeHandler** = (`req`, `socket`, `head`, `url`) => `void` | `Promise`\<`void`>

    Defined in: packages/core/src/transports/exposure/routeRegistry.ts:18

    WebSocket upgrade handler registered on the shared exposure listener.

    ## Parameters

    ### req

    `IncomingMessage`

    ### socket

    `Duplex`

    ### head

    `Buffer`

    ### url

    `URL`

    ## Returns

    `void` | `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyExposureUpgradeRoute">
    @fentaris/core / ProxyExposureUpgradeRoute

    > **ProxyExposureUpgradeRoute** = `object`

    Defined in: packages/core/src/transports/exposure/routeRegistry.ts:33

    One owned WebSocket upgrade path beneath the exposure listener.

    ## Properties

    ### handler

    > `readonly` **handler**: `ProxyExposureUpgradeHandler`

    Defined in: packages/core/src/transports/exposure/routeRegistry.ts:35

    ### path

    > `readonly` **path**: `string`

    Defined in: packages/core/src/transports/exposure/routeRegistry.ts:34
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyGroupHandle">
    @fentaris/core / ProxyGroupHandle

    > **ProxyGroupHandle** = `object`

    Defined in: packages/core/src/types/proxy.ts:334

    Scoped group handle returned by `proxy.group(id)`.

    ## Properties

    ### id

    > `readonly` **id**: `string`

    Defined in: packages/core/src/types/proxy.ts:335

    ## Methods

    ### mcp()

    > **mcp**(`name`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:336

    #### Parameters

    ##### name

    `string`

    #### Returns

    `ProxyMcpHandle`

    ### on()

    #### Call Signature

    > **on**(`eventName`, `handler`): `ProxyGroupHandle`

    Defined in: packages/core/src/types/proxy.ts:343

    ##### Parameters

    ###### eventName

    `ProxyEventName`

    ###### handler

    `ProxyEventHandler`

    ##### Returns

    `ProxyGroupHandle`

    #### Call Signature

    > **on**(`eventName`, `filter`, `handler`): `ProxyGroupHandle`

    Defined in: packages/core/src/types/proxy.ts:344

    ##### Parameters

    ###### eventName

    `ProxyEventName`

    ###### filter

    `ProxyEventFilter`

    ###### handler

    `ProxyEventHandler`

    ##### Returns

    `ProxyGroupHandle`

    ### operation()

    > **operation**(`operation`, `handler`): `ProxyGroupHandle`

    Defined in: packages/core/src/types/proxy.ts:342

    #### Parameters

    ##### operation

    `ProxyOperation`

    ##### handler

    `ProxyMiddleware`

    #### Returns

    `ProxyGroupHandle`

    ### policy()

    > **policy**(`policyNameOrPolicy`): `ProxyGroupHandle`

    Defined in: packages/core/src/types/proxy.ts:339

    #### Parameters

    ##### policyNameOrPolicy

    `string` | `PolicyContract`

    #### Returns

    `ProxyGroupHandle`

    ### server()

    > **server**(`name`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:337

    #### Parameters

    ##### name

    `string`

    #### Returns

    `ProxyMcpHandle`

    ### use()

    #### Call Signature

    > **use**(`handler`): `ProxyGroupHandle`

    Defined in: packages/core/src/types/proxy.ts:340

    ##### Parameters

    ###### handler

    `ProxyMiddleware`

    ##### Returns

    `ProxyGroupHandle`

    #### Call Signature

    > **use**(`handler`): `ProxyGroupHandle`

    Defined in: packages/core/src/types/proxy.ts:341

    ##### Parameters

    ###### handler

    `LegacyMiddleware`

    ##### Returns

    `ProxyGroupHandle`

    ### users()

    > **users**(...`users`): `ProxyGroupHandle`

    Defined in: packages/core/src/types/proxy.ts:338

    #### Parameters

    ##### users

    ...`User`\[]

    #### Returns

    `ProxyGroupHandle`
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyHookEvent">
    @fentaris/core / ProxyHookEvent

    > **ProxyHookEvent** = `"call"`

    Defined in: packages/core/src/types/middleware.ts:29

    Event names supported by the proxy hook system.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyLocalHandle">
    @fentaris/core / ProxyLocalHandle

    > **ProxyLocalHandle** = `object`

    Defined in: packages/core/src/local/declarations.ts:101

    Handle returned by `app.local(name)` for declaring local MCP capabilities.

    ## Properties

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/local/declarations.ts:102

    ## Methods

    ### completion()

    > **completion**(`ref`, `handler`): `ProxyLocalHandle`

    Defined in: packages/core/src/local/declarations.ts:107

    #### Parameters

    ##### ref

    `LocalCompletionReference`

    ##### handler

    `LocalCompletionHandler`

    #### Returns

    `ProxyLocalHandle`

    ### prompt()

    > **prompt**(`name`, `metadata`, `handler`): `ProxyLocalHandle`

    Defined in: packages/core/src/local/declarations.ts:106

    #### Parameters

    ##### name

    `string`

    ##### metadata

    `LocalPromptMetadata`

    ##### handler

    `LocalPromptHandler`

    #### Returns

    `ProxyLocalHandle`

    ### resource()

    > **resource**(`uri`, `metadata`, `handler`): `ProxyLocalHandle`

    Defined in: packages/core/src/local/declarations.ts:104

    #### Parameters

    ##### uri

    `string`

    ##### metadata

    `LocalResourceMetadata`

    ##### handler

    `LocalResourceHandler`

    #### Returns

    `ProxyLocalHandle`

    ### resourceTemplate()

    > **resourceTemplate**(`uriTemplate`, `metadata`, `handler`): `ProxyLocalHandle`

    Defined in: packages/core/src/local/declarations.ts:105

    #### Parameters

    ##### uriTemplate

    `string`

    ##### metadata

    `LocalResourceTemplateMetadata`

    ##### handler

    `LocalResourceHandler`

    #### Returns

    `ProxyLocalHandle`

    ### tool()

    > **tool**(`name`, `metadata`, `handler`): `ProxyLocalHandle`

    Defined in: packages/core/src/local/declarations.ts:103

    #### Parameters

    ##### name

    `string`

    ##### metadata

    `LocalToolMetadata`

    ##### handler

    `LocalToolHandler`

    #### Returns

    `ProxyLocalHandle`
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyMcpDeclarationConfig">
    @fentaris/core / ProxyMcpDeclarationConfig

    > **ProxyMcpDeclarationConfig** = `McpServerOptions`

    Defined in: packages/core/src/types/proxy.ts:380

    Config object for declaring an upstream MCP server through `proxy.mcp(config)`.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyMcpDeclarationOptions">
    @fentaris/core / ProxyMcpDeclarationOptions

    > **ProxyMcpDeclarationOptions** = `Omit`\<`McpServerOptions`, `"name"`>

    Defined in: packages/core/src/types/proxy.ts:374

    Options for declaring an upstream MCP server through `proxy.mcp(name, options)`.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyMcpHandle">
    @fentaris/core / ProxyMcpHandle

    > **ProxyMcpHandle** = `object`

    Defined in: packages/core/src/types/proxy.ts:280

    Scoped upstream MCP handle returned by `proxy.mcp(name)` or `proxy.server(name)`.

    ## Properties

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/types/proxy.ts:281

    ## Methods

    ### health()

    > **health**(): `Promise`\<`HealthCheckResult`>

    Defined in: packages/core/src/types/proxy.ts:301

    #### Returns

    `Promise`\<`HealthCheckResult`>

    ### on()

    #### Call Signature

    > **on**(`eventName`, `handler`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:286

    ##### Parameters

    ###### eventName

    `ProxyEventName`

    ###### handler

    `ProxyEventHandler`

    ##### Returns

    `ProxyMcpHandle`

    #### Call Signature

    > **on**(`eventName`, `filter`, `handler`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:287

    ##### Parameters

    ###### eventName

    `ProxyEventName`

    ###### filter

    `ProxyEventFilter`

    ###### handler

    `ProxyEventHandler`

    ##### Returns

    `ProxyMcpHandle`

    ### operation()

    > **operation**(`operation`, `handler`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:285

    #### Parameters

    ##### operation

    `ProxyOperation`

    ##### handler

    `ProxyMiddleware`

    #### Returns

    `ProxyMcpHandle`

    ### ping()

    > **ping**(): `Promise`\<`HealthCheckResult`>

    Defined in: packages/core/src/types/proxy.ts:300

    #### Returns

    `Promise`\<`HealthCheckResult`>

    ### setup()

    > **setup**(`schema`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:293

    Declare the setup schema describing runtime references required to launch
    this MCP. Target bindings do not grant MCP access.

    #### Parameters

    ##### schema

    `SetupSchema` | `Record`\<`string`, `SetupFieldDescriptor`>

    #### Returns

    `ProxyMcpHandle`

    ### target()

    > **target**(`targetName`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:299

    Bind this MCP to a named execution target for the current scope
    (global, group, or user). `"cloud"` is the implicit built-in target.

    #### Parameters

    ##### targetName

    `string`

    #### Returns

    `ProxyMcpHandle`

    ### tool()

    > **tool**(`pattern`, `handler`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:284

    #### Parameters

    ##### pattern

    `string`

    ##### handler

    `ProxyMiddleware`

    #### Returns

    `ProxyMcpHandle`

    ### use()

    #### Call Signature

    > **use**(`handler`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:282

    ##### Parameters

    ###### handler

    `ProxyMiddleware`

    ##### Returns

    `ProxyMcpHandle`

    #### Call Signature

    > **use**(`handler`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:283

    ##### Parameters

    ###### handler

    `LegacyMiddleware`

    ##### Returns

    `ProxyMcpHandle`
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyMiddleware">
    @fentaris/core / ProxyMiddleware

    > **ProxyMiddleware** = (`context`, `next`) => `MaybePromise`\<`ProxyOperationResult` | `void`>

    Defined in: packages/core/src/types/middleware.ts:257

    Express-like middleware function signature.

    ## Parameters

    ### context

    `ProxyContext`

    ### next

    `ProxyNext`

    ## Returns

    `MaybePromise`\<`ProxyOperationResult` | `void`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyNext">
    @fentaris/core / ProxyNext

    > **ProxyNext** = () => `Promise`\<`ProxyOperationResult`>

    Defined in: packages/core/src/types/middleware.ts:241

    Next handler for unified proxy middleware.

    ## Returns

    `Promise`\<`ProxyOperationResult`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyOperation">
    @fentaris/core / ProxyOperation

    > **ProxyOperation** = `"tool:call"` | `"tools:list"` | `"resources:list"` | `"resource:read"` | `"resource-templates:list"` | `"prompts:list"` | `"prompt:get"` | `"completion:complete"` | `"session:start"` | `"session:end"`

    Defined in: packages/core/src/types/mcp-operation.ts:74

    Operation names handled by the unified proxy context.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyOperationHandler">
    @fentaris/core / ProxyOperationHandler

    > **ProxyOperationHandler** = `ProxyMiddleware`

    Defined in: packages/core/src/types/proxy.ts:211

    Express-like handler for a governed MCP operation route.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyOperationResult">
    @fentaris/core / ProxyOperationResult

    > **ProxyOperationResult** = `CallToolResult` | `CompleteResult` | `GetPromptResult` | `ListPromptsResult` | `ListResourcesResult` | `ListResourceTemplatesResult` | `ListToolsResult` | `ReadResourceResult`

    Defined in: packages/core/src/types/mcp-operation.ts:122

    Result shapes returned by governed proxy operation handlers.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyPolicyContext">
    @fentaris/core / ProxyPolicyContext

    > **ProxyPolicyContext** = `object`

    Defined in: packages/core/src/types/proxy.ts:103

    Structured policy metadata exposed through the unified context.

    ## Properties

    ### allowed?

    > `optional` **allowed?**: `boolean`

    Defined in: packages/core/src/types/proxy.ts:104

    ### decision?

    > `optional` **decision?**: `PolicyDecision`

    Defined in: packages/core/src/types/proxy.ts:110

    ### matchedGroups

    > **matchedGroups**: `string`\[]

    Defined in: packages/core/src/types/proxy.ts:106

    ### matchedPermissions

    > **matchedPermissions**: `NonNullable`\<`PolicyMetadata`\[`"matchedPermissions"`]>

    Defined in: packages/core/src/types/proxy.ts:107

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/proxy.ts:108

    ### policy?

    > `optional` **policy?**: `PolicyContract`

    Defined in: packages/core/src/types/proxy.ts:109

    ### reason?

    > `optional` **reason?**: `string`

    Defined in: packages/core/src/types/proxy.ts:105

    ## Methods

    ### can()

    > **can**(`server`, `tool`): `MaybePromise`\<`boolean`>

    Defined in: packages/core/src/types/proxy.ts:111

    #### Parameters

    ##### server

    `string`

    ##### tool

    `string`

    #### Returns

    `MaybePromise`\<`boolean`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyPromptContext">
    @fentaris/core / ProxyPromptContext

    > **ProxyPromptContext** = `object`

    Defined in: packages/core/src/types/proxy.ts:147

    Selected prompt metadata.

    ## Properties

    ### name

    > **name**: `string`

    Defined in: packages/core/src/types/proxy.ts:148

    ### proxyName

    > **proxyName**: `string`

    Defined in: packages/core/src/types/proxy.ts:149
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyResourceContext">
    @fentaris/core / ProxyResourceContext

    > **ProxyResourceContext** = `object`

    Defined in: packages/core/src/types/proxy.ts:136

    Selected resource metadata.

    ## Properties

    ### proxyUri?

    > `optional` **proxyUri?**: `string`

    Defined in: packages/core/src/types/proxy.ts:138

    ### proxyUriTemplate?

    > `optional` **proxyUriTemplate?**: `string`

    Defined in: packages/core/src/types/proxy.ts:140

    ### uri?

    > `optional` **uri?**: `string`

    Defined in: packages/core/src/types/proxy.ts:137

    ### uriTemplate?

    > `optional` **uriTemplate?**: `string`

    Defined in: packages/core/src/types/proxy.ts:139
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyRuntime">
    @fentaris/core / ProxyRuntime

    > **ProxyRuntime** = `object`

    Defined in: packages/core/src/types/proxy.ts:359

    Runtime operations shared by downstream proxy exposure transports.

    ## Properties

    ### identityRequired

    > **identityRequired**: `boolean`

    Defined in: packages/core/src/types/proxy.ts:367

    ### logger

    > **logger**: `Logger`

    Defined in: packages/core/src/types/proxy.ts:366

    ## Methods

    ### createSdkServer()

    > **createSdkServer**(`user?`, `identity?`, `subject?`): `unknown`

    Defined in: packages/core/src/types/proxy.ts:360

    #### Parameters

    ##### user?

    `UserContext`

    ##### identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `unknown`

    ### emitRuntimeEvent()

    > **emitRuntimeEvent**(`event`): `Promise`\<`void`>

    Defined in: packages/core/src/types/proxy.ts:365

    #### Parameters

    ##### event

    `RuntimeEvent`

    #### Returns

    `Promise`\<`void`>

    ### emitSessionEnd()

    > **emitSessionEnd**(`context`): `Promise`\<`void`>

    Defined in: packages/core/src/types/proxy.ts:364

    #### Parameters

    ##### context

    `LifecycleHookContext`

    #### Returns

    `Promise`\<`void`>

    ### emitSessionStart()

    > **emitSessionStart**(`context`): `Promise`\<`void`>

    Defined in: packages/core/src/types/proxy.ts:363

    #### Parameters

    ##### context

    `LifecycleHookContext`

    #### Returns

    `Promise`\<`void`>

    ### resolveHttpUser()

    > **resolveHttpUser**(`request`): `Promise`\<\{ `identity?`: `IdentityMetadata`; `subject?`: `ResolvedSubject`; `user`: `UserContext`; }>

    Defined in: packages/core/src/types/proxy.ts:361

    #### Parameters

    ##### request

    `unknown`

    #### Returns

    `Promise`\<\{ `identity?`: `IdentityMetadata`; `subject?`: `ResolvedSubject`; `user`: `UserContext`; }>

    ### resolveStdioUser()

    > **resolveStdioUser**(): `Promise`\<\{ `identity?`: `IdentityMetadata`; `subject?`: `ResolvedSubject`; `user`: `UserContext`; }>

    Defined in: packages/core/src/types/proxy.ts:362

    #### Returns

    `Promise`\<\{ `identity?`: `IdentityMetadata`; `subject?`: `ResolvedSubject`; `user`: `UserContext`; }>
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyServerContext">
    @fentaris/core / ProxyServerContext

    > **ProxyServerContext** = `object`

    Defined in: packages/core/src/types/proxy.ts:118

    Selected upstream server metadata.

    ## Properties

    ### displayName?

    > `optional` **displayName?**: `string`

    Defined in: packages/core/src/types/proxy.ts:120

    ### name

    > **name**: `string`

    Defined in: packages/core/src/types/proxy.ts:119
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyToolContext">
    @fentaris/core / ProxyToolContext

    > **ProxyToolContext** = `object`

    Defined in: packages/core/src/types/proxy.ts:127

    Selected tool metadata.

    ## Properties

    ### name

    > **name**: `string`

    Defined in: packages/core/src/types/proxy.ts:128

    ### proxyName

    > **proxyName**: `string`

    Defined in: packages/core/src/types/proxy.ts:129
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyToolHandler">
    @fentaris/core / ProxyToolHandler

    > **ProxyToolHandler** = `ProxyMiddleware`

    Defined in: packages/core/src/types/proxy.ts:205

    Express-like tool route handler signature.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyToolPattern">
    @fentaris/core / ProxyToolPattern

    > **ProxyToolPattern** = `string`

    Defined in: packages/core/src/types/proxy.ts:217

    Public tool pattern using `server.tool` dot notation and `*` wildcards.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyTransportContext">
    @fentaris/core / ProxyTransportContext

    > **ProxyTransportContext** = `object`

    Defined in: packages/core/src/types/proxy.ts:56

    Safe downstream transport metadata attached to a proxy operation.

    ## Properties

    ### deadline?

    > `optional` **deadline?**: `number`

    Defined in: packages/core/src/types/proxy.ts:61

    Absolute epoch deadline propagated to upstream/edge execution.

    ### requestId?

    > `optional` **requestId?**: `string`

    Defined in: packages/core/src/types/proxy.ts:59

    ### sessionId?

    > `optional` **sessionId?**: `string`

    Defined in: packages/core/src/types/proxy.ts:58

    ### signal?

    > `optional` **signal?**: `AbortSignal`

    Defined in: packages/core/src/types/proxy.ts:63

    Downstream cancellation signal propagated to upstream/edge execution.

    ### type?

    > `optional` **type?**: `"http"` | `"stdio"` | `"sse"` | `"unknown"`

    Defined in: packages/core/src/types/proxy.ts:57
  </Accordion>

  <Accordion title="Core exports: type-aliases/ProxyUserHandle">
    @fentaris/core / ProxyUserHandle

    > **ProxyUserHandle** = `object`

    Defined in: packages/core/src/types/proxy.ts:309

    Scoped user handle returned by `proxy.user(id)`. Records placement bindings
    without creating or authenticating a subject.

    ## Properties

    ### id

    > `readonly` **id**: `string`

    Defined in: packages/core/src/types/proxy.ts:310

    ## Methods

    ### mcp()

    > **mcp**(`name`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:312

    Register or retrieve a scoped upstream MCP handle for this user.

    #### Parameters

    ##### name

    `string`

    #### Returns

    `ProxyMcpHandle`

    ### server()

    > **server**(`name`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:314

    Alias for `mcp(name)`.

    #### Parameters

    ##### name

    `string`

    #### Returns

    `ProxyMcpHandle`
  </Accordion>

  <Accordion title="Core exports: type-aliases/ReadResourceParams">
    @fentaris/core / ReadResourceParams

    > **ReadResourceParams** = `ReadResourceRequest`\[`"params"`]

    Defined in: packages/core/src/types/mcp-operation.ts:27

    Core middleware and transport types.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ReadResourceResponse">
    @fentaris/core / ReadResourceResponse

    > **ReadResourceResponse** = `ReadResourceResult`

    Defined in: packages/core/src/types/mcp-operation.ts:28

    Core middleware and transport types.
  </Accordion>

  <Accordion title="Core exports: type-aliases/RedisLoggerClient">
    @fentaris/core / RedisLoggerClient

    > **RedisLoggerClient** = `object`

    Defined in: packages/core/src/logging/logger.ts:152

    Minimal Redis-compatible logger client contract.

    ## Methods

    ### rpush()

    > **rpush**(`key`, `value`): `void` | `Promise`\<`unknown`>

    Defined in: packages/core/src/logging/logger.ts:153

    #### Parameters

    ##### key

    `string`

    ##### value

    `string`

    #### Returns

    `void` | `Promise`\<`unknown`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/RedisLoggerDriverOptions">
    @fentaris/core / RedisLoggerDriverOptions

    > **RedisLoggerDriverOptions** = `object`

    Defined in: packages/core/src/logging/logger.ts:160

    Redis logger driver options.

    ## Properties

    ### client

    > **client**: `RedisLoggerClient`

    Defined in: packages/core/src/logging/logger.ts:161

    ### key?

    > `optional` **key?**: `string`

    Defined in: packages/core/src/logging/logger.ts:162
  </Accordion>

  <Accordion title="Core exports: type-aliases/RedisRegistryClient">
    @fentaris/core / RedisRegistryClient

    > **RedisRegistryClient** = `object`

    Defined in: packages/core/src/registry/registry.ts:8

    Minimal Redis-compatible client contract.

    ## Methods

    ### get()

    > **get**(`key`): `string` | `Promise`\<`string` | `null`> | `null`

    Defined in: packages/core/src/registry/registry.ts:9

    #### Parameters

    ##### key

    `string`

    #### Returns

    `string` | `Promise`\<`string` | `null`> | `null`

    ### set()

    > **set**(`key`, `value`): `unknown`

    Defined in: packages/core/src/registry/registry.ts:10

    #### Parameters

    ##### key

    `string`

    ##### value

    `string`

    #### Returns

    `unknown`
  </Accordion>

  <Accordion title="Core exports: type-aliases/RedisRegistryOptions">
    @fentaris/core / RedisRegistryOptions

    > **RedisRegistryOptions** = `object`

    Defined in: packages/core/src/registry/registry.ts:17

    Options for Redis-backed registry storage.

    ## Properties

    ### client

    > **client**: `RedisRegistryClient`

    Defined in: packages/core/src/registry/registry.ts:18

    ### keyPrefix?

    > `optional` **keyPrefix?**: `string`

    Defined in: packages/core/src/registry/registry.ts:19
  </Accordion>

  <Accordion title="Core exports: type-aliases/ResolvedSubject">
    @fentaris/core / ResolvedSubject

    > **ResolvedSubject** = `object`

    Defined in: packages/core/src/types/shared.ts:92

    Authenticated subject resolved from user and group declarations.

    ## Properties

    ### displayName?

    > `optional` **displayName?**: `string`

    Defined in: packages/core/src/types/shared.ts:94

    ### email?

    > `optional` **email?**: `string`

    Defined in: packages/core/src/types/shared.ts:95

    ### groups

    > **groups**: `GroupMembership`\[]

    Defined in: packages/core/src/types/shared.ts:98

    ### id

    > **id**: `string`

    Defined in: packages/core/src/types/shared.ts:93

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/shared.ts:96

    ### tenant?

    > `optional` **tenant?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/shared.ts:97

    ## Methods

    ### hasGroup()

    > **hasGroup**(`groupId`): `boolean`

    Defined in: packages/core/src/types/shared.ts:99

    #### Parameters

    ##### groupId

    `string`

    #### Returns

    `boolean`
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeEvent">
    @fentaris/core / RuntimeEvent

    > **RuntimeEvent**\<`N`> = `N` *extends* `RuntimeEventName` ? `RuntimeEventMap`\[`N`] : `never`

    Defined in: packages/core/src/profiler/events.ts:112

    ## Type Parameters

    ### N

    `N` *extends* `RuntimeEventName` = `RuntimeEventName`
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeEventBase">
    @fentaris/core / RuntimeEventBase

    > **RuntimeEventBase**\<`Name`, `Category`, `Level`> = `RuntimeEventDimensions` & `object`

    Defined in: packages/core/src/profiler/events.ts:25

    ## Type Declaration

    ### category

    > **category**: `Category`

    ### level

    > **level**: `Level`

    ### message?

    > `optional` **message?**: `string`

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    ### name

    > **name**: `Name`

    ### timestamp

    > **timestamp**: `Date`

    ## Type Parameters

    ### Name

    `Name` *extends* `string`

    ### Category

    `Category` *extends* `RuntimeEventCategory`

    ### Level

    `Level` *extends* `RuntimeEventLevel`
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeEventCategory">
    @fentaris/core / RuntimeEventCategory

    > **RuntimeEventCategory** = `"lifecycle"` | `"health"` | `"mcp"` | `"policy"` | `"transport"` | `"extension"` | `"errors"` | `"timeouts"` | `"profiler"`

    Defined in: packages/core/src/profiler/events.ts:4
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeEventDimensions">
    @fentaris/core / RuntimeEventDimensions

    > **RuntimeEventDimensions** = `object`

    Defined in: packages/core/src/profiler/events.ts:17

    ## Properties

    ### durationMs?

    > `optional` **durationMs?**: `number`

    Defined in: packages/core/src/profiler/events.ts:22

    ### group?

    > `optional` **group?**: `string`

    Defined in: packages/core/src/profiler/events.ts:19

    ### operation?

    > `optional` **operation?**: `string`

    Defined in: packages/core/src/profiler/events.ts:21

    ### server?

    > `optional` **server?**: `string`

    Defined in: packages/core/src/profiler/events.ts:18

    ### user?

    > `optional` **user?**: `string`

    Defined in: packages/core/src/profiler/events.ts:20
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeEventHandler">
    @fentaris/core / RuntimeEventHandler

    > **RuntimeEventHandler**\<`N`> = (`event`) => `void` | `Promise`\<`void`>

    Defined in: packages/core/src/profiler/events.ts:113

    ## Type Parameters

    ### N

    `N` *extends* `RuntimeEventName` = `RuntimeEventName`

    ## Parameters

    ### event

    `RuntimeEvent`\<`N`>

    ## Returns

    `void` | `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeEventLevel">
    @fentaris/core / RuntimeEventLevel

    > **RuntimeEventLevel** = `"debug"` | `"info"` | `"warn"` | `"error"` | `"fatal"`

    Defined in: packages/core/src/profiler/events.ts:15
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeEventMap">
    @fentaris/core / RuntimeEventMap

    > **RuntimeEventMap** = `object`

    Defined in: packages/core/src/profiler/events.ts:89

    ## Properties

    ### extension.error

    > **extension.error**: `RuntimeExtensionEvent`

    Defined in: packages/core/src/profiler/events.ts:107

    ### health.check.error

    > **health.check.error**: `Extract`\<`RuntimeHealthEvent`, \{ `name`: `"health.check.error"`; }>

    Defined in: packages/core/src/profiler/events.ts:104

    ### health.check.start

    > **health.check.start**: `Extract`\<`RuntimeHealthEvent`, \{ `name`: `"health.check.start"`; }>

    Defined in: packages/core/src/profiler/events.ts:102

    ### health.check.success

    > **health.check.success**: `Extract`\<`RuntimeHealthEvent`, \{ `name`: `"health.check.success"`; }>

    Defined in: packages/core/src/profiler/events.ts:103

    ### health.check.timeout

    > **health.check.timeout**: `Extract`\<`RuntimeHealthEvent`, \{ `name`: `"health.check.timeout"`; }>

    Defined in: packages/core/src/profiler/events.ts:105

    ### health.status

    > **health.status**: `Extract`\<`RuntimeHealthEvent`, \{ `name`: `"health.status"`; }>

    Defined in: packages/core/src/profiler/events.ts:106

    ### mcp.call.error

    > **mcp.call.error**: `Extract`\<`RuntimeMcpEvent`, \{ `name`: `"mcp.call.error"`; }>

    Defined in: packages/core/src/profiler/events.ts:97

    ### mcp.call.start

    > **mcp.call.start**: `Extract`\<`RuntimeMcpEvent`, \{ `name`: `"mcp.call.start"`; }>

    Defined in: packages/core/src/profiler/events.ts:95

    ### mcp.call.success

    > **mcp.call.success**: `Extract`\<`RuntimeMcpEvent`, \{ `name`: `"mcp.call.success"`; }>

    Defined in: packages/core/src/profiler/events.ts:96

    ### mcp.call.timeout

    > **mcp.call.timeout**: `Extract`\<`RuntimeMcpEvent`, \{ `name`: `"mcp.call.timeout"`; }>

    Defined in: packages/core/src/profiler/events.ts:98

    ### policy.allowed

    > **policy.allowed**: `RuntimePolicyEvent` & `object`

    Defined in: packages/core/src/profiler/events.ts:99

    #### Type Declaration

    ##### name

    > **name**: `"policy.allowed"`

    ### policy.denied

    > **policy.denied**: `RuntimePolicyEvent` & `object`

    Defined in: packages/core/src/profiler/events.ts:100

    #### Type Declaration

    ##### name

    > **name**: `"policy.denied"`

    ### profiler.sink.error

    > **profiler.sink.error**: `RuntimeProfilerEvent`

    Defined in: packages/core/src/profiler/events.ts:108

    ### runtime.degraded

    > **runtime.degraded**: `Extract`\<`RuntimeLifecycleEvent`, \{ `name`: `"runtime.degraded"`; }>

    Defined in: packages/core/src/profiler/events.ts:92

    ### runtime.error

    > **runtime.error**: `Extract`\<`RuntimeLifecycleEvent`, \{ `name`: `"runtime.error"`; }>

    Defined in: packages/core/src/profiler/events.ts:94

    ### runtime.ready

    > **runtime.ready**: `Extract`\<`RuntimeLifecycleEvent`, \{ `name`: `"runtime.ready"`; }>

    Defined in: packages/core/src/profiler/events.ts:91

    ### runtime.start

    > **runtime.start**: `Extract`\<`RuntimeLifecycleEvent`, \{ `name`: `"runtime.start"`; }>

    Defined in: packages/core/src/profiler/events.ts:90

    ### runtime.stop

    > **runtime.stop**: `Extract`\<`RuntimeLifecycleEvent`, \{ `name`: `"runtime.stop"`; }>

    Defined in: packages/core/src/profiler/events.ts:93

    ### transport.error

    > **transport.error**: `RuntimeTransportEvent`

    Defined in: packages/core/src/profiler/events.ts:101
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeEventName">
    @fentaris/core / RuntimeEventName

    > **RuntimeEventName** = keyof `RuntimeEventMap`

    Defined in: packages/core/src/profiler/events.ts:111
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeExtensionEvent">
    @fentaris/core / RuntimeExtensionEvent

    > **RuntimeExtensionEvent** = `RuntimeEventBase`\<`"extension.error"`, `"extension"` | `"errors"`, `"error"`> & `object`

    Defined in: packages/core/src/profiler/events.ts:69

    ## Type Declaration

    ### boundary

    > **boundary**: `"hook"` | `"middleware"` | `"route"` | `"sink"` | `"extension"`

    ### error

    > **error**: `RuntimeProfilerErrorPayload`
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeHealthEvent">
    @fentaris/core / RuntimeHealthEvent

    > **RuntimeHealthEvent** = `RuntimeEventBase`\<`"health.check.start"`, `"health"`, `"debug"` | `"info"`> & `object` | `RuntimeEventBase`\<`"health.check.success"`, `"health"`, `"debug"` | `"info"` | `"warn"`> & `object` | `RuntimeEventBase`\<`"health.check.error"`, `"health"`, `"error"`> & `object` | `RuntimeEventBase`\<`"health.check.timeout"`, `"timeouts"`, `"warn"` | `"error"`> & `object` | `RuntimeEventBase`\<`"health.status"`, `"health"`, `"info"` | `"warn"` | `"error"`> & `object`

    Defined in: packages/core/src/profiler/events.ts:62
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeLifecycle">
    @fentaris/core / RuntimeLifecycle

    > **RuntimeLifecycle** = `object`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:44

    ## Methods

    ### health()

    > **health**(): `Promise`\<`HealthReport`>

    Defined in: packages/core/src/lifecycle/lifecycle.ts:49

    #### Returns

    `Promise`\<`HealthReport`>

    ### ready()

    > **ready**(`options?`): `Promise`\<`RuntimeLifecycleSnapshot`>

    Defined in: packages/core/src/lifecycle/lifecycle.ts:46

    #### Parameters

    ##### options?

    `RuntimeLifecycleOptions`

    #### Returns

    `Promise`\<`RuntimeLifecycleSnapshot`>

    ### start()

    > **start**(`options?`): `Promise`\<`unknown`>

    Defined in: packages/core/src/lifecycle/lifecycle.ts:45

    #### Parameters

    ##### options?

    `RuntimeLifecycleOptions`

    #### Returns

    `Promise`\<`unknown`>

    ### state()

    > **state**(): `RuntimeLifecycleSnapshot`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:48

    #### Returns

    `RuntimeLifecycleSnapshot`

    ### stop()

    > **stop**(`options?`): `Promise`\<`void`>

    Defined in: packages/core/src/lifecycle/lifecycle.ts:47

    #### Parameters

    ##### options?

    `RuntimeLifecycleOptions`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeLifecycleEvent">
    @fentaris/core / RuntimeLifecycleEvent

    > **RuntimeLifecycleEvent** = `RuntimeEventBase`\<`"runtime.start"`, `"lifecycle"`, `"info"`> & `object` | `RuntimeEventBase`\<`"runtime.ready"`, `"lifecycle"`, `"info"`> & `object` | `RuntimeEventBase`\<`"runtime.degraded"`, `"lifecycle"`, `"warn"`> & `object` | `RuntimeEventBase`\<`"runtime.stop"`, `"lifecycle"`, `"info"`> & `object` | `RuntimeEventBase`\<`"runtime.error"`, `"errors"`, `"error"` | `"fatal"`> & `object`

    Defined in: packages/core/src/profiler/events.ts:35
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeLifecycleMetadata">
    @fentaris/core / RuntimeLifecycleMetadata

    > **RuntimeLifecycleMetadata** = `object`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:13

    ## Properties

    ### failure?

    > `optional` **failure?**: `object`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:19

    #### code?

    > `optional` **code?**: `string`

    #### message

    > **message**: `string`

    #### name

    > **name**: `string`

    ### lastTransitionAt

    > **lastTransitionAt**: `Date`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:18

    ### name

    > **name**: `string`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:14

    ### startedAt?

    > `optional` **startedAt?**: `Date`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:16

    ### stoppedAt?

    > `optional` **stoppedAt?**: `Date`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:17

    ### version

    > **version**: `string`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:15
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeLifecycleOptions">
    @fentaris/core / RuntimeLifecycleOptions

    > **RuntimeLifecycleOptions** = `object`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:31

    ## Properties

    ### shutdownTimeoutMs?

    > `optional` **shutdownTimeoutMs?**: `number`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:33

    ### startupTimeoutMs?

    > `optional` **startupTimeoutMs?**: `number`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:32
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeLifecycleSnapshot">
    @fentaris/core / RuntimeLifecycleSnapshot

    > **RuntimeLifecycleSnapshot** = `object`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:26

    ## Properties

    ### metadata

    > **metadata**: `RuntimeLifecycleMetadata`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:28

    ### state

    > **state**: `RuntimeLifecycleState`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:27
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeLifecycleState">
    @fentaris/core / RuntimeLifecycleState

    > **RuntimeLifecycleState** = `"created"` | `"starting"` | `"ready"` | `"degraded"` | `"stopping"` | `"stopped"` | `"failed"`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:4
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeMcpEvent">
    @fentaris/core / RuntimeMcpEvent

    > **RuntimeMcpEvent** = `RuntimeEventBase`\<`"mcp.call.start"`, `"mcp"`, `"debug"` | `"info"`> & `object` | `RuntimeEventBase`\<`"mcp.call.success"`, `"mcp"`, `"debug"` | `"info"` | `"warn"`> & `object` | `RuntimeEventBase`\<`"mcp.call.error"`, `"errors"`, `"error"`> & `object` | `RuntimeEventBase`\<`"mcp.call.timeout"`, `"timeouts"`, `"warn"` | `"error"`> & `object`

    Defined in: packages/core/src/profiler/events.ts:42
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimePolicyEvent">
    @fentaris/core / RuntimePolicyEvent

    > **RuntimePolicyEvent** = `RuntimeEventBase`\<`"policy.allowed"` | `"policy.denied"`, `"policy"`, `"info"` | `"warn"`> & `object`

    Defined in: packages/core/src/profiler/events.ts:48

    ## Type Declaration

    ### allowed

    > **allowed**: `boolean`

    ### matchedGroups?

    > `optional` **matchedGroups?**: `string`\[]

    ### matchedPermissions?

    > `optional` **matchedPermissions?**: `unknown`\[]

    ### reason?

    > `optional` **reason?**: `string`
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeProfilerConfig">
    @fentaris/core / RuntimeProfilerConfig

    > **RuntimeProfilerConfig** = `ProfilerBuilder` | `ProfilerObjectConfig` | `false` | `undefined`

    Defined in: packages/core/src/profiler/profiler.ts:44
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeProfilerErrorPayload">
    @fentaris/core / RuntimeProfilerErrorPayload

    > **RuntimeProfilerErrorPayload** = `object`

    Defined in: packages/core/src/profiler/events.ts:79

    ## Properties

    ### cause?

    > `optional` **cause?**: `RuntimeProfilerErrorPayload` | \{ `message`: `string`; `name`: `string`; }

    Defined in: packages/core/src/profiler/events.ts:86

    ### code

    > **code**: `string`

    Defined in: packages/core/src/profiler/events.ts:81

    ### context

    > **context**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/profiler/events.ts:85

    ### hints

    > **hints**: `string`\[]

    Defined in: packages/core/src/profiler/events.ts:84

    ### message

    > **message**: `string`

    Defined in: packages/core/src/profiler/events.ts:82

    ### name

    > **name**: `string`

    Defined in: packages/core/src/profiler/events.ts:80

    ### severity

    > **severity**: `RuntimeEventLevel`

    Defined in: packages/core/src/profiler/events.ts:83
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeProfilerEvent">
    @fentaris/core / RuntimeProfilerEvent

    > **RuntimeProfilerEvent** = `RuntimeEventBase`\<`"profiler.sink.error"`, `"profiler"` | `"errors"`, `"error"`> & `object`

    Defined in: packages/core/src/profiler/events.ts:74

    ## Type Declaration

    ### error

    > **error**: `RuntimeProfilerErrorPayload`

    ### sink?

    > `optional` **sink?**: `string`
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeProfilerHandlerEntry">
    @fentaris/core / RuntimeProfilerHandlerEntry

    > **RuntimeProfilerHandlerEntry**\<`N`> = `object`

    Defined in: packages/core/src/profiler/profiler.ts:46

    ## Type Parameters

    ### N

    `N` *extends* `RuntimeEventName` = `RuntimeEventName`

    ## Properties

    ### eventName?

    > `optional` **eventName?**: `N`

    Defined in: packages/core/src/profiler/profiler.ts:47

    ### handler

    > **handler**: `RuntimeEventHandler`\<`N`>

    Defined in: packages/core/src/profiler/profiler.ts:49

    ### where?

    > `optional` **where?**: `ProfilerFilter`

    Defined in: packages/core/src/profiler/profiler.ts:48
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeTransportEvent">
    @fentaris/core / RuntimeTransportEvent

    > **RuntimeTransportEvent** = `RuntimeEventBase`\<`"transport.error"`, `"transport"` | `"errors"`, `"error"`> & `object`

    Defined in: packages/core/src/profiler/events.ts:55

    ## Type Declaration

    ### error

    > **error**: `RuntimeProfilerErrorPayload`

    ### requestId?

    > `optional` **requestId?**: `string`

    ### sessionId?

    > `optional` **sessionId?**: `string`

    ### transport?

    > `optional` **transport?**: `string`
  </Accordion>

  <Accordion title="Core exports: type-aliases/RuntimeValueTokenKind">
    @fentaris/core / RuntimeValueTokenKind

    > **RuntimeValueTokenKind** = `"input"` | `"secret"`

    Defined in: packages/core/src/edge/runtimeInput.ts:15

    Runtime reference kind.
  </Accordion>

  <Accordion title="Core exports: type-aliases/SchemaInspection">
    @fentaris/core / SchemaInspection

    > **SchemaInspection** = `object`

    Defined in: packages/core/src/tools/index.ts:87

    ## Properties

    ### input?

    > `optional` **input?**: `object`

    Defined in: packages/core/src/tools/index.ts:91

    #### available

    > **available**: `boolean`

    #### schema?

    > `optional` **schema?**: `unknown`

    ### mcp

    > **mcp**: `string`

    Defined in: packages/core/src/tools/index.ts:89

    ### name

    > **name**: `string`

    Defined in: packages/core/src/tools/index.ts:88

    ### output?

    > `optional` **output?**: `object`

    Defined in: packages/core/src/tools/index.ts:92

    #### available

    > **available**: `boolean`

    #### schema?

    > `optional` **schema?**: `unknown`

    ### upstreamName

    > **upstreamName**: `string`

    Defined in: packages/core/src/tools/index.ts:90
  </Accordion>

  <Accordion title="Core exports: type-aliases/SecretRef">
    @fentaris/core / SecretRef

    > **SecretRef** = `object`

    Defined in: packages/core/src/secrets/types.ts:14

    Reference to a stored secret without exposing its value.

    ## Properties

    ### count

    > **count**: `number`

    Defined in: packages/core/src/secrets/types.ts:19

    Number of API keys for apiKey kind; always 1 for credentials.

    ### kind

    > **kind**: `"credential"` | `"apiKey"`

    Defined in: packages/core/src/secrets/types.ts:17

    ### ref

    > **ref**: `string`

    Defined in: packages/core/src/secrets/types.ts:15

    ### scope

    > **scope**: `SecretScope`

    Defined in: packages/core/src/secrets/types.ts:16
  </Accordion>

  <Accordion title="Core exports: type-aliases/SecretScope">
    @fentaris/core / SecretScope

    > **SecretScope** = \{ `kind`: `"default"`; } | \{ `id`: `string`; `kind`: `"user"`; } | \{ `id`: `string`; `kind`: `"group"`; }

    Defined in: packages/core/src/secrets/types.ts:5

    Secret scope for credential storage.
  </Accordion>

  <Accordion title="Core exports: type-aliases/SecretsManifest">
    @fentaris/core / SecretsManifest

    > **SecretsManifest** = `object`

    Defined in: packages/core/src/secrets/types.ts:26

    Committable secrets manifest — schema only, no values.

    ## Properties

    ### envVars?

    > `optional` **envVars?**: `string`\[]

    Defined in: packages/core/src/secrets/types.ts:29

    ### references

    > **references**: `SecretsManifestEntry`\[]

    Defined in: packages/core/src/secrets/types.ts:28

    ### version

    > **version**: `1`

    Defined in: packages/core/src/secrets/types.ts:27
  </Accordion>

  <Accordion title="Core exports: type-aliases/SecretsManifestDiff">
    @fentaris/core / SecretsManifestDiff

    > **SecretsManifestDiff** = `object`

    Defined in: packages/core/src/secrets/types.ts:45

    Result of comparing required vs stored secret references.

    ## Properties

    ### extra

    > **extra**: `SecretRef`\[]

    Defined in: packages/core/src/secrets/types.ts:47

    ### missing

    > **missing**: `SecretsManifestEntry`\[]

    Defined in: packages/core/src/secrets/types.ts:46

    ### stale

    > **stale**: `SecretsManifestEntry`\[]

    Defined in: packages/core/src/secrets/types.ts:48
  </Accordion>

  <Accordion title="Core exports: type-aliases/SecretsManifestEntry">
    @fentaris/core / SecretsManifestEntry

    > **SecretsManifestEntry** = `object`

    Defined in: packages/core/src/secrets/types.ts:36

    Single manifest entry with string scope encoding.

    ## Properties

    ### ref

    > **ref**: `string`

    Defined in: packages/core/src/secrets/types.ts:37

    ### scope

    > **scope**: `string`

    Defined in: packages/core/src/secrets/types.ts:38
  </Accordion>

  <Accordion title="Core exports: type-aliases/SecretsProvider">
    @fentaris/core / SecretsProvider

    > **SecretsProvider** = `"local"` | `"fentaris"` | `"hybrid"`

    Defined in: packages/core/src/secrets/types.ts:55

    Secrets storage backend — local now, cloud in Phase 2.
  </Accordion>

  <Accordion title="Core exports: type-aliases/SerializableEdgeControlPlaneConfig">
    @fentaris/core / SerializableEdgeControlPlaneConfig

    > **SerializableEdgeControlPlaneConfig** = `object`

    Defined in: packages/core/src/edge/integratedConfig.ts:59

    Serializable Edge control-plane fields that may appear in `fentaris.json`.
    Adapter implementations and approval callbacks remain TypeScript-only.

    ## Properties

    ### accessTokenTtlSeconds?

    > `readonly` `optional` **accessTokenTtlSeconds?**: `number`

    Defined in: packages/core/src/edge/integratedConfig.ts:66

    ### authorizationCodeTtlSeconds?

    > `readonly` `optional` **authorizationCodeTtlSeconds?**: `number`

    Defined in: packages/core/src/edge/integratedConfig.ts:68

    ### basePath?

    > `readonly` `optional` **basePath?**: `string`

    Defined in: packages/core/src/edge/integratedConfig.ts:62

    ### enabled?

    > `readonly` `optional` **enabled?**: `boolean`

    Defined in: packages/core/src/edge/integratedConfig.ts:60

    ### maxMetadataBytes?

    > `readonly` `optional` **maxMetadataBytes?**: `number`

    Defined in: packages/core/src/edge/integratedConfig.ts:72

    ### maxPollAttempts?

    > `readonly` `optional` **maxPollAttempts?**: `number`

    Defined in: packages/core/src/edge/integratedConfig.ts:70

    ### maxRequestBytes?

    > `readonly` `optional` **maxRequestBytes?**: `number`

    Defined in: packages/core/src/edge/integratedConfig.ts:71

    ### mode?

    > `readonly` `optional` **mode?**: `EdgeControlPlaneMode`

    Defined in: packages/core/src/edge/integratedConfig.ts:61

    ### pollIntervalSeconds?

    > `readonly` `optional` **pollIntervalSeconds?**: `number`

    Defined in: packages/core/src/edge/integratedConfig.ts:69

    ### publicOrigin?

    > `readonly` `optional` **publicOrigin?**: `string`

    Defined in: packages/core/src/edge/integratedConfig.ts:63

    ### rateLimitPerMinute?

    > `readonly` `optional` **rateLimitPerMinute?**: `number`

    Defined in: packages/core/src/edge/integratedConfig.ts:73

    ### refreshTokenTtlSeconds?

    > `readonly` `optional` **refreshTokenTtlSeconds?**: `number`

    Defined in: packages/core/src/edge/integratedConfig.ts:67

    ### stateDir?

    > `readonly` `optional` **stateDir?**: `string`

    Defined in: packages/core/src/edge/integratedConfig.ts:65

    Directory under the project auth boundary for local durable state.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ServerCredentialBinding">
    @fentaris/core / ServerCredentialBinding

    > **ServerCredentialBinding** = \{ `credential`: `CredentialReference`; `type`: `"bearer"`; } | \{ `credential`: `CredentialReference`; `header`: `string`; `type`: `"header"`; } | \{ `credential`: `CredentialReference`; `env`: `string`; `type`: `"env"`; }

    Defined in: packages/core/src/server/McpServer.ts:55

    MCP server option types.
  </Accordion>

  <Accordion title="Core exports: type-aliases/SessionBindingRemovalReason">
    @fentaris/core / SessionBindingRemovalReason

    > **SessionBindingRemovalReason** = `"session-end"` | `"expiry"` | `"shutdown"` | `"target-removed"` | `"replaced"` | `"takeover-rejected"`

    Defined in: packages/core/src/edge/sessionBinding.ts:60

    Why a session-target binding was removed.
  </Accordion>

  <Accordion title="Core exports: type-aliases/SessionPinResult">
    @fentaris/core / SessionPinResult

    > **SessionPinResult** = \{ `kind`: `"cloud"`; `placement`: `PlacementResolution`; `targetName`: `"cloud"`; } | \{ `binding`: `SessionTargetBinding`; `device`: `DeviceResolution`; `kind`: `"edge"`; `placement`: `PlacementResolution`; `reused`: `boolean`; `targetName`: `string`; }

    Defined in: packages/core/src/edge/sessionPinning.ts:58

    The result of pinning a session target.
  </Accordion>

  <Accordion title="Core exports: type-aliases/SetupField">
    @fentaris/core / SetupField

    > **SetupField** = `FolderSetupField` | `FileSetupField` | `SecretSetupField` | `StringSetupField` | `BooleanSetupField` | `NumberSetupField` | `SelectSetupField`

    Defined in: packages/core/src/edge/setup.ts:100

    A typed setup field.
  </Accordion>

  <Accordion title="Core exports: type-aliases/SetupFieldAccess">
    @fentaris/core / SetupFieldAccess

    > **SetupFieldAccess** = `"read"` | `"read-write"`

    Defined in: packages/core/src/edge/setup.ts:15

    Filesystem access level for folder/file grants.
  </Accordion>

  <Accordion title="Core exports: type-aliases/SetupFieldDescriptor">
    @fentaris/core / SetupFieldDescriptor

    > **SetupFieldDescriptor** = `Omit`\<`FolderSetupField`, `"name"`> | `Omit`\<`FileSetupField`, `"name"`> | `Omit`\<`SecretSetupField`, `"name"`> | `Omit`\<`StringSetupField`, `"name"`> | `Omit`\<`BooleanSetupField`, `"name"`> | `Omit`\<`NumberSetupField`, `"name"`> | `Omit`\<`SelectSetupField`, `"name"`>

    Defined in: packages/core/src/edge/setup.ts:110

    A setup field descriptor before it is keyed into a schema.
  </Accordion>

  <Accordion title="Core exports: type-aliases/SetupFieldKind">
    @fentaris/core / SetupFieldKind

    > **SetupFieldKind** = `"folder"` | `"file"` | `"secret"` | `"string"` | `"boolean"` | `"number"` | `"select"`

    Defined in: packages/core/src/edge/setup.ts:18

    Setup field kind.
  </Accordion>

  <Accordion title="Core exports: type-aliases/SseMcpTransportOptions">
    @fentaris/core / SseMcpTransportOptions

    > **SseMcpTransportOptions** = `object`

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:31

    Options for native MCP SSE upstream transport.

    ## Properties

    ### auth?

    > `optional` **auth?**: `HttpTransportAuthOptions`

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:33

    ### clientName?

    > `optional` **clientName?**: `string`

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:38

    ### clientVersion?

    > `optional` **clientVersion?**: `string`

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:39

    ### eventSourceInit?

    > `optional` **eventSourceInit?**: `SSEClientTransportOptions`\[`"eventSourceInit"`]

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:34

    ### fetch?

    > `optional` **fetch?**: `SSEClientTransportOptions`\[`"fetch"`]

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:36

    ### network?

    > `optional` **network?**: `UpstreamHttpNetworkOptions`

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:37

    ### requestInit?

    > `optional` **requestInit?**: `RequestInit`

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:35

    ### url

    > **url**: `string` | `URL`

    Defined in: packages/core/src/transports/client/SseMcpTransport.ts:32
  </Accordion>

  <Accordion title="Core exports: type-aliases/SseProxyExposureHandle">
    @fentaris/core / SseProxyExposureHandle

    > **SseProxyExposureHandle** = `ProxyExposureHandle` & `object`

    Defined in: packages/core/src/transports/exposure/SseProxyExposureTransport.ts:30

    Active SSE proxy exposure handle.

    ## Type Declaration

    ### server

    > **server**: `HttpServer`
  </Accordion>

  <Accordion title="Core exports: type-aliases/SseProxyExposureTransportOptions">
    @fentaris/core / SseProxyExposureTransportOptions

    > **SseProxyExposureTransportOptions** = `object`

    Defined in: packages/core/src/transports/exposure/SseProxyExposureTransport.ts:18

    Options for SSE downstream proxy exposure.

    ## Properties

    ### host?

    > `optional` **host?**: `string`

    Defined in: packages/core/src/transports/exposure/SseProxyExposureTransport.ts:20

    ### messagePath?

    > `optional` **messagePath?**: `string`

    Defined in: packages/core/src/transports/exposure/SseProxyExposureTransport.ts:22

    ### onStarted?

    > `optional` **onStarted?**: () => `void`

    Defined in: packages/core/src/transports/exposure/SseProxyExposureTransport.ts:23

    #### Returns

    `void`

    ### port?

    > `optional` **port?**: `number`

    Defined in: packages/core/src/transports/exposure/SseProxyExposureTransport.ts:19

    ### ssePath?

    > `optional` **ssePath?**: `string`

    Defined in: packages/core/src/transports/exposure/SseProxyExposureTransport.ts:21
  </Accordion>

  <Accordion title="Core exports: type-aliases/StdioProxyExposureTransportOptions">
    @fentaris/core / StdioProxyExposureTransportOptions

    > **StdioProxyExposureTransportOptions** = `object`

    Defined in: packages/core/src/transports/exposure/StdioProxyExposureTransport.ts:17

    Options for stdio downstream proxy exposure.

    ## Properties

    ### user?

    > `optional` **user?**: `UserContext` | (() => `UserContext` | `Promise`\<`UserContext`>)

    Defined in: packages/core/src/transports/exposure/StdioProxyExposureTransport.ts:18
  </Accordion>

  <Accordion title="Core exports: type-aliases/StdioTransportOptions">
    @fentaris/core / StdioTransportOptions

    > **StdioTransportOptions** = `object`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:37

    Options for the stdio transport.

    Argument and environment entries may be plain strings (existing behavior) or
    runtime-value tokens (`runtime.input(...)` / `runtime.secret(...)`) that are
    resolved before process launch on a cloud target, or serialized into a
    recipe for edge launch. A plain-string configuration remains unchanged.

    ## Properties

    ### args?

    > `optional` **args?**: (`string` | `RuntimeValueToken`)\[]

    Defined in: packages/core/src/transports/client/StdioTransport.ts:39

    ### clientName?

    > `optional` **clientName?**: `string`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:49

    ### clientVersion?

    > `optional` **clientVersion?**: `string`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:50

    ### command

    > **command**: `string`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:38

    ### env?

    > `optional` **env?**: `Record`\<`string`, `string` | `RuntimeValueToken`>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:40

    ### runtimeValues?

    > `optional` **runtimeValues?**: `Record`\<`string`, `string`>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:47

    Explicit cloud-side resolutions for runtime references. These values are
    used only for local cloud process launch and are never serialized into an
    edge launch recipe.

    ### stderr?

    > `optional` **stderr?**: `"inherit"` | `"pipe"` | `"overlapped"` | `"ignore"`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:48
  </Accordion>

  <Accordion title="Core exports: type-aliases/StreamableHttpMcpTransportOptions">
    @fentaris/core / StreamableHttpMcpTransportOptions

    > **StreamableHttpMcpTransportOptions** = `object`

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:31

    Options for native MCP Streamable HTTP upstream transport.

    ## Properties

    ### auth?

    > `optional` **auth?**: `HttpTransportAuthOptions`

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:33

    ### clientName?

    > `optional` **clientName?**: `string`

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:38

    ### clientVersion?

    > `optional` **clientVersion?**: `string`

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:39

    ### fetch?

    > `optional` **fetch?**: `StreamableHTTPClientTransportOptions`\[`"fetch"`]

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:35

    ### network?

    > `optional` **network?**: `UpstreamHttpNetworkOptions`

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:37

    ### requestInit?

    > `optional` **requestInit?**: `RequestInit`

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:34

    ### sessionId?

    > `optional` **sessionId?**: `string`

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:36

    ### url

    > **url**: `string` | `URL`

    Defined in: packages/core/src/transports/client/StreamableHttpMcpTransport.ts:32
  </Accordion>

  <Accordion title="Core exports: type-aliases/SubjectIndex">
    @fentaris/core / SubjectIndex

    > **SubjectIndex** = `object`

    Defined in: packages/core/src/governance/governance.ts:468

    ## Methods

    ### groupsFor()

    > **groupsFor**(`userId`): `Group`\[]

    Defined in: packages/core/src/governance/governance.ts:470

    #### Parameters

    ##### userId

    `string`

    #### Returns

    `Group`\[]

    ### resolve()

    > **resolve**(`userId`): `ResolvedSubject` | `null`

    Defined in: packages/core/src/governance/governance.ts:469

    #### Parameters

    ##### userId

    `string`

    #### Returns

    `ResolvedSubject` | `null`
  </Accordion>

  <Accordion title="Core exports: type-aliases/SubjectMetadata">
    @fentaris/core / SubjectMetadata

    > **SubjectMetadata** = `object`

    Defined in: packages/core/src/types/shared.ts:25

    Non-sensitive subject metadata declared in application code.

    ## Properties

    ### displayName?

    > `optional` **displayName?**: `string`

    Defined in: packages/core/src/types/shared.ts:26

    ### email?

    > `optional` **email?**: `string`

    Defined in: packages/core/src/types/shared.ts:27

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/shared.ts:30

    ### tenant?

    > `optional` **tenant?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/shared.ts:29

    ### tenantId?

    > `optional` **tenantId?**: `string`

    Defined in: packages/core/src/types/shared.ts:28
  </Accordion>

  <Accordion title="Core exports: type-aliases/TargetKind">
    @fentaris/core / TargetKind

    > **TargetKind** = `"cloud"` | `"edge"`

    Defined in: packages/core/src/edge/target.ts:24

    Execution target kind.
  </Accordion>

  <Accordion title="Core exports: type-aliases/TargetSelectionStrategy">
    @fentaris/core / TargetSelectionStrategy

    > **TargetSelectionStrategy** = `"least-loaded"` | `"random"` | `"round-robin"` | `"sticky"`

    Defined in: packages/core/src/edge/target.ts:27

    Strategy for selecting one device from a shared pool.
  </Accordion>

  <Accordion title="Core exports: type-aliases/ToolApprovalRequest">
    @fentaris/core / ToolApprovalRequest

    > **ToolApprovalRequest** = `ToolCallRequest` & `object`

    Defined in: packages/core/src/types/mcp-operation.ts:64

    Normalized tool-call request passed to approval callbacks.

    ## Type Declaration

    ### operation

    > **operation**: `"tool:call"`

    ### target

    > **target**: `string`

    ### targetKind

    > **targetKind**: `"tool"`
  </Accordion>

  <Accordion title="Core exports: type-aliases/ToolCallHook">
    @fentaris/core / ToolCallHook

    > **ToolCallHook** = (`request`, `context`) => `MaybePromise`\<`void` | `CallToolResult`>

    Defined in: packages/core/src/types/middleware.ts:61

    Hook invoked for matched tool calls.

    ## Parameters

    ### request

    `ToolCallRequest`

    ### context

    `MiddlewareContext`

    ## Returns

    `MaybePromise`\<`void` | `CallToolResult`>
  </Accordion>

  <Accordion title="Core exports: type-aliases/ToolCallHookFilter">
    @fentaris/core / ToolCallHookFilter

    > **ToolCallHookFilter** = `object`

    Defined in: packages/core/src/types/middleware.ts:19

    Filter for proxy call hooks.

    ## Properties

    ### proxyTool?

    > `optional` **proxyTool?**: `string`

    Defined in: packages/core/src/types/middleware.ts:22

    ### server?

    > `optional` **server?**: `string`

    Defined in: packages/core/src/types/middleware.ts:20

    ### tool?

    > `optional` **tool?**: `string`

    Defined in: packages/core/src/types/middleware.ts:21
  </Accordion>

  <Accordion title="Core exports: type-aliases/ToolCallRequest">
    @fentaris/core / ToolCallRequest

    > **ToolCallRequest** = `object`

    Defined in: packages/core/src/types/mcp-operation.ts:52

    Normalized tool call details for middleware.

    ## Properties

    ### arguments

    > **arguments**: `CallToolRequest`\[`"params"`]\[`"arguments"`]

    Defined in: packages/core/src/types/mcp-operation.ts:56

    ### proxyToolName

    > **proxyToolName**: `string`

    Defined in: packages/core/src/types/mcp-operation.ts:55

    ### raw

    > **raw**: `CallToolRequest`\[`"params"`]

    Defined in: packages/core/src/types/mcp-operation.ts:57

    ### serverName

    > **serverName**: `string`

    Defined in: packages/core/src/types/mcp-operation.ts:53

    ### toolName

    > **toolName**: `string`

    Defined in: packages/core/src/types/mcp-operation.ts:54
  </Accordion>

  <Accordion title="Core exports: type-aliases/ToolDiscoveryOptions">
    @fentaris/core / ToolDiscoveryOptions

    > **ToolDiscoveryOptions** = `object`

    Defined in: packages/core/src/tools/index.ts:53

    ## Properties

    ### compact?

    > `optional` **compact?**: `boolean`

    Defined in: packages/core/src/tools/index.ts:56

    ### cursor?

    > `optional` **cursor?**: `string`

    Defined in: packages/core/src/tools/index.ts:58

    ### exclude?

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

    Defined in: packages/core/src/tools/index.ts:61

    ### include?

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

    Defined in: packages/core/src/tools/index.ts:60

    ### limit?

    > `optional` **limit?**: `number`

    Defined in: packages/core/src/tools/index.ts:57

    ### maxTokens?

    > `optional` **maxTokens?**: `number`

    Defined in: packages/core/src/tools/index.ts:59

    ### mcp?

    > `optional` **mcp?**: `string`

    Defined in: packages/core/src/tools/index.ts:54

    ### noStart?

    > `optional` **noStart?**: `boolean`

    Defined in: packages/core/src/tools/index.ts:63

    ### refresh?

    > `optional` **refresh?**: `boolean`

    Defined in: packages/core/src/tools/index.ts:62

    ### selector?

    > `optional` **selector?**: `string`

    Defined in: packages/core/src/tools/index.ts:55
  </Accordion>

  <Accordion title="Core exports: type-aliases/ToolPermission">
    @fentaris/core / ToolPermission

    > **ToolPermission** = `object`

    Defined in: packages/core/src/types/policy.ts:22

    Tool permission model for policy enforcement.

    ## Properties

    ### approval?

    > `optional` **approval?**: `ApprovalHandler`\<`ToolApprovalRequest`>

    Defined in: packages/core/src/types/policy.ts:26

    ### effect?

    > `optional` **effect?**: `"allow"` | `"deny"`

    Defined in: packages/core/src/types/policy.ts:24

    ### limiter?

    > `optional` **limiter?**: `RateLimiter`

    Defined in: packages/core/src/types/policy.ts:25

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/policy.ts:27

    ### tool

    > **tool**: `string`

    Defined in: packages/core/src/types/policy.ts:23
  </Accordion>

  <Accordion title="Core exports: type-aliases/ToolPermissionOptions">
    @fentaris/core / ToolPermissionOptions

    > **ToolPermissionOptions** = `object`

    Defined in: packages/core/src/governance/governance.ts:319

    Permission helper options.

    ## Properties

    ### approval?

    > `optional` **approval?**: `ToolPermission`\[`"approval"`]

    Defined in: packages/core/src/governance/governance.ts:321

    ### limiter?

    > `optional` **limiter?**: `ToolPermission`\[`"limiter"`]

    Defined in: packages/core/src/governance/governance.ts:320

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/governance/governance.ts:322

    ### sensitive?

    > `optional` **sensitive?**: `boolean` | `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/governance/governance.ts:323
  </Accordion>

  <Accordion title="Core exports: type-aliases/UpstreamAuthBinding">
    @fentaris/core / UpstreamAuthBinding

    > **UpstreamAuthBinding** = `z.infer`\<*typeof* `upstreamAuthBindingSchema`>

    Defined in: packages/core/src/auth/auth.ts:73
  </Accordion>

  <Accordion title="Core exports: type-aliases/UpstreamAuthBindings">
    @fentaris/core / UpstreamAuthBindings

    > **UpstreamAuthBindings** = `z.infer`\<*typeof* `upstreamAuthBindingsSchema`>

    Defined in: packages/core/src/auth/auth.ts:74
  </Accordion>

  <Accordion title="Core exports: type-aliases/UpstreamHttpNetworkOptions">
    @fentaris/core / UpstreamHttpNetworkOptions

    > **UpstreamHttpNetworkOptions** = `object`

    Defined in: packages/core/src/transports/client/upstreamUrlGuardrails.ts:9

    Private-network guardrails for upstream HTTP-family transports.

    ## Properties

    ### allowedPrivateHosts?

    > `optional` **allowedPrivateHosts?**: `string`\[]

    Defined in: packages/core/src/transports/client/upstreamUrlGuardrails.ts:11

    ### allowPrivateNetworkUrls?

    > `optional` **allowPrivateNetworkUrls?**: `boolean`

    Defined in: packages/core/src/transports/client/upstreamUrlGuardrails.ts:10

    ### lookup?

    > `optional` **lookup?**: (`hostname`) => `MaybePromise`\<`object`\[] | \{ `address`: `string`; }>

    Defined in: packages/core/src/transports/client/upstreamUrlGuardrails.ts:13

    #### Parameters

    ##### hostname

    `string`

    #### Returns

    `MaybePromise`\<`object`\[] | \{ `address`: `string`; }>

    ### resolveDns?

    > `optional` **resolveDns?**: `boolean`

    Defined in: packages/core/src/transports/client/upstreamUrlGuardrails.ts:12
  </Accordion>

  <Accordion title="Core exports: type-aliases/UserContext">
    @fentaris/core / UserContext

    > **UserContext** = `object`

    Defined in: packages/core/src/types/shared.ts:14

    User context passed through requests.

    ## Indexable

    > \[`key`: `string`]: `unknown`

    ## Properties

    ### id?

    > `optional` **id?**: `string`

    Defined in: packages/core/src/types/shared.ts:15

    ### secrets?

    > `optional` **secrets?**: `Record`\<`string`, `string`>

    Defined in: packages/core/src/types/shared.ts:16

    ### tokens?

    > `optional` **tokens?**: `Record`\<`string`, `string`>

    Defined in: packages/core/src/types/shared.ts:17
  </Accordion>

  <Accordion title="Core exports: type-aliases/UserOptions">
    @fentaris/core / UserOptions

    > **UserOptions** = `SubjectMetadata` & `object`

    Defined in: packages/core/src/governance/governance.ts:88

    User declaration options.

    ## Type Declaration

    ### apiKeys?

    > `optional` **apiKeys?**: `CredentialSource`\[]

    ### credentials?

    > `optional` **credentials?**: `CredentialSourceMap`
  </Accordion>

  <Accordion title="Core exports: variables/approval">
    @fentaris/core / approval

    > `const` **approval**: `ApprovalHelper`

    Defined in: packages/core/src/governance/governance.ts:430

    Permission helper for approval callbacks.
  </Accordion>

  <Accordion title="Core exports: variables/cloud">
    @fentaris/core / cloud

    > `const` **cloud**: `CloudExecutionTarget`

    Defined in: packages/core/src/edge/target.ts:155

    The implicit built-in cloud target.
  </Accordion>

  <Accordion title="Core exports: variables/DEFAULT_EDGE_ORCHESTRATION_LIMITS">
    @fentaris/core / DEFAULT\_EDGE\_ORCHESTRATION\_LIMITS

    > `const` **DEFAULT\_EDGE\_ORCHESTRATION\_LIMITS**: `EdgeOrchestrationLimits`

    Defined in: packages/core/src/edge/fanout.ts:20

    Edge execution targets, runtime inputs, setup fields, launch recipes, and errors.
  </Accordion>

  <Accordion title="Core exports: variables/edge">
    @fentaris/core / edge

    > `const` **edge**: (`options`) => `EdgeExecutionTarget` & `object`

    Defined in: packages/core/src/edge/target.ts:163

    Build an edge execution target. Also serves as the namespace for device
    selector builders (edge.sessionDevice, edge.userDefaultDevice,
    edge.namedDevice, edge.pool) and setup field builders.

    ## Type Declaration

    ### boolean

    > **boolean**: (`options?`) => `Omit`\<`BooleanSetupField`, `"name"`> = `setupBoolean`

    Build a boolean field.

    #### Parameters

    ##### options?

    `ScalarFieldOptions` & `object`

    #### Returns

    `Omit`\<`BooleanSetupField`, `"name"`>

    ### file

    > **file**: (`options?`) => `Omit`\<`FileSetupField`, `"name"`> = `setupFile`

    Build a file grant field.

    #### Parameters

    ##### options?

    `FileSystemFieldOptions`

    #### Returns

    `Omit`\<`FileSetupField`, `"name"`>

    ### folder

    > **folder**: (`options?`) => `Omit`\<`FolderSetupField`, `"name"`> = `setupFolder`

    Build a folder grant field.

    #### Parameters

    ##### options?

    `FileSystemFieldOptions`

    #### Returns

    `Omit`\<`FolderSetupField`, `"name"`>

    ### install

    > **install**: `Readonly`\<\{ `binary`: (`provider`, `options`) => `InstallationRecipe`; `container`: (`provider`, `options`) => `InstallationRecipe`; `custom`: (`provider`, `options`) => `InstallationRecipe`; `manual`: (`provider`, `options`) => `InstallationRecipe`; `nodePackage`: (`provider`, `options`) => `InstallationRecipe`; `python`: (`provider`, `options`) => `InstallationRecipe`; }> = `edgeInstall`

    ### namedDevice

    > **namedDevice**: (`alias`) => `DeviceSelectorBuilder`

    #### Parameters

    ##### alias

    `string`

    #### Returns

    `DeviceSelectorBuilder`

    ### number

    > **number**: (`options?`) => `Omit`\<`NumberSetupField`, `"name"`> = `setupNumber`

    Build a number field.

    #### Parameters

    ##### options?

    `NumberFieldOptions`

    #### Returns

    `Omit`\<`NumberSetupField`, `"name"`>

    ### pool

    > **pool**: (`name`, `strategy?`) => `DeviceSelectorBuilder`

    #### Parameters

    ##### name

    `string`

    ##### strategy?

    `TargetSelectionStrategy`

    #### Returns

    `DeviceSelectorBuilder`

    ### secret

    > **secret**: (`options?`) => `Omit`\<`SecretSetupField`, `"name"`> = `setupSecret`

    Build a secret field. Secrets are always required and never cloud-visible.

    #### Parameters

    ##### options?

    `Omit`\<`ScalarFieldOptions`, `"cloudVisible"`>

    #### Returns

    `Omit`\<`SecretSetupField`, `"name"`>

    ### select

    > **select**: (`options`) => `Omit`\<`SelectSetupField`, `"name"`> = `setupSelect`

    Build a select field with a closed value set.

    #### Parameters

    ##### options

    `SelectFieldOptions`

    #### Returns

    `Omit`\<`SelectSetupField`, `"name"`>

    ### sessionDevice

    > **sessionDevice**: () => `DeviceSelectorBuilder`

    #### Returns

    `DeviceSelectorBuilder`

    ### string

    > **string**: (`options?`) => `Omit`\<`StringSetupField`, `"name"`> = `setupString`

    Build a free-form string field.

    #### Parameters

    ##### options?

    `ScalarFieldOptions` & `object`

    #### Returns

    `Omit`\<`StringSetupField`, `"name"`>

    ### userDefaultDevice

    > **userDefaultDevice**: () => `DeviceSelectorBuilder`

    #### Returns

    `DeviceSelectorBuilder`
  </Accordion>

  <Accordion title="Core exports: variables/EDGE_CONTROL_NAMESPACE">
    @fentaris/core / EDGE\_CONTROL\_NAMESPACE

    > `const` **EDGE\_CONTROL\_NAMESPACE**: `"edge"`

    Defined in: packages/core/src/edge/controlProvider.ts:18

    Edge execution targets, runtime inputs, setup fields, launch recipes, and errors.
  </Accordion>

  <Accordion title="Core exports: variables/EDGE_CONTROL_PLANE_DEFAULT_BASE_PATH">
    @fentaris/core / EDGE\_CONTROL\_PLANE\_DEFAULT\_BASE\_PATH

    > `const` **EDGE\_CONTROL\_PLANE\_DEFAULT\_BASE\_PATH**: `"/_fentaris/edge"`

    Defined in: packages/core/src/edge/integratedConfig.ts:35

    Default reserved HTTP base path for integrated Edge routes.
  </Accordion>

  <Accordion title="Core exports: variables/EDGE_CONTROL_PLANE_DEFAULT_STATE_DIR">
    @fentaris/core / EDGE\_CONTROL\_PLANE\_DEFAULT\_STATE\_DIR

    > `const` **EDGE\_CONTROL\_PLANE\_DEFAULT\_STATE\_DIR**: `"edge-control-plane"`

    Defined in: packages/core/src/edge/integratedConfig.ts:38

    Default local state directory relative to the project auth directory.
  </Accordion>

  <Accordion title="Core exports: variables/EDGE_CONTROL_PLANE_DEFAULTS">
    @fentaris/core / EDGE\_CONTROL\_PLANE\_DEFAULTS

    > `const` **EDGE\_CONTROL\_PLANE\_DEFAULTS**: `Readonly`\<\{ `accessTokenTtlSeconds`: `number`; `authorizationCodeTtlSeconds`: `number`; `basePath`: `"/_fentaris/edge"`; `maxMetadataBytes`: `4096`; `maxPollAttempts`: `120`; `maxRequestBytes`: `16384`; `pollIntervalSeconds`: `5`; `rateLimitPerMinute`: `60`; `refreshTokenTtlSeconds`: `number`; `stateDir`: `"edge-control-plane"`; }>

    Defined in: packages/core/src/edge/integratedConfig.ts:41

    Documented secure defaults applied when local mode omits optional limits.
  </Accordion>

  <Accordion title="Core exports: variables/EDGE_CONTROL_PLANE_ERROR_CODES">
    @fentaris/core / EDGE\_CONTROL\_PLANE\_ERROR\_CODES

    > `const` **EDGE\_CONTROL\_PLANE\_ERROR\_CODES**: `Readonly`\<\{ `access_denied`: `"access_denied"`; `authorization_pending`: `"authorization_pending"`; `expired_token`: `"expired_token"`; `invalid_grant`: `"invalid_grant"`; `invalid_request`: `"invalid_request"`; `payload_too_large`: `"payload_too_large"`; `rate_limited`: `"rate_limited"`; `revoked`: `"revoked"`; `server_error`: `"server_error"`; `slow_down`: `"slow_down"`; `unauthorized`: `"unauthorized"`; }>

    Defined in: packages/core/src/edge/integratedProtocol.ts:9

    Stable control-plane error codes returned to Edge clients.
  </Accordion>

  <Accordion title="Core exports: variables/EDGE_CONTROL_TOOL_NAMES">
    @fentaris/core / EDGE\_CONTROL\_TOOL\_NAMES

    > `const` **EDGE\_CONTROL\_TOOL\_NAMES**: readonly \[`"list"`, `"get"`, `"select"`, `"call"`, `"call_many"`]

    Defined in: packages/core/src/edge/controlProvider.ts:19

    Edge execution targets, runtime inputs, setup fields, launch recipes, and errors.
  </Accordion>

  <Accordion title="Core exports: variables/EDGE_CONTROL_TOOL_SCHEMAS">
    @fentaris/core / EDGE\_CONTROL\_TOOL\_SCHEMAS

    > `const` **EDGE\_CONTROL\_TOOL\_SCHEMAS**: `Readonly`\<\{ `call`: \{ `additionalProperties`: `boolean`; `properties`: \{ `arguments`: \{ `type`: `string`; }; `deadlineMs`: \{ `maximum`: `number`; `minimum`: `number`; `type`: `string`; }; `device`: \{\[`key`: `string`]: `unknown`; `properties?`: \{\[`key`: `string`]: `object`; }; `required?`: `string`\[]; `type`: `"object"`; }; `tool`: \{ `maxLength`: `number`; `minLength`: `number`; `type`: `string`; }; }; `required`: `string`\[]; `type`: `"object"`; }; `call_many`: \{ `additionalProperties`: `boolean`; `oneOf`: `object`\[]; `properties`: \{ `arguments`: \{ `type`: `string`; }; `concurrency`: \{ `maximum`: `number`; `minimum`: `number`; `type`: `string`; }; `deadlineMs`: \{ `maximum`: `number`; `minimum`: `number`; `type`: `string`; }; `devices`: \{ `items`: \{\[`key`: `string`]: `unknown`; `properties?`: \{\[`key`: `string`]: `object`; }; `required?`: `string`\[]; `type`: `"object"`; }; `maxItems`: `number`; `minItems`: `number`; `type`: `string`; `uniqueItems`: `boolean`; }; `failurePolicy`: \{ `enum`: `string`\[]; `type`: `string`; }; `selector`: \{\[`key`: `string`]: `unknown`; `properties?`: \{\[`key`: `string`]: `object`; }; `required?`: `string`\[]; `type`: `"object"`; }; `tool`: \{ `maxLength`: `number`; `minLength`: `number`; `type`: `string`; }; }; `required`: `string`\[]; `type`: `"object"`; }; `get`: \{ `additionalProperties`: `boolean`; `properties`: \{ `include`: \{ `items`: \{ `enum`: `string`\[]; `type`: `string`; }; `maxItems`: `number`; `type`: `string`; `uniqueItems`: `boolean`; }; `name`: \{ `maxLength`: `number`; `minLength`: `number`; `type`: `string`; }; }; `required`: `string`\[]; `type`: `"object"`; }; `list`: \{ `additionalProperties`: `boolean`; `properties`: \{ `cursor`: \{ `maxLength`: `number`; `type`: `string`; }; `deploymentId`: \{ `maxLength`: `number`; `type`: `string`; }; `features`: \{ `items`: \{ `maxLength`: `80`; `minLength`: `1`; `type`: `"string"`; }; `maxItems`: `32`; `type`: `"array"`; }; `include`: \{ `items`: \{ `enum`: `string`\[]; `type`: `string`; }; `maxItems`: `number`; `type`: `string`; `uniqueItems`: `boolean`; }; `limit`: \{ `maximum`: `number`; `minimum`: `number`; `type`: `string`; }; `name`: \{ `maxLength`: `number`; `type`: `string`; }; `platforms`: \{ `items`: \{ `maxLength`: `80`; `minLength`: `1`; `type`: `"string"`; }; `maxItems`: `32`; `type`: `"array"`; }; `pool`: \{ `maxLength`: `number`; `type`: `string`; }; `readiness`: \{ `items`: \{ `enum`: `string`\[]; `type`: `string`; }; `maxItems`: `number`; `type`: `string`; }; `statuses`: \{ `items`: \{ `enum`: `string`\[]; `type`: `string`; }; `maxItems`: `number`; `type`: `string`; }; `tags`: \{ `items`: \{ `maxLength`: `80`; `minLength`: `1`; `type`: `"string"`; }; `maxItems`: `32`; `type`: `"array"`; }; }; `type`: `"object"`; }; `select`: \{ `additionalProperties`: `boolean`; `oneOf`: `object`\[]; `properties`: \{ `deploymentId`: \{ `maxLength`: `number`; `type`: `string`; }; `device`: \{\[`key`: `string`]: `unknown`; `properties?`: \{\[`key`: `string`]: `object`; }; `required?`: `string`\[]; `type`: `"object"`; }; `selector`: \{\[`key`: `string`]: `unknown`; `properties?`: \{\[`key`: `string`]: `object`; }; `required?`: `string`\[]; `type`: `"object"`; }; `target`: \{ `maxLength`: `number`; `minLength`: `number`; `type`: `string`; }; `ttlMs`: \{ `maximum`: `number`; `minimum`: `number`; `type`: `string`; }; }; `type`: `"object"`; }; }>

    Defined in: packages/core/src/edge/controlProvider.ts:113

    Edge execution targets, runtime inputs, setup fields, launch recipes, and errors.
  </Accordion>

  <Accordion title="Core exports: variables/EDGE_DISTRIBUTED_CONSISTENCY_REQUIREMENTS">
    @fentaris/core / EDGE\_DISTRIBUTED\_CONSISTENCY\_REQUIREMENTS

    > `const` **EDGE\_DISTRIBUTED\_CONSISTENCY\_REQUIREMENTS**: `Readonly`\<\{ `channel`: `"Channel delivery may be at-least-once; envelopes require request correlation and idempotent terminal consumption."`; `correlation`: `"In-flight results require atomic take semantics so exactly one proxy instance consumes a terminal result."`; `inventory`: `"Tenant-scoped names and optimistic inventory versions require linearizable compare-and-set writes."`; `pool`: `"Round-robin cursor updates and sticky assignments require atomic selection among the supplied eligible snapshot."`; `presence`: `"Connection generations require monotonic conditional writes and bounded-expiry reads."`; `selection`: `"Session selections and child bindings require read-after-write consistency through their expiry window."`; }>

    Defined in: packages/core/src/edge/distributed.ts:44

    Edge execution targets, runtime inputs, setup fields, launch recipes, and errors.
  </Accordion>

  <Accordion title="Core exports: variables/EDGE_ERROR_CODES">
    @fentaris/core / EDGE\_ERROR\_CODES

    > `const` **EDGE\_ERROR\_CODES**: readonly `EdgeErrorCode`\[]

    Defined in: packages/core/src/edge/errors.ts:28

    All normalized edge error codes, in stable order.
  </Accordion>

  <Accordion title="Core exports: variables/EDGE_INVENTORY_SCHEMA_VERSION">
    @fentaris/core / EDGE\_INVENTORY\_SCHEMA\_VERSION

    > `const` **EDGE\_INVENTORY\_SCHEMA\_VERSION**: `1`

    Defined in: packages/core/src/edge/inventory.ts:12

    Current public inventory schema version.
  </Accordion>

  <Accordion title="Core exports: variables/EDGE_LOCAL_AUTHORITY_SCHEMA_VERSION">
    @fentaris/core / EDGE\_LOCAL\_AUTHORITY\_SCHEMA\_VERSION

    > `const` **EDGE\_LOCAL\_AUTHORITY\_SCHEMA\_VERSION**: `1`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:32

    Current local authority schema version.
  </Accordion>

  <Accordion title="Core exports: variables/EDGE_MCP_ENVELOPE_VERSION">
    @fentaris/core / EDGE\_MCP\_ENVELOPE\_VERSION

    > `const` **EDGE\_MCP\_ENVELOPE\_VERSION**: `1` = `1`

    Defined in: packages/core/src/edge/protocol.ts:4

    Current normalized edge MCP envelope version.
  </Accordion>

  <Accordion title="Core exports: variables/EDGE_PROTOCOL_MIN_VERSION">
    @fentaris/core / EDGE\_PROTOCOL\_MIN\_VERSION

    > `const` **EDGE\_PROTOCOL\_MIN\_VERSION**: `1`

    Defined in: packages/core/src/edge/controlProtocol.ts:26

    Oldest protocol retained for transparent Edge compatibility.
  </Accordion>

  <Accordion title="Core exports: variables/EDGE_PROTOCOL_VERSION">
    @fentaris/core / EDGE\_PROTOCOL\_VERSION

    > `const` **EDGE\_PROTOCOL\_VERSION**: `3`

    Defined in: packages/core/src/edge/controlProtocol.ts:24

    Current edge control-plane protocol version.
  </Accordion>

  <Accordion title="Core exports: variables/EDGE_SUPPORTED_PROTOCOL_VERSIONS">
    @fentaris/core / EDGE\_SUPPORTED\_PROTOCOL\_VERSIONS

    > `const` **EDGE\_SUPPORTED\_PROTOCOL\_VERSIONS**: readonly \[`3`, `2`, `1`]

    Defined in: packages/core/src/edge/controlProtocol.ts:28

    Protocols implemented by this release, newest first.
  </Accordion>

  <Accordion title="Core exports: variables/fentaris">
    @fentaris/core / fentaris

    > `const` **fentaris**: (`options`) => `McpProxy` = `createProxy`

    Defined in: packages/core/src/proxy/McpProxy.ts:3718

    Create a Fentaris proxy with the express-like routing API.

    Create a Fentaris proxy with the express-like routing API.

    ## Parameters

    ### options?

    `McpProxyOptions` = `{}`

    ## Returns

    `McpProxy`
  </Accordion>

  <Accordion title="Core exports: variables/FentarisErrorCode">
    @fentaris/core / FentarisErrorCode

    > `const` **FentarisErrorCode**: `object`

    Defined in: packages/core/src/errors/errors.ts:7

    Standard Fentaris MCP-style error codes.

    ## Type Declaration

    ### InternalError

    > `readonly` **InternalError**: `-32603` = `-32603`

    ### PolicyDenied

    > `readonly` **PolicyDenied**: `-32030` = `-32030`

    ### Unauthorized

    > `readonly` **Unauthorized**: `-32040` = `-32040`

    ### UpstreamError

    > `readonly` **UpstreamError**: `-32050` = `-32050`
  </Accordion>

  <Accordion title="Core exports: variables/IN_MEMORY_EDGE_ADAPTER_DIAGNOSTICS">
    @fentaris/core / IN\_MEMORY\_EDGE\_ADAPTER\_DIAGNOSTICS

    > `const` **IN\_MEMORY\_EDGE\_ADAPTER\_DIAGNOSTICS**: `EdgeAdapterDiagnostics`

    Defined in: packages/core/src/edge/inventory.ts:170

    Common diagnostics for deterministic single-process reference adapters.
  </Accordion>

  <Accordion title="Core exports: variables/IN_MEMORY_INSTALLATION_ADAPTER_WARNING">
    @fentaris/core / IN\_MEMORY\_INSTALLATION\_ADAPTER\_WARNING

    > `const` **IN\_MEMORY\_INSTALLATION\_ADAPTER\_WARNING**: `"In-memory installation adapters are single-process only and are not durable or distributed-ready."` = `"In-memory installation adapters are single-process only and are not durable or distributed-ready."`

    Defined in: packages/core/src/edge/installation.ts:456

    Edge execution targets, runtime inputs, setup fields, launch recipes, and errors.
  </Accordion>

  <Accordion title="Core exports: variables/INSTALLATION_RECIPE_VERSION">
    @fentaris/core / INSTALLATION\_RECIPE\_VERSION

    > `const` **INSTALLATION\_RECIPE\_VERSION**: `1`

    Defined in: packages/core/src/edge/installation.ts:13

    Installation recipe serialization format version.
  </Accordion>

  <Accordion title="Core exports: variables/LAUNCH_RECIPE_VERSION">
    @fentaris/core / LAUNCH\_RECIPE\_VERSION

    > `const` **LAUNCH\_RECIPE\_VERSION**: `1` = `1`

    Defined in: packages/core/src/edge/recipe.ts:20

    Launch recipe serialization format version.
  </Accordion>

  <Accordion title="Core exports: variables/LOCAL_EDGE_AUTHORITY_ADAPTER_DIAGNOSTICS">
    @fentaris/core / LOCAL\_EDGE\_AUTHORITY\_ADAPTER\_DIAGNOSTICS

    > `const` **LOCAL\_EDGE\_AUTHORITY\_ADAPTER\_DIAGNOSTICS**: `EdgeAdapterDiagnostics`

    Defined in: packages/core/src/edge/integratedLocalStore.ts:35

    Diagnostics for the single-process local authority store.
  </Accordion>

  <Accordion title="Core exports: variables/runtime">
    @fentaris/core / runtime

    > `const` **runtime**: `object`

    Defined in: packages/core/src/edge/runtimeInput.ts:44

    Runtime-value token builder namespace.

    ## Type Declaration

    ### input()

    > **input**(`ref`): `RuntimeValueToken`

    Create a generic runtime input reference to the setup field `ref`.

    #### Parameters

    ##### ref

    `string`

    #### Returns

    `RuntimeValueToken`

    ### secret()

    > **secret**(`ref`): `RuntimeValueToken`

    Create a runtime secret reference to the setup field `ref`.
    The token never contains the secret value.

    #### Parameters

    ##### ref

    `string`

    #### Returns

    `RuntimeValueToken`
  </Accordion>

  <Accordion title="Core exports: variables/SERIALIZABLE_EDGE_CONTROL_PLANE_KEYS">
    @fentaris/core / SERIALIZABLE\_EDGE\_CONTROL\_PLANE\_KEYS

    > `const` **SERIALIZABLE\_EDGE\_CONTROL\_PLANE\_KEYS**: readonly \[`"enabled"`, `"mode"`, `"basePath"`, `"publicOrigin"`, `"stateDir"`, `"accessTokenTtlSeconds"`, `"refreshTokenTtlSeconds"`, `"authorizationCodeTtlSeconds"`, `"pollIntervalSeconds"`, `"maxPollAttempts"`, `"maxRequestBytes"`, `"maxMetadataBytes"`, `"rateLimitPerMinute"`]

    Defined in: packages/core/src/edge/integratedConfig.ts:181

    Keys that may be supplied through serializable project configuration.
  </Accordion>
</AccordionGroup>

## McpProxy

<AccordionGroup>
  <Accordion title="McpProxy: classes/McpProxy">
    @fentaris/core / McpProxy

    Defined in: packages/core/src/proxy/McpProxy.ts:405

    HTTP proxy for multiple MCP servers.

    ## Constructors

    ### Constructor

    > **new McpProxy**(`options?`): `McpProxy`

    Defined in: packages/core/src/proxy/McpProxy.ts:463

    Create a new MCP proxy instance.

    #### Parameters

    ##### options?

    `McpProxyOptions` = `{}`

    #### Returns

    `McpProxy`

    ## Methods

    ### addGroupUsers()

    > **addGroupUsers**(`groupId`, `users`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2657

    #### Parameters

    ##### groupId

    `string`

    ##### users

    `User`\[]

    #### Returns

    `void`

    ### assertGroupHandleKnown()

    > **assertGroupHandleKnown**(`groupId`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2697

    #### Parameters

    ##### groupId

    `string`

    #### Returns

    `void`

    ### assertServerHandleVisible()

    > **assertServerHandleVisible**(`serverName`, `groupId?`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2669

    #### Parameters

    ##### serverName

    `string`

    ##### groupId?

    `string`

    #### Returns

    `void`

    ### callTool()

    > **callTool**(`params`, `user?`, `identity?`, `subject?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:1877

    Call a proxied tool with middleware dispatch.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `unknown`; }

    ###### name

    `string`

    ###### task?

    \{ `ttl?`: `number`; }

    ###### task.ttl?

    `number`

    ##### user?

    `UserContext` = `{}`

    ##### identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    ### close()

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

    Defined in: packages/core/src/proxy/McpProxy.ts:1639

    Close the HTTP server and all backends.

    #### Returns

    `Promise`\<`void`>

    ### complete()

    > **complete**(`params`, `user?`, `identity?`, `subject?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:2421

    Complete a proxied prompt or resource-template argument.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### argument

    \{ `name`: `string`; `value`: `string`; }

    ###### argument.name

    `string`

    ###### argument.value

    `string`

    ###### context?

    \{ `arguments?`: \{\[`key`: `string`]: `string`; }; }

    ###### context.arguments?

    \{\[`key`: `string`]: `string`; }

    ###### ref

    \{ `name`: `string`; `type`: `"ref/prompt"`; } | \{ `type`: `"ref/resource"`; `uri`: `string`; }

    ##### user?

    `UserContext` = `{}`

    ##### identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    ### edgeSessionPinner()

    > **edgeSessionPinner**(): `EdgeSessionPinner` | `undefined`

    Defined in: packages/core/src/proxy/McpProxy.ts:854

    Lazily build (and cache) the edge session pinner over the registered
    targets, normalized bindings, and configured device resolver. Returns
    `undefined` when no device resolver is configured (cloud-only runtime).

    #### Returns

    `EdgeSessionPinner` | `undefined`

    ### emitSessionEnd()

    > **emitSessionEnd**(`context`): `Promise`\<`void`>

    Defined in: packages/core/src/proxy/McpProxy.ts:2538

    Emit a downstream session end lifecycle event.

    #### Parameters

    ##### context

    `LifecycleHookContext`

    #### Returns

    `Promise`\<`void`>

    ### emitSessionStart()

    > **emitSessionStart**(`context`): `Promise`\<`void`>

    Defined in: packages/core/src/proxy/McpProxy.ts:2500

    Emit a downstream session start lifecycle event.

    #### Parameters

    ##### context

    `LifecycleHookContext`

    #### Returns

    `Promise`\<`void`>

    ### endEdgeSession()

    > **endEdgeSession**(`sessionId`): `Promise`\<`void`>

    Defined in: packages/core/src/proxy/McpProxy.ts:1050

    Remove every session-target binding for a downstream session.

    #### Parameters

    ##### sessionId

    `string`

    #### Returns

    `Promise`\<`void`>

    ### getPrompt()

    > **getPrompt**(`params`, `user?`, `identity?`, `subject?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:2366

    Get a proxied prompt from its owning upstream server.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `string`; }

    ###### name

    `string`

    ##### user?

    `UserContext` = `{}`

    ##### identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    ### group()

    > **group**(`groupId`): `ProxyGroupHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:732

    Register or retrieve a scoped group handle.

    #### Parameters

    ##### groupId

    `string`

    #### Returns

    `ProxyGroupHandle`

    ### health()

    > **health**(): `Promise`\<`HealthReport`>

    Defined in: packages/core/src/proxy/McpProxy.ts:1693

    Run configured runtime health checks.

    #### Returns

    `Promise`\<`HealthReport`>

    ### listen()

    > **listen**\<`THandle`>(`transport`): `Promise`\<`THandle`>

    Defined in: packages/core/src/proxy/McpProxy.ts:1350

    Start the proxy with an explicit downstream exposure transport.

    #### Type Parameters

    ##### THandle

    `THandle` *extends* `ProxyExposureHandle`

    #### Parameters

    ##### transport

    `ProxyExposureTransport`\<`THandle`>

    #### Returns

    `Promise`\<`THandle`>

    ### listPrompts()

    > **listPrompts**(`params?`, `user?`, `_identity?`, `subject?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:2301

    List prompts across all configured servers.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    ##### user?

    `UserContext` = `{}`

    ##### \_identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    ### listResources()

    > **listResources**(`params?`, `user?`, `_identity?`, `subject?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:2096

    List resources across all configured servers.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    ##### user?

    `UserContext` = `{}`

    ##### \_identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    ### listResourceTemplates()

    > **listResourceTemplates**(`params?`, `user?`, `_identity?`, `subject?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:2230

    List resource templates across all configured servers.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    ##### user?

    `UserContext` = `{}`

    ##### \_identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    ### listTools()

    > **listTools**(`params?`, `user?`, `identity?`, `subject?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:1767

    List tools across all configured servers.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    ##### user?

    `UserContext` = `{}`

    ##### identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    ### local()

    > **local**(`name`): `ProxyLocalHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:712

    Register or retrieve a named local MCP capability namespace.

    #### Parameters

    ##### name

    `string`

    #### Returns

    `ProxyLocalHandle`

    ### mcp()

    #### Call Signature

    > **mcp**(`name`): `ProxyMcpHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:641

    Register or retrieve a scoped upstream MCP handle.

    ##### Parameters

    ###### name

    `string`

    ##### Returns

    `ProxyMcpHandle`

    #### Call Signature

    > **mcp**(`name`, `options`): `ProxyMcpHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:642

    Register or retrieve a scoped upstream MCP handle.

    ##### Parameters

    ###### name

    `string`

    ###### options

    `ProxyMcpDeclarationOptions`

    ##### Returns

    `ProxyMcpHandle`

    #### Call Signature

    > **mcp**(`name`, `server`): `ProxyMcpHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:643

    Register or retrieve a scoped upstream MCP handle.

    ##### Parameters

    ###### name

    `string`

    ###### server

    `McpServer`

    ##### Returns

    `ProxyMcpHandle`

    #### Call Signature

    > **mcp**(`config`): `ProxyMcpHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:644

    Register or retrieve a scoped upstream MCP handle.

    ##### Parameters

    ###### config

    `McpServerOptions`

    ##### Returns

    `ProxyMcpHandle`

    ### mcpHealth()

    > **mcpHealth**(`name`): `Promise`\<`HealthCheckResult`>

    Defined in: packages/core/src/proxy/McpProxy.ts:1758

    Check a configured upstream MCP server health.

    #### Parameters

    ##### name

    `string`

    #### Returns

    `Promise`\<`HealthCheckResult`>

    ### on()

    #### Call Signature

    > **on**(`event`, `handler`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:1178

    Register an event hook.

    ##### Parameters

    ###### event

    `"call"`

    ###### handler

    `ToolCallHook`

    ##### Returns

    `this`

    #### Call Signature

    > **on**(`event`, `filter`, `handler`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:1183

    Register a filtered event hook.

    ##### Parameters

    ###### event

    `"call"`

    ###### filter

    `ToolCallHookFilter`

    ###### handler

    `ToolCallHook`

    ##### Returns

    `this`

    #### Call Signature

    > **on**(`event`, `handler`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:1188

    Register a unified proxy event handler.

    ##### Parameters

    ###### event

    `ProxyEventName`

    ###### handler

    `ProxyEventHandler`

    ##### Returns

    `this`

    #### Call Signature

    > **on**(`event`, `filter`, `handler`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:1193

    Register a filtered unified proxy event handler.

    ##### Parameters

    ###### event

    `ProxyEventName`

    ###### filter

    `ProxyEventFilter`

    ###### handler

    `ProxyEventHandler`

    ##### Returns

    `this`

    ### onLifecycle()

    > **onLifecycle**(`event`, `handler`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:1227

    Register a lifecycle hook.

    #### Parameters

    ##### event

    `LifecycleHookEvent`

    ##### handler

    `LifecycleHook`

    #### Returns

    `this`

    ### onListTools()

    > **onListTools**(`hook`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:1242

    Register a hook that can transform listed tools.

    #### Parameters

    ##### hook

    `ListToolsHook`

    #### Returns

    `this`

    ### operation()

    > **operation**(`operation`, `handler`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:589

    Register a global operation route for governed non-tool operations.

    #### Parameters

    ##### operation

    `ProxyOperation`

    ##### handler

    `ProxyMiddleware`

    #### Returns

    `this`

    ### pingMcp()

    > **pingMcp**(`name`): `Promise`\<`HealthCheckResult`>

    Defined in: packages/core/src/proxy/McpProxy.ts:1749

    Ping a configured upstream MCP server by listing tools.

    #### Parameters

    ##### name

    `string`

    #### Returns

    `Promise`\<`HealthCheckResult`>

    ### pinSessionTarget()

    > **pinSessionTarget**(`request`): `Promise`\<`SessionPinResult`>

    Defined in: packages/core/src/proxy/McpProxy.ts:882

    Lazily resolve and pin a downstream session to one eligible edge device
    per logical target before the first edge-dependent operation. Cloud
    targets return without pinning. Throws normalized edge errors.

    #### Parameters

    ##### request

    `SessionPinRequest`

    #### Returns

    `Promise`\<`SessionPinResult`>

    ### placementResolver()

    > **placementResolver**(): `PlacementResolver`

    Defined in: packages/core/src/proxy/McpProxy.ts:829

    Build a PlacementResolver over the registered targets and
    normalized placement bindings. The resolver never grants capability
    access; callers must have already established server-catalog visibility
    and policy authorization before relying on its result.

    #### Returns

    `PlacementResolver`

    ### policy()

    > **policy**(`name`): `Policy`

    Defined in: packages/core/src/proxy/McpProxy.ts:598

    Register or retrieve a named app-level policy declaration.

    #### Parameters

    ##### name

    `string`

    #### Returns

    `Policy`

    ### readResource()

    > **readResource**(`params`, `user?`, `identity?`, `subject?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:2167

    Read a proxied resource from its owning upstream server.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### uri

    `string`

    ##### user?

    `UserContext` = `{}`

    ##### identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    ### ready()

    > **ready**(`options?`): `Promise`\<`RuntimeLifecycleSnapshot`>

    Defined in: packages/core/src/proxy/McpProxy.ts:1647

    Wait for the runtime to reach readiness.

    #### Parameters

    ##### options?

    `RuntimeLifecycleOptions`

    #### Returns

    `Promise`\<`RuntimeLifecycleSnapshot`>

    ### registerGroupEvent()

    > **registerGroupEvent**(`groupId`, `eventName`, `filter`, `handler`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2645

    #### Parameters

    ##### groupId

    `string`

    ##### eventName

    `ProxyEventName`

    ##### filter

    `ProxyEventFilter`

    ##### handler

    `ProxyEventHandler`

    #### Returns

    `void`

    ### registerGroupMiddleware()

    > **registerGroupMiddleware**(`groupId`, `handler`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2635

    #### Parameters

    ##### groupId

    `string`

    ##### handler

    `Middleware`

    #### Returns

    `void`

    ### registerGroupOperation()

    > **registerGroupOperation**(`groupId`, `operation`, `handler`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2640

    #### Parameters

    ##### groupId

    `string`

    ##### operation

    `ProxyOperation`

    ##### handler

    `ProxyMiddleware`

    #### Returns

    `void`

    ### registerPlacementBinding()

    > **registerPlacementBinding**(`binding`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:1138

    Record a placement binding unless a conflicting one already exists.

    #### Parameters

    ##### binding

    `PlacementBindingConfig`

    #### Returns

    `void`

    ### registerServerEvent()

    > **registerServerEvent**(`serverName`, `eventName`, `filter`, `handler`, `groupId?`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2622

    #### Parameters

    ##### serverName

    `string`

    ##### eventName

    `ProxyEventName`

    ##### filter

    `ProxyEventFilter`

    ##### handler

    `ProxyEventHandler`

    ##### groupId?

    `string`

    #### Returns

    `void`

    ### registerServerMiddleware()

    > **registerServerMiddleware**(`serverName`, `handler`, `groupId?`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2607

    #### Parameters

    ##### serverName

    `string`

    ##### handler

    `Middleware`

    ##### groupId?

    `string`

    #### Returns

    `void`

    ### registerServerOperation()

    > **registerServerOperation**(`serverName`, `operation`, `handler`, `groupId?`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2617

    #### Parameters

    ##### serverName

    `string`

    ##### operation

    `ProxyOperation`

    ##### handler

    `ProxyMiddleware`

    ##### groupId?

    `string`

    #### Returns

    `void`

    ### registerServerSetup()

    > **registerServerSetup**(`serverName`, `schema`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:1121

    Register a setup schema for a server.

    #### Parameters

    ##### serverName

    `string`

    ##### schema

    `SetupSchema` | `Record`\<`string`, `SetupFieldDescriptor`>

    #### Returns

    `void`

    ### registerServerTool()

    > **registerServerTool**(`serverName`, `pattern`, `handler`, `groupId?`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2612

    #### Parameters

    ##### serverName

    `string`

    ##### pattern

    `string`

    ##### handler

    `ProxyMiddleware`

    ##### groupId?

    `string`

    #### Returns

    `void`

    ### resolveHttpUser()

    > **resolveHttpUser**(`req`): `Promise`\<\{ `identity?`: `IdentityMetadata`; `subject?`: `ResolvedSubject`; `user`: `UserContext`; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:2483

    Resolve user context from an HTTP downstream request.

    #### Parameters

    ##### req

    `IncomingMessage`

    #### Returns

    `Promise`\<\{ `identity?`: `IdentityMetadata`; `subject?`: `ResolvedSubject`; `user`: `UserContext`; }>

    ### resolvePlacement()

    > **resolvePlacement**(`request`): `PlacementResolution`

    Defined in: packages/core/src/proxy/McpProxy.ts:844

    Resolve a placement for an already-authorized request. Intended to be
    called at dispatch time, after server-catalog visibility and policy
    authorization have established that the subject may use the server.
    Throws `EDGE_UNAUTHORIZED_TARGET` for an ineligible explicit selection and
    `EDGE_PLACEMENT_AMBIGUOUS` for unresolved runtime group overlap.

    #### Parameters

    ##### request

    `PlacementRequest`

    #### Returns

    `PlacementResolution`

    ### resolveStdioUser()

    > **resolveStdioUser**(): `Promise`\<\{ `identity?`: `IdentityMetadata`; `subject?`: `ResolvedSubject`; `user`: `UserContext`; }>

    Defined in: packages/core/src/proxy/McpProxy.ts:2491

    Resolve user context for non-HTTP stdio downstream exposure.

    #### Returns

    `Promise`\<\{ `identity?`: `IdentityMetadata`; `subject?`: `ResolvedSubject`; `user`: `UserContext`; }>

    ### resolveTarget()

    > **resolveTarget**(`name`): `ExecutionTarget`

    Defined in: packages/core/src/proxy/McpProxy.ts:802

    Resolve a registered or built-in target by name.

    #### Parameters

    ##### name

    `string`

    #### Returns

    `ExecutionTarget`

    ### server()

    #### Call Signature

    > **server**(`name`): `ProxyMcpHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:689

    Register or retrieve a scoped upstream MCP handle.
    Alias for `mcp(...)`.

    ##### Parameters

    ###### name

    `string`

    ##### Returns

    `ProxyMcpHandle`

    #### Call Signature

    > **server**(`name`, `options`): `ProxyMcpHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:690

    Register or retrieve a scoped upstream MCP handle.
    Alias for `mcp(...)`.

    ##### Parameters

    ###### name

    `string`

    ###### options

    `ProxyMcpDeclarationOptions`

    ##### Returns

    `ProxyMcpHandle`

    #### Call Signature

    > **server**(`name`, `server`): `ProxyMcpHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:691

    Register or retrieve a scoped upstream MCP handle.
    Alias for `mcp(...)`.

    ##### Parameters

    ###### name

    `string`

    ###### server

    `McpServer`

    ##### Returns

    `ProxyMcpHandle`

    #### Call Signature

    > **server**(`config`): `ProxyMcpHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:692

    Register or retrieve a scoped upstream MCP handle.
    Alias for `mcp(...)`.

    ##### Parameters

    ###### config

    `McpServerOptions`

    ##### Returns

    `ProxyMcpHandle`

    ### setGroupPolicy()

    > **setGroupPolicy**(`groupId`, `policy`): `void`

    Defined in: packages/core/src/proxy/McpProxy.ts:2663

    #### Parameters

    ##### groupId

    `string`

    ##### policy

    `string` | `Policy`

    #### Returns

    `void`

    ### shutdownEdgeSessions()

    > **shutdownEdgeSessions**(): `Promise`\<`void`>

    Defined in: packages/core/src/proxy/McpProxy.ts:1057

    Remove every session-target binding on runtime shutdown.

    #### Returns

    `Promise`\<`void`>

    ### start()

    #### Call Signature

    > **start**(`onStarted?`): `Promise`\<`Server`\<*typeof* `IncomingMessage`, *typeof* `ServerResponse`>>

    Defined in: packages/core/src/proxy/McpProxy.ts:1251

    Start the HTTP server.

    ##### Parameters

    ###### onStarted?

    () => `void`

    ##### Returns

    `Promise`\<`Server`\<*typeof* `IncomingMessage`, *typeof* `ServerResponse`>>

    #### Call Signature

    > **start**(`options?`, `onStarted?`): `Promise`\<`Server`\<*typeof* `IncomingMessage`, *typeof* `ServerResponse`>>

    Defined in: packages/core/src/proxy/McpProxy.ts:1256

    Start the HTTP server with optional overrides.

    ##### Parameters

    ###### options?

    `McpProxyStartOptions`

    ###### onStarted?

    () => `void`

    ##### Returns

    `Promise`\<`Server`\<*typeof* `IncomingMessage`, *typeof* `ServerResponse`>>

    ### state()

    > **state**(): `RuntimeLifecycleSnapshot`

    Defined in: packages/core/src/proxy/McpProxy.ts:1685

    Inspect the current runtime lifecycle state.

    #### Returns

    `RuntimeLifecycleSnapshot`

    ### stop()

    > **stop**(`options?`): `Promise`\<`void`>

    Defined in: packages/core/src/proxy/McpProxy.ts:1655

    Stop the runtime and close owned resources.

    #### Parameters

    ##### options?

    `McpProxyStopOptions` = `{}`

    #### Returns

    `Promise`\<`void`>

    ### target()

    > **target**(`name`, `target?`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:744

    Register or retrieve a reusable named execution target. Target bindings
    describe where an MCP runs and never grant MCP capability access. The
    built-in `cloud` target always executes the configured transport on the
    Fentaris host and need not be registered.

    #### Parameters

    ##### name

    `string`

    ##### target?

    `ExecutionTarget`

    #### Returns

    `this`

    ### tool()

    > **tool**(`pattern`, `handler`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:580

    Register a global tool route with a public server.tool pattern.

    #### Parameters

    ##### pattern

    `string`

    ##### handler

    `ProxyMiddleware`

    #### Returns

    `this`

    ### use()

    #### Call Signature

    > **use**(`middleware`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:568

    Register a middleware handler.

    ##### Parameters

    ###### middleware

    `ProxyMiddleware`

    ##### Returns

    `this`

    #### Call Signature

    > **use**(`middleware`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:569

    Register a middleware handler.

    ##### Parameters

    ###### middleware

    `LegacyMiddleware`

    ##### Returns

    `this`

    ### usePolicy()

    > **usePolicy**(`policyNameOrPolicy`): `this`

    Defined in: packages/core/src/proxy/McpProxy.ts:614

    Apply a named or concrete policy as the global proxy policy.

    #### Parameters

    ##### policyNameOrPolicy

    `string` | `Policy`

    #### Returns

    `this`

    ### user()

    > **user**(`userId`): `ProxyUserHandle`

    Defined in: packages/core/src/proxy/McpProxy.ts:1158

    Retrieve a user-scoped MCP handle. Records placement bindings without
    creating or authenticating a subject.

    #### Parameters

    ##### userId

    `string`

    #### Returns

    `ProxyUserHandle`

    ### validateEdgeConfiguration()

    > **validateEdgeConfiguration**(): `FentarisDiagnostic`\[]

    Defined in: packages/core/src/proxy/McpProxy.ts:1402

    Validate fluent and constructor-style target, setup, and placement
    declarations: unresolved user handles, missing targets, duplicate
    conflicting bindings, incompatible setup fields, undeclared runtime
    references, unused required fields, and unsafe secret defaults. Target
    bindings never grant MCP capability access.

    #### Returns

    `FentarisDiagnostic`\[]
  </Accordion>

  <Accordion title="McpProxy: functions/createProxy">
    @fentaris/core / createProxy

    > **createProxy**(`options?`): `McpProxy`

    Defined in: packages/core/src/proxy/McpProxy.ts:3709

    Create a Fentaris proxy with the express-like routing API.

    ## Parameters

    ### options?

    `McpProxyOptions` = `{}`

    ## Returns

    `McpProxy`
  </Accordion>

  <Accordion title="McpProxy: type-aliases/AutoLogOptions">
    @fentaris/core / AutoLogOptions

    > **AutoLogOptions** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:365

    Auto-log configuration for proxied tool calls.

    ## Properties

    ### enabled?

    > `optional` **enabled?**: `boolean`

    Defined in: packages/core/src/proxy/McpProxy.ts:366

    ### failureLevel?

    > `optional` **failureLevel?**: `"warn"` | `"error"`

    Defined in: packages/core/src/proxy/McpProxy.ts:369

    ### startLevel?

    > `optional` **startLevel?**: `"debug"` | `"info"`

    Defined in: packages/core/src/proxy/McpProxy.ts:367

    ### successLevel?

    > `optional` **successLevel?**: `"debug"` | `"info"`

    Defined in: packages/core/src/proxy/McpProxy.ts:368
  </Accordion>

  <Accordion title="McpProxy: type-aliases/EdgeRuntimeOptions">
    @fentaris/core / EdgeRuntimeOptions

    > **EdgeRuntimeOptions** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:331

    Edge runtime wiring supplied to McpProxyOptions.edge.

    ## Properties

    ### capabilityCache?

    > `optional` **capabilityCache?**: `EdgeCapabilityCache`

    Defined in: packages/core/src/proxy/McpProxy.ts:343

    Validated per-deployment manifest cache used by edge discovery.

    ### childBindingManager?

    > `optional` **childBindingManager?**: `EdgeChildBindingManager`

    Defined in: packages/core/src/proxy/McpProxy.ts:351

    Optional managed child-binding manager for explicit orchestration.

    ### control?

    > `optional` **control?**: `object` & `EdgeControlProviderOptions` | \{ `enabled?`: `false`; }

    Defined in: packages/core/src/proxy/McpProxy.ts:349

    Explicit opt-in configuration for the governed Edge Control provider.

    ### controlPlane?

    > `optional` **controlPlane?**: `EdgeControlPlaneConfig`

    Defined in: packages/core/src/proxy/McpProxy.ts:358

    Integrated Edge control-plane configuration. When enabled, `app.start()`
    mounts authorization, enrollment, revocation, and gateway routes. Disabled
    by default; omitting this field preserves low-level edge wiring only.

    ### deviceResolver?

    > `optional` **deviceResolver?**: `DeviceResolver`

    Defined in: packages/core/src/proxy/McpProxy.ts:333

    Control-plane device resolver used to pin edge targets.

    ### sessionBindingExpiry?

    > `optional` **sessionBindingExpiry?**: `SessionBindingExpiryOptions`

    Defined in: packages/core/src/proxy/McpProxy.ts:337

    Expiry configuration for the default in-memory binding store.

    ### sessionBindingListener?

    > `optional` **sessionBindingListener?**: `SessionBindingListener`

    Defined in: packages/core/src/proxy/McpProxy.ts:339

    Removal listener for session-target bindings.

    ### sessionBindingStore?

    > `optional` **sessionBindingStore?**: `SessionBindingStore`

    Defined in: packages/core/src/proxy/McpProxy.ts:335

    Replaceable session-binding store; defaults to in-memory.

    ### sessionSelectionStore?

    > `optional` **sessionSelectionStore?**: `EdgeSessionSelectionStore`

    Defined in: packages/core/src/proxy/McpProxy.ts:347

    Durable store for agent-requested pre-pin selections.

    ### telemetry?

    > `optional` **telemetry?**: `EdgeTelemetry`

    Defined in: packages/core/src/proxy/McpProxy.ts:345

    Structured, redacted edge lifecycle telemetry.

    ### transport?

    > `optional` **transport?**: `FentarisTransport`

    Defined in: packages/core/src/proxy/McpProxy.ts:341

    Virtual edge transport used after an edge target has been pinned.
  </Accordion>

  <Accordion title="McpProxy: type-aliases/FentarisCliMcpAccountConfig">
    @fentaris/core / FentarisCliMcpAccountConfig

    > **FentarisCliMcpAccountConfig** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:320

    CLI account selector configuration for one MCP server.

    ## Properties

    ### allowed

    > **allowed**: `string`\[]

    Defined in: packages/core/src/proxy/McpProxy.ts:324

    Selectors the CLI may use for this MCP.

    ### default

    > **default**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:322

    Default selector used when `--as` is omitted for this MCP.
  </Accordion>

  <Accordion title="McpProxy: type-aliases/FentarisCliOptions">
    @fentaris/core / FentarisCliOptions

    > **FentarisCliOptions** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:311

    Agent-facing CLI configuration embedded in Fentaris app config.

    ## Properties

    ### mcpAccounts?

    > `optional` **mcpAccounts?**: `Record`\<`string`, `FentarisCliMcpAccountConfig`>

    Defined in: packages/core/src/proxy/McpProxy.ts:313

    Configured MCP account selectors available to CLI discovery/auth commands.
  </Accordion>

  <Accordion title="McpProxy: type-aliases/IdentityResolverOptions">
    @fentaris/core / IdentityResolverOptions

    > **IdentityResolverOptions** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:376

    Identity resolver configuration for proxy-edge auth.

    ## Properties

    ### required?

    > `optional` **required?**: `boolean`

    Defined in: packages/core/src/proxy/McpProxy.ts:378

    ### strategy

    > **strategy**: `IdentityStrategy`

    Defined in: packages/core/src/proxy/McpProxy.ts:377
  </Accordion>

  <Accordion title="McpProxy: type-aliases/McpProxyOptions">
    @fentaris/core / McpProxyOptions

    > **McpProxyOptions** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:266

    Options for creating an MCP proxy server.

    ## Properties

    ### auth?

    > `optional` **auth?**: `FentarisAuth`

    Defined in: packages/core/src/proxy/McpProxy.ts:279

    ### autoLog?

    > `optional` **autoLog?**: `boolean` | `AutoLogOptions`

    Defined in: packages/core/src/proxy/McpProxy.ts:281

    ### cli?

    > `optional` **cli?**: `FentarisCliOptions`

    Defined in: packages/core/src/proxy/McpProxy.ts:297

    Agent-facing CLI configuration.

    ### defaults?

    > `optional` **defaults?**: `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:276

    #### credentials?

    > `optional` **credentials?**: `CredentialSourceMap`

    ### edge?

    > `optional` **edge?**: `EdgeRuntimeOptions`

    Defined in: packages/core/src/proxy/McpProxy.ts:304

    Edge execution wiring: control-plane device resolver, replaceable
    session-binding store, expiry, and removal listener. When omitted, edge
    targets cannot be pinned and the runtime behaves as cloud-only.

    ### errorMapper?

    > `optional` **errorMapper?**: `ErrorMapper`

    Defined in: packages/core/src/proxy/McpProxy.ts:285

    ### groups?

    > `optional` **groups?**: `Group`\[]

    Defined in: packages/core/src/proxy/McpProxy.ts:275

    ### health?

    > `optional` **health?**: `HealthConfig`

    Defined in: packages/core/src/proxy/McpProxy.ts:284

    ### host?

    > `optional` **host?**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:269

    ### identity?

    > `optional` **identity?**: `IdentityStrategy` | `IdentityResolverOptions`

    Defined in: packages/core/src/proxy/McpProxy.ts:273

    ### installations?

    > `optional` **installations?**: `Record`\<`string`, `InstallationRecipe`>

    Defined in: packages/core/src/proxy/McpProxy.ts:293

    Constructor-style managed installation recipes keyed by MCP server name.

    ### lifecycle?

    > `optional` **lifecycle?**: `RuntimeLifecycleOptions`

    Defined in: packages/core/src/proxy/McpProxy.ts:283

    ### logger?

    > `optional` **logger?**: `Logger`

    Defined in: packages/core/src/proxy/McpProxy.ts:271

    ### name?

    > `optional` **name?**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:286

    ### path?

    > `optional` **path?**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:270

    ### placements?

    > `optional` **placements?**: `PlacementBindingConfig`\[]

    Defined in: packages/core/src/proxy/McpProxy.ts:295

    Constructor-style placement bindings.

    ### policy?

    > `optional` **policy?**: `Policy`

    Defined in: packages/core/src/proxy/McpProxy.ts:274

    ### port?

    > `optional` **port?**: `number`

    Defined in: packages/core/src/proxy/McpProxy.ts:268

    ### profiler?

    > `optional` **profiler?**: `RuntimeProfilerConfig`

    Defined in: packages/core/src/proxy/McpProxy.ts:282

    ### registry?

    > `optional` **registry?**: `Registry`

    Defined in: packages/core/src/proxy/McpProxy.ts:280

    ### servers?

    > `optional` **servers?**: `McpServer`\[]

    Defined in: packages/core/src/proxy/McpProxy.ts:267

    ### setup?

    > `optional` **setup?**: `Record`\<`string`, `Record`\<`string`, `SetupFieldDescriptor`> | `SetupSchema`>

    Defined in: packages/core/src/proxy/McpProxy.ts:291

    Constructor-style per-server setup schemas.

    ### targets?

    > `optional` **targets?**: `Record`\<`string`, `ExecutionTarget`>

    Defined in: packages/core/src/proxy/McpProxy.ts:289

    Constructor-style execution-target declarations.

    ### user?

    > `optional` **user?**: `UserContext` | ((`request`) => `UserContext` | `Promise`\<`UserContext`>)

    Defined in: packages/core/src/proxy/McpProxy.ts:272

    ### version?

    > `optional` **version?**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:287
  </Accordion>

  <Accordion title="McpProxy: type-aliases/McpProxyStartOptions">
    @fentaris/core / McpProxyStartOptions

    > **McpProxyStartOptions** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:385

    Optional start overrides for the MCP proxy.

    ## Properties

    ### host?

    > `optional` **host?**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:387

    ### path?

    > `optional` **path?**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:388

    ### port?

    > `optional` **port?**: `number`

    Defined in: packages/core/src/proxy/McpProxy.ts:386

    ### startupTimeoutMs?

    > `optional` **startupTimeoutMs?**: `number`

    Defined in: packages/core/src/proxy/McpProxy.ts:389
  </Accordion>

  <Accordion title="McpProxy: type-aliases/McpProxyStopOptions">
    @fentaris/core / McpProxyStopOptions

    > **McpProxyStopOptions** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:396

    Optional stop overrides for the MCP proxy.

    ## Properties

    ### shutdownTimeoutMs?

    > `optional` **shutdownTimeoutMs?**: `number`

    Defined in: packages/core/src/proxy/McpProxy.ts:397
  </Accordion>

  <Accordion title="McpProxy: type-aliases/PlacementBindingConfig">
    @fentaris/core / PlacementBindingConfig

    > **PlacementBindingConfig** = `object`

    Defined in: packages/core/src/proxy/McpProxy.ts:245

    A placement binding declared through fluent or constructor-style config.

    ## Properties

    ### groupId?

    > `optional` **groupId?**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:251

    Group id for group-scoped bindings.

    ### scope

    > **scope**: `PlacementScope`

    Defined in: packages/core/src/proxy/McpProxy.ts:249

    Scope of the binding.

    ### serverName

    > **serverName**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:247

    Server name the binding applies to.

    ### targetName

    > **targetName**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:255

    Registered or built-in target name.

    ### userId?

    > `optional` **userId?**: `string`

    Defined in: packages/core/src/proxy/McpProxy.ts:253

    User id for user-scoped bindings.
  </Accordion>

  <Accordion title="McpProxy: variables/fentaris">
    @fentaris/core / fentaris

    > `const` **fentaris**: (`options`) => `McpProxy` = `createProxy`

    Defined in: packages/core/src/proxy/McpProxy.ts:3718

    Create a Fentaris proxy with the express-like routing API.

    Create a Fentaris proxy with the express-like routing API.

    ## Parameters

    ### options?

    `McpProxyOptions` = `{}`

    ## Returns

    `McpProxy`
  </Accordion>
</AccordionGroup>

## McpServer

<AccordionGroup>
  <Accordion title="McpServer: classes/McpServer">
    @fentaris/core / McpServer

    Defined in: packages/core/src/server/McpServer.ts:86

    MCP server wrapper with optional per-user env injection.

    ## Constructors

    ### Constructor

    > **new McpServer**(`options`): `McpServer`

    Defined in: packages/core/src/server/McpServer.ts:102

    Create a new MCP server wrapper.

    #### Parameters

    ##### options

    `McpServerOptions`

    #### Returns

    `McpServer`

    ## Properties

    ### displayName

    > `readonly` **displayName**: `string`

    Defined in: packages/core/src/server/McpServer.ts:88

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/server/McpServer.ts:87

    ### transport

    > `readonly` **transport**: `FentarisTransport`

    Defined in: packages/core/src/server/McpServer.ts:91

    The transport backing this server; exposed for edge recipe/validation.

    ## Methods

    ### callTool()

    > **callTool**(`params`, `user?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/server/McpServer.ts:126

    Call a tool for a given user.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `unknown`; }

    ###### name

    `string`

    ###### task?

    \{ `ttl?`: `number`; }

    ###### task.ttl?

    `number`

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    ### close()

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

    Defined in: packages/core/src/server/McpServer.ts:265

    Close all transports.

    #### Returns

    `Promise`\<`void`>

    ### complete()

    > **complete**(`params`, `user?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    Defined in: packages/core/src/server/McpServer.ts:215

    Complete a prompt or resource argument for a given user.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### argument

    \{ `name`: `string`; `value`: `string`; }

    ###### argument.name

    `string`

    ###### argument.value

    `string`

    ###### context?

    \{ `arguments?`: \{\[`key`: `string`]: `string`; }; }

    ###### context.arguments?

    \{\[`key`: `string`]: `string`; }

    ###### ref

    \{ `name`: `string`; `type`: `"ref/prompt"`; } | \{ `type`: `"ref/resource"`; `uri`: `string`; }

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    ### getCredentialBindings()

    > **getCredentialBindings**(): `ServerCredentialBinding`\[]

    Defined in: packages/core/src/server/McpServer.ts:276

    Credential bindings declared with this server.

    #### Returns

    `ServerCredentialBinding`\[]

    ### getPrompt()

    > **getPrompt**(`params`, `user?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    Defined in: packages/core/src/server/McpServer.ts:202

    Get a prompt for a given user.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `string`; }

    ###### name

    `string`

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    ### listPrompts()

    > **listPrompts**(`params?`, `user?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    Defined in: packages/core/src/server/McpServer.ts:189

    List prompts for a given user.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    ### listResources()

    > **listResources**(`params?`, `user?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    Defined in: packages/core/src/server/McpServer.ts:147

    List resources for a given user.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    ### listResourceTemplates()

    > **listResourceTemplates**(`params?`, `user?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    Defined in: packages/core/src/server/McpServer.ts:173

    List resource templates for a given user.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    ### listTools()

    > **listTools**(`params?`, `user?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    Defined in: packages/core/src/server/McpServer.ts:118

    List tools for a given user.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    ### readResource()

    > **readResource**(`params`, `user?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    Defined in: packages/core/src/server/McpServer.ts:160

    Read a resource for a given user.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### uri

    `string`

    ##### user?

    `UserContext` = `{}`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    ### supportsCompletions()

    > **supportsCompletions**(): `boolean`

    Defined in: packages/core/src/server/McpServer.ts:257

    Whether the configured transport exposes completion operations.

    #### Returns

    `boolean`

    ### supportsPrompts()

    > **supportsPrompts**(): `boolean`

    Defined in: packages/core/src/server/McpServer.ts:249

    Whether the configured transport exposes prompt operations.

    #### Returns

    `boolean`

    ### supportsResources()

    > **supportsResources**(): `boolean`

    Defined in: packages/core/src/server/McpServer.ts:241

    Whether the configured transport exposes resource operations.

    #### Returns

    `boolean`

    ### withProxyContext()

    > **withProxyContext**\<`T`>(`context`, `run`): `Promise`\<`T`>

    Defined in: packages/core/src/server/McpServer.ts:228

    Run a server operation with a governed proxy context when the transport supports it.

    #### Type Parameters

    ##### T

    `T`

    #### Parameters

    ##### context

    `ProxyContext`

    ##### run

    () => `Promise`\<`T`>

    #### Returns

    `Promise`\<`T`>
  </Accordion>

  <Accordion title="McpServer: functions/bearer">
    @fentaris/core / bearer

    > **bearer**(`credential`): `BearerCredentialAuth`

    Defined in: packages/core/src/server/McpServer.ts:343

    Apply a credential as an Authorization bearer token.

    ## Parameters

    ### credential

    `CredentialReference`

    ## Returns

    `BearerCredentialAuth`
  </Accordion>

  <Accordion title="McpServer: functions/header">
    @fentaris/core / header

    > **header**(`name`, `credential`): `HeaderCredentialAuth`

    Defined in: packages/core/src/server/McpServer.ts:351

    Apply a credential as a named request header.

    ## Parameters

    ### name

    `string`

    ### credential

    `CredentialReference`

    ## Returns

    `HeaderCredentialAuth`
  </Accordion>

  <Accordion title="McpServer: functions/mcp">
    @fentaris/core / mcp

    > **mcp**(`name`, `options`): `McpServer`

    Defined in: packages/core/src/server/McpServer.ts:335

    Create an upstream MCP server declaration.

    ## Parameters

    ### name

    `string`

    ### options

    `Omit`\<`McpServerOptions`, `"name"`>

    ## Returns

    `McpServer`
  </Accordion>

  <Accordion title="McpServer: type-aliases/BearerCredentialAuth">
    @fentaris/core / BearerCredentialAuth

    > **BearerCredentialAuth** = `object`

    Defined in: packages/core/src/server/McpServer.ts:44

    ## Properties

    ### credential

    > **credential**: `CredentialReference`

    Defined in: packages/core/src/server/McpServer.ts:46

    ### type

    > **type**: `"bearer"`

    Defined in: packages/core/src/server/McpServer.ts:45
  </Accordion>

  <Accordion title="McpServer: type-aliases/EnvResolver">
    @fentaris/core / EnvResolver

    > **EnvResolver** = `Record`\<`string`, `EnvValue`> | ((`user`) => `Record`\<`string`, `string`>)

    Defined in: packages/core/src/server/McpServer.ts:36

    Resolve environment variables per user.
  </Accordion>

  <Accordion title="McpServer: type-aliases/EnvValue">
    @fentaris/core / EnvValue

    > **EnvValue** = `string` | `CredentialReference`

    Defined in: packages/core/src/server/McpServer.ts:30

    Resolve environment variables per user.
  </Accordion>

  <Accordion title="McpServer: type-aliases/HeaderCredentialAuth">
    @fentaris/core / HeaderCredentialAuth

    > **HeaderCredentialAuth** = `object`

    Defined in: packages/core/src/server/McpServer.ts:49

    ## Properties

    ### credential

    > **credential**: `CredentialReference`

    Defined in: packages/core/src/server/McpServer.ts:52

    ### header

    > **header**: `string`

    Defined in: packages/core/src/server/McpServer.ts:51

    ### type

    > **type**: `"header"`

    Defined in: packages/core/src/server/McpServer.ts:50
  </Accordion>

  <Accordion title="McpServer: type-aliases/McpServerAuth">
    @fentaris/core / McpServerAuth

    > **McpServerAuth** = `BearerCredentialAuth` | `HeaderCredentialAuth`

    Defined in: packages/core/src/server/McpServer.ts:42

    Server credential application configuration.
  </Accordion>

  <Accordion title="McpServer: type-aliases/McpServerOptions">
    @fentaris/core / McpServerOptions

    > **McpServerOptions** = `object`

    Defined in: packages/core/src/server/McpServer.ts:64

    Configuration for an MCP server wrapper.

    ## Properties

    ### auth?

    > `optional` **auth?**: `McpServerAuth`

    Defined in: packages/core/src/server/McpServer.ts:68

    ### displayName?

    > `optional` **displayName?**: `string`

    Defined in: packages/core/src/server/McpServer.ts:66

    ### env?

    > `optional` **env?**: `EnvResolver`

    Defined in: packages/core/src/server/McpServer.ts:69

    ### isolation?

    > `optional` **isolation?**: `Isolation`

    Defined in: packages/core/src/server/McpServer.ts:70

    ### isolationTimeout?

    > `optional` **isolationTimeout?**: `number`

    Defined in: packages/core/src/server/McpServer.ts:71

    ### name

    > **name**: `string`

    Defined in: packages/core/src/server/McpServer.ts:65

    ### transport

    > **transport**: `FentarisTransport`

    Defined in: packages/core/src/server/McpServer.ts:67
  </Accordion>

  <Accordion title="McpServer: type-aliases/ServerCredentialBinding">
    @fentaris/core / ServerCredentialBinding

    > **ServerCredentialBinding** = \{ `credential`: `CredentialReference`; `type`: `"bearer"`; } | \{ `credential`: `CredentialReference`; `header`: `string`; `type`: `"header"`; } | \{ `credential`: `CredentialReference`; `env`: `string`; `type`: `"env"`; }

    Defined in: packages/core/src/server/McpServer.ts:55
  </Accordion>
</AccordionGroup>

## Transports

<AccordionGroup>
  <Accordion title="Transports: classes/StdioTransport">
    @fentaris/core / StdioTransport

    Defined in: packages/core/src/transports/client/StdioTransport.ts:57

    Stdio-based MCP transport implementation.

    ## Implements

    * `FentarisTransport`

    ## Constructors

    ### Constructor

    > **new StdioTransport**(`options`): `StdioTransport`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:66

    Create a new stdio transport.

    #### Parameters

    ##### options

    `StdioTransportOptions`

    #### Returns

    `StdioTransport`

    ## Methods

    ### callTool()

    > **callTool**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:138

    Call a tool on the MCP server.

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `unknown`; }

    ###### name

    `string`

    ###### task?

    \{ `ttl?`: `number`; }

    ###### task.ttl?

    `number`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    #### Implementation of

    `FentarisTransport.callTool`

    ### close()

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

    Defined in: packages/core/src/transports/client/StdioTransport.ts:205

    Close the underlying client connection.

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `FentarisTransport.close`

    ### complete()

    > **complete**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:187

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### argument

    \{ `name`: `string`; `value`: `string`; }

    ###### argument.name

    `string`

    ###### argument.value

    `string`

    ###### context?

    \{ `arguments?`: \{\[`key`: `string`]: `string`; }; }

    ###### context.arguments?

    \{\[`key`: `string`]: `string`; }

    ###### ref

    \{ `name`: `string`; `type`: `"ref/prompt"`; } | \{ `type`: `"ref/resource"`; `uri`: `string`; }

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `completion`: \{\[`key`: `string`]: `unknown`; `hasMore?`: `boolean`; `total?`: `number`; `values`: `string`\[]; }; }>

    #### Implementation of

    `FentarisTransport.complete`

    ### getPrompt()

    > **getPrompt**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:178

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### arguments?

    \{\[`key`: `string`]: `string`; }

    ###### name

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `description?`: `string`; `messages`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.getPrompt`

    ### listPrompts()

    > **listPrompts**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:169

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `prompts`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listPrompts`

    ### listResources()

    > **listResources**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:142

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resources`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listResources`

    ### listResourceTemplates()

    > **listResourceTemplates**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:160

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `resourceTemplates`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listResourceTemplates`

    ### listTools()

    > **listTools**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:125

    List tools exposed by the MCP server.

    #### Parameters

    ##### params?

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### cursor?

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `nextCursor?`: `string`; `tools`: `object`\[]; }>

    #### Implementation of

    `FentarisTransport.listTools`

    ### readResource()

    > **readResource**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:151

    #### Parameters

    ##### params

    ###### \_meta?

    \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }

    ###### \_meta.io.modelcontextprotocol/related-task?

    \{ `taskId`: `string`; }

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    `string`

    ###### \_meta.progressToken?

    `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ###### uri

    `string`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `contents`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; })\[]; }>

    #### Implementation of

    `FentarisTransport.readResource`

    ### runtimeValueTokens()

    > **runtimeValueTokens**(): `RuntimeValueToken`\[]

    Defined in: packages/core/src/transports/client/StdioTransport.ts:90

    Return every runtime-value token declared in arguments and environment.
    Used by configuration validation to reconcile references against setup
    fields without exposing the full options object.

    #### Returns

    `RuntimeValueToken`\[]

    ### serverCapabilities()

    > **serverCapabilities**(): `Promise`\<\{ `completions?`: `object`; `experimental?`: \{\[`key`: `string`]: `object`; }; `extensions?`: \{\[`key`: `string`]: `object`; }; `logging?`: `object`; `prompts?`: \{ `listChanged?`: `boolean`; }; `resources?`: \{ `listChanged?`: `boolean`; `subscribe?`: `boolean`; }; `tasks?`: \{\[`key`: `string`]: `unknown`; `cancel?`: `object`; `list?`: `object`; `requests?`: \{\[`key`: `string`]: `unknown`; `tools?`: \{\[`key`: `string`]: `unknown`; `call?`: `object`; }; }; }; `tools?`: \{ `listChanged?`: `boolean`; }; } | `undefined`>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:197

    Return the initialized upstream capability declaration.

    #### Returns

    `Promise`\<\{ `completions?`: `object`; `experimental?`: \{\[`key`: `string`]: `object`; }; `extensions?`: \{\[`key`: `string`]: `object`; }; `logging?`: `object`; `prompts?`: \{ `listChanged?`: `boolean`; }; `resources?`: \{ `listChanged?`: `boolean`; `subscribe?`: `boolean`; }; `tasks?`: \{\[`key`: `string`]: `unknown`; `cancel?`: `object`; `list?`: `object`; `requests?`: \{\[`key`: `string`]: `unknown`; `tools?`: \{\[`key`: `string`]: `unknown`; `call?`: `object`; }; }; }; `tools?`: \{ `listChanged?`: `boolean`; }; } | `undefined`>

    ### toLaunchRecipe()

    > **toLaunchRecipe**(`schema?`): `LaunchRecipe`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:80

    Compile this transport's declaration into a serializable launch recipe bound
    to an optional setup schema. Cloud/edge validation uses this to reconcile
    runtime-value references against declared setup fields.

    #### Parameters

    ##### schema?

    `SetupSchema`

    #### Returns

    `LaunchRecipe`

    ### unresolvedCloudRuntimeRefs()

    > **unresolvedCloudRuntimeRefs**(): `string`\[]

    Defined in: packages/core/src/transports/client/StdioTransport.ts:102

    Runtime references that have no explicit cloud-side value.

    #### Returns

    `string`\[]

    ### withEnv()

    > **withEnv**(`env`): `StdioTransport`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:111

    Return a copy with merged environment variables.

    #### Parameters

    ##### env

    `Record`\<`string`, `string`>

    #### Returns

    `StdioTransport`
  </Accordion>

  <Accordion title="Transports: functions/stdio">
    @fentaris/core / stdio

    > **stdio**(`options`): `StdioTransport`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:293

    Create a stdio upstream transport.

    ## Parameters

    ### options

    `StdioTransportOptions`

    ## Returns

    `StdioTransport`
  </Accordion>

  <Accordion title="Transports: type-aliases/StdioTransportOptions">
    @fentaris/core / StdioTransportOptions

    > **StdioTransportOptions** = `object`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:37

    Options for the stdio transport.

    Argument and environment entries may be plain strings (existing behavior) or
    runtime-value tokens (`runtime.input(...)` / `runtime.secret(...)`) that are
    resolved before process launch on a cloud target, or serialized into a
    recipe for edge launch. A plain-string configuration remains unchanged.

    ## Properties

    ### args?

    > `optional` **args?**: (`string` | `RuntimeValueToken`)\[]

    Defined in: packages/core/src/transports/client/StdioTransport.ts:39

    ### clientName?

    > `optional` **clientName?**: `string`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:49

    ### clientVersion?

    > `optional` **clientVersion?**: `string`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:50

    ### command

    > **command**: `string`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:38

    ### env?

    > `optional` **env?**: `Record`\<`string`, `string` | `RuntimeValueToken`>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:40

    ### runtimeValues?

    > `optional` **runtimeValues?**: `Record`\<`string`, `string`>

    Defined in: packages/core/src/transports/client/StdioTransport.ts:47

    Explicit cloud-side resolutions for runtime references. These values are
    used only for local cloud process launch and are never serialized into an
    edge launch recipe.

    ### stderr?

    > `optional` **stderr?**: `"inherit"` | `"pipe"` | `"overlapped"` | `"ignore"`

    Defined in: packages/core/src/transports/client/StdioTransport.ts:48
  </Accordion>
</AccordionGroup>

## Logger

<AccordionGroup>
  <Accordion title="Logger: classes/ConsoleLoggerDriver">
    @fentaris/core / ConsoleLoggerDriver

    Defined in: logger.ts:77

    Console-based logger driver.

    ## Implements

    * `LoggerDriver`

    ## Constructors

    ### Constructor

    > **new ConsoleLoggerDriver**(): `ConsoleLoggerDriver`

    #### Returns

    `ConsoleLoggerDriver`

    ## Methods

    ### write()

    > **write**(`entry`): `void`

    Defined in: logger.ts:82

    Write the log entry to the console.

    #### Parameters

    ##### entry

    `LogEntry`

    #### Returns

    `void`

    #### Implementation of

    `LoggerDriver.write`
  </Accordion>

  <Accordion title="Logger: classes/JsonConsoleLoggerDriver">
    @fentaris/core / JsonConsoleLoggerDriver

    Defined in: logger.ts:104

    Console driver that writes one JSON log entry per line.

    ## Implements

    * `LoggerDriver`

    ## Constructors

    ### Constructor

    > **new JsonConsoleLoggerDriver**(`options?`): `JsonConsoleLoggerDriver`

    Defined in: logger.ts:111

    Create a JSON console logger driver.

    #### Parameters

    ##### options?

    `JsonConsoleLoggerDriverOptions` = `{}`

    #### Returns

    `JsonConsoleLoggerDriver`

    ## Methods

    ### write()

    > **write**(`entry`): `void`

    Defined in: logger.ts:119

    Write the log entry as a single JSON line.

    #### Parameters

    ##### entry

    `LogEntry`

    #### Returns

    `void`

    #### Implementation of

    `LoggerDriver.write`
  </Accordion>

  <Accordion title="Logger: classes/Logger">
    @fentaris/core / Logger

    Defined in: logger.ts:191

    Structured logger with level filtering.

    ## Constructors

    ### Constructor

    > **new Logger**(`options?`): `Logger`

    Defined in: logger.ts:204

    Create a new logger instance.

    #### Parameters

    ##### options?

    `LoggerOptions` = `{}`

    #### Returns

    `Logger`

    ## Methods

    ### annotate()

    > **annotate**(`key`, `value`): `this`

    Defined in: logger.ts:236

    Add mutable metadata that will be included in future log writes.

    #### Parameters

    ##### key

    `string`

    ##### value

    `unknown`

    #### Returns

    `this`

    ### child()

    > **child**(`context`): `Logger`

    Defined in: logger.ts:217

    Create a child logger with merged context.

    #### Parameters

    ##### context

    `Record`\<`string`, `unknown`>

    #### Returns

    `Logger`

    ### debug()

    > **debug**(`message`, `metadata?`): `void`

    Defined in: logger.ts:254

    Emit a debug log entry.

    #### Parameters

    ##### message

    `string`

    ##### metadata?

    `Record`\<`string`, `unknown`> = `{}`

    #### Returns

    `void`

    ### error()

    > **error**(`message`, `metadata?`): `void`

    Defined in: logger.ts:278

    Emit an error log entry.

    #### Parameters

    ##### message

    `string`

    ##### metadata?

    `Record`\<`string`, `unknown`> = `{}`

    #### Returns

    `void`

    ### fatal()

    > **fatal**(`message`, `metadata?`): `void`

    Defined in: logger.ts:286

    Emit a fatal log entry.

    #### Parameters

    ##### message

    `string`

    ##### metadata?

    `Record`\<`string`, `unknown`> = `{}`

    #### Returns

    `void`

    ### info()

    > **info**(`message`, `metadata?`): `void`

    Defined in: logger.ts:262

    Emit an info log entry.

    #### Parameters

    ##### message

    `string`

    ##### metadata?

    `Record`\<`string`, `unknown`> = `{}`

    #### Returns

    `void`

    ### setTag()

    > **setTag**(`key`, `value`): `this`

    Defined in: logger.ts:245

    Add a tag to future log writes.

    #### Parameters

    ##### key

    `string`

    ##### value

    `unknown`

    #### Returns

    `this`

    ### warn()

    > **warn**(`message`, `metadata?`): `void`

    Defined in: logger.ts:270

    Emit a warning log entry.

    #### Parameters

    ##### message

    `string`

    ##### metadata?

    `Record`\<`string`, `unknown`> = `{}`

    #### Returns

    `void`
  </Accordion>

  <Accordion title="Logger: classes/RedisLoggerDriver">
    @fentaris/core / RedisLoggerDriver

    Defined in: logger.ts:169

    Redis-backed logger driver that appends JSON log entries to a list.

    ## Implements

    * `LoggerDriver`

    ## Constructors

    ### Constructor

    > **new RedisLoggerDriver**(`options`): `RedisLoggerDriver`

    Defined in: logger.ts:177

    Create a Redis logger driver.

    #### Parameters

    ##### options

    `RedisLoggerDriverOptions`

    #### Returns

    `RedisLoggerDriver`

    ## Methods

    ### write()

    > **write**(`entry`): `Promise`\<`void`>

    Defined in: logger.ts:182

    #### Parameters

    ##### entry

    `LogEntry`

    #### Returns

    `Promise`\<`void`>

    #### Implementation of

    `LoggerDriver.write`
  </Accordion>

  <Accordion title="Logger: functions/jsonConsoleLogger">
    @fentaris/core / jsonConsoleLogger

    > **jsonConsoleLogger**(`options?`): `Logger`

    Defined in: logger.ts:140

    Create a logger that writes structured JSON entries to stdout.

    ## Parameters

    ### options?

    `JsonConsoleLoggerOptions` = `{}`

    ## Returns

    `Logger`
  </Accordion>

  <Accordion title="Logger: type-aliases/JsonConsoleLoggerDriverOptions">
    @fentaris/core / JsonConsoleLoggerDriverOptions

    > **JsonConsoleLoggerDriverOptions** = `object`

    Defined in: logger.ts:96

    JSON console logger driver options.

    ## Properties

    ### writeLine?

    > `optional` **writeLine?**: (`line`) => `void`

    Defined in: logger.ts:97

    #### Parameters

    ##### line

    `string`

    #### Returns

    `void`
  </Accordion>

  <Accordion title="Logger: type-aliases/JsonConsoleLoggerOptions">
    @fentaris/core / JsonConsoleLoggerOptions

    > **JsonConsoleLoggerOptions** = `Omit`\<`LoggerOptions`, `"driver"`> & `JsonConsoleLoggerDriverOptions`

    Defined in: logger.ts:134

    JSON stdout logger factory options.
  </Accordion>

  <Accordion title="Logger: type-aliases/LogEntry">
    @fentaris/core / LogEntry

    > **LogEntry** = `object`

    Defined in: logger.ts:16

    Structured log entry payload.

    ## Properties

    ### context

    > **context**: `Record`\<`string`, `unknown`>

    Defined in: logger.ts:20

    ### level

    > **level**: `LogLevel`

    Defined in: logger.ts:17

    ### message

    > **message**: `string`

    Defined in: logger.ts:18

    ### metadata

    > **metadata**: `Record`\<`string`, `unknown`>

    Defined in: logger.ts:21

    ### timestamp

    > **timestamp**: `Date`

    Defined in: logger.ts:19
  </Accordion>

  <Accordion title="Logger: type-aliases/LoggerDriver">
    @fentaris/core / LoggerDriver

    > **LoggerDriver** = `object`

    Defined in: logger.ts:28

    Low-level logger driver interface.

    ## Methods

    ### write()

    > **write**(`entry`): `void` | `Promise`\<`void`>

    Defined in: logger.ts:29

    #### Parameters

    ##### entry

    `LogEntry`

    #### Returns

    `void` | `Promise`\<`void`>
  </Accordion>

  <Accordion title="Logger: type-aliases/LoggerOptions">
    @fentaris/core / LoggerOptions

    > **LoggerOptions** = `object`

    Defined in: logger.ts:36

    Logger configuration options.

    ## Properties

    ### context?

    > `optional` **context?**: `Record`\<`string`, `unknown`>

    Defined in: logger.ts:39

    ### driver?

    > `optional` **driver?**: `LoggerDriver`

    Defined in: logger.ts:38

    ### level?

    > `optional` **level?**: `LogLevel`

    Defined in: logger.ts:37

    ### onWrite?

    > `optional` **onWrite?**: (`entry`) => `void` | `Promise`\<`void`>

    Defined in: logger.ts:40

    #### Parameters

    ##### entry

    `LogEntry`

    #### Returns

    `void` | `Promise`\<`void`>

    ### redact?

    > `optional` **redact?**: `boolean` | `LoggerRedactionOptions`

    Defined in: logger.ts:41
  </Accordion>

  <Accordion title="Logger: type-aliases/LoggerRedactionOptions">
    @fentaris/core / LoggerRedactionOptions

    > **LoggerRedactionOptions** = `object`

    Defined in: logger.ts:48

    Logger redaction configuration.

    ## Properties

    ### enabled?

    > `optional` **enabled?**: `boolean`

    Defined in: logger.ts:49

    ### keys?

    > `optional` **keys?**: (`string` | `RegExp`)\[]

    Defined in: logger.ts:51

    ### paths?

    > `optional` **paths?**: `string`\[]

    Defined in: logger.ts:52

    ### redact?

    > `optional` **redact?**: (`value`, `path`, `key?`) => `unknown`

    Defined in: logger.ts:53

    #### Parameters

    ##### value

    `unknown`

    ##### path

    `string`\[]

    ##### key?

    `string`

    #### Returns

    `unknown`

    ### replacement?

    > `optional` **replacement?**: `string`

    Defined in: logger.ts:50
  </Accordion>

  <Accordion title="Logger: type-aliases/LogLevel">
    @fentaris/core / LogLevel

    > **LogLevel** = `"debug"` | `"info"` | `"warn"` | `"error"` | `"fatal"`

    Defined in: logger.ts:10

    Supported log levels.
  </Accordion>

  <Accordion title="Logger: type-aliases/RedisLoggerClient">
    @fentaris/core / RedisLoggerClient

    > **RedisLoggerClient** = `object`

    Defined in: logger.ts:152

    Minimal Redis-compatible logger client contract.

    ## Methods

    ### rpush()

    > **rpush**(`key`, `value`): `void` | `Promise`\<`unknown`>

    Defined in: logger.ts:153

    #### Parameters

    ##### key

    `string`

    ##### value

    `string`

    #### Returns

    `void` | `Promise`\<`unknown`>
  </Accordion>

  <Accordion title="Logger: type-aliases/RedisLoggerDriverOptions">
    @fentaris/core / RedisLoggerDriverOptions

    > **RedisLoggerDriverOptions** = `object`

    Defined in: logger.ts:160

    Redis logger driver options.

    ## Properties

    ### client

    > **client**: `RedisLoggerClient`

    Defined in: logger.ts:161

    ### key?

    > `optional` **key?**: `string`

    Defined in: logger.ts:162
  </Accordion>
</AccordionGroup>

## Types

<AccordionGroup>
  <Accordion title="Types: classes/ResponseController">
    @fentaris/core / ResponseController

    Defined in: packages/core/src/types/middleware.ts:93

    Helper for returning allow/deny responses from middleware.

    ## Constructors

    ### Constructor

    > **new ResponseController**(): `ResponseController`

    #### Returns

    `ResponseController`

    ## Methods

    ### continue()

    > **continue**(): `undefined`

    Defined in: packages/core/src/types/middleware.ts:128

    Allow middleware to continue without overriding the response.

    #### Returns

    `undefined`

    ### deny()

    > **deny**(`message`): `object`

    Defined in: packages/core/src/types/middleware.ts:102

    Deny a tool call with a message.

    #### Parameters

    ##### message

    `string`

    #### Returns

    `object`

    ##### \_meta?

    > `optional` **\_meta?**: `object`

    ###### Index Signature

    \[`key`: `string`]: `unknown`

    ###### \_meta.io.modelcontextprotocol/related-task?

    > `optional` **io.modelcontextprotocol/related-task?**: `object`

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    > **taskId**: `string`

    ###### \_meta.progressToken?

    > `optional` **progressToken?**: `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ##### content

    > **content**: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]

    ##### isError?

    > `optional` **isError?**: `boolean`

    ##### structuredContent?

    > `optional` **structuredContent?**: `object`

    ###### Index Signature

    \[`key`: `string`]: `unknown`

    ### fail()

    > **fail**(`code`, `message`): `object`

    Defined in: packages/core/src/types/middleware.ts:113

    Return a structured MCP-style error without throwing.

    #### Parameters

    ##### code

    `number`

    ##### message

    `string`

    #### Returns

    `object`

    ##### \_meta?

    > `optional` **\_meta?**: `object`

    ###### Index Signature

    \[`key`: `string`]: `unknown`

    ###### \_meta.io.modelcontextprotocol/related-task?

    > `optional` **io.modelcontextprotocol/related-task?**: `object`

    If specified, this request is related to the provided task.

    ###### \_meta.io.modelcontextprotocol/related-task.taskId

    > **taskId**: `string`

    ###### \_meta.progressToken?

    > `optional` **progressToken?**: `string` | `number`

    If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.

    ##### content

    > **content**: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]

    ##### isError?

    > `optional` **isError?**: `boolean`

    ##### structuredContent?

    > `optional` **structuredContent?**: `object`

    ###### Index Signature

    \[`key`: `string`]: `unknown`

    ### injectToAgent()

    > **injectToAgent**(`message`): `void`

    Defined in: packages/core/src/types/middleware.ts:136

    Add guidance for the calling agent to the eventual tool response.

    #### Parameters

    ##### message

    `string`

    #### Returns

    `void`

    ### on()

    > **on**(`event`, `handler`): `void`

    Defined in: packages/core/src/types/middleware.ts:146

    Register a response event handler.

    #### Parameters

    ##### event

    `"error"`

    ##### handler

    (`error`) => `MaybePromise`\<`void`>

    #### Returns

    `void`
  </Accordion>

  <Accordion title="Types: interfaces/Isolation">
    @fentaris/core / Isolation

    Defined in: packages/core/src/types/policy.ts:127

    Isolation runtime for per-user execution.

    ## Methods

    ### close()

    > **close**(): `MaybePromise`\<`void`>

    Defined in: packages/core/src/types/policy.ts:133

    #### Returns

    `MaybePromise`\<`void`>

    ### queue()

    > **queue**(`userId`, `fn`, `timeout?`): `MaybePromise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    Defined in: packages/core/src/types/policy.ts:128

    #### Parameters

    ##### userId

    `string`

    ##### fn

    () => `MaybePromise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (... | ...)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>

    ##### timeout?

    `number`

    #### Returns

    `MaybePromise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: \{\[`key`: `string`]: `unknown`; `io.modelcontextprotocol/related-task?`: \{ `taskId`: `string`; }; `progressToken?`: `string` | `number`; }; `content`: (\{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `text`: `string`; `type`: `"text"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"image"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `data`: `string`; `mimeType`: `string`; `type`: `"audio"`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `description?`: `string`; `icons?`: `object`\[]; `mimeType?`: `string`; `name`: `string`; `size?`: `number`; `title?`: `string`; `type`: `"resource_link"`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `annotations?`: \{ `audience?`: (`"user"` | `"assistant"`)\[]; `lastModified?`: `string`; `priority?`: `number`; }; `resource`: \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `mimeType?`: `string`; `text`: `string`; `uri`: `string`; } | \{ `_meta?`: \{\[`key`: `string`]: `unknown`; }; `blob`: `string`; `mimeType?`: `string`; `uri`: `string`; }; `type`: `"resource"`; })\[]; `isError?`: `boolean`; `structuredContent?`: \{\[`key`: `string`]: `unknown`; }; }>
  </Accordion>

  <Accordion title="Types: interfaces/Policy">
    @fentaris/core / Policy

    Defined in: packages/core/src/types/policy.ts:59

    Policy for RBAC-style permission enforcement.

    ## Properties

    ### description?

    > `optional` **description?**: `string`

    Defined in: packages/core/src/types/policy.ts:61

    ### metadata?

    > `optional` **metadata?**: `object`

    Defined in: packages/core/src/types/policy.ts:69

    #### Index Signature

    \[`key`: `string`]: `unknown`

    #### maxDailyCalls?

    > `optional` **maxDailyCalls?**: `number`

    #### requiresApproval?

    > `optional` **requiresApproval?**: `boolean`

    ### name

    > **name**: `string`

    Defined in: packages/core/src/types/policy.ts:60

    ## Methods

    ### evaluate()

    > **evaluate**(`request`, `user`, `context?`): `MaybePromise`\<`PolicyDecision`>

    Defined in: packages/core/src/types/policy.ts:64

    #### Parameters

    ##### request

    `ToolCallRequest` | `CapabilityOperationRequest`

    ##### user

    `UserContext`

    ##### context?

    `MiddlewareContext`

    #### Returns

    `MaybePromise`\<`PolicyDecision`>

    ### getCapabilityPermissions()?

    > `optional` **getCapabilityPermissions**(`serverName`): `CapabilityPermission`\[]

    Defined in: packages/core/src/types/policy.ts:63

    #### Parameters

    ##### serverName

    `string`

    #### Returns

    `CapabilityPermission`\[]

    ### getPermissions()

    > **getPermissions**(`serverName`): `ToolPermission`\[]

    Defined in: packages/core/src/types/policy.ts:62

    #### Parameters

    ##### serverName

    `string`

    #### Returns

    `ToolPermission`\[]
  </Accordion>

  <Accordion title="Types: interfaces/RateLimiter">
    @fentaris/core / RateLimiter

    Defined in: packages/core/src/types/policy.ts:102

    Rate limiter with sliding window and quota support.

    ## Properties

    ### metadata?

    > `optional` **metadata?**: `object`

    Defined in: packages/core/src/types/policy.ts:107

    #### maxDailyCalls?

    > `optional` **maxDailyCalls?**: `number`

    #### maxPerWindow?

    > `optional` **maxPerWindow?**: `number`

    #### windowMs?

    > `optional` **windowMs?**: `number`

    ## Methods

    ### checkLimit()

    > **checkLimit**(`key`): `MaybePromise`\<`boolean`>

    Defined in: packages/core/src/types/policy.ts:104

    #### Parameters

    ##### key

    `string`

    #### Returns

    `MaybePromise`\<`boolean`>

    ### consume()

    > **consume**(`key`): `MaybePromise`\<`boolean`>

    Defined in: packages/core/src/types/policy.ts:103

    #### Parameters

    ##### key

    `string`

    #### Returns

    `MaybePromise`\<`boolean`>

    ### getRemainingCalls()

    > **getRemainingCalls**(`key`): `MaybePromise`\<`number`>

    Defined in: packages/core/src/types/policy.ts:106

    #### Parameters

    ##### key

    `string`

    #### Returns

    `MaybePromise`\<`number`>

    ### recordCall()

    > **recordCall**(`key`): `MaybePromise`\<`void`>

    Defined in: packages/core/src/types/policy.ts:105

    #### Parameters

    ##### key

    `string`

    #### Returns

    `MaybePromise`\<`void`>
  </Accordion>

  <Accordion title="Types: interfaces/RateLimitStore">
    @fentaris/core / RateLimitStore

    Defined in: packages/core/src/types/policy.ts:90

    Rate limit store for distributed tracking.

    ## Methods

    ### consume()

    > **consume**(`key`, `window`, `limit`): `MaybePromise`\<`boolean`>

    Defined in: packages/core/src/types/policy.ts:92

    #### Parameters

    ##### key

    `string`

    ##### window

    `number`

    ##### limit

    `number`

    #### Returns

    `MaybePromise`\<`boolean`>

    ### consumeMany()?

    > `optional` **consumeMany**(`limits`): `MaybePromise`\<`boolean`>

    Defined in: packages/core/src/types/policy.ts:93

    #### Parameters

    ##### limits

    `object`\[]

    #### Returns

    `MaybePromise`\<`boolean`>

    ### get()

    > **get**(`key`): `MaybePromise`\<`number`>

    Defined in: packages/core/src/types/policy.ts:94

    #### Parameters

    ##### key

    `string`

    #### Returns

    `MaybePromise`\<`number`>

    ### increment()

    > **increment**(`key`, `window`): `MaybePromise`\<`number`>

    Defined in: packages/core/src/types/policy.ts:91

    #### Parameters

    ##### key

    `string`

    ##### window

    `number`

    #### Returns

    `MaybePromise`\<`number`>

    ### reset()

    > **reset**(`key`): `MaybePromise`\<`void`>

    Defined in: packages/core/src/types/policy.ts:95

    #### Parameters

    ##### key

    `string`

    #### Returns

    `MaybePromise`\<`void`>
  </Accordion>

  <Accordion title="Types: interfaces/Registry">
    @fentaris/core / Registry

    Defined in: packages/core/src/types/policy.ts:80

    Registry for resolving user data and secrets.

    ## Methods

    ### getSecrets()

    > **getSecrets**(`userId`): `MaybePromise`\<`Record`\<`string`, `string`> | `null`>

    Defined in: packages/core/src/types/policy.ts:82

    #### Parameters

    ##### userId

    `string`

    #### Returns

    `MaybePromise`\<`Record`\<`string`, `string`> | `null`>

    ### getTokens()

    > **getTokens**(`userId`): `MaybePromise`\<`Record`\<`string`, `string`> | `null`>

    Defined in: packages/core/src/types/policy.ts:83

    #### Parameters

    ##### userId

    `string`

    #### Returns

    `MaybePromise`\<`Record`\<`string`, `string`> | `null`>

    ### getUser()

    > **getUser**(`userId`): `MaybePromise`\<`UserContext` | `null`>

    Defined in: packages/core/src/types/policy.ts:81

    #### Parameters

    ##### userId

    `string`

    #### Returns

    `MaybePromise`\<`UserContext` | `null`>
  </Accordion>

  <Accordion title="Types: type-aliases/ApprovalDecisionController">
    @fentaris/core / ApprovalDecisionController

    > **ApprovalDecisionController** = `object`

    Defined in: packages/core/src/types/shared.ts:142

    Ergonomic helpers for approval callbacks.

    ## Methods

    ### approve()

    > **approve**(`metadata?`): `ApprovalResult`

    Defined in: packages/core/src/types/shared.ts:143

    #### Parameters

    ##### metadata?

    `Record`\<`string`, `unknown`>

    #### Returns

    `ApprovalResult`

    ### deny()

    > **deny**(`reason?`, `metadata?`): `ApprovalResult`

    Defined in: packages/core/src/types/shared.ts:144

    #### Parameters

    ##### reason?

    `string`

    ##### metadata?

    `Record`\<`string`, `unknown`>

    #### Returns

    `ApprovalResult`

    ### pending()

    > **pending**(`reason?`, `metadata?`): `ApprovalResult`

    Defined in: packages/core/src/types/shared.ts:145

    #### Parameters

    ##### reason?

    `string`

    ##### metadata?

    `Record`\<`string`, `unknown`>

    #### Returns

    `ApprovalResult`
  </Accordion>

  <Accordion title="Types: type-aliases/ApprovalHandler">
    @fentaris/core / ApprovalHandler

    > **ApprovalHandler**\<`TRequest`> = (`request`, `context`) => `MaybePromise`\<`ApprovalResult`>

    Defined in: packages/core/src/types/shared.ts:168

    Permission approval callback.

    ## Type Parameters

    ### TRequest

    `TRequest`

    ## Parameters

    ### request

    `TRequest`

    ### context

    `MiddlewareContext`

    ## Returns

    `MaybePromise`\<`ApprovalResult`>
  </Accordion>

  <Accordion title="Types: type-aliases/ApprovalMetadata">
    @fentaris/core / ApprovalMetadata

    > **ApprovalMetadata** = `object`

    Defined in: packages/core/src/types/shared.ts:58

    Safe approval metadata exposed through policy decisions and logs.

    ## Properties

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/shared.ts:63

    ### reason?

    > `optional` **reason?**: `string`

    Defined in: packages/core/src/types/shared.ts:60

    ### requestId?

    > `optional` **requestId?**: `string`

    Defined in: packages/core/src/types/shared.ts:62

    ### status

    > **status**: `"approved"` | `"denied"` | `"pending"`

    Defined in: packages/core/src/types/shared.ts:59

    ### url?

    > `optional` **url?**: `string`

    Defined in: packages/core/src/types/shared.ts:61
  </Accordion>

  <Accordion title="Types: type-aliases/ApprovalResult">
    @fentaris/core / ApprovalResult

    > **ApprovalResult** = `boolean` | \{ `approved`: `boolean`; `metadata?`: `Record`\<`string`, `unknown`>; `reason?`: `string`; } | \{ `metadata?`: `Record`\<`string`, `unknown`>; `reason?`: `string`; `requestId?`: `string`; `status`: `"approved"` | `"denied"` | `"pending"`; `url?`: `string`; }

    Defined in: packages/core/src/types/shared.ts:123

    Structured result for permission approval callbacks.
  </Accordion>

  <Accordion title="Types: type-aliases/CapabilityOperationRequest">
    @fentaris/core / CapabilityOperationRequest

    > **CapabilityOperationRequest** = `object`

    Defined in: packages/core/src/types/mcp-operation.ts:110

    Normalized request used for operation-based policy evaluation.

    ## Properties

    ### operation

    > **operation**: `McpOperationName`

    Defined in: packages/core/src/types/mcp-operation.ts:112

    ### raw?

    > `optional` **raw?**: `unknown`

    Defined in: packages/core/src/types/mcp-operation.ts:115

    ### serverName

    > **serverName**: `string`

    Defined in: packages/core/src/types/mcp-operation.ts:111

    ### target?

    > `optional` **target?**: `string`

    Defined in: packages/core/src/types/mcp-operation.ts:113

    ### targetKind?

    > `optional` **targetKind?**: `CapabilityTargetKind`

    Defined in: packages/core/src/types/mcp-operation.ts:114
  </Accordion>

  <Accordion title="Types: type-aliases/CapabilityPermission">
    @fentaris/core / CapabilityPermission

    > **CapabilityPermission** = `object`

    Defined in: packages/core/src/types/policy.ts:34

    Operation-based permission model for governed MCP capabilities.

    ## Properties

    ### approval?

    > `optional` **approval?**: `ApprovalHandler`\<`CapabilityOperationRequest`>

    Defined in: packages/core/src/types/policy.ts:41

    ### effect?

    > `optional` **effect?**: `"allow"` | `"deny"`

    Defined in: packages/core/src/types/policy.ts:39

    ### limiter?

    > `optional` **limiter?**: `RateLimiter`

    Defined in: packages/core/src/types/policy.ts:40

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/policy.ts:42

    ### operation

    > **operation**: `McpOperationName` | `"*"`

    Defined in: packages/core/src/types/policy.ts:36

    ### server?

    > `optional` **server?**: `string`

    Defined in: packages/core/src/types/policy.ts:35

    ### target?

    > `optional` **target?**: `string`

    Defined in: packages/core/src/types/policy.ts:37

    ### targetKind?

    > `optional` **targetKind?**: `CapabilityTargetKind`

    Defined in: packages/core/src/types/policy.ts:38
  </Accordion>

  <Accordion title="Types: type-aliases/CapabilityTargetKind">
    @fentaris/core / CapabilityTargetKind

    > **CapabilityTargetKind** = `"tool"` | `"resource"` | `"resourceTemplate"` | `"prompt"` | `"completion"`

    Defined in: packages/core/src/types/mcp-operation.ts:104

    Capability target selector kind for policy permissions.
  </Accordion>

  <Accordion title="Types: type-aliases/CompleteParams">
    @fentaris/core / CompleteParams

    > **CompleteParams** = `CompleteRequest`\[`"params"`]

    Defined in: packages/core/src/types/mcp-operation.ts:45

    Request/result aliases for MCP completion operations.
  </Accordion>

  <Accordion title="Types: type-aliases/CompleteResponse">
    @fentaris/core / CompleteResponse

    > **CompleteResponse** = `CompleteResult`

    Defined in: packages/core/src/types/mcp-operation.ts:46
  </Accordion>

  <Accordion title="Types: type-aliases/CredentialSourceMetadata">
    @fentaris/core / CredentialSourceMetadata

    > **CredentialSourceMetadata** = `object`

    Defined in: packages/core/src/types/shared.ts:47

    Credential source metadata safe to expose in middleware and logs.

    ## Properties

    ### groupId?

    > `optional` **groupId?**: `string`

    Defined in: packages/core/src/types/shared.ts:51

    ### reference

    > **reference**: `string`

    Defined in: packages/core/src/types/shared.ts:48

    ### source

    > **source**: `"user"` | `"group"` | `"default"`

    Defined in: packages/core/src/types/shared.ts:49

    ### userId?

    > `optional` **userId?**: `string`

    Defined in: packages/core/src/types/shared.ts:50
  </Accordion>

  <Accordion title="Types: type-aliases/ErrorMapper">
    @fentaris/core / ErrorMapper

    > **ErrorMapper** = `object`

    Defined in: packages/core/src/types/policy.ts:140

    Error mapper for standardized MCP error responses.

    ## Methods

    ### mapError()

    > **mapError**(`error`, `context`): `object`

    Defined in: packages/core/src/types/policy.ts:141

    #### Parameters

    ##### error

    `unknown`

    ##### context

    ###### serverName?

    `string`

    ###### toolName?

    `string`

    #### Returns

    `object`

    ##### code

    > **code**: `number`

    ##### message

    > **message**: `string`
  </Accordion>

  <Accordion title="Types: type-aliases/FentarisTransport">
    @fentaris/core / FentarisTransport

    > **FentarisTransport** = `object`

    Defined in: packages/core/src/types/transport.ts:22

    Transport interface for MCP client interactions.

    ## Methods

    ### callTool()

    > **callTool**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `content`: `z.ZodDefault`\<`z.ZodArray`\<`z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `text`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `description`: `z.ZodOptional`\<...>; `icons`: `z.ZodOptional`\<...>; `mimeType`: `z.ZodOptional`\<...>; `name`: `z.ZodString`; `size`: `z.ZodOptional`\<...>; `title`: `z.ZodOptional`\<...>; `type`: `z.ZodLiteral`\<...>; `uri`: `z.ZodString`; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `resource`: `z.ZodUnion`\<...>; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>]>>>; `isError?`: `z.ZodOptional`\<`z.ZodBoolean`>; `structuredContent?`: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodUnknown`>>; }>

    Defined in: packages/core/src/types/transport.ts:34

    #### Parameters

    ##### params

    ###### \_meta?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ###### arguments?

    `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodUnknown`>>

    ###### name

    `z.ZodString`

    ###### task?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `ttl`: `z.ZodOptional`\<`z.ZodNumber`>; }, `z.core.$strip`>>

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `content`: `z.ZodDefault`\<`z.ZodArray`\<`z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `text`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `description`: `z.ZodOptional`\<...>; `icons`: `z.ZodOptional`\<...>; `mimeType`: `z.ZodOptional`\<...>; `name`: `z.ZodString`; `size`: `z.ZodOptional`\<...>; `title`: `z.ZodOptional`\<...>; `type`: `z.ZodLiteral`\<...>; `uri`: `z.ZodString`; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `resource`: `z.ZodUnion`\<...>; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>]>>>; `isError?`: `z.ZodOptional`\<`z.ZodBoolean`>; `structuredContent?`: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodUnknown`>>; }>

    ### close()

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

    Defined in: packages/core/src/types/transport.ts:42

    #### Returns

    `Promise`\<`void`>

    ### complete()?

    > `optional` **complete**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `completion`: `z.ZodObject`\<\{ `hasMore`: `z.ZodOptional`\<`z.ZodBoolean`>; `total`: `z.ZodOptional`\<`z.ZodNumber`>; `values`: `z.ZodArray`\<`z.ZodString`>; }, `z.core.$loose`>; }>

    Defined in: packages/core/src/types/transport.ts:40

    #### Parameters

    ##### params

    ###### \_meta?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ###### argument

    `z.ZodObject`\<\{ `name`: `z.ZodString`; `value`: `z.ZodString`; }, `z.core.$strip`>

    ###### context?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `arguments`: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodString`>>; }, `z.core.$strip`>>

    ###### ref

    `z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `name`: `z.ZodString`; `type`: `z.ZodLiteral`\<`"ref/prompt"`>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `type`: `z.ZodLiteral`\<`"ref/resource"`>; `uri`: `z.ZodString`; }, `z.core.$strip`>]>

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `completion`: `z.ZodObject`\<\{ `hasMore`: `z.ZodOptional`\<`z.ZodBoolean`>; `total`: `z.ZodOptional`\<`z.ZodNumber`>; `values`: `z.ZodArray`\<`z.ZodString`>; }, `z.core.$loose`>; }>

    ### getPrompt()?

    > `optional` **getPrompt**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `description?`: `z.ZodOptional`\<`z.ZodString`>; `messages`: `z.ZodArray`\<`z.ZodObject`\<\{ `content`: `z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `text`: ...; `type`: ...; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `data`: ...; `mimeType`: ...; `type`: ...; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `data`: ...; `mimeType`: ...; `type`: ...; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `description`: ...; `icons`: ...; `mimeType`: ...; `name`: ...; `size`: ...; `title`: ...; `type`: ...; `uri`: ...; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `resource`: ...; `type`: ...; }, `z.core.$strip`>]>; `role`: `z.ZodEnum`\<\{ `assistant`: `"assistant"`; `user`: `"user"`; }>; }, `z.core.$strip`>>; }>

    Defined in: packages/core/src/types/transport.ts:39

    #### Parameters

    ##### params

    ###### \_meta?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ###### arguments?

    `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodString`>>

    ###### name

    `z.ZodString`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `description?`: `z.ZodOptional`\<`z.ZodString`>; `messages`: `z.ZodArray`\<`z.ZodObject`\<\{ `content`: `z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `text`: ...; `type`: ...; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `data`: ...; `mimeType`: ...; `type`: ...; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `data`: ...; `mimeType`: ...; `type`: ...; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `description`: ...; `icons`: ...; `mimeType`: ...; `name`: ...; `size`: ...; `title`: ...; `type`: ...; `uri`: ...; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: ...; `annotations`: ...; `resource`: ...; `type`: ...; }, `z.core.$strip`>]>; `role`: `z.ZodEnum`\<\{ `assistant`: `"assistant"`; `user`: `"user"`; }>; }, `z.core.$strip`>>; }>

    ### listPrompts()?

    > `optional` **listPrompts**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `nextCursor?`: `z.ZodOptional`\<`z.ZodString`>; `prompts`: `z.ZodArray`\<`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodObject`\<\{ }, `z.core.$loose`>>; `arguments`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `description`: `z.ZodOptional`\<...>; `name`: `z.ZodString`; `required`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `description`: `z.ZodOptional`\<`z.ZodString`>; `icons`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `mimeType`: `z.ZodOptional`\<...>; `sizes`: `z.ZodOptional`\<...>; `src`: `z.ZodString`; `theme`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `name`: `z.ZodString`; `title`: `z.ZodOptional`\<`z.ZodString`>; }, `z.core.$strip`>>; }>

    Defined in: packages/core/src/types/transport.ts:38

    #### Parameters

    ##### params?

    ###### \_meta?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ###### cursor?

    `z.ZodOptional`\<`z.ZodString`>

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `nextCursor?`: `z.ZodOptional`\<`z.ZodString`>; `prompts`: `z.ZodArray`\<`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodObject`\<\{ }, `z.core.$loose`>>; `arguments`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `description`: `z.ZodOptional`\<...>; `name`: `z.ZodString`; `required`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `description`: `z.ZodOptional`\<`z.ZodString`>; `icons`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `mimeType`: `z.ZodOptional`\<...>; `sizes`: `z.ZodOptional`\<...>; `src`: `z.ZodString`; `theme`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `name`: `z.ZodString`; `title`: `z.ZodOptional`\<`z.ZodString`>; }, `z.core.$strip`>>; }>

    ### listResources()?

    > `optional` **listResources**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `nextCursor?`: `z.ZodOptional`\<`z.ZodString`>; `resources`: `z.ZodArray`\<`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodObject`\<\{ }, `z.core.$loose`>>; `annotations`: `z.ZodOptional`\<`z.ZodObject`\<\{ `audience`: `z.ZodOptional`\<`z.ZodArray`\<...>>; `lastModified`: `z.ZodOptional`\<`z.ZodISODateTime`>; `priority`: `z.ZodOptional`\<`z.ZodNumber`>; }, `z.core.$strip`>>; `description`: `z.ZodOptional`\<`z.ZodString`>; `icons`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `mimeType`: `z.ZodOptional`\<...>; `sizes`: `z.ZodOptional`\<...>; `src`: `z.ZodString`; `theme`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `mimeType`: `z.ZodOptional`\<`z.ZodString`>; `name`: `z.ZodString`; `size`: `z.ZodOptional`\<`z.ZodNumber`>; `title`: `z.ZodOptional`\<`z.ZodString`>; `uri`: `z.ZodString`; }, `z.core.$strip`>>; }>

    Defined in: packages/core/src/types/transport.ts:35

    #### Parameters

    ##### params?

    ###### \_meta?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ###### cursor?

    `z.ZodOptional`\<`z.ZodString`>

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `nextCursor?`: `z.ZodOptional`\<`z.ZodString`>; `resources`: `z.ZodArray`\<`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodObject`\<\{ }, `z.core.$loose`>>; `annotations`: `z.ZodOptional`\<`z.ZodObject`\<\{ `audience`: `z.ZodOptional`\<`z.ZodArray`\<...>>; `lastModified`: `z.ZodOptional`\<`z.ZodISODateTime`>; `priority`: `z.ZodOptional`\<`z.ZodNumber`>; }, `z.core.$strip`>>; `description`: `z.ZodOptional`\<`z.ZodString`>; `icons`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `mimeType`: `z.ZodOptional`\<...>; `sizes`: `z.ZodOptional`\<...>; `src`: `z.ZodString`; `theme`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `mimeType`: `z.ZodOptional`\<`z.ZodString`>; `name`: `z.ZodString`; `size`: `z.ZodOptional`\<`z.ZodNumber`>; `title`: `z.ZodOptional`\<`z.ZodString`>; `uri`: `z.ZodString`; }, `z.core.$strip`>>; }>

    ### listResourceTemplates()?

    > `optional` **listResourceTemplates**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `nextCursor?`: `z.ZodOptional`\<`z.ZodString`>; `resourceTemplates`: `z.ZodArray`\<`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodObject`\<\{ }, `z.core.$loose`>>; `annotations`: `z.ZodOptional`\<`z.ZodObject`\<\{ `audience`: `z.ZodOptional`\<`z.ZodArray`\<...>>; `lastModified`: `z.ZodOptional`\<`z.ZodISODateTime`>; `priority`: `z.ZodOptional`\<`z.ZodNumber`>; }, `z.core.$strip`>>; `description`: `z.ZodOptional`\<`z.ZodString`>; `icons`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `mimeType`: `z.ZodOptional`\<...>; `sizes`: `z.ZodOptional`\<...>; `src`: `z.ZodString`; `theme`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `mimeType`: `z.ZodOptional`\<`z.ZodString`>; `name`: `z.ZodString`; `title`: `z.ZodOptional`\<`z.ZodString`>; `uriTemplate`: `z.ZodString`; }, `z.core.$strip`>>; }>

    Defined in: packages/core/src/types/transport.ts:37

    #### Parameters

    ##### params?

    ###### \_meta?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ###### cursor?

    `z.ZodOptional`\<`z.ZodString`>

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `nextCursor?`: `z.ZodOptional`\<`z.ZodString`>; `resourceTemplates`: `z.ZodArray`\<`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodObject`\<\{ }, `z.core.$loose`>>; `annotations`: `z.ZodOptional`\<`z.ZodObject`\<\{ `audience`: `z.ZodOptional`\<`z.ZodArray`\<...>>; `lastModified`: `z.ZodOptional`\<`z.ZodISODateTime`>; `priority`: `z.ZodOptional`\<`z.ZodNumber`>; }, `z.core.$strip`>>; `description`: `z.ZodOptional`\<`z.ZodString`>; `icons`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `mimeType`: `z.ZodOptional`\<...>; `sizes`: `z.ZodOptional`\<...>; `src`: `z.ZodString`; `theme`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `mimeType`: `z.ZodOptional`\<`z.ZodString`>; `name`: `z.ZodString`; `title`: `z.ZodOptional`\<`z.ZodString`>; `uriTemplate`: `z.ZodString`; }, `z.core.$strip`>>; }>

    ### listTools()

    > **listTools**(`params?`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `nextCursor?`: `z.ZodOptional`\<`z.ZodString`>; `tools`: `z.ZodArray`\<`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodUnknown`>>; `annotations`: `z.ZodOptional`\<`z.ZodObject`\<\{ `destructiveHint`: `z.ZodOptional`\<`z.ZodBoolean`>; `idempotentHint`: `z.ZodOptional`\<`z.ZodBoolean`>; `openWorldHint`: `z.ZodOptional`\<`z.ZodBoolean`>; `readOnlyHint`: `z.ZodOptional`\<`z.ZodBoolean`>; `title`: `z.ZodOptional`\<`z.ZodString`>; }, `z.core.$strip`>>; `description`: `z.ZodOptional`\<`z.ZodString`>; `execution`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskSupport`: `z.ZodOptional`\<`z.ZodEnum`\<...>>; }, `z.core.$strip`>>; `icons`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `mimeType`: `z.ZodOptional`\<...>; `sizes`: `z.ZodOptional`\<...>; `src`: `z.ZodString`; `theme`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `inputSchema`: `z.ZodObject`\<\{ `properties`: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodCustom`\<..., ...>>>; `required`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodString`>>; `type`: `z.ZodLiteral`\<`"object"`>; }, `z.core.$catchall`\<`z.ZodUnknown`>>; `name`: `z.ZodString`; `outputSchema`: `z.ZodOptional`\<`z.ZodObject`\<\{ `properties`: `z.ZodOptional`\<`z.ZodRecord`\<..., ...>>; `required`: `z.ZodOptional`\<`z.ZodArray`\<...>>; `type`: `z.ZodLiteral`\<`"object"`>; }, `z.core.$catchall`\<`z.ZodUnknown`>>>; `title`: `z.ZodOptional`\<`z.ZodString`>; }, `z.core.$strip`>>; }>

    Defined in: packages/core/src/types/transport.ts:33

    #### Parameters

    ##### params?

    ###### \_meta?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ###### cursor?

    `z.ZodOptional`\<`z.ZodString`>

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `nextCursor?`: `z.ZodOptional`\<`z.ZodString`>; `tools`: `z.ZodArray`\<`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodUnknown`>>; `annotations`: `z.ZodOptional`\<`z.ZodObject`\<\{ `destructiveHint`: `z.ZodOptional`\<`z.ZodBoolean`>; `idempotentHint`: `z.ZodOptional`\<`z.ZodBoolean`>; `openWorldHint`: `z.ZodOptional`\<`z.ZodBoolean`>; `readOnlyHint`: `z.ZodOptional`\<`z.ZodBoolean`>; `title`: `z.ZodOptional`\<`z.ZodString`>; }, `z.core.$strip`>>; `description`: `z.ZodOptional`\<`z.ZodString`>; `execution`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskSupport`: `z.ZodOptional`\<`z.ZodEnum`\<...>>; }, `z.core.$strip`>>; `icons`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodObject`\<\{ `mimeType`: `z.ZodOptional`\<...>; `sizes`: `z.ZodOptional`\<...>; `src`: `z.ZodString`; `theme`: `z.ZodOptional`\<...>; }, `z.core.$strip`>>>; `inputSchema`: `z.ZodObject`\<\{ `properties`: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodCustom`\<..., ...>>>; `required`: `z.ZodOptional`\<`z.ZodArray`\<`z.ZodString`>>; `type`: `z.ZodLiteral`\<`"object"`>; }, `z.core.$catchall`\<`z.ZodUnknown`>>; `name`: `z.ZodString`; `outputSchema`: `z.ZodOptional`\<`z.ZodObject`\<\{ `properties`: `z.ZodOptional`\<`z.ZodRecord`\<..., ...>>; `required`: `z.ZodOptional`\<`z.ZodArray`\<...>>; `type`: `z.ZodLiteral`\<`"object"`>; }, `z.core.$catchall`\<`z.ZodUnknown`>>>; `title`: `z.ZodOptional`\<`z.ZodString`>; }, `z.core.$strip`>>; }>

    ### ping()?

    > `optional` **ping**(): `Promise`\<\{ `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; }>

    Defined in: packages/core/src/types/transport.ts:41

    #### Returns

    `Promise`\<\{ `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; }>

    ### readResource()?

    > `optional` **readResource**(`params`): `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `contents`: `z.ZodArray`\<`z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodRecord`\<..., ...>>; `mimeType`: `z.ZodOptional`\<`z.ZodString`>; `text`: `z.ZodString`; `uri`: `z.ZodString`; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodRecord`\<..., ...>>; `blob`: `z.ZodString`; `mimeType`: `z.ZodOptional`\<`z.ZodString`>; `uri`: `z.ZodString`; }, `z.core.$strip`>]>>; }>

    Defined in: packages/core/src/types/transport.ts:36

    #### Parameters

    ##### params

    ###### \_meta?

    `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ###### uri

    `z.ZodString`

    #### Returns

    `Promise`\<\{\[`key`: `string`]: `unknown`; `_meta?`: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>; `contents`: `z.ZodArray`\<`z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodRecord`\<..., ...>>; `mimeType`: `z.ZodOptional`\<`z.ZodString`>; `text`: `z.ZodString`; `uri`: `z.ZodString`; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<`z.ZodRecord`\<..., ...>>; `blob`: `z.ZodString`; `mimeType`: `z.ZodOptional`\<`z.ZodString`>; `uri`: `z.ZodString`; }, `z.core.$strip`>]>>; }>

    ### withProxyContext()?

    > `optional` **withProxyContext**\<`T`>(`context`, `run`): `Promise`\<`T`>

    Defined in: packages/core/src/types/transport.ts:32

    Run an MCP operation with the governed proxy context that authorized it.

    Context-aware transports (including edge dispatch) use this explicit
    contract to observe the authenticated subject, downstream session, policy
    decision, and selected capability without changing operation signatures.
    Transports that do not need proxy context may omit it.

    #### Type Parameters

    ##### T

    `T`

    #### Parameters

    ##### context

    `ProxyContext`

    ##### run

    () => `Promise`\<`T`>

    #### Returns

    `Promise`\<`T`>
  </Accordion>

  <Accordion title="Types: type-aliases/GetPromptParams">
    @fentaris/core / GetPromptParams

    > **GetPromptParams** = `GetPromptRequest`\[`"params"`]

    Defined in: packages/core/src/types/mcp-operation.ts:38
  </Accordion>

  <Accordion title="Types: type-aliases/GetPromptResponse">
    @fentaris/core / GetPromptResponse

    > **GetPromptResponse** = `GetPromptResult`

    Defined in: packages/core/src/types/mcp-operation.ts:39
  </Accordion>

  <Accordion title="Types: type-aliases/GovernanceContext">
    @fentaris/core / GovernanceContext

    > **GovernanceContext** = `MiddlewareContext` & `object`

    Defined in: packages/core/src/types/policy.ts:151

    Extended middleware context with governance.

    ## Type Declaration

    ### identity?

    > `optional` **identity?**: `IdentityMetadata`

    ### policy?

    > `optional` **policy?**: `Policy`

    ### policyDecision?

    > `optional` **policyDecision?**: `PolicyDecision`

    ### rateLimiter?

    > `optional` **rateLimiter?**: `RateLimiter`

    ### registry?

    > `optional` **registry?**: `Registry`
  </Accordion>

  <Accordion title="Types: type-aliases/GroupMembership">
    @fentaris/core / GroupMembership

    > **GroupMembership** = `object`

    Defined in: packages/core/src/types/shared.ts:37

    Configured group membership metadata for a resolved subject.

    ## Properties

    ### id

    > **id**: `string`

    Defined in: packages/core/src/types/shared.ts:38

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/shared.ts:40

    ### name?

    > `optional` **name?**: `string`

    Defined in: packages/core/src/types/shared.ts:39
  </Accordion>

  <Accordion title="Types: type-aliases/HealthCheckContext">
    @fentaris/core / HealthCheckContext

    > **HealthCheckContext** = `object`

    Defined in: packages/core/src/health/health.ts:86

    ## Properties

    ### auth

    > **auth**: `object`

    Defined in: packages/core/src/health/health.ts:92

    #### state()

    > **state**(): `HealthCheckResult`

    ##### Returns

    `HealthCheckResult`

    ### identity

    > **identity**: `object`

    Defined in: packages/core/src/health/health.ts:93

    #### state()

    > **state**(): `HealthCheckResult`

    ##### Returns

    `HealthCheckResult`

    ### policy

    > **policy**: `object`

    Defined in: packages/core/src/health/health.ts:91

    #### state()

    > **state**(): `HealthCheckResult`

    ##### Returns

    `HealthCheckResult`

    ### runtime

    > **runtime**: `HealthRuntimeContext`

    Defined in: packages/core/src/health/health.ts:87

    ## Methods

    ### group()

    > **group**(`id`): `HealthGroupContext`

    Defined in: packages/core/src/health/health.ts:89

    #### Parameters

    ##### id

    `string`

    #### Returns

    `HealthGroupContext`

    ### mcp()

    > **mcp**(`name`): `HealthServerContext`

    Defined in: packages/core/src/health/health.ts:88

    #### Parameters

    ##### name

    `string`

    #### Returns

    `HealthServerContext`

    ### transport()

    > **transport**(`nameOrType?`): `HealthTransportContext`

    Defined in: packages/core/src/health/health.ts:90

    #### Parameters

    ##### nameOrType?

    `string`

    #### Returns

    `HealthTransportContext`
  </Accordion>

  <Accordion title="Types: type-aliases/HealthCheckHandler">
    @fentaris/core / HealthCheckHandler

    > **HealthCheckHandler** = (`ctx`) => `HealthStatus` | `Partial`\<`HealthCheckResult`> | `Promise`\<`HealthStatus` | `Partial`\<`HealthCheckResult`>>

    Defined in: packages/core/src/health/health.ts:28

    ## Parameters

    ### ctx

    `HealthCheckContext`

    ## Returns

    `HealthStatus` | `Partial`\<`HealthCheckResult`> | `Promise`\<`HealthStatus` | `Partial`\<`HealthCheckResult`>>
  </Accordion>

  <Accordion title="Types: type-aliases/HealthCheckResult">
    @fentaris/core / HealthCheckResult

    > **HealthCheckResult** = `object`

    Defined in: packages/core/src/health/health.ts:10

    ## Properties

    ### checkedAt

    > **checkedAt**: `Date`

    Defined in: packages/core/src/health/health.ts:15

    ### durationMs

    > **durationMs**: `number`

    Defined in: packages/core/src/health/health.ts:14

    ### error?

    > `optional` **error?**: `ReturnType`\<*typeof* `runtimeErrorToEventPayload`>

    Defined in: packages/core/src/health/health.ts:17

    ### message?

    > `optional` **message?**: `string`

    Defined in: packages/core/src/health/health.ts:13

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/health/health.ts:16

    ### name

    > **name**: `string`

    Defined in: packages/core/src/health/health.ts:11

    ### status

    > **status**: `HealthStatus`

    Defined in: packages/core/src/health/health.ts:12
  </Accordion>

  <Accordion title="Types: type-aliases/HealthConfig">
    @fentaris/core / HealthConfig

    > **HealthConfig** = `boolean` | `HealthBuilder` | `HealthBuilderOptions` & `object`

    Defined in: packages/core/src/health/health.ts:39
  </Accordion>

  <Accordion title="Types: type-aliases/HealthReport">
    @fentaris/core / HealthReport

    > **HealthReport** = `object`

    Defined in: packages/core/src/health/health.ts:20

    ## Properties

    ### checkedAt

    > **checkedAt**: `Date`

    Defined in: packages/core/src/health/health.ts:22

    ### checks

    > **checks**: `HealthCheckResult`\[]

    Defined in: packages/core/src/health/health.ts:24

    ### durationMs

    > **durationMs**: `number`

    Defined in: packages/core/src/health/health.ts:23

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/health/health.ts:25

    ### status

    > **status**: `HealthStatus`

    Defined in: packages/core/src/health/health.ts:21
  </Accordion>

  <Accordion title="Types: type-aliases/HealthStatus">
    @fentaris/core / HealthStatus

    > **HealthStatus** = `"ok"` | `"degraded"` | `"down"` | `"unknown"`

    Defined in: packages/core/src/health/health.ts:7
  </Accordion>

  <Accordion title="Types: type-aliases/IdentityMetadata">
    @fentaris/core / IdentityMetadata

    > **IdentityMetadata** = `object`

    Defined in: packages/core/src/types/shared.ts:112

    Identity metadata resolved at the proxy edge.

    ## Properties

    ### authenticated?

    > `optional` **authenticated?**: `boolean`

    Defined in: packages/core/src/types/shared.ts:114

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/shared.ts:116

    ### strategy?

    > `optional` **strategy?**: `string`

    Defined in: packages/core/src/types/shared.ts:113

    ### userId?

    > `optional` **userId?**: `string`

    Defined in: packages/core/src/types/shared.ts:115
  </Accordion>

  <Accordion title="Types: type-aliases/IdentityStrategy">
    @fentaris/core / IdentityStrategy

    > **IdentityStrategy** = `object`

    Defined in: packages/core/src/types/policy.ts:118

    Identity resolution strategy.

    ## Properties

    ### name

    > **name**: `string`

    Defined in: packages/core/src/types/policy.ts:119

    ## Methods

    ### resolve()

    > **resolve**(`request`): `MaybePromise`\<`UserContext` | `null`>

    Defined in: packages/core/src/types/policy.ts:120

    #### Parameters

    ##### request

    ###### headers?

    `Record`\<`string`, `string`>

    #### Returns

    `MaybePromise`\<`UserContext` | `null`>
  </Accordion>

  <Accordion title="Types: type-aliases/LegacyMiddleware">
    @fentaris/core / LegacyMiddleware

    > **LegacyMiddleware** = (`request`, `context`, `next`) => `MaybePromise`\<`CallToolResult` | `void`>

    Defined in: packages/core/src/types/middleware.ts:247

    Legacy middleware function signature.

    ## Parameters

    ### request

    `ToolCallRequest`

    ### context

    `MiddlewareContext`

    ### next

    `Next`

    ## Returns

    `MaybePromise`\<`CallToolResult` | `void`>
  </Accordion>

  <Accordion title="Types: type-aliases/LifecycleHook">
    @fentaris/core / LifecycleHook

    > **LifecycleHook** = (`event`, `context`) => `MaybePromise`\<`void`>

    Defined in: packages/core/src/types/middleware.ts:55

    Hook invoked for proxy lifecycle events.

    ## Parameters

    ### event

    `LifecycleHookEvent`

    ### context

    `LifecycleHookContext`

    ## Returns

    `MaybePromise`\<`void`>
  </Accordion>

  <Accordion title="Types: type-aliases/LifecycleHookContext">
    @fentaris/core / LifecycleHookContext

    > **LifecycleHookContext** = `object`

    Defined in: packages/core/src/types/middleware.ts:41

    Lifecycle hook context.

    ## Properties

    ### error?

    > `optional` **error?**: `Error`

    Defined in: packages/core/src/types/middleware.ts:47

    ### identity?

    > `optional` **identity?**: `IdentityMetadata`

    Defined in: packages/core/src/types/middleware.ts:44

    ### log

    > **log**: `Logger`

    Defined in: packages/core/src/types/middleware.ts:48

    ### request?

    > `optional` **request?**: `ToolCallRequest`

    Defined in: packages/core/src/types/middleware.ts:46

    ### sessionId?

    > `optional` **sessionId?**: `string`

    Defined in: packages/core/src/types/middleware.ts:45

    ### subject?

    > `optional` **subject?**: `ResolvedSubject`

    Defined in: packages/core/src/types/middleware.ts:43

    ### user

    > **user**: `UserContext`

    Defined in: packages/core/src/types/middleware.ts:42
  </Accordion>

  <Accordion title="Types: type-aliases/LifecycleHookEvent">
    @fentaris/core / LifecycleHookEvent

    > **LifecycleHookEvent** = `"sessionStart"` | `"sessionEnd"` | `"toolFailure"`

    Defined in: packages/core/src/types/middleware.ts:35

    Lifecycle event names emitted by the proxy.
  </Accordion>

  <Accordion title="Types: type-aliases/ListPromptsParams">
    @fentaris/core / ListPromptsParams

    > **ListPromptsParams** = `ListPromptsRequest`\[`"params"`]

    Defined in: packages/core/src/types/mcp-operation.ts:36

    Request/result aliases for MCP server prompt operations.
  </Accordion>

  <Accordion title="Types: type-aliases/ListPromptsResponse">
    @fentaris/core / ListPromptsResponse

    > **ListPromptsResponse** = `ListPromptsResult`

    Defined in: packages/core/src/types/mcp-operation.ts:37
  </Accordion>

  <Accordion title="Types: type-aliases/ListResourcesParams">
    @fentaris/core / ListResourcesParams

    > **ListResourcesParams** = `ListResourcesRequest`\[`"params"`]

    Defined in: packages/core/src/types/mcp-operation.ts:25

    Request/result aliases for MCP server resource operations.
  </Accordion>

  <Accordion title="Types: type-aliases/ListResourcesResponse">
    @fentaris/core / ListResourcesResponse

    > **ListResourcesResponse** = `ListResourcesResult`

    Defined in: packages/core/src/types/mcp-operation.ts:26
  </Accordion>

  <Accordion title="Types: type-aliases/ListResourceTemplatesParams">
    @fentaris/core / ListResourceTemplatesParams

    > **ListResourceTemplatesParams** = `ListResourceTemplatesRequest`\[`"params"`]

    Defined in: packages/core/src/types/mcp-operation.ts:29
  </Accordion>

  <Accordion title="Types: type-aliases/ListResourceTemplatesResponse">
    @fentaris/core / ListResourceTemplatesResponse

    > **ListResourceTemplatesResponse** = `ListResourceTemplatesResult`

    Defined in: packages/core/src/types/mcp-operation.ts:30
  </Accordion>

  <Accordion title="Types: type-aliases/ListToolsContext">
    @fentaris/core / ListToolsContext

    > **ListToolsContext** = `object`

    Defined in: packages/core/src/types/middleware.ts:79

    Context passed to list tool hooks.

    ## Properties

    ### credentialSources?

    > `optional` **credentialSources?**: `CredentialSourceMetadata`\[]

    Defined in: packages/core/src/types/middleware.ts:86

    ### identity?

    > `optional` **identity?**: `IdentityMetadata`

    Defined in: packages/core/src/types/middleware.ts:82

    ### log

    > **log**: `Logger`

    Defined in: packages/core/src/types/middleware.ts:83

    ### policy?

    > `optional` **policy?**: `Policy`

    Defined in: packages/core/src/types/middleware.ts:84

    ### policyDecision?

    > `optional` **policyDecision?**: `PolicyDecision`

    Defined in: packages/core/src/types/middleware.ts:85

    ### subject?

    > `optional` **subject?**: `ResolvedSubject`

    Defined in: packages/core/src/types/middleware.ts:81

    ### user

    > **user**: `UserContext`

    Defined in: packages/core/src/types/middleware.ts:80
  </Accordion>

  <Accordion title="Types: type-aliases/ListToolsHook">
    @fentaris/core / ListToolsHook

    > **ListToolsHook** = (`tools`, `context`) => `MaybePromise`\<`ListToolsResult`\`"tools"`\] \| [`ListToolsResult`\|`void\`>

    Defined in: packages/core/src/types/middleware.ts:70

    Hook invoked after upstream tool discovery and before returning tools to the client.

    ## Parameters

    ### tools

    `ListToolsResult`\[`"tools"`]

    ### context

    `ListToolsContext`

    ## Returns

    `MaybePromise`\<`ListToolsResult`\`"tools"`\] \| [`ListToolsResult`\|`void\`>
  </Accordion>

  <Accordion title="Types: type-aliases/ListToolsRequest">
    @fentaris/core / ListToolsRequest

    > **ListToolsRequest** = `Infer`\<*typeof* `ListToolsRequestSchema`>

    Defined in: node\_modules/.pnpm/@[modelcontextprotocol+sdk@1.30.0\_zod](mailto:modelcontextprotocol+sdk@1.30.0_zod)@4.4.3/node\_modules/@modelcontextprotocol/sdk/dist/esm/types.d.ts:8086
  </Accordion>

  <Accordion title="Types: type-aliases/ListToolsResult">
    @fentaris/core / ListToolsResult

    > **ListToolsResult** = `Infer`\<*typeof* `ListToolsResultSchema`>

    Defined in: node\_modules/.pnpm/@[modelcontextprotocol+sdk@1.30.0\_zod](mailto:modelcontextprotocol+sdk@1.30.0_zod)@4.4.3/node\_modules/@modelcontextprotocol/sdk/dist/esm/types.d.ts:8087
  </Accordion>

  <Accordion title="Types: type-aliases/LocalCompletionHandler">
    @fentaris/core / LocalCompletionHandler

    > **LocalCompletionHandler** = (`ctx`, `params`) => `MaybePromise`\<`CompleteResult`>

    Defined in: packages/core/src/local/declarations.ts:84

    Local completion handler.

    ## Parameters

    ### ctx

    `ProxyContext`

    ### params

    `CompleteRequest`\[`"params"`]

    ## Returns

    `MaybePromise`\<`CompleteResult`>
  </Accordion>

  <Accordion title="Types: type-aliases/LocalCompletionReference">
    @fentaris/core / LocalCompletionReference

    > **LocalCompletionReference** = \{ `name`: `string`; `type`: `"ref/prompt"`; } | \{ `type`: `"ref/resource"`; `uriTemplate`: `string`; }

    Defined in: packages/core/src/local/declarations.ts:93

    Reference used to bind a local completion handler.
  </Accordion>

  <Accordion title="Types: type-aliases/LocalPromptHandler">
    @fentaris/core / LocalPromptHandler

    > **LocalPromptHandler** = (`ctx`, `params`) => `MaybePromise`\<`GetPromptResult`>

    Defined in: packages/core/src/local/declarations.ts:75

    Local prompt handler.

    ## Parameters

    ### ctx

    `ProxyContext`

    ### params

    `GetPromptRequest`\[`"params"`]

    ## Returns

    `MaybePromise`\<`GetPromptResult`>
  </Accordion>

  <Accordion title="Types: type-aliases/LocalPromptMetadata">
    @fentaris/core / LocalPromptMetadata

    > **LocalPromptMetadata** = `Omit`\<`Prompt`, `"name"`>

    Defined in: packages/core/src/local/declarations.ts:51

    Metadata accepted when declaring a local prompt.
  </Accordion>

  <Accordion title="Types: type-aliases/LocalResourceHandler">
    @fentaris/core / LocalResourceHandler

    > **LocalResourceHandler** = (`ctx`, `params`) => `MaybePromise`\<`ReadResourceResult`>

    Defined in: packages/core/src/local/declarations.ts:66

    Local resource read handler.

    ## Parameters

    ### ctx

    `ProxyContext`

    ### params

    `ReadResourceRequest`\[`"params"`]

    ## Returns

    `MaybePromise`\<`ReadResourceResult`>
  </Accordion>

  <Accordion title="Types: type-aliases/LocalResourceMetadata">
    @fentaris/core / LocalResourceMetadata

    > **LocalResourceMetadata** = `Omit`\<`Resource`, `"uri"`>

    Defined in: packages/core/src/local/declarations.ts:39

    Metadata accepted when declaring a local exact resource.
  </Accordion>

  <Accordion title="Types: type-aliases/LocalResourceTemplateMetadata">
    @fentaris/core / LocalResourceTemplateMetadata

    > **LocalResourceTemplateMetadata** = `Omit`\<`ResourceTemplate`, `"uriTemplate"`>

    Defined in: packages/core/src/local/declarations.ts:45

    Metadata accepted when declaring a local resource template.
  </Accordion>

  <Accordion title="Types: type-aliases/LocalToolHandler">
    @fentaris/core / LocalToolHandler

    > **LocalToolHandler** = (`ctx`, `params`) => `MaybePromise`\<`CallToolResult`>

    Defined in: packages/core/src/local/declarations.ts:57

    Local tool handler.

    ## Parameters

    ### ctx

    `ProxyContext`

    ### params

    `CallToolRequest`\[`"params"`]

    ## Returns

    `MaybePromise`\<`CallToolResult`>
  </Accordion>

  <Accordion title="Types: type-aliases/LocalToolMetadata">
    @fentaris/core / LocalToolMetadata

    > **LocalToolMetadata** = `Omit`\<`Tool`, `"name"`>

    Defined in: packages/core/src/local/declarations.ts:33

    Metadata accepted when declaring a local tool.
  </Accordion>

  <Accordion title="Types: type-aliases/MaybePromise">
    @fentaris/core / MaybePromise

    > **MaybePromise**\<`T`> = `T` | `Promise`\<`T`>

    Defined in: packages/core/src/types/shared.ts:8

    Maybe a promise for async compatibility.

    ## Type Parameters

    ### T

    `T`
  </Accordion>

  <Accordion title="Types: type-aliases/McpOperationName">
    @fentaris/core / McpOperationName

    > **McpOperationName** = `"tools:list"` | `"tool:call"` | `"resources:list"` | `"resource:read"` | `"resource-templates:list"` | `"prompts:list"` | `"prompt:get"` | `"completion:complete"`

    Defined in: packages/core/src/types/mcp-operation.ts:90

    Governed MCP operation names used by capability permissions.
  </Accordion>

  <Accordion title="Types: type-aliases/Middleware">
    @fentaris/core / Middleware

    > **Middleware** = `LegacyMiddleware` | `ProxyMiddleware`

    Defined in: packages/core/src/types/middleware.ts:266

    Middleware function signature.
  </Accordion>

  <Accordion title="Types: type-aliases/MiddlewareContext">
    @fentaris/core / MiddlewareContext

    > **MiddlewareContext** = `object`

    Defined in: packages/core/src/types/middleware.ts:217

    Middleware execution context.

    ## Properties

    ### approval

    > **approval**: `ApprovalDecisionController`

    Defined in: packages/core/src/types/middleware.ts:221

    ### credentialSources?

    > `optional` **credentialSources?**: `CredentialSourceMetadata`\[]

    Defined in: packages/core/src/types/middleware.ts:228

    ### identity?

    > `optional` **identity?**: `IdentityMetadata`

    Defined in: packages/core/src/types/middleware.ts:220

    ### log

    > **log**: `Logger`

    Defined in: packages/core/src/types/middleware.ts:222

    ### policy?

    > `optional` **policy?**: `Policy` | `ProxyPolicyContext`

    Defined in: packages/core/src/types/middleware.ts:224

    ### policyDecision?

    > `optional` **policyDecision?**: `PolicyDecision`

    Defined in: packages/core/src/types/middleware.ts:225

    ### rateLimiter?

    > `optional` **rateLimiter?**: `RateLimiter`

    Defined in: packages/core/src/types/middleware.ts:227

    ### registry?

    > `optional` **registry?**: `Registry`

    Defined in: packages/core/src/types/middleware.ts:226

    ### res

    > **res**: `ResponseController`

    Defined in: packages/core/src/types/middleware.ts:223

    ### subject?

    > `optional` **subject?**: `ResolvedSubject`

    Defined in: packages/core/src/types/middleware.ts:219

    ### user

    > **user**: `UserContext`

    Defined in: packages/core/src/types/middleware.ts:218
  </Accordion>

  <Accordion title="Types: type-aliases/Next">
    @fentaris/core / Next

    > **Next** = () => `Promise`\<`CallToolResult`>

    Defined in: packages/core/src/types/middleware.ts:235

    Next middleware handler.

    ## Returns

    `Promise`\<`CallToolResult`>
  </Accordion>

  <Accordion title="Types: type-aliases/PolicyDecision">
    @fentaris/core / PolicyDecision

    > **PolicyDecision** = `object`

    Defined in: packages/core/src/types/policy.ts:49

    Policy evaluation result.

    ## Properties

    ### allowed

    > **allowed**: `boolean`

    Defined in: packages/core/src/types/policy.ts:50

    ### metadata?

    > `optional` **metadata?**: `PolicyMetadata` & `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/policy.ts:52

    ### reason?

    > `optional` **reason?**: `string`

    Defined in: packages/core/src/types/policy.ts:51
  </Accordion>

  <Accordion title="Types: type-aliases/PolicyMetadata">
    @fentaris/core / PolicyMetadata

    > **PolicyMetadata** = `object`

    Defined in: packages/core/src/types/shared.ts:70

    Effective policy metadata safe to expose in middleware and logs.

    ## Properties

    ### approval?

    > `optional` **approval?**: `ApprovalMetadata`

    Defined in: packages/core/src/types/shared.ts:85

    ### denialReason?

    > `optional` **denialReason?**: `string`

    Defined in: packages/core/src/types/shared.ts:84

    ### matchedGroups?

    > `optional` **matchedGroups?**: `string`\[]

    Defined in: packages/core/src/types/shared.ts:72

    ### matchedPermissions?

    > `optional` **matchedPermissions?**: `object`\[]

    Defined in: packages/core/src/types/shared.ts:73

    #### effect

    > **effect**: `"allow"` | `"deny"`

    #### groupId?

    > `optional` **groupId?**: `string`

    #### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    #### operation

    > **operation**: `McpOperationName`

    #### policyName

    > **policyName**: `string`

    #### serverName

    > **serverName**: `string`

    #### target?

    > `optional` **target?**: `string`

    #### targetKind?

    > `optional` **targetKind?**: `CapabilityTargetKind`

    #### toolName?

    > `optional` **toolName?**: `string`

    ### policyName?

    > `optional` **policyName?**: `string`

    Defined in: packages/core/src/types/shared.ts:71
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyAuthContext">
    @fentaris/core / ProxyAuthContext

    > **ProxyAuthContext** = `object`

    Defined in: packages/core/src/types/proxy.ts:92

    Normalized authentication metadata exposed through the unified context.

    ## Properties

    ### authenticated

    > **authenticated**: `boolean`

    Defined in: packages/core/src/types/proxy.ts:94

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/proxy.ts:96

    ### strategy?

    > `optional` **strategy?**: `string`

    Defined in: packages/core/src/types/proxy.ts:93

    ### userId?

    > `optional` **userId?**: `string`

    Defined in: packages/core/src/types/proxy.ts:95
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyCompletionContext">
    @fentaris/core / ProxyCompletionContext

    > **ProxyCompletionContext** = `object`

    Defined in: packages/core/src/types/proxy.ts:156

    Selected completion metadata.

    ## Properties

    ### argumentName

    > **argumentName**: `string`

    Defined in: packages/core/src/types/proxy.ts:160

    ### proxyTarget?

    > `optional` **proxyTarget?**: `string`

    Defined in: packages/core/src/types/proxy.ts:159

    ### refType

    > **refType**: `"ref/prompt"` | `"ref/resource"`

    Defined in: packages/core/src/types/proxy.ts:157

    ### target

    > **target**: `string`

    Defined in: packages/core/src/types/proxy.ts:158
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyContext">
    @fentaris/core / ProxyContext

    > **ProxyContext** = `MiddlewareContext` & `object`

    Defined in: packages/core/src/types/proxy.ts:167

    Unified context for new proxy middleware, routes, and events.

    ## Type Declaration

    ### args?

    > `optional` **args?**: `CallToolRequest`\[`"params"`]\[`"arguments"`]

    ### auth

    > **auth**: `ProxyAuthContext`

    ### completion?

    > `optional` **completion?**: `ProxyCompletionContext`

    ### credentials

    > **credentials**: `object`

    #### credentials.sources

    > **sources**: `CredentialSourceMetadata`\[]

    ### execution?

    > `optional` **execution?**: `ProxyExecutionContext`

    ### operation

    > **operation**: `ProxyOperation`

    ### policy

    > **policy**: `ProxyPolicyContext`

    ### prompt?

    > `optional` **prompt?**: `ProxyPromptContext`

    ### raw?

    > `optional` **raw?**: `CallToolRequest`\`"params"`\] \| `CompleteRequest`\[`"params"`\] \| `GetPromptRequest`\[`"params"`\] \| `ListPromptsRequest`\[`"params"`\] \| `ListResourcesRequest`\[`"params"`\] \| `ListResourceTemplatesRequest`\[`"params"`\] \| [`ListToolsRequest`\[`"params"`\] \| `ReadResourceRequest`\[`"params"\`]

    ### requestId?

    > `optional` **requestId?**: `string`

    ### resource?

    > `optional` **resource?**: `ProxyResourceContext`

    ### response

    > **response**: `ResponseController`

    ### server?

    > `optional` **server?**: `ProxyServerContext`

    ### state

    > **state**: `Record`\<`string`, `unknown`>

    ### tool?

    > `optional` **tool?**: `ProxyToolContext`

    ### transport

    > **transport**: `ProxyTransportContext`

    ### continue()

    > **continue**(): `undefined`

    #### Returns

    `undefined`

    ### deny()

    > **deny**(`message`): `object`

    #### Parameters

    ##### message

    `string`

    #### Returns

    `object`

    ##### \_meta?

    > `optional` **\_meta?**: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ##### content

    > **content**: `z.ZodDefault`\<`z.ZodArray`\<`z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `text`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `description`: `z.ZodOptional`\<...>; `icons`: `z.ZodOptional`\<...>; `mimeType`: `z.ZodOptional`\<...>; `name`: `z.ZodString`; `size`: `z.ZodOptional`\<...>; `title`: `z.ZodOptional`\<...>; `type`: `z.ZodLiteral`\<...>; `uri`: `z.ZodString`; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `resource`: `z.ZodUnion`\<...>; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>]>>>

    ##### isError?

    > `optional` **isError?**: `z.ZodOptional`\<`z.ZodBoolean`>

    ##### structuredContent?

    > `optional` **structuredContent?**: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodUnknown`>>

    ### error()

    > **error**(`code`, `message`): `object`

    #### Parameters

    ##### code

    `number`

    ##### message

    `string`

    #### Returns

    `object`

    ##### \_meta?

    > `optional` **\_meta?**: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ##### content

    > **content**: `z.ZodDefault`\<`z.ZodArray`\<`z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `text`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `description`: `z.ZodOptional`\<...>; `icons`: `z.ZodOptional`\<...>; `mimeType`: `z.ZodOptional`\<...>; `name`: `z.ZodString`; `size`: `z.ZodOptional`\<...>; `title`: `z.ZodOptional`\<...>; `type`: `z.ZodLiteral`\<...>; `uri`: `z.ZodString`; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `resource`: `z.ZodUnion`\<...>; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>]>>>

    ##### isError?

    > `optional` **isError?**: `z.ZodOptional`\<`z.ZodBoolean`>

    ##### structuredContent?

    > `optional` **structuredContent?**: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodUnknown`>>

    ### fail()

    > **fail**(`code`, `message`): `object`

    #### Parameters

    ##### code

    `number`

    ##### message

    `string`

    #### Returns

    `object`

    ##### \_meta?

    > `optional` **\_meta?**: `z.ZodOptional`\<`z.ZodObject`\<\{ `io.modelcontextprotocol/related-task`: `z.ZodOptional`\<`z.ZodObject`\<\{ `taskId`: `z.ZodString`; }, `z.core.$strip`>>; `progressToken`: `z.ZodOptional`\<`z.ZodUnion`\<readonly \[`z.ZodString`, `z.ZodNumber`]>>; }, `z.core.$loose`>>

    ##### content

    > **content**: `z.ZodDefault`\<`z.ZodArray`\<`z.ZodUnion`\<readonly \[`z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `text`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `data`: `z.ZodString`; `mimeType`: `z.ZodString`; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `description`: `z.ZodOptional`\<...>; `icons`: `z.ZodOptional`\<...>; `mimeType`: `z.ZodOptional`\<...>; `name`: `z.ZodString`; `size`: `z.ZodOptional`\<...>; `title`: `z.ZodOptional`\<...>; `type`: `z.ZodLiteral`\<...>; `uri`: `z.ZodString`; }, `z.core.$strip`>, `z.ZodObject`\<\{ `_meta`: `z.ZodOptional`\<...>; `annotations`: `z.ZodOptional`\<...>; `resource`: `z.ZodUnion`\<...>; `type`: `z.ZodLiteral`\<...>; }, `z.core.$strip`>]>>>

    ##### isError?

    > `optional` **isError?**: `z.ZodOptional`\<`z.ZodBoolean`>

    ##### structuredContent?

    > `optional` **structuredContent?**: `z.ZodOptional`\<`z.ZodRecord`\<`z.ZodString`, `z.ZodUnknown`>>

    ### inject()

    > **inject**(`message`): `void`

    #### Parameters

    ##### message

    `string`

    #### Returns

    `void`
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyEventFilter">
    @fentaris/core / ProxyEventFilter

    > **ProxyEventFilter** = `object`

    Defined in: packages/core/src/types/proxy.ts:248

    Filter for unified proxy events.

    ## Properties

    ### group?

    > `optional` **group?**: `string`

    Defined in: packages/core/src/types/proxy.ts:250

    ### proxyTool?

    > `optional` **proxyTool?**: `string`

    Defined in: packages/core/src/types/proxy.ts:252

    ### server?

    > `optional` **server?**: `string`

    Defined in: packages/core/src/types/proxy.ts:249

    ### tool?

    > `optional` **tool?**: `string`

    Defined in: packages/core/src/types/proxy.ts:251
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyEventHandler">
    @fentaris/core / ProxyEventHandler

    > **ProxyEventHandler** = (`payload`) => `MaybePromise`\<`ListToolsResult`\`"tools"`\] \| [`ListToolsResult`\|`void\`>

    Defined in: packages/core/src/types/proxy.ts:272

    Unified event handler.

    ## Parameters

    ### payload

    `ProxyEventPayload`

    ## Returns

    `MaybePromise`\<`ListToolsResult`\`"tools"`\] \| [`ListToolsResult`\|`void\`>
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyEventName">
    @fentaris/core / ProxyEventName

    > **ProxyEventName** = `"session:start"` | `"session:end"` | `"tools:list:after"` | `"tool:start"` | `"tool:success"` | `"tool:error"` | `"tool:after"` | `"resource:start"` | `"resource:success"` | `"resource:error"` | `"resource:after"` | `"prompt:start"` | `"prompt:success"` | `"prompt:error"` | `"prompt:after"` | `"completion:start"` | `"completion:success"` | `"completion:error"` | `"completion:after"`

    Defined in: packages/core/src/types/proxy.ts:223

    Unified event names emitted by the proxy runtime.
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyEventPayload">
    @fentaris/core / ProxyEventPayload

    > **ProxyEventPayload** = `object`

    Defined in: packages/core/src/types/proxy.ts:259

    Unified event payload.

    ## Properties

    ### ctx

    > **ctx**: `ProxyContext`

    Defined in: packages/core/src/types/proxy.ts:260

    ### durationMs?

    > `optional` **durationMs?**: `number`

    Defined in: packages/core/src/types/proxy.ts:264

    ### error?

    > `optional` **error?**: `Error`

    Defined in: packages/core/src/types/proxy.ts:263

    ### result?

    > `optional` **result?**: `ProxyOperationResult`

    Defined in: packages/core/src/types/proxy.ts:262

    ### success?

    > `optional` **success?**: `boolean`

    Defined in: packages/core/src/types/proxy.ts:265

    ### tools?

    > `optional` **tools?**: `ListToolsResult`\[`"tools"`]

    Defined in: packages/core/src/types/proxy.ts:261
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyExecutionContext">
    @fentaris/core / ProxyExecutionContext

    > **ProxyExecutionContext** = \{ `deploymentId`: `string`; `kind`: `"cloud"`; `targetName`: `string`; } | \{ `deploymentId`: `string`; `kind`: `"edge-cache"`; `targetName`: `string`; `tenantId`: `string`; } | \{ `connectionGeneration`: `number`; `deploymentId`: `string`; `edgeNodeId`: `string`; `kind`: `"edge"`; `reused`: `boolean`; `targetName`: `string`; }

    Defined in: packages/core/src/types/proxy.ts:67

    Selected execution target and pinned edge route for one operation.
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyExposureHandle">
    @fentaris/core / ProxyExposureHandle

    > **ProxyExposureHandle** = `object`

    Defined in: packages/core/src/types/proxy.ts:351

    Active downstream proxy exposure handle.

    ## Methods

    ### close()

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

    Defined in: packages/core/src/types/proxy.ts:352

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyExposureTransport">
    @fentaris/core / ProxyExposureTransport

    > **ProxyExposureTransport**\<`THandle`> = `object`

    Defined in: packages/core/src/types/proxy.ts:386

    Transport interface for exposing the Fentaris proxy to downstream MCP clients.

    ## Type Parameters

    ### THandle

    `THandle` *extends* `ProxyExposureHandle` = `ProxyExposureHandle`

    ## Methods

    ### listen()

    > **listen**(`runtime`): `Promise`\<`THandle`>

    Defined in: packages/core/src/types/proxy.ts:387

    #### Parameters

    ##### runtime

    `ProxyRuntime`

    #### Returns

    `Promise`\<`THandle`>
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyGroupHandle">
    @fentaris/core / ProxyGroupHandle

    > **ProxyGroupHandle** = `object`

    Defined in: packages/core/src/types/proxy.ts:334

    Scoped group handle returned by `proxy.group(id)`.

    ## Properties

    ### id

    > `readonly` **id**: `string`

    Defined in: packages/core/src/types/proxy.ts:335

    ## Methods

    ### mcp()

    > **mcp**(`name`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:336

    #### Parameters

    ##### name

    `string`

    #### Returns

    `ProxyMcpHandle`

    ### on()

    #### Call Signature

    > **on**(`eventName`, `handler`): `ProxyGroupHandle`

    Defined in: packages/core/src/types/proxy.ts:343

    ##### Parameters

    ###### eventName

    `ProxyEventName`

    ###### handler

    `ProxyEventHandler`

    ##### Returns

    `ProxyGroupHandle`

    #### Call Signature

    > **on**(`eventName`, `filter`, `handler`): `ProxyGroupHandle`

    Defined in: packages/core/src/types/proxy.ts:344

    ##### Parameters

    ###### eventName

    `ProxyEventName`

    ###### filter

    `ProxyEventFilter`

    ###### handler

    `ProxyEventHandler`

    ##### Returns

    `ProxyGroupHandle`

    ### operation()

    > **operation**(`operation`, `handler`): `ProxyGroupHandle`

    Defined in: packages/core/src/types/proxy.ts:342

    #### Parameters

    ##### operation

    `ProxyOperation`

    ##### handler

    `ProxyMiddleware`

    #### Returns

    `ProxyGroupHandle`

    ### policy()

    > **policy**(`policyNameOrPolicy`): `ProxyGroupHandle`

    Defined in: packages/core/src/types/proxy.ts:339

    #### Parameters

    ##### policyNameOrPolicy

    `string` | `Policy`

    #### Returns

    `ProxyGroupHandle`

    ### server()

    > **server**(`name`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:337

    #### Parameters

    ##### name

    `string`

    #### Returns

    `ProxyMcpHandle`

    ### use()

    #### Call Signature

    > **use**(`handler`): `ProxyGroupHandle`

    Defined in: packages/core/src/types/proxy.ts:340

    ##### Parameters

    ###### handler

    `ProxyMiddleware`

    ##### Returns

    `ProxyGroupHandle`

    #### Call Signature

    > **use**(`handler`): `ProxyGroupHandle`

    Defined in: packages/core/src/types/proxy.ts:341

    ##### Parameters

    ###### handler

    `LegacyMiddleware`

    ##### Returns

    `ProxyGroupHandle`

    ### users()

    > **users**(...`users`): `ProxyGroupHandle`

    Defined in: packages/core/src/types/proxy.ts:338

    #### Parameters

    ##### users

    ...`User`\[]

    #### Returns

    `ProxyGroupHandle`
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyHookEvent">
    @fentaris/core / ProxyHookEvent

    > **ProxyHookEvent** = `"call"`

    Defined in: packages/core/src/types/middleware.ts:29

    Event names supported by the proxy hook system.
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyLocalHandle">
    @fentaris/core / ProxyLocalHandle

    > **ProxyLocalHandle** = `object`

    Defined in: packages/core/src/local/declarations.ts:101

    Handle returned by `app.local(name)` for declaring local MCP capabilities.

    ## Properties

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/local/declarations.ts:102

    ## Methods

    ### completion()

    > **completion**(`ref`, `handler`): `ProxyLocalHandle`

    Defined in: packages/core/src/local/declarations.ts:107

    #### Parameters

    ##### ref

    `LocalCompletionReference`

    ##### handler

    `LocalCompletionHandler`

    #### Returns

    `ProxyLocalHandle`

    ### prompt()

    > **prompt**(`name`, `metadata`, `handler`): `ProxyLocalHandle`

    Defined in: packages/core/src/local/declarations.ts:106

    #### Parameters

    ##### name

    `string`

    ##### metadata

    `LocalPromptMetadata`

    ##### handler

    `LocalPromptHandler`

    #### Returns

    `ProxyLocalHandle`

    ### resource()

    > **resource**(`uri`, `metadata`, `handler`): `ProxyLocalHandle`

    Defined in: packages/core/src/local/declarations.ts:104

    #### Parameters

    ##### uri

    `string`

    ##### metadata

    `LocalResourceMetadata`

    ##### handler

    `LocalResourceHandler`

    #### Returns

    `ProxyLocalHandle`

    ### resourceTemplate()

    > **resourceTemplate**(`uriTemplate`, `metadata`, `handler`): `ProxyLocalHandle`

    Defined in: packages/core/src/local/declarations.ts:105

    #### Parameters

    ##### uriTemplate

    `string`

    ##### metadata

    `LocalResourceTemplateMetadata`

    ##### handler

    `LocalResourceHandler`

    #### Returns

    `ProxyLocalHandle`

    ### tool()

    > **tool**(`name`, `metadata`, `handler`): `ProxyLocalHandle`

    Defined in: packages/core/src/local/declarations.ts:103

    #### Parameters

    ##### name

    `string`

    ##### metadata

    `LocalToolMetadata`

    ##### handler

    `LocalToolHandler`

    #### Returns

    `ProxyLocalHandle`
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyMcpDeclarationConfig">
    @fentaris/core / ProxyMcpDeclarationConfig

    > **ProxyMcpDeclarationConfig** = `McpServerOptions`

    Defined in: packages/core/src/types/proxy.ts:380

    Config object for declaring an upstream MCP server through `proxy.mcp(config)`.
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyMcpDeclarationOptions">
    @fentaris/core / ProxyMcpDeclarationOptions

    > **ProxyMcpDeclarationOptions** = `Omit`\<`McpServerOptions`, `"name"`>

    Defined in: packages/core/src/types/proxy.ts:374

    Options for declaring an upstream MCP server through `proxy.mcp(name, options)`.
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyMcpHandle">
    @fentaris/core / ProxyMcpHandle

    > **ProxyMcpHandle** = `object`

    Defined in: packages/core/src/types/proxy.ts:280

    Scoped upstream MCP handle returned by `proxy.mcp(name)` or `proxy.server(name)`.

    ## Properties

    ### name

    > `readonly` **name**: `string`

    Defined in: packages/core/src/types/proxy.ts:281

    ## Methods

    ### health()

    > **health**(): `Promise`\<`HealthCheckResult`>

    Defined in: packages/core/src/types/proxy.ts:301

    #### Returns

    `Promise`\<`HealthCheckResult`>

    ### on()

    #### Call Signature

    > **on**(`eventName`, `handler`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:286

    ##### Parameters

    ###### eventName

    `ProxyEventName`

    ###### handler

    `ProxyEventHandler`

    ##### Returns

    `ProxyMcpHandle`

    #### Call Signature

    > **on**(`eventName`, `filter`, `handler`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:287

    ##### Parameters

    ###### eventName

    `ProxyEventName`

    ###### filter

    `ProxyEventFilter`

    ###### handler

    `ProxyEventHandler`

    ##### Returns

    `ProxyMcpHandle`

    ### operation()

    > **operation**(`operation`, `handler`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:285

    #### Parameters

    ##### operation

    `ProxyOperation`

    ##### handler

    `ProxyMiddleware`

    #### Returns

    `ProxyMcpHandle`

    ### ping()

    > **ping**(): `Promise`\<`HealthCheckResult`>

    Defined in: packages/core/src/types/proxy.ts:300

    #### Returns

    `Promise`\<`HealthCheckResult`>

    ### setup()

    > **setup**(`schema`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:293

    Declare the setup schema describing runtime references required to launch
    this MCP. Target bindings do not grant MCP access.

    #### Parameters

    ##### schema

    `SetupSchema` | `Record`\<`string`, `SetupFieldDescriptor`>

    #### Returns

    `ProxyMcpHandle`

    ### target()

    > **target**(`targetName`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:299

    Bind this MCP to a named execution target for the current scope
    (global, group, or user). `"cloud"` is the implicit built-in target.

    #### Parameters

    ##### targetName

    `string`

    #### Returns

    `ProxyMcpHandle`

    ### tool()

    > **tool**(`pattern`, `handler`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:284

    #### Parameters

    ##### pattern

    `string`

    ##### handler

    `ProxyMiddleware`

    #### Returns

    `ProxyMcpHandle`

    ### use()

    #### Call Signature

    > **use**(`handler`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:282

    ##### Parameters

    ###### handler

    `ProxyMiddleware`

    ##### Returns

    `ProxyMcpHandle`

    #### Call Signature

    > **use**(`handler`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:283

    ##### Parameters

    ###### handler

    `LegacyMiddleware`

    ##### Returns

    `ProxyMcpHandle`
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyMiddleware">
    @fentaris/core / ProxyMiddleware

    > **ProxyMiddleware** = (`context`, `next`) => `MaybePromise`\<`ProxyOperationResult` | `void`>

    Defined in: packages/core/src/types/middleware.ts:257

    Express-like middleware function signature.

    ## Parameters

    ### context

    `ProxyContext`

    ### next

    `ProxyNext`

    ## Returns

    `MaybePromise`\<`ProxyOperationResult` | `void`>
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyNext">
    @fentaris/core / ProxyNext

    > **ProxyNext** = () => `Promise`\<`ProxyOperationResult`>

    Defined in: packages/core/src/types/middleware.ts:241

    Next handler for unified proxy middleware.

    ## Returns

    `Promise`\<`ProxyOperationResult`>
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyOperation">
    @fentaris/core / ProxyOperation

    > **ProxyOperation** = `"tool:call"` | `"tools:list"` | `"resources:list"` | `"resource:read"` | `"resource-templates:list"` | `"prompts:list"` | `"prompt:get"` | `"completion:complete"` | `"session:start"` | `"session:end"`

    Defined in: packages/core/src/types/mcp-operation.ts:74

    Operation names handled by the unified proxy context.
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyOperationHandler">
    @fentaris/core / ProxyOperationHandler

    > **ProxyOperationHandler** = `ProxyMiddleware`

    Defined in: packages/core/src/types/proxy.ts:211

    Express-like handler for a governed MCP operation route.
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyOperationResult">
    @fentaris/core / ProxyOperationResult

    > **ProxyOperationResult** = `CallToolResult` | `CompleteResult` | `GetPromptResult` | `ListPromptsResult` | `ListResourcesResult` | `ListResourceTemplatesResult` | `ListToolsResult` | `ReadResourceResult`

    Defined in: packages/core/src/types/mcp-operation.ts:122

    Result shapes returned by governed proxy operation handlers.
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyPolicyContext">
    @fentaris/core / ProxyPolicyContext

    > **ProxyPolicyContext** = `object`

    Defined in: packages/core/src/types/proxy.ts:103

    Structured policy metadata exposed through the unified context.

    ## Properties

    ### allowed?

    > `optional` **allowed?**: `boolean`

    Defined in: packages/core/src/types/proxy.ts:104

    ### decision?

    > `optional` **decision?**: `PolicyDecision`

    Defined in: packages/core/src/types/proxy.ts:110

    ### matchedGroups

    > **matchedGroups**: `string`\[]

    Defined in: packages/core/src/types/proxy.ts:106

    ### matchedPermissions

    > **matchedPermissions**: `NonNullable`\<`PolicyMetadata`\[`"matchedPermissions"`]>

    Defined in: packages/core/src/types/proxy.ts:107

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/proxy.ts:108

    ### policy?

    > `optional` **policy?**: `Policy`

    Defined in: packages/core/src/types/proxy.ts:109

    ### reason?

    > `optional` **reason?**: `string`

    Defined in: packages/core/src/types/proxy.ts:105

    ## Methods

    ### can()

    > **can**(`server`, `tool`): `MaybePromise`\<`boolean`>

    Defined in: packages/core/src/types/proxy.ts:111

    #### Parameters

    ##### server

    `string`

    ##### tool

    `string`

    #### Returns

    `MaybePromise`\<`boolean`>
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyPromptContext">
    @fentaris/core / ProxyPromptContext

    > **ProxyPromptContext** = `object`

    Defined in: packages/core/src/types/proxy.ts:147

    Selected prompt metadata.

    ## Properties

    ### name

    > **name**: `string`

    Defined in: packages/core/src/types/proxy.ts:148

    ### proxyName

    > **proxyName**: `string`

    Defined in: packages/core/src/types/proxy.ts:149
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyResourceContext">
    @fentaris/core / ProxyResourceContext

    > **ProxyResourceContext** = `object`

    Defined in: packages/core/src/types/proxy.ts:136

    Selected resource metadata.

    ## Properties

    ### proxyUri?

    > `optional` **proxyUri?**: `string`

    Defined in: packages/core/src/types/proxy.ts:138

    ### proxyUriTemplate?

    > `optional` **proxyUriTemplate?**: `string`

    Defined in: packages/core/src/types/proxy.ts:140

    ### uri?

    > `optional` **uri?**: `string`

    Defined in: packages/core/src/types/proxy.ts:137

    ### uriTemplate?

    > `optional` **uriTemplate?**: `string`

    Defined in: packages/core/src/types/proxy.ts:139
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyRuntime">
    @fentaris/core / ProxyRuntime

    > **ProxyRuntime** = `object`

    Defined in: packages/core/src/types/proxy.ts:359

    Runtime operations shared by downstream proxy exposure transports.

    ## Properties

    ### identityRequired

    > **identityRequired**: `boolean`

    Defined in: packages/core/src/types/proxy.ts:367

    ### logger

    > **logger**: `Logger`

    Defined in: packages/core/src/types/proxy.ts:366

    ## Methods

    ### createSdkServer()

    > **createSdkServer**(`user?`, `identity?`, `subject?`): `unknown`

    Defined in: packages/core/src/types/proxy.ts:360

    #### Parameters

    ##### user?

    `UserContext`

    ##### identity?

    `IdentityMetadata`

    ##### subject?

    `ResolvedSubject`

    #### Returns

    `unknown`

    ### emitRuntimeEvent()

    > **emitRuntimeEvent**(`event`): `Promise`\<`void`>

    Defined in: packages/core/src/types/proxy.ts:365

    #### Parameters

    ##### event

    `RuntimeEvent`

    #### Returns

    `Promise`\<`void`>

    ### emitSessionEnd()

    > **emitSessionEnd**(`context`): `Promise`\<`void`>

    Defined in: packages/core/src/types/proxy.ts:364

    #### Parameters

    ##### context

    `LifecycleHookContext`

    #### Returns

    `Promise`\<`void`>

    ### emitSessionStart()

    > **emitSessionStart**(`context`): `Promise`\<`void`>

    Defined in: packages/core/src/types/proxy.ts:363

    #### Parameters

    ##### context

    `LifecycleHookContext`

    #### Returns

    `Promise`\<`void`>

    ### resolveHttpUser()

    > **resolveHttpUser**(`request`): `Promise`\<\{ `identity?`: `IdentityMetadata`; `subject?`: `ResolvedSubject`; `user`: `UserContext`; }>

    Defined in: packages/core/src/types/proxy.ts:361

    #### Parameters

    ##### request

    `unknown`

    #### Returns

    `Promise`\<\{ `identity?`: `IdentityMetadata`; `subject?`: `ResolvedSubject`; `user`: `UserContext`; }>

    ### resolveStdioUser()

    > **resolveStdioUser**(): `Promise`\<\{ `identity?`: `IdentityMetadata`; `subject?`: `ResolvedSubject`; `user`: `UserContext`; }>

    Defined in: packages/core/src/types/proxy.ts:362

    #### Returns

    `Promise`\<\{ `identity?`: `IdentityMetadata`; `subject?`: `ResolvedSubject`; `user`: `UserContext`; }>
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyServerContext">
    @fentaris/core / ProxyServerContext

    > **ProxyServerContext** = `object`

    Defined in: packages/core/src/types/proxy.ts:118

    Selected upstream server metadata.

    ## Properties

    ### displayName?

    > `optional` **displayName?**: `string`

    Defined in: packages/core/src/types/proxy.ts:120

    ### name

    > **name**: `string`

    Defined in: packages/core/src/types/proxy.ts:119
  </Accordion>

  <Accordion title="Types: type-aliases/ProxySubjectContext">
    @fentaris/core / ProxySubjectContext

    > **ProxySubjectContext** = `ResolvedSubject`

    Defined in: packages/core/src/types/shared.ts:106

    Structured subject metadata exposed through the unified context.
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyToolContext">
    @fentaris/core / ProxyToolContext

    > **ProxyToolContext** = `object`

    Defined in: packages/core/src/types/proxy.ts:127

    Selected tool metadata.

    ## Properties

    ### name

    > **name**: `string`

    Defined in: packages/core/src/types/proxy.ts:128

    ### proxyName

    > **proxyName**: `string`

    Defined in: packages/core/src/types/proxy.ts:129
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyToolHandler">
    @fentaris/core / ProxyToolHandler

    > **ProxyToolHandler** = `ProxyMiddleware`

    Defined in: packages/core/src/types/proxy.ts:205

    Express-like tool route handler signature.
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyToolPattern">
    @fentaris/core / ProxyToolPattern

    > **ProxyToolPattern** = `string`

    Defined in: packages/core/src/types/proxy.ts:217

    Public tool pattern using `server.tool` dot notation and `*` wildcards.
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyTransportContext">
    @fentaris/core / ProxyTransportContext

    > **ProxyTransportContext** = `object`

    Defined in: packages/core/src/types/proxy.ts:56

    Safe downstream transport metadata attached to a proxy operation.

    ## Properties

    ### deadline?

    > `optional` **deadline?**: `number`

    Defined in: packages/core/src/types/proxy.ts:61

    Absolute epoch deadline propagated to upstream/edge execution.

    ### requestId?

    > `optional` **requestId?**: `string`

    Defined in: packages/core/src/types/proxy.ts:59

    ### sessionId?

    > `optional` **sessionId?**: `string`

    Defined in: packages/core/src/types/proxy.ts:58

    ### signal?

    > `optional` **signal?**: `AbortSignal`

    Defined in: packages/core/src/types/proxy.ts:63

    Downstream cancellation signal propagated to upstream/edge execution.

    ### type?

    > `optional` **type?**: `"http"` | `"stdio"` | `"sse"` | `"unknown"`

    Defined in: packages/core/src/types/proxy.ts:57
  </Accordion>

  <Accordion title="Types: type-aliases/ProxyUserHandle">
    @fentaris/core / ProxyUserHandle

    > **ProxyUserHandle** = `object`

    Defined in: packages/core/src/types/proxy.ts:309

    Scoped user handle returned by `proxy.user(id)`. Records placement bindings
    without creating or authenticating a subject.

    ## Properties

    ### id

    > `readonly` **id**: `string`

    Defined in: packages/core/src/types/proxy.ts:310

    ## Methods

    ### mcp()

    > **mcp**(`name`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:312

    Register or retrieve a scoped upstream MCP handle for this user.

    #### Parameters

    ##### name

    `string`

    #### Returns

    `ProxyMcpHandle`

    ### server()

    > **server**(`name`): `ProxyMcpHandle`

    Defined in: packages/core/src/types/proxy.ts:314

    Alias for `mcp(name)`.

    #### Parameters

    ##### name

    `string`

    #### Returns

    `ProxyMcpHandle`
  </Accordion>

  <Accordion title="Types: type-aliases/ReadResourceParams">
    @fentaris/core / ReadResourceParams

    > **ReadResourceParams** = `ReadResourceRequest`\[`"params"`]

    Defined in: packages/core/src/types/mcp-operation.ts:27
  </Accordion>

  <Accordion title="Types: type-aliases/ReadResourceResponse">
    @fentaris/core / ReadResourceResponse

    > **ReadResourceResponse** = `ReadResourceResult`

    Defined in: packages/core/src/types/mcp-operation.ts:28
  </Accordion>

  <Accordion title="Types: type-aliases/ResolvedSubject">
    @fentaris/core / ResolvedSubject

    > **ResolvedSubject** = `object`

    Defined in: packages/core/src/types/shared.ts:92

    Authenticated subject resolved from user and group declarations.

    ## Properties

    ### displayName?

    > `optional` **displayName?**: `string`

    Defined in: packages/core/src/types/shared.ts:94

    ### email?

    > `optional` **email?**: `string`

    Defined in: packages/core/src/types/shared.ts:95

    ### groups

    > **groups**: `GroupMembership`\[]

    Defined in: packages/core/src/types/shared.ts:98

    ### id

    > **id**: `string`

    Defined in: packages/core/src/types/shared.ts:93

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/shared.ts:96

    ### tenant?

    > `optional` **tenant?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/shared.ts:97

    ## Methods

    ### hasGroup()

    > **hasGroup**(`groupId`): `boolean`

    Defined in: packages/core/src/types/shared.ts:99

    #### Parameters

    ##### groupId

    `string`

    #### Returns

    `boolean`
  </Accordion>

  <Accordion title="Types: type-aliases/RuntimeLifecycle">
    @fentaris/core / RuntimeLifecycle

    > **RuntimeLifecycle** = `object`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:44

    ## Methods

    ### health()

    > **health**(): `Promise`\<`HealthReport`>

    Defined in: packages/core/src/lifecycle/lifecycle.ts:49

    #### Returns

    `Promise`\<`HealthReport`>

    ### ready()

    > **ready**(`options?`): `Promise`\<`RuntimeLifecycleSnapshot`>

    Defined in: packages/core/src/lifecycle/lifecycle.ts:46

    #### Parameters

    ##### options?

    `RuntimeLifecycleOptions`

    #### Returns

    `Promise`\<`RuntimeLifecycleSnapshot`>

    ### start()

    > **start**(`options?`): `Promise`\<`unknown`>

    Defined in: packages/core/src/lifecycle/lifecycle.ts:45

    #### Parameters

    ##### options?

    `RuntimeLifecycleOptions`

    #### Returns

    `Promise`\<`unknown`>

    ### state()

    > **state**(): `RuntimeLifecycleSnapshot`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:48

    #### Returns

    `RuntimeLifecycleSnapshot`

    ### stop()

    > **stop**(`options?`): `Promise`\<`void`>

    Defined in: packages/core/src/lifecycle/lifecycle.ts:47

    #### Parameters

    ##### options?

    `RuntimeLifecycleOptions`

    #### Returns

    `Promise`\<`void`>
  </Accordion>

  <Accordion title="Types: type-aliases/RuntimeLifecycleMetadata">
    @fentaris/core / RuntimeLifecycleMetadata

    > **RuntimeLifecycleMetadata** = `object`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:13

    ## Properties

    ### failure?

    > `optional` **failure?**: `object`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:19

    #### code?

    > `optional` **code?**: `string`

    #### message

    > **message**: `string`

    #### name

    > **name**: `string`

    ### lastTransitionAt

    > **lastTransitionAt**: `Date`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:18

    ### name

    > **name**: `string`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:14

    ### startedAt?

    > `optional` **startedAt?**: `Date`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:16

    ### stoppedAt?

    > `optional` **stoppedAt?**: `Date`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:17

    ### version

    > **version**: `string`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:15
  </Accordion>

  <Accordion title="Types: type-aliases/RuntimeLifecycleOptions">
    @fentaris/core / RuntimeLifecycleOptions

    > **RuntimeLifecycleOptions** = `object`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:31

    ## Properties

    ### shutdownTimeoutMs?

    > `optional` **shutdownTimeoutMs?**: `number`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:33

    ### startupTimeoutMs?

    > `optional` **startupTimeoutMs?**: `number`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:32
  </Accordion>

  <Accordion title="Types: type-aliases/RuntimeLifecycleSnapshot">
    @fentaris/core / RuntimeLifecycleSnapshot

    > **RuntimeLifecycleSnapshot** = `object`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:26

    ## Properties

    ### metadata

    > **metadata**: `RuntimeLifecycleMetadata`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:28

    ### state

    > **state**: `RuntimeLifecycleState`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:27
  </Accordion>

  <Accordion title="Types: type-aliases/RuntimeLifecycleState">
    @fentaris/core / RuntimeLifecycleState

    > **RuntimeLifecycleState** = `"created"` | `"starting"` | `"ready"` | `"degraded"` | `"stopping"` | `"stopped"` | `"failed"`

    Defined in: packages/core/src/lifecycle/lifecycle.ts:4
  </Accordion>

  <Accordion title="Types: type-aliases/SubjectMetadata">
    @fentaris/core / SubjectMetadata

    > **SubjectMetadata** = `object`

    Defined in: packages/core/src/types/shared.ts:25

    Non-sensitive subject metadata declared in application code.

    ## Properties

    ### displayName?

    > `optional` **displayName?**: `string`

    Defined in: packages/core/src/types/shared.ts:26

    ### email?

    > `optional` **email?**: `string`

    Defined in: packages/core/src/types/shared.ts:27

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/shared.ts:30

    ### tenant?

    > `optional` **tenant?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/shared.ts:29

    ### tenantId?

    > `optional` **tenantId?**: `string`

    Defined in: packages/core/src/types/shared.ts:28
  </Accordion>

  <Accordion title="Types: type-aliases/ToolApprovalRequest">
    @fentaris/core / ToolApprovalRequest

    > **ToolApprovalRequest** = `ToolCallRequest` & `object`

    Defined in: packages/core/src/types/mcp-operation.ts:64

    Normalized tool-call request passed to approval callbacks.

    ## Type Declaration

    ### operation

    > **operation**: `"tool:call"`

    ### target

    > **target**: `string`

    ### targetKind

    > **targetKind**: `"tool"`
  </Accordion>

  <Accordion title="Types: type-aliases/ToolCallHook">
    @fentaris/core / ToolCallHook

    > **ToolCallHook** = (`request`, `context`) => `MaybePromise`\<`void` | `CallToolResult`>

    Defined in: packages/core/src/types/middleware.ts:61

    Hook invoked for matched tool calls.

    ## Parameters

    ### request

    `ToolCallRequest`

    ### context

    `MiddlewareContext`

    ## Returns

    `MaybePromise`\<`void` | `CallToolResult`>
  </Accordion>

  <Accordion title="Types: type-aliases/ToolCallHookFilter">
    @fentaris/core / ToolCallHookFilter

    > **ToolCallHookFilter** = `object`

    Defined in: packages/core/src/types/middleware.ts:19

    Filter for proxy call hooks.

    ## Properties

    ### proxyTool?

    > `optional` **proxyTool?**: `string`

    Defined in: packages/core/src/types/middleware.ts:22

    ### server?

    > `optional` **server?**: `string`

    Defined in: packages/core/src/types/middleware.ts:20

    ### tool?

    > `optional` **tool?**: `string`

    Defined in: packages/core/src/types/middleware.ts:21
  </Accordion>

  <Accordion title="Types: type-aliases/ToolCallRequest">
    @fentaris/core / ToolCallRequest

    > **ToolCallRequest** = `object`

    Defined in: packages/core/src/types/mcp-operation.ts:52

    Normalized tool call details for middleware.

    ## Properties

    ### arguments

    > **arguments**: `CallToolRequest`\[`"params"`]\[`"arguments"`]

    Defined in: packages/core/src/types/mcp-operation.ts:56

    ### proxyToolName

    > **proxyToolName**: `string`

    Defined in: packages/core/src/types/mcp-operation.ts:55

    ### raw

    > **raw**: `CallToolRequest`\[`"params"`]

    Defined in: packages/core/src/types/mcp-operation.ts:57

    ### serverName

    > **serverName**: `string`

    Defined in: packages/core/src/types/mcp-operation.ts:53

    ### toolName

    > **toolName**: `string`

    Defined in: packages/core/src/types/mcp-operation.ts:54
  </Accordion>

  <Accordion title="Types: type-aliases/ToolPermission">
    @fentaris/core / ToolPermission

    > **ToolPermission** = `object`

    Defined in: packages/core/src/types/policy.ts:22

    Tool permission model for policy enforcement.

    ## Properties

    ### approval?

    > `optional` **approval?**: `ApprovalHandler`\<`ToolApprovalRequest`>

    Defined in: packages/core/src/types/policy.ts:26

    ### effect?

    > `optional` **effect?**: `"allow"` | `"deny"`

    Defined in: packages/core/src/types/policy.ts:24

    ### limiter?

    > `optional` **limiter?**: `RateLimiter`

    Defined in: packages/core/src/types/policy.ts:25

    ### metadata?

    > `optional` **metadata?**: `Record`\<`string`, `unknown`>

    Defined in: packages/core/src/types/policy.ts:27

    ### tool

    > **tool**: `string`

    Defined in: packages/core/src/types/policy.ts:23
  </Accordion>

  <Accordion title="Types: type-aliases/UserContext">
    @fentaris/core / UserContext

    > **UserContext** = `object`

    Defined in: packages/core/src/types/shared.ts:14

    User context passed through requests.

    ## Indexable

    > \[`key`: `string`]: `unknown`

    ## Properties

    ### id?

    > `optional` **id?**: `string`

    Defined in: packages/core/src/types/shared.ts:15

    ### secrets?

    > `optional` **secrets?**: `Record`\<`string`, `string`>

    Defined in: packages/core/src/types/shared.ts:16

    ### tokens?

    > `optional` **tokens?**: `Record`\<`string`, `string`>

    Defined in: packages/core/src/types/shared.ts:17
  </Accordion>
</AccordionGroup>

## Name mapping

<AccordionGroup>
  <Accordion title="Name mapping: functions/assertValidServerName">
    @fentaris/core / assertValidServerName

    > **assertValidServerName**(`name`): `void`

    Defined in: nameMapping.ts:14

    Validate that a server name is safe to use in proxied tool names.

    ## Parameters

    ### name

    `string`

    ## Returns

    `void`
  </Accordion>

  <Accordion title="Name mapping: functions/fromProxyPromptName">
    @fentaris/core / fromProxyPromptName

    > **fromProxyPromptName**(`proxyPromptName`): `object`

    Defined in: nameMapping.ts:57

    Split a proxied prompt name into server and upstream prompt parts.

    ## Parameters

    ### proxyPromptName

    `string`

    ## Returns

    `object`

    ### promptName

    > **promptName**: `string`

    ### serverName

    > **serverName**: `string`
  </Accordion>

  <Accordion title="Name mapping: functions/fromProxyResourceTemplateUri">
    @fentaris/core / fromProxyResourceTemplateUri

    > **fromProxyResourceTemplateUri**(`proxyUriTemplate`): `object`

    Defined in: nameMapping.ts:97

    Parse a Fentaris-owned resource template URI back to its upstream owner and template.

    ## Parameters

    ### proxyUriTemplate

    `string`

    ## Returns

    `object`

    ### serverName

    > **serverName**: `string`

    ### uriTemplate

    > **uriTemplate**: `string`
  </Accordion>

  <Accordion title="Name mapping: functions/fromProxyResourceUri">
    @fentaris/core / fromProxyResourceUri

    > **fromProxyResourceUri**(`proxyUri`): `object`

    Defined in: nameMapping.ts:77

    Parse a Fentaris-owned resource URI back to its upstream owner and URI.

    ## Parameters

    ### proxyUri

    `string`

    ## Returns

    `object`

    ### serverName

    > **serverName**: `string`

    ### uri

    > **uri**: `string`
  </Accordion>

  <Accordion title="Name mapping: functions/fromProxyToolName">
    @fentaris/core / fromProxyToolName

    > **fromProxyToolName**(`proxyToolName`): `object`

    Defined in: nameMapping.ts:37

    Split a proxied tool name into server and tool parts.

    ## Parameters

    ### proxyToolName

    `string`

    ## Returns

    `object`

    ### serverName

    > **serverName**: `string`

    ### toolName

    > **toolName**: `string`
  </Accordion>

  <Accordion title="Name mapping: functions/toProxyPromptName">
    @fentaris/core / toProxyPromptName

    > **toProxyPromptName**(`serverName`, `promptName`): `string`

    Defined in: nameMapping.ts:49

    Combine server and prompt names into a proxied prompt name.

    ## Parameters

    ### serverName

    `string`

    ### promptName

    `string`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Name mapping: functions/toProxyResourceTemplateUri">
    @fentaris/core / toProxyResourceTemplateUri

    > **toProxyResourceTemplateUri**(`serverName`, `uriTemplate`): `string`

    Defined in: nameMapping.ts:89

    Build a Fentaris-owned URI template for routing a proxied MCP resource template.

    ## Parameters

    ### serverName

    `string`

    ### uriTemplate

    `string`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Name mapping: functions/toProxyResourceUri">
    @fentaris/core / toProxyResourceUri

    > **toProxyResourceUri**(`serverName`, `uri`): `string`

    Defined in: nameMapping.ts:69

    Build a Fentaris-owned URI for routing a proxied MCP resource.

    ## Parameters

    ### serverName

    `string`

    ### uri

    `string`

    ## Returns

    `string`
  </Accordion>

  <Accordion title="Name mapping: functions/toProxyToolName">
    @fentaris/core / toProxyToolName

    > **toProxyToolName**(`serverName`, `toolName`): `string`

    Defined in: nameMapping.ts:28

    Combine server and tool names into a proxied tool name.

    ## Parameters

    ### serverName

    `string`

    ### toolName

    `string`

    ## Returns

    `string`
  </Accordion>
</AccordionGroup>
