Browse Source

fix: restore registry.json content and add bash 3.2 compatibility

- Recreate registry.json with all component definitions
- Fix bash 3.2 compatibility (replace ${var^} with awk)
- Registry was accidentally emptied by registration script
darrenhinde 4 months ago
parent
commit
357dabcfec
2 changed files with 399 additions and 3 deletions
  1. 6 3
      install.sh
  2. 393 0
      registry.json

+ 6 - 3
install.sh

@@ -245,7 +245,8 @@ show_custom_menu() {
     for i in "${!categories[@]}"; do
         local cat="${categories[$i]}"
         local count=$(jq -r ".components.${cat} | length" "$TEMP_DIR/registry.json")
-        echo "  $((i+1))) ${cat^} (${count} available)"
+        local cat_display=$(echo "$cat" | awk '{print toupper(substr($0,1,1)) tolower(substr($0,2))}')
+        echo "  $((i+1))) ${cat_display} (${count} available)"
     done
     echo "  $((${#categories[@]}+1))) Select All"
     echo "  $((${#categories[@]}+2))) Continue to component selection"
@@ -289,7 +290,8 @@ show_component_selection() {
     local component_details=()
     
     for category in "${categories[@]}"; do
-        echo -e "${CYAN}${BOLD}${category^}:${NC}"
+        local cat_display=$(echo "$category" | awk '{print toupper(substr($0,1,1)) tolower(substr($0,2))}')
+        echo -e "${CYAN}${BOLD}${cat_display}:${NC}"
         
         local components=$(jq -r ".components.${category}[] | .id" "$TEMP_DIR/registry.json")
         
@@ -516,7 +518,8 @@ list_components() {
     local categories=("agents" "subagents" "commands" "tools" "plugins" "contexts")
     
     for category in "${categories[@]}"; do
-        echo -e "${CYAN}${BOLD}${category^}:${NC}"
+        local cat_display=$(echo "$category" | awk '{print toupper(substr($0,1,1)) tolower(substr($0,2))}')
+        echo -e "${CYAN}${BOLD}${cat_display}:${NC}"
         
         local components=$(jq -r ".components.${category}[] | \"\(.id)|\(.name)|\(.description)\"" "$TEMP_DIR/registry.json")
         

+ 393 - 0
registry.json

@@ -0,0 +1,393 @@
+{
+  "version": "1.0.0",
+  "repository": "https://github.com/darrenhinde/opencode-agents",
+  "components": {
+    "agents": [
+      {
+        "id": "task-manager",
+        "name": "Task Manager",
+        "type": "agent",
+        "path": ".opencode/agent/task-manager.md",
+        "description": "Breaks down complex features into small, verifiable subtasks",
+        "tags": ["planning", "organization", "task-management"],
+        "dependencies": [],
+        "category": "core"
+      },
+      {
+        "id": "codebase-agent",
+        "name": "Codebase Agent",
+        "type": "agent",
+        "path": ".opencode/agent/codebase-agent.md",
+        "description": "Analyzes codebase patterns and architecture",
+        "tags": ["analysis", "architecture", "patterns"],
+        "dependencies": [],
+        "category": "core"
+      },
+      {
+        "id": "image-specialist",
+        "name": "Image Specialist",
+        "type": "agent",
+        "path": ".opencode/agent/image-specialist.md",
+        "description": "Generates and edits images using Gemini AI",
+        "tags": ["images", "ai", "generation"],
+        "dependencies": ["tool:gemini"],
+        "category": "extended"
+      },
+      {
+        "id": "workflow-orchestrator",
+        "name": "Workflow Orchestrator",
+        "type": "agent",
+        "path": ".opencode/agent/workflow-orchestrator.md",
+        "description": "Orchestrates complex multi-agent workflows",
+        "tags": ["orchestration", "workflow", "automation"],
+        "dependencies": [],
+        "category": "extended"
+      }
+    ],
+    "subagents": [
+      {
+        "id": "reviewer",
+        "name": "Code Reviewer",
+        "type": "subagent",
+        "path": ".opencode/agent/subagents/reviewer.md",
+        "description": "Performs code review with security and quality checks",
+        "tags": ["review", "security", "quality"],
+        "dependencies": [],
+        "category": "core"
+      },
+      {
+        "id": "tester",
+        "name": "Test Writer",
+        "type": "subagent",
+        "path": ".opencode/agent/subagents/tester.md",
+        "description": "Writes unit and integration tests",
+        "tags": ["testing", "tdd", "quality"],
+        "dependencies": [],
+        "category": "core"
+      },
+      {
+        "id": "documentation",
+        "name": "Documentation Writer",
+        "type": "subagent",
+        "path": ".opencode/agent/subagents/documentation.md",
+        "description": "Creates and updates documentation",
+        "tags": ["docs", "documentation", "writing"],
+        "dependencies": [],
+        "category": "core"
+      },
+      {
+        "id": "coder-agent",
+        "name": "Coder Agent",
+        "type": "subagent",
+        "path": ".opencode/agent/subagents/coder-agent.md",
+        "description": "Executes coding subtasks in sequence",
+        "tags": ["coding", "implementation", "execution"],
+        "dependencies": [],
+        "category": "core"
+      },
+      {
+        "id": "build-agent",
+        "name": "Build Agent",
+        "type": "subagent",
+        "path": ".opencode/agent/subagents/build-agent.md",
+        "description": "Type checks and validates builds",
+        "tags": ["build", "validation", "type-checking"],
+        "dependencies": [],
+        "category": "core"
+      },
+      {
+        "id": "codebase-pattern-analyst",
+        "name": "Codebase Pattern Analyst",
+        "type": "subagent",
+        "path": ".opencode/agent/subagents/codebase-pattern-analyst.md",
+        "description": "Analyzes and implements codebase patterns",
+        "tags": ["patterns", "analysis", "architecture"],
+        "dependencies": [],
+        "category": "extended"
+      }
+    ],
+    "commands": [
+      {
+        "id": "test",
+        "name": "Test Pipeline",
+        "type": "command",
+        "path": ".opencode/command/test.md",
+        "description": "Run the complete testing pipeline",
+        "tags": ["testing", "ci", "validation"],
+        "dependencies": [],
+        "category": "core"
+      },
+      {
+        "id": "commit",
+        "name": "Smart Commit",
+        "type": "command",
+        "path": ".opencode/command/commit.md",
+        "description": "Create intelligent git commits with context",
+        "tags": ["git", "commit", "version-control"],
+        "dependencies": [],
+        "category": "core"
+      },
+      {
+        "id": "context",
+        "name": "Context Manager",
+        "type": "command",
+        "path": ".opencode/command/context.md",
+        "description": "Manage project context and documentation",
+        "tags": ["context", "documentation", "management"],
+        "dependencies": [],
+        "category": "core"
+      },
+      {
+        "id": "clean",
+        "name": "Clean Project",
+        "type": "command",
+        "path": ".opencode/command/clean.md",
+        "description": "Clean build artifacts and temporary files",
+        "tags": ["cleanup", "maintenance", "build"],
+        "dependencies": [],
+        "category": "extended"
+      },
+      {
+        "id": "optimize",
+        "name": "Code Optimizer",
+        "type": "command",
+        "path": ".opencode/command/optimize.md",
+        "description": "Optimize code performance and bundle size",
+        "tags": ["optimization", "performance", "build"],
+        "dependencies": [],
+        "category": "extended"
+      },
+      {
+        "id": "prompt-enhancer",
+        "name": "Prompt Enhancer",
+        "type": "command",
+        "path": ".opencode/command/prompt-enchancer.md",
+        "description": "Enhance and improve AI prompts",
+        "tags": ["prompts", "ai", "enhancement"],
+        "dependencies": [],
+        "category": "extended"
+      },
+      {
+        "id": "worktrees",
+        "name": "Git Worktrees Manager",
+        "type": "command",
+        "path": ".opencode/command/worktrees.md",
+        "description": "Manage git worktrees for parallel development",
+        "tags": ["git", "worktrees", "workflow"],
+        "dependencies": [],
+        "category": "advanced"
+      }
+    ],
+    "tools": [
+      {
+        "id": "gemini",
+        "name": "Gemini AI Tool",
+        "type": "tool",
+        "path": ".opencode/tool/gemini/index.ts",
+        "description": "Image generation, editing, and analysis using Gemini AI",
+        "tags": ["ai", "images", "gemini"],
+        "dependencies": ["tool:env"],
+        "category": "extended"
+      },
+      {
+        "id": "env",
+        "name": "Environment Manager",
+        "type": "tool",
+        "path": ".opencode/tool/env/index.ts",
+        "description": "Load and manage environment variables securely",
+        "tags": ["environment", "config", "security"],
+        "dependencies": [],
+        "category": "core"
+      }
+    ],
+    "plugins": [
+      {
+        "id": "telegram-notify",
+        "name": "Telegram Notifications",
+        "type": "plugin",
+        "path": ".opencode/plugin/telegram-notify.ts",
+        "description": "Send notifications via Telegram bot",
+        "tags": ["notifications", "telegram", "integration"],
+        "dependencies": ["tool:env"],
+        "category": "extended"
+      },
+      {
+        "id": "notify",
+        "name": "Generic Notifier",
+        "type": "plugin",
+        "path": ".opencode/plugin/notify.ts",
+        "description": "Generic notification system",
+        "tags": ["notifications", "alerts"],
+        "dependencies": [],
+        "category": "extended"
+      }
+    ],
+    "contexts": [
+      {
+        "id": "essential-patterns",
+        "name": "Essential Patterns",
+        "type": "context",
+        "path": ".opencode/context/core/essential-patterns.md",
+        "description": "Core development patterns and best practices",
+        "tags": ["patterns", "best-practices", "guidelines"],
+        "dependencies": [],
+        "category": "core"
+      },
+      {
+        "id": "project-context",
+        "name": "Project Context",
+        "type": "context",
+        "path": ".opencode/context/project/project-context.md",
+        "description": "Project-specific context and configuration",
+        "tags": ["context", "project", "configuration"],
+        "dependencies": [],
+        "category": "core"
+      }
+    ],
+    "config": [
+      {
+        "id": "env-example",
+        "name": "Environment Template",
+        "type": "config",
+        "path": "env.example",
+        "description": "Example environment configuration file",
+        "tags": ["config", "environment", "template"],
+        "dependencies": [],
+        "category": "core"
+      },
+      {
+        "id": "readme",
+        "name": "README",
+        "type": "config",
+        "path": "README.md",
+        "description": "Project documentation and setup guide",
+        "tags": ["documentation", "readme", "guide"],
+        "dependencies": [],
+        "category": "core"
+      }
+    ]
+  },
+  "profiles": {
+    "core": {
+      "name": "Core",
+      "description": "Essential agents and commands for basic OpenCode usage",
+      "components": [
+        "agent:task-manager",
+        "agent:codebase-agent",
+        "subagent:reviewer",
+        "subagent:tester",
+        "subagent:documentation",
+        "subagent:coder-agent",
+        "subagent:build-agent",
+        "command:test",
+        "command:commit",
+        "command:context",
+        "tool:env",
+        "context:essential-patterns",
+        "context:project-context",
+        "config:env-example",
+        "config:readme"
+      ]
+    },
+    "developer": {
+      "name": "Developer",
+      "description": "Balanced setup for daily development work with all core features plus useful extensions",
+      "components": [
+        "agent:task-manager",
+        "agent:codebase-agent",
+        "agent:image-specialist",
+        "agent:workflow-orchestrator",
+        "subagent:reviewer",
+        "subagent:tester",
+        "subagent:documentation",
+        "subagent:coder-agent",
+        "subagent:build-agent",
+        "subagent:codebase-pattern-analyst",
+        "command:test",
+        "command:commit",
+        "command:context",
+        "command:clean",
+        "command:optimize",
+        "command:prompt-enhancer",
+        "tool:env",
+        "tool:gemini",
+        "plugin:notify",
+        "plugin:telegram-notify",
+        "context:essential-patterns",
+        "context:project-context",
+        "config:env-example",
+        "config:readme"
+      ]
+    },
+    "full": {
+      "name": "Full",
+      "description": "Complete installation with all available components",
+      "components": [
+        "agent:task-manager",
+        "agent:codebase-agent",
+        "agent:image-specialist",
+        "agent:workflow-orchestrator",
+        "subagent:reviewer",
+        "subagent:tester",
+        "subagent:documentation",
+        "subagent:coder-agent",
+        "subagent:build-agent",
+        "subagent:codebase-pattern-analyst",
+        "command:test",
+        "command:commit",
+        "command:context",
+        "command:clean",
+        "command:optimize",
+        "command:prompt-enhancer",
+        "command:worktrees",
+        "tool:env",
+        "tool:gemini",
+        "plugin:notify",
+        "plugin:telegram-notify",
+        "context:essential-patterns",
+        "context:project-context",
+        "config:env-example",
+        "config:readme"
+      ]
+    },
+    "advanced": {
+      "name": "Advanced",
+      "description": "Full installation plus experimental features and planning documentation",
+      "components": [
+        "agent:task-manager",
+        "agent:codebase-agent",
+        "agent:image-specialist",
+        "agent:workflow-orchestrator",
+        "subagent:reviewer",
+        "subagent:tester",
+        "subagent:documentation",
+        "subagent:coder-agent",
+        "subagent:build-agent",
+        "subagent:codebase-pattern-analyst",
+        "command:test",
+        "command:commit",
+        "command:context",
+        "command:clean",
+        "command:optimize",
+        "command:prompt-enhancer",
+        "command:worktrees",
+        "tool:env",
+        "tool:gemini",
+        "plugin:notify",
+        "plugin:telegram-notify",
+        "context:essential-patterns",
+        "context:project-context",
+        "config:env-example",
+        "config:readme"
+      ],
+      "additionalPaths": [
+        ".Building/",
+        ".github/workflows/"
+      ]
+    }
+  },
+  "metadata": {
+    "lastUpdated": "2025-11-17",
+    "schemaVersion": "1.0.0"
+  }
+}