@rness/cli 0.19.0 → 0.20.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 +37 -11
- package/dist/bin/rness.js +1 -1
- package/dist/{chunk-U5SBNWVD.js → chunk-WIZHU4WT.js} +27 -5
- package/dist/chunk-WIZHU4WT.js.map +1 -0
- package/dist/index.js +1 -1
- package/mod/hooks/register.tsx +353 -42
- package/mod/types/index.d.ts +13 -0
- package/package.json +1 -1
- package/dist/chunk-U5SBNWVD.js.map +0 -1
package/README.md
CHANGED
|
@@ -60,10 +60,14 @@ when dropped, red `?` when missing.
|
|
|
60
60
|
`PgUp`/`PgDn`, `Home`/`End` scroll, `q` or `Esc` closes and gives the
|
|
61
61
|
screen back. Read-only.
|
|
62
62
|
- Off a terminal — a pipe, CI, an agent's tool — Markdown: a table per tab.
|
|
63
|
-
- `--json`, terminal or not: the tabs and their rows
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
- `--json`, terminal or not: the tabs and their rows — each row with the
|
|
64
|
+
colour of its status on Agent Pulse (`color`, the board's name for it:
|
|
65
|
+
`yellow` for `In progress`; `red` without a status) and its item there
|
|
66
|
+
(`link`, the board filtered on its path; null without a pulse) — the
|
|
67
|
+
board (`pulse`), and what a Claude Code session shows of the workspace,
|
|
68
|
+
worded by the CLI — the session-start banner, the status line entry, the
|
|
69
|
+
scope's plans `In progress` and the notes of the safety net (see
|
|
70
|
+
"Hooks"). The plugin's mod reads it (see
|
|
67
71
|
"The mod").
|
|
68
72
|
- From Claude Code, `/rness:status [tab]` opens a pane beside the
|
|
69
73
|
conversation when the plugin's mod is loaded (see "The mod"), and shows
|
|
@@ -176,13 +180,26 @@ the pinned copy, and computes nothing itself:
|
|
|
176
180
|
there are notes. Claude Code draws it after the plugin's name:
|
|
177
181
|
`⚠ rness: web · 1 in progress` (2.1.289).
|
|
178
182
|
- **`/rness:status [tab]` as a pane** beside the conversation, a tab per
|
|
179
|
-
collection, a row per document
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
183
|
+
collection, a row per document, its status in the colour Agent Pulse
|
|
184
|
+
gives it (yellow in progress, green done, red blocked, gray draft or
|
|
185
|
+
abandoned, blue proposed, purple approved — the board's purple is the
|
|
186
|
+
terminal's magenta); no model turn. The pane takes the keyboard as it
|
|
187
|
+
opens, on the newest row, with the keys of the full-screen view:
|
|
188
|
+
**↑/↓ select a row**, `PgUp`/`PgDn` a page away, `Home`/`End`
|
|
189
|
+
the ends, the window following the selection; **Tab and Shift+Tab
|
|
190
|
+
change the tab**, wrapping, and so does a tab's digit (written before
|
|
191
|
+
its name); **Enter, or a click, on a row shows the document**; Esc and
|
|
192
|
+
`q` close the pane, and so does Esc at an empty prompt once the prompt
|
|
193
|
+
has the keys back. The selected row is drawn between `‹` and `›`, which
|
|
194
|
+
a click presses too. A pane has no ←/→ in Claude Code 2.1.289. The
|
|
195
|
+
document is read from `.rness/` without its front matter, as the
|
|
196
|
+
board's card shows it; `q` brings the list back, Esc still closes. An
|
|
197
|
+
edit of the document shows at the next refresh. **Agent
|
|
198
|
+
Pulse is a link** when the workspace declares a pulse: the board from the
|
|
199
|
+
list, the document's item (the board filtered on its path) from the
|
|
200
|
+
document. The terminal opens it as it opens any hyperlink (cmd+click on
|
|
201
|
+
macOS, as a rule), a desktop surface on a click. In `claude -p`, or where
|
|
202
|
+
no pane can be placed, the skill's tables answer instead.
|
|
186
203
|
|
|
187
204
|
It reads the snapshot again at session start, after an `Edit` or `Write`
|
|
188
205
|
of a file under `.rness/`, and at the end of each turn, off the turn's
|
|
@@ -674,6 +691,15 @@ per repository, the files to commit there.
|
|
|
674
691
|
Exit codes: 0 success, 1 failure, 2 usage — or a refusal without a TTY.
|
|
675
692
|
`RNESS_DEBUG=1` adds stack traces; `RNESS_NO_DELEGATE=1` skips the delegation.
|
|
676
693
|
|
|
694
|
+
## 0.20.0 — the status pane opens a document; ↑/↓ select, Tab changes the tab; Agent Pulse's colours and links
|
|
695
|
+
|
|
696
|
+
- `/rness:status` in Claude Code: each row's status in Agent Pulse's colour;
|
|
697
|
+
↑/↓ select a row, Tab and Shift+Tab change the tab; Enter, or a click, on
|
|
698
|
+
a row shows the document in the pane and `q` brings the list back; Agent
|
|
699
|
+
Pulse is a link — the board from the list, the document's item from the
|
|
700
|
+
document. `rness status --json` prints each row's `color` and `link`, and
|
|
701
|
+
the board as `pulse`.
|
|
702
|
+
|
|
677
703
|
## 0.19.0 — the plugin's mod; edits of generated files refused before they land
|
|
678
704
|
|
|
679
705
|
- The Claude Code plugin gains a mod (see "The mod"): the notes to act on
|
package/dist/bin/rness.js
CHANGED
|
@@ -511,7 +511,7 @@ function parseRepoSpec(spec, org, host) {
|
|
|
511
511
|
}
|
|
512
512
|
|
|
513
513
|
// src/version.ts
|
|
514
|
-
var VERSION = "0.
|
|
514
|
+
var VERSION = "0.20.0";
|
|
515
515
|
|
|
516
516
|
// src/core/pm.ts
|
|
517
517
|
import { execFile as execFile2 } from "child_process";
|
|
@@ -1259,9 +1259,15 @@ async function plansInProgress(ws, manifest, scope) {
|
|
|
1259
1259
|
// src/pulse/body.ts
|
|
1260
1260
|
import { createHash } from "crypto";
|
|
1261
1261
|
import { posix as posix4 } from "path";
|
|
1262
|
-
|
|
1262
|
+
|
|
1263
|
+
// src/pulse/urls.ts
|
|
1264
|
+
var boardUrl = (org, project) => `https://github.com/orgs/${org}/projects/${project}`;
|
|
1265
|
+
var itemUrl = (org, project, path) => `${boardUrl(org, project)}?filterQuery=${encodeURIComponent(`path:"${path}"`)}`;
|
|
1263
1266
|
var blobUrl = (org, path) => `https://github.com/${org}/.rness/blob/main/${encodeURI(path)}`;
|
|
1264
1267
|
var issueUrl = (org, number) => `https://github.com/${org}/.rness/issues/${number}`;
|
|
1268
|
+
|
|
1269
|
+
// src/pulse/body.ts
|
|
1270
|
+
var BODY_LIMIT = 65536;
|
|
1265
1271
|
function headerOf(path, org) {
|
|
1266
1272
|
return `\`${path}\` \xB7 [on GitHub](${blobUrl(org, path)})`;
|
|
1267
1273
|
}
|
|
@@ -8788,10 +8794,26 @@ function statusLine(scope, inProgress, notes) {
|
|
|
8788
8794
|
const acting = notes.filter((n) => !n.startsWith(" ")).length;
|
|
8789
8795
|
return `${scope ?? "global"} \xB7 ${inProgress.length} in progress${acting > 0 ? ` \xB7 \u26A0 ${acting}` : ""}`;
|
|
8790
8796
|
}
|
|
8797
|
+
function pulseOf(manifest) {
|
|
8798
|
+
const project = manifest.projects?.[PULSE];
|
|
8799
|
+
return manifest.org === null || project === void 0 ? null : { org: manifest.org, project };
|
|
8800
|
+
}
|
|
8801
|
+
function snapshotTabs(tabs, pulse) {
|
|
8802
|
+
return tabs.map((tab) => ({
|
|
8803
|
+
name: tab.name,
|
|
8804
|
+
label: tab.label,
|
|
8805
|
+
rows: tab.rows.map((row) => ({
|
|
8806
|
+
...row,
|
|
8807
|
+
color: row.status === null ? "red" : optionColor("Status", row.status),
|
|
8808
|
+
link: pulse === null ? null : itemUrl(pulse.org, pulse.project, row.path)
|
|
8809
|
+
}))
|
|
8810
|
+
}));
|
|
8811
|
+
}
|
|
8791
8812
|
async function statusSnapshot(ws, manifest, scope, tabs) {
|
|
8792
8813
|
const { banner: banner2 } = await scopeBanner(ws, manifest, scope);
|
|
8793
8814
|
const inProgress = await plansInProgress(ws, manifest, scope);
|
|
8794
8815
|
const notes = await safetyNet(ws, manifest);
|
|
8816
|
+
const pulse = pulseOf(manifest);
|
|
8795
8817
|
return {
|
|
8796
8818
|
version: VERSION,
|
|
8797
8819
|
workspace: workspaceName(manifest, ws.root),
|
|
@@ -8800,7 +8822,8 @@ async function statusSnapshot(ws, manifest, scope, tabs) {
|
|
|
8800
8822
|
statusLine: statusLine(scope, inProgress, notes),
|
|
8801
8823
|
inProgress,
|
|
8802
8824
|
notes: noteLines(notes),
|
|
8803
|
-
|
|
8825
|
+
pulse: pulse === null ? null : boardUrl(pulse.org, pulse.project),
|
|
8826
|
+
tabs: snapshotTabs(tabs, pulse)
|
|
8804
8827
|
};
|
|
8805
8828
|
}
|
|
8806
8829
|
|
|
@@ -9267,7 +9290,6 @@ async function writeOpened(file, opened) {
|
|
|
9267
9290
|
var PROJECT_SCOPE = "project";
|
|
9268
9291
|
var NEEDS_LOGIN = "the pulse needs a GitHub login: run rness login";
|
|
9269
9292
|
var NEEDS_SCOPE = "the pulse needs the project scope: run rness login";
|
|
9270
|
-
var boardUrl = (org, project) => `https://github.com/orgs/${org}/projects/${project}`;
|
|
9271
9293
|
async function fromGithub(work) {
|
|
9272
9294
|
try {
|
|
9273
9295
|
return await work;
|
|
@@ -10280,4 +10302,4 @@ export {
|
|
|
10280
10302
|
OWN_COMMANDS,
|
|
10281
10303
|
catchUp
|
|
10282
10304
|
};
|
|
10283
|
-
//# sourceMappingURL=chunk-
|
|
10305
|
+
//# sourceMappingURL=chunk-WIZHU4WT.js.map
|