UNPKG

abyss-ai

Version:

Autonomous AI coding agent - enhanced OpenCode with autonomous capabilities

41 lines (32 loc) 1.78 kB
# opencode agent guidelines ## Build/Test Commands - **Install**: `bun install` - **Run**: `bun run index.ts` - **Typecheck**: `bun run typecheck` (npm run typecheck) - **Test**: `bun test` (runs all tests) - **Single test**: `bun test test/tool/tool.test.ts` (specific test file) ## Code Style - **Runtime**: Bun with TypeScript ESM modules - **Imports**: Use relative imports for local modules, named imports preferred - **Types**: Zod schemas for validation, TypeScript interfaces for structure - **Naming**: camelCase for variables/functions, PascalCase for classes/namespaces - **Error handling**: Use Result patterns, avoid throwing exceptions in tools - **File structure**: Namespace-based organization (e.g., `Tool.define()`, `Session.create()`) ## IMPORTANT - Try to keep things in one function unless composable or reusable - DO NOT do unnecessary destructuring of variables - DO NOT use `else` statements unless necessary - DO NOT use `try`/`catch` if it can be avoided - AVOID `try`/`catch` where possible - AVOID `else` statements - AVOID using `any` type - AVOID `let` statements - PREFER single word variable names where possible - Use as many bun apis as possible like Bun.file() ## Architecture - **Tools**: Implement `Tool.Info` interface with `execute()` method - **Context**: Pass `sessionID` in tool context, use `App.provide()` for DI - **Validation**: All inputs validated with Zod schemas - **Logging**: Use `Log.create({ service: "name" })` pattern - **Storage**: Use `Storage` namespace for persistence - **API Client**: Go TUI communicates with TypeScript server via stainless SDK. When adding/modifying server endpoints in `packages/opencode/src/server/server.ts`, ask the user to generate a new client SDK to proceed with client-side changes.