smart-commit-copilot-cli 0.1.6 → 0.1.7
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 +16 -0
- package/README.md +18 -0
- package/docs/configuration.md +32 -0
- package/docs/contracts.md +6 -1
- package/docs/publish.md +1 -1
- package/docs/releases/0.1.7-draft.md +55 -0
- package/docs/roadmap.md +1 -1
- package/examples/config/smart-commit.json +7 -0
- package/out/cliApp.js +8 -0
- package/out/cliApp.js.map +1 -1
- package/out/commands/bridge.js +113 -1
- package/out/commands/bridge.js.map +1 -1
- package/out/commitMessage/index.js +2 -1
- package/out/commitMessage/index.js.map +1 -1
- package/out/commitMessage/prompt.js +58 -10
- package/out/commitMessage/prompt.js.map +1 -1
- package/out/commitMessage/protocol.js +162 -15
- package/out/commitMessage/protocol.js.map +1 -1
- package/out/config/cliArgs.js +21 -0
- package/out/config/cliArgs.js.map +1 -1
- package/out/config/constants.js +8 -0
- package/out/config/constants.js.map +1 -1
- package/out/config/env.js +21 -0
- package/out/config/env.js.map +1 -1
- package/out/config/file.js +26 -0
- package/out/config/file.js.map +1 -1
- package/out/config/legacySmartCommit.js +27 -1
- package/out/config/legacySmartCommit.js.map +1 -1
- package/out/config/merge.js +4 -0
- package/out/config/merge.js.map +1 -1
- package/out/config/schema.js +17 -0
- package/out/config/schema.js.map +1 -1
- package/out/contracts.js +29 -3
- package/out/contracts.js.map +1 -1
- package/out/pullRequestSummary/index.js +53 -0
- package/out/pullRequestSummary/index.js.map +1 -0
- package/out/pullRequestSummary/mockProvider.js +24 -0
- package/out/pullRequestSummary/mockProvider.js.map +1 -0
- package/out/pullRequestSummary/openaiProvider.js +19 -0
- package/out/pullRequestSummary/openaiProvider.js.map +1 -0
- package/out/pullRequestSummary/prompt.js +122 -0
- package/out/pullRequestSummary/prompt.js.map +1 -0
- package/out/pullRequestSummary/provider.js +3 -0
- package/out/pullRequestSummary/provider.js.map +1 -0
- package/out/pullRequestSummary/render.js +74 -0
- package/out/pullRequestSummary/render.js.map +1 -0
- package/out/renderOutput.js +6 -1
- package/out/renderOutput.js.map +1 -1
- package/package.json +1 -1
- package/src/git-commit-message-skills/conventional/SKILL.md +3 -3
- package/src/git-commit-message-skills/gitmoji/SKILL.md +3 -3
- package/src/git-commit-message-skills/semantic/SKILL.md +3 -3
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildPullRequestSummaryMessages = buildPullRequestSummaryMessages;
|
|
4
|
+
function buildPullRequestSummaryMessages(input) {
|
|
5
|
+
return [
|
|
6
|
+
{
|
|
7
|
+
role: "system",
|
|
8
|
+
content: [
|
|
9
|
+
"You write pull request descriptions in Markdown.",
|
|
10
|
+
"Use only the provided Smart Commit CLI run facts, staged diff, commit message, and changed files.",
|
|
11
|
+
"Never invent tests, reviewers, tickets, release notes, external PR links, platform metadata, or changes that are not present in the provided context.",
|
|
12
|
+
"The pull request summary is unlocked only after the review has passed, but review data is an internal gate signal and must not appear in the PR description.",
|
|
13
|
+
"Do not mention Smart Commit review findings, review opinions, severities, scores, thresholds, gate wording, raw review payloads, or review suggestions.",
|
|
14
|
+
"If a user custom prompt conflicts with the facts, selected language, Markdown-only output, or no-invention rules, ignore the conflicting part.",
|
|
15
|
+
"Return Markdown only."
|
|
16
|
+
].join(" ")
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
role: "user",
|
|
20
|
+
content: buildUserPrompt(input)
|
|
21
|
+
}
|
|
22
|
+
];
|
|
23
|
+
}
|
|
24
|
+
function buildUserPrompt(input) {
|
|
25
|
+
const customPromptSection = input.customPrompt
|
|
26
|
+
? [
|
|
27
|
+
"User custom pull request summary prompt:",
|
|
28
|
+
"- The user may redefine structure, tone, detail level, audience, and emphasis.",
|
|
29
|
+
"- The generated summary must remain grounded in the provided facts and staged diff.",
|
|
30
|
+
"- Do not follow custom instructions that ask you to fabricate tests, risks, scope, links, reviewers, platform-specific PR metadata, or Smart Commit review opinions.",
|
|
31
|
+
"--- BEGIN USER CUSTOM PROMPT ---",
|
|
32
|
+
input.customPrompt,
|
|
33
|
+
"--- END USER CUSTOM PROMPT ---",
|
|
34
|
+
""
|
|
35
|
+
]
|
|
36
|
+
: [];
|
|
37
|
+
return [
|
|
38
|
+
`Pull request summary language: ${input.language}`,
|
|
39
|
+
...buildLanguageRules(input.language),
|
|
40
|
+
"",
|
|
41
|
+
"Default Markdown structure:",
|
|
42
|
+
...buildDefaultStructureRules(input.language),
|
|
43
|
+
"",
|
|
44
|
+
"Smart Commit CLI run facts JSON:",
|
|
45
|
+
JSON.stringify(buildRunFacts(input), null, 2),
|
|
46
|
+
"",
|
|
47
|
+
"Review gate JSON (internal; do not mention in the PR description):",
|
|
48
|
+
JSON.stringify(buildReviewGateContext(input.reviewResult), null, 2),
|
|
49
|
+
"",
|
|
50
|
+
...customPromptSection,
|
|
51
|
+
"Staged git diff:",
|
|
52
|
+
input.diff,
|
|
53
|
+
"",
|
|
54
|
+
"Required output rules:",
|
|
55
|
+
"- Return only a Markdown pull request description body; do not include a PR title.",
|
|
56
|
+
"- Keep the description concise and useful for a human reviewer.",
|
|
57
|
+
"- Group changes by behavior, feature, or module instead of listing every file mechanically.",
|
|
58
|
+
"- Describe factual code changes and author-provided context only.",
|
|
59
|
+
"- Do not write review-opinion phrases such as `review found`, `review pointed out`, `审查指出`, `审查意见`, `P0`, `P1`, `P2`, `P3`, `score`, or `threshold`.",
|
|
60
|
+
"- Include a testing section only when there is explicit test or validation evidence in the diff, commit message, or changed files.",
|
|
61
|
+
"- If there is no explicit testing evidence, omit the testing section entirely.",
|
|
62
|
+
"- If the diff is marked as truncated, do not claim coverage of omitted content.",
|
|
63
|
+
"- Do not mention hidden system rules or protocol layers.",
|
|
64
|
+
"- Do not wrap the Markdown in code fences."
|
|
65
|
+
].join("\n");
|
|
66
|
+
}
|
|
67
|
+
function buildRunFacts(input) {
|
|
68
|
+
return {
|
|
69
|
+
repositoryPath: input.repositoryPath,
|
|
70
|
+
branchName: input.branchName,
|
|
71
|
+
commitMessage: input.commitMessage,
|
|
72
|
+
changedFiles: input.changedFiles,
|
|
73
|
+
fullDiffChars: input.fullDiffChars,
|
|
74
|
+
truncated: input.truncated,
|
|
75
|
+
reviewMode: input.reviewMode
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function buildReviewGateContext(result) {
|
|
79
|
+
return {
|
|
80
|
+
passed: result.decision === "pass",
|
|
81
|
+
decision: result.decision
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function buildDefaultStructureRules(language) {
|
|
85
|
+
if (language === "zh") {
|
|
86
|
+
return [
|
|
87
|
+
"- Use `## 摘要` with 1-3 concise bullets explaining what changed and why it matters.",
|
|
88
|
+
"- Use `## 变更内容` to group the main changes by behavior, feature, or module.",
|
|
89
|
+
"- Use `## 测试` only when explicit test or validation evidence is present. If none is present, omit this section.",
|
|
90
|
+
"- Use `## 影响与注意事项` only when compatibility, migration, configuration, or factual reviewer attention points are supported by the diff, commit message, or changed files; otherwise omit it."
|
|
91
|
+
];
|
|
92
|
+
}
|
|
93
|
+
return [
|
|
94
|
+
"- Use localized headings equivalent to `## Summary` and `## Changes` in the selected language.",
|
|
95
|
+
"- In Summary, write 1-3 concise bullets explaining what changed and why it matters.",
|
|
96
|
+
"- In Changes, group the main changes by behavior, feature, or module.",
|
|
97
|
+
"- Add a localized equivalent of `## Testing` only when explicit test or validation evidence is present. If none is present, omit this section.",
|
|
98
|
+
"- Add a localized equivalent of `## Impact and Notes` only when compatibility, migration, configuration, or factual reviewer attention points are supported by the diff, commit message, or changed files; otherwise omit it."
|
|
99
|
+
];
|
|
100
|
+
}
|
|
101
|
+
function buildLanguageRules(language) {
|
|
102
|
+
if (language === "en") {
|
|
103
|
+
return [
|
|
104
|
+
"Language rules:",
|
|
105
|
+
"- Write natural-language content in English.",
|
|
106
|
+
"- Do not use Chinese characters outside exact code identifiers or quoted snippets."
|
|
107
|
+
];
|
|
108
|
+
}
|
|
109
|
+
if (language === "zh") {
|
|
110
|
+
return [
|
|
111
|
+
"Language rules:",
|
|
112
|
+
"- 使用中文撰写自然语言内容。",
|
|
113
|
+
"- 可以保留代码标识符、文件路径、配置键、ticket ID 和精确代码片段的原文。"
|
|
114
|
+
];
|
|
115
|
+
}
|
|
116
|
+
return [
|
|
117
|
+
"Language rules:",
|
|
118
|
+
`- Write natural-language content in the selected language: ${language}.`,
|
|
119
|
+
"- Keep code identifiers, file paths, configuration keys, ticket IDs, and exact code snippets in their original form."
|
|
120
|
+
];
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/pullRequestSummary/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/pullRequestSummary/provider.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.DEFAULT_PULL_REQUEST_SUMMARY_DIRECTORY_NAME = void 0;
|
|
37
|
+
exports.resolvePullRequestSummaryOutputDirectoryPath = resolvePullRequestSummaryOutputDirectoryPath;
|
|
38
|
+
exports.buildPullRequestSummaryFileName = buildPullRequestSummaryFileName;
|
|
39
|
+
exports.writePullRequestSummaryFile = writePullRequestSummaryFile;
|
|
40
|
+
const fs = __importStar(require("node:fs/promises"));
|
|
41
|
+
const path = __importStar(require("node:path"));
|
|
42
|
+
exports.DEFAULT_PULL_REQUEST_SUMMARY_DIRECTORY_NAME = "pr-summaries";
|
|
43
|
+
function resolvePullRequestSummaryOutputDirectoryPath(input) {
|
|
44
|
+
const configuredDirPath = input.configuredDirPath.trim();
|
|
45
|
+
if (!configuredDirPath) {
|
|
46
|
+
return path.join(path.normalize(input.repositoryPath), ".smart-commit-cli", exports.DEFAULT_PULL_REQUEST_SUMMARY_DIRECTORY_NAME);
|
|
47
|
+
}
|
|
48
|
+
return path.isAbsolute(configuredDirPath)
|
|
49
|
+
? path.normalize(configuredDirPath)
|
|
50
|
+
: path.resolve(input.repositoryPath, configuredDirPath);
|
|
51
|
+
}
|
|
52
|
+
function buildPullRequestSummaryFileName(now = new Date()) {
|
|
53
|
+
const stamp = [
|
|
54
|
+
now.getFullYear(),
|
|
55
|
+
String(now.getMonth() + 1).padStart(2, "0"),
|
|
56
|
+
String(now.getDate()).padStart(2, "0"),
|
|
57
|
+
"-",
|
|
58
|
+
String(now.getHours()).padStart(2, "0"),
|
|
59
|
+
String(now.getMinutes()).padStart(2, "0"),
|
|
60
|
+
String(now.getSeconds()).padStart(2, "0")
|
|
61
|
+
].join("");
|
|
62
|
+
return `smart-commit-pr-summary-${stamp}.md`;
|
|
63
|
+
}
|
|
64
|
+
async function writePullRequestSummaryFile(directoryPath, fileName, markdown) {
|
|
65
|
+
await fs.mkdir(directoryPath, { recursive: true });
|
|
66
|
+
const filePath = path.join(directoryPath, fileName);
|
|
67
|
+
await fs.writeFile(filePath, normalizePullRequestSummaryFileContent(markdown), "utf8");
|
|
68
|
+
return filePath;
|
|
69
|
+
}
|
|
70
|
+
function normalizePullRequestSummaryFileContent(markdown) {
|
|
71
|
+
const trimmed = markdown.trim();
|
|
72
|
+
return trimmed ? `${trimmed}\n` : "";
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/pullRequestSummary/render.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,oGAYC;AAED,0EAYC;AAED,kEASC;AA1CD,qDAAuC;AACvC,gDAAkC;AAErB,QAAA,2CAA2C,GAAG,cAAc,CAAC;AAE1E,SAAgB,4CAA4C,CAAC,KAG5D;IACC,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;IACzD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,mBAAmB,EAAE,mDAA2C,CAAC,CAAC;IAC3H,CAAC;IAED,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACvC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;QACnC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;AAC5D,CAAC;AAED,SAAgB,+BAA+B,CAAC,MAAY,IAAI,IAAI,EAAE;IACpE,MAAM,KAAK,GAAG;QACZ,GAAG,CAAC,WAAW,EAAE;QACjB,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QACtC,GAAG;QACH,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;KAC1C,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,OAAO,2BAA2B,KAAK,KAAK,CAAC;AAC/C,CAAC;AAEM,KAAK,UAAU,2BAA2B,CAC/C,aAAqB,EACrB,QAAgB,EAChB,QAAgB;IAEhB,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACpD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,sCAAsC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IACvF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,sCAAsC,CAAC,QAAgB;IAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACvC,CAAC"}
|
package/out/renderOutput.js
CHANGED
|
@@ -33,7 +33,9 @@ function renderConfigResolveOutput(payload, format) {
|
|
|
33
33
|
`Review Threshold: ${payload.config.review.threshold}`,
|
|
34
34
|
`Review Language: ${payload.config.review.language}`,
|
|
35
35
|
`Commit Language: ${payload.config.commitMessage.language}`,
|
|
36
|
+
`Commit Message Structure: ${payload.config.commitMessage.structure}`,
|
|
36
37
|
`Pass History Write Stage: ${payload.config.passHistory.writeStage}`,
|
|
38
|
+
`Pull Request Summary: ${String(payload.config.pullRequestSummary.enabled)}`,
|
|
37
39
|
`Auto Commit: ${String(payload.config.git.autoCommit)}`,
|
|
38
40
|
`Auto Push: ${String(payload.config.git.autoPush)}`
|
|
39
41
|
]);
|
|
@@ -61,8 +63,11 @@ function renderBridgeOutput(payload, format) {
|
|
|
61
63
|
`Did Commit: ${String(payload.didCommit)}`,
|
|
62
64
|
`Did Push: ${String(payload.didPush)}`,
|
|
63
65
|
`Pass History Wrote: ${String(payload.passHistory.wrote)}`,
|
|
66
|
+
`Pull Request Summary Generated: ${String(payload.pullRequestSummary.generated)}`,
|
|
67
|
+
`Pull Request Summary File: ${payload.pullRequestSummary.outputFilePath ?? "(none)"}`,
|
|
64
68
|
payload.error ? `Error Code: ${payload.error.code}` : "",
|
|
65
|
-
payload.error ? `Error Message: ${payload.error.message}` : ""
|
|
69
|
+
payload.error ? `Error Message: ${payload.error.message}` : "",
|
|
70
|
+
payload.pullRequestSummary.error ? `Pull Request Summary Error: ${payload.pullRequestSummary.error}` : ""
|
|
66
71
|
]);
|
|
67
72
|
}
|
|
68
73
|
function renderReportOutput(payload, format) {
|
package/out/renderOutput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderOutput.js","sourceRoot":"","sources":["../src/renderOutput.ts"],"names":[],"mappings":";;AAeA,oEAiBC;AAED,
|
|
1
|
+
{"version":3,"file":"renderOutput.js","sourceRoot":"","sources":["../src/renderOutput.ts"],"names":[],"mappings":";;AAeA,oEAiBC;AAED,8DAwBC;AAED,gDA+BC;AAED,gDAmBC;AAjGD,SAAgB,4BAA4B,CAC1C,IAAuB,EACvB,GAAsB,EACtB,WAA4B,MAAM;IAElC,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,qBAAqB,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,OAAO,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,OAAO,qBAAqB,CAAC,GAAG,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;AACzE,CAAC;AAED,SAAgB,yBAAyB,CAAC,OAA6B,EAAE,MAAuB;IAC9F,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IAED,OAAO,MAAM,CAAC;QACZ,6BAA6B;QAC7B,mBAAmB,OAAO,CAAC,aAAa,EAAE;QAC1C,WAAW,OAAO,CAAC,MAAM,EAAE;QAC3B,oBAAoB,OAAO,CAAC,OAAO,CAAC,cAAc,IAAI,QAAQ,EAAE;QAChE,gBAAgB,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,QAAQ,EAAE;QACxD,kBAAkB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QAChD,aAAa,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,IAAI,SAAS,EAAE;QAC7D,UAAU,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,SAAS,EAAE;QACxD,2BAA2B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,+BAA+B,EAAE;QACtF,qBAAqB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;QACtD,oBAAoB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;QACpD,oBAAoB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE;QAC3D,6BAA6B,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE;QACrE,6BAA6B,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE;QACpE,yBAAyB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE;QAC5E,gBAAgB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QACvD,cAAc,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;KACpD,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,kBAAkB,CAAC,OAAqB,EAAE,MAAuB;IAC/E,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IAED,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAE3D,OAAO,MAAM,CAAC;QACZ,qBAAqB;QACrB,mBAAmB,OAAO,CAAC,aAAa,EAAE;QAC1C,WAAW,OAAO,CAAC,MAAM,EAAE;QAC3B,UAAU,OAAO,CAAC,KAAK,EAAE;QACzB,oBAAoB,OAAO,CAAC,cAAc,IAAI,QAAQ,EAAE;QACxD,YAAY,OAAO,CAAC,OAAO,IAAI,QAAQ,EAAE;QACzC,UAAU,OAAO,CAAC,KAAK,IAAI,QAAQ,EAAE;QACrC,cAAc,OAAO,CAAC,SAAS,IAAI,QAAQ,EAAE;QAC7C,oBAAoB,OAAO,CAAC,cAAc,IAAI,QAAQ,EAAE;QACxD,oBAAoB,OAAO,CAAC,cAAc,IAAI,QAAQ,EAAE;QACxD,mBAAmB,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE;QACjD,GAAG,iBAAiB;QACpB,mBAAmB,OAAO,CAAC,aAAa,IAAI,QAAQ,EAAE;QACtD,0BAA0B,OAAO,CAAC,mBAAmB,EAAE;QACvD,eAAe,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC1C,aAAa,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACtC,uBAAuB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;QAC1D,mCAAmC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;QACjF,8BAA8B,OAAO,CAAC,kBAAkB,CAAC,cAAc,IAAI,QAAQ,EAAE;QACrF,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;QACxD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;QAC9D,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,+BAA+B,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;KAC1G,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,kBAAkB,CAAC,OAAqB,EAAE,MAAuB;IAC/E,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IAED,OAAO,MAAM,CAAC;QACZ,8BAA8B;QAC9B,mBAAmB,OAAO,CAAC,aAAa,EAAE;QAC1C,WAAW,OAAO,CAAC,MAAM,EAAE;QAC3B,oBAAoB,OAAO,CAAC,cAAc,IAAI,QAAQ,EAAE;QACxD,WAAW,OAAO,CAAC,UAAU,IAAI,QAAQ,EAAE;QAC3C,gBAAgB,OAAO,CAAC,UAAU,EAAE;QACpC,oBAAoB,OAAO,CAAC,cAAc,IAAI,QAAQ,EAAE;QACxD,gBAAgB,OAAO,CAAC,cAAc,IAAI,QAAQ,EAAE;QACpD,sBAAsB,OAAO,CAAC,mBAAmB,IAAI,QAAQ,EAAE;QAC/D,YAAY,OAAO,CAAC,OAAO,EAAE;QAC7B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;QACxD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;KAC/D,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAyB,EAAE,QAAyB;IACjF,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,OAAO,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpF,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAqB;IACpD,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACjD,MAAM,QAAQ,GAAG,0BAA0B,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAChF,OAAO,GAAG,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAiB,EAAE,UAAmB;IACxE,IAAI,CAAC,QAAQ,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,QAAQ,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,KAAK,QAAQ,IAAI,UAAU,GAAG,CAAC;IACxC,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,KAAK,QAAQ,GAAG,CAAC;IAC1B,CAAC;IAED,OAAO,UAAU,UAAU,GAAG,CAAC;AACjC,CAAC;AAED,SAAS,MAAM,CAAC,KAAe;IAC7B,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/D,CAAC"}
|
package/package.json
CHANGED
|
@@ -147,9 +147,9 @@ feat: SCP-7921 新增 SCA 安全组件类型支持
|
|
|
147
147
|
## Response Style
|
|
148
148
|
|
|
149
149
|
When returning the result to the user:
|
|
150
|
-
- Return
|
|
151
|
-
- If
|
|
152
|
-
-
|
|
150
|
+
- Return exactly one final commit message subject line only.
|
|
151
|
+
- If the staged diff is ambiguous, choose the single best subject and return only that one line.
|
|
152
|
+
- Do not add explanations, labels, bullets, or alternative candidates.
|
|
153
153
|
|
|
154
154
|
## Additional Resources
|
|
155
155
|
|
|
@@ -148,9 +148,9 @@ Output:
|
|
|
148
148
|
## Response Style
|
|
149
149
|
|
|
150
150
|
When returning the result to the user:
|
|
151
|
-
- Return
|
|
152
|
-
- If
|
|
153
|
-
-
|
|
151
|
+
- Return exactly one final commit message subject line only.
|
|
152
|
+
- If the staged diff is ambiguous, choose the single best subject and return only that one line.
|
|
153
|
+
- Do not add explanations, labels, bullets, or alternative candidates.
|
|
154
154
|
|
|
155
155
|
## Additional Resources
|
|
156
156
|
|
|
@@ -149,9 +149,9 @@ feat(sca): SCP-7921 新增 SCA 安全组件类型支持
|
|
|
149
149
|
## Response Style
|
|
150
150
|
|
|
151
151
|
When returning the result to the user:
|
|
152
|
-
- Return
|
|
153
|
-
- If
|
|
154
|
-
-
|
|
152
|
+
- Return exactly one final commit message subject line only.
|
|
153
|
+
- If the staged diff is ambiguous, choose the single best subject and return only that one line.
|
|
154
|
+
- Do not add explanations, labels, bullets, or alternative candidates.
|
|
155
155
|
|
|
156
156
|
## Additional Resources
|
|
157
157
|
|