JiggaEvent (channels.py)

JIGGA · integration

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