evalution 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/LICENSE.addendum +79 -0
- package/LICENSING.md +69 -0
- package/README.md +50 -0
- package/bin/evalution.js +5 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +871 -0
- package/dist/client/assets/index-CORbBplP.js +144 -0
- package/dist/client/assets/index-CgcFVsRZ.css +32 -0
- package/dist/client/favicon.svg +19 -0
- package/dist/client/index.html +17 -0
- package/dist/index.d.ts +1440 -0
- package/dist/index.js +1325 -0
- package/dist/vercel-ai-sdk-CareWPDM.js +759 -0
- package/package.json +102 -0
package/LICENSE.addendum
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
EVALUTION — ADDITIONAL TERMS UNDER SECTION 7 OF THE GNU AGPL v3.0
|
|
2
|
+
|
|
3
|
+
Copyright (C) 2026 Alexander Corrado
|
|
4
|
+
|
|
5
|
+
The program "evalution" is licensed under the GNU Affero General Public
|
|
6
|
+
License, version 3.0 only ("AGPL-3.0-only"), the full text of which is in
|
|
7
|
+
the accompanying LICENSE file. The following additional terms apply under
|
|
8
|
+
section 7 of that license. In the event of any conflict between these terms
|
|
9
|
+
and the AGPL, the AGPL governs except where it expressly permits additional
|
|
10
|
+
terms.
|
|
11
|
+
|
|
12
|
+
--------------------------------------------------------------------------
|
|
13
|
+
0. Definitions
|
|
14
|
+
--------------------------------------------------------------------------
|
|
15
|
+
|
|
16
|
+
"The Program" means evalution and any work based on it, as defined by the
|
|
17
|
+
AGPL.
|
|
18
|
+
|
|
19
|
+
"Provider Interface" means any of the TypeScript interfaces published by the
|
|
20
|
+
Program for supplying prompts, traces, or comparable extension data —
|
|
21
|
+
including, without limitation, `PromptProvider` and `TraceProvider` as
|
|
22
|
+
exported from the Program — together with the data structures those
|
|
23
|
+
interfaces exchange.
|
|
24
|
+
|
|
25
|
+
"Provider" means a separate and independent work, distributed apart from the
|
|
26
|
+
Program, whose purpose is to implement one or more Provider Interfaces and to
|
|
27
|
+
be loaded into the Program at runtime through the Program's configuration
|
|
28
|
+
(for example, a `.evalution/config.ts` file). A Provider is a "separate and
|
|
29
|
+
independent work" only while it is distributed on its own and not
|
|
30
|
+
incorporated into a copy of the Program's own source.
|
|
31
|
+
|
|
32
|
+
"Network Use" of the Program means making the functionality of the Program
|
|
33
|
+
available to one or more users who interact with it remotely through a
|
|
34
|
+
computer network, within the meaning of section 13 of the AGPL. The AGPL,
|
|
35
|
+
in section 0, provides that mere network interaction without transfer of a
|
|
36
|
+
copy is not "conveying"; "Network Use" is defined here precisely to name
|
|
37
|
+
that section-13 activity, and no inference about the meaning of "convey"
|
|
38
|
+
should be drawn from the term.
|
|
39
|
+
|
|
40
|
+
--------------------------------------------------------------------------
|
|
41
|
+
1. Additional permission for combination with Providers
|
|
42
|
+
--------------------------------------------------------------------------
|
|
43
|
+
|
|
44
|
+
As an additional permission under section 7 of the AGPL:
|
|
45
|
+
|
|
46
|
+
(a) Running a local combination. You are granted the right to combine the
|
|
47
|
+
Program with one or more Providers and to run the resulting combination,
|
|
48
|
+
WITHOUT that combination causing the Providers themselves to become subject
|
|
49
|
+
to the AGPL, and without the Providers' Corresponding Source being required
|
|
50
|
+
as part of the Program's Corresponding Source — PROVIDED THAT you do not put
|
|
51
|
+
the combination to Network Use.
|
|
52
|
+
|
|
53
|
+
(b) Distributing Providers. A Provider — and any separate work whose purpose
|
|
54
|
+
is to depend on and load a Provider — may be authored, licensed, and
|
|
55
|
+
conveyed by anyone under any license of its author's choosing, and others
|
|
56
|
+
may depend on it and load it into a local invocation of the Program (for
|
|
57
|
+
example, via `npx evalution`), PROVIDED THAT it remains a separate and
|
|
58
|
+
independent work as defined in section 0 (that is, it is distributed on its
|
|
59
|
+
own and is not incorporated into a copy of the Program's own source). This
|
|
60
|
+
permission concerns the form in which the work is distributed, not the uses
|
|
61
|
+
to which recipients later put it; a recipient's own combination and use of
|
|
62
|
+
the Program remain governed by paragraph (a) and by section 2.
|
|
63
|
+
|
|
64
|
+
--------------------------------------------------------------------------
|
|
65
|
+
2. Scope of the covered work under Network Use
|
|
66
|
+
--------------------------------------------------------------------------
|
|
67
|
+
|
|
68
|
+
The permission in section 1 does NOT extend to Network Use of the Program.
|
|
69
|
+
When you put the Program to Network Use with one or more Providers loaded
|
|
70
|
+
through its configuration, each such Provider is, for the duration of that
|
|
71
|
+
use, part of the covered work and part of the Corresponding Source that
|
|
72
|
+
section 13 of the AGPL requires you to offer to users interacting with the
|
|
73
|
+
Program remotely.
|
|
74
|
+
|
|
75
|
+
For the avoidance of doubt: this section grants no permission. It records
|
|
76
|
+
that, outside the permissions in section 1, the unmodified copyleft scope of
|
|
77
|
+
the AGPL applies to the combination, so that a network operator who loads a
|
|
78
|
+
Provider must be able to, and must, provide that Provider's Corresponding
|
|
79
|
+
Source to remote users.
|
package/LICENSING.md
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Licensing
|
|
2
|
+
|
|
3
|
+
This document is an informal explainer. The binding terms are in
|
|
4
|
+
[`LICENSE`](./LICENSE), [`LICENSE.addendum`](./LICENSE.addendum), and the
|
|
5
|
+
per-package `LICENSE` files. Where this document and those files disagree,
|
|
6
|
+
those files win.
|
|
7
|
+
|
|
8
|
+
## Short version
|
|
9
|
+
|
|
10
|
+
| You want to… | What applies |
|
|
11
|
+
| ------------------------------------------------------------------------- | --------------------------------------------------------- |
|
|
12
|
+
| Run evalution locally (`npx evalution`), including with any providers | Free. No source-sharing obligation. |
|
|
13
|
+
| Modify evalution and keep it to yourself | Free. No obligation until you distribute or host it. |
|
|
14
|
+
| Distribute a modified evalution | AGPL-3.0: ship your source under the AGPL. |
|
|
15
|
+
| **Host** evalution as a network service (SaaS) | AGPL-3.0 §13: offer the full source — **including any providers loaded through its config** — to your users. |
|
|
16
|
+
| Write a provider/extension and distribute it separately | Free. License it however you like (see below). |
|
|
17
|
+
| Use `@evalution/vercel-ai-sdk` in your own project | MIT. Use it anywhere, including closed-source. |
|
|
18
|
+
|
|
19
|
+
## The core: AGPL-3.0-only + a section 7 addendum
|
|
20
|
+
|
|
21
|
+
The `evalution` core is licensed **AGPL-3.0-only** ([`LICENSE`](./LICENSE))
|
|
22
|
+
with additional terms under section 7 ([`LICENSE.addendum`](./LICENSE.addendum)).
|
|
23
|
+
|
|
24
|
+
The addendum draws a deliberate line around **Providers** — separately
|
|
25
|
+
distributed works that implement evalution's `PromptProvider` / `TraceProvider`
|
|
26
|
+
interfaces and are loaded at runtime through `.evalution/config.ts`:
|
|
27
|
+
|
|
28
|
+
- **Run locally**, a Provider is *not* pulled under the AGPL. Anyone may write
|
|
29
|
+
one, license it under any license (MIT, proprietary, anything), distribute it
|
|
30
|
+
on its own, and have others depend on it and load it into a local `npx`
|
|
31
|
+
invocation. This is an *additional permission* the addendum grants.
|
|
32
|
+
|
|
33
|
+
- **Hosted over a network**, that permission does not apply, and baseline AGPL
|
|
34
|
+
reasserts: any Provider loaded through the config becomes part of the covered
|
|
35
|
+
work, so a network operator must offer its Corresponding Source to remote
|
|
36
|
+
users under §13. In practice this means you cannot host evalution with a
|
|
37
|
+
closed-source provider loaded — you must be able to provide that provider's
|
|
38
|
+
source.
|
|
39
|
+
|
|
40
|
+
The net effect, by design: provider authors stay free; people self-hosting for
|
|
41
|
+
themselves stay free; only operators turning evalution + providers into a
|
|
42
|
+
network service take on the source-sharing obligation.
|
|
43
|
+
|
|
44
|
+
## The Vercel AI SDK adapter: MIT
|
|
45
|
+
|
|
46
|
+
[`packages/vercel-ai-sdk`](./packages/vercel-ai-sdk) (`@evalution/vercel-ai-sdk`)
|
|
47
|
+
is **MIT** ([`LICENSE`](./packages/vercel-ai-sdk/LICENSE)) so it can be imported
|
|
48
|
+
into any project, including closed-source ones, without AGPL obligations.
|
|
49
|
+
|
|
50
|
+
For that promise to be real, the package's published `dist` must contain only
|
|
51
|
+
permissively licensed code:
|
|
52
|
+
|
|
53
|
+
- The package takes **no runtime dependency** on the AGPL core — only
|
|
54
|
+
`peerDependencies` on `ai` and the `@ai-sdk/*` packages.
|
|
55
|
+
- It does bundle one file from the core,
|
|
56
|
+
[`src/trace/prompt-tracer.ts`](./src/trace/prompt-tracer.ts), via the build.
|
|
57
|
+
That file is **dual-licensed `MIT OR AGPL-3.0-only`** (see its SPDX header),
|
|
58
|
+
so the bytes that land in the MIT package are genuinely MIT.
|
|
59
|
+
- `prompt-tracer.ts` must stay **self-contained** (only `@opentelemetry/api`).
|
|
60
|
+
If it ever imports from elsewhere in the core, the bundler would pull
|
|
61
|
+
AGPL-only code into the MIT artifact and break this guarantee.
|
|
62
|
+
|
|
63
|
+
## Contributing
|
|
64
|
+
|
|
65
|
+
Contributions to this repository require a signed Contributor License Agreement
|
|
66
|
+
([`CLA.md`](./CLA.md)). The CLA lets the project keep offering the core under
|
|
67
|
+
the AGPL while preserving the maintainer's ability to dual-license, ship the
|
|
68
|
+
MIT adapter, and operate a hosted service. You keep the copyright to your
|
|
69
|
+
contribution; you grant a broad license to use it.
|
package/README.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Evalution
|
|
2
|
+
|
|
3
|
+
Evalution is a local-first development tool. Maintain your prompts directly in your codebase, and
|
|
4
|
+
use the web playground to edit parameters, switch models, and see results in real
|
|
5
|
+
time, so what you test is exactly what ships.
|
|
6
|
+
|
|
7
|
+
📖 **Documentation: [evalut.io/n/docs](https://evalut.io/n/docs)**
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
- 🔍 **Auto-discovery** — scans your project for `.prompt.ts` files
|
|
12
|
+
- 🔄 **Always in sync** — edit prompts in the UI or directly in the source files; they always stay in sync
|
|
13
|
+
- 🎯 **Type-safe** — full TypeScript support with parameter inference
|
|
14
|
+
- 🔌 **Multi-provider** — Vercel AI SDK is fully supported, or wire up a different SDK adapter
|
|
15
|
+
- 📊 **Tracing** — traces for your prompt runs populate in realtime
|
|
16
|
+
- 🧩 **Extensible** — swap in your own prompt sources, SDK adapters, and trace backends
|
|
17
|
+
|
|
18
|
+
## Getting started
|
|
19
|
+
|
|
20
|
+
Run this in the root of your project:
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
npx evalution
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Requires Node.js 22.18.0 or higher.
|
|
27
|
+
|
|
28
|
+
See the [documentation](https://evalut.io/n/docs) for more detailed guidance.
|
|
29
|
+
|
|
30
|
+
## Development
|
|
31
|
+
|
|
32
|
+
1. Install dependencies: `npm install`
|
|
33
|
+
2. Run server and client against the evalution check out: `npm run dev`
|
|
34
|
+
3. Run against a different path:
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
npm run dev:server -- ui <path>
|
|
38
|
+
npm run dev:client
|
|
39
|
+
```
|
|
40
|
+
Other useful commands:
|
|
41
|
+
|
|
42
|
+
- `npm test` — run unit tests (`npm run test:coverage` for coverage)
|
|
43
|
+
- `npm run test:ui` — run Playwright component tests
|
|
44
|
+
- `npm run typecheck` — type-check the project
|
|
45
|
+
- `npm run docs` — regenerate the API reference
|
|
46
|
+
- `npm run build` — build the server and client
|
|
47
|
+
|
|
48
|
+
## License
|
|
49
|
+
|
|
50
|
+
AGPL
|
package/bin/evalution.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|