refactor(slack): dedupe onboarding token prompts

This commit is contained in:
Peter Steinberger
2026-02-15 16:26:11 +00:00
parent 910e1e52dd
commit c1bf99406f

View File

@@ -124,6 +124,25 @@ async function noteSlackTokenHelp(prompter: WizardPrompter, botName: string): Pr
);
}
async function promptSlackTokens(prompter: WizardPrompter): Promise<{
botToken: string;
appToken: string;
}> {
const botToken = String(
await prompter.text({
message: "Enter Slack bot token (xoxb-...)",
validate: (value) => (value?.trim() ? undefined : "Required"),
}),
).trim();
const appToken = String(
await prompter.text({
message: "Enter Slack app token (xapp-...)",
validate: (value) => (value?.trim() ? undefined : "Required"),
}),
).trim();
return { botToken, appToken };
}
function patchSlackConfigForAccount(
cfg: OpenClawConfig,
accountId: string,
@@ -370,18 +389,7 @@ export const slackOnboardingAdapter: ChannelOnboardingAdapter = {
},
};
} else {
botToken = String(
await prompter.text({
message: "Enter Slack bot token (xoxb-...)",
validate: (value) => (value?.trim() ? undefined : "Required"),
}),
).trim();
appToken = String(
await prompter.text({
message: "Enter Slack app token (xapp-...)",
validate: (value) => (value?.trim() ? undefined : "Required"),
}),
).trim();
({ botToken, appToken } = await promptSlackTokens(prompter));
}
} else if (hasConfigTokens) {
const keep = await prompter.confirm({
@@ -389,32 +397,10 @@ export const slackOnboardingAdapter: ChannelOnboardingAdapter = {
initialValue: true,
});
if (!keep) {
botToken = String(
await prompter.text({
message: "Enter Slack bot token (xoxb-...)",
validate: (value) => (value?.trim() ? undefined : "Required"),
}),
).trim();
appToken = String(
await prompter.text({
message: "Enter Slack app token (xapp-...)",
validate: (value) => (value?.trim() ? undefined : "Required"),
}),
).trim();
({ botToken, appToken } = await promptSlackTokens(prompter));
}
} else {
botToken = String(
await prompter.text({
message: "Enter Slack bot token (xoxb-...)",
validate: (value) => (value?.trim() ? undefined : "Required"),
}),
).trim();
appToken = String(
await prompter.text({
message: "Enter Slack app token (xapp-...)",
validate: (value) => (value?.trim() ? undefined : "Required"),
}),
).trim();
({ botToken, appToken } = await promptSlackTokens(prompter));
}
if (botToken && appToken) {