# TypeDialog Configuration Hub Central repository for all KOGRAL system configurations, schemas, and automation scripts. ## Structure ``` .typedialog/ ├── ci/ # CI/CD configuration and pipeline setup │ ├── config.ncl # CI configuration (GitHub Actions, deployment) │ ├── README.md # CI documentation │ └── ... │ └── kogral/ # KOGRAL knowledge base configuration ├── core/ # Core Nickel schemas │ ├── contracts.ncl # Type contracts and validation │ ├── defaults.ncl # Base default configuration │ └── helpers.ncl # Utility functions │ ├── modes/ # Environment-specific overrides │ ├── dev.ncl # Development mode │ ├── prod.ncl # Production mode │ └── test.ncl # Test mode │ ├── scripts/ # NuShell automation scripts │ ├── kogral-sync.nu # Bidirectional sync │ ├── kogral-reindex.nu # Embeddings indexing │ ├── kogral-import-logseq.nu # Logseq import │ ├── kogral-export-logseq.nu # Logseq export │ └── kogral-migrate.nu # Schema migration │ └── README.md # KOGRAL configuration guide ``` ## Quick Navigation ### For Configuration Management - **[KOGRAL Configuration](kogral/README.md)** - How KOGRAL schemas and modes work - **Understanding the stack**: Nickel → JSON → Rust → Runtime ### For CI/CD - **[CI Configuration](ci/README.md)** - Pipeline setup and deployment ### For Automation - **[NuShell Scripts](kogral/scripts/)** - All automation scripts (5 total) - **[Scripts Documentation](../docs/cli/nushell-scripts.md)** - Detailed usage guide ## Configuration Pattern KOGRAL uses a **3-layer configuration system**: ``` ┌─────────────────────────────────────────┐ │ Layer 1: Nickel Schemas (kogral/core/) │ ← Type safety + validation ├─────────────────────────────────────────┤ │ Layer 2: Mode Overrides (kogral/modes/) │ ← Environment-specific ├─────────────────────────────────────────┤ │ Layer 3: User Customization (.kogral/) │ ← Project-level └─────────────────────────────────────────┘ ↓ Exported to JSON ↓ ┌─────────────────────────────────────────┐ │ Rust Deserialization + Runtime Use │ └─────────────────────────────────────────┘ ``` ## Files by Purpose ### Core Configuration Files | File | Purpose | |------|---------| | `kogral/core/contracts.ncl` | Type contracts + field documentation | | `kogral/core/defaults.ncl` | Base configuration values | | `kogral/core/helpers.ncl` | Composition functions (merge, override) | | `kogral/modes/dev.ncl` | Development environment overrides | | `kogral/modes/prod.ncl` | Production environment overrides | | `kogral/modes/test.ncl` | Test environment overrides | ### Automation Scripts | Script | Purpose | |--------|---------| | `kogral/scripts/kogral-sync.nu` | Sync filesystem ↔ SurrealDB | | `kogral/scripts/kogral-reindex.nu` | Regenerate embeddings index | | `kogral/scripts/kogral-import-logseq.nu` | Import from Logseq graphs | | `kogral/scripts/kogral-export-logseq.nu` | Export to Logseq format | | `kogral/scripts/kogral-migrate.nu` | Schema version migrations | ## Usage ### Validate Configuration ```bash # Validate Nickel schemas nickel export --format json .typedialog/kogral/core/contracts.ncl ``` ### Generate Mode-Specific Config ```bash # Development nickel export --format json .typedialog/kogral/modes/dev.ncl > .kogral/config.dev.json # Production nickel export --format json .typedialog/kogral/modes/prod.ncl > .kogral/config.prod.json ``` ### Run Automation Scripts ```bash # From repository root: nu .typedialog/kogral/scripts/kogral-sync.nu nu .typedialog/kogral/scripts/kogral-reindex.nu nu .typedialog/kogral/scripts/kogral-migrate.nu ``` Or via justfile: ```bash just scripts::sync just scripts::reindex just scripts::migrate ``` ## Integration with Codebase ### Documentation - **User Guide**: [docs/cli/nushell-scripts.md](../docs/cli/nushell-scripts.md) - **Configuration Guide**: [docs/config/](../docs/config/) - **Architecture**: [docs/architecture/config-driven.md](../docs/architecture/config-driven.md) ### Build Process - Core library loads JSON config via serde - CLI respects `.kogral/config.toml` or Nickel-exported JSON - Scripts are standalone executables ### Environment Variables - `TOOLS_PATH` - For shared configuration resolution - `OPENAI_API_KEY` - For embedding providers - `ANTHROPIC_API_KEY` - For Claude provider ## Synchronization with /schemas/ The `/schemas/kogral/` directory and `.typedialog/kogral/` are synchronized: - **Source of Truth**: `.typedialog/kogral/` (this directory) - **/schemas/kogral/** - Symlink or copy for build compatibility - **Update Flow**: Edit in `.typedialog/kogral/` → sync to `/schemas/kogral/` ## Related Directories - `schemas/` - Global schema definitions (generated from .typedialog) - `config/` - Config examples (generated from modes) - `scripts/` - Main scripts location (symlink to .typedialog/kogral/scripts) - `docs/cli/` - User-facing documentation - `crates/kogral-core/` - Rust library using config