# Installation Profiles for Tools Ecosystem
# Predefined sets of targets for different use cases
# Last updated: 2025-11-13

[metadata]
version = "1.0.0"
description = "Installation profiles combining multiple targets based on use case"
total_profiles = 3  # minimal, developer, full (custom is interactive)

# =============================================================================
# PROFILE: MINIMAL
# For users who only need basic CLI tools
# Install time: ~3 minutes (if binaries already compiled)
# Disk space: ~150 MB
# =============================================================================

[profiles.minimal]
name = "Minimal"
description = "CLI tools only - essential tracking and documentation tools"
use_case = "Basic project tracking, documentation management, presentation generation, dependency synchronization"
installation_time = "~3 minutes"
disk_space_estimate = "160 MB"
target_count = 5

[[profiles.minimal.targets]]
name = "dependency-manager"
required = true
reason = "Essential CLI for dependency synchronization and management"

[[profiles.minimal.targets]]
name = "tracking"
required = true
reason = "Essential CLI for change and TODO tracking"

[[profiles.minimal.targets]]
name = "doc-lifecycle"
required = true
reason = "Essential CLI for documentation lifecycle management"

[[profiles.minimal.targets]]
name = "presgen"
required = true
reason = "Essential CLI for presentation generation"

[[profiles.minimal.targets]]
name = "syntaxis"
required = true
reason = "Essential CLI for syntaxis"

[profiles.minimal.features]
"REST APIs" = false
"Web Dashboards" = false
"Terminal UIs" = false
"MCP Servers" = false
description = "Minimal profile provides command-line interfaces only"

# =============================================================================
# PROFILE: DEVELOPER
# For developers who want local APIs and full functionality
# Install time: ~5 minutes (if binaries already compiled)
# Disk space: ~250 MB
# =============================================================================

[profiles.developer]
name = "Developer"
description = "CLI tools + local REST APIs for development and testing"
use_case = "Local development, API testing, advanced workflows, terminal work, dependency management"
installation_time = "~5 minutes"
disk_space_estimate = "270 MB"
target_count = 8

[[profiles.developer.targets]]
name = "dependency-manager"
required = true
reason = "CLI for dependency synchronization and management"

[[profiles.developer.targets]]
name = "tracking"
required = true
reason = "CLI for change and TODO tracking"

[[profiles.developer.targets]]
name = "tracking-api"
required = true
reason = "Local REST API for testing and development"

[[profiles.developer.targets]]
name = "doc-lifecycle"
required = true
reason = "CLI for documentation lifecycle"

[[profiles.developer.targets]]
name = "presgen"
required = true
reason = "CLI for presentation generation"

[[profiles.developer.targets]]
name = "syntaxis"
required = true
reason = "CLI for syntaxis"

[[profiles.developer.targets]]
name = "syntaxis-api"
required = true
reason = "Local REST API for syntaxis"

[[profiles.developer.targets]]
name = "syntaxis-tui"
required = true
reason = "Interactive terminal UI for project management"

[profiles.developer.features]
"REST APIs" = true
"Web Dashboards" = false
"Terminal UIs" = true
"MCP Servers" = false
description = "Developer profile includes CLI tools, REST APIs, and terminal UIs"

[profiles.developer.ports]
"tracking-api" = 8080
"syntaxis-api" = 8081

# =============================================================================
# PROFILE: FULL
# For advanced users who want everything - all tools, APIs, UIs, and servers
# Install time: ~8 minutes (if binaries already compiled)
# Disk space: ~400 MB
# =============================================================================

[profiles.full]
name = "Full"
description = "Complete Tools ecosystem - all binaries, APIs, UIs, and servers"
use_case = "Production deployments, team environments, comprehensive toolkit, dependency management"
installation_time = "~8 minutes"
disk_space_estimate = "420 MB"
target_count = 10

[[profiles.full.targets]]
name = "dependency-manager"
required = true
reason = "CLI for dependency synchronization and management"

[[profiles.full.targets]]
name = "tracking"
required = true
reason = "CLI for tracking"

[[profiles.full.targets]]
name = "tracking-api"
required = true
reason = "REST API for tracking"

[[profiles.full.targets]]
name = "doc-lifecycle"
required = true
reason = "CLI for documentation"

[[profiles.full.targets]]
name = "doc-syntaxis-mcp"
required = true
reason = "MCP server for AI integration"

[[profiles.full.targets]]
name = "presgen"
required = true
reason = "CLI for presentations"

[[profiles.full.targets]]
name = "syntaxis"
required = true
reason = "CLI for syntaxis"

[[profiles.full.targets]]
name = "syntaxis-api"
required = true
reason = "REST API for syntaxis"

[[profiles.full.targets]]
name = "syntaxis-dashboard"
required = true
reason = "Web dashboard for project visualization"

[[profiles.full.targets]]
name = "syntaxis-tui"
required = true
reason = "Terminal UI for project management"

[profiles.full.features]
"REST APIs" = true
"Web Dashboards" = true
"Terminal UIs" = true
"MCP Servers" = true
description = "Full profile includes all Tools binaries, APIs, dashboards, and servers"

[profiles.full.ports]
"tracking-api" = 8080
"syntaxis-api" = 8081
"syntaxis-dashboard" = 3000

[profiles.full.recommended_order]
description = "Recommended installation order to satisfy dependencies"
order = [
  "dependency-manager",
  "tracking",
  "tracking-api",
  "doc-lifecycle",
  "doc-syntaxis-mcp",
  "presgen",
  "syntaxis",
  "syntaxis-api",
  "syntaxis-tui",
  "syntaxis-dashboard",
]

# =============================================================================
# INSTALLATION INSTRUCTIONS BY PROFILE
# =============================================================================

[instructions]

[instructions.minimal]
description = """
Minimal Profile Installation

This profile installs the essential CLI tools:
1. tracking - Change and TODO tracking
2. doc-lifecycle - Documentation management
3. presgen - Presentation generator
4. syntaxis - syntaxis management

Each is independent and can be used standalone.

Installation:
  nu scripts/target-manager.nu install --profile minimal

Or install individually:
  cargo install --path /Users/Akasha/Tools/tracking-manager/crates/tracking-cli
  cargo install --path /Users/Akasha/Tools/doc-syntaxis/crates/doc-syntaxis-cli
  cargo install --path /Users/Akasha/Tools/presentation-generator/cli
  cargo install --path /Users/Akasha/Tools/syntaxis/crates/syntaxis-cli

Verify installation:
  tracking --help
  doc-lifecycle --help
  presgen --help
  syntaxis --help
"""

[instructions.developer]
description = """
Developer Profile Installation

This profile installs CLI tools + REST APIs:
- CLIs: tracking, doc-lifecycle, presgen, syntaxis
- APIs: tracking-api (port 8080), syntaxis-api (port 8081)
- TUI: syntaxis-tui for terminal UI

Use this if you want to test APIs locally or use terminal interfaces.

Installation:
  nu scripts/target-manager.nu install --profile developer

Verify installation:
  tracking --help
  tracking-api --help          # Check API is available
  syntaxis-api --help      # Check lifecycle API is available
  syntaxis-tui --help         # Check TUI is available

Start APIs (in separate terminals):
  tracking-api
  syntaxis-api
"""

[instructions.full]
description = """
Full Profile Installation

This profile installs ALL Tools binaries (9 total):
- 4 CLI tools
- 2 REST API servers
- 1 Terminal UI
- 1 Web dashboard
- 1 MCP server for AI integration

Use this for production deployments or if you want everything available.

Installation:
  nu scripts/target-manager.nu install --profile full

This will install all targets. Some may take longer due to compilation.

Port assignments (if running servers):
  - tracking-api: port 8080
  - syntaxis-api: port 8081
  - syntaxis-dashboard: port 3000

Verify installation:
  nu scripts/target-manager.nu status  # List all installed targets
"""

# =============================================================================
# PROFILE SELECTION GUIDE
# =============================================================================

[selection_guide]
how_to_choose = """
Choose your profile based on your use case:

1. MINIMAL - Best for:
   - New users learning Tools ecosystem
   - CI/CD pipelines (lightweight)
   - Simple project tracking
   - Basic documentation management

2. DEVELOPER - Best for:
   - Local development and testing
   - API testing and integration work
   - Advanced terminal-based workflows
   - Multiple tools working together

3. FULL - Best for:
   - Production deployments
   - Team environments
   - Maximum functionality available
   - Running services and dashboards

4. CUSTOM - Best for:
   - Specific tool combinations
   - Testing individual targets
   - Advanced configurations
"""

recommendation_by_role = """
By Role:

Junior Developer:
  → Recommended: minimal
  → Start with: tracking, doc-lifecycle

Senior Developer:
  → Recommended: developer or full
  → Want: APIs and TUIs for advanced work

DevOps/SRE:
  → Recommended: full
  → Need: APIs, dashboards, monitoring

Project Manager:
  → Recommended: minimal + syntaxis-dashboard
  → Focus: syntaxis, syntaxis-dashboard

Documentation Specialist:
  → Recommended: minimal + doc-syntaxis-mcp
  → Focus: doc-lifecycle, doc-syntaxis-mcp
"""

# =============================================================================
# UNINSTALL GUIDE
# =============================================================================

[uninstall]
description = "How to uninstall targets"
command = "cargo uninstall {binary_name}"
example = "cargo uninstall tracking"
list_installed = "ls ~/.cargo/bin/ | grep -E 'tracking|doc-lifecycle|presgen|lifecycle|project'"
