diff --git a/.kiro-plugin/plugin.json b/.kiro-plugin/plugin.json deleted file mode 100644 index d877dbd..0000000 --- a/.kiro-plugin/plugin.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "understand-anything", - "description": "AI-powered codebase understanding — analyze, visualize, and explain any project", - "version": "2.7.5", - "author": { "name": "Lum1104" }, - "homepage": "https://github.com/Lum1104/Understand-Anything", - "repository": "https://github.com/Lum1104/Understand-Anything", - "license": "MIT", - "keywords": ["codebase-analysis", "knowledge-graph", "architecture", "onboarding", "dashboard"], - "skills": "./understand-anything-plugin/skills/", - "agents": "./understand-anything-plugin/agents/" -} diff --git a/README.md b/README.md index 117ac92..98ab4cc 100644 --- a/README.md +++ b/README.md @@ -236,12 +236,12 @@ copilot plugin install Egonex-AI/Understand-Anything:understand-anything-plugin ### Kiro CLI / IDE ```bash -curl -fsSL https://raw.githubusercontent.com/Lum1104/Understand-Anything/main/install.sh | bash -s kiro +curl -fsSL https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.sh | bash -s kiro ``` After installation: - **Kiro CLI**: `kiro-cli chat --agent understand "Analyze this project"` -- **Kiro IDE**: Open the cloned repo — auto-discovered via `.kiro-plugin/plugin.json` +- **Kiro IDE**: The skills are symlinked into `~/.kiro/skills/` and the `understand` agent is written to `~/.kiro/agents/understand.json`, so both are available after restarting the IDE. For personal skills (available across all projects), run the `install.sh` above with the `kiro` platform. diff --git a/install.ps1 b/install.ps1 index b5504d0..5476887 100644 --- a/install.ps1 +++ b/install.ps1 @@ -40,6 +40,7 @@ $Platforms = [ordered]@{ kimi = @{ Target = (Join-Path $HOME '.kimi\skills'); Style = 'folder' } trae = @{ Target = (Join-Path $HOME '.trae\skills'); Style = 'per-skill' } nanobot = @{ Target = (Join-Path $HOME '.nanobot\workspace\skills'); Style = 'per-skill' } + kiro = @{ Target = (Join-Path $HOME '.kiro\skills'); Style = 'per-skill' } } function Show-Usage { @@ -192,6 +193,11 @@ function Link-Plugin-Root { } } +function ConvertTo-FileUri([string]$Path) { + # Produce a forward-slashed file URI (Windows: file:///C:/path/...). + return 'file:///' + ($Path -replace '\\', '/') +} + function Cmd-Install([string]$Id) { $cfg = Resolve-Platform $Id Clone-Or-Update @@ -200,18 +206,54 @@ function Cmd-Install([string]$Id) { Write-Host '→ Linking universal plugin root' Link-Plugin-Root + if ($Id -eq 'kiro') { + Write-Host '→ Creating Kiro agent configuration' + $agentsDir = Join-Path $HOME '.kiro\agents' + if (-not (Test-Path $agentsDir)) { New-Item -ItemType Directory -Path $agentsDir | Out-Null } + $pluginRoot = Join-Path $RepoDir 'understand-anything-plugin' + + # Build the "resources" list dynamically from the agent definitions in + # the repo so it never drifts as agents are added or removed. + $resources = @( + Get-ChildItem -Path (Join-Path $pluginRoot 'agents') -Filter '*.md' -File | + Sort-Object Name | + ForEach-Object { ConvertTo-FileUri $_.FullName } + ) + $agent = [ordered]@{ + name = 'understand' + description = 'Analyze codebase into interactive knowledge graph — Understand Anything' + prompt = ConvertTo-FileUri (Join-Path $pluginRoot 'skills\understand\SKILL.md') + tools = @('read', 'write', 'shell', 'grep', 'glob', 'code', 'subagent') + resources = $resources + } + $agentJson = Join-Path $agentsDir 'understand.json' + # WriteAllText emits UTF-8 without a BOM on every PowerShell version. + [System.IO.File]::WriteAllText($agentJson, ($agent | ConvertTo-Json -Depth 5)) + Write-Host " ✓ $agentJson" + } + Write-Host "`n✓ Installed Understand-Anything for $Id" Write-Host ' Restart your CLI or IDE to pick up the skills.' if ($Id -eq 'vscode') { Write-Host "`n Tip: VS Code can also auto-discover the plugin by opening this repo" Write-Host ' directly (it reads .copilot-plugin/plugin.json), no symlinks needed.' } + if ($Id -eq 'kiro') { + Write-Host "`n Usage: kiro-cli chat --agent understand `"Analyze this project`"" + } } function Cmd-Uninstall([string]$Id) { $cfg = Resolve-Platform $Id Write-Host "→ Removing skill links for $Id" Unlink-Skills $cfg.Target $cfg.Style + if ($Id -eq 'kiro') { + $agentJson = Join-Path $HOME '.kiro\agents\understand.json' + if (Test-Path $agentJson) { + Remove-Item -LiteralPath $agentJson -Force + Write-Host " ✓ removed $agentJson" + } + } if (Remove-Reparse $PluginLink) { Write-Host " ✓ removed $PluginLink" } diff --git a/install.sh b/install.sh index 71eda51..1c34231 100755 --- a/install.sh +++ b/install.sh @@ -195,6 +195,17 @@ cmd_install() { printf -- '→ Creating Kiro agent configuration\n' mkdir -p "$HOME/.kiro/agents" local plugin_root="$REPO_DIR/understand-anything-plugin" + + # Build the "resources" list dynamically from the agent definitions in the + # repo so it never drifts as agents are added or removed. Deterministic + # order via LC_ALL=C sort; no external deps (no jq) so it runs anywhere. + local resources="" agent_md + while IFS= read -r agent_md; do + [[ -n "$agent_md" ]] || continue + [[ -n "$resources" ]] && resources+=$',\n' + resources+=" \"file://$agent_md\"" + done < <(find "$plugin_root/agents" -maxdepth 1 -type f -name '*.md' | LC_ALL=C sort) + cat > "$HOME/.kiro/agents/understand.json" <