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 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.8-draft.md`](./releases/0.1.8-draft.md)
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 result = useAsync ? await (0, cliApp_1.runCliAsync)(argv, process.env) : (0, cliApp_1.runCli)(argv, process.env);
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;AAEhE,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,CAAC;IACvE,MAAM,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;IAC3F,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"}
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
- if (result.payload.warnings.length > 0 && (0, logger_1.shouldLog)(result.payload.config.output.logLevel, "warn")) {
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
- if (result.payload.pullRequestCreation.error && (0, logger_1.shouldLog)(result.payload.config.output.logLevel, "warn")) {
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":"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"}
package/out/output.js CHANGED
@@ -19,9 +19,6 @@ function redactSecret(value) {
19
19
  if (!trimmed) {
20
20
  return "";
21
21
  }
22
- if (trimmed.length <= 4) {
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,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9E,CAAC"}
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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"}
@@ -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)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/review/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/review/index.ts"],"names":[],"mappings":"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"}
@@ -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(trimmed);
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
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/review/parser.ts"],"names":[],"mappings":"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"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "smart-commit-copilot-cli",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "private": false,
5
5
  "description": "CLI for AI-assisted commit review, commit message generation, Git workflow automation, and work reports.",
6
6
  "license": "MIT",