# Shared types for Knowledge Base configuration
#
# This file defines common types used across KB configuration schemas.

{
  # Node types for knowledge base entries
  NodeType = [| 'note, 'decision, 'guideline, 'pattern, 'journal, 'execution |],

  # Node status values
  NodeStatus = [| 'draft, 'active, 'superseded, 'archived |],

  # Relationship edge types
  EdgeType = [| 'relates_to, 'depends_on, 'implements, 'extends, 'supersedes, 'explains |],

  # Storage backend types
  StorageType = [| 'filesystem, 'memory |],

  # Secondary storage backend types
  SecondaryStorageType = [| 'surrealdb, 'sqlite |],

  # Embedding provider types
  EmbeddingProvider = [| 'openai, 'claude, 'ollama, 'fastembed |],

  # MCP transport types
  McpTransport = [| 'stdio, 'sse |],

  # ISO 8601 timestamp string
  Timestamp = String,

  # Semantic version string (e.g., "1.0.0")
  Version = String,

  # File path string
  Path = String,

  # URL string
  Url = String,

  # Positive integer
  PositiveInt = Number,

  # Float between 0.0 and 1.0
  UnitFloat = Number,

  # Email address
  Email = String,
}
