@karmaniverous/jeeves-runner
    Preparing search index...

    Function createRunner

    • Create the runner. Initializes database, scheduler, API server, and sets up graceful shutdown.

      Parameters

      • config: {
            dbPath: string;
            gateway: { tokenPath?: string; url: string };
            host: string;
            log: {
                file?: string;
                level: "trace" | "debug" | "info" | "warn" | "error" | "fatal";
            };
            maxConcurrency: number;
            notifications: {
                defaultOnFailure: string
                | null;
                defaultOnSuccess: string | null;
                slackTokenPath?: string;
            };
            port: number;
            reconcileIntervalMs: number;
            runners: Record<string, string>;
            runRetentionDays: number;
            shutdownGraceMs: number;
            stateCleanupIntervalMs: number;
        }
        • dbPath: string

          Path to SQLite database file.

        • gateway: { tokenPath?: string; url: string }

          Gateway configuration for session-type jobs.

          • OptionaltokenPath?: string

            Path to file containing Gateway auth token.

          • url: string

            OpenClaw Gateway URL.

        • host: string

          Bind address for the HTTP server. Defaults to the platform-standard bind address.

        • log: {
              file?: string;
              level: "trace" | "debug" | "info" | "warn" | "error" | "fatal";
          }

          Logging configuration.

          • Optionalfile?: string

            Optional log file path.

          • level: "trace" | "debug" | "info" | "warn" | "error" | "fatal"

            Log level threshold (trace, debug, info, warn, error, fatal).

        • maxConcurrency: number

          Maximum number of concurrent job executions.

        • notifications: {
              defaultOnFailure: string | null;
              defaultOnSuccess: string | null;
              slackTokenPath?: string;
          }

          Notification configuration for job completion events.

          • defaultOnFailure: string | null

            Default Slack channel ID for failure notifications.

          • defaultOnSuccess: string | null

            Default Slack channel ID for success notifications.

          • OptionalslackTokenPath?: string

            Path to Slack bot token file.

        • port: number

          HTTP server port for the runner API.

        • reconcileIntervalMs: number

          Interval in milliseconds for job reconciliation checks.

        • runners: Record<string, string>

          Custom command runners keyed by file extension. The command string is split on whitespace; first token is the executable, rest are prefix args before the script path. Falls back to built-in defaults for unconfigured extensions.

        • runRetentionDays: number

          Number of days to retain completed run records.

        • shutdownGraceMs: number

          Grace period in milliseconds for shutdown completion.

        • stateCleanupIntervalMs: number

          Interval in milliseconds for expired state cleanup task.

      • Optionaldeps: RunnerDeps

      Returns Runner