Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Deploy Next.js site to Pages

on:
push:
branches: ["main"]
pull_request:
types: [opened, reopened, synchronize, closed]
workflow_dispatch:

permissions:
contents: write
pull-requests: write
pages: write
id-token: write

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true

jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 22

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest

- name: Install dependencies
run: bun install --frozen-lockfile
working-directory: site

- name: Setup Pages
id: setup_pages
uses: actions/configure-pages@v5

- name: Set base uri
run: |
if [ "${{ github.event_name }}" = "pull_request" ]; then
echo "NEXT_PUBLIC_BASE_PATH=${{ steps.setup_pages.outputs.base_path }}/pr-preview/pr-${{ github.event.pull_request.number }}" >> "$GITHUB_ENV"
else
echo "NEXT_PUBLIC_BASE_PATH=${{ steps.setup_pages.outputs.base_path }}" >> "$GITHUB_ENV"
fi

- name: Build with Next.js
run: bun run build
working-directory: site

- name: Deploy preview
if: github.event_name == 'pull_request'
uses: rossjrw/pr-preview-action@v1
with:
source-dir: site/out

- name: Deploy production
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: JamesIves/github-pages-deploy-action@v4
with:
clean-exclude: pr-preview/
force: false
folder: site/out
49 changes: 49 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
node_modules
.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions

__pycache__/
*.py[cod]
*$py.class

# testing
coverage

# next.js
.next/

# The `out` directory should not be ignored by version control
out/

# production
build

# misc
.DS_Store
*.pem
*~
\#*

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# local env files
.env*.local
.env*

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
5 changes: 5 additions & 0 deletions .zealt/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"title": "Typesense Benchmark",
"description": "Performance results of AI coding models on Typesense tasks, measuring success rate and execution time with high precision.",
"github_repo": "https://github.com/kweizh/typesense-benchmark"
}
47 changes: 46 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,46 @@
# typesense-benchmark

# Typesense Benchmark

This repository contains benchmarks for evaluating AI models on **Typesense**.

You can view the evaluation reports at [https://kweizh.github.io/typesense-benchmark/](https://kweizh.github.io/typesense-benchmark/).

## Project Structure

- `tasks/`: Contains the benchmark tasks, each with its own instructions.
- `jobs/`: Stores the results of benchmark runs.
- `site/`: A Next.js application to visualize benchmark results.

## Getting Started

This benchmark is evaluated using the [Harbor framework](https://github.com/harbor-framework/harbor) and the [Pochi agent](https://github.com/TabbyML/pochi).

### Running Evaluation

You can run the evaluation using the Harbor CLI. Here is an example:

```bash
harbor run \
--agent codex \
--model "gpt-5.2-codex" \
--env daytona \
--path ./tasks \
--n-attempts 1 \
--max-retries 5 \
--n-concurrent 5 \
--retry-include RuntimeError \
--retry-include DaytonaError \
--retry-include AgentTimeoutError
```

### Evaluation Details

Before starting the evaluation, you should set the necessary environment variables for your chosen agent.
For example, if using Pochi, you should export `POCHI_API_KEY`.

Evaluation can be run locally with Docker (default), or using [Daytona.io](https://www.daytona.io/) by setting `--env daytona`.

When running with Daytona, please note that Daytona blocks some network access for tier 1 and tier 2 users. If you meet any network issues, please refer to [Daytona network limits](https://www.daytona.io/docs/en/network-limits/).

---
Generated by [Zealt](https://github.com/TabbyML/zealt)
Loading
Loading