Files
opencode/packages/opencode/AGENTS.md
2025-08-05 12:01:48 -04:00

1.3 KiB

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())

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.