@arii/boomtick-mcp 0.3.3 → 0.3.5
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/.mcp/schemas/agent.search_ddgs.json +27 -1
- package/.mcp/schemas/boomtick.health.json +12 -1
- package/.mcp/schemas/github.checkout_branch.json +27 -1
- package/.mcp/schemas/github.comment_triage_summary.json +20 -1
- package/.mcp/schemas/github.create_issue.json +40 -1
- package/.mcp/schemas/github.create_pull_request.json +38 -1
- package/.mcp/schemas/github.get_merge_conflict_files.json +20 -1
- package/.mcp/schemas/github.get_pr.json +14 -1
- package/.mcp/schemas/github.get_pr_diff.json +14 -1
- package/.mcp/schemas/github.issue_comment.json +20 -1
- package/.mcp/schemas/github.issue_update.json +101 -1
- package/.mcp/schemas/github.issue_view.json +14 -1
- package/.mcp/schemas/github.open_replacement_pr.json +63 -1
- package/.mcp/schemas/github.search_open_prs.json +40 -1
- package/.mcp/schemas/jules.cancel_session.json +14 -1
- package/.mcp/schemas/jules.create_session.json +40 -1
- package/.mcp/schemas/jules.get_messages.json +14 -1
- package/.mcp/schemas/jules.get_pr.json +14 -1
- package/.mcp/schemas/jules.get_session.json +14 -1
- package/.mcp/schemas/jules.list_sessions.json +32 -1
- package/.mcp/schemas/jules.send_message.json +31 -1
- package/.mcp/schemas/jules.trigger_feedback.json +14 -1
- package/.mcp/schemas/repo.commit_patch.json +35 -1
- package/.mcp/schemas/repo.create_branch.json +20 -1
- package/.mcp/schemas/repo.create_repair_branch.json +33 -1
- package/.mcp/schemas/repo.get_changed_files.json +18 -1
- package/.mcp/schemas/repo.get_command_schema.json +14 -1
- package/.mcp/schemas/repo.get_package_scripts.json +19 -1
- package/.mcp/schemas/repo.get_route_map.json +19 -1
- package/.mcp/schemas/repo.logs.json +27 -1
- package/.mcp/schemas/repo.read_agent_context.json +5 -1
- package/.mcp/schemas/repo.read_ci_logs.json +20 -1
- package/.mcp/schemas/repo.run_lighthouse.json +25 -1
- package/.mcp/schemas/repo.run_playwright.json +32 -1
- package/.mcp/schemas/repo.run_tests.json +41 -1
- package/CHANGELOG.md +14 -0
- package/actions/ai-review/action.yml +7 -2
- package/actions/audit/action.yml +1 -1
- package/actions/ci-validate/action.yml +2 -2
- package/actions/impact-analysis/action.yml +26 -25
- package/actions/run-project-gate/action.yml +11 -3
- package/actions/setup/action.yml +2 -2
- package/actions/test-build/action.yml +1 -1
- package/dist/config.js +2 -4
- package/dist/lib/git.js +1 -3
- package/dist/mcp/server.js +1 -1
- package/package.json +21 -17
- package/scripts/create_instructions.sh +0 -0
- package/start_browsermcp.sh +0 -0
- package/start_github_mcp.sh +0 -0
- package/actions/setup-workspace/action.yml +0 -179
|
@@ -1 +1,35 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"properties": {
|
|
3
|
+
"worktreePath": {
|
|
4
|
+
"description": "Path to the worktree where changes are made.",
|
|
5
|
+
"title": "Worktreepath",
|
|
6
|
+
"type": "string"
|
|
7
|
+
},
|
|
8
|
+
"message": {
|
|
9
|
+
"description": "Commit message.",
|
|
10
|
+
"title": "Message",
|
|
11
|
+
"type": "string"
|
|
12
|
+
},
|
|
13
|
+
"allowedFiles": {
|
|
14
|
+
"description": "List of files that are allowed to be committed.",
|
|
15
|
+
"items": {
|
|
16
|
+
"type": "string"
|
|
17
|
+
},
|
|
18
|
+
"title": "Allowedfiles",
|
|
19
|
+
"type": "array"
|
|
20
|
+
},
|
|
21
|
+
"writeMode": {
|
|
22
|
+
"description": "Safety gate: Must be true to perform the commit.",
|
|
23
|
+
"title": "Writemode",
|
|
24
|
+
"type": "boolean"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"required": [
|
|
28
|
+
"worktreePath",
|
|
29
|
+
"message",
|
|
30
|
+
"allowedFiles",
|
|
31
|
+
"writeMode"
|
|
32
|
+
],
|
|
33
|
+
"title": "CommitPatchInput",
|
|
34
|
+
"type": "object"
|
|
35
|
+
}
|
|
@@ -1 +1,20 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"properties": {
|
|
3
|
+
"branchName": {
|
|
4
|
+
"description": "The name of the new branch",
|
|
5
|
+
"title": "Branchname",
|
|
6
|
+
"type": "string"
|
|
7
|
+
},
|
|
8
|
+
"baseBranch": {
|
|
9
|
+
"default": "main",
|
|
10
|
+
"description": "Branch to branch off from",
|
|
11
|
+
"title": "Basebranch",
|
|
12
|
+
"type": "string"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"required": [
|
|
16
|
+
"branchName"
|
|
17
|
+
],
|
|
18
|
+
"title": "CreateBranchInput",
|
|
19
|
+
"type": "object"
|
|
20
|
+
}
|
|
@@ -1 +1,33 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"properties": {
|
|
3
|
+
"prNumber": {
|
|
4
|
+
"description": "The original pull request number to repair.",
|
|
5
|
+
"title": "Prnumber",
|
|
6
|
+
"type": "integer"
|
|
7
|
+
},
|
|
8
|
+
"repairBranchName": {
|
|
9
|
+
"anyOf": [
|
|
10
|
+
{
|
|
11
|
+
"type": "string"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"type": "null"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"default": null,
|
|
18
|
+
"description": "Optional custom name for the new repair branch.",
|
|
19
|
+
"title": "Repairbranchname"
|
|
20
|
+
},
|
|
21
|
+
"writeMode": {
|
|
22
|
+
"description": "Safety gate: Must be true to perform branch creation and worktree setup.",
|
|
23
|
+
"title": "Writemode",
|
|
24
|
+
"type": "boolean"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"required": [
|
|
28
|
+
"prNumber",
|
|
29
|
+
"writeMode"
|
|
30
|
+
],
|
|
31
|
+
"title": "CreateRepairBranchInput",
|
|
32
|
+
"type": "object"
|
|
33
|
+
}
|
|
@@ -1 +1,18 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"properties": {
|
|
3
|
+
"base": {
|
|
4
|
+
"default": "main",
|
|
5
|
+
"description": "The base ref to compare from (default: 'main').",
|
|
6
|
+
"title": "Base",
|
|
7
|
+
"type": "string"
|
|
8
|
+
},
|
|
9
|
+
"head": {
|
|
10
|
+
"default": "HEAD",
|
|
11
|
+
"description": "The head ref to compare to (default: 'HEAD').",
|
|
12
|
+
"title": "Head",
|
|
13
|
+
"type": "string"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"title": "GetChangedFilesInput",
|
|
17
|
+
"type": "object"
|
|
18
|
+
}
|
|
@@ -1 +1,14 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"properties": {
|
|
3
|
+
"commandPath": {
|
|
4
|
+
"description": "The CLI command path to retrieve the schema for (e.g. 'gh audit-pr')",
|
|
5
|
+
"title": "Commandpath",
|
|
6
|
+
"type": "string"
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"required": [
|
|
10
|
+
"commandPath"
|
|
11
|
+
],
|
|
12
|
+
"title": "GetCommandSchemaInput",
|
|
13
|
+
"type": "object"
|
|
14
|
+
}
|
|
@@ -1 +1,19 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"properties": {
|
|
3
|
+
"filter": {
|
|
4
|
+
"anyOf": [
|
|
5
|
+
{
|
|
6
|
+
"type": "string"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"type": "null"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"default": null,
|
|
13
|
+
"description": "Optional glob pattern to filter script names.",
|
|
14
|
+
"title": "Filter"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"title": "GetPackageScriptsInput",
|
|
18
|
+
"type": "object"
|
|
19
|
+
}
|
|
@@ -1 +1,19 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"properties": {
|
|
3
|
+
"includeStatic": {
|
|
4
|
+
"anyOf": [
|
|
5
|
+
{
|
|
6
|
+
"type": "boolean"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"type": "null"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"default": null,
|
|
13
|
+
"description": "Whether to include static assets in the route map.",
|
|
14
|
+
"title": "Includestatic"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"title": "GetRouteMapInput",
|
|
18
|
+
"type": "object"
|
|
19
|
+
}
|
|
@@ -1 +1,27 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"properties": {
|
|
3
|
+
"prNumber": {
|
|
4
|
+
"description": "The number of the pull request to stream logs for.",
|
|
5
|
+
"title": "Prnumber",
|
|
6
|
+
"type": "integer"
|
|
7
|
+
},
|
|
8
|
+
"grep": {
|
|
9
|
+
"anyOf": [
|
|
10
|
+
{
|
|
11
|
+
"type": "string"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"type": "null"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"default": null,
|
|
18
|
+
"description": "Optional pattern to filter log lines.",
|
|
19
|
+
"title": "Grep"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"required": [
|
|
23
|
+
"prNumber"
|
|
24
|
+
],
|
|
25
|
+
"title": "RepoLogsInput",
|
|
26
|
+
"type": "object"
|
|
27
|
+
}
|
|
@@ -1 +1,20 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"properties": {
|
|
3
|
+
"prNumber": {
|
|
4
|
+
"description": "The number of the pull request to read logs for.",
|
|
5
|
+
"title": "Prnumber",
|
|
6
|
+
"type": "integer"
|
|
7
|
+
},
|
|
8
|
+
"all": {
|
|
9
|
+
"default": false,
|
|
10
|
+
"description": "Include logs for successful runs (default: false).",
|
|
11
|
+
"title": "All",
|
|
12
|
+
"type": "boolean"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"required": [
|
|
16
|
+
"prNumber"
|
|
17
|
+
],
|
|
18
|
+
"title": "ReadCiLogsInput",
|
|
19
|
+
"type": "object"
|
|
20
|
+
}
|
|
@@ -1 +1,25 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"properties": {
|
|
3
|
+
"route": {
|
|
4
|
+
"default": "/",
|
|
5
|
+
"description": "The route to audit (default: '/').",
|
|
6
|
+
"title": "Route",
|
|
7
|
+
"type": "string"
|
|
8
|
+
},
|
|
9
|
+
"worktreePath": {
|
|
10
|
+
"anyOf": [
|
|
11
|
+
{
|
|
12
|
+
"type": "string"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"type": "null"
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"default": null,
|
|
19
|
+
"description": "Optional path to the worktree to run the audit in.",
|
|
20
|
+
"title": "Worktreepath"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"title": "RunLighthouseInput",
|
|
24
|
+
"type": "object"
|
|
25
|
+
}
|
|
@@ -1 +1,32 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"properties": {
|
|
3
|
+
"grep": {
|
|
4
|
+
"anyOf": [
|
|
5
|
+
{
|
|
6
|
+
"type": "string"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"type": "null"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"default": null,
|
|
13
|
+
"description": "Optional pattern to filter tests by name.",
|
|
14
|
+
"title": "Grep"
|
|
15
|
+
},
|
|
16
|
+
"worktreePath": {
|
|
17
|
+
"anyOf": [
|
|
18
|
+
{
|
|
19
|
+
"type": "string"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"type": "null"
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
"default": null,
|
|
26
|
+
"description": "Optional path to the worktree to run tests in.",
|
|
27
|
+
"title": "Worktreepath"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"title": "RunPlaywrightInput",
|
|
31
|
+
"type": "object"
|
|
32
|
+
}
|
|
@@ -1 +1,41 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"properties": {
|
|
3
|
+
"commands": {
|
|
4
|
+
"anyOf": [
|
|
5
|
+
{
|
|
6
|
+
"items": {
|
|
7
|
+
"type": "string"
|
|
8
|
+
},
|
|
9
|
+
"type": "array"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"type": "null"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"default": null,
|
|
16
|
+
"description": "Optional list of commands to run (default includes install, lint, test, build).",
|
|
17
|
+
"title": "Commands"
|
|
18
|
+
},
|
|
19
|
+
"timeoutSeconds": {
|
|
20
|
+
"default": 300,
|
|
21
|
+
"description": "Maximum time in seconds to wait for tests (default: 300).",
|
|
22
|
+
"title": "Timeoutseconds",
|
|
23
|
+
"type": "integer"
|
|
24
|
+
},
|
|
25
|
+
"worktreePath": {
|
|
26
|
+
"anyOf": [
|
|
27
|
+
{
|
|
28
|
+
"type": "string"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"type": "null"
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"default": null,
|
|
35
|
+
"description": "Optional path to the worktree to run tests in.",
|
|
36
|
+
"title": "Worktreepath"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"title": "RunTestsInput",
|
|
40
|
+
"type": "object"
|
|
41
|
+
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.3.5](https://github.com/arii/boomtick/compare/mcp-v0.3.4...mcp-v0.3.5) (2026-08-05)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **ci:** add missing setup and install to impact-analysis action ([#433](https://github.com/arii/boomtick/issues/433)) ([cbfb073](https://github.com/arii/boomtick/commit/cbfb073ee8a817194a9cd147d249debecb152263))
|
|
9
|
+
|
|
10
|
+
## [0.3.4](https://github.com/arii/boomtick/compare/mcp-v0.3.3...mcp-v0.3.4) (2026-07-21)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **actions:** use proper relative paths for composite actions ([#272](https://github.com/arii/boomtick/issues/272)) ([bba0e52](https://github.com/arii/boomtick/commit/bba0e52d68510e1a9905dc9675b4f74d052a4a2b))
|
|
16
|
+
|
|
3
17
|
## [0.3.3](https://github.com/arii/boomtick/compare/mcp-v0.3.2...mcp-v0.3.3) (2026-07-20)
|
|
4
18
|
|
|
5
19
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: BoomTick AI Review
|
|
2
|
-
description: Runs AI code review via
|
|
2
|
+
description: Runs AI code review via td-cli CLI
|
|
3
3
|
inputs:
|
|
4
4
|
pr_number:
|
|
5
5
|
description: PR number to review
|
|
@@ -11,5 +11,10 @@ runs:
|
|
|
11
11
|
- name: AI review
|
|
12
12
|
env:
|
|
13
13
|
PR_NUMBER: ${{ inputs.pr_number }}
|
|
14
|
-
run:
|
|
14
|
+
run: |
|
|
15
|
+
if [[ ! "$PR_NUMBER" =~ ^[0-9]+$ ]]; then
|
|
16
|
+
echo "::error::Invalid PR_NUMBER: must be numeric."
|
|
17
|
+
exit 1
|
|
18
|
+
fi
|
|
19
|
+
td-cli gh audit-pr "$PR_NUMBER" --fetch --audit
|
|
15
20
|
shell: bash
|
package/actions/audit/action.yml
CHANGED
|
@@ -21,7 +21,7 @@ runs:
|
|
|
21
21
|
trap 'echo "::endgroup::"' EXIT
|
|
22
22
|
export PATH="$HOME/.local/bin:/github/home/.local/bin:$PATH"
|
|
23
23
|
if ! node scripts/detect-antipatterns.mjs; then echo "Audit failed"; exit 1; fi
|
|
24
|
-
|
|
24
|
+
td-cli gh audit-gate
|
|
25
25
|
shell: bash
|
|
26
26
|
|
|
27
27
|
- name: Design Token Compliance
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
name: BoomTick CI Validate
|
|
2
|
-
description: Runs pre-submit checks via
|
|
2
|
+
description: Runs pre-submit checks via td-cli CLI
|
|
3
3
|
runs:
|
|
4
4
|
using: composite
|
|
5
5
|
steps:
|
|
6
6
|
- uses: ./mcp/actions/setup
|
|
7
7
|
- name: Pre-submit gate
|
|
8
|
-
run:
|
|
8
|
+
run: td-cli gh pre-submit
|
|
9
9
|
shell: bash
|
|
@@ -18,7 +18,18 @@ runs:
|
|
|
18
18
|
steps:
|
|
19
19
|
- uses: ./mcp/actions/setup
|
|
20
20
|
|
|
21
|
-
-
|
|
21
|
+
- name: pnpm install
|
|
22
|
+
run: pnpm install --frozen-lockfile --prefer-offline
|
|
23
|
+
shell: bash
|
|
24
|
+
|
|
25
|
+
- name: Validate PR Number
|
|
26
|
+
env:
|
|
27
|
+
PR_NUMBER: ${{ inputs.pr_number }}
|
|
28
|
+
run: |
|
|
29
|
+
if [[ ! "$PR_NUMBER" =~ ^[0-9]+$ ]]; then
|
|
30
|
+
echo "::error::Invalid PR_NUMBER: must be numeric."
|
|
31
|
+
exit 1
|
|
32
|
+
fi
|
|
22
33
|
shell: bash
|
|
23
34
|
|
|
24
35
|
- name: Deployment Impact Analysis
|
|
@@ -153,24 +164,13 @@ runs:
|
|
|
153
164
|
env:
|
|
154
165
|
VISUAL_DIFF_THRESHOLD: 1.5
|
|
155
166
|
run: |
|
|
156
|
-
|
|
157
|
-
if [ -f "
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
fi
|
|
162
|
-
|
|
163
|
-
if [[ -n "$SCRIPT_PATH" && ( "$SCRIPT_PATH" == *"/scripts/check-visual-changes.ts" || "$SCRIPT_PATH" == "scripts/check-visual-changes.ts" ) ]]; then
|
|
164
|
-
RESOLVED_PATH=$(realpath "$SCRIPT_PATH")
|
|
165
|
-
if [[ -f "$RESOLVED_PATH" && "$RESOLVED_PATH" == *"/scripts/check-visual-changes.ts" ]]; then
|
|
166
|
-
echo "Executing check-visual-changes.ts at: $RESOLVED_PATH"
|
|
167
|
-
pnpm exec tsx "$RESOLVED_PATH" >> "$GITHUB_OUTPUT"
|
|
168
|
-
else
|
|
169
|
-
echo "❌ Error: Resolved path validation failed for $RESOLVED_PATH. Defaulting changed_routes=0"
|
|
170
|
-
echo "changed_routes=0" >> "$GITHUB_OUTPUT"
|
|
171
|
-
fi
|
|
167
|
+
TARGET_PATH="${{ github.action_path }}/../../../scripts/check-visual-changes.ts"
|
|
168
|
+
if [ -f "$TARGET_PATH" ]; then
|
|
169
|
+
RESOLVED_PATH=$(realpath "$TARGET_PATH")
|
|
170
|
+
echo "Executing check-visual-changes.ts at: $RESOLVED_PATH"
|
|
171
|
+
pnpm exec tsx "$RESOLVED_PATH" >> "$GITHUB_OUTPUT"
|
|
172
172
|
else
|
|
173
|
-
echo "⚠️ Skipping: check-visual-changes.ts script not found
|
|
173
|
+
echo "⚠️ Skipping: check-visual-changes.ts script not found. Defaulting changed_routes=0"
|
|
174
174
|
echo "changed_routes=0" >> "$GITHUB_OUTPUT"
|
|
175
175
|
fi
|
|
176
176
|
shell: bash
|
|
@@ -321,12 +321,13 @@ runs:
|
|
|
321
321
|
PR_NUMBER: ${{ inputs.pr_number }}
|
|
322
322
|
GITHUB_REPOSITORY: ${{ github.repository }}
|
|
323
323
|
run: |
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
324
|
+
TARGET_PATH="${{ github.action_path }}/../../../scripts/send-jules-impact.py"
|
|
325
|
+
if [ -f "$TARGET_PATH" ]; then
|
|
326
|
+
RESOLVED_PATH=$(realpath "$TARGET_PATH")
|
|
327
|
+
echo "Executing send-jules-impact.py at: $RESOLVED_PATH"
|
|
328
|
+
python3 "$RESOLVED_PATH"
|
|
328
329
|
else
|
|
329
|
-
echo "⚠️ Skipping: send-jules-impact.py script not found"
|
|
330
|
+
echo "⚠️ Skipping: send-jules-impact.py script not found."
|
|
330
331
|
fi
|
|
331
332
|
shell: bash
|
|
332
333
|
|
|
@@ -377,8 +378,8 @@ runs:
|
|
|
377
378
|
fi
|
|
378
379
|
|
|
379
380
|
mkdir -p .boomtick/logs/ai
|
|
380
|
-
|
|
381
|
-
if !
|
|
381
|
+
td-cli gh summary-report >> "$GITHUB_STEP_SUMMARY"
|
|
382
|
+
if ! td-cli gh verify-metrics; then
|
|
382
383
|
echo "CI Metrics verification failed."
|
|
383
384
|
exit 1
|
|
384
385
|
fi
|
|
@@ -98,7 +98,11 @@ runs:
|
|
|
98
98
|
FILTER_PATH: ${{ steps.resolve-paths.outputs.FILTER_PATH }}
|
|
99
99
|
run: |
|
|
100
100
|
if [ "$TARGET" = "boomtick-mcp" ]; then
|
|
101
|
-
|
|
101
|
+
if command -v td-cli >/dev/null 2>&1; then
|
|
102
|
+
PYTHONPATH="$CLI_PATH" td-cli schema --generate
|
|
103
|
+
else
|
|
104
|
+
PYTHONPATH="$CLI_PATH" python3 "$CLI_PATH/dev_tools/schema_gen.py"
|
|
105
|
+
fi
|
|
102
106
|
npx tsx "$FILTER_PATH/scripts/sync-contracts.ts"
|
|
103
107
|
pnpm --filter "$FILTER_PATH" run sync:mcp-schemas
|
|
104
108
|
fi
|
|
@@ -142,7 +146,11 @@ runs:
|
|
|
142
146
|
run: |
|
|
143
147
|
echo "::group::Pytest"
|
|
144
148
|
trap 'echo "::endgroup::"' EXIT
|
|
145
|
-
|
|
149
|
+
if command -v td-cli >/dev/null 2>&1; then
|
|
150
|
+
PYTHONPATH="$CLI_PATH" td-cli test cli
|
|
151
|
+
else
|
|
152
|
+
PYTHONPATH="$CLI_PATH:$CLI_PATH/dev_tools" python3 -m pytest "$CLI_PATH/tests/"
|
|
153
|
+
fi
|
|
146
154
|
shell: bash
|
|
147
155
|
|
|
148
156
|
- name: Check for dead code
|
|
@@ -157,7 +165,7 @@ runs:
|
|
|
157
165
|
trap 'echo "::endgroup::"' EXIT
|
|
158
166
|
export PYTHONPATH="${{ steps.resolve-paths.outputs.CLI_PATH }}:${{ steps.resolve-paths.outputs.CLI_PATH }}/dev_tools"
|
|
159
167
|
export PATH="$HOME/.local/bin:/github/home/.local/bin:$PATH"
|
|
160
|
-
|
|
168
|
+
td-cli gh ratchet-any
|
|
161
169
|
env:
|
|
162
170
|
GITHUB_TOKEN: ${{ inputs.github_token }}
|
|
163
171
|
shell: bash
|
package/actions/setup/action.yml
CHANGED
package/dist/config.js
CHANGED
|
@@ -18,9 +18,7 @@ function getGithubToken() {
|
|
|
18
18
|
return token;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
catch (e) {
|
|
22
|
-
throw e;
|
|
23
|
-
}
|
|
21
|
+
catch (e) { /* ignore to allow fallback */ }
|
|
24
22
|
return undefined;
|
|
25
23
|
}
|
|
26
24
|
let cachedDynamicConfig = null;
|
|
@@ -44,7 +42,7 @@ export function initializeConfig() {
|
|
|
44
42
|
}
|
|
45
43
|
catch (e) {
|
|
46
44
|
const message = e instanceof Error ? e.message : String(e);
|
|
47
|
-
const errorPrefix = `CRITICAL: Failed to load dynamic config from Python CLI. Ensure Python 3 is installed and
|
|
45
|
+
const errorPrefix = `CRITICAL: Failed to load dynamic config from Python CLI. Ensure Python 3 is installed and cli is in your PYTHONPATH. Details: ${message}`;
|
|
48
46
|
if (process.env.NODE_ENV === "development" || process.env.CI === "true") {
|
|
49
47
|
throw new Error(errorPrefix);
|
|
50
48
|
}
|
package/dist/lib/git.js
CHANGED
|
@@ -18,9 +18,7 @@ export async function createWorktree(branch, prNumber) {
|
|
|
18
18
|
await fs.rm(worktreePath, { recursive: true, force: true });
|
|
19
19
|
await runCommand("git", ["worktree", "prune"]);
|
|
20
20
|
}
|
|
21
|
-
catch (e) {
|
|
22
|
-
throw e;
|
|
23
|
-
}
|
|
21
|
+
catch (e) { /* ignore if no previous worktree */ }
|
|
24
22
|
const result = await runCommand("git", ["worktree", "add", "-b", `repair-pr-${prNumber}-${Date.now()}`, worktreePath, branch]);
|
|
25
23
|
if (result.exitCode !== 0) {
|
|
26
24
|
throw new Error(`Failed to create worktree: ${result.stderr}`);
|
package/dist/mcp/server.js
CHANGED
|
@@ -69,7 +69,7 @@ export class BoomtickMCPServer {
|
|
|
69
69
|
});
|
|
70
70
|
this.server.setRequestHandler(GetPromptRequestSchema, async (request) => {
|
|
71
71
|
const name = request.params.name;
|
|
72
|
-
const agentsDir = path.resolve(config.repoPath, "
|
|
72
|
+
const agentsDir = path.resolve(config.repoPath, "mcp/src/agents");
|
|
73
73
|
// nosemgrep
|
|
74
74
|
const promptPath = path.resolve(agentsDir, `${name}.prompt.md`);
|
|
75
75
|
if (!promptPath.startsWith(agentsDir + path.sep)) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arii/boomtick-mcp",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"description": "Boomtick MCP Guide: PR Rescue + Merge Conflict Agent",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/arii/boomtick.git",
|
|
8
|
+
"directory": "mcp"
|
|
9
|
+
},
|
|
5
10
|
"publishConfig": {
|
|
6
11
|
"access": "public"
|
|
7
12
|
},
|
|
@@ -10,26 +15,11 @@
|
|
|
10
15
|
"bin": {
|
|
11
16
|
"boomtick-mcp": "dist/index.js"
|
|
12
17
|
},
|
|
13
|
-
"scripts": {
|
|
14
|
-
"build": "tsx scripts/sync-contracts.ts && tsc && shx cp src/tools/ddgs_search.py dist/tools/ && tsx scripts/sync-mcp-schemas.ts",
|
|
15
|
-
"watch": "tsc -w",
|
|
16
|
-
"start": "node dist/index.js",
|
|
17
|
-
"test": "tsx scripts/sync-contracts.ts && vitest run",
|
|
18
|
-
"run-evals": "node dist/evals/run-evals.js",
|
|
19
|
-
"sync:mcp-schemas": "tsx scripts/sync-mcp-schemas.ts",
|
|
20
|
-
"release:patch": "pnpm version patch",
|
|
21
|
-
"release:minor": "pnpm version minor",
|
|
22
|
-
"release:major": "pnpm version major",
|
|
23
|
-
"sync-contracts": "tsx scripts/sync-contracts.ts",
|
|
24
|
-
"type-check": "tsx scripts/sync-contracts.ts && tsc",
|
|
25
|
-
"lint": "tsx scripts/sync-contracts.ts && tsc --noEmit"
|
|
26
|
-
},
|
|
27
18
|
"dependencies": {
|
|
28
19
|
"@modelcontextprotocol/sdk": "^1.6.0",
|
|
29
20
|
"dotenv": "^17.4.2",
|
|
30
21
|
"zod": "^4.4.3"
|
|
31
22
|
},
|
|
32
|
-
"packageManager": "pnpm@10.28.2",
|
|
33
23
|
"engines": {
|
|
34
24
|
"node": "24.x",
|
|
35
25
|
"pnpm": "10.28.2"
|
|
@@ -41,5 +31,19 @@
|
|
|
41
31
|
"shx": "^0.4.0",
|
|
42
32
|
"typescript": "^5.7.3",
|
|
43
33
|
"vitest": "^4.1.9"
|
|
34
|
+
},
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "tsx scripts/sync-contracts.ts && tsc && shx cp src/tools/ddgs_search.py dist/tools/ && tsx scripts/sync-mcp-schemas.ts",
|
|
37
|
+
"watch": "tsc -w",
|
|
38
|
+
"start": "node dist/index.js",
|
|
39
|
+
"test": "tsx scripts/sync-contracts.ts && vitest run",
|
|
40
|
+
"run-evals": "node dist/evals/run-evals.js",
|
|
41
|
+
"sync:mcp-schemas": "tsx scripts/sync-mcp-schemas.ts",
|
|
42
|
+
"release:patch": "pnpm version patch",
|
|
43
|
+
"release:minor": "pnpm version minor",
|
|
44
|
+
"release:major": "pnpm version major",
|
|
45
|
+
"sync-contracts": "tsx scripts/sync-contracts.ts",
|
|
46
|
+
"type-check": "tsx scripts/sync-contracts.ts && tsc",
|
|
47
|
+
"lint": "tsx scripts/sync-contracts.ts && tsc --noEmit"
|
|
44
48
|
}
|
|
45
|
-
}
|
|
49
|
+
}
|
|
File without changes
|
package/start_browsermcp.sh
CHANGED
|
File without changes
|
package/start_github_mcp.sh
CHANGED
|
File without changes
|