@sunstack/cli 0.8.3 → 0.9.0
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/CHANGELOG.md +16 -0
- package/README.md +58 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.9.0
|
|
4
|
+
|
|
5
|
+
Release date: 2026-11-07.
|
|
6
|
+
|
|
7
|
+
- `lint --prepare FILE` and `lint cases --prepare FILE` save exact model requests
|
|
8
|
+
and evidence without credentials or provider dispatch, with explicit gates and
|
|
9
|
+
unanswered selection dependencies, including composed-field/shared-projection
|
|
10
|
+
uncertainty. Clean preparation exits 6; failed admission and replayed selections
|
|
11
|
+
keep ordinary request-allowance semantics.
|
|
12
|
+
- Ordinary saved reports and JSON output retain selection requests and answers.
|
|
13
|
+
`--prepare --selections-from REPORT` continues from identical recorded selection
|
|
14
|
+
inputs with an exact resolved-model pin and explicit source provenance.
|
|
15
|
+
- `lint show` reads prepared requests, saved selections and prepared case ordinals
|
|
16
|
+
using only the saved report. Existing ordinary human output and result ids stay
|
|
17
|
+
unchanged.
|
|
18
|
+
|
|
3
19
|
## 0.8.3
|
|
4
20
|
|
|
5
21
|
Release date: 2026-11-07.
|
package/README.md
CHANGED
|
@@ -120,6 +120,64 @@ and rule files. It retains raw piece evidence for mechanical steps. `lint show`
|
|
|
120
120
|
needs only that saved file; an excluded rule is marked as never asked and cannot
|
|
121
121
|
be re-walked. Unknown ids return an error with the valid range.
|
|
122
122
|
|
|
123
|
+
### Prepare requests without sending
|
|
124
|
+
|
|
125
|
+
```sh
|
|
126
|
+
sunstack lint --all --prepare prepared.json
|
|
127
|
+
sunstack lint show prepared.json 3
|
|
128
|
+
sunstack lint cases cases.json --set development --prepare prepared-cases.json
|
|
129
|
+
sunstack lint show prepared-cases.json 1
|
|
130
|
+
sunstack lint --all --prepare continued.json --selections-from run.json
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
`--prepare FILE` uses ordinary target selection, evidence, cuts, mechanical checks,
|
|
134
|
+
request builders and budgets, then saves the requests without resolving a
|
|
135
|
+
credential or sending to the provider. It conflicts with `--report`, `--check`,
|
|
136
|
+
`--rules`, `--evidence` and `--init`. The report adds `mode: "prepare"`; each
|
|
137
|
+
unanswered request has `status: "prepared"`, its exact `request.state` and
|
|
138
|
+
`request.questions`, raw evidence, and the config and rule file contents/hashes.
|
|
139
|
+
There are no invented answers or judged outcomes. Filter-gated rule requests are
|
|
140
|
+
offered for every mechanically possible folder with their `gate` condition.
|
|
141
|
+
Decision-tree routes use one request containing all piece questions, so an
|
|
142
|
+
unanswered route does not block preparation.
|
|
143
|
+
|
|
144
|
+
A selected kind's unanswered selection prevents its dependent pieces from being
|
|
145
|
+
built. `needs_answer` lists each affected kind/file and the selection request id
|
|
146
|
+
it waits on; independent evidence still builds. Composed `same_file`, `inside`
|
|
147
|
+
and `enclosing` fields remain selection-pending, including remainder subtraction.
|
|
148
|
+
If any field in the model view is selection-pending, the whole model request
|
|
149
|
+
waits, including questions that read only another field. No size estimate is
|
|
150
|
+
used. Requests whose model view has no pending field continue normally.
|
|
151
|
+
Ordinary `--report` and JSON
|
|
152
|
+
output now retain selection requests, answers, requested/resolved models, input
|
|
153
|
+
hashes and raw selection evidence, alongside their existing rule/filter entries.
|
|
154
|
+
|
|
155
|
+
Use `--selections-from` only with `--prepare` to continue from those recorded
|
|
156
|
+
answers. It accepts a lint report or a case report. Replay requires the identical
|
|
157
|
+
state and questions, a valid recorded answer, and **decision_model.model equal to the
|
|
158
|
+
recorded resolved model name exactly**. Pin the resolved version in the config;
|
|
159
|
+
an alias such as `jev-latest`, a different version, an unanswered entry or changed
|
|
160
|
+
input stays `needs_answer`. No provider-prefix inference or revision restriction
|
|
161
|
+
is applied. Applied entries have `status: "from_report"` and
|
|
162
|
+
`source_request_id`; a case-report source also records `source_revision`.
|
|
163
|
+
Agreeing duplicate answers retain the first source's provenance; conflicting
|
|
164
|
+
answers stay unresolved. Replayed selectors check and consume the same logical
|
|
165
|
+
request allowance as ordinary selection, so downstream requests keep the same
|
|
166
|
+
limit. Neither preparing nor replaying sends inference or consumes model usage.
|
|
167
|
+
|
|
168
|
+
Prepared case reports keep the ordinary exact-range/hash matching and accounting,
|
|
169
|
+
adding the `prepared` disposition. Stale, unmatched, ambiguous, mechanically
|
|
170
|
+
excluded and unavailable cases retain explicit reasons. `lint show` on a prepared
|
|
171
|
+
case report selects the **1-based ordinal in its cases array**, and returns that
|
|
172
|
+
case plus its linked revision/request evidence; stale and unmatched cases are
|
|
173
|
+
reason-only. Readback needs only the saved file.
|
|
174
|
+
|
|
175
|
+
A clean prepare-only run exits **6**, including runs waiting for selection answers.
|
|
176
|
+
Mechanical findings or case gaps (including stale/unmatched cases) exit **1**;
|
|
177
|
+
invalid input exits **2**, incomplete processing **3**, and cancellation **4**.
|
|
178
|
+
Invalid, cancelled and incomplete processing take precedence over case gaps.
|
|
179
|
+
Unassessed case bars alone do not fail a prepare-only run.
|
|
180
|
+
|
|
123
181
|
A case file contains `cases` and `bars`, plus an optional local `repository`
|
|
124
182
|
path (relative to the case file). Each case has a unique `id`, `revision`, `set`
|
|
125
183
|
and `label_from` (`owner-fix`, `owner-ruling` or `blind-agents`).
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"hasInstallScript": true,
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"name": "@sunstack/cli",
|
|
22
|
-
"version": "0.
|
|
22
|
+
"version": "0.9.0"
|
|
23
23
|
},
|
|
24
24
|
"node_modules/detect-libc": {
|
|
25
25
|
"engines": {
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
"requires": true,
|
|
51
|
-
"version": "0.
|
|
51
|
+
"version": "0.9.0"
|
|
52
52
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"artifactDownloadUrls": [
|
|
3
|
-
"https://github.com/ShravanSunder/sunstack-tools/releases/download/v0.
|
|
3
|
+
"https://github.com/ShravanSunder/sunstack-tools/releases/download/v0.9.0"
|
|
4
4
|
],
|
|
5
5
|
"bin": {
|
|
6
6
|
"sunstack": "run-sunstack.js"
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"zipExt": ".tar.gz"
|
|
89
89
|
}
|
|
90
90
|
},
|
|
91
|
-
"version": "0.
|
|
91
|
+
"version": "0.9.0",
|
|
92
92
|
"volta": {
|
|
93
93
|
"node": "18.14.1",
|
|
94
94
|
"npm": "9.5.0"
|