import { Command } from 'commander'; import { validateProjectName, type ProjectPlan, type ProjectSpecInput } from 'create-cogitator-app'; import { type SetupProvider } from '../utils/provider-models.js'; export type InitChannel = 'telegram' | 'discord' | 'slack' | 'webchat' | 'bluesky' | 'threads' | 'github' | 'email' | 'teams'; export type InitMemory = 'memory' | 'sqlite' | 'postgres'; export interface InitAnswers { projectName: string; provider: SetupProvider; apiKey: string; /** `provider/model`, as the model prompt offers it. */ model: string; channels: InitChannel[]; telegramToken?: string; discordToken?: string; slackToken?: string; slackSigningSecret?: string; slackAppToken?: string; blueskyHandle?: string; blueskyAppPassword?: string; threadsAccessToken?: string; githubToken?: string; githubWebhookSecret?: string; email?: InitEmail; teams?: InitTeams; memory: InitMemory; databaseUrl?: string; } /** The mailbox of the email channel: read over IMAP, sent through SMTP. */ export interface InitEmail { address: string; /** Who may write to the bot: addresses, domains, `*.domain` or `*`, comma-separated */ allowFrom: string; imapHost: string; imapPassword: string; smtpHost: string; smtpPassword: string; } /** The app registration of the Teams channel, from Azure Bot Service. */ export interface InitTeams { /** The Microsoft App ID */ appId: string; /** A client secret of the app registration */ appPassword: string; /** The tenant of the app registration, a single-tenant bot */ tenantId: string; } export declare const DEFAULT_POSTGRES_URL = "postgresql://cogitator:cogitator@localhost:5432/cogitator"; export { validateProjectName }; /** * The project `cogitator init` creates: the `channels` preset of * create-cogitator-app with the answers, so both commands generate the same * code from the same engine. */ export declare function initSpec(answers: InitAnswers, packageManager?: "pnpm" | "npm" | "yarn" | "bun"): ProjectSpecInput; /** What `cogitator init` writes to `.env`: the provider key, the channel tokens and a custom database URL. */ export declare function initSecrets(answers: InitAnswers): Record; type ComposeServices = Pick; /** * The compose services `cogitator init` offers to start: all of them, but * Postgres when the project connects to a database of its own. */ export declare function initServices(plan: ComposeServices, answers: InitAnswers): ComposeServices; export declare const initCommand: Command; //# sourceMappingURL=init.d.ts.map