@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.
Files changed (243) hide show
  1. package/CONTRIBUTING.md +170 -0
  2. package/LICENSE +63 -136
  3. package/README.md +83 -66
  4. package/docs/README.md +44 -0
  5. package/docs/acknowledgements.md +14 -0
  6. package/docs/architecture.md +146 -0
  7. package/docs/assets/README.md +27 -0
  8. package/docs/assets/sevro-logo.png +0 -0
  9. package/docs/assets/sevro-symbol.svg +1 -0
  10. package/docs/assets/sevro-wordmark.svg +1 -0
  11. package/docs/builtin-graders-v1.md +41 -13
  12. package/docs/codex-host.md +184 -52
  13. package/docs/contracts.md +19 -0
  14. package/docs/creating-cases.md +139 -0
  15. package/docs/development-cli.md +190 -30
  16. package/docs/documentation-quality.md +61 -0
  17. package/docs/evaluation-workflow.md +110 -0
  18. package/docs/evidence/code-mode-controls-71.md +64 -0
  19. package/docs/evidence/code-mode-programs-85.md +64 -0
  20. package/docs/evidence/codex-state-73/README.md +204 -0
  21. package/docs/evidence/codex-state-73/darrow-migration.patch +182 -0
  22. package/docs/evidence/codex-state-73/results.json +661 -0
  23. package/docs/evidence/local-http-74.md +104 -0
  24. package/docs/evidence/runtime-startup-30/README.md +185 -0
  25. package/docs/evidence/runtime-startup-30/after.json +319 -0
  26. package/docs/evidence/runtime-startup-30/baseline-timeout.jsonl +2 -0
  27. package/docs/evidence/runtime-startup-30/before.json +403 -0
  28. package/docs/evidence/runtime-startup-30/consumer-smoke.json +63 -0
  29. package/docs/evidence/runtime-startup-30/full-policy-diagnostic.jsonl +3 -0
  30. package/docs/evidence/runtime-startup-30/minimal-policy-diagnostic.jsonl +3 -0
  31. package/docs/evidence/runtime-startup-30/plugin-template-assessment.json +20 -0
  32. package/docs/evidence/runtime-startup-30/seedless-timeout.jsonl +2 -0
  33. package/docs/evidence/skill-reads-70/results.json +823 -0
  34. package/docs/evidence.md +21 -0
  35. package/docs/extension-protocol-v1.md +41 -16
  36. package/docs/fixture-cleanup-validation.md +3 -0
  37. package/docs/getting-started.md +102 -0
  38. package/docs/guide-evaluation.md +89 -0
  39. package/docs/guide-verification.json +239 -0
  40. package/docs/identity-v1.md +35 -1
  41. package/docs/installing.md +88 -0
  42. package/docs/licenses/BUSL-1.1-0.1.0-rc.2.txt +159 -0
  43. package/docs/licensing.md +42 -0
  44. package/docs/native-controls.md +76 -5
  45. package/docs/native-hosts.md +181 -0
  46. package/docs/reading-results.md +121 -0
  47. package/docs/recipes.md +489 -0
  48. package/docs/releases.md +81 -40
  49. package/docs/report-v1.md +29 -1
  50. package/docs/results-v1.md +180 -0
  51. package/docs/run-settings-v1.md +147 -0
  52. package/docs/running-evaluations.md +31 -0
  53. package/docs/runtime-v1.md +614 -0
  54. package/docs/specs/repository-guide.md +58 -0
  55. package/docs/troubleshooting.md +30 -0
  56. package/docs/typescript-quality.md +234 -0
  57. package/docs/usability-study.md +114 -0
  58. package/examples/basic/host.ts +2 -2
  59. package/examples/recipes/candidate.ts +26 -0
  60. package/examples/recipes/cases/coding-change.json +21 -0
  61. package/examples/recipes/cases/host-tools.json +21 -0
  62. package/examples/recipes/cases/mise.json +21 -0
  63. package/examples/recipes/cases/node.json +21 -0
  64. package/examples/recipes/cases/python-uv.json +21 -0
  65. package/examples/recipes/cases/semantic.json +17 -0
  66. package/examples/recipes/coding-change/check.ts +23 -0
  67. package/examples/recipes/extension-artifacts.ts +65 -0
  68. package/examples/recipes/extension-methods.ts +174 -0
  69. package/examples/recipes/extension.ts +37 -0
  70. package/examples/recipes/repository-skill/.agents/skills/startup-guide/SKILL.md +7 -0
  71. package/examples/recipes/repository-skill/.claude/skills/startup-guide/SKILL.md +7 -0
  72. package/examples/recipes/repository-skill/README.md +3 -0
  73. package/examples/recipes/run-inputs.ts +188 -0
  74. package/examples/recipes/run-options.ts +131 -0
  75. package/examples/recipes/run.ts +63 -0
  76. package/examples/recipes/runtime/empty.json +1 -0
  77. package/examples/recipes/runtime/goals.json +1 -0
  78. package/examples/recipes/runtime/mise.json +6 -0
  79. package/examples/recipes/runtime/path.json +1 -0
  80. package/examples/recipes/runtime/plugins.json +4 -0
  81. package/examples/recipes/runtime/python-uv.json +10 -0
  82. package/examples/recipes/semantic-judge.ts +29 -0
  83. package/examples/templates/coding/adapter.ts +17 -0
  84. package/examples/templates/coding/case.json +15 -0
  85. package/examples/templates/repository-skill/.agents/skills/startup-guide/SKILL.md +6 -0
  86. package/examples/templates/repository-skill/extension-data.ts +64 -0
  87. package/examples/templates/repository-skill/extension.ts +31 -0
  88. package/examples/templates/response/adapter.ts +12 -0
  89. package/examples/templates/response/case.json +13 -0
  90. package/package.json +39 -6
  91. package/schemas/report-v1.schema.json +9 -0
  92. package/schemas/run-evidence-v1.schema.json +2 -1
  93. package/schemas/runtime-v1.schema.json +193 -0
  94. package/src/advisory.ts +10 -5
  95. package/src/candidate-artifacts.ts +208 -0
  96. package/src/candidate-codex-state.ts +185 -0
  97. package/src/case-validation.ts +105 -0
  98. package/src/cli/cancellation.ts +20 -0
  99. package/src/cli/command.ts +81 -0
  100. package/src/cli/completion.ts +15 -0
  101. package/src/cli/demo.ts +59 -0
  102. package/src/cli/evaluation.ts +55 -0
  103. package/src/cli/extension.ts +79 -0
  104. package/src/cli/help.ts +222 -0
  105. package/src/cli/hosts.ts +59 -0
  106. package/src/cli/init-settings.ts +30 -0
  107. package/src/cli/init.ts +111 -0
  108. package/src/cli/invocation.ts +627 -0
  109. package/src/cli/loading.ts +151 -0
  110. package/src/cli/preparation.ts +163 -0
  111. package/src/cli/presentation.ts +91 -0
  112. package/src/cli/progress.ts +6 -0
  113. package/src/cli/run-manifest.ts +133 -0
  114. package/src/cli/run-options.ts +101 -0
  115. package/src/cli/run-overrides.ts +83 -0
  116. package/src/cli/settings.ts +160 -0
  117. package/src/cli/summary.ts +43 -0
  118. package/src/cli.ts +13 -843
  119. package/src/contract-types.ts +94 -0
  120. package/src/engine.ts +19 -2373
  121. package/src/evaluation/advisory.ts +150 -0
  122. package/src/evaluation/check-plan.ts +510 -0
  123. package/src/evaluation/collection.ts +88 -0
  124. package/src/evaluation/context.ts +10 -0
  125. package/src/evaluation/grading-host.ts +39 -0
  126. package/src/evaluation/grading.ts +258 -0
  127. package/src/evaluation/invocation-plan.ts +548 -0
  128. package/src/evaluation/plan.ts +736 -0
  129. package/src/evaluation/progress.ts +19 -0
  130. package/src/evaluation/resources.ts +241 -0
  131. package/src/evaluation/run.ts +206 -0
  132. package/src/{trial-scheduler.ts → evaluation/scheduler.ts} +3 -1
  133. package/src/evaluation/semantic.ts +312 -0
  134. package/src/evaluation/trial.ts +866 -0
  135. package/src/evaluation/types.ts +207 -0
  136. package/src/evidence/host-results.ts +92 -0
  137. package/src/evidence/retained-artifacts.ts +18 -0
  138. package/src/evidence/trial-writer.ts +203 -0
  139. package/src/evidence/usage.ts +17 -0
  140. package/src/extension-client.ts +228 -148
  141. package/src/extension-session.ts +326 -195
  142. package/src/fixtures/advisory.ts +338 -0
  143. package/src/fixtures/bin.ts +57 -0
  144. package/src/{fixture-cleanup.ts → fixtures/cleanup.ts} +13 -7
  145. package/src/fixtures/create.ts +187 -0
  146. package/src/fixtures/generated.ts +300 -0
  147. package/src/fixtures/git-hooks.ts +24 -0
  148. package/src/fixtures/preparation.ts +270 -0
  149. package/src/{repository-fixture.ts → fixtures/repository.ts} +207 -85
  150. package/src/fixtures/setup.ts +224 -0
  151. package/src/fixtures/tools.ts +88 -0
  152. package/src/fixtures/workspace-state.ts +212 -0
  153. package/src/generated/cli-result.cjs +2 -0
  154. package/src/generated/cli-result.d.cts +3 -0
  155. package/src/generated/extension.cjs +2 -0
  156. package/src/generated/extension.d.cts +3 -0
  157. package/src/generated/report.cjs +2 -0
  158. package/src/generated/report.d.cts +3 -0
  159. package/src/generated/run-evidence.cjs +2 -0
  160. package/src/generated/run-evidence.d.cts +3 -0
  161. package/src/generated/runtime.cjs +2 -0
  162. package/src/generated/runtime.d.cts +3 -0
  163. package/src/graders/artifact.ts +56 -23
  164. package/src/graders/git-head.ts +79 -75
  165. package/src/graders/output.ts +222 -140
  166. package/src/graders/semantic.ts +102 -43
  167. package/src/graders/shell.ts +379 -207
  168. package/src/host-diagnostic-redaction.ts +52 -0
  169. package/src/host-diagnostics.ts +319 -0
  170. package/src/hosts/claude-continuation.ts +63 -18
  171. package/src/hosts/claude-credential.ts +43 -62
  172. package/src/hosts/claude-events.ts +86 -51
  173. package/src/hosts/claude-keychain.ts +59 -0
  174. package/src/hosts/claude-native-goal.ts +57 -33
  175. package/src/hosts/claude-process.ts +111 -0
  176. package/src/hosts/claude-repository-invocation.ts +208 -117
  177. package/src/hosts/claude-settings.ts +240 -21
  178. package/src/hosts/claude-skill-activations.ts +166 -0
  179. package/src/hosts/claude-state.ts +403 -0
  180. package/src/hosts/claude-tool-calls.ts +171 -106
  181. package/src/hosts/claude.ts +561 -451
  182. package/src/hosts/codex-app-server.ts +326 -178
  183. package/src/hosts/codex-configuration.ts +44 -18
  184. package/src/hosts/codex-events.ts +97 -60
  185. package/src/hosts/codex-exec-controls.ts +516 -0
  186. package/src/hosts/codex-invocation.ts +70 -0
  187. package/src/hosts/codex-marketplace.ts +283 -0
  188. package/src/hosts/codex-native-calls.ts +546 -500
  189. package/src/hosts/codex-process.ts +202 -0
  190. package/src/hosts/codex-profile.ts +257 -28
  191. package/src/hosts/codex-session-files.ts +106 -0
  192. package/src/hosts/codex-state.ts +492 -0
  193. package/src/hosts/codex.ts +780 -832
  194. package/src/hosts/isolation-common.ts +94 -0
  195. package/src/hosts/isolation-roots.ts +54 -27
  196. package/src/hosts/isolation.ts +10 -0
  197. package/src/hosts/linux-sandbox.ts +159 -0
  198. package/src/hosts/mac-sandbox.ts +187 -61
  199. package/src/hosts/native-controls.ts +152 -62
  200. package/src/hosts/process-lifecycle.ts +37 -0
  201. package/src/hosts/protected-worktrees.ts +51 -19
  202. package/src/hosts/skill-hook-catalog.ts +131 -0
  203. package/src/hosts/skill-hook-handler.ts +374 -0
  204. package/src/hosts/skill-hooks.ts +510 -0
  205. package/src/hosts/workspace-fingerprint.ts +55 -35
  206. package/src/identity.ts +102 -48
  207. package/src/instrumentation.ts +109 -48
  208. package/src/native-transcript-state.ts +131 -0
  209. package/src/native-transcript-view.ts +90 -0
  210. package/src/native-transcripts.ts +286 -0
  211. package/src/process-lifecycle.ts +150 -0
  212. package/src/provenance.ts +161 -81
  213. package/src/prune.ts +215 -0
  214. package/src/report.ts +172 -140
  215. package/src/resolved-case.ts +33 -0
  216. package/src/results-lock.ts +29 -0
  217. package/src/results.ts +133 -86
  218. package/src/run-owner.ts +154 -63
  219. package/src/runtime/config.ts +456 -0
  220. package/src/runtime/discovery-apple.ts +90 -0
  221. package/src/runtime/discovery-providers.ts +63 -0
  222. package/src/runtime/discovery.ts +70 -0
  223. package/src/runtime/hook-processes.ts +97 -0
  224. package/src/runtime/hooks.ts +476 -0
  225. package/src/runtime/paths.ts +313 -0
  226. package/src/runtime/query.ts +85 -0
  227. package/src/runtime/seeds.ts +134 -0
  228. package/src/runtime/shared-cache.ts +143 -0
  229. package/src/runtime/state.ts +143 -0
  230. package/src/schema-types.ts +198 -0
  231. package/src/schema.ts +15 -19
  232. package/src/transcript-retention.ts +146 -0
  233. package/src/value-guards.ts +20 -0
  234. package/src/advisory-fixture.ts +0 -282
  235. package/src/fixture-bin.ts +0 -87
  236. package/src/fixture-setup.ts +0 -163
  237. package/src/generated-fixture.ts +0 -220
  238. package/src/git-hooks.ts +0 -63
  239. package/src/hosts/claude-nested-skills.ts +0 -218
  240. package/src/hosts/codex-command-output.ts +0 -399
  241. package/src/hosts/codex-executor-command.ts +0 -195
  242. package/src/hosts/codex-skill-reads.ts +0 -391
  243. package/src/preparation.ts +0 -211
@@ -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
- Business Source License 1.1
1
+ Sevro Source Available License 1.0
2
2
 
3
- License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
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
- Parameters
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
- Licensor: Björn Rochel <bjoern@bjro.de>
13
+ "You" means the person or legal entity exercising these rights.
11
14
 
12
- Licensed Work: Sevro — a standalone evaluation runner for coding agents.
13
- The Licensed Work is (c) 2026 Björn Rochel.
15
+ 2. Free use and modification
14
16
 
15
- Additional Use Grant: You may make production use of the Licensed Work only
16
- as follows:
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
- (a) use within your own organization, for any
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
- (b) use while performing professional, consulting,
24
- or contract services for your own clients,
25
- provided that those services do not include
26
- Commercial Educational Production Use;
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
- (c) use in preparing or delivering training,
29
- workshops, courses, talks, presentations, or
30
- other educational offerings, or in creating or
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
- (d) use in research, evaluation, and personal
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
- provided that such production use does not include
41
- distributing, selling, sublicensing, hosting, or
42
- otherwise offering the Licensed Work, or a derivative
43
- work of the Licensed Work, to third parties as a
44
- product or service whose principal value is the
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
- For purposes of this Additional Use Grant,
48
- "Commercial Educational Production Use" means
49
- production use of the Licensed Work in preparing,
50
- delivering, or publishing any educational offering or
51
- content where you or anyone acting on your behalf:
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
- (i) receives or expects to receive, directly or
54
- indirectly, a fee, compensation, sponsorship, or
55
- other consideration in connection with it;
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
- (ii) supplies it as part of, or uses it to advertise
58
- or promote, a paid product, service, membership,
59
- or engagement; or
54
+ 5. Contributions and separate grants
60
55
 
61
- (iii) uses it to generate leads or obtain any other
62
- direct or indirect commercial benefit.
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
- Reasonable reimbursement of expenses alone does not
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
- For clarity, nothing in this Additional Use Grant
70
- limits the non-production rights granted under the
71
- Terms below.
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
- For clarity, contributing modifications back to the
74
- Licensed Work, and publishing forks that are
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
- Change Date: Two years from the date on which the applicable
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
- Change License: Mozilla Public License, version 2.0
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
- For information about alternative licensing arrangements for the Licensed Work,
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
- Notice
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
- Sevro is a standalone evaluation runner for agentic coding capabilities. It is
4
- being extracted from [Darrow](https://github.com/BjRo/darrow/issues/95). This
5
- checkout runs locally and packs as an installable npm tarball.
6
- The npm package is `@bjoernrochel/sevro`; its installed command is `sevro`.
7
-
8
- The public v1 contracts are [the extension protocol](docs/extension-protocol-v1.md)
9
- and [run results](docs/results-v1.md). Sevro owns these generic interfaces;
10
- projects own their cases and evaluator policy.
11
- The [generic report](docs/report-v1.md) summarizes retained public results
12
- without treating unknown measurements as zero or inferring matched comparisons.
13
-
14
- Machine-readable contracts live in [`schemas/`](schemas/). Run `bun install`,
15
- `bun test`, `bun run typecheck`, `bun run format:check`, and
16
- `bun run test:package-install` to validate the npm tarball locally. The package
17
- test packs and installs Sevro in a temporary project, then runs the installed
18
- CLI without a Sevro Git checkout.
19
-
20
- The [release workflow](docs/releases.md) prepares a versioned artifact with its
21
- file inventory and checksums, verifies that exact tarball, and documents manual
22
- publication, trusted publishing, Darrow pinning, updates, and rollback.
23
-
24
- Sevro uses the owner-selected [Business Source License 1.1](LICENSE), preserving
25
- Darrow's terms and parameters with Sevro named as the Licensed Work. The first
26
- published candidate is `0.1.0-rc.1`. This checkout prepares `0.1.0-rc.2` with
27
- the concurrent Darrow runner updates; its publication and Darrow pin update
28
- remain separate steps.
29
-
30
- [`extension-client.ts`](src/extension-client.ts) validates one request and
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
- bun src/cli.ts run --json \
64
- --case-file "$PWD/examples/basic/graded.json" \
65
- --adapter-module "$PWD/examples/basic/host.ts" \
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
- Use `prompt-only.json` in place of `graded.json` to see successful execution
71
- with `task.verdict: not_assessed`. The package installation check runs both
72
- cases through the installed CLI, with no Sevro source checkout present.
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).