The dashboard setup wizard (Manage Server). Behind the setupWizard launch flag: 403 not_available while hidden for the caller. Answers feed the wizard's suggestions and the promo system's targeting (serverType / goal).

Constructors

Methods

  • Apply step: creators and the welcome channel become the AI assistant's own cards (AssistantProposal, same checks, plan locks and permission hints - render and apply them with the assistant card component; do not report assistant outcomes for them). Every other kept feature is a link to its page with the picked channel / role. picks: need key -> the channel / role id chosen (or created) in the wizard. problems: why a card could not be made (e.g. already set up). No AI is called; works while the assistant itself is off.

    Parameters

    • __namedParameters: {
          auth: string;
          creators?: SetupCreator[];
          features?: string[];
          guildId: string;
          picks?: Record<string, string>;
      }
      • auth: string
      • Optionalcreators?: SetupCreator[]
      • Optionalfeatures?: string[]
      • guildId: string
      • Optionalpicks?: Record<string, string>

    Returns Promise<WebResponse<{
        links: SetupLink[];
        problems: string[];
        proposals: AssistantProposal[];
    }>>

  • Create missing channels / roles (1-10 per call, 3 calls a minute per server). Only on this click, only with the bot's Manage Channels / Manage Roles; a same-named one that exists is reused (existed: true), so a double click makes nothing twice. Channels are plain text channels; roles have no permissions and are not mentionable. Names are cleaned server side (channels: lowercase-with-dashes). One result per item - one failure never blocks the rest. 429 with Retry-After when over the limit; 503 when the bot cannot reach the server.

    Parameters

    • __namedParameters: {
          auth: string;
          guildId: string;
          items: {
              kind: "channel" | "role";
              name: string;
          }[];
      }
      • auth: string
      • guildId: string
      • items: {
            kind: "channel" | "role";
            name: string;
        }[]

    Returns Promise<WebResponse<{
        results: SetupCreateResult[];
    }>>

  • What fits these answers (saved or not - preview before saving): features with reasons, the channel / role each needs with existing matches best first (pre-select matches[0]), what is missing (for P3's Create), and the creators to add. measured: false = the server's usage is not known yet, so nothing shows as already set up. 503 when the bot cannot read the server right now.

    Parameters

    Returns Promise<WebResponse<SetupSuggestions>>