{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/letta/main/json-schema/letta-source-schema.json",
  "title": "Source",
  "description": "(Deprecated: Use Folder) Representation of a source, which is a collection of files and passages.",
  "properties": {
    "name": {
      "type": "string",
      "title": "Name",
      "description": "The name of the source."
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description",
      "description": "The description of the source."
    },
    "instructions": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Instructions",
      "description": "Instructions for how to use the source."
    },
    "metadata": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "title": "Metadata",
      "description": "Metadata associated with the source."
    },
    "id": {
      "type": "string",
      "pattern": "^source-[a-fA-F0-9]{8}",
      "title": "Id",
      "description": "The human-friendly ID of the Source",
      "examples": [
        "source-123e4567-e89b-12d3-a456-426614174000"
      ]
    },
    "embedding_config": {
      "$ref": "#/$defs/EmbeddingConfig"
    },
    "vector_db_provider": {
      "$ref": "#/$defs/VectorDBProvider"
    },
    "created_by_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Created By Id",
      "description": "The id of the user that made this Tool."
    },
    "last_updated_by_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Last Updated By Id",
      "description": "The id of the user that made this Tool."
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Created At",
      "description": "The timestamp when the source was created."
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Updated At",
      "description": "The timestamp when the source was last updated."
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "name",
    "embedding_config"
  ],
  "$defs": {
    "EmbeddingConfig": {
      "properties": {
        "embedding_endpoint_type": {
          "type": "string",
          "enum": [
            "openai",
            "anthropic",
            "bedrock",
            "google_ai",
            "google_vertex",
            "azure",
            "groq",
            "ollama",
            "webui",
            "webui-legacy",
            "lmstudio",
            "lmstudio-legacy",
            "llamacpp",
            "koboldcpp",
            "vllm",
            "hugging-face",
            "mistral",
            "together",
            "pinecone"
          ],
          "title": "Embedding Endpoint Type",
          "description": "The endpoint type for the model."
        },
        "embedding_endpoint": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Embedding Endpoint",
          "description": "The endpoint for the model (`None` if local)."
        },
        "embedding_model": {
          "type": "string",
          "title": "Embedding Model",
          "description": "The model for the embedding."
        },
        "embedding_dim": {
          "type": "integer",
          "title": "Embedding Dim",
          "description": "The dimension of the embedding."
        },
        "embedding_chunk_size": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Embedding Chunk Size",
          "description": "The chunk size of the embedding.",
          "default": 300
        },
        "handle": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Handle",
          "description": "The handle for this config, in the format provider/model-name."
        },
        "batch_size": {
          "type": "integer",
          "title": "Batch Size",
          "description": "The maximum batch size for processing embeddings.",
          "default": 32
        },
        "azure_endpoint": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Azure Endpoint",
          "description": "The Azure endpoint for the model."
        },
        "azure_version": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Azure Version",
          "description": "The Azure version for the model."
        },
        "azure_deployment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Azure Deployment",
          "description": "The Azure deployment for the model."
        }
      },
      "type": "object",
      "required": [
        "embedding_endpoint_type",
        "embedding_model",
        "embedding_dim"
      ],
      "title": "EmbeddingConfig",
      "description": "Configuration for embedding model connection and processing parameters."
    },
    "VectorDBProvider": {
      "type": "string",
      "enum": [
        "native",
        "tpuf",
        "pinecone"
      ],
      "title": "VectorDBProvider",
      "description": "Supported vector database providers for archival memory"
    }
  }
}