68 lines
1.9 KiB
TypeScript
68 lines
1.9 KiB
TypeScript
import type { ClawdbotConfig } from "../../config/config.js";
|
|
import { getProviderPlugin } from "../../providers/plugins/index.js";
|
|
import type {
|
|
ProviderId,
|
|
ProviderSetupInput,
|
|
} from "../../providers/plugins/types.js";
|
|
import { normalizeAccountId } from "../../routing/session-key.js";
|
|
|
|
type ChatProvider = ProviderId;
|
|
|
|
export function applyAccountName(params: {
|
|
cfg: ClawdbotConfig;
|
|
provider: ChatProvider;
|
|
accountId: string;
|
|
name?: string;
|
|
}): ClawdbotConfig {
|
|
const accountId = normalizeAccountId(params.accountId);
|
|
const plugin = getProviderPlugin(params.provider);
|
|
const apply = plugin?.setup?.applyAccountName;
|
|
return apply
|
|
? apply({ cfg: params.cfg, accountId, name: params.name })
|
|
: params.cfg;
|
|
}
|
|
|
|
export function applyProviderAccountConfig(params: {
|
|
cfg: ClawdbotConfig;
|
|
provider: ChatProvider;
|
|
accountId: string;
|
|
name?: string;
|
|
token?: string;
|
|
tokenFile?: string;
|
|
botToken?: string;
|
|
appToken?: string;
|
|
signalNumber?: string;
|
|
cliPath?: string;
|
|
dbPath?: string;
|
|
service?: "imessage" | "sms" | "auto";
|
|
region?: string;
|
|
authDir?: string;
|
|
httpUrl?: string;
|
|
httpHost?: string;
|
|
httpPort?: string;
|
|
useEnv?: boolean;
|
|
}): ClawdbotConfig {
|
|
const accountId = normalizeAccountId(params.accountId);
|
|
const plugin = getProviderPlugin(params.provider);
|
|
const apply = plugin?.setup?.applyAccountConfig;
|
|
if (!apply) return params.cfg;
|
|
const input: ProviderSetupInput = {
|
|
name: params.name,
|
|
token: params.token,
|
|
tokenFile: params.tokenFile,
|
|
botToken: params.botToken,
|
|
appToken: params.appToken,
|
|
signalNumber: params.signalNumber,
|
|
cliPath: params.cliPath,
|
|
dbPath: params.dbPath,
|
|
service: params.service,
|
|
region: params.region,
|
|
authDir: params.authDir,
|
|
httpUrl: params.httpUrl,
|
|
httpHost: params.httpHost,
|
|
httpPort: params.httpPort,
|
|
useEnv: params.useEnv,
|
|
};
|
|
return apply({ cfg: params.cfg, accountId, input });
|
|
}
|