@xihe-lab/tapd-core 2.0.0-rc.2 → 2.0.0-rc.4
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.md +1 -0
- package/dist/advisor/index.d.ts.map +1 -1
- package/dist/advisor/index.js +2 -0
- package/dist/advisor/index.js.map +1 -1
- package/dist/cache/read-cache.d.ts +136 -0
- package/dist/cache/read-cache.d.ts.map +1 -0
- package/dist/cache/read-cache.js +322 -0
- package/dist/cache/read-cache.js.map +1 -0
- package/dist/cache/read-cache.test.d.ts +2 -0
- package/dist/cache/read-cache.test.d.ts.map +1 -0
- package/dist/cache/read-cache.test.js +429 -0
- package/dist/cache/read-cache.test.js.map +1 -0
- package/dist/errors/index.d.ts +120 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +429 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/registry/registry.d.ts +7 -0
- package/dist/registry/registry.d.ts.map +1 -1
- package/dist/registry/registry.js +9 -3
- package/dist/registry/registry.js.map +1 -1
- package/dist/registry/registry.test.js +293 -2
- package/dist/registry/registry.test.js.map +1 -1
- package/dist/richtext/index.d.ts +1 -14
- package/dist/richtext/index.d.ts.map +1 -1
- package/dist/richtext/index.js +3 -34
- package/dist/richtext/index.js.map +1 -1
- package/dist/richtext/pipeline.d.ts +1 -4
- package/dist/richtext/pipeline.d.ts.map +1 -1
- package/dist/richtext/pipeline.js +2 -198
- package/dist/richtext/pipeline.js.map +1 -1
- package/dist/tapd-client.d.ts +34 -2
- package/dist/tapd-client.d.ts.map +1 -1
- package/dist/tapd-client.js +121 -42
- package/dist/tapd-client.js.map +1 -1
- package/dist/tools/attachment.js +40 -40
- package/dist/tools/attachment.js.map +1 -1
- package/dist/tools/board.js +22 -22
- package/dist/tools/board.js.map +1 -1
- package/dist/tools/bug.js +259 -259
- package/dist/tools/bug.js.map +1 -1
- package/dist/tools/changes.js +20 -20
- package/dist/tools/changes.js.map +1 -1
- package/dist/tools/comment.js +23 -23
- package/dist/tools/comment.js.map +1 -1
- package/dist/tools/custom-fields.js +16 -16
- package/dist/tools/custom-fields.js.map +1 -1
- package/dist/tools/image.js +2 -2
- package/dist/tools/image.js.map +1 -1
- package/dist/tools/iteration.js +50 -50
- package/dist/tools/iteration.js.map +1 -1
- package/dist/tools/media.js +2 -2
- package/dist/tools/media.js.map +1 -1
- package/dist/tools/mini-comment.js +27 -27
- package/dist/tools/mini-comment.js.map +1 -1
- package/dist/tools/mini-item.js +83 -83
- package/dist/tools/mini-item.js.map +1 -1
- package/dist/tools/mini-workspace.js +5 -5
- package/dist/tools/mini-workspace.js.map +1 -1
- package/dist/tools/program.js +7 -7
- package/dist/tools/program.js.map +1 -1
- package/dist/tools/relations.js +14 -14
- package/dist/tools/relations.js.map +1 -1
- package/dist/tools/release.js +53 -53
- package/dist/tools/release.js.map +1 -1
- package/dist/tools/report.js +8 -8
- package/dist/tools/report.js.map +1 -1
- package/dist/tools/settings.js +77 -77
- package/dist/tools/settings.js.map +1 -1
- package/dist/tools/source.js +14 -14
- package/dist/tools/source.js.map +1 -1
- package/dist/tools/story.js +120 -120
- package/dist/tools/story.js.map +1 -1
- package/dist/tools/task.js +123 -123
- package/dist/tools/task.js.map +1 -1
- package/dist/tools/test.js +117 -117
- package/dist/tools/test.js.map +1 -1
- package/dist/tools/timesheet.js +23 -23
- package/dist/tools/timesheet.js.map +1 -1
- package/dist/tools/user.js +8 -8
- package/dist/tools/user.js.map +1 -1
- package/dist/tools/utility.d.ts +17 -0
- package/dist/tools/utility.d.ts.map +1 -1
- package/dist/tools/utility.js +73 -78
- package/dist/tools/utility.js.map +1 -1
- package/dist/tools/wiki.js +51 -51
- package/dist/tools/wiki.js.map +1 -1
- package/dist/tools/workflow.js +26 -26
- package/dist/tools/workflow.js.map +1 -1
- package/dist/tools/workspace.js +16 -16
- package/dist/tools/workspace.js.map +1 -1
- package/package.json +10 -14
- package/dist/richtext/attachment-anchor.d.ts +0 -58
- package/dist/richtext/attachment-anchor.d.ts.map +0 -1
- package/dist/richtext/attachment-anchor.js +0 -221
- package/dist/richtext/attachment-anchor.js.map +0 -1
- package/dist/richtext/attachment-anchor.test.d.ts +0 -2
- package/dist/richtext/attachment-anchor.test.d.ts.map +0 -1
- package/dist/richtext/attachment-anchor.test.js +0 -149
- package/dist/richtext/attachment-anchor.test.js.map +0 -1
- package/dist/richtext/escape.d.ts +0 -7
- package/dist/richtext/escape.d.ts.map +0 -1
- package/dist/richtext/escape.js +0 -60
- package/dist/richtext/escape.js.map +0 -1
- package/dist/richtext/mention.d.ts +0 -49
- package/dist/richtext/mention.d.ts.map +0 -1
- package/dist/richtext/mention.js +0 -179
- package/dist/richtext/mention.js.map +0 -1
- package/dist/richtext/mention.test.d.ts +0 -2
- package/dist/richtext/mention.test.d.ts.map +0 -1
- package/dist/richtext/mention.test.js +0 -123
- package/dist/richtext/mention.test.js.map +0 -1
- package/dist/richtext/round-trip.test.d.ts +0 -2
- package/dist/richtext/round-trip.test.d.ts.map +0 -1
- package/dist/richtext/round-trip.test.js +0 -105
- package/dist/richtext/round-trip.test.js.map +0 -1
package/dist/tools/story.js
CHANGED
|
@@ -5,29 +5,29 @@ export const storyTools = [
|
|
|
5
5
|
// 需求 CRUD
|
|
6
6
|
{
|
|
7
7
|
name: 'tapd_get_stories',
|
|
8
|
-
description: '
|
|
8
|
+
description: '按条件查询需求列表,支持标题、状态、处理人、迭代、分类等多字段过滤与分页。只统计数量用数量统计工具;已知多个 ID 要完整详情用批量详情工具。读操作;limit 默认 30。返回需求(Story)数组。',
|
|
9
9
|
inputSchema: z.object({
|
|
10
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
11
|
-
id: z.string().optional().describe('需求ID,支持多ID查询;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
10
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
11
|
+
id: z.string().optional().describe('需求 ID,支持多 ID查询;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
12
12
|
name: z.string().optional().describe('需求标题,支持模糊匹配'),
|
|
13
13
|
priority: z.string().optional().describe('优先级'),
|
|
14
14
|
priority_label: z.string().optional().describe('优先级标签(推荐)'),
|
|
15
15
|
status: z.string().optional().describe('状态'),
|
|
16
16
|
v_status: z.string().optional().describe('状态(中文)'),
|
|
17
|
-
with_v_status: z.string().optional().describe('设为1返回中文状态'),
|
|
17
|
+
with_v_status: z.string().optional().describe('设为 1 返回中文状态'),
|
|
18
18
|
label: z.string().optional().describe('标签'),
|
|
19
|
-
workitem_type_id: z.string().optional().describe('需求类别ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
19
|
+
workitem_type_id: z.string().optional().describe('需求类别 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
20
20
|
owner: z.string().optional().describe('处理人,支持模糊匹配'),
|
|
21
21
|
creator: z.string().optional().describe('创建人'),
|
|
22
22
|
developer: z.string().optional().describe('开发人员'),
|
|
23
23
|
cc: z.string().optional().describe('抄送人'),
|
|
24
|
-
iteration_id: z.string().optional().describe('迭代ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
25
|
-
include_sub_iteration: z.string().optional().describe('包含子迭代:0或1'),
|
|
24
|
+
iteration_id: z.string().optional().describe('迭代 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
25
|
+
include_sub_iteration: z.string().optional().describe('包含子迭代:0 或 1'),
|
|
26
26
|
category_id: z.string().optional().describe('需求分类;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
27
|
-
include_sub_category: z.string().optional().describe('包含子分类:0或1'),
|
|
28
|
-
parent_id: z.string().optional().describe('父需求ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
29
|
-
ancestor_id: z.string().optional().describe('祖先需求ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
30
|
-
children_id: z.string().optional().describe('子需求ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
27
|
+
include_sub_category: z.string().optional().describe('包含子分类:0 或 1'),
|
|
28
|
+
parent_id: z.string().optional().describe('父需求 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
29
|
+
ancestor_id: z.string().optional().describe('祖先需求 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
30
|
+
children_id: z.string().optional().describe('子需求 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
31
31
|
begin: z.string().optional().describe('预计开始日期 YYYY-MM-DD'),
|
|
32
32
|
due: z.string().optional().describe('预计结束日期 YYYY-MM-DD'),
|
|
33
33
|
created: z.string().optional().describe('创建时间 YYYY-MM-DD HH:mm'),
|
|
@@ -44,9 +44,9 @@ export const storyTools = [
|
|
|
44
44
|
source: z.string().optional().describe('需求来源'),
|
|
45
45
|
type: z.string().optional().describe('需求类型'),
|
|
46
46
|
description: z.string().optional().describe('详细描述'),
|
|
47
|
-
custom_field_one: z.string().optional().describe('
|
|
48
|
-
limit: z.number().optional().describe('返回数量,默认30'),
|
|
49
|
-
page: z.number().optional().describe('页码,默认1'),
|
|
47
|
+
custom_field_one: z.string().optional().describe('自定义字段(支持 1-200)'),
|
|
48
|
+
limit: z.number().optional().describe('返回数量,默认 30'),
|
|
49
|
+
page: z.number().optional().describe('页码,默认 1'),
|
|
50
50
|
order: z.string().optional().describe('排序'),
|
|
51
51
|
fields: z.string().optional().describe('返回字段'),
|
|
52
52
|
}),
|
|
@@ -65,21 +65,21 @@ export const storyTools = [
|
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
67
|
name: 'tapd_create_story',
|
|
68
|
-
description: '
|
|
68
|
+
description: '创建需求。兼可创建任务:工作项类别参数传「任务型」类别的 ID 即走任务创建(适合仅有需求创建权限而无任务创建权限的场景,类别可用类别查询工具查)。从已有需求复制用复制工具。写操作;name 必填,负责人/创建人缺省取环境变量 TAPD_NICK_NAME。返回新需求。',
|
|
69
69
|
inputSchema: z.object({
|
|
70
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
71
|
-
name: z.string().describe('
|
|
70
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
71
|
+
name: z.string().describe('需求标题(必填)'),
|
|
72
72
|
description: z.string().optional().describe('详细描述'),
|
|
73
73
|
raw_html: RAW_HTML_FIELD,
|
|
74
74
|
priority: z.string().optional().describe('优先级'),
|
|
75
75
|
priority_label: z.string().optional().describe('优先级标签(推荐)'),
|
|
76
|
-
owner: z.string().optional().describe('
|
|
77
|
-
creator: z.string().optional().describe('
|
|
76
|
+
owner: z.string().optional().describe('处理人(缺省取当前用户)'),
|
|
77
|
+
creator: z.string().optional().describe('创建人(缺省取当前用户)'),
|
|
78
78
|
developer: z.string().optional().describe('开发人员'),
|
|
79
79
|
cc: z.string().optional().describe('抄送人'),
|
|
80
|
-
iteration_id: z.string().optional().describe('迭代ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
80
|
+
iteration_id: z.string().optional().describe('迭代 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
81
81
|
category_id: z.string().optional().describe('需求分类;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
82
|
-
parent_id: z.string().optional().describe('父需求ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
82
|
+
parent_id: z.string().optional().describe('父需求 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
83
83
|
begin: z.string().optional().describe('预计开始日期 YYYY-MM-DD'),
|
|
84
84
|
due: z.string().optional().describe('预计结束日期 YYYY-MM-DD'),
|
|
85
85
|
effort: z.string().optional().describe('预估工时'),
|
|
@@ -90,12 +90,12 @@ export const storyTools = [
|
|
|
90
90
|
source: z.string().optional().describe('需求来源'),
|
|
91
91
|
type: z.string().optional().describe('需求类型'),
|
|
92
92
|
label: z.string().optional().describe('标签'),
|
|
93
|
-
template_id: z.string().optional().describe('模板ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
93
|
+
template_id: z.string().optional().describe('模板 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
94
94
|
business_value: z.string().optional().describe('业务价值'),
|
|
95
95
|
test_focus: z.string().optional().describe('测试关注点'),
|
|
96
|
-
size: z.string().optional().describe('
|
|
96
|
+
size: z.string().optional().describe('规模'),
|
|
97
97
|
custom_field_one: z.string().optional().describe('自定义字段'),
|
|
98
|
-
workitem_type_id: z.string().optional().describe('工作项类型ID
|
|
98
|
+
workitem_type_id: z.string().optional().describe('工作项类型 ID(可选,默认创建需求;传任务型类别 ID 可创建任务,可用类别查询工具查);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
99
99
|
}),
|
|
100
100
|
handler: async (client, params) => {
|
|
101
101
|
const nickName = TapdClient.getNickName();
|
|
@@ -126,10 +126,10 @@ export const storyTools = [
|
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
128
|
name: 'tapd_update_story',
|
|
129
|
-
description: '
|
|
129
|
+
description: '按 ID 更新需求的单个或多个字段(状态、处理人、迭代、工时等)。批量改多条用批量更新工具;整条复制用复制工具。写操作;id 必填。返回更新后的需求。',
|
|
130
130
|
inputSchema: z.object({
|
|
131
|
-
id: z.string().describe('需求ID
|
|
132
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
131
|
+
id: z.string().describe('需求 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
132
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
133
133
|
name: z.string().optional().describe('需求标题'),
|
|
134
134
|
description: z.string().optional().describe('详细描述'),
|
|
135
135
|
raw_html: RAW_HTML_FIELD,
|
|
@@ -137,7 +137,7 @@ export const storyTools = [
|
|
|
137
137
|
owner: z.string().optional().describe('处理人'),
|
|
138
138
|
priority: z.string().optional().describe('优先级'),
|
|
139
139
|
priority_label: z.string().optional().describe('优先级标签'),
|
|
140
|
-
iteration_id: z.string().optional().describe('迭代ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
140
|
+
iteration_id: z.string().optional().describe('迭代 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
141
141
|
category_id: z.string().optional().describe('需求分类;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
142
142
|
begin: z.string().optional().describe('预计开始日期'),
|
|
143
143
|
due: z.string().optional().describe('预计结束日期'),
|
|
@@ -166,10 +166,10 @@ export const storyTools = [
|
|
|
166
166
|
},
|
|
167
167
|
{
|
|
168
168
|
name: 'tapd_get_story_count',
|
|
169
|
-
description: '
|
|
169
|
+
description: '按与需求列表查询相同的过滤条件返回需求数量,不返回列表。只关心「有多少条」时用它,比拉全量列表省流量。读操作。返回 {count}。',
|
|
170
170
|
inputSchema: z.object({
|
|
171
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
172
|
-
id: z.string().optional().describe('需求ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
171
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
172
|
+
id: z.string().optional().describe('需求 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
173
173
|
name: z.string().optional().describe('需求标题'),
|
|
174
174
|
priority: z.string().optional().describe('优先级'),
|
|
175
175
|
priority_label: z.string().optional().describe('优先级标签(推荐)'),
|
|
@@ -178,10 +178,10 @@ export const storyTools = [
|
|
|
178
178
|
creator: z.string().optional().describe('创建人'),
|
|
179
179
|
developer: z.string().optional().describe('开发人员'),
|
|
180
180
|
cc: z.string().optional().describe('抄送人'),
|
|
181
|
-
iteration_id: z.string().optional().describe('迭代ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
181
|
+
iteration_id: z.string().optional().describe('迭代 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
182
182
|
category_id: z.string().optional().describe('需求分类;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
183
|
-
parent_id: z.string().optional().describe('父需求ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
184
|
-
ancestor_id: z.string().optional().describe('祖先需求ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
183
|
+
parent_id: z.string().optional().describe('父需求 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
184
|
+
ancestor_id: z.string().optional().describe('祖先需求 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
185
185
|
begin: z.string().optional().describe('预计开始日期'),
|
|
186
186
|
due: z.string().optional().describe('预计结束日期'),
|
|
187
187
|
created: z.string().optional().describe('创建时间'),
|
|
@@ -205,16 +205,16 @@ export const storyTools = [
|
|
|
205
205
|
},
|
|
206
206
|
{
|
|
207
207
|
name: 'tapd_copy_story',
|
|
208
|
-
description: '
|
|
208
|
+
description: '复制已有需求创建新需求,可选连带复制附件、评论、子任务。从零新建用创建工具。写操作;id 必填。返回新需求。',
|
|
209
209
|
inputSchema: z.object({
|
|
210
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
211
|
-
id: z.string().describe('要复制的需求ID
|
|
210
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
211
|
+
id: z.string().describe('要复制的需求 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
212
212
|
name: z.string().optional().describe('新需求标题(默认为原标题)'),
|
|
213
213
|
owner: z.string().optional().describe('处理人'),
|
|
214
|
-
iteration_id: z.string().optional().describe('迭代ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
215
|
-
copy_attachments: z.number().optional().describe('是否复制附件,值=1
|
|
216
|
-
copy_comments: z.number().optional().describe('是否复制评论,值=1
|
|
217
|
-
copy_sub_tasks: z.number().optional().describe('是否复制子任务,值=1
|
|
214
|
+
iteration_id: z.string().optional().describe('迭代 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
215
|
+
copy_attachments: z.number().optional().describe('是否复制附件,值=1 为复制'),
|
|
216
|
+
copy_comments: z.number().optional().describe('是否复制评论,值=1 为复制'),
|
|
217
|
+
copy_sub_tasks: z.number().optional().describe('是否复制子任务,值=1 为复制'),
|
|
218
218
|
}),
|
|
219
219
|
handler: async (client, params) => {
|
|
220
220
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -231,10 +231,10 @@ export const storyTools = [
|
|
|
231
231
|
},
|
|
232
232
|
{
|
|
233
233
|
name: 'tapd_batch_update_stories',
|
|
234
|
-
description: '
|
|
234
|
+
description: '一次批量更新最多 50 条需求。只改一条用单条更新工具。写操作;stories 传 JSON 数组字符串,每项含 id 与要改的字段。返回批量结果。',
|
|
235
235
|
inputSchema: z.object({
|
|
236
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
237
|
-
stories: z.string().describe('需求更新数组JSON,最多50
|
|
236
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
237
|
+
stories: z.string().describe('需求更新数组JSON,最多50条(必填)'),
|
|
238
238
|
}),
|
|
239
239
|
handler: async (client, params) => {
|
|
240
240
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -247,12 +247,12 @@ export const storyTools = [
|
|
|
247
247
|
// 需求分类
|
|
248
248
|
{
|
|
249
249
|
name: 'tapd_get_story_categories',
|
|
250
|
-
description: '
|
|
250
|
+
description: '查询需求分类列表,支持名称模糊匹配与分页。只统计数量用数量统计工具。读操作。返回分类数组。',
|
|
251
251
|
inputSchema: z.object({
|
|
252
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
253
|
-
id: z.string().optional().describe('分类ID,支持多ID查询;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
252
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
253
|
+
id: z.string().optional().describe('分类 ID,支持多 ID查询;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
254
254
|
name: z.string().optional().describe('分类名称,支持模糊匹配'),
|
|
255
|
-
parent_id: z.string().optional().describe('父分类ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
255
|
+
parent_id: z.string().optional().describe('父分类 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
256
256
|
created: z.string().optional().describe('创建时间'),
|
|
257
257
|
modified: z.string().optional().describe('修改时间'),
|
|
258
258
|
limit: z.number().optional().describe('返回数量'),
|
|
@@ -270,12 +270,12 @@ export const storyTools = [
|
|
|
270
270
|
},
|
|
271
271
|
{
|
|
272
272
|
name: 'tapd_get_story_categories_count',
|
|
273
|
-
description: '
|
|
273
|
+
description: '按相同过滤条件返回需求分类数量。要看列表用分类列表查询工具。读操作。返回 {count}。',
|
|
274
274
|
inputSchema: z.object({
|
|
275
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
276
|
-
id: z.string().optional().describe('分类ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
275
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
276
|
+
id: z.string().optional().describe('分类 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
277
277
|
name: z.string().optional().describe('分类名称'),
|
|
278
|
-
parent_id: z.string().optional().describe('父分类ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
278
|
+
parent_id: z.string().optional().describe('父分类 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
279
279
|
}),
|
|
280
280
|
handler: async (client, params) => {
|
|
281
281
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -287,11 +287,11 @@ export const storyTools = [
|
|
|
287
287
|
},
|
|
288
288
|
{
|
|
289
289
|
name: 'tapd_add_story_category',
|
|
290
|
-
description: '
|
|
290
|
+
description: '创建需求分类,可指定父分类 ID 挂到父分类下。写操作;name 必填。返回新分类。',
|
|
291
291
|
inputSchema: z.object({
|
|
292
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
293
|
-
name: z.string().describe('
|
|
294
|
-
parent_id: z.string().optional().describe('父分类ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
292
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
293
|
+
name: z.string().describe('分类名称(必填)'),
|
|
294
|
+
parent_id: z.string().optional().describe('父分类 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
295
295
|
}),
|
|
296
296
|
handler: async (client, params) => {
|
|
297
297
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -303,12 +303,12 @@ export const storyTools = [
|
|
|
303
303
|
},
|
|
304
304
|
{
|
|
305
305
|
name: 'tapd_update_story_category',
|
|
306
|
-
description: '
|
|
306
|
+
description: '按 ID 更新需求分类(改名或调整父分类)。写操作;id 必填。返回更新后的分类。',
|
|
307
307
|
inputSchema: z.object({
|
|
308
|
-
id: z.string().describe('分类ID
|
|
309
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
308
|
+
id: z.string().describe('分类 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
309
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
310
310
|
name: z.string().optional().describe('分类名称'),
|
|
311
|
-
parent_id: z.string().optional().describe('父分类ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
311
|
+
parent_id: z.string().optional().describe('父分类 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
312
312
|
}),
|
|
313
313
|
handler: async (client, params) => {
|
|
314
314
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -321,9 +321,9 @@ export const storyTools = [
|
|
|
321
321
|
// 需求类别
|
|
322
322
|
{
|
|
323
323
|
name: 'tapd_get_workitem_types',
|
|
324
|
-
description: '
|
|
324
|
+
description: '查询项目工作项类别列表(需求/缺陷/任务等类型及类别 ID)。给创建、工作流类工具取类别 ID 前先查这里。注意:需要 stories::workitem_types 权限,无权限时 403。读操作。返回类别数组。',
|
|
325
325
|
inputSchema: z.object({
|
|
326
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
326
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
327
327
|
}),
|
|
328
328
|
handler: async (client, params) => {
|
|
329
329
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -335,11 +335,11 @@ export const storyTools = [
|
|
|
335
335
|
},
|
|
336
336
|
{
|
|
337
337
|
name: 'tapd_change_workitem_type',
|
|
338
|
-
description: '
|
|
338
|
+
description: '把需求变更到另一个工作项类别(如普通需求转任务型类别)。查类别用类别查询工具;改其他字段用单条更新工具。写操作;id 与新类别 ID 必填。返回变更结果。',
|
|
339
339
|
inputSchema: z.object({
|
|
340
|
-
id: z.string().describe('需求ID
|
|
341
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
342
|
-
workitem_type_id: z.string().describe('新的需求类别ID
|
|
340
|
+
id: z.string().describe('需求 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
341
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
342
|
+
workitem_type_id: z.string().describe('新的需求类别 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
343
343
|
}),
|
|
344
344
|
handler: async (client, params) => {
|
|
345
345
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -357,10 +357,10 @@ export const storyTools = [
|
|
|
357
357
|
// 字段配置
|
|
358
358
|
{
|
|
359
359
|
name: 'tapd_get_story_fields_info',
|
|
360
|
-
description: '
|
|
360
|
+
description: '查询需求可写字段元信息(类型、是否必填、候选值)。拼创建/更新参数前查字段合法性用。读操作。返回字段定义数组。',
|
|
361
361
|
inputSchema: z.object({
|
|
362
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
363
|
-
workitem_type_id: z.string().optional().describe('需求类别ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
362
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
363
|
+
workitem_type_id: z.string().optional().describe('需求类别 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
364
364
|
}),
|
|
365
365
|
handler: async (client, params) => {
|
|
366
366
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -372,9 +372,9 @@ export const storyTools = [
|
|
|
372
372
|
},
|
|
373
373
|
{
|
|
374
374
|
name: 'tapd_get_story_fields_lable',
|
|
375
|
-
description: '
|
|
375
|
+
description: '查询需求字段名中英文映射(英文字段名 → 中文标签)。把返回数据转成人类可读表头时用。读操作。返回映射对象。',
|
|
376
376
|
inputSchema: z.object({
|
|
377
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
377
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
378
378
|
}),
|
|
379
379
|
handler: async (client, params) => {
|
|
380
380
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -387,10 +387,10 @@ export const storyTools = [
|
|
|
387
387
|
// 模板
|
|
388
388
|
{
|
|
389
389
|
name: 'tapd_get_story_template_list',
|
|
390
|
-
description: '
|
|
390
|
+
description: '查询需求模板列表(按类别 ID 过滤)。取默认模板用默认模板查询工具。读操作;支持分页。返回模板数组。',
|
|
391
391
|
inputSchema: z.object({
|
|
392
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
393
|
-
workitem_type_id: z.string().optional().describe('需求类别ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
392
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
393
|
+
workitem_type_id: z.string().optional().describe('需求类别 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
394
394
|
limit: z.number().optional().describe('返回数量'),
|
|
395
395
|
page: z.number().optional().describe('页码'),
|
|
396
396
|
fields: z.string().optional().describe('返回字段'),
|
|
@@ -405,10 +405,10 @@ export const storyTools = [
|
|
|
405
405
|
},
|
|
406
406
|
{
|
|
407
407
|
name: 'tapd_get_default_story_template',
|
|
408
|
-
description: '
|
|
408
|
+
description: '查询指定类别的默认需求模板。要模板清单用模板列表查询工具。读操作。返回默认模板。',
|
|
409
409
|
inputSchema: z.object({
|
|
410
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
411
|
-
workitem_type_id: z.string().optional().describe('需求类别ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
410
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
411
|
+
workitem_type_id: z.string().optional().describe('需求类别 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
412
412
|
}),
|
|
413
413
|
handler: async (client, params) => {
|
|
414
414
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -421,10 +421,10 @@ export const storyTools = [
|
|
|
421
421
|
// 关联关系
|
|
422
422
|
{
|
|
423
423
|
name: 'tapd_get_story_related_bugs',
|
|
424
|
-
description: '
|
|
424
|
+
description: '查询某需求已关联的缺陷列表。反向(按缺陷找需求)用缺陷侧关联查询工具;建立/解除关联用关联建立/解除工具。读操作;story_id 必填。返回关联缺陷数组。',
|
|
425
425
|
inputSchema: z.object({
|
|
426
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
427
|
-
story_id: z.string().describe('需求ID
|
|
426
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
427
|
+
story_id: z.string().describe('需求 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
428
428
|
limit: z.number().optional().describe('返回数量'),
|
|
429
429
|
page: z.number().optional().describe('页码'),
|
|
430
430
|
fields: z.string().optional().describe('返回字段'),
|
|
@@ -444,11 +444,11 @@ export const storyTools = [
|
|
|
444
444
|
},
|
|
445
445
|
{
|
|
446
446
|
name: 'tapd_create_story_bug',
|
|
447
|
-
description: '
|
|
447
|
+
description: '建立需求与缺陷的关联。查询已有关联用需求侧关联缺陷查询工具;解除用关联解除工具。写操作;story_id、bug_id 必填。返回关联结果。',
|
|
448
448
|
inputSchema: z.object({
|
|
449
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
450
|
-
story_id: z.string().describe('需求ID
|
|
451
|
-
bug_id: z.string().describe('缺陷ID
|
|
449
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
450
|
+
story_id: z.string().describe('需求 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
451
|
+
bug_id: z.string().describe('缺陷 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
452
452
|
}),
|
|
453
453
|
handler: async (client, params) => {
|
|
454
454
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -466,11 +466,11 @@ export const storyTools = [
|
|
|
466
466
|
},
|
|
467
467
|
{
|
|
468
468
|
name: 'tapd_remove_story_bug_relations',
|
|
469
|
-
description: '
|
|
469
|
+
description: '解除需求与缺陷的关联。建立关联用关联建立工具。写操作;story_id、bug_id 必填。返回解除结果。',
|
|
470
470
|
inputSchema: z.object({
|
|
471
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
472
|
-
story_id: z.string().describe('需求ID
|
|
473
|
-
bug_id: z.string().describe('缺陷ID
|
|
471
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
472
|
+
story_id: z.string().describe('需求 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
473
|
+
bug_id: z.string().describe('缺陷 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
474
474
|
}),
|
|
475
475
|
handler: async (client, params) => {
|
|
476
476
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -488,11 +488,11 @@ export const storyTools = [
|
|
|
488
488
|
},
|
|
489
489
|
{
|
|
490
490
|
name: 'tapd_get_story_tcase',
|
|
491
|
-
description: '
|
|
491
|
+
description: '查询需求已关联的测试用例。建立关联用关联建立工具;反向(按用例找需求)用用例侧反查工具。读操作;story_id 必填。返回关联用例数组。',
|
|
492
492
|
inputSchema: z.object({
|
|
493
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
494
|
-
story_id: z.string().describe('需求ID
|
|
495
|
-
tcase_id: z.string().optional().describe('测试用例ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
493
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
494
|
+
story_id: z.string().describe('需求 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
495
|
+
tcase_id: z.string().optional().describe('测试用例 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
496
496
|
limit: z.number().optional().describe('返回数量'),
|
|
497
497
|
page: z.number().optional().describe('页码'),
|
|
498
498
|
fields: z.string().optional().describe('返回字段'),
|
|
@@ -512,11 +512,11 @@ export const storyTools = [
|
|
|
512
512
|
},
|
|
513
513
|
{
|
|
514
514
|
name: 'tapd_create_story_tcase',
|
|
515
|
-
description: '
|
|
515
|
+
description: '建立需求与测试用例的关联。查询用需求侧关联用例查询工具;解除用用例侧解除工具。写操作;story_id、tcase_id 必填。返回关联结果。',
|
|
516
516
|
inputSchema: z.object({
|
|
517
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
518
|
-
story_id: z.string().describe('需求ID
|
|
519
|
-
tcase_id: z.string().describe('测试用例ID
|
|
517
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
518
|
+
story_id: z.string().describe('需求 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
519
|
+
tcase_id: z.string().describe('测试用例 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
520
520
|
}),
|
|
521
521
|
handler: async (client, params) => {
|
|
522
522
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -534,12 +534,12 @@ export const storyTools = [
|
|
|
534
534
|
// 前后置关系
|
|
535
535
|
{
|
|
536
536
|
name: 'tapd_get_time_relative_stories',
|
|
537
|
-
description: '
|
|
537
|
+
description: '查询需求前后置(依赖)关系。维护关系用关系保存/删除工具。读操作;story_id、前置 ID、后置 ID 至少给一个。返回关系数组。',
|
|
538
538
|
inputSchema: z.object({
|
|
539
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
540
|
-
story_id: z.string().optional().describe('需求ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
541
|
-
predecessor_id: z.string().optional().describe('前置需求ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
542
|
-
successor_id: z.string().optional().describe('后置需求ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
539
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
540
|
+
story_id: z.string().optional().describe('需求 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
541
|
+
predecessor_id: z.string().optional().describe('前置需求 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
542
|
+
successor_id: z.string().optional().describe('后置需求 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
543
543
|
relation_type: z.string().optional().describe('关系类型'),
|
|
544
544
|
limit: z.number().optional().describe('返回数量'),
|
|
545
545
|
page: z.number().optional().describe('页码'),
|
|
@@ -562,10 +562,10 @@ export const storyTools = [
|
|
|
562
562
|
},
|
|
563
563
|
{
|
|
564
564
|
name: 'tapd_save_time_relations',
|
|
565
|
-
description: '
|
|
565
|
+
description: '批量新增或修改需求前后置关系(同 ID 覆盖为修改)。查询用关系查询工具;删除用关系删除工具。写操作;relations 传 JSON 数组字符串。返回保存结果。',
|
|
566
566
|
inputSchema: z.object({
|
|
567
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
568
|
-
relations: z.string().describe('前后置关系数组JSON
|
|
567
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
568
|
+
relations: z.string().describe('前后置关系数组JSON(必填)'),
|
|
569
569
|
}),
|
|
570
570
|
handler: async (client, params) => {
|
|
571
571
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -577,10 +577,10 @@ export const storyTools = [
|
|
|
577
577
|
},
|
|
578
578
|
{
|
|
579
579
|
name: 'tapd_delete_time_relations',
|
|
580
|
-
description: '
|
|
580
|
+
description: '批量删除需求前后置关系。新增/修改用关系保存工具。写操作;relations 传 JSON 数组字符串。返回删除结果。',
|
|
581
581
|
inputSchema: z.object({
|
|
582
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
583
|
-
relations: z.string().describe('要删除的前后置关系数组JSON
|
|
582
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
583
|
+
relations: z.string().describe('要删除的前后置关系数组JSON(必填)'),
|
|
584
584
|
}),
|
|
585
585
|
handler: async (client, params) => {
|
|
586
586
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -593,10 +593,10 @@ export const storyTools = [
|
|
|
593
593
|
// 其他
|
|
594
594
|
{
|
|
595
595
|
name: 'tapd_get_removed_stories',
|
|
596
|
-
description: '
|
|
596
|
+
description: '查询回收站中的需求(可按删除时间、处理人过滤)。存续需求用列表查询工具。读操作;支持分页。返回已删除需求数组。',
|
|
597
597
|
inputSchema: z.object({
|
|
598
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
599
|
-
id: z.string().optional().describe('需求ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
598
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
599
|
+
id: z.string().optional().describe('需求 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
600
600
|
name: z.string().optional().describe('标题'),
|
|
601
601
|
owner: z.string().optional().describe('处理人'),
|
|
602
602
|
creator: z.string().optional().describe('创建人'),
|
|
@@ -617,11 +617,11 @@ export const storyTools = [
|
|
|
617
617
|
},
|
|
618
618
|
{
|
|
619
619
|
name: 'tapd_update_story_parent',
|
|
620
|
-
description: '
|
|
620
|
+
description: '设置或取消需求的父子层级(父需求 ID 传 "0" 取消父子关系)。一般字段更新用单条更新工具。写操作;id、parent_id 必填。返回更新结果。',
|
|
621
621
|
inputSchema: z.object({
|
|
622
|
-
id: z.string().describe('需求ID
|
|
623
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
624
|
-
parent_id: z.string().describe('新的父需求ID
|
|
622
|
+
id: z.string().describe('需求 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
623
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
624
|
+
parent_id: z.string().describe('新的父需求 ID(必填),设为 0 取消父子关系;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
625
625
|
}),
|
|
626
626
|
handler: async (client, params) => {
|
|
627
627
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -640,10 +640,10 @@ export const storyTools = [
|
|
|
640
640
|
},
|
|
641
641
|
{
|
|
642
642
|
name: 'tapd_get_stories_by_view_conf_id',
|
|
643
|
-
description: '
|
|
643
|
+
description: '按视图配置 ID 查询该视图下的需求列表(复用网页端保存的视图条件)。自定义条件查询用列表查询工具。读操作;view_conf_id 必填。返回需求列表。',
|
|
644
644
|
inputSchema: z.object({
|
|
645
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
646
|
-
view_conf_id: z.string().describe('视图配置ID
|
|
645
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
646
|
+
view_conf_id: z.string().describe('视图配置 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
647
647
|
limit: z.number().optional().describe('返回数量'),
|
|
648
648
|
page: z.number().optional().describe('页码'),
|
|
649
649
|
fields: z.string().optional().describe('返回字段'),
|
|
@@ -658,10 +658,10 @@ export const storyTools = [
|
|
|
658
658
|
},
|
|
659
659
|
{
|
|
660
660
|
name: 'tapd_get_story_steps',
|
|
661
|
-
description: '
|
|
661
|
+
description: '查询需求步骤(验收/拆解节点)信息。读操作;story_id 必填。返回步骤数组。',
|
|
662
662
|
inputSchema: z.object({
|
|
663
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
664
|
-
story_id: z.string().describe('需求ID
|
|
663
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
664
|
+
story_id: z.string().describe('需求 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
665
665
|
limit: z.number().optional().describe('返回数量'),
|
|
666
666
|
page: z.number().optional().describe('页码'),
|
|
667
667
|
fields: z.string().optional().describe('返回字段'),
|