@arii/boomtick-mcp 0.3.3 → 0.3.6

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 (63) hide show
  1. package/.mcp/schemas/agent.search_ddgs.json +27 -1
  2. package/.mcp/schemas/boomtick.health.json +12 -1
  3. package/.mcp/schemas/github.checkout_branch.json +27 -1
  4. package/.mcp/schemas/github.comment_triage_summary.json +20 -1
  5. package/.mcp/schemas/github.create_issue.json +40 -1
  6. package/.mcp/schemas/github.create_pull_request.json +38 -1
  7. package/.mcp/schemas/github.get_merge_conflict_files.json +20 -1
  8. package/.mcp/schemas/github.get_pr.json +14 -1
  9. package/.mcp/schemas/github.get_pr_diff.json +14 -1
  10. package/.mcp/schemas/github.issue_comment.json +20 -1
  11. package/.mcp/schemas/github.issue_update.json +105 -1
  12. package/.mcp/schemas/github.issue_view.json +14 -1
  13. package/.mcp/schemas/github.open_replacement_pr.json +63 -1
  14. package/.mcp/schemas/github.search_open_prs.json +47 -1
  15. package/.mcp/schemas/jules.cancel_session.json +14 -1
  16. package/.mcp/schemas/jules.create_session.json +40 -1
  17. package/.mcp/schemas/jules.get_messages.json +14 -1
  18. package/.mcp/schemas/jules.get_pr.json +14 -1
  19. package/.mcp/schemas/jules.get_session.json +14 -1
  20. package/.mcp/schemas/jules.list_sessions.json +32 -1
  21. package/.mcp/schemas/jules.send_message.json +31 -1
  22. package/.mcp/schemas/jules.trigger_feedback.json +14 -1
  23. package/.mcp/schemas/repo.commit_patch.json +35 -1
  24. package/.mcp/schemas/repo.create_branch.json +20 -1
  25. package/.mcp/schemas/repo.create_repair_branch.json +33 -1
  26. package/.mcp/schemas/repo.get_changed_files.json +18 -1
  27. package/.mcp/schemas/repo.get_command_schema.json +14 -1
  28. package/.mcp/schemas/repo.get_package_scripts.json +19 -1
  29. package/.mcp/schemas/repo.get_route_map.json +19 -1
  30. package/.mcp/schemas/repo.logs.json +27 -1
  31. package/.mcp/schemas/repo.read_agent_context.json +5 -1
  32. package/.mcp/schemas/repo.read_ci_logs.json +20 -1
  33. package/.mcp/schemas/repo.run_lighthouse.json +25 -1
  34. package/.mcp/schemas/repo.run_playwright.json +32 -1
  35. package/.mcp/schemas/repo.run_tests.json +41 -1
  36. package/CHANGELOG.md +23 -0
  37. package/actions/ai-review/action.yml +8 -3
  38. package/actions/audit/action.yml +2 -2
  39. package/actions/ci-validate/action.yml +3 -3
  40. package/actions/impact-analysis/action.yml +36 -28
  41. package/actions/lint-typecheck/action.yml +2 -2
  42. package/actions/run-project-gate/action.yml +11 -3
  43. package/actions/setup/action.yml +2 -2
  44. package/actions/test-build/action.yml +2 -2
  45. package/dist/config.js +2 -4
  46. package/dist/lib/git.js +1 -3
  47. package/dist/lib/td-cli.js +27 -0
  48. package/dist/mcp/server.js +1 -1
  49. package/dist/tools/contract.js +1085 -151
  50. package/dist/tools/github.get_pr_diff.js +1 -1
  51. package/dist/tools/repo.read_agent_context.js +10 -14
  52. package/dist/tools/repo.read_agent_context.test.js +10 -0
  53. package/package.json +24 -19
  54. package/scripts/create_instructions.sh +0 -0
  55. package/scripts/sync-contracts.ts +216 -6
  56. package/src/lib/td-cli.ts +35 -0
  57. package/src/tools/contract.ts +1844 -878
  58. package/src/tools/github.get_pr_diff.ts +1 -1
  59. package/src/tools/repo.read_agent_context.test.ts +11 -0
  60. package/src/tools/repo.read_agent_context.ts +10 -14
  61. package/start_browsermcp.sh +0 -0
  62. package/start_github_mcp.sh +0 -0
  63. package/actions/setup-workspace/action.yml +0 -179
@@ -1 +1,27 @@
1
- {"name":"agent.search_ddgs","description":"Search the web using DuckDuckGo (via ddgs python library).","parameters":null}
1
+ {
2
+ "properties": {
3
+ "query": {
4
+ "description": "The search query.",
5
+ "title": "Query",
6
+ "type": "string"
7
+ },
8
+ "maxResults": {
9
+ "anyOf": [
10
+ {
11
+ "type": "integer"
12
+ },
13
+ {
14
+ "type": "null"
15
+ }
16
+ ],
17
+ "default": null,
18
+ "description": "Maximum number of results to return.",
19
+ "title": "Maxresults"
20
+ }
21
+ },
22
+ "required": [
23
+ "query"
24
+ ],
25
+ "title": "SearchDdgsInput",
26
+ "type": "object"
27
+ }
@@ -1 +1,12 @@
1
- {"name":"boomtick.health","description":"Check the health and configuration of the MCP server.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "checkDeep": {
4
+ "default": false,
5
+ "description": "Whether to perform a deep health check including external dependencies.",
6
+ "title": "Checkdeep",
7
+ "type": "boolean"
8
+ }
9
+ },
10
+ "title": "HealthCheckInput",
11
+ "type": "object"
12
+ }
@@ -1 +1,27 @@
1
- {"name":"github.checkout_branch","description":"Checkout a specific branch in the repository or worktree.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "branch": {
4
+ "description": "The name of the branch to checkout.",
5
+ "title": "Branch",
6
+ "type": "string"
7
+ },
8
+ "worktreePath": {
9
+ "anyOf": [
10
+ {
11
+ "type": "string"
12
+ },
13
+ {
14
+ "type": "null"
15
+ }
16
+ ],
17
+ "default": null,
18
+ "description": "Optional path to the worktree to perform the checkout in.",
19
+ "title": "Worktreepath"
20
+ }
21
+ },
22
+ "required": [
23
+ "branch"
24
+ ],
25
+ "title": "CheckoutBranchInput",
26
+ "type": "object"
27
+ }
@@ -1 +1,20 @@
1
- {"name":"github.comment_triage_summary","description":"Comment on the original PR with a diagnosis and replacement link.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "prNumber": {
4
+ "description": "The number of the original PR to comment on.",
5
+ "title": "Prnumber",
6
+ "type": "integer"
7
+ },
8
+ "body": {
9
+ "description": "The content of the comment.",
10
+ "title": "Body",
11
+ "type": "string"
12
+ }
13
+ },
14
+ "required": [
15
+ "prNumber",
16
+ "body"
17
+ ],
18
+ "title": "CommentTriageSummaryInput",
19
+ "type": "object"
20
+ }
@@ -1 +1,40 @@
1
- {"name":"github.create_issue","description":"Create a new GitHub issue.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "title": {
4
+ "minLength": 1,
5
+ "title": "Title",
6
+ "type": "string"
7
+ },
8
+ "body": {
9
+ "anyOf": [
10
+ {
11
+ "minLength": 1,
12
+ "type": "string"
13
+ },
14
+ {
15
+ "type": "null"
16
+ }
17
+ ],
18
+ "default": null,
19
+ "title": "Body"
20
+ },
21
+ "file": {
22
+ "anyOf": [
23
+ {
24
+ "minLength": 1,
25
+ "type": "string"
26
+ },
27
+ {
28
+ "type": "null"
29
+ }
30
+ ],
31
+ "default": null,
32
+ "title": "File"
33
+ }
34
+ },
35
+ "required": [
36
+ "title"
37
+ ],
38
+ "title": "CreateIssueInput",
39
+ "type": "object"
40
+ }
@@ -1 +1,38 @@
1
- {"name":"github.create_pull_request","description":"Creates a pull request on GitHub using the MCP server's integrated credentials. Bypasses terminal CLI constraints.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "title": {
4
+ "description": "PR Title.",
5
+ "title": "Title",
6
+ "type": "string"
7
+ },
8
+ "body": {
9
+ "description": "Description of changes.",
10
+ "title": "Body",
11
+ "type": "string"
12
+ },
13
+ "head": {
14
+ "description": "The branch containing changes to merge.",
15
+ "title": "Head",
16
+ "type": "string"
17
+ },
18
+ "base": {
19
+ "default": "main",
20
+ "description": "The target branch to merge into.",
21
+ "title": "Base",
22
+ "type": "string"
23
+ },
24
+ "draft": {
25
+ "default": false,
26
+ "description": "Whether to create the PR as a draft.",
27
+ "title": "Draft",
28
+ "type": "boolean"
29
+ }
30
+ },
31
+ "required": [
32
+ "title",
33
+ "body",
34
+ "head"
35
+ ],
36
+ "title": "CreatePullRequestInput",
37
+ "type": "object"
38
+ }
@@ -1 +1,20 @@
1
- {"name":"github.get_merge_conflict_files","description":"Detect files that conflict when a PR is merged with the base branch.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "prNumber": {
4
+ "description": "The number of the pull request to check for conflicts.",
5
+ "title": "Prnumber",
6
+ "type": "integer"
7
+ },
8
+ "baseBranch": {
9
+ "default": "main",
10
+ "description": "The base branch to check against (default: 'main').",
11
+ "title": "Basebranch",
12
+ "type": "string"
13
+ }
14
+ },
15
+ "required": [
16
+ "prNumber"
17
+ ],
18
+ "title": "GetMergeConflictFilesInput",
19
+ "type": "object"
20
+ }
@@ -1 +1,14 @@
1
- {"name":"github.get_pr","description":"Get details of a GitHub PR including title, state, and URLs.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "prNumber": {
4
+ "description": "The number of the PR to view.",
5
+ "title": "Prnumber",
6
+ "type": "integer"
7
+ }
8
+ },
9
+ "required": [
10
+ "prNumber"
11
+ ],
12
+ "title": "GetPrInput",
13
+ "type": "object"
14
+ }
@@ -1 +1,14 @@
1
- {"name":"github.get_pr_diff","description":"Get the diff and changed files for a pull request.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "prNumber": {
4
+ "description": "The number of the pull request to get the diff for.",
5
+ "title": "Prnumber",
6
+ "type": "integer"
7
+ }
8
+ },
9
+ "required": [
10
+ "prNumber"
11
+ ],
12
+ "title": "GetPrDiffInput",
13
+ "type": "object"
14
+ }
@@ -1 +1,20 @@
1
- {"name":"github.issue_comment","description":"Add a new comment to a GitHub issue.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "issueNumber": {
4
+ "description": "The number of the issue to comment on.",
5
+ "title": "Issuenumber",
6
+ "type": "integer"
7
+ },
8
+ "body": {
9
+ "description": "The content of the comment.",
10
+ "title": "Body",
11
+ "type": "string"
12
+ }
13
+ },
14
+ "required": [
15
+ "issueNumber",
16
+ "body"
17
+ ],
18
+ "title": "IssueCommentInput",
19
+ "type": "object"
20
+ }
@@ -1 +1,105 @@
1
- {"name":"github.issue_update","description":"Update a GitHub issue's body, labels, and/or state.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "issueNumber": {
4
+ "description": "The number of the issue to update.",
5
+ "title": "Issuenumber",
6
+ "type": "integer"
7
+ },
8
+ "body": {
9
+ "anyOf": [
10
+ {
11
+ "type": "string"
12
+ },
13
+ {
14
+ "type": "null"
15
+ }
16
+ ],
17
+ "default": null,
18
+ "description": "The new body content for the issue.",
19
+ "title": "Body"
20
+ },
21
+ "file": {
22
+ "anyOf": [
23
+ {
24
+ "type": "string"
25
+ },
26
+ {
27
+ "type": "null"
28
+ }
29
+ ],
30
+ "default": null,
31
+ "description": "Path to file containing new issue body.",
32
+ "title": "File"
33
+ },
34
+ "labels": {
35
+ "anyOf": [
36
+ {
37
+ "items": {
38
+ "type": "string"
39
+ },
40
+ "type": "array"
41
+ },
42
+ {
43
+ "type": "null"
44
+ }
45
+ ],
46
+ "default": null,
47
+ "description": "Comma-separated list of labels to set.",
48
+ "title": "Labels"
49
+ },
50
+ "addLabels": {
51
+ "anyOf": [
52
+ {
53
+ "items": {
54
+ "type": "string"
55
+ },
56
+ "type": "array"
57
+ },
58
+ {
59
+ "type": "null"
60
+ }
61
+ ],
62
+ "default": null,
63
+ "description": "Comma-separated list of labels to add.",
64
+ "title": "Addlabels"
65
+ },
66
+ "removeLabels": {
67
+ "anyOf": [
68
+ {
69
+ "items": {
70
+ "type": "string"
71
+ },
72
+ "type": "array"
73
+ },
74
+ {
75
+ "type": "null"
76
+ }
77
+ ],
78
+ "default": null,
79
+ "description": "Comma-separated list of labels to remove.",
80
+ "title": "Removelabels"
81
+ },
82
+ "state": {
83
+ "anyOf": [
84
+ {
85
+ "enum": [
86
+ "open",
87
+ "closed"
88
+ ],
89
+ "type": "string"
90
+ },
91
+ {
92
+ "type": "null"
93
+ }
94
+ ],
95
+ "default": null,
96
+ "description": "The state to set the issue to.",
97
+ "title": "State"
98
+ }
99
+ },
100
+ "required": [
101
+ "issueNumber"
102
+ ],
103
+ "title": "IssueUpdateInput",
104
+ "type": "object"
105
+ }
@@ -1 +1,14 @@
1
- {"name":"github.issue_view","description":"View details of a GitHub issue including title, body, and state.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "issueNumber": {
4
+ "description": "The number of the issue to view.",
5
+ "title": "Issuenumber",
6
+ "type": "integer"
7
+ }
8
+ },
9
+ "required": [
10
+ "issueNumber"
11
+ ],
12
+ "title": "IssueViewInput",
13
+ "type": "object"
14
+ }
@@ -1 +1,63 @@
1
- {"name":"github.open_replacement_pr","description":"Open a new PR that replaces or repairs the original PR.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "originalPrNumber": {
4
+ "description": "The number of the pull request being replaced.",
5
+ "title": "Originalprnumber",
6
+ "type": "integer"
7
+ },
8
+ "repairBranch": {
9
+ "description": "The branch containing the fixes.",
10
+ "title": "Repairbranch",
11
+ "type": "string"
12
+ },
13
+ "baseBranch": {
14
+ "description": "The branch to merge the fixes into.",
15
+ "title": "Basebranch",
16
+ "type": "string"
17
+ },
18
+ "title": {
19
+ "description": "The title of the new PR.",
20
+ "title": "Title",
21
+ "type": "string"
22
+ },
23
+ "body": {
24
+ "description": "The body/description of the new PR.",
25
+ "title": "Body",
26
+ "type": "string"
27
+ },
28
+ "draft": {
29
+ "default": true,
30
+ "description": "Whether to create the PR as a draft (default: true).",
31
+ "title": "Draft",
32
+ "type": "boolean"
33
+ },
34
+ "worktreePath": {
35
+ "anyOf": [
36
+ {
37
+ "type": "string"
38
+ },
39
+ {
40
+ "type": "null"
41
+ }
42
+ ],
43
+ "default": null,
44
+ "description": "Optional path to the worktree where the PR is created from.",
45
+ "title": "Worktreepath"
46
+ },
47
+ "pushMode": {
48
+ "description": "Safety gate: Must be true to push the branch and open the PR.",
49
+ "title": "Pushmode",
50
+ "type": "boolean"
51
+ }
52
+ },
53
+ "required": [
54
+ "originalPrNumber",
55
+ "repairBranch",
56
+ "baseBranch",
57
+ "title",
58
+ "body",
59
+ "pushMode"
60
+ ],
61
+ "title": "OpenReplacementPrInput",
62
+ "type": "object"
63
+ }
@@ -1 +1,47 @@
1
- {"name":"github.search_open_prs","description":"Search for open pull requests in the repository.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "state": {
4
+ "default": "open",
5
+ "description": "The state of the PRs to search for.",
6
+ "enum": [
7
+ "open",
8
+ "closed",
9
+ "all"
10
+ ],
11
+ "title": "State",
12
+ "type": "string"
13
+ },
14
+ "limit": {
15
+ "default": 100,
16
+ "description": "The maximum number of PRs to return (default: 100, range: 1-100).",
17
+ "maximum": 100,
18
+ "minimum": 1,
19
+ "title": "Limit",
20
+ "type": "integer"
21
+ },
22
+ "includeDrafts": {
23
+ "default": true,
24
+ "description": "Whether to include draft PRs in the results.",
25
+ "title": "Includedrafts",
26
+ "type": "boolean"
27
+ },
28
+ "labels": {
29
+ "anyOf": [
30
+ {
31
+ "items": {
32
+ "type": "string"
33
+ },
34
+ "type": "array"
35
+ },
36
+ {
37
+ "type": "null"
38
+ }
39
+ ],
40
+ "default": null,
41
+ "description": "Filter PRs by labels.",
42
+ "title": "Labels"
43
+ }
44
+ },
45
+ "title": "SearchPRsInput",
46
+ "type": "object"
47
+ }
@@ -1 +1,14 @@
1
- {"name":"jules.cancel_session","description":"Cancel an ongoing Jules session.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "sessionId": {
4
+ "description": "The unique ID of the Jules session.",
5
+ "title": "Sessionid",
6
+ "type": "string"
7
+ }
8
+ },
9
+ "required": [
10
+ "sessionId"
11
+ ],
12
+ "title": "JulesSessionIdInput",
13
+ "type": "object"
14
+ }
@@ -1 +1,40 @@
1
- {"name":"jules.create_session","description":"Create a Jules session that performs work externally and may generate a GitHub pull request.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "task": {
4
+ "description": "The instructions for Jules.",
5
+ "title": "Task",
6
+ "type": "string"
7
+ },
8
+ "branch": {
9
+ "anyOf": [
10
+ {
11
+ "type": "string"
12
+ },
13
+ {
14
+ "type": "null"
15
+ }
16
+ ],
17
+ "default": null,
18
+ "description": "The base branch to start from (e.g., 'main').",
19
+ "title": "Branch"
20
+ },
21
+ "pr": {
22
+ "anyOf": [
23
+ {
24
+ "type": "integer"
25
+ },
26
+ {
27
+ "type": "null"
28
+ }
29
+ ],
30
+ "default": null,
31
+ "description": "The PR number to use as the base branch context.",
32
+ "title": "Pr"
33
+ }
34
+ },
35
+ "required": [
36
+ "task"
37
+ ],
38
+ "title": "CreateJulesSessionInput",
39
+ "type": "object"
40
+ }
@@ -1 +1,14 @@
1
- {"name":"jules.get_messages","description":"Get the message history of a Jules session.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "sessionId": {
4
+ "description": "The unique ID of the Jules session.",
5
+ "title": "Sessionid",
6
+ "type": "string"
7
+ }
8
+ },
9
+ "required": [
10
+ "sessionId"
11
+ ],
12
+ "title": "JulesSessionIdInput",
13
+ "type": "object"
14
+ }
@@ -1 +1,14 @@
1
- {"name":"jules.get_pr","description":"Get the generated pull request url associated with an active Jules agent session.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "sessionId": {
4
+ "description": "The unique ID of the Jules session.",
5
+ "title": "Sessionid",
6
+ "type": "string"
7
+ }
8
+ },
9
+ "required": [
10
+ "sessionId"
11
+ ],
12
+ "title": "JulesSessionIdInput",
13
+ "type": "object"
14
+ }
@@ -1 +1,14 @@
1
- {"name":"jules.get_session","description":"Get the status and details of a Jules session.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "sessionId": {
4
+ "description": "The unique ID of the Jules session.",
5
+ "title": "Sessionid",
6
+ "type": "string"
7
+ }
8
+ },
9
+ "required": [
10
+ "sessionId"
11
+ ],
12
+ "title": "JulesSessionIdInput",
13
+ "type": "object"
14
+ }
@@ -1 +1,32 @@
1
- {"name":"jules.list_sessions","description":"List all Jules sessions.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "pageSize": {
4
+ "anyOf": [
5
+ {
6
+ "type": "integer"
7
+ },
8
+ {
9
+ "type": "null"
10
+ }
11
+ ],
12
+ "default": null,
13
+ "description": "Maximum number of sessions to return.",
14
+ "title": "Pagesize"
15
+ },
16
+ "pageToken": {
17
+ "anyOf": [
18
+ {
19
+ "type": "string"
20
+ },
21
+ {
22
+ "type": "null"
23
+ }
24
+ ],
25
+ "default": null,
26
+ "description": "Token for pagination.",
27
+ "title": "Pagetoken"
28
+ }
29
+ },
30
+ "title": "JulesListSessionsInput",
31
+ "type": "object"
32
+ }
@@ -1 +1,31 @@
1
- {"name":"jules.send_message","description":"Send a message to an active Jules session.","parameters":null}
1
+ {
2
+ "properties": {
3
+ "sessionId": {
4
+ "anyOf": [
5
+ {
6
+ "type": "string"
7
+ },
8
+ {
9
+ "items": {
10
+ "type": "string"
11
+ },
12
+ "type": "array"
13
+ }
14
+ ],
15
+ "description": "The unique ID or IDs of the Jules session(s).",
16
+ "title": "Sessionid"
17
+ },
18
+ "message": {
19
+ "description": "The message content to send.",
20
+ "minLength": 1,
21
+ "title": "Message",
22
+ "type": "string"
23
+ }
24
+ },
25
+ "required": [
26
+ "sessionId",
27
+ "message"
28
+ ],
29
+ "title": "JulesSendMessageInput",
30
+ "type": "object"
31
+ }