Connectors
Connectors are daemon-managed transport resources for ingress and, when applicable, reply routing. They let external systems inject work into the daemon through daemon-managed ingress paths without copying transport config or secrets into each session. If you want the first real external-ingress success rather than the full model first, start with Send one webhook event into Kheish.Supported connectors
Kheish currently supports:- generic HTTP webhook ingress, with HTTP reply routing available through output plugins
- Slack webhook ingress plus Slack Web API output delivery
- Telegram webhook or polling ingress plus Telegram Bot API output delivery
- external connectors backed by user-authored or daemon-managed sidecars
Runtime-managed versus file-backed
Connectors can come from two sources:- file-backed configuration loaded at startup
- daemon-managed runtime connectors created through the runtime control plane
remote_http: the daemon talks to one sidecar managed outside the processchild_process: the daemon launches and supervises the sidecar itself
Session derivation
Connectors can either use a fixed session identifier or derive one from incoming request or conversation identity. This allows Kheish to map repeated external traffic back to one durable session. External connectors can derive sessions from either:thread.pathrouting_key- or
fixed_session_id
Binding keys and reply targets
Connectors can attach:- binding keys that help correlate external conversations
- default reply targets for downstream output routing
- self-output behavior so replies naturally route back to the originating conversation
Telegram polling
Telegram supports both webhook and polling ingress modes. Polling is daemon-managed and persists its cursor so consumed updates are not replayed after restart.Connector secrets
Daemon-managed connectors can resolve secrets from:- one write-only inline value at create or update time
- one environment variable reference
- one daemon secret-store reference
credential_slots, without inheriting the daemon’s full environment.
Those credential_slots are now brokered. The child sidecar receives an opaque short-lived credential token and can only fetch the specific env-key secrets named in its connector config. It does not receive the daemon’s root connector secrets as ambient environment variables.
