@bjoernrochel/sevro 0.1.0-rc.2 → 0.1.0-rc.20
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/CONTRIBUTING.md +170 -0
- package/LICENSE +63 -136
- package/README.md +83 -66
- package/docs/README.md +44 -0
- package/docs/acknowledgements.md +14 -0
- package/docs/architecture.md +146 -0
- package/docs/assets/README.md +27 -0
- package/docs/assets/sevro-logo.png +0 -0
- package/docs/assets/sevro-symbol.svg +1 -0
- package/docs/assets/sevro-wordmark.svg +1 -0
- package/docs/builtin-graders-v1.md +41 -13
- package/docs/codex-host.md +184 -52
- package/docs/contracts.md +19 -0
- package/docs/creating-cases.md +139 -0
- package/docs/development-cli.md +190 -30
- package/docs/documentation-quality.md +61 -0
- package/docs/evaluation-workflow.md +110 -0
- package/docs/evidence/code-mode-controls-71.md +64 -0
- package/docs/evidence/code-mode-programs-85.md +64 -0
- package/docs/evidence/codex-state-73/README.md +204 -0
- package/docs/evidence/codex-state-73/darrow-migration.patch +182 -0
- package/docs/evidence/codex-state-73/results.json +661 -0
- package/docs/evidence/local-http-74.md +104 -0
- package/docs/evidence/runtime-startup-30/README.md +185 -0
- package/docs/evidence/runtime-startup-30/after.json +319 -0
- package/docs/evidence/runtime-startup-30/baseline-timeout.jsonl +2 -0
- package/docs/evidence/runtime-startup-30/before.json +403 -0
- package/docs/evidence/runtime-startup-30/consumer-smoke.json +63 -0
- package/docs/evidence/runtime-startup-30/full-policy-diagnostic.jsonl +3 -0
- package/docs/evidence/runtime-startup-30/minimal-policy-diagnostic.jsonl +3 -0
- package/docs/evidence/runtime-startup-30/plugin-template-assessment.json +20 -0
- package/docs/evidence/runtime-startup-30/seedless-timeout.jsonl +2 -0
- package/docs/evidence/skill-reads-70/results.json +823 -0
- package/docs/evidence.md +21 -0
- package/docs/extension-protocol-v1.md +41 -16
- package/docs/fixture-cleanup-validation.md +3 -0
- package/docs/getting-started.md +102 -0
- package/docs/guide-evaluation.md +89 -0
- package/docs/guide-verification.json +239 -0
- package/docs/identity-v1.md +35 -1
- package/docs/installing.md +88 -0
- package/docs/licenses/BUSL-1.1-0.1.0-rc.2.txt +159 -0
- package/docs/licensing.md +42 -0
- package/docs/native-controls.md +76 -5
- package/docs/native-hosts.md +181 -0
- package/docs/reading-results.md +121 -0
- package/docs/recipes.md +489 -0
- package/docs/releases.md +81 -40
- package/docs/report-v1.md +29 -1
- package/docs/results-v1.md +180 -0
- package/docs/run-settings-v1.md +147 -0
- package/docs/running-evaluations.md +31 -0
- package/docs/runtime-v1.md +614 -0
- package/docs/specs/repository-guide.md +58 -0
- package/docs/troubleshooting.md +30 -0
- package/docs/typescript-quality.md +234 -0
- package/docs/usability-study.md +114 -0
- package/examples/basic/host.ts +2 -2
- package/examples/recipes/candidate.ts +26 -0
- package/examples/recipes/cases/coding-change.json +21 -0
- package/examples/recipes/cases/host-tools.json +21 -0
- package/examples/recipes/cases/mise.json +21 -0
- package/examples/recipes/cases/node.json +21 -0
- package/examples/recipes/cases/python-uv.json +21 -0
- package/examples/recipes/cases/semantic.json +17 -0
- package/examples/recipes/coding-change/check.ts +23 -0
- package/examples/recipes/extension-artifacts.ts +65 -0
- package/examples/recipes/extension-methods.ts +174 -0
- package/examples/recipes/extension.ts +37 -0
- package/examples/recipes/repository-skill/.agents/skills/startup-guide/SKILL.md +7 -0
- package/examples/recipes/repository-skill/.claude/skills/startup-guide/SKILL.md +7 -0
- package/examples/recipes/repository-skill/README.md +3 -0
- package/examples/recipes/run-inputs.ts +188 -0
- package/examples/recipes/run-options.ts +131 -0
- package/examples/recipes/run.ts +63 -0
- package/examples/recipes/runtime/empty.json +1 -0
- package/examples/recipes/runtime/goals.json +1 -0
- package/examples/recipes/runtime/mise.json +6 -0
- package/examples/recipes/runtime/path.json +1 -0
- package/examples/recipes/runtime/plugins.json +4 -0
- package/examples/recipes/runtime/python-uv.json +10 -0
- package/examples/recipes/semantic-judge.ts +29 -0
- package/examples/templates/coding/adapter.ts +17 -0
- package/examples/templates/coding/case.json +15 -0
- package/examples/templates/repository-skill/.agents/skills/startup-guide/SKILL.md +6 -0
- package/examples/templates/repository-skill/extension-data.ts +64 -0
- package/examples/templates/repository-skill/extension.ts +31 -0
- package/examples/templates/response/adapter.ts +12 -0
- package/examples/templates/response/case.json +13 -0
- package/package.json +39 -6
- package/schemas/report-v1.schema.json +9 -0
- package/schemas/run-evidence-v1.schema.json +2 -1
- package/schemas/runtime-v1.schema.json +193 -0
- package/src/advisory.ts +10 -5
- package/src/candidate-artifacts.ts +208 -0
- package/src/candidate-codex-state.ts +185 -0
- package/src/case-validation.ts +105 -0
- package/src/cli/cancellation.ts +20 -0
- package/src/cli/command.ts +81 -0
- package/src/cli/completion.ts +15 -0
- package/src/cli/demo.ts +59 -0
- package/src/cli/evaluation.ts +55 -0
- package/src/cli/extension.ts +79 -0
- package/src/cli/help.ts +222 -0
- package/src/cli/hosts.ts +59 -0
- package/src/cli/init-settings.ts +30 -0
- package/src/cli/init.ts +111 -0
- package/src/cli/invocation.ts +627 -0
- package/src/cli/loading.ts +151 -0
- package/src/cli/preparation.ts +163 -0
- package/src/cli/presentation.ts +91 -0
- package/src/cli/progress.ts +6 -0
- package/src/cli/run-manifest.ts +133 -0
- package/src/cli/run-options.ts +101 -0
- package/src/cli/run-overrides.ts +83 -0
- package/src/cli/settings.ts +160 -0
- package/src/cli/summary.ts +43 -0
- package/src/cli.ts +13 -843
- package/src/contract-types.ts +94 -0
- package/src/engine.ts +19 -2373
- package/src/evaluation/advisory.ts +150 -0
- package/src/evaluation/check-plan.ts +510 -0
- package/src/evaluation/collection.ts +88 -0
- package/src/evaluation/context.ts +10 -0
- package/src/evaluation/grading-host.ts +39 -0
- package/src/evaluation/grading.ts +258 -0
- package/src/evaluation/invocation-plan.ts +548 -0
- package/src/evaluation/plan.ts +736 -0
- package/src/evaluation/progress.ts +19 -0
- package/src/evaluation/resources.ts +241 -0
- package/src/evaluation/run.ts +206 -0
- package/src/{trial-scheduler.ts → evaluation/scheduler.ts} +3 -1
- package/src/evaluation/semantic.ts +312 -0
- package/src/evaluation/trial.ts +866 -0
- package/src/evaluation/types.ts +207 -0
- package/src/evidence/host-results.ts +92 -0
- package/src/evidence/retained-artifacts.ts +18 -0
- package/src/evidence/trial-writer.ts +203 -0
- package/src/evidence/usage.ts +17 -0
- package/src/extension-client.ts +228 -148
- package/src/extension-session.ts +326 -195
- package/src/fixtures/advisory.ts +338 -0
- package/src/fixtures/bin.ts +57 -0
- package/src/{fixture-cleanup.ts → fixtures/cleanup.ts} +13 -7
- package/src/fixtures/create.ts +187 -0
- package/src/fixtures/generated.ts +300 -0
- package/src/fixtures/git-hooks.ts +24 -0
- package/src/fixtures/preparation.ts +270 -0
- package/src/{repository-fixture.ts → fixtures/repository.ts} +207 -85
- package/src/fixtures/setup.ts +224 -0
- package/src/fixtures/tools.ts +88 -0
- package/src/fixtures/workspace-state.ts +212 -0
- package/src/generated/cli-result.cjs +2 -0
- package/src/generated/cli-result.d.cts +3 -0
- package/src/generated/extension.cjs +2 -0
- package/src/generated/extension.d.cts +3 -0
- package/src/generated/report.cjs +2 -0
- package/src/generated/report.d.cts +3 -0
- package/src/generated/run-evidence.cjs +2 -0
- package/src/generated/run-evidence.d.cts +3 -0
- package/src/generated/runtime.cjs +2 -0
- package/src/generated/runtime.d.cts +3 -0
- package/src/graders/artifact.ts +56 -23
- package/src/graders/git-head.ts +79 -75
- package/src/graders/output.ts +222 -140
- package/src/graders/semantic.ts +102 -43
- package/src/graders/shell.ts +379 -207
- package/src/host-diagnostic-redaction.ts +52 -0
- package/src/host-diagnostics.ts +319 -0
- package/src/hosts/claude-continuation.ts +63 -18
- package/src/hosts/claude-credential.ts +43 -62
- package/src/hosts/claude-events.ts +86 -51
- package/src/hosts/claude-keychain.ts +59 -0
- package/src/hosts/claude-native-goal.ts +57 -33
- package/src/hosts/claude-process.ts +111 -0
- package/src/hosts/claude-repository-invocation.ts +208 -117
- package/src/hosts/claude-settings.ts +240 -21
- package/src/hosts/claude-skill-activations.ts +166 -0
- package/src/hosts/claude-state.ts +403 -0
- package/src/hosts/claude-tool-calls.ts +171 -106
- package/src/hosts/claude.ts +561 -451
- package/src/hosts/codex-app-server.ts +326 -178
- package/src/hosts/codex-configuration.ts +44 -18
- package/src/hosts/codex-events.ts +97 -60
- package/src/hosts/codex-exec-controls.ts +516 -0
- package/src/hosts/codex-invocation.ts +70 -0
- package/src/hosts/codex-marketplace.ts +283 -0
- package/src/hosts/codex-native-calls.ts +546 -500
- package/src/hosts/codex-process.ts +202 -0
- package/src/hosts/codex-profile.ts +257 -28
- package/src/hosts/codex-session-files.ts +106 -0
- package/src/hosts/codex-state.ts +492 -0
- package/src/hosts/codex.ts +780 -832
- package/src/hosts/isolation-common.ts +94 -0
- package/src/hosts/isolation-roots.ts +54 -27
- package/src/hosts/isolation.ts +10 -0
- package/src/hosts/linux-sandbox.ts +159 -0
- package/src/hosts/mac-sandbox.ts +187 -61
- package/src/hosts/native-controls.ts +152 -62
- package/src/hosts/process-lifecycle.ts +37 -0
- package/src/hosts/protected-worktrees.ts +51 -19
- package/src/hosts/skill-hook-catalog.ts +131 -0
- package/src/hosts/skill-hook-handler.ts +374 -0
- package/src/hosts/skill-hooks.ts +510 -0
- package/src/hosts/workspace-fingerprint.ts +55 -35
- package/src/identity.ts +102 -48
- package/src/instrumentation.ts +109 -48
- package/src/native-transcript-state.ts +131 -0
- package/src/native-transcript-view.ts +90 -0
- package/src/native-transcripts.ts +286 -0
- package/src/process-lifecycle.ts +150 -0
- package/src/provenance.ts +161 -81
- package/src/prune.ts +215 -0
- package/src/report.ts +172 -140
- package/src/resolved-case.ts +33 -0
- package/src/results-lock.ts +29 -0
- package/src/results.ts +133 -86
- package/src/run-owner.ts +154 -63
- package/src/runtime/config.ts +456 -0
- package/src/runtime/discovery-apple.ts +90 -0
- package/src/runtime/discovery-providers.ts +63 -0
- package/src/runtime/discovery.ts +70 -0
- package/src/runtime/hook-processes.ts +97 -0
- package/src/runtime/hooks.ts +476 -0
- package/src/runtime/paths.ts +313 -0
- package/src/runtime/query.ts +85 -0
- package/src/runtime/seeds.ts +134 -0
- package/src/runtime/shared-cache.ts +143 -0
- package/src/runtime/state.ts +143 -0
- package/src/schema-types.ts +198 -0
- package/src/schema.ts +15 -19
- package/src/transcript-retention.ts +146 -0
- package/src/value-guards.ts +20 -0
- package/src/advisory-fixture.ts +0 -282
- package/src/fixture-bin.ts +0 -87
- package/src/fixture-setup.ts +0 -163
- package/src/generated-fixture.ts +0 -220
- package/src/git-hooks.ts +0 -63
- package/src/hosts/claude-nested-skills.ts +0 -218
- package/src/hosts/codex-command-output.ts +0 -399
- package/src/hosts/codex-executor-command.ts +0 -195
- package/src/hosts/codex-skill-reads.ts +0 -391
- package/src/preparation.ts +0 -211
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# Contributing to Sevro
|
|
2
|
+
|
|
3
|
+
Contributions are welcome: runner fixes, extension examples, tests, documentation,
|
|
4
|
+
and useful bug reports. Agent guidance lives in `AGENTS.md` in a source checkout.
|
|
5
|
+
The [public contracts](docs/contracts.md) define the behavior compatibility boundary.
|
|
6
|
+
|
|
7
|
+
## Contribution licensing
|
|
8
|
+
|
|
9
|
+
By intentionally submitting a contribution for inclusion, you confirm that you
|
|
10
|
+
created it or have permission to license it, including employer-owned work.
|
|
11
|
+
Identify third-party material and its license separately; do not grant rights
|
|
12
|
+
you lack. You make your contribution available under [Sevro's public license](LICENSE).
|
|
13
|
+
|
|
14
|
+
In addition, you grant Björn Rochel a worldwide, perpetual, non-exclusive,
|
|
15
|
+
irrevocable, royalty-free copyright license to use, reproduce, modify, publicly
|
|
16
|
+
display, publicly perform, distribute, and license or sublicense the contribution
|
|
17
|
+
and its derivatives under other terms, including open-source and commercial
|
|
18
|
+
licenses. You retain copyright. This grants permission, not ownership.
|
|
19
|
+
|
|
20
|
+
Other recipients receive the public terms unless separately licensed. This is
|
|
21
|
+
not an Apache-2.0 grant to every recipient. The additional grant lets the
|
|
22
|
+
maintainer offer alternatives without obtaining new copyright permission from
|
|
23
|
+
each contributor. If you cannot agree, raise that before submitting work for
|
|
24
|
+
inclusion. Contributions are provided without warranties to the extent permitted
|
|
25
|
+
by applicable law.
|
|
26
|
+
|
|
27
|
+
## Set up development
|
|
28
|
+
|
|
29
|
+
Use Bun 1.3.13, Git, Node 24, npm, and ripgrep (`rg`). Full suite isolation uses `sandbox-exec`
|
|
30
|
+
on macOS or `bubblewrap` and `socat` on Ubuntu. The macOS synthetic libc regression
|
|
31
|
+
fixtures compile with `/usr/bin/cc`, supplied by Apple's Command Line Tools.
|
|
32
|
+
Windows acceptance is unverified.
|
|
33
|
+
From a fresh checkout:
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
bun install --frozen-lockfile
|
|
37
|
+
bun run test:docs-examples
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The second command checks the tutorial in fresh consumer/contributor directories.
|
|
41
|
+
Its complete recipe checks also require UV, Python 3, mise, and an existing
|
|
42
|
+
`mise install node@24.13.0` installation; see [recipe prerequisites](docs/recipes.md).
|
|
43
|
+
CI explicitly provisions these tools. Missing prerequisites fail with a named
|
|
44
|
+
setup instruction rather than skipping a recipe.
|
|
45
|
+
To run recipe commands from this source checkout, set
|
|
46
|
+
`export SEVRO_RECIPES="$PWD/examples/recipes"` from the repository root, then
|
|
47
|
+
follow the [recipe commands](docs/recipes.md#prepare-a-recipe-project).
|
|
48
|
+
Native model trials need their own [credentials and prerequisites](docs/native-hosts.md).
|
|
49
|
+
|
|
50
|
+
## Quality contract and checks
|
|
51
|
+
|
|
52
|
+
[The TypeScript quality contract](docs/typescript-quality.md) defines the checked
|
|
53
|
+
source inventory, type-aware lint, strict typing, focused functions, reproducible
|
|
54
|
+
properties, and independent statement and branch coverage requirements.
|
|
55
|
+
Run the complete acceptance command:
|
|
56
|
+
|
|
57
|
+
```sh
|
|
58
|
+
bun run check:typescript
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
It performs frozen installation, schema freshness, formatting, lint, typing,
|
|
62
|
+
documentation and guide dry-run checks, tutorial examples, the real Bun suite,
|
|
63
|
+
coverage integrity and thresholds, and installed-package validation. Statements
|
|
64
|
+
and branches must each reach at least 95% using raw exact counts over the
|
|
65
|
+
platform-reachable authored production inventory, including unimported files.
|
|
66
|
+
The macOS and Ubuntu gates each measure their reachable host modules; the exact
|
|
67
|
+
module and branch-outcome exclusions are recorded in coverage artifacts. The five explicitly
|
|
68
|
+
inventoried generated AJV validators are excluded from coverage because this
|
|
69
|
+
target measures authored runner behavior; their syntax, schema freshness, typed
|
|
70
|
+
boundaries and runtime tests remain checked. Tests and fixtures remain linted and
|
|
71
|
+
typed; they do not enter the production coverage denominator. New or changed
|
|
72
|
+
source dispositions require review.
|
|
73
|
+
|
|
74
|
+
Before committing, use `bun run check:typescript --fast` after installing the
|
|
75
|
+
locked dependencies. This runs inventory, schema, formatting, lint, typing and
|
|
76
|
+
documentation checks; it does not replace full acceptance. CI retains machine-readable coverage
|
|
77
|
+
reports under `.quality/` and exposes the stable `TypeScript quality` status.
|
|
78
|
+
The complete command's `static`, `docs`, `tests` and `package` phases run as
|
|
79
|
+
concurrent CI jobs. CI divides the tests among four duration-balanced jobs and
|
|
80
|
+
requires one combined coverage gate; every test and both 95% thresholds remain
|
|
81
|
+
required. Superseded runs for the same pull request are cancelled. After frozen installation, use
|
|
82
|
+
`bun run check:typescript --phase <name>` to run one phase locally; it does not
|
|
83
|
+
replace acceptance across all four. See the [phase inventory](docs/typescript-quality.md).
|
|
84
|
+
|
|
85
|
+
Run `bun run check:docs:external` separately and [triage network failures](docs/documentation-quality.md#external-links).
|
|
86
|
+
Guide changes also need [native evals](docs/guide-evaluation.md).
|
|
87
|
+
Documentation checks supplement #1 rather than replacing its contract.
|
|
88
|
+
|
|
89
|
+
## Delivery and CI ownership
|
|
90
|
+
|
|
91
|
+
An implementation PR is complete only when required CI checks pass for its exact
|
|
92
|
+
published commit. A request to open or update a PR includes monitoring CI and
|
|
93
|
+
repairing in-scope failures; it does not authorize merging or unrelated changes.
|
|
94
|
+
|
|
95
|
+
- Use GitHub CI in `.github/workflows/verify.yml` for full acceptance validation.
|
|
96
|
+
It provides the configured OS, architecture, runtime and native-tool versions,
|
|
97
|
+
non-root user, and isolation prerequisites. Reproducing that environment locally
|
|
98
|
+
with Docker is optional for diagnosis and is not a publication prerequisite.
|
|
99
|
+
- After the local pre-commit checks, publish the authorized candidate to its PR
|
|
100
|
+
and require all four canonical `check:typescript` phases to succeed in GitHub CI
|
|
101
|
+
before reporting delivery as complete. A local run, fast check, targeted suite, or historical
|
|
102
|
+
result does not establish that the current Ubuntu gate passes.
|
|
103
|
+
- Keep the quality bar intact. Repair behavior or add meaningful coverage for
|
|
104
|
+
accepted behavior; do not lower thresholds, exempt authored sources, skip tests,
|
|
105
|
+
bypass checks, or add artificial tests just to move a counter. Remove impossible
|
|
106
|
+
branches by clarifying validated invariants rather than inventing impossible inputs.
|
|
107
|
+
- Bind validation to the candidate's exact source and commit. Changes to source,
|
|
108
|
+
tests, tooling, dependencies, schemas, workflows, or guidance invalidate prior
|
|
109
|
+
candidate evidence; require the applicable CI gates on the updated published head.
|
|
110
|
+
- After authorized publication, observe required checks for the exact PR head
|
|
111
|
+
until they finish. Queued or running checks, a successful older commit, and a
|
|
112
|
+
passing subset are not completion.
|
|
113
|
+
- On failure, inspect the failed job and retained artifacts, reproduce the cause
|
|
114
|
+
locally when useful, repair within the authorized scope, and publish a non-force
|
|
115
|
+
update to the same PR. Continue monitoring without waiting for the user to notice
|
|
116
|
+
the failure or request correction; do not open a duplicate PR or merge it.
|
|
117
|
+
- If an external blocker prevents progress, report its concrete evidence and the
|
|
118
|
+
unfinished checks. Keep the PR's status and description honest; do not report
|
|
119
|
+
delivery as complete while required checks remain failing or unobserved.
|
|
120
|
+
|
|
121
|
+
Release metadata follows `docs/releases.md` and its existing verified-source CI
|
|
122
|
+
reuse policy; these implementation gates do not require release test reruns.
|
|
123
|
+
|
|
124
|
+
## Tests, fixtures, and schemas
|
|
125
|
+
|
|
126
|
+
Preserve real Bun filesystem/process integration tests and native isolation.
|
|
127
|
+
Use deterministic fixtures under `tests/fixtures/`; keep evaluator-only inputs
|
|
128
|
+
outside candidate workspaces. Keep credentials and raw trial evidence out of Git.
|
|
129
|
+
Add meaningful regression coverage for reproducible bugs. Fixtures should
|
|
130
|
+
establish observable behavior, not mirror implementation.
|
|
131
|
+
|
|
132
|
+
After changing a schema, regenerate its checked-in validators:
|
|
133
|
+
|
|
134
|
+
```sh
|
|
135
|
+
bun run schemas:generate
|
|
136
|
+
bun run schemas:check
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Commit schemas and validators together. Public v1 schemas and extension
|
|
140
|
+
capabilities are compatibility boundaries. Document changed meaning, validate
|
|
141
|
+
external inputs, and keep missing evidence from becoming a pass.
|
|
142
|
+
|
|
143
|
+
## Documentation and pull requests
|
|
144
|
+
|
|
145
|
+
Give each page one reader need: tutorial, how-to, reference, or explanation.
|
|
146
|
+
Maintain the [hub](docs/README.md), old destinations, prerequisites, expected
|
|
147
|
+
results, and limitations. Preserve historical observations as evidence rather
|
|
148
|
+
than rewriting them to describe current behavior.
|
|
149
|
+
|
|
150
|
+
Use imperative Conventional Commit subjects without trailing periods. Do not
|
|
151
|
+
add `Co-authored-by` or AI attribution trailers. Do not change author metadata
|
|
152
|
+
without explicit instruction. A PR explains the problem, changed behavior,
|
|
153
|
+
compatibility limits, and checks actually performed. Do not claim unexecuted
|
|
154
|
+
native trials or remote CI results.
|
|
155
|
+
|
|
156
|
+
## Maintainer releases
|
|
157
|
+
|
|
158
|
+
Follow [releases](docs/releases.md): reuse successful source CI, choose a new
|
|
159
|
+
version, and submit the release commit through a PR. Release PRs reuse the
|
|
160
|
+
existing full quality gate and run static metadata checks; releases do not
|
|
161
|
+
rerun local or CI tests. After the PR merges, prepare and inspect the exact
|
|
162
|
+
tarball and verify its license, provenance, and checksums before publication.
|
|
163
|
+
After changing `package.json.version`, run `bun run docs:sync` to refresh the
|
|
164
|
+
[current release](docs/installing.md#current-release). `check:docs`, release
|
|
165
|
+
preparation, and package-install validation reject stale release documentation.
|
|
166
|
+
Package-install, native, and Darrow compatibility tests belong to development
|
|
167
|
+
or an explicitly requested diagnostic, not the release process. Darrow's
|
|
168
|
+
dependency update is a separate PR.
|
|
169
|
+
Publication, tags, registry changes, and alternative licensing are separate
|
|
170
|
+
maintainer actions; preparing a contribution does not authorize them.
|
package/LICENSE
CHANGED
|
@@ -1,159 +1,86 @@
|
|
|
1
|
-
|
|
1
|
+
Sevro Source Available License 1.0
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
"Business Source License" is a trademark of MariaDB Corporation Ab.
|
|
3
|
+
Copyright (c) 2026 Björn Rochel
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
1. Definitions
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
"Software" means Sevro source code, executable forms, documentation, and
|
|
8
|
+
modifications or derivative works of those materials, except material
|
|
9
|
+
explicitly identified as having separate terms. Logo/branding permissions
|
|
10
|
+
are separate and stated in docs/assets/README.md. Third-party material
|
|
11
|
+
retains its identified license.
|
|
9
12
|
|
|
10
|
-
|
|
13
|
+
"You" means the person or legal entity exercising these rights.
|
|
11
14
|
|
|
12
|
-
|
|
13
|
-
The Licensed Work is (c) 2026 Björn Rochel.
|
|
15
|
+
2. Free use and modification
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
Subject to this license, you may use, copy, modify, and create derivative
|
|
18
|
+
works of the Software without a license fee, for any purpose. This includes
|
|
19
|
+
commercial and non-commercial work, paid education, research, evaluation,
|
|
20
|
+
consulting, and organizational use.
|
|
17
21
|
|
|
18
|
-
|
|
19
|
-
purpose, commercial or non-commercial, provided
|
|
20
|
-
that such use is not Commercial Educational
|
|
21
|
-
Production Use;
|
|
22
|
+
3. Free redistribution and origin
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
You may redistribute the Software in source or executable form, including
|
|
25
|
+
modified versions, without charge and under this license. Include this
|
|
26
|
+
license, retain applicable copyright/attribution/origin notices, identify
|
|
27
|
+
Sevro as the source of covered code, and prominently identify modifications.
|
|
28
|
+
Do not claim another person's contribution was authored by you or imply
|
|
29
|
+
that a modified version is an official Sevro release.
|
|
27
30
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
publishing blog posts, articles, or other
|
|
32
|
-
educational content, provided that such
|
|
33
|
-
production use is not Commercial Educational
|
|
34
|
-
Production Use;
|
|
31
|
+
These conditions also apply to covered code in combined distributions.
|
|
32
|
+
Independently authored material containing no covered Software may have
|
|
33
|
+
separate terms that neither restrict these rights nor circumvent section 4.
|
|
35
34
|
|
|
36
|
-
|
|
37
|
-
projects, provided that such use is not
|
|
38
|
-
Commercial Educational Production Use;
|
|
35
|
+
4. No sale or paid hosted access under this public license
|
|
39
36
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
functionality of the Licensed Work.
|
|
37
|
+
You may not charge directly or indirectly for copies of the Software, a
|
|
38
|
+
license to it, or access to its functionality as a hosted or managed service.
|
|
39
|
+
This includes modified, derivative, renamed, and rebranded versions. Bundling
|
|
40
|
+
or relabeling does not avoid this condition, including when the principal
|
|
41
|
+
value of a paid offering is access to the Software's functionality.
|
|
46
42
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
43
|
+
You may charge for independent professional services, training, research,
|
|
44
|
+
analysis, or other work performed using the Software, provided the payment
|
|
45
|
+
is not for copies, licensing, or hosted access to its functionality. Calling
|
|
46
|
+
a charge a hosting, subscription, service, or support fee does not permit
|
|
47
|
+
charging for otherwise restricted access.
|
|
52
48
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
49
|
+
Restricted distribution or hosted access requires a separate license from
|
|
50
|
+
the relevant rights holder. Contact Björn Rochel at bjoern@bjro.de for
|
|
51
|
+
alternative terms. This public license grants no general right to relicense
|
|
52
|
+
covered Software under other terms.
|
|
56
53
|
|
|
57
|
-
|
|
58
|
-
or promote, a paid product, service, membership,
|
|
59
|
-
or engagement; or
|
|
54
|
+
5. Contributions and separate grants
|
|
60
55
|
|
|
61
|
-
|
|
62
|
-
|
|
56
|
+
Contributions intentionally submitted for inclusion are governed by the
|
|
57
|
+
terms in CONTRIBUTING.md, including the additional copyright license to
|
|
58
|
+
Björn Rochel. Contributors retain copyright. Additional/alternative grants
|
|
59
|
+
apply only to their stated recipients and terms, not to every recipient.
|
|
63
60
|
|
|
64
|
-
|
|
65
|
-
constitute Commercial Educational Production Use.
|
|
66
|
-
Commercial Educational Production Use is not included
|
|
67
|
-
in this Additional Use Grant.
|
|
61
|
+
6. Independent inputs, outputs, and branding
|
|
68
62
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
63
|
+
This license does not by itself apply to independently authored cases,
|
|
64
|
+
datasets, extensions, prompts, or outputs merely because Sevro processes
|
|
65
|
+
them. Material copying or deriving from covered Software remains subject
|
|
66
|
+
to its applicable terms. Other material/input licenses still apply.
|
|
72
67
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
themselves offered free of charge under this License,
|
|
76
|
-
are permitted.
|
|
68
|
+
This software license grants no trademark or logo rights. Separate project
|
|
69
|
+
identification permissions appear in docs/assets/README.md.
|
|
77
70
|
|
|
78
|
-
|
|
79
|
-
version of the Licensed Work is first made publicly
|
|
80
|
-
available. The Change Date is determined separately
|
|
81
|
-
for each released version.
|
|
71
|
+
7. Termination
|
|
82
72
|
|
|
83
|
-
|
|
73
|
+
Your permissions terminate if you violate these conditions. Other recipients'
|
|
74
|
+
compliant permissions are not terminated by your violation. The relevant
|
|
75
|
+
rights holder may reinstate permissions.
|
|
84
76
|
|
|
85
|
-
|
|
86
|
-
please contact: bjoern@bjro.de
|
|
77
|
+
8. Disclaimer and liability
|
|
87
78
|
|
|
88
|
-
|
|
79
|
+
To the fullest extent permitted by applicable law, the Software is provided
|
|
80
|
+
"as is", without express or implied warranties, including merchantability,
|
|
81
|
+
fitness for a particular purpose, title, or non-infringement. No author,
|
|
82
|
+
contributor, or rights holder is liable for damages or other liability
|
|
83
|
+
arising from the Software or its use, in contract, tort, or otherwise.
|
|
89
84
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
Business Source License 1.1
|
|
93
|
-
|
|
94
|
-
Terms
|
|
95
|
-
|
|
96
|
-
The Licensor hereby grants you the right to copy, modify, create derivative
|
|
97
|
-
works, redistribute, and make non-production use of the Licensed Work. The
|
|
98
|
-
Licensor may make an Additional Use Grant, above, permitting limited
|
|
99
|
-
production use.
|
|
100
|
-
|
|
101
|
-
Effective on the Change Date, or the fourth anniversary of the first publicly
|
|
102
|
-
available distribution of a specific version of the Licensed Work under this
|
|
103
|
-
License, whichever comes first, the Licensor hereby grants you rights under
|
|
104
|
-
the terms of the Change License, and the rights granted in the paragraph
|
|
105
|
-
above terminate.
|
|
106
|
-
|
|
107
|
-
If your use of the Licensed Work does not comply with the requirements
|
|
108
|
-
currently in effect as described in this License, you must purchase a
|
|
109
|
-
commercial license from the Licensor, its affiliated entities, or authorized
|
|
110
|
-
resellers, or you must refrain from using the Licensed Work.
|
|
111
|
-
|
|
112
|
-
All copies of the original and modified Licensed Work, and derivative works
|
|
113
|
-
of the Licensed Work, are subject to this License. This License applies
|
|
114
|
-
separately for each version of the Licensed Work and the Change Date may vary
|
|
115
|
-
for each version of the Licensed Work released by Licensor.
|
|
116
|
-
|
|
117
|
-
You must conspicuously display this License on each original or modified copy
|
|
118
|
-
of the Licensed Work. If you receive the Licensed Work in original or
|
|
119
|
-
modified form from a third party, the terms and conditions set forth in this
|
|
120
|
-
License apply to your use of that work.
|
|
121
|
-
|
|
122
|
-
Any use of the Licensed Work in violation of this License will automatically
|
|
123
|
-
terminate your rights under this License for the current and all other
|
|
124
|
-
versions of the Licensed Work.
|
|
125
|
-
|
|
126
|
-
This License does not grant you any right in any trademark or logo of
|
|
127
|
-
Licensor or its affiliates (provided that you may use a trademark or logo of
|
|
128
|
-
Licensor as expressly required by this License).
|
|
129
|
-
|
|
130
|
-
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
|
|
131
|
-
AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
|
|
132
|
-
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
|
|
133
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
|
|
134
|
-
TITLE.
|
|
135
|
-
|
|
136
|
-
MariaDB hereby grants you permission to use this License's text to license
|
|
137
|
-
your works, and to refer to it using the trademark "Business Source License",
|
|
138
|
-
as long as you comply with the Covenants of Licensor below.
|
|
139
|
-
|
|
140
|
-
Covenants of Licensor
|
|
141
|
-
|
|
142
|
-
In consideration of the right to use this License's text and the "Business
|
|
143
|
-
Source License" name and trademark, Licensor covenants to MariaDB, and to all
|
|
144
|
-
other recipients of the licensed work to be provided by Licensor:
|
|
145
|
-
|
|
146
|
-
1. To specify as the Change License the GPL Version 2.0 or any later version,
|
|
147
|
-
or a license that is compatible with GPL Version 2.0 or a later version,
|
|
148
|
-
where "compatible" means that software provided under the Change License
|
|
149
|
-
can be included in a program with software provided under GPL Version 2.0
|
|
150
|
-
or a later version. Licensor may specify additional Change Licenses
|
|
151
|
-
without limitation.
|
|
152
|
-
|
|
153
|
-
2. To either: (a) specify an additional grant of rights to use that does not
|
|
154
|
-
impose any additional restriction on the right granted in this License, as
|
|
155
|
-
the Additional Use Grant; or (b) insert the text "None".
|
|
156
|
-
|
|
157
|
-
3. To specify a Change Date.
|
|
158
|
-
|
|
159
|
-
4. Not to modify this License in any other way.
|
|
85
|
+
This is a source-available license, not an OSI open-source license. It has
|
|
86
|
+
no automatic change date. Earlier releases retain their original grants.
|
package/README.md
CHANGED
|
@@ -1,72 +1,89 @@
|
|
|
1
1
|
# Sevro
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
response per extension process and negotiates the v1 protocol. It enforces
|
|
32
|
-
message limits, timeouts, response identity, and process-group cancellation.
|
|
33
|
-
|
|
34
|
-
[`extension-session.ts`](src/extension-session.ts) runs the negotiated
|
|
35
|
-
`resolve`, `prepare`, and `evaluate` methods and checks source stability and
|
|
36
|
-
evidence references. The engine accepts additive extension checks for inline
|
|
37
|
-
cases.
|
|
38
|
-
|
|
39
|
-
[`results.ts`](src/results.ts) reduces checks to separate execution, grading,
|
|
40
|
-
and task states, applies case thresholds, and maps the aggregate to a CLI exit
|
|
41
|
-
category.
|
|
42
|
-
[`identity.ts`](src/identity.ts) computes versioned comparison identities from
|
|
43
|
-
canonical JSON. The [identity contract](docs/identity-v1.md) defines the input
|
|
44
|
-
dimensions.
|
|
45
|
-
|
|
46
|
-
The [built-in output graders](docs/builtin-graders-v1.md) evaluate regex, JSON,
|
|
47
|
-
and inline schema assertions on bounded final-message observations.
|
|
48
|
-
|
|
49
|
-
The [first engine slice](docs/engine-slice.md) executes resolved cases through
|
|
50
|
-
an injected host adapter and retains trial evidence before fixture cleanup.
|
|
51
|
-
The [advisory review fixture](docs/advisory-fixture.md) builds a separate Git
|
|
52
|
-
view of the complete candidate change while withholding evaluator paths.
|
|
53
|
-
The [development CLI](docs/development-cli.md) runs that path with a trusted
|
|
54
|
-
adapter module or the bundled Codex and Claude Code routes and emits a
|
|
55
|
-
machine-readable result.
|
|
56
|
-
The [native control observation](docs/native-controls.md) exposes bounded tool
|
|
57
|
-
labels for extension policy on both Codex and Claude, with explicit completeness.
|
|
58
|
-
|
|
59
|
-
The packaged [basic example](examples/basic/) runs without Darrow or a model
|
|
60
|
-
account. From this checkout, run the graded case with:
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="docs/assets/sevro-logo.png" alt="Sevro logo: a black S-shaped track with red segments above the sevro wordmark" width="360">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
Sevro runs repeatable evaluations of coding agents. Give it a case, a host
|
|
8
|
+
adapter, and success criteria; it retains execution, grading results, and
|
|
9
|
+
evidence. Projects own their benchmark cases and policy through Sevro's
|
|
10
|
+
[extension boundary](docs/extension-protocol-v1.md).
|
|
11
|
+
|
|
12
|
+
Sevro grew out of [Darrow](https://github.com/BjRo/darrow), but works without a
|
|
13
|
+
Darrow checkout. Try [your first evaluation](docs/getting-started.md): no model
|
|
14
|
+
account is required.
|
|
15
|
+
|
|
16
|
+
## Status and environments
|
|
17
|
+
|
|
18
|
+
Sevro is under active development. The npm package is `@bjoernrochel/sevro`;
|
|
19
|
+
its command is `sevro`. The [current release](docs/installing.md#current-release) includes runtime
|
|
20
|
+
configuration, native goals, selected plugin hooks, and the current licensing terms.
|
|
21
|
+
Earlier `rc.1` and `rc.2` packages retain their original BSL grants.
|
|
22
|
+
See [installation and release differences](docs/installing.md).
|
|
23
|
+
|
|
24
|
+
Use Bun 1.3.13. The development checkout runs native isolation on macOS with
|
|
25
|
+
`sandbox-exec` and on Ubuntu with `bubblewrap` and `socat`.
|
|
26
|
+
Contributor package/release checks also need Node 24 and npm.
|
|
27
|
+
Windows support is unverified. The basic example uses an injected
|
|
28
|
+
deterministic adapter and needs no native model credentials.
|
|
29
|
+
|
|
30
|
+
## Install and get a first result
|
|
61
31
|
|
|
62
32
|
```sh
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
--project-root "$PWD" --results-root /tmp/sevro-basic-results \
|
|
67
|
-
--condition passive --trials 1 --threshold 1
|
|
33
|
+
mkdir sevro-demo
|
|
34
|
+
cd sevro-demo
|
|
35
|
+
bun init -y
|
|
68
36
|
```
|
|
69
37
|
|
|
70
|
-
|
|
71
|
-
with
|
|
72
|
-
|
|
38
|
+
Install the [current release](docs/installing.md#current-release) in that directory.
|
|
39
|
+
Continue with [your first evaluation](docs/getting-started.md): the exact command,
|
|
40
|
+
expected `passed` result, and retained evidence. Read [installation](docs/installing.md)
|
|
41
|
+
for updates, removal, and source checkouts.
|
|
42
|
+
|
|
43
|
+
The development checkout and freshly built packages provide a
|
|
44
|
+
[demo-to-iteration workflow](docs/evaluation-workflow.md): initialize real
|
|
45
|
+
assertions, prepare, execute, read progress and inspect the latest result.
|
|
46
|
+
The published `rc.11` package uses the installed tutorial above.
|
|
47
|
+
|
|
48
|
+
## Find your next task
|
|
49
|
+
|
|
50
|
+
The [documentation hub](docs/README.md) routes to running evaluations, authoring
|
|
51
|
+
cases and extensions, reading results, troubleshooting, and architecture.
|
|
52
|
+
Public v1 contracts are the [extension protocol](docs/extension-protocol-v1.md),
|
|
53
|
+
[results and evidence](docs/results-v1.md), and [report](docs/report-v1.md).
|
|
54
|
+
Machine-readable contracts live in [schemas/](schemas/).
|
|
55
|
+
|
|
56
|
+
## Ask the repository guide
|
|
57
|
+
|
|
58
|
+
Open this checkout in a fresh Codex or Claude Code session and ask
|
|
59
|
+
“What is Sevro, and how do I run my first evaluation?” Explicit invocation is
|
|
60
|
+
`$sevro-guide` in Codex or `/sevro-guide` in Claude Code.
|
|
61
|
+
The guide reads sources, cites its answers, and handles follow-ups. It explains
|
|
62
|
+
commands; execution requires a separate request. See the
|
|
63
|
+
[guide contract and verification limits](docs/specs/repository-guide.md).
|
|
64
|
+
The npm package does not install the repository guide.
|
|
65
|
+
|
|
66
|
+
## Contribute
|
|
67
|
+
|
|
68
|
+
[CONTRIBUTING.md](CONTRIBUTING.md) covers setup, checks, fixtures, schema
|
|
69
|
+
regeneration, compatibility, and releases. [Documentation quality](docs/documentation-quality.md)
|
|
70
|
+
defines documentation checks and review.
|
|
71
|
+
|
|
72
|
+
Run `bun run check:typescript` for the complete quality gate and
|
|
73
|
+
`bun run check:typescript --fast` before committing. The
|
|
74
|
+
[TypeScript quality contract](docs/typescript-quality.md) defines the source
|
|
75
|
+
inventory, strict typing, property tests, coverage integrity, and supported
|
|
76
|
+
environment.
|
|
77
|
+
|
|
78
|
+
## License and acknowledgements
|
|
79
|
+
|
|
80
|
+
The [current release](docs/installing.md#current-release) uses the [Sevro Source Available License 1.0](LICENSE).
|
|
81
|
+
Use is free in every context, including commercial work and paid education.
|
|
82
|
+
Selling copies, rebranded versions, or hosted access to Sevro's functionality
|
|
83
|
+
requires a separate license. Modification and free redistribution remain allowed.
|
|
84
|
+
It is source-available, not an OSI open-source license. Read
|
|
85
|
+
[licensing](docs/licensing.md) for contribution grants and earlier BSL releases.
|
|
86
|
+
|
|
87
|
+
Björn Rochel created the logo. Sevro's name is inspired by the character in
|
|
88
|
+
Pierce Brown's _Red Rising_. Thank you, Pierce Brown, for the world and characters
|
|
89
|
+
that inspired both Sevro and Darrow. See [acknowledgements](docs/acknowledgements.md).
|
package/docs/README.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Sevro documentation
|
|
2
|
+
|
|
3
|
+
<img src="assets/sevro-wordmark.svg" alt="Sevro wordmark" width="220">
|
|
4
|
+
|
|
5
|
+
Start with the task you want to complete. These pages work without an agent.
|
|
6
|
+
|
|
7
|
+
| I want to… | Read |
|
|
8
|
+
| ---------------------------------------------- | -------------------------------------------------------- |
|
|
9
|
+
| Get a result without a model account | [Your first evaluation](getting-started.md) |
|
|
10
|
+
| Initialize, prepare, run and iterate | [Evaluation workflow](evaluation-workflow.md) |
|
|
11
|
+
| Install, update, remove, or use a checkout | [Installation](installing.md) |
|
|
12
|
+
| Run evaluations and select a host | [Running evaluations](running-evaluations.md) |
|
|
13
|
+
| Create cases and reusable policy | [Cases and extensions](creating-cases.md) |
|
|
14
|
+
| Copy a complete coding, skill or runtime setup | [Runnable recipes](recipes.md) |
|
|
15
|
+
| Interpret verdicts, evidence, and comparisons | [Reading results](reading-results.md) |
|
|
16
|
+
| Run Codex or Claude with isolation | [Native hosts](native-hosts.md) |
|
|
17
|
+
| Reuse host tools or enable goals and hooks | [Runtime configuration](runtime-v1.md) |
|
|
18
|
+
| Save recurring evaluation selections | [Run settings](run-settings-v1.md) |
|
|
19
|
+
| Resolve a symptom | [Troubleshooting](troubleshooting.md) |
|
|
20
|
+
| Trace runner lifecycle, ownership, and changes | [Architecture](architecture.md) |
|
|
21
|
+
| Change Sevro or its documentation | [Contributing](../CONTRIBUTING.md) |
|
|
22
|
+
| Understand licensing and branding | [Licensing](licensing.md) and [assets](assets/README.md) |
|
|
23
|
+
|
|
24
|
+
## Ask the guide
|
|
25
|
+
|
|
26
|
+
Ask ordinary Sevro questions in a fresh repository session, or use `$sevro-guide`
|
|
27
|
+
in Codex and `/sevro-guide` in Claude Code. The
|
|
28
|
+
canonical guide at `.agents/skills/sevro-guide/SKILL.md` reads evidence and
|
|
29
|
+
explains it; it does not run installations, tests, or evaluations.
|
|
30
|
+
It belongs to this repository, not an npm installation.
|
|
31
|
+
|
|
32
|
+
## Sources and authority
|
|
33
|
+
|
|
34
|
+
[Current contracts](contracts.md) define interfaces. The
|
|
35
|
+
[guide specification](specs/repository-guide.md) defines the repository assistant.
|
|
36
|
+
[Historical validation](evidence.md) records observations, not current guarantees.
|
|
37
|
+
There is no accepted Rust migration decision here;
|
|
38
|
+
[issue #2](https://github.com/BjRo/sevro/issues/2) tracks research.
|
|
39
|
+
|
|
40
|
+
Read [documentation quality](documentation-quality.md),
|
|
41
|
+
[the usability study protocol](usability-study.md),
|
|
42
|
+
[guide evaluation](guide-evaluation.md), [releases](releases.md), and
|
|
43
|
+
[acknowledgements](acknowledgements.md) for maintenance.
|
|
44
|
+
Return to the [Sevro introduction](../README.md).
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Acknowledgements
|
|
2
|
+
|
|
3
|
+
Sevro is named after the character in [Pierce Brown's _Red Rising_ series](https://www.piercebrown.com/redrisingsaga).
|
|
4
|
+
Thank you, Pierce Brown, for the world and characters that inspired both Sevro
|
|
5
|
+
and Darrow. This acknowledges inspiration, not ownership of the fictional
|
|
6
|
+
character or affiliation with the author.
|
|
7
|
+
|
|
8
|
+
Björn Rochel created the Sevro logo. Its black/red track motif gives the runner
|
|
9
|
+
its own visual identity alongside [Darrow](https://github.com/BjRo/darrow).
|
|
10
|
+
Read [brand assets and permitted uses](assets/README.md).
|
|
11
|
+
|
|
12
|
+
Sevro's standalone runner grew out of Darrow's evaluation work. Darrow remains
|
|
13
|
+
an integration and source of ideas; the deterministic example works independently.
|
|
14
|
+
Return to the [documentation hub](README.md).
|