summaryrefslogtreecommitdiffhomepage
path: root/js/OpenCode.md
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-05-27 02:26:53 -0400
committerDax Raad <[email protected]>2025-05-27 02:26:53 -0400
commit98b5390a22e2dc07c94727e19aad19d8b71d5a4d (patch)
tree06c96e319af72ac8bda2f645b060662e27f24d93 /js/OpenCode.md
parentc040baae118787cd0573e5b674a2a225f36d898c (diff)
downloadopencode-98b5390a22e2dc07c94727e19aad19d8b71d5a4d.tar.gz
opencode-98b5390a22e2dc07c94727e19aad19d8b71d5a4d.zip
Refactor grep tool output generation and fix ls directory traversal bug
🤖 Generated with opencode Co-Authored-By: opencode <[email protected]>
Diffstat (limited to 'js/OpenCode.md')
-rw-r--r--js/OpenCode.md27
1 files changed, 27 insertions, 0 deletions
diff --git a/js/OpenCode.md b/js/OpenCode.md
new file mode 100644
index 000000000..7def6f8c7
--- /dev/null
+++ b/js/OpenCode.md
@@ -0,0 +1,27 @@
+# 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 <pattern>` - Run specific test files
+- `bun test --test-name-pattern <regex>` - 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
+- **Variable declarations: Prefer `const` over `let` unless reassignment is necessary** \ No newline at end of file