@mehmetsagir/git-ai 0.0.26 → 0.0.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -7
- package/dist/commit.d.ts.map +1 -1
- package/dist/commit.js +9 -3
- package/dist/commit.js.map +1 -1
- package/dist/config.d.ts +8 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +46 -0
- package/dist/config.js.map +1 -1
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +38 -1
- package/dist/git.js.map +1 -1
- package/dist/openai.d.ts +10 -0
- package/dist/openai.d.ts.map +1 -1
- package/dist/openai.js +15 -68
- package/dist/openai.js.map +1 -1
- package/dist/providers/gemini.d.ts +12 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +107 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/index.d.ts +5 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +34 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/openai.d.ts +12 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +84 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/types.d.ts +8 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +3 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/providers/zai.d.ts +12 -0
- package/dist/providers/zai.d.ts.map +1 -0
- package/dist/providers/zai.js +104 -0
- package/dist/providers/zai.js.map +1 -0
- package/dist/providers/zhipuai.d.ts +12 -0
- package/dist/providers/zhipuai.d.ts.map +1 -0
- package/dist/providers/zhipuai.js +122 -0
- package/dist/providers/zhipuai.js.map +1 -0
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +89 -18
- package/dist/setup.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +135 -6
- package/dist/ui.js.map +1 -1
- package/package.json +8 -3
|
@@ -0,0 +1,107 @@
|
|
|
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.GeminiProvider = void 0;
|
|
37
|
+
exports.createGeminiProvider = createGeminiProvider;
|
|
38
|
+
const generative_ai_1 = require("@google/generative-ai");
|
|
39
|
+
const prompts = __importStar(require("../prompts"));
|
|
40
|
+
class GeminiProvider {
|
|
41
|
+
constructor(apiKey) {
|
|
42
|
+
this.client = new generative_ai_1.GoogleGenerativeAI(apiKey);
|
|
43
|
+
}
|
|
44
|
+
async analyzeAndGroup(formattedDiff, stats) {
|
|
45
|
+
const model = this.client.getGenerativeModel({
|
|
46
|
+
model: "gemini-3-flash-preview",
|
|
47
|
+
});
|
|
48
|
+
const systemPrompt = prompts.getSystemPrompt();
|
|
49
|
+
const userPrompt = prompts.getUserPrompt(formattedDiff, stats);
|
|
50
|
+
// Combine system and user prompts for Gemini
|
|
51
|
+
const combinedPrompt = `${systemPrompt}\n\n${userPrompt}\n\nRespond ONLY with valid JSON, no markdown formatting.`;
|
|
52
|
+
const result = await model.generateContent({
|
|
53
|
+
contents: [{ role: "user", parts: [{ text: combinedPrompt }] }],
|
|
54
|
+
generationConfig: {
|
|
55
|
+
temperature: 0.3,
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
const response = result.response;
|
|
59
|
+
const content = response.text();
|
|
60
|
+
if (!content) {
|
|
61
|
+
throw new Error("No response from Gemini");
|
|
62
|
+
}
|
|
63
|
+
// Clean up response (remove markdown code blocks if present)
|
|
64
|
+
let cleanContent = content.trim();
|
|
65
|
+
if (cleanContent.startsWith("```json")) {
|
|
66
|
+
cleanContent = cleanContent.replace(/^```json\n/, "").replace(/\n```$/, "");
|
|
67
|
+
}
|
|
68
|
+
else if (cleanContent.startsWith("```")) {
|
|
69
|
+
cleanContent = cleanContent.replace(/^```\n/, "").replace(/\n```$/, "");
|
|
70
|
+
}
|
|
71
|
+
return JSON.parse(cleanContent);
|
|
72
|
+
}
|
|
73
|
+
async generateChangesSummary(diff) {
|
|
74
|
+
const model = this.client.getGenerativeModel({
|
|
75
|
+
model: "gemini-3-flash-preview",
|
|
76
|
+
});
|
|
77
|
+
const systemPrompt = prompts.getChangesSummarySystemPrompt();
|
|
78
|
+
const userPrompt = prompts.getChangesSummaryUserPrompt(diff);
|
|
79
|
+
// Combine system and user prompts for Gemini
|
|
80
|
+
const combinedPrompt = `${systemPrompt}\n\n${userPrompt}\n\nRespond ONLY with valid JSON, no markdown formatting.`;
|
|
81
|
+
const result = await model.generateContent({
|
|
82
|
+
contents: [{ role: "user", parts: [{ text: combinedPrompt }] }],
|
|
83
|
+
generationConfig: {
|
|
84
|
+
temperature: 0.3,
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
const response = result.response;
|
|
88
|
+
const content = response.text();
|
|
89
|
+
if (!content) {
|
|
90
|
+
return { summary: null };
|
|
91
|
+
}
|
|
92
|
+
// Clean up response (remove markdown code blocks if present)
|
|
93
|
+
let cleanContent = content.trim();
|
|
94
|
+
if (cleanContent.startsWith("```json")) {
|
|
95
|
+
cleanContent = cleanContent.replace(/^```json\n/, "").replace(/\n```$/, "");
|
|
96
|
+
}
|
|
97
|
+
else if (cleanContent.startsWith("```")) {
|
|
98
|
+
cleanContent = cleanContent.replace(/^```\n/, "").replace(/\n```$/, "");
|
|
99
|
+
}
|
|
100
|
+
return JSON.parse(cleanContent);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.GeminiProvider = GeminiProvider;
|
|
104
|
+
function createGeminiProvider(apiKey) {
|
|
105
|
+
return new GeminiProvider(apiKey);
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=gemini.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAKtC,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,MAAM,GACb,WAAW,CAWb;AAED,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.createAIProvider = createAIProvider;
|
|
18
|
+
const openai_1 = require("./openai");
|
|
19
|
+
const gemini_1 = require("./gemini");
|
|
20
|
+
const zai_1 = require("./zai");
|
|
21
|
+
function createAIProvider(provider, apiKey) {
|
|
22
|
+
switch (provider) {
|
|
23
|
+
case "openai":
|
|
24
|
+
return (0, openai_1.createOpenAIProvider)(apiKey);
|
|
25
|
+
case "gemini":
|
|
26
|
+
return (0, gemini_1.createGeminiProvider)(apiKey);
|
|
27
|
+
case "zai":
|
|
28
|
+
return (0, zai_1.createZaiProvider)(apiKey);
|
|
29
|
+
default:
|
|
30
|
+
throw new Error(`Unknown provider: ${provider}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
__exportStar(require("./types"), exports);
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAMA,4CAcC;AAlBD,qCAAgD;AAChD,qCAAgD;AAChD,+BAA0C;AAE1C,SAAgB,gBAAgB,CAC9B,QAAoB,EACpB,MAAc;IAEd,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAAC;QACtC,KAAK,QAAQ;YACX,OAAO,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAAC;QACtC,KAAK,KAAK;YACR,OAAO,IAAA,uBAAiB,EAAC,MAAM,CAAC,CAAC;QACnC;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,0CAAwB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AnalysisResult } from "../types";
|
|
2
|
+
import { IAIProvider } from "./types";
|
|
3
|
+
export declare class OpenAIProvider implements IAIProvider {
|
|
4
|
+
private client;
|
|
5
|
+
constructor(apiKey: string);
|
|
6
|
+
analyzeAndGroup(formattedDiff: string, stats: string): Promise<AnalysisResult>;
|
|
7
|
+
generateChangesSummary(diff: string): Promise<{
|
|
8
|
+
summary: string | null;
|
|
9
|
+
}>;
|
|
10
|
+
}
|
|
11
|
+
export declare function createOpenAIProvider(apiKey: string): IAIProvider;
|
|
12
|
+
//# sourceMappingURL=openai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,qBAAa,cAAe,YAAW,WAAW;IAChD,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAIpB,eAAe,CACnB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC;IAmBpB,sBAAsB,CAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAkBvC;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAEhE"}
|
|
@@ -0,0 +1,84 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.OpenAIProvider = void 0;
|
|
40
|
+
exports.createOpenAIProvider = createOpenAIProvider;
|
|
41
|
+
const openai_1 = __importDefault(require("openai"));
|
|
42
|
+
const prompts = __importStar(require("../prompts"));
|
|
43
|
+
class OpenAIProvider {
|
|
44
|
+
constructor(apiKey) {
|
|
45
|
+
this.client = new openai_1.default({ apiKey });
|
|
46
|
+
}
|
|
47
|
+
async analyzeAndGroup(formattedDiff, stats) {
|
|
48
|
+
const response = await this.client.chat.completions.create({
|
|
49
|
+
model: "gpt-4o-mini",
|
|
50
|
+
messages: [
|
|
51
|
+
{ role: "system", content: prompts.getSystemPrompt() },
|
|
52
|
+
{ role: "user", content: prompts.getUserPrompt(formattedDiff, stats) },
|
|
53
|
+
],
|
|
54
|
+
temperature: 0.3,
|
|
55
|
+
response_format: { type: "json_object" },
|
|
56
|
+
});
|
|
57
|
+
const content = response.choices[0]?.message?.content;
|
|
58
|
+
if (!content) {
|
|
59
|
+
throw new Error("No response from OpenAI");
|
|
60
|
+
}
|
|
61
|
+
return JSON.parse(content);
|
|
62
|
+
}
|
|
63
|
+
async generateChangesSummary(diff) {
|
|
64
|
+
const response = await this.client.chat.completions.create({
|
|
65
|
+
model: "gpt-4o-mini",
|
|
66
|
+
messages: [
|
|
67
|
+
{ role: "system", content: prompts.getChangesSummarySystemPrompt() },
|
|
68
|
+
{ role: "user", content: prompts.getChangesSummaryUserPrompt(diff) },
|
|
69
|
+
],
|
|
70
|
+
temperature: 0.3,
|
|
71
|
+
response_format: { type: "json_object" },
|
|
72
|
+
});
|
|
73
|
+
const content = response.choices[0]?.message?.content;
|
|
74
|
+
if (!content) {
|
|
75
|
+
return { summary: null };
|
|
76
|
+
}
|
|
77
|
+
return JSON.parse(content);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.OpenAIProvider = OpenAIProvider;
|
|
81
|
+
function createOpenAIProvider(apiKey) {
|
|
82
|
+
return new OpenAIProvider(apiKey);
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=openai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,oDAEC;AA1DD,oDAA4B;AAC5B,oDAAsC;AAItC,MAAa,cAAc;IAGzB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,aAAqB,EACrB,KAAa;QAEb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACzD,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,EAAE,EAAE;gBACtD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE;aACvE;YACD,WAAW,EAAE,GAAG;YAChB,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;SACzC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,IAAY;QAEZ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACzD,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,6BAA6B,EAAE,EAAE;gBACpE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE;aACrE;YACD,WAAW,EAAE,GAAG;YAChB,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;SACzC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAA+B,CAAC;IAC3D,CAAC;CACF;AAjDD,wCAiDC;AAED,SAAgB,oBAAoB,CAAC,MAAc;IACjD,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AnalysisResult } from "../types";
|
|
2
|
+
export interface IAIProvider {
|
|
3
|
+
analyzeAndGroup(formattedDiff: string, stats: string): Promise<AnalysisResult>;
|
|
4
|
+
generateChangesSummary(diff: string): Promise<{
|
|
5
|
+
summary: string | null;
|
|
6
|
+
}>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,eAAe,CACb,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC,CAAC;IAE3B,sBAAsB,CACpB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;CACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AnalysisResult } from "../types";
|
|
2
|
+
import { IAIProvider } from "./types";
|
|
3
|
+
export declare class ZaiProvider implements IAIProvider {
|
|
4
|
+
private client;
|
|
5
|
+
constructor(apiKey: string);
|
|
6
|
+
analyzeAndGroup(formattedDiff: string, stats: string): Promise<AnalysisResult>;
|
|
7
|
+
generateChangesSummary(diff: string): Promise<{
|
|
8
|
+
summary: string | null;
|
|
9
|
+
}>;
|
|
10
|
+
}
|
|
11
|
+
export declare function createZaiProvider(apiKey: string): IAIProvider;
|
|
12
|
+
//# sourceMappingURL=zai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zai.d.ts","sourceRoot":"","sources":["../../src/providers/zai.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,qBAAa,WAAY,YAAW,WAAW;IAC7C,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAQpB,eAAe,CACnB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC;IA2BpB,sBAAsB,CAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CA0BvC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAE7D"}
|
|
@@ -0,0 +1,104 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.ZaiProvider = void 0;
|
|
40
|
+
exports.createZaiProvider = createZaiProvider;
|
|
41
|
+
const openai_1 = __importDefault(require("openai"));
|
|
42
|
+
const prompts = __importStar(require("../prompts"));
|
|
43
|
+
class ZaiProvider {
|
|
44
|
+
constructor(apiKey) {
|
|
45
|
+
// z.ai uses OpenAI-compatible API with GLM models
|
|
46
|
+
this.client = new openai_1.default({
|
|
47
|
+
apiKey,
|
|
48
|
+
baseURL: "https://api.z.ai/api/paas/v4",
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
async analyzeAndGroup(formattedDiff, stats) {
|
|
52
|
+
try {
|
|
53
|
+
const systemPrompt = prompts.getSystemPrompt();
|
|
54
|
+
const userPrompt = prompts.getUserPrompt(formattedDiff, stats);
|
|
55
|
+
const response = await this.client.chat.completions.create({
|
|
56
|
+
model: "GLM-4.7", // z.ai GLM-4.7 model
|
|
57
|
+
messages: [
|
|
58
|
+
{ role: "system", content: systemPrompt },
|
|
59
|
+
{ role: "user", content: userPrompt },
|
|
60
|
+
],
|
|
61
|
+
temperature: 0.3,
|
|
62
|
+
response_format: { type: "json_object" },
|
|
63
|
+
});
|
|
64
|
+
const content = response.choices[0]?.message?.content;
|
|
65
|
+
if (!content) {
|
|
66
|
+
throw new Error("No response from z.ai");
|
|
67
|
+
}
|
|
68
|
+
return JSON.parse(content);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
console.error("z.ai Error Details:", error);
|
|
72
|
+
throw new Error(`z.ai Error: ${error.message || error.toString()}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async generateChangesSummary(diff) {
|
|
76
|
+
try {
|
|
77
|
+
const systemPrompt = prompts.getChangesSummarySystemPrompt();
|
|
78
|
+
const userPrompt = prompts.getChangesSummaryUserPrompt(diff);
|
|
79
|
+
const response = await this.client.chat.completions.create({
|
|
80
|
+
model: "GLM-4.7",
|
|
81
|
+
messages: [
|
|
82
|
+
{ role: "system", content: systemPrompt },
|
|
83
|
+
{ role: "user", content: userPrompt },
|
|
84
|
+
],
|
|
85
|
+
temperature: 0.3,
|
|
86
|
+
response_format: { type: "json_object" },
|
|
87
|
+
});
|
|
88
|
+
const content = response.choices[0]?.message?.content;
|
|
89
|
+
if (!content) {
|
|
90
|
+
return { summary: null };
|
|
91
|
+
}
|
|
92
|
+
return JSON.parse(content);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
console.error("z.ai Summary Error:", error);
|
|
96
|
+
return { summary: null };
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.ZaiProvider = ZaiProvider;
|
|
101
|
+
function createZaiProvider(apiKey) {
|
|
102
|
+
return new ZaiProvider(apiKey);
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=zai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zai.js","sourceRoot":"","sources":["../../src/providers/zai.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4EA,8CAEC;AA9ED,oDAA4B;AAC5B,oDAAsC;AAItC,MAAa,WAAW;IAGtB,YAAY,MAAc;QACxB,kDAAkD;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC;YACvB,MAAM;YACN,OAAO,EAAE,8BAA8B;SACxC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,aAAqB,EACrB,KAAa;QAEb,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YAE/D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACzD,KAAK,EAAE,SAAS,EAAE,qBAAqB;gBACvC,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;oBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;iBACtC;gBACD,WAAW,EAAE,GAAG;gBAChB,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;aACzC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;YACtD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YAED,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,IAAY;QAEZ,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC;YAC7D,MAAM,UAAU,GAAG,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;YAE7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACzD,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;oBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;iBACtC;gBACD,WAAW,EAAE,GAAG;gBAChB,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;aACzC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;YACtD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,CAAC;YAED,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAA+B,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;CACF;AArED,kCAqEC;AAED,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AnalysisResult } from "../types";
|
|
2
|
+
import { IAIProvider } from "./types";
|
|
3
|
+
export declare class ZhipuAIProvider implements IAIProvider {
|
|
4
|
+
private client;
|
|
5
|
+
constructor(apiKey: string);
|
|
6
|
+
analyzeAndGroup(formattedDiff: string, stats: string): Promise<AnalysisResult>;
|
|
7
|
+
generateChangesSummary(diff: string): Promise<{
|
|
8
|
+
summary: string | null;
|
|
9
|
+
}>;
|
|
10
|
+
}
|
|
11
|
+
export declare function createZhipuAIProvider(apiKey: string): IAIProvider;
|
|
12
|
+
//# sourceMappingURL=zhipuai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zhipuai.d.ts","sourceRoot":"","sources":["../../src/providers/zhipuai.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,MAAM,CAAU;gBAEZ,MAAM,EAAE,MAAM;IAIpB,eAAe,CACnB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC;IA0CpB,sBAAsB,CAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAoCvC;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAEjE"}
|
|
@@ -0,0 +1,122 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.ZhipuAIProvider = void 0;
|
|
40
|
+
exports.createZhipuAIProvider = createZhipuAIProvider;
|
|
41
|
+
const zhipuai_sdk_nodejs_v4_1 = __importDefault(require("zhipuai-sdk-nodejs-v4"));
|
|
42
|
+
const prompts = __importStar(require("../prompts"));
|
|
43
|
+
class ZhipuAIProvider {
|
|
44
|
+
constructor(apiKey) {
|
|
45
|
+
this.client = new zhipuai_sdk_nodejs_v4_1.default({ apiKey });
|
|
46
|
+
}
|
|
47
|
+
async analyzeAndGroup(formattedDiff, stats) {
|
|
48
|
+
try {
|
|
49
|
+
const systemPrompt = prompts.getSystemPrompt();
|
|
50
|
+
const userPrompt = prompts.getUserPrompt(formattedDiff, stats);
|
|
51
|
+
const response = await this.client.createCompletions({
|
|
52
|
+
model: "glm-4-flash",
|
|
53
|
+
messages: [
|
|
54
|
+
{ role: "system", content: systemPrompt },
|
|
55
|
+
{ role: "user", content: userPrompt },
|
|
56
|
+
],
|
|
57
|
+
temperature: 0.3,
|
|
58
|
+
});
|
|
59
|
+
// Log response for debugging
|
|
60
|
+
console.log("ZhipuAI Response Type:", typeof response);
|
|
61
|
+
console.log("ZhipuAI Response Keys:", Object.keys(response || {}));
|
|
62
|
+
const content = response?.choices?.[0]?.message?.content ||
|
|
63
|
+
response?.data?.choices?.[0]?.message?.content ||
|
|
64
|
+
response?.message?.content;
|
|
65
|
+
if (!content) {
|
|
66
|
+
console.error("Full ZhipuAI response:", JSON.stringify(response, null, 2));
|
|
67
|
+
throw new Error("No response from ZhipuAI - check API key and model availability");
|
|
68
|
+
}
|
|
69
|
+
// Clean up response (remove markdown code blocks if present)
|
|
70
|
+
let cleanContent = content.trim();
|
|
71
|
+
if (cleanContent.startsWith("```json")) {
|
|
72
|
+
cleanContent = cleanContent.replace(/^```json\n/, "").replace(/\n```$/, "");
|
|
73
|
+
}
|
|
74
|
+
else if (cleanContent.startsWith("```")) {
|
|
75
|
+
cleanContent = cleanContent.replace(/^```\n/, "").replace(/\n```$/, "");
|
|
76
|
+
}
|
|
77
|
+
return JSON.parse(cleanContent);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
console.error("ZhipuAI Error Details:", error);
|
|
81
|
+
throw new Error(`ZhipuAI Error: ${error.message || error.toString()}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async generateChangesSummary(diff) {
|
|
85
|
+
try {
|
|
86
|
+
const systemPrompt = prompts.getChangesSummarySystemPrompt();
|
|
87
|
+
const userPrompt = prompts.getChangesSummaryUserPrompt(diff);
|
|
88
|
+
const response = await this.client.createCompletions({
|
|
89
|
+
model: "glm-4-flash",
|
|
90
|
+
messages: [
|
|
91
|
+
{ role: "system", content: systemPrompt },
|
|
92
|
+
{ role: "user", content: userPrompt },
|
|
93
|
+
],
|
|
94
|
+
temperature: 0.3,
|
|
95
|
+
});
|
|
96
|
+
const content = response?.choices?.[0]?.message?.content ||
|
|
97
|
+
response?.data?.choices?.[0]?.message?.content ||
|
|
98
|
+
response?.message?.content;
|
|
99
|
+
if (!content) {
|
|
100
|
+
return { summary: null };
|
|
101
|
+
}
|
|
102
|
+
// Clean up response (remove markdown code blocks if present)
|
|
103
|
+
let cleanContent = content.trim();
|
|
104
|
+
if (cleanContent.startsWith("```json")) {
|
|
105
|
+
cleanContent = cleanContent.replace(/^```json\n/, "").replace(/\n```$/, "");
|
|
106
|
+
}
|
|
107
|
+
else if (cleanContent.startsWith("```")) {
|
|
108
|
+
cleanContent = cleanContent.replace(/^```\n/, "").replace(/\n```$/, "");
|
|
109
|
+
}
|
|
110
|
+
return JSON.parse(cleanContent);
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
console.error("ZhipuAI Summary Error:", error);
|
|
114
|
+
return { summary: null };
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
exports.ZhipuAIProvider = ZhipuAIProvider;
|
|
119
|
+
function createZhipuAIProvider(apiKey) {
|
|
120
|
+
return new ZhipuAIProvider(apiKey);
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=zhipuai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zhipuai.js","sourceRoot":"","sources":["../../src/providers/zhipuai.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAIA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAIA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAmH9C"}
|