code: import os
  from datetime import datetime
  from pathlib import Path
  from uuid import uuid4
  
  import lancedb
  import pyarrow as pa
  import tantivy
  from pydantic import computed_field
  from slugify import slugify
  from sqlalchemy import TIMESTAMP, Engine, text
  from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select
  
  from tracecat import auth
  from tracecat.auth import decrypt_key, encrypt_key
  from tracecat.labels.mitre import get_mitre_tactics_techniques
  
  STORAGE_PATH = Path(os.path.expanduser("~/.tracecat/storage"))
  EMBEDDINGS_SIZE = os.environ.get("TRACECAT__EMBEDDINGS_SIZE", 512)
  
  DEFAULT_CASE_ACTIONS = [
      "Active compromise",
      "Ignore",
      "Informational",
      "Investigate",
      "Quarantined",
      "Sinkholed",
  ]
  
  
  class User(SQLModel, table=True):
      # The id is also the JWT 'sub' claim
      id: str | None = Field(default_factory=lambda: uuid4().hex, primary_key=True)
      tier: str = "free"  # "free" or "premium"
      settings: str | None = None  # JSON-serialized String of settings
      owned_workflows: list["Workflow"] = Relationship(
          back_populates="owner",
          sa_relationship_kwargs={"cascade": "delete"},
      )
      case_actions: list["CaseAction"] = Relationship(back_populates="user")
      case_contexts: list["CaseContext"] = Relationship(back_populates="user")
      secrets: list["Secret"] = Relationship(
          back_populates="owner",
          sa_relationship_kwargs={"cascade": "delete"},
      )
  
  
  class Resource(SQLModel):
      """Base class for all resources in the system."""
  
      owner_id: str
      created_at: datetime = Field(
          sa_type=TIMESTAMP(),  # UTC Timestamp
          sa_column_kwargs={
              "server_default": text("CURRENT_TIMESTAMP"),
              "nullable": False,
          },
      )
      updated_at: datetime = Field(
          sa_type=TIMESTAMP(),  # UTC Timestamp
          sa_column_kwargs={
              "server_default": text("CURRENT_TIMESTAMP"),
              "server_onupdate": text("CURRENT_TIMESTAMP"),
              "nullable": False,
          },
      )
  
  
  class Secret(Resource, table=True):
      id: str | None = Field(default_factory=lambda: uuid4().hex, primary_key=True)
      name: str | None = Field(default=None, max_length=255, index=True, nullable=True)
      encrypted_api_key: bytes | None = Field(default=None, nullable=True)
      owner_id: str = Field(foreign_key="user.id")
      owner: User | None = Relationship(back_populates="secrets")
  
      @property
      def key(self) -> str | None:
          if not self.encrypted_api_key:
              return None
          return decrypt_key(self.encrypted_api_key)
  
      @key.setter
      def key(self, value: str) -> None:
          self.encrypted_api_key = encrypt_key(value)
  
  
  class Editor(SQLModel, table=True):
      user_id: str | None = Field(default=None, foreign_key="user.id", primary_key=True)
      workflow_id: str | None = Field(
          default=None, foreign_key="workflow.id", primary_key=True
      )
  
  
  class CaseAction(Resource, table=True):
      id: str | None = Field(default_factory=lambda: uuid4().hex, primary_key=True)
      tag: str
      value: str
      user_id: str | None = Field(foreign_key="user.id")
      user: User | None = Relationship(back_populates="case_actions")
  
  
  class CaseContext(Resource, table=True):
      id: str | None = Field(default_factory=lambda: uuid4().hex, primary_key=True)
      tag: str
      value: str
      user_id: str | None = Field(foreign_key="user.id")
      user: User | None = Relationship(back_populates="case_contexts")
  
  
  class Workflow(Resource, table=True):
      id: str | None = Field(default_factory=lambda: uuid4().hex, primary_key=True)
      title: str
      description: str
      status: str = "offline"  # "online" or "offline"
      object: str | None = None  # JSON-serialized String of react flow object
      # Owner
      owner_id: str = Field(foreign_key="user.id")
      owner: User | None = Relationship(back_populates="owned_workflows")
      runs: list["WorkflowRun"] | None = Relationship(back_populates="workflow")
      actions: list["Action"] | None = Relationship(
          back_populates="workflow",
          sa_relationship_kwargs={"cascade": "delete"},
      )
      webhooks: list["Webhook"] | None = Relationship(
          back_populates="workflow",
          sa_relationship_kwargs={"cascade": "delete"},
      )
  
      @computed_field
      @property
      def key(self) -> str:
          slug = slugify(self.title, separator="_")
          return f"{self.id}.{slug}"
  
  
  class WorkflowRun(Resource, table=True):
      id: str | None = Field(default_factory=lambda: uuid4().hex, primary_key=True)
      status: str = "pending"  # "online" or "offline"
      workflow_id: str = Field(foreign_key="workflow.id")
      workflow: Workflow | None = Relationship(back_populates="runs")
  
  
  class Action(Resource, table=True):
      id: str | None = Field(default_factory=lambda: uuid4().hex, primary_key=True)
      type: str
      title: str
      description: str
      status: str = "offline"  # "online" or "offline"
      inputs: str | None = None  # JSON-serialized String of inputs
      workflow_id: str | None = Field(foreign_key="workflow.id")
      workflow: Workflow | None = Relationship(back_populates="actions")
  
      @computed_field
      @property
      def key(self) -> str:
          slug = slugify(self.title, separator="_")
          return f"{self.id}.{slug}"
  
  
  class Webhook(Resource, table=True):
      """Webhook is a URL that can be called to trigger a workflow.
  
      Notes
      -----
      - We need this because we need a way to trigger a workflow from an external source.
      - External sources only have access to the path
      """
  
      id: str | None = Field(
          default_factory=lambda: uuid4().hex,
          primary_key=True,
          description="Webhook path",
      )
      action_id: str | None = Field(foreign_key="action.id")
      workflow_id: str | None = Field(foreign_key="workflow.id")
      workflow: Workflow | None = Relationship(back_populates="webhooks")
  
      @computed_field
      @property
      def secret(self) -> str:
          return auth.compute_hash(self.id)
  
  
  def create_db_engine() -> Engine:
      STORAGE_PATH.mkdir(parents=True, exist_ok=True)
      sqlite_uri = f"sqlite:////{STORAGE_PATH}/database.db"
      engine = create_engine(
          sqlite_uri, echo=True, connect_args={"check_same_thread": False}
      )
      return engine
  
  
  def build_events_index():
      index_path = STORAGE_PATH / "event_index"
      index_path.mkdir(parents=True, exist_ok=True)
      event_schema = (
          tantivy.SchemaBuilder()
          .add_date_field("published_at", fast=True, stored=True)
          .add_text_field("action_id", stored=True)
          .add_text_field("action_run_id", stored=True)
          .add_text_field("action_title", stored=True)
          .add_text_field("action_type", stored=True)
          .add_text_field("workflow_id", stored=True)
          .add_text_field("workflow_title", stored=True)
          .add_text_field("workflow_run_id", stored=True)
          .add_json_field("data", stored=True)
          .build()
      )
      tantivy.Index(event_schema, path=str(index_path))
  
  
  def create_events_index() -> tantivy.Index:
      index_path = STORAGE_PATH / "event_index"
      return tantivy.Index.open(str(index_path))
  
  
  def create_vdb_conn() -> lancedb.DBConnection:
      db = lancedb.connect(STORAGE_PATH / "vector.db")
      return db
  
  
  CaseSchema = pa.schema(
      [
          pa.field("id", pa.string(), nullable=False),
          pa.field("owner_id", pa.string(), nullable=False),
          pa.field("workflow_id", pa.string(), nullable=False),
          pa.field("title", pa.string(), nullable=False),
          pa.field("payload", pa.string(), nullable=False),  # JSON-serialized
          pa.field("context", pa.string(), nullable=True),  # JSON-serialized
          pa.field("malice", pa.string(), nullable=False),
          pa.field("status", pa.string(), nullable=False),
          pa.field("priority", pa.string(), nullable=False),
          pa.field("action", pa.string(), nullable=True),
          pa.field("suppression", pa.string(), nullable=True),  # JSON-serialized
          # pa.field("_action_vector", pa.list_(pa.float32(), list_size=EMBEDDINGS_SIZE)),
          # pa.field("_payload_vector", pa.list_(pa.float32(), list_size=EMBEDDINGS_SIZE)),
          # pa.field("_context_vector", pa.list_(pa.float32(), list_size=EMBEDDINGS_SIZE)),
      ]
  )
  
  
  def initialize_db() -> Engine:
      # Relational table
      engine = create_db_engine()
      SQLModel.metadata.create_all(engine)
  
      # VectorDB
      db = create_vdb_conn()
      db.create_table("cases", schema=CaseSchema, exist_ok=True)
  
      # Search
      build_events_index()
  
      # Add TTPs to context table only if context table is empty
      with Session(engine) as session:
          case_contexts_count = session.exec(select(CaseContext)).all()
          if len(case_contexts_count) == 0:
              mitre_labels = get_mitre_tactics_techniques()
              mitre_contexts = [
                  CaseContext(owner_id="tracecat", tag="mitre", value=label)
                  for label in mitre_labels
              ]
              session.add_all(mitre_contexts)
              session.commit()
  
          case_actions_count = session.exec(select(CaseAction)).all()
          if len(case_actions_count) == 0:
              default_actions = [
                  CaseAction(owner_id="tracecat", tag="case_action", value=case_action)
                  for case_action in DEFAULT_CASE_ACTIONS
              ]
              session.add_all(default_actions)
              session.commit()
      return engine
  
apis: lancedb.connect
extract_api: [((557, 605), 'os.environ.get', 'os.environ.get', (['"""TRACECAT__EMBEDDINGS_SIZE"""', '(512)'], {}), "('TRACECAT__EMBEDDINGS_SIZE', 512)\n", (571, 605), False, 'import os\n'), ((496, 537), 'os.path.expanduser', 'os.path.expanduser', (['"""~/.tracecat/storage"""'], {}), "('~/.tracecat/storage')\n", (514, 537), False, 'import os\n'), ((1064, 1150), 'sqlmodel.Relationship', 'Relationship', ([], {'back_populates': '"""owner"""', 'sa_relationship_kwargs': "{'cascade': 'delete'}"}), "(back_populates='owner', sa_relationship_kwargs={'cascade':\n    'delete'})\n", (1076, 1150), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((1209, 1244), 'sqlmodel.Relationship', 'Relationship', ([], {'back_populates': '"""user"""'}), "(back_populates='user')\n", (1221, 1244), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((1286, 1321), 'sqlmodel.Relationship', 'Relationship', ([], {'back_populates': '"""user"""'}), "(back_populates='user')\n", (1298, 1321), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((1352, 1438), 'sqlmodel.Relationship', 'Relationship', ([], {'back_populates': '"""owner"""', 'sa_relationship_kwargs': "{'cascade': 'delete'}"}), "(back_populates='owner', sa_relationship_kwargs={'cascade':\n    'delete'})\n", (1364, 1438), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((2184, 2246), 'sqlmodel.Field', 'Field', ([], {'default': 'None', 'max_length': '(255)', 'index': '(True)', 'nullable': '(True)'}), '(default=None, max_length=255, index=True, nullable=True)\n', (2189, 2246), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((2285, 2319), 'sqlmodel.Field', 'Field', ([], {'default': 'None', 'nullable': '(True)'}), '(default=None, nullable=True)\n', (2290, 2319), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((2340, 2368), 'sqlmodel.Field', 'Field', ([], {'foreign_key': '"""user.id"""'}), "(foreign_key='user.id')\n", (2345, 2368), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((2394, 2432), 'sqlmodel.Relationship', 'Relationship', ([], {'back_populates': '"""secrets"""'}), "(back_populates='secrets')\n", (2406, 2432), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((2767, 2827), 'sqlmodel.Field', 'Field', ([], {'default': 'None', 'foreign_key': '"""user.id"""', 'primary_key': '(True)'}), "(default=None, foreign_key='user.id', primary_key=True)\n", (2772, 2827), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((2858, 2922), 'sqlmodel.Field', 'Field', ([], {'default': 'None', 'foreign_key': '"""workflow.id"""', 'primary_key': '(True)'}), "(default=None, foreign_key='workflow.id', primary_key=True)\n", (2863, 2922), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((3115, 3143), 'sqlmodel.Field', 'Field', ([], {'foreign_key': '"""user.id"""'}), "(foreign_key='user.id')\n", (3120, 3143), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((3168, 3211), 'sqlmodel.Relationship', 'Relationship', ([], {'back_populates': '"""case_actions"""'}), "(back_populates='case_actions')\n", (3180, 3211), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((3391, 3419), 'sqlmodel.Field', 'Field', ([], {'foreign_key': '"""user.id"""'}), "(foreign_key='user.id')\n", (3396, 3419), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((3444, 3488), 'sqlmodel.Relationship', 'Relationship', ([], {'back_populates': '"""case_contexts"""'}), "(back_populates='case_contexts')\n", (3456, 3488), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((3809, 3837), 'sqlmodel.Field', 'Field', ([], {'foreign_key': '"""user.id"""'}), "(foreign_key='user.id')\n", (3814, 3837), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((3863, 3909), 'sqlmodel.Relationship', 'Relationship', ([], {'back_populates': '"""owned_workflows"""'}), "(back_populates='owned_workflows')\n", (3875, 3909), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((3949, 3988), 'sqlmodel.Relationship', 'Relationship', ([], {'back_populates': '"""workflow"""'}), "(back_populates='workflow')\n", (3961, 3988), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((4026, 4115), 'sqlmodel.Relationship', 'Relationship', ([], {'back_populates': '"""workflow"""', 'sa_relationship_kwargs': "{'cascade': 'delete'}"}), "(back_populates='workflow', sa_relationship_kwargs={'cascade':\n    'delete'})\n", (4038, 4115), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((4174, 4263), 'sqlmodel.Relationship', 'Relationship', ([], {'back_populates': '"""workflow"""', 'sa_relationship_kwargs': "{'cascade': 'delete'}"}), "(back_populates='workflow', sa_relationship_kwargs={'cascade':\n    'delete'})\n", (4186, 4263), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((4630, 4662), 'sqlmodel.Field', 'Field', ([], {'foreign_key': '"""workflow.id"""'}), "(foreign_key='workflow.id')\n", (4635, 4662), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((4695, 4730), 'sqlmodel.Relationship', 'Relationship', ([], {'back_populates': '"""runs"""'}), "(back_populates='runs')\n", (4707, 4730), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((5050, 5082), 'sqlmodel.Field', 'Field', ([], {'foreign_key': '"""workflow.id"""'}), "(foreign_key='workflow.id')\n", (5055, 5082), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((5115, 5153), 'sqlmodel.Relationship', 'Relationship', ([], {'back_populates': '"""actions"""'}), "(back_populates='actions')\n", (5127, 5153), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((5744, 5774), 'sqlmodel.Field', 'Field', ([], {'foreign_key': '"""action.id"""'}), "(foreign_key='action.id')\n", (5749, 5774), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((5805, 5837), 'sqlmodel.Field', 'Field', ([], {'foreign_key': '"""workflow.id"""'}), "(foreign_key='workflow.id')\n", (5810, 5837), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((5870, 5909), 'sqlmodel.Relationship', 'Relationship', ([], {'back_populates': '"""webhooks"""'}), "(back_populates='webhooks')\n", (5882, 5909), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((6175, 6254), 'sqlmodel.create_engine', 'create_engine', (['sqlite_uri'], {'echo': '(True)', 'connect_args': "{'check_same_thread': False}"}), "(sqlite_uri, echo=True, connect_args={'check_same_thread': False})\n", (6188, 6254), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((7219, 7262), 'lancedb.connect', 'lancedb.connect', (["(STORAGE_PATH / 'vector.db')"], {}), "(STORAGE_PATH / 'vector.db')\n", (7234, 7262), False, 'import lancedb\n'), ((8370, 8406), 'sqlmodel.SQLModel.metadata.create_all', 'SQLModel.metadata.create_all', (['engine'], {}), '(engine)\n', (8398, 8406), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((2559, 2594), 'tracecat.auth.decrypt_key', 'decrypt_key', (['self.encrypted_api_key'], {}), '(self.encrypted_api_key)\n', (2570, 2594), False, 'from tracecat.auth import decrypt_key, encrypt_key\n'), ((2684, 2702), 'tracecat.auth.encrypt_key', 'encrypt_key', (['value'], {}), '(value)\n', (2695, 2702), False, 'from tracecat.auth import decrypt_key, encrypt_key\n'), ((4359, 4393), 'slugify.slugify', 'slugify', (['self.title'], {'separator': '"""_"""'}), "(self.title, separator='_')\n", (4366, 4393), False, 'from slugify import slugify\n'), ((5230, 5264), 'slugify.slugify', 'slugify', (['self.title'], {'separator': '"""_"""'}), "(self.title, separator='_')\n", (5237, 5264), False, 'from slugify import slugify\n'), ((5989, 6015), 'tracecat.auth.compute_hash', 'auth.compute_hash', (['self.id'], {}), '(self.id)\n', (6006, 6015), False, 'from tracecat import auth\n'), ((8625, 8640), 'sqlmodel.Session', 'Session', (['engine'], {}), '(engine)\n', (8632, 8640), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((1609, 1620), 'sqlalchemy.TIMESTAMP', 'TIMESTAMP', ([], {}), '()\n', (1618, 1620), False, 'from sqlalchemy import TIMESTAMP, Engine, text\n'), ((1821, 1832), 'sqlalchemy.TIMESTAMP', 'TIMESTAMP', ([], {}), '()\n', (1830, 1832), False, 'from sqlalchemy import TIMESTAMP, Engine, text\n'), ((7332, 7343), 'pyarrow.string', 'pa.string', ([], {}), '()\n', (7341, 7343), True, 'import pyarrow as pa\n'), ((7391, 7402), 'pyarrow.string', 'pa.string', ([], {}), '()\n', (7400, 7402), True, 'import pyarrow as pa\n'), ((7453, 7464), 'pyarrow.string', 'pa.string', ([], {}), '()\n', (7462, 7464), True, 'import pyarrow as pa\n'), ((7509, 7520), 'pyarrow.string', 'pa.string', ([], {}), '()\n', (7518, 7520), True, 'import pyarrow as pa\n'), ((7567, 7578), 'pyarrow.string', 'pa.string', ([], {}), '()\n', (7576, 7578), True, 'import pyarrow as pa\n'), ((7644, 7655), 'pyarrow.string', 'pa.string', ([], {}), '()\n', (7653, 7655), True, 'import pyarrow as pa\n'), ((7719, 7730), 'pyarrow.string', 'pa.string', ([], {}), '()\n', (7728, 7730), True, 'import pyarrow as pa\n'), ((7776, 7787), 'pyarrow.string', 'pa.string', ([], {}), '()\n', (7785, 7787), True, 'import pyarrow as pa\n'), ((7835, 7846), 'pyarrow.string', 'pa.string', ([], {}), '()\n', (7844, 7846), True, 'import pyarrow as pa\n'), ((7892, 7903), 'pyarrow.string', 'pa.string', ([], {}), '()\n', (7901, 7903), True, 'import pyarrow as pa\n'), ((7953, 7964), 'pyarrow.string', 'pa.string', ([], {}), '()\n', (7962, 7964), True, 'import pyarrow as pa\n'), ((8792, 8822), 'tracecat.labels.mitre.get_mitre_tactics_techniques', 'get_mitre_tactics_techniques', ([], {}), '()\n', (8820, 8822), False, 'from tracecat.labels.mitre import get_mitre_tactics_techniques\n'), ((1696, 1721), 'sqlalchemy.text', 'text', (['"""CURRENT_TIMESTAMP"""'], {}), "('CURRENT_TIMESTAMP')\n", (1700, 1721), False, 'from sqlalchemy import TIMESTAMP, Engine, text\n'), ((1908, 1933), 'sqlalchemy.text', 'text', (['"""CURRENT_TIMESTAMP"""'], {}), "('CURRENT_TIMESTAMP')\n", (1912, 1933), False, 'from sqlalchemy import TIMESTAMP, Engine, text\n'), ((1966, 1991), 'sqlalchemy.text', 'text', (['"""CURRENT_TIMESTAMP"""'], {}), "('CURRENT_TIMESTAMP')\n", (1970, 1991), False, 'from sqlalchemy import TIMESTAMP, Engine, text\n'), ((877, 884), 'uuid.uuid4', 'uuid4', ([], {}), '()\n', (882, 884), False, 'from uuid import uuid4\n'), ((2130, 2137), 'uuid.uuid4', 'uuid4', ([], {}), '()\n', (2135, 2137), False, 'from uuid import uuid4\n'), ((3030, 3037), 'uuid.uuid4', 'uuid4', ([], {}), '()\n', (3035, 3037), False, 'from uuid import uuid4\n'), ((3306, 3313), 'uuid.uuid4', 'uuid4', ([], {}), '()\n', (3311, 3313), False, 'from uuid import uuid4\n'), ((3580, 3587), 'uuid.uuid4', 'uuid4', ([], {}), '()\n', (3585, 3587), False, 'from uuid import uuid4\n'), ((4523, 4530), 'uuid.uuid4', 'uuid4', ([], {}), '()\n', (4528, 4530), False, 'from uuid import uuid4\n'), ((4820, 4827), 'uuid.uuid4', 'uuid4', ([], {}), '()\n', (4825, 4827), False, 'from uuid import uuid4\n'), ((5635, 5642), 'uuid.uuid4', 'uuid4', ([], {}), '()\n', (5640, 5642), False, 'from uuid import uuid4\n'), ((8696, 8715), 'sqlmodel.select', 'select', (['CaseContext'], {}), '(CaseContext)\n', (8702, 8715), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((9101, 9119), 'sqlmodel.select', 'select', (['CaseAction'], {}), '(CaseAction)\n', (9107, 9119), False, 'from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select\n'), ((6440, 6463), 'tantivy.SchemaBuilder', 'tantivy.SchemaBuilder', ([], {}), '()\n', (6461, 6463), False, 'import tantivy\n')]