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.
@@ -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
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ // Copyright (c) 2026 Alexander Corrado
4
+
5
+ import("../dist/cli/index.js");
@@ -0,0 +1 @@
1
+ export { };