thurview 0.8.2 → 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/README.md +56 -19
- package/dist/cli.js +447 -106
- package/dist/cli.js.map +1 -1
- package/dist/forge/github.js +245 -0
- package/dist/forge/github.js.map +1 -0
- package/dist/forge/gitlab.js +226 -0
- package/dist/forge/gitlab.js.map +1 -0
- package/dist/forge/index.js +110 -0
- package/dist/forge/index.js.map +1 -0
- package/dist/forge/run.js +55 -0
- package/dist/forge/run.js.map +1 -0
- package/dist/forge/submission.js +55 -0
- package/dist/forge/submission.js.map +1 -0
- package/dist/forge/types.js +37 -0
- package/dist/forge/types.js.map +1 -0
- package/dist/presence.js +34 -0
- package/dist/presence.js.map +1 -0
- package/dist/server/server.js +4 -0
- package/dist/server/server.js.map +1 -1
- package/dist/store.js +10 -0
- package/dist/store.js.map +1 -1
- package/dist/thread-state.js +17 -0
- package/dist/thread-state.js.map +1 -0
- package/dist/threads.js +10 -9
- package/dist/threads.js.map +1 -1
- package/dist/ui/app.css +18 -0
- package/dist/ui/app.js +82 -24
- package/dist/ui/app.js.map +4 -4
- package/package.json +1 -1
- package/skills/forge-review/SKILL.md +276 -0
- package/skills/forge-review/references/forges.md +58 -0
- package/skills/forge-review/references/security-surfaces.md +54 -0
- package/skills/thurview/SKILL.md +16 -3
- package/skills/thurview/references/lifecycle.md +54 -7
package/README.md
CHANGED
|
@@ -73,6 +73,7 @@ reads the Agent Skills format:
|
|
|
73
73
|
|
|
74
74
|
```sh
|
|
75
75
|
npx skills add Thurbeen/thurview --skill thurview
|
|
76
|
+
npx skills add Thurbeen/thurview --skill forge-review # optional, see below
|
|
76
77
|
```
|
|
77
78
|
|
|
78
79
|
That form tracks this repository's default branch: `skills update` takes
|
|
@@ -89,8 +90,8 @@ that matches the command you have installed. Use that when you want the two to
|
|
|
89
90
|
move together.
|
|
90
91
|
|
|
91
92
|
The skill drives the `thurview` command, which needs Node 22 or later and
|
|
92
|
-
git (`gh` for pull requests). Install it, or let
|
|
93
|
-
`npx`:
|
|
93
|
+
git (`gh` for pull requests, `glab` for merge requests). Install it, or let
|
|
94
|
+
the skill reach it through `npx`:
|
|
94
95
|
|
|
95
96
|
```sh
|
|
96
97
|
npm install -g thurview # or: pnpm add -g thurview
|
|
@@ -147,10 +148,13 @@ and open it.
|
|
|
147
148
|
than something the reader has to infer.
|
|
148
149
|
- **Map**: systems, containers, components and code, with what the change
|
|
149
150
|
added, removed or touched, linked to files and code.
|
|
150
|
-
- **Threads**:
|
|
151
|
-
|
|
152
|
-
submit with _Approve_ or _Request changes_. _Close_ ends the review
|
|
153
|
-
|
|
151
|
+
- **Threads**: _Send to the agent_ delivers a question at once and the answer
|
|
152
|
+
lands in the same thread. _Add to the review_ holds a comment until you
|
|
153
|
+
submit with _Approve_ or _Request changes_. _Close_ ends the review without
|
|
154
|
+
approving it. Each thread says where it stands - held, queued, delivered or
|
|
155
|
+
answered - and the panel says whether an agent is listening at all. Nothing
|
|
156
|
+
claims a reader is there when none is: a question asked with no agent
|
|
157
|
+
attached is queued, not lost, and reaches the agent the next time it checks.
|
|
154
158
|
- **Revisions**: every publish is sealed; switch back to earlier ones.
|
|
155
159
|
- **Theme**: the agent reads the project's design tokens and fonts and
|
|
156
160
|
publishes them with the review, so each review looks like the code it
|
|
@@ -165,19 +169,20 @@ bar.
|
|
|
165
169
|
|
|
166
170
|
## CLI
|
|
167
171
|
|
|
168
|
-
| Command | Purpose
|
|
169
|
-
| --------------------------------------------------------------------- |
|
|
170
|
-
| `thurview scaffold [--pr N \| --base R --head R]` | Create a review pinned to exact commits (`--update` re-pins)
|
|
171
|
-
| `thurview explain [<path>] [--commit R]` | Create a code explainer of a codebase or subsystem at one commit
|
|
172
|
-
| `thurview info [--all]` | Reviews bound to this worktree
|
|
173
|
-
| `thurview publish --review ID [--view T] [--open]` | Validate the document and map, seal a revision
|
|
174
|
-
| `thurview open --review ID [--view T]` | Start the server if needed and open the browser
|
|
175
|
-
| `thurview wait --review ID [--timeout S]` | Block until the reader needs the agent
|
|
176
|
-
| `thurview threads list\|get\|reply\|resolve` | Read and answer threads
|
|
177
|
-
| `thurview graph interfaces\|impact\|callers\|tests-for\|architecture` | Ask the code graph at the pinned commits
|
|
178
|
-
| `thurview
|
|
179
|
-
| `thurview
|
|
180
|
-
| `thurview
|
|
172
|
+
| Command | Purpose |
|
|
173
|
+
| --------------------------------------------------------------------- | ----------------------------------------------------------------- |
|
|
174
|
+
| `thurview scaffold [--pr N \| --base R --head R]` | Create a review pinned to exact commits (`--update` re-pins) |
|
|
175
|
+
| `thurview explain [<path>] [--commit R]` | Create a code explainer of a codebase or subsystem at one commit |
|
|
176
|
+
| `thurview info [--all]` | Reviews bound to this worktree |
|
|
177
|
+
| `thurview publish --review ID [--view T] [--open]` | Validate the document and map, seal a revision |
|
|
178
|
+
| `thurview open --review ID [--view T]` | Start the server if needed and open the browser |
|
|
179
|
+
| `thurview wait --review ID [--timeout S]` | Block until the reader needs the agent |
|
|
180
|
+
| `thurview threads list\|get\|reply\|resolve` | Read and answer threads |
|
|
181
|
+
| `thurview graph interfaces\|impact\|callers\|tests-for\|architecture` | Ask the code graph at the pinned commits |
|
|
182
|
+
| `thurview forge status\|prior\|submit\|reply` | Read a change request through its forge, and post the review back |
|
|
183
|
+
| `thurview serve` / `thurview stop` | Run the server in the foreground / stop the background one |
|
|
184
|
+
| `thurview setup hooks\|skill\|status` | Session hooks, agent skill, install state |
|
|
185
|
+
| `thurview update` | Self-update from npm |
|
|
181
186
|
|
|
182
187
|
thurview is an [AXI](https://axi.md): built for agents that drive it through a
|
|
183
188
|
shell. Output is [TOON](https://toonformat.dev) on stdout, errors are
|
|
@@ -189,6 +194,38 @@ arguments shows live state for the current directory instead of a manual.
|
|
|
189
194
|
`thurview <command> --help` is the fallback. Progress and diagnostics go to
|
|
190
195
|
stderr.
|
|
191
196
|
|
|
197
|
+
## Posting the review to the forge
|
|
198
|
+
|
|
199
|
+
A thurview review is read in the browser. When the change is a pull request on
|
|
200
|
+
GitHub or a merge request on GitLab, the `forge-review` skill posts it there as
|
|
201
|
+
well: inline comments anchored to lines, a summary, and a verdict.
|
|
202
|
+
|
|
203
|
+
```sh
|
|
204
|
+
thurview forge status --change 123 # what CI actually did, and whether it is a gate at all
|
|
205
|
+
thurview forge prior --change 123 # the previous pass, thread by thread
|
|
206
|
+
thurview forge submit --change 123 --file pass.json --dry-run
|
|
207
|
+
thurview forge reply <threadId> --change 123 --body "<answer>" --resolve --at <head>
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
`status` counts passed, failed, cancelled, skipped and running checks
|
|
211
|
+
separately, and compares them against what the target branch's own tip runs -
|
|
212
|
+
a change request from a fork typically runs a fraction of them, and a
|
|
213
|
+
cancelled job shows no failure while asserting nothing. `ci.trustworthy` is
|
|
214
|
+
the only field that means the tests really passed.
|
|
215
|
+
|
|
216
|
+
`submit` takes one JSON file so a human can read the pass before it is posted,
|
|
217
|
+
refuses an `approve` without `--confirm`, and warns about comments too long to
|
|
218
|
+
be read. `reply --resolve` takes `--at <sha>` and refuses any commit but the
|
|
219
|
+
current head, so a thread is never closed against code nobody looked at. There
|
|
220
|
+
is no merge, close or push command, deliberately.
|
|
221
|
+
|
|
222
|
+
GitHub goes through `gh`, GitLab through `glab`; hosts other than github.com
|
|
223
|
+
and gitlab.com are matched against what those CLIs are authenticated for, and
|
|
224
|
+
an unmatched host is refused rather than guessed. The differences that survive
|
|
225
|
+
the seam - GitLab has no changes-requested state, no atomic review and no
|
|
226
|
+
multi-line comment anchor - are listed in
|
|
227
|
+
[skills/forge-review/references/forges.md](skills/forge-review/references/forges.md).
|
|
228
|
+
|
|
192
229
|
## Authoring format
|
|
193
230
|
|
|
194
231
|
The agent writes three files in `~/.thurview/reviews/<id>/`:
|