Initial release: GyanDoot v2.0.0
Cross-platform AI Agent Platform - Sources: https://git.gyannetra.in/gnpl_admin/gyandoot-v2 - Installer: curl -fsSL https://git.gyannetra.in/gnpl_admin/gyandoot-release/raw/main/install.sh | bash Platforms: - macOS (arm64/x86_64) via Homebrew or install.sh - Linux (x86_64/aarch64/i686) via install.sh - Windows (x86_64) via Git Bash/MSYS2 or PowerShell - WSL via install.sh Includes: - install.sh (cross-platform universal installer) - Windows: install.bat + install.ps1 - macOS: Homebrew formula (homebrew/gyandoot.rb) - Linux: prebuilt binary + install guide - README.md with full documentation
This commit is contained in:
121
windows/install.bat
Normal file
121
windows/install.bat
Normal file
@@ -0,0 +1,121 @@
|
||||
@echo off
|
||||
REM ═══════════════════════════════════════════════════════════════════════════
|
||||
REM GyanDoot v2.0 — Windows Installer (Git Bash / MSYS2)
|
||||
REM ═══════════════════════════════════════════════════════════════════════════
|
||||
REM This script installs GyanDoot on Windows via Git Bash or MSYS2.
|
||||
REM For PowerShell, use: install.ps1
|
||||
REM ═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
echo.
|
||||
echo ╔═══════════════════════════════════════╗
|
||||
echo ║ GyanDoot v2.0 — Windows Installer ║
|
||||
echo ╚═══════════════════════════════════════╝
|
||||
echo.
|
||||
|
||||
REM ── Check if running in Git Bash / MSYS2 ──────────────────────────────
|
||||
if not defined MSYSTEM (
|
||||
echo [WARN] This script requires Git Bash or MSYS2.
|
||||
echo For PowerShell, use: install.ps1
|
||||
echo.
|
||||
echo Or download from: https://git.gyannetra.in/gnpl_admin/gyandoot-release
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM ── Check prerequisites ───────────────────────────────────────────────
|
||||
echo [CHECK] Rust...
|
||||
where cargo >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo [INFO] Rust not found. Installing Rust...
|
||||
powershell -Command "& {Invoke-WebRequest -Uri https://win.rustup.rs -OutFile '%TEMP%\rustup-init.exe'; Start-Process '%TEMP%\rustup-init.exe' -Wait -ArgumentList '-y'}"
|
||||
call "%USERPROFILE%\.cargo\env"
|
||||
echo [OK] Rust installed
|
||||
) else (
|
||||
for /f "tokens=*" %%i in ('cargo --version') do echo [OK] %%i
|
||||
)
|
||||
|
||||
echo [CHECK] Node.js...
|
||||
where node >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo [WARN] Node.js is required for browser features.
|
||||
echo Download from: https://nodejs.org (v20+)
|
||||
echo Or: winget install OpenJS.NodeJS
|
||||
) else (
|
||||
for /f "tokens=*" %%i in ('node --version') do echo [OK] Node.js %%i
|
||||
)
|
||||
|
||||
REM ── Build ──────────────────────────────────────────────────────────────
|
||||
echo.
|
||||
echo [BUILD] Compiling GyanDoot (this may take a few minutes)...
|
||||
cd /d "%~dp0.." 2>nul || (
|
||||
echo [ERR] Could not find project root.
|
||||
echo Make sure you're running this from the release directory.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
cargo build --release
|
||||
if errorlevel 1 (
|
||||
echo [ERR] Build failed. Check the error above.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo [OK] Build complete
|
||||
|
||||
REM ── Install binary ────────────────────────────────────────────────────
|
||||
set "INSTALL_DIR=%USERPROFILE%\.cargo\bin"
|
||||
if not exist "%INSTALL_DIR%" mkdir "%INSTALL_DIR%"
|
||||
|
||||
copy /Y "target\release\gyandoot.exe" "%INSTALL_DIR%\gyandoot.exe" >nul
|
||||
echo [OK] Installed to %INSTALL_DIR%\gyandoot.exe
|
||||
|
||||
REM ── Check PATH ────────────────────────────────────────────────────────
|
||||
echo !PATH! | findstr /C:"%USERPROFILE%\.cargo\bin" >nul
|
||||
if errorlevel 1 (
|
||||
echo [WARN] %USERPROFILE%\.cargo\bin is not in your PATH.
|
||||
echo Add it manually to your PATH environment variable.
|
||||
echo Or run: setx PATH "%%USERPROFILE%%\.cargo\bin;%%PATH%%"
|
||||
echo.
|
||||
echo Then restart your terminal.
|
||||
)
|
||||
|
||||
REM ── Verify ────────────────────────────────────────────────────────────
|
||||
echo.
|
||||
echo [VERIFY] Checking installation...
|
||||
"%INSTALL_DIR%\gyandoot.exe" --help >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo [WARN] Installation verification failed.
|
||||
) else (
|
||||
echo [OK] GyanDoot installed successfully!
|
||||
)
|
||||
|
||||
REM ── Optional: Camoufox browser ────────────────────────────────────────
|
||||
echo.
|
||||
echo ────────────────────────────────────────────
|
||||
echo Optional: Install Camoufox Browser?
|
||||
echo Required for: web_search, web_browse tools
|
||||
echo ────────────────────────────────────────────
|
||||
set /p INSTALL_CAMOUFOX="Install Camoufox browser? [y/N]: "
|
||||
if /i "!INSTALL_CAMOUFOX!"=="y" (
|
||||
echo [INFO] Installing camoufox-browser npm package...
|
||||
npm install -g camoufox-browser@0.1.0
|
||||
echo [INFO] Downloading browser binary (~311MB)...
|
||||
npx --yes camoufox-js@0.11.0 fetch
|
||||
echo [OK] Camoufox browser installed
|
||||
)
|
||||
|
||||
REM ── Done ──────────────────────────────────────────────────────────────
|
||||
echo.
|
||||
echo ╔═══════════════════════════════════════╗
|
||||
echo ║ GyanDoot v2.0 installed! ║
|
||||
echo ╚═══════════════════════════════════════╝
|
||||
echo.
|
||||
echo Quick start:
|
||||
echo gyandoot --help
|
||||
echo gyandoot setup
|
||||
echo gyandoot run
|
||||
echo.
|
||||
pause
|
||||
153
windows/install.ps1
Normal file
153
windows/install.ps1
Normal file
@@ -0,0 +1,153 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
GyanDoot v2.0 — Windows Installer (PowerShell)
|
||||
.DESCRIPTION
|
||||
Installs GyanDoot AI Agent on Windows 10/11 via PowerShell.
|
||||
Requires: Rust (auto-installed), Git Bash recommended.
|
||||
#>
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
$ProgressPreference = "SilentlyContinue"
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "╔═══════════════════════════════════════╗" -ForegroundColor Cyan
|
||||
Write-Host "║ GyanDoot v2.0 — Windows Installer ║" -ForegroundColor Cyan
|
||||
Write-Host "╚═══════════════════════════════════════╝" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
||||
# ── Helper functions ─────────────────────────────────────────────────────
|
||||
function Write-OK($msg) { Write-Host " [OK] $msg" -ForegroundColor Green }
|
||||
function Write-Info($msg) { Write-Host " [..] $msg" -ForegroundColor Cyan }
|
||||
function Write-Warn($msg) { Write-Host " [!] $msg" -ForegroundColor Yellow }
|
||||
function Write-Err($msg) { Write-Host " [ERR] $msg" -ForegroundColor Red }
|
||||
|
||||
# ── Detect OS Architecture ───────────────────────────────────────────────
|
||||
$arch = (Get-WmiObject Win32_Processor).Architecture
|
||||
$archName = switch ($arch) {
|
||||
0 { "x86" }
|
||||
9 { "x64" }
|
||||
12 { "arm64" }
|
||||
default { "unknown" }
|
||||
}
|
||||
Write-Info "Detected: Windows / $archName"
|
||||
|
||||
# ── Check if running in PowerShell only ──────────────────────────────────
|
||||
Write-Warn "For best results, use Git Bash and run: install.bat"
|
||||
Write-Warn "PowerShell support is limited on Windows."
|
||||
|
||||
# ── Check / Install Rust ─────────────────────────────────────────────────
|
||||
Write-Info "Checking Rust..."
|
||||
$haveRust = $false
|
||||
try {
|
||||
$rustVer = cargo --version 2>$null
|
||||
if ($rustVer) {
|
||||
Write-OK "Rust already installed ($rustVer)"
|
||||
$haveRust = $true
|
||||
}
|
||||
} catch { }
|
||||
|
||||
if (-not $haveRust) {
|
||||
Write-Info "Rust not found. Installing Rust..."
|
||||
$rustupUrl = "https://win.rustup.rs"
|
||||
$rustupPath = "$env:TEMP\rustup-init.exe"
|
||||
|
||||
try {
|
||||
Invoke-WebRequest -Uri $rustupUrl -OutFile $rustupPath -UseBasicParsing
|
||||
Start-Process -FilePath $rustupPath -ArgumentList "-y" -Wait -NoNewWindow
|
||||
# Reload PATH
|
||||
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
|
||||
Write-OK "Rust installed"
|
||||
} catch {
|
||||
Write-Err "Failed to install Rust: $_"
|
||||
Write-Warn "Download manually from: https://rustup.rs"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
# ── Check Node.js ────────────────────────────────────────────────────────
|
||||
Write-Info "Checking Node.js..."
|
||||
try {
|
||||
$nodeVer = node --version 2>$null
|
||||
if ($nodeVer) {
|
||||
Write-OK "Node.js $nodeVer"
|
||||
} else {
|
||||
throw "not found"
|
||||
}
|
||||
} catch {
|
||||
Write-Warn "Node.js not found (required for browser features)"
|
||||
Write-Warn "Download from: https://nodejs.org (v20+)"
|
||||
Write-Warn "Or run: winget install OpenJS.NodeJS"
|
||||
}
|
||||
|
||||
# ── Determine script directory ──────────────────────────────────────────
|
||||
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Definition
|
||||
$projectRoot = Resolve-Path "$scriptDir/.."
|
||||
|
||||
# ── Build ────────────────────────────────────────────────────────────────
|
||||
Write-Info "Building GyanDoot release (this may take a few minutes)..."
|
||||
Set-Location $projectRoot
|
||||
|
||||
try {
|
||||
$buildOutput = cargo build --release 2>&1
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
throw $buildOutput
|
||||
}
|
||||
Write-OK "Build complete"
|
||||
} catch {
|
||||
Write-Err "Build failed: $_"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# ── Install binary ──────────────────────────────────────────────────────
|
||||
$installDir = "$env:USERPROFILE\.cargo\bin"
|
||||
if (-not (Test-Path $installDir)) {
|
||||
New-Item -ItemType Directory -Path $installDir -Force | Out-Null
|
||||
}
|
||||
|
||||
Copy-Item -Path "$projectRoot\target\release\gyandoot.exe" -Destination "$installDir\gyandoot.exe" -Force
|
||||
Write-OK "Installed to $installDir\gyandoot.exe"
|
||||
|
||||
# ── Check PATH ──────────────────────────────────────────────────────────
|
||||
$paths = $env:Path -split ';'
|
||||
if ($paths -notcontains $installDir) {
|
||||
Write-Warn "$installDir is not in your PATH!"
|
||||
Write-Warn "Run this to add it permanently:"
|
||||
Write-Host ' [Environment]::SetEnvironmentVariable("Path", "$env:USERPROFILE\.cargo\bin;$env:Path", "User")' -ForegroundColor Gray
|
||||
}
|
||||
|
||||
# ── Verify ───────────────────────────────────────────────────────────────
|
||||
try {
|
||||
$helpOutput = & "$installDir\gyandoot.exe" --help 2>&1
|
||||
Write-OK "GyanDoot installed successfully!" -ForegroundColor Green
|
||||
} catch {
|
||||
Write-Warn "Verification failed: $_"
|
||||
}
|
||||
|
||||
# ── Optional: Camoufox ───────────────────────────────────────────────────
|
||||
Write-Host ""
|
||||
Write-Host "────────────────────────────────────────────" -ForegroundColor Yellow
|
||||
Write-Host " Optional: Install Camoufox Browser?" -ForegroundColor Yellow
|
||||
Write-Host " Required for: web_search, web_browse tools" -ForegroundColor Yellow
|
||||
Write-Host "────────────────────────────────────────────" -ForegroundColor Yellow
|
||||
$installCamoufox = Read-Host "Install Camoufox? [y/N]"
|
||||
|
||||
if ($installCamoufox -eq "y") {
|
||||
Write-Info "Installing camoufox-browser npm package..."
|
||||
npm install -g camoufox-browser@0.1.0 2>$null
|
||||
Write-Info "Downloading Camoufox browser binary (~311MB)..."
|
||||
npx --yes camoufox-js@0.11.0 fetch 2>$null
|
||||
Write-OK "Camoufox browser installed"
|
||||
}
|
||||
|
||||
# ── Done ─────────────────────────────────────────────────────────────────
|
||||
Write-Host ""
|
||||
Write-Host "╔═══════════════════════════════════════╗" -ForegroundColor Green
|
||||
Write-Host "║ GyanDoot v2.0 installed! ║" -ForegroundColor Green
|
||||
Write-Host "╚═══════════════════════════════════════╝" -ForegroundColor Green
|
||||
Write-Host ""
|
||||
Write-Host " Quick start:" -ForegroundColor Gray
|
||||
Write-Host " gyandoot --help" -ForegroundColor White
|
||||
Write-Host " gyandoot setup" -ForegroundColor White
|
||||
Write-Host " gyandoot run" -ForegroundColor White
|
||||
Write-Host ""
|
||||
Read-Host "Press Enter to exit"
|
||||
Reference in New Issue
Block a user