@nahisaho/musubix-codegraph 2.3.2 → 2.3.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/dist/cli.d.ts +13 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +200 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/pr/git-operations.d.ts +186 -0
- package/dist/pr/git-operations.d.ts.map +1 -0
- package/dist/pr/git-operations.js +441 -0
- package/dist/pr/git-operations.js.map +1 -0
- package/dist/pr/github-adapter.d.ts +163 -0
- package/dist/pr/github-adapter.d.ts.map +1 -0
- package/dist/pr/github-adapter.js +467 -0
- package/dist/pr/github-adapter.js.map +1 -0
- package/dist/pr/index.d.ts +19 -0
- package/dist/pr/index.d.ts.map +1 -0
- package/dist/pr/index.js +24 -0
- package/dist/pr/index.js.map +1 -0
- package/dist/pr/pr-creator.d.ts +135 -0
- package/dist/pr/pr-creator.d.ts.map +1 -0
- package/dist/pr/pr-creator.js +387 -0
- package/dist/pr/pr-creator.js.map +1 -0
- package/dist/pr/pr-template.d.ts +105 -0
- package/dist/pr/pr-template.d.ts.map +1 -0
- package/dist/pr/pr-template.js +273 -0
- package/dist/pr/pr-template.js.map +1 -0
- package/dist/pr/refactoring-applier.d.ts +143 -0
- package/dist/pr/refactoring-applier.d.ts.map +1 -0
- package/dist/pr/refactoring-applier.js +412 -0
- package/dist/pr/refactoring-applier.js.map +1 -0
- package/dist/pr/types.d.ts +362 -0
- package/dist/pr/types.d.ts.map +1 -0
- package/dist/pr/types.js +63 -0
- package/dist/pr/types.js.map +1 -0
- package/package.json +11 -2
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @nahisaho/musubix-codegraph - PR Creation Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Types for automatic refactoring PR generation
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
* @module @nahisaho/musubix-codegraph/pr
|
|
8
|
+
*
|
|
9
|
+
* @see REQ-CG-PR-001 - GitHub Authentication
|
|
10
|
+
* @see REQ-CG-PR-002 - Auto Apply Refactoring
|
|
11
|
+
* @see DES-CG-PR-003 - Type Definitions
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Types of refactoring operations
|
|
15
|
+
* @see REQ-CG-PR-002
|
|
16
|
+
*/
|
|
17
|
+
export type RefactoringType = 'extract_interface' | 'extract_method' | 'extract_class' | 'inline' | 'rename' | 'move' | 'security_fix' | 'performance' | 'simplify';
|
|
18
|
+
/**
|
|
19
|
+
* Severity levels for refactoring suggestions
|
|
20
|
+
*/
|
|
21
|
+
export type RefactoringSeverity = 'critical' | 'high' | 'medium' | 'low' | 'info';
|
|
22
|
+
/**
|
|
23
|
+
* A single code change within a file
|
|
24
|
+
* @see DES-CG-PR-003
|
|
25
|
+
*/
|
|
26
|
+
export interface CodeChange {
|
|
27
|
+
/** File path relative to repository root */
|
|
28
|
+
filePath: string;
|
|
29
|
+
/** Starting line number (1-based) */
|
|
30
|
+
startLine: number;
|
|
31
|
+
/** Ending line number (1-based, inclusive) */
|
|
32
|
+
endLine: number;
|
|
33
|
+
/** Starting column (0-based) */
|
|
34
|
+
startColumn?: number;
|
|
35
|
+
/** Ending column (0-based) */
|
|
36
|
+
endColumn?: number;
|
|
37
|
+
/** Original code to be replaced */
|
|
38
|
+
originalCode: string;
|
|
39
|
+
/** New code after refactoring */
|
|
40
|
+
newCode: string;
|
|
41
|
+
/** Description of the change */
|
|
42
|
+
description: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Refactoring suggestion from CodeGraph analysis
|
|
46
|
+
* @see REQ-CG-PR-002
|
|
47
|
+
* @see DES-CG-PR-003
|
|
48
|
+
*/
|
|
49
|
+
export interface RefactoringSuggestion {
|
|
50
|
+
/** Unique identifier for the suggestion */
|
|
51
|
+
id: string;
|
|
52
|
+
/** Entity ID that this suggestion targets */
|
|
53
|
+
entityId: string;
|
|
54
|
+
/** Type of refactoring */
|
|
55
|
+
type: RefactoringType;
|
|
56
|
+
/** Human-readable title */
|
|
57
|
+
title: string;
|
|
58
|
+
/** Detailed description of the refactoring */
|
|
59
|
+
description: string;
|
|
60
|
+
/** Reason why this refactoring is suggested */
|
|
61
|
+
reason: string;
|
|
62
|
+
/** Severity/priority of the suggestion */
|
|
63
|
+
severity: RefactoringSeverity;
|
|
64
|
+
/** List of code changes to apply */
|
|
65
|
+
changes: CodeChange[];
|
|
66
|
+
/** Estimated impact (files affected) */
|
|
67
|
+
impact: {
|
|
68
|
+
filesAffected: number;
|
|
69
|
+
linesChanged: number;
|
|
70
|
+
dependencies: string[];
|
|
71
|
+
};
|
|
72
|
+
/** Related CWE if security-related */
|
|
73
|
+
cwe?: string;
|
|
74
|
+
/** Confidence score (0-1) */
|
|
75
|
+
confidence: number;
|
|
76
|
+
/** Timestamp when suggestion was generated */
|
|
77
|
+
createdAt: Date;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Git branch information
|
|
81
|
+
*/
|
|
82
|
+
export interface BranchInfo {
|
|
83
|
+
/** Branch name */
|
|
84
|
+
name: string;
|
|
85
|
+
/** Whether this is the current branch */
|
|
86
|
+
current: boolean;
|
|
87
|
+
/** Remote tracking branch if any */
|
|
88
|
+
tracking?: string;
|
|
89
|
+
/** Latest commit hash */
|
|
90
|
+
commit: string;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Git commit information
|
|
94
|
+
*/
|
|
95
|
+
export interface CommitInfo {
|
|
96
|
+
/** Commit hash */
|
|
97
|
+
hash: string;
|
|
98
|
+
/** Commit message */
|
|
99
|
+
message: string;
|
|
100
|
+
/** Author name */
|
|
101
|
+
author: string;
|
|
102
|
+
/** Author email */
|
|
103
|
+
email: string;
|
|
104
|
+
/** Commit date */
|
|
105
|
+
date: Date;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Options for Git operations
|
|
109
|
+
* @see REQ-CG-PR-003
|
|
110
|
+
*/
|
|
111
|
+
export interface GitOperationOptions {
|
|
112
|
+
/** Repository root path */
|
|
113
|
+
repoPath: string;
|
|
114
|
+
/** Base branch to create from (default: current branch) */
|
|
115
|
+
baseBranch?: string;
|
|
116
|
+
/** Remote name (default: 'origin') */
|
|
117
|
+
remote?: string;
|
|
118
|
+
/** Whether to force push */
|
|
119
|
+
force?: boolean;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* GitHub authentication configuration
|
|
123
|
+
* @see REQ-CG-PR-001
|
|
124
|
+
* @see DES-CG-PR-003
|
|
125
|
+
*/
|
|
126
|
+
export interface GitHubConfig {
|
|
127
|
+
/** GitHub Personal Access Token */
|
|
128
|
+
token?: string;
|
|
129
|
+
/** Repository owner (user or organization) */
|
|
130
|
+
owner: string;
|
|
131
|
+
/** Repository name */
|
|
132
|
+
repo: string;
|
|
133
|
+
/** GitHub API base URL (for GitHub Enterprise) */
|
|
134
|
+
baseUrl?: string;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* GitHub authentication method
|
|
138
|
+
*/
|
|
139
|
+
export type GitHubAuthMethod = 'token' | 'gh-cli' | 'none';
|
|
140
|
+
/**
|
|
141
|
+
* GitHub authentication result
|
|
142
|
+
*/
|
|
143
|
+
export interface GitHubAuthResult {
|
|
144
|
+
/** Whether authentication succeeded */
|
|
145
|
+
authenticated: boolean;
|
|
146
|
+
/** Authentication method used */
|
|
147
|
+
method: GitHubAuthMethod;
|
|
148
|
+
/** Authenticated username */
|
|
149
|
+
username?: string;
|
|
150
|
+
/** Error message if authentication failed */
|
|
151
|
+
error?: string;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Pull Request creation result
|
|
155
|
+
* @see REQ-CG-PR-005
|
|
156
|
+
*/
|
|
157
|
+
export interface PRInfo {
|
|
158
|
+
/** PR number */
|
|
159
|
+
number: number;
|
|
160
|
+
/** PR URL */
|
|
161
|
+
url: string;
|
|
162
|
+
/** PR title */
|
|
163
|
+
title: string;
|
|
164
|
+
/** PR state */
|
|
165
|
+
state: 'open' | 'closed' | 'merged';
|
|
166
|
+
/** Head branch */
|
|
167
|
+
head: string;
|
|
168
|
+
/** Base branch */
|
|
169
|
+
base: string;
|
|
170
|
+
/** Created timestamp */
|
|
171
|
+
createdAt: Date;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Options for PR creation
|
|
175
|
+
* @see REQ-CG-PR-005
|
|
176
|
+
* @see REQ-CG-PR-007
|
|
177
|
+
* @see DES-CG-PR-003
|
|
178
|
+
*/
|
|
179
|
+
export interface PRCreateOptions {
|
|
180
|
+
/** Refactoring suggestion to apply */
|
|
181
|
+
suggestion: RefactoringSuggestion;
|
|
182
|
+
/** Custom branch name (default: auto-generated) */
|
|
183
|
+
branchName?: string;
|
|
184
|
+
/** Custom PR title (default: from suggestion) */
|
|
185
|
+
title?: string;
|
|
186
|
+
/** Custom PR body (default: auto-generated) */
|
|
187
|
+
body?: string;
|
|
188
|
+
/** Base branch for PR (default: main/master) */
|
|
189
|
+
baseBranch?: string;
|
|
190
|
+
/** Labels to add to PR */
|
|
191
|
+
labels?: string[];
|
|
192
|
+
/** Assignees for PR */
|
|
193
|
+
assignees?: string[];
|
|
194
|
+
/** Reviewers for PR */
|
|
195
|
+
reviewers?: string[];
|
|
196
|
+
/** Whether to create as draft PR */
|
|
197
|
+
draft?: boolean;
|
|
198
|
+
/** Dry run mode - preview without creating */
|
|
199
|
+
dryRun?: boolean;
|
|
200
|
+
/** Auto-merge settings */
|
|
201
|
+
autoMerge?: {
|
|
202
|
+
enabled: boolean;
|
|
203
|
+
method: 'merge' | 'squash' | 'rebase';
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Result of PR creation operation
|
|
208
|
+
* @see DES-CG-PR-003
|
|
209
|
+
*/
|
|
210
|
+
export interface PRCreateResult {
|
|
211
|
+
/** Whether operation succeeded */
|
|
212
|
+
success: boolean;
|
|
213
|
+
/** Created PR info (if not dry run) */
|
|
214
|
+
pr?: PRInfo;
|
|
215
|
+
/** Branch name created */
|
|
216
|
+
branchName: string;
|
|
217
|
+
/** Commit hash */
|
|
218
|
+
commitHash?: string;
|
|
219
|
+
/** Files changed */
|
|
220
|
+
filesChanged: string[];
|
|
221
|
+
/** Lines added */
|
|
222
|
+
linesAdded: number;
|
|
223
|
+
/** Lines deleted */
|
|
224
|
+
linesDeleted: number;
|
|
225
|
+
/** Preview of changes (for dry run) */
|
|
226
|
+
preview?: PRPreview;
|
|
227
|
+
/** Error message if failed */
|
|
228
|
+
error?: string;
|
|
229
|
+
/** Warnings during operation */
|
|
230
|
+
warnings?: string[];
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Preview of PR changes (for dry run mode)
|
|
234
|
+
* @see REQ-CG-PR-007
|
|
235
|
+
*/
|
|
236
|
+
export interface PRPreview {
|
|
237
|
+
/** Branch that would be created */
|
|
238
|
+
branchName: string;
|
|
239
|
+
/** Base branch for the PR */
|
|
240
|
+
baseBranch: string;
|
|
241
|
+
/** PR title */
|
|
242
|
+
title: string;
|
|
243
|
+
/** PR body (Markdown) */
|
|
244
|
+
body: string;
|
|
245
|
+
/** File diffs */
|
|
246
|
+
diffs: FileDiff[];
|
|
247
|
+
/** Commit message */
|
|
248
|
+
commitMessage: string;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Diff for a single file
|
|
252
|
+
*/
|
|
253
|
+
export interface FileDiff {
|
|
254
|
+
/** File path */
|
|
255
|
+
filePath: string;
|
|
256
|
+
/** Type of change */
|
|
257
|
+
changeType: 'added' | 'modified' | 'deleted';
|
|
258
|
+
/** Unified diff content */
|
|
259
|
+
diff: string;
|
|
260
|
+
/** Lines added */
|
|
261
|
+
additions: number;
|
|
262
|
+
/** Lines deleted */
|
|
263
|
+
deletions: number;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Options for batch refactoring
|
|
267
|
+
* @see REQ-CG-PR-008
|
|
268
|
+
*/
|
|
269
|
+
export interface BatchRefactoringOptions {
|
|
270
|
+
/** Multiple suggestions to apply */
|
|
271
|
+
suggestions: RefactoringSuggestion[];
|
|
272
|
+
/** Strategy for handling multiple suggestions */
|
|
273
|
+
strategy: 'single-pr' | 'multiple-prs' | 'grouped';
|
|
274
|
+
/** Grouping criteria (for 'grouped' strategy) */
|
|
275
|
+
groupBy?: 'type' | 'file' | 'severity';
|
|
276
|
+
/** Base branch */
|
|
277
|
+
baseBranch?: string;
|
|
278
|
+
/** Common labels for all PRs */
|
|
279
|
+
labels?: string[];
|
|
280
|
+
/** Dry run mode */
|
|
281
|
+
dryRun?: boolean;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Result of batch refactoring operation
|
|
285
|
+
*/
|
|
286
|
+
export interface BatchRefactoringResult {
|
|
287
|
+
/** Overall success status */
|
|
288
|
+
success: boolean;
|
|
289
|
+
/** Total suggestions processed */
|
|
290
|
+
totalSuggestions: number;
|
|
291
|
+
/** Successfully applied suggestions */
|
|
292
|
+
appliedSuggestions: number;
|
|
293
|
+
/** Failed suggestions */
|
|
294
|
+
failedSuggestions: number;
|
|
295
|
+
/** PRs created */
|
|
296
|
+
prs: PRCreateResult[];
|
|
297
|
+
/** Errors encountered */
|
|
298
|
+
errors: Array<{
|
|
299
|
+
suggestionId: string;
|
|
300
|
+
error: string;
|
|
301
|
+
}>;
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Events emitted during PR creation
|
|
305
|
+
*/
|
|
306
|
+
export interface PRCreatorEvents {
|
|
307
|
+
/** Emitted when starting PR creation */
|
|
308
|
+
'pr:start': {
|
|
309
|
+
suggestion: RefactoringSuggestion;
|
|
310
|
+
};
|
|
311
|
+
/** Emitted when applying changes */
|
|
312
|
+
'pr:applying': {
|
|
313
|
+
file: string;
|
|
314
|
+
changes: number;
|
|
315
|
+
};
|
|
316
|
+
/** Emitted when creating branch */
|
|
317
|
+
'pr:branch': {
|
|
318
|
+
name: string;
|
|
319
|
+
};
|
|
320
|
+
/** Emitted when committing */
|
|
321
|
+
'pr:commit': {
|
|
322
|
+
hash: string;
|
|
323
|
+
message: string;
|
|
324
|
+
};
|
|
325
|
+
/** Emitted when pushing */
|
|
326
|
+
'pr:push': {
|
|
327
|
+
branch: string;
|
|
328
|
+
remote: string;
|
|
329
|
+
};
|
|
330
|
+
/** Emitted when PR is created */
|
|
331
|
+
'pr:created': {
|
|
332
|
+
pr: PRInfo;
|
|
333
|
+
};
|
|
334
|
+
/** Emitted on completion */
|
|
335
|
+
'pr:complete': {
|
|
336
|
+
result: PRCreateResult;
|
|
337
|
+
};
|
|
338
|
+
/** Emitted on error */
|
|
339
|
+
'pr:error': {
|
|
340
|
+
error: Error;
|
|
341
|
+
stage: string;
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Conventional commit type
|
|
346
|
+
* @see REQ-CG-PR-004
|
|
347
|
+
*/
|
|
348
|
+
export type ConventionalCommitType = 'feat' | 'fix' | 'refactor' | 'perf' | 'security' | 'style' | 'docs' | 'test' | 'chore';
|
|
349
|
+
/**
|
|
350
|
+
* Mapping from refactoring type to commit type
|
|
351
|
+
*/
|
|
352
|
+
export declare const REFACTORING_TO_COMMIT_TYPE: Record<RefactoringType, ConventionalCommitType>;
|
|
353
|
+
/**
|
|
354
|
+
* Generate branch name from suggestion
|
|
355
|
+
*/
|
|
356
|
+
export declare function generateBranchName(suggestion: RefactoringSuggestion): string;
|
|
357
|
+
/**
|
|
358
|
+
* Generate conventional commit message
|
|
359
|
+
* @see REQ-CG-PR-004
|
|
360
|
+
*/
|
|
361
|
+
export declare function generateCommitMessage(suggestion: RefactoringSuggestion): string;
|
|
362
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pr/types.ts"],"names":[],"mappings":"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"}
|
package/dist/pr/types.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @nahisaho/musubix-codegraph - PR Creation Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Types for automatic refactoring PR generation
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
* @module @nahisaho/musubix-codegraph/pr
|
|
8
|
+
*
|
|
9
|
+
* @see REQ-CG-PR-001 - GitHub Authentication
|
|
10
|
+
* @see REQ-CG-PR-002 - Auto Apply Refactoring
|
|
11
|
+
* @see DES-CG-PR-003 - Type Definitions
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Mapping from refactoring type to commit type
|
|
15
|
+
*/
|
|
16
|
+
export const REFACTORING_TO_COMMIT_TYPE = {
|
|
17
|
+
extract_interface: 'refactor',
|
|
18
|
+
extract_method: 'refactor',
|
|
19
|
+
extract_class: 'refactor',
|
|
20
|
+
inline: 'refactor',
|
|
21
|
+
rename: 'refactor',
|
|
22
|
+
move: 'refactor',
|
|
23
|
+
security_fix: 'security',
|
|
24
|
+
performance: 'perf',
|
|
25
|
+
simplify: 'refactor',
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Generate branch name from suggestion
|
|
29
|
+
*/
|
|
30
|
+
export function generateBranchName(suggestion) {
|
|
31
|
+
const type = suggestion.type.replace(/_/g, '-');
|
|
32
|
+
const entity = suggestion.entityId
|
|
33
|
+
.replace(/[^a-zA-Z0-9]/g, '-')
|
|
34
|
+
.toLowerCase()
|
|
35
|
+
.slice(0, 30);
|
|
36
|
+
const timestamp = Date.now().toString(36);
|
|
37
|
+
return `refactor/${type}/${entity}-${timestamp}`;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Generate conventional commit message
|
|
41
|
+
* @see REQ-CG-PR-004
|
|
42
|
+
*/
|
|
43
|
+
export function generateCommitMessage(suggestion) {
|
|
44
|
+
const commitType = REFACTORING_TO_COMMIT_TYPE[suggestion.type];
|
|
45
|
+
const scope = suggestion.entityId.split('.')[0] || 'core';
|
|
46
|
+
const subject = suggestion.title.toLowerCase().replace(/\.$/, '');
|
|
47
|
+
let message = `${commitType}(${scope}): ${subject}`;
|
|
48
|
+
// Add body with details
|
|
49
|
+
if (suggestion.reason) {
|
|
50
|
+
message += `\n\n${suggestion.reason}`;
|
|
51
|
+
}
|
|
52
|
+
// Add footer with metadata
|
|
53
|
+
const footers = [];
|
|
54
|
+
if (suggestion.cwe) {
|
|
55
|
+
footers.push(`Fixes: ${suggestion.cwe}`);
|
|
56
|
+
}
|
|
57
|
+
footers.push(`Suggestion-ID: ${suggestion.id}`);
|
|
58
|
+
if (footers.length > 0) {
|
|
59
|
+
message += '\n\n' + footers.join('\n');
|
|
60
|
+
}
|
|
61
|
+
return message;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/pr/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA+XH;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAoD;IACzF,iBAAiB,EAAE,UAAU;IAC7B,cAAc,EAAE,UAAU;IAC1B,aAAa,EAAE,UAAU;IACzB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,YAAY,EAAE,UAAU;IACxB,WAAW,EAAE,MAAM;IACnB,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAiC;IAClE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ;SAC/B,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,WAAW,EAAE;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1C,OAAO,YAAY,IAAI,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAiC;IACrE,MAAM,UAAU,GAAG,0BAA0B,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IAC1D,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAElE,IAAI,OAAO,GAAG,GAAG,UAAU,IAAI,KAAK,MAAM,OAAO,EAAE,CAAC;IAEpD,wBAAwB;IACxB,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,OAAO,IAAI,OAAO,UAAU,CAAC,MAAM,EAAE,CAAC;IACxC,CAAC;IAED,2BAA2B;IAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,kBAAkB,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IAEhD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nahisaho/musubix-codegraph",
|
|
3
|
-
"version": "2.3.
|
|
4
|
-
"description": "MUSUBIX CodeGraph - Multi-language Code Graph Analysis Engine supporting 16 programming languages",
|
|
3
|
+
"version": "2.3.3",
|
|
4
|
+
"description": "MUSUBIX CodeGraph - Multi-language Code Graph Analysis Engine supporting 16 programming languages with PR generation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"cg": "./dist/cli.js",
|
|
10
|
+
"musubix-codegraph": "./dist/cli.js"
|
|
11
|
+
},
|
|
8
12
|
"exports": {
|
|
9
13
|
".": {
|
|
10
14
|
"types": "./dist/index.d.ts",
|
|
@@ -25,6 +29,10 @@
|
|
|
25
29
|
"./graphrag": {
|
|
26
30
|
"types": "./dist/graphrag/index.d.ts",
|
|
27
31
|
"import": "./dist/graphrag/index.js"
|
|
32
|
+
},
|
|
33
|
+
"./pr": {
|
|
34
|
+
"types": "./dist/pr/index.d.ts",
|
|
35
|
+
"import": "./dist/pr/index.js"
|
|
28
36
|
}
|
|
29
37
|
},
|
|
30
38
|
"files": [
|
|
@@ -63,6 +71,7 @@
|
|
|
63
71
|
"node": ">=20.0.0"
|
|
64
72
|
},
|
|
65
73
|
"dependencies": {
|
|
74
|
+
"commander": "^12.0.0",
|
|
66
75
|
"tree-sitter": "^0.21.1",
|
|
67
76
|
"tree-sitter-typescript": "^0.21.2",
|
|
68
77
|
"tree-sitter-javascript": "^0.21.4",
|