@karmaniverous/jeeves-scripts-core
    Preparing search index...

    Function pipeline

    • The loaded config's pipeline block.

      Parameters

      Returns {
          accounts: {
              calendar?: { tokenFile: string } | { serviceAccount: "auto" };
              email: string;
              emailPolling: boolean;
              folders?: string[];
              imap?: {
                  host: string;
                  password: { secretRef: string };
                  port: number;
                  tls: boolean;
                  user: string;
              };
              reportOnly?: boolean;
              type: "gmail"
              | "imap";
          }[];
          buckets: {
              domains: { bucket: string; pattern: string }[];
              priority: string[];
          };
          emailConfig: {
              backfill?: {
                  accounts: string[];
                  lookbackDays: number;
                  windowDays: number;
              };
              digest: { slackChannelId: string };
              meetings?: { archive: boolean };
              reportOnly: boolean;
              respond?: {
                  allowedSenders: string[];
                  dryRun?: boolean;
                  label: string;
                  mailbox: string;
                  maxPerRun: number;
                  maxRepliesPerThreadPerHour: number;
                  slackMirror: boolean;
              };
          };
          googleDrive?: unknown;
          refs: Record<string, string>;
      }

      • accounts: {
            calendar?: { tokenFile: string } | { serviceAccount: "auto" };
            email: string;
            emailPolling: boolean;
            folders?: string[];
            imap?: {
                host: string;
                password: { secretRef: string };
                port: number;
                tls: boolean;
                user: string;
            };
            reportOnly?: boolean;
            type: "gmail"
            | "imap";
        }[]

        Mail and calendar accounts.

      • buckets: { domains: { bucket: string; pattern: string }[]; priority: string[] }

        Mail bucket routing.

        • domains: { bucket: string; pattern: string }[]

          Domain rules, first match wins.

        • priority: string[]

          Bucket names, highest priority first.

      • emailConfig: {
            backfill?: {
                accounts: string[];
                lookbackDays: number;
                windowDays: number;
            };
            digest: { slackChannelId: string };
            meetings?: { archive: boolean };
            reportOnly: boolean;
            respond?: {
                allowedSenders: string[];
                dryRun?: boolean;
                label: string;
                mailbox: string;
                maxPerRun: number;
                maxRepliesPerThreadPerHour: number;
                slackMirror: boolean;
            };
        }

        Email pipeline settings.

        • Optionalbackfill?: { accounts: string[]; lookbackDays: number; windowDays: number }

          Paced historical backfill.

          • accounts: string[]

            Gmail accounts to backfill.

          • lookbackDays: number

            How far back from now to walk, in days.

          • windowDays: number

            Days searched per run, per account.

        • digest: { slackChannelId: string }

          Email digest.

          • slackChannelId: string

            Slack channel the email digest posts to.

        • Optionalmeetings?: { archive: boolean }

          Actions on meeting source emails.

          • archive: boolean

            Archive the source email out of INBOX after packaging.

        • reportOnly: boolean

          Report Gmail changes (labels, archive) without making them, for every account. accounts[].reportOnly opts a single account in.

        • Optionalrespond?: {
              allowedSenders: string[];
              dryRun?: boolean;
              label: string;
              mailbox: string;
              maxPerRun: number;
              maxRepliesPerThreadPerHour: number;
              slackMirror: boolean;
          }

          Assistant-mailbox auto-reply (email-respond).

          • allowedSenders: string[]

            Senders allowed to trigger a reply: exact addresses or *@example.com (that domain; not a consumer provider). Must not list mailbox exactly; a pattern covering it never lets it qualify.

          • OptionaldryRun?: boolean

            Discovery + qualification only: no dispatch, no send, no state writes.

          • label: string

            Gmail label applied to a thread after a successful reply.

          • mailbox: string

            The mailbox that receives and replies to mail.

          • maxPerRun: number

            Messages processed per run, oldest first (default 3).

          • maxRepliesPerThreadPerHour: number

            Per-thread reply rate limit (default 3/hour).

          • slackMirror: boolean

            Mirror each sent reply to Slack (the sender's DM, or a channel the email asked for). Needs the users:read.email bot scope. Default off.

      • OptionalgoogleDrive?: unknown

        Google Drive sync block, kept raw here: the google-drive domain validates it, so a mistake in it fails only the Drive job, never every job that loads this config.

      • refs: Record<string, string>

        Named references (Slack channels, Notion ids, paths) by dotted key.