smart-commit-copilot-cli 0.1.8 → 0.1.10
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 +31 -0
- package/docs/publish.md +1 -1
- package/docs/releases/0.1.10-draft.md +61 -0
- package/docs/releases/0.1.9-draft.md +69 -0
- package/out/cli.js +22 -2
- package/out/cli.js.map +1 -1
- package/out/cliApp.js +47 -6
- package/out/cliApp.js.map +1 -1
- package/out/output.js +1 -4
- package/out/output.js.map +1 -1
- package/out/review/detailLocator.js +268 -0
- package/out/review/detailLocator.js.map +1 -0
- package/out/review/index.js +4 -3
- package/out/review/index.js.map +1 -1
- package/out/review/parser.js +14 -1
- package/out/review/parser.js.map +1 -1
- package/out/spinner.js +37 -0
- package/out/spinner.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,37 @@ The format is based on Keep a Changelog, and this project follows Semantic Versi
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.1.10] - 2026-05-22
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- TTY spinner on stderr for long-running async commands: `bridge`, `report generate`, and `pull-request create`
|
|
14
|
+
- structured `[PR][INFO]` and `[PR][WARN]` log lines for `pull-request create` and bridge auto PR/MR creation outcomes
|
|
15
|
+
- regression coverage for spinner TTY behavior and pull-request create log formatting
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- `pull-request create` now routes through the async CLI path so network and LLM work no longer blocks the synchronous command dispatcher
|
|
20
|
+
- publish guidance now points to the `0.1.10` release draft during pre-publish review
|
|
21
|
+
|
|
22
|
+
## [0.1.9] - 2026-05-22
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
|
|
26
|
+
- review detail locator to align review findings with diff file paths and line numbers via code snippets, message prefixes, and added-line matching
|
|
27
|
+
- localized report time window `displayRangeLabel` for `en`, `zh-cn`, and `zh-tw` output languages
|
|
28
|
+
- review response parser now extracts JSON from fenced code blocks and surrounding object text when model output is not pure JSON
|
|
29
|
+
- regression coverage for detail locator matching, fenced JSON review parsing, localized report windows, and full secret redaction
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
|
|
33
|
+
- config secret redaction now fully replaces `connection.apiKey` and `pullRequest.authToken` with `[REDACTED]` instead of partial masking that could leak trailing characters
|
|
34
|
+
- publish guidance now points to the `0.1.9` release draft during pre-publish review
|
|
35
|
+
|
|
36
|
+
### Security
|
|
37
|
+
|
|
38
|
+
- rendered config output no longer exposes partial API keys or auth tokens after redaction
|
|
39
|
+
|
|
9
40
|
## [0.1.8] - 2026-05-21
|
|
10
41
|
|
|
11
42
|
### Added
|
package/docs/publish.md
CHANGED
|
@@ -21,7 +21,7 @@ Current package name:
|
|
|
21
21
|
3. Run `npm run pack:dry-run`
|
|
22
22
|
4. Review [`CHANGELOG.md`](../CHANGELOG.md)
|
|
23
23
|
5. Review [`docs/release-checklist.md`](./release-checklist.md)
|
|
24
|
-
6. Review the matching release draft in [`docs/releases/0.1.
|
|
24
|
+
6. Review the matching release draft in [`docs/releases/0.1.10-draft.md`](./releases/0.1.10-draft.md)
|
|
25
25
|
|
|
26
26
|
## Recommended Release Order
|
|
27
27
|
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# `smart-commit-copilot-cli` 0.1.10 Draft Release Notes
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
`smart-commit-copilot-cli` 0.1.10 improves the interactive experience for long-running commands and completes async routing for pull-request creation.
|
|
6
|
+
|
|
7
|
+
This release focuses on making `bridge`, `report generate`, and `pull-request create` feel responsive in terminals, and on surfacing clearer PR/MR status logs during create and bridge auto-create flows.
|
|
8
|
+
|
|
9
|
+
## Highlights
|
|
10
|
+
|
|
11
|
+
- async CLI entry now includes `pull-request create`, matching `bridge` and `report generate`
|
|
12
|
+
- TTY spinner feedback on stderr while async commands are running
|
|
13
|
+
- structured `[PR][INFO]` and `[PR][WARN]` logs for created, existing, dry-run, and failed PR/MR outcomes
|
|
14
|
+
|
|
15
|
+
## Why This Release Matters
|
|
16
|
+
|
|
17
|
+
This version closes a routing gap introduced in `0.1.8` and improves day-to-day terminal UX:
|
|
18
|
+
|
|
19
|
+
- `pull-request create` now uses the same async execution path as other network-backed commands instead of failing through the synchronous dispatcher
|
|
20
|
+
- operators get visible progress in interactive terminals without polluting JSON stdout output
|
|
21
|
+
- PR/MR creation results are easier to scan in logs and automation transcripts
|
|
22
|
+
|
|
23
|
+
## Notable Behavior Updates
|
|
24
|
+
|
|
25
|
+
### Async command routing
|
|
26
|
+
|
|
27
|
+
- `cli.ts` now treats `pull-request create` as an async command alongside `bridge` and `report generate`
|
|
28
|
+
- synchronous `runCli` continues to reject async-only commands with an explicit error, preserving the existing contract boundary
|
|
29
|
+
|
|
30
|
+
### TTY spinner
|
|
31
|
+
|
|
32
|
+
- when stderr is a TTY, the CLI shows a lightweight spinner while async commands run
|
|
33
|
+
- spinner messages are command-specific, for example `smart-commit bridge running...`
|
|
34
|
+
- non-TTY streams skip spinner output so JSON and piped automation flows stay clean
|
|
35
|
+
|
|
36
|
+
### PR/MR logging
|
|
37
|
+
|
|
38
|
+
- `pull-request create` emits `[PR][INFO]` lines for `created`, `existing`, and dry-run `ready` outcomes
|
|
39
|
+
- bridge auto-create emits matching `[PR][INFO]` and `[PR][WARN]` lines through a shared formatter
|
|
40
|
+
- GitLab merge requests use `merge request` wording; GitHub uses `pull request`
|
|
41
|
+
|
|
42
|
+
## Verification Coverage Added Or Strengthened
|
|
43
|
+
|
|
44
|
+
The project now has stronger regression protection for:
|
|
45
|
+
|
|
46
|
+
1. spinner rendering and clearing on TTY streams, with no writes on non-TTY streams
|
|
47
|
+
2. pull-request create info and warning log formatting across created, existing, and dry-run states
|
|
48
|
+
3. bridge pull-request creation log formatting for created, existing, error, and warning paths
|
|
49
|
+
|
|
50
|
+
## Suggested Upgrade Path
|
|
51
|
+
|
|
52
|
+
1. update to `0.1.10`
|
|
53
|
+
2. run `npm test`
|
|
54
|
+
3. run `npm run smoke:test`
|
|
55
|
+
4. run `npm run pack:dry-run`
|
|
56
|
+
5. publish only after all three checks pass
|
|
57
|
+
|
|
58
|
+
## Known Follow-Up Areas
|
|
59
|
+
|
|
60
|
+
- optional `--no-spinner` flag if teams need to disable TTY feedback in scripted interactive shells
|
|
61
|
+
- broader real-provider validation for pull-request create logging in CI environments that mix TTY and non-TTY stderr
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# `smart-commit-copilot-cli` 0.1.9 Draft Release Notes
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
`smart-commit-copilot-cli` 0.1.9 improves review result quality, report presentation, and secret handling for automation consumers.
|
|
6
|
+
|
|
7
|
+
This release focuses on making review findings easier to act on, accepting more LLM response formats, localizing report time window labels, and fully redacting secrets in rendered config output.
|
|
8
|
+
|
|
9
|
+
## Highlights
|
|
10
|
+
|
|
11
|
+
- review findings are now aligned with diff file paths and line numbers via a new detail locator
|
|
12
|
+
- review JSON parsing accepts fenced code blocks and JSON embedded in surrounding text
|
|
13
|
+
- report `displayRangeLabel` is localized for `en`, `zh-cn`, and `zh-tw`
|
|
14
|
+
- config secret redaction now uses full `[REDACTED]` replacement instead of partial masking
|
|
15
|
+
|
|
16
|
+
## Why This Release Matters
|
|
17
|
+
|
|
18
|
+
This version closes several quality gaps for teams using review and reporting in hooks or agents:
|
|
19
|
+
|
|
20
|
+
- review details are more likely to include actionable file and line metadata even when the model only returns message text or inline code snippets
|
|
21
|
+
- report headings and period labels read naturally in the configured output language
|
|
22
|
+
- rendered config output no longer leaks trailing characters from API keys or auth tokens
|
|
23
|
+
|
|
24
|
+
## Notable Behavior Updates
|
|
25
|
+
|
|
26
|
+
### Review detail locator
|
|
27
|
+
|
|
28
|
+
- after parsing a review response, the CLI attempts to map each detail to added diff lines using message prefixes, fenced code snippets, and fuzzy content matching
|
|
29
|
+
- when a line match is found, `filePath` and `lineNumber` are populated and the message prefix is normalized
|
|
30
|
+
- when only a file can be inferred, `filePath` is set without forcing a line number
|
|
31
|
+
|
|
32
|
+
### Review response parsing
|
|
33
|
+
|
|
34
|
+
- `parseReviewResponse` now extracts JSON from ```json fenced blocks when present
|
|
35
|
+
- if no fenced block is found, it falls back to the first `{ ... }` object span in the raw text
|
|
36
|
+
- this reduces correction retries when providers wrap JSON in markdown
|
|
37
|
+
|
|
38
|
+
### Report time window labels
|
|
39
|
+
|
|
40
|
+
- `resolveReportTimeWindow` accepts an output `language` and localizes `displayRangeLabel`
|
|
41
|
+
- Chinese labels use natural month, quarter, and year phrasing; English labels use month names and `Qn` quarter notation
|
|
42
|
+
- report aggregation passes the configured reporting language through to time window resolution
|
|
43
|
+
|
|
44
|
+
### Secret redaction
|
|
45
|
+
|
|
46
|
+
- `redactCliConfig` now replaces non-empty `connection.apiKey` and `pullRequest.authToken` values with `[REDACTED]`
|
|
47
|
+
- partial masking such as `sk-****1234` is no longer used in rendered config output
|
|
48
|
+
|
|
49
|
+
## Verification Coverage Added Or Strengthened
|
|
50
|
+
|
|
51
|
+
The project now has stronger regression protection for:
|
|
52
|
+
|
|
53
|
+
1. detail locator file and line matching against unified diffs
|
|
54
|
+
2. fenced JSON and embedded-object review response parsing
|
|
55
|
+
3. localized report window labels for English and Chinese output languages
|
|
56
|
+
4. full secret redaction without leaking original token characters in JSON output
|
|
57
|
+
|
|
58
|
+
## Suggested Upgrade Path
|
|
59
|
+
|
|
60
|
+
1. update to `0.1.9`
|
|
61
|
+
2. run `npm test`
|
|
62
|
+
3. run `npm run smoke:test`
|
|
63
|
+
4. run `npm run pack:dry-run`
|
|
64
|
+
5. publish only after all three checks pass
|
|
65
|
+
|
|
66
|
+
## Known Follow-Up Areas
|
|
67
|
+
|
|
68
|
+
- broader real-provider validation for review detail locator edge cases on large or heavily chunked diffs
|
|
69
|
+
- optional Traditional Chinese label variants if teams need locale-specific wording beyond the current shared Chinese formatter
|
package/out/cli.js
CHANGED
|
@@ -2,11 +2,19 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
const cliApp_1 = require("./cliApp");
|
|
5
|
+
const spinner_1 = require("./spinner");
|
|
5
6
|
async function main() {
|
|
6
7
|
const argv = process.argv.slice(2);
|
|
7
8
|
const command = (0, cliApp_1.parseCliCommand)(argv).kind;
|
|
8
|
-
const useAsync = command === "bridge" || command === "report-generate";
|
|
9
|
-
const
|
|
9
|
+
const useAsync = command === "bridge" || command === "report-generate" || command === "pull-request-create";
|
|
10
|
+
const spinner = useAsync ? (0, spinner_1.startSpinner)(formatSpinnerMessage(command), process.stderr) : undefined;
|
|
11
|
+
let result;
|
|
12
|
+
try {
|
|
13
|
+
result = useAsync ? await (0, cliApp_1.runCliAsync)(argv, process.env) : (0, cliApp_1.runCli)(argv, process.env);
|
|
14
|
+
}
|
|
15
|
+
finally {
|
|
16
|
+
spinner?.stop();
|
|
17
|
+
}
|
|
10
18
|
if (result.stdout) {
|
|
11
19
|
process.stdout.write(result.stdout);
|
|
12
20
|
}
|
|
@@ -16,4 +24,16 @@ async function main() {
|
|
|
16
24
|
process.exitCode = result.exitCode;
|
|
17
25
|
}
|
|
18
26
|
void main();
|
|
27
|
+
function formatSpinnerMessage(command) {
|
|
28
|
+
if (command === "bridge") {
|
|
29
|
+
return "smart-commit bridge running...";
|
|
30
|
+
}
|
|
31
|
+
if (command === "pull-request-create") {
|
|
32
|
+
return "smart-commit pull-request create running...";
|
|
33
|
+
}
|
|
34
|
+
if (command === "report-generate") {
|
|
35
|
+
return "smart-commit report generate running...";
|
|
36
|
+
}
|
|
37
|
+
return "smart-commit running...";
|
|
38
|
+
}
|
|
19
39
|
//# sourceMappingURL=cli.js.map
|
package/out/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,qCAAgE;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,qCAAgE;AAChE,uCAAyC;AAEzC,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAA,wBAAe,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IAC3C,MAAM,QAAQ,GAAG,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,iBAAiB,IAAI,OAAO,KAAK,qBAAqB,CAAC;IAC5G,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAA,sBAAY,EAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnG,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAA,oBAAW,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,eAAM,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACvF,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACrC,CAAC;AAED,KAAK,IAAI,EAAE,CAAC;AAEZ,SAAS,oBAAoB,CAAC,OAAmD;IAC/E,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,gCAAgC,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,KAAK,qBAAqB,EAAE,CAAC;QACtC,OAAO,6CAA6C,CAAC;IACvD,CAAC;IACD,IAAI,OAAO,KAAK,iBAAiB,EAAE,CAAC;QAClC,OAAO,yCAAyC,CAAC;IACnD,CAAC;IAED,OAAO,yBAAyB,CAAC;AACnC,CAAC"}
|
package/out/cliApp.js
CHANGED
|
@@ -113,9 +113,7 @@ async function runCliAsync(argv, env = process.env) {
|
|
|
113
113
|
const result = await (0, pullRequest_1.runPullRequestCreateCommand)(command.flags, env);
|
|
114
114
|
const outputFormat = (0, renderOutput_1.resolveRequestedOutputFormat)(command.flags, env, result.payload.config.output.format);
|
|
115
115
|
let stderr = "";
|
|
116
|
-
|
|
117
|
-
stderr += result.payload.warnings.map((warning) => (0, logger_1.formatLogLine)("warn", warning)).join("");
|
|
118
|
-
}
|
|
116
|
+
stderr += formatPullRequestCreateLogs(result.payload);
|
|
119
117
|
if (result.payload.status === "error" && result.payload.error) {
|
|
120
118
|
stderr += `${result.payload.error.message}\n`;
|
|
121
119
|
}
|
|
@@ -131,9 +129,7 @@ async function runCliAsync(argv, env = process.env) {
|
|
|
131
129
|
if (result.payload.stagedChangeSummary.error && (0, logger_1.shouldLog)(result.payload.config.output.logLevel, "warn")) {
|
|
132
130
|
stderr += (0, logger_1.formatLogLine)("warn", `Staged change summary generation failed: ${result.payload.stagedChangeSummary.error}`);
|
|
133
131
|
}
|
|
134
|
-
|
|
135
|
-
stderr += (0, logger_1.formatLogLine)("warn", `Pull request creation failed: ${result.payload.pullRequestCreation.error}`);
|
|
136
|
-
}
|
|
132
|
+
stderr += formatBridgePullRequestCreationLogs(result.payload.pullRequestCreation, result.payload.config.output.logLevel);
|
|
137
133
|
if ((0, logger_1.shouldLog)(result.payload.config.output.logLevel, "debug")) {
|
|
138
134
|
stderr += (0, logger_1.formatLogLine)("debug", `bridge completed with status=${result.payload.status}, phase=${result.payload.phase}, output=${outputFormat}.`);
|
|
139
135
|
}
|
|
@@ -155,6 +151,51 @@ async function runCliAsync(argv, env = process.env) {
|
|
|
155
151
|
};
|
|
156
152
|
}
|
|
157
153
|
}
|
|
154
|
+
function formatPullRequestCreateLogs(payload) {
|
|
155
|
+
const logLevel = payload.config.output.logLevel;
|
|
156
|
+
let stderr = "";
|
|
157
|
+
if (payload.status === "created" && (0, logger_1.shouldLog)(logLevel, "info")) {
|
|
158
|
+
stderr += (0, logger_1.formatLogLine)("info", `[PR][INFO] Created ${formatPullRequestKind(payload.platform)} from ${payload.sourceBranch ?? "(unknown)"} to ${payload.targetBranch ?? "(unknown)"}: ${payload.url ?? "(no url returned)"}`);
|
|
159
|
+
}
|
|
160
|
+
if (payload.status === "existing" && (0, logger_1.shouldLog)(logLevel, "info")) {
|
|
161
|
+
stderr += (0, logger_1.formatLogLine)("info", `[PR][INFO] Open ${formatPullRequestKind(payload.platform)} already exists for ${payload.sourceBranch ?? "(unknown)"} -> ${payload.targetBranch ?? "(unknown)"}. Skipping creation.`);
|
|
162
|
+
if (payload.title || payload.url) {
|
|
163
|
+
stderr += (0, logger_1.formatLogLine)("info", `[PR][INFO] Existing: ${payload.title ?? "(untitled)"} - ${payload.url ?? "(no url returned)"}`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (payload.status === "ready" && (0, logger_1.shouldLog)(logLevel, "info")) {
|
|
167
|
+
stderr += (0, logger_1.formatLogLine)("info", `[PR][INFO] ${formatPullRequestKind(payload.platform)} content is ready for ${payload.sourceBranch ?? "(unknown)"} -> ${payload.targetBranch ?? "(unknown)"}; dry-run did not create it.`);
|
|
168
|
+
}
|
|
169
|
+
if (payload.warnings.length > 0 && (0, logger_1.shouldLog)(logLevel, "warn")) {
|
|
170
|
+
stderr += payload.warnings.map((warning) => (0, logger_1.formatLogLine)("warn", `[PR][WARN] ${warning}`)).join("");
|
|
171
|
+
}
|
|
172
|
+
return stderr;
|
|
173
|
+
}
|
|
174
|
+
function formatBridgePullRequestCreationLogs(payload, logLevel) {
|
|
175
|
+
let stderr = "";
|
|
176
|
+
if (!payload.enabled || payload.status === "skipped") {
|
|
177
|
+
return stderr;
|
|
178
|
+
}
|
|
179
|
+
if (payload.status === "created" && (0, logger_1.shouldLog)(logLevel, "info")) {
|
|
180
|
+
stderr += (0, logger_1.formatLogLine)("info", `[PR][INFO] Created ${formatPullRequestKind(payload.platform)} from ${payload.sourceBranch ?? "(unknown)"} to ${payload.targetBranch ?? "(unknown)"}: ${payload.url ?? "(no url returned)"}`);
|
|
181
|
+
}
|
|
182
|
+
if (payload.status === "existing" && (0, logger_1.shouldLog)(logLevel, "info")) {
|
|
183
|
+
stderr += (0, logger_1.formatLogLine)("info", `[PR][INFO] Open ${formatPullRequestKind(payload.platform)} already exists for ${payload.sourceBranch ?? "(unknown)"} -> ${payload.targetBranch ?? "(unknown)"}. Skipping creation.`);
|
|
184
|
+
if (payload.title || payload.url) {
|
|
185
|
+
stderr += (0, logger_1.formatLogLine)("info", `[PR][INFO] Existing: ${payload.title ?? "(untitled)"} - ${payload.url ?? "(no url returned)"}`);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
if (payload.status === "error" && payload.error && (0, logger_1.shouldLog)(logLevel, "warn")) {
|
|
189
|
+
stderr += (0, logger_1.formatLogLine)("warn", `[PR][WARN] Pull request creation failed: ${payload.error}`);
|
|
190
|
+
}
|
|
191
|
+
if (payload.warnings.length > 0 && (0, logger_1.shouldLog)(logLevel, "warn")) {
|
|
192
|
+
stderr += payload.warnings.map((warning) => (0, logger_1.formatLogLine)("warn", `[PR][WARN] ${warning}`)).join("");
|
|
193
|
+
}
|
|
194
|
+
return stderr;
|
|
195
|
+
}
|
|
196
|
+
function formatPullRequestKind(platform) {
|
|
197
|
+
return platform === "gitlab" ? "merge request" : "pull request";
|
|
198
|
+
}
|
|
158
199
|
function parseCommand(argv) {
|
|
159
200
|
const positional = argv.filter((token) => !token.startsWith("--"));
|
|
160
201
|
if ((argv.length === 1 && (argv[0] === "--version" || argv[0] === "-v")) ||
|
package/out/cliApp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliApp.js","sourceRoot":"","sources":["../src/cliApp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cliApp.js","sourceRoot":"","sources":["../src/cliApp.ts"],"names":[],"mappings":";;AA6BA,wBA8EC;AAED,kCAiGC;AA2JD,0CAEC;AA3WD,8CAA6E;AAE7E,wDAAqE;AACrE,8CAA6D;AAE7D,qCAA4C;AAC5C,2CAIqB;AACrB,qCAAoD;AACpD,qCAA2C;AAC3C,iDAMwB;AAExB,MAAM,gCAAgC,GAAI,OAAO,CAAC,iBAAiB,CAA0B,CAAC,OAAO,IAAI,OAAO,CAAC;AAQjH,SAAgB,MAAM,CAAC,IAAuB,EAAE,MAAyB,OAAO,CAAC,GAAG;IAClF,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,OAAO;gBACL,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,aAAa,EAAE;gBACvB,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO;gBACL,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,GAAG,gCAAgC,IAAI;gBAC/C,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAA,yBAAgB,EAAC;gBAChC,IAAI,EAAE,OAAO,CAAC,KAAK;gBACnB,GAAG;gBACH,QAAQ,EAAE,IAAI;gBACd,iBAAiB,EAAE,KAAK;aACzB,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG;gBACd,aAAa,EAAE,2CAA+B;gBAC9C,MAAM,EAAE,IAAa;gBACrB,OAAO,EAAE,gBAAyB;gBAClC,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,MAAM,EAAE,IAAA,wBAAe,EAAC,QAAQ,CAAC,MAAM,CAAC;aACzC,CAAC;YAEF,OAAO;gBACL,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,IAAA,wCAAyB,EAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;gBACzE,MAAM,EAAE,IAAA,kBAAS,EAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC;oBACzD,CAAC,CAAC,IAAA,sBAAa,EAAC,OAAO,EAAE,kDAAkD,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;oBAC5G,CAAC,CAAC,EAAE;aACP,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAC7F,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;QACjG,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACpC,OAAO;gBACL,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAA,6BAAiB,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;gBACzE,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,+BAAsB;YAChC,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,oBAAoB,OAAO,CAAC,GAAG,KAAK,aAAa,EAAE,EAAE;SAC9D,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,GAAG,OAAO,IAAI;SACvB,CAAC;IACJ,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,IAAuB,EACvB,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBACjF,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAwB,EAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAClE,MAAM,YAAY,GAAG,IAAA,2CAA4B,EAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3G,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,IAAA,kBAAS,EAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;gBACnG,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,sBAAa,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9F,CAAC;YAED,IAAI,IAAA,kBAAS,EAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,IAAA,sBAAa,EACrB,OAAO,EACP,yCAAyC,MAAM,CAAC,OAAO,CAAC,MAAM,gBAAgB,MAAM,CAAC,OAAO,CAAC,UAAU,YAAY,YAAY,GAAG,CACnI,CAAC;YACJ,CAAC;YAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC;YAChD,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,IAAA,iCAAkB,EAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC;gBACxD,MAAM;aACP,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,IAAA,yCAA2B,EAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACrE,MAAM,YAAY,GAAG,IAAA,2CAA4B,EAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3G,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,MAAM,IAAI,2BAA2B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAEtD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC;YAChD,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,IAAA,4CAA6B,EAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC;gBACnE,MAAM;aACP,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAgB,EAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,IAAA,2CAA4B,EAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3G,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,IAAI,IAAA,kBAAS,EAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YACzG,MAAM,IAAI,IAAA,sBAAa,EACrB,MAAM,EACN,4CAA4C,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,CACvF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,mCAAmC,CAC3C,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAClC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CACtC,CAAC;QAEF,IAAI,IAAA,kBAAS,EAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,IAAA,sBAAa,EACrB,OAAO,EACP,gCAAgC,MAAM,CAAC,OAAO,CAAC,MAAM,WAAW,MAAM,CAAC,OAAO,CAAC,KAAK,YAAY,YAAY,GAAG,CAChH,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC;QAChD,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,IAAA,iCAAkB,EAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC;YACxD,MAAM;SACP,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,GAAG,OAAO,IAAI;SACvB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,OAAgC;IACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;IAChD,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,IAAA,kBAAS,EAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,IAAA,sBAAa,EACrB,MAAM,EACN,sBAAsB,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,OAAO,CAAC,YAAY,IAAI,WAAW,OAAO,OAAO,CAAC,YAAY,IAAI,WAAW,KAAK,OAAO,CAAC,GAAG,IAAI,mBAAmB,EAAE,CAC7L,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,IAAA,kBAAS,EAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,IAAA,sBAAa,EACrB,MAAM,EACN,mBAAmB,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,OAAO,CAAC,YAAY,IAAI,WAAW,OAAO,OAAO,CAAC,YAAY,IAAI,WAAW,sBAAsB,CACrL,CAAC;QACF,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACjC,MAAM,IAAI,IAAA,sBAAa,EACrB,MAAM,EACN,wBAAwB,OAAO,CAAC,KAAK,IAAI,YAAY,MAAM,OAAO,CAAC,GAAG,IAAI,mBAAmB,EAAE,CAChG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,IAAA,kBAAS,EAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,IAAA,sBAAa,EACrB,MAAM,EACN,cAAc,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,OAAO,CAAC,YAAY,IAAI,WAAW,OAAO,OAAO,CAAC,YAAY,IAAI,WAAW,8BAA8B,CAC1L,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,IAAA,kBAAS,EAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,sBAAa,EAAC,MAAM,EAAE,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mCAAmC,CAC1C,OAAyC,EACzC,QAA6E;IAE7E,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACrD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,IAAA,kBAAS,EAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,IAAA,sBAAa,EACrB,MAAM,EACN,sBAAsB,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,OAAO,CAAC,YAAY,IAAI,WAAW,OAAO,OAAO,CAAC,YAAY,IAAI,WAAW,KAAK,OAAO,CAAC,GAAG,IAAI,mBAAmB,EAAE,CAC7L,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,IAAA,kBAAS,EAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,IAAA,sBAAa,EACrB,MAAM,EACN,mBAAmB,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,OAAO,CAAC,YAAY,IAAI,WAAW,OAAO,OAAO,CAAC,YAAY,IAAI,WAAW,sBAAsB,CACrL,CAAC;QACF,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACjC,MAAM,IAAI,IAAA,sBAAa,EACrB,MAAM,EACN,wBAAwB,OAAO,CAAC,KAAK,IAAI,YAAY,MAAM,OAAO,CAAC,GAAG,IAAI,mBAAmB,EAAE,CAChG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,IAAI,IAAA,kBAAS,EAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,IAAA,sBAAa,EAAC,MAAM,EAAE,4CAA4C,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,IAAA,kBAAS,EAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,sBAAa,EAAC,MAAM,EAAE,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAoC;IACjE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;AAClE,CAAC;AAYD,SAAS,YAAY,CAAC,IAAuB;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnE,IACE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QACpE,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,EACxD,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;IAChF,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QACpG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACrD,CAAC;IAED,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC9D,OAAO;YACL,IAAI,EAAE,gBAAgB;YACtB,GAAG,EAAE,gBAAgB;YACrB,KAAK,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;SACpC,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,QAAQ;YACb,KAAK,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;SACpC,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;QAC/D,OAAO;YACL,IAAI,EAAE,iBAAiB;YACvB,GAAG,EAAE,iBAAiB;YACtB,KAAK,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;SACpC,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,cAAc,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QACnE,OAAO;YACL,IAAI,EAAE,qBAAqB;YAC3B,GAAG,EAAE,qBAAqB;YAC1B,KAAK,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;SACpC,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC5D,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,GAAG,EAAE,cAAc;YACnB,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC;SAChC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS;KAClD,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe,CAAC,IAAuB;IACrD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAuB,EAAE,eAAuB;IAC3E,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAE3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,kBAAkB,GAAG,eAAe,EAAE,CAAC;YACpE,kBAAkB,IAAI,CAAC,CAAC;YACxB,SAAS;QACX,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa;IACpB,OAAO;QACL,kBAAkB;QAClB,EAAE;QACF,QAAQ;QACR,uCAAuC;QACvC,+BAA+B;QAC/B,wCAAwC;QACxC,4CAA4C;QAC5C,8GAA8G;QAC9G,0BAA0B;QAC1B,uBAAuB;QACvB,EAAE;QACF,mBAAmB;QACnB,+DAA+D;QAC/D,2EAA2E;QAC3E,sEAAsE;QACtE,+EAA+E;QAC/E,4EAA4E;QAC5E,EAAE;QACF,eAAe;QACf,mBAAmB;QACnB,iBAAiB;QACjB,oBAAoB;QACpB,mBAAmB;QACnB,sBAAsB;QACtB,wBAAwB;QACxB,gDAAgD;QAChD,4BAA4B;QAC5B,4BAA4B;QAC5B,0EAA0E;QAC1E,+CAA+C;QAC/C,iDAAiD;QACjD,qFAAqF;QACrF,gGAAgG;QAChG,eAAe;QACf,kBAAkB;QAClB,+CAA+C;QAC/C,2CAA2C;QAC3C,6CAA6C;QAC7C,yCAAyC;QACzC,4BAA4B;QAC5B,mCAAmC;QACnC,wBAAwB;QACxB,qBAAqB;QACrB,6BAA6B;QAC7B,mBAAmB;QACnB,eAAe;QACf,aAAa;QACb,aAAa;KACd,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACtB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAuB;IAChD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;YACzB,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,OAAO,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAyB;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IACE,UAAU,KAAK,aAAa;QAC5B,UAAU,KAAK,gBAAgB;QAC/B,UAAU,KAAK,QAAQ;QACvB,UAAU,KAAK,iBAAiB;QAChC,UAAU,KAAK,qBAAqB,EACpC,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,qGAAqG,CAAC,CAAC;AACzH,CAAC"}
|
package/out/output.js
CHANGED
|
@@ -19,9 +19,6 @@ function redactSecret(value) {
|
|
|
19
19
|
if (!trimmed) {
|
|
20
20
|
return "";
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
return "*".repeat(trimmed.length);
|
|
24
|
-
}
|
|
25
|
-
return `${"*".repeat(Math.max(4, trimmed.length - 4))}${trimmed.slice(-4)}`;
|
|
22
|
+
return "[REDACTED]";
|
|
26
23
|
}
|
|
27
24
|
//# sourceMappingURL=output.js.map
|
package/out/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":";;AAaA,0CAYC;AAZD,SAAgB,eAAe,CAAC,MAAiB;IAC/C,OAAO;QACL,GAAG,MAAM;QACT,UAAU,EAAE;YACV,GAAG,MAAM,CAAC,UAAU;YACpB,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;SAC/C;QACD,WAAW,EAAE;YACX,GAAG,MAAM,CAAC,WAAW;YACrB,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;SACtD;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":";;AAaA,0CAYC;AAZD,SAAgB,eAAe,CAAC,MAAiB;IAC/C,OAAO;QACL,GAAG,MAAM;QACT,UAAU,EAAE;YACV,GAAG,MAAM,CAAC,UAAU;YACpB,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;SAC/C;QACD,WAAW,EAAE;YACX,GAAG,MAAM,CAAC,WAAW;YACrB,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;SACtD;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.alignReviewResultWithDiff = alignReviewResultWithDiff;
|
|
4
|
+
const chunkPrefixPattern = /^(\[chunk \d+\]\s*)/i;
|
|
5
|
+
const locationPattern = /^(?:\[|【)([^\]】:]+(?:\/[^\]】:]+)*)(?::([^\]】]+))?(?:\]|】)\s*/;
|
|
6
|
+
function alignReviewResultWithDiff(result, diff) {
|
|
7
|
+
if (result.details.length === 0 || !diff.trim()) {
|
|
8
|
+
return result;
|
|
9
|
+
}
|
|
10
|
+
const index = buildAddedLineIndex(diff);
|
|
11
|
+
if (index.size === 0) {
|
|
12
|
+
return result;
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
...result,
|
|
16
|
+
details: result.details.map((detail) => alignDetailWithDiff(detail, index))
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function alignDetailWithDiff(detail, index) {
|
|
20
|
+
const parsed = parseDetailPrefix(detail);
|
|
21
|
+
const snippets = extractSnippets(parsed.message);
|
|
22
|
+
const match = snippets.length > 0 ? findBestMatch(parsed, snippets, index) : undefined;
|
|
23
|
+
if (match) {
|
|
24
|
+
return {
|
|
25
|
+
...detail,
|
|
26
|
+
filePath: match.filePath,
|
|
27
|
+
lineNumber: match.lineNumber,
|
|
28
|
+
message: buildNormalizedMessage(parsed)
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const fallbackLocation = buildFallbackLocation(parsed, index);
|
|
32
|
+
if (fallbackLocation) {
|
|
33
|
+
return {
|
|
34
|
+
...detail,
|
|
35
|
+
filePath: fallbackLocation.filePath,
|
|
36
|
+
lineNumber: undefined,
|
|
37
|
+
message: buildNormalizedMessage(parsed)
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
const normalizedMessage = buildNormalizedMessage(parsed);
|
|
41
|
+
return normalizedMessage === detail.message
|
|
42
|
+
? detail
|
|
43
|
+
: {
|
|
44
|
+
...detail,
|
|
45
|
+
message: normalizedMessage
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function parseDetailPrefix(detail) {
|
|
49
|
+
let rest = detail.message.trim();
|
|
50
|
+
let chunkPrefix = "";
|
|
51
|
+
const chunkMatch = rest.match(chunkPrefixPattern);
|
|
52
|
+
if (chunkMatch) {
|
|
53
|
+
chunkPrefix = chunkMatch[1] ?? "";
|
|
54
|
+
rest = rest.slice(chunkPrefix.length);
|
|
55
|
+
}
|
|
56
|
+
const locationMatch = rest.match(locationPattern);
|
|
57
|
+
if (!locationMatch) {
|
|
58
|
+
return {
|
|
59
|
+
chunkPrefix,
|
|
60
|
+
filePath: detail.filePath,
|
|
61
|
+
lineNumber: detail.lineNumber,
|
|
62
|
+
message: rest
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
chunkPrefix,
|
|
67
|
+
filePath: detail.filePath ?? locationMatch[1],
|
|
68
|
+
lineNumber: detail.lineNumber ?? parseLooseLineNumber(locationMatch[2]),
|
|
69
|
+
message: rest.slice(locationMatch[0].length).trimStart()
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
function extractSnippets(message) {
|
|
73
|
+
const fencedSnippets = [...message.matchAll(/`([^`]+)`/g)].map((match) => match[1]?.trim() ?? "");
|
|
74
|
+
const inferredSnippets = [
|
|
75
|
+
...message.matchAll(/\b[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)*\([^()\n]{0,120}\)/g)
|
|
76
|
+
].map((match) => match[0]?.trim() ?? "");
|
|
77
|
+
const snippets = [...fencedSnippets, ...inferredSnippets]
|
|
78
|
+
.filter((snippet) => isInformativeSnippet(snippet))
|
|
79
|
+
.filter((snippet) => snippet.length > 0)
|
|
80
|
+
.sort((left, right) => right.length - left.length);
|
|
81
|
+
return [...new Set(snippets)];
|
|
82
|
+
}
|
|
83
|
+
function buildFallbackLocation(detail, index) {
|
|
84
|
+
if (!detail.filePath) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
const candidates = getCandidateFiles(detail.filePath, index);
|
|
88
|
+
const resolvedFilePath = candidates.length === 1 ? candidates[0] : detail.filePath;
|
|
89
|
+
return {
|
|
90
|
+
filePath: resolvedFilePath
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function findBestMatch(detail, snippets, index) {
|
|
94
|
+
const requestedFiles = getCandidateFiles(detail.filePath, index);
|
|
95
|
+
const fileGroups = requestedFiles.length > 0
|
|
96
|
+
? requestedFiles.map((filePath) => ({
|
|
97
|
+
filePath,
|
|
98
|
+
fileScore: scoreFileMatch(detail.filePath, filePath),
|
|
99
|
+
lines: index.get(filePath) ?? []
|
|
100
|
+
}))
|
|
101
|
+
: [...index.entries()].map(([filePath, lines]) => ({
|
|
102
|
+
filePath,
|
|
103
|
+
fileScore: 0,
|
|
104
|
+
lines
|
|
105
|
+
}));
|
|
106
|
+
const candidates = [];
|
|
107
|
+
for (const snippet of snippets) {
|
|
108
|
+
const normalizedSnippet = normalizeSnippet(snippet);
|
|
109
|
+
if (!normalizedSnippet) {
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
for (const group of fileGroups) {
|
|
113
|
+
for (const addedLine of group.lines) {
|
|
114
|
+
if (!isSnippetMatch(normalizedSnippet, addedLine.normalizedContent)) {
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
candidates.push({
|
|
118
|
+
addedLine,
|
|
119
|
+
fileScore: group.fileScore,
|
|
120
|
+
snippetLength: normalizedSnippet.length,
|
|
121
|
+
lineDistance: detail.lineNumber === undefined ? 0 : Math.abs(addedLine.lineNumber - detail.lineNumber)
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (candidates.length === 0) {
|
|
127
|
+
return undefined;
|
|
128
|
+
}
|
|
129
|
+
candidates.sort((left, right) => {
|
|
130
|
+
if (left.fileScore !== right.fileScore) {
|
|
131
|
+
return right.fileScore - left.fileScore;
|
|
132
|
+
}
|
|
133
|
+
if (left.snippetLength !== right.snippetLength) {
|
|
134
|
+
return right.snippetLength - left.snippetLength;
|
|
135
|
+
}
|
|
136
|
+
if (left.lineDistance !== right.lineDistance) {
|
|
137
|
+
return left.lineDistance - right.lineDistance;
|
|
138
|
+
}
|
|
139
|
+
if (left.addedLine.filePath !== right.addedLine.filePath) {
|
|
140
|
+
return left.addedLine.filePath.localeCompare(right.addedLine.filePath);
|
|
141
|
+
}
|
|
142
|
+
return left.addedLine.lineNumber - right.addedLine.lineNumber;
|
|
143
|
+
});
|
|
144
|
+
return candidates[0]?.addedLine;
|
|
145
|
+
}
|
|
146
|
+
function getCandidateFiles(filePath, index) {
|
|
147
|
+
if (!filePath) {
|
|
148
|
+
return [];
|
|
149
|
+
}
|
|
150
|
+
if (index.has(filePath)) {
|
|
151
|
+
return [filePath];
|
|
152
|
+
}
|
|
153
|
+
return [...index.keys()].filter((candidate) => candidate === filePath || candidate.endsWith(`/${filePath}`));
|
|
154
|
+
}
|
|
155
|
+
function scoreFileMatch(requestedFilePath, actualFilePath) {
|
|
156
|
+
if (!requestedFilePath) {
|
|
157
|
+
return 0;
|
|
158
|
+
}
|
|
159
|
+
if (requestedFilePath === actualFilePath) {
|
|
160
|
+
return 2;
|
|
161
|
+
}
|
|
162
|
+
if (actualFilePath.endsWith(`/${requestedFilePath}`)) {
|
|
163
|
+
return 1;
|
|
164
|
+
}
|
|
165
|
+
return 0;
|
|
166
|
+
}
|
|
167
|
+
function buildAddedLineIndex(diff) {
|
|
168
|
+
const index = new Map();
|
|
169
|
+
const lines = diff.split(/\r?\n/);
|
|
170
|
+
let currentFilePath;
|
|
171
|
+
let currentNewLine = 0;
|
|
172
|
+
let inHunk = false;
|
|
173
|
+
for (const line of lines) {
|
|
174
|
+
if (line.startsWith("diff --git ")) {
|
|
175
|
+
currentFilePath = extractFilePathFromDiffHeader(line);
|
|
176
|
+
inHunk = false;
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
if (line.startsWith("+++ ")) {
|
|
180
|
+
currentFilePath = extractFilePathFromPlusHeader(line) ?? currentFilePath;
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
const hunkMatch = line.match(/^@@ -\d+(?:,\d+)? \+(\d+)(?:,\d+)? @@/);
|
|
184
|
+
if (hunkMatch) {
|
|
185
|
+
currentNewLine = Number(hunkMatch[1]);
|
|
186
|
+
inHunk = true;
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
if (!inHunk || !currentFilePath) {
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
if (line.startsWith("+") && !line.startsWith("+++")) {
|
|
193
|
+
const content = line.slice(1);
|
|
194
|
+
pushAddedLine(index, currentFilePath, currentNewLine, content);
|
|
195
|
+
currentNewLine += 1;
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
if (line.startsWith("-") && !line.startsWith("---")) {
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
if (line.startsWith(" ")) {
|
|
202
|
+
currentNewLine += 1;
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
205
|
+
if (line.startsWith("\\")) {
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
inHunk = false;
|
|
209
|
+
}
|
|
210
|
+
return index;
|
|
211
|
+
}
|
|
212
|
+
function pushAddedLine(index, filePath, lineNumber, content) {
|
|
213
|
+
const normalizedContent = normalizeSnippet(content);
|
|
214
|
+
if (!normalizedContent) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
const bucket = index.get(filePath) ?? [];
|
|
218
|
+
bucket.push({
|
|
219
|
+
filePath,
|
|
220
|
+
lineNumber,
|
|
221
|
+
content,
|
|
222
|
+
normalizedContent
|
|
223
|
+
});
|
|
224
|
+
index.set(filePath, bucket);
|
|
225
|
+
}
|
|
226
|
+
function extractFilePathFromDiffHeader(line) {
|
|
227
|
+
const match = line.match(/^diff --git a\/(.+?) b\/(.+)$/);
|
|
228
|
+
if (!match) {
|
|
229
|
+
return undefined;
|
|
230
|
+
}
|
|
231
|
+
return match[2];
|
|
232
|
+
}
|
|
233
|
+
function extractFilePathFromPlusHeader(line) {
|
|
234
|
+
const match = line.match(/^\+\+\+ b\/(.+)$/);
|
|
235
|
+
if (!match) {
|
|
236
|
+
return undefined;
|
|
237
|
+
}
|
|
238
|
+
return match[1];
|
|
239
|
+
}
|
|
240
|
+
function normalizeSnippet(value) {
|
|
241
|
+
return value.replace(/\s+/g, " ").trim();
|
|
242
|
+
}
|
|
243
|
+
function isSnippetMatch(normalizedSnippet, normalizedLine) {
|
|
244
|
+
return normalizedLine.includes(normalizedSnippet) || normalizedSnippet.includes(normalizedLine);
|
|
245
|
+
}
|
|
246
|
+
function isInformativeSnippet(snippet) {
|
|
247
|
+
const normalizedSnippet = normalizeSnippet(snippet);
|
|
248
|
+
if (normalizedSnippet.length < 2) {
|
|
249
|
+
return false;
|
|
250
|
+
}
|
|
251
|
+
const identifierLikeChars = normalizedSnippet.match(/[\p{L}\p{N}_$]/gu) ?? [];
|
|
252
|
+
return identifierLikeChars.length >= 2;
|
|
253
|
+
}
|
|
254
|
+
function buildNormalizedMessage(detail) {
|
|
255
|
+
return `${detail.chunkPrefix}${detail.message}`.trim();
|
|
256
|
+
}
|
|
257
|
+
function parseLooseLineNumber(raw) {
|
|
258
|
+
if (!raw) {
|
|
259
|
+
return undefined;
|
|
260
|
+
}
|
|
261
|
+
const match = raw.match(/\d+/);
|
|
262
|
+
if (!match) {
|
|
263
|
+
return undefined;
|
|
264
|
+
}
|
|
265
|
+
const lineNumber = Number(match[0]);
|
|
266
|
+
return Number.isFinite(lineNumber) ? lineNumber : undefined;
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=detailLocator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detailLocator.js","sourceRoot":"","sources":["../../src/review/detailLocator.ts"],"names":[],"mappings":"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"}
|
package/out/review/index.js
CHANGED
|
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.runReviewExecution = runReviewExecution;
|
|
18
18
|
const responseCorrection_1 = require("../llm/responseCorrection");
|
|
19
19
|
const openaiProvider_1 = require("./openaiProvider");
|
|
20
|
+
const detailLocator_1 = require("./detailLocator");
|
|
20
21
|
const parser_1 = require("./parser");
|
|
21
22
|
const mockProvider_1 = require("./mockProvider");
|
|
22
23
|
__exportStar(require("./types"), exports);
|
|
@@ -28,7 +29,7 @@ async function runReviewExecution(input, options) {
|
|
|
28
29
|
initialResponse: rawReview,
|
|
29
30
|
maxCorrectionRetries: options.config.connection.llmResponseCorrectionRetryCount,
|
|
30
31
|
validateResponse: async (response) => {
|
|
31
|
-
const parsed = tryParseAndValidate(response, provider.name, input.reviewLanguage, input.threshold);
|
|
32
|
+
const parsed = tryParseAndValidate(response, provider.name, input.reviewLanguage, input.threshold, input.diff);
|
|
32
33
|
if (!parsed.ok) {
|
|
33
34
|
throw new ReviewResponseValidationError(parsed.issues);
|
|
34
35
|
}
|
|
@@ -50,9 +51,9 @@ function resolveProviderMode() {
|
|
|
50
51
|
function createProvider(config, mode, mockMode) {
|
|
51
52
|
return mode === "mock" ? (0, mockProvider_1.createMockReviewProvider)({ mode: mockMode }) : (0, openaiProvider_1.createOpenAICompatibleReviewProvider)(config);
|
|
52
53
|
}
|
|
53
|
-
function tryParseAndValidate(raw, providerName, reviewLanguage, threshold) {
|
|
54
|
+
function tryParseAndValidate(raw, providerName, reviewLanguage, threshold, diff) {
|
|
54
55
|
try {
|
|
55
|
-
const result = (0, parser_1.parseReviewResponse)(raw, providerName);
|
|
56
|
+
const result = (0, detailLocator_1.alignReviewResultWithDiff)((0, parser_1.parseReviewResponse)(raw, providerName), diff);
|
|
56
57
|
const issues = [
|
|
57
58
|
...(0, parser_1.validateReviewResult)(result, threshold),
|
|
58
59
|
...(0, parser_1.validateReviewContentLanguage)(result, reviewLanguage)
|
package/out/review/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/review/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/review/index.ts"],"names":[],"mappings":"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"}
|
package/out/review/parser.js
CHANGED
|
@@ -8,9 +8,10 @@ const protocol_1 = require("../commitMessage/protocol");
|
|
|
8
8
|
const validSeverities = new Set(["P0", "P1", "P2", "P3", "OTHER"]);
|
|
9
9
|
function parseReviewResponse(raw, provider) {
|
|
10
10
|
const trimmed = raw.trim();
|
|
11
|
+
const jsonText = extractJsonPayload(trimmed);
|
|
11
12
|
let payload;
|
|
12
13
|
try {
|
|
13
|
-
payload = JSON.parse(
|
|
14
|
+
payload = JSON.parse(jsonText);
|
|
14
15
|
}
|
|
15
16
|
catch (error) {
|
|
16
17
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -102,4 +103,16 @@ function parseReviewDetails(value) {
|
|
|
102
103
|
}
|
|
103
104
|
return details;
|
|
104
105
|
}
|
|
106
|
+
function extractJsonPayload(raw) {
|
|
107
|
+
const fencedMatch = raw.match(/```(?:json)?\s*([\s\S]*?)```/i);
|
|
108
|
+
if (fencedMatch?.[1]) {
|
|
109
|
+
return fencedMatch[1].trim();
|
|
110
|
+
}
|
|
111
|
+
const objectStart = raw.indexOf("{");
|
|
112
|
+
const objectEnd = raw.lastIndexOf("}");
|
|
113
|
+
if (objectStart >= 0 && objectEnd > objectStart) {
|
|
114
|
+
return raw.slice(objectStart, objectEnd + 1);
|
|
115
|
+
}
|
|
116
|
+
return raw;
|
|
117
|
+
}
|
|
105
118
|
//# sourceMappingURL=parser.js.map
|
package/out/review/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/review/parser.ts"],"names":[],"mappings":";;AAaA,
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/review/parser.ts"],"names":[],"mappings":"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"}
|
package/out/spinner.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.startSpinner = startSpinner;
|
|
4
|
+
const defaultFrames = ["-", "\\", "|", "/"];
|
|
5
|
+
function startSpinner(message, stream, options = {}) {
|
|
6
|
+
if (!stream.isTTY) {
|
|
7
|
+
return noopSpinner;
|
|
8
|
+
}
|
|
9
|
+
const frames = options.frames && options.frames.length > 0 ? options.frames : defaultFrames;
|
|
10
|
+
const intervalMs = options.intervalMs ?? 120;
|
|
11
|
+
const setIntervalFn = options.setIntervalFn ?? setInterval;
|
|
12
|
+
const clearIntervalFn = options.clearIntervalFn ?? clearInterval;
|
|
13
|
+
let frameIndex = 0;
|
|
14
|
+
let stopped = false;
|
|
15
|
+
const render = () => {
|
|
16
|
+
stream.write(`\r${frames[frameIndex % frames.length]} ${message}`);
|
|
17
|
+
frameIndex += 1;
|
|
18
|
+
};
|
|
19
|
+
render();
|
|
20
|
+
const timer = setIntervalFn(render, intervalMs);
|
|
21
|
+
return {
|
|
22
|
+
stop() {
|
|
23
|
+
if (stopped) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
stopped = true;
|
|
27
|
+
clearIntervalFn(timer);
|
|
28
|
+
stream.write("\r\x1b[2K");
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const noopSpinner = {
|
|
33
|
+
stop() {
|
|
34
|
+
// No-op for non-interactive output.
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../src/spinner.ts"],"names":[],"mappings":";;AAkBA,oCAmCC;AArCD,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAErD,SAAgB,YAAY,CAC1B,OAAe,EACf,MAAqB,EACrB,UAA0B,EAAE;IAE5B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;IAC5F,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;IAC7C,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,WAAW,CAAC;IAC3D,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,aAAa,CAAC;IACjE,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,MAAM,GAAG,GAAS,EAAE;QACxB,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;QACnE,UAAU,IAAI,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,EAAE,CAAC;IACT,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAEhD,OAAO;QACL,IAAI;YACF,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YAED,OAAO,GAAG,IAAI,CAAC;YACf,eAAe,CAAC,KAAK,CAAC,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAkB;IACjC,IAAI;QACF,oCAAoC;IACtC,CAAC;CACF,CAAC"}
|
package/package.json
CHANGED