diff --git a/.dockerignore b/.dockerignore index 6fb5550..a7b3c56 100644 --- a/.dockerignore +++ b/.dockerignore @@ -78,7 +78,6 @@ LICENSE CODE_OF_CONDUCT.md CONTRIBUTING.md BINHARIC.md -AGENT.md /docs/ /tests/ vitest.config.ts diff --git a/.gitignore b/.gitignore index c2d56f8..0226fcf 100644 --- a/.gitignore +++ b/.gitignore @@ -162,7 +162,6 @@ coverage/ .env *_test.txt BINHARIC.md -AGENT.md *.tar.gz *.tgz test.txt diff --git a/Dockerfile b/Dockerfile index 0e4f583..f66c459 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ COPY src ./src RUN npm run build FROM node:20-alpine AS runtime -RUN apk add --no-cache bash git grep findutils coreutils sed gawk curl wget openssh-client ca-certificates make +RUN apk add --no-cache bash git grep findutils coreutils sed gawk curl wget openssh-client ca-certificates make nano WORKDIR /app ENV NODE_ENV=production COPY package*.json ./ diff --git a/README.md b/README.md index 6f5dd4d..ce379cf 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ [![Documentation](https://img.shields.io/badge/docs-latest-8ca0d7?style=flat&labelColor=333333&logo=read-the-docs&logoColor=white)](docs) [![License](https://img.shields.io/badge/license-MIT-00acc1?style=flat&labelColor=333333&logo=open-source-initiative&logoColor=white)](LICENSE) -A coding agent with the persona of a Tech-Priest of the Adeptus Mechanicus +A multi-provider AI coding agent with the persona of a Tech-Priest @@ -34,11 +34,11 @@ like the ability to analyze projects, run tests, find bugs, and perform code rev ### Features - Can use models from OpenAI, Google, Anthropic, and Ollama -- Is fully customizable (like customizing system prompt) -- Comes with a built-in retrieval-augmented generation (RAG) pipeline -- Comes with a large set of built-in tools (like reading and writing files) +- Is fully customizable and extendable (system prompt and adding new tools) +- Comes with a built-in keyword-based retrieval-augmented generation (RAG) pipeline +- Comes with a large set of built-in tools (like for reading files and running Bash commands) - Can use external tools via the Model Context Protocol (MCP) -- Comes with built-in workflows for standard software development tasks (like debugging and code review) +- Comes with predefined workflows for common software development tasks (like debugging and code review) See the [ROADMAP.md](ROADMAP.md) for the list of implemented and planned features. @@ -70,6 +70,8 @@ export GOOGLE_API_KEY= binharic ``` +[![Binharic Start Screen](docs/assets/screenshots/start-screen-1-v0.1.0-alpha.6.png)](docs/assets/screenshots/start-screen-1-v0.1.0-alpha.6.png) + [![asciicast](https://asciinema.org/a/vDae95b1lm20X7HGSlcVe3M6C.svg)](https://asciinema.org/a/vDae95b1lm20X7HGSlcVe3M6C) > [!NOTE] @@ -84,17 +86,22 @@ Alternatively, you can run Binharic in a container: ```sh # API keys should be available in the environment already docker run -it --rm \ - -v $(PWD):/workspace \ - -w /workspace \ + -v ${PWD}:/workspace \ -e OPENAI_API_KEY \ -e ANTHROPIC_API_KEY \ -e GOOGLE_API_KEY \ ghcr.io/cogitatortech/binharic-cli: ``` -`` should be replaced with the version of the Binharic (like `0.1.0-alpha.4`) or `latest`. +`` should be replaced with the version of the Binharic (like `0.1.0-alpha.6`) or `latest`. Use `latest` if you want to use the latest (development) version of Binharic. +#### Configuration + +You can configure Binharic by editing the `~/.config/binharic/config.json5` file. +Additionally, Binharic supports environment variables for configuration. +See the [docs](docs) (TO BE ADDED) for more information. + --- ### Documentation diff --git a/docs/assets/screenshots/start-screen-1-v0.1.0-alpha.6.png b/docs/assets/screenshots/start-screen-1-v0.1.0-alpha.6.png new file mode 100644 index 0000000..7d33c17 --- /dev/null +++ b/docs/assets/screenshots/start-screen-1-v0.1.0-alpha.6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb96c0ff1958eec24df7f3e79ba2d177df6921d847d18ed889fccddb7aac50f1 +size 49459 diff --git a/package.json b/package.json index 9935db5..54fd164 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@cogitator/binharic-cli", - "version": "0.1.0-alpha.5", - "description": "A coding agent with the persona of a Tech-Priest of the Adeptus Mechanicus", + "version": "0.1.0-alpha.6", + "description": "A multi-provider AI coding agent with the persona of a Tech-Priest", "main": "dist/cli.js", "type": "module", "bin": { diff --git a/src/agent/core/state.ts b/src/agent/core/state.ts index 29a209a..453a859 100644 --- a/src/agent/core/state.ts +++ b/src/agent/core/state.ts @@ -204,7 +204,7 @@ export const useStore = create((set, get) => ({ validateModelApiKey(modelConfig, config); } - const autoContextFiles = ["BINHARIC.md", "AGENT.md"] + const autoContextFiles = ["BINHARIC.md"] .map((p) => path.resolve(p)) .filter((p) => fsSync.existsSync(p)); if (autoContextFiles.length > 0) { diff --git a/src/ui/ContextSummaryDisplay.tsx b/src/ui/ContextSummaryDisplay.tsx index 5f886c0..56b5fdc 100644 --- a/src/ui/ContextSummaryDisplay.tsx +++ b/src/ui/ContextSummaryDisplay.tsx @@ -15,7 +15,7 @@ export function ContextSummaryDisplay() { {count > 0 ? `Reading ${count} context file(s): ${names.join(", ")}` - : "No context files loaded. Add files with /add or create a BINHARIC.md or AGENT.md file."} + : "No context files loaded. Add files with /add or create a BINHARIC.md file in the current directory."} ); diff --git a/src/ui/Header.tsx b/src/ui/Header.tsx index 405f82f..a2ddb9d 100644 --- a/src/ui/Header.tsx +++ b/src/ui/Header.tsx @@ -23,7 +23,7 @@ export function Header() { 1. Ask questions, edit files, or run commands. 2. Be specific for the best results. - 3. Create BINHARIC.md files to customize your interactions with Binharic. + 3. Create a BINHARIC.md file to customize your interactions with Binharic. 4. /help for more information. diff --git a/src/ui/HelpMenu.tsx b/src/ui/HelpMenu.tsx index 70ba268..314f3f6 100644 --- a/src/ui/HelpMenu.tsx +++ b/src/ui/HelpMenu.tsx @@ -243,7 +243,7 @@ export function HelpMenu() { - Tip: Create BINHARIC.md files to customize interactions with the agent + Tip: Create a BINHARIC.md file to customize interactions with the agent diff --git a/tests/ui/Header.test.tsx b/tests/ui/Header.test.tsx index 369c111..b496698 100644 --- a/tests/ui/Header.test.tsx +++ b/tests/ui/Header.test.tsx @@ -11,7 +11,7 @@ describe("Header", () => { expect(lastFrame()).toContain("1. Ask questions, edit files, or run commands."); expect(lastFrame()).toContain("2. Be specific for the best results."); expect(lastFrame()).toContain( - "3. Create BINHARIC.md files to customize your interactions with Binharic.", + "3. Create a BINHARIC.md file to customize your interactions with Binharic.", ); expect(lastFrame()).toContain("4. /help for more information."); });