backlog-mcp-server 0.18.0 → 0.19.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.
Files changed (86) hide show
  1. package/README.ja.md +16 -0
  2. package/README.md +17 -0
  3. package/build/auth/oauthRoutes.js +1 -1
  4. package/build/backlog/customFields.js +12 -9
  5. package/build/handlers/builders/composeDynamicToolHandler.d.ts +147 -0
  6. package/build/handlers/builders/composeDynamicToolHandler.js +55 -0
  7. package/build/httpMcpServer.js +8 -1
  8. package/build/lib.d.ts +2 -0
  9. package/build/lib.js +1 -0
  10. package/build/loadDescriptionOverrides.js +2 -2
  11. package/build/registerTools.js +18 -0
  12. package/build/tools/addDocument.d.ts +1 -1
  13. package/build/tools/addDocument.js +2 -1
  14. package/build/tools/addIssue.d.ts +1 -1
  15. package/build/tools/addIssueComment.d.ts +1 -1
  16. package/build/tools/addProject.d.ts +1 -1
  17. package/build/tools/addPullRequest.d.ts +1 -1
  18. package/build/tools/addPullRequestComment.d.ts +1 -1
  19. package/build/tools/addRelatedIssue.d.ts +1 -1
  20. package/build/tools/addVersionMilestone.d.ts +1 -1
  21. package/build/tools/addWatching.d.ts +1 -1
  22. package/build/tools/addWiki.d.ts +1 -1
  23. package/build/tools/countIssues.d.ts +1 -1
  24. package/build/tools/deleteIssue.d.ts +1 -1
  25. package/build/tools/deleteProject.d.ts +1 -1
  26. package/build/tools/deleteVersion.d.ts +1 -1
  27. package/build/tools/deleteWatching.d.ts +1 -1
  28. package/build/tools/getCategories.d.ts +1 -1
  29. package/build/tools/getCustomFields.d.ts +1 -1
  30. package/build/tools/getDocument.d.ts +1 -1
  31. package/build/tools/getDocument.js +1 -0
  32. package/build/tools/getDocumentTree.d.ts +1 -1
  33. package/build/tools/getDocuments.d.ts +1 -1
  34. package/build/tools/getDocuments.js +1 -0
  35. package/build/tools/getGitRepositories.d.ts +1 -1
  36. package/build/tools/getGitRepository.d.ts +1 -1
  37. package/build/tools/getIssue.d.ts +1 -1
  38. package/build/tools/getIssueAttachment.d.ts +16 -0
  39. package/build/tools/getIssueAttachment.js +345 -0
  40. package/build/tools/getIssueComments.d.ts +1 -1
  41. package/build/tools/getIssueTypes.d.ts +1 -1
  42. package/build/tools/getIssues.d.ts +15 -15
  43. package/build/tools/getMyself.d.ts +1 -1
  44. package/build/tools/getNotifications.d.ts +1 -1
  45. package/build/tools/getNotifications.js +3 -0
  46. package/build/tools/getNotificationsCount.d.ts +1 -1
  47. package/build/tools/getPriorities.d.ts +1 -1
  48. package/build/tools/getProject.d.ts +1 -1
  49. package/build/tools/getProjectList.d.ts +1 -1
  50. package/build/tools/getProjectUsers.d.ts +1 -1
  51. package/build/tools/getPullRequest.d.ts +1 -1
  52. package/build/tools/getPullRequestComments.d.ts +1 -1
  53. package/build/tools/getPullRequests.d.ts +1 -1
  54. package/build/tools/getPullRequestsCount.d.ts +1 -1
  55. package/build/tools/getRelatedIssues.d.ts +1 -1
  56. package/build/tools/getResolutions.d.ts +1 -1
  57. package/build/tools/getSpace.d.ts +1 -1
  58. package/build/tools/getSpaceActivities.d.ts +1 -1
  59. package/build/tools/getUserRecentUpdates.d.ts +1 -1
  60. package/build/tools/getUserStarsCount.d.ts +1 -1
  61. package/build/tools/getUsers.d.ts +1 -1
  62. package/build/tools/getVersionMilestoneList.d.ts +1 -1
  63. package/build/tools/getWatchingListCount.d.ts +1 -1
  64. package/build/tools/getWatchingListItems.d.ts +1 -1
  65. package/build/tools/getWiki.d.ts +1 -1
  66. package/build/tools/getWikiPages.d.ts +1 -1
  67. package/build/tools/getWikisCount.d.ts +1 -1
  68. package/build/tools/markNotificationAsRead.d.ts +1 -1
  69. package/build/tools/markWatchingAsRead.d.ts +1 -1
  70. package/build/tools/removeRelatedIssue.d.ts +1 -1
  71. package/build/tools/resetUnreadNotificationCount.d.ts +1 -1
  72. package/build/tools/shared/customFieldFiltersSchema.d.ts +1 -1
  73. package/build/tools/tools.js +2 -0
  74. package/build/tools/updateIssue.d.ts +1 -1
  75. package/build/tools/updateIssueComment.d.ts +1 -1
  76. package/build/tools/updateProject.d.ts +1 -1
  77. package/build/tools/updatePullRequest.d.ts +1 -1
  78. package/build/tools/updatePullRequestComment.d.ts +1 -1
  79. package/build/tools/updateVersionMilestone.d.ts +1 -1
  80. package/build/tools/updateWatching.d.ts +1 -1
  81. package/build/tools/updateWiki.d.ts +1 -1
  82. package/build/types/tool.d.ts +1 -1
  83. package/build/types/toolsets.d.ts +12 -1
  84. package/build/utils/logger.js +41 -3
  85. package/build/utils/resolveIdOrKey.d.ts +2 -2
  86. package/package.json +18 -25
@@ -3,7 +3,7 @@ import type { Entity } from 'backlog-js';
3
3
  import { Backlog } from 'backlog-js';
4
4
  import { ToolDefinition } from '../types/tool.js';
5
5
  import { DescriptionHelper } from '../createDescriptionHelper.js';
6
- declare const getVersionMilestoneListSchema: (t: DescriptionHelper["t"]) => {
6
+ declare const getVersionMilestoneListSchema: (t: DescriptionHelper['t']) => {
7
7
  projectId: z.ZodOptional<z.ZodNumber>;
8
8
  projectKey: z.ZodOptional<z.ZodString>;
9
9
  };
@@ -3,7 +3,7 @@ import type { Entity } from 'backlog-js';
3
3
  import { Backlog } from 'backlog-js';
4
4
  import { ToolDefinition } from '../types/tool.js';
5
5
  import { DescriptionHelper } from '../createDescriptionHelper.js';
6
- declare const getWatchingListCountSchema: (t: DescriptionHelper["t"]) => {
6
+ declare const getWatchingListCountSchema: (t: DescriptionHelper['t']) => {
7
7
  userId: z.ZodNumber;
8
8
  };
9
9
  export declare const getWatchingListCountTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof getWatchingListCountSchema>, Entity.WatchingList.WatchingListCount>;
@@ -3,7 +3,7 @@ import type { Entity } from 'backlog-js';
3
3
  import { Backlog } from 'backlog-js';
4
4
  import { ToolDefinition } from '../types/tool.js';
5
5
  import { DescriptionHelper } from '../createDescriptionHelper.js';
6
- declare const getWatchingListItemsSchema: (t: DescriptionHelper["t"]) => {
6
+ declare const getWatchingListItemsSchema: (t: DescriptionHelper['t']) => {
7
7
  userId: z.ZodNumber;
8
8
  };
9
9
  export declare const getWatchingListItemsTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof getWatchingListItemsSchema>, Entity.WatchingList.WatchingListItem>;
@@ -3,7 +3,7 @@ import type { Entity } from 'backlog-js';
3
3
  import { Backlog } from 'backlog-js';
4
4
  import { ToolDefinition } from '../types/tool.js';
5
5
  import { DescriptionHelper } from '../createDescriptionHelper.js';
6
- declare const getWikiSchema: (t: DescriptionHelper["t"]) => {
6
+ declare const getWikiSchema: (t: DescriptionHelper['t']) => {
7
7
  wikiId: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
8
8
  };
9
9
  export declare const getWikiTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof getWikiSchema>, Entity.Wiki.Wiki>;
@@ -3,7 +3,7 @@ import type { Entity } from 'backlog-js';
3
3
  import { Backlog } from 'backlog-js';
4
4
  import { ToolDefinition } from '../types/tool.js';
5
5
  import { DescriptionHelper } from '../createDescriptionHelper.js';
6
- declare const getWikiPagesSchema: (t: DescriptionHelper["t"]) => {
6
+ declare const getWikiPagesSchema: (t: DescriptionHelper['t']) => {
7
7
  projectId: z.ZodOptional<z.ZodNumber>;
8
8
  projectKey: z.ZodOptional<z.ZodString>;
9
9
  keyword: z.ZodOptional<z.ZodString>;
@@ -3,7 +3,7 @@ import type { Entity } from 'backlog-js';
3
3
  import { Backlog } from 'backlog-js';
4
4
  import { ToolDefinition } from '../types/tool.js';
5
5
  import { DescriptionHelper } from '../createDescriptionHelper.js';
6
- declare const getWikisCountSchema: (t: DescriptionHelper["t"]) => {
6
+ declare const getWikisCountSchema: (t: DescriptionHelper['t']) => {
7
7
  projectId: z.ZodOptional<z.ZodNumber>;
8
8
  projectKey: z.ZodOptional<z.ZodString>;
9
9
  };
@@ -7,7 +7,7 @@ type MarkNotificationAsReadResult = {
7
7
  message: string;
8
8
  };
9
9
  import { DescriptionHelper } from '../createDescriptionHelper.js';
10
- declare const markNotificationAsReadSchema: (t: DescriptionHelper["t"]) => {
10
+ declare const markNotificationAsReadSchema: (t: DescriptionHelper['t']) => {
11
11
  id: z.ZodNumber;
12
12
  };
13
13
  export declare const MarkNotificationAsReadResultSchema: z.ZodObject<{
@@ -7,7 +7,7 @@ type MarkWatchingAsReadResult = {
7
7
  message: string;
8
8
  };
9
9
  import { DescriptionHelper } from '../createDescriptionHelper.js';
10
- declare const markWatchingAsReadSchema: (t: DescriptionHelper["t"]) => {
10
+ declare const markWatchingAsReadSchema: (t: DescriptionHelper['t']) => {
11
11
  watchId: z.ZodNumber;
12
12
  };
13
13
  export declare const MarkWatchingAsReadResultSchema: z.ZodObject<{
@@ -3,7 +3,7 @@ import type { Entity } from 'backlog-js';
3
3
  import { Backlog } from 'backlog-js';
4
4
  import { ToolDefinition } from '../types/tool.js';
5
5
  import { DescriptionHelper } from '../createDescriptionHelper.js';
6
- declare const removeRelatedIssueSchema: (t: DescriptionHelper["t"]) => {
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;
@@ -2,6 +2,6 @@ import type { Entity } from 'backlog-js';
2
2
  import { Backlog } from 'backlog-js';
3
3
  import { ToolDefinition } from '../types/tool.js';
4
4
  import { DescriptionHelper } from '../createDescriptionHelper.js';
5
- declare const resetUnreadNotificationCountSchema: (t: DescriptionHelper["t"]) => {};
5
+ declare const resetUnreadNotificationCountSchema: (t: DescriptionHelper['t']) => {};
6
6
  export declare const resetUnreadNotificationCountTool: (backlog: Backlog, { t }: DescriptionHelper) => ToolDefinition<ReturnType<typeof resetUnreadNotificationCountSchema>, Entity.Notification.NotificationCount>;
7
7
  export {};
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { DescriptionHelper } from '../../createDescriptionHelper.js';
3
- export declare const buildCustomFieldFilterSchema: (t: DescriptionHelper["t"]) => z.ZodDiscriminatedUnion<[z.ZodObject<{
3
+ export declare const buildCustomFieldFilterSchema: (t: DescriptionHelper['t']) => z.ZodDiscriminatedUnion<[z.ZodObject<{
4
4
  type: z.ZodLiteral<"text">;
5
5
  id: z.ZodNumber;
6
6
  value: z.ZodString;
@@ -13,6 +13,7 @@ import { getCustomFieldsTool } from './getCustomFields.js';
13
13
  import { getGitRepositoriesTool } from './getGitRepositories.js';
14
14
  import { getGitRepositoryTool } from './getGitRepository.js';
15
15
  import { getIssueTool } from './getIssue.js';
16
+ import { getIssueAttachmentTool } from './getIssueAttachment.js';
16
17
  import { getIssueCommentsTool } from './getIssueComments.js';
17
18
  import { getIssuesTool } from './getIssues.js';
18
19
  import { getRelatedIssuesTool } from './getRelatedIssues.js';
@@ -93,6 +94,7 @@ export const allTools = (backlog, helper) => {
93
94
  name: 'issue',
94
95
  description: 'Tools for managing issues and their comments.',
95
96
  enabled: false,
97
+ dynamicTools: [getIssueAttachmentTool(backlog, helper)],
96
98
  tools: [
97
99
  getIssueTool(backlog, helper),
98
100
  getIssuesTool(backlog, helper),
@@ -3,7 +3,7 @@ import { Backlog } from 'backlog-js';
3
3
  import type { Entity } from 'backlog-js';
4
4
  import { ToolDefinition } from '../types/tool.js';
5
5
  import { DescriptionHelper } from '../createDescriptionHelper.js';
6
- declare const updateIssueSchema: (t: DescriptionHelper["t"]) => {
6
+ declare const updateIssueSchema: (t: DescriptionHelper['t']) => {
7
7
  issueId: z.ZodOptional<z.ZodNumber>;
8
8
  issueKey: z.ZodOptional<z.ZodString>;
9
9
  summary: z.ZodOptional<z.ZodString>;
@@ -3,7 +3,7 @@ import type { Entity } from 'backlog-js';
3
3
  import { Backlog } from 'backlog-js';
4
4
  import { ToolDefinition } from '../types/tool.js';
5
5
  import { DescriptionHelper } from '../createDescriptionHelper.js';
6
- declare const updateIssueCommentSchema: (t: DescriptionHelper["t"]) => {
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;
@@ -3,7 +3,7 @@ import type { Entity } from 'backlog-js';
3
3
  import { Backlog } from 'backlog-js';
4
4
  import { ToolDefinition } from '../types/tool.js';
5
5
  import { DescriptionHelper } from '../createDescriptionHelper.js';
6
- declare const updateProjectSchema: (t: DescriptionHelper["t"]) => {
6
+ declare const updateProjectSchema: (t: DescriptionHelper['t']) => {
7
7
  projectId: z.ZodOptional<z.ZodNumber>;
8
8
  projectKey: z.ZodOptional<z.ZodString>;
9
9
  name: z.ZodOptional<z.ZodString>;
@@ -3,7 +3,7 @@ import type { Entity } from 'backlog-js';
3
3
  import { Backlog } from 'backlog-js';
4
4
  import { ToolDefinition } from '../types/tool.js';
5
5
  import { DescriptionHelper } from '../createDescriptionHelper.js';
6
- declare const updatePullRequestSchema: (t: DescriptionHelper["t"]) => {
6
+ declare const updatePullRequestSchema: (t: DescriptionHelper['t']) => {
7
7
  projectId: z.ZodOptional<z.ZodNumber>;
8
8
  projectKey: z.ZodOptional<z.ZodString>;
9
9
  repoId: z.ZodOptional<z.ZodNumber>;
@@ -3,7 +3,7 @@ import type { Entity } from 'backlog-js';
3
3
  import { Backlog } from 'backlog-js';
4
4
  import { ToolDefinition } from '../types/tool.js';
5
5
  import { DescriptionHelper } from '../createDescriptionHelper.js';
6
- declare const updatePullRequestCommentSchema: (t: DescriptionHelper["t"]) => {
6
+ declare const updatePullRequestCommentSchema: (t: DescriptionHelper['t']) => {
7
7
  projectId: z.ZodOptional<z.ZodNumber>;
8
8
  projectKey: z.ZodOptional<z.ZodString>;
9
9
  repoId: z.ZodOptional<z.ZodNumber>;
@@ -3,7 +3,7 @@ import type { Entity } from 'backlog-js';
3
3
  import { Backlog } from 'backlog-js';
4
4
  import { ToolDefinition } from '../types/tool.js';
5
5
  import { DescriptionHelper } from '../createDescriptionHelper.js';
6
- declare const updateVersionMilestoneSchema: (t: DescriptionHelper["t"]) => {
6
+ declare const updateVersionMilestoneSchema: (t: DescriptionHelper['t']) => {
7
7
  projectId: z.ZodOptional<z.ZodNumber>;
8
8
  projectKey: z.ZodOptional<z.ZodString>;
9
9
  id: z.ZodNumber;
@@ -3,7 +3,7 @@ import type { Entity } from 'backlog-js';
3
3
  import { Backlog } from 'backlog-js';
4
4
  import { ToolDefinition } from '../types/tool.js';
5
5
  import { DescriptionHelper } from '../createDescriptionHelper.js';
6
- declare const updateWatchingSchema: (t: DescriptionHelper["t"]) => {
6
+ declare const updateWatchingSchema: (t: DescriptionHelper['t']) => {
7
7
  watchId: z.ZodNumber;
8
8
  note: z.ZodString;
9
9
  };
@@ -3,7 +3,7 @@ import type { Entity } from 'backlog-js';
3
3
  import { Backlog } from 'backlog-js';
4
4
  import { ToolDefinition } from '../types/tool.js';
5
5
  import { DescriptionHelper } from '../createDescriptionHelper.js';
6
- declare const updateWikiSchema: (t: DescriptionHelper["t"]) => {
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>;
@@ -28,7 +28,7 @@ export type ToolDefinition<Shape extends z.ZodRawShape, Result> = {
28
28
  */
29
29
  returnsList: boolean;
30
30
  };
31
- export declare const buildToolSchema: <T extends z.ZodRawShape>(fn: (t: DescriptionHelper["t"]) => T) => (t: DescriptionHelper["t"]) => T;
31
+ export declare const buildToolSchema: <T extends z.ZodRawShape>(fn: (t: DescriptionHelper['t']) => T) => (t: DescriptionHelper['t']) => T;
32
32
  export type DynamicToolDefinition<Shape extends z.ZodRawShape> = {
33
33
  name: string;
34
34
  description: string;
@@ -5,7 +5,18 @@ type BaseToolset<TTool> = {
5
5
  enabled: boolean;
6
6
  tools: TTool[];
7
7
  };
8
- export type Toolset = BaseToolset<ToolDefinition<any, any>>;
8
+ export type Toolset = BaseToolset<ToolDefinition<any, any>> & {
9
+ /**
10
+ * Tools of this toolset that build their own `CallToolResult`.
11
+ *
12
+ * A separate field rather than a member of `tools`, because the two are
13
+ * registered through different pipelines: a `ToolDefinition` is reshaped by
14
+ * field picking and the token limit, which a tool returning binary content
15
+ * must not be. Keeping them in one toolset is what makes `--enable-toolsets`
16
+ * and the prefix apply to both.
17
+ */
18
+ dynamicTools?: DynamicToolDefinition<any>[];
19
+ };
9
20
  export type ToolsetGroup = {
10
21
  toolsets: Toolset[];
11
22
  };
@@ -2,10 +2,42 @@ import pino from 'pino';
2
2
  if (!process.env.NODE_ENV) {
3
3
  process.env.NODE_ENV = 'production';
4
4
  }
5
- const isProd = process.env.NODE_ENV === 'production';
5
+ // Normalised the same way LOG_LEVEL is below. A strict `=== 'production'` makes
6
+ // `Production`, or a stray space picked up from a shell or a container runtime,
7
+ // silently mean "not production" — and that flips the default level *and* the
8
+ // output format, with nothing logged to say so. A typo here is worth less
9
+ // tolerance than a typo in LOG_LEVEL, not more.
10
+ const isProd = process.env.NODE_ENV?.trim().toLowerCase() === 'production';
11
+ // pino's levels plus `silent`. Listed here so an unusable LOG_LEVEL is caught
12
+ // while the fallback is still available, rather than by pino throwing during
13
+ // construction — a server that refuses to start is a worse answer to a typo in
14
+ // an environment variable than one that logs at its default level and says so.
15
+ const LEVELS = [
16
+ 'fatal',
17
+ 'error',
18
+ 'warn',
19
+ 'info',
20
+ 'debug',
21
+ 'trace',
22
+ 'silent',
23
+ ];
24
+ const defaultLevel = isProd ? 'error' : 'debug';
25
+ // LOG_LEVEL decides how much is logged; NODE_ENV decides how it is formatted.
26
+ // The two are independent questions, and conflating them bites on the HTTP
27
+ // transport in particular: there the log stream is the only channel an operator
28
+ // has, so raising the level to diagnose something must not also switch the
29
+ // output to colorized, human-formatted lines that a log collector stores
30
+ // verbatim.
31
+ // An empty or blank LOG_LEVEL counts as not set: it is what an unset variable
32
+ // looks like once it has been through a shell or a container runtime.
33
+ const normalisedLevel = process.env.LOG_LEVEL?.trim().toLowerCase() || undefined;
34
+ const requestedLevel = normalisedLevel && LEVELS.includes(normalisedLevel)
35
+ ? normalisedLevel
36
+ : undefined;
37
+ const level = requestedLevel ?? defaultLevel;
6
38
  // Plain JSON on stderr. stdout carries the JSON-RPC stream on the stdio
7
39
  // transport, so a log line landing there would corrupt the protocol.
8
- const plainLogger = () => pino({ level: isProd ? 'error' : 'debug' }, pino.destination({ dest: 2, sync: false }));
40
+ const plainLogger = () => pino({ level }, pino.destination({ dest: 2, sync: false }));
9
41
  // `pino-pretty` is a development-only dependency, so an installed copy of this
10
42
  // package does not have it. pino resolves a transport target eagerly and throws
11
43
  // synchronously when it cannot, so asking is cheaper than probing the module
@@ -13,7 +45,7 @@ const plainLogger = () => pino({ level: isProd ? 'error' : 'debug' }, pino.desti
13
45
  const prettyLogger = () => {
14
46
  try {
15
47
  return pino({
16
- level: 'debug',
48
+ level,
17
49
  transport: {
18
50
  target: 'pino-pretty',
19
51
  options: {
@@ -31,3 +63,9 @@ const prettyLogger = () => {
31
63
  }
32
64
  };
33
65
  export const logger = isProd ? plainLogger() : prettyLogger();
66
+ if (normalisedLevel && !requestedLevel) {
67
+ // `logger.error`, not `warn`: the level in force here is the default one,
68
+ // which on a deployed server swallows anything lower — and this message
69
+ // exists precisely for the operator whose LOG_LEVEL did not take effect.
70
+ logger.error({ requested: process.env.LOG_LEVEL, effective: level, supported: LEVELS }, 'Unrecognised LOG_LEVEL; falling back to the default level');
71
+ }
@@ -10,9 +10,9 @@ type ResolveResult = {
10
10
  export declare const resolveIdOrKey: <E extends EntityName>(entity: E, values: {
11
11
  id?: number;
12
12
  key?: string;
13
- }, t: DescriptionHelper["t"]) => ResolveResult;
13
+ }, t: DescriptionHelper['t']) => ResolveResult;
14
14
  export declare const resolveIdOrName: <E extends EntityName>(entity: E, values: {
15
15
  id?: number;
16
16
  name?: string;
17
- }, t: DescriptionHelper["t"]) => ResolveResult;
17
+ }, t: DescriptionHelper['t']) => ResolveResult;
18
18
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "backlog-mcp-server",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "backlog-mcp-server": "./build/index.js"
@@ -33,34 +33,29 @@
33
33
  "build"
34
34
  ],
35
35
  "dependencies": {
36
- "@hono/node-server": "^2.0.10",
36
+ "@hono/node-server": "^2.1.1",
37
37
  "@modelcontextprotocol/hono": "^2.0.0",
38
38
  "@modelcontextprotocol/server": "^2.0.0",
39
- "backlog-js": "^0.19.1",
39
+ "backlog-js": "^0.20.1",
40
40
  "env-var": "^7.5.0",
41
- "hono": "^4.12.34",
42
- "js-yaml": "^5.2.3",
41
+ "hono": "^4.13.5",
42
+ "js-yaml": "^5.4.1",
43
43
  "pino": "^10.3.1",
44
- "yargs": "^18.0.0",
44
+ "yargs": "^18.1.0",
45
45
  "zod": "^4.4.3"
46
46
  },
47
47
  "devDependencies": {
48
- "@eslint/js": "^10.0.1",
49
48
  "@types/js-yaml": "^4.0.9",
50
- "@types/node": "^26.2.0",
49
+ "@types/node": "^26.4.0",
51
50
  "@types/yargs": "^17.0.35",
52
- "@typescript-eslint/eslint-plugin": "^8.60.1",
53
- "@typescript-eslint/parser": "^8.60.1",
54
- "@typescript-eslint/utils": "^8.60.1",
55
- "@vitest/coverage-v8": "^4.1.8",
56
- "eslint": "^10.4.1",
57
- "eslint-config-prettier": "^10.1.8",
58
- "eslint-plugin-prettier": "^5.5.6",
51
+ "@vitest/coverage-v8": "^4.1.11",
52
+ "oxfmt": "^0.65.0",
53
+ "oxlint": "^1.80.0",
54
+ "oxlint-tsgolint": "^7.0.2001",
59
55
  "pino-pretty": "^13.1.3",
60
- "prettier": "^3.8.3",
61
- "tsx": "^4.22.4",
62
- "typescript": "^6.0.3",
63
- "vitest": "^4.1.8"
56
+ "tsx": "^4.23.12",
57
+ "typescript": "^7.0.2",
58
+ "vitest": "^4.1.11"
64
59
  },
65
60
  "scripts": {
66
61
  "preinstall": "npx only-allow pnpm",
@@ -69,11 +64,9 @@
69
64
  "test": "vitest run",
70
65
  "test:watch": "vitest",
71
66
  "test:coverage": "vitest run --coverage",
72
- "lint": "eslint . --ext .ts",
73
- "lint:fix": "eslint . --ext .ts --fix",
74
- "format": "prettier --check \"**/*.{ts,tsx}\"",
75
- "format:fix": "prettier --write \"**/*.{ts,tsx}\"",
76
- "typecheck": "tsc --noEmit",
77
- "typecheck:all": "tsc --noEmit --project tsconfig.test.json"
67
+ "lint": "oxlint --type-aware --type-check",
68
+ "lint:fix": "oxlint --type-aware --type-check --fix",
69
+ "format": "oxfmt --check src vitest.config.ts",
70
+ "format:fix": "oxfmt src vitest.config.ts"
78
71
  }
79
72
  }