backlog-mcp-server 0.16.0 → 0.18.0
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/README.ja.md +15 -32
- package/README.md +20 -32
- package/build/auth/oauthRoutes.js +53 -1
- package/build/createBacklogMcpServer.d.ts +4 -6
- package/build/createBacklogMcpServer.js +4 -12
- package/build/handlers/builders/composeToolHandler.d.ts +1 -1
- package/build/handlers/builders/composeToolHandler.js +15 -9
- package/build/handlers/transformers/wrapWithFieldPicking.d.ts +14 -1
- package/build/handlers/transformers/wrapWithFieldPicking.js +30 -36
- package/build/index.js +30 -16
- package/build/lib.d.ts +1 -1
- package/build/loadDescriptionOverrides.d.ts +0 -13
- package/build/loadDescriptionOverrides.js +73 -11
- package/build/reportUnknownOverrideKeys.d.ts +22 -0
- package/build/reportUnknownOverrideKeys.js +42 -0
- package/build/tools/addDocument.d.ts +2 -2
- package/build/tools/addDocument.js +17 -2
- package/build/tools/addIssue.d.ts +2 -2
- package/build/tools/addIssue.js +32 -2
- package/build/tools/addIssueComment.d.ts +2 -2
- package/build/tools/addIssueComment.js +14 -2
- package/build/tools/addProject.d.ts +2 -2
- package/build/tools/addProject.js +22 -2
- package/build/tools/addPullRequest.d.ts +2 -2
- package/build/tools/addPullRequest.js +26 -2
- package/build/tools/addPullRequestComment.d.ts +2 -2
- package/build/tools/addPullRequestComment.js +12 -2
- package/build/tools/addRelatedIssue.d.ts +2 -2
- package/build/tools/addRelatedIssue.js +33 -2
- package/build/tools/addVersionMilestone.d.ts +2 -2
- package/build/tools/addVersionMilestone.js +12 -2
- package/build/tools/addWatching.d.ts +2 -2
- package/build/tools/addWatching.js +12 -2
- package/build/tools/addWiki.d.ts +2 -2
- package/build/tools/addWiki.js +16 -2
- package/build/tools/countIssues.d.ts +2 -2
- package/build/tools/countIssues.js +3 -2
- package/build/tools/deleteIssue.d.ts +2 -2
- package/build/tools/deleteIssue.js +32 -2
- package/build/tools/deleteProject.d.ts +2 -2
- package/build/tools/deleteProject.js +22 -2
- package/build/tools/deleteVersion.d.ts +2 -2
- package/build/tools/deleteVersion.js +12 -2
- package/build/tools/deleteWatching.d.ts +2 -2
- package/build/tools/deleteWatching.js +12 -2
- package/build/tools/getCategories.d.ts +2 -2
- package/build/tools/getCategories.js +8 -2
- package/build/tools/getCustomFields.d.ts +2 -2
- package/build/tools/getCustomFields.js +22 -2
- package/build/tools/getDocument.d.ts +2 -2
- package/build/tools/getDocument.js +17 -2
- package/build/tools/getDocumentTree.d.ts +2 -2
- package/build/tools/getDocumentTree.js +7 -2
- package/build/tools/getDocuments.d.ts +2 -2
- package/build/tools/getDocuments.js +17 -2
- package/build/tools/getGitRepositories.d.ts +2 -2
- package/build/tools/getGitRepositories.js +17 -2
- package/build/tools/getGitRepository.d.ts +2 -2
- package/build/tools/getGitRepository.js +17 -2
- package/build/tools/getIssue.d.ts +2 -2
- package/build/tools/getIssue.js +32 -2
- package/build/tools/getIssueComments.d.ts +2 -2
- package/build/tools/getIssueComments.js +14 -2
- package/build/tools/getIssueTypes.d.ts +2 -2
- package/build/tools/getIssueTypes.js +11 -2
- package/build/tools/getIssues.d.ts +10 -10
- package/build/tools/getIssues.js +32 -2
- package/build/tools/getMyself.d.ts +2 -2
- package/build/tools/getMyself.js +11 -2
- package/build/tools/getNotifications.d.ts +2 -2
- package/build/tools/getNotifications.js +15 -2
- package/build/tools/getNotificationsCount.d.ts +2 -2
- package/build/tools/getNotificationsCount.js +5 -2
- package/build/tools/getPriorities.d.ts +2 -2
- package/build/tools/getPriorities.js +3 -2
- package/build/tools/getProject.d.ts +2 -2
- package/build/tools/getProject.js +22 -2
- package/build/tools/getProjectList.d.ts +2 -2
- package/build/tools/getProjectList.js +22 -2
- package/build/tools/getProjectUsers.d.ts +2 -2
- package/build/tools/getProjectUsers.js +11 -2
- package/build/tools/getPullRequest.d.ts +2 -2
- package/build/tools/getPullRequest.js +26 -2
- package/build/tools/getPullRequestComments.d.ts +2 -2
- package/build/tools/getPullRequestComments.js +12 -2
- package/build/tools/getPullRequests.d.ts +2 -2
- package/build/tools/getPullRequests.js +26 -2
- package/build/tools/getPullRequestsCount.d.ts +2 -2
- package/build/tools/getPullRequestsCount.js +5 -2
- package/build/tools/getRelatedIssues.d.ts +2 -2
- package/build/tools/getRelatedIssues.js +33 -2
- package/build/tools/getResolutions.d.ts +2 -2
- package/build/tools/getResolutions.js +3 -2
- package/build/tools/getSpace.d.ts +2 -2
- package/build/tools/getSpace.js +13 -2
- package/build/tools/getSpaceActivities.d.ts +2 -2
- package/build/tools/getSpaceActivities.js +12 -2
- package/build/tools/getUserRecentUpdates.d.ts +2 -2
- package/build/tools/getUserRecentUpdates.js +12 -2
- package/build/tools/getUserStarsCount.d.ts +2 -2
- package/build/tools/getUserStarsCount.js +3 -2
- package/build/tools/getUsers.d.ts +2 -2
- package/build/tools/getUsers.js +11 -2
- package/build/tools/getVersionMilestoneList.d.ts +2 -2
- package/build/tools/getVersionMilestoneList.js +12 -2
- package/build/tools/getWatchingListCount.d.ts +2 -2
- package/build/tools/getWatchingListCount.js +5 -2
- package/build/tools/getWatchingListItems.d.ts +2 -2
- package/build/tools/getWatchingListItems.js +12 -2
- package/build/tools/getWiki.d.ts +2 -2
- package/build/tools/getWiki.js +16 -2
- package/build/tools/getWikiPages.d.ts +2 -2
- package/build/tools/getWikiPages.js +12 -2
- package/build/tools/getWikisCount.d.ts +2 -2
- package/build/tools/getWikisCount.js +3 -2
- package/build/tools/markNotificationAsRead.d.ts +6 -1
- package/build/tools/markNotificationAsRead.js +6 -1
- package/build/tools/markWatchingAsRead.d.ts +6 -1
- package/build/tools/markWatchingAsRead.js +6 -1
- package/build/tools/removeRelatedIssue.d.ts +2 -2
- package/build/tools/removeRelatedIssue.js +33 -2
- package/build/tools/resetUnreadNotificationCount.d.ts +2 -2
- package/build/tools/resetUnreadNotificationCount.js +5 -2
- package/build/tools/updateIssue.d.ts +2 -2
- package/build/tools/updateIssue.js +32 -2
- package/build/tools/updateIssueComment.d.ts +2 -2
- package/build/tools/updateIssueComment.js +14 -2
- package/build/tools/updateProject.d.ts +2 -2
- package/build/tools/updateProject.js +22 -2
- package/build/tools/updatePullRequest.d.ts +2 -2
- package/build/tools/updatePullRequest.js +26 -2
- package/build/tools/updatePullRequestComment.d.ts +2 -2
- package/build/tools/updatePullRequestComment.js +12 -2
- package/build/tools/updateVersionMilestone.d.ts +2 -2
- package/build/tools/updateVersionMilestone.js +12 -2
- package/build/tools/updateWatching.d.ts +2 -2
- package/build/tools/updateWatching.js +12 -2
- package/build/tools/updateWiki.d.ts +2 -2
- package/build/tools/updateWiki.js +16 -2
- package/build/types/outputFields.d.ts +26 -0
- package/build/types/outputFields.js +3 -0
- package/build/types/tool.d.ts +21 -8
- package/build/types/zod/activityType.d.ts +38 -0
- package/build/types/zod/activityType.js +38 -0
- package/build/utils/fieldSelection.d.ts +22 -0
- package/build/utils/fieldSelection.js +40 -0
- package/build/utils/toolsetUtils.d.ts +1 -3
- package/build/utils/toolsetUtils.js +0 -12
- package/package.json +4 -4
- package/build/tools/dynamicTools/toolsets.d.ts +0 -15
- package/build/tools/dynamicTools/toolsets.js +0 -103
- package/build/types/zod/backlogOutputDefinition.d.ts +0 -3334
- package/build/types/zod/backlogOutputDefinition.js +0 -483
- package/build/utils/generateFieldsDescription.d.ts +0 -5
- package/build/utils/generateFieldsDescription.js +0 -50
- package/build/utils/toolRegistrar.d.ts +0 -5
- package/build/utils/toolRegistrar.js +0 -12
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { Backlog } from 'backlog-js';
|
|
3
3
|
import { ToolDefinition } from '../types/tool.js';
|
|
4
|
+
/** This tool reports its own outcome; the Backlog call returns nothing. */
|
|
5
|
+
type MarkNotificationAsReadResult = {
|
|
6
|
+
success: boolean;
|
|
7
|
+
message: string;
|
|
8
|
+
};
|
|
4
9
|
import { DescriptionHelper } from '../createDescriptionHelper.js';
|
|
5
10
|
declare const markNotificationAsReadSchema: (t: DescriptionHelper["t"]) => {
|
|
6
11
|
id: z.ZodNumber;
|
|
@@ -9,5 +14,5 @@ export declare const MarkNotificationAsReadResultSchema: z.ZodObject<{
|
|
|
9
14
|
success: z.ZodBoolean;
|
|
10
15
|
message: z.ZodString;
|
|
11
16
|
}, z.core.$strip>;
|
|
12
|
-
export declare const markNotificationAsReadTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof markNotificationAsReadSchema>,
|
|
17
|
+
export declare const markNotificationAsReadTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof markNotificationAsReadSchema>, MarkNotificationAsReadResult>;
|
|
13
18
|
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { buildToolSchema } from '../types/tool.js';
|
|
3
|
+
import { outputFields } from '../types/outputFields.js';
|
|
3
4
|
const markNotificationAsReadSchema = buildToolSchema((t) => ({
|
|
4
5
|
id: z
|
|
5
6
|
.number()
|
|
@@ -14,7 +15,11 @@ export const markNotificationAsReadTool = (backlog, { t }) => {
|
|
|
14
15
|
name: 'mark_notification_as_read',
|
|
15
16
|
description: t('TOOL_MARK_NOTIFICATION_AS_READ_DESCRIPTION', 'Mark a notification as read'),
|
|
16
17
|
schema: z.object(markNotificationAsReadSchema(t)),
|
|
17
|
-
|
|
18
|
+
returnsList: false,
|
|
19
|
+
outputFields: outputFields()([
|
|
20
|
+
'success',
|
|
21
|
+
'message',
|
|
22
|
+
]),
|
|
18
23
|
handler: async ({ id }) => {
|
|
19
24
|
await backlog.markAsReadNotification(id);
|
|
20
25
|
return {
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { Backlog } from 'backlog-js';
|
|
3
3
|
import { ToolDefinition } from '../types/tool.js';
|
|
4
|
+
/** This tool reports its own outcome; the Backlog call returns nothing. */
|
|
5
|
+
type MarkWatchingAsReadResult = {
|
|
6
|
+
success: boolean;
|
|
7
|
+
message: string;
|
|
8
|
+
};
|
|
4
9
|
import { DescriptionHelper } from '../createDescriptionHelper.js';
|
|
5
10
|
declare const markWatchingAsReadSchema: (t: DescriptionHelper["t"]) => {
|
|
6
11
|
watchId: z.ZodNumber;
|
|
@@ -9,5 +14,5 @@ export declare const MarkWatchingAsReadResultSchema: z.ZodObject<{
|
|
|
9
14
|
success: z.ZodBoolean;
|
|
10
15
|
message: z.ZodString;
|
|
11
16
|
}, z.core.$strip>;
|
|
12
|
-
export declare const markWatchingAsReadTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof markWatchingAsReadSchema>,
|
|
17
|
+
export declare const markWatchingAsReadTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof markWatchingAsReadSchema>, MarkWatchingAsReadResult>;
|
|
13
18
|
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { buildToolSchema } from '../types/tool.js';
|
|
3
|
+
import { outputFields } from '../types/outputFields.js';
|
|
3
4
|
const markWatchingAsReadSchema = buildToolSchema((t) => ({
|
|
4
5
|
watchId: z
|
|
5
6
|
.number()
|
|
@@ -14,7 +15,11 @@ export const markWatchingAsReadTool = (backlog, { t }) => {
|
|
|
14
15
|
name: 'mark_watching_as_read',
|
|
15
16
|
description: t('TOOL_MARK_WATCHING_AS_READ_DESCRIPTION', 'Mark a watch as read'),
|
|
16
17
|
schema: z.object(markWatchingAsReadSchema(t)),
|
|
17
|
-
|
|
18
|
+
returnsList: false,
|
|
19
|
+
outputFields: outputFields()([
|
|
20
|
+
'success',
|
|
21
|
+
'message',
|
|
22
|
+
]),
|
|
18
23
|
handler: async ({ watchId }) => {
|
|
19
24
|
await backlog.resetWatchingListItemAsRead(watchId);
|
|
20
25
|
return {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import type { Entity } from 'backlog-js';
|
|
2
3
|
import { Backlog } from 'backlog-js';
|
|
3
4
|
import { ToolDefinition } from '../types/tool.js';
|
|
4
5
|
import { DescriptionHelper } from '../createDescriptionHelper.js';
|
|
5
|
-
import { RelatedIssueSchema } from '../types/zod/backlogOutputDefinition.js';
|
|
6
6
|
declare const removeRelatedIssueSchema: (t: DescriptionHelper["t"]) => {
|
|
7
7
|
issueId: z.ZodOptional<z.ZodNumber>;
|
|
8
8
|
issueKey: z.ZodOptional<z.ZodString>;
|
|
9
9
|
relatedIssueId: z.ZodNumber;
|
|
10
10
|
};
|
|
11
|
-
export declare const removeRelatedIssueTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof removeRelatedIssueSchema>,
|
|
11
|
+
export declare const removeRelatedIssueTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof removeRelatedIssueSchema>, Entity.Issue.RelatedIssue>;
|
|
12
12
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { buildToolSchema } from '../types/tool.js';
|
|
3
|
-
import {
|
|
3
|
+
import { outputFields } from '../types/outputFields.js';
|
|
4
4
|
import { resolveIdOrKey } from '../utils/resolveIdOrKey.js';
|
|
5
5
|
const removeRelatedIssueSchema = buildToolSchema((t) => ({
|
|
6
6
|
issueId: z
|
|
@@ -20,7 +20,38 @@ export const removeRelatedIssueTool = (backlog, { t }) => {
|
|
|
20
20
|
name: 'remove_related_issue',
|
|
21
21
|
description: t('TOOL_REMOVE_RELATED_ISSUE_DESCRIPTION', 'Removes the relation between an issue and a related issue'),
|
|
22
22
|
schema: z.object(removeRelatedIssueSchema(t)),
|
|
23
|
-
|
|
23
|
+
returnsList: false,
|
|
24
|
+
outputFields: outputFields()([
|
|
25
|
+
'id',
|
|
26
|
+
'projectId',
|
|
27
|
+
'issueKey',
|
|
28
|
+
'keyId',
|
|
29
|
+
'issueType',
|
|
30
|
+
'summary',
|
|
31
|
+
'description',
|
|
32
|
+
'resolution',
|
|
33
|
+
'priority',
|
|
34
|
+
'status',
|
|
35
|
+
'assignee',
|
|
36
|
+
'category',
|
|
37
|
+
'versions',
|
|
38
|
+
'milestone',
|
|
39
|
+
'startDate',
|
|
40
|
+
'dueDate',
|
|
41
|
+
'estimatedHours',
|
|
42
|
+
'actualHours',
|
|
43
|
+
'parentIssueId',
|
|
44
|
+
'createdUser',
|
|
45
|
+
'created',
|
|
46
|
+
'updatedUser',
|
|
47
|
+
'updated',
|
|
48
|
+
'customFields',
|
|
49
|
+
'attachments',
|
|
50
|
+
'sharedFiles',
|
|
51
|
+
'stars',
|
|
52
|
+
'childIssueSummary',
|
|
53
|
+
'type',
|
|
54
|
+
]),
|
|
24
55
|
handler: async ({ issueId, issueKey, relatedIssueId }) => {
|
|
25
56
|
const result = resolveIdOrKey('issue', { id: issueId, key: issueKey }, t);
|
|
26
57
|
if (!result.ok) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import type { Entity } from 'backlog-js';
|
|
1
2
|
import { Backlog } from 'backlog-js';
|
|
2
3
|
import { ToolDefinition } from '../types/tool.js';
|
|
3
4
|
import { DescriptionHelper } from '../createDescriptionHelper.js';
|
|
4
|
-
import { NotificationCountSchema } from '../types/zod/backlogOutputDefinition.js';
|
|
5
5
|
declare const resetUnreadNotificationCountSchema: (t: DescriptionHelper["t"]) => {};
|
|
6
|
-
export declare const resetUnreadNotificationCountTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof resetUnreadNotificationCountSchema>,
|
|
6
|
+
export declare const resetUnreadNotificationCountTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof resetUnreadNotificationCountSchema>, Entity.Notification.NotificationCount>;
|
|
7
7
|
export {};
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { buildToolSchema } from '../types/tool.js';
|
|
3
|
-
import {
|
|
3
|
+
import { outputFields } from '../types/outputFields.js';
|
|
4
4
|
const resetUnreadNotificationCountSchema = buildToolSchema((_t) => ({}));
|
|
5
5
|
export const resetUnreadNotificationCountTool = (backlog, { t }) => {
|
|
6
6
|
return {
|
|
7
7
|
name: 'reset_unread_notification_count',
|
|
8
8
|
description: t('TOOL_RESET_UNREAD_NOTIFICATION_COUNT_DESCRIPTION', 'Reset unread notification count'),
|
|
9
9
|
schema: z.object(resetUnreadNotificationCountSchema(t)),
|
|
10
|
-
|
|
10
|
+
returnsList: false,
|
|
11
|
+
outputFields: outputFields()([
|
|
12
|
+
'count',
|
|
13
|
+
]),
|
|
11
14
|
handler: async () => backlog.resetNotificationsMarkAsRead(),
|
|
12
15
|
};
|
|
13
16
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { Backlog } from 'backlog-js';
|
|
3
|
+
import type { Entity } from 'backlog-js';
|
|
3
4
|
import { ToolDefinition } from '../types/tool.js';
|
|
4
5
|
import { DescriptionHelper } from '../createDescriptionHelper.js';
|
|
5
|
-
import { IssueSchema } from '../types/zod/backlogOutputDefinition.js';
|
|
6
6
|
declare const updateIssueSchema: (t: DescriptionHelper["t"]) => {
|
|
7
7
|
issueId: z.ZodOptional<z.ZodNumber>;
|
|
8
8
|
issueKey: z.ZodOptional<z.ZodString>;
|
|
@@ -30,5 +30,5 @@ declare const updateIssueSchema: (t: DescriptionHelper["t"]) => {
|
|
|
30
30
|
otherValue: z.ZodOptional<z.ZodString>;
|
|
31
31
|
}, z.core.$strip>>>;
|
|
32
32
|
};
|
|
33
|
-
export declare const updateIssueTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof updateIssueSchema>,
|
|
33
|
+
export declare const updateIssueTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof updateIssueSchema>, Entity.Issue.Issue>;
|
|
34
34
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { buildToolSchema } from '../types/tool.js';
|
|
3
|
-
import {
|
|
3
|
+
import { outputFields } from '../types/outputFields.js';
|
|
4
4
|
import { resolveIdOrKey } from '../utils/resolveIdOrKey.js';
|
|
5
5
|
import { customFieldsToPayload } from '../backlog/customFields.js';
|
|
6
6
|
const updateIssueSchema = buildToolSchema((t) => ({
|
|
@@ -135,7 +135,37 @@ export const updateIssueTool = (backlog, { t }) => {
|
|
|
135
135
|
name: 'update_issue',
|
|
136
136
|
description: t('TOOL_UPDATE_ISSUE_DESCRIPTION', 'Updates an existing issue'),
|
|
137
137
|
schema: z.object(updateIssueSchema(t)),
|
|
138
|
-
|
|
138
|
+
returnsList: false,
|
|
139
|
+
outputFields: outputFields()([
|
|
140
|
+
'id',
|
|
141
|
+
'projectId',
|
|
142
|
+
'issueKey',
|
|
143
|
+
'keyId',
|
|
144
|
+
'issueType',
|
|
145
|
+
'summary',
|
|
146
|
+
'description',
|
|
147
|
+
'resolution',
|
|
148
|
+
'priority',
|
|
149
|
+
'status',
|
|
150
|
+
'assignee',
|
|
151
|
+
'category',
|
|
152
|
+
'versions',
|
|
153
|
+
'milestone',
|
|
154
|
+
'startDate',
|
|
155
|
+
'dueDate',
|
|
156
|
+
'estimatedHours',
|
|
157
|
+
'actualHours',
|
|
158
|
+
'parentIssueId',
|
|
159
|
+
'createdUser',
|
|
160
|
+
'created',
|
|
161
|
+
'updatedUser',
|
|
162
|
+
'updated',
|
|
163
|
+
'customFields',
|
|
164
|
+
'attachments',
|
|
165
|
+
'sharedFiles',
|
|
166
|
+
'stars',
|
|
167
|
+
'childIssueSummary',
|
|
168
|
+
]),
|
|
139
169
|
handler: async ({ issueId, issueKey, customFields, ...params }) => {
|
|
140
170
|
const result = resolveIdOrKey('issue', { id: issueId, key: issueKey }, t);
|
|
141
171
|
if (!result.ok) {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import type { Entity } from 'backlog-js';
|
|
2
3
|
import { Backlog } from 'backlog-js';
|
|
3
4
|
import { ToolDefinition } from '../types/tool.js';
|
|
4
5
|
import { DescriptionHelper } from '../createDescriptionHelper.js';
|
|
5
|
-
import { IssueCommentSchema } from '../types/zod/backlogOutputDefinition.js';
|
|
6
6
|
declare const updateIssueCommentSchema: (t: DescriptionHelper["t"]) => {
|
|
7
7
|
issueId: z.ZodOptional<z.ZodNumber>;
|
|
8
8
|
issueKey: z.ZodOptional<z.ZodString>;
|
|
9
9
|
commentId: z.ZodNumber;
|
|
10
10
|
content: z.ZodString;
|
|
11
11
|
};
|
|
12
|
-
export declare const updateIssueCommentTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof updateIssueCommentSchema>,
|
|
12
|
+
export declare const updateIssueCommentTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof updateIssueCommentSchema>, Entity.Issue.Comment>;
|
|
13
13
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { buildToolSchema } from '../types/tool.js';
|
|
3
|
-
import {
|
|
3
|
+
import { outputFields } from '../types/outputFields.js';
|
|
4
4
|
import { resolveIdOrKey } from '../utils/resolveIdOrKey.js';
|
|
5
5
|
const updateIssueCommentSchema = buildToolSchema((t) => ({
|
|
6
6
|
issueId: z
|
|
@@ -23,7 +23,19 @@ export const updateIssueCommentTool = (backlog, { t }) => {
|
|
|
23
23
|
name: 'update_issue_comment',
|
|
24
24
|
description: t('TOOL_UPDATE_ISSUE_COMMENT_DESCRIPTION', 'Updates a comment on an issue'),
|
|
25
25
|
schema: z.object(updateIssueCommentSchema(t)),
|
|
26
|
-
|
|
26
|
+
returnsList: false,
|
|
27
|
+
outputFields: outputFields()([
|
|
28
|
+
'id',
|
|
29
|
+
'projectId',
|
|
30
|
+
'issueId',
|
|
31
|
+
'content',
|
|
32
|
+
'changeLog',
|
|
33
|
+
'createdUser',
|
|
34
|
+
'created',
|
|
35
|
+
'updated',
|
|
36
|
+
'stars',
|
|
37
|
+
'notifications',
|
|
38
|
+
]),
|
|
27
39
|
importantFields: ['id', 'content', 'createdUser', 'updated'],
|
|
28
40
|
handler: async ({ issueId, issueKey, commentId, content }) => {
|
|
29
41
|
const result = resolveIdOrKey('issue', { id: issueId, key: issueKey }, t);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import type { Entity } from 'backlog-js';
|
|
2
3
|
import { Backlog } from 'backlog-js';
|
|
3
4
|
import { ToolDefinition } from '../types/tool.js';
|
|
4
5
|
import { DescriptionHelper } from '../createDescriptionHelper.js';
|
|
5
|
-
import { ProjectSchema } from '../types/zod/backlogOutputDefinition.js';
|
|
6
6
|
declare const updateProjectSchema: (t: DescriptionHelper["t"]) => {
|
|
7
7
|
projectId: z.ZodOptional<z.ZodNumber>;
|
|
8
8
|
projectKey: z.ZodOptional<z.ZodString>;
|
|
@@ -17,5 +17,5 @@ declare const updateProjectSchema: (t: DescriptionHelper["t"]) => {
|
|
|
17
17
|
}>>;
|
|
18
18
|
archived: z.ZodOptional<z.ZodBoolean>;
|
|
19
19
|
};
|
|
20
|
-
export declare const updateProjectTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof updateProjectSchema>,
|
|
20
|
+
export declare const updateProjectTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof updateProjectSchema>, Entity.Project.Project>;
|
|
21
21
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { buildToolSchema } from '../types/tool.js';
|
|
3
|
-
import {
|
|
3
|
+
import { outputFields } from '../types/outputFields.js';
|
|
4
4
|
import { resolveIdOrKey } from '../utils/resolveIdOrKey.js';
|
|
5
5
|
const updateProjectSchema = buildToolSchema((t) => ({
|
|
6
6
|
projectId: z
|
|
@@ -45,7 +45,27 @@ export const updateProjectTool = (backlog, { t }) => {
|
|
|
45
45
|
name: 'update_project',
|
|
46
46
|
description: t('TOOL_UPDATE_PROJECT_DESCRIPTION', 'Updates an existing project'),
|
|
47
47
|
schema: z.object(updateProjectSchema(t)),
|
|
48
|
-
|
|
48
|
+
returnsList: false,
|
|
49
|
+
outputFields: outputFields()([
|
|
50
|
+
'id',
|
|
51
|
+
'projectKey',
|
|
52
|
+
'name',
|
|
53
|
+
'chartEnabled',
|
|
54
|
+
'useResolvedForChart',
|
|
55
|
+
'subtaskingEnabled',
|
|
56
|
+
'projectLeaderCanEditProjectLeader',
|
|
57
|
+
'useWiki',
|
|
58
|
+
'useFileSharing',
|
|
59
|
+
'useWikiTreeView',
|
|
60
|
+
'useOriginalImageSizeAtWiki',
|
|
61
|
+
'useSubversion',
|
|
62
|
+
'useGit',
|
|
63
|
+
'textFormattingRule',
|
|
64
|
+
'archived',
|
|
65
|
+
'displayOrder',
|
|
66
|
+
'useDevAttributes',
|
|
67
|
+
'grandchildIssueEnabled',
|
|
68
|
+
]),
|
|
49
69
|
handler: async ({ projectId, projectKey, ...param }) => {
|
|
50
70
|
const result = resolveIdOrKey('project', { id: projectId, key: projectKey }, t);
|
|
51
71
|
if (!result.ok) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import type { Entity } from 'backlog-js';
|
|
2
3
|
import { Backlog } from 'backlog-js';
|
|
3
4
|
import { ToolDefinition } from '../types/tool.js';
|
|
4
5
|
import { DescriptionHelper } from '../createDescriptionHelper.js';
|
|
5
|
-
import { PullRequestSchema } from '../types/zod/backlogOutputDefinition.js';
|
|
6
6
|
declare const updatePullRequestSchema: (t: DescriptionHelper["t"]) => {
|
|
7
7
|
projectId: z.ZodOptional<z.ZodNumber>;
|
|
8
8
|
projectKey: z.ZodOptional<z.ZodString>;
|
|
@@ -16,5 +16,5 @@ declare const updatePullRequestSchema: (t: DescriptionHelper["t"]) => {
|
|
|
16
16
|
notifiedUserId: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
17
17
|
statusId: z.ZodOptional<z.ZodNumber>;
|
|
18
18
|
};
|
|
19
|
-
export declare const updatePullRequestTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof updatePullRequestSchema>,
|
|
19
|
+
export declare const updatePullRequestTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof updatePullRequestSchema>, Entity.PullRequest.PullRequest>;
|
|
20
20
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { buildToolSchema } from '../types/tool.js';
|
|
3
|
-
import {
|
|
3
|
+
import { outputFields } from '../types/outputFields.js';
|
|
4
4
|
import { resolveIdOrKey } from '../utils/resolveIdOrKey.js';
|
|
5
5
|
const updatePullRequestSchema = buildToolSchema((t) => ({
|
|
6
6
|
projectId: z
|
|
@@ -52,7 +52,31 @@ export const updatePullRequestTool = (backlog, { t }) => {
|
|
|
52
52
|
name: 'update_pull_request',
|
|
53
53
|
description: t('TOOL_UPDATE_PULL_REQUEST_DESCRIPTION', 'Updates an existing pull request'),
|
|
54
54
|
schema: z.object(updatePullRequestSchema(t)),
|
|
55
|
-
|
|
55
|
+
returnsList: false,
|
|
56
|
+
outputFields: outputFields()([
|
|
57
|
+
'id',
|
|
58
|
+
'projectId',
|
|
59
|
+
'repositoryId',
|
|
60
|
+
'number',
|
|
61
|
+
'summary',
|
|
62
|
+
'description',
|
|
63
|
+
'base',
|
|
64
|
+
'branch',
|
|
65
|
+
'status',
|
|
66
|
+
'assignee',
|
|
67
|
+
'issue',
|
|
68
|
+
'baseCommit',
|
|
69
|
+
'branchCommit',
|
|
70
|
+
'mergeCommit',
|
|
71
|
+
'closeAt',
|
|
72
|
+
'mergeAt',
|
|
73
|
+
'createdUser',
|
|
74
|
+
'created',
|
|
75
|
+
'updatedUser',
|
|
76
|
+
'updated',
|
|
77
|
+
'attachments',
|
|
78
|
+
'stars',
|
|
79
|
+
]),
|
|
56
80
|
handler: async ({ projectId, projectKey, repoId, repoName, number, ...params }) => {
|
|
57
81
|
const result = resolveIdOrKey('project', { id: projectId, key: projectKey }, t);
|
|
58
82
|
if (!result.ok) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import type { Entity } from 'backlog-js';
|
|
2
3
|
import { Backlog } from 'backlog-js';
|
|
3
4
|
import { ToolDefinition } from '../types/tool.js';
|
|
4
5
|
import { DescriptionHelper } from '../createDescriptionHelper.js';
|
|
5
|
-
import { PullRequestCommentSchema } from '../types/zod/backlogOutputDefinition.js';
|
|
6
6
|
declare const updatePullRequestCommentSchema: (t: DescriptionHelper["t"]) => {
|
|
7
7
|
projectId: z.ZodOptional<z.ZodNumber>;
|
|
8
8
|
projectKey: z.ZodOptional<z.ZodString>;
|
|
@@ -12,5 +12,5 @@ declare const updatePullRequestCommentSchema: (t: DescriptionHelper["t"]) => {
|
|
|
12
12
|
commentId: z.ZodNumber;
|
|
13
13
|
content: z.ZodString;
|
|
14
14
|
};
|
|
15
|
-
export declare const updatePullRequestCommentTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof updatePullRequestCommentSchema>,
|
|
15
|
+
export declare const updatePullRequestCommentTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof updatePullRequestCommentSchema>, Entity.PullRequest.Comment>;
|
|
16
16
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { buildToolSchema } from '../types/tool.js';
|
|
3
|
-
import {
|
|
3
|
+
import { outputFields } from '../types/outputFields.js';
|
|
4
4
|
import { resolveIdOrKey, resolveIdOrName } from '../utils/resolveIdOrKey.js';
|
|
5
5
|
const updatePullRequestCommentSchema = buildToolSchema((t) => ({
|
|
6
6
|
projectId: z
|
|
@@ -34,7 +34,17 @@ export const updatePullRequestCommentTool = (backlog, { t }) => {
|
|
|
34
34
|
name: 'update_pull_request_comment',
|
|
35
35
|
description: t('TOOL_UPDATE_PULL_REQUEST_COMMENT_DESCRIPTION', 'Updates a comment on a pull request'),
|
|
36
36
|
schema: z.object(updatePullRequestCommentSchema(t)),
|
|
37
|
-
|
|
37
|
+
returnsList: false,
|
|
38
|
+
outputFields: outputFields()([
|
|
39
|
+
'id',
|
|
40
|
+
'content',
|
|
41
|
+
'changeLog',
|
|
42
|
+
'createdUser',
|
|
43
|
+
'created',
|
|
44
|
+
'updated',
|
|
45
|
+
'stars',
|
|
46
|
+
'notifications',
|
|
47
|
+
]),
|
|
38
48
|
importantFields: ['id', 'content', 'createdUser', 'updated'],
|
|
39
49
|
handler: async ({ projectId, projectKey, repoId, repoName, number, commentId, content, }) => {
|
|
40
50
|
const result = resolveIdOrKey('project', { id: projectId, key: projectKey }, t);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import type { Entity } from 'backlog-js';
|
|
2
3
|
import { Backlog } from 'backlog-js';
|
|
3
4
|
import { ToolDefinition } from '../types/tool.js';
|
|
4
5
|
import { DescriptionHelper } from '../createDescriptionHelper.js';
|
|
5
|
-
import { VersionSchema } from '../types/zod/backlogOutputDefinition.js';
|
|
6
6
|
declare const updateVersionMilestoneSchema: (t: DescriptionHelper["t"]) => {
|
|
7
7
|
projectId: z.ZodOptional<z.ZodNumber>;
|
|
8
8
|
projectKey: z.ZodOptional<z.ZodString>;
|
|
@@ -13,5 +13,5 @@ declare const updateVersionMilestoneSchema: (t: DescriptionHelper["t"]) => {
|
|
|
13
13
|
releaseDueDate: z.ZodOptional<z.ZodString>;
|
|
14
14
|
archived: z.ZodOptional<z.ZodBoolean>;
|
|
15
15
|
};
|
|
16
|
-
export declare const updateVersionMilestoneTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof updateVersionMilestoneSchema>,
|
|
16
|
+
export declare const updateVersionMilestoneTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof updateVersionMilestoneSchema>, Entity.Project.Version>;
|
|
17
17
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { buildToolSchema } from '../types/tool.js';
|
|
3
|
-
import {
|
|
3
|
+
import { outputFields } from '../types/outputFields.js';
|
|
4
4
|
import { resolveIdOrKey } from '../utils/resolveIdOrKey.js';
|
|
5
5
|
const updateVersionMilestoneSchema = buildToolSchema((t) => ({
|
|
6
6
|
projectId: z
|
|
@@ -37,7 +37,17 @@ export const updateVersionMilestoneTool = (backlog, { t }) => {
|
|
|
37
37
|
name: 'update_version_milestone',
|
|
38
38
|
description: t('TOOL_UPDATE_VERSION_MILESTONE_DESCRIPTION', 'Updates an existing version milestone'),
|
|
39
39
|
schema: z.object(updateVersionMilestoneSchema(t)),
|
|
40
|
-
|
|
40
|
+
returnsList: false,
|
|
41
|
+
outputFields: outputFields()([
|
|
42
|
+
'id',
|
|
43
|
+
'projectId',
|
|
44
|
+
'name',
|
|
45
|
+
'description',
|
|
46
|
+
'startDate',
|
|
47
|
+
'releaseDueDate',
|
|
48
|
+
'archived',
|
|
49
|
+
'displayOrder',
|
|
50
|
+
]),
|
|
41
51
|
importantFields: [
|
|
42
52
|
'id',
|
|
43
53
|
'name',
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import type { Entity } from 'backlog-js';
|
|
2
3
|
import { Backlog } from 'backlog-js';
|
|
3
4
|
import { ToolDefinition } from '../types/tool.js';
|
|
4
5
|
import { DescriptionHelper } from '../createDescriptionHelper.js';
|
|
5
|
-
import { WatchingListItemSchema } from '../types/zod/backlogOutputDefinition.js';
|
|
6
6
|
declare const updateWatchingSchema: (t: DescriptionHelper["t"]) => {
|
|
7
7
|
watchId: z.ZodNumber;
|
|
8
8
|
note: z.ZodString;
|
|
9
9
|
};
|
|
10
|
-
export declare const updateWatchingTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof updateWatchingSchema>,
|
|
10
|
+
export declare const updateWatchingTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof updateWatchingSchema>, Entity.WatchingList.WatchingListItem>;
|
|
11
11
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { buildToolSchema } from '../types/tool.js';
|
|
3
|
-
import {
|
|
3
|
+
import { outputFields } from '../types/outputFields.js';
|
|
4
4
|
const updateWatchingSchema = buildToolSchema((t) => ({
|
|
5
5
|
watchId: z.number().describe(t('TOOL_UPDATE_WATCHING_WATCH_ID', 'Watch ID')),
|
|
6
6
|
note: z
|
|
@@ -12,7 +12,17 @@ export const updateWatchingTool = (backlog, { t }) => {
|
|
|
12
12
|
name: 'update_watching',
|
|
13
13
|
description: t('TOOL_UPDATE_WATCHING_DESCRIPTION', 'Updates an existing watch note'),
|
|
14
14
|
schema: z.object(updateWatchingSchema(t)),
|
|
15
|
-
|
|
15
|
+
returnsList: false,
|
|
16
|
+
outputFields: outputFields()([
|
|
17
|
+
'id',
|
|
18
|
+
'resourceAlreadyRead',
|
|
19
|
+
'note',
|
|
20
|
+
'type',
|
|
21
|
+
'issue',
|
|
22
|
+
'lastContentUpdated',
|
|
23
|
+
'created',
|
|
24
|
+
'updated',
|
|
25
|
+
]),
|
|
16
26
|
handler: async ({ watchId, note }) => backlog.patchWatchingListItem(watchId, note),
|
|
17
27
|
};
|
|
18
28
|
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import type { Entity } from 'backlog-js';
|
|
2
3
|
import { Backlog } from 'backlog-js';
|
|
3
4
|
import { ToolDefinition } from '../types/tool.js';
|
|
4
5
|
import { DescriptionHelper } from '../createDescriptionHelper.js';
|
|
5
|
-
import { WikiSchema } from '../types/zod/backlogOutputDefinition.js';
|
|
6
6
|
declare const updateWikiSchema: (t: DescriptionHelper["t"]) => {
|
|
7
7
|
wikiId: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
|
|
8
8
|
name: z.ZodOptional<z.ZodString>;
|
|
9
9
|
content: z.ZodOptional<z.ZodString>;
|
|
10
10
|
mailNotify: z.ZodOptional<z.ZodBoolean>;
|
|
11
11
|
};
|
|
12
|
-
export declare const updateWikiTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof updateWikiSchema>,
|
|
12
|
+
export declare const updateWikiTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof updateWikiSchema>, Entity.Wiki.Wiki>;
|
|
13
13
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { buildToolSchema } from '../types/tool.js';
|
|
3
|
-
import {
|
|
3
|
+
import { outputFields } from '../types/outputFields.js';
|
|
4
4
|
const updateWikiSchema = buildToolSchema((t) => ({
|
|
5
5
|
wikiId: z
|
|
6
6
|
.union([z.string(), z.number()])
|
|
@@ -23,7 +23,21 @@ export const updateWikiTool = (backlog, { t }) => {
|
|
|
23
23
|
name: 'update_wiki',
|
|
24
24
|
description: t('TOOL_UPDATE_WIKI_DESCRIPTION', 'Updates an existing wiki page'),
|
|
25
25
|
schema: z.object(updateWikiSchema(t)),
|
|
26
|
-
|
|
26
|
+
returnsList: false,
|
|
27
|
+
outputFields: outputFields()([
|
|
28
|
+
'id',
|
|
29
|
+
'projectId',
|
|
30
|
+
'name',
|
|
31
|
+
'content',
|
|
32
|
+
'tags',
|
|
33
|
+
'attachments',
|
|
34
|
+
'sharedFiles',
|
|
35
|
+
'stars',
|
|
36
|
+
'createdUser',
|
|
37
|
+
'created',
|
|
38
|
+
'updatedUser',
|
|
39
|
+
'updated',
|
|
40
|
+
]),
|
|
27
41
|
importantFields: ['id', 'name', 'content', 'updatedUser'],
|
|
28
42
|
handler: async ({ wikiId, name, content, mailNotify }) => {
|
|
29
43
|
const wikiIdNumber = typeof wikiId === 'string' ? parseInt(wikiId, 10) : wikiId;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The list of field names a tool's result carries.
|
|
3
|
+
*
|
|
4
|
+
* Only names are needed at runtime — `--optimize-response` publishes them as the
|
|
5
|
+
* enum of its `fields` parameter — and TypeScript types are erased, so the list
|
|
6
|
+
* has to be written out. What this adds is that writing it wrong does not
|
|
7
|
+
* compile: the names are checked against the `backlog-js` type in both
|
|
8
|
+
* directions, so a field that package gains, or one it never had, is a build
|
|
9
|
+
* error rather than a quiet difference.
|
|
10
|
+
*
|
|
11
|
+
* outputFields<Entity.Issue.Issue>()(['id', 'projectId', ...])
|
|
12
|
+
*
|
|
13
|
+
* Missing a name fails with the name in the message:
|
|
14
|
+
*
|
|
15
|
+
* Type '{ __outputFieldsMissing: "childIssueSummary"; }' is missing the
|
|
16
|
+
* following properties from type 'readonly (keyof Issue)[]'
|
|
17
|
+
*
|
|
18
|
+
* A name the type does not have fails with:
|
|
19
|
+
*
|
|
20
|
+
* Type '"nope"' is not assignable to type 'keyof Space'
|
|
21
|
+
*/
|
|
22
|
+
type Missing<T, K extends readonly PropertyKey[]> = Exclude<keyof T, K[number]>;
|
|
23
|
+
export declare function outputFields<T>(): <K extends readonly (keyof T)[]>(keys: K) => [Missing<T, K>] extends [never] ? readonly (keyof T)[] : {
|
|
24
|
+
__outputFieldsMissing: Missing<T, K>;
|
|
25
|
+
};
|
|
26
|
+
export {};
|