Channel gateway — the normalized boundary between external surfaces and the runtime, per `docs/tools/CHANNEL_GATEWAY_MESSAGE_ADAPTERS.md`. Every channel (Telegram today; Slack / webhook / iMessage later) implements one `ChannelAdapter` contract and produces one normalized `JiggaE
"""Channel gateway — the normalized boundary between external surfaces and the
runtime, per `docs/tools/CHANNEL_GATEWAY_MESSAGE_ADAPTERS.md`.
Every channel (Telegram today; Slack / webhook / iMessage later) implements one
`ChannelAdapter` contract and produces one normalized `JiggaEvent` shape. The
listener/supervisor then route every channel through the same path:
adapter.poll → JiggaEvent[] → identity/policy check → task → agent
Adding a channel = implement `ChannelAdapter`, register it in `ADAPTERS`. No
listener changes. This is the layer the ad-hoc Telegram path skipped (B1).
"""
from __future__ import annotations
from dataclasses import dataclass, field
from pathlib import Path
from typing import Any, Protocol, runtime_checkable
from jigga.core.config import load_runtime_con
... (truncated -- full source via MCP)
See the full source, get the GitHub permalink, and search 40K more like it.
Get a free API key