@xihe-lab/tapd-mcp-server 1.3.0 → 1.4.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 (97) hide show
  1. package/README.md +56 -7
  2. package/dist/integration-test.d.ts +10 -0
  3. package/dist/integration-test.d.ts.map +1 -0
  4. package/dist/integration-test.js +117 -0
  5. package/dist/integration-test.js.map +1 -0
  6. package/dist/tapd-client.d.ts +32 -1
  7. package/dist/tapd-client.d.ts.map +1 -1
  8. package/dist/tapd-client.js +96 -19
  9. package/dist/tapd-client.js.map +1 -1
  10. package/dist/tools/attachment.d.ts.map +1 -1
  11. package/dist/tools/attachment.js +35 -10
  12. package/dist/tools/attachment.js.map +1 -1
  13. package/dist/tools/board.d.ts +3 -0
  14. package/dist/tools/board.d.ts.map +1 -0
  15. package/dist/tools/board.js +98 -0
  16. package/dist/tools/board.js.map +1 -0
  17. package/dist/tools/bug.d.ts.map +1 -1
  18. package/dist/tools/bug.js +382 -7
  19. package/dist/tools/bug.js.map +1 -1
  20. package/dist/tools/changes.d.ts.map +1 -1
  21. package/dist/tools/changes.js +25 -34
  22. package/dist/tools/changes.js.map +1 -1
  23. package/dist/tools/comment.d.ts.map +1 -1
  24. package/dist/tools/comment.js +53 -3
  25. package/dist/tools/comment.js.map +1 -1
  26. package/dist/tools/custom-fields.d.ts.map +1 -1
  27. package/dist/tools/custom-fields.js +43 -36
  28. package/dist/tools/custom-fields.js.map +1 -1
  29. package/dist/tools/image.d.ts +3 -0
  30. package/dist/tools/image.d.ts.map +1 -0
  31. package/dist/tools/image.js +23 -0
  32. package/dist/tools/image.js.map +1 -0
  33. package/dist/tools/index.d.ts.map +1 -1
  34. package/dist/tools/index.js +12 -0
  35. package/dist/tools/index.js.map +1 -1
  36. package/dist/tools/iteration.d.ts.map +1 -1
  37. package/dist/tools/iteration.js +95 -6
  38. package/dist/tools/iteration.js.map +1 -1
  39. package/dist/tools/mini-comment.d.ts.map +1 -1
  40. package/dist/tools/mini-comment.js +18 -5
  41. package/dist/tools/mini-comment.js.map +1 -1
  42. package/dist/tools/mini-item.d.ts.map +1 -1
  43. package/dist/tools/mini-item.js +36 -11
  44. package/dist/tools/mini-item.js.map +1 -1
  45. package/dist/tools/mini-workspace.d.ts.map +1 -1
  46. package/dist/tools/mini-workspace.js +13 -4
  47. package/dist/tools/mini-workspace.js.map +1 -1
  48. package/dist/tools/program.d.ts +3 -0
  49. package/dist/tools/program.d.ts.map +1 -0
  50. package/dist/tools/program.js +27 -0
  51. package/dist/tools/program.js.map +1 -0
  52. package/dist/tools/relations.d.ts.map +1 -1
  53. package/dist/tools/relations.js +25 -30
  54. package/dist/tools/relations.js.map +1 -1
  55. package/dist/tools/release.d.ts.map +1 -1
  56. package/dist/tools/release.js +228 -2
  57. package/dist/tools/release.js.map +1 -1
  58. package/dist/tools/report.d.ts +3 -0
  59. package/dist/tools/report.d.ts.map +1 -0
  60. package/dist/tools/report.js +38 -0
  61. package/dist/tools/report.js.map +1 -0
  62. package/dist/tools/settings.d.ts.map +1 -1
  63. package/dist/tools/settings.js +379 -31
  64. package/dist/tools/settings.js.map +1 -1
  65. package/dist/tools/source.d.ts +3 -0
  66. package/dist/tools/source.d.ts.map +1 -0
  67. package/dist/tools/source.js +69 -0
  68. package/dist/tools/source.js.map +1 -0
  69. package/dist/tools/story.d.ts.map +1 -1
  70. package/dist/tools/story.js +650 -160
  71. package/dist/tools/story.js.map +1 -1
  72. package/dist/tools/task.d.ts.map +1 -1
  73. package/dist/tools/task.js +104 -11
  74. package/dist/tools/task.js.map +1 -1
  75. package/dist/tools/test.d.ts.map +1 -1
  76. package/dist/tools/test.js +505 -75
  77. package/dist/tools/test.js.map +1 -1
  78. package/dist/tools/timesheet.d.ts.map +1 -1
  79. package/dist/tools/timesheet.js +72 -11
  80. package/dist/tools/timesheet.js.map +1 -1
  81. package/dist/tools/user.d.ts.map +1 -1
  82. package/dist/tools/user.js +36 -4
  83. package/dist/tools/user.js.map +1 -1
  84. package/dist/tools/utility.d.ts +3 -0
  85. package/dist/tools/utility.d.ts.map +1 -0
  86. package/dist/tools/utility.js +132 -0
  87. package/dist/tools/utility.js.map +1 -0
  88. package/dist/tools/wiki.d.ts.map +1 -1
  89. package/dist/tools/wiki.js +75 -20
  90. package/dist/tools/wiki.js.map +1 -1
  91. package/dist/tools/workflow.d.ts.map +1 -1
  92. package/dist/tools/workflow.js +78 -6
  93. package/dist/tools/workflow.js.map +1 -1
  94. package/dist/tools/workspace.d.ts.map +1 -1
  95. package/dist/tools/workspace.js +93 -4
  96. package/dist/tools/workspace.js.map +1 -1
  97. package/package.json +2 -1
@@ -1,60 +1,408 @@
1
1
  import { z } from 'zod';
2
+ import { TapdClient } from '../tapd-client.js';
2
3
  export const settingsTools = [
4
+ // 模块 CRUD
3
5
  {
4
6
  name: "tapd_get_modules",
5
- description: "Get module settings for a project",
7
+ description: "获取项目模块列表",
6
8
  inputSchema: z.object({
7
- workspace_id: z.number().describe("项目ID (必填)"),
8
- id: z.string().optional().describe("id,支持多ID查询"),
9
- name: z.string().optional().describe("标题,支持模糊匹配"),
10
- description: z.string().optional().describe("详细描述"),
11
- owner: z.string().optional().describe("负责人"),
9
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
10
+ id: z.string().optional().describe("模块ID,支持多ID查询"),
11
+ name: z.string().optional().describe("模块名称,支持模糊匹配"),
12
+ description: z.string().optional().describe("模块描述"),
13
+ owner: z.string().optional().describe("模块负责人"),
12
14
  created: z.string().optional().describe("创建时间,支持时间查询"),
13
- limit: z.number().optional().describe("设置返回数量限制,默认为30"),
14
- page: z.number().optional().describe("返回当前数量限制下第N页的数据,默认为1"),
15
+ limit: z.number().optional().describe("返回数量限制,默认30"),
16
+ page: z.number().optional().describe("页码,默认1"),
15
17
  order: z.string().optional().describe("排序规则,如 created desc"),
16
- fields: z.string().optional().describe("设置获取的字段,多个字段间以','逗号隔开"),
18
+ fields: z.string().optional().describe("返回字段,多个字段以逗号分隔"),
17
19
  }),
18
20
  handler: async (client, params) => {
19
- return client.get("/modules", params);
21
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
22
+ if (!workspaceId) {
23
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
24
+ }
25
+ return client.get("/settings/modules", { ...params, workspace_id: workspaceId });
20
26
  },
21
27
  },
28
+ {
29
+ name: "tapd_add_module",
30
+ description: "创建项目模块",
31
+ inputSchema: z.object({
32
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
33
+ name: z.string().describe("模块名称 (必填)"),
34
+ description: z.string().optional().describe("模块描述"),
35
+ owner: z.string().optional().describe("模块负责人"),
36
+ parent_id: z.number().optional().describe("父模块ID(用于创建子模块)"),
37
+ }),
38
+ handler: async (client, params) => {
39
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
40
+ if (!workspaceId) {
41
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
42
+ }
43
+ return client.post("/settings/modules/add", { ...params, workspace_id: workspaceId });
44
+ },
45
+ },
46
+ {
47
+ name: "tapd_update_module",
48
+ description: "更新项目模块",
49
+ inputSchema: z.object({
50
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
51
+ id: z.string().describe("模块ID (必填)"),
52
+ name: z.string().optional().describe("模块名称"),
53
+ description: z.string().optional().describe("模块描述"),
54
+ owner: z.string().optional().describe("模块负责人"),
55
+ parent_id: z.number().optional().describe("父模块ID"),
56
+ }),
57
+ handler: async (client, params) => {
58
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
59
+ if (!workspaceId) {
60
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
61
+ }
62
+ return client.post("/settings/modules/update", { ...params, workspace_id: workspaceId });
63
+ },
64
+ },
65
+ {
66
+ name: "tapd_get_modules_count",
67
+ description: "获取模块数量",
68
+ inputSchema: z.object({
69
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
70
+ id: z.string().optional().describe("模块ID"),
71
+ name: z.string().optional().describe("模块名称"),
72
+ owner: z.string().optional().describe("模块负责人"),
73
+ }),
74
+ handler: async (client, params) => {
75
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
76
+ if (!workspaceId) {
77
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
78
+ }
79
+ return client.get("/settings/modules/count", { ...params, workspace_id: workspaceId });
80
+ },
81
+ },
82
+ // 版本 CRUD
22
83
  {
23
84
  name: "tapd_get_versions",
24
- description: "Get version settings for a project",
85
+ description: "获取项目版本列表",
25
86
  inputSchema: z.object({
26
- workspace_id: z.number().describe("项目ID (必填)"),
87
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
27
88
  id: z.string().optional().describe("版本ID,支持多ID查询"),
28
- owner: z.string().optional().describe("负责人"),
29
- creator: z.string().optional().describe("提交人"),
30
- name: z.string().optional().describe("版本标题,支持模糊匹配"),
31
- created: z.string().optional().describe("创建时间,支持时间查询"),
89
+ name: z.string().optional().describe("版本名称,支持模糊匹配"),
90
+ owner: z.string().optional().describe("版本负责人"),
91
+ creator: z.string().optional().describe("创建人"),
32
92
  status: z.string().optional().describe("状态:0为未关闭,1为已关闭"),
33
- limit: z.number().optional().describe("设置返回数量限制,默认为30"),
34
- page: z.number().optional().describe("返回当前数量限制下第N页的数据,默认为1"),
35
- fields: z.string().optional().describe("设置获取的字段,多个字段间以','逗号隔开"),
93
+ created: z.string().optional().describe("创建时间,支持时间查询"),
94
+ limit: z.number().optional().describe("返回数量限制,默认30"),
95
+ page: z.number().optional().describe("页码,默认1"),
96
+ fields: z.string().optional().describe("返回字段"),
97
+ }),
98
+ handler: async (client, params) => {
99
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
100
+ if (!workspaceId) {
101
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
102
+ }
103
+ return client.get("/settings/versions", { ...params, workspace_id: workspaceId });
104
+ },
105
+ },
106
+ {
107
+ name: "tapd_add_version",
108
+ description: "创建项目版本",
109
+ inputSchema: z.object({
110
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
111
+ name: z.string().describe("版本名称 (必填)"),
112
+ description: z.string().optional().describe("版本描述"),
113
+ owner: z.string().optional().describe("版本负责人"),
114
+ release_date: z.string().optional().describe("发布日期,格式: YYYY-MM-DD"),
115
+ status: z.number().optional().describe("状态:0-未发布(默认),1-已发布"),
116
+ }),
117
+ handler: async (client, params) => {
118
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
119
+ if (!workspaceId) {
120
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
121
+ }
122
+ return client.post("/settings/versions/add", { ...params, workspace_id: workspaceId });
123
+ },
124
+ },
125
+ {
126
+ name: "tapd_update_version",
127
+ description: "更新项目版本",
128
+ inputSchema: z.object({
129
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
130
+ id: z.string().describe("版本ID (必填)"),
131
+ name: z.string().optional().describe("版本名称"),
132
+ description: z.string().optional().describe("版本描述"),
133
+ owner: z.string().optional().describe("版本负责人"),
134
+ release_date: z.string().optional().describe("发布日期"),
135
+ status: z.number().optional().describe("状态:0-未发布,1-已发布"),
136
+ }),
137
+ handler: async (client, params) => {
138
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
139
+ if (!workspaceId) {
140
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
141
+ }
142
+ return client.post("/settings/versions/update", { ...params, workspace_id: workspaceId });
143
+ },
144
+ },
145
+ {
146
+ name: "tapd_get_versions_count",
147
+ description: "获取版本数量",
148
+ inputSchema: z.object({
149
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
150
+ id: z.string().optional().describe("版本ID"),
151
+ name: z.string().optional().describe("版本名称"),
152
+ owner: z.string().optional().describe("版本负责人"),
153
+ status: z.number().optional().describe("状态"),
36
154
  }),
37
155
  handler: async (client, params) => {
38
- return client.get("/versions", params);
156
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
157
+ if (!workspaceId) {
158
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
159
+ }
160
+ return client.get("/settings/versions/count", { ...params, workspace_id: workspaceId });
39
161
  },
40
162
  },
163
+ // 特性 CRUD
41
164
  {
42
165
  name: "tapd_get_features",
43
- description: "Get feature settings for a project",
166
+ description: "获取项目特性列表",
44
167
  inputSchema: z.object({
45
- workspace_id: z.number().describe("项目ID (必填)"),
46
- id: z.string().optional().describe("id,支持多ID查询"),
47
- name: z.string().optional().describe("标题,支持模糊匹配"),
48
- description: z.string().optional().describe("详细描述"),
49
- owner: z.string().optional().describe("负责人"),
168
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
169
+ id: z.string().optional().describe("特性ID,支持多ID查询"),
170
+ name: z.string().optional().describe("特性名称,支持模糊匹配"),
171
+ description: z.string().optional().describe("特性描述"),
172
+ owner: z.string().optional().describe("特性负责人"),
50
173
  created: z.string().optional().describe("创建时间,支持时间查询"),
51
- limit: z.number().optional().describe("设置返回数量限制,默认为30"),
52
- page: z.number().optional().describe("返回当前数量限制下第N页的数据,默认为1"),
53
- order: z.string().optional().describe("排序规则,如 created desc"),
54
- fields: z.string().optional().describe("设置获取的字段,多个字段间以','逗号隔开"),
174
+ limit: z.number().optional().describe("返回数量限制,默认30"),
175
+ page: z.number().optional().describe("页码,默认1"),
176
+ order: z.string().optional().describe("排序规则"),
177
+ fields: z.string().optional().describe("返回字段"),
178
+ }),
179
+ handler: async (client, params) => {
180
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
181
+ if (!workspaceId) {
182
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
183
+ }
184
+ return client.get("/settings/features", { ...params, workspace_id: workspaceId });
185
+ },
186
+ },
187
+ {
188
+ name: "tapd_add_feature",
189
+ description: "创建项目特性",
190
+ inputSchema: z.object({
191
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
192
+ name: z.string().describe("特性名称 (必填)"),
193
+ description: z.string().optional().describe("特性描述"),
194
+ owner: z.string().optional().describe("特性负责人"),
195
+ parent_id: z.number().optional().describe("父特性ID"),
196
+ }),
197
+ handler: async (client, params) => {
198
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
199
+ if (!workspaceId) {
200
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
201
+ }
202
+ return client.post("/settings/features/add", { ...params, workspace_id: workspaceId });
203
+ },
204
+ },
205
+ {
206
+ name: "tapd_update_feature",
207
+ description: "更新项目特性",
208
+ inputSchema: z.object({
209
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
210
+ id: z.string().describe("特性ID (必填)"),
211
+ name: z.string().optional().describe("特性名称"),
212
+ description: z.string().optional().describe("特性描述"),
213
+ owner: z.string().optional().describe("特性负责人"),
214
+ parent_id: z.number().optional().describe("父特性ID"),
215
+ }),
216
+ handler: async (client, params) => {
217
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
218
+ if (!workspaceId) {
219
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
220
+ }
221
+ return client.post("/settings/features/update", { ...params, workspace_id: workspaceId });
222
+ },
223
+ },
224
+ {
225
+ name: "tapd_get_features_count",
226
+ description: "获取特性数量",
227
+ inputSchema: z.object({
228
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
229
+ id: z.string().optional().describe("特性ID"),
230
+ name: z.string().optional().describe("特性名称"),
231
+ owner: z.string().optional().describe("特性负责人"),
232
+ }),
233
+ handler: async (client, params) => {
234
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
235
+ if (!workspaceId) {
236
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
237
+ }
238
+ return client.get("/settings/features/count", { ...params, workspace_id: workspaceId });
239
+ },
240
+ },
241
+ // 基线 CRUD
242
+ {
243
+ name: "tapd_get_baselines",
244
+ description: "获取项目基线列表",
245
+ inputSchema: z.object({
246
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
247
+ id: z.string().optional().describe("基线ID,支持多ID查询"),
248
+ name: z.string().optional().describe("基线名称,支持模糊匹配"),
249
+ description: z.string().optional().describe("基线描述"),
250
+ baseline_date: z.string().optional().describe("基线日期,支持时间查询"),
251
+ created: z.string().optional().describe("创建时间,支持时间查询"),
252
+ limit: z.number().optional().describe("返回数量限制,默认30"),
253
+ page: z.number().optional().describe("页码,默认1"),
254
+ order: z.string().optional().describe("排序规则"),
255
+ fields: z.string().optional().describe("返回字段"),
256
+ }),
257
+ handler: async (client, params) => {
258
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
259
+ if (!workspaceId) {
260
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
261
+ }
262
+ return client.get("/settings/baselines", { ...params, workspace_id: workspaceId });
263
+ },
264
+ },
265
+ {
266
+ name: "tapd_add_baseline",
267
+ description: "创建项目基线",
268
+ inputSchema: z.object({
269
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
270
+ name: z.string().describe("基线名称 (必填)"),
271
+ description: z.string().optional().describe("基线描述"),
272
+ baseline_date: z.string().optional().describe("基线日期,格式: YYYY-MM-DD"),
273
+ version: z.string().optional().describe("关联版本"),
274
+ }),
275
+ handler: async (client, params) => {
276
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
277
+ if (!workspaceId) {
278
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
279
+ }
280
+ return client.post("/settings/baselines/add", { ...params, workspace_id: workspaceId });
281
+ },
282
+ },
283
+ {
284
+ name: "tapd_update_baseline",
285
+ description: "更新项目基线",
286
+ inputSchema: z.object({
287
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
288
+ id: z.string().describe("基线ID (必填)"),
289
+ name: z.string().optional().describe("基线名称"),
290
+ description: z.string().optional().describe("基线描述"),
291
+ baseline_date: z.string().optional().describe("基线日期"),
292
+ }),
293
+ handler: async (client, params) => {
294
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
295
+ if (!workspaceId) {
296
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
297
+ }
298
+ return client.post("/settings/baselines/update", { ...params, workspace_id: workspaceId });
299
+ },
300
+ },
301
+ {
302
+ name: "tapd_get_baselines_count",
303
+ description: "获取基线数量",
304
+ inputSchema: z.object({
305
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
306
+ id: z.string().optional().describe("基线ID"),
307
+ name: z.string().optional().describe("基线名称"),
308
+ baseline_date: z.string().optional().describe("基线日期"),
309
+ }),
310
+ handler: async (client, params) => {
311
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
312
+ if (!workspaceId) {
313
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
314
+ }
315
+ return client.get("/settings/baselines/count", { ...params, workspace_id: workspaceId });
316
+ },
317
+ },
318
+ // 自定义字段配置
319
+ {
320
+ name: "tapd_add_custom_field_config",
321
+ description: "创建自定义字段",
322
+ inputSchema: z.object({
323
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
324
+ name: z.string().describe("自定义字段名称 (必填)"),
325
+ type: z.string().describe("字段类型 (必填): single_select/multi_select/text/date/integer/float/cascade/user"),
326
+ entity_type: z.string().describe("适用实体类型 (必填): story/bug"),
327
+ options: z.string().optional().describe("候选值选项(单选/多选类型必填),多个以|分隔"),
328
+ default_value: z.string().optional().describe("默认值"),
329
+ required: z.number().optional().describe("是否必填:0-否,1-是,默认0"),
330
+ description: z.string().optional().describe("字段描述"),
331
+ workitem_type_id: z.string().optional().describe("需求类别ID"),
332
+ }),
333
+ handler: async (client, params) => {
334
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
335
+ if (!workspaceId) {
336
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
337
+ }
338
+ return client.post("/settings/add_custom_field_config", { ...params, workspace_id: workspaceId });
339
+ },
340
+ },
341
+ {
342
+ name: "tapd_update_bug_select_field_options",
343
+ description: "更新缺陷下拉类型自定义字段候选值",
344
+ inputSchema: z.object({
345
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
346
+ custom_field_key: z.string().describe("自定义字段标识 (必填),如 custom_field_one"),
347
+ options: z.string().describe("新的候选值选项 (必填),多个以|分隔"),
348
+ append_mode: z.number().optional().describe("追加模式:0-替换(默认),1-追加"),
349
+ }),
350
+ handler: async (client, params) => {
351
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
352
+ if (!workspaceId) {
353
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
354
+ }
355
+ return client.post("/settings/update_bug_select_field_options", { ...params, workspace_id: workspaceId });
356
+ },
357
+ },
358
+ {
359
+ name: "tapd_update_story_select_field_options",
360
+ description: "更新需求下拉类型自定义字段候选值",
361
+ inputSchema: z.object({
362
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
363
+ custom_field_key: z.string().describe("自定义字段标识 (必填),如 custom_field_one"),
364
+ options: z.string().describe("新的候选值选项 (必填),多个以|分隔"),
365
+ workitem_type_id: z.string().optional().describe("需求类别ID"),
366
+ append_mode: z.number().optional().describe("追加模式:0-替换(默认),1-追加"),
367
+ }),
368
+ handler: async (client, params) => {
369
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
370
+ if (!workspaceId) {
371
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
372
+ }
373
+ return client.post("/settings/update_story_select_field_options", { ...params, workspace_id: workspaceId });
374
+ },
375
+ },
376
+ {
377
+ name: "tapd_update_cascade_field_options",
378
+ description: "更新级联自定义字段候选值",
379
+ inputSchema: z.object({
380
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
381
+ custom_field_key: z.string().describe("自定义字段标识 (必填)"),
382
+ cascade_options: z.string().describe("级联选项JSON格式 (必填)"),
383
+ entity_type: z.string().optional().describe("实体类型: story/bug"),
384
+ }),
385
+ handler: async (client, params) => {
386
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
387
+ if (!workspaceId) {
388
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
389
+ }
390
+ return client.post("/settings/update_cascade_field_options", { ...params, workspace_id: workspaceId });
391
+ },
392
+ },
393
+ // 项目配置
394
+ {
395
+ name: "tapd_get_workspace_setting",
396
+ description: "获取项目配置开关",
397
+ inputSchema: z.object({
398
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
55
399
  }),
56
400
  handler: async (client, params) => {
57
- return client.get("/features", params);
401
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
402
+ if (!workspaceId) {
403
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
404
+ }
405
+ return client.get("/settings/workspace_setting", { ...params, workspace_id: workspaceId });
58
406
  },
59
407
  },
60
408
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/tools/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,mCAAmC;QAChD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC9C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YAChD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YACjD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACtD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACvD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC5D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC5D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SAChE,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAChC,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,oCAAoC;QACjD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC9C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YAClD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACnD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACtD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACxD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACvD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC5D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SAChE,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAChC,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,oCAAoC;QACjD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC9C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YAChD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YACjD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACtD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACvD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC5D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC5D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SAChE,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAChC,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/tools/settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDef } from '../types.js';
2
+ export declare const sourceTools: ToolDef[];
3
+ //# sourceMappingURL=source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/tools/source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,eAAO,MAAM,WAAW,EAAE,OAAO,EAiEhC,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { z } from 'zod';
2
+ import { TapdClient } from '../tapd-client.js';
3
+ export const sourceTools = [
4
+ {
5
+ name: "tapd_add_code_commit_infos",
6
+ description: "新增代码提交记录",
7
+ inputSchema: z.object({
8
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
9
+ commit_id: z.string().describe("提交ID (必填)"),
10
+ message: z.string().describe("提交信息 (必填)"),
11
+ branch: z.string().optional().describe("分支名"),
12
+ commit_time: z.string().optional().describe("提交时间,格式: YYYY-MM-DD HH:mm:ss"),
13
+ committer: z.string().optional().describe("提交人"),
14
+ files: z.string().optional().describe("提交文件列表,JSON格式"),
15
+ entity_id: z.string().optional().describe("关联实体ID(需求/缺陷/任务)"),
16
+ entity_type: z.string().optional().describe("关联实体类型: story/bug/task"),
17
+ }),
18
+ handler: async (client, params) => {
19
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
20
+ if (!workspaceId) {
21
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
22
+ }
23
+ return client.post("/code_commit_infos/add", { ...params, workspace_id: workspaceId });
24
+ },
25
+ },
26
+ {
27
+ name: "tapd_get_code_commit_infos",
28
+ description: "获取代码提交记录列表",
29
+ inputSchema: z.object({
30
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
31
+ id: z.string().optional().describe("提交记录ID,支持多ID查询"),
32
+ commit_id: z.string().optional().describe("提交ID"),
33
+ message: z.string().optional().describe("提交信息,支持模糊匹配"),
34
+ branch: z.string().optional().describe("分支名"),
35
+ committer: z.string().optional().describe("提交人"),
36
+ entity_id: z.string().optional().describe("关联实体ID"),
37
+ entity_type: z.string().optional().describe("关联实体类型: story/bug/task"),
38
+ created: z.string().optional().describe("创建时间,支持时间查询"),
39
+ limit: z.number().optional().describe("返回数量限制,默认30,最大200"),
40
+ page: z.number().optional().describe("页码,默认1"),
41
+ order: z.string().optional().describe("排序规则,如 created desc"),
42
+ fields: z.string().optional().describe("指定返回字段"),
43
+ }),
44
+ handler: async (client, params) => {
45
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
46
+ if (!workspaceId) {
47
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
48
+ }
49
+ return client.get("/code_commit_infos", { ...params, workspace_id: workspaceId });
50
+ },
51
+ },
52
+ {
53
+ name: "tapd_get_commit_objects",
54
+ description: "获取代码提交对象详情",
55
+ inputSchema: z.object({
56
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
57
+ commit_id: z.string().describe("提交ID (必填)"),
58
+ fields: z.string().optional().describe("指定返回字段"),
59
+ }),
60
+ handler: async (client, params) => {
61
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
62
+ if (!workspaceId) {
63
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
64
+ }
65
+ return client.get("/commit_objects", { ...params, workspace_id: workspaceId });
66
+ },
67
+ },
68
+ ];
69
+ //# sourceMappingURL=source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/tools/source.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"story.d.ts","sourceRoot":"","sources":["../../src/tools/story.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,eAAO,MAAM,UAAU,EAAE,OAAO,EA0L/B,CAAC"}
1
+ {"version":3,"file":"story.d.ts","sourceRoot":"","sources":["../../src/tools/story.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,eAAO,MAAM,UAAU,EAAE,OAAO,EA4qB/B,CAAC"}