@staff0rd/assist 0.117.0 → 0.119.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/claude/commands/review-comments.md +3 -1
- package/dist/index.js +30 -12
- package/package.json +1 -1
|
@@ -12,7 +12,9 @@ Fetch all review comments using `assist prs list-comments`. This returns both re
|
|
|
12
12
|
|
|
13
13
|
## Processing Comments
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Thread grouping:** Comments share a `threadId` field. Group comments by thread and process each thread as a single unit. Present follow-up comments (e.g., a reviewer endorsing a bot suggestion) as context alongside the primary actionable comment. Only call `fixed`/`wontfix` once per thread, using the comment ID of the primary actionable comment.
|
|
16
|
+
|
|
17
|
+
Create a task for each **thread** (not each comment). For each thread:
|
|
16
18
|
|
|
17
19
|
1. **Display the comment** to the user:
|
|
18
20
|
- Show the reviewer, file/line (if applicable), and the comment text
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { Command } from "commander";
|
|
|
6
6
|
// package.json
|
|
7
7
|
var package_default = {
|
|
8
8
|
name: "@staff0rd/assist",
|
|
9
|
-
version: "0.
|
|
9
|
+
version: "0.119.0",
|
|
10
10
|
type: "module",
|
|
11
11
|
main: "dist/index.js",
|
|
12
12
|
bin: {
|
|
@@ -8266,29 +8266,47 @@ import chalk78 from "chalk";
|
|
|
8266
8266
|
function formatNumber(num) {
|
|
8267
8267
|
return num.toLocaleString("en-US");
|
|
8268
8268
|
}
|
|
8269
|
+
function formatTimeLeft(resetsAt) {
|
|
8270
|
+
const seconds = Math.max(0, resetsAt - Math.floor(Date.now() / 1e3));
|
|
8271
|
+
const days = Math.floor(seconds / 86400);
|
|
8272
|
+
const hours = Math.floor(seconds % 86400 / 3600);
|
|
8273
|
+
const minutes = Math.floor(seconds % 3600 / 60);
|
|
8274
|
+
if (days > 0) return `${days}d ${hours}h`;
|
|
8275
|
+
if (hours > 0) return `${hours}h ${minutes}m`;
|
|
8276
|
+
return `${minutes}m`;
|
|
8277
|
+
}
|
|
8269
8278
|
function colorizePercent(pct) {
|
|
8270
8279
|
const label2 = `${Math.round(pct)}%`;
|
|
8271
8280
|
if (pct > 80) return chalk78.red(label2);
|
|
8272
8281
|
if (pct > 40) return chalk78.yellow(label2);
|
|
8273
8282
|
return label2;
|
|
8274
8283
|
}
|
|
8284
|
+
function formatLimit(limit, fallbackLabel) {
|
|
8285
|
+
const label2 = limit.resets_at ? formatTimeLeft(limit.resets_at) : fallbackLabel;
|
|
8286
|
+
return `${colorizePercent(limit.used_percentage)} (${label2})`;
|
|
8287
|
+
}
|
|
8288
|
+
function buildLimitsSegment(rateLimits) {
|
|
8289
|
+
const fiveHrPct = rateLimits?.five_hour?.used_percentage;
|
|
8290
|
+
const sevenDayPct = rateLimits?.seven_day?.used_percentage;
|
|
8291
|
+
if (fiveHrPct == null || sevenDayPct == null) return "";
|
|
8292
|
+
const fiveHr = {
|
|
8293
|
+
used_percentage: fiveHrPct,
|
|
8294
|
+
resets_at: rateLimits?.five_hour?.resets_at
|
|
8295
|
+
};
|
|
8296
|
+
const sevenDay = {
|
|
8297
|
+
used_percentage: sevenDayPct,
|
|
8298
|
+
resets_at: rateLimits?.seven_day?.resets_at
|
|
8299
|
+
};
|
|
8300
|
+
return ` | Limits - ${formatLimit(fiveHr, "5h")}, ${formatLimit(sevenDay, "7d")}`;
|
|
8301
|
+
}
|
|
8275
8302
|
async function statusLine() {
|
|
8276
8303
|
const inputData = await readStdin();
|
|
8277
8304
|
const data = JSON.parse(inputData);
|
|
8278
8305
|
const model = data.model.display_name;
|
|
8279
|
-
const
|
|
8280
|
-
const totalOutput = data.context_window.total_output_tokens;
|
|
8306
|
+
const { total_input_tokens: totalIn, total_output_tokens: totalOut } = data.context_window;
|
|
8281
8307
|
const usedPct = data.context_window.used_percentage ?? 0;
|
|
8282
|
-
const formattedInput = formatNumber(totalInput);
|
|
8283
|
-
const formattedOutput = formatNumber(totalOutput);
|
|
8284
|
-
const fiveHrPct = data.rate_limits?.five_hour?.used_percentage;
|
|
8285
|
-
const sevenDayPct = data.rate_limits?.seven_day?.used_percentage;
|
|
8286
|
-
let limitsSegment = "";
|
|
8287
|
-
if (fiveHrPct != null && sevenDayPct != null) {
|
|
8288
|
-
limitsSegment = ` | Limits - ${colorizePercent(fiveHrPct)} (5h), ${colorizePercent(sevenDayPct)} (7d)`;
|
|
8289
|
-
}
|
|
8290
8308
|
console.log(
|
|
8291
|
-
`${model} | Tokens - ${
|
|
8309
|
+
`${model} | Tokens - ${formatNumber(totalOut)} \u2191 : ${formatNumber(totalIn)} \u2193 | Context - ${colorizePercent(usedPct)}${buildLimitsSegment(data.rate_limits)}`
|
|
8292
8310
|
);
|
|
8293
8311
|
}
|
|
8294
8312
|
|