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

# API entrante du canal

Les plugins de canal doivent modéliser les chemins de réception avec les noms inbound et message :

```text theme={"theme":{"light":"min-light","dark":"min-dark"}}
platform event -> inbound facts/context -> agent reply -> message delivery
```

Utilisez `openclaw/plugin-sdk/channel-inbound` pour la normalisation des événements entrants,
le formatage, les racines et l’orchestration. Utilisez
`openclaw/plugin-sdk/channel-outbound` pour l’envoi natif,
les accusés de réception, la livraison durable et le comportement d’aperçu en direct.

## Helpers principaux

```ts theme={"theme":{"light":"min-light","dark":"min-dark"}}
import {
  buildChannelInboundEventContext,
  runChannelInboundEvent,
  dispatchChannelInboundReply,
} from "openclaw/plugin-sdk/channel-inbound";
```

* `buildChannelInboundEventContext(...)` : projette les faits de canal normalisés dans
  le contexte de prompt/session. Utilisez `channelContext` pour transmettre les
  métadonnées d’expéditeur/chat détenues par le canal au hook de plugin `ctx.channelContext` ;
  enrichissez `PluginHookChannelSenderContext` ou `PluginHookChannelChatContext` depuis ce
  sous-chemin pour les champs propres au canal.
* `runChannelInboundEvent(...)` : exécute l’ingestion, la classification, la prévalidation, la résolution,
  l’enregistrement, la distribution et la finalisation pour un événement de plateforme entrant.
* `dispatchChannelInboundReply(...)` : enregistre et distribue une réponse entrante déjà assemblée
  avec un adaptateur de livraison.

Le runtime de plugin injecté expose les mêmes helpers de haut niveau sous
`runtime.channel.inbound.*` pour les canaux groupés/natifs qui reçoivent déjà
l’objet runtime.

```ts theme={"theme":{"light":"min-light","dark":"min-dark"}}
await runtime.channel.inbound.run({
  channel: "demo",
  accountId,
  raw: platformEvent,
  adapter: {
    ingest: normalizePlatformEvent,
    resolveTurn: resolveInboundReply,
  },
});
```

Les répartiteurs de compatibilité doivent assembler les entrées de `dispatchChannelInboundReply(...)`
et conserver la livraison de plateforme dans l’adaptateur de livraison. Les nouveaux chemins d’envoi doivent
privilégier les adaptateurs de message et les helpers de message durable.

## Migration

Les anciens alias runtime `runtime.channel.turn.*` ont été supprimés. Utilisez :

* `runtime.channel.inbound.run(...)` pour les événements entrants bruts.
* `runtime.channel.inbound.dispatchReply(...)` pour les contextes de réponse assemblés.
* `runtime.channel.inbound.buildContext(...)` pour les charges utiles de contexte entrant.
* `runtime.channel.inbound.runPreparedReply(...)` uniquement pour les chemins de distribution préparés
  détenus par le canal qui assemblent déjà leur propre closure de distribution.

Le nouveau code de plugin ne doit pas introduire d’API de canal nommées `turn`. Conservez le vocabulaire de tour
de modèle ou d’agent dans le code d’agent/fournisseur ; les plugins de canal utilisent les termes inbound,
message, delivery et reply.
