From a1d40f8f28a7fcb6ff3362a21a177418d76fbe95 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Mon, 26 May 2025 21:38:17 -0400 Subject: [PATCH] add context.md --- js/CONTEXT.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 js/CONTEXT.md diff --git a/js/CONTEXT.md b/js/CONTEXT.md new file mode 100644 index 00000000..6c952185 --- /dev/null +++ b/js/CONTEXT.md @@ -0,0 +1,24 @@ +# OpenCode Context + +## Build/Test Commands +- `bun install` - Install dependencies +- `bun run index.ts` - Run the application +- `bun build src/index.ts --compile --outfile ./dist/opencode` - Build executable +- `bun test` - Run all tests +- `bun test ` - Run specific test files +- `bun test --test-name-pattern ` - Run tests matching pattern + +## Code Style & Conventions +- TypeScript with Bun runtime +- ES modules (`"type": "module"`) +- Namespace-based organization (e.g., `Tool.define`, `App.provide`) +- Zod for schema validation and type safety +- Async/await patterns throughout +- Structured logging with service-based loggers (`Log.create({ service: "name" })`) +- Tool pattern: define tools with `Tool.define()` wrapper for metadata/timing +- Context pattern: use `Context.create()` for dependency injection +- Import style: Node.js built-ins with `node:` prefix, relative imports with explicit extensions +- Error handling: try/catch with structured logging +- File organization: group by feature in `src/` with index files for exports +- Test files: co-located in `test/` directory, use Bun's built-in test runner +- Naming: camelCase for variables/functions, PascalCase for namespaces/types \ No newline at end of file