partnercore-proxy 0.1.5 → 0.4.1

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.
Files changed (54) hide show
  1. package/CHANGELOG.md +114 -6
  2. package/README.md +168 -130
  3. package/dist/al/extension-manager.js +10 -50
  4. package/dist/al/extension-manager.js.map +1 -1
  5. package/dist/al/index.js +2 -18
  6. package/dist/al/index.js.map +1 -1
  7. package/dist/al/language-server.d.ts +315 -2
  8. package/dist/al/language-server.d.ts.map +1 -1
  9. package/dist/al/language-server.js +685 -47
  10. package/dist/al/language-server.js.map +1 -1
  11. package/dist/cli.js +36 -68
  12. package/dist/cli.js.map +1 -1
  13. package/dist/cloud/index.js +1 -17
  14. package/dist/cloud/index.js.map +1 -1
  15. package/dist/cloud/relay-client.js +5 -12
  16. package/dist/cloud/relay-client.js.map +1 -1
  17. package/dist/config/index.js +2 -18
  18. package/dist/config/index.js.map +1 -1
  19. package/dist/config/loader.js +8 -47
  20. package/dist/config/loader.js.map +1 -1
  21. package/dist/config/types.d.ts.map +1 -1
  22. package/dist/config/types.js +65 -4
  23. package/dist/config/types.js.map +1 -1
  24. package/dist/container/bc-container.d.ts +212 -0
  25. package/dist/container/bc-container.d.ts.map +1 -0
  26. package/dist/container/bc-container.js +703 -0
  27. package/dist/container/bc-container.js.map +1 -0
  28. package/dist/git/git-operations.d.ts +182 -0
  29. package/dist/git/git-operations.d.ts.map +1 -0
  30. package/dist/git/git-operations.js +442 -0
  31. package/dist/git/git-operations.js.map +1 -0
  32. package/dist/index.js +6 -22
  33. package/dist/index.js.map +1 -1
  34. package/dist/mcp/index.js +1 -17
  35. package/dist/mcp/index.js.map +1 -1
  36. package/dist/mcp/server.js +10 -14
  37. package/dist/mcp/server.js.map +1 -1
  38. package/dist/memory/project-memory.d.ts +83 -0
  39. package/dist/memory/project-memory.d.ts.map +1 -0
  40. package/dist/memory/project-memory.js +273 -0
  41. package/dist/memory/project-memory.js.map +1 -0
  42. package/dist/router/index.js +1 -17
  43. package/dist/router/index.js.map +1 -1
  44. package/dist/router/tool-router.d.ts +62 -0
  45. package/dist/router/tool-router.d.ts.map +1 -1
  46. package/dist/router/tool-router.js +2577 -328
  47. package/dist/router/tool-router.js.map +1 -1
  48. package/dist/utils/index.js +2 -18
  49. package/dist/utils/index.js.map +1 -1
  50. package/dist/utils/logger.js +8 -16
  51. package/dist/utils/logger.js.map +1 -1
  52. package/dist/utils/security.js +10 -54
  53. package/dist/utils/security.js.map +1 -1
  54. package/package.json +4 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bc-container.js","sourceRoot":"","sources":["../../src/container/bc-container.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Git Operations Module
3
+ *
4
+ * Provides tools for common Git operations within the AL workspace.
5
+ * Enables version control directly from AI agents.
6
+ */
7
+ export interface GitStatus {
8
+ branch: string;
9
+ ahead: number;
10
+ behind: number;
11
+ staged: FileChange[];
12
+ modified: FileChange[];
13
+ untracked: string[];
14
+ hasChanges: boolean;
15
+ }
16
+ export interface FileChange {
17
+ path: string;
18
+ status: 'added' | 'modified' | 'deleted' | 'renamed' | 'copied';
19
+ oldPath?: string;
20
+ }
21
+ export interface GitCommit {
22
+ hash: string;
23
+ shortHash: string;
24
+ author: string;
25
+ email: string;
26
+ date: string;
27
+ message: string;
28
+ files?: string[];
29
+ }
30
+ export interface GitBranch {
31
+ name: string;
32
+ current: boolean;
33
+ remote?: string;
34
+ upstream?: string;
35
+ }
36
+ /**
37
+ * Git Operations Manager
38
+ */
39
+ export declare class GitOperations {
40
+ private workspaceRoot;
41
+ private logger;
42
+ constructor(workspaceRoot: string);
43
+ /**
44
+ * Execute a git command
45
+ */
46
+ private git;
47
+ /**
48
+ * Check if workspace is a git repository
49
+ */
50
+ isGitRepository(): Promise<boolean>;
51
+ /**
52
+ * Get current git status
53
+ */
54
+ getStatus(): Promise<GitStatus>;
55
+ /**
56
+ * Parse status code to status string
57
+ */
58
+ private parseStatusCode;
59
+ /**
60
+ * Get diff of changes
61
+ */
62
+ getDiff(options?: {
63
+ staged?: boolean;
64
+ file?: string;
65
+ unified?: number;
66
+ }): Promise<string>;
67
+ /**
68
+ * Stage files
69
+ */
70
+ stage(paths: string[] | 'all'): Promise<{
71
+ success: boolean;
72
+ message: string;
73
+ }>;
74
+ /**
75
+ * Unstage files
76
+ */
77
+ unstage(paths: string[] | 'all'): Promise<{
78
+ success: boolean;
79
+ message: string;
80
+ }>;
81
+ /**
82
+ * Commit staged changes
83
+ */
84
+ commit(message: string, options?: {
85
+ amend?: boolean;
86
+ allowEmpty?: boolean;
87
+ }): Promise<{
88
+ success: boolean;
89
+ message: string;
90
+ hash?: string;
91
+ }>;
92
+ /**
93
+ * Get commit history
94
+ */
95
+ getLog(options?: {
96
+ limit?: number;
97
+ since?: string;
98
+ until?: string;
99
+ author?: string;
100
+ grep?: string;
101
+ file?: string;
102
+ }): Promise<GitCommit[]>;
103
+ /**
104
+ * List branches
105
+ */
106
+ listBranches(remote?: boolean): Promise<GitBranch[]>;
107
+ /**
108
+ * Create a new branch
109
+ */
110
+ createBranch(name: string, options?: {
111
+ checkout?: boolean;
112
+ from?: string;
113
+ }): Promise<{
114
+ success: boolean;
115
+ message: string;
116
+ }>;
117
+ /**
118
+ * Switch to a branch
119
+ */
120
+ checkout(branchOrPath: string, options?: {
121
+ create?: boolean;
122
+ }): Promise<{
123
+ success: boolean;
124
+ message: string;
125
+ }>;
126
+ /**
127
+ * Pull changes from remote
128
+ */
129
+ pull(options?: {
130
+ remote?: string;
131
+ branch?: string;
132
+ rebase?: boolean;
133
+ }): Promise<{
134
+ success: boolean;
135
+ message: string;
136
+ }>;
137
+ /**
138
+ * Push changes to remote
139
+ */
140
+ push(options?: {
141
+ remote?: string;
142
+ branch?: string;
143
+ setUpstream?: boolean;
144
+ force?: boolean;
145
+ }): Promise<{
146
+ success: boolean;
147
+ message: string;
148
+ }>;
149
+ /**
150
+ * Stash changes
151
+ */
152
+ stash(options?: {
153
+ message?: string;
154
+ includeUntracked?: boolean;
155
+ }): Promise<{
156
+ success: boolean;
157
+ message: string;
158
+ }>;
159
+ /**
160
+ * Apply stash
161
+ */
162
+ stashPop(index?: number): Promise<{
163
+ success: boolean;
164
+ message: string;
165
+ }>;
166
+ /**
167
+ * List stashes
168
+ */
169
+ stashList(): Promise<{
170
+ index: number;
171
+ message: string;
172
+ date: string;
173
+ }[]>;
174
+ /**
175
+ * Discard changes in a file
176
+ */
177
+ discardChanges(path: string): Promise<{
178
+ success: boolean;
179
+ message: string;
180
+ }>;
181
+ }
182
+ //# sourceMappingURL=git-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-operations.d.ts","sourceRoot":"","sources":["../../src/git/git-operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,442 @@
1
+ /**
2
+ * Git Operations Module
3
+ *
4
+ * Provides tools for common Git operations within the AL workspace.
5
+ * Enables version control directly from AI agents.
6
+ */
7
+ import { exec } from 'child_process';
8
+ import { promisify } from 'util';
9
+ import { getLogger } from '../utils/logger.js';
10
+ const execAsync = promisify(exec);
11
+ /**
12
+ * Git Operations Manager
13
+ */
14
+ export class GitOperations {
15
+ workspaceRoot;
16
+ logger = getLogger();
17
+ constructor(workspaceRoot) {
18
+ this.workspaceRoot = workspaceRoot;
19
+ }
20
+ /**
21
+ * Execute a git command
22
+ */
23
+ async git(args) {
24
+ return execAsync(`git ${args}`, {
25
+ cwd: this.workspaceRoot,
26
+ maxBuffer: 10 * 1024 * 1024,
27
+ });
28
+ }
29
+ /**
30
+ * Check if workspace is a git repository
31
+ */
32
+ async isGitRepository() {
33
+ try {
34
+ await this.git('rev-parse --git-dir');
35
+ return true;
36
+ }
37
+ catch {
38
+ return false;
39
+ }
40
+ }
41
+ /**
42
+ * Get current git status
43
+ */
44
+ async getStatus() {
45
+ // Get branch info
46
+ let branch = '';
47
+ let ahead = 0;
48
+ let behind = 0;
49
+ try {
50
+ const { stdout: branchOut } = await this.git('branch --show-current');
51
+ branch = branchOut.trim();
52
+ // Get ahead/behind counts
53
+ try {
54
+ const { stdout: trackingOut } = await this.git(`rev-list --left-right --count ${branch}...@{upstream}`);
55
+ const [aheadStr, behindStr] = trackingOut.trim().split('\t');
56
+ ahead = parseInt(aheadStr) || 0;
57
+ behind = parseInt(behindStr) || 0;
58
+ }
59
+ catch {
60
+ // No upstream configured
61
+ }
62
+ }
63
+ catch {
64
+ // Detached HEAD or other issue
65
+ const { stdout: headOut } = await this.git('rev-parse --short HEAD');
66
+ branch = `(detached at ${headOut.trim()})`;
67
+ }
68
+ // Get status
69
+ const staged = [];
70
+ const modified = [];
71
+ const untracked = [];
72
+ try {
73
+ const { stdout: statusOut } = await this.git('status --porcelain=v2');
74
+ const lines = statusOut.trim().split('\n').filter(l => l);
75
+ for (const line of lines) {
76
+ if (line.startsWith('1 ')) {
77
+ // Ordinary changed entry
78
+ const parts = line.split(' ');
79
+ const xy = parts[1];
80
+ const filePath = parts.slice(8).join(' ');
81
+ if (xy[0] !== '.') {
82
+ // Staged change
83
+ staged.push({
84
+ path: filePath,
85
+ status: this.parseStatusCode(xy[0]),
86
+ });
87
+ }
88
+ if (xy[1] !== '.') {
89
+ // Unstaged change
90
+ modified.push({
91
+ path: filePath,
92
+ status: this.parseStatusCode(xy[1]),
93
+ });
94
+ }
95
+ }
96
+ else if (line.startsWith('2 ')) {
97
+ // Renamed/copied entry
98
+ const parts = line.split(' ');
99
+ const xy = parts[1];
100
+ const pathParts = parts.slice(9).join(' ').split('\t');
101
+ const newPath = pathParts[0];
102
+ const oldPath = pathParts[1];
103
+ if (xy[0] !== '.') {
104
+ staged.push({
105
+ path: newPath,
106
+ oldPath,
107
+ status: xy[0] === 'R' ? 'renamed' : 'copied',
108
+ });
109
+ }
110
+ }
111
+ else if (line.startsWith('? ')) {
112
+ // Untracked file
113
+ untracked.push(line.slice(2));
114
+ }
115
+ }
116
+ }
117
+ catch (error) {
118
+ this.logger.error('Failed to get git status:', error);
119
+ }
120
+ return {
121
+ branch,
122
+ ahead,
123
+ behind,
124
+ staged,
125
+ modified,
126
+ untracked,
127
+ hasChanges: staged.length > 0 || modified.length > 0 || untracked.length > 0,
128
+ };
129
+ }
130
+ /**
131
+ * Parse status code to status string
132
+ */
133
+ parseStatusCode(code) {
134
+ switch (code) {
135
+ case 'A': return 'added';
136
+ case 'M': return 'modified';
137
+ case 'D': return 'deleted';
138
+ case 'R': return 'renamed';
139
+ case 'C': return 'copied';
140
+ default: return 'modified';
141
+ }
142
+ }
143
+ /**
144
+ * Get diff of changes
145
+ */
146
+ async getDiff(options) {
147
+ let args = 'diff';
148
+ if (options?.staged) {
149
+ args += ' --staged';
150
+ }
151
+ if (options?.unified !== undefined) {
152
+ args += ` -U${options.unified}`;
153
+ }
154
+ if (options?.file) {
155
+ args += ` -- "${options.file}"`;
156
+ }
157
+ const { stdout } = await this.git(args);
158
+ return stdout;
159
+ }
160
+ /**
161
+ * Stage files
162
+ */
163
+ async stage(paths) {
164
+ try {
165
+ if (paths === 'all') {
166
+ await this.git('add -A');
167
+ }
168
+ else {
169
+ const pathsStr = paths.map(p => `"${p}"`).join(' ');
170
+ await this.git(`add ${pathsStr}`);
171
+ }
172
+ return { success: true, message: 'Files staged successfully' };
173
+ }
174
+ catch (error) {
175
+ const errorMessage = error instanceof Error ? error.message : String(error);
176
+ return { success: false, message: errorMessage };
177
+ }
178
+ }
179
+ /**
180
+ * Unstage files
181
+ */
182
+ async unstage(paths) {
183
+ try {
184
+ if (paths === 'all') {
185
+ await this.git('reset HEAD');
186
+ }
187
+ else {
188
+ const pathsStr = paths.map(p => `"${p}"`).join(' ');
189
+ await this.git(`reset HEAD -- ${pathsStr}`);
190
+ }
191
+ return { success: true, message: 'Files unstaged successfully' };
192
+ }
193
+ catch (error) {
194
+ const errorMessage = error instanceof Error ? error.message : String(error);
195
+ return { success: false, message: errorMessage };
196
+ }
197
+ }
198
+ /**
199
+ * Commit staged changes
200
+ */
201
+ async commit(message, options) {
202
+ try {
203
+ let args = `commit -m "${message.replace(/"/g, '\\"')}"`;
204
+ if (options?.amend) {
205
+ args += ' --amend';
206
+ }
207
+ if (options?.allowEmpty) {
208
+ args += ' --allow-empty';
209
+ }
210
+ const { stdout } = await this.git(args);
211
+ // Extract commit hash
212
+ const hashMatch = stdout.match(/\[[\w-]+ ([a-f0-9]+)\]/);
213
+ const hash = hashMatch ? hashMatch[1] : undefined;
214
+ return { success: true, message: 'Committed successfully', hash };
215
+ }
216
+ catch (error) {
217
+ const errorMessage = error instanceof Error ? error.message : String(error);
218
+ return { success: false, message: errorMessage };
219
+ }
220
+ }
221
+ /**
222
+ * Get commit history
223
+ */
224
+ async getLog(options) {
225
+ const format = '--format=%H|%h|%an|%ae|%aI|%s';
226
+ let args = `log ${format}`;
227
+ if (options?.limit) {
228
+ args += ` -n ${options.limit}`;
229
+ }
230
+ if (options?.since) {
231
+ args += ` --since="${options.since}"`;
232
+ }
233
+ if (options?.until) {
234
+ args += ` --until="${options.until}"`;
235
+ }
236
+ if (options?.author) {
237
+ args += ` --author="${options.author}"`;
238
+ }
239
+ if (options?.grep) {
240
+ args += ` --grep="${options.grep}"`;
241
+ }
242
+ if (options?.file) {
243
+ args += ` -- "${options.file}"`;
244
+ }
245
+ try {
246
+ const { stdout } = await this.git(args);
247
+ const lines = stdout.trim().split('\n').filter(l => l);
248
+ return lines.map(line => {
249
+ const [hash, shortHash, author, email, date, message] = line.split('|');
250
+ return { hash, shortHash, author, email, date, message };
251
+ });
252
+ }
253
+ catch {
254
+ return [];
255
+ }
256
+ }
257
+ /**
258
+ * List branches
259
+ */
260
+ async listBranches(remote) {
261
+ const branches = [];
262
+ try {
263
+ const { stdout } = await this.git(`branch ${remote ? '-r' : ''} -vv`);
264
+ const lines = stdout.trim().split('\n').filter(l => l);
265
+ for (const line of lines) {
266
+ const current = line.startsWith('*');
267
+ const parts = line.slice(2).trim().split(/\s+/);
268
+ const name = parts[0];
269
+ // Extract upstream from [origin/main] format
270
+ const upstreamMatch = line.match(/\[([^\]]+)\]/);
271
+ const upstream = upstreamMatch ? upstreamMatch[1].split(':')[0] : undefined;
272
+ branches.push({
273
+ name,
274
+ current,
275
+ remote: remote ? name.split('/')[0] : undefined,
276
+ upstream,
277
+ });
278
+ }
279
+ }
280
+ catch (error) {
281
+ this.logger.error('Failed to list branches:', error);
282
+ }
283
+ return branches;
284
+ }
285
+ /**
286
+ * Create a new branch
287
+ */
288
+ async createBranch(name, options) {
289
+ try {
290
+ let args = `branch "${name}"`;
291
+ if (options?.from) {
292
+ args += ` "${options.from}"`;
293
+ }
294
+ await this.git(args);
295
+ if (options?.checkout) {
296
+ await this.git(`checkout "${name}"`);
297
+ }
298
+ return { success: true, message: `Branch '${name}' created${options?.checkout ? ' and checked out' : ''}` };
299
+ }
300
+ catch (error) {
301
+ const errorMessage = error instanceof Error ? error.message : String(error);
302
+ return { success: false, message: errorMessage };
303
+ }
304
+ }
305
+ /**
306
+ * Switch to a branch
307
+ */
308
+ async checkout(branchOrPath, options) {
309
+ try {
310
+ let args = 'checkout';
311
+ if (options?.create) {
312
+ args += ' -b';
313
+ }
314
+ args += ` "${branchOrPath}"`;
315
+ await this.git(args);
316
+ return { success: true, message: `Switched to '${branchOrPath}'` };
317
+ }
318
+ catch (error) {
319
+ const errorMessage = error instanceof Error ? error.message : String(error);
320
+ return { success: false, message: errorMessage };
321
+ }
322
+ }
323
+ /**
324
+ * Pull changes from remote
325
+ */
326
+ async pull(options) {
327
+ try {
328
+ let args = 'pull';
329
+ if (options?.rebase) {
330
+ args += ' --rebase';
331
+ }
332
+ if (options?.remote) {
333
+ args += ` ${options.remote}`;
334
+ if (options?.branch) {
335
+ args += ` ${options.branch}`;
336
+ }
337
+ }
338
+ const { stdout, stderr } = await this.git(args);
339
+ return { success: true, message: (stdout + stderr).trim() || 'Pull successful' };
340
+ }
341
+ catch (error) {
342
+ const errorMessage = error instanceof Error ? error.message : String(error);
343
+ return { success: false, message: errorMessage };
344
+ }
345
+ }
346
+ /**
347
+ * Push changes to remote
348
+ */
349
+ async push(options) {
350
+ try {
351
+ let args = 'push';
352
+ if (options?.setUpstream) {
353
+ args += ' -u';
354
+ }
355
+ if (options?.force) {
356
+ args += ' --force-with-lease';
357
+ }
358
+ if (options?.remote) {
359
+ args += ` ${options.remote}`;
360
+ if (options?.branch) {
361
+ args += ` ${options.branch}`;
362
+ }
363
+ }
364
+ const { stdout, stderr } = await this.git(args);
365
+ return { success: true, message: (stdout + stderr).trim() || 'Push successful' };
366
+ }
367
+ catch (error) {
368
+ const errorMessage = error instanceof Error ? error.message : String(error);
369
+ return { success: false, message: errorMessage };
370
+ }
371
+ }
372
+ /**
373
+ * Stash changes
374
+ */
375
+ async stash(options) {
376
+ try {
377
+ let args = 'stash push';
378
+ if (options?.includeUntracked) {
379
+ args += ' -u';
380
+ }
381
+ if (options?.message) {
382
+ args += ` -m "${options.message}"`;
383
+ }
384
+ await this.git(args);
385
+ return { success: true, message: 'Changes stashed' };
386
+ }
387
+ catch (error) {
388
+ const errorMessage = error instanceof Error ? error.message : String(error);
389
+ return { success: false, message: errorMessage };
390
+ }
391
+ }
392
+ /**
393
+ * Apply stash
394
+ */
395
+ async stashPop(index) {
396
+ try {
397
+ const stashRef = index !== undefined ? `stash@{${index}}` : '';
398
+ await this.git(`stash pop ${stashRef}`);
399
+ return { success: true, message: 'Stash applied and removed' };
400
+ }
401
+ catch (error) {
402
+ const errorMessage = error instanceof Error ? error.message : String(error);
403
+ return { success: false, message: errorMessage };
404
+ }
405
+ }
406
+ /**
407
+ * List stashes
408
+ */
409
+ async stashList() {
410
+ try {
411
+ const { stdout } = await this.git('stash list --format=%gd|%s|%ai');
412
+ const lines = stdout.trim().split('\n').filter(l => l);
413
+ return lines.map(line => {
414
+ const [ref, message, date] = line.split('|');
415
+ const index = parseInt(ref.match(/\{(\d+)\}/)?.[1] || '0');
416
+ return { index, message, date };
417
+ });
418
+ }
419
+ catch {
420
+ return [];
421
+ }
422
+ }
423
+ /**
424
+ * Discard changes in a file
425
+ */
426
+ async discardChanges(path) {
427
+ try {
428
+ if (path === 'all') {
429
+ await this.git('checkout -- .');
430
+ }
431
+ else {
432
+ await this.git(`checkout -- "${path}"`);
433
+ }
434
+ return { success: true, message: 'Changes discarded' };
435
+ }
436
+ catch (error) {
437
+ const errorMessage = error instanceof Error ? error.message : String(error);
438
+ return { success: false, message: errorMessage };
439
+ }
440
+ }
441
+ }
442
+ //# sourceMappingURL=git-operations.js.map