abyss-ai
Version:
Autonomous AI coding agent - enhanced OpenCode with autonomous capabilities
92 lines (81 loc) ⢠3.13 kB
text/typescript
import { cmd } from "./cmd"
import * as prompts from "@clack/prompts"
import { UI } from "../ui"
import { AgentMemory } from "../../agent/memory/agent-memory"
// Abyss Information Command
export const AbyssInfoCommand = cmd({
command: "info",
describe: "show Abyss capabilities and system information",
builder: (yargs) =>
yargs
.option("memory-stats", {
type: "boolean",
describe: "include detailed memory statistics",
default: false,
})
.option("capabilities", {
type: "boolean",
describe: "show autonomous capabilities overview",
default: true,
}),
async handler(args) {
UI.empty()
prompts.intro("š The Abyss - Autonomous AI Coding Agent")
if (args.capabilities) {
console.log(`
š **Autonomous Capabilities:**
⢠YOLO Mode - Works without permission prompts
⢠Batch Processing - Handles entire directories intelligently
⢠Learning System - Remembers and improves from previous analyses
⢠Safety Features - Automatic backups and rollback capabilities
⢠Multi-Agent Coordination - Specialized agents for different tasks
š§ **Intelligence Features:**
⢠Memory-driven contextual advice
⢠Pattern recognition across projects
⢠Project-specific adaptation
⢠Risk assessment based on historical data
⢠Performance optimization with file prioritization
š§ **Advanced Tools:**
⢠Dynamic question generation
⢠Coordinated multi-agent analysis
⢠Real-time learning and adaptation
⢠Comprehensive backup management
⢠Concurrent processing with safety checks
`)
}
if (args.memoryStats) {
try {
const agentMemory = new AgentMemory(process.cwd())
const stats = agentMemory.getMemoryStats()
console.log(`š§ **Memory Statistics:**`)
console.log(` ⢠Total Memories: ${stats.totalMemories}`)
console.log(` ⢠Success Rate: ${Math.round(stats.successRate * 100)}%`)
console.log(` ⢠Average Complexity: ${stats.averageComplexity.toFixed(2)}`)
if (Object.keys(stats.languageBreakdown).length > 0) {
console.log(` ⢠Language Experience:`)
Object.entries(stats.languageBreakdown)
.sort((a, b) => b[1] - a[1])
.slice(0, 5)
.forEach(([language, count]) => {
console.log(` - ${language}: ${count} files analyzed`)
})
}
} catch (error) {
console.log(`š§ **Memory Statistics:** Not available (${error})`)
}
}
console.log(`
š” **Quick Start Commands:**
abyss Interactive mode
abyss multiagent yolo Autonomous mode
abyss multiagent yolo --directory ./src Batch process
abyss multiagent memory View learning data
abyss help Comprehensive help
š **Resources:**
⢠GitHub: https://github.com/sst/abyss
⢠Original: https://github.com/sst/opencode
⢠Help: abyss help [topic]
`)
prompts.outro("Ready to dive into the abyss? š")
},
})