@ksw8954/git-ai-commit 1.1.0 → 1.1.3
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 +24 -0
- package/Makefile +47 -18
- package/dist/commands/ai.d.ts +1 -1
- package/dist/commands/ai.d.ts.map +1 -1
- package/dist/commands/ai.js +10 -3
- package/dist/commands/ai.js.map +1 -1
- package/dist/commands/commit.d.ts.map +1 -1
- package/dist/commands/commit.js +8 -0
- package/dist/commands/commit.js.map +1 -1
- package/dist/commands/completion.d.ts.map +1 -1
- package/dist/commands/completion.js +32 -34
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/git.d.ts +1 -0
- package/dist/commands/git.d.ts.map +1 -1
- package/dist/commands/git.js +20 -0
- package/dist/commands/git.js.map +1 -1
- package/dist/commands/history.d.ts.map +1 -1
- package/dist/commands/history.js +5 -5
- package/dist/commands/history.js.map +1 -1
- package/dist/commands/log.d.ts +9 -1
- package/dist/commands/log.d.ts.map +1 -1
- package/dist/commands/log.js +19 -1
- package/dist/commands/log.js.map +1 -1
- package/dist/commands/prCommand.d.ts.map +1 -1
- package/dist/commands/prCommand.js +8 -4
- package/dist/commands/prCommand.js.map +1 -1
- package/dist/commands/tag.d.ts +1 -0
- package/dist/commands/tag.d.ts.map +1 -1
- package/dist/commands/tag.js +82 -28
- package/dist/commands/tag.js.map +1 -1
- package/dist/prompts/tag.d.ts +1 -1
- package/dist/prompts/tag.d.ts.map +1 -1
- package/dist/prompts/tag.js +35 -3
- package/dist/prompts/tag.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/ai.ts +19 -3
- package/src/commands/commit.ts +8 -0
- package/src/commands/completion.ts +32 -34
- package/src/commands/git.ts +20 -0
- package/src/commands/history.ts +6 -5
- package/src/commands/log.ts +30 -2
- package/src/commands/prCommand.ts +8 -4
- package/src/commands/tag.ts +98 -30
- package/src/prompts/tag.ts +39 -3
package/dist/commands/log.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
export type LogStatus = 'success' | 'failure' | 'cancelled';
|
|
2
|
+
export interface ProjectInfo {
|
|
3
|
+
name: string;
|
|
4
|
+
path: string;
|
|
5
|
+
gitRemote?: string;
|
|
6
|
+
}
|
|
2
7
|
export interface HistoryEntry {
|
|
3
8
|
id: string;
|
|
4
9
|
timestamp: string;
|
|
@@ -7,11 +12,14 @@ export interface HistoryEntry {
|
|
|
7
12
|
status: LogStatus;
|
|
8
13
|
details?: string;
|
|
9
14
|
durationMs?: number;
|
|
15
|
+
project?: ProjectInfo;
|
|
16
|
+
model?: string;
|
|
10
17
|
}
|
|
11
18
|
export declare class LogService {
|
|
12
|
-
static append(entry: Omit<HistoryEntry, 'id' | 'timestamp'> & {
|
|
19
|
+
static append(entry: Omit<HistoryEntry, 'id' | 'timestamp' | 'project'> & {
|
|
13
20
|
timestamp?: string;
|
|
14
21
|
id?: string;
|
|
22
|
+
model?: string;
|
|
15
23
|
}): Promise<void>;
|
|
16
24
|
static read(limit?: number): Promise<HistoryEntry[]>;
|
|
17
25
|
static clear(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/commands/log.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/commands/log.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgCD,qBAAa,UAAU;WACR,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,WAAW,GAAG,SAAS,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;WAqBtI,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;WAe7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAMpC"}
|
package/dist/commands/log.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.LogService = void 0;
|
|
|
7
7
|
const fs_1 = require("fs");
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const os_1 = __importDefault(require("os"));
|
|
10
|
+
const child_process_1 = require("child_process");
|
|
10
11
|
function getStorageDir() {
|
|
11
12
|
const override = process.env.GIT_AI_COMMIT_CONFIG_PATH;
|
|
12
13
|
return override ? path_1.default.dirname(path_1.default.resolve(override)) : path_1.default.join(os_1.default.homedir(), '.git-ai-commit');
|
|
@@ -17,6 +18,21 @@ function getHistoryPath() {
|
|
|
17
18
|
function genId() {
|
|
18
19
|
return `${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
19
20
|
}
|
|
21
|
+
function getProjectInfo() {
|
|
22
|
+
const cwd = process.cwd();
|
|
23
|
+
const name = path_1.default.basename(cwd);
|
|
24
|
+
let gitRemote;
|
|
25
|
+
try {
|
|
26
|
+
gitRemote = (0, child_process_1.execSync)('git config --get remote.origin.url', {
|
|
27
|
+
encoding: 'utf-8',
|
|
28
|
+
stdio: ['pipe', 'pipe', 'pipe']
|
|
29
|
+
}).trim() || undefined;
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
// Not a git repo or no remote
|
|
33
|
+
}
|
|
34
|
+
return { name, path: cwd, gitRemote };
|
|
35
|
+
}
|
|
20
36
|
class LogService {
|
|
21
37
|
static async append(entry) {
|
|
22
38
|
const file = getHistoryPath();
|
|
@@ -29,7 +45,9 @@ class LogService {
|
|
|
29
45
|
args: entry.args,
|
|
30
46
|
status: entry.status,
|
|
31
47
|
details: entry.details,
|
|
32
|
-
durationMs: entry.durationMs
|
|
48
|
+
durationMs: entry.durationMs,
|
|
49
|
+
project: getProjectInfo(),
|
|
50
|
+
model: entry.model
|
|
33
51
|
};
|
|
34
52
|
const line = JSON.stringify(finalized) + '\n';
|
|
35
53
|
await fs_1.promises.appendFile(file, line, 'utf-8');
|
package/dist/commands/log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/commands/log.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAoC;AACpC,gDAAwB;AACxB,4CAAoB;
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/commands/log.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prCommand.d.ts","sourceRoot":"","sources":["../../src/commands/prCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAU;;YAaX,iBAAiB;
|
|
1
|
+
{"version":3,"file":"prCommand.d.ts","sourceRoot":"","sources":["../../src/commands/prCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAU;;YAaX,iBAAiB;IA+E/B,UAAU,IAAI,OAAO;CAGtB"}
|
|
@@ -36,7 +36,8 @@ class PullRequestCommand {
|
|
|
36
36
|
command: 'pr',
|
|
37
37
|
args: { ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
38
38
|
status: 'failure',
|
|
39
|
-
details: err
|
|
39
|
+
details: err,
|
|
40
|
+
model: mergedModel
|
|
40
41
|
});
|
|
41
42
|
process.exit(1);
|
|
42
43
|
return;
|
|
@@ -56,7 +57,8 @@ class PullRequestCommand {
|
|
|
56
57
|
command: 'pr',
|
|
57
58
|
args: { ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
58
59
|
status: 'failure',
|
|
59
|
-
details: err
|
|
60
|
+
details: err,
|
|
61
|
+
model: mergedModel
|
|
60
62
|
});
|
|
61
63
|
process.exit(1);
|
|
62
64
|
return;
|
|
@@ -65,7 +67,8 @@ class PullRequestCommand {
|
|
|
65
67
|
await log_1.LogService.append({
|
|
66
68
|
command: 'pr',
|
|
67
69
|
args: { ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
68
|
-
status: 'success'
|
|
70
|
+
status: 'success',
|
|
71
|
+
model: mergedModel
|
|
69
72
|
});
|
|
70
73
|
}
|
|
71
74
|
catch (error) {
|
|
@@ -75,7 +78,8 @@ class PullRequestCommand {
|
|
|
75
78
|
command: 'pr',
|
|
76
79
|
args: { ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
77
80
|
status: 'failure',
|
|
78
|
-
details: message
|
|
81
|
+
details: message,
|
|
82
|
+
model: options.model
|
|
79
83
|
});
|
|
80
84
|
process.exit(1);
|
|
81
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prCommand.js","sourceRoot":"","sources":["../../src/commands/prCommand.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,+BAAmC;AACnC,6BAAiC;AACjC,qCAAyC;AACzC,+BAAmC;AAWnC,MAAa,kBAAkB;IAG7B;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAO,CAAC,IAAI,CAAC;aAC7B,WAAW,CAAC,mEAAmE,CAAC;aAChF,cAAc,CAAC,iBAAiB,EAAE,yCAAyC,CAAC;aAC5E,cAAc,CAAC,oBAAoB,EAAE,qDAAqD,CAAC;aAC3F,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;aAC9D,MAAM,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;aACvD,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;aAC3D,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,OAA2B;QACzD,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,sBAAa,CAAC,SAAS,EAAE,CAAC;YAEjD,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC;YAC7D,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;YAC3D,MAAM,aAAa,GAAG,eAAe,IAAI,cAAc,CAAC,OAAO,CAAC;YAChE,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,cAAc,CAAC,KAAK,CAAC;YAE1D,sBAAa,CAAC,cAAc,CAAC;gBAC3B,MAAM,EAAE,YAAY;gBACpB,QAAQ,EAAE,cAAc,CAAC,QAAQ;aAClC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,MAAM,gBAAU,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAEjF,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBAC5C,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,IAAI,mDAAmD,CAAC;gBACpF,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAC7B,MAAM,gBAAU,CAAC,MAAM,CAAC;oBACtB,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE;oBAChE,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"prCommand.js","sourceRoot":"","sources":["../../src/commands/prCommand.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,+BAAmC;AACnC,6BAAiC;AACjC,qCAAyC;AACzC,+BAAmC;AAWnC,MAAa,kBAAkB;IAG7B;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAO,CAAC,IAAI,CAAC;aAC7B,WAAW,CAAC,mEAAmE,CAAC;aAChF,cAAc,CAAC,iBAAiB,EAAE,yCAAyC,CAAC;aAC5E,cAAc,CAAC,oBAAoB,EAAE,qDAAqD,CAAC;aAC3F,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;aAC9D,MAAM,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;aACvD,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;aAC3D,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,OAA2B;QACzD,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,sBAAa,CAAC,SAAS,EAAE,CAAC;YAEjD,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC;YAC7D,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;YAC3D,MAAM,aAAa,GAAG,eAAe,IAAI,cAAc,CAAC,OAAO,CAAC;YAChE,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,cAAc,CAAC,KAAK,CAAC;YAE1D,sBAAa,CAAC,cAAc,CAAC;gBAC3B,MAAM,EAAE,YAAY;gBACpB,QAAQ,EAAE,cAAc,CAAC,QAAQ;aAClC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,MAAM,gBAAU,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAEjF,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBAC5C,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,IAAI,mDAAmD,CAAC;gBACpF,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAC7B,MAAM,gBAAU,CAAC,MAAM,CAAC;oBACtB,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE;oBAChE,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,GAAG;oBACZ,KAAK,EAAE,WAAW;iBACnB,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,cAAS,CAAC;gBAC9B,MAAM,EAAE,YAAa;gBACrB,OAAO,EAAE,aAAa;gBACtB,KAAK,EAAE,WAAW;gBAClB,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,0BAA0B,CACzD,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,OAAO,EACf,UAAU,CAAC,IAAI,CAChB,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,IAAI,0CAA0C,CAAC;gBACzE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAC7B,MAAM,gBAAU,CAAC,MAAM,CAAC;oBACtB,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE;oBAChE,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,GAAG;oBACZ,KAAK,EAAE,WAAW;iBACnB,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9B,MAAM,gBAAU,CAAC,MAAM,CAAC;gBACtB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE;gBAChE,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjC,MAAM,gBAAU,CAAC,MAAM,CAAC;gBACtB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE;gBAChE,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAhGD,gDAgGC"}
|
package/dist/commands/tag.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/commands/tag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAU;;IAiBzB,OAAO,CAAC,eAAe;YAoBT,SAAS;
|
|
1
|
+
{"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/commands/tag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAU;;IAiBzB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,eAAe;YAoBT,SAAS;YAiTT,oBAAoB;YA+CpB,gBAAgB;YAgBhB,gBAAgB;YAgBhB,sBAAsB;YAgBtB,gBAAgB;IAgB9B,UAAU,IAAI,OAAO;CAGtB"}
|
package/dist/commands/tag.js
CHANGED
|
@@ -14,7 +14,7 @@ class TagCommand {
|
|
|
14
14
|
constructor() {
|
|
15
15
|
this.program = new commander_1.Command('tag')
|
|
16
16
|
.description('Create an annotated git tag with optional AI-generated notes')
|
|
17
|
-
.argument('
|
|
17
|
+
.argument('[name]', 'Tag name to create (auto-increments patch version if omitted)')
|
|
18
18
|
.option('-k, --api-key <key>', 'OpenAI API key (overrides env var)')
|
|
19
19
|
.option('--base-url <url>', 'Custom API base URL (overrides env var)')
|
|
20
20
|
.option('-m, --model <model>', 'Model to use (overrides env var)')
|
|
@@ -25,6 +25,16 @@ class TagCommand {
|
|
|
25
25
|
await this.handleTag(tagName, options);
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
|
+
incrementPatchVersion(version) {
|
|
29
|
+
// Match semver patterns: v1.2.3, 1.2.3, v1.2.3-beta, etc.
|
|
30
|
+
const match = version.match(/^(v?)(\d+)\.(\d+)\.(\d+)(.*)$/);
|
|
31
|
+
if (!match) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
const [, prefix, major, minor, patch, suffix] = match;
|
|
35
|
+
const newPatch = parseInt(patch, 10) + 1;
|
|
36
|
+
return `${prefix}${major}.${minor}.${newPatch}${suffix}`;
|
|
37
|
+
}
|
|
28
38
|
resolveAIConfig(options) {
|
|
29
39
|
const storedConfig = config_1.ConfigService.getConfig();
|
|
30
40
|
const mergedApiKey = options.apiKey || storedConfig.apiKey;
|
|
@@ -42,23 +52,48 @@ class TagCommand {
|
|
|
42
52
|
};
|
|
43
53
|
}
|
|
44
54
|
async handleTag(tagName, options) {
|
|
45
|
-
const
|
|
55
|
+
const storedConfig = config_1.ConfigService.getConfig();
|
|
56
|
+
const mergedModel = options.model || storedConfig.model;
|
|
57
|
+
let trimmedName = tagName?.trim();
|
|
58
|
+
// If no tag name provided, auto-increment from latest tag
|
|
46
59
|
if (!trimmedName) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
60
|
+
const latestTagResult = await git_1.GitService.getLatestTag();
|
|
61
|
+
if (!latestTagResult.success || !latestTagResult.tag) {
|
|
62
|
+
console.error('No existing tags found. Please provide a tag name explicitly.');
|
|
63
|
+
await log_1.LogService.append({
|
|
64
|
+
command: 'tag',
|
|
65
|
+
args: { ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
66
|
+
status: 'failure',
|
|
67
|
+
details: 'no existing tags found for auto-increment',
|
|
68
|
+
model: mergedModel
|
|
69
|
+
});
|
|
70
|
+
process.exit(1);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const newVersion = this.incrementPatchVersion(latestTagResult.tag);
|
|
74
|
+
if (!newVersion) {
|
|
75
|
+
console.error(`Cannot parse version from tag "${latestTagResult.tag}". Please provide a tag name explicitly.`);
|
|
76
|
+
await log_1.LogService.append({
|
|
77
|
+
command: 'tag',
|
|
78
|
+
args: { ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
79
|
+
status: 'failure',
|
|
80
|
+
details: `cannot parse version from tag: ${latestTagResult.tag}`,
|
|
81
|
+
model: mergedModel
|
|
82
|
+
});
|
|
83
|
+
process.exit(1);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
console.log(`Latest tag: ${latestTagResult.tag}`);
|
|
87
|
+
console.log(`New tag: ${newVersion}`);
|
|
88
|
+
trimmedName = newVersion;
|
|
56
89
|
}
|
|
57
90
|
// Check if tag already exists locally
|
|
58
91
|
const localTagExists = await git_1.GitService.tagExists(trimmedName);
|
|
59
92
|
let remoteTagExists = false;
|
|
60
|
-
let
|
|
93
|
+
let previousTagMessage = null;
|
|
61
94
|
if (localTagExists) {
|
|
95
|
+
// Get existing tag message before deletion for reference
|
|
96
|
+
previousTagMessage = await git_1.GitService.getTagMessage(trimmedName);
|
|
62
97
|
console.log(`⚠️ Tag ${trimmedName} already exists locally.`);
|
|
63
98
|
const shouldDelete = await this.confirmTagDelete(trimmedName);
|
|
64
99
|
if (!shouldDelete) {
|
|
@@ -67,7 +102,8 @@ class TagCommand {
|
|
|
67
102
|
command: 'tag',
|
|
68
103
|
args: { name: trimmedName, ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
69
104
|
status: 'cancelled',
|
|
70
|
-
details: 'user declined to replace existing tag'
|
|
105
|
+
details: 'user declined to replace existing tag',
|
|
106
|
+
model: mergedModel
|
|
71
107
|
});
|
|
72
108
|
return;
|
|
73
109
|
}
|
|
@@ -85,7 +121,8 @@ class TagCommand {
|
|
|
85
121
|
command: 'tag',
|
|
86
122
|
args: { name: trimmedName, ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
87
123
|
status: 'failure',
|
|
88
|
-
details: 'remote tag deletion failed'
|
|
124
|
+
details: 'remote tag deletion failed',
|
|
125
|
+
model: mergedModel
|
|
89
126
|
});
|
|
90
127
|
process.exit(1);
|
|
91
128
|
return;
|
|
@@ -103,13 +140,13 @@ class TagCommand {
|
|
|
103
140
|
command: 'tag',
|
|
104
141
|
args: { name: trimmedName, ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
105
142
|
status: 'failure',
|
|
106
|
-
details: 'local tag deletion failed'
|
|
143
|
+
details: 'local tag deletion failed',
|
|
144
|
+
model: mergedModel
|
|
107
145
|
});
|
|
108
146
|
process.exit(1);
|
|
109
147
|
return;
|
|
110
148
|
}
|
|
111
149
|
console.log(`✅ Local tag ${trimmedName} deleted`);
|
|
112
|
-
wasTagReplaced = true;
|
|
113
150
|
}
|
|
114
151
|
let tagMessage = options.message?.trim();
|
|
115
152
|
if (!tagMessage) {
|
|
@@ -125,6 +162,14 @@ class TagCommand {
|
|
|
125
162
|
console.log('No existing tag found; using entire commit history.');
|
|
126
163
|
}
|
|
127
164
|
}
|
|
165
|
+
// Get style reference from base tag (if different from current tag being replaced)
|
|
166
|
+
let styleReferenceMessage = null;
|
|
167
|
+
if (baseTag && baseTag !== trimmedName) {
|
|
168
|
+
styleReferenceMessage = await git_1.GitService.getTagMessage(baseTag);
|
|
169
|
+
if (styleReferenceMessage) {
|
|
170
|
+
console.log(`Using ${baseTag} message as style reference.`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
128
173
|
const historyResult = await git_1.GitService.getCommitSummariesSince(baseTag);
|
|
129
174
|
if (!historyResult.success || !historyResult.log) {
|
|
130
175
|
console.error('Error:', historyResult.error ?? 'Unable to read commit history.');
|
|
@@ -132,7 +177,8 @@ class TagCommand {
|
|
|
132
177
|
command: 'tag',
|
|
133
178
|
args: { name: trimmedName, ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
134
179
|
status: 'failure',
|
|
135
|
-
details: historyResult.error ?? 'Unable to read commit history.'
|
|
180
|
+
details: historyResult.error ?? 'Unable to read commit history.',
|
|
181
|
+
model: mergedModel
|
|
136
182
|
});
|
|
137
183
|
process.exit(1);
|
|
138
184
|
return;
|
|
@@ -148,20 +194,22 @@ class TagCommand {
|
|
|
148
194
|
command: 'tag',
|
|
149
195
|
args: { name: trimmedName, ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
150
196
|
status: 'failure',
|
|
151
|
-
details: message
|
|
197
|
+
details: message,
|
|
198
|
+
model: mergedModel
|
|
152
199
|
});
|
|
153
200
|
process.exit(1);
|
|
154
201
|
return;
|
|
155
202
|
}
|
|
156
203
|
const aiService = new ai_1.AIService(aiConfig);
|
|
157
|
-
const aiResult = await aiService.generateTagNotes(trimmedName, historyResult.log, options.prompt);
|
|
204
|
+
const aiResult = await aiService.generateTagNotes(trimmedName, historyResult.log, options.prompt, previousTagMessage, styleReferenceMessage);
|
|
158
205
|
if (!aiResult.success || !aiResult.notes) {
|
|
159
206
|
console.error('Error:', aiResult.error ?? 'Failed to generate tag notes.');
|
|
160
207
|
await log_1.LogService.append({
|
|
161
208
|
command: 'tag',
|
|
162
209
|
args: { name: trimmedName, ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
163
210
|
status: 'failure',
|
|
164
|
-
details: aiResult.error ?? 'Failed to generate tag notes.'
|
|
211
|
+
details: aiResult.error ?? 'Failed to generate tag notes.',
|
|
212
|
+
model: mergedModel
|
|
165
213
|
});
|
|
166
214
|
process.exit(1);
|
|
167
215
|
return;
|
|
@@ -178,7 +226,8 @@ class TagCommand {
|
|
|
178
226
|
command: 'tag',
|
|
179
227
|
args: { name: trimmedName, ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
180
228
|
status: 'cancelled',
|
|
181
|
-
details: 'user declined tag creation'
|
|
229
|
+
details: 'user declined tag creation',
|
|
230
|
+
model: mergedModel
|
|
182
231
|
});
|
|
183
232
|
return;
|
|
184
233
|
}
|
|
@@ -190,7 +239,8 @@ class TagCommand {
|
|
|
190
239
|
command: 'tag',
|
|
191
240
|
args: { name: trimmedName, ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
192
241
|
status: 'failure',
|
|
193
|
-
details: 'git tag creation failed'
|
|
242
|
+
details: 'git tag creation failed',
|
|
243
|
+
model: mergedModel
|
|
194
244
|
});
|
|
195
245
|
process.exit(1);
|
|
196
246
|
return;
|
|
@@ -204,8 +254,8 @@ class TagCommand {
|
|
|
204
254
|
else {
|
|
205
255
|
const selectedRemotes = await this.selectRemotesForPush(trimmedName, remotes);
|
|
206
256
|
if (selectedRemotes && selectedRemotes.length > 0) {
|
|
207
|
-
// If tag
|
|
208
|
-
const needsForcePush =
|
|
257
|
+
// If remote tag still exists (user declined to delete), use force push
|
|
258
|
+
const needsForcePush = remoteTagExists;
|
|
209
259
|
if (needsForcePush) {
|
|
210
260
|
console.log(`\n⚠️ Tag ${trimmedName} may exist on remote. Force push is required.`);
|
|
211
261
|
const shouldForcePush = await this.confirmForcePush(trimmedName);
|
|
@@ -215,7 +265,8 @@ class TagCommand {
|
|
|
215
265
|
command: 'tag',
|
|
216
266
|
args: { name: trimmedName, ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
217
267
|
status: 'cancelled',
|
|
218
|
-
details: 'user declined force push'
|
|
268
|
+
details: 'user declined force push',
|
|
269
|
+
model: mergedModel
|
|
219
270
|
});
|
|
220
271
|
return;
|
|
221
272
|
}
|
|
@@ -231,7 +282,8 @@ class TagCommand {
|
|
|
231
282
|
command: 'tag',
|
|
232
283
|
args: { name: trimmedName, ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
233
284
|
status: 'failure',
|
|
234
|
-
details: `tag force push to ${remote} failed
|
|
285
|
+
details: `tag force push to ${remote} failed`,
|
|
286
|
+
model: mergedModel
|
|
235
287
|
});
|
|
236
288
|
}
|
|
237
289
|
}
|
|
@@ -249,7 +301,8 @@ class TagCommand {
|
|
|
249
301
|
command: 'tag',
|
|
250
302
|
args: { name: trimmedName, ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
251
303
|
status: 'failure',
|
|
252
|
-
details: `tag push to ${remote} failed
|
|
304
|
+
details: `tag push to ${remote} failed`,
|
|
305
|
+
model: mergedModel
|
|
253
306
|
});
|
|
254
307
|
}
|
|
255
308
|
}
|
|
@@ -259,7 +312,8 @@ class TagCommand {
|
|
|
259
312
|
await log_1.LogService.append({
|
|
260
313
|
command: 'tag',
|
|
261
314
|
args: { name: trimmedName, ...options, apiKey: options.apiKey ? '***' : undefined },
|
|
262
|
-
status: 'success'
|
|
315
|
+
status: 'success',
|
|
316
|
+
model: mergedModel
|
|
263
317
|
});
|
|
264
318
|
}
|
|
265
319
|
async selectRemotesForPush(tagName, remotes) {
|
package/dist/commands/tag.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/commands/tag.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/commands/tag.ts"],"names":[],"mappings":"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"}
|
package/dist/prompts/tag.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export type TagPromptLanguage = 'ko' | 'en';
|
|
2
|
-
export declare const generateTagPrompt: (tagName: string, customInstructions?: string, language?: TagPromptLanguage) => string;
|
|
2
|
+
export declare const generateTagPrompt: (tagName: string, customInstructions?: string, language?: TagPromptLanguage, isImprovement?: boolean, hasStyleReference?: boolean) => string;
|
|
3
3
|
//# sourceMappingURL=tag.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/prompts/tag.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,2BAAuB,EACvB,WAAU,iBAAwB,
|
|
1
|
+
{"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/prompts/tag.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,2BAAuB,EACvB,WAAU,iBAAwB,EAClC,uBAAqB,EACrB,2BAAyB,KACxB,MA0GF,CAAC"}
|
package/dist/prompts/tag.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateTagPrompt = void 0;
|
|
4
|
-
const generateTagPrompt = (tagName, customInstructions = '', language = 'ko') => {
|
|
4
|
+
const generateTagPrompt = (tagName, customInstructions = '', language = 'ko', isImprovement = false, hasStyleReference = false) => {
|
|
5
5
|
const titleInstruction = language === 'ko'
|
|
6
6
|
? `첫 줄에 버전 "${tagName}"을 제목으로 작성하세요.`
|
|
7
7
|
: `Write the version "${tagName}" as the title on the first line.`;
|
|
@@ -41,15 +41,47 @@ const generateTagPrompt = (tagName, customInstructions = '', language = 'ko') =>
|
|
|
41
41
|
const outputLanguageLine = language === 'ko'
|
|
42
42
|
? '릴리즈 노트를 한국어로 작성하세요.'
|
|
43
43
|
: 'Write the release notes in English.';
|
|
44
|
+
const improvementInstruction = isImprovement
|
|
45
|
+
? language === 'ko'
|
|
46
|
+
? `\n## 개선 모드
|
|
47
|
+
이전 릴리즈 노트가 제공됩니다. 이를 참고하여:
|
|
48
|
+
- 기존 내용의 구조와 스타일을 유지하면서 개선하세요.
|
|
49
|
+
- 누락된 변경사항이 있으면 추가하세요.
|
|
50
|
+
- 불필요하거나 중복된 내용은 제거하세요.
|
|
51
|
+
- 더 명확하고 사용자 친화적인 표현으로 다듬으세요.\n`
|
|
52
|
+
: `\n## Improvement Mode
|
|
53
|
+
Previous release notes are provided. Use them as reference to:
|
|
54
|
+
- Maintain the structure and style while improving the content.
|
|
55
|
+
- Add any missing changes from the commit log.
|
|
56
|
+
- Remove unnecessary or redundant content.
|
|
57
|
+
- Refine the language to be clearer and more user-friendly.\n`
|
|
58
|
+
: '';
|
|
59
|
+
const styleReferenceInstruction = hasStyleReference && !isImprovement
|
|
60
|
+
? language === 'ko'
|
|
61
|
+
? `\n## 스타일 참조
|
|
62
|
+
이전 태그의 릴리즈 노트가 스타일 참조용으로 제공됩니다.
|
|
63
|
+
- 제공된 형식과 구조를 따르세요.
|
|
64
|
+
- 제목, 카테고리, 항목 스타일을 일관되게 유지하세요.
|
|
65
|
+
- 언어 톤과 상세도 수준을 맞추세요.\n`
|
|
66
|
+
: `\n## Style Reference
|
|
67
|
+
A previous tag's release notes are provided as style reference.
|
|
68
|
+
- Follow the provided format and structure.
|
|
69
|
+
- Maintain consistency in title, categories, and item styles.
|
|
70
|
+
- Match the language tone and level of detail.\n`
|
|
71
|
+
: '';
|
|
44
72
|
return `You are an experienced release manager. Produce clear, user-facing release notes in GitHub Release style.
|
|
45
73
|
|
|
46
74
|
## Objective
|
|
47
|
-
|
|
75
|
+
${isImprovement
|
|
76
|
+
? `Improve the existing release notes for ${tagName} based on the commit history and previous notes.`
|
|
77
|
+
: `Create release notes for ${tagName} that describe the meaningful changes since the previous release.`}
|
|
48
78
|
|
|
49
79
|
## Input Context
|
|
50
80
|
- Target tag to publish: ${tagName}
|
|
51
81
|
- Commit history between the previous tag and ${tagName} will be supplied in the user message.
|
|
52
|
-
|
|
82
|
+
${isImprovement ? '- Previous release notes are provided for improvement.' : ''}
|
|
83
|
+
${hasStyleReference && !isImprovement ? '- Style reference from previous tag is provided.' : ''}
|
|
84
|
+
${improvementInstruction}${styleReferenceInstruction}
|
|
53
85
|
${customInstructions ? `## Additional Instructions\n${customInstructions}\n` : ''}
|
|
54
86
|
## Output Format (GitHub Release Style)
|
|
55
87
|
${titleInstruction}
|
package/dist/prompts/tag.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/prompts/tag.ts"],"names":[],"mappings":";;;AAEO,MAAM,iBAAiB,GAAG,CAC/B,OAAe,EACf,kBAAkB,GAAG,EAAE,EACvB,WAA8B,IAAI,
|
|
1
|
+
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/prompts/tag.ts"],"names":[],"mappings":";;;AAEO,MAAM,iBAAiB,GAAG,CAC/B,OAAe,EACf,kBAAkB,GAAG,EAAE,EACvB,WAA8B,IAAI,EAClC,aAAa,GAAG,KAAK,EACrB,iBAAiB,GAAG,KAAK,EACjB,EAAE;IACV,MAAM,gBAAgB,GAAG,QAAQ,KAAK,IAAI;QACxC,CAAC,CAAC,YAAY,OAAO,gBAAgB;QACrC,CAAC,CAAC,sBAAsB,OAAO,mCAAmC,CAAC;IAErE,MAAM,kBAAkB,GAAG,QAAQ,KAAK,IAAI;QAC1C,CAAC,CAAC,6CAA6C;QAC/C,CAAC,CAAC,yGAAyG,CAAC;IAE9G,MAAM,eAAe,GAAG,QAAQ,KAAK,IAAI;QACvC,CAAC,CAAC,8EAA8E;QAChF,CAAC,CAAC,0IAA0I,CAAC;IAE/I,MAAM,cAAc,GAAG,QAAQ,KAAK,IAAI;QACtC,CAAC,CAAC;;;;;;;;;SASG;QACL,CAAC,CAAC;;;;;;;;;gBASU,CAAC;IAEf,MAAM,wBAAwB,GAAG,QAAQ,KAAK,IAAI;QAChD,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,kCAAkC,CAAC;IAEvC,MAAM,oBAAoB,GAAG,QAAQ,KAAK,IAAI;QAC5C,CAAC,CAAC,mCAAmC;QACrC,CAAC,CAAC,2DAA2D,CAAC;IAEhE,MAAM,kBAAkB,GAAG,QAAQ,KAAK,IAAI;QAC1C,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,qCAAqC,CAAC;IAE1C,MAAM,sBAAsB,GAAG,aAAa;QAC1C,CAAC,CAAC,QAAQ,KAAK,IAAI;YACjB,CAAC,CAAC;;;;;gCAKwB;YAC1B,CAAC,CAAC;;;;;8DAKsD;QAC1D,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,yBAAyB,GAAG,iBAAiB,IAAI,CAAC,aAAa;QACnE,CAAC,CAAC,QAAQ,KAAK,IAAI;YACjB,CAAC,CAAC;;;;wBAIgB;YAClB,CAAC,CAAC;;;;iDAIyC;QAC7C,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;EAGP,aAAa;QACb,CAAC,CAAC,0CAA0C,OAAO,kDAAkD;QACrG,CAAC,CAAC,4BAA4B,OAAO,mEAAmE;;;2BAG/E,OAAO;gDACc,OAAO;EACrD,aAAa,CAAC,CAAC,CAAC,wDAAwD,CAAC,CAAC,CAAC,EAAE;EAC7E,iBAAiB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,EAAE;EAC7F,sBAAsB,GAAG,yBAAyB;EAClD,kBAAkB,CAAC,CAAC,CAAC,+BAA+B,kBAAkB,IAAI,CAAC,CAAC,CAAC,EAAE;;EAE/E,gBAAgB;EAChB,kBAAkB;EAClB,eAAe;;EAEf,cAAc;;;IAGZ,kBAAkB;IAClB,wBAAwB;IACxB,oBAAoB;;;;wEAIgD,CAAC;AACzE,CAAC,CAAC;AAhHW,QAAA,iBAAiB,qBAgH5B"}
|
package/package.json
CHANGED
package/src/commands/ai.ts
CHANGED
|
@@ -355,7 +355,13 @@ export class AIService {
|
|
|
355
355
|
}
|
|
356
356
|
}
|
|
357
357
|
|
|
358
|
-
async generateTagNotes(
|
|
358
|
+
async generateTagNotes(
|
|
359
|
+
tagName: string,
|
|
360
|
+
commitLog: string,
|
|
361
|
+
extraInstructions?: string,
|
|
362
|
+
previousMessage?: string | null,
|
|
363
|
+
styleReference?: string | null
|
|
364
|
+
): Promise<TagGenerationResult> {
|
|
359
365
|
try {
|
|
360
366
|
this.debugLog('Sending request to AI API for tag notes...');
|
|
361
367
|
this.debugLog('Model:', this.model);
|
|
@@ -365,16 +371,26 @@ export class AIService {
|
|
|
365
371
|
? `${extraInstructions.trim()}`
|
|
366
372
|
: '';
|
|
367
373
|
|
|
374
|
+
let userContent = `Commit log:\n${commitLog}`;
|
|
375
|
+
|
|
376
|
+
if (styleReference && !previousMessage) {
|
|
377
|
+
userContent += `\n\n---\nStyle reference (follow this format):\n${styleReference}`;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
if (previousMessage) {
|
|
381
|
+
userContent += `\n\n---\nPrevious release notes for this tag (improve upon this):\n${previousMessage}`;
|
|
382
|
+
}
|
|
383
|
+
|
|
368
384
|
const response = await this.createChatCompletion({
|
|
369
385
|
model: this.model,
|
|
370
386
|
messages: [
|
|
371
387
|
{
|
|
372
388
|
role: 'system',
|
|
373
|
-
content: generateTagPrompt(tagName, customInstructions, this.language)
|
|
389
|
+
content: generateTagPrompt(tagName, customInstructions, this.language, !!previousMessage, !!styleReference)
|
|
374
390
|
},
|
|
375
391
|
{
|
|
376
392
|
role: 'user',
|
|
377
|
-
content:
|
|
393
|
+
content: userContent
|
|
378
394
|
}
|
|
379
395
|
],
|
|
380
396
|
max_completion_tokens: 3000
|