pi-telegram-webhook/src/types.ts
Harivansh Rathi ce9abc2a8e initial: webhook telegram adapter for pi with streaming replies
- webhook server with secret validation, rate limiting, body guards
- streaming replies via sendMessage + editMessageText throttled loop
- RPC session management for persistent conversations
- 15/15 tests passing
2026-04-03 05:30:05 +00:00

66 lines
1.2 KiB
TypeScript

/**
* pi-telegram-webhook — Type definitions.
*/
export interface Config {
botToken: string;
webhookUrl: string;
webhookPort?: number;
webhookHost?: string;
webhookPath?: string;
webhookSecret: string;
allowedChatIds?: string[];
streamingThrottleMs?: number;
minInitialChars?: number;
trustedProxies?: string[];
maxConcurrent?: number;
timeoutMs?: number;
idleTimeoutMinutes?: number;
model?: string;
extensions?: string[];
}
export interface TelegramMessage {
message_id: number;
from?: {
id: number;
username?: string;
first_name?: string;
};
chat: {
id: number;
type: string;
title?: string;
};
date: number;
text?: string;
}
export interface TelegramUpdate {
update_id: number;
message?: TelegramMessage;
}
export interface SenderSession {
chatId: string;
queue: QueuedMessage[];
processing: boolean;
abortController: AbortController | null;
messageCount: number;
startedAt: number;
}
export interface QueuedMessage {
id: string;
chatId: string;
text: string;
enqueuedAt: number;
}
export interface RunResult {
ok: boolean;
response: string;
error?: string;
durationMs: number;
exitCode: number;
}