@memnexus-ai/cli 1.7.122 → 1.7.124
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/dist/commands/hook.js +2 -14
- package/dist/commands/hook.js.map +1 -1
- package/dist/lib/commit-context/git-reader.d.ts +1 -23
- package/dist/lib/commit-context/git-reader.d.ts.map +1 -1
- package/dist/lib/commit-context/git-reader.js +1 -110
- package/dist/lib/commit-context/git-reader.js.map +1 -1
- package/dist/lib/commit-context/types.d.ts +0 -1
- package/dist/lib/commit-context/types.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/commands/hook.js
CHANGED
|
@@ -75,7 +75,7 @@ async function handlePostCommit(options) {
|
|
|
75
75
|
const shouldSync = options.sync !== false; // default true
|
|
76
76
|
const summarizer = options.summarizer || 'llm';
|
|
77
77
|
// 1. Read git context
|
|
78
|
-
const git =
|
|
78
|
+
const git = (0, commit_context_1.readGitContext)(cwd);
|
|
79
79
|
// 2. Check if trivial
|
|
80
80
|
const { trivial, reason } = (0, commit_context_1.isTrivialCommit)(git);
|
|
81
81
|
if (trivial) {
|
|
@@ -237,19 +237,7 @@ async function callCommitContextApi(git, session, diff, transcript) {
|
|
|
237
237
|
const apiUrl = config_1.config.getApiUrl();
|
|
238
238
|
const apiKey = config_1.config.getApiKey();
|
|
239
239
|
const response = await axios_1.default.post(`${apiUrl}/api/commit-context`, {
|
|
240
|
-
git
|
|
241
|
-
sha: git.sha,
|
|
242
|
-
shortSha: git.shortSha,
|
|
243
|
-
branch: git.branch,
|
|
244
|
-
message: git.message,
|
|
245
|
-
author: git.author,
|
|
246
|
-
timestamp: git.timestamp,
|
|
247
|
-
filesChanged: git.filesChanged,
|
|
248
|
-
insertions: git.insertions,
|
|
249
|
-
deletions: git.deletions,
|
|
250
|
-
isMergeCommit: git.isMergeCommit,
|
|
251
|
-
prDescription: git.prDescription,
|
|
252
|
-
},
|
|
240
|
+
git,
|
|
253
241
|
session: session
|
|
254
242
|
? {
|
|
255
243
|
agent: session.agent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,oDAwBC;AA5CD,kDAA0B;AAC1B,0CAAuC;AACvC,0DAe+B;AAG/B,SAAgB,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAEtE,IAAI;SACD,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,qDAAqD,CAAC;SAClE,MAAM,CAAC,aAAa,EAAE,mBAAmB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACzD,MAAM,CAAC,WAAW,EAAE,6BAA6B,CAAC;SAClD,MAAM,CAAC,WAAW,EAAE,4BAA4B,CAAC;SACjD,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,EAAE,KAAK,CAAC;SAC9E,MAAM,CAAC,aAAa,EAAE,gCAAgC,CAAC;SACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,sEAAsE;gBACtE,OAAO,CAAC,KAAK,CAAC,0BAA0B,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;gBACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,yDAAyD;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAM/B;IACC,uFAAuF;IACvF,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,eAAe;IAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;IAE/C,sBAAsB;IACtB,MAAM,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,33 +6,11 @@ export declare function parseShortStat(stat: string): {
|
|
|
6
6
|
insertions: number;
|
|
7
7
|
deletions: number;
|
|
8
8
|
};
|
|
9
|
-
/**
|
|
10
|
-
* Parse a git remote URL and extract owner/repo for GitHub remotes.
|
|
11
|
-
*
|
|
12
|
-
* Supported formats:
|
|
13
|
-
* SSH: git@github.com:owner/repo.git
|
|
14
|
-
* HTTPS: https://github.com/owner/repo.git
|
|
15
|
-
* HTTPS: https://github.com/owner/repo
|
|
16
|
-
*
|
|
17
|
-
* Returns null for non-GitHub remotes (gitlab, bitbucket, custom) or on parse failure.
|
|
18
|
-
*/
|
|
19
|
-
export declare function parseGitRemoteUrl(url: string): {
|
|
20
|
-
owner: string;
|
|
21
|
-
repo: string;
|
|
22
|
-
} | null;
|
|
23
|
-
/**
|
|
24
|
-
* Fetch the open PR description for a branch from the GitHub API.
|
|
25
|
-
*
|
|
26
|
-
* Returns undefined (graceful no-op) on any error, non-2xx response,
|
|
27
|
-
* no matching PR, or if the sanitized body is too short (<50 non-whitespace chars).
|
|
28
|
-
* Caps output at 500 characters with a 3-second timeout.
|
|
29
|
-
*/
|
|
30
|
-
export declare function fetchPrDescription(owner: string, repo: string, branch: string, token: string): Promise<string | undefined>;
|
|
31
9
|
/**
|
|
32
10
|
* Read git context for the most recent commit.
|
|
33
11
|
* @param cwd - Working directory (defaults to process.cwd())
|
|
34
12
|
*/
|
|
35
|
-
export declare function readGitContext(cwd?: string):
|
|
13
|
+
export declare function readGitContext(cwd?: string): GitContext;
|
|
36
14
|
/**
|
|
37
15
|
* Read the actual diff content for the most recent commit, truncated to maxLines.
|
|
38
16
|
* Privacy filter is applied to strip secrets from diff output.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-reader.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/git-reader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAY1C;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAOtF;AAED
|
|
1
|
+
{"version":3,"file":"git-reader.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/git-reader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAY1C;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAOtF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAsB,GAAG,UAAU,CAyEtE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAsB,EAAE,QAAQ,GAAE,MAAY,GAAG,MAAM,CAc3F"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseShortStat = parseShortStat;
|
|
4
|
-
exports.parseGitRemoteUrl = parseGitRemoteUrl;
|
|
5
|
-
exports.fetchPrDescription = fetchPrDescription;
|
|
6
4
|
exports.readGitContext = readGitContext;
|
|
7
5
|
exports.readDiffContent = readDiffContent;
|
|
8
6
|
/**
|
|
@@ -29,101 +27,11 @@ function parseShortStat(stat) {
|
|
|
29
27
|
deletions: del ? parseInt(del[1], 10) : 0,
|
|
30
28
|
};
|
|
31
29
|
}
|
|
32
|
-
/**
|
|
33
|
-
* Parse a git remote URL and extract owner/repo for GitHub remotes.
|
|
34
|
-
*
|
|
35
|
-
* Supported formats:
|
|
36
|
-
* SSH: git@github.com:owner/repo.git
|
|
37
|
-
* HTTPS: https://github.com/owner/repo.git
|
|
38
|
-
* HTTPS: https://github.com/owner/repo
|
|
39
|
-
*
|
|
40
|
-
* Returns null for non-GitHub remotes (gitlab, bitbucket, custom) or on parse failure.
|
|
41
|
-
*/
|
|
42
|
-
function parseGitRemoteUrl(url) {
|
|
43
|
-
if (!url)
|
|
44
|
-
return null;
|
|
45
|
-
const trimmed = url.trim();
|
|
46
|
-
// SSH format: git@github.com:owner/repo.git
|
|
47
|
-
const sshMatch = trimmed.match(/^git@github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/);
|
|
48
|
-
if (sshMatch) {
|
|
49
|
-
return { owner: sshMatch[1], repo: sshMatch[2] };
|
|
50
|
-
}
|
|
51
|
-
// HTTPS format: https://github.com/owner/repo[.git]
|
|
52
|
-
const httpsMatch = trimmed.match(/^https:\/\/github\.com\/([^/]+)\/([^/]+?)(?:\.git)?$/);
|
|
53
|
-
if (httpsMatch) {
|
|
54
|
-
return { owner: httpsMatch[1], repo: httpsMatch[2] };
|
|
55
|
-
}
|
|
56
|
-
// Non-GitHub remote or unparseable
|
|
57
|
-
return null;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Fetch the open PR description for a branch from the GitHub API.
|
|
61
|
-
*
|
|
62
|
-
* Returns undefined (graceful no-op) on any error, non-2xx response,
|
|
63
|
-
* no matching PR, or if the sanitized body is too short (<50 non-whitespace chars).
|
|
64
|
-
* Caps output at 500 characters with a 3-second timeout.
|
|
65
|
-
*/
|
|
66
|
-
async function fetchPrDescription(owner, repo, branch, token) {
|
|
67
|
-
const controller = new AbortController();
|
|
68
|
-
const timeoutId = setTimeout(() => controller.abort(), 3000);
|
|
69
|
-
try {
|
|
70
|
-
// GitHub REST API does not support draft=false as a query param — filter client-side
|
|
71
|
-
const url = `https://api.github.com/repos/${owner}/${repo}/pulls?head=${owner}:${branch}&state=open`;
|
|
72
|
-
const response = await fetch(url, {
|
|
73
|
-
headers: {
|
|
74
|
-
Authorization: `Bearer ${token}`,
|
|
75
|
-
Accept: 'application/vnd.github+json',
|
|
76
|
-
},
|
|
77
|
-
signal: controller.signal,
|
|
78
|
-
});
|
|
79
|
-
if (!response.ok) {
|
|
80
|
-
return undefined;
|
|
81
|
-
}
|
|
82
|
-
const data = (await response.json());
|
|
83
|
-
if (!Array.isArray(data) || data.length === 0) {
|
|
84
|
-
return undefined;
|
|
85
|
-
}
|
|
86
|
-
// Skip draft PRs — their descriptions are work-in-progress and low-quality signal
|
|
87
|
-
const pr = data.find((p) => !p.draft);
|
|
88
|
-
if (!pr) {
|
|
89
|
-
return undefined;
|
|
90
|
-
}
|
|
91
|
-
const rawBody = pr.body;
|
|
92
|
-
if (!rawBody) {
|
|
93
|
-
return undefined;
|
|
94
|
-
}
|
|
95
|
-
// Sanitize: strip markdown headers, strip HTML comments, collapse blank lines
|
|
96
|
-
let sanitized = rawBody
|
|
97
|
-
.replace(/^#{1,6}\s.*$/gm, '') // strip markdown headers
|
|
98
|
-
.replace(/<!--[\s\S]*?-->/g, '') // strip HTML comments
|
|
99
|
-
.replace(/\n{3,}/g, '\n\n') // collapse multiple blank lines
|
|
100
|
-
.trim();
|
|
101
|
-
// Minimum content check: at least 50 non-whitespace characters
|
|
102
|
-
const nonWhitespaceCount = sanitized.replace(/\s/g, '').length;
|
|
103
|
-
if (nonWhitespaceCount < 50) {
|
|
104
|
-
return undefined;
|
|
105
|
-
}
|
|
106
|
-
// Cap at 500 characters, truncating at word boundary if possible
|
|
107
|
-
if (sanitized.length > 500) {
|
|
108
|
-
const truncated = sanitized.slice(0, 500);
|
|
109
|
-
const lastSpace = truncated.lastIndexOf(' ');
|
|
110
|
-
sanitized = lastSpace > 400 ? truncated.slice(0, lastSpace) : truncated;
|
|
111
|
-
}
|
|
112
|
-
return sanitized;
|
|
113
|
-
}
|
|
114
|
-
catch {
|
|
115
|
-
// Network error, timeout, JSON parse failure — graceful no-op
|
|
116
|
-
return undefined;
|
|
117
|
-
}
|
|
118
|
-
finally {
|
|
119
|
-
clearTimeout(timeoutId);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
30
|
/**
|
|
123
31
|
* Read git context for the most recent commit.
|
|
124
32
|
* @param cwd - Working directory (defaults to process.cwd())
|
|
125
33
|
*/
|
|
126
|
-
|
|
34
|
+
function readGitContext(cwd = process.cwd()) {
|
|
127
35
|
const sha = git(['rev-parse', 'HEAD'], cwd);
|
|
128
36
|
const shortSha = sha.slice(0, 7);
|
|
129
37
|
let branch = git(['rev-parse', '--abbrev-ref', 'HEAD'], cwd);
|
|
@@ -185,22 +93,6 @@ async function readGitContext(cwd = process.cwd()) {
|
|
|
185
93
|
catch {
|
|
186
94
|
// Not a merge commit (HEAD^2 doesn't exist)
|
|
187
95
|
}
|
|
188
|
-
// Fetch PR description from GitHub if GITHUB_TOKEN is available
|
|
189
|
-
let prDescription;
|
|
190
|
-
const githubToken = process.env.GITHUB_TOKEN;
|
|
191
|
-
if (githubToken && branch && branch !== 'HEAD') {
|
|
192
|
-
try {
|
|
193
|
-
// Parse owner/repo from git remote URL
|
|
194
|
-
const remoteUrl = git(['remote', 'get-url', 'origin'], cwd);
|
|
195
|
-
const repoCoords = parseGitRemoteUrl(remoteUrl);
|
|
196
|
-
if (repoCoords) {
|
|
197
|
-
prDescription = await fetchPrDescription(repoCoords.owner, repoCoords.repo, branch, githubToken);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
catch {
|
|
201
|
-
// Graceful no-op — PR description is best-effort
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
96
|
return {
|
|
205
97
|
sha,
|
|
206
98
|
shortSha,
|
|
@@ -212,7 +104,6 @@ async function readGitContext(cwd = process.cwd()) {
|
|
|
212
104
|
insertions,
|
|
213
105
|
deletions,
|
|
214
106
|
isMergeCommit,
|
|
215
|
-
prDescription,
|
|
216
107
|
};
|
|
217
108
|
}
|
|
218
109
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-reader.js","sourceRoot":"","sources":["../../../src/lib/commit-context/git-reader.ts"],"names":[],"mappings":";;AAmBA,wCAOC;
|
|
1
|
+
{"version":3,"file":"git-reader.js","sourceRoot":"","sources":["../../../src/lib/commit-context/git-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/commit-context/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,+CAA+C;AAC/C,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,UAAU,CAAC;IAChB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,0DAA0D;AAC1D,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,sEAAsE;AACtE,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memnexus-ai/cli",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.124",
|
|
4
4
|
"description": "Command-line interface for MemNexus Core API",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"node": ">=18.0.0"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@memnexus-ai/typescript-sdk": "^1.
|
|
36
|
+
"@memnexus-ai/typescript-sdk": "^1.53.29",
|
|
37
37
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
38
38
|
"axios": "^1.13.5",
|
|
39
39
|
"chalk": "^5.3.0",
|