388 lines
8.2 KiB
Plaintext
388 lines
8.2 KiB
Plaintext
# Knowledge Base Configuration Schema
|
|
#
|
|
# Main configuration schema for the knowledge base system.
|
|
# This schema is exported to JSON and loaded into Rust structs.
|
|
#
|
|
# Usage:
|
|
# nickel export --format json kogral-config.ncl > config.json
|
|
|
|
let Types = import "types.ncl" in
|
|
|
|
{
|
|
# Graph metadata configuration
|
|
GraphConfig = {
|
|
name
|
|
| String
|
|
| doc "Graph name/identifier",
|
|
|
|
version
|
|
| Types.Version
|
|
| doc "Graph version (semver)"
|
|
| default = "1.0.0",
|
|
|
|
description
|
|
| String
|
|
| doc "Human-readable description"
|
|
| default = "",
|
|
},
|
|
|
|
# Inheritance configuration for guidelines
|
|
InheritanceConfig = {
|
|
base
|
|
| Types.Path
|
|
| doc "Base path for shared KOGRAL (resolves $TOOLS_PATH at runtime, defaults to $HOME/Tools)"
|
|
| default = "$TOOLS_PATH/.kogral-shared",
|
|
|
|
guidelines
|
|
| Array Types.Path
|
|
| doc "Additional guideline paths to inherit"
|
|
| default = [],
|
|
|
|
priority
|
|
| Types.PositiveInt
|
|
| doc "Override priority (higher = wins)"
|
|
| default = 100,
|
|
},
|
|
|
|
# Secondary storage configuration
|
|
SecondaryStorageConfig = {
|
|
enabled
|
|
| Bool
|
|
| doc "Whether secondary storage is enabled"
|
|
| default = false,
|
|
|
|
type
|
|
| Types.SecondaryStorageType
|
|
| doc "Secondary storage backend type"
|
|
| default = 'surrealdb,
|
|
|
|
url
|
|
| Types.Url
|
|
| doc "Connection URL for secondary storage"
|
|
| default = "ws://localhost:8000",
|
|
|
|
namespace
|
|
| String
|
|
| doc "Database namespace"
|
|
| default = "kogral",
|
|
|
|
database
|
|
| String
|
|
| doc "Database name"
|
|
| default = "default",
|
|
},
|
|
|
|
# Storage backend configuration
|
|
StorageConfig = {
|
|
primary
|
|
| Types.StorageType
|
|
| doc "Primary storage backend type"
|
|
| default = 'filesystem,
|
|
|
|
secondary
|
|
| SecondaryStorageConfig
|
|
| doc "Optional secondary storage (for scaling/search)"
|
|
| default = {},
|
|
},
|
|
|
|
# Embedding provider configuration
|
|
EmbeddingConfig = {
|
|
enabled
|
|
| Bool
|
|
| doc "Whether embeddings are enabled"
|
|
| default = true,
|
|
|
|
provider
|
|
| Types.EmbeddingProvider
|
|
| doc "Embedding provider selection"
|
|
| default = 'fastembed,
|
|
|
|
model
|
|
| String
|
|
| doc "Model name/identifier"
|
|
| default = "BAAI/bge-small-en-v1.5",
|
|
|
|
dimensions
|
|
| Types.PositiveInt
|
|
| doc "Vector dimensions"
|
|
| default = 384,
|
|
|
|
api_key_env
|
|
| String
|
|
| doc "Environment variable name for API key"
|
|
| default = "OPENAI_API_KEY",
|
|
},
|
|
|
|
# Logseq blocks support configuration
|
|
BlocksConfig = {
|
|
enabled
|
|
| Bool
|
|
| doc "Enable Logseq content blocks parsing and queries"
|
|
| default = false,
|
|
|
|
parse_on_import
|
|
| Bool
|
|
| doc "Automatically parse blocks when importing Logseq pages"
|
|
| default = true,
|
|
|
|
serialize_on_export
|
|
| Bool
|
|
| doc "Serialize blocks to outliner format on export"
|
|
| default = true,
|
|
|
|
enable_mcp_tools
|
|
| Bool
|
|
| doc "Enable block-related MCP tools (kogral/find_blocks, kogral/find_todos, kogral/find_cards)"
|
|
| default = true,
|
|
},
|
|
|
|
# Template mappings per node type
|
|
TemplateMap = {
|
|
note
|
|
| String
|
|
| doc "Note template filename"
|
|
| default = "note.md.tera",
|
|
|
|
decision
|
|
| String
|
|
| doc "Decision (ADR) template filename"
|
|
| default = "decision.md.tera",
|
|
|
|
guideline
|
|
| String
|
|
| doc "Guideline template filename"
|
|
| default = "guideline.md.tera",
|
|
|
|
pattern
|
|
| String
|
|
| doc "Pattern template filename"
|
|
| default = "pattern.md.tera",
|
|
|
|
journal
|
|
| String
|
|
| doc "Journal (daily notes) template filename"
|
|
| default = "journal.md.tera",
|
|
|
|
execution
|
|
| String
|
|
| doc "Execution record template filename"
|
|
| default = "execution.md.tera",
|
|
},
|
|
|
|
# Export template mappings
|
|
ExportTemplateMap = {
|
|
logseq_page
|
|
| String
|
|
| doc "Logseq page export template"
|
|
| default = "export/logseq-page.md.tera",
|
|
|
|
logseq_journal
|
|
| String
|
|
| doc "Logseq journal export template"
|
|
| default = "export/logseq-journal.md.tera",
|
|
|
|
summary
|
|
| String
|
|
| doc "Summary report template"
|
|
| default = "export/summary.md.tera",
|
|
|
|
json
|
|
| String
|
|
| doc "JSON export template"
|
|
| default = "export/graph.json.tera",
|
|
},
|
|
|
|
# Template engine configuration
|
|
TemplateConfig = {
|
|
templates_dir
|
|
| Types.Path
|
|
| doc "Template directory path (relative to project root)"
|
|
| default = "templates",
|
|
|
|
templates
|
|
| TemplateMap
|
|
| doc "Node type template mappings"
|
|
| default = {},
|
|
|
|
export
|
|
| ExportTemplateMap
|
|
| doc "Export template mappings"
|
|
| default = {},
|
|
|
|
custom
|
|
| { _ | String }
|
|
| doc "Custom template registry (name → path)"
|
|
| default = {},
|
|
},
|
|
|
|
# Query behavior configuration
|
|
QueryConfig = {
|
|
similarity_threshold
|
|
| Types.UnitFloat
|
|
| doc "Minimum similarity threshold for matches (0.0 to 1.0)"
|
|
| default = 0.4,
|
|
|
|
max_results
|
|
| Types.PositiveInt
|
|
| doc "Maximum number of search results"
|
|
| default = 10,
|
|
|
|
recency_weight
|
|
| Number
|
|
| doc "Recency weight (higher = prefer more recent results)"
|
|
| default = 3.0,
|
|
|
|
cross_graph
|
|
| Bool
|
|
| doc "Whether cross-graph queries are enabled"
|
|
| default = true,
|
|
},
|
|
|
|
# MCP server configuration
|
|
McpServerConfig = {
|
|
name
|
|
| String
|
|
| doc "MCP server name"
|
|
| default = "kogral-mcp",
|
|
|
|
version
|
|
| Types.Version
|
|
| doc "MCP server version"
|
|
| default = "1.0.0",
|
|
|
|
transport
|
|
| Types.McpTransport
|
|
| doc "Transport protocol (stdio or SSE)"
|
|
| default = 'stdio,
|
|
},
|
|
|
|
# MCP tools configuration
|
|
McpToolsConfig = {
|
|
search
|
|
| Bool
|
|
| doc "Enable kogral/search tool"
|
|
| default = true,
|
|
|
|
add_note
|
|
| Bool
|
|
| doc "Enable kogral/add_note tool"
|
|
| default = true,
|
|
|
|
add_decision
|
|
| Bool
|
|
| doc "Enable kogral/add_decision tool"
|
|
| default = true,
|
|
|
|
link
|
|
| Bool
|
|
| doc "Enable kogral/link tool"
|
|
| default = true,
|
|
|
|
get_guidelines
|
|
| Bool
|
|
| doc "Enable kogral/get_guidelines tool"
|
|
| default = true,
|
|
|
|
export
|
|
| Bool
|
|
| doc "Enable kogral/export tool"
|
|
| default = true,
|
|
},
|
|
|
|
# MCP resources configuration
|
|
McpResourcesConfig = {
|
|
expose_project
|
|
| Bool
|
|
| doc "Expose project resources (kogral://project/*)"
|
|
| default = true,
|
|
|
|
expose_shared
|
|
| Bool
|
|
| doc "Expose shared resources (kogral://shared/*)"
|
|
| default = true,
|
|
},
|
|
|
|
# MCP configuration
|
|
McpConfig = {
|
|
server
|
|
| McpServerConfig
|
|
| doc "MCP server settings"
|
|
| default = {},
|
|
|
|
tools
|
|
| McpToolsConfig
|
|
| doc "MCP tool enablement"
|
|
| default = {},
|
|
|
|
resources
|
|
| McpResourcesConfig
|
|
| doc "MCP resource exposure"
|
|
| default = {},
|
|
},
|
|
|
|
# Sync configuration
|
|
SyncConfig = {
|
|
auto_index
|
|
| Bool
|
|
| doc "Auto-sync filesystem to secondary storage"
|
|
| default = true,
|
|
|
|
watch_paths
|
|
| Array String
|
|
| doc "Paths to watch for changes"
|
|
| default = ["notes", "decisions", "guidelines", "patterns", "journal"],
|
|
|
|
debounce_ms
|
|
| Types.PositiveInt
|
|
| doc "Debounce time in milliseconds"
|
|
| default = 500,
|
|
},
|
|
|
|
# Main configuration schema
|
|
KbConfig = {
|
|
graph
|
|
| GraphConfig
|
|
| doc "Graph metadata configuration",
|
|
|
|
inheritance
|
|
| InheritanceConfig
|
|
| doc "Inheritance settings for guidelines"
|
|
| default = {},
|
|
|
|
storage
|
|
| StorageConfig
|
|
| doc "Storage backend configuration"
|
|
| default = {},
|
|
|
|
embeddings
|
|
| EmbeddingConfig
|
|
| doc "Embedding provider configuration"
|
|
| default = {},
|
|
|
|
blocks
|
|
| BlocksConfig
|
|
| doc "Logseq blocks support configuration"
|
|
| default = {},
|
|
|
|
templates
|
|
| TemplateConfig
|
|
| doc "Template engine configuration"
|
|
| default = {},
|
|
|
|
query
|
|
| QueryConfig
|
|
| doc "Query behavior configuration"
|
|
| default = {},
|
|
|
|
mcp
|
|
| McpConfig
|
|
| doc "MCP server configuration"
|
|
| default = {},
|
|
|
|
sync
|
|
| SyncConfig
|
|
| doc "Sync settings"
|
|
| default = {},
|
|
},
|
|
}
|