@quickchatai/pi-quickreview 1.2.0 → 1.3.2
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 +79 -27
- package/assets/config.example.toml +25 -7
- package/assets/prompts/onboarding.md +8 -7
- package/assets/schemas/review-result.v1.json +60 -0
- package/dist/extensions/quickreview.d.ts +17 -5
- package/dist/extensions/quickreview.d.ts.map +1 -1
- package/dist/extensions/quickreview.js +79 -26
- package/dist/extensions/quickreview.js.map +1 -1
- package/dist/src/engine/auth.d.ts +4 -0
- package/dist/src/engine/auth.d.ts.map +1 -1
- package/dist/src/engine/auth.js +11 -2
- package/dist/src/engine/auth.js.map +1 -1
- package/dist/src/engine/lens/activity.d.ts +45 -0
- package/dist/src/engine/lens/activity.d.ts.map +1 -0
- package/dist/src/engine/lens/activity.js +118 -0
- package/dist/src/engine/lens/activity.js.map +1 -0
- package/dist/src/engine/lens/runlens.d.ts +7 -0
- package/dist/src/engine/lens/runlens.d.ts.map +1 -1
- package/dist/src/engine/lens/runlens.js +30 -1
- package/dist/src/engine/lens/runlens.js.map +1 -1
- package/dist/src/engine/lens/tool.d.ts +7 -0
- package/dist/src/engine/lens/tool.d.ts.map +1 -1
- package/dist/src/engine/lens/tool.js +101 -18
- package/dist/src/engine/lens/tool.js.map +1 -1
- package/dist/src/engine/lens/wave.d.ts +6 -0
- package/dist/src/engine/lens/wave.d.ts.map +1 -1
- package/dist/src/engine/lens/wave.js +16 -0
- package/dist/src/engine/lens/wave.js.map +1 -1
- package/dist/src/homes.js +1 -1
- package/dist/src/homes.js.map +1 -1
- package/dist/src/live/events.d.ts +3 -0
- package/dist/src/live/events.d.ts.map +1 -1
- package/dist/src/live/events.js.map +1 -1
- package/dist/src/live/lensline.d.ts +20 -0
- package/dist/src/live/lensline.d.ts.map +1 -0
- package/dist/src/live/lensline.js +70 -0
- package/dist/src/live/lensline.js.map +1 -0
- package/dist/src/live/projection.d.ts +55 -0
- package/dist/src/live/projection.d.ts.map +1 -0
- package/dist/src/live/projection.js +465 -0
- package/dist/src/live/projection.js.map +1 -0
- package/dist/src/live/read.d.ts +24 -0
- package/dist/src/live/read.d.ts.map +1 -0
- package/dist/src/live/read.js +60 -0
- package/dist/src/live/read.js.map +1 -0
- package/dist/src/live/writer.d.ts +3 -0
- package/dist/src/live/writer.d.ts.map +1 -1
- package/dist/src/live/writer.js +6 -1
- package/dist/src/live/writer.js.map +1 -1
- package/dist/src/localreview.d.ts +18 -8
- package/dist/src/localreview.d.ts.map +1 -1
- package/dist/src/localreview.js +103 -43
- package/dist/src/localreview.js.map +1 -1
- package/dist/src/modelroute.d.ts +4 -0
- package/dist/src/modelroute.d.ts.map +1 -1
- package/dist/src/modelroute.js +21 -0
- package/dist/src/modelroute.js.map +1 -1
- package/dist/src/plugin/args.d.ts +38 -7
- package/dist/src/plugin/args.d.ts.map +1 -1
- package/dist/src/plugin/args.js +134 -37
- package/dist/src/plugin/args.js.map +1 -1
- package/dist/src/plugin/index.d.ts.map +1 -1
- package/dist/src/plugin/index.js +5 -1
- package/dist/src/plugin/index.js.map +1 -1
- package/dist/src/plugin/login.d.ts +8 -4
- package/dist/src/plugin/login.d.ts.map +1 -1
- package/dist/src/plugin/login.js +25 -32
- package/dist/src/plugin/login.js.map +1 -1
- package/dist/src/plugin/messages.d.ts +7 -0
- package/dist/src/plugin/messages.d.ts.map +1 -0
- package/dist/src/plugin/messages.js +13 -0
- package/dist/src/plugin/messages.js.map +1 -0
- package/dist/src/plugin/peers.d.ts +17 -0
- package/dist/src/plugin/peers.d.ts.map +1 -0
- package/dist/src/plugin/peers.js +55 -0
- package/dist/src/plugin/peers.js.map +1 -0
- package/dist/src/plugin/review.d.ts +52 -6
- package/dist/src/plugin/review.d.ts.map +1 -1
- package/dist/src/plugin/review.js +261 -95
- package/dist/src/plugin/review.js.map +1 -1
- package/dist/src/plugin/scan.d.ts +80 -44
- package/dist/src/plugin/scan.d.ts.map +1 -1
- package/dist/src/plugin/scan.js +450 -233
- package/dist/src/plugin/scan.js.map +1 -1
- package/dist/src/plugin/scancases.d.ts +33 -0
- package/dist/src/plugin/scancases.d.ts.map +1 -0
- package/dist/src/plugin/scancases.js +153 -0
- package/dist/src/plugin/scancases.js.map +1 -0
- package/dist/src/plugin/settings.d.ts +18 -0
- package/dist/src/plugin/settings.d.ts.map +1 -0
- package/dist/src/plugin/settings.js +47 -0
- package/dist/src/plugin/settings.js.map +1 -0
- package/dist/src/plugin/setup.d.ts +35 -12
- package/dist/src/plugin/setup.d.ts.map +1 -1
- package/dist/src/plugin/setup.js +258 -118
- package/dist/src/plugin/setup.js.map +1 -1
- package/dist/src/plugin/versiongate.d.ts +3 -0
- package/dist/src/plugin/versiongate.d.ts.map +1 -1
- package/dist/src/plugin/versiongate.js +9 -4
- package/dist/src/plugin/versiongate.js.map +1 -1
- package/dist/src/profileoverrides.d.ts +3 -0
- package/dist/src/profileoverrides.d.ts.map +1 -1
- package/dist/src/profileoverrides.js +9 -2
- package/dist/src/profileoverrides.js.map +1 -1
- package/dist/src/reviewapi.d.ts +22 -31
- package/dist/src/reviewapi.d.ts.map +1 -1
- package/dist/src/reviewapi.js +90 -66
- package/dist/src/reviewapi.js.map +1 -1
- package/dist/src/reviewdest.d.ts +1 -1
- package/dist/src/reviewdest.d.ts.map +1 -1
- package/dist/src/reviewdest.js +4 -3
- package/dist/src/reviewdest.js.map +1 -1
- package/dist/src/reviewtarget.d.ts +36 -0
- package/dist/src/reviewtarget.d.ts.map +1 -0
- package/dist/src/reviewtarget.js +6 -0
- package/dist/src/reviewtarget.js.map +1 -0
- package/dist/src/round-progress.d.ts +5 -0
- package/dist/src/round-progress.d.ts.map +1 -1
- package/dist/src/round-progress.js.map +1 -1
- package/dist/src/round-stage-deadlines.d.ts +26 -1
- package/dist/src/round-stage-deadlines.d.ts.map +1 -1
- package/dist/src/round-stage-deadlines.js +45 -2
- package/dist/src/round-stage-deadlines.js.map +1 -1
- package/dist/src/savedpost.d.ts +65 -0
- package/dist/src/savedpost.d.ts.map +1 -0
- package/dist/src/savedpost.js +131 -0
- package/dist/src/savedpost.js.map +1 -0
- package/dist/src/scan/caseread.d.ts +84 -0
- package/dist/src/scan/caseread.d.ts.map +1 -0
- package/dist/src/scan/caseread.js +263 -0
- package/dist/src/scan/caseread.js.map +1 -0
- package/dist/src/scan/channelfs.d.ts +6 -0
- package/dist/src/scan/channelfs.d.ts.map +1 -0
- package/dist/src/scan/channelfs.js +27 -0
- package/dist/src/scan/channelfs.js.map +1 -0
- package/dist/src/scan/cutrender.d.ts +13 -0
- package/dist/src/scan/cutrender.d.ts.map +1 -0
- package/dist/src/scan/cutrender.js +51 -0
- package/dist/src/scan/cutrender.js.map +1 -0
- package/dist/src/scan/facts.d.ts +72 -0
- package/dist/src/scan/facts.d.ts.map +1 -0
- package/dist/src/scan/facts.js +593 -0
- package/dist/src/scan/facts.js.map +1 -0
- package/dist/src/scan/findings.d.ts +320 -0
- package/dist/src/scan/findings.d.ts.map +1 -0
- package/dist/src/scan/findings.js +948 -0
- package/dist/src/scan/findings.js.map +1 -0
- package/dist/src/scan/ledger.d.ts +116 -0
- package/dist/src/scan/ledger.d.ts.map +1 -0
- package/dist/src/scan/ledger.js +207 -0
- package/dist/src/scan/ledger.js.map +1 -0
- package/dist/src/scan/presentation.d.ts +19 -0
- package/dist/src/scan/presentation.d.ts.map +1 -0
- package/dist/src/scan/presentation.js +9 -0
- package/dist/src/scan/presentation.js.map +1 -0
- package/dist/src/scan/scan.d.ts +354 -0
- package/dist/src/scan/scan.d.ts.map +1 -0
- package/dist/src/scan/scan.js +725 -0
- package/dist/src/scan/scan.js.map +1 -0
- package/dist/src/scan/scanagents.d.ts +23 -0
- package/dist/src/scan/scanagents.d.ts.map +1 -0
- package/dist/src/scan/scanagents.js +99 -0
- package/dist/src/scan/scanagents.js.map +1 -0
- package/dist/src/scan/scanassemble.d.ts +65 -0
- package/dist/src/scan/scanassemble.d.ts.map +1 -0
- package/dist/src/scan/scanassemble.js +93 -0
- package/dist/src/scan/scanassemble.js.map +1 -0
- package/dist/src/scan/scanfs.d.ts +26 -0
- package/dist/src/scan/scanfs.d.ts.map +1 -0
- package/dist/src/scan/scanfs.js +229 -0
- package/dist/src/scan/scanfs.js.map +1 -0
- package/dist/src/scan/scanlease.d.ts +50 -0
- package/dist/src/scan/scanlease.d.ts.map +1 -0
- package/dist/src/scan/scanlease.js +251 -0
- package/dist/src/scan/scanlease.js.map +1 -0
- package/dist/src/scan/scanleaves.d.ts +55 -0
- package/dist/src/scan/scanleaves.d.ts.map +1 -0
- package/dist/src/scan/scanleaves.js +258 -0
- package/dist/src/scan/scanleaves.js.map +1 -0
- package/dist/src/scan/scanports.d.ts +79 -0
- package/dist/src/scan/scanports.d.ts.map +1 -0
- package/dist/src/scan/scanports.js +8 -0
- package/dist/src/scan/scanports.js.map +1 -0
- package/dist/src/scan/scanrender.d.ts +128 -0
- package/dist/src/scan/scanrender.d.ts.map +1 -0
- package/dist/src/scan/scanrender.js +527 -0
- package/dist/src/scan/scanrender.js.map +1 -0
- package/dist/src/scan/scanreport.d.ts +126 -0
- package/dist/src/scan/scanreport.d.ts.map +1 -0
- package/dist/src/scan/scanreport.js +289 -0
- package/dist/src/scan/scanreport.js.map +1 -0
- package/dist/src/scan/scanrun.d.ts +472 -0
- package/dist/src/scan/scanrun.d.ts.map +1 -0
- package/dist/src/scan/scanrun.js +1733 -0
- package/dist/src/scan/scanrun.js.map +1 -0
- package/dist/src/scan/scantree.d.ts +21 -0
- package/dist/src/scan/scantree.d.ts.map +1 -0
- package/dist/src/scan/scantree.js +297 -0
- package/dist/src/scan/scantree.js.map +1 -0
- package/dist/src/scan/scanverbs.d.ts +208 -0
- package/dist/src/scan/scanverbs.d.ts.map +1 -0
- package/dist/src/scan/scanverbs.js +689 -0
- package/dist/src/scan/scanverbs.js.map +1 -0
- package/dist/src/scan/stage2.d.ts +221 -0
- package/dist/src/scan/stage2.d.ts.map +1 -0
- package/dist/src/scan/stage2.js +617 -0
- package/dist/src/scan/stage2.js.map +1 -0
- package/dist/src/scan/stage2request.d.ts +125 -0
- package/dist/src/scan/stage2request.d.ts.map +1 -0
- package/dist/src/scan/stage2request.js +259 -0
- package/dist/src/scan/stage2request.js.map +1 -0
- package/dist/src/scan/textsniff.d.ts +14 -0
- package/dist/src/scan/textsniff.d.ts.map +1 -0
- package/dist/src/scan/textsniff.js +88 -0
- package/dist/src/scan/textsniff.js.map +1 -0
- package/dist/src/scan/unitcut.d.ts +135 -0
- package/dist/src/scan/unitcut.d.ts.map +1 -0
- package/dist/src/scan/unitcut.js +437 -0
- package/dist/src/scan/unitcut.js.map +1 -0
- package/dist/src/scan/unitcutstore.d.ts +155 -0
- package/dist/src/scan/unitcutstore.d.ts.map +1 -0
- package/dist/src/scan/unitcutstore.js +381 -0
- package/dist/src/scan/unitcutstore.js.map +1 -0
- package/dist/src/setupchecklist.d.ts +240 -0
- package/dist/src/setupchecklist.d.ts.map +1 -0
- package/dist/src/setupchecklist.js +407 -0
- package/dist/src/setupchecklist.js.map +1 -0
- package/package.json +7 -3
- package/skills/qcr-review/SKILL.md +24 -0
- package/skills/qcr-scan/SKILL.md +23 -0
- package/skills/qcr-setup/SKILL.md +18 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/plugin/review.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/plugin/review.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
// /review inside a user's pi: the production review (the core's
|
|
2
|
-
// the same pipeline `qcr review` runs) hosted in this pi process
|
|
1
|
+
// /qcr-review inside a user's pi: the production review (the core's
|
|
2
|
+
// `review()`, the same pipeline `qcr review` runs) hosted in this pi process,
|
|
3
|
+
// in the background.
|
|
3
4
|
//
|
|
5
|
+
// - The command returns at once: the review runs in the same process while
|
|
6
|
+
// the person keeps chatting. The status line shows its progress
|
|
7
|
+
// (`reviewStatusLine`), and the result arrives as the plugin's review
|
|
8
|
+
// message. One review runs per session at a time; a second start says which
|
|
9
|
+
// one is running, and `/qcr-review --stop` (or the session ending) stops it.
|
|
10
|
+
// A preview, and pi's print mode, run in the foreground: a preview starts
|
|
11
|
+
// nothing, and print mode ends when the command returns.
|
|
4
12
|
// - The repo is pi's cwd. The config is the person's qcr config when one is
|
|
5
13
|
// there (`$QCR_CONFIG`, or the install's config home), else the shipped
|
|
6
|
-
// defaults; it is only read.
|
|
14
|
+
// defaults; it is only read. A preset (args.ts) is the core's own review
|
|
15
|
+
// options, named.
|
|
7
16
|
// - The login is the host pi's, borrowed (login.ts): the host refreshes a
|
|
8
17
|
// short one first, and the run reads a refresh-disabled copy.
|
|
9
18
|
// - The run's sessions are nested SDK sessions in this process, isolated
|
|
@@ -12,13 +21,13 @@
|
|
|
12
21
|
// tool from the review: the lens tools exist only inside the engine's
|
|
13
22
|
// sessions. Nothing here owns the process: a wedged turn ends its own
|
|
14
23
|
// sessions, never pi.
|
|
15
|
-
// -
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
//
|
|
24
|
+
// - The result is shown in the session and kept as files (the markdown report
|
|
25
|
+
// and the result's JSON in the run's directory under the qcr state home, as
|
|
26
|
+
// `qcr review` keeps its runs). After a PR review the posting rule in pi's
|
|
27
|
+
// settings (settings.ts) decides: ask, with "No, keep it here" first; never;
|
|
28
|
+
// or always. A post is one comment-only review through the one
|
|
29
|
+
// MutationGate with the install's dry_run (the core's `offerPost`); nothing
|
|
30
|
+
// here sets dry_run.
|
|
22
31
|
import { execFileSync } from "node:child_process";
|
|
23
32
|
import { appendFileSync, mkdirSync, writeFileSync } from "node:fs";
|
|
24
33
|
import { dirname, join } from "node:path";
|
|
@@ -27,22 +36,25 @@ import { PI_REFRESH_MARGIN_MS } from "../engine/auth.js";
|
|
|
27
36
|
import { contextFrom } from "../engine/context.js";
|
|
28
37
|
import { lazyReviewRuntime } from "../engine/reviewruntime.js";
|
|
29
38
|
import { homeProfilePlaces, loadOneShotConfig, stateHome } from "../homes.js";
|
|
39
|
+
import { runningLensLines } from "../live/lensline.js";
|
|
40
|
+
import { latestLiveRound, viewRound } from "../live/read.js";
|
|
30
41
|
import { preview as corePreview, review as coreReview, } from "../reviewapi.js";
|
|
31
|
-
import { loadDefaultDestinationsIn, planDestinations, saveDefaultDestinationsIn, } from "../reviewdest.js";
|
|
32
42
|
import { prepareReviewHost } from "../reviewhost.js";
|
|
33
|
-
import { parseReviewCommand } from "./args.js";
|
|
34
|
-
import { borrowLogin
|
|
35
|
-
|
|
36
|
-
|
|
43
|
+
import { parseReviewCommand, reviewLabel, REVIEW_PRESETS } from "./args.js";
|
|
44
|
+
import { borrowLogin } from "./login.js";
|
|
45
|
+
import { reviewProviders } from "../modelroute.js";
|
|
46
|
+
import { DEFAULT_SETTINGS } from "./settings.js";
|
|
47
|
+
import { KEEP_IT_HERE, postAnswer } from "./messages.js";
|
|
48
|
+
export { KEEP_IT_HERE, postAnswer, REVIEW_MESSAGE } from "./messages.js";
|
|
37
49
|
/** A review's wall clock, as `qcr review`'s. */
|
|
38
50
|
export const REVIEW_TIMEOUT_MS = 60 * 60_000;
|
|
39
51
|
/** What a refused login says inside pi: pi's own /login is the fix. */
|
|
40
52
|
export const PLUGIN_AUTH_WORDS = {
|
|
41
|
-
missing: (src) => `no pi login at ${src}: run /login in pi, then /review again`,
|
|
42
|
-
expiring: ({ provider, expiresAt, needMs }) => `your ${provider ?? "pi"} login expires at ${new Date(expiresAt).toISOString()}, inside this review's ${Math.round(needMs / 60_000)}-minute window, and pi did not renew it. Run /login${provider ? ` ${provider}` : ""} in pi, then /review again.`,
|
|
53
|
+
missing: (src) => `no pi login at ${src}: run /login in pi, then /qcr-review again`,
|
|
54
|
+
expiring: ({ provider, expiresAt, needMs }) => `your ${provider ?? "pi"} login expires at ${new Date(expiresAt).toISOString()}, inside this review's ${Math.round(needMs / 60_000)}-minute window, and pi did not renew it. Run /login${provider ? ` ${provider}` : ""} in pi, then /qcr-review again.`,
|
|
43
55
|
};
|
|
44
|
-
/** How long a stopped review (
|
|
45
|
-
* before /review gives up waiting on it
|
|
56
|
+
/** How long a stopped review (`--stop`, the session ending) gets to wind
|
|
57
|
+
* down before /qcr-review gives up waiting on it. */
|
|
46
58
|
export const STOP_GRACE_MS = 30_000;
|
|
47
59
|
export const REVIEW_DEPS = {
|
|
48
60
|
review: coreReview,
|
|
@@ -51,53 +63,162 @@ export const REVIEW_DEPS = {
|
|
|
51
63
|
runtime: lazyReviewRuntime,
|
|
52
64
|
};
|
|
53
65
|
const fence = (lang, text) => `\`\`\`${lang}\n${text.trimEnd()}\n\`\`\``;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
66
|
+
const elapsed = (ms) => {
|
|
67
|
+
const s = Math.max(0, Math.floor(ms / 1000));
|
|
68
|
+
return s >= 60 ? `${Math.floor(s / 60)}m ${String(s % 60).padStart(2, "0")}s` : `${s}s`;
|
|
69
|
+
};
|
|
70
|
+
/** The status line for the review in flight: what it reviews, its stage, and
|
|
71
|
+
* what the round's start said (lenses, price, hard stop), with the time
|
|
72
|
+
* since it started. Every status line /qcr-review shows is built here. */
|
|
73
|
+
export function reviewStatusLine(p, now) {
|
|
74
|
+
const since = elapsed(now - p.startedAt);
|
|
75
|
+
switch (p.stage) {
|
|
76
|
+
case "pricing":
|
|
77
|
+
return `QuickReview: pricing ${p.label}…`;
|
|
78
|
+
case "preparing":
|
|
79
|
+
return `QuickReview: preparing the review of ${p.label}… ${since}`;
|
|
80
|
+
case "running": {
|
|
81
|
+
const plan = [
|
|
82
|
+
...(p.lenses !== undefined ? [`${p.lenses} lens${p.lenses === 1 ? "" : "es"}`] : []),
|
|
83
|
+
...(p.estimateUsd !== undefined ? [`about $${p.estimateUsd.toFixed(2)}`] : []),
|
|
84
|
+
...(p.capUsd !== undefined && p.capUsd !== null
|
|
85
|
+
? [`stops at $${p.capUsd.toFixed(2)}`]
|
|
86
|
+
: []),
|
|
87
|
+
];
|
|
88
|
+
const now = p.running?.length
|
|
89
|
+
? ` · ${p.running[0]}${p.running.length > 1 ? ` (+${p.running.length - 1} more)` : ""}`
|
|
90
|
+
: "";
|
|
91
|
+
return `QuickReview: reviewing ${p.label}${plan.length ? ` — ${plan.join(", ")}` : ""} · ${since}${now}`;
|
|
92
|
+
}
|
|
93
|
+
case "asking":
|
|
94
|
+
return `QuickReview: ${p.label} reviewed in ${since} — post it?`;
|
|
95
|
+
case "posting":
|
|
96
|
+
return `QuickReview: posting the review of ${p.label}…`;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/** One line per running lens of the review in `runDir`, read from its live
|
|
100
|
+
* log: none when the log is missing or unreadable, which never costs the
|
|
101
|
+
* review its status line. */
|
|
102
|
+
export function liveLensLines(runDir, now) {
|
|
103
|
+
try {
|
|
104
|
+
const ref = latestLiveRound(runDir);
|
|
105
|
+
const agents = ref ? viewRound(ref).snapshot?.agents : undefined;
|
|
106
|
+
return agents ? runningLensLines(agents, { nowMs: now }) : [];
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return [];
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/** The one review a session runs at a time. */
|
|
113
|
+
export class ReviewSlot {
|
|
114
|
+
current = null;
|
|
115
|
+
/** What is being reviewed now; null when nothing is. */
|
|
116
|
+
get running() {
|
|
117
|
+
return this.current?.label ?? null;
|
|
118
|
+
}
|
|
119
|
+
/** Stop the review in flight; what it was reviewing, or null when none runs. */
|
|
120
|
+
stop() {
|
|
121
|
+
if (this.current === null)
|
|
122
|
+
return null;
|
|
123
|
+
this.current.stop.abort();
|
|
124
|
+
return this.current.label;
|
|
125
|
+
}
|
|
126
|
+
/** Resolves once no review runs. */
|
|
127
|
+
async idle() {
|
|
128
|
+
while (this.current !== null)
|
|
129
|
+
await this.current.done;
|
|
130
|
+
}
|
|
131
|
+
/** Hold `done` as the review in flight until it settles. */
|
|
132
|
+
hold(label, stop, done) {
|
|
133
|
+
const entry = { label, stop, done };
|
|
134
|
+
this.current = entry;
|
|
135
|
+
void done.finally(() => {
|
|
136
|
+
if (this.current === entry)
|
|
137
|
+
this.current = null;
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
const fail = (ui, message) => {
|
|
142
|
+
if (ui.mode === "print")
|
|
143
|
+
ui.print(`✗ ${message}`);
|
|
144
|
+
ui.notify(message, "error");
|
|
145
|
+
};
|
|
146
|
+
/**
|
|
147
|
+
* /qcr-review. Starts the review and returns at once (pi's print mode and a
|
|
148
|
+
* preview wait for it); the review then runs in `slot`, one at a time. Never
|
|
149
|
+
* throws: every refusal reaches the person.
|
|
150
|
+
*/
|
|
151
|
+
export async function startReviewCommand(line, host, ui, o) {
|
|
152
|
+
const settings = o.settings ?? DEFAULT_SETTINGS;
|
|
153
|
+
const cmd = parseReviewCommand(line, settings.preset);
|
|
62
154
|
if ("error" in cmd)
|
|
63
|
-
return fail(cmd.error);
|
|
155
|
+
return fail(ui, cmd.error);
|
|
156
|
+
if ("stop" in cmd) {
|
|
157
|
+
const stopped = o.slot.stop();
|
|
158
|
+
if (stopped === null)
|
|
159
|
+
return ui.notify("no QuickReview review is running here", "info");
|
|
160
|
+
return ui.notify(`stopping the review of ${stopped}…`, "warning");
|
|
161
|
+
}
|
|
162
|
+
const running = o.slot.running;
|
|
163
|
+
if (running !== null)
|
|
164
|
+
return ui.notify(`QuickReview is already reviewing ${running}: one review runs at a time. Its result arrives here; /qcr-review --stop stops it.`, "warning");
|
|
165
|
+
const label = reviewLabel(cmd);
|
|
166
|
+
const stop = new AbortController();
|
|
167
|
+
// A preview starts nothing and print mode ends with the command: both wait.
|
|
168
|
+
const background = !cmd.preview && ui.interactive;
|
|
169
|
+
const done = reviewJob(cmd, label, host, ui, {
|
|
170
|
+
deps: o.deps ?? REVIEW_DEPS,
|
|
171
|
+
settings,
|
|
172
|
+
stop: stop.signal,
|
|
173
|
+
}).catch((err) => fail(ui, err instanceof Error ? err.message : String(err)));
|
|
174
|
+
o.slot.hold(label, stop, done);
|
|
175
|
+
if (!background)
|
|
176
|
+
return done;
|
|
177
|
+
ui.notify(`QuickReview is reviewing ${label} in the background. Keep chatting: the result arrives here as a message.`, "info");
|
|
178
|
+
}
|
|
179
|
+
/** One /qcr-review, waited for to its end (its result shown, its post asked):
|
|
180
|
+
* the command's work without the background. */
|
|
181
|
+
export async function runReviewCommand(line, host, ui, deps = REVIEW_DEPS, settings = DEFAULT_SETTINGS) {
|
|
182
|
+
const slot = new ReviewSlot();
|
|
183
|
+
await startReviewCommand(line, host, ui, { slot, deps, settings });
|
|
184
|
+
await slot.idle();
|
|
185
|
+
}
|
|
186
|
+
/** The review itself, from the config to the result in the session. */
|
|
187
|
+
async function reviewJob(cmd, label, host, ui, o) {
|
|
188
|
+
const { deps } = o;
|
|
64
189
|
const env = { ...host.env, HOME: host.home };
|
|
65
190
|
const warn = (l) => ui.notify(l, "warning");
|
|
191
|
+
const preset = cmd.preset !== null ? REVIEW_PRESETS[cmd.preset] : null;
|
|
66
192
|
let root;
|
|
67
193
|
let cfg;
|
|
68
194
|
let ecosystem;
|
|
69
|
-
let configPath;
|
|
70
195
|
const profileHomes = homeProfilePlaces(env);
|
|
71
196
|
try {
|
|
72
197
|
root = deps.root();
|
|
73
198
|
const loaded = loadOneShotConfig({ root, env, warn });
|
|
74
|
-
|
|
75
|
-
({ cfg, ecosystem } = contextFrom(root, loaded, cmd.profile ?? loaded.cfg.review.profile, "", { homes: profileHomes }, warn));
|
|
199
|
+
({ cfg, ecosystem } = contextFrom(root, loaded, cmd.profile ?? loaded.cfg.review.profile, preset?.levers ?? "", { homes: profileHomes }, warn));
|
|
76
200
|
}
|
|
77
201
|
catch (err) {
|
|
78
|
-
return fail(err instanceof Error ? err.message : String(err));
|
|
202
|
+
return fail(ui, err instanceof Error ? err.message : String(err));
|
|
79
203
|
}
|
|
80
204
|
const state = stateHome(env);
|
|
81
205
|
const storeDir = join(state, "review");
|
|
82
206
|
const target = cmd.target;
|
|
83
|
-
let destinations = [];
|
|
84
|
-
// Posting goes through the one gate with the install's dry_run: a config
|
|
85
|
-
// that keeps dry_run on (the shipped defaults do) would record the post and
|
|
86
|
-
// send nothing, so posting is neither offered nor accepted, and that is said
|
|
87
|
-
// before the review is paid for.
|
|
88
|
-
const postBlocked = cfg.dry_run &&
|
|
89
|
-
(configPath === null
|
|
90
|
-
? "posting needs a qcr config with dry_run = false, and there is none: the shipped defaults keep dry_run on"
|
|
91
|
-
: `posting needs dry_run = false, and ${configPath} keeps dry_run on`);
|
|
92
207
|
if (!cmd.preview && target.kind !== "diff" && target.kind !== "pr" && !isGitWorkTree(host.cwd))
|
|
93
|
-
return fail(`${host.cwd} is not inside a git repository: /review reviews a git checkout`);
|
|
208
|
+
return fail(ui, `${host.cwd} is not inside a git repository: /qcr-review reviews a git checkout`);
|
|
94
209
|
// The providers whose logins ride into the run: the config's, routed by
|
|
95
210
|
// borrowLogin to the OpenAI login that exists.
|
|
96
211
|
let runProviders = reviewProviders(cfg);
|
|
212
|
+
const progress = {
|
|
213
|
+
label,
|
|
214
|
+
stage: cmd.preview ? "pricing" : "preparing",
|
|
215
|
+
startedAt: Date.now(),
|
|
216
|
+
};
|
|
217
|
+
const showStatus = () => ui.status(reviewStatusLine(progress, Date.now()));
|
|
97
218
|
if (!cmd.preview) {
|
|
98
219
|
// The borrowed login first: refreshed by the host when short, refused
|
|
99
220
|
// with a hint when pi has none for a provider the review runs on, before
|
|
100
|
-
//
|
|
221
|
+
// anything is paid for.
|
|
101
222
|
const borrowed = await borrowLogin({
|
|
102
223
|
providers: runProviders,
|
|
103
224
|
host: host.auth,
|
|
@@ -105,41 +226,16 @@ export async function runReviewCommand(line, host, ui, deps = REVIEW_DEPS) {
|
|
|
105
226
|
marginMs: PI_REFRESH_MARGIN_MS,
|
|
106
227
|
});
|
|
107
228
|
if (!borrowed.ok)
|
|
108
|
-
return fail(borrowed.error);
|
|
229
|
+
return fail(ui, borrowed.error);
|
|
109
230
|
runProviders = borrowed.providers;
|
|
110
|
-
if (postBlocked && cmd.to.includes("pr"))
|
|
111
|
-
return fail(`${postBlocked}; the review was not started.`);
|
|
112
|
-
const plan = planDestinations({
|
|
113
|
-
explicit: cmd.to,
|
|
114
|
-
json: cmd.json,
|
|
115
|
-
interactive: ui.interactive,
|
|
116
|
-
saved: loadDefaultDestinationsIn(storeDir, host.cwd),
|
|
117
|
-
target: { pr: target.kind === "pr" && !postBlocked },
|
|
118
|
-
surface: "session",
|
|
119
|
-
});
|
|
120
|
-
if (plan.kind === "ask" && target.kind === "pr" && postBlocked)
|
|
121
|
-
ui.notify(`${postBlocked}: the review is not offered for posting.`, "info");
|
|
122
|
-
if (plan.kind === "fixed")
|
|
123
|
-
destinations = plan.destinations;
|
|
124
|
-
else {
|
|
125
|
-
const labels = plan.menu.map((m) => m.label);
|
|
126
|
-
const picked = await ui.select("Where should the review go?", labels, host.shutdown);
|
|
127
|
-
const item = plan.menu.find((m) => m.label === picked);
|
|
128
|
-
if (item === undefined)
|
|
129
|
-
return ui.notify("review cancelled", "info");
|
|
130
|
-
destinations = item.pick.destinations;
|
|
131
|
-
if (item.pick.remember) {
|
|
132
|
-
const kept = saveDefaultDestinationsIn(storeDir, host.cwd, destinations);
|
|
133
|
-
ui.notify(kept
|
|
134
|
-
? "kept as this repo's default: pass --to to choose otherwise"
|
|
135
|
-
: `this choice could not be kept as a default: ${host.cwd} is not in a git repo`, kept ? "info" : "warning");
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
231
|
}
|
|
232
|
+
// The result is shown here and kept as files; JSON alone with --json. A
|
|
233
|
+
// post is never a destination: the posting rule offers it after the review.
|
|
234
|
+
const destinations = cmd.preview ? [] : cmd.json ? ["json"] : ["terminal", "file"];
|
|
139
235
|
// A turn that ignores its abort and dispose cannot be killed here: the
|
|
140
236
|
// process is the person's pi. The budget's last resort (and a stop that does
|
|
141
|
-
// not end the run within its grace) abandons the run instead, so
|
|
142
|
-
//
|
|
237
|
+
// not end the run within its grace) abandons the run instead, so the
|
|
238
|
+
// command's work ends and pi keeps running.
|
|
143
239
|
let abandon = () => { };
|
|
144
240
|
const abandoned = new Promise((_, reject) => {
|
|
145
241
|
abandon = (why) => reject(new Error(why));
|
|
@@ -151,13 +247,14 @@ export async function runReviewCommand(line, host, ui, deps = REVIEW_DEPS) {
|
|
|
151
247
|
graceTimer = setTimeout(() => abandon("the review did not stop in time: it was abandoned, and pi keeps running"), STOP_GRACE_MS);
|
|
152
248
|
graceTimer.unref?.();
|
|
153
249
|
}, { once: true });
|
|
154
|
-
const
|
|
155
|
-
|
|
156
|
-
const
|
|
157
|
-
if (
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
250
|
+
const onStop = () => stop.abort();
|
|
251
|
+
// `/qcr-review --stop` and the session's end both stop it.
|
|
252
|
+
for (const s of [o.stop, host.shutdown]) {
|
|
253
|
+
if (s.aborted)
|
|
254
|
+
stop.abort();
|
|
255
|
+
else
|
|
256
|
+
s.addEventListener("abort", onStop, { once: true });
|
|
257
|
+
}
|
|
161
258
|
let runDir = null;
|
|
162
259
|
const logFile = join(storeDir, "plugin.log");
|
|
163
260
|
const log = (l) => {
|
|
@@ -169,6 +266,19 @@ export async function runReviewCommand(line, host, ui, deps = REVIEW_DEPS) {
|
|
|
169
266
|
// a diagnostics line that cannot be kept never costs the review
|
|
170
267
|
}
|
|
171
268
|
};
|
|
269
|
+
// The review as the post question showed it: it is not shown twice.
|
|
270
|
+
let shownInOffer = false;
|
|
271
|
+
const offerPost = postOffer(o.settings.posting, ui, {
|
|
272
|
+
onAsk: () => {
|
|
273
|
+
shownInOffer = true;
|
|
274
|
+
progress.stage = "asking";
|
|
275
|
+
showStatus();
|
|
276
|
+
},
|
|
277
|
+
onPost: () => {
|
|
278
|
+
progress.stage = "posting";
|
|
279
|
+
showStatus();
|
|
280
|
+
},
|
|
281
|
+
});
|
|
172
282
|
const opts = {
|
|
173
283
|
repoDir: host.cwd,
|
|
174
284
|
root,
|
|
@@ -205,7 +315,7 @@ export async function runReviewCommand(line, host, ui, deps = REVIEW_DEPS) {
|
|
|
205
315
|
}),
|
|
206
316
|
memory: null,
|
|
207
317
|
destinations,
|
|
208
|
-
full:
|
|
318
|
+
full: preset?.full ?? false,
|
|
209
319
|
limits: {
|
|
210
320
|
route: "laptop",
|
|
211
321
|
...(cmd.limitUsd !== undefined ? { limitUsd: cmd.limitUsd } : {}),
|
|
@@ -213,16 +323,31 @@ export async function runReviewCommand(line, host, ui, deps = REVIEW_DEPS) {
|
|
|
213
323
|
},
|
|
214
324
|
};
|
|
215
325
|
const io = {
|
|
216
|
-
confirm: ui.interactive ? (q,
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
326
|
+
confirm: ui.interactive ? (q, a) => ui.confirm("QuickReview", q, a?.signal) : null,
|
|
327
|
+
// the preview's lines and the memory notice: the status line carries the
|
|
328
|
+
// plan and the price, so these go to the run's log
|
|
329
|
+
progress: log,
|
|
330
|
+
started: (s) => {
|
|
331
|
+
progress.stage = "running";
|
|
332
|
+
progress.lenses = s.lenses.length;
|
|
333
|
+
progress.estimateUsd = s.estimateUsd;
|
|
334
|
+
progress.capUsd = s.capUsd;
|
|
335
|
+
showStatus();
|
|
336
|
+
},
|
|
337
|
+
...(cmd.preview || offerPost === undefined ? {} : { offerPost }),
|
|
221
338
|
warn,
|
|
222
339
|
log,
|
|
223
340
|
signal: stop.signal,
|
|
224
341
|
};
|
|
225
|
-
|
|
342
|
+
// Each second: the time, and once the round runs, what its lenses are doing.
|
|
343
|
+
const tick = () => {
|
|
344
|
+
if (runDir !== null && progress.stage === "running")
|
|
345
|
+
progress.running = liveLensLines(runDir, Date.now());
|
|
346
|
+
showStatus();
|
|
347
|
+
};
|
|
348
|
+
showStatus();
|
|
349
|
+
const ticker = setInterval(tick, 1000);
|
|
350
|
+
ticker.unref?.();
|
|
226
351
|
let result;
|
|
227
352
|
try {
|
|
228
353
|
result = await Promise.race([
|
|
@@ -231,15 +356,44 @@ export async function runReviewCommand(line, host, ui, deps = REVIEW_DEPS) {
|
|
|
231
356
|
]);
|
|
232
357
|
}
|
|
233
358
|
catch (err) {
|
|
234
|
-
return fail(err instanceof Error ? err.message : String(err));
|
|
359
|
+
return fail(ui, err instanceof Error ? err.message : String(err));
|
|
235
360
|
}
|
|
236
361
|
finally {
|
|
362
|
+
clearInterval(ticker);
|
|
237
363
|
clearTimeout(graceTimer);
|
|
238
|
-
|
|
239
|
-
|
|
364
|
+
for (const s of [o.stop, host.shutdown])
|
|
365
|
+
s.removeEventListener("abort", onStop);
|
|
240
366
|
ui.status(undefined);
|
|
241
367
|
}
|
|
242
|
-
deliver(result, { cmd, destinations, runDir, ui });
|
|
368
|
+
deliver(result, { cmd, destinations, runDir, ui, shownInOffer });
|
|
369
|
+
}
|
|
370
|
+
/** The post question the posting rule makes of a finished PR review
|
|
371
|
+
* (`ReviewIo.offerPost`): asked with No first, never asked, or answered yes.
|
|
372
|
+
* Nobody to ask (print mode) is a no. */
|
|
373
|
+
function postOffer(rule, ui, on) {
|
|
374
|
+
if (rule === "never")
|
|
375
|
+
return undefined;
|
|
376
|
+
if (rule === "always")
|
|
377
|
+
return async (offer) => {
|
|
378
|
+
ui.notify(`posting the review to PR #${offer.pr}, as your posting rule says`, "info");
|
|
379
|
+
on.onPost();
|
|
380
|
+
return true;
|
|
381
|
+
};
|
|
382
|
+
if (!ui.interactive)
|
|
383
|
+
return undefined;
|
|
384
|
+
return async (offer, a) => {
|
|
385
|
+
on.onAsk();
|
|
386
|
+
// the review first, so the question is about something the person has read
|
|
387
|
+
ui.show(offer.markdown, { pr: offer.pr, repo: offer.repo });
|
|
388
|
+
const yes = postAnswer(offer.dryRun);
|
|
389
|
+
const picked = await ui.select(`Post this review to PR #${offer.pr} (${offer.repo}) on GitHub as a comment-only review?`, [KEEP_IT_HERE, yes], a?.signal);
|
|
390
|
+
if (picked !== yes) {
|
|
391
|
+
ui.notify(`the review of PR #${offer.pr} stays here: nothing was posted`, "info");
|
|
392
|
+
return false;
|
|
393
|
+
}
|
|
394
|
+
on.onPost();
|
|
395
|
+
return true;
|
|
396
|
+
};
|
|
243
397
|
}
|
|
244
398
|
/** Is `dir` inside a git work tree? */
|
|
245
399
|
function isGitWorkTree(dir) {
|
|
@@ -292,11 +446,23 @@ function deliver(r, o) {
|
|
|
292
446
|
const savedNote = saved.length > 0 ? `\n\nSaved: ${saved.map((p) => `\`${p}\``).join(", ")}` : "";
|
|
293
447
|
if (dests.has("json"))
|
|
294
448
|
ui.show(fence("json", json), r.data);
|
|
295
|
-
if (o.
|
|
449
|
+
if (o.shownInOffer) {
|
|
450
|
+
if (saved.length > 0)
|
|
451
|
+
ui.notify(`review saved: ${saved.join(", ")}`, "info");
|
|
452
|
+
}
|
|
453
|
+
else if (o.cmd.preview || dests.has("terminal") || (!dests.has("json") && r.markdown === null))
|
|
296
454
|
ui.show(human + savedNote, r.data);
|
|
297
455
|
else if (dests.has("file"))
|
|
298
456
|
ui.notify(`review saved: ${saved.join(", ")}`, "info");
|
|
299
|
-
|
|
300
|
-
|
|
457
|
+
// What the post did, the core's own line (sent, recorded in a dry run, or
|
|
458
|
+
// refused): the last line of its text.
|
|
459
|
+
const post = r.data["post"];
|
|
460
|
+
if (typeof post === "object" && post !== null) {
|
|
461
|
+
const line = r.text.trimEnd().split("\n").pop() ?? "";
|
|
462
|
+
const ok = post.ok === true;
|
|
463
|
+
ui.notify(line, ok ? "info" : "error");
|
|
464
|
+
}
|
|
465
|
+
else if (r.exitCode !== 0)
|
|
466
|
+
ui.notify(r.text.split("\n").find((l) => l.trim() !== "") ?? "the review did not finish", "error");
|
|
301
467
|
}
|
|
302
468
|
//# sourceMappingURL=review.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/plugin/review.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/plugin/review.ts"],"names":[],"mappings":"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"}
|