@bjoernrochel/sevro 0.1.0-rc.1 → 0.1.0-rc.10

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 (150) hide show
  1. package/CONTRIBUTING.md +157 -0
  2. package/LICENSE +63 -136
  3. package/README.md +78 -65
  4. package/docs/README.md +40 -0
  5. package/docs/acknowledgements.md +14 -0
  6. package/docs/architecture.md +25 -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 +47 -12
  12. package/docs/codex-host.md +71 -13
  13. package/docs/contracts.md +18 -0
  14. package/docs/creating-cases.md +132 -0
  15. package/docs/development-cli.md +116 -23
  16. package/docs/documentation-quality.md +51 -0
  17. package/docs/evidence/runtime-startup-30/README.md +185 -0
  18. package/docs/evidence/runtime-startup-30/after.json +319 -0
  19. package/docs/evidence/runtime-startup-30/baseline-timeout.jsonl +2 -0
  20. package/docs/evidence/runtime-startup-30/before.json +403 -0
  21. package/docs/evidence/runtime-startup-30/consumer-smoke.json +63 -0
  22. package/docs/evidence/runtime-startup-30/full-policy-diagnostic.jsonl +3 -0
  23. package/docs/evidence/runtime-startup-30/minimal-policy-diagnostic.jsonl +3 -0
  24. package/docs/evidence/runtime-startup-30/plugin-template-assessment.json +20 -0
  25. package/docs/evidence/runtime-startup-30/seedless-timeout.jsonl +2 -0
  26. package/docs/evidence.md +17 -0
  27. package/docs/extension-protocol-v1.md +24 -13
  28. package/docs/fixture-cleanup-validation.md +3 -0
  29. package/docs/getting-started.md +81 -0
  30. package/docs/guide-evaluation.md +85 -0
  31. package/docs/guide-verification.json +239 -0
  32. package/docs/identity-v1.md +17 -0
  33. package/docs/installing.md +88 -0
  34. package/docs/licenses/BUSL-1.1-0.1.0-rc.2.txt +159 -0
  35. package/docs/licensing.md +42 -0
  36. package/docs/native-hosts.md +39 -0
  37. package/docs/reading-results.md +39 -0
  38. package/docs/releases.md +80 -40
  39. package/docs/results-v1.md +111 -0
  40. package/docs/running-evaluations.md +31 -0
  41. package/docs/runtime-v1.md +398 -0
  42. package/docs/specs/repository-guide.md +58 -0
  43. package/docs/troubleshooting.md +30 -0
  44. package/docs/typescript-quality.md +195 -0
  45. package/examples/basic/host.ts +2 -2
  46. package/package.json +40 -7
  47. package/schemas/runtime-v1.schema.json +151 -0
  48. package/src/advisory-fixture.ts +186 -130
  49. package/src/advisory.ts +8 -3
  50. package/src/candidate-artifacts.ts +175 -0
  51. package/src/case-validation.ts +82 -0
  52. package/src/cli-invocation.ts +604 -0
  53. package/src/cli.ts +428 -670
  54. package/src/engine.ts +15 -2341
  55. package/src/evaluation-check-plan.ts +510 -0
  56. package/src/evaluation-context.ts +259 -0
  57. package/src/evaluation-fixture.ts +302 -0
  58. package/src/evaluation-grading-host.ts +39 -0
  59. package/src/evaluation-invocation-plan.ts +548 -0
  60. package/src/evaluation-plan.ts +596 -0
  61. package/src/evaluation-run.ts +200 -0
  62. package/src/evaluation-semantic.ts +327 -0
  63. package/src/evaluation-trial.ts +1051 -0
  64. package/src/evaluation-types.ts +159 -0
  65. package/src/extension-client.ts +251 -109
  66. package/src/extension-session.ts +302 -147
  67. package/src/fixture-bin.ts +24 -54
  68. package/src/fixture-setup.ts +177 -98
  69. package/src/fixture-tools.ts +88 -0
  70. package/src/generated/cli-result.cjs +2 -0
  71. package/src/generated/cli-result.d.cts +3 -0
  72. package/src/generated/extension.cjs +2 -0
  73. package/src/generated/extension.d.cts +3 -0
  74. package/src/generated/report.cjs +2 -0
  75. package/src/generated/report.d.cts +3 -0
  76. package/src/generated/run-evidence.cjs +2 -0
  77. package/src/generated/run-evidence.d.cts +3 -0
  78. package/src/generated/runtime.cjs +2 -0
  79. package/src/generated/runtime.d.cts +3 -0
  80. package/src/generated-fixture.ts +172 -92
  81. package/src/git-hooks.ts +11 -50
  82. package/src/graders/artifact.ts +104 -0
  83. package/src/graders/git-head.ts +98 -49
  84. package/src/graders/output.ts +222 -140
  85. package/src/graders/semantic.ts +124 -41
  86. package/src/graders/shell.ts +376 -186
  87. package/src/host-diagnostic-redaction.ts +52 -0
  88. package/src/host-diagnostics.ts +319 -0
  89. package/src/hosts/claude-continuation.ts +63 -18
  90. package/src/hosts/claude-credential.ts +79 -46
  91. package/src/hosts/claude-events.ts +86 -51
  92. package/src/hosts/claude-keychain.ts +59 -0
  93. package/src/hosts/claude-native-goal.ts +178 -0
  94. package/src/hosts/claude-nested-skills.ts +113 -59
  95. package/src/hosts/claude-process.ts +105 -0
  96. package/src/hosts/claude-repository-invocation.ts +226 -112
  97. package/src/hosts/claude-settings.ts +205 -21
  98. package/src/hosts/claude-state.ts +391 -0
  99. package/src/hosts/claude-tool-calls.ts +171 -106
  100. package/src/hosts/claude.ts +564 -440
  101. package/src/hosts/codex-app-server.ts +946 -0
  102. package/src/hosts/codex-command-output.ts +510 -0
  103. package/src/hosts/codex-configuration.ts +44 -18
  104. package/src/hosts/codex-events.ts +97 -60
  105. package/src/hosts/codex-executor-command.ts +291 -0
  106. package/src/hosts/codex-invocation.ts +70 -0
  107. package/src/hosts/codex-marketplace.ts +283 -0
  108. package/src/hosts/codex-native-calls.ts +646 -438
  109. package/src/hosts/codex-process.ts +233 -0
  110. package/src/hosts/codex-profile.ts +229 -27
  111. package/src/hosts/codex-session-files.ts +114 -0
  112. package/src/hosts/codex-skill-reads.ts +705 -199
  113. package/src/hosts/codex-state.ts +394 -0
  114. package/src/hosts/codex.ts +775 -721
  115. package/src/hosts/isolation-common.ts +91 -0
  116. package/src/hosts/isolation-roots.ts +54 -27
  117. package/src/hosts/isolation.ts +10 -0
  118. package/src/hosts/linux-sandbox.ts +146 -0
  119. package/src/hosts/mac-sandbox.ts +145 -61
  120. package/src/hosts/native-controls.ts +94 -58
  121. package/src/hosts/process-lifecycle.ts +70 -0
  122. package/src/hosts/protected-worktrees.ts +51 -19
  123. package/src/hosts/workspace-fingerprint.ts +55 -35
  124. package/src/identity.ts +102 -48
  125. package/src/instrumentation.ts +109 -48
  126. package/src/native-transcript-state.ts +112 -0
  127. package/src/native-transcript-view.ts +51 -0
  128. package/src/native-transcripts.ts +286 -0
  129. package/src/preparation.ts +183 -124
  130. package/src/provenance.ts +137 -77
  131. package/src/report.ts +110 -105
  132. package/src/repository-fixture.ts +193 -80
  133. package/src/resolved-case.ts +33 -0
  134. package/src/results.ts +119 -68
  135. package/src/run-owner.ts +154 -63
  136. package/src/runtime-config.ts +387 -0
  137. package/src/runtime-discovery-apple.ts +90 -0
  138. package/src/runtime-discovery-providers.ts +63 -0
  139. package/src/runtime-discovery.ts +70 -0
  140. package/src/runtime-hook-processes.ts +97 -0
  141. package/src/runtime-hooks.ts +463 -0
  142. package/src/runtime-paths.ts +313 -0
  143. package/src/runtime-query.ts +85 -0
  144. package/src/runtime-seeds.ts +134 -0
  145. package/src/runtime-state.ts +121 -0
  146. package/src/schema-types.ts +286 -0
  147. package/src/schema.ts +15 -19
  148. package/src/trial-scheduler.ts +3 -1
  149. package/src/value-guards.ts +20 -0
  150. package/src/workspace-state.ts +212 -0
@@ -0,0 +1,157 @@
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
+ Native model trials need their own [credentials and prerequisites](docs/native-hosts.md).
42
+
43
+ ## Quality contract and checks
44
+
45
+ [The TypeScript quality contract](docs/typescript-quality.md) defines the checked
46
+ source inventory, type-aware lint, strict typing, focused functions, reproducible
47
+ properties, and independent statement and branch coverage requirements.
48
+ Run the complete acceptance command:
49
+
50
+ ```sh
51
+ bun run check:typescript
52
+ ```
53
+
54
+ It performs frozen installation, schema freshness, formatting, lint, typing,
55
+ documentation and guide dry-run checks, tutorial examples, the real Bun suite,
56
+ coverage integrity and thresholds, and installed-package validation. Statements
57
+ and branches must each reach at least 95% using raw exact counts over the
58
+ platform-reachable authored production inventory, including unimported files.
59
+ The macOS and Ubuntu gates each measure their reachable host modules; the exact
60
+ module and branch-outcome exclusions are recorded in coverage artifacts. The five explicitly
61
+ inventoried generated AJV validators are excluded from coverage because this
62
+ target measures authored runner behavior; their syntax, schema freshness, typed
63
+ boundaries and runtime tests remain checked. Tests and fixtures remain linted and
64
+ typed; they do not enter the production coverage denominator. New or changed
65
+ source dispositions require review.
66
+
67
+ Before committing, use `bun run check:typescript --fast` after installing the
68
+ locked dependencies. This runs inventory, schema, formatting, lint, typing and
69
+ documentation checks; it does not replace full acceptance. CI retains machine-readable coverage
70
+ reports under `.quality/` and exposes the stable `TypeScript quality` status.
71
+
72
+ Run `bun run check:docs:external` separately and [triage network failures](docs/documentation-quality.md#external-links).
73
+ Guide changes also need [native evals](docs/guide-evaluation.md).
74
+ Documentation checks supplement #1 rather than replacing its contract.
75
+
76
+ ## Delivery and CI ownership
77
+
78
+ An implementation PR is complete only when required CI checks pass for its exact
79
+ published commit. A request to open or update a PR includes monitoring CI and
80
+ repairing in-scope failures; it does not authorize merging or unrelated changes.
81
+
82
+ - Use GitHub CI in `.github/workflows/verify.yml` for full acceptance validation.
83
+ It provides the configured OS, architecture, runtime and native-tool versions,
84
+ non-root user, and isolation prerequisites. Reproducing that environment locally
85
+ with Docker is optional for diagnosis and is not a publication prerequisite.
86
+ - After the local pre-commit checks, publish the authorized candidate to its PR
87
+ and require `bun run check:typescript` to succeed in GitHub CI before reporting
88
+ delivery as complete. A local run, fast check, targeted suite, or historical
89
+ result does not establish that the current Ubuntu gate passes.
90
+ - Keep the quality bar intact. Repair behavior or add meaningful coverage for
91
+ accepted behavior; do not lower thresholds, exempt authored sources, skip tests,
92
+ bypass checks, or add artificial tests just to move a counter. Remove impossible
93
+ branches by clarifying validated invariants rather than inventing impossible inputs.
94
+ - Bind validation to the candidate's exact source and commit. Changes to source,
95
+ tests, tooling, dependencies, schemas, workflows, or guidance invalidate prior
96
+ candidate evidence; require the applicable CI gates on the updated published head.
97
+ - After authorized publication, observe required checks for the exact PR head
98
+ until they finish. Queued or running checks, a successful older commit, and a
99
+ passing subset are not completion.
100
+ - On failure, inspect the failed job and retained artifacts, reproduce the cause
101
+ locally when useful, repair within the authorized scope, and publish a non-force
102
+ update to the same PR. Continue monitoring without waiting for the user to notice
103
+ the failure or request correction; do not open a duplicate PR or merge it.
104
+ - If an external blocker prevents progress, report its concrete evidence and the
105
+ unfinished checks. Keep the PR's status and description honest; do not report
106
+ delivery as complete while required checks remain failing or unobserved.
107
+
108
+ Release metadata follows `docs/releases.md` and its existing verified-source CI
109
+ reuse policy; these implementation gates do not require release test reruns.
110
+
111
+ ## Tests, fixtures, and schemas
112
+
113
+ Preserve real Bun filesystem/process integration tests and native isolation.
114
+ Use deterministic fixtures under `tests/fixtures/`; keep evaluator-only inputs
115
+ outside candidate workspaces. Keep credentials and raw trial evidence out of Git.
116
+ Add meaningful regression coverage for reproducible bugs. Fixtures should
117
+ establish observable behavior, not mirror implementation.
118
+
119
+ After changing a schema, regenerate its checked-in validators:
120
+
121
+ ```sh
122
+ bun run schemas:generate
123
+ bun run schemas:check
124
+ ```
125
+
126
+ Commit schemas and validators together. Public v1 schemas and extension
127
+ capabilities are compatibility boundaries. Document changed meaning, validate
128
+ external inputs, and keep missing evidence from becoming a pass.
129
+
130
+ ## Documentation and pull requests
131
+
132
+ Give each page one reader need: tutorial, how-to, reference, or explanation.
133
+ Maintain the [hub](docs/README.md), old destinations, prerequisites, expected
134
+ results, and limitations. Preserve historical observations as evidence rather
135
+ than rewriting them to describe current behavior.
136
+
137
+ Use imperative Conventional Commit subjects without trailing periods. Do not
138
+ add `Co-authored-by` or AI attribution trailers. Do not change author metadata
139
+ without explicit instruction. A PR explains the problem, changed behavior,
140
+ compatibility limits, and checks actually performed. Do not claim unexecuted
141
+ native trials or remote CI results.
142
+
143
+ ## Maintainer releases
144
+
145
+ Follow [releases](docs/releases.md): reuse successful source CI, choose a new
146
+ version, and submit the release commit through a PR. Release PRs reuse the
147
+ existing full quality gate and run static metadata checks; releases do not
148
+ rerun local or CI tests. After the PR merges, prepare and inspect the exact
149
+ tarball and verify its license, provenance, and checksums before publication.
150
+ After changing `package.json.version`, run `bun run docs:sync` to refresh the
151
+ [current release](docs/installing.md#current-release). `check:docs`, release
152
+ preparation, and package-install validation reject stale release documentation.
153
+ Package-install, native, and Darrow compatibility tests belong to development
154
+ or an explicitly requested diagnostic, not the release process. Darrow's
155
+ dependency update is a separate PR.
156
+ Publication, tags, registry changes, and alternative licensing are separate
157
+ 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,71 +1,84 @@
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
- local candidate is `0.1.0-rc.1`; publication and Darrow's registry pin remain
27
- separate steps.
28
-
29
- [`extension-client.ts`](src/extension-client.ts) validates one request and
30
- response per extension process and negotiates the v1 protocol. It enforces
31
- message limits, timeouts, response identity, and process-group cancellation.
32
-
33
- [`extension-session.ts`](src/extension-session.ts) runs the negotiated
34
- `resolve`, `prepare`, and `evaluate` methods and checks source stability and
35
- evidence references. The engine accepts additive extension checks for inline
36
- cases.
37
-
38
- [`results.ts`](src/results.ts) reduces checks to separate execution, grading,
39
- and task states, applies case thresholds, and maps the aggregate to a CLI exit
40
- category.
41
- [`identity.ts`](src/identity.ts) computes versioned comparison identities from
42
- canonical JSON. The [identity contract](docs/identity-v1.md) defines the input
43
- dimensions.
44
-
45
- The [built-in output graders](docs/builtin-graders-v1.md) evaluate regex, JSON,
46
- and inline schema assertions on bounded final-message observations.
47
-
48
- The [first engine slice](docs/engine-slice.md) executes resolved cases through
49
- an injected host adapter and retains trial evidence before fixture cleanup.
50
- The [advisory review fixture](docs/advisory-fixture.md) builds a separate Git
51
- view of the complete candidate change while withholding evaluator paths.
52
- The [development CLI](docs/development-cli.md) runs that path with a trusted
53
- adapter module or the bundled Codex and Claude Code routes and emits a
54
- machine-readable result.
55
- The [native control observation](docs/native-controls.md) exposes bounded tool
56
- labels for extension policy on both Codex and Claude, with explicit completeness.
57
-
58
- The packaged [basic example](examples/basic/) runs without Darrow or a model
59
- 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
60
31
 
61
32
  ```sh
62
- bun src/cli.ts run --json \
63
- --case-file "$PWD/examples/basic/graded.json" \
64
- --adapter-module "$PWD/examples/basic/host.ts" \
65
- --project-root "$PWD" --results-root /tmp/sevro-basic-results \
66
- --condition passive --trials 1 --threshold 1
33
+ mkdir sevro-demo
34
+ cd sevro-demo
35
+ bun init -y
67
36
  ```
68
37
 
69
- Use `prompt-only.json` in place of `graded.json` to see successful execution
70
- with `task.verdict: not_assessed`. The package installation check runs both
71
- 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
+ ## Find your next task
44
+
45
+ The [documentation hub](docs/README.md) routes to running evaluations, authoring
46
+ cases and extensions, reading results, troubleshooting, and architecture.
47
+ Public v1 contracts are the [extension protocol](docs/extension-protocol-v1.md),
48
+ [results and evidence](docs/results-v1.md), and [report](docs/report-v1.md).
49
+ Machine-readable contracts live in [schemas/](schemas/).
50
+
51
+ ## Ask the repository guide
52
+
53
+ Open this checkout in a fresh Codex or Claude Code session and ask
54
+ “What is Sevro, and how do I run my first evaluation?” Explicit invocation is
55
+ `$sevro-guide` in Codex or `/sevro-guide` in Claude Code.
56
+ The guide reads sources, cites its answers, and handles follow-ups. It explains
57
+ commands; execution requires a separate request. See the
58
+ [guide contract and verification limits](docs/specs/repository-guide.md).
59
+ The npm package does not install the repository guide.
60
+
61
+ ## Contribute
62
+
63
+ [CONTRIBUTING.md](CONTRIBUTING.md) covers setup, checks, fixtures, schema
64
+ regeneration, compatibility, and releases. [Documentation quality](docs/documentation-quality.md)
65
+ defines documentation checks and review.
66
+
67
+ Run `bun run check:typescript` for the complete quality gate and
68
+ `bun run check:typescript --fast` before committing. The
69
+ [TypeScript quality contract](docs/typescript-quality.md) defines the source
70
+ inventory, strict typing, property tests, coverage integrity, and supported
71
+ environment.
72
+
73
+ ## License and acknowledgements
74
+
75
+ The [current release](docs/installing.md#current-release) uses the [Sevro Source Available License 1.0](LICENSE).
76
+ Use is free in every context, including commercial work and paid education.
77
+ Selling copies, rebranded versions, or hosted access to Sevro's functionality
78
+ requires a separate license. Modification and free redistribution remain allowed.
79
+ It is source-available, not an OSI open-source license. Read
80
+ [licensing](docs/licensing.md) for contribution grants and earlier BSL releases.
81
+
82
+ Björn Rochel created the logo. Sevro's name is inspired by the character in
83
+ Pierce Brown's _Red Rising_. Thank you, Pierce Brown, for the world and characters
84
+ that inspired both Sevro and Darrow. See [acknowledgements](docs/acknowledgements.md).
package/docs/README.md ADDED
@@ -0,0 +1,40 @@
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
+ | Install, update, remove, or use a checkout | [Installation](installing.md) |
11
+ | Run evaluations and select a host | [Running evaluations](running-evaluations.md) |
12
+ | Create cases and reusable policy | [Cases and extensions](creating-cases.md) |
13
+ | Interpret verdicts, evidence, and comparisons | [Reading results](reading-results.md) |
14
+ | Run Codex or Claude with isolation | [Native hosts](native-hosts.md) |
15
+ | Reuse host tools or enable goals and hooks | [Runtime configuration](runtime-v1.md) |
16
+ | Resolve a symptom | [Troubleshooting](troubleshooting.md) |
17
+ | Understand runner responsibilities | [Architecture](architecture.md) |
18
+ | Change Sevro or its documentation | [Contributing](../CONTRIBUTING.md) |
19
+ | Understand licensing and branding | [Licensing](licensing.md) and [assets](assets/README.md) |
20
+
21
+ ## Ask the guide
22
+
23
+ Ask ordinary Sevro questions in a fresh repository session, or use `$sevro-guide`
24
+ in Codex and `/sevro-guide` in Claude Code. The
25
+ canonical guide at `.agents/skills/sevro-guide/SKILL.md` reads evidence and
26
+ explains it; it does not run installations, tests, or evaluations.
27
+ It belongs to this repository, not an npm installation.
28
+
29
+ ## Sources and authority
30
+
31
+ [Current contracts](contracts.md) define interfaces. The
32
+ [guide specification](specs/repository-guide.md) defines the repository assistant.
33
+ [Historical validation](evidence.md) records observations, not current guarantees.
34
+ There is no accepted Rust migration decision here;
35
+ [issue #2](https://github.com/BjRo/sevro/issues/2) tracks research.
36
+
37
+ Read [documentation quality](documentation-quality.md),
38
+ [guide evaluation](guide-evaluation.md), [releases](releases.md), and
39
+ [acknowledgements](acknowledgements.md) for maintenance.
40
+ 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).
@@ -0,0 +1,25 @@
1
+ # How Sevro fits together
2
+
3
+ Sevro owns generic execution/evidence contracts. Projects own cases and policy.
4
+ This lets Darrow and other integrations use the same runner without importing
5
+ their benchmark policy into it.
6
+
7
+ | Responsibility | Sources |
8
+ | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
9
+ | Parse commands/select explicit routes | [CLI](../src/cli.ts), [CLI reference](development-cli.md) |
10
+ | Prepare, execute, grade, retain, clean up | [Engine](../src/engine.ts), [engine slice](engine-slice.md) |
11
+ | Negotiate trusted extension calls | [Client](../src/extension-client.ts), [session](../src/extension-session.ts), [protocol](extension-protocol-v1.md) |
12
+ | Run native hosts and retain bounded observations | [Codex](codex-host.md), [native controls](native-controls.md), [host sources](../src/hosts/) |
13
+ | Reduce execution/grading/task states | [Result source](../src/results.ts), [contract](results-v1.md) |
14
+ | Bind comparison identities and release provenance | [Identity](identity-v1.md), [releases](releases.md) |
15
+ | Summarize retained results | [Report](report-v1.md) |
16
+
17
+ Completed evidence is retained before cleanup. Missing observations remain
18
+ unavailable; unknown measurements do not become zero. Extensions cannot
19
+ silently replace isolation/persistence or built-in policy. The
20
+ [advisory fixture](advisory-fixture.md) gives review a separate Git view with
21
+ evaluator inputs withheld.
22
+
23
+ These paths describe this checkout. [Historical validation](evidence.md) records
24
+ bounded past observations. [Rust research](https://github.com/BjRo/sevro/issues/2)
25
+ does not establish a migration; public interfaces remain useful independently.