Major Changes: - Rename repository from opencode-agents to OpenAgents - Remove all hardcoded model specifications (now model-agnostic) - Fix documentation: profile names, component counts, add Business profile - Add future plans note for other AI coding tools Repository Rename: - Update all URLs to github.com/darrenhinde/OpenAgents - Update git remote, README, install scripts, documentation - 15 files updated with new repository name Model-Agnostic Framework: - Remove model specifications from 6 agent files - Framework now works with any AI provider (Claude, GPT, Gemini, local models) - Users control model selection via OpenCode CLI settings Documentation Fixes: - Correct profile name: Core → Essential - Add missing Business profile documentation - Fix component counts: Developer (19), Advanced (32) - Document all 5 profiles with accurate descriptions Future Plans: - Add note about support for other AI tools (Cursor, Claude Code, etc.) - Clear focus on stabilizing OpenCode integration first This makes OpenAgents a truly universal, model-agnostic framework accessible to all users regardless of their AI provider preference.
335 lines
8.9 KiB
Markdown
335 lines
8.9 KiB
Markdown
# Install Script - Collision Handling
|
||
|
||
## Overview
|
||
|
||
The install script now intelligently detects and handles file collisions when installing OpenCode components into an existing `.opencode/` directory.
|
||
|
||
## How It Works
|
||
|
||
### 1. Collision Detection
|
||
|
||
Before installing any files, the script:
|
||
- Scans all components you've selected to install
|
||
- Checks if any files already exist in your `.opencode/` directory
|
||
- Groups collisions by type (agents, subagents, commands, tools, etc.)
|
||
- Presents a clear report of what would be overwritten
|
||
|
||
### 2. Installation Strategies
|
||
|
||
When collisions are detected, you get **4 options**:
|
||
|
||
#### Option 1: Skip Existing (Recommended for Updates)
|
||
```
|
||
✅ Only install new files
|
||
✅ Keep ALL existing files unchanged
|
||
✅ Your customizations are preserved
|
||
✅ Safe for incremental updates
|
||
```
|
||
|
||
**Use when:**
|
||
- You've customized existing agents/commands
|
||
- You only want to add new components
|
||
- You're updating and want to keep your changes
|
||
|
||
**Example:**
|
||
```
|
||
Selected: 10 components
|
||
Existing: 5 files
|
||
Result: 5 new files installed, 5 existing files untouched
|
||
```
|
||
|
||
---
|
||
|
||
#### Option 2: Overwrite All (Use with Caution)
|
||
```
|
||
⚠️ Replace ALL existing files with new versions
|
||
⚠️ Your customizations will be LOST
|
||
⚠️ Requires confirmation (type 'yes')
|
||
```
|
||
|
||
**Use when:**
|
||
- You want the latest versions of everything
|
||
- You haven't made customizations
|
||
- You want to reset to defaults
|
||
|
||
**Example:**
|
||
```
|
||
Selected: 10 components
|
||
Existing: 5 files
|
||
Result: All 10 files installed (5 overwritten, 5 new)
|
||
```
|
||
|
||
---
|
||
|
||
#### Option 3: Backup & Overwrite (Safe Update)
|
||
```
|
||
✅ Backs up existing files to .opencode.backup.{timestamp}/
|
||
✅ Then installs new versions
|
||
✅ You can restore from backup if needed
|
||
✅ Best of both worlds
|
||
```
|
||
|
||
**Use when:**
|
||
- You want new versions but want to keep a backup
|
||
- You're not sure if you've customized files
|
||
- You want the ability to restore
|
||
|
||
**Example:**
|
||
```
|
||
Selected: 10 components
|
||
Existing: 5 files
|
||
Result:
|
||
- 5 files backed up to .opencode.backup.20251118-143022/
|
||
- All 10 files installed (5 updated, 5 new)
|
||
```
|
||
|
||
**Restore from backup:**
|
||
```bash
|
||
# View backup
|
||
ls -la .opencode.backup.*/
|
||
|
||
# Restore specific file
|
||
cp .opencode.backup.20251118-143022/.opencode/agent/my-agent.md .opencode/agent/
|
||
|
||
# Restore all
|
||
rm -rf .opencode
|
||
mv .opencode.backup.20251118-143022/.opencode .opencode
|
||
```
|
||
|
||
---
|
||
|
||
#### Option 4: Cancel
|
||
```
|
||
❌ Exit without making any changes
|
||
```
|
||
|
||
**Use when:**
|
||
- You need to review what would be changed
|
||
- You want to manually backup first
|
||
- You're not ready to proceed
|
||
|
||
---
|
||
|
||
## Example Session
|
||
|
||
```bash
|
||
$ bash <(curl -fsSL https://raw.githubusercontent.com/darrenhinde/OpenAgents/main/install.sh) --developer
|
||
|
||
╔════════════════════════════════════════════════════════════════╗
|
||
║ ║
|
||
║ OpenAgents Installer v1.0.0 ║
|
||
║ ║
|
||
╚════════════════════════════════════════════════════════════════╝
|
||
|
||
▶ Checking dependencies...
|
||
✓ All dependencies found
|
||
|
||
▶ Fetching component registry...
|
||
✓ Registry fetched successfully
|
||
|
||
▶ Installation Preview
|
||
|
||
Profile: developer
|
||
|
||
Components to install (22 total):
|
||
|
||
Agents (4): task-manager codebase-agent image-specialist workflow-orchestrator
|
||
Subagents (6): reviewer tester documentation coder-agent build-agent codebase-pattern-analyst
|
||
Commands (6): test commit context clean optimize prompt-enhancer
|
||
Tools (2): env gemini
|
||
Contexts (2): essential-patterns project-context
|
||
Config (2): env-example readme
|
||
|
||
Proceed with installation? [Y/n]: y
|
||
|
||
▶ Preparing installation...
|
||
|
||
▶ Checking for file collisions...
|
||
|
||
⚠ Found 8 file collision(s):
|
||
|
||
Agents (2):
|
||
.opencode/agent/task-manager.md
|
||
.opencode/agent/codebase-agent.md
|
||
Subagents (3):
|
||
.opencode/agent/subagents/reviewer.md
|
||
.opencode/agent/subagents/tester.md
|
||
.opencode/agent/subagents/coder-agent.md
|
||
Commands (2):
|
||
.opencode/command/test.md
|
||
.opencode/command/commit.md
|
||
Context (1):
|
||
.opencode/context/core/essential-patterns.md
|
||
|
||
How would you like to proceed?
|
||
|
||
1) Skip existing - Only install new files, keep all existing files unchanged
|
||
2) Overwrite all - Replace existing files with new versions (your changes will be lost)
|
||
3) Backup & overwrite - Backup existing files, then install new versions
|
||
4) Cancel - Exit without making changes
|
||
|
||
Enter your choice [1-4]: 1
|
||
|
||
▶ Installing components...
|
||
|
||
✓ Installed agent: image-specialist
|
||
✓ Installed agent: workflow-orchestrator
|
||
ℹ Skipped existing: agent:task-manager
|
||
ℹ Skipped existing: agent:codebase-agent
|
||
ℹ Skipped existing: subagent:reviewer
|
||
ℹ Skipped existing: subagent:tester
|
||
✓ Installed subagent: documentation
|
||
ℹ Skipped existing: subagent:coder-agent
|
||
✓ Installed subagent: build-agent
|
||
✓ Installed subagent: codebase-pattern-analyst
|
||
ℹ Skipped existing: command:test
|
||
ℹ Skipped existing: command:commit
|
||
✓ Installed command: context
|
||
✓ Installed command: clean
|
||
✓ Installed command: optimize
|
||
✓ Installed command: prompt-enhancer
|
||
✓ Installed tool: env
|
||
✓ Installed tool: gemini
|
||
ℹ Skipped existing: context:essential-patterns
|
||
✓ Installed context: project-context
|
||
✓ Installed config: env-example
|
||
✓ Installed config: readme
|
||
|
||
✓ Installation complete!
|
||
Installed: 14
|
||
Skipped: 8
|
||
|
||
▶ Next Steps
|
||
|
||
1. Review the installed components in .opencode/
|
||
2. Copy env.example to .env and configure:
|
||
cp env.example .env
|
||
3. Start using OpenCode agents:
|
||
opencode
|
||
|
||
ℹ Documentation: https://github.com/darrenhinde/OpenAgents
|
||
```
|
||
|
||
---
|
||
|
||
## Collision Report Details
|
||
|
||
The collision report groups files by type for easy review:
|
||
|
||
| Category | Location | Description |
|
||
|----------|----------|-------------|
|
||
| **Agents** | `.opencode/agent/*.md` | Main orchestrator agents |
|
||
| **Subagents** | `.opencode/agent/subagents/*.md` | Specialized worker agents |
|
||
| **Commands** | `.opencode/command/*.md` | Slash commands |
|
||
| **Tools** | `.opencode/tool/*/` | Tool implementations |
|
||
| **Plugins** | `.opencode/plugin/*.ts` | Plugin integrations |
|
||
| **Context** | `.opencode/context/**/*.md` | Context files |
|
||
| **Config** | Root level files | Configuration files |
|
||
|
||
---
|
||
|
||
## Best Practices
|
||
|
||
### For First-Time Installation
|
||
- No collisions will be detected
|
||
- All files install cleanly
|
||
- No strategy selection needed
|
||
|
||
### For Updates (Adding New Components)
|
||
- **Use Option 1 (Skip existing)** - Safest choice
|
||
- Only new components are added
|
||
- Your customizations are preserved
|
||
|
||
### For Full Refresh
|
||
- **Use Option 3 (Backup & overwrite)** - Safest for updates
|
||
- Get latest versions of everything
|
||
- Keep backup just in case
|
||
|
||
### For Clean Slate
|
||
- **Use Option 2 (Overwrite all)** - Only if you're sure
|
||
- Resets everything to defaults
|
||
- Requires explicit confirmation
|
||
|
||
---
|
||
|
||
## Technical Details
|
||
|
||
### What Gets Checked
|
||
- All files in the selected components list
|
||
- Paths are resolved from `registry.json`
|
||
- Only actual file existence is checked (not content)
|
||
|
||
### What Gets Backed Up (Option 3)
|
||
- Only files that would be overwritten
|
||
- Preserves directory structure
|
||
- Timestamped folder: `.opencode.backup.YYYYMMDD-HHMMSS/`
|
||
|
||
### What Gets Skipped (Option 1)
|
||
- Any file that already exists
|
||
- Reported in "Skipped" count
|
||
- Logged with component type and ID
|
||
|
||
---
|
||
|
||
## Troubleshooting
|
||
|
||
### "I chose skip but want to update one file"
|
||
```bash
|
||
# Delete the specific file first
|
||
rm .opencode/agent/task-manager.md
|
||
|
||
# Run installer again with skip mode
|
||
# Only the deleted file will be reinstalled
|
||
```
|
||
|
||
### "I chose overwrite by accident"
|
||
```bash
|
||
# If you chose Option 3 (backup), restore from backup:
|
||
cp .opencode.backup.*/path/to/file .opencode/path/to/file
|
||
|
||
# If you chose Option 2 (overwrite), check git history:
|
||
git checkout HEAD -- .opencode/
|
||
```
|
||
|
||
### "I want to see what changed"
|
||
```bash
|
||
# If you have a backup:
|
||
diff .opencode/agent/my-agent.md .opencode.backup.*/agent/my-agent.md
|
||
|
||
# If you have git:
|
||
git diff .opencode/
|
||
```
|
||
|
||
### "I want to merge changes manually"
|
||
```bash
|
||
# Use Option 3 to create backup
|
||
# Then manually merge:
|
||
vimdiff .opencode/agent/my-agent.md .opencode.backup.*/agent/my-agent.md
|
||
```
|
||
|
||
---
|
||
|
||
## Future Enhancements
|
||
|
||
Potential improvements for future versions:
|
||
|
||
- [ ] Per-file selection (interactive mode)
|
||
- [ ] Diff preview before overwriting
|
||
- [ ] Smart merge for specific file types
|
||
- [ ] Version detection and upgrade paths
|
||
- [ ] Rollback command
|
||
- [ ] Dry-run mode (show what would happen)
|
||
|
||
---
|
||
|
||
## Summary
|
||
|
||
The collision handling system provides:
|
||
|
||
✅ **Safety** - Never overwrites without asking
|
||
✅ **Flexibility** - Multiple strategies for different needs
|
||
✅ **Transparency** - Clear reporting of what will change
|
||
✅ **Recoverability** - Backup option for peace of mind
|
||
✅ **Simplicity** - Easy to understand and use
|
||
|
||
Choose the strategy that fits your situation, and install with confidence!
|