{
  "schemaVersion": 1,
  "runtime": {
    "cacheDirectory": ".omnischolar/cache",
    "python": "python",
    "logLevel": "info",
    "maxOutputBytes": 51200,
    "maxOutputLines": 2000,
    "maxResponseBytes": 16777216,
    "requestTimeoutSeconds": 30,
    "workspaceRoots": ["."]
  },
  "tools": {
    "groups": {
      "literature": true,
      "ai4scholar": true,
      "zotero": true,
      "parsing": true,
      "citation": true,
      "materials": true,
      "chemistry": true,
      "media": true
    },
    "disabled": []
  },
  "defaults": {
    "language": "en",
    "citationStyle": "apa",
    "literatureLimit": 20,
    "preferredLiteratureProviders": ["semantic-scholar", "openalex", "crossref"],
    "defaultImageProvider": "openai"
  },
  "research": {
    "fallback": true,
    "maxPages": 10,
    "cacheTtlSeconds": 3600,
    "providers": {
      "semantic-scholar": {
        "enabled": true,
        "apiKey": "",
        "apiKeyEnv": null,
        "maxPages": 10
      },
      "openalex": {
        "enabled": true,
        "apiKey": "",
        "email": "researcher@example.edu",
        "maxPages": 10
      },
      "pubmed": {
        "enabled": true,
        "apiKey": "",
        "apiKeyEnv": null,
        "email": "researcher@example.edu",
        "tool": "omnischolar",
        "maxPages": 10
      },
      "arxiv": {
        "enabled": true,
        "apiKey": "",
        "maxPages": 10
      },
      "crossref": {
        "enabled": true,
        "apiKey": "",
        "email": "researcher@example.edu",
        "maxPages": 10
      },
      "unpaywall": {
        "enabled": true,
        "apiKey": "",
        "email": "researcher@example.edu",
        "maxPages": 10
      },
      "easyscholar": {
        "enabled": true,
        "apiKey": "",
        "apiKeyEnv": null,
        "maxPages": 5
      }
    }
  },
  "ai4scholar": {
    "enabled": true,
    "baseUrl": "https://ai4scholar.net",
    "apiKey": "",
    "apiKeyEnv": null,
    "timeoutSeconds": 60,
    "maxResponseBytes": 16777216
  },
  "zotero": {
    "enabled": true,
    "baseUrl": "http://127.0.0.1:23119/api",
    "maxItems": 500
  },
  "mineru": {
    "enabled": true,
    "baseUrl": "https://mineru.net/api/v4",
    "lightweightBaseUrl": "https://mineru.net/api/v1/agent",
    "apiKey": "",
    "apiKeyEnv": null,
    "model": "pipeline",
    "cacheDirectory": ".omnischolar/mineru",
    "pollIntervalSeconds": 2,
    "pollTimeoutSeconds": 600,
    "maxPdfBytes": 209715200,
    "allowLightweightFallback": false
  },
  "data": {
    "materialsProject": {
      "enabled": true,
      "baseUrl": "https://api.materialsproject.org",
      "apiKey": "",
      "apiKeyEnv": null,
      "maxPages": 10
    },
    "casCommonChemistry": {
      "enabled": true,
      "apiKey": "",
      "apiKeyEnv": null,
      "baseUrl": null,
      "contractFile": null
    }
  },
  "media": {
    "maxInputBytes": 26214400,
    "maxArtifactBytes": 52428800,
    "providers": {
      "openai": {
        "enabled": true,
        "apiKey": "",
        "apiKeyEnv": null,
        "baseUrl": "https://api.openai.com/v1",
        "models": {},
        "options": {}
      },
      "google": {
        "enabled": true,
        "apiKey": "",
        "apiKeyEnv": null,
        "baseUrl": "https://generativelanguage.googleapis.com/v1beta",
        "models": {},
        "options": {}
      },
      "vertex": {
        "enabled": true,
        "apiKey": "",
        "apiKeyEnv": null,
        "credentialsFile": null,
        "project": null,
        "location": "global",
        "models": {},
        "options": {}
      },
      "xai": {
        "enabled": true,
        "apiKey": "",
        "apiKeyEnv": null,
        "baseUrl": "https://api.x.ai/v1",
        "models": {},
        "options": {}
      },
      "fal": {
        "enabled": true,
        "apiKey": "",
        "apiKeyEnv": null,
        "baseUrl": "https://queue.fal.run",
        "models": {},
        "options": {}
      },
      "dashscope": {
        "enabled": true,
        "apiKey": "",
        "apiKeyEnv": null,
        "baseUrl": "https://your-workspace.cn-beijing.maas.aliyuncs.com/api/v1",
        "models": {},
        "options": {
          "workspace": "your-workspace",
          "region": "cn-beijing",
          "protocol": "native"
        }
      },
      "qwen-cloud": {
        "enabled": true,
        "apiKey": "",
        "apiKeyEnv": null,
        "baseUrl": "https://dashscope.aliyuncs.com/api/v1",
        "models": {},
        "options": {
          "protocol": "native"
        }
      },
      "atlas": {
        "enabled": true,
        "apiKey": "",
        "apiKeyEnv": null,
        "baseUrl": "https://api.atlascloud.ai/api/v1",
        "models": {},
        "options": {
          "generationEndpoint": "model/generateImage",
          "pollEndpoint": "model/prediction",
          "pollIntervalSeconds": 2,
          "pollTimeoutSeconds": 600
        }
      },
      "custom": {
        "enabled": true,
        "apiKey": "",
        "apiKeyEnv": null,
        "baseUrl": "https://images.example.edu/v1",
        "models": {
          "gpt-image-2": {
            "capabilities": ["text-to-image", "image-to-image", "edit", "multi-reference"],
            "supportedParameters": ["size", "resolution", "background", "outputFormat", "quality", "n"],
            "paid": true
          },
          "gpt-image-2.5-sunburst": {
            "capabilities": ["text-to-image", "image-to-image", "edit", "multi-reference"],
            "supportedParameters": ["size", "resolution", "background", "outputFormat", "quality", "n"],
            "paid": true
          },
          "gpt-image-2.5-flare": {
            "capabilities": ["text-to-image", "image-to-image", "edit", "multi-reference"],
            "supportedParameters": ["size", "resolution", "background", "outputFormat", "quality", "n"],
            "paid": true
          },
          "gemini-3.1-flash-image": {
            "capabilities": ["text-to-image", "image-to-image", "edit", "multi-reference"],
            "supportedParameters": ["size", "resolution", "background", "outputFormat", "quality", "n"],
            "paid": true
          },
          "gemini-3.1-flash-lite-image": {
            "capabilities": ["text-to-image", "image-to-image", "edit", "multi-reference"],
            "supportedParameters": ["size", "resolution", "background", "outputFormat", "quality", "n"],
            "paid": true
          },
          "gemini-3-pro-image": {
            "capabilities": ["text-to-image", "image-to-image", "edit", "multi-reference"],
            "supportedParameters": ["size", "resolution", "background", "outputFormat", "quality", "n"],
            "paid": true
          }
        },
        "options": {
          "modelCatalogEndpoint": null,
          "generationEndpoint": "images/generations",
          "editEndpoint": "images/edits",
          "imageTimeoutSeconds": 180
        }
      }
    }
  },
  "sync": {
    "namespace": null,
    "cacheDirectory": ".omnischolar/sync",
    "conflictPolicy": "preserve-local",
    "recovery": true,
    "backup": true,
    "avoidUnnecessaryParse": true
  },
  "output": {
    "rootDirectory": "omnischolar-output",
    "literatureDirectory": "Literatures",
    "folderNameTemplate": "{author}{separator}{year}{separator}{title}",
    "filenameTemplate": "{author}{separator}{year}{separator}{title}",
    "filenameSeparator": "-",
    "assetFilenameTemplate": "image-{index}{extension}",
    "conflictDirectory": ".conflicts",
    "safeWrites": true,
    "source": {
      "directory": "source",
      "copyPdf": true,
      "pdfFilenameTemplate": "paper.pdf",
      "zoteroReadingRecordFilename": "zotero-reading-record.md",
      "embedPdf": true
    },
    "analysis": {
      "singleDirectory": "Analysis/Single",
      "multiDirectory": "Analysis/Multi",
      "singleFilenameTemplate": "{analysisType}",
      "comparisonFilenameTemplate": "{date}{separator}{topic}{separator}compare",
      "reviewFilenameTemplate": "{date}{separator}{topic}{separator}review"
    }
  }
}
