@framers/agentos-ext-github 0.1.0 → 0.1.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.
- package/LICENSE +96 -21
- package/dist/GitHubRepoIndexer.d.ts +88 -0
- package/dist/GitHubRepoIndexer.d.ts.map +1 -0
- package/dist/GitHubRepoIndexer.js +252 -0
- package/dist/GitHubRepoIndexer.js.map +1 -0
- package/dist/GitHubService.d.ts +58 -1
- package/dist/GitHubService.d.ts.map +1 -1
- package/dist/GitHubService.js +83 -1
- package/dist/GitHubService.js.map +1 -1
- package/dist/__tests__/fileAndBranchTools.test.d.ts +6 -0
- package/dist/__tests__/fileAndBranchTools.test.d.ts.map +1 -0
- package/dist/__tests__/fileAndBranchTools.test.js +310 -0
- package/dist/__tests__/fileAndBranchTools.test.js.map +1 -0
- package/dist/__tests__/indexer.test.d.ts +6 -0
- package/dist/__tests__/indexer.test.d.ts.map +1 -0
- package/dist/__tests__/indexer.test.js +239 -0
- package/dist/__tests__/indexer.test.js.map +1 -0
- package/dist/__tests__/issueTools.test.d.ts +5 -0
- package/dist/__tests__/issueTools.test.d.ts.map +1 -0
- package/dist/__tests__/issueTools.test.js +183 -0
- package/dist/__tests__/issueTools.test.js.map +1 -0
- package/dist/__tests__/prTools.test.d.ts +5 -0
- package/dist/__tests__/prTools.test.d.ts.map +1 -0
- package/dist/__tests__/prTools.test.js +318 -0
- package/dist/__tests__/prTools.test.js.map +1 -0
- package/dist/__tests__/releaseAndActionsTools.test.d.ts +6 -0
- package/dist/__tests__/releaseAndActionsTools.test.d.ts.map +1 -0
- package/dist/__tests__/releaseAndActionsTools.test.js +315 -0
- package/dist/__tests__/releaseAndActionsTools.test.js.map +1 -0
- package/dist/__tests__/repoTools.test.d.ts +6 -0
- package/dist/__tests__/repoTools.test.d.ts.map +1 -0
- package/dist/__tests__/repoTools.test.js +308 -0
- package/dist/__tests__/repoTools.test.js.map +1 -0
- package/dist/__tests__/service.test.d.ts +6 -0
- package/dist/__tests__/service.test.d.ts.map +1 -0
- package/dist/__tests__/service.test.js +173 -0
- package/dist/__tests__/service.test.js.map +1 -0
- package/dist/index.d.ts +41 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +60 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/actionsList.d.ts +48 -0
- package/dist/tools/actionsList.d.ts.map +1 -0
- package/dist/tools/actionsList.js +71 -0
- package/dist/tools/actionsList.js.map +1 -0
- package/dist/tools/actionsTrigger.d.ts +56 -0
- package/dist/tools/actionsTrigger.d.ts.map +1 -0
- package/dist/tools/actionsTrigger.js +62 -0
- package/dist/tools/actionsTrigger.js.map +1 -0
- package/dist/tools/branchCreate.d.ts +47 -0
- package/dist/tools/branchCreate.d.ts.map +1 -0
- package/dist/tools/branchCreate.js +68 -0
- package/dist/tools/branchCreate.js.map +1 -0
- package/dist/tools/branchList.d.ts +45 -0
- package/dist/tools/branchList.d.ts.map +1 -0
- package/dist/tools/branchList.js +47 -0
- package/dist/tools/branchList.js.map +1 -0
- package/dist/tools/commentList.d.ts +48 -0
- package/dist/tools/commentList.d.ts.map +1 -0
- package/dist/tools/commentList.js +52 -0
- package/dist/tools/commentList.js.map +1 -0
- package/dist/tools/commitList.d.ts +65 -0
- package/dist/tools/commitList.d.ts.map +1 -0
- package/dist/tools/commitList.js +58 -0
- package/dist/tools/commitList.js.map +1 -0
- package/dist/tools/fileRead.d.ts.map +1 -1
- package/dist/tools/fileRead.js +1 -0
- package/dist/tools/fileRead.js.map +1 -1
- package/dist/tools/fileWrite.d.ts +61 -0
- package/dist/tools/fileWrite.d.ts.map +1 -0
- package/dist/tools/fileWrite.js +56 -0
- package/dist/tools/fileWrite.js.map +1 -0
- package/dist/tools/gistCreate.d.ts.map +1 -1
- package/dist/tools/gistCreate.js +1 -0
- package/dist/tools/gistCreate.js.map +1 -1
- package/dist/tools/issueCreate.d.ts.map +1 -1
- package/dist/tools/issueCreate.js +1 -0
- package/dist/tools/issueCreate.js.map +1 -1
- package/dist/tools/issueList.d.ts.map +1 -1
- package/dist/tools/issueList.js +1 -0
- package/dist/tools/issueList.js.map +1 -1
- package/dist/tools/issueUpdate.d.ts +75 -0
- package/dist/tools/issueUpdate.d.ts.map +1 -0
- package/dist/tools/issueUpdate.js +80 -0
- package/dist/tools/issueUpdate.js.map +1 -0
- package/dist/tools/prCommentCreate.d.ts +48 -0
- package/dist/tools/prCommentCreate.d.ts.map +1 -0
- package/dist/tools/prCommentCreate.js +50 -0
- package/dist/tools/prCommentCreate.js.map +1 -0
- package/dist/tools/prCommentList.d.ts +48 -0
- package/dist/tools/prCommentList.d.ts.map +1 -0
- package/dist/tools/prCommentList.js +53 -0
- package/dist/tools/prCommentList.js.map +1 -0
- package/dist/tools/prCreate.d.ts.map +1 -1
- package/dist/tools/prCreate.js +1 -0
- package/dist/tools/prCreate.js.map +1 -1
- package/dist/tools/prDiff.d.ts +48 -0
- package/dist/tools/prDiff.d.ts.map +1 -0
- package/dist/tools/prDiff.js +75 -0
- package/dist/tools/prDiff.js.map +1 -0
- package/dist/tools/prList.d.ts.map +1 -1
- package/dist/tools/prList.js +1 -0
- package/dist/tools/prList.js.map +1 -1
- package/dist/tools/prMerge.d.ts +59 -0
- package/dist/tools/prMerge.d.ts.map +1 -0
- package/dist/tools/prMerge.js +58 -0
- package/dist/tools/prMerge.js.map +1 -0
- package/dist/tools/prReview.d.ts +81 -0
- package/dist/tools/prReview.d.ts.map +1 -0
- package/dist/tools/prReview.js +70 -0
- package/dist/tools/prReview.js.map +1 -0
- package/dist/tools/releaseCreate.d.ts +73 -0
- package/dist/tools/releaseCreate.d.ts.map +1 -0
- package/dist/tools/releaseCreate.js +69 -0
- package/dist/tools/releaseCreate.js.map +1 -0
- package/dist/tools/releaseList.d.ts +42 -0
- package/dist/tools/releaseList.d.ts.map +1 -0
- package/dist/tools/releaseList.js +50 -0
- package/dist/tools/releaseList.js.map +1 -0
- package/dist/tools/repoCreate.d.ts +55 -0
- package/dist/tools/repoCreate.d.ts.map +1 -0
- package/dist/tools/repoCreate.js +54 -0
- package/dist/tools/repoCreate.js.map +1 -0
- package/dist/tools/repoIndex.d.ts +47 -0
- package/dist/tools/repoIndex.d.ts.map +1 -0
- package/dist/tools/repoIndex.js +127 -0
- package/dist/tools/repoIndex.js.map +1 -0
- package/dist/tools/repoInfo.d.ts +35 -0
- package/dist/tools/repoInfo.d.ts.map +1 -0
- package/dist/tools/repoInfo.js +60 -0
- package/dist/tools/repoInfo.js.map +1 -0
- package/dist/tools/repoList.d.ts +47 -0
- package/dist/tools/repoList.d.ts.map +1 -0
- package/dist/tools/repoList.js +74 -0
- package/dist/tools/repoList.js.map +1 -0
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +1 -0
- package/dist/tools/search.js.map +1 -1
- package/manifest.json +30 -6
- package/package.json +10 -6
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview GitHub PR Diff tool — get files changed in a pull request.
|
|
4
|
+
*
|
|
5
|
+
* Returns a summary of changed files with optional patch content.
|
|
6
|
+
* Patch text is truncated to 3000 characters per file to keep token usage manageable.
|
|
7
|
+
*/
|
|
8
|
+
/** Maximum characters to include per-file patch. */
|
|
9
|
+
const MAX_PATCH_LENGTH = 3000;
|
|
10
|
+
export class GitHubPrDiffTool {
|
|
11
|
+
service;
|
|
12
|
+
name = 'github_pr_diff';
|
|
13
|
+
description = 'Get files changed in a GitHub pull request. Returns filename, status, additions, deletions, and optional patch.';
|
|
14
|
+
category = 'developer';
|
|
15
|
+
hasSideEffects = false;
|
|
16
|
+
inputSchema = {
|
|
17
|
+
type: 'object',
|
|
18
|
+
required: ['owner', 'repo', 'pull_number'],
|
|
19
|
+
properties: {
|
|
20
|
+
owner: { type: 'string', description: 'Repository owner (user or org)' },
|
|
21
|
+
repo: { type: 'string', description: 'Repository name' },
|
|
22
|
+
pull_number: { type: 'number', description: 'Pull request number' },
|
|
23
|
+
include_patch: {
|
|
24
|
+
type: 'boolean',
|
|
25
|
+
description: 'Include patch/diff text per file (default: false). Patches are truncated to 3000 chars.',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
constructor(service) {
|
|
30
|
+
this.service = service;
|
|
31
|
+
}
|
|
32
|
+
async execute(args) {
|
|
33
|
+
try {
|
|
34
|
+
const octokit = this.service.getOctokit();
|
|
35
|
+
const { data } = await octokit.rest.pulls.listFiles({
|
|
36
|
+
owner: args.owner,
|
|
37
|
+
repo: args.repo,
|
|
38
|
+
pull_number: args.pull_number,
|
|
39
|
+
});
|
|
40
|
+
let totalAdditions = 0;
|
|
41
|
+
let totalDeletions = 0;
|
|
42
|
+
const files = data.map((f) => {
|
|
43
|
+
totalAdditions += f.additions;
|
|
44
|
+
totalDeletions += f.deletions;
|
|
45
|
+
const entry = {
|
|
46
|
+
filename: f.filename,
|
|
47
|
+
status: f.status,
|
|
48
|
+
additions: f.additions,
|
|
49
|
+
deletions: f.deletions,
|
|
50
|
+
changes: f.changes,
|
|
51
|
+
};
|
|
52
|
+
if (args.include_patch && f.patch) {
|
|
53
|
+
entry.patch =
|
|
54
|
+
f.patch.length > MAX_PATCH_LENGTH
|
|
55
|
+
? f.patch.slice(0, MAX_PATCH_LENGTH) + '\n... (truncated)'
|
|
56
|
+
: f.patch;
|
|
57
|
+
}
|
|
58
|
+
return entry;
|
|
59
|
+
});
|
|
60
|
+
return {
|
|
61
|
+
success: true,
|
|
62
|
+
data: {
|
|
63
|
+
totalFiles: files.length,
|
|
64
|
+
totalAdditions,
|
|
65
|
+
totalDeletions,
|
|
66
|
+
files,
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
return { success: false, error: err instanceof Error ? err.message : String(err) };
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=prDiff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prDiff.js","sourceRoot":"","sources":["../../src/tools/prDiff.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;;;;GAKG;AAIH,oDAAoD;AACpD,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,MAAM,OAAO,gBAAgB;IAoBE;IAnBpB,IAAI,GAAG,gBAAgB,CAAC;IACxB,WAAW,GAAG,iHAAiH,CAAC;IAChI,QAAQ,GAAG,WAAW,CAAC;IACvB,cAAc,GAAG,KAAK,CAAC;IAEvB,WAAW,GAAG;QACrB,IAAI,EAAE,QAAiB;QACvB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAU;QACnD,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,gCAAgC,EAAE;YACjF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE;YACjE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC5E,aAAa,EAAE;gBACb,IAAI,EAAE,SAAkB;gBACxB,WAAW,EAAE,yFAAyF;aACvG;SACF;KACF,CAAC;IAEF,YAA6B,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAEvD,KAAK,CAAC,OAAO,CAAC,IAKb;QACC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;gBAClD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAC;YAEH,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,IAAI,cAAc,GAAG,CAAC,CAAC;YAEvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;gBAChC,cAAc,IAAI,CAAC,CAAC,SAAS,CAAC;gBAC9B,cAAc,IAAI,CAAC,CAAC,SAAS,CAAC;gBAE9B,MAAM,KAAK,GAA4B;oBACrC,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,OAAO,EAAE,CAAC,CAAC,OAAO;iBACnB,CAAC;gBAEF,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;oBAClC,KAAK,CAAC,KAAK;wBACT,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB;4BAC/B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,mBAAmB;4BAC1D,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAChB,CAAC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,UAAU,EAAE,KAAK,CAAC,MAAM;oBACxB,cAAc;oBACd,cAAc;oBACd,KAAK;iBACN;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prList.d.ts","sourceRoot":"","sources":["../../src/tools/prList.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prList.d.ts","sourceRoot":"","sources":["../../src/tools/prList.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAa,gBAAgB;IAuBf,OAAO,CAAC,QAAQ,CAAC,OAAO;IAtBpC,QAAQ,CAAC,IAAI,oBAAoB;IACjC,QAAQ,CAAC,WAAW,qGAAqG;IACzH,QAAQ,CAAC,QAAQ,eAAe;IAChC,QAAQ,CAAC,cAAc,SAAS;IAEhC,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAelB;gBAE2B,OAAO,EAAE,aAAa;IAE7C,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CA+BlE"}
|
package/dist/tools/prList.js
CHANGED
package/dist/tools/prList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prList.js","sourceRoot":"","sources":["../../src/tools/prList.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,OAAO,gBAAgB;IAuBE;IAtBpB,IAAI,GAAG,gBAAgB,CAAC;IACxB,WAAW,GAAG,iGAAiG,CAAC;IAChH,QAAQ,GAAG,WAAW,CAAC;IACvB,cAAc,GAAG,KAAK,CAAC;IAEvB,WAAW,GAAG;QACrB,IAAI,EAAE,QAAiB;QACvB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,CAAU;QACpC,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,gCAAgC,EAAE;YACjF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE;YACjE,KAAK,EAAE;gBACL,IAAI,EAAE,QAAiB;gBACvB,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU;gBACxC,WAAW,EAAE,iCAAiC;aAC/C;YACD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,4CAA4C,EAAE;YAC5F,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,uBAAuB,EAAE;YACvE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,uCAAuC,EAAE;SAC5F;KACF,CAAC;IAEF,YAA6B,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAEvD,KAAK,CAAC,OAAO,CAAC,IAOb;QACC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC7C,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAG,IAAI,CAAC,KAAmC,IAAI,MAAM;gBAC1D,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,EAAE,CAAC;aAC5C,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,CAAC;oBAC3B,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK;oBACtB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;oBACjB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;oBACjB,UAAU,EAAE,EAAE,CAAC,UAAU;oBACzB,GAAG,EAAE,EAAE,CAAC,QAAQ;oBAChB,eAAe,EAAE,EAAE,CAAC,eAAe;iBACpC,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"prList.js","sourceRoot":"","sources":["../../src/tools/prList.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;GAEG;AAIH,MAAM,OAAO,gBAAgB;IAuBE;IAtBpB,IAAI,GAAG,gBAAgB,CAAC;IACxB,WAAW,GAAG,iGAAiG,CAAC;IAChH,QAAQ,GAAG,WAAW,CAAC;IACvB,cAAc,GAAG,KAAK,CAAC;IAEvB,WAAW,GAAG;QACrB,IAAI,EAAE,QAAiB;QACvB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,CAAU;QACpC,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,gCAAgC,EAAE;YACjF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE;YACjE,KAAK,EAAE;gBACL,IAAI,EAAE,QAAiB;gBACvB,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU;gBACxC,WAAW,EAAE,iCAAiC;aAC/C;YACD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,4CAA4C,EAAE;YAC5F,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,uBAAuB,EAAE;YACvE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,uCAAuC,EAAE;SAC5F;KACF,CAAC;IAEF,YAA6B,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAEvD,KAAK,CAAC,OAAO,CAAC,IAOb;QACC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC7C,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAG,IAAI,CAAC,KAAmC,IAAI,MAAM;gBAC1D,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,EAAE,CAAC;aAC5C,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,CAAC;oBAC3B,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK;oBACtB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;oBACjB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;oBACjB,UAAU,EAAE,EAAE,CAAC,UAAU;oBACzB,GAAG,EAAE,EAAE,CAAC,QAAQ;oBAChB,eAAe,EAAE,EAAE,CAAC,eAAe;iBACpC,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview GitHub PR Merge tool — merge a pull request.
|
|
3
|
+
*
|
|
4
|
+
* Supports merge, squash, and rebase strategies with optional custom
|
|
5
|
+
* commit title and message.
|
|
6
|
+
*/
|
|
7
|
+
import type { GitHubService } from '../GitHubService.js';
|
|
8
|
+
export declare class GitHubPrMergeTool {
|
|
9
|
+
private readonly service;
|
|
10
|
+
readonly name = "github_pr_merge";
|
|
11
|
+
readonly description = "Merge a GitHub pull request. Supports merge, squash, and rebase methods.";
|
|
12
|
+
readonly category = "developer";
|
|
13
|
+
readonly hasSideEffects = true;
|
|
14
|
+
readonly inputSchema: {
|
|
15
|
+
type: "object";
|
|
16
|
+
required: readonly ["owner", "repo", "pull_number"];
|
|
17
|
+
properties: {
|
|
18
|
+
owner: {
|
|
19
|
+
type: "string";
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
repo: {
|
|
23
|
+
type: "string";
|
|
24
|
+
description: string;
|
|
25
|
+
};
|
|
26
|
+
pull_number: {
|
|
27
|
+
type: "number";
|
|
28
|
+
description: string;
|
|
29
|
+
};
|
|
30
|
+
merge_method: {
|
|
31
|
+
type: "string";
|
|
32
|
+
enum: readonly ["merge", "squash", "rebase"];
|
|
33
|
+
description: string;
|
|
34
|
+
};
|
|
35
|
+
commit_title: {
|
|
36
|
+
type: "string";
|
|
37
|
+
description: string;
|
|
38
|
+
};
|
|
39
|
+
commit_message: {
|
|
40
|
+
type: "string";
|
|
41
|
+
description: string;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
constructor(service: GitHubService);
|
|
46
|
+
execute(args: {
|
|
47
|
+
owner: string;
|
|
48
|
+
repo: string;
|
|
49
|
+
pull_number: number;
|
|
50
|
+
merge_method?: 'merge' | 'squash' | 'rebase';
|
|
51
|
+
commit_title?: string;
|
|
52
|
+
commit_message?: string;
|
|
53
|
+
}): Promise<{
|
|
54
|
+
success: boolean;
|
|
55
|
+
data?: unknown;
|
|
56
|
+
error?: string;
|
|
57
|
+
}>;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=prMerge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prMerge.d.ts","sourceRoot":"","sources":["../../src/tools/prMerge.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAa,iBAAiB;IAuBhB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAtBpC,QAAQ,CAAC,IAAI,qBAAqB;IAClC,QAAQ,CAAC,WAAW,8EAA8E;IAClG,QAAQ,CAAC,QAAQ,eAAe;IAChC,QAAQ,CAAC,cAAc,QAAQ;IAE/B,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAelB;gBAE2B,OAAO,EAAE,aAAa;IAE7C,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAwBlE"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview GitHub PR Merge tool — merge a pull request.
|
|
4
|
+
*
|
|
5
|
+
* Supports merge, squash, and rebase strategies with optional custom
|
|
6
|
+
* commit title and message.
|
|
7
|
+
*/
|
|
8
|
+
export class GitHubPrMergeTool {
|
|
9
|
+
service;
|
|
10
|
+
name = 'github_pr_merge';
|
|
11
|
+
description = 'Merge a GitHub pull request. Supports merge, squash, and rebase methods.';
|
|
12
|
+
category = 'developer';
|
|
13
|
+
hasSideEffects = true;
|
|
14
|
+
inputSchema = {
|
|
15
|
+
type: 'object',
|
|
16
|
+
required: ['owner', 'repo', 'pull_number'],
|
|
17
|
+
properties: {
|
|
18
|
+
owner: { type: 'string', description: 'Repository owner (user or org)' },
|
|
19
|
+
repo: { type: 'string', description: 'Repository name' },
|
|
20
|
+
pull_number: { type: 'number', description: 'Pull request number' },
|
|
21
|
+
merge_method: {
|
|
22
|
+
type: 'string',
|
|
23
|
+
enum: ['merge', 'squash', 'rebase'],
|
|
24
|
+
description: 'Merge strategy (default: merge)',
|
|
25
|
+
},
|
|
26
|
+
commit_title: { type: 'string', description: 'Custom merge commit title' },
|
|
27
|
+
commit_message: { type: 'string', description: 'Custom merge commit message body' },
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
constructor(service) {
|
|
31
|
+
this.service = service;
|
|
32
|
+
}
|
|
33
|
+
async execute(args) {
|
|
34
|
+
try {
|
|
35
|
+
const octokit = this.service.getOctokit();
|
|
36
|
+
const { data } = await octokit.rest.pulls.merge({
|
|
37
|
+
owner: args.owner,
|
|
38
|
+
repo: args.repo,
|
|
39
|
+
pull_number: args.pull_number,
|
|
40
|
+
merge_method: args.merge_method ?? 'merge',
|
|
41
|
+
commit_title: args.commit_title,
|
|
42
|
+
commit_message: args.commit_message,
|
|
43
|
+
});
|
|
44
|
+
return {
|
|
45
|
+
success: true,
|
|
46
|
+
data: {
|
|
47
|
+
merged: data.merged,
|
|
48
|
+
sha: data.sha,
|
|
49
|
+
message: data.message,
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
return { success: false, error: err instanceof Error ? err.message : String(err) };
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=prMerge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prMerge.js","sourceRoot":"","sources":["../../src/tools/prMerge.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;;;;GAKG;AAIH,MAAM,OAAO,iBAAiB;IAuBC;IAtBpB,IAAI,GAAG,iBAAiB,CAAC;IACzB,WAAW,GAAG,0EAA0E,CAAC;IACzF,QAAQ,GAAG,WAAW,CAAC;IACvB,cAAc,GAAG,IAAI,CAAC;IAEtB,WAAW,GAAG;QACrB,IAAI,EAAE,QAAiB;QACvB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAU;QACnD,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,gCAAgC,EAAE;YACjF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE;YACjE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC5E,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAiB;gBACvB,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAU;gBAC5C,WAAW,EAAE,iCAAiC;aAC/C;YACD,YAAY,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,2BAA2B,EAAE;YACnF,cAAc,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,kCAAkC,EAAE;SAC7F;KACF,CAAC;IAEF,YAA6B,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAEvD,KAAK,CAAC,OAAO,CAAC,IAOb;QACC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBAC9C,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,OAAO;gBAC1C,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;aACpC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview GitHub PR Review tool — create a review on a pull request.
|
|
3
|
+
*
|
|
4
|
+
* Supports APPROVE, COMMENT, and REQUEST_CHANGES events, with optional
|
|
5
|
+
* inline review comments targeting specific file paths and lines.
|
|
6
|
+
*/
|
|
7
|
+
import type { GitHubService } from '../GitHubService.js';
|
|
8
|
+
export declare class GitHubPrReviewTool {
|
|
9
|
+
private readonly service;
|
|
10
|
+
readonly name = "github_pr_review";
|
|
11
|
+
readonly description = "Create a review on a GitHub pull request (approve, comment, or request changes). Supports inline comments.";
|
|
12
|
+
readonly category = "developer";
|
|
13
|
+
readonly hasSideEffects = true;
|
|
14
|
+
readonly inputSchema: {
|
|
15
|
+
type: "object";
|
|
16
|
+
required: readonly ["owner", "repo", "pull_number", "event"];
|
|
17
|
+
properties: {
|
|
18
|
+
owner: {
|
|
19
|
+
type: "string";
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
repo: {
|
|
23
|
+
type: "string";
|
|
24
|
+
description: string;
|
|
25
|
+
};
|
|
26
|
+
pull_number: {
|
|
27
|
+
type: "number";
|
|
28
|
+
description: string;
|
|
29
|
+
};
|
|
30
|
+
event: {
|
|
31
|
+
type: "string";
|
|
32
|
+
enum: readonly ["APPROVE", "COMMENT", "REQUEST_CHANGES"];
|
|
33
|
+
description: string;
|
|
34
|
+
};
|
|
35
|
+
body: {
|
|
36
|
+
type: "string";
|
|
37
|
+
description: string;
|
|
38
|
+
};
|
|
39
|
+
comments: {
|
|
40
|
+
type: "array";
|
|
41
|
+
description: string;
|
|
42
|
+
items: {
|
|
43
|
+
type: "object";
|
|
44
|
+
required: readonly ["path", "line", "body"];
|
|
45
|
+
properties: {
|
|
46
|
+
path: {
|
|
47
|
+
type: "string";
|
|
48
|
+
description: string;
|
|
49
|
+
};
|
|
50
|
+
line: {
|
|
51
|
+
type: "number";
|
|
52
|
+
description: string;
|
|
53
|
+
};
|
|
54
|
+
body: {
|
|
55
|
+
type: "string";
|
|
56
|
+
description: string;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
constructor(service: GitHubService);
|
|
64
|
+
execute(args: {
|
|
65
|
+
owner: string;
|
|
66
|
+
repo: string;
|
|
67
|
+
pull_number: number;
|
|
68
|
+
event: 'APPROVE' | 'COMMENT' | 'REQUEST_CHANGES';
|
|
69
|
+
body?: string;
|
|
70
|
+
comments?: Array<{
|
|
71
|
+
path: string;
|
|
72
|
+
line: number;
|
|
73
|
+
body: string;
|
|
74
|
+
}>;
|
|
75
|
+
}): Promise<{
|
|
76
|
+
success: boolean;
|
|
77
|
+
data?: unknown;
|
|
78
|
+
error?: string;
|
|
79
|
+
}>;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=prReview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prReview.d.ts","sourceRoot":"","sources":["../../src/tools/prReview.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAa,kBAAkB;IAmCjB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAlCpC,QAAQ,CAAC,IAAI,sBAAsB;IACnC,QAAQ,CAAC,WAAW,gHAAgH;IACpI,QAAQ,CAAC,QAAQ,eAAe;IAChC,QAAQ,CAAC,cAAc,QAAQ;IAE/B,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2BlB;gBAE2B,OAAO,EAAE,aAAa;IAE7C,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,iBAAiB,CAAC;QACjD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAwBlE"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview GitHub PR Review tool — create a review on a pull request.
|
|
4
|
+
*
|
|
5
|
+
* Supports APPROVE, COMMENT, and REQUEST_CHANGES events, with optional
|
|
6
|
+
* inline review comments targeting specific file paths and lines.
|
|
7
|
+
*/
|
|
8
|
+
export class GitHubPrReviewTool {
|
|
9
|
+
service;
|
|
10
|
+
name = 'github_pr_review';
|
|
11
|
+
description = 'Create a review on a GitHub pull request (approve, comment, or request changes). Supports inline comments.';
|
|
12
|
+
category = 'developer';
|
|
13
|
+
hasSideEffects = true;
|
|
14
|
+
inputSchema = {
|
|
15
|
+
type: 'object',
|
|
16
|
+
required: ['owner', 'repo', 'pull_number', 'event'],
|
|
17
|
+
properties: {
|
|
18
|
+
owner: { type: 'string', description: 'Repository owner (user or org)' },
|
|
19
|
+
repo: { type: 'string', description: 'Repository name' },
|
|
20
|
+
pull_number: { type: 'number', description: 'Pull request number' },
|
|
21
|
+
event: {
|
|
22
|
+
type: 'string',
|
|
23
|
+
enum: ['APPROVE', 'COMMENT', 'REQUEST_CHANGES'],
|
|
24
|
+
description: 'Review action: APPROVE, COMMENT, or REQUEST_CHANGES',
|
|
25
|
+
},
|
|
26
|
+
body: { type: 'string', description: 'Review body/summary (required for REQUEST_CHANGES)' },
|
|
27
|
+
comments: {
|
|
28
|
+
type: 'array',
|
|
29
|
+
description: 'Inline review comments',
|
|
30
|
+
items: {
|
|
31
|
+
type: 'object',
|
|
32
|
+
required: ['path', 'line', 'body'],
|
|
33
|
+
properties: {
|
|
34
|
+
path: { type: 'string', description: 'File path relative to repo root' },
|
|
35
|
+
line: { type: 'number', description: 'Line number in the diff to comment on' },
|
|
36
|
+
body: { type: 'string', description: 'Comment body' },
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
constructor(service) {
|
|
43
|
+
this.service = service;
|
|
44
|
+
}
|
|
45
|
+
async execute(args) {
|
|
46
|
+
try {
|
|
47
|
+
const octokit = this.service.getOctokit();
|
|
48
|
+
const { data } = await octokit.rest.pulls.createReview({
|
|
49
|
+
owner: args.owner,
|
|
50
|
+
repo: args.repo,
|
|
51
|
+
pull_number: args.pull_number,
|
|
52
|
+
event: args.event,
|
|
53
|
+
body: args.body,
|
|
54
|
+
comments: args.comments,
|
|
55
|
+
});
|
|
56
|
+
return {
|
|
57
|
+
success: true,
|
|
58
|
+
data: {
|
|
59
|
+
id: data.id,
|
|
60
|
+
state: data.state,
|
|
61
|
+
url: data.html_url,
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
66
|
+
return { success: false, error: err instanceof Error ? err.message : String(err) };
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=prReview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prReview.js","sourceRoot":"","sources":["../../src/tools/prReview.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;;;;GAKG;AAIH,MAAM,OAAO,kBAAkB;IAmCA;IAlCpB,IAAI,GAAG,kBAAkB,CAAC;IAC1B,WAAW,GAAG,4GAA4G,CAAC;IAC3H,QAAQ,GAAG,WAAW,CAAC;IACvB,cAAc,GAAG,IAAI,CAAC;IAEtB,WAAW,GAAG;QACrB,IAAI,EAAE,QAAiB;QACvB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAU;QAC5D,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,gCAAgC,EAAE;YACjF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE;YACjE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC5E,KAAK,EAAE;gBACL,IAAI,EAAE,QAAiB;gBACvB,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAU;gBACxD,WAAW,EAAE,qDAAqD;aACnE;YACD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,oDAAoD,EAAE;YACpG,QAAQ,EAAE;gBACR,IAAI,EAAE,OAAgB;gBACtB,WAAW,EAAE,wBAAwB;gBACrC,KAAK,EAAE;oBACL,IAAI,EAAE,QAAiB;oBACvB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAU;oBAC3C,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,iCAAiC,EAAE;wBACjF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,uCAAuC,EAAE;wBACvF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,cAAc,EAAE;qBAC/D;iBACF;aACF;SACF;KACF,CAAC;IAEF,YAA6B,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAEvD,KAAK,CAAC,OAAO,CAAC,IAOb;QACC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBACrD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,GAAG,EAAE,IAAI,CAAC,QAAQ;iBACnB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview GitHub Release Create tool — create a new release.
|
|
3
|
+
*
|
|
4
|
+
* Supports creating draft and prerelease releases, targeting a specific
|
|
5
|
+
* commitish, and auto-generating release notes from commits.
|
|
6
|
+
*/
|
|
7
|
+
import type { GitHubService } from '../GitHubService.js';
|
|
8
|
+
export declare class GitHubReleaseCreateTool {
|
|
9
|
+
private readonly service;
|
|
10
|
+
readonly name = "github_release_create";
|
|
11
|
+
readonly description = "Create a new GitHub release. Supports draft, prerelease, and auto-generated release notes.";
|
|
12
|
+
readonly category = "developer";
|
|
13
|
+
readonly hasSideEffects = true;
|
|
14
|
+
readonly inputSchema: {
|
|
15
|
+
type: "object";
|
|
16
|
+
required: readonly ["owner", "repo", "tag_name"];
|
|
17
|
+
properties: {
|
|
18
|
+
owner: {
|
|
19
|
+
type: "string";
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
repo: {
|
|
23
|
+
type: "string";
|
|
24
|
+
description: string;
|
|
25
|
+
};
|
|
26
|
+
tag_name: {
|
|
27
|
+
type: "string";
|
|
28
|
+
description: string;
|
|
29
|
+
};
|
|
30
|
+
name: {
|
|
31
|
+
type: "string";
|
|
32
|
+
description: string;
|
|
33
|
+
};
|
|
34
|
+
body: {
|
|
35
|
+
type: "string";
|
|
36
|
+
description: string;
|
|
37
|
+
};
|
|
38
|
+
draft: {
|
|
39
|
+
type: "boolean";
|
|
40
|
+
description: string;
|
|
41
|
+
};
|
|
42
|
+
prerelease: {
|
|
43
|
+
type: "boolean";
|
|
44
|
+
description: string;
|
|
45
|
+
};
|
|
46
|
+
target_commitish: {
|
|
47
|
+
type: "string";
|
|
48
|
+
description: string;
|
|
49
|
+
};
|
|
50
|
+
generate_release_notes: {
|
|
51
|
+
type: "boolean";
|
|
52
|
+
description: string;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
constructor(service: GitHubService);
|
|
57
|
+
execute(args: {
|
|
58
|
+
owner: string;
|
|
59
|
+
repo: string;
|
|
60
|
+
tag_name: string;
|
|
61
|
+
name?: string;
|
|
62
|
+
body?: string;
|
|
63
|
+
draft?: boolean;
|
|
64
|
+
prerelease?: boolean;
|
|
65
|
+
target_commitish?: string;
|
|
66
|
+
generate_release_notes?: boolean;
|
|
67
|
+
}): Promise<{
|
|
68
|
+
success: boolean;
|
|
69
|
+
data?: unknown;
|
|
70
|
+
error?: string;
|
|
71
|
+
}>;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=releaseCreate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"releaseCreate.d.ts","sourceRoot":"","sources":["../../src/tools/releaseCreate.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAa,uBAAuB;IA4BtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IA3BpC,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,WAAW,gGAAgG;IACpH,QAAQ,CAAC,QAAQ,eAAe;IAChC,QAAQ,CAAC,cAAc,QAAQ;IAE/B,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAoBlB;gBAE2B,OAAO,EAAE,aAAa;IAE7C,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,sBAAsB,CAAC,EAAE,OAAO,CAAC;KAClC,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CA8BlE"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview GitHub Release Create tool — create a new release.
|
|
4
|
+
*
|
|
5
|
+
* Supports creating draft and prerelease releases, targeting a specific
|
|
6
|
+
* commitish, and auto-generating release notes from commits.
|
|
7
|
+
*/
|
|
8
|
+
export class GitHubReleaseCreateTool {
|
|
9
|
+
service;
|
|
10
|
+
name = 'github_release_create';
|
|
11
|
+
description = 'Create a new GitHub release. Supports draft, prerelease, and auto-generated release notes.';
|
|
12
|
+
category = 'developer';
|
|
13
|
+
hasSideEffects = true;
|
|
14
|
+
inputSchema = {
|
|
15
|
+
type: 'object',
|
|
16
|
+
required: ['owner', 'repo', 'tag_name'],
|
|
17
|
+
properties: {
|
|
18
|
+
owner: { type: 'string', description: 'Repository owner (user or org)' },
|
|
19
|
+
repo: { type: 'string', description: 'Repository name' },
|
|
20
|
+
tag_name: { type: 'string', description: 'Tag name for the release (e.g. "v1.0.0")' },
|
|
21
|
+
name: { type: 'string', description: 'Release title' },
|
|
22
|
+
body: { type: 'string', description: 'Release notes body (Markdown supported)' },
|
|
23
|
+
draft: { type: 'boolean', description: 'Create as draft release (default: false)' },
|
|
24
|
+
prerelease: { type: 'boolean', description: 'Mark as prerelease (default: false)' },
|
|
25
|
+
target_commitish: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: 'Branch or commit SHA to tag (default: default branch)',
|
|
28
|
+
},
|
|
29
|
+
generate_release_notes: {
|
|
30
|
+
type: 'boolean',
|
|
31
|
+
description: 'Auto-generate release notes from commits (default: false)',
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
constructor(service) {
|
|
36
|
+
this.service = service;
|
|
37
|
+
}
|
|
38
|
+
async execute(args) {
|
|
39
|
+
try {
|
|
40
|
+
const octokit = this.service.getOctokit();
|
|
41
|
+
const { data } = await octokit.rest.repos.createRelease({
|
|
42
|
+
owner: args.owner,
|
|
43
|
+
repo: args.repo,
|
|
44
|
+
tag_name: args.tag_name,
|
|
45
|
+
name: args.name,
|
|
46
|
+
body: args.body,
|
|
47
|
+
draft: args.draft ?? false,
|
|
48
|
+
prerelease: args.prerelease ?? false,
|
|
49
|
+
target_commitish: args.target_commitish,
|
|
50
|
+
generate_release_notes: args.generate_release_notes ?? false,
|
|
51
|
+
});
|
|
52
|
+
return {
|
|
53
|
+
success: true,
|
|
54
|
+
data: {
|
|
55
|
+
id: data.id,
|
|
56
|
+
tag: data.tag_name,
|
|
57
|
+
name: data.name,
|
|
58
|
+
draft: data.draft,
|
|
59
|
+
prerelease: data.prerelease,
|
|
60
|
+
url: data.html_url,
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
return { success: false, error: err instanceof Error ? err.message : String(err) };
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=releaseCreate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"releaseCreate.js","sourceRoot":"","sources":["../../src/tools/releaseCreate.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;;;;GAKG;AAIH,MAAM,OAAO,uBAAuB;IA4BL;IA3BpB,IAAI,GAAG,uBAAuB,CAAC;IAC/B,WAAW,GAAG,4FAA4F,CAAC;IAC3G,QAAQ,GAAG,WAAW,CAAC;IACvB,cAAc,GAAG,IAAI,CAAC;IAEtB,WAAW,GAAG;QACrB,IAAI,EAAE,QAAiB;QACvB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAU;QAChD,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,gCAAgC,EAAE;YACjF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE;YACjE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,0CAA0C,EAAE;YAC9F,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,eAAe,EAAE;YAC/D,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,yCAAyC,EAAE;YACzF,KAAK,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,WAAW,EAAE,0CAA0C,EAAE;YAC5F,UAAU,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,WAAW,EAAE,qCAAqC,EAAE;YAC5F,gBAAgB,EAAE;gBAChB,IAAI,EAAE,QAAiB;gBACvB,WAAW,EAAE,uDAAuD;aACrE;YACD,sBAAsB,EAAE;gBACtB,IAAI,EAAE,SAAkB;gBACxB,WAAW,EAAE,2DAA2D;aACzE;SACF;KACF,CAAC;IAEF,YAA6B,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAEvD,KAAK,CAAC,OAAO,CAAC,IAUb;QACC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;gBACtD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;gBAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,KAAK;gBACpC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,IAAI,KAAK;aAC7D,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,GAAG,EAAE,IAAI,CAAC,QAAQ;oBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,GAAG,EAAE,IAAI,CAAC,QAAQ;iBACnB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview GitHub Release List tool — list releases for a repository.
|
|
3
|
+
*
|
|
4
|
+
* Returns tag name, release name, draft/prerelease status, publish date, and URL.
|
|
5
|
+
*/
|
|
6
|
+
import type { GitHubService } from '../GitHubService.js';
|
|
7
|
+
export declare class GitHubReleaseListTool {
|
|
8
|
+
private readonly service;
|
|
9
|
+
readonly name = "github_release_list";
|
|
10
|
+
readonly description = "List releases for a GitHub repository. Returns tag, name, draft/prerelease status, and publish date.";
|
|
11
|
+
readonly category = "developer";
|
|
12
|
+
readonly hasSideEffects = false;
|
|
13
|
+
readonly inputSchema: {
|
|
14
|
+
type: "object";
|
|
15
|
+
required: readonly ["owner", "repo"];
|
|
16
|
+
properties: {
|
|
17
|
+
owner: {
|
|
18
|
+
type: "string";
|
|
19
|
+
description: string;
|
|
20
|
+
};
|
|
21
|
+
repo: {
|
|
22
|
+
type: "string";
|
|
23
|
+
description: string;
|
|
24
|
+
};
|
|
25
|
+
per_page: {
|
|
26
|
+
type: "number";
|
|
27
|
+
description: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
constructor(service: GitHubService);
|
|
32
|
+
execute(args: {
|
|
33
|
+
owner: string;
|
|
34
|
+
repo: string;
|
|
35
|
+
per_page?: number;
|
|
36
|
+
}): Promise<{
|
|
37
|
+
success: boolean;
|
|
38
|
+
data?: unknown;
|
|
39
|
+
error?: string;
|
|
40
|
+
}>;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=releaseList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"releaseList.d.ts","sourceRoot":"","sources":["../../src/tools/releaseList.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAa,qBAAqB;IAgBpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAfpC,QAAQ,CAAC,IAAI,yBAAyB;IACtC,QAAQ,CAAC,WAAW,0GAA0G;IAC9H,QAAQ,CAAC,QAAQ,eAAe;IAChC,QAAQ,CAAC,cAAc,SAAS;IAEhC,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;MAQlB;gBAE2B,OAAO,EAAE,aAAa;IAE7C,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAwBlE"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview GitHub Release List tool — list releases for a repository.
|
|
4
|
+
*
|
|
5
|
+
* Returns tag name, release name, draft/prerelease status, publish date, and URL.
|
|
6
|
+
*/
|
|
7
|
+
export class GitHubReleaseListTool {
|
|
8
|
+
service;
|
|
9
|
+
name = 'github_release_list';
|
|
10
|
+
description = 'List releases for a GitHub repository. Returns tag, name, draft/prerelease status, and publish date.';
|
|
11
|
+
category = 'developer';
|
|
12
|
+
hasSideEffects = false;
|
|
13
|
+
inputSchema = {
|
|
14
|
+
type: 'object',
|
|
15
|
+
required: ['owner', 'repo'],
|
|
16
|
+
properties: {
|
|
17
|
+
owner: { type: 'string', description: 'Repository owner (user or org)' },
|
|
18
|
+
repo: { type: 'string', description: 'Repository name' },
|
|
19
|
+
per_page: { type: 'number', description: 'Results per page (max 30, default 10)' },
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
constructor(service) {
|
|
23
|
+
this.service = service;
|
|
24
|
+
}
|
|
25
|
+
async execute(args) {
|
|
26
|
+
try {
|
|
27
|
+
const octokit = this.service.getOctokit();
|
|
28
|
+
const { data } = await octokit.rest.repos.listReleases({
|
|
29
|
+
owner: args.owner,
|
|
30
|
+
repo: args.repo,
|
|
31
|
+
per_page: Math.min(args.per_page ?? 10, 30),
|
|
32
|
+
});
|
|
33
|
+
return {
|
|
34
|
+
success: true,
|
|
35
|
+
data: data.map((r) => ({
|
|
36
|
+
tag: r.tag_name,
|
|
37
|
+
name: r.name,
|
|
38
|
+
draft: r.draft,
|
|
39
|
+
prerelease: r.prerelease,
|
|
40
|
+
publishedAt: r.published_at,
|
|
41
|
+
url: r.html_url,
|
|
42
|
+
})),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
return { success: false, error: err instanceof Error ? err.message : String(err) };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=releaseList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"releaseList.js","sourceRoot":"","sources":["../../src/tools/releaseList.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;;;GAIG;AAIH,MAAM,OAAO,qBAAqB;IAgBH;IAfpB,IAAI,GAAG,qBAAqB,CAAC;IAC7B,WAAW,GAAG,sGAAsG,CAAC;IACrH,QAAQ,GAAG,WAAW,CAAC;IACvB,cAAc,GAAG,KAAK,CAAC;IAEvB,WAAW,GAAG;QACrB,IAAI,EAAE,QAAiB;QACvB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,CAAU;QACpC,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,gCAAgC,EAAE;YACjF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE;YACjE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,uCAAuC,EAAE;SAC5F;KACF,CAAC;IAEF,YAA6B,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAEvD,KAAK,CAAC,OAAO,CAAC,IAIb;QACC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBACrD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,EAAE,CAAC;aAC5C,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;oBAC1B,GAAG,EAAE,CAAC,CAAC,QAAQ;oBACf,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,WAAW,EAAE,CAAC,CAAC,YAAY;oBAC3B,GAAG,EAAE,CAAC,CAAC,QAAQ;iBAChB,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;CACF"}
|