Files
2026-06-08 17:07:03 +08:00

68 lines
3.1 KiB
PowerShell

$ErrorActionPreference = "Stop"
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
$skillDir = Split-Path -Parent $scriptDir
$repoRoot = Split-Path -Parent $skillDir
$pluginDir = Join-Path $repoRoot "cli-anything-plugin"
$previewProtocol = Join-Path $repoRoot "docs/PREVIEW_PROTOCOL.md"
$codexHome = if ($env:CODEX_HOME) {
$env:CODEX_HOME
} elseif ($env:USERPROFILE) {
Join-Path $env:USERPROFILE ".codex"
} else {
throw "CODEX_HOME is not set and USERPROFILE is unavailable."
}
$destRoot = Join-Path $codexHome "skills"
$destDir = Join-Path $destRoot "cli-anything"
$stagingDir = $null
if (-not (Test-Path (Join-Path $pluginDir "HARNESS.md"))) {
throw "Cannot find canonical CLI-Anything resources at: $pluginDir`nRun this installer from a full CLI-Anything repository checkout."
}
if (-not (Test-Path $previewProtocol)) {
throw "Cannot find preview protocol at: $previewProtocol`nRun this installer from a full CLI-Anything repository checkout."
}
New-Item -ItemType Directory -Path $destRoot -Force | Out-Null
if (Test-Path $destDir) {
throw "Refusing to overwrite existing skill: $destDir`nRemove it manually if you want to reinstall."
}
try {
$stagingDir = Join-Path $destRoot (".cli-anything.tmp." + [System.Guid]::NewGuid().ToString("N"))
New-Item -ItemType Directory -Path $stagingDir | Out-Null
Get-ChildItem -LiteralPath $skillDir -Force | Copy-Item -Destination $stagingDir -Recurse -Force
$referenceDir = Join-Path $stagingDir "references"
$referenceCommands = Join-Path $referenceDir "commands"
$referenceDocs = Join-Path $referenceDir "docs"
$referenceGuides = Join-Path $referenceDir "guides"
$resourceScripts = Join-Path $stagingDir "scripts"
$scriptTemplates = Join-Path $resourceScripts "templates"
New-Item -ItemType Directory -Path $referenceCommands, $referenceDocs, $referenceGuides, $scriptTemplates -Force | Out-Null
Copy-Item -Path (Join-Path $pluginDir "HARNESS.md") -Destination (Join-Path $referenceDir "HARNESS.md")
Copy-Item -Path (Join-Path $pluginDir "commands/*.md") -Destination $referenceCommands
Copy-Item -Path (Join-Path $pluginDir "guides/*.md") -Destination $referenceGuides
Copy-Item -Path (Join-Path $pluginDir "repl_skin.py") -Destination (Join-Path $resourceScripts "repl_skin.py")
Copy-Item -Path (Join-Path $pluginDir "preview_bundle.py") -Destination (Join-Path $resourceScripts "preview_bundle.py")
Copy-Item -Path (Join-Path $pluginDir "skill_generator.py") -Destination (Join-Path $resourceScripts "skill_generator.py")
Copy-Item -Path (Join-Path $pluginDir "templates/*") -Destination $scriptTemplates
Copy-Item -Path $previewProtocol -Destination (Join-Path $referenceDocs "PREVIEW_PROTOCOL.md")
Move-Item -Path $stagingDir -Destination $destDir
} finally {
if ($stagingDir -and (Test-Path $stagingDir)) {
Remove-Item -Path $stagingDir -Recurse -Force
}
}
Write-Host "Installed Codex skill to: $destDir"
Write-Host "Vendored CLI-Anything methodology resources into the installed skill."
Write-Host "Restart Codex to pick up the new skill."