diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..adba25332 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,29 @@ +# Contributing to agent-browser + +First off, thank you for considering contributing to agent-browser! We welcome and appreciate your input. + +## Setting up the Development Environment + +1. Fork the repository and clone it locally. +2. Ensure you have Node.js installed. +3. Run `npm install` to install dependencies. +4. Run `npm run build` to build the project. +5. Run `npm test` to run the tests locally. + +## Coding Style Guidelines + +- Follow the existing code style. We use Prettier for code formatting and ESLint for linting. +- Write clear, readable, and concise code. +- Add comments where necessary, especially for complex logic. +- Ensure that you add or update tests for any new features or bug fixes. + +## Submitting a Pull Request + +1. Create a new branch from `main` for your feature or bug fix. +2. Commit your changes with clear, descriptive commit messages. +3. Push your branch to your fork. +4. Open a Pull Request against the `main` branch of the `dextonai/agent-browser` repository. +5. Provide a clear description of the changes in your PR. +6. Ensure all CI checks and tests pass. + +Thank you for contributing! diff --git a/README.md b/README.md index 7b0dfba9a..9f238046e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +[![Build Status](https://github.com/dextonai/agent-browser/actions/workflows/build.yml/badge.svg)](https://github.com/dextonai/agent-browser/actions) + # agent-browser Headless browser automation CLI for AI agents. Fast Rust CLI with Node.js fallback. diff --git a/apply_fix.sh b/apply_fix.sh new file mode 100644 index 000000000..d8227c43b --- /dev/null +++ b/apply_fix.sh @@ -0,0 +1,41 @@ +cat << 'EOF' > CONTRIBUTING.md +# Contributing to agent-browser + +First off, thank you for considering contributing to agent-browser! We welcome and appreciate your input. + +## Setting up the Development Environment + +1. Fork the repository and clone it locally. +2. Ensure you have Node.js installed. +3. Run `npm install` to install dependencies. +4. Run `npm run build` to build the project. +5. Run `npm test` to run the tests locally. + +## Coding Style Guidelines + +- Follow the existing code style. We use Prettier for code formatting and ESLint for linting. +- Write clear, readable, and concise code. +- Add comments where necessary, especially for complex logic. +- Ensure that you add or update tests for any new features or bug fixes. + +## Submitting a Pull Request + +1. Create a new branch from `main` for your feature or bug fix. +2. Commit your changes with clear, descriptive commit messages. +3. Push your branch to your fork. +4. Open a Pull Request against the `main` branch of the `dextonai/agent-browser` repository. +5. Provide a clear description of the changes in your PR. +6. Ensure all CI checks and tests pass. + +Thank you for contributing! +EOF + +if [ -f README.md ]; then + awk 'NR==1{print "[![Build Status](https://github.com/dextonai/agent-browser/actions/workflows/build.yml/badge.svg)](https://github.com/dextonai/agent-browser/actions)\n"}1' README.md > README.md.tmp && mv README.md.tmp README.md +else + cat << 'EOF' > README.md +[![Build Status](https://github.com/dextonai/agent-browser/actions/workflows/build.yml/badge.svg)](https://github.com/dextonai/agent-browser/actions) + +# agent-browser +EOF +fi \ No newline at end of file diff --git a/fix_script.py b/fix_script.py new file mode 100644 index 000000000..bff1b4c16 --- /dev/null +++ b/fix_script.py @@ -0,0 +1,59 @@ +import os +import requests +import json +import subprocess + +api_key = os.environ.get("OPENAI_API_KEY", "anything") +headers = { + "Content-Type": "application/json", + "Authorization": f"Bearer {api_key}" +} + +# 1. Read all TS/JS files in src/ +files_content = "" +for root, _, files in os.walk("src"): + for file in files: + if file.endswith((".ts", ".js", ".py", ".java")): + path = os.path.join(root, file) + with open(path, "r") as f: + files_content += f"--- {path} ---\n{f.read()}\n\n" + +prompt = f"""You are an expert engineer. +Issue: https://github.com/dextonai/agent-browser/issues/1 +Description: +## Add a README badge and contribution guide to agent-browser + +Add a contribution guide (CONTRIBUTING.md) and a status badge to the README.md in the dextonai/agent-browser repository. The CONTRIBUTING.md should include: how to set up the dev environment, coding style guidelines, and how to submit a PR. The README badge should show the build status. This is a simple documentation task. + +**Reward:** 1.000000000000000000 DXTN +**Mode:** competition +**Deadline:** None + +--- +To claim this bounty, submit a PR referencing `bounty:8e29b86d-2387-4a5a-bd72-69afaa74c4ad` in the PR body. + +_Managed by [DextonHub](https://dextonhub.com). [View bounty](https://dextonhub.com/app/bounties/8e29b86d-2387-4a5a-bd72-69afaa74c4ad)_ + +Files: +{files_content} + +Your job is to provide ONLY a valid bash script that patches the files using tools like sed, awk, or echoing entire rewritten files. +Do NOT use markdown code blocks, just raw bash commands so I can pipe it directly to bash. +""" + +payload = { + "model": "gemini-3.1-pro-preview", + "messages": [{"role": "user", "content": prompt}], + "max_tokens": 4096 +} + +resp = requests.post("http://172.25.176.1:4000/v1/chat/completions", headers=headers, json=payload) +data = resp.json() +bash_code = data["choices"][0]["message"]["content"].strip() +if bash_code.startswith("```bash"): + bash_code = bash_code[7:-3] +elif bash_code.startswith("```"): + bash_code = bash_code[3:-3] + +with open("apply_fix.sh", "w") as f: + f.write(bash_code)