2025-12-18 01:18:59 +00:00
|
|
|
# ╔══════════════════════════════════════════════════════════════════════╗
|
2025-12-24 03:24:31 +00:00
|
|
|
# ║ BUILD RECIPES ║
|
|
|
|
|
# ║ Build workspace with different feature flags ║
|
2025-12-18 01:18:59 +00:00
|
|
|
# ╚══════════════════════════════════════════════════════════════════════╝
|
|
|
|
|
|
|
|
|
|
# === FEATURE FLAGS ===
|
|
|
|
|
FEATURES_CLI := "cli,i18n,templates"
|
|
|
|
|
FEATURES_TUI := "tui,i18n,templates"
|
|
|
|
|
FEATURES_WEB := "web,i18n,templates"
|
2025-12-24 03:24:31 +00:00
|
|
|
FEATURES_AI := "ai_backend"
|
|
|
|
|
FEATURES_AGENT := "markup,nickel,cache"
|
2025-12-18 01:18:59 +00:00
|
|
|
FEATURES_ALL_BACKENDS := "cli,tui,web"
|
|
|
|
|
FEATURES_FULL := "cli,tui,web,i18n,templates"
|
2025-12-24 03:24:31 +00:00
|
|
|
FEATURES_FULL_AI := "cli,tui,web,i18n,templates,ai_backend"
|
2025-12-18 01:18:59 +00:00
|
|
|
|
|
|
|
|
# Help for build module
|
|
|
|
|
help:
|
|
|
|
|
@echo "BUILD MODULE"
|
|
|
|
|
@echo ""
|
|
|
|
|
@echo "Build default (CLI + i18n + templates):"
|
|
|
|
|
@echo " just build::default"
|
|
|
|
|
@echo ""
|
|
|
|
|
@echo "Build specific backends:"
|
2025-12-24 03:24:31 +00:00
|
|
|
@echo " just build::cli Build CLI backend (rendering)"
|
|
|
|
|
@echo " just build::tui Build TUI backend (rendering)"
|
|
|
|
|
@echo " just build::web Build Web backend (rendering)"
|
|
|
|
|
@echo " just build::ai-lib Build AI backend (library: RAG, KG, embeddings)"
|
|
|
|
|
@echo " just build::ai Build AI backend (FormBackend + microservice)"
|
|
|
|
|
@echo " just build::agent Build Agent system (LLM execution)"
|
|
|
|
|
@echo " just build::agent-server Build Agent server (HTTP API)"
|
|
|
|
|
@echo " just build::prov-gen Build Provisioning generator (IaC)"
|
2025-12-18 01:18:59 +00:00
|
|
|
@echo ""
|
|
|
|
|
@echo "Build combined:"
|
|
|
|
|
@echo " just build::all Build all backends"
|
|
|
|
|
@echo " just build::all-backends Build all in one"
|
|
|
|
|
@echo " just build::full Build all features"
|
|
|
|
|
@echo ""
|
|
|
|
|
@echo "Build release:"
|
|
|
|
|
@echo " just build::release Release build (all features)"
|
|
|
|
|
@echo ""
|
|
|
|
|
@echo "Check compilation:"
|
|
|
|
|
@echo " just build::check Check without building"
|
|
|
|
|
|
|
|
|
|
# === DEFAULT BUILD ===
|
|
|
|
|
|
|
|
|
|
# Build workspace with default features
|
|
|
|
|
[doc("Build default: CLI + i18n + templates")]
|
|
|
|
|
default:
|
|
|
|
|
@echo "=== Building default features ==="
|
|
|
|
|
cargo build --workspace
|
|
|
|
|
@echo "✓ Default build complete"
|
|
|
|
|
|
|
|
|
|
# === INDIVIDUAL BACKENDS ===
|
|
|
|
|
|
|
|
|
|
# Build CLI backend only
|
|
|
|
|
[doc("Build CLI backend")]
|
|
|
|
|
cli:
|
|
|
|
|
@echo "=== Building CLI backend ==="
|
|
|
|
|
cargo build -p typedialog-core --features "{{ FEATURES_CLI }}"
|
|
|
|
|
cargo build -p typedialog
|
|
|
|
|
@echo "✓ CLI backend ready"
|
|
|
|
|
|
|
|
|
|
# Build TUI backend only
|
|
|
|
|
[doc("Build TUI backend")]
|
|
|
|
|
tui:
|
|
|
|
|
@echo "=== Building TUI backend ==="
|
|
|
|
|
cargo build -p typedialog-core --features "{{ FEATURES_TUI }}"
|
|
|
|
|
cargo build -p typedialog-tui
|
|
|
|
|
@echo "✓ TUI backend ready"
|
|
|
|
|
|
|
|
|
|
# Build Web backend only
|
|
|
|
|
[doc("Build Web backend")]
|
|
|
|
|
web:
|
|
|
|
|
@echo "=== Building Web backend ==="
|
|
|
|
|
cargo build -p typedialog-core --features "{{ FEATURES_WEB }}"
|
|
|
|
|
cargo build -p typedialog-web
|
|
|
|
|
@echo "✓ Web backend ready"
|
|
|
|
|
|
2025-12-24 03:24:31 +00:00
|
|
|
# Build AI backend library (RAG, Knowledge Graph, embeddings in core)
|
|
|
|
|
[doc("Build AI backend library")]
|
|
|
|
|
ai-lib:
|
|
|
|
|
@echo "=== Building AI backend library ==="
|
|
|
|
|
cargo build -p typedialog-core --features "{{ FEATURES_AI }}"
|
|
|
|
|
@echo "✓ AI backend library ready (RAG, KG, embeddings)"
|
|
|
|
|
|
|
|
|
|
# Build AI backend (FormBackend implementation + microservice)
|
|
|
|
|
[doc("Build AI backend (FormBackend + microservice)")]
|
|
|
|
|
ai:
|
|
|
|
|
@echo "=== Building AI backend ==="
|
|
|
|
|
cargo build -p typedialog-ai
|
|
|
|
|
@echo "✓ AI backend ready (FormBackend + REST API + WebSocket + Web UI)"
|
|
|
|
|
|
|
|
|
|
# Build Agent system (CLI for LLM execution)
|
|
|
|
|
[doc("Build Agent system (typedialog-ag CLI)")]
|
|
|
|
|
agent:
|
|
|
|
|
@echo "=== Building Agent system ==="
|
|
|
|
|
cargo build -p typedialog-ag-core --features "{{ FEATURES_AGENT }}"
|
|
|
|
|
cargo build -p typedialog-ag
|
|
|
|
|
@echo "✓ Agent system ready (typedialog-ag CLI)"
|
|
|
|
|
|
|
|
|
|
# Build Agent with server support (same binary, use 'typedialog-ag serve')
|
|
|
|
|
[doc("Build Agent (use 'typedialog-ag serve' for HTTP server)")]
|
|
|
|
|
agent-server:
|
|
|
|
|
@echo "=== Building Agent (with server support) ==="
|
|
|
|
|
cargo build -p typedialog-ag-core --features "{{ FEATURES_AGENT }}"
|
|
|
|
|
cargo build -p typedialog-ag
|
|
|
|
|
@echo "✓ Agent ready (use 'typedialog-ag serve' to start HTTP server)"
|
|
|
|
|
|
|
|
|
|
# Build Provisioning generator (Infrastructure as Code)
|
|
|
|
|
[doc("Build Provisioning generator (typedialog-prov-gen)")]
|
|
|
|
|
prov-gen:
|
|
|
|
|
@echo "=== Building Provisioning generator ==="
|
|
|
|
|
cargo build -p typedialog-prov-gen
|
|
|
|
|
@echo "✓ Provisioning generator ready (IaC generation)"
|
|
|
|
|
|
2025-12-18 01:18:59 +00:00
|
|
|
# === COMBINED BUILDS ===
|
|
|
|
|
|
|
|
|
|
# Build all backends (cli, tui, web)
|
|
|
|
|
[doc("Build all backends together")]
|
|
|
|
|
all-backends:
|
|
|
|
|
@echo "=== Building all backends ==="
|
|
|
|
|
cargo build -p typedialog-core --features "{{ FEATURES_ALL_BACKENDS }},i18n,templates"
|
|
|
|
|
cargo build -p typedialog
|
|
|
|
|
cargo build -p typedialog-tui
|
|
|
|
|
cargo build -p typedialog-web
|
|
|
|
|
@echo "✓ All backends ready"
|
|
|
|
|
|
|
|
|
|
# Build everything (all features)
|
|
|
|
|
[doc("Build with all features")]
|
|
|
|
|
full:
|
|
|
|
|
@echo "=== Building with full feature set ==="
|
|
|
|
|
cargo build --workspace --all-features
|
|
|
|
|
@echo "✓ Full build complete"
|
|
|
|
|
|
2025-12-24 03:24:31 +00:00
|
|
|
# Build all variants (including AI backend, Agent system, and Prov-gen)
|
|
|
|
|
[doc("Build all: default + all backends + AI + Agent + Agent-server + Prov-gen + release")]
|
2025-12-18 01:18:59 +00:00
|
|
|
all:
|
|
|
|
|
just build::default
|
|
|
|
|
just build::all-backends
|
2025-12-24 03:24:31 +00:00
|
|
|
just build::ai
|
|
|
|
|
just build::agent
|
|
|
|
|
just build::agent-server
|
|
|
|
|
just build::prov-gen
|
2025-12-18 01:18:59 +00:00
|
|
|
just build::release
|
|
|
|
|
@echo "✓ All builds complete"
|
|
|
|
|
|
|
|
|
|
# === RELEASE BUILD ===
|
|
|
|
|
|
|
|
|
|
# Release build with all features
|
|
|
|
|
[doc("Release build: optimized, all features")]
|
|
|
|
|
release:
|
|
|
|
|
@echo "=== Building release (optimized) ==="
|
|
|
|
|
cargo build --workspace --all-features --release
|
|
|
|
|
@echo ""
|
|
|
|
|
@echo "Binaries ready:"
|
|
|
|
|
@ls -lh target/release/typedialog* 2>/dev/null | awk '{print " " $NF " (" $5 ")"}'
|
|
|
|
|
@echo "✓ Release build complete"
|
|
|
|
|
|
|
|
|
|
# === VALIDATION ===
|
|
|
|
|
|
|
|
|
|
# Check workspace compilation without building
|
|
|
|
|
[doc("Check compilation (no build)")]
|
|
|
|
|
check:
|
|
|
|
|
@echo "=== Checking compilation ==="
|
|
|
|
|
cargo check --workspace --all-features
|
|
|
|
|
@echo "✓ Compilation check passed"
|