orcommit 1.1.0 → 1.1.2
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 +9 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +15 -11
- package/dist/cli.js.map +1 -1
- package/dist/modules/api.d.ts.map +1 -1
- package/dist/modules/api.js +31 -16
- package/dist/modules/api.js.map +1 -1
- package/dist/modules/auto-updater.d.ts +56 -0
- package/dist/modules/auto-updater.d.ts.map +1 -0
- package/dist/modules/auto-updater.js +224 -0
- package/dist/modules/auto-updater.js.map +1 -0
- package/dist/modules/core.d.ts +10 -0
- package/dist/modules/core.d.ts.map +1 -1
- package/dist/modules/core.js +92 -14
- package/dist/modules/core.js.map +1 -1
- package/dist/modules/diff-filter.d.ts +9 -0
- package/dist/modules/diff-filter.d.ts.map +1 -1
- package/dist/modules/diff-filter.js +103 -14
- package/dist/modules/diff-filter.js.map +1 -1
- package/dist/modules/file-selector.d.ts +65 -0
- package/dist/modules/file-selector.d.ts.map +1 -0
- package/dist/modules/file-selector.js +328 -0
- package/dist/modules/file-selector.js.map +1 -0
- package/dist/modules/git.d.ts +12 -0
- package/dist/modules/git.d.ts.map +1 -1
- package/dist/modules/git.js +44 -0
- package/dist/modules/git.js.map +1 -1
- package/dist/modules/tokenizer.d.ts.map +1 -1
- package/dist/modules/tokenizer.js +6 -4
- package/dist/modules/tokenizer.js.map +1 -1
- package/dist/utils/formatting.d.ts +5 -0
- package/dist/utils/formatting.d.ts.map +1 -1
- package/dist/utils/formatting.js +38 -5
- package/dist/utils/formatting.js.map +1 -1
- package/package.json +1 -1
package/dist/utils/formatting.js
CHANGED
|
@@ -7,9 +7,10 @@
|
|
|
7
7
|
export function cleanText(text) {
|
|
8
8
|
return text
|
|
9
9
|
.trim() // Remove leading/trailing whitespace
|
|
10
|
+
.replace(/\r\n/g, '\n') // Normalize line endings first
|
|
10
11
|
.replace(/ +/g, ' ') // Replace multiple spaces with single space
|
|
11
|
-
.replace(
|
|
12
|
-
.replace(/\
|
|
12
|
+
.replace(/ +\n/g, '\n') // Remove trailing spaces before newlines
|
|
13
|
+
.replace(/\n{3,}/g, '\n\n'); // Replace 3+ newlines with double newline
|
|
13
14
|
}
|
|
14
15
|
/**
|
|
15
16
|
* Wrap text in a named block
|
|
@@ -66,16 +67,33 @@ export function wrapContext(context) {
|
|
|
66
67
|
export function wrapRules(rules) {
|
|
67
68
|
return wrapInBlock('RULES', rules);
|
|
68
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Wrap git context (history + branch) in GIT_CONTEXT block
|
|
72
|
+
*/
|
|
73
|
+
export function wrapGitContext(gitContext) {
|
|
74
|
+
return wrapInBlock('GIT_CONTEXT', gitContext, false); // Don't clean git context
|
|
75
|
+
}
|
|
69
76
|
/**
|
|
70
77
|
* Parse AI JSON response with fallback to plain text
|
|
78
|
+
* Handles various response formats: pure JSON, markdown-wrapped, or plain text
|
|
71
79
|
* @param response - AI response (should be JSON)
|
|
72
80
|
* @returns Object with assessment and commitMessage
|
|
73
81
|
*/
|
|
74
82
|
export function parseAIResponse(response) {
|
|
83
|
+
let cleanResponse = response.trim();
|
|
84
|
+
// Remove markdown code blocks if present (```json ... ``` or ``` ... ```)
|
|
85
|
+
const codeBlockMatch = cleanResponse.match(/```(?:json)?\s*(\{[\s\S]*?\})\s*```/);
|
|
86
|
+
if (codeBlockMatch && codeBlockMatch[1]) {
|
|
87
|
+
cleanResponse = codeBlockMatch[1].trim();
|
|
88
|
+
}
|
|
89
|
+
// Remove common prefixes that AI might add
|
|
90
|
+
cleanResponse = cleanResponse
|
|
91
|
+
.replace(/^(?:Here is|Here's|This is|The|A)\s+(?:the\s+)?(?:JSON|response|result)?:?\s*/i, '')
|
|
92
|
+
.trim();
|
|
75
93
|
try {
|
|
76
94
|
// Try to parse as JSON
|
|
77
|
-
const parsed = JSON.parse(
|
|
78
|
-
if (parsed && typeof parsed === 'object') {
|
|
95
|
+
const parsed = JSON.parse(cleanResponse);
|
|
96
|
+
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
|
|
79
97
|
return {
|
|
80
98
|
assessment: parsed.codeAssessment || null,
|
|
81
99
|
commitMessage: parsed.commitMessage || response.trim()
|
|
@@ -83,7 +101,22 @@ export function parseAIResponse(response) {
|
|
|
83
101
|
}
|
|
84
102
|
}
|
|
85
103
|
catch (error) {
|
|
86
|
-
// JSON parsing failed -
|
|
104
|
+
// JSON parsing failed - try to extract JSON from text
|
|
105
|
+
const jsonMatch = response.match(/\{[\s\S]*"(?:codeAssessment|commitMessage)"[\s\S]*\}/);
|
|
106
|
+
if (jsonMatch) {
|
|
107
|
+
try {
|
|
108
|
+
const parsed = JSON.parse(jsonMatch[0]);
|
|
109
|
+
if (parsed && typeof parsed === 'object') {
|
|
110
|
+
return {
|
|
111
|
+
assessment: parsed.codeAssessment || null,
|
|
112
|
+
commitMessage: parsed.commitMessage || response.trim()
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
// Continue to fallback
|
|
118
|
+
}
|
|
119
|
+
}
|
|
87
120
|
}
|
|
88
121
|
// Fallback: treat entire response as commit message (backward compatibility)
|
|
89
122
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../src/utils/formatting.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI;SACR,IAAI,EAAE,CAA2B,qCAAqC;SACtE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAY,4CAA4C;SAC5E,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../src/utils/formatting.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI;SACR,IAAI,EAAE,CAA2B,qCAAqC;SACtE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAU,+BAA+B;SAC/D,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAY,4CAA4C;SAC5E,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAU,yCAAyC;SACzE,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAK,0CAA0C;AAC/E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,SAAiB,EACjB,OAAe,EACf,eAAwB,IAAI;IAE5B,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACrE,OAAO,IAAI,SAAS,MAAM,gBAAgB,OAAO,SAAS,GAAG,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAiE;IAEjE,OAAO,MAAM;SACV,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;SACzE,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,WAAW,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,WAAW,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,2BAA2B;AAC9E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAoB;IACnD,OAAO,WAAW,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,OAAO,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,OAAO,WAAW,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,0BAA0B;AAClF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAI9C,IAAI,aAAa,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEpC,0EAA0E;IAC1E,MAAM,cAAc,GAAG,aAAa,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAClF,IAAI,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED,2CAA2C;IAC3C,aAAa,GAAG,aAAa;SAC1B,OAAO,CAAC,gFAAgF,EAAE,EAAE,CAAC;SAC7F,IAAI,EAAE,CAAC;IAEV,IAAI,CAAC;QACH,uBAAuB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAEzC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,OAAO;gBACL,UAAU,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI;gBACzC,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,QAAQ,CAAC,IAAI,EAAE;aACvD,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sDAAsD;QACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACzF,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACzC,OAAO;wBACL,UAAU,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI;wBACzC,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,QAAQ,CAAC,IAAI,EAAE;qBACvD,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAuB;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,OAAO;QACL,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE;KAC/B,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "orcommit",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "AI-powered commit message generator - Automated git commits using OpenAI, Claude, and OpenRouter APIs with intelligent diff processing, custom prompts, and interactive regeneration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"git",
|