deep-swarm-research

Public

src / config.ts

import { createConfigSchematics } from "@lmstudio/sdk";

export const configSchematics = createConfigSchematics()
  .field(
    "researchDepth",
    "select",
    {
      displayName: "Research Depth",
      subtitle:
        "Controls rounds, per-worker budgets, queries, and link-following aggressiveness. " +
        "Sources are collected adaptively with no hard cap — deeper = more sources.",
      options: [
        {
          value: "shallow",
          displayName: "Shallow — 1 round, ~10-25 sources, fast",
        },
        {
          value: "standard",
          displayName: "Standard — 3 rounds, ~30-60 sources (recommended)",
        },
        {
          value: "deep",
          displayName: "Deep — 5 rounds, ~60-120 sources, thorough",
        },
        {
          value: "deeper",
          displayName: "Deeper — 10 rounds, ~100-200+ sources, very thorough",
        },
        {
          value: "exhaustive",
          displayName: "Exhaustive — 15 rounds, 200+ sources, maximum depth",
        },
      ],
    },
    "standard",
  )
  .field(
    "contentLimitPerPage",
    "numeric",
    {
      displayName: "Content Per Page (chars)",
      subtitle:
        "Characters extracted per page. Higher = richer but slower. " +
        "Leave at default to auto-scale with depth preset (1000-20000)",
      min: 1000,
      max: 20000,
      int: true,
      slider: { step: 1000, min: 1000, max: 20000 },
    },
    4000,
  )
  .field(
    "enableLinkFollowing",
    "select",
    {
      displayName: "Link Following",
      subtitle:
        "Workers follow relevant in-page links (like citations and references)",
      options: [
        { value: "on", displayName: "On — follow top links (recommended)" },
        { value: "off", displayName: "Off — search results only" },
      ],
    },
    "on",
  )
  .field(
    "enableAIPlanning",
    "select",
    {
      displayName: "AI Query Planning",
      subtitle:
        "Use the loaded model for smarter queries, dynamic decomposition, and synthesis",
      options: [
        { value: "on", displayName: "On — AI-powered (best quality)" },
        {
          value: "off",
          displayName: "Off — dimension-based fallback (faster start)",
        },
      ],
    },
    "on",
  )
  .field(
    "safeSearch",
    "select",
    {
      displayName: "Safe Search",
      options: [
        { value: "strict", displayName: "Strict" },
        { value: "moderate", displayName: "Moderate" },
        { value: "off", displayName: "Off" },
      ],
    },
    "moderate",
  )
  .field(
    "enableLocalSources",
    "select",
    {
      displayName: "Local Document Sources",
      subtitle:
        "Search your indexed local document collections alongside the web. " +
        "Use the Local Docs tools to add collections first.",
      options: [
        { value: "on", displayName: "On — include local documents in research" },
        { value: "off", displayName: "Off — web only" },
      ],
    },
    "off",
  )
  .build();