Teleforge API Reference - v0.1.0
    Preparing search index...

    Interface TeleforgeManifest

    Canonical manifest shape for a Teleforge application.

    interface TeleforgeManifest {
        $schema?: string;
        bot: {
            commands?: { command: string; description?: string; handler?: string }[];
            tokenEnv: string;
            username: string;
            webhook: { path: string; secretEnv: string };
        };
        build?: { outDir?: string; publicDir?: string };
        dev?: { httpsPort?: number; port?: number; tunnel?: boolean };
        features?: {
            backButton?: boolean;
            cloudStorage?: boolean;
            hapticFeedback?: boolean;
            payments?: boolean;
            settingsButton?: boolean;
        };
        id: string;
        miniApp: {
            capabilities: string[];
            defaultMode: "inline"
            | "compact"
            | "fullscreen";
            entryPoint: string;
            launchModes: ("inline" | "compact" | "fullscreen")[];
            url?: string;
        };
        name: string;
        permissions?: TeleforgePermission[];
        routes: RouteDefinition[];
        runtime: TeleforgeRuntime;
        security?: {
            allowedOrigins?: string[];
            validateInitData?: boolean;
            webhookSecret?: string;
        };
        version: string;
    }
    Index

    Properties

    $schema?: string
    bot: {
        commands?: { command: string; description?: string; handler?: string }[];
        tokenEnv: string;
        username: string;
        webhook: { path: string; secretEnv: string };
    }
    build?: { outDir?: string; publicDir?: string }
    dev?: { httpsPort?: number; port?: number; tunnel?: boolean }
    features?: {
        backButton?: boolean;
        cloudStorage?: boolean;
        hapticFeedback?: boolean;
        payments?: boolean;
        settingsButton?: boolean;
    }
    id: string
    miniApp: {
        capabilities: string[];
        defaultMode: "inline" | "compact" | "fullscreen";
        entryPoint: string;
        launchModes: ("inline" | "compact" | "fullscreen")[];
        url?: string;
    }
    name: string
    permissions?: TeleforgePermission[]
    routes: RouteDefinition[]
    security?: {
        allowedOrigins?: string[];
        validateInitData?: boolean;
        webhookSecret?: string;
    }
    version: string