diff --git a/.changeset/config.json b/.changeset/config.json
index 3d5c3b31..83119579 100644
--- a/.changeset/config.json
+++ b/.changeset/config.json
@@ -6,5 +6,10 @@
"linked": [],
"access": "public",
"baseBranch": "main",
- "ignore": ["example", "evalite-tests", "evalite-docs", "evalite-ui"]
+ "ignore": [
+ "example",
+ "evaluhealth-tests",
+ "evaluhealth-docs",
+ "evaluhealth-ui"
+ ]
}
diff --git a/.changeset/tasty-parents-bathe.md b/.changeset/tasty-parents-bathe.md
deleted file mode 100644
index 720c7c61..00000000
--- a/.changeset/tasty-parents-bathe.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"evalite-ui": patch
----
-
-Use window.location.origin for WebSocket and BASE_URL to allow opening evalite running on remote server
diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml
index f3be05f8..f199e037 100644
--- a/.github/workflows/preview.yml
+++ b/.github/workflows/preview.yml
@@ -24,4 +24,4 @@ jobs:
- run: pnpm build
- name: Publish preview releases
- run: pnpx pkg-pr-new publish packages/evalite
+ run: pnpx pkg-pr-new publish packages/evaluhealth
diff --git a/.prettierignore b/.prettierignore
index 95e4ab7c..99fcce93 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -3,12 +3,12 @@ dist
.turbo
*.tsbuildinfo
coverage
-.evalite
-evalite.db
+.evaluhealth
+evaluhealth.db
pnpm-lock.yaml
**/tests/playground/**
build
vite.config.ts.timestamp*
*.d.ts
*.gen.ts
-**/evalite-export
\ No newline at end of file
+**/evaluhealth-export
\ No newline at end of file
diff --git a/CLAUDE.md b/CLAUDE.md
index c4bab832..f705ef56 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -4,15 +4,15 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
## Overview
-Evalite is a TypeScript-native, local-first tool for testing LLM-powered apps built on Vitest. It allows developers to write evaluations (evals) as `.eval.ts` files that run like tests.
+Evaluhealth is a TypeScript-native, local-first tool for testing LLM-powered apps built on Vitest. It allows developers to write evaluations (evals) as `.eval.ts` files that run like tests.
## Configuration
-The primary configuration method is `evalite.config.ts`. While `vitest.config.ts` is still supported for backward compatibility, it is not documented and `evalite.config.ts` should be used for all configuration needs.
+The primary configuration method is `evaluhealth.config.ts`. While `vitest.config.ts` is still supported for backward compatibility, it is not documented and `evaluhealth.config.ts` should be used for all configuration needs.
## Development Commands
-**Development mode** (recommended for working on Evalite itself):
+**Development mode** (recommended for working on Evaluhealth itself):
```bash
pnpm run dev
@@ -20,8 +20,8 @@ pnpm run dev
This runs:
-- TypeScript type checker on `evalite` package
-- Tests in `evalite-tests` package
+- TypeScript type checker on `evaluhealth` package
+- Tests in `evaluhealth-tests` package
- Live reload for both packages
**Build all packages**:
@@ -30,7 +30,7 @@ This runs:
pnpm build
```
-This builds `evalite` package first, then `evalite-ui`, copying UI assets to `packages/evalite/dist/ui`.
+This builds `evaluhealth` package first, then `evaluhealth-ui`, copying UI assets to `packages/evaluhealth/dist/ui`.
**Run CI pipeline** (build, test, lint):
@@ -42,20 +42,20 @@ pnpm ci
```bash
pnpm run example
-# Or: cd packages/example && pnpm evalite watch
+# Or: cd packages/example && pnpm evaluhealth watch
```
**Run single package tests**:
```bash
-cd packages/evalite && pnpm test
-cd packages/evalite-tests && pnpm test
+cd packages/evaluhealth && pnpm test
+cd packages/evaluhealth-tests && pnpm test
```
**Lint a package**:
```bash
-cd packages/evalite && pnpm lint
+cd packages/evaluhealth && pnpm lint
```
## Working with pnpm Filters
@@ -67,64 +67,64 @@ When working on specific packages in this monorepo, **use pnpm's `--filter` flag
**Build a specific package**:
```bash
-pnpm --filter evalite build
-pnpm --filter evalite-ui build
+pnpm --filter evaluhealth build
+pnpm --filter evaluhealth-ui build
```
**Run tests for a specific package**:
```bash
-pnpm --filter evalite-tests test
+pnpm --filter evaluhealth-tests test
```
**Run dev mode for a specific package**:
```bash
-pnpm --filter evalite dev
-pnpm --filter evalite-ui dev
+pnpm --filter evaluhealth dev
+pnpm --filter evaluhealth-ui dev
```
**Lint a specific package**:
```bash
-pnpm --filter evalite lint
-pnpm --filter evalite-tests lint
+pnpm --filter evaluhealth lint
+pnpm --filter evaluhealth-tests lint
```
### Filter Patterns
pnpm supports several filter patterns:
-- `--filter evalite` - Run task for the `evalite` package only
-- `--filter evalite...` - Run task for `evalite` and all its dependencies
-- `--filter ...evalite` - Run task for `evalite` and all packages that depend on it
+- `--filter evaluhealth` - Run task for the `evaluhealth` package only
+- `--filter evaluhealth...` - Run task for `evaluhealth` and all its dependencies
+- `--filter ...evaluhealth` - Run task for `evaluhealth` and all packages that depend on it
- `--filter "./packages/*"` - Run task for all packages in the packages directory
-- `--filter "!evalite"` - Run task for all packages except `evalite`
+- `--filter "!evaluhealth"` - Run task for all packages except `evaluhealth`
### Examples for Common Workflows
-**Working on the main evalite package**:
+**Working on the main evaluhealth package**:
```bash
-# Build evalite and watch for changes
-pnpm --filter evalite dev
+# Build evaluhealth and watch for changes
+pnpm --filter evaluhealth dev
# Run tests after making changes
-pnpm --filter evalite test
+pnpm --filter evaluhealth test
```
**Working on the UI**:
```bash
-# Build evalite first, then start UI dev server
-pnpm run build:evalite && pnpm --filter evalite-ui dev
+# Build evaluhealth first, then start UI dev server
+pnpm run build:evaluhealth && pnpm --filter evaluhealth-ui dev
```
**Working on integration tests**:
```bash
-# Ensure evalite is built before running tests
-pnpm run build && pnpm --filter evalite-tests test
+# Ensure evaluhealth is built before running tests
+pnpm run build && pnpm --filter evaluhealth-tests test
```
### When to Use Filters
@@ -138,7 +138,7 @@ pnpm run build && pnpm --filter evalite-tests test
**Direct package commands are fine for**:
- Quick one-off commands (like `pnpm install`)
-- Running the evalite CLI itself (e.g., `cd packages/example && pnpm evalite watch`)
+- Running the evaluhealth CLI itself (e.g., `cd packages/example && pnpm evaluhealth watch`)
- When already in the package directory
## Architecture
@@ -147,21 +147,21 @@ pnpm run build && pnpm --filter evalite-tests test
This is a pnpm workspace:
-- **`packages/evalite`**: Main package that users install. Exports the `evalite()` function, CLI binary (`evalite`), server, database layer, and utilities. Built with TypeScript.
+- **`packages/evaluhealth`**: Main package that users install. Exports the `evaluhealth()` function, CLI binary (`evaluhealth`), server, database layer, and utilities. Built with TypeScript.
-- **`packages/evalite-core`**: Shared core utilities (currently appears to be deprecated or minimal)
+- **`packages/evaluhealth-core`**: Shared core utilities (currently appears to be deprecated or minimal)
-- **`packages/evalite-tests`**: Integration tests for evalite functionality
+- **`packages/evaluhealth-tests`**: Integration tests for evaluhealth functionality
- **`packages/example`**: Example eval files demonstrating usage patterns (e.g., `example.eval.ts`, `traces.eval.ts`)
-- **`apps/evalite-ui`**: React-based web UI that displays eval results. Built with Vite, TanStack Router, and Tailwind. Gets copied to `packages/evalite/dist/ui` during build via the `after-build` script.
+- **`apps/evaluhealth-ui`**: React-based web UI that displays eval results. Built with Vite, TanStack Router, and Tailwind. Gets copied to `packages/evaluhealth/dist/ui` during build via the `after-build` script.
-- **`apps/evalite-docs`**: Documentation site
+- **`apps/evaluhealth-docs`**: Documentation site
### Core Concepts
-**Eval files**: Files matching `*.eval.ts` (or `.eval.mts`) that contain `evalite()` calls. These define:
+**Eval files**: Files matching `*.eval.ts` (or `.eval.mts`) that contain `evaluhealth()` calls. These define:
- A dataset (via `data()` function returning input/expected pairs)
- A task (the LLM interaction to test)
@@ -170,37 +170,37 @@ This is a pnpm workspace:
**Execution flow**:
-1. The `evalite` CLI uses Vitest under the hood to discover and run `*.eval.ts` files
+1. The `evaluhealth` CLI uses Vitest under the hood to discover and run `*.eval.ts` files
2. Each eval creates a Vitest `describe` block with concurrent `it` tests for each data point
-3. Results are stored in a SQLite database (`evalite.db`)
+3. Results are stored in a SQLite database (`evaluhealth.db`)
4. A Fastify server serves the UI and provides WebSocket updates during runs
-5. Files (images, audio, etc.) are saved to `.evalite` directory
+5. Files (images, audio, etc.) are saved to `.evaluhealth` directory
**Key architecture points**:
- Uses Vitest's `inject("cwd")` to get the working directory
- Supports async iterables (streaming) from tasks via `executeTask()`
-- Files in input/output/expected are automatically detected and saved using `createEvaliteFileIfNeeded()`
+- Files in input/output/expected are automatically detected and saved using `createEvaluhealthFileIfNeeded()`
- Traces can be reported via `reportTraceLocalStorage` for nested LLM calls
-- Integrates with AI SDK via `evalite/ai-sdk` export (provides `traceAISDKModel()`)
+- Integrates with AI SDK via `evaluhealth/ai-sdk` export (provides `traceAISDKModel()`)
### Database Layer
-SQLite database (`evalite.db`) stores:
+SQLite database (`evaluhealth.db`) stores:
- Runs (full or partial)
- Evals (distinct eval names with metadata)
- Results (individual test case results with scores, traces, columns)
- Scores and traces are stored as JSON
-Key queries in `packages/evalite/src/db.ts`:
+Key queries in `packages/evaluhealth/src/db.ts`:
- `getEvals()`, `getResults()`, `getScores()`, `getTraces()`
- `getMostRecentRun()`, `getPreviousCompletedEval()`
### Server & UI
-The Fastify server in `packages/evalite/src/server.ts`:
+The Fastify server in `packages/evaluhealth/src/server.ts`:
- Serves the UI from `dist/ui/`
- Provides REST API at `/api/*` (menu-items, server-state, evals, results, etc.)
@@ -208,11 +208,11 @@ The Fastify server in `packages/evalite/src/server.ts`:
## Important Notes
-**Linking for local development**: If you need to test the global `evalite` command locally:
+**Linking for local development**: If you need to test the global `evaluhealth` command locally:
```bash
pnpm build
-cd packages/evalite && npm link
+cd packages/evaluhealth && npm link
```
**Node version**: Requires Node.js >= 22
@@ -235,7 +235,7 @@ The format of the file should be:
```md
---
-"evalite": patch
+"evaluhealth": patch
---
Description of the change.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 9ebaa921..7f5aa203 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,4 +1,4 @@
-# Contributing to Evalite
+# Contributing to Evaluhealth
## Development Commands
@@ -7,25 +7,25 @@ This monorepo uses pnpm workspaces (no Turbo). All scripts use `pnpm --filter` t
**Available scripts:**
```bash
-pnpm run dev # Build evalite + UI, then run tsc -w on evalite + vitest on evalite-tests
-pnpm run example # Build, then run evalite watch + UI dev server (parallel)
-pnpm run test # Build, then run tests on evalite + evalite-tests
-pnpm run build # Build evalite, then evalite-ui
+pnpm run dev # Build evaluhealth + UI, then run tsc -w on evaluhealth + vitest on evaluhealth-tests
+pnpm run example # Build, then run evaluhealth watch + UI dev server (parallel)
+pnpm run test # Build, then run tests on evaluhealth + evaluhealth-tests
+pnpm run build # Build evaluhealth, then evaluhealth-ui
pnpm run ci # Full CI: build, test, lint, check-format
```
**Individual package scripts:**
```bash
-pnpm build:evalite # Build evalite package only
-pnpm build:evalite-ui # Build UI and copy to evalite/dist/ui
+pnpm build:evaluhealth # Build evaluhealth package only
+pnpm build:evaluhealth-ui # Build UI and copy to evaluhealth/dist/ui
```
**Setup:**
1. Create `.env` in `packages/example` with `OPENAI_API_KEY=your-key`
2. Run `pnpm install`
-3. For global `evalite` command: `pnpm build && cd packages/evalite && npm link`
+3. For global `evaluhealth` command: `pnpm build && cd packages/evaluhealth && npm link`
## Styling Guidelines
diff --git a/apps/evalite-docs/src/assets/logo-dark.svg b/apps/evalite-docs/src/assets/logo-dark.svg
deleted file mode 100644
index d1aae00e..00000000
--- a/apps/evalite-docs/src/assets/logo-dark.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/evalite-docs/src/assets/logo-light.svg b/apps/evalite-docs/src/assets/logo-light.svg
deleted file mode 100644
index f48a55bd..00000000
--- a/apps/evalite-docs/src/assets/logo-light.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/evalite-ui/README.md b/apps/evalite-ui/README.md
deleted file mode 100644
index e8f05ecf..00000000
--- a/apps/evalite-ui/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Evalite UI
-
-This is the UI for Evalite. It is built with React, Vite, Tanstack Router, and Tailwind CSS.
-
-## Development
-
-From the root of the monorepo, run:
-
-```bash
-pnpm run dev
-```
-
-## Deployment
-
-The UI is copied into the `evalite` package during the `after-build` script in the root `package.json`.
diff --git a/apps/evalite-docs/.gitignore b/apps/evaluhealth-docs/.gitignore
similarity index 100%
rename from apps/evalite-docs/.gitignore
rename to apps/evaluhealth-docs/.gitignore
diff --git a/apps/evalite-docs/CLAUDE.md b/apps/evaluhealth-docs/CLAUDE.md
similarity index 100%
rename from apps/evalite-docs/CLAUDE.md
rename to apps/evaluhealth-docs/CLAUDE.md
diff --git a/apps/evalite-docs/README.md b/apps/evaluhealth-docs/README.md
similarity index 100%
rename from apps/evalite-docs/README.md
rename to apps/evaluhealth-docs/README.md
diff --git a/apps/evalite-docs/astro.config.mts b/apps/evaluhealth-docs/astro.config.mts
similarity index 87%
rename from apps/evalite-docs/astro.config.mts
rename to apps/evaluhealth-docs/astro.config.mts
index 1ce51671..5dfbe76e 100644
--- a/apps/evalite-docs/astro.config.mts
+++ b/apps/evaluhealth-docs/astro.config.mts
@@ -5,28 +5,28 @@ import starlight from "@astrojs/starlight";
export default defineConfig({
integrations: [
starlight({
- title: "Evalite",
+ title: "Evaluhealth",
favicon: "/favicon.ico",
components: {
Banner: "./src/components/Banner.astro",
},
editLink: {
baseUrl:
- "https://github.com/mattpocock/evalite/edit/main/apps/evalite-docs",
+ "https://github.com/kernelius-hq/evaluhealth/edit/main/apps/evaluhealth-docs",
},
head: [
{
tag: "meta",
attrs: {
property: "og:url",
- content: "https://evalite.dev",
+ content: "https://evalu.health",
},
},
{
tag: "meta",
attrs: {
property: "og:image",
- content: "https://evalite.dev/og-image.jpg",
+ content: "https://evalu.health/og-image.jpg",
},
},
{
@@ -47,7 +47,7 @@ export default defineConfig({
tag: "meta",
attrs: {
property: "og:image:alt",
- content: "Evalite Logo",
+ content: "Evaluhealth Logo",
},
},
{
@@ -61,7 +61,7 @@ export default defineConfig({
tag: "meta",
attrs: {
name: "twitter:image",
- content: "https://evalite.dev/og-image.jpg",
+ content: "https://evalu.health/og-image.jpg",
},
},
{
@@ -82,8 +82,8 @@ export default defineConfig({
},
],
social: {
- github: "https://github.com/mattpocock/evalite",
- discord: "https://mattpocock.com/ai-discord",
+ github: "https://github.com/kernelius-hq/evaluhealth",
+ discord: "https://kernelius.com/discord",
},
logo: {
light: "./src/assets/logo-light.svg",
@@ -94,8 +94,8 @@ export default defineConfig({
label: "Getting Started",
items: [
{
- label: "What Is Evalite?",
- slug: "what-is-evalite",
+ label: "What Is Evaluhealth?",
+ slug: "what-is-evaluhealth",
},
{
label: "Quickstart",
diff --git a/apps/evalite-docs/package.json b/apps/evaluhealth-docs/package.json
similarity index 91%
rename from apps/evalite-docs/package.json
rename to apps/evaluhealth-docs/package.json
index 448c8355..86ec77f9 100644
--- a/apps/evalite-docs/package.json
+++ b/apps/evaluhealth-docs/package.json
@@ -1,5 +1,5 @@
{
- "name": "evalite-docs",
+ "name": "evaluhealth-docs",
"type": "module",
"private": true,
"version": "0.0.1",
diff --git a/apps/evalite-docs/public/favicon.ico b/apps/evaluhealth-docs/public/favicon.ico
similarity index 100%
rename from apps/evalite-docs/public/favicon.ico
rename to apps/evaluhealth-docs/public/favicon.ico
diff --git a/apps/evalite-docs/public/hero.webp b/apps/evaluhealth-docs/public/hero.webp
similarity index 100%
rename from apps/evalite-docs/public/hero.webp
rename to apps/evaluhealth-docs/public/hero.webp
diff --git a/apps/evalite-docs/public/og-image.jpg b/apps/evaluhealth-docs/public/og-image.jpg
similarity index 100%
rename from apps/evalite-docs/public/og-image.jpg
rename to apps/evaluhealth-docs/public/og-image.jpg
diff --git a/apps/evalite-docs/src/assets/houston.webp b/apps/evaluhealth-docs/src/assets/houston.webp
similarity index 100%
rename from apps/evalite-docs/src/assets/houston.webp
rename to apps/evaluhealth-docs/src/assets/houston.webp
diff --git a/apps/evaluhealth-docs/src/assets/logo-dark.svg b/apps/evaluhealth-docs/src/assets/logo-dark.svg
new file mode 100644
index 00000000..56bf30e5
--- /dev/null
+++ b/apps/evaluhealth-docs/src/assets/logo-dark.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/apps/evaluhealth-docs/src/assets/logo-light.svg b/apps/evaluhealth-docs/src/assets/logo-light.svg
new file mode 100644
index 00000000..4e32164d
--- /dev/null
+++ b/apps/evaluhealth-docs/src/assets/logo-light.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/apps/evalite-docs/src/components/Banner.astro b/apps/evaluhealth-docs/src/components/Banner.astro
similarity index 78%
rename from apps/evalite-docs/src/components/Banner.astro
rename to apps/evaluhealth-docs/src/components/Banner.astro
index 7a86e3e8..41ed8de8 100644
--- a/apps/evalite-docs/src/components/Banner.astro
+++ b/apps/evaluhealth-docs/src/components/Banner.astro
@@ -7,11 +7,11 @@ import type { Props } from "@astrojs/starlight/props";
role="banner"
aria-label="v1 beta announcement"
>
- The beta version of Evalite v1 is now available! Install with pnpm add evalite@betapnpm add evaluhealth@beta • View beta docs →
diff --git a/apps/evalite-docs/src/content/config.ts b/apps/evaluhealth-docs/src/content/config.ts
similarity index 100%
rename from apps/evalite-docs/src/content/config.ts
rename to apps/evaluhealth-docs/src/content/config.ts
diff --git a/apps/evalite-docs/src/content/docs/examples/ai-sdk.md b/apps/evaluhealth-docs/src/content/docs/examples/ai-sdk.md
similarity index 85%
rename from apps/evalite-docs/src/content/docs/examples/ai-sdk.md
rename to apps/evaluhealth-docs/src/content/docs/examples/ai-sdk.md
index 215e5ea0..9de3120a 100644
--- a/apps/evalite-docs/src/content/docs/examples/ai-sdk.md
+++ b/apps/evaluhealth-docs/src/content/docs/examples/ai-sdk.md
@@ -16,10 +16,10 @@ You can use the `traceAISDKModel` function to trace the calls to the AI SDK:
import { openai } from "@ai-sdk/openai";
import { streamText } from "ai";
import { Factuality, Levenshtein } from "autoevals";
-import { evalite } from "evalite";
-import { traceAISDKModel } from "evalite/ai-sdk";
+import { evaluhealth } from "evaluhealth";
+import { traceAISDKModel } from "evaluhealth/ai-sdk";
-evalite("Test Capitals", {
+evaluhealth("Test Capitals", {
data: async () => [
{
input: `What's the capital of France?`,
@@ -50,9 +50,9 @@ evalite("Test Capitals", {
## Testing Whole Conversations
-You can also pass messages to the `input` property of the eval. To get autocomplete, you can pass the `CoreMessage` type to the `evalite` function as a type argument.
+You can also pass messages to the `input` property of the eval. To get autocomplete, you can pass the `CoreMessage` type to the `evaluhealth` function as a type argument.
-The three type parameters for `evalite` are:
+The three type parameters for `evaluhealth` are:
- The type of the input
- The type of the output
@@ -64,10 +64,10 @@ The three type parameters for `evalite` are:
import { openai } from "@ai-sdk/openai";
import { streamText, type CoreMessage } from "ai";
import { Levenshtein } from "autoevals";
-import { evalite } from "evalite";
-import { traceAISDKModel } from "evalite/ai-sdk";
+import { evaluhealth } from "evaluhealth";
+import { traceAISDKModel } from "evaluhealth/ai-sdk";
-evalite("Test Capitals", {
+evaluhealth("Test Capitals", {
data: async () => [
{
input: [
diff --git a/apps/evalite-docs/src/content/docs/guides/ci.mdx b/apps/evaluhealth-docs/src/content/docs/guides/ci.mdx
similarity index 76%
rename from apps/evalite-docs/src/content/docs/guides/ci.mdx
rename to apps/evaluhealth-docs/src/content/docs/guides/ci.mdx
index a0ab56ec..4e6f1341 100644
--- a/apps/evalite-docs/src/content/docs/guides/ci.mdx
+++ b/apps/evaluhealth-docs/src/content/docs/guides/ci.mdx
@@ -2,7 +2,7 @@
title: CI/CD
---
-Evalite integrates seamlessly into CI/CD pipelines, allowing you to validate LLM-powered features as part of your automated testing workflow.
+Evaluhealth integrates seamlessly into CI/CD pipelines, allowing you to validate LLM-powered features as part of your automated testing workflow.
## Static UI Export
@@ -11,29 +11,29 @@ Export eval results as a static HTML bundle for viewing in CI artifacts without
### Basic Usage
```bash
-evalite export
+evaluhealth export
```
-Exports latest full run to `./evalite-export` directory.
+Exports latest full run to `./evaluhealth-export` directory.
### Options
**Custom output directory:**
```bash
-evalite export --output=./my-export
+evaluhealth export --output=./my-export
```
**Export specific run:**
```bash
-evalite export --run-id=123
+evaluhealth export --run-id=123
```
**Custom base path for non-root hosting:**
```bash
-evalite export --basePath=/evals-123
+evaluhealth export --basePath=/evals-123
```
Use when hosting at subpaths (e.g., S3/CloudFront with path-based URLs). The base path must start with `/`.
@@ -52,7 +52,7 @@ Generated bundle contains:
**Local preview:**
```bash
-npx serve -s ./evalite-export
+npx serve -s ./evaluhealth-export
```
**Static hosting:** Upload to artifact.ci, S3, GitHub Pages, etc.
@@ -81,15 +81,15 @@ jobs:
- name: Run evaluations
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
- run: npx evalite --threshold=70
+ run: npx evaluhealth --threshold=70
- name: Export UI
- run: npx evalite export --output=./ui-export
+ run: npx evaluhealth export --output=./ui-export
- name: Upload static UI
uses: actions/upload-artifact@v3
with:
- name: evalite-ui
+ name: evaluhealth-ui
path: ui-export
```
@@ -103,7 +103,7 @@ Deploy to S3/CloudFront with unique paths per run:
- name: Export UI with base path
run: |
RUN_PATH="/evals-${{ github.run_id }}"
- npx evalite export --basePath="$RUN_PATH" --output=./ui-export
+ npx evaluhealth export --basePath="$RUN_PATH" --output=./ui-export
- name: Upload to S3
run: |
@@ -115,11 +115,11 @@ To test locally with base path:
```bash
# Export with base path
-evalite export --basePath=/evals-123
+evaluhealth export --basePath=/evals-123
# Create matching directory structure
mkdir -p /tmp/test/evals-123
-cp -r evalite-export/* /tmp/test/evals-123/
+cp -r evaluhealth-export/* /tmp/test/evals-123/
# Serve and visit http://localhost:3000/evals-123
npx serve /tmp/test
@@ -127,10 +127,10 @@ npx serve /tmp/test
## Running on CI
-Run Evalite in run-once mode (default):
+Run Evaluhealth in run-once mode (default):
```bash
-evalite
+evaluhealth
```
Executes all evals and exits.
@@ -140,7 +140,7 @@ Executes all evals and exits.
Fail CI builds if scores fall below threshold:
```bash
-evalite --threshold=70
+evaluhealth --threshold=70
```
Exits with code 1 if average score < 70.
@@ -150,7 +150,7 @@ Exits with code 1 if average score < 70.
For programmatic analysis, export raw JSON:
```bash
-evalite --outputPath=./results.json
+evaluhealth --outputPath=./results.json
```
### Export Format
@@ -158,9 +158,9 @@ evalite --outputPath=./results.json
Typed hierarchical structure:
```typescript
-import type { Evalite } from "evalite";
+import type { Evaluhealth } from "evaluhealth";
-type Output = Evalite.Exported.Output;
+type Output = Evaluhealth.Exported.Output;
```
Contains:
diff --git a/apps/evalite-docs/src/content/docs/guides/cli.mdx b/apps/evaluhealth-docs/src/content/docs/guides/cli.mdx
similarity index 70%
rename from apps/evalite-docs/src/content/docs/guides/cli.mdx
rename to apps/evaluhealth-docs/src/content/docs/guides/cli.mdx
index b581c2a4..1cae6770 100644
--- a/apps/evalite-docs/src/content/docs/guides/cli.mdx
+++ b/apps/evaluhealth-docs/src/content/docs/guides/cli.mdx
@@ -4,10 +4,10 @@ title: CLI
## Watch Mode
-You can run Evalite in watch mode by running `evalite watch`:
+You can run Evaluhealth in watch mode by running `evaluhealth watch`:
```bash
-evalite watch
+evaluhealth watch
```
This will watch for changes to your `.eval.ts` files and re-run the evals when they change.
@@ -21,7 +21,7 @@ This will watch for changes to your `.eval.ts` files and re-run the evals when t
When debugging with `console.log`, the detailed table output can make it harder to see your logs. You can hide it with `--hideTable`:
```bash
-evalite watch --hideTable
+evaluhealth watch --hideTable
```
This keeps the score summary but removes the detailed results table from the CLI output.
@@ -31,38 +31,38 @@ This keeps the score summary but removes the detailed results table from the CLI
You can run evals once and serve the UI without re-running on file changes:
```bash
-evalite serve
+evaluhealth serve
```
This runs your evals once and keeps the UI server running at `http://localhost:3006`. Unlike watch mode, tests won't re-run when files change.
Since evals can take a while to run, this can be a useful alternative to watch mode.
-To re-run evals after making changes, restart `evalite serve`.
+To re-run evals after making changes, restart `evaluhealth serve`.
## Running Specific Files
You can run specific files by passing them as arguments:
```bash
-evalite my-eval.eval.ts
+evaluhealth my-eval.eval.ts
```
This also works for `watch` and `serve` modes:
```bash
-evalite watch my-eval.eval.ts
-evalite serve my-eval.eval.ts
+evaluhealth watch my-eval.eval.ts
+evaluhealth serve my-eval.eval.ts
```
## Threshold
-You can tell Evalite that your evals must pass a specific score by passing `--threshold`:
+You can tell Evaluhealth that your evals must pass a specific score by passing `--threshold`:
```bash
-evalite --threshold=50 # Score must be greater than or equal to 50
+evaluhealth --threshold=50 # Score must be greater than or equal to 50
-evalite watch --threshold=70 # Also works in watch mode
+evaluhealth watch --threshold=70 # Also works in watch mode
```
This is useful for running on CI. If the score threshold is not met, it will fail the process.
@@ -72,10 +72,10 @@ This is useful for running on CI. If the score threshold is not met, it will fai
Export eval results as a static HTML bundle:
```bash
-evalite export
+evaluhealth export
```
-This exports the latest run to `./evalite-export` by default.
+This exports the latest run to `./evaluhealth-export` by default.
### Options
@@ -84,7 +84,7 @@ This exports the latest run to `./evalite-export` by default.
- `--basePath` - Base path for non-root hosting (must start with `/`)
```bash
-evalite export --basePath=/evals-123 --output=./my-export
+evaluhealth export --basePath=/evals-123 --output=./my-export
```
See the [CI/CD guide](/guides/ci) for full documentation on exporting and viewing static UI bundles.
diff --git a/apps/evalite-docs/src/content/docs/guides/configuration.mdx b/apps/evaluhealth-docs/src/content/docs/guides/configuration.mdx
similarity index 64%
rename from apps/evalite-docs/src/content/docs/guides/configuration.mdx
rename to apps/evaluhealth-docs/src/content/docs/guides/configuration.mdx
index 2c4ca11f..07f956f7 100644
--- a/apps/evalite-docs/src/content/docs/guides/configuration.mdx
+++ b/apps/evaluhealth-docs/src/content/docs/guides/configuration.mdx
@@ -4,15 +4,15 @@ title: Configuration
import { Steps } from "@astrojs/starlight/components";
-Since **Evalite is based on Vitest**, you can configure eval behavior using Vitest's configuration options. Each data point in your eval becomes a separate Vitest test case, which means all Vitest configuration options work with Evalite.
+Since **Evaluhealth is based on Vitest**, you can configure eval behavior using Vitest's configuration options. Each data point in your eval becomes a separate Vitest test case, which means all Vitest configuration options work with Evaluhealth.
-## Evalite Configuration
+## Evaluhealth Configuration
-You can configure Evalite-specific options using `evalite.config.ts`:
+You can configure Evaluhealth-specific options using `evaluhealth.config.ts`:
```ts
-// evalite.config.ts
-import { defineConfig } from "evalite/config";
+// evaluhealth.config.ts
+import { defineConfig } from "evaluhealth/config";
export default defineConfig({
testTimeout: 60000, // 60 seconds
@@ -31,7 +31,7 @@ export default defineConfig({
- **`maxConcurrency`**: Maximum number of test cases to run in parallel. Default is 5.
- **`scoreThreshold`**: Minimum average score (0-100). Process exits with code 1 if average score falls below this threshold.
- **`hideTable`**: Hide the results table in terminal output. Default is false.
-- **`server.port`**: Port for the Evalite UI server. Default is 3006.
+- **`server.port`**: Port for the Evaluhealth UI server. Default is 3006.
- **`trialCount`**: Number of times to run each test case. Default is 1. Useful for measuring variance in non-deterministic evaluations.
- **`setupFiles`**: Array of file paths to run before tests (e.g., for loading environment variables).
@@ -41,11 +41,11 @@ export default defineConfig({
Control how many test cases run in parallel. Default is 5.
-Configure in `evalite.config.ts`:
+Configure in `evaluhealth.config.ts`:
```ts
-// evalite.config.ts
-import { defineConfig } from "evalite/config";
+// evaluhealth.config.ts
+import { defineConfig } from "evaluhealth/config";
export default defineConfig({
maxConcurrency: 100, // Run up to 100 tests in parallel
@@ -56,13 +56,13 @@ This is useful for optimizing performance and managing API rate limits.
### `testTimeout`
-Set the maximum time (in milliseconds) a test can run before timing out. Default is 30000ms in Evalite.
+Set the maximum time (in milliseconds) a test can run before timing out. Default is 30000ms in Evaluhealth.
-Configure in `evalite.config.ts`:
+Configure in `evaluhealth.config.ts`:
```ts
-// evalite.config.ts
-import { defineConfig } from "evalite/config";
+// evaluhealth.config.ts
+import { defineConfig } from "evaluhealth/config";
export default defineConfig({
testTimeout: 60000, // 60 seconds
@@ -73,21 +73,21 @@ export default defineConfig({
Run each test case multiple times to measure variance in non-deterministic evaluations.
-Configure globally in `evalite.config.ts`:
+Configure globally in `evaluhealth.config.ts`:
```ts
-// evalite.config.ts
-import { defineConfig } from "evalite/config";
+// evaluhealth.config.ts
+import { defineConfig } from "evaluhealth/config";
export default defineConfig({
trialCount: 3, // Run each test case 3 times
});
```
-Or override per-eval in the `evalite()` call:
+Or override per-eval in the `evaluhealth()` call:
```ts
-evalite("Non-deterministic eval", {
+evaluhealth("Non-deterministic eval", {
data: () => [{ input: "Alice", expected: "Alice" }],
task: async (input) => {
// Non-deterministic task
@@ -100,4 +100,4 @@ evalite("Non-deterministic eval", {
});
```
-Note: Per-eval `trialCount` overrides `evalite.config.ts` if both are present.
+Note: Per-eval `trialCount` overrides `evaluhealth.config.ts` if both are present.
diff --git a/apps/evalite-docs/src/content/docs/guides/customizing-the-ui.mdx b/apps/evaluhealth-docs/src/content/docs/guides/customizing-the-ui.mdx
similarity index 88%
rename from apps/evalite-docs/src/content/docs/guides/customizing-the-ui.mdx
rename to apps/evaluhealth-docs/src/content/docs/guides/customizing-the-ui.mdx
index 78ad14c6..a1a33bb0 100644
--- a/apps/evalite-docs/src/content/docs/guides/customizing-the-ui.mdx
+++ b/apps/evaluhealth-docs/src/content/docs/guides/customizing-the-ui.mdx
@@ -6,18 +6,18 @@ import { Aside } from "@astrojs/starlight/components";
## Creating Custom Columns
-By default, the Evalite UI renders the input, expected and output columns:
+By default, the Evaluhealth UI renders the input, expected and output columns:
| Input | Expected | Output |
| ------------------------ | --------------------------- | ---------------- |
| `input` passed to `data` | `expected` passed to `data` | Result of `task` |
-You can customize the columns shown by the UI by passing a `columns` attribute to the `evalite` function:
+You can customize the columns shown by the UI by passing a `columns` attribute to the `evaluhealth` function:
```ts
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
-evalite("My Eval", {
+evaluhealth("My Eval", {
data: [{ input: { a: 1, b: 2, c: 3, theOnlyPropertyWeWantToShow: "Hello" } }],
task: async (input) => {
return input.theOnlyPropertyWeWantToShow + " World!";
@@ -49,10 +49,10 @@ This will show two columns:
The `columns` function also receives the computed `scores` and `traces` arrays, allowing you to display scorer results and trace information:
```ts
-import { evalite } from "evalite";
-import { reportTrace } from "evalite/traces";
+import { evaluhealth } from "evaluhealth";
+import { reportTrace } from "evaluhealth/traces";
-evalite("My Eval", {
+evaluhealth("My Eval", {
data: [{ input: "test", expected: "TEST" }],
task: async (input) => {
reportTrace({
diff --git a/apps/evalite-docs/src/content/docs/guides/environment-variables.mdx b/apps/evaluhealth-docs/src/content/docs/guides/environment-variables.mdx
similarity index 85%
rename from apps/evalite-docs/src/content/docs/guides/environment-variables.mdx
rename to apps/evaluhealth-docs/src/content/docs/guides/environment-variables.mdx
index 24e15b49..75c5f899 100644
--- a/apps/evalite-docs/src/content/docs/guides/environment-variables.mdx
+++ b/apps/evaluhealth-docs/src/content/docs/guides/environment-variables.mdx
@@ -30,12 +30,12 @@ To call your LLM from a third-party service, you'll likely need some environment
pnpm add -D dotenv
```
-4. Add an `evalite.config.ts` file:
+4. Add an `evaluhealth.config.ts` file:
```ts
- // evalite.config.ts
+ // evaluhealth.config.ts
- import { defineConfig } from "evalite/config";
+ import { defineConfig } from "evaluhealth/config";
export default defineConfig({
setupFiles: ["dotenv/config"],
diff --git a/apps/evalite-docs/src/content/docs/guides/multi-modal.mdx b/apps/evaluhealth-docs/src/content/docs/guides/multi-modal.mdx
similarity index 70%
rename from apps/evalite-docs/src/content/docs/guides/multi-modal.mdx
rename to apps/evaluhealth-docs/src/content/docs/guides/multi-modal.mdx
index 8f747424..ae3a5d1b 100644
--- a/apps/evalite-docs/src/content/docs/guides/multi-modal.mdx
+++ b/apps/evaluhealth-docs/src/content/docs/guides/multi-modal.mdx
@@ -4,11 +4,11 @@ title: Multi-Modal
import { Aside } from "@astrojs/starlight/components";
-Evalite can handle not just text responses, but media like images, audio, and video.
+Evaluhealth can handle not just text responses, but media like images, audio, and video.
## Files In Memory
-A common way to work with media in Evalite is to read it into memory.
+A common way to work with media in Evaluhealth is to read it into memory.
### What Are Files In Memory?
@@ -36,15 +36,15 @@ It doesn't matter what the file extension is - when you read it into memory, it'
just refer to them as `Uint8Array` objects.
-### Evalite And Files In Memory
+### Evaluhealth And Files In Memory
-Evalite can automatically detect `Uint8Array` objects in your evals and handle them for you.
+Evaluhealth can automatically detect `Uint8Array` objects in your evals and handle them for you.
```ts
-import { evalite } from "evalite";
-import { reportTrace } from "evalite/traces";
+import { evaluhealth } from "evaluhealth";
+import { reportTrace } from "evaluhealth/traces";
-evalite("My Eval", {
+evaluhealth("My Eval", {
data: [
{
// 1. In inputs...
@@ -76,21 +76,21 @@ evalite("My Eval", {
});
```
-When Evalite finds a `Uint8Array`, it saves the file to a local cache, in `./node_modules/.evalite/files`.
+When Evaluhealth finds a `Uint8Array`, it saves the file to a local cache, in `./node_modules/.evaluhealth/files`.
Then in the UI, it'll reference that local file.
## Files On Disk
-If you're working with files on disk, you can use the `EvaliteFile.fromPath` method to reference them:
+If you're working with files on disk, you can use the `EvaluhealthFile.fromPath` method to reference them:
```ts
-import { EvaliteFile, evalite } from "evalite";
+import { EvaluhealthFile, evaluhealth } from "evaluhealth";
-evalite("My Eval", {
+evaluhealth("My Eval", {
data: [
{
- input: EvaliteFile.fromPath("path/to/file.jpg"),
+ input: EvaluhealthFile.fromPath("path/to/file.jpg"),
},
],
task: async (input) => {
diff --git a/apps/evalite-docs/src/content/docs/guides/running-programmatically.mdx b/apps/evaluhealth-docs/src/content/docs/guides/running-programmatically.mdx
similarity index 76%
rename from apps/evalite-docs/src/content/docs/guides/running-programmatically.mdx
rename to apps/evaluhealth-docs/src/content/docs/guides/running-programmatically.mdx
index 53252ea1..7371654b 100644
--- a/apps/evalite-docs/src/content/docs/guides/running-programmatically.mdx
+++ b/apps/evaluhealth-docs/src/content/docs/guides/running-programmatically.mdx
@@ -2,16 +2,16 @@
title: Running Programmatically
---
-You can run Evalite programmatically using the Node API. This is useful when you want to integrate Evalite into your own scripts, CI/CD pipelines, or custom tooling.
+You can run Evaluhealth programmatically using the Node API. This is useful when you want to integrate Evaluhealth into your own scripts, CI/CD pipelines, or custom tooling.
## Basic Usage
-Import the `runEvalite` function from `evalite/runner`:
+Import the `runEvaluhealth` function from `evaluhealth/runner`:
```typescript
-import { runEvalite } from "evalite/runner";
+import { runEvaluhealth } from "evaluhealth/runner";
-await runEvalite({
+await runEvaluhealth({
mode: "run-once-and-exit",
});
```
@@ -25,17 +25,17 @@ That's it! The `path` and `cwd` parameters are optional and default to running a
This mode runs all evals once and exits. It's ideal for CI/CD pipelines:
```typescript
-await runEvalite({
+await runEvaluhealth({
mode: "run-once-and-exit",
});
```
### Watch Mode
-This mode watches for file changes and re-runs evals automatically. It also starts the Evalite UI server:
+This mode watches for file changes and re-runs evals automatically. It also starts the Evaluhealth UI server:
```typescript
-await runEvalite({
+await runEvaluhealth({
mode: "watch-for-file-changes",
});
```
@@ -51,7 +51,7 @@ await runEvalite({
Optional path filter to run specific eval files. Defaults to `undefined` (runs all evals):
```typescript
-await runEvalite({
+await runEvaluhealth({
path: "my-eval.eval.ts",
mode: "run-once-and-exit",
});
@@ -62,7 +62,7 @@ await runEvalite({
The working directory to run evals from. Defaults to `process.cwd()`:
```typescript
-await runEvalite({
+await runEvaluhealth({
cwd: "/path/to/my/project",
mode: "run-once-and-exit",
});
@@ -73,7 +73,7 @@ await runEvalite({
Set a minimum score threshold (0-100). If the average score falls below this threshold, the process will exit with a non-zero exit code:
```typescript
-await runEvalite({
+await runEvaluhealth({
mode: "run-once-and-exit",
scoreThreshold: 80, // Fail if score is below 80
});
@@ -86,7 +86,7 @@ This is particularly useful for CI/CD pipelines where you want to fail the build
Export the results to a JSON file after the run completes:
```typescript
-await runEvalite({
+await runEvaluhealth({
mode: "run-once-and-exit",
outputPath: "./results.json",
});
@@ -99,14 +99,14 @@ The exported JSON file contains the complete run data including all evals, resul
Here's a complete example that combines multiple options:
```typescript
-import { runEvalite } from "evalite/runner";
+import { runEvaluhealth } from "evaluhealth/runner";
async function runEvals() {
try {
- await runEvalite({
+ await runEvaluhealth({
mode: "run-once-and-exit",
scoreThreshold: 75, // Fail if average score < 75
- outputPath: "./evalite-results.json", // Export results
+ outputPath: "./evaluhealth-results.json", // Export results
});
console.log("All evals passed!");
} catch (error) {
diff --git a/apps/evalite-docs/src/content/docs/guides/scorers.mdx b/apps/evaluhealth-docs/src/content/docs/guides/scorers.mdx
similarity index 93%
rename from apps/evalite-docs/src/content/docs/guides/scorers.mdx
rename to apps/evaluhealth-docs/src/content/docs/guides/scorers.mdx
index 5ff16b80..806a2b81 100644
--- a/apps/evalite-docs/src/content/docs/guides/scorers.mdx
+++ b/apps/evaluhealth-docs/src/content/docs/guides/scorers.mdx
@@ -13,9 +13,9 @@ Scorers are used to score the output of your LLM call.
If you don't need your scorer to be reusable, you can define it inline.
```ts
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
-evalite("My Eval", {
+evaluhealth("My Eval", {
data: [{ input: "Hello" }],
task: async (input) => {
return input + " World!";
@@ -37,7 +37,7 @@ evalite("My Eval", {
If you have a scorer you want to use across multiple files, you can use `createScorer` to create a reusable scorer.
```ts
-import { createScorer } from "evalite";
+import { createScorer } from "evaluhealth";
const containsParis = createScorer({
name: "Contains Paris",
@@ -47,7 +47,7 @@ const containsParis = createScorer({
},
});
-evalite("My Eval", {
+evaluhealth("My Eval", {
data: [{ input: "Hello" }],
task: async (input) => {
return input + " World!";
@@ -56,14 +56,14 @@ evalite("My Eval", {
});
```
-The `name` and `description` of the scorer will be displayed in the Evalite UI.
+The `name` and `description` of the scorer will be displayed in the Evaluhealth UI.
## Score Properties
The `score` function receives three properties on the object passed:
```ts
-import { createScorer } from "evalite";
+import { createScorer } from "evaluhealth";
const containsParis = createScorer({
name: "Contains Paris",
@@ -80,7 +80,7 @@ const containsParis = createScorer({
These are typed using the three type arguments passed to `createScorer`:
```ts
-import { createScorer } from "evalite";
+import { createScorer } from "evaluhealth";
const containsParis = createScorer<
string, // Type of 'input'
@@ -103,7 +103,7 @@ If `expected` is omitted, it will be inferred from the type of `output`.
You can provide metadata along with your custom scorer:
```ts
-import { createScorer } from "evalite";
+import { createScorer } from "evaluhealth";
const containsParis = createScorer({
name: "Contains Paris",
@@ -119,7 +119,7 @@ const containsParis = createScorer({
});
```
-This will be visible along with the score in the Evalite UI.
+This will be visible along with the score in the Evaluhealth UI.
@@ -136,7 +136,7 @@ We're looking to improve this feature with a first-class guide in the future.
```ts
import { openai } from "@ai-sdk/openai";
import { generateObject } from "ai";
-import { createScorer } from "evalite";
+import { createScorer } from "evaluhealth";
import { z } from "zod";
/**
@@ -223,7 +223,7 @@ const checkFactuality = async (opts: {
* 2. The expected output is the ground truth answer to the question.
* 3. The output is the text to be evaluated.
*/
-evalite("Factuality", {
+evaluhealth("Factuality", {
data: [
{
// The question
diff --git a/apps/evalite-docs/src/content/docs/guides/skipping.mdx b/apps/evaluhealth-docs/src/content/docs/guides/skipping.mdx
similarity index 82%
rename from apps/evalite-docs/src/content/docs/guides/skipping.mdx
rename to apps/evaluhealth-docs/src/content/docs/guides/skipping.mdx
index a443da01..c1a75dc3 100644
--- a/apps/evalite-docs/src/content/docs/guides/skipping.mdx
+++ b/apps/evaluhealth-docs/src/content/docs/guides/skipping.mdx
@@ -4,10 +4,10 @@ title: Skipping Evals
## Skipping Entire Evals
-You can use `evalite.skip()` to skip an entire eval without running it.
+You can use `evaluhealth.skip()` to skip an entire eval without running it.
```ts
-evalite.skip("My Eval", {
+evaluhealth.skip("My Eval", {
data: () => [],
task: () => {},
});
@@ -20,7 +20,7 @@ This is useful when you want to temporarily disable an eval during development o
You can use the `only` flag on data entries to focus on specific inputs during development.
```ts
-evalite("My Eval", {
+evaluhealth("My Eval", {
data: () => [
{ input: "test1", expected: "output1" },
{ input: "test2", expected: "output2", only: true },
diff --git a/apps/evalite-docs/src/content/docs/guides/streams.md b/apps/evaluhealth-docs/src/content/docs/guides/streams.md
similarity index 63%
rename from apps/evalite-docs/src/content/docs/guides/streams.md
rename to apps/evaluhealth-docs/src/content/docs/guides/streams.md
index ce5fa063..c3edb6e0 100644
--- a/apps/evalite-docs/src/content/docs/guides/streams.md
+++ b/apps/evaluhealth-docs/src/content/docs/guides/streams.md
@@ -2,15 +2,15 @@
title: Streams
---
-You can handle streams in Evalite by returning any async iterable (including a `ReadableStream`) from your task. This means you can test functions like the AI SDK `streamText` function easily:
+You can handle streams in Evaluhealth by returning any async iterable (including a `ReadableStream`) from your task. This means you can test functions like the AI SDK `streamText` function easily:
```ts
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { streamText } from "ai";
import { openai } from "@ai-sdk/openai";
import { Factuality } from "autoevals";
-evalite("My Eval", {
+evaluhealth("My Eval", {
data: [{ input: "What is the capital of France?", expected: "Paris" }],
task: async (input) => {
const result = await streamText({
diff --git a/apps/evalite-docs/src/content/docs/guides/traces.mdx b/apps/evaluhealth-docs/src/content/docs/guides/traces.mdx
similarity index 82%
rename from apps/evalite-docs/src/content/docs/guides/traces.mdx
rename to apps/evaluhealth-docs/src/content/docs/guides/traces.mdx
index f62e79e6..4d552ad9 100644
--- a/apps/evalite-docs/src/content/docs/guides/traces.mdx
+++ b/apps/evaluhealth-docs/src/content/docs/guides/traces.mdx
@@ -8,13 +8,13 @@ Traces are used to track the behaviour of each individual call to an LLM inside
## `reportTrace`
-You can report a trace by calling `reportTrace` inside an `evalite` eval:
+You can report a trace by calling `reportTrace` inside an `evaluhealth` eval:
```ts
-import { evalite, type Evalite } from "evalite";
-import { reportTrace } from "evalite/traces";
+import { evaluhealth, type Evaluhealth } from "evaluhealth";
+import { reportTrace } from "evaluhealth/traces";
-evalite("My Eval", {
+evaluhealth("My Eval", {
data: [{ input: "Hello", expected: "Hello World!" }],
task: async (input) => {
// Track the start time
@@ -59,11 +59,11 @@ evalite("My Eval", {
If you're using the [Vercel AI SDK](https://sdk.vercel.ai/docs/introduction), you can automatically report traces by wrapping your model in `traceAISDKModel` function:
```ts
-import { traceAISDKModel } from "evalite/ai-sdk";
+import { traceAISDKModel } from "evaluhealth/ai-sdk";
import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";
-// All calls to this model will be recorded in evalite!
+// All calls to this model will be recorded in evaluhealth!
const tracedModel = traceAISDKModel(openai("gpt-4o-mini"));
const result = await generateText({
diff --git a/apps/evalite-docs/src/content/docs/guides/variant-comparison.mdx b/apps/evaluhealth-docs/src/content/docs/guides/variant-comparison.mdx
similarity index 86%
rename from apps/evalite-docs/src/content/docs/guides/variant-comparison.mdx
rename to apps/evaluhealth-docs/src/content/docs/guides/variant-comparison.mdx
index 029e4142..009c5135 100644
--- a/apps/evalite-docs/src/content/docs/guides/variant-comparison.mdx
+++ b/apps/evaluhealth-docs/src/content/docs/guides/variant-comparison.mdx
@@ -1,13 +1,13 @@
---
title: Variant Comparison
-description: Compare multiple task variants using evalite.each()
+description: Compare multiple task variants using evaluhealth.each()
---
import { Aside } from "@astrojs/starlight/components";
## Overview
-`evalite.each()` enables comparing multiple task variants (models, prompts, configs) within a single eval. This lets you:
+`evaluhealth.each()` enables comparing multiple task variants (models, prompts, configs) within a single eval. This lets you:
- Compare different models on the same dataset
- A/B test prompt strategies
@@ -16,12 +16,12 @@ import { Aside } from "@astrojs/starlight/components";
## Basic Usage
```ts
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { openai } from "@ai-sdk/openai";
import { generateText } from "ai";
import { Factuality, Levenshtein } from "autoevals";
-evalite.each([
+evaluhealth.each([
{ name: "GPT-4o mini", input: { model: "gpt-4o-mini", temp: 0.7 } },
{ name: "GPT-4o", input: { model: "gpt-4o", temp: 0.7 } },
{ name: "Claude Sonnet", input: { model: "claude-3-5-sonnet", temp: 1.0 } },
@@ -44,7 +44,7 @@ evalite.each([
## Example: Prompt Comparison
```ts
-evalite.each([
+evaluhealth.each([
{
name: "Direct",
input: {
diff --git a/apps/evalite-docs/src/content/docs/index.mdx b/apps/evaluhealth-docs/src/content/docs/index.mdx
similarity index 84%
rename from apps/evalite-docs/src/content/docs/index.mdx
rename to apps/evaluhealth-docs/src/content/docs/index.mdx
index c4ed5224..81e519fc 100644
--- a/apps/evalite-docs/src/content/docs/index.mdx
+++ b/apps/evaluhealth-docs/src/content/docs/index.mdx
@@ -1,9 +1,9 @@
---
title: Test AI-powered apps in TypeScript
-description: Evalite makes evals simple. Test your AI-powered apps with a local dev server.
+description: Evaluhealth makes evals simple. Test your AI-powered apps with a local dev server.
template: splash
hero:
- tagline: Evals are hard . Evalite makes them simple. Test your AI-powered apps with a local dev server.
+ tagline: Evals are hard . Evaluhealth makes them simple. Test your AI-powered apps with a local dev server.
image:
html:
actions:
diff --git a/apps/evalite-docs/src/content/docs/quickstart.mdx b/apps/evaluhealth-docs/src/content/docs/quickstart.mdx
similarity index 75%
rename from apps/evalite-docs/src/content/docs/quickstart.mdx
rename to apps/evaluhealth-docs/src/content/docs/quickstart.mdx
index c26997da..77df68d5 100644
--- a/apps/evalite-docs/src/content/docs/quickstart.mdx
+++ b/apps/evaluhealth-docs/src/content/docs/quickstart.mdx
@@ -5,14 +5,14 @@ description: A guide in my new Starlight docs site.
import { Aside, Steps } from "@astrojs/starlight/components";
-We're going to walk through setting up Evalite in an existing project.
+We're going to walk through setting up Evaluhealth in an existing project.
-1. Install `evalite`, `vitest`, and a scoring library like `autoevals`:
+1. Install `evaluhealth`, `vitest`, and a scoring library like `autoevals`:
```bash
- pnpm add -D evalite vitest autoevals
+ pnpm add -D evaluhealth vitest autoevals
```
2. Add an `eval:dev` script to your package.json:
@@ -20,7 +20,7 @@ We're going to walk through setting up Evalite in an existing project.
```json
{
"scripts": {
- "eval:dev": "evalite watch"
+ "eval:dev": "evaluhealth watch"
}
}
```
@@ -30,10 +30,10 @@ We're going to walk through setting up Evalite in an existing project.
```ts
// my-eval.eval.ts
- import { evalite } from "evalite";
+ import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
- evalite("My Eval", {
+ evaluhealth("My Eval", {
// An array of test data
// - TODO: Replace with your test data
data: [{ input: "Hello", expected: "Hello World!" }],
@@ -49,7 +49,7 @@ We're going to walk through setting up Evalite in an existing project.
- `.eval.ts` is the extension Evalite looks for when scanning for evals.
+ `.eval.ts` is the extension Evaluhealth looks for when scanning for evals.
@@ -59,12 +59,12 @@ We're going to walk through setting up Evalite in an existing project.
pnpm run eval:dev
```
- This runs `evalite`, which runs the evals:
+ This runs `evaluhealth`, which runs the evals:
- Runs the `data` function to get the test data
- Runs the `task` function on each test data
- Scores the output of the `task` function using the `scorers`
- - Saves the results to a sqlite database in `node_modules/.evalite`
+ - Saves the results to a sqlite database in `node_modules/.evaluhealth`
It then:
@@ -77,13 +77,13 @@ We're going to walk through setting up Evalite in an existing project.
### What Next?
-Head to the [AI SDK example](/examples/ai-sdk) to see a fully-fleshed out example of Evalite in action.
+Head to the [AI SDK example](/examples/ai-sdk) to see a fully-fleshed out example of Evaluhealth in action.
### Troubleshooting
##### Error: Could not locate the bindings file
-Some users experienced issues running `evalite watch`. Your package manager will report the following error message:
+Some users experienced issues running `evaluhealth watch`. Your package manager will report the following error message:
```
Command failed, Error: Could not locate the bindings file.
diff --git a/apps/evalite-docs/src/content/docs/what-is-evalite.mdx b/apps/evaluhealth-docs/src/content/docs/what-is-evaluhealth.mdx
similarity index 76%
rename from apps/evalite-docs/src/content/docs/what-is-evalite.mdx
rename to apps/evaluhealth-docs/src/content/docs/what-is-evaluhealth.mdx
index eceb2ed6..5bf1c070 100644
--- a/apps/evalite-docs/src/content/docs/what-is-evalite.mdx
+++ b/apps/evaluhealth-docs/src/content/docs/what-is-evaluhealth.mdx
@@ -1,12 +1,12 @@
---
-title: What Is Evalite?
+title: What Is Evaluhealth?
---
import { Aside, Steps } from "@astrojs/starlight/components";
-Evalite runs your evals locally. Evals are like tests, but for AI-powered apps.
+Evaluhealth runs your evals locally. Evals are like tests, but for AI-powered apps.
-So Evalite is like Jest or Vitest, but for apps that use AI.
+So Evaluhealth is like Jest or Vitest, but for apps that use AI.
Here are the headlines:
@@ -21,15 +21,15 @@ Here are the headlines:
Normal tests give you a pass or fail metric. **Evals give you a score from 0-100** based on how well your app is performing.
-Instead of `.test.ts` files, Evalite uses `.eval.ts` files. They look like this:
+Instead of `.test.ts` files, Evaluhealth uses `.eval.ts` files. They look like this:
```ts
// my-eval.eval.ts
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
-evalite("My Eval", {
+evaluhealth("My Eval", {
// A set of data to test
data: [{ input: "Hello", expected: "Hello World!" }],
// The task to perform, usually to call a LLM.
@@ -55,11 +55,11 @@ These are the core elements of an eval.
> Thanks to [Braintrust](https://www.braintrust.dev/) for the API inspiration
-## Why Does Evalite Exist?
+## Why Does Evaluhealth Exist?
There are plenty of eval runners out there. But most of them are also bundled with a cloud service.
-Evalite is different. It's **local-only**. It runs on your machine, and you stay in complete control of your data.
+Evaluhealth is different. It's **local-only**. It runs on your machine, and you stay in complete control of your data.
This means no friction, no sign-off, and no vendor lock-in. Just you, your code, and your evals.
diff --git a/apps/evalite-docs/src/env.d.ts b/apps/evaluhealth-docs/src/env.d.ts
similarity index 100%
rename from apps/evalite-docs/src/env.d.ts
rename to apps/evaluhealth-docs/src/env.d.ts
diff --git a/apps/evalite-docs/tsconfig.json b/apps/evaluhealth-docs/tsconfig.json
similarity index 100%
rename from apps/evalite-docs/tsconfig.json
rename to apps/evaluhealth-docs/tsconfig.json
diff --git a/apps/evalite-ui/.eslintrc.cjs b/apps/evaluhealth-ui/.eslintrc.cjs
similarity index 100%
rename from apps/evalite-ui/.eslintrc.cjs
rename to apps/evaluhealth-ui/.eslintrc.cjs
diff --git a/apps/evalite-ui/.gitignore b/apps/evaluhealth-ui/.gitignore
similarity index 100%
rename from apps/evalite-ui/.gitignore
rename to apps/evaluhealth-ui/.gitignore
diff --git a/apps/evaluhealth-ui/README.md b/apps/evaluhealth-ui/README.md
new file mode 100644
index 00000000..c4a7ec6b
--- /dev/null
+++ b/apps/evaluhealth-ui/README.md
@@ -0,0 +1,15 @@
+# Evaluhealth UI
+
+This is the UI for Evaluhealth. It is built with React, Vite, Tanstack Router, and Tailwind CSS.
+
+## Development
+
+From the root of the monorepo, run:
+
+```bash
+pnpm run dev
+```
+
+## Deployment
+
+The UI is copied into the `evaluhealth` package during the `after-build` script in the root `package.json`.
diff --git a/apps/evalite-ui/app/components/display-input.tsx b/apps/evaluhealth-ui/app/components/display-input.tsx
similarity index 94%
rename from apps/evalite-ui/app/components/display-input.tsx
rename to apps/evaluhealth-ui/app/components/display-input.tsx
index c2d781ab..991d6f43 100644
--- a/apps/evalite-ui/app/components/display-input.tsx
+++ b/apps/evaluhealth-ui/app/components/display-input.tsx
@@ -1,5 +1,5 @@
-import type { Evalite } from "evalite/types";
-import { EvaliteFile } from "evalite/utils";
+import type { Evaluhealth } from "evaluhealth/types";
+import { EvaluhealthFile } from "evaluhealth/utils";
import {
AlertCircle,
ChevronDown,
@@ -183,13 +183,21 @@ const DisplayJSON = ({
);
};
-export const DisplayEvaliteFile = ({ file }: { file: Evalite.File }) => {
+export const DisplayEvaluhealthFile = ({
+ file,
+}: {
+ file: Evaluhealth.File;
+}) => {
const extension = file.path.split(".").pop()!;
// Images
if (["png", "jpg", "jpeg", "gif", "svg", "webp"].includes(extension)) {
return (
-
+
);
}
@@ -273,10 +281,10 @@ export const DisplayInput = (props: {
);
}
- if (EvaliteFile.isEvaliteFile(props.input)) {
+ if (EvaluhealthFile.isEvaluhealthFile(props.input)) {
return (
-
+
);
}
diff --git a/apps/evalite-ui/app/components/logo.tsx b/apps/evaluhealth-ui/app/components/logo.tsx
similarity index 98%
rename from apps/evalite-ui/app/components/logo.tsx
rename to apps/evaluhealth-ui/app/components/logo.tsx
index 6ef3c8e8..9184bfba 100644
--- a/apps/evalite-ui/app/components/logo.tsx
+++ b/apps/evaluhealth-ui/app/components/logo.tsx
@@ -29,7 +29,7 @@ export default function Logo({
textClassName
)}
>
- Evalite
+ Evaluhealth
);
diff --git a/apps/evalite-ui/app/components/page-layout.tsx b/apps/evaluhealth-ui/app/components/page-layout.tsx
similarity index 100%
rename from apps/evalite-ui/app/components/page-layout.tsx
rename to apps/evaluhealth-ui/app/components/page-layout.tsx
diff --git a/apps/evalite-ui/app/components/score.tsx b/apps/evaluhealth-ui/app/components/score.tsx
similarity index 96%
rename from apps/evalite-ui/app/components/score.tsx
rename to apps/evaluhealth-ui/app/components/score.tsx
index 61a8f06d..ca82ad12 100644
--- a/apps/evalite-ui/app/components/score.tsx
+++ b/apps/evaluhealth-ui/app/components/score.tsx
@@ -1,4 +1,4 @@
-import type { Evalite } from "evalite";
+import type { Evaluhealth } from "evaluhealth";
import {
ChevronDownCircleIcon,
ChevronRightCircleIcon,
@@ -89,7 +89,7 @@ export const Score = (props: {
};
export const getScoreState = (opts: {
- status: Evalite.Storage.Entities.EvalStatus;
+ status: Evaluhealth.Storage.Entities.EvalStatus;
score: number;
prevScore: number | null | undefined;
}) => {
diff --git a/apps/evalite-ui/app/components/ui/breadcrumb.tsx b/apps/evaluhealth-ui/app/components/ui/breadcrumb.tsx
similarity index 100%
rename from apps/evalite-ui/app/components/ui/breadcrumb.tsx
rename to apps/evaluhealth-ui/app/components/ui/breadcrumb.tsx
diff --git a/apps/evalite-ui/app/components/ui/button.tsx b/apps/evaluhealth-ui/app/components/ui/button.tsx
similarity index 100%
rename from apps/evalite-ui/app/components/ui/button.tsx
rename to apps/evaluhealth-ui/app/components/ui/button.tsx
diff --git a/apps/evalite-ui/app/components/ui/chart.tsx b/apps/evaluhealth-ui/app/components/ui/chart.tsx
similarity index 100%
rename from apps/evalite-ui/app/components/ui/chart.tsx
rename to apps/evaluhealth-ui/app/components/ui/chart.tsx
diff --git a/apps/evalite-ui/app/components/ui/copy-button.tsx b/apps/evaluhealth-ui/app/components/ui/copy-button.tsx
similarity index 100%
rename from apps/evalite-ui/app/components/ui/copy-button.tsx
rename to apps/evaluhealth-ui/app/components/ui/copy-button.tsx
diff --git a/apps/evalite-ui/app/components/ui/input.tsx b/apps/evaluhealth-ui/app/components/ui/input.tsx
similarity index 100%
rename from apps/evalite-ui/app/components/ui/input.tsx
rename to apps/evaluhealth-ui/app/components/ui/input.tsx
diff --git a/apps/evalite-ui/app/components/ui/line-chart.tsx b/apps/evaluhealth-ui/app/components/ui/line-chart.tsx
similarity index 100%
rename from apps/evalite-ui/app/components/ui/line-chart.tsx
rename to apps/evaluhealth-ui/app/components/ui/line-chart.tsx
diff --git a/apps/evalite-ui/app/components/ui/live-date.tsx b/apps/evaluhealth-ui/app/components/ui/live-date.tsx
similarity index 100%
rename from apps/evalite-ui/app/components/ui/live-date.tsx
rename to apps/evaluhealth-ui/app/components/ui/live-date.tsx
diff --git a/apps/evalite-ui/app/components/ui/separator.tsx b/apps/evaluhealth-ui/app/components/ui/separator.tsx
similarity index 100%
rename from apps/evalite-ui/app/components/ui/separator.tsx
rename to apps/evaluhealth-ui/app/components/ui/separator.tsx
diff --git a/apps/evalite-ui/app/components/ui/sheet.tsx b/apps/evaluhealth-ui/app/components/ui/sheet.tsx
similarity index 100%
rename from apps/evalite-ui/app/components/ui/sheet.tsx
rename to apps/evaluhealth-ui/app/components/ui/sheet.tsx
diff --git a/apps/evalite-ui/app/components/ui/sidebar.tsx b/apps/evaluhealth-ui/app/components/ui/sidebar.tsx
similarity index 100%
rename from apps/evalite-ui/app/components/ui/sidebar.tsx
rename to apps/evaluhealth-ui/app/components/ui/sidebar.tsx
diff --git a/apps/evalite-ui/app/components/ui/skeleton.tsx b/apps/evaluhealth-ui/app/components/ui/skeleton.tsx
similarity index 100%
rename from apps/evalite-ui/app/components/ui/skeleton.tsx
rename to apps/evaluhealth-ui/app/components/ui/skeleton.tsx
diff --git a/apps/evalite-ui/app/components/ui/table.tsx b/apps/evaluhealth-ui/app/components/ui/table.tsx
similarity index 100%
rename from apps/evalite-ui/app/components/ui/table.tsx
rename to apps/evaluhealth-ui/app/components/ui/table.tsx
diff --git a/apps/evalite-ui/app/components/ui/tooltip.tsx b/apps/evaluhealth-ui/app/components/ui/tooltip.tsx
similarity index 100%
rename from apps/evalite-ui/app/components/ui/tooltip.tsx
rename to apps/evaluhealth-ui/app/components/ui/tooltip.tsx
diff --git a/apps/evalite-ui/app/data/queries.ts b/apps/evaluhealth-ui/app/data/queries.ts
similarity index 100%
rename from apps/evalite-ui/app/data/queries.ts
rename to apps/evaluhealth-ui/app/data/queries.ts
diff --git a/apps/evalite-ui/app/data/use-subscribe-to-socket.ts b/apps/evaluhealth-ui/app/data/use-subscribe-to-socket.ts
similarity index 76%
rename from apps/evalite-ui/app/data/use-subscribe-to-socket.ts
rename to apps/evaluhealth-ui/app/data/use-subscribe-to-socket.ts
index bec52f1f..eb16b233 100644
--- a/apps/evalite-ui/app/data/use-subscribe-to-socket.ts
+++ b/apps/evaluhealth-ui/app/data/use-subscribe-to-socket.ts
@@ -1,7 +1,7 @@
import { useEffect } from "react";
import type { QueryClient } from "@tanstack/react-query";
import { getServerStateQueryOptions } from "./queries";
-import type { Evalite } from "evalite/types";
+import type { Evaluhealth } from "evaluhealth/types";
import { isStaticMode } from "~/sdk";
export const useSubscribeToSocket = (queryClient: QueryClient) => {
@@ -11,12 +11,10 @@ export const useSubscribeToSocket = (queryClient: QueryClient) => {
return;
}
- const socket = new WebSocket(
- `${window.location.origin}/api/socket`
- );
+ const socket = new WebSocket(`${window.location.origin}/api/socket`);
socket.onmessage = async (event) => {
- const newState: Evalite.ServerState = JSON.parse(event.data);
+ const newState: Evaluhealth.ServerState = JSON.parse(event.data);
await queryClient.invalidateQueries();
await queryClient.setQueryData(
getServerStateQueryOptions.queryKey,
diff --git a/apps/evalite-ui/app/hooks/use-mobile.ts b/apps/evaluhealth-ui/app/hooks/use-mobile.ts
similarity index 100%
rename from apps/evalite-ui/app/hooks/use-mobile.ts
rename to apps/evaluhealth-ui/app/hooks/use-mobile.ts
diff --git a/apps/evalite-ui/app/hooks/use-mobile.tsx b/apps/evaluhealth-ui/app/hooks/use-mobile.tsx
similarity index 100%
rename from apps/evalite-ui/app/hooks/use-mobile.tsx
rename to apps/evaluhealth-ui/app/hooks/use-mobile.tsx
diff --git a/apps/evalite-ui/app/hooks/use-server-state-utils.ts b/apps/evaluhealth-ui/app/hooks/use-server-state-utils.ts
similarity index 79%
rename from apps/evalite-ui/app/hooks/use-server-state-utils.ts
rename to apps/evaluhealth-ui/app/hooks/use-server-state-utils.ts
index 7524bcd1..fb885d2c 100644
--- a/apps/evalite-ui/app/hooks/use-server-state-utils.ts
+++ b/apps/evaluhealth-ui/app/hooks/use-server-state-utils.ts
@@ -1,7 +1,7 @@
-import type { Evalite } from "evalite/types";
+import type { Evaluhealth } from "evaluhealth/types";
import { useMemo } from "react";
-export const useServerStateUtils = (state: Evalite.ServerState) => {
+export const useServerStateUtils = (state: Evaluhealth.ServerState) => {
return useMemo(() => {
const filePathSet: Set =
state.type === "running" ? new Set(state.filepaths) : new Set();
diff --git a/apps/evalite-ui/app/lib/utils.ts b/apps/evaluhealth-ui/app/lib/utils.ts
similarity index 100%
rename from apps/evalite-ui/app/lib/utils.ts
rename to apps/evaluhealth-ui/app/lib/utils.ts
diff --git a/apps/evalite-ui/app/main.tsx b/apps/evaluhealth-ui/app/main.tsx
similarity index 95%
rename from apps/evalite-ui/app/main.tsx
rename to apps/evaluhealth-ui/app/main.tsx
index 51a6d02f..582fd4c3 100644
--- a/apps/evalite-ui/app/main.tsx
+++ b/apps/evaluhealth-ui/app/main.tsx
@@ -16,7 +16,7 @@ const initRouter = () => {
});
// Get basePath from static mode config (if available)
- const basePath = window.__EVALITE_STATIC_DATA__?.basePath ?? undefined;
+ const basePath = window.__EVALUHEALTH_STATIC_DATA__?.basePath ?? undefined;
const router = createRouter({
routeTree,
diff --git a/apps/evalite-ui/app/routes/$.tsx b/apps/evaluhealth-ui/app/routes/$.tsx
similarity index 94%
rename from apps/evalite-ui/app/routes/$.tsx
rename to apps/evaluhealth-ui/app/routes/$.tsx
index a2e5ed76..60fd99b1 100644
--- a/apps/evalite-ui/app/routes/$.tsx
+++ b/apps/evaluhealth-ui/app/routes/$.tsx
@@ -25,5 +25,5 @@ export const Route = createFileRoute("/$")({
});
function IndexRoute() {
- return Evalite ;
+ return Evaluhealth ;
}
diff --git a/apps/evalite-ui/app/routes/__root.tsx b/apps/evaluhealth-ui/app/routes/__root.tsx
similarity index 97%
rename from apps/evalite-ui/app/routes/__root.tsx
rename to apps/evaluhealth-ui/app/routes/__root.tsx
index 49772b36..c834250d 100644
--- a/apps/evalite-ui/app/routes/__root.tsx
+++ b/apps/evaluhealth-ui/app/routes/__root.tsx
@@ -12,7 +12,7 @@ import {
Outlet,
} from "@tanstack/react-router";
-import type { Evalite } from "evalite/types";
+import type { Evaluhealth } from "evaluhealth/types";
import { FolderOpen } from "lucide-react";
import { lazy } from "react";
import Logo from "~/components/logo";
@@ -44,7 +44,7 @@ const TanStackRouterDevtools =
}))
);
-type EvalWithState = Evalite.SDK.GetMenuItemsResultEval & {
+type EvalWithState = Evaluhealth.SDK.GetMenuItemsResultEval & {
state: ScoreState;
};
@@ -235,7 +235,7 @@ const EvalSidebarItem = (props: {
variantName?: string | undefined;
state: ScoreState;
score: number;
- evalStatus: Evalite.Storage.Entities.EvalStatus;
+ evalStatus: Evaluhealth.Storage.Entities.EvalStatus;
isVariant?: boolean;
hasScores: boolean;
}) => {
diff --git a/apps/evalite-ui/app/routes/eval.$name.result.$resultIndex.tsx b/apps/evaluhealth-ui/app/routes/eval.$name.result.$resultIndex.tsx
similarity index 98%
rename from apps/evalite-ui/app/routes/eval.$name.result.$resultIndex.tsx
rename to apps/evaluhealth-ui/app/routes/eval.$name.result.$resultIndex.tsx
index 9d49b9d8..0266ad81 100644
--- a/apps/evalite-ui/app/routes/eval.$name.result.$resultIndex.tsx
+++ b/apps/evaluhealth-ui/app/routes/eval.$name.result.$resultIndex.tsx
@@ -18,8 +18,8 @@ import { cn } from "~/lib/utils";
import { formatTime, isArrayOfRenderedColumns } from "~/utils";
import { useSuspenseQueries } from "@tanstack/react-query";
-import type { Evalite } from "evalite/types";
-import { sum } from "evalite/utils";
+import type { Evaluhealth } from "evaluhealth/types";
+import { sum } from "evaluhealth/utils";
import { z } from "zod";
import {
getResultQueryOptions,
@@ -293,7 +293,7 @@ function ResultComponent() {
)}
{!hasCustomColumns && inputOutputSection}
{hasCustomColumns &&
- (result.rendered_columns as Evalite.RenderedColumn[]).map(
+ (result.rendered_columns as Evaluhealth.RenderedColumn[]).map(
(column, index) => (
{index > 0 && }
diff --git a/apps/evalite-ui/app/routes/eval.$name.tsx b/apps/evaluhealth-ui/app/routes/eval.$name.tsx
similarity index 97%
rename from apps/evalite-ui/app/routes/eval.$name.tsx
rename to apps/evaluhealth-ui/app/routes/eval.$name.tsx
index 04d06143..0a4f63c3 100644
--- a/apps/evalite-ui/app/routes/eval.$name.tsx
+++ b/apps/evaluhealth-ui/app/routes/eval.$name.tsx
@@ -27,9 +27,9 @@ import {
getServerStateQueryOptions,
} from "~/data/queries";
import { useSuspenseQueries } from "@tanstack/react-query";
-import { average } from "evalite/utils";
+import { average } from "evaluhealth/utils";
import { useMemo } from "react";
-import type { Evalite } from "evalite";
+import type { Evaluhealth } from "evaluhealth";
const searchSchema = z.object({
timestamp: z.string().optional(),
@@ -54,8 +54,8 @@ export const Route = createFileRoute("/eval/$name")({
});
type ResultTableRowProps = {
- result: Evalite.Storage.Entities.Result & {
- scores: Evalite.Storage.Entities.Score[];
+ result: Evaluhealth.Storage.Entities.Result & {
+ scores: Evaluhealth.Storage.Entities.Score[];
};
resultIndex: number;
name: string;
@@ -63,7 +63,7 @@ type ResultTableRowProps = {
showExpectedColumn: boolean;
isRunningEval: boolean;
hasScores: boolean;
- prevEvaluation: Evalite.SDK.GetEvalByNameResult["prevEvaluation"];
+ prevEvaluation: Evaluhealth.SDK.GetEvalByNameResult["prevEvaluation"];
trialConfig?: {
isFirstTrial: boolean;
rowSpan: number;
@@ -243,7 +243,7 @@ function EvalComponent() {
* undefined - which will hide the table.
*/
let evaluationWithoutLayoutShift:
- | Evalite.SDK.GetEvalByNameResult["evaluation"]
+ | Evaluhealth.SDK.GetEvalByNameResult["evaluation"]
| undefined;
const mostRecentDate = history[history.length - 1]?.date;
@@ -280,7 +280,7 @@ function EvalComponent() {
type ResultGroup = {
input: unknown;
expected: unknown;
- results: Evalite.SDK.GetEvalByNameResult["evaluation"]["results"];
+ results: Evaluhealth.SDK.GetEvalByNameResult["evaluation"]["results"];
groupIndex: number;
};
@@ -329,8 +329,8 @@ function EvalComponent() {
return (
<>
- {`${name} | Evalite`}
-
+ {`${name} | Evaluhealth`}
+
{
return (
- typeof window !== "undefined" && window.__EVALITE_STATIC_DATA__?.staticMode
+ typeof window !== "undefined" &&
+ window.__EVALUHEALTH_STATIC_DATA__?.staticMode
);
};
@@ -29,7 +30,7 @@ const getBasePath = (): string => {
if (!isStaticMode()) {
return "";
}
- return window.__EVALITE_STATIC_DATA__?.basePath || "/";
+ return window.__EVALUHEALTH_STATIC_DATA__?.basePath || "/";
};
/**
@@ -76,15 +77,15 @@ async function safeFetch(url: string, options?: RequestInit): Promise {
export const getServerState = async (fetchOpts?: {
signal?: AbortSignal;
-}): Promise => {
+}): Promise => {
if (isStaticMode()) {
- return safeFetch(
+ return safeFetch(
prefixPath(`/data/server-state.json`),
fetchOpts
);
}
- return safeFetch(
+ return safeFetch(
`${BASE_URL}/api/server-state`,
fetchOpts
);
@@ -92,15 +93,15 @@ export const getServerState = async (fetchOpts?: {
export const getMenuItems = async (fetchOpts?: {
signal?: AbortSignal;
-}): Promise => {
+}): Promise => {
if (isStaticMode()) {
- return safeFetch(
+ return safeFetch(
prefixPath(`/data/menu-items.json`),
fetchOpts
);
}
- return safeFetch(
+ return safeFetch(
`${BASE_URL}/api/menu-items`,
fetchOpts
);
@@ -110,17 +111,17 @@ export const getEvalByName = async (
name: string,
timestamp: string | null | undefined,
fetchOpts?: { signal?: AbortSignal }
-): Promise => {
+): Promise => {
if (isStaticMode()) {
const sanitized = sanitizeFilename(name);
- return safeFetch(
+ return safeFetch(
prefixPath(`/data/eval-${sanitized}.json`),
fetchOpts
);
}
const params = new URLSearchParams({ name, timestamp: timestamp || "" });
- return safeFetch(
+ return safeFetch(
`${BASE_URL}/api/eval?${params.toString()}`,
fetchOpts
);
@@ -133,10 +134,10 @@ export const getResult = async (
resultIndex: string;
},
fetchOpts?: { signal?: AbortSignal }
-): Promise => {
+): Promise => {
if (isStaticMode()) {
const sanitized = sanitizeFilename(opts.evalName);
- return safeFetch(
+ return safeFetch(
prefixPath(`/data/result-${sanitized}-${opts.resultIndex}.json`),
fetchOpts
);
@@ -147,7 +148,7 @@ export const getResult = async (
index: opts.resultIndex,
timestamp: opts.evalTimestamp || "",
});
- return safeFetch(
+ return safeFetch(
`${BASE_URL}/api/eval/result?${params.toString()}`,
fetchOpts
);
diff --git a/apps/evalite-ui/app/tailwind.css b/apps/evaluhealth-ui/app/tailwind.css
similarity index 100%
rename from apps/evalite-ui/app/tailwind.css
rename to apps/evaluhealth-ui/app/tailwind.css
diff --git a/apps/evalite-ui/app/utils.test.ts b/apps/evaluhealth-ui/app/utils.test.ts
similarity index 100%
rename from apps/evalite-ui/app/utils.test.ts
rename to apps/evaluhealth-ui/app/utils.test.ts
diff --git a/apps/evalite-ui/app/utils.ts b/apps/evaluhealth-ui/app/utils.ts
similarity index 85%
rename from apps/evalite-ui/app/utils.ts
rename to apps/evaluhealth-ui/app/utils.ts
index 019e6cee..d0f07a25 100644
--- a/apps/evalite-ui/app/utils.ts
+++ b/apps/evaluhealth-ui/app/utils.ts
@@ -1,4 +1,4 @@
-import type { Evalite } from "evalite/types";
+import type { Evaluhealth } from "evaluhealth/types";
export const scoreToPercent = (score: number) => {
return `${Math.round(score * 1000) / 10}%`;
@@ -13,7 +13,7 @@ export const formatTime = (time: number) => {
export const isArrayOfRenderedColumns = (
value: unknown
-): value is Evalite.RenderedColumn[] => {
+): value is Evaluhealth.RenderedColumn[] => {
if (!Array.isArray(value)) {
return false;
}
diff --git a/apps/evalite-ui/components.json b/apps/evaluhealth-ui/components.json
similarity index 100%
rename from apps/evalite-ui/components.json
rename to apps/evaluhealth-ui/components.json
diff --git a/apps/evalite-ui/eslint.config.js b/apps/evaluhealth-ui/eslint.config.js
similarity index 100%
rename from apps/evalite-ui/eslint.config.js
rename to apps/evaluhealth-ui/eslint.config.js
diff --git a/apps/evalite-ui/index.html b/apps/evaluhealth-ui/index.html
similarity index 100%
rename from apps/evalite-ui/index.html
rename to apps/evaluhealth-ui/index.html
diff --git a/apps/evalite-ui/package.json b/apps/evaluhealth-ui/package.json
similarity index 92%
rename from apps/evalite-ui/package.json
rename to apps/evaluhealth-ui/package.json
index c7eafc70..b12a0eff 100644
--- a/apps/evalite-ui/package.json
+++ b/apps/evaluhealth-ui/package.json
@@ -1,11 +1,11 @@
{
- "name": "evalite-ui",
+ "name": "evaluhealth-ui",
"private": true,
"sideEffects": false,
"type": "module",
"scripts": {
"build": "vite build",
- "after-build": "rm -rf ../../packages/evalite/dist/ui && cp -r dist ../../packages/evalite/dist/ui",
+ "after-build": "rm -rf ../../packages/evaluhealth/dist/ui && cp -r dist ../../packages/evaluhealth/dist/ui",
"dev": "vite",
"lint": "tsr generate && tsc",
"test": "vitest run"
@@ -27,7 +27,7 @@
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"date-fns": "^4.1.0",
- "evalite": "workspace:*",
+ "evaluhealth": "workspace:*",
"isbot": "^4.1.0",
"lucide-react": "^0.464.0",
"react": "^19.0.0",
diff --git a/apps/evalite-ui/public/assets/favicon.svg b/apps/evaluhealth-ui/public/assets/favicon.svg
similarity index 100%
rename from apps/evalite-ui/public/assets/favicon.svg
rename to apps/evaluhealth-ui/public/assets/favicon.svg
diff --git a/apps/evalite-ui/tsconfig.json b/apps/evaluhealth-ui/tsconfig.json
similarity index 100%
rename from apps/evalite-ui/tsconfig.json
rename to apps/evaluhealth-ui/tsconfig.json
diff --git a/apps/evalite-ui/tsr.config.json b/apps/evaluhealth-ui/tsr.config.json
similarity index 100%
rename from apps/evalite-ui/tsr.config.json
rename to apps/evaluhealth-ui/tsr.config.json
diff --git a/apps/evalite-ui/vite.config.ts b/apps/evaluhealth-ui/vite.config.ts
similarity index 100%
rename from apps/evalite-ui/vite.config.ts
rename to apps/evaluhealth-ui/vite.config.ts
diff --git a/package.json b/package.json
index f2e67aa5..93991da3 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
{
- "name": "evalite-monorepo",
+ "name": "evaluhealth-monorepo",
"version": "1.0.0",
"type": "module",
"packageManager": "pnpm@9.11.0",
@@ -9,21 +9,21 @@
},
"private": true,
"scripts": {
- "build:evalite": "pnpm --filter evalite build",
- "build:evalite-ui": "pnpm --filter evalite-ui build && pnpm --filter evalite-ui after-build",
- "build": "pnpm run build:evalite && pnpm run build:evalite-ui",
- "dev": "pnpm build:evalite && pnpm build:evalite-ui && pnpm --filter evalite --filter evalite-tests --parallel run dev",
- "test": "pnpm build && pnpm --filter evalite --filter evalite-tests test",
- "example": "pnpm build && pnpm --filter example --filter evalite-ui --filter evalite --parallel dev",
- "ci": "pnpm build && pnpm test && pnpm --filter evalite --filter evalite-tests lint && pnpm check-format",
- "docs:dev": "(cd apps/evalite-docs && pnpm run dev)",
+ "build:evaluhealth": "pnpm --filter evaluhealth build",
+ "build:evaluhealth-ui": "pnpm --filter evaluhealth-ui build && pnpm --filter evaluhealth-ui after-build",
+ "build": "pnpm run build:evaluhealth && pnpm run build:evaluhealth-ui",
+ "dev": "pnpm build:evaluhealth && pnpm build:evaluhealth-ui && pnpm --filter evaluhealth --filter evaluhealth-tests --parallel run dev",
+ "test": "pnpm build && pnpm --filter evaluhealth --filter evaluhealth-tests test",
+ "example": "pnpm build && pnpm --filter example --filter evaluhealth-ui --filter evaluhealth --parallel dev",
+ "ci": "pnpm build && pnpm test && pnpm --filter evaluhealth --filter evaluhealth-tests lint && pnpm check-format",
+ "docs:dev": "(cd apps/evaluhealth-docs && pnpm run dev)",
"release": "pnpm run build && changeset publish",
"prepare": "husky",
"format": "prettier --write .",
"check-format": "prettier --check ."
},
"keywords": [],
- "author": "Matt Pocock",
+ "author": "yamz8",
"license": "MIT",
"dependencies": {
"@changesets/cli": "^2.27.10",
diff --git a/packages/evalite-tests/.gitignore b/packages/evalite-tests/.gitignore
deleted file mode 100644
index aa434a9e..00000000
--- a/packages/evalite-tests/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/tests/playground/*
-evalite-report.jsonl
\ No newline at end of file
diff --git a/packages/evalite-tests/tests/fixtures/config-precedence/vite.config.ts b/packages/evalite-tests/tests/fixtures/config-precedence/vite.config.ts
deleted file mode 100644
index aff99714..00000000
--- a/packages/evalite-tests/tests/fixtures/config-precedence/vite.config.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { defineConfig } from "vitest/config";
-
-export default defineConfig({
- test: {
- testTimeout: 5000, // Should be overridden by evalite.config.ts (60000)
- maxConcurrency: 2, // Should be overridden by evalite.config.ts (10)
- },
-});
diff --git a/packages/evalite/readme.md b/packages/evalite/readme.md
deleted file mode 100644
index 9b59fc64..00000000
--- a/packages/evalite/readme.md
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-## What Is Evalite?
-
-- Fully open source: **No API Key required**.
-- Local-first: runs on your machine, your data never leaves your laptop.
-- Based on [Vitest](https://vitest.dev/), the best TypeScript test runner around.
-- Terminal UI for quick prototyping.
-- Supports tracing and custom scorers.
-
-## How Do I Learn More?
-
-- [Read the Docs](https://www.evalite.dev/)
-- [Join the Discord](https://www.mattpocock.com/ai-discord)
-
-## Evalite Is Experimental
-
-Evalite is still an experimental project. I'm actively working on it, and for now am pushing breaking changes.
-
-If you run into any unexpected behavior:
-
-1. Delete the `node_modules/.evalite` folder.
-2. Update `evalite` to the latest version.
-3. Rerun your evals.
-
-If, after that, you run into unexpected behavior, [report an issue](https://github.com/mattpocock/evalite/issues).
-
-## Guides
-
-### Watch Mode
-
-You can run Evalite in watch mode by running `evalite watch`:
-
-```bash
-evalite watch
-```
-
-This will watch for changes to your `.eval.ts` files and re-run the evals when they change.
-
-> [!IMPORTANT]
->
-> I strongly recommend implementing a caching layer in your LLM calls when using watch mode. This will keep your evals running fast and avoid burning through your API credits.
-
-### Running Specific Files
-
-You can run specific files by passing them as arguments:
-
-```bash
-evalite my-eval.eval.ts
-```
-
-This also works for `watch` mode:
-
-```bash
-evalite watch my-eval.eval.ts
-```
diff --git a/packages/evalite/src/constants.ts b/packages/evalite/src/constants.ts
deleted file mode 100644
index dd088ccd..00000000
--- a/packages/evalite/src/constants.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export const DEFAULT_SERVER_PORT = 3006;
-export const CACHE_LOCATION = "./node_modules/.evalite";
diff --git a/packages/evalite/src/index.ts b/packages/evalite/src/index.ts
deleted file mode 100644
index cd9f2e81..00000000
--- a/packages/evalite/src/index.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export * from "./create-scorer.js";
-export * from "./evalite.js";
-export { EvaliteFile } from "./utils.js";
-export type { Evalite } from "./types.js";
diff --git a/packages/evaluhealth-tests/.gitignore b/packages/evaluhealth-tests/.gitignore
new file mode 100644
index 00000000..fce35b5d
--- /dev/null
+++ b/packages/evaluhealth-tests/.gitignore
@@ -0,0 +1,2 @@
+/tests/playground/*
+evaluhealth-report.jsonl
\ No newline at end of file
diff --git a/packages/evalite-tests/CHANGELOG.md b/packages/evaluhealth-tests/CHANGELOG.md
similarity index 66%
rename from packages/evalite-tests/CHANGELOG.md
rename to packages/evaluhealth-tests/CHANGELOG.md
index 27fb7d2e..6b682c2c 100644
--- a/packages/evalite-tests/CHANGELOG.md
+++ b/packages/evaluhealth-tests/CHANGELOG.md
@@ -1,19 +1,19 @@
-# evalite-tests
+# evaluhealth-tests
## 0.0.11
### Patch Changes
- Updated dependencies [66e8dac]
- - evalite@0.4.0
+ - evaluhealth@0.4.0
## 0.0.10
### Patch Changes
- Updated dependencies [9769ab8]
- - @evalite/core@0.2.0
- - evalite@0.3.0
+ - @evaluhealth/core@0.2.0
+ - evaluhealth@0.3.0
## 0.0.9
@@ -21,8 +21,8 @@
- a520613: UI tweaks
- Updated dependencies [a520613]
- - @evalite/core@0.1.1
- - evalite@0.2.1
+ - @evaluhealth/core@0.1.1
+ - evaluhealth@0.2.1
## 0.0.8
@@ -30,38 +30,38 @@
- Updated dependencies [099b198]
- Updated dependencies [099b198]
- - @evalite/core@0.1.0
- - evalite@0.2.0
+ - @evaluhealth/core@0.1.0
+ - evaluhealth@0.2.0
## 0.0.7
### Patch Changes
- Updated dependencies [eb294a7]
- - evalite@0.1.4
- - @evalite/core@0.0.5
+ - evaluhealth@0.1.4
+ - @evaluhealth/core@0.0.5
## 0.0.6
### Patch Changes
- Updated dependencies [213211f]
- - evalite@0.1.3
- - @evalite/core@0.0.4
+ - evaluhealth@0.1.3
+ - @evaluhealth/core@0.0.4
## 0.0.5
### Patch Changes
- Updated dependencies [e43c7a4]
- - evalite@0.1.2
+ - evaluhealth@0.1.2
## 0.0.4
### Patch Changes
- Updated dependencies [a6a86f1]
- - evalite@0.1.1
+ - evaluhealth@0.1.1
## 0.0.3
@@ -71,4 +71,4 @@
- Updated dependencies [28517ff]
- Updated dependencies [28517ff]
- Updated dependencies [e53a652]
- - evalite@0.1.0
+ - evaluhealth@0.1.0
diff --git a/packages/evalite-tests/package.json b/packages/evaluhealth-tests/package.json
similarity index 73%
rename from packages/evalite-tests/package.json
rename to packages/evaluhealth-tests/package.json
index 17159f87..b6e5b059 100644
--- a/packages/evalite-tests/package.json
+++ b/packages/evaluhealth-tests/package.json
@@ -1,5 +1,5 @@
{
- "name": "evalite-tests",
+ "name": "evaluhealth-tests",
"version": "0.0.11",
"private": true,
"type": "module",
@@ -9,8 +9,8 @@
"lint": "tsc"
},
"dependencies": {
- "evalite": "workspace:*",
- "evalite-ui": "workspace:*",
+ "evaluhealth": "workspace:*",
+ "evaluhealth-ui": "workspace:*",
"strip-ansi": "^7.1.2",
"autoevals": "^0.0.131",
"@ai-sdk/openai": "^2.0.42",
diff --git a/packages/evalite-tests/tests/ai-sdk-traces.test.ts b/packages/evaluhealth-tests/tests/ai-sdk-traces.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/ai-sdk-traces.test.ts
rename to packages/evaluhealth-tests/tests/ai-sdk-traces.test.ts
diff --git a/packages/evalite-tests/tests/basics.test.ts b/packages/evaluhealth-tests/tests/basics.test.ts
similarity index 97%
rename from packages/evalite-tests/tests/basics.test.ts
rename to packages/evaluhealth-tests/tests/basics.test.ts
index 32cb2cfa..29271b59 100644
--- a/packages/evalite-tests/tests/basics.test.ts
+++ b/packages/evaluhealth-tests/tests/basics.test.ts
@@ -43,7 +43,7 @@ it("Should save the basic information in a db", async () => {
});
});
-// https://github.com/mattpocock/evalite/issues/223
+// https://github.com/kernelius-hq/evaluhealth/issues/223
it.skip("Should capture the duration as being more than 0", async () => {
await using fixture = await loadFixture("basics");
diff --git a/packages/evalite-tests/tests/columns-with-scores-traces.test.ts b/packages/evaluhealth-tests/tests/columns-with-scores-traces.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/columns-with-scores-traces.test.ts
rename to packages/evaluhealth-tests/tests/columns-with-scores-traces.test.ts
diff --git a/packages/evalite-tests/tests/columns.test.ts b/packages/evaluhealth-tests/tests/columns.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/columns.test.ts
rename to packages/evaluhealth-tests/tests/columns.test.ts
diff --git a/packages/evalite-tests/tests/config.test.ts b/packages/evaluhealth-tests/tests/config.test.ts
similarity index 82%
rename from packages/evalite-tests/tests/config.test.ts
rename to packages/evaluhealth-tests/tests/config.test.ts
index 8e1f1a07..e8376343 100644
--- a/packages/evalite-tests/tests/config.test.ts
+++ b/packages/evaluhealth-tests/tests/config.test.ts
@@ -13,7 +13,7 @@ it("Should ignore includes in a vite.config.ts", async () => {
expect(evals.Basics).toHaveLength(1);
});
-it("evalite.config.ts should override vite.config.ts for testTimeout and maxConcurrency", async () => {
+it("evaluhealth.config.ts should override vite.config.ts for testTimeout and maxConcurrency", async () => {
await using fixture = await loadFixture("config-precedence");
await fixture.run({
@@ -23,7 +23,7 @@ it("evalite.config.ts should override vite.config.ts for testTimeout and maxConc
const output = fixture.getOutput();
- // Verify evalite.config.ts values (60000, 10) override vite.config.ts values (5000, 2)
+ // Verify evaluhealth.config.ts values (60000, 10) override vite.config.ts values (5000, 2)
expect(output).toContain("testTimeout: 60000");
expect(output).toContain("maxConcurrency: 10");
@@ -34,7 +34,7 @@ it("evalite.config.ts should override vite.config.ts for testTimeout and maxConc
expect(evals["Config Precedence Test"]?.[0]?.status).toBe("success");
});
-it("setupFiles in evalite.config.ts should load environment variables", async () => {
+it("setupFiles in evaluhealth.config.ts should load environment variables", async () => {
await using fixture = await loadFixture("config-setupfiles");
await fixture.run({
diff --git a/packages/evalite-tests/tests/custom-scorer.test.ts b/packages/evaluhealth-tests/tests/custom-scorer.test.ts
similarity index 97%
rename from packages/evalite-tests/tests/custom-scorer.test.ts
rename to packages/evaluhealth-tests/tests/custom-scorer.test.ts
index 8756495d..9b4ec124 100644
--- a/packages/evalite-tests/tests/custom-scorer.test.ts
+++ b/packages/evaluhealth-tests/tests/custom-scorer.test.ts
@@ -1,6 +1,6 @@
import { expect, it } from "vitest";
import { loadFixture } from "./test-utils.js";
-import { createScorer } from "evalite";
+import { createScorer } from "evaluhealth";
import { getEvalsAsRecordViaStorage } from "./test-utils.js";
it("Should let users create custom scorers", async () => {
diff --git a/packages/evalite-tests/tests/export-static.test.ts b/packages/evaluhealth-tests/tests/export-static.test.ts
similarity index 90%
rename from packages/evalite-tests/tests/export-static.test.ts
rename to packages/evaluhealth-tests/tests/export-static.test.ts
index 14d1aeae..e85271ad 100644
--- a/packages/evalite-tests/tests/export-static.test.ts
+++ b/packages/evaluhealth-tests/tests/export-static.test.ts
@@ -1,4 +1,4 @@
-import { exportStaticUI } from "evalite/export-static";
+import { exportStaticUI } from "evaluhealth/export-static";
import { readdir, readFile } from "node:fs/promises";
import path from "node:path";
import { expect, it } from "vitest";
@@ -12,7 +12,7 @@ it("Should export all required files and directory structure", async () => {
});
// Export to a temp directory
- const exportDir = path.join(fixture.dir, "evalite-export");
+ const exportDir = path.join(fixture.dir, "evaluhealth-export");
const evals = await getEvalsAsRecordViaStorage(fixture.storage);
await exportStaticUI({
@@ -52,7 +52,7 @@ it("Should remap file paths to unique filenames", async () => {
});
// Export to a temp directory
- const exportDir = path.join(fixture.dir, "evalite-export");
+ const exportDir = path.join(fixture.dir, "evaluhealth-export");
await exportStaticUI({
storage: fixture.storage,
@@ -66,7 +66,7 @@ it("Should remap file paths to unique filenames", async () => {
// Check that file paths are remapped (should be UUID-style filenames)
const firstResult = evalJson.evaluation.results[0];
expect(firstResult.output).toMatchObject({
- __EvaliteFile: true,
+ __EvaluhealthFile: true,
path: expect.stringMatching(/^[a-f0-9-]+\.png$/),
});
@@ -80,13 +80,13 @@ it("Should remap file paths to unique filenames", async () => {
const resultJson = JSON.parse(await readFile(resultJsonPath, "utf-8"));
const trace = resultJson.result.traces[0];
expect(trace.output).toMatchObject({
- __EvaliteFile: true,
+ __EvaluhealthFile: true,
path: expect.stringMatching(/^[a-f0-9-]+\.png$/),
});
// Check columns have remapped paths
expect(firstResult.rendered_columns[0].value).toMatchObject({
- __EvaliteFile: true,
+ __EvaluhealthFile: true,
path: expect.stringMatching(/^[a-f0-9-]+\.png$/),
});
});
@@ -98,7 +98,7 @@ it("Should use default basePath of / when not specified", async () => {
mode: "run-once-and-exit",
});
- const exportDir = path.join(fixture.dir, "evalite-export");
+ const exportDir = path.join(fixture.dir, "evaluhealth-export");
await exportStaticUI({
storage: fixture.storage,
@@ -114,7 +114,7 @@ it("Should use default basePath of / when not specified", async () => {
expect(indexHtml).toContain('href="/assets/favicon.svg"');
// Should inject basePath into window config
- expect(indexHtml).toContain("window.__EVALITE_STATIC_DATA__");
+ expect(indexHtml).toContain("window.__EVALUHEALTH_STATIC_DATA__");
expect(indexHtml).toContain('basePath: "/"');
});
@@ -125,7 +125,7 @@ it("Should prefix all paths with custom basePath", async () => {
mode: "run-once-and-exit",
});
- const exportDir = path.join(fixture.dir, "evalite-export");
+ const exportDir = path.join(fixture.dir, "evaluhealth-export");
await exportStaticUI({
storage: fixture.storage,
@@ -152,7 +152,7 @@ it("Should throw error if basePath missing leading slash", async () => {
mode: "run-once-and-exit",
});
- const exportDir = path.join(fixture.dir, "evalite-export");
+ const exportDir = path.join(fixture.dir, "evaluhealth-export");
// Should throw error
await expect(
@@ -171,7 +171,7 @@ it("Should normalize basePath with trailing slash", async () => {
mode: "run-once-and-exit",
});
- const exportDir = path.join(fixture.dir, "evalite-export");
+ const exportDir = path.join(fixture.dir, "evaluhealth-export");
await exportStaticUI({
storage: fixture.storage,
@@ -194,7 +194,7 @@ it("Should handle multi-level basePath", async () => {
mode: "run-once-and-exit",
});
- const exportDir = path.join(fixture.dir, "evalite-export");
+ const exportDir = path.join(fixture.dir, "evaluhealth-export");
await exportStaticUI({
storage: fixture.storage,
@@ -222,7 +222,7 @@ it("Should rewrite /assets/ paths in JS files with custom basePath", async () =>
mode: "run-once-and-exit",
});
- const exportDir = path.join(fixture.dir, "evalite-export");
+ const exportDir = path.join(fixture.dir, "evaluhealth-export");
await exportStaticUI({
storage: fixture.storage,
diff --git a/packages/evalite-tests/tests/failing.test.ts b/packages/evaluhealth-tests/tests/failing.test.ts
similarity index 95%
rename from packages/evalite-tests/tests/failing.test.ts
rename to packages/evaluhealth-tests/tests/failing.test.ts
index 8259f5fb..eb443d44 100644
--- a/packages/evalite-tests/tests/failing.test.ts
+++ b/packages/evaluhealth-tests/tests/failing.test.ts
@@ -1,4 +1,4 @@
-import type { Evalite } from "evalite";
+import type { Evaluhealth } from "evaluhealth";
import { expect, it, vitest } from "vitest";
import { getEvalsAsRecordViaStorage, loadFixture } from "./test-utils.js";
@@ -80,7 +80,7 @@ it("Should save the result AND eval as failed in the database", async () => {
expect(evals.Failing?.[0]).toMatchObject({
name: "Failing",
- status: "fail" satisfies Evalite.Storage.Entities.EvalStatus,
+ status: "fail" satisfies Evaluhealth.Storage.Entities.EvalStatus,
results: [
{
status: "fail",
diff --git a/packages/evalite-tests/tests/files.test.ts b/packages/evaluhealth-tests/tests/files.test.ts
similarity index 87%
rename from packages/evalite-tests/tests/files.test.ts
rename to packages/evaluhealth-tests/tests/files.test.ts
index d166ec59..4351a4bf 100644
--- a/packages/evalite-tests/tests/files.test.ts
+++ b/packages/evaluhealth-tests/tests/files.test.ts
@@ -1,5 +1,5 @@
-import { EvaliteFile } from "evalite";
-import { FILES_LOCATION } from "evalite/backend-only-constants";
+import { EvaluhealthFile } from "evaluhealth";
+import { FILES_LOCATION } from "evaluhealth/backend-only-constants";
import { readdir, readFile } from "node:fs/promises";
import path from "node:path";
import { expect, it } from "vitest";
@@ -31,7 +31,7 @@ it("Should save files returned from task() in node_modules", async () => {
{
results: [
{
- output: EvaliteFile.fromPath(filePath),
+ output: EvaluhealthFile.fromPath(filePath),
},
],
},
@@ -63,7 +63,7 @@ it("Should save files reported in traces", async () => {
{
traces: [
{
- output: EvaliteFile.fromPath(filePath),
+ output: EvaluhealthFile.fromPath(filePath),
},
],
},
@@ -82,7 +82,7 @@ it("Should show the url in the CLI table", async () => {
});
expect(fixture.getOutput()).toContain(`.png`);
- expect(fixture.getOutput()).not.toContain(`__EvaliteFile`);
+ expect(fixture.getOutput()).not.toContain(`__EvaluhealthFile`);
});
it("Should let users add files to data().input and data().expected", async () => {
@@ -109,8 +109,8 @@ it("Should let users add files to data().input and data().expected", async () =>
expect(evals.FilesInInput![0]).toMatchObject({
results: [
{
- input: EvaliteFile.fromPath(filePath),
- expected: EvaliteFile.fromPath(filePath),
+ input: EvaluhealthFile.fromPath(filePath),
+ expected: EvaluhealthFile.fromPath(filePath),
},
],
});
@@ -143,7 +143,7 @@ it("Should let users add files to columns", async () => {
rendered_columns: [
{
label: "Column",
- value: EvaliteFile.fromPath(filePath),
+ value: EvaluhealthFile.fromPath(filePath),
},
],
},
@@ -178,7 +178,7 @@ it("Should let users add files to experimental_customColumns", async () => {
rendered_columns: [
{
label: "Column",
- value: EvaliteFile.fromPath(filePath),
+ value: EvaluhealthFile.fromPath(filePath),
},
],
},
diff --git a/packages/evalite-tests/tests/fixtures/ai-sdk-traces-stream/traces.eval.ts b/packages/evaluhealth-tests/tests/fixtures/ai-sdk-traces-stream/traces.eval.ts
similarity index 89%
rename from packages/evalite-tests/tests/fixtures/ai-sdk-traces-stream/traces.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/ai-sdk-traces-stream/traces.eval.ts
index aab27191..0df4e8d7 100644
--- a/packages/evalite-tests/tests/fixtures/ai-sdk-traces-stream/traces.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/ai-sdk-traces-stream/traces.eval.ts
@@ -1,8 +1,8 @@
import { streamText, simulateReadableStream } from "ai";
import { MockLanguageModelV2 } from "ai/test";
import { Levenshtein } from "autoevals";
-import { evalite } from "evalite";
-import { traceAISDKModel } from "evalite/ai-sdk";
+import { evaluhealth } from "evaluhealth";
+import { traceAISDKModel } from "evaluhealth/ai-sdk";
const model = new MockLanguageModelV2({
doStream: async (options) => ({
@@ -27,7 +27,7 @@ const model = new MockLanguageModelV2({
const tracedModel = traceAISDKModel(model);
-evalite("AI SDK Traces", {
+evaluhealth("AI SDK Traces", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/ai-sdk-traces/traces.eval.ts b/packages/evaluhealth-tests/tests/fixtures/ai-sdk-traces/traces.eval.ts
similarity index 88%
rename from packages/evalite-tests/tests/fixtures/ai-sdk-traces/traces.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/ai-sdk-traces/traces.eval.ts
index 2059f54c..b3683492 100644
--- a/packages/evalite-tests/tests/fixtures/ai-sdk-traces/traces.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/ai-sdk-traces/traces.eval.ts
@@ -1,7 +1,7 @@
import { generateText } from "ai";
import { MockLanguageModelV2 } from "ai/test";
-import { traceAISDKModel } from "evalite/ai-sdk";
-import { evalite } from "evalite";
+import { traceAISDKModel } from "evaluhealth/ai-sdk";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
const model = new MockLanguageModelV2({
@@ -27,7 +27,7 @@ const model = new MockLanguageModelV2({
const tracedModel = traceAISDKModel(model);
-evalite("AI SDK Traces", {
+evaluhealth("AI SDK Traces", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/config-includes/basics.eval.ts b/packages/evaluhealth-tests/tests/fixtures/basics/basics.eval.ts
similarity index 84%
rename from packages/evalite-tests/tests/fixtures/config-includes/basics.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/basics/basics.eval.ts
index 26f23c9f..19f798ba 100644
--- a/packages/evalite-tests/tests/fixtures/config-includes/basics.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/basics/basics.eval.ts
@@ -1,8 +1,8 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
import { setTimeout } from "node:timers/promises";
-evalite("Basics", {
+evaluhealth("Basics", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/columns-with-scores-traces/columns-with-scores-traces.eval.ts b/packages/evaluhealth-tests/tests/fixtures/columns-with-scores-traces/columns-with-scores-traces.eval.ts
similarity index 94%
rename from packages/evalite-tests/tests/fixtures/columns-with-scores-traces/columns-with-scores-traces.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/columns-with-scores-traces/columns-with-scores-traces.eval.ts
index 76a6b0ea..25719b23 100644
--- a/packages/evalite-tests/tests/fixtures/columns-with-scores-traces/columns-with-scores-traces.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/columns-with-scores-traces/columns-with-scores-traces.eval.ts
@@ -1,7 +1,7 @@
-import { evalite } from "evalite";
-import { reportTrace } from "evalite/traces";
+import { evaluhealth } from "evaluhealth";
+import { reportTrace } from "evaluhealth/traces";
-evalite("Columns with Scores and Traces", {
+evaluhealth("Columns with Scores and Traces", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/columns/columns.eval.ts b/packages/evaluhealth-tests/tests/fixtures/columns/columns.eval.ts
similarity index 89%
rename from packages/evalite-tests/tests/fixtures/columns/columns.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/columns/columns.eval.ts
index 0c56002a..88400c9f 100644
--- a/packages/evalite-tests/tests/fixtures/columns/columns.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/columns/columns.eval.ts
@@ -1,6 +1,6 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
-evalite("Columns", {
+evaluhealth("Columns", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/basics/basics.eval.ts b/packages/evaluhealth-tests/tests/fixtures/config-includes/basics.eval.ts
similarity index 84%
rename from packages/evalite-tests/tests/fixtures/basics/basics.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/config-includes/basics.eval.ts
index 26f23c9f..19f798ba 100644
--- a/packages/evalite-tests/tests/fixtures/basics/basics.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/config-includes/basics.eval.ts
@@ -1,8 +1,8 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
import { setTimeout } from "node:timers/promises";
-evalite("Basics", {
+evaluhealth("Basics", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/config-includes/vite.config.ts b/packages/evaluhealth-tests/tests/fixtures/config-includes/vite.config.ts
similarity index 100%
rename from packages/evalite-tests/tests/fixtures/config-includes/vite.config.ts
rename to packages/evaluhealth-tests/tests/fixtures/config-includes/vite.config.ts
diff --git a/packages/evalite-tests/tests/fixtures/config-precedence/evalite.config.ts b/packages/evaluhealth-tests/tests/fixtures/config-precedence/evaluhealth.config.ts
similarity index 60%
rename from packages/evalite-tests/tests/fixtures/config-precedence/evalite.config.ts
rename to packages/evaluhealth-tests/tests/fixtures/config-precedence/evaluhealth.config.ts
index bd5bac57..2c7dfc18 100644
--- a/packages/evalite-tests/tests/fixtures/config-precedence/evalite.config.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/config-precedence/evaluhealth.config.ts
@@ -1,4 +1,4 @@
-import { defineConfig } from "evalite/config";
+import { defineConfig } from "evaluhealth/config";
export default defineConfig({
testTimeout: 60000,
diff --git a/packages/evalite-tests/tests/fixtures/config-precedence/test.eval.ts b/packages/evaluhealth-tests/tests/fixtures/config-precedence/test.eval.ts
similarity index 72%
rename from packages/evalite-tests/tests/fixtures/config-precedence/test.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/config-precedence/test.eval.ts
index 4e797e7e..8ee26a33 100644
--- a/packages/evalite-tests/tests/fixtures/config-precedence/test.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/config-precedence/test.eval.ts
@@ -1,6 +1,6 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
-evalite("Config Precedence Test", {
+evaluhealth("Config Precedence Test", {
data: () => [{ input: "a", expected: "a" }],
task: async (input) => {
// Simulate a task that takes some time
diff --git a/packages/evaluhealth-tests/tests/fixtures/config-precedence/vite.config.ts b/packages/evaluhealth-tests/tests/fixtures/config-precedence/vite.config.ts
new file mode 100644
index 00000000..781f34a5
--- /dev/null
+++ b/packages/evaluhealth-tests/tests/fixtures/config-precedence/vite.config.ts
@@ -0,0 +1,8 @@
+import { defineConfig } from "vitest/config";
+
+export default defineConfig({
+ test: {
+ testTimeout: 5000, // Should be overridden by evaluhealth.config.ts (60000)
+ maxConcurrency: 2, // Should be overridden by evaluhealth.config.ts (10)
+ },
+});
diff --git a/packages/evalite-tests/tests/fixtures/config-setupfiles/evalite.config.ts b/packages/evaluhealth-tests/tests/fixtures/config-setupfiles/evaluhealth.config.ts
similarity index 56%
rename from packages/evalite-tests/tests/fixtures/config-setupfiles/evalite.config.ts
rename to packages/evaluhealth-tests/tests/fixtures/config-setupfiles/evaluhealth.config.ts
index e1bb029b..65954e41 100644
--- a/packages/evalite-tests/tests/fixtures/config-setupfiles/evalite.config.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/config-setupfiles/evaluhealth.config.ts
@@ -1,4 +1,4 @@
-import { defineConfig } from "evalite/config";
+import { defineConfig } from "evaluhealth/config";
export default defineConfig({
setupFiles: ["./setup.ts"],
diff --git a/packages/evalite-tests/tests/fixtures/config-setupfiles/setup.ts b/packages/evaluhealth-tests/tests/fixtures/config-setupfiles/setup.ts
similarity index 100%
rename from packages/evalite-tests/tests/fixtures/config-setupfiles/setup.ts
rename to packages/evaluhealth-tests/tests/fixtures/config-setupfiles/setup.ts
diff --git a/packages/evalite-tests/tests/fixtures/config-setupfiles/test.eval.ts b/packages/evaluhealth-tests/tests/fixtures/config-setupfiles/test.eval.ts
similarity index 77%
rename from packages/evalite-tests/tests/fixtures/config-setupfiles/test.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/config-setupfiles/test.eval.ts
index 405c2c3d..f57f86a9 100644
--- a/packages/evalite-tests/tests/fixtures/config-setupfiles/test.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/config-setupfiles/test.eval.ts
@@ -1,7 +1,7 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
-evalite("Env Var Test", {
+evaluhealth("Env Var Test", {
data: () => [
{
input: "test",
diff --git a/packages/evalite-tests/tests/fixtures/custom-scorer/index.eval.ts b/packages/evaluhealth-tests/tests/fixtures/custom-scorer/index.eval.ts
similarity index 85%
rename from packages/evalite-tests/tests/fixtures/custom-scorer/index.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/custom-scorer/index.eval.ts
index 62a83897..00860cbd 100644
--- a/packages/evalite-tests/tests/fixtures/custom-scorer/index.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/custom-scorer/index.eval.ts
@@ -1,7 +1,7 @@
-import { createScorer, evalite } from "evalite";
+import { createScorer, evaluhealth } from "evaluhealth";
import { setTimeout } from "node:timers/promises";
-evalite("Index", {
+evaluhealth("Index", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/evalite-config/basics.eval.ts b/packages/evaluhealth-tests/tests/fixtures/evaluhealth-config/basics.eval.ts
similarity index 78%
rename from packages/evalite-tests/tests/fixtures/evalite-config/basics.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/evaluhealth-config/basics.eval.ts
index 99455e41..0e3a0858 100644
--- a/packages/evalite-tests/tests/fixtures/evalite-config/basics.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/evaluhealth-config/basics.eval.ts
@@ -1,7 +1,7 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
-evalite("Basics", {
+evaluhealth("Basics", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/evalite-config/evalite.config.ts b/packages/evaluhealth-tests/tests/fixtures/evaluhealth-config/evaluhealth.config.ts
similarity index 71%
rename from packages/evalite-tests/tests/fixtures/evalite-config/evalite.config.ts
rename to packages/evaluhealth-tests/tests/fixtures/evaluhealth-config/evaluhealth.config.ts
index 083c2b15..ab72bb20 100644
--- a/packages/evalite-tests/tests/fixtures/evalite-config/evalite.config.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/evaluhealth-config/evaluhealth.config.ts
@@ -1,4 +1,4 @@
-import { defineConfig } from "evalite/config";
+import { defineConfig } from "evaluhealth/config";
export default defineConfig({
hideTable: true,
diff --git a/packages/evalite-tests/tests/fixtures/evalite-timeout-config/basics.eval.ts b/packages/evaluhealth-tests/tests/fixtures/evaluhealth-timeout-config/basics.eval.ts
similarity index 81%
rename from packages/evalite-tests/tests/fixtures/evalite-timeout-config/basics.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/evaluhealth-timeout-config/basics.eval.ts
index 54a13112..bbe9c9ff 100644
--- a/packages/evalite-tests/tests/fixtures/evalite-timeout-config/basics.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/evaluhealth-timeout-config/basics.eval.ts
@@ -1,7 +1,7 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
-evalite("Basics", {
+evaluhealth("Basics", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/evalite-timeout-config/evalite.config.ts b/packages/evaluhealth-tests/tests/fixtures/evaluhealth-timeout-config/evaluhealth.config.ts
similarity index 51%
rename from packages/evalite-tests/tests/fixtures/evalite-timeout-config/evalite.config.ts
rename to packages/evaluhealth-tests/tests/fixtures/evaluhealth-timeout-config/evaluhealth.config.ts
index ac6dbe1a..688b4620 100644
--- a/packages/evalite-tests/tests/fixtures/evalite-timeout-config/evalite.config.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/evaluhealth-timeout-config/evaluhealth.config.ts
@@ -1,4 +1,4 @@
-import { defineConfig } from "evalite/config";
+import { defineConfig } from "evaluhealth/config";
export default defineConfig({
testTimeout: 10,
diff --git a/packages/evalite-tests/tests/fixtures/experimental_columns/files-4.eval.ts b/packages/evaluhealth-tests/tests/fixtures/experimental_columns/files-4.eval.ts
similarity index 76%
rename from packages/evalite-tests/tests/fixtures/experimental_columns/files-4.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/experimental_columns/files-4.eval.ts
index 98a86777..1137be5f 100644
--- a/packages/evalite-tests/tests/fixtures/experimental_columns/files-4.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/experimental_columns/files-4.eval.ts
@@ -1,9 +1,9 @@
-import { evalite } from "evalite";
-import { reportTrace } from "evalite/traces";
+import { evaluhealth } from "evaluhealth";
+import { reportTrace } from "evaluhealth/traces";
import { readFileSync } from "node:fs";
import path from "node:path";
-evalite("experimental_customColumns", {
+evaluhealth("experimental_customColumns", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/files/test.png b/packages/evaluhealth-tests/tests/fixtures/experimental_columns/test.png
similarity index 100%
rename from packages/evalite-tests/tests/fixtures/files/test.png
rename to packages/evaluhealth-tests/tests/fixtures/experimental_columns/test.png
diff --git a/packages/evalite-tests/tests/fixtures/export/export.eval.ts b/packages/evaluhealth-tests/tests/fixtures/export/export.eval.ts
similarity index 57%
rename from packages/evalite-tests/tests/fixtures/export/export.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/export/export.eval.ts
index bfb17d0e..e63b97ae 100644
--- a/packages/evalite-tests/tests/fixtures/export/export.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/export/export.eval.ts
@@ -1,15 +1,15 @@
-import { evalite, EvaliteFile, type Evalite } from "evalite";
+import { evaluhealth, EvaluhealthFile, type Evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
-import { reportTrace, reportTraceLocalStorage } from "evalite/traces";
+import { reportTrace, reportTraceLocalStorage } from "evaluhealth/traces";
import path from "path";
-evalite("Export", {
+evaluhealth("Export", {
data: () => {
const imagePath = path.join(import.meta.dirname, "test.png");
return [
{
- input: EvaliteFile.fromPath(imagePath),
- expected: EvaliteFile.fromPath(imagePath),
+ input: EvaluhealthFile.fromPath(imagePath),
+ expected: EvaluhealthFile.fromPath(imagePath),
},
];
},
@@ -19,12 +19,12 @@ evalite("Export", {
// Report a trace with file
reportTrace({
input: "trace input",
- output: EvaliteFile.fromPath(imagePath),
+ output: EvaluhealthFile.fromPath(imagePath),
start: 0,
end: 100,
});
- return EvaliteFile.fromPath(imagePath);
+ return EvaluhealthFile.fromPath(imagePath);
},
scorers: [],
columns: () => {
@@ -32,7 +32,7 @@ evalite("Export", {
return [
{
label: "FileColumn",
- value: EvaliteFile.fromPath(imagePath),
+ value: EvaluhealthFile.fromPath(imagePath),
},
];
},
diff --git a/packages/evalite-tests/tests/fixtures/export/test.png b/packages/evaluhealth-tests/tests/fixtures/export/test.png
similarity index 100%
rename from packages/evalite-tests/tests/fixtures/export/test.png
rename to packages/evaluhealth-tests/tests/fixtures/export/test.png
diff --git a/packages/evalite-tests/tests/fixtures/failing-test-in-data/failing-test.eval.ts b/packages/evaluhealth-tests/tests/fixtures/failing-test-in-data/failing-test.eval.ts
similarity index 77%
rename from packages/evalite-tests/tests/fixtures/failing-test-in-data/failing-test.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/failing-test-in-data/failing-test.eval.ts
index 7b61d524..36a1353f 100644
--- a/packages/evalite-tests/tests/fixtures/failing-test-in-data/failing-test.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/failing-test-in-data/failing-test.eval.ts
@@ -1,8 +1,8 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
import { setTimeout } from "timers/promises";
-evalite("Failing In Data", {
+evaluhealth("Failing In Data", {
data: () => {
throw new Error("This is a failing test");
},
diff --git a/packages/evalite-tests/tests/fixtures/watch-mode-fail/failing-test.eval.ts b/packages/evaluhealth-tests/tests/fixtures/failing-test/failing-test.eval.ts
similarity index 81%
rename from packages/evalite-tests/tests/fixtures/watch-mode-fail/failing-test.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/failing-test/failing-test.eval.ts
index f12b0fc8..b7e717fd 100644
--- a/packages/evalite-tests/tests/fixtures/watch-mode-fail/failing-test.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/failing-test/failing-test.eval.ts
@@ -1,8 +1,8 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
import { setTimeout } from "timers/promises";
-evalite("Failing", {
+evaluhealth("Failing", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/module-level-error/vite.config.ts b/packages/evaluhealth-tests/tests/fixtures/failing-test/vite.config.ts
similarity index 100%
rename from packages/evalite-tests/tests/fixtures/module-level-error/vite.config.ts
rename to packages/evaluhealth-tests/tests/fixtures/failing-test/vite.config.ts
diff --git a/packages/evalite-tests/tests/fixtures/files/files-1.eval.ts b/packages/evaluhealth-tests/tests/fixtures/files/files-1.eval.ts
similarity index 70%
rename from packages/evalite-tests/tests/fixtures/files/files-1.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/files/files-1.eval.ts
index 0cba50ae..4c5dcc65 100644
--- a/packages/evalite-tests/tests/fixtures/files/files-1.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/files/files-1.eval.ts
@@ -1,9 +1,9 @@
-import { evalite } from "evalite";
-import { reportTrace } from "evalite/traces";
+import { evaluhealth } from "evaluhealth";
+import { reportTrace } from "evaluhealth/traces";
import { readFileSync } from "node:fs";
import path from "node:path";
-evalite("Files", {
+evaluhealth("Files", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/files/files-2.eval.ts b/packages/evaluhealth-tests/tests/fixtures/files/files-2.eval.ts
similarity index 74%
rename from packages/evalite-tests/tests/fixtures/files/files-2.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/files/files-2.eval.ts
index 185a787c..466d8cf6 100644
--- a/packages/evalite-tests/tests/fixtures/files/files-2.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/files/files-2.eval.ts
@@ -1,9 +1,9 @@
-import { evalite } from "evalite";
-import { reportTrace } from "evalite/traces";
+import { evaluhealth } from "evaluhealth";
+import { reportTrace } from "evaluhealth/traces";
import { readFileSync } from "node:fs";
import path from "node:path";
-evalite("FilesInInput", {
+evaluhealth("FilesInInput", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/files/files-3.eval.ts b/packages/evaluhealth-tests/tests/fixtures/files/files-3.eval.ts
similarity index 76%
rename from packages/evalite-tests/tests/fixtures/files/files-3.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/files/files-3.eval.ts
index 58b73756..7d78f509 100644
--- a/packages/evalite-tests/tests/fixtures/files/files-3.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/files/files-3.eval.ts
@@ -1,9 +1,9 @@
-import { evalite } from "evalite";
-import { reportTrace } from "evalite/traces";
+import { evaluhealth } from "evaluhealth";
+import { reportTrace } from "evaluhealth/traces";
import { readFileSync } from "node:fs";
import path from "node:path";
-evalite("FilesWithTraces", {
+evaluhealth("FilesWithTraces", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/files/files-4.eval.ts b/packages/evaluhealth-tests/tests/fixtures/files/files-4.eval.ts
similarity index 76%
rename from packages/evalite-tests/tests/fixtures/files/files-4.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/files/files-4.eval.ts
index a28ebe47..d4ebbdff 100644
--- a/packages/evalite-tests/tests/fixtures/files/files-4.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/files/files-4.eval.ts
@@ -1,9 +1,9 @@
-import { evalite } from "evalite";
-import { reportTrace } from "evalite/traces";
+import { evaluhealth } from "evaluhealth";
+import { reportTrace } from "evaluhealth/traces";
import { readFileSync } from "node:fs";
import path from "node:path";
-evalite("FilesWithColumns", {
+evaluhealth("FilesWithColumns", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/experimental_columns/test.png b/packages/evaluhealth-tests/tests/fixtures/files/test.png
similarity index 100%
rename from packages/evalite-tests/tests/fixtures/experimental_columns/test.png
rename to packages/evaluhealth-tests/tests/fixtures/files/test.png
diff --git a/packages/evalite-tests/tests/fixtures/long-text/long-text.eval.ts b/packages/evaluhealth-tests/tests/fixtures/long-text/long-text.eval.ts
similarity index 94%
rename from packages/evalite-tests/tests/fixtures/long-text/long-text.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/long-text/long-text.eval.ts
index 3dd82258..109cc260 100644
--- a/packages/evalite-tests/tests/fixtures/long-text/long-text.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/long-text/long-text.eval.ts
@@ -1,7 +1,7 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
-evalite("Long Text", {
+evaluhealth("Long Text", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/module-level-error/module-level-error.eval.ts b/packages/evaluhealth-tests/tests/fixtures/module-level-error/module-level-error.eval.ts
similarity index 73%
rename from packages/evalite-tests/tests/fixtures/module-level-error/module-level-error.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/module-level-error/module-level-error.eval.ts
index 2e97f581..76608fa5 100644
--- a/packages/evalite-tests/tests/fixtures/module-level-error/module-level-error.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/module-level-error/module-level-error.eval.ts
@@ -1,6 +1,6 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
-evalite("Failing", {
+evaluhealth("Failing", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/failing-test/vite.config.ts b/packages/evaluhealth-tests/tests/fixtures/module-level-error/vite.config.ts
similarity index 100%
rename from packages/evalite-tests/tests/fixtures/failing-test/vite.config.ts
rename to packages/evaluhealth-tests/tests/fixtures/module-level-error/vite.config.ts
diff --git a/packages/evalite-tests/tests/fixtures/much-data/much-data.eval.ts b/packages/evaluhealth-tests/tests/fixtures/much-data/much-data.eval.ts
similarity index 89%
rename from packages/evalite-tests/tests/fixtures/much-data/much-data.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/much-data/much-data.eval.ts
index 858ee44f..5e6a5bcd 100644
--- a/packages/evalite-tests/tests/fixtures/much-data/much-data.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/much-data/much-data.eval.ts
@@ -1,8 +1,8 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
import { setTimeout } from "node:timers/promises";
-evalite("Much Data", {
+evaluhealth("Much Data", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/multi/multi-1.eval.ts b/packages/evaluhealth-tests/tests/fixtures/multi/multi-1.eval.ts
similarity index 83%
rename from packages/evalite-tests/tests/fixtures/multi/multi-1.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/multi/multi-1.eval.ts
index 613c7bba..c7d16f4f 100644
--- a/packages/evalite-tests/tests/fixtures/multi/multi-1.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/multi/multi-1.eval.ts
@@ -1,8 +1,8 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
import { setTimeout } from "node:timers/promises";
-evalite("Multiple 1", {
+evaluhealth("Multiple 1", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/multi/multi-2.eval.ts b/packages/evaluhealth-tests/tests/fixtures/multi/multi-2.eval.ts
similarity index 83%
rename from packages/evalite-tests/tests/fixtures/multi/multi-2.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/multi/multi-2.eval.ts
index a33d5f31..d6f170c8 100644
--- a/packages/evalite-tests/tests/fixtures/multi/multi-2.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/multi/multi-2.eval.ts
@@ -1,8 +1,8 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
import { setTimeout } from "node:timers/promises";
-evalite("Multiple 2", {
+evaluhealth("Multiple 2", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/multi/multi-3.eval.ts b/packages/evaluhealth-tests/tests/fixtures/multi/multi-3.eval.ts
similarity index 86%
rename from packages/evalite-tests/tests/fixtures/multi/multi-3.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/multi/multi-3.eval.ts
index 991f58af..55aa3bc9 100644
--- a/packages/evalite-tests/tests/fixtures/multi/multi-3.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/multi/multi-3.eval.ts
@@ -1,8 +1,8 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
import { setTimeout } from "node:timers/promises";
-evalite("Multiple 3", {
+evaluhealth("Multiple 3", {
data: () => {
return [
{
@@ -19,7 +19,7 @@ evalite("Multiple 3", {
scorers: [Levenshtein],
});
-evalite("Multiple 4", {
+evaluhealth("Multiple 4", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/no-scorers/no-scorers.eval.ts b/packages/evaluhealth-tests/tests/fixtures/no-scorers/no-scorers.eval.ts
similarity index 81%
rename from packages/evalite-tests/tests/fixtures/no-scorers/no-scorers.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/no-scorers/no-scorers.eval.ts
index 0a7697ea..c50b7019 100644
--- a/packages/evalite-tests/tests/fixtures/no-scorers/no-scorers.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/no-scorers/no-scorers.eval.ts
@@ -1,6 +1,6 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
-evalite("No Scorers", {
+evaluhealth("No Scorers", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/non-serializable-data/non-serializable-data.eval.ts b/packages/evaluhealth-tests/tests/fixtures/non-serializable-data/non-serializable-data.eval.ts
similarity index 87%
rename from packages/evalite-tests/tests/fixtures/non-serializable-data/non-serializable-data.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/non-serializable-data/non-serializable-data.eval.ts
index f1520217..3f8ea735 100644
--- a/packages/evalite-tests/tests/fixtures/non-serializable-data/non-serializable-data.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/non-serializable-data/non-serializable-data.eval.ts
@@ -1,4 +1,4 @@
-import { evalite, createScorer } from "evalite";
+import { evaluhealth, createScorer } from "evaluhealth";
// Simulates using a Zod schema or other validator with functions
const mockValidator = {
@@ -6,7 +6,7 @@ const mockValidator = {
parse: (value: string) => value.trim(),
};
-evalite("Non-serializable data", {
+evaluhealth("Non-serializable data", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/objects/objects.eval.ts b/packages/evaluhealth-tests/tests/fixtures/objects/objects.eval.ts
similarity index 86%
rename from packages/evalite-tests/tests/fixtures/objects/objects.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/objects/objects.eval.ts
index a8895698..3d83032b 100644
--- a/packages/evalite-tests/tests/fixtures/objects/objects.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/objects/objects.eval.ts
@@ -1,11 +1,11 @@
-import { createScorer, evalite } from "evalite";
+import { createScorer, evaluhealth } from "evaluhealth";
type Shape = {
input: string;
output: number | undefined;
};
-evalite("Basics", {
+evaluhealth("Basics", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/only-flag-multiple/only-flag-multiple.eval.ts b/packages/evaluhealth-tests/tests/fixtures/only-flag-multiple/only-flag-multiple.eval.ts
similarity index 86%
rename from packages/evalite-tests/tests/fixtures/only-flag-multiple/only-flag-multiple.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/only-flag-multiple/only-flag-multiple.eval.ts
index 28a6f562..d6197c81 100644
--- a/packages/evalite-tests/tests/fixtures/only-flag-multiple/only-flag-multiple.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/only-flag-multiple/only-flag-multiple.eval.ts
@@ -1,7 +1,7 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
-evalite("Only Flag Multiple", {
+evaluhealth("Only Flag Multiple", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/only-flag-none/only-flag-none.eval.ts b/packages/evaluhealth-tests/tests/fixtures/only-flag-none/only-flag-none.eval.ts
similarity index 82%
rename from packages/evalite-tests/tests/fixtures/only-flag-none/only-flag-none.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/only-flag-none/only-flag-none.eval.ts
index 6422791b..e9e7fa29 100644
--- a/packages/evalite-tests/tests/fixtures/only-flag-none/only-flag-none.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/only-flag-none/only-flag-none.eval.ts
@@ -1,7 +1,7 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
-evalite("Only Flag None", {
+evaluhealth("Only Flag None", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/only-flag-single/only-flag-single.eval.ts b/packages/evaluhealth-tests/tests/fixtures/only-flag-single/only-flag-single.eval.ts
similarity index 82%
rename from packages/evalite-tests/tests/fixtures/only-flag-single/only-flag-single.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/only-flag-single/only-flag-single.eval.ts
index b458ba28..fcc26e4d 100644
--- a/packages/evalite-tests/tests/fixtures/only-flag-single/only-flag-single.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/only-flag-single/only-flag-single.eval.ts
@@ -1,7 +1,7 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
-evalite("Only Flag Single", {
+evaluhealth("Only Flag Single", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/only-flag-variants/only-flag-variants.eval.ts b/packages/evaluhealth-tests/tests/fixtures/only-flag-variants/only-flag-variants.eval.ts
similarity index 89%
rename from packages/evalite-tests/tests/fixtures/only-flag-variants/only-flag-variants.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/only-flag-variants/only-flag-variants.eval.ts
index 9f67ba1c..714e15ff 100644
--- a/packages/evalite-tests/tests/fixtures/only-flag-variants/only-flag-variants.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/only-flag-variants/only-flag-variants.eval.ts
@@ -1,7 +1,7 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
-evalite.each([
+evaluhealth.each([
{ name: "variant-a", input: "prefix-a-" },
{ name: "variant-b", input: "prefix-b-" },
])("Only Flag Variants", {
diff --git a/packages/evalite-tests/tests/fixtures/paths/should-not-run.eval.ts b/packages/evaluhealth-tests/tests/fixtures/paths/should-not-run.eval.ts
similarity index 83%
rename from packages/evalite-tests/tests/fixtures/paths/should-not-run.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/paths/should-not-run.eval.ts
index 6601ee04..3a41a80d 100644
--- a/packages/evalite-tests/tests/fixtures/paths/should-not-run.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/paths/should-not-run.eval.ts
@@ -1,8 +1,8 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
import { setTimeout } from "node:timers/promises";
-evalite("Should Not Run", {
+evaluhealth("Should Not Run", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/paths/should-run.eval.ts b/packages/evaluhealth-tests/tests/fixtures/paths/should-run.eval.ts
similarity index 83%
rename from packages/evalite-tests/tests/fixtures/paths/should-run.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/paths/should-run.eval.ts
index 4b13c596..2cca4d04 100644
--- a/packages/evalite-tests/tests/fixtures/paths/should-run.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/paths/should-run.eval.ts
@@ -1,8 +1,8 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
import { setTimeout } from "node:timers/promises";
-evalite("Should Run", {
+evaluhealth("Should Run", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/polymorphic-data/polymorphic.eval.ts b/packages/evaluhealth-tests/tests/fixtures/polymorphic-data/polymorphic.eval.ts
similarity index 82%
rename from packages/evalite-tests/tests/fixtures/polymorphic-data/polymorphic.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/polymorphic-data/polymorphic.eval.ts
index d766f8fa..70b277f6 100644
--- a/packages/evalite-tests/tests/fixtures/polymorphic-data/polymorphic.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/polymorphic-data/polymorphic.eval.ts
@@ -1,8 +1,8 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
// Test with direct array data (new polymorphic feature)
-evalite("Direct Array Data", {
+evaluhealth("Direct Array Data", {
data: [
{
input: "test",
@@ -16,7 +16,7 @@ evalite("Direct Array Data", {
});
// Test with function data (existing feature)
-evalite("Function Data", {
+evaluhealth("Function Data", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/stream/file.txt b/packages/evaluhealth-tests/tests/fixtures/stream/file.txt
similarity index 100%
rename from packages/evalite-tests/tests/fixtures/stream/file.txt
rename to packages/evaluhealth-tests/tests/fixtures/stream/file.txt
diff --git a/packages/evalite-tests/tests/fixtures/stream/stream.eval.ts b/packages/evaluhealth-tests/tests/fixtures/stream/stream.eval.ts
similarity index 87%
rename from packages/evalite-tests/tests/fixtures/stream/stream.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/stream/stream.eval.ts
index dfcb11f0..41e67240 100644
--- a/packages/evalite-tests/tests/fixtures/stream/stream.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/stream/stream.eval.ts
@@ -1,10 +1,10 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
import { setTimeout } from "node:timers/promises";
import { createReadStream } from "node:fs";
import path from "node:path";
-evalite("Stream", {
+evaluhealth("Stream", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/test-modifiers-regular/test-modifiers.eval.ts b/packages/evaluhealth-tests/tests/fixtures/test-modifiers-regular/test-modifiers.eval.ts
similarity index 81%
rename from packages/evalite-tests/tests/fixtures/test-modifiers-regular/test-modifiers.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/test-modifiers-regular/test-modifiers.eval.ts
index e6c5b2ed..356f3b30 100644
--- a/packages/evalite-tests/tests/fixtures/test-modifiers-regular/test-modifiers.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/test-modifiers-regular/test-modifiers.eval.ts
@@ -1,6 +1,6 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
-evalite("Regular Test 1", {
+evaluhealth("Regular Test 1", {
data: () => {
console.log("opts.data() called in Regular Test 1");
return [{ input: "1", expected: "1" }];
@@ -11,7 +11,7 @@ evalite("Regular Test 1", {
scorers: [],
});
-evalite("Regular Test 2", {
+evaluhealth("Regular Test 2", {
data: () => {
console.log("opts.data() called in Regular Test 2");
return [{ input: "2", expected: "2" }];
@@ -22,7 +22,7 @@ evalite("Regular Test 2", {
scorers: [],
});
-evalite("Regular Test 3", {
+evaluhealth("Regular Test 3", {
data: () => {
console.log("opts.data() called in Regular Test 3");
return [{ input: "3", expected: "3" }];
diff --git a/packages/evalite-tests/tests/fixtures/test-modifiers-skipped/test-modifiers.eval.ts b/packages/evaluhealth-tests/tests/fixtures/test-modifiers-skipped/test-modifiers.eval.ts
similarity index 82%
rename from packages/evalite-tests/tests/fixtures/test-modifiers-skipped/test-modifiers.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/test-modifiers-skipped/test-modifiers.eval.ts
index cc906629..be5164ff 100644
--- a/packages/evalite-tests/tests/fixtures/test-modifiers-skipped/test-modifiers.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/test-modifiers-skipped/test-modifiers.eval.ts
@@ -1,6 +1,6 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
-evalite("Regular Test", {
+evaluhealth("Regular Test", {
data: () => {
console.log("opts.data() called in Regular Test");
return [{ input: "regular", expected: "regular" }];
@@ -11,7 +11,7 @@ evalite("Regular Test", {
scorers: [],
});
-evalite.skip("Skipped Test", {
+evaluhealth.skip("Skipped Test", {
data: () => {
// This function should not be called because the test is skipped.
console.log("opts.data() called in Skipped Test");
diff --git a/packages/evalite-tests/tests/fixtures/threshold/basics.eval.ts b/packages/evaluhealth-tests/tests/fixtures/threshold/basics.eval.ts
similarity index 76%
rename from packages/evalite-tests/tests/fixtures/threshold/basics.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/threshold/basics.eval.ts
index 99e4a54d..dddecde3 100644
--- a/packages/evalite-tests/tests/fixtures/threshold/basics.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/threshold/basics.eval.ts
@@ -1,6 +1,6 @@
-import { createScorer, evalite } from "evalite";
+import { createScorer, evaluhealth } from "evaluhealth";
-evalite("Basics", {
+evaluhealth("Basics", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/timeout/timeout.eval.ts b/packages/evaluhealth-tests/tests/fixtures/timeout/timeout.eval.ts
similarity index 83%
rename from packages/evalite-tests/tests/fixtures/timeout/timeout.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/timeout/timeout.eval.ts
index d508689a..fe4da707 100644
--- a/packages/evalite-tests/tests/fixtures/timeout/timeout.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/timeout/timeout.eval.ts
@@ -1,6 +1,6 @@
-import { createScorer, evalite } from "evalite";
+import { createScorer, evaluhealth } from "evaluhealth";
-evalite("Timeout", {
+evaluhealth("Timeout", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/timeout/vite.config.ts b/packages/evaluhealth-tests/tests/fixtures/timeout/vite.config.ts
similarity index 100%
rename from packages/evalite-tests/tests/fixtures/timeout/vite.config.ts
rename to packages/evaluhealth-tests/tests/fixtures/timeout/vite.config.ts
diff --git a/packages/evalite-tests/tests/fixtures/traces/traces.eval.ts b/packages/evaluhealth-tests/tests/fixtures/traces/traces.eval.ts
similarity index 81%
rename from packages/evalite-tests/tests/fixtures/traces/traces.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/traces/traces.eval.ts
index a898a517..46d46a6f 100644
--- a/packages/evalite-tests/tests/fixtures/traces/traces.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/traces/traces.eval.ts
@@ -1,8 +1,8 @@
-import { evalite } from "evalite";
-import { reportTrace } from "evalite/traces";
+import { evaluhealth } from "evaluhealth";
+import { reportTrace } from "evaluhealth/traces";
import { Levenshtein } from "autoevals";
-evalite("Traces", {
+evaluhealth("Traces", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/fixtures/trial-count-config/evalite.config.ts b/packages/evaluhealth-tests/tests/fixtures/trial-count-config/evaluhealth.config.ts
similarity index 50%
rename from packages/evalite-tests/tests/fixtures/trial-count-config/evalite.config.ts
rename to packages/evaluhealth-tests/tests/fixtures/trial-count-config/evaluhealth.config.ts
index 964a4e15..4209256a 100644
--- a/packages/evalite-tests/tests/fixtures/trial-count-config/evalite.config.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/trial-count-config/evaluhealth.config.ts
@@ -1,4 +1,4 @@
-import { defineConfig } from "evalite/config";
+import { defineConfig } from "evaluhealth/config";
export default defineConfig({
trialCount: 5,
diff --git a/packages/evalite-tests/tests/fixtures/trial-count-config/test.eval.ts b/packages/evaluhealth-tests/tests/fixtures/trial-count-config/test.eval.ts
similarity index 55%
rename from packages/evalite-tests/tests/fixtures/trial-count-config/test.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/trial-count-config/test.eval.ts
index 8e413126..5ddcd5b6 100644
--- a/packages/evalite-tests/tests/fixtures/trial-count-config/test.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/trial-count-config/test.eval.ts
@@ -1,6 +1,6 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
-evalite("Config Trial Count", {
+evaluhealth("Config Trial Count", {
data: () => [{ input: "x", expected: "x" }],
task: async (input) => input,
scorers: [],
diff --git a/packages/evalite-tests/tests/fixtures/trial-count-precedence/evalite.config.ts b/packages/evaluhealth-tests/tests/fixtures/trial-count-precedence/evaluhealth.config.ts
similarity index 50%
rename from packages/evalite-tests/tests/fixtures/trial-count-precedence/evalite.config.ts
rename to packages/evaluhealth-tests/tests/fixtures/trial-count-precedence/evaluhealth.config.ts
index 561c8a93..e291ef25 100644
--- a/packages/evalite-tests/tests/fixtures/trial-count-precedence/evalite.config.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/trial-count-precedence/evaluhealth.config.ts
@@ -1,4 +1,4 @@
-import { defineConfig } from "evalite/config";
+import { defineConfig } from "evaluhealth/config";
export default defineConfig({
trialCount: 2,
diff --git a/packages/evalite-tests/tests/fixtures/trial-count-precedence/test.eval.ts b/packages/evaluhealth-tests/tests/fixtures/trial-count-precedence/test.eval.ts
similarity index 67%
rename from packages/evalite-tests/tests/fixtures/trial-count-precedence/test.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/trial-count-precedence/test.eval.ts
index 53b23beb..c06b1849 100644
--- a/packages/evalite-tests/tests/fixtures/trial-count-precedence/test.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/trial-count-precedence/test.eval.ts
@@ -1,6 +1,6 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
-evalite("Precedence Test", {
+evaluhealth("Precedence Test", {
data: () => [{ input: "a", expected: "a" }],
task: async (input) => input,
scorers: [],
diff --git a/packages/evalite-tests/tests/fixtures/trial-count/trial-count.eval.ts b/packages/evaluhealth-tests/tests/fixtures/trial-count/trial-count.eval.ts
similarity index 78%
rename from packages/evalite-tests/tests/fixtures/trial-count/trial-count.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/trial-count/trial-count.eval.ts
index 6a2394fe..951fa4cf 100644
--- a/packages/evalite-tests/tests/fixtures/trial-count/trial-count.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/trial-count/trial-count.eval.ts
@@ -1,6 +1,6 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
-evalite("Trial Count Test", {
+evaluhealth("Trial Count Test", {
data: () => [
{ input: "a", expected: "a" },
{ input: "b", expected: "b" },
diff --git a/packages/evalite-tests/tests/fixtures/variants/variants.eval.ts b/packages/evaluhealth-tests/tests/fixtures/variants/variants.eval.ts
similarity index 87%
rename from packages/evalite-tests/tests/fixtures/variants/variants.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/variants/variants.eval.ts
index 602128b6..94838935 100644
--- a/packages/evalite-tests/tests/fixtures/variants/variants.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/variants/variants.eval.ts
@@ -1,7 +1,7 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
-evalite.each([
+evaluhealth.each([
{ name: "Variant A", input: { suffix: "a" } },
{ name: "Variant B", input: { suffix: "b" } },
{ name: "Variant C", input: { suffix: "c" } },
diff --git a/packages/evalite-tests/tests/fixtures/failing-test/failing-test.eval.ts b/packages/evaluhealth-tests/tests/fixtures/watch-mode-fail/failing-test.eval.ts
similarity index 81%
rename from packages/evalite-tests/tests/fixtures/failing-test/failing-test.eval.ts
rename to packages/evaluhealth-tests/tests/fixtures/watch-mode-fail/failing-test.eval.ts
index f12b0fc8..b7e717fd 100644
--- a/packages/evalite-tests/tests/fixtures/failing-test/failing-test.eval.ts
+++ b/packages/evaluhealth-tests/tests/fixtures/watch-mode-fail/failing-test.eval.ts
@@ -1,8 +1,8 @@
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
import { Levenshtein } from "autoevals";
import { setTimeout } from "timers/promises";
-evalite("Failing", {
+evaluhealth("Failing", {
data: () => {
return [
{
diff --git a/packages/evalite-tests/tests/long-text.test.ts b/packages/evaluhealth-tests/tests/long-text.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/long-text.test.ts
rename to packages/evaluhealth-tests/tests/long-text.test.ts
diff --git a/packages/evalite-tests/tests/much-data.test.ts b/packages/evaluhealth-tests/tests/much-data.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/much-data.test.ts
rename to packages/evaluhealth-tests/tests/much-data.test.ts
diff --git a/packages/evalite-tests/tests/multi.test.ts b/packages/evaluhealth-tests/tests/multi.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/multi.test.ts
rename to packages/evaluhealth-tests/tests/multi.test.ts
diff --git a/packages/evalite-tests/tests/no-scorers.test.ts b/packages/evaluhealth-tests/tests/no-scorers.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/no-scorers.test.ts
rename to packages/evaluhealth-tests/tests/no-scorers.test.ts
diff --git a/packages/evalite-tests/tests/non-serializable-data.test.ts b/packages/evaluhealth-tests/tests/non-serializable-data.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/non-serializable-data.test.ts
rename to packages/evaluhealth-tests/tests/non-serializable-data.test.ts
diff --git a/packages/evalite-tests/tests/objects.test.ts b/packages/evaluhealth-tests/tests/objects.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/objects.test.ts
rename to packages/evaluhealth-tests/tests/objects.test.ts
diff --git a/packages/evalite-tests/tests/only-flag.test.ts b/packages/evaluhealth-tests/tests/only-flag.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/only-flag.test.ts
rename to packages/evaluhealth-tests/tests/only-flag.test.ts
diff --git a/packages/evalite-tests/tests/output-path.test.ts b/packages/evaluhealth-tests/tests/output-path.test.ts
similarity index 98%
rename from packages/evalite-tests/tests/output-path.test.ts
rename to packages/evaluhealth-tests/tests/output-path.test.ts
index 3a533cb4..8e2648da 100644
--- a/packages/evalite-tests/tests/output-path.test.ts
+++ b/packages/evaluhealth-tests/tests/output-path.test.ts
@@ -1,5 +1,5 @@
import { expect, it } from "vitest";
-import { runEvalite } from "evalite/runner";
+import { runEvaluhealth } from "evaluhealth/runner";
import { captureStdout, loadFixture } from "./test-utils.js";
import { existsSync } from "fs";
import { readFile } from "fs/promises";
diff --git a/packages/evalite-tests/tests/paths.test.ts b/packages/evaluhealth-tests/tests/paths.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/paths.test.ts
rename to packages/evaluhealth-tests/tests/paths.test.ts
diff --git a/packages/evalite-tests/tests/polymorphic-data.test.ts b/packages/evaluhealth-tests/tests/polymorphic-data.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/polymorphic-data.test.ts
rename to packages/evaluhealth-tests/tests/polymorphic-data.test.ts
diff --git a/packages/evalite-tests/tests/stream.test.ts b/packages/evaluhealth-tests/tests/stream.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/stream.test.ts
rename to packages/evaluhealth-tests/tests/stream.test.ts
diff --git a/packages/evalite-tests/tests/test-modifiers.test.ts b/packages/evaluhealth-tests/tests/test-modifiers.test.ts
similarity index 93%
rename from packages/evalite-tests/tests/test-modifiers.test.ts
rename to packages/evaluhealth-tests/tests/test-modifiers.test.ts
index 6ce97146..174f62d4 100644
--- a/packages/evalite-tests/tests/test-modifiers.test.ts
+++ b/packages/evaluhealth-tests/tests/test-modifiers.test.ts
@@ -2,7 +2,7 @@ import { loadFixture } from "./test-utils.js";
import { expect, it } from "vitest";
it("should call opts.data() 3 times when running 3 regular tests", async () => {
- // Load the regular fixture where 3 evalite tests log when opts.data is called.
+ // Load the regular fixture where 3 evaluhealth tests log when opts.data is called.
await using fixture = await loadFixture("test-modifiers-regular");
await fixture.run({
diff --git a/packages/evalite-tests/tests/test-utils.ts b/packages/evaluhealth-tests/tests/test-utils.ts
similarity index 87%
rename from packages/evalite-tests/tests/test-utils.ts
rename to packages/evaluhealth-tests/tests/test-utils.ts
index 16deb1ea..7f1317d2 100644
--- a/packages/evalite-tests/tests/test-utils.ts
+++ b/packages/evaluhealth-tests/tests/test-utils.ts
@@ -1,12 +1,12 @@
-import { DB_LOCATION } from "evalite/backend-only-constants";
+import { DB_LOCATION } from "evaluhealth/backend-only-constants";
import { randomUUID } from "crypto";
import { cpSync, rmSync } from "fs";
import path from "path";
import { Writable } from "stream";
import stripAnsi from "strip-ansi";
-import type { Evalite } from "evalite";
-import { runEvalite } from "evalite/runner";
-import { createInMemoryStorage } from "evalite/in-memory-storage";
+import type { Evaluhealth } from "evaluhealth";
+import { runEvaluhealth } from "evaluhealth/runner";
+import { createInMemoryStorage } from "evaluhealth/in-memory-storage";
import type { Vitest } from "vitest/node";
const FIXTURES_DIR = path.join(import.meta.dirname, "./fixtures");
@@ -57,7 +57,7 @@ export const loadFixture = async (
hideTable?: boolean;
configDebugMode?: boolean;
}) => {
- vitestInstance = await runEvalite({
+ vitestInstance = await runEvaluhealth({
...opts,
cwd: dirPath,
storage,
@@ -103,14 +103,15 @@ export const triggerWatchModeRerun = async (vitest: Vitest) => {
await vitest.waitForTestRunEnd();
};
-export interface EvalWithInlineResults extends Evalite.Storage.Entities.Eval {
+export interface EvalWithInlineResults
+ extends Evaluhealth.Storage.Entities.Eval {
results: ResultWithInlineScoresAndTraces[];
}
export interface ResultWithInlineScoresAndTraces
- extends Evalite.Storage.Entities.Result {
- scores: Evalite.Storage.Entities.Score[];
- traces: Evalite.Storage.Entities.Trace[];
+ extends Evaluhealth.Storage.Entities.Result {
+ scores: Evaluhealth.Storage.Entities.Score[];
+ traces: Evaluhealth.Storage.Entities.Trace[];
}
/**
@@ -118,7 +119,7 @@ export interface ResultWithInlineScoresAndTraces
* Replaces deprecated getEvalsAsRecord.
*/
export const getEvalsAsRecordViaStorage = async (
- storage: Evalite.Storage
+ storage: Evaluhealth.Storage
): Promise> => {
const evals = await storage.evals.getMany();
const evalIds = evals.map((e) => e.id);
diff --git a/packages/evalite-tests/tests/threshold.test.ts b/packages/evaluhealth-tests/tests/threshold.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/threshold.test.ts
rename to packages/evaluhealth-tests/tests/threshold.test.ts
diff --git a/packages/evalite-tests/tests/timeout.test.ts b/packages/evaluhealth-tests/tests/timeout.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/timeout.test.ts
rename to packages/evaluhealth-tests/tests/timeout.test.ts
diff --git a/packages/evalite-tests/tests/traces.test.ts b/packages/evaluhealth-tests/tests/traces.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/traces.test.ts
rename to packages/evaluhealth-tests/tests/traces.test.ts
diff --git a/packages/evalite-tests/tests/trial-count.test.ts b/packages/evaluhealth-tests/tests/trial-count.test.ts
similarity index 97%
rename from packages/evalite-tests/tests/trial-count.test.ts
rename to packages/evaluhealth-tests/tests/trial-count.test.ts
index b1717d2e..06bdf935 100644
--- a/packages/evalite-tests/tests/trial-count.test.ts
+++ b/packages/evaluhealth-tests/tests/trial-count.test.ts
@@ -109,9 +109,9 @@ it("Should work with skip modifier", async () => {
await fs.writeFile(
path.join(fixture.dir, "skipped.eval.ts"),
`
-import { evalite } from "evalite";
+import { evaluhealth } from "evaluhealth";
-evalite.skip("Skipped Trial Test", {
+evaluhealth.skip("Skipped Trial Test", {
data: () => [{ input: "a", expected: "a" }],
task: async (input) => input,
scorers: [],
diff --git a/packages/evalite-tests/tests/variants.test.ts b/packages/evaluhealth-tests/tests/variants.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/variants.test.ts
rename to packages/evaluhealth-tests/tests/variants.test.ts
diff --git a/packages/evalite-tests/tests/watch-mode.test.ts b/packages/evaluhealth-tests/tests/watch-mode.test.ts
similarity index 100%
rename from packages/evalite-tests/tests/watch-mode.test.ts
rename to packages/evaluhealth-tests/tests/watch-mode.test.ts
diff --git a/packages/evalite-tests/tsconfig.json b/packages/evaluhealth-tests/tsconfig.json
similarity index 100%
rename from packages/evalite-tests/tsconfig.json
rename to packages/evaluhealth-tests/tsconfig.json
diff --git a/packages/evalite-tests/vitest.config.ts b/packages/evaluhealth-tests/vitest.config.ts
similarity index 100%
rename from packages/evalite-tests/vitest.config.ts
rename to packages/evaluhealth-tests/vitest.config.ts
diff --git a/packages/evalite/.gitignore b/packages/evaluhealth/.gitignore
similarity index 71%
rename from packages/evalite/.gitignore
rename to packages/evaluhealth/.gitignore
index df61ad65..e7354620 100644
--- a/packages/evalite/.gitignore
+++ b/packages/evaluhealth/.gitignore
@@ -1,3 +1,3 @@
/src/tests/playground/*
!/src/tests/playground/tsconfig.json
-evalite-report.jsonl
\ No newline at end of file
+evaluhealth-report.jsonl
\ No newline at end of file
diff --git a/packages/evalite/CHANGELOG.md b/packages/evaluhealth/CHANGELOG.md
similarity index 78%
rename from packages/evalite/CHANGELOG.md
rename to packages/evaluhealth/CHANGELOG.md
index 167c0f29..7a0d01a9 100644
--- a/packages/evalite/CHANGELOG.md
+++ b/packages/evaluhealth/CHANGELOG.md
@@ -1,10 +1,10 @@
-# evalite
+# evaluhealth
## 0.19.0
### Minor Changes
-- d186618: Support custom base paths for static UI exports. Use `evalite export --basePath=/your-path` to host at non-root URLs like S3/CloudFront subpaths.
+- d186618: Support custom base paths for static UI exports. Use `evaluhealth export --basePath=/your-path` to host at non-root URLs like S3/CloudFront subpaths.
## 0.18.1
@@ -40,9 +40,9 @@
### Minor Changes
-- edfc4b9: Added setupFiles option to evalite.config.ts for loading environment variables and other setup files before tests run.
-- 88db673: Added `evalite.config.ts` file to configure Evalite. Added `testTimeout` and `maxConcurrency` options.
-- 7cc0d24: `trialCount` option for running each test case multiple times. Set in `evalite.config.ts` or per-eval in `evalite()` call to measure variance in non-deterministic evaluations. Each trial stored as separate result with unique `trial_index`.
+- edfc4b9: Added setupFiles option to evaluhealth.config.ts for loading environment variables and other setup files before tests run.
+- 88db673: Added `evaluhealth.config.ts` file to configure Evaluhealth. Added `testTimeout` and `maxConcurrency` options.
+- 7cc0d24: `trialCount` option for running each test case multiple times. Set in `evaluhealth.config.ts` or per-eval in `evaluhealth()` call to measure variance in non-deterministic evaluations. Each trial stored as separate result with unique `trial_index`.
## 0.15.0
@@ -104,13 +104,13 @@
- be75faa: Adds 'outputPath' cli config option for writing evaluation results to a file
- 9160ba3: Upgraded to Vitest 3.
-- ae03644: Added Evalite serve
+- ae03644: Added Evaluhealth serve
- fb9f096: Added static export
### Patch Changes
- 57dd386: Display error messages instead of empty objects when tests fail
-- 28e4577: Rename runVitest to runEvalite as official Node API
+- 28e4577: Rename runVitest to runEvaluhealth as official Node API
- 7c3bf8a: Added score averages in the UI
- 7ffcf54: Make it possible to pass data as an array, not a function that returns an array.
- 2dd6cea: Fixed overflow text error on trace view
@@ -120,7 +120,7 @@
### Minor Changes
-- dbf52f2: Added evalite.each
+- dbf52f2: Added evaluhealth.each
## 0.12.0
@@ -174,7 +174,7 @@
### Minor Changes
- fb65ffe: Changed experimental_customColumns to columns
-- 3677980: Removed @evalite/core and moved all code into evalite.
+- 3677980: Removed @evaluhealth/core and moved all code into evaluhealth.
## 0.10.1
@@ -182,20 +182,20 @@
- 1c09042: Fixed an error where timeouts would result in a non-descriptive "No result present" error.
- Updated dependencies [1c09042]
- - @evalite/core@0.7.1
+ - @evaluhealth/core@0.7.1
## 0.10.0
### Minor Changes
-- 9fc6743: Changed the way types are inferred with Evalite - now, outputs will be inferred differently to 'expected' - much cleaner and less prone to errors.
+- 9fc6743: Changed the way types are inferred with Evaluhealth - now, outputs will be inferred differently to 'expected' - much cleaner and less prone to errors.
- 9fc6743: Added the ability to specify scorers inline, without needing to wrap with createScorer.
### Patch Changes
- Updated dependencies [9fc6743]
- Updated dependencies [9fc6743]
- - @evalite/core@0.7.0
+ - @evaluhealth/core@0.7.0
## 0.9.1
@@ -210,16 +210,16 @@
- e3aff96: Added `--threshold`, for setting a score threshold for evals. This is useful for running on CI. If the score threshold is not met, it will fail the process.
```bash
- evalite --threshold=50 # Score must be greater than or equal to 50
+ evaluhealth --threshold=50 # Score must be greater than or equal to 50
- evalite watch --threshold=70 # Also works in watch mode
+ evaluhealth watch --threshold=70 # Also works in watch mode
```
## 0.8.4
### Patch Changes
-- 775b521: Adds support for missing `evalite.experimental_skip()`
+- 775b521: Adds support for missing `evaluhealth.experimental_skip()`
## 0.8.3
@@ -232,27 +232,27 @@
### Patch Changes
- 5676b2a: Improved the display of inputs and outputs in traces when custom columns are used.
-- 12dd7fc: Re-exported the Evalite type from the 'evalite' package so users don't have to download @evalite/core to access it.
+- 12dd7fc: Re-exported the Evaluhealth type from the 'evaluhealth' package so users don't have to download @evaluhealth/core to access it.
- Updated dependencies [5676b2a]
- - @evalite/core@0.6.1
+ - @evaluhealth/core@0.6.1
## 0.8.1
### Patch Changes
-- 5ac19c5: Fixed a bug where `evalite [path]` would not run the path specified.
+- 5ac19c5: Fixed a bug where `evaluhealth [path]` would not run the path specified.
## 0.8.0
### Minor Changes
-- 7734024: Evalite is now multi-modal! Pass Uint8Arrays into data.expected, data.input or the result of task() to display them in the UI.
+- 7734024: Evaluhealth is now multi-modal! Pass Uint8Arrays into data.expected, data.input or the result of task() to display them in the UI.
### Patch Changes
- bc7b27d: Added a warning for folks with out-of-date tsconfigs.
- Updated dependencies [7734024]
- - @evalite/core@0.6.0
+ - @evaluhealth/core@0.6.0
## 0.7.4
@@ -273,7 +273,7 @@
### Patch Changes
-- f26eaaa: Run the data function as soon as evalite is called for maximum concurrency.
+- f26eaaa: Run the data function as soon as evaluhealth is called for maximum concurrency.
## 0.7.1
@@ -290,7 +290,7 @@
### Patch Changes
- Updated dependencies [4f3d446]
- - @evalite/core@0.5.0
+ - @evaluhealth/core@0.5.0
## 0.6.2
@@ -298,7 +298,7 @@
- 04c0c96: Runs now report as soon as they are complete. Failures are now reported on individual runs instead of on the entire eval.
- Updated dependencies [04c0c96]
- - @evalite/core@0.4.2
+ - @evaluhealth/core@0.4.2
## 0.6.1
@@ -308,7 +308,7 @@
- 9d6880f: Fixed a bug where the UI was showing times in UTC.
- Updated dependencies [e3f64cf]
- Updated dependencies [9d6880f]
- - @evalite/core@0.4.1
+ - @evaluhealth/core@0.4.1
## 0.6.0
@@ -319,7 +319,7 @@
### Patch Changes
- Updated dependencies [5379066]
- - @evalite/core@0.4.0
+ - @evaluhealth/core@0.4.0
## 0.5.4
@@ -327,7 +327,7 @@
- 9ef8421: Made failed evaluations show a message in the UI.
- Updated dependencies [9ef8421]
- - @evalite/core@0.3.4
+ - @evaluhealth/core@0.3.4
## 0.5.3
@@ -335,7 +335,7 @@
- 7150bbe: Allowed custom scorers to return metadata
- Updated dependencies [7150bbe]
- - @evalite/core@0.3.3
+ - @evaluhealth/core@0.3.3
## 0.5.2
@@ -347,7 +347,7 @@
- Updated dependencies [101179c]
- Updated dependencies [fef1c4f]
- Updated dependencies [4d006a1]
- - @evalite/core@0.3.2
+ - @evaluhealth/core@0.3.2
## 0.5.1
@@ -355,7 +355,7 @@
- Updated dependencies [8b23607]
- Updated dependencies [8130cc9]
- - @evalite/core@0.3.1
+ - @evaluhealth/core@0.3.1
## 0.5.0
@@ -363,7 +363,7 @@
- 32cb0e5: Adopted sqlite as the database instead of jsonl.
- The db will now be saved to `./node_modules/.evalite` by default instead of `evalite-report.jsonl`.
+ The db will now be saved to `./node_modules/.evaluhealth` by default instead of `evaluhealth-report.jsonl`.
### Patch Changes
@@ -371,7 +371,7 @@
- Updated dependencies [ad28d0b]
- Updated dependencies [32cb0e5]
- Updated dependencies [a13be9e]
- - @evalite/core@0.3.0
+ - @evaluhealth/core@0.3.0
## 0.4.4
@@ -398,31 +398,31 @@
- 5abbeab: Made it possible to return any async iterable from a task - more permissive than a ReadableStream.
- 74172d6: Improved report table formatting for objects.
- Updated dependencies [5abbeab]
- - @evalite/core@0.2.1
+ - @evaluhealth/core@0.2.1
## 0.4.0
### Minor Changes
-- 66e8dac: Made all evalite tests run simultaneously by default.
+- 66e8dac: Made all evaluhealth tests run simultaneously by default.
## 0.3.0
### Minor Changes
-- 9769ab8: Added the ability to handle streams via returning a ReadableStream from an evalite task.
+- 9769ab8: Added the ability to handle streams via returning a ReadableStream from an evaluhealth task.
### Patch Changes
- Updated dependencies [9769ab8]
- - @evalite/core@0.2.0
+ - @evaluhealth/core@0.2.0
## 0.2.1
### Patch Changes
- Updated dependencies [a520613]
- - @evalite/core@0.1.1
+ - @evaluhealth/core@0.1.1
## 0.2.0
@@ -435,7 +435,7 @@
- Updated dependencies [099b198]
- Updated dependencies [099b198]
- - @evalite/core@0.1.0
+ - @evaluhealth/core@0.1.0
## 0.1.4
@@ -443,7 +443,7 @@
- eb294a7: Added a link to the eval page to view the filepath in VSCode
- Updated dependencies [eb294a7]
- - @evalite/core@0.0.5
+ - @evaluhealth/core@0.0.5
## 0.1.3
@@ -451,7 +451,7 @@
- 213211f: Fixed broken build
- Updated dependencies [213211f]
- - @evalite/core@0.0.4
+ - @evaluhealth/core@0.0.4
## 0.1.2
@@ -469,7 +469,7 @@
### Minor Changes
-- 28517ff: Removed scorers copied from autoevals. New recommendation is to use `autoevals` as the default - they are fully compatible with `evalite`.
+- 28517ff: Removed scorers copied from autoevals. New recommendation is to use `autoevals` as the default - they are fully compatible with `evaluhealth`.
- 28517ff: Added traceAISDKModel for tracing models with Vercel's AI SDK.
- e53a652: Added support for createScorer.
@@ -477,4 +477,4 @@
- 4ca6a7d: Initial
- Updated dependencies [4ca6a7d]
- - @evalite/core@0.0.3
+ - @evaluhealth/core@0.0.3
diff --git a/packages/evalite/package.json b/packages/evaluhealth/package.json
similarity index 70%
rename from packages/evalite/package.json
rename to packages/evaluhealth/package.json
index 77f714e8..b51f7d5b 100644
--- a/packages/evalite/package.json
+++ b/packages/evaluhealth/package.json
@@ -1,26 +1,34 @@
{
- "name": "evalite",
+ "name": "evaluhealth",
"version": "0.19.0",
"type": "module",
- "description": "Test your LLM-powered apps with a TypeScript-native, Vitest-based eval runner. No API key required.",
- "homepage": "https://evalite.dev",
+ "description": "Test your LLM-powered healthcare and life sciences apps with a TypeScript-native, Vitest-based eval runner. No API key required.",
+ "homepage": "https://evalu.health",
"keywords": [
"ai",
"evals",
"typescript",
- "vitest"
+ "vitest",
+ "healthcare",
+ "life-sciences",
+ "medical-ai",
+ "clinical-ai",
+ "biomedical",
+ "hipaa",
+ "fda",
+ "regulatory-compliance"
],
"main": "./tsconfig-warning/index.js",
"bugs": {
- "url": "https://github.com/mattpocock/evalite/issues"
+ "url": "https://github.com/kernelius-hq/evaluhealth/issues"
},
- "author": "Matt Pocock (https://aihero.dev)",
+ "author": "yamz8 (https://kernelius.com)",
"repository": {
"type": "git",
- "url": "git+https://github.com/mattpocock/evalite.git"
+ "url": "git+https://github.com/kernelius-hq/evaluhealth.git"
},
"bin": {
- "evalite": "./dist/bin.js"
+ "evaluhealth": "./dist/bin.js"
},
"files": [
"./dist/*",
@@ -42,7 +50,7 @@
"./reporter": "./dist/reporter.js",
"./traces": "./dist/traces.js",
"./ai-sdk": "./dist/ai-sdk.js",
- "./runner": "./dist/run-evalite.js",
+ "./runner": "./dist/run-evaluhealth.js",
"./export-static": "./dist/export-static.js",
"./sqlite-storage": "./dist/storage/sqlite.js",
"./in-memory-storage": "./dist/storage/in-memory.js"
diff --git a/packages/evaluhealth/readme.md b/packages/evaluhealth/readme.md
new file mode 100644
index 00000000..7dcacc25
--- /dev/null
+++ b/packages/evaluhealth/readme.md
@@ -0,0 +1,72 @@
+
+
+> **By [Kernelius](https://kernelius.com)** — Building AI tools for healthcare and life sciences.
+
+## What Is Evaluhealth?
+
+**Evaluhealth** is a fork of [Evalite](https://github.com/mattpocock/evalite) specifically designed for **healthcare and life sciences** applications. It's a TypeScript-native, local-first evaluation framework for testing LLM-powered healthcare applications, medical AI systems, and life science research tools.
+
+### Core Features
+
+- Fully open source: **No API Key required**.
+- Local-first: runs on your machine, your data never leaves your laptop.
+- Based on [Vitest](https://vitest.dev/), the best TypeScript test runner around.
+- Terminal UI for quick prototyping.
+- Supports tracing and custom scorers.
+
+### Healthcare & Life Sciences Focus
+
+Evaluhealth is tailored for developers and researchers working in healthcare and life sciences:
+
+- **Medical AI Evaluation**: Test clinical decision support systems, diagnostic tools, and medical chatbots with comprehensive evaluation metrics
+- **Life Sciences Research**: Evaluate LLM performance on scientific literature analysis, drug discovery pipelines, and biomedical data processing
+- **HIPAA-Compliant Testing**: Local-first architecture ensures sensitive healthcare data (PHI) never leaves your secure environment
+- **Regulatory Readiness**: Build evaluation frameworks that support FDA submissions, CE marking, and other regulatory compliance requirements
+- **Clinical Validation**: Create robust test suites for validating AI models in real-world healthcare contexts with domain-specific scorers
+
+## How Do I Learn More?
+
+- [Read the Docs](https://www.evalu.health/)
+- [Join the Discord](https://www.kernelius.com/ai-discord)
+
+## Evaluhealth Is Experimental
+
+Evaluhealth is still an experimental project. I'm actively working on it, and for now am pushing breaking changes.
+
+If you run into any unexpected behavior:
+
+1. Delete the `node_modules/.evaluhealth` folder.
+2. Update `evaluhealth` to the latest version.
+3. Rerun your evals.
+
+If, after that, you run into unexpected behavior, [report an issue](https://github.com/kernelius-hq/evaluhealth/issues).
+
+## Guides
+
+### Watch Mode
+
+You can run Evaluhealth in watch mode by running `evaluhealth watch`:
+
+```bash
+evaluhealth watch
+```
+
+This will watch for changes to your `.eval.ts` files and re-run the evals when they change.
+
+> [!IMPORTANT]
+>
+> I strongly recommend implementing a caching layer in your LLM calls when using watch mode. This will keep your evals running fast and avoid burning through your API credits.
+
+### Running Specific Files
+
+You can run specific files by passing them as arguments:
+
+```bash
+evaluhealth my-eval.eval.ts
+```
+
+This also works for `watch` mode:
+
+```bash
+evaluhealth watch my-eval.eval.ts
+```
diff --git a/packages/evalite/src/ai-sdk.ts b/packages/evaluhealth/src/ai-sdk.ts
similarity index 100%
rename from packages/evalite/src/ai-sdk.ts
rename to packages/evaluhealth/src/ai-sdk.ts
diff --git a/packages/evalite/src/backend-only-constants.ts b/packages/evaluhealth/src/backend-only-constants.ts
similarity index 100%
rename from packages/evalite/src/backend-only-constants.ts
rename to packages/evaluhealth/src/backend-only-constants.ts
diff --git a/packages/evalite/src/bin.ts b/packages/evaluhealth/src/bin.ts
similarity index 100%
rename from packages/evalite/src/bin.ts
rename to packages/evaluhealth/src/bin.ts
diff --git a/packages/evalite/src/command.test.ts b/packages/evaluhealth/src/command.test.ts
similarity index 90%
rename from packages/evalite/src/command.test.ts
rename to packages/evaluhealth/src/command.test.ts
index 47783b2b..ead3a520 100644
--- a/packages/evalite/src/command.test.ts
+++ b/packages/evaluhealth/src/command.test.ts
@@ -3,7 +3,7 @@ import { createProgram } from "./command.js";
import { run } from "@stricli/core";
describe("createCommand", () => {
- it("evalite without path", async () => {
+ it("evaluhealth without path", async () => {
const watch = vitest.fn();
const runOnceAtPath = vitest.fn();
const exportFn = vitest.fn();
@@ -25,7 +25,7 @@ describe("createCommand", () => {
});
});
- it("evalite with path", async () => {
+ it("evaluhealth with path", async () => {
const watch = vitest.fn();
const runOnceAtPath = vitest.fn();
const exportFn = vitest.fn();
@@ -45,7 +45,7 @@ describe("createCommand", () => {
});
});
- it("evalite watch", async () => {
+ it("evaluhealth watch", async () => {
const watch = vitest.fn();
const runOnceAtPath = vitest.fn();
const exportFn = vitest.fn();
@@ -65,7 +65,7 @@ describe("createCommand", () => {
expect(runOnceAtPath).not.toHaveBeenCalled();
});
- it("evalite watch with path", async () => {
+ it("evaluhealth watch with path", async () => {
const watch = vitest.fn();
const runOnceAtPath = vitest.fn();
const exportFn = vitest.fn();
@@ -85,7 +85,7 @@ describe("createCommand", () => {
expect(runOnceAtPath).not.toHaveBeenCalled();
});
- it("evalite --threshold", async () => {
+ it("evaluhealth --threshold", async () => {
const watch = vitest.fn();
const runOnceAtPath = vitest.fn();
const exportFn = vitest.fn();
@@ -106,7 +106,7 @@ describe("createCommand", () => {
});
});
- it("evalite watch --threshold", async () => {
+ it("evaluhealth watch --threshold", async () => {
const watch = vitest.fn();
const runOnceAtPath = vitest.fn();
const exportFn = vitest.fn();
@@ -127,7 +127,7 @@ describe("createCommand", () => {
expect(runOnceAtPath).not.toHaveBeenCalled();
});
- it("evalite watch --outputPath does not call watch command", async () => {
+ it("evaluhealth watch --outputPath does not call watch command", async () => {
const watch = vitest.fn();
const runOnceAtPath = vitest.fn();
const exportFn = vitest.fn();
@@ -147,7 +147,7 @@ describe("createCommand", () => {
expect(runOnceAtPath).not.toHaveBeenCalled();
});
- it("evalite --outputPath works in run-once mode", async () => {
+ it("evaluhealth --outputPath works in run-once mode", async () => {
const watch = vitest.fn();
const runOnceAtPath = vitest.fn();
const exportFn = vitest.fn();
@@ -168,7 +168,7 @@ describe("createCommand", () => {
});
});
- it("evalite serve", async () => {
+ it("evaluhealth serve", async () => {
const watch = vitest.fn();
const runOnceAtPath = vitest.fn();
const exportFn = vitest.fn();
@@ -191,7 +191,7 @@ describe("createCommand", () => {
expect(runOnceAtPath).not.toHaveBeenCalled();
});
- it("evalite serve with path", async () => {
+ it("evaluhealth serve with path", async () => {
const watch = vitest.fn();
const runOnceAtPath = vitest.fn();
const exportFn = vitest.fn();
diff --git a/packages/evalite/src/command.ts b/packages/evaluhealth/src/command.ts
similarity index 92%
rename from packages/evalite/src/command.ts
rename to packages/evaluhealth/src/command.ts
index 9cdf8d44..4723487a 100644
--- a/packages/evalite/src/command.ts
+++ b/packages/evaluhealth/src/command.ts
@@ -1,4 +1,4 @@
-import { runEvalite } from "./run-evalite.js";
+import { runEvaluhealth } from "./run-evaluhealth.js";
import { buildApplication, buildCommand, buildRouteMap } from "@stricli/core";
import {
buildInstallCommand,
@@ -100,7 +100,7 @@ export const createProgram = (commands: {
func: (flags: Flags, path: string | undefined) => {
if (flags.outputPath) {
throw new Error(
- "--outputPath is not supported in watch mode. Use 'evalite --outputPath ' instead."
+ "--outputPath is not supported in watch mode. Use 'evaluhealth --outputPath ' instead."
);
}
return commands.watch({
@@ -122,7 +122,7 @@ export const createProgram = (commands: {
kind: "parsed",
parse: String,
brief:
- "Output directory for static export (default: ./evalite-export)",
+ "Output directory for static export (default: ./evaluhealth-export)",
optional: true,
},
runId: {
@@ -162,10 +162,10 @@ export const createProgram = (commands: {
serve,
watch,
export: exportCmd,
- install: buildInstallCommand("evalite", {
- bash: "__evalite_bash_complete",
+ install: buildInstallCommand("evaluhealth", {
+ bash: "__evaluhealth_bash_complete",
}),
- uninstall: buildUninstallCommand("evalite", { bash: true }),
+ uninstall: buildUninstallCommand("evaluhealth", { bash: true }),
},
defaultCommand: "run",
docs: {
@@ -187,7 +187,7 @@ export const createProgram = (commands: {
export const program = createProgram({
watch: (path) => {
- return runEvalite({
+ return runEvaluhealth({
path: path.path,
scoreThreshold: path.threshold,
cwd: undefined,
@@ -197,7 +197,7 @@ export const program = createProgram({
});
},
runOnceAtPath: (path) => {
- return runEvalite({
+ return runEvaluhealth({
path: path.path,
scoreThreshold: path.threshold,
cwd: undefined,
@@ -206,7 +206,7 @@ export const program = createProgram({
});
},
serve: (path) => {
- return runEvalite({
+ return runEvaluhealth({
path: path.path,
scoreThreshold: path.threshold,
cwd: undefined,
@@ -222,7 +222,7 @@ export const program = createProgram({
try {
await exportStaticUI({
storage,
- outputPath: opts.output ?? "./evalite-export",
+ outputPath: opts.output ?? "./evaluhealth-export",
runId: opts.runId,
basePath: opts.basePath,
});
diff --git a/packages/evalite/src/config.ts b/packages/evaluhealth/src/config.ts
similarity index 59%
rename from packages/evalite/src/config.ts
rename to packages/evaluhealth/src/config.ts
index 0765235c..e49d2364 100644
--- a/packages/evalite/src/config.ts
+++ b/packages/evaluhealth/src/config.ts
@@ -1,16 +1,16 @@
import { createJiti } from "jiti";
import path from "path";
-import type { Evalite } from "./types.js";
+import type { Evaluhealth } from "./types.js";
/**
- * Type-safe helper for defining Evalite configuration.
+ * Type-safe helper for defining Evaluhealth configuration.
* Provides intellisense and type checking for config options.
*
* @example
* ```ts
- * // evalite.config.ts
- * import { defineConfig } from "evalite/config"
- * import { createSqliteStorage } from "evalite/sqlite-storage"
+ * // evaluhealth.config.ts
+ * import { defineConfig } from "evaluhealth/config"
+ * import { createSqliteStorage } from "evaluhealth/sqlite-storage"
*
* export default defineConfig({
* storage: () => createSqliteStorage("./custom.db"),
@@ -20,27 +20,27 @@ import type { Evalite } from "./types.js";
* })
* ```
*/
-export function defineConfig(config: Evalite.Config): Evalite.Config {
+export function defineConfig(config: Evaluhealth.Config): Evaluhealth.Config {
return config;
}
const CONFIG_FILE_NAMES = [
- "evalite.config.ts",
- "evalite.config.mts",
- "evalite.config.js",
- "evalite.config.mjs",
+ "evaluhealth.config.ts",
+ "evaluhealth.config.mts",
+ "evaluhealth.config.js",
+ "evaluhealth.config.mjs",
];
/**
- * Load Evalite configuration file from the specified directory.
- * Looks for evalite.config.{ts,mts,js,mjs} files.
+ * Load Evaluhealth configuration file from the specified directory.
+ * Looks for evaluhealth.config.{ts,mts,js,mjs} files.
*
* @param cwd - Current working directory to search for config file
* @returns Resolved config object or undefined if no config found
*/
-export async function loadEvaliteConfig(
+export async function loadEvaluhealthConfig(
cwd: string
-): Promise {
+): Promise {
const jiti = createJiti(import.meta.url, {
interopDefault: true,
requireCache: false,
@@ -51,10 +51,10 @@ export async function loadEvaliteConfig(
try {
const loaded = (await jiti.import(configPath)) as any;
- const config = loaded.default || loaded.evalite || loaded;
+ const config = loaded.default || loaded.evaluhealth || loaded;
if (config && typeof config === "object") {
- return config as Evalite.Config;
+ return config as Evaluhealth.Config;
}
} catch (error: any) {
// File not found is expected, ignore it
@@ -67,7 +67,7 @@ export async function loadEvaliteConfig(
}
// Other errors (syntax errors, etc) should be thrown
throw new Error(
- `Failed to load Evalite config from ${configPath}: ${error.message}`
+ `Failed to load Evaluhealth config from ${configPath}: ${error.message}`
);
}
}
diff --git a/packages/evaluhealth/src/constants.ts b/packages/evaluhealth/src/constants.ts
new file mode 100644
index 00000000..a4d1fb73
--- /dev/null
+++ b/packages/evaluhealth/src/constants.ts
@@ -0,0 +1,2 @@
+export const DEFAULT_SERVER_PORT = 3006;
+export const CACHE_LOCATION = "./node_modules/.evaluhealth";
diff --git a/packages/evalite/src/create-scorer.ts b/packages/evaluhealth/src/create-scorer.ts
similarity index 73%
rename from packages/evalite/src/create-scorer.ts
rename to packages/evaluhealth/src/create-scorer.ts
index dc95721d..daa192d3 100644
--- a/packages/evalite/src/create-scorer.ts
+++ b/packages/evaluhealth/src/create-scorer.ts
@@ -1,9 +1,9 @@
-import type { Evalite } from "./types.js";
+import type { Evaluhealth } from "./types.js";
export const createScorer = (
- opts: Evalite.ScorerOpts
-): Evalite.Scorer => {
- return async (input: Evalite.ScoreInput) => {
+ opts: Evaluhealth.ScorerOpts
+): Evaluhealth.Scorer => {
+ return async (input: Evaluhealth.ScoreInput) => {
const score = await opts.scorer(input);
if (typeof score === "object") {
diff --git a/packages/evalite/src/evalite.ts b/packages/evaluhealth/src/evaluhealth.ts
similarity index 87%
rename from packages/evalite/src/evalite.ts
rename to packages/evaluhealth/src/evaluhealth.ts
index e35e1ce1..f8300be0 100644
--- a/packages/evalite/src/evalite.ts
+++ b/packages/evaluhealth/src/evaluhealth.ts
@@ -3,8 +3,8 @@ import path from "path";
import { describe, inject, it } from "vitest";
import { reportTraceLocalStorage } from "./traces.js";
import { writeFileQueueLocalStorage } from "./write-file-queue-local-storage.js";
-import { createEvaliteFileIfNeeded } from "./utils.js";
-import type { Evalite } from "./types.js";
+import { createEvaluhealthFileIfNeeded } from "./utils.js";
+import type { Evaluhealth } from "./types.js";
import { FILES_LOCATION } from "./backend-only-constants.js";
import { createScorer } from "./index.js";
import { serializeAnnotation } from "./reporter/events.js";
@@ -48,7 +48,7 @@ const makeSerializable = (obj: unknown): unknown => {
};
const executeTask = async (
- task: Evalite.Task,
+ task: Evaluhealth.Task,
input: TInput,
variant: TVariant
): Promise => {
@@ -76,9 +76,9 @@ const runTask = async (
input: TInput;
expected: TExpected | undefined;
variant: TVariant;
- traces: Evalite.Trace[];
+ traces: Evaluhealth.Trace[];
} & Omit<
- Evalite.RunnerOpts,
+ Evaluhealth.RunnerOpts,
"data" | "experimental_customColumns"
>
) => {
@@ -121,30 +121,30 @@ const runTask = async (
};
};
-export const evalite = (
+export const evaluhealth = (
evalName: string,
- opts: Evalite.RunnerOpts
-) => registerEvalite(evalName, opts);
+ opts: Evaluhealth.RunnerOpts
+) => registerEvaluhealth(evalName, opts);
-evalite.skip = (
+evaluhealth.skip = (
evalName: string,
- opts: Evalite.RunnerOpts
-) => registerEvalite(evalName, opts, { modifier: "skip" });
+ opts: Evaluhealth.RunnerOpts
+) => registerEvaluhealth(evalName, opts, { modifier: "skip" });
/**
- * @deprecated Use `evalite.skip` instead.
+ * @deprecated Use `evaluhealth.skip` instead.
*/
-evalite.experimental_skip = evalite.skip;
+evaluhealth.experimental_skip = evaluhealth.skip;
-evalite.each = (
+evaluhealth.each = (
variants: Array<{ name: string; input: TVariant }>
) => {
return (
evalName: string,
- opts: Evalite.RunnerOpts
+ opts: Evaluhealth.RunnerOpts
) => {
for (const variant of variants) {
- registerEvalite(
+ registerEvaluhealth(
evalName,
{
...opts,
@@ -167,8 +167,8 @@ type Result =
};
const resolveData = async (
- datasetFunction: Evalite.DataShapeAsyncResolver
-): Promise[], Error>> => {
+ datasetFunction: Evaluhealth.DataShapeAsyncResolver
+): Promise[], Error>> => {
try {
return {
success: true,
@@ -182,9 +182,9 @@ const resolveData = async (
}
};
-function registerEvalite(
+function registerEvaluhealth(
evalName: string,
- opts: Evalite.RunnerOpts,
+ opts: Evaluhealth.RunnerOpts,
vitestOpts: {
modifier?: "only" | "skip";
variantName?: string;
@@ -193,7 +193,7 @@ function registerEvalite(
) {
const describeFn = vitestOpts.modifier === "skip" ? describe.skip : describe;
const datasetPromise: Promise<
- Result[], Error>
+ Result[], Error>
> =
vitestOpts.modifier === "skip"
? Promise.resolve({ success: true, data: [] })
@@ -278,7 +278,7 @@ function registerEvalite(
it.concurrent(fullEvalName, async ({ task, annotate }) => {
if (!annotate || typeof annotate !== "function") {
throw new Error(
- "Evalite requires Vitest 3.2.4 or later for the annotations API. Please upgrade: `npm install vitest@latest`"
+ "Evaluhealth requires Vitest 3.2.4 or later for the annotations API. Please upgrade: `npm install vitest@latest`"
);
}
@@ -317,12 +317,12 @@ function registerEvalite(
filePromises.push(promise);
});
- const traces: Evalite.Trace[] = [];
+ const traces: Evaluhealth.Trace[] = [];
reportTraceLocalStorage.enterWith((trace) => traces.push(trace));
const [inputForMeta, expectedForMeta] = await Promise.all([
- createEvaliteFileIfNeeded({ rootDir, input: data.input }),
- createEvaliteFileIfNeeded({ rootDir, input: data.expected }),
+ createEvaluhealthFileIfNeeded({ rootDir, input: data.input }),
+ createEvaluhealthFileIfNeeded({ rootDir, input: data.expected }),
]);
// Ensure data is serializable
@@ -343,7 +343,7 @@ function registerEvalite(
const [outputWithFiles, tracesWithFiles, renderedColumns] =
await Promise.all([
- createEvaliteFileIfNeeded({
+ createEvaluhealthFileIfNeeded({
rootDir,
input: output,
}),
@@ -421,11 +421,11 @@ function registerEvalite(
const handleFilesInColumns = async (
rootDir: string,
- columns: Evalite.RenderedColumn[]
+ columns: Evaluhealth.RenderedColumn[]
) => {
return await Promise.all(
columns.map(async (column) => {
- const file = await createEvaliteFileIfNeeded({
+ const file = await createEvaluhealthFileIfNeeded({
rootDir,
input: column.value,
});
@@ -439,16 +439,16 @@ const handleFilesInColumns = async (
const handleFilesInTraces = async (
rootDir: string,
- traces: Evalite.Trace[]
+ traces: Evaluhealth.Trace[]
) => {
return await Promise.all(
traces.map(async (trace) => {
const [input, output] = await Promise.all([
- createEvaliteFileIfNeeded({
+ createEvaluhealthFileIfNeeded({
rootDir,
input: trace.input,
}),
- createEvaliteFileIfNeeded({
+ createEvaluhealthFileIfNeeded({
rootDir,
input: trace.output,
}),
diff --git a/packages/evalite/src/export-static.ts b/packages/evaluhealth/src/export-static.ts
similarity index 83%
rename from packages/evalite/src/export-static.ts
rename to packages/evaluhealth/src/export-static.ts
index 04b58b87..45a84847 100644
--- a/packages/evalite/src/export-static.ts
+++ b/packages/evaluhealth/src/export-static.ts
@@ -1,8 +1,8 @@
import fs from "fs/promises";
import path from "path";
import { fileURLToPath } from "url";
-import type { Evalite } from "./types.js";
-import { average, EvaliteFile } from "./utils.js";
+import type { Evaluhealth } from "./types.js";
+import { average, EvaluhealthFile } from "./utils.js";
import { computeAverageScores } from "./storage/utils.js";
/**
@@ -34,10 +34,10 @@ const rewriteJsPaths = (js: string, pathPrefix: string): string => {
* Get the previous completed eval by name and created_at time
*/
const getPreviousCompletedEval = async (
- storage: Evalite.Storage,
+ storage: Evaluhealth.Storage,
name: string,
createdAt: string
-): Promise => {
+): Promise => {
const evals = await storage.evals.getMany({
name,
createdBefore: createdAt,
@@ -53,9 +53,11 @@ const getPreviousCompletedEval = async (
* Get historical evals with average scores by name
*/
const getHistoricalEvalsWithScoresByName = async (
- storage: Evalite.Storage,
+ storage: Evaluhealth.Storage,
name: string
-): Promise<(Evalite.Storage.Entities.Eval & { average_score: number })[]> => {
+): Promise<
+ (Evaluhealth.Storage.Entities.Eval & { average_score: number })[]
+> => {
const evals = await storage.evals.getMany({
name,
statuses: ["success", "fail"],
@@ -86,30 +88,30 @@ const getHistoricalEvalsWithScoresByName = async (
};
/**
- * Transforms EvaliteFile paths using a provided callback
- * Recursively walks through objects, arrays, and EvaliteFile instances
+ * Transforms EvaluhealthFile paths using a provided callback
+ * Recursively walks through objects, arrays, and EvaluhealthFile instances
* @param value The value to transform
- * @param transformPath Callback that receives an EvaliteFile and returns the new path
+ * @param transformPath Callback that receives an EvaluhealthFile and returns the new path
*/
-const transformEvaliteFilePaths = (
+const transformEvaluhealthFilePaths = (
value: unknown,
- transformPath: (file: Evalite.File) => string
+ transformPath: (file: Evaluhealth.File) => string
): unknown => {
- if (EvaliteFile.isEvaliteFile(value)) {
+ if (EvaluhealthFile.isEvaluhealthFile(value)) {
return {
- __EvaliteFile: true,
+ __EvaluhealthFile: true,
path: transformPath(value),
};
}
if (Array.isArray(value)) {
- return value.map((v) => transformEvaliteFilePaths(v, transformPath));
+ return value.map((v) => transformEvaluhealthFilePaths(v, transformPath));
}
if (typeof value === "object" && value !== null) {
const result: Record = {};
for (const [key, val] of Object.entries(value)) {
- result[key] = transformEvaliteFilePaths(val, transformPath);
+ result[key] = transformEvaluhealthFilePaths(val, transformPath);
}
return result;
}
@@ -145,7 +147,7 @@ const normalizeBasePath = (basePath: string): string => {
*/
export interface ExportStaticOptions {
/** Storage instance for accessing evaluation data */
- storage: Evalite.Storage;
+ storage: Evaluhealth.Storage;
/** Output directory path for the export */
outputPath: string;
/** Optional specific run ID to export (defaults to latest full run) */
@@ -155,7 +157,7 @@ export interface ExportStaticOptions {
}
/**
- * Exports the Evalite UI as a static bundle with pre-computed JSON files
+ * Exports the Evaluhealth UI as a static bundle with pre-computed JSON files
*/
export const exportStaticUI = async (
options: ExportStaticOptions
@@ -211,7 +213,7 @@ export const exportStaticUI = async (
* Transform callback that generates unique filenames for files
* and tracks them in the mapper for later copying
*/
- const getUniqueFilename = (file: Evalite.File): string => {
+ const getUniqueFilename = (file: Evaluhealth.File): string => {
const originalPath = file.path;
// Check if we've already mapped this file
@@ -230,7 +232,7 @@ export const exportStaticUI = async (
};
// Generate server-state.json
- const serverState: Evalite.ServerState = {
+ const serverState: Evaluhealth.ServerState = {
type: "idle",
};
await fs.writeFile(
@@ -281,11 +283,11 @@ export const exportStaticUI = async (
variantName: e.variant_name,
variantGroup: e.variant_group,
hasScores,
- } satisfies Evalite.SDK.GetMenuItemsResultEval;
+ } satisfies Evaluhealth.SDK.GetMenuItemsResultEval;
})
.sort((a, b) => a.name.localeCompare(b.name));
- const menuItemsData: Evalite.SDK.GetMenuItemsResult = {
+ const menuItemsData: Evaluhealth.SDK.GetMenuItemsResult = {
evals: menuItems,
score: average(menuItems, (e) => e.score),
prevScore: average(menuItems, (e) => e.prevScore ?? e.score),
@@ -327,7 +329,7 @@ export const exportStaticUI = async (
evaluation.name
);
- const evalData: Evalite.SDK.GetEvalByNameResult = {
+ const evalData: Evaluhealth.SDK.GetEvalByNameResult = {
history: history.map((h) => ({
score: h.average_score,
date: h.created_at,
@@ -338,10 +340,13 @@ export const exportStaticUI = async (
.filter((r) => r.eval_id === evaluation.id)
.map((r) => ({
...r,
- input: transformEvaliteFilePaths(r.input, getUniqueFilename),
- output: transformEvaliteFilePaths(r.output, getUniqueFilename),
- expected: transformEvaliteFilePaths(r.expected, getUniqueFilename),
- rendered_columns: transformEvaliteFilePaths(
+ input: transformEvaluhealthFilePaths(r.input, getUniqueFilename),
+ output: transformEvaluhealthFilePaths(r.output, getUniqueFilename),
+ expected: transformEvaluhealthFilePaths(
+ r.expected,
+ getUniqueFilename
+ ),
+ rendered_columns: transformEvaluhealthFilePaths(
r.rendered_columns,
getUniqueFilename
),
@@ -355,13 +360,19 @@ export const exportStaticUI = async (
.filter((r) => r.eval_id === prevEvaluation.id)
.map((r) => ({
...r,
- input: transformEvaliteFilePaths(r.input, getUniqueFilename),
- output: transformEvaliteFilePaths(r.output, getUniqueFilename),
- expected: transformEvaliteFilePaths(
+ input: transformEvaluhealthFilePaths(
+ r.input,
+ getUniqueFilename
+ ),
+ output: transformEvaluhealthFilePaths(
+ r.output,
+ getUniqueFilename
+ ),
+ expected: transformEvaluhealthFilePaths(
r.expected,
getUniqueFilename
),
- rendered_columns: transformEvaliteFilePaths(
+ rendered_columns: transformEvaluhealthFilePaths(
r.rendered_columns,
getUniqueFilename
),
@@ -386,15 +397,21 @@ export const exportStaticUI = async (
(r) => r.eval_id === prevEvaluation?.id
);
- const result: Evalite.SDK.GetResultResult["result"] = {
+ const result: Evaluhealth.SDK.GetResultResult["result"] = {
...thisResult,
- input: transformEvaliteFilePaths(thisResult.input, getUniqueFilename),
- output: transformEvaliteFilePaths(thisResult.output, getUniqueFilename),
- expected: transformEvaliteFilePaths(
+ input: transformEvaluhealthFilePaths(
+ thisResult.input,
+ getUniqueFilename
+ ),
+ output: transformEvaluhealthFilePaths(
+ thisResult.output,
+ getUniqueFilename
+ ),
+ expected: transformEvaluhealthFilePaths(
thisResult.expected,
getUniqueFilename
),
- rendered_columns: transformEvaliteFilePaths(
+ rendered_columns: transformEvaluhealthFilePaths(
thisResult.rendered_columns,
getUniqueFilename
),
@@ -406,30 +423,30 @@ export const exportStaticUI = async (
.filter((t) => t.result_id === thisResult.id)
.map((t) => ({
...t,
- input: transformEvaliteFilePaths(t.input, getUniqueFilename),
- output: transformEvaliteFilePaths(t.output, getUniqueFilename),
+ input: transformEvaluhealthFilePaths(t.input, getUniqueFilename),
+ output: transformEvaluhealthFilePaths(t.output, getUniqueFilename),
})),
};
const prevResultInDb = prevEvaluationResults[index];
- const prevResult: Evalite.SDK.GetResultResult["prevResult"] =
+ const prevResult: Evaluhealth.SDK.GetResultResult["prevResult"] =
prevResultInDb
? {
...prevResultInDb,
- input: transformEvaliteFilePaths(
+ input: transformEvaluhealthFilePaths(
prevResultInDb.input,
getUniqueFilename
),
- output: transformEvaliteFilePaths(
+ output: transformEvaluhealthFilePaths(
prevResultInDb.output,
getUniqueFilename
),
- expected: transformEvaliteFilePaths(
+ expected: transformEvaluhealthFilePaths(
prevResultInDb.expected,
getUniqueFilename
),
- rendered_columns: transformEvaliteFilePaths(
+ rendered_columns: transformEvaluhealthFilePaths(
prevResultInDb.rendered_columns,
getUniqueFilename
),
@@ -442,7 +459,7 @@ export const exportStaticUI = async (
}
: undefined;
- const resultData: Evalite.SDK.GetResultResult = {
+ const resultData: Evaluhealth.SDK.GetResultResult = {
result,
prevResult,
evaluation,
@@ -489,7 +506,7 @@ export const exportStaticUI = async (
// Add static mode configuration
const staticConfig = `