Channels
Signed event ingress and outbound tools for persistent agents.
Channels verify provider webhooks, normalize an event, derive a stable conversation key, and dispatch it to a persistent Fabric agent. Provider event IDs become dispatch IDs for deduplication, while tenant and actor identity flow into the audit trail.
pnpm add @fabric-harness/channels @fabric-harness/sdk| Channel | Stable instance key | Support |
|---|---|---|
| Discord | Guild/channel/thread | First-party adapter |
| Facebook Messenger | Page/sender | First-party adapter |
| GitHub | Repository/issue or PR | First-party adapter |
| Google Chat | Space/thread | First-party adapter |
| Intercom | Workspace/conversation | First-party adapter |
| Linear | Organization/issue | First-party adapter |
| Microsoft Teams | Tenant/conversation/thread | First-party adapter |
| Notion | Workspace/page or database | First-party adapter |
| Resend | Tenant/email | First-party adapter |
| Salesforce Marketing Cloud | Business unit/contact or send | First-party adapter |
| Shopify | Shop/resource | First-party adapter |
| Slack | Team/channel/thread | First-party adapter and example |
| Stripe | Connected account/customer or payment resource | First-party adapter |
| Telegram | Bot/chat/topic | First-party adapter |
| Twilio | Account/sender/recipient | First-party SMS and WhatsApp adapter |
| Business account/phone/sender | First-party Meta Cloud API adapter | |
| Zendesk | Account/ticket | First-party adapter |
| Generic webhook | Caller-provided conversation ID | Direct fh add channel webhook scaffold |
First-party means Fabric owns the provider adapter, runs it through the shared Node and edge-safe channel contract, and publishes a dependency-aware fh add channel <name> recipe.
Package and version policy
Adapters are dependency-free @fabric-harness/channels/<name> subpaths implemented with Fetch and
Web Crypto. An adapter becomes a separate package only when a required provider SDK, runtime
incompatibility, or independent release cadence makes that necessary. Import
channelCompatibility from @fabric-harness/channels/compatibility for the machine-readable API
matrix. Deprecated adapters receive at least 180 days of notice and are removed only in a major
release.
Channels dispatch to .fabricharness/agents/, not finite jobs. See Persistent agents for the durable submission model.