summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authoradamdottv <[email protected]>2025-06-26 12:28:22 -0500
committerJay V <[email protected]>2025-06-26 17:22:21 -0400
commit346b49219d10ac44bab59abbf06bdf7a719d0f36 (patch)
treebbeb401b58f9b795d7ba6ed554bfd013589effb6
parentd84c1f20c76776652cc8b74edeb43b25457abd6f (diff)
downloadopencode-346b49219d10ac44bab59abbf06bdf7a719d0f36.tar.gz
opencode-346b49219d10ac44bab59abbf06bdf7a719d0f36.zip
chore: tui agents.md
-rw-r--r--packages/tui/AGENTS.md26
1 files changed, 26 insertions, 0 deletions
diff --git a/packages/tui/AGENTS.md b/packages/tui/AGENTS.md
new file mode 100644
index 000000000..a757e926b
--- /dev/null
+++ b/packages/tui/AGENTS.md
@@ -0,0 +1,26 @@
+# TUI Agent Guidelines
+
+## Build/Test Commands
+
+- **Build**: `go build ./cmd/opencode` (builds main binary)
+- **Test**: `go test ./...` (runs all tests)
+- **Single test**: `go test ./internal/theme -run TestLoadThemesFromJSON` (specific test)
+- **Generate client**: `go generate ./pkg/client/` (after server endpoint changes)
+- **Release build**: Uses `.goreleaser.yml` configuration
+
+## Code Style
+
+- **Language**: Go 1.24+ with standard formatting (`gofmt`)
+- **Imports**: Group standard, third-party, local packages with blank lines
+- **Naming**: Go conventions - PascalCase exports, camelCase private, ALL_CAPS constants
+- **Error handling**: Return errors explicitly, use `fmt.Errorf` for wrapping
+- **Structs**: Define clear interfaces, embed when appropriate
+- **Testing**: Use table-driven tests, `t.TempDir()` for file operations
+
+## Architecture
+
+- **TUI Framework**: Bubble Tea v2 with Lipgloss v2 for styling
+- **Client**: Generated OpenAPI client communicates with TypeScript server
+- **Components**: Reusable UI components in `internal/components/`
+- **Themes**: JSON-based theming system with override hierarchy
+- **State**: Centralized app state with message passing \ No newline at end of file