@xihe-lab/tapd-mcp-server 1.0.6 → 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 (107) 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/server.d.ts.map +1 -1
  7. package/dist/server.js +6 -4
  8. package/dist/server.js.map +1 -1
  9. package/dist/tapd-client.d.ts +65 -1
  10. package/dist/tapd-client.d.ts.map +1 -1
  11. package/dist/tapd-client.js +135 -28
  12. package/dist/tapd-client.js.map +1 -1
  13. package/dist/tools/attachment.d.ts +3 -0
  14. package/dist/tools/attachment.d.ts.map +1 -0
  15. package/dist/tools/attachment.js +99 -0
  16. package/dist/tools/attachment.js.map +1 -0
  17. package/dist/tools/board.d.ts +3 -0
  18. package/dist/tools/board.d.ts.map +1 -0
  19. package/dist/tools/board.js +98 -0
  20. package/dist/tools/board.js.map +1 -0
  21. package/dist/tools/bug.d.ts.map +1 -1
  22. package/dist/tools/bug.js +386 -7
  23. package/dist/tools/bug.js.map +1 -1
  24. package/dist/tools/changes.d.ts +3 -0
  25. package/dist/tools/changes.d.ts.map +1 -0
  26. package/dist/tools/changes.js +73 -0
  27. package/dist/tools/changes.js.map +1 -0
  28. package/dist/tools/comment.d.ts.map +1 -1
  29. package/dist/tools/comment.js +53 -3
  30. package/dist/tools/comment.js.map +1 -1
  31. package/dist/tools/custom-fields.d.ts +3 -0
  32. package/dist/tools/custom-fields.d.ts.map +1 -0
  33. package/dist/tools/custom-fields.js +105 -0
  34. package/dist/tools/custom-fields.js.map +1 -0
  35. package/dist/tools/image.d.ts +3 -0
  36. package/dist/tools/image.d.ts.map +1 -0
  37. package/dist/tools/image.js +23 -0
  38. package/dist/tools/image.js.map +1 -0
  39. package/dist/tools/index.d.ts.map +1 -1
  40. package/dist/tools/index.js +26 -0
  41. package/dist/tools/index.js.map +1 -1
  42. package/dist/tools/iteration.d.ts.map +1 -1
  43. package/dist/tools/iteration.js +99 -6
  44. package/dist/tools/iteration.js.map +1 -1
  45. package/dist/tools/mini-comment.d.ts +3 -0
  46. package/dist/tools/mini-comment.d.ts.map +1 -0
  47. package/dist/tools/mini-comment.js +74 -0
  48. package/dist/tools/mini-comment.js.map +1 -0
  49. package/dist/tools/mini-item.d.ts +3 -0
  50. package/dist/tools/mini-item.d.ts.map +1 -0
  51. package/dist/tools/mini-item.js +166 -0
  52. package/dist/tools/mini-item.js.map +1 -0
  53. package/dist/tools/mini-workspace.d.ts +3 -0
  54. package/dist/tools/mini-workspace.d.ts.map +1 -0
  55. package/dist/tools/mini-workspace.js +43 -0
  56. package/dist/tools/mini-workspace.js.map +1 -0
  57. package/dist/tools/program.d.ts +3 -0
  58. package/dist/tools/program.d.ts.map +1 -0
  59. package/dist/tools/program.js +27 -0
  60. package/dist/tools/program.js.map +1 -0
  61. package/dist/tools/relations.d.ts +3 -0
  62. package/dist/tools/relations.d.ts.map +1 -0
  63. package/dist/tools/relations.js +68 -0
  64. package/dist/tools/relations.js.map +1 -0
  65. package/dist/tools/release.d.ts.map +1 -1
  66. package/dist/tools/release.js +228 -2
  67. package/dist/tools/release.js.map +1 -1
  68. package/dist/tools/report.d.ts +3 -0
  69. package/dist/tools/report.d.ts.map +1 -0
  70. package/dist/tools/report.js +38 -0
  71. package/dist/tools/report.js.map +1 -0
  72. package/dist/tools/settings.d.ts.map +1 -1
  73. package/dist/tools/settings.js +384 -18
  74. package/dist/tools/settings.js.map +1 -1
  75. package/dist/tools/source.d.ts +3 -0
  76. package/dist/tools/source.d.ts.map +1 -0
  77. package/dist/tools/source.js +69 -0
  78. package/dist/tools/source.js.map +1 -0
  79. package/dist/tools/story.d.ts.map +1 -1
  80. package/dist/tools/story.js +650 -144
  81. package/dist/tools/story.js.map +1 -1
  82. package/dist/tools/task.d.ts.map +1 -1
  83. package/dist/tools/task.js +109 -11
  84. package/dist/tools/task.js.map +1 -1
  85. package/dist/tools/test.d.ts.map +1 -1
  86. package/dist/tools/test.js +546 -26
  87. package/dist/tools/test.js.map +1 -1
  88. package/dist/tools/timesheet.d.ts.map +1 -1
  89. package/dist/tools/timesheet.js +72 -11
  90. package/dist/tools/timesheet.js.map +1 -1
  91. package/dist/tools/user.d.ts.map +1 -1
  92. package/dist/tools/user.js +37 -4
  93. package/dist/tools/user.js.map +1 -1
  94. package/dist/tools/utility.d.ts +3 -0
  95. package/dist/tools/utility.d.ts.map +1 -0
  96. package/dist/tools/utility.js +132 -0
  97. package/dist/tools/utility.js.map +1 -0
  98. package/dist/tools/wiki.d.ts.map +1 -1
  99. package/dist/tools/wiki.js +205 -2
  100. package/dist/tools/wiki.js.map +1 -1
  101. package/dist/tools/workflow.d.ts.map +1 -1
  102. package/dist/tools/workflow.js +92 -6
  103. package/dist/tools/workflow.js.map +1 -1
  104. package/dist/tools/workspace.d.ts.map +1 -1
  105. package/dist/tools/workspace.js +94 -4
  106. package/dist/tools/workspace.js.map +1 -1
  107. package/package.json +2 -1
@@ -0,0 +1,73 @@
1
+ import { z } from 'zod';
2
+ import { TapdClient } from '../tapd-client.js';
3
+ export const changeTools = [
4
+ {
5
+ name: "tapd_get_story_changes",
6
+ description: "Get story change history",
7
+ inputSchema: z.object({
8
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
9
+ story_id: z.string().optional().describe("Story ID"),
10
+ limit: z.number().optional().describe("Number of results to return, max 200"),
11
+ page: z.number().optional().describe("Page number, default 1"),
12
+ order: z.string().optional().describe("Sort order, e.g., 'created desc'"),
13
+ fields: z.string().optional().describe("Comma-separated list of fields to return"),
14
+ }),
15
+ handler: async (client, params) => {
16
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
17
+ if (!workspaceId) {
18
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
19
+ }
20
+ return client.get("/story_changes", { ...params, workspace_id: workspaceId });
21
+ },
22
+ },
23
+ {
24
+ name: "tapd_get_story_changes_count",
25
+ description: "Get the count of story changes",
26
+ inputSchema: z.object({
27
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
28
+ story_id: z.string().optional().describe("Story ID"),
29
+ }),
30
+ handler: async (client, params) => {
31
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
32
+ if (!workspaceId) {
33
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
34
+ }
35
+ return client.get("/story_changes/count", { ...params, workspace_id: workspaceId });
36
+ },
37
+ },
38
+ {
39
+ name: "tapd_get_task_changes",
40
+ description: "Get task change history",
41
+ inputSchema: z.object({
42
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
43
+ task_id: z.string().optional().describe("Task ID"),
44
+ limit: z.number().optional().describe("Number of results to return, max 200"),
45
+ page: z.number().optional().describe("Page number, default 1"),
46
+ order: z.string().optional().describe("Sort order, e.g., 'created desc'"),
47
+ fields: z.string().optional().describe("Comma-separated list of fields to return"),
48
+ }),
49
+ handler: async (client, params) => {
50
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
51
+ if (!workspaceId) {
52
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
53
+ }
54
+ return client.get("/task_changes", { ...params, workspace_id: workspaceId });
55
+ },
56
+ },
57
+ {
58
+ name: "tapd_get_task_changes_count",
59
+ description: "Get the count of task changes",
60
+ inputSchema: z.object({
61
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
62
+ task_id: z.string().optional().describe("Task ID"),
63
+ }),
64
+ handler: async (client, params) => {
65
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
66
+ if (!workspaceId) {
67
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
68
+ }
69
+ return client.get("/task_changes/count", { ...params, workspace_id: workspaceId });
70
+ },
71
+ },
72
+ ];
73
+ //# sourceMappingURL=changes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changes.js","sourceRoot":"","sources":["../../src/tools/changes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"comment.d.ts","sourceRoot":"","sources":["../../src/tools/comment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,eAAO,MAAM,YAAY,EAAE,OAAO,EAuCjC,CAAC"}
1
+ {"version":3,"file":"comment.d.ts","sourceRoot":"","sources":["../../src/tools/comment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,eAAO,MAAM,YAAY,EAAE,OAAO,EAyFjC,CAAC"}
@@ -5,23 +5,33 @@ export const commentTools = [
5
5
  name: "tapd_get_comments",
6
6
  description: "Get comments from TAPD for stories, bugs, or tasks",
7
7
  inputSchema: z.object({
8
- workspace_id: z.number().describe("Project ID"),
8
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
9
+ id: z.string().optional().describe("Comment ID, supports multiple IDs"),
9
10
  entry_type: z.string().optional().describe("Entity type: story, bug, or task"),
10
11
  entry_id: z.string().optional().describe("Entity ID to get comments for"),
12
+ author: z.string().optional().describe("Comment author"),
13
+ created: z.string().optional().describe("Creation time, supports time query"),
14
+ modified: z.string().optional().describe("Last modified time, supports time query"),
15
+ reply_id: z.string().optional().describe("Reply comment ID"),
16
+ root_id: z.string().optional().describe("Root comment ID for replies"),
11
17
  limit: z.number().optional().describe("Number of results to return, max 200"),
12
18
  page: z.number().optional().describe("Page number, default 1"),
13
19
  order: z.string().optional().describe("Sort order, e.g., 'created desc'"),
14
20
  fields: z.string().optional().describe("Comma-separated list of fields to return"),
15
21
  }),
16
22
  handler: async (client, params) => {
17
- return client.get("/comments", params);
23
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
24
+ if (!workspaceId) {
25
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
26
+ }
27
+ return client.get("/comments", { ...params, workspace_id: workspaceId });
18
28
  },
19
29
  },
20
30
  {
21
31
  name: "tapd_create_comment",
22
32
  description: "Create a new comment on a story, bug, or task",
23
33
  inputSchema: z.object({
24
- workspace_id: z.number().describe("Project ID"),
34
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
25
35
  entry_type: z.string().describe("Entity type: bug, bug_remark, stories, or tasks"),
26
36
  entry_id: z.string().describe("Entity ID to comment on"),
27
37
  description: z.string().describe("Comment content"),
@@ -32,12 +42,52 @@ export const commentTools = [
32
42
  reply_id: z.string().optional().describe("Comment ID being replied to"),
33
43
  }),
34
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
+ }
35
49
  const finalParams = {
36
50
  ...params,
51
+ workspace_id: workspaceId,
37
52
  author: params.author ?? TapdClient.getNickName(),
38
53
  };
39
54
  return client.post("/comments", finalParams);
40
55
  },
41
56
  },
57
+ {
58
+ name: "tapd_get_comments_count",
59
+ description: "获取评论数量",
60
+ inputSchema: z.object({
61
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
62
+ entry_type: z.string().optional().describe("对象类型: story, bug, or task"),
63
+ entry_id: z.string().optional().describe("对象ID"),
64
+ author: z.string().optional().describe("评论作者"),
65
+ created: z.string().optional().describe("创建时间"),
66
+ }),
67
+ handler: async (client, params) => {
68
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
69
+ if (!workspaceId) {
70
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
71
+ }
72
+ return client.get("/comments/count", { ...params, workspace_id: workspaceId });
73
+ },
74
+ },
75
+ {
76
+ name: "tapd_update_comment",
77
+ description: "更新评论",
78
+ inputSchema: z.object({
79
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
80
+ id: z.string().describe("评论ID (必填)"),
81
+ description: z.string().optional().describe("评论内容"),
82
+ author: z.string().optional().describe("作者"),
83
+ }),
84
+ handler: async (client, params) => {
85
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
86
+ if (!workspaceId) {
87
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
88
+ }
89
+ return client.post("/comments", { ...params, workspace_id: workspaceId });
90
+ },
91
+ },
42
92
  ];
43
93
  //# sourceMappingURL=comment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"comment.js","sourceRoot":"","sources":["../../src/tools/comment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,CAAC,MAAM,YAAY,GAAc;IACrC;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,oDAAoD;QACjE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YAC9E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YACzE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YAC7E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YACzE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;SACnF,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,qBAAqB;QAC3B,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;YAClF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACxD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACnD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACjF,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YACnE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YAClF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACtE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;SACxE,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAChC,MAAM,WAAW,GAAG;gBAClB,GAAG,MAAM;gBACT,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,UAAU,CAAC,WAAW,EAAE;aAClD,CAAC;YACF,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC/C,CAAC;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"comment.js","sourceRoot":"","sources":["../../src/tools/comment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDef } from '../types.js';
2
+ export declare const customFieldTools: ToolDef[];
3
+ //# sourceMappingURL=custom-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-fields.d.ts","sourceRoot":"","sources":["../../src/tools/custom-fields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,eAAO,MAAM,gBAAgB,EAAE,OAAO,EAqGrC,CAAC"}
@@ -0,0 +1,105 @@
1
+ import { z } from 'zod';
2
+ import { TapdClient } from '../tapd-client.js';
3
+ export const customFieldTools = [
4
+ {
5
+ name: "tapd_get_story_custom_fields",
6
+ description: "Get story custom fields settings",
7
+ inputSchema: z.object({
8
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
9
+ workitem_type_id: z.string().optional().describe("Work item type ID"),
10
+ }),
11
+ handler: async (client, params) => {
12
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
13
+ if (!workspaceId) {
14
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
15
+ }
16
+ return client.get("/stories/custom_fields_settings", { ...params, workspace_id: workspaceId });
17
+ },
18
+ },
19
+ {
20
+ name: "tapd_get_bug_custom_fields",
21
+ description: "Get bug custom fields settings",
22
+ inputSchema: z.object({
23
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
24
+ workitem_type_id: z.string().optional().describe("Work item type ID"),
25
+ }),
26
+ handler: async (client, params) => {
27
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
28
+ if (!workspaceId) {
29
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
30
+ }
31
+ return client.get("/bugs/custom_fields_settings", { ...params, workspace_id: workspaceId });
32
+ },
33
+ },
34
+ {
35
+ name: "tapd_get_task_custom_fields",
36
+ description: "Get task custom fields settings",
37
+ inputSchema: z.object({
38
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
39
+ }),
40
+ handler: async (client, params) => {
41
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
42
+ if (!workspaceId) {
43
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
44
+ }
45
+ return client.get("/tasks/custom_fields_settings", { ...params, workspace_id: workspaceId });
46
+ },
47
+ },
48
+ {
49
+ name: "tapd_get_test_case_custom_fields",
50
+ description: "Get test case custom fields settings",
51
+ inputSchema: z.object({
52
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
53
+ }),
54
+ handler: async (client, params) => {
55
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
56
+ if (!workspaceId) {
57
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
58
+ }
59
+ return client.get("/tcases/custom_fields_settings", { ...params, workspace_id: workspaceId });
60
+ },
61
+ },
62
+ {
63
+ name: "tapd_get_iteration_custom_fields",
64
+ description: "Get iteration custom fields settings",
65
+ inputSchema: z.object({
66
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
67
+ }),
68
+ handler: async (client, params) => {
69
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
70
+ if (!workspaceId) {
71
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
72
+ }
73
+ return client.get("/iterations/custom_fields_settings", { ...params, workspace_id: workspaceId });
74
+ },
75
+ },
76
+ {
77
+ name: "tapd_get_task_fields_info",
78
+ description: "Get task fields information",
79
+ inputSchema: z.object({
80
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
81
+ }),
82
+ handler: async (client, params) => {
83
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
84
+ if (!workspaceId) {
85
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
86
+ }
87
+ return client.get("/tasks/get_fields_info", { ...params, workspace_id: workspaceId });
88
+ },
89
+ },
90
+ {
91
+ name: "tapd_get_test_case_fields_info",
92
+ description: "Get test case fields information",
93
+ inputSchema: z.object({
94
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
95
+ }),
96
+ handler: async (client, params) => {
97
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
98
+ if (!workspaceId) {
99
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
100
+ }
101
+ return client.get("/tcases/get_fields_info", { ...params, workspace_id: workspaceId });
102
+ },
103
+ },
104
+ ];
105
+ //# sourceMappingURL=custom-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-fields.js","sourceRoot":"","sources":["../../src/tools/custom-fields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDef } from '../types.js';
2
+ export declare const imageTools: ToolDef[];
3
+ //# sourceMappingURL=image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/tools/image.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,eAAO,MAAM,UAAU,EAAE,OAAO,EAmB/B,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ import { TapdClient } from '../tapd-client.js';
3
+ export const imageTools = [
4
+ {
5
+ name: 'tapd_get_image_url',
6
+ description: '将 TAPD 图片相对路径转换为临时下载 URL(有效期 300s)。用于需求描述中的 /tfl/ 图片路径。',
7
+ inputSchema: z.object({
8
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
9
+ image_path: z.string().describe('图片相对路径,如 /tfl/captures/2025/04/xxx.png'),
10
+ }),
11
+ handler: async (client, params) => {
12
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
13
+ if (!workspaceId) {
14
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
15
+ }
16
+ return client.get('/files/get_image', {
17
+ workspace_id: workspaceId,
18
+ image_path: params.image_path,
19
+ });
20
+ },
21
+ },
22
+ ];
23
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/tools/image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,CAAC,MAAM,UAAU,GAAc;IACnC;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,yDAAyD;QACtE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAChE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;SAC1E,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAChC,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,IAAI,UAAU,CAAC,qBAAqB,EAAE,CAAC;YAC9E,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;YACvG,CAAC;YACD,OAAO,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE;gBACpC,YAAY,EAAE,WAAW;gBACzB,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC,CAAC;QACL,CAAC;KACF;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAgB3C,eAAO,MAAM,QAAQ,EAAE,OAAO,EAc7B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AA6B3C,eAAO,MAAM,QAAQ,EAAE,OAAO,EA2B7B,CAAC"}
@@ -11,6 +11,19 @@ import { settingsTools } from './settings.js';
11
11
  import { testTools } from './test.js';
12
12
  import { wikiTools } from './wiki.js';
13
13
  import { releaseTools } from './release.js';
14
+ import { attachmentTools } from './attachment.js';
15
+ import { miniItemTools } from './mini-item.js';
16
+ import { miniWorkspaceTools } from './mini-workspace.js';
17
+ import { miniCommentTools } from './mini-comment.js';
18
+ import { changeTools } from './changes.js';
19
+ import { customFieldTools } from './custom-fields.js';
20
+ import { relationTools } from './relations.js';
21
+ import { boardTools } from './board.js';
22
+ import { sourceTools } from './source.js';
23
+ import { programTools } from './program.js';
24
+ import { reportTools } from './report.js';
25
+ import { utilityTools } from './utility.js';
26
+ import { imageTools } from './image.js';
14
27
  export const allTools = [
15
28
  ...workspaceTools,
16
29
  ...iterationTools,
@@ -25,5 +38,18 @@ export const allTools = [
25
38
  ...testTools,
26
39
  ...wikiTools,
27
40
  ...releaseTools,
41
+ ...attachmentTools,
42
+ ...miniItemTools,
43
+ ...miniWorkspaceTools,
44
+ ...miniCommentTools,
45
+ ...changeTools,
46
+ ...customFieldTools,
47
+ ...relationTools,
48
+ ...boardTools,
49
+ ...sourceTools,
50
+ ...programTools,
51
+ ...reportTools,
52
+ ...utilityTools,
53
+ ...imageTools,
28
54
  ];
29
55
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,GAAG,cAAc;IACjB,GAAG,cAAc;IACjB,GAAG,SAAS;IACZ,GAAG,UAAU;IACb,GAAG,QAAQ;IACX,GAAG,SAAS;IACZ,GAAG,YAAY;IACf,GAAG,cAAc;IACjB,GAAG,aAAa;IAChB,GAAG,aAAa;IAChB,GAAG,SAAS;IACZ,GAAG,SAAS;IACZ,GAAG,YAAY;CAChB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,GAAG,cAAc;IACjB,GAAG,cAAc;IACjB,GAAG,SAAS;IACZ,GAAG,UAAU;IACb,GAAG,QAAQ;IACX,GAAG,SAAS;IACZ,GAAG,YAAY;IACf,GAAG,cAAc;IACjB,GAAG,aAAa;IAChB,GAAG,aAAa;IAChB,GAAG,SAAS;IACZ,GAAG,SAAS;IACZ,GAAG,YAAY;IACf,GAAG,eAAe;IAClB,GAAG,aAAa;IAChB,GAAG,kBAAkB;IACrB,GAAG,gBAAgB;IACnB,GAAG,WAAW;IACd,GAAG,gBAAgB;IACnB,GAAG,aAAa;IAChB,GAAG,UAAU;IACb,GAAG,WAAW;IACd,GAAG,YAAY;IACf,GAAG,WAAW;IACd,GAAG,YAAY;IACf,GAAG,UAAU;CACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"iteration.d.ts","sourceRoot":"","sources":["../../src/tools/iteration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,eAAO,MAAM,cAAc,EAAE,OAAO,EA6FnC,CAAC"}
1
+ {"version":3,"file":"iteration.d.ts","sourceRoot":"","sources":["../../src/tools/iteration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,eAAO,MAAM,cAAc,EAAE,OAAO,EA0LnC,CAAC"}
@@ -5,9 +5,10 @@ export const iterationTools = [
5
5
  name: "tapd_get_iterations",
6
6
  description: "Get iterations with optional filters",
7
7
  inputSchema: z.object({
8
- workspace_id: z.number().describe("Project ID"),
8
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
9
9
  id: z.string().optional().describe("Iteration ID, supports multi-ID query"),
10
10
  name: z.string().optional().describe("Iteration title, supports fuzzy matching"),
11
+ description: z.string().optional().describe("Iteration description"),
11
12
  status: z.string().optional().describe("Status: open/done or custom Chinese status"),
12
13
  startdate: z.string().optional().describe("Start date, supports time query"),
13
14
  enddate: z.string().optional().describe("End date, supports time query"),
@@ -18,20 +19,25 @@ export const iterationTools = [
18
19
  workitem_type_id: z.string().optional().describe("Iteration category"),
19
20
  plan_app_id: z.string().optional().describe("Plan application ID"),
20
21
  locker: z.string().optional().describe("Locked by user"),
22
+ custom_field_one: z.string().optional().describe("Custom field 1 (supports 1-200)"),
21
23
  limit: z.number().optional().describe("Return count limit, default 30, max 200"),
22
24
  page: z.number().optional().describe("Page number, default 1"),
23
25
  order: z.string().optional().describe("Sort order"),
24
26
  fields: z.string().optional().describe("Specify return fields"),
25
27
  }),
26
28
  handler: async (client, params) => {
27
- return client.get("/iterations", params);
29
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
30
+ if (!workspaceId) {
31
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
32
+ }
33
+ return client.get("/iterations", { ...params, workspace_id: workspaceId });
28
34
  },
29
35
  },
30
36
  {
31
37
  name: "tapd_create_iteration",
32
38
  description: "Create a new iteration",
33
39
  inputSchema: z.object({
34
- workspace_id: z.number().describe("Project ID"),
40
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
35
41
  name: z.string().describe("Iteration name"),
36
42
  startdate: z.string().optional().describe("Start date"),
37
43
  enddate: z.string().optional().describe("End date"),
@@ -40,10 +46,19 @@ export const iterationTools = [
40
46
  creator: z.string().optional().describe("Creator (defaults to TAPD_NICK_NAME env, required by API)"),
41
47
  workitem_type_id: z.string().optional().describe("Iteration category"),
42
48
  plan_app_id: z.string().optional().describe("Plan application ID"),
49
+ entity_type: z.string().optional().describe("Entity type: iteration or release (default: iteration)"),
50
+ parent_id: z.string().optional().describe("Parent plan ID (for iteration under release)"),
51
+ label: z.string().optional().describe("Label, multiple labels separated by |"),
52
+ custom_field_one: z.string().optional().describe("Custom field 1 (supports 1-200)"),
43
53
  }),
44
54
  handler: async (client, params) => {
55
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
56
+ if (!workspaceId) {
57
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
58
+ }
45
59
  const finalParams = {
46
60
  ...params,
61
+ workspace_id: workspaceId,
47
62
  creator: params.creator ?? TapdClient.getNickName(),
48
63
  };
49
64
  return client.post("/iterations", finalParams);
@@ -54,19 +69,26 @@ export const iterationTools = [
54
69
  description: "Update an existing iteration",
55
70
  inputSchema: z.object({
56
71
  id: z.string().describe("Iteration ID"),
57
- workspace_id: z.number().describe("Project ID"),
72
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
58
73
  name: z.string().optional().describe("Iteration name"),
59
74
  startdate: z.string().optional().describe("Start date"),
60
75
  enddate: z.string().optional().describe("End date"),
61
76
  description: z.string().optional().describe("Iteration description"),
62
77
  status: z.string().optional().describe("Status: open/done"),
78
+ label: z.string().optional().describe("Label, multiple labels separated by |"),
63
79
  current_user: z.string().optional().describe("Current user for operation (defaults to TAPD_NICK_NAME env, required by API)"),
64
80
  workitem_type_id: z.string().optional().describe("Iteration category"),
65
81
  plan_app_id: z.string().optional().describe("Plan application ID"),
82
+ custom_field_one: z.string().optional().describe("Custom field 1 (supports 1-200)"),
66
83
  }),
67
84
  handler: async (client, params) => {
85
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
86
+ if (!workspaceId) {
87
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
88
+ }
68
89
  const finalParams = {
69
90
  ...params,
91
+ workspace_id: workspaceId,
70
92
  current_user: params.current_user ?? TapdClient.getNickName(),
71
93
  };
72
94
  return client.post("/iterations", finalParams);
@@ -76,7 +98,7 @@ export const iterationTools = [
76
98
  name: "tapd_get_iteration_count",
77
99
  description: "Get count of iterations matching filters",
78
100
  inputSchema: z.object({
79
- workspace_id: z.number().describe("Project ID"),
101
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
80
102
  name: z.string().optional().describe("Iteration title, supports fuzzy matching"),
81
103
  status: z.string().optional().describe("Status: open/done or custom Chinese status"),
82
104
  startdate: z.string().optional().describe("Start date, supports time query"),
@@ -88,9 +110,80 @@ export const iterationTools = [
88
110
  workitem_type_id: z.string().optional().describe("Iteration category"),
89
111
  plan_app_id: z.string().optional().describe("Plan application ID"),
90
112
  locker: z.string().optional().describe("Locked by user"),
113
+ custom_field_one: z.string().optional().describe("Custom field 1 (supports 1-200)"),
114
+ }),
115
+ handler: async (client, params) => {
116
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
117
+ if (!workspaceId) {
118
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
119
+ }
120
+ return client.get("/iterations/count", { ...params, workspace_id: workspaceId });
121
+ },
122
+ },
123
+ // 迭代变更历史
124
+ {
125
+ name: "tapd_get_iteration_changes",
126
+ description: "获取迭代变更历史",
127
+ inputSchema: z.object({
128
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
129
+ iteration_id: z.string().optional().describe("迭代ID"),
130
+ field: z.string().optional().describe("变更字段"),
131
+ user: z.string().optional().describe("变更人"),
132
+ created: z.string().optional().describe("创建时间"),
133
+ limit: z.number().optional().describe("返回数量,默认30,最大200"),
134
+ page: z.number().optional().describe("页码,默认1"),
135
+ order: z.string().optional().describe("排序"),
136
+ fields: z.string().optional().describe("返回字段"),
91
137
  }),
92
138
  handler: async (client, params) => {
93
- return client.get("/iterations/count", params);
139
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
140
+ if (!workspaceId) {
141
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
142
+ }
143
+ return client.get("/iterations/changes", { ...params, workspace_id: workspaceId });
144
+ },
145
+ },
146
+ // 锁定/解锁
147
+ {
148
+ name: "tapd_lock_iteration",
149
+ description: "锁定迭代",
150
+ inputSchema: z.object({
151
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
152
+ id: z.string().describe("迭代ID (必填)"),
153
+ current_user: z.string().optional().describe("操作人(默认当前用户)"),
154
+ }),
155
+ handler: async (client, 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
+ const finalParams = {
161
+ ...params,
162
+ workspace_id: workspaceId,
163
+ current_user: params.current_user ?? TapdClient.getNickName(),
164
+ };
165
+ return client.post("/iterations/lock", finalParams);
166
+ },
167
+ },
168
+ {
169
+ name: "tapd_unlock_iteration",
170
+ description: "解锁迭代",
171
+ inputSchema: z.object({
172
+ workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
173
+ id: z.string().describe("迭代ID (必填)"),
174
+ current_user: z.string().optional().describe("操作人(默认当前用户)"),
175
+ }),
176
+ handler: async (client, params) => {
177
+ const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
178
+ if (!workspaceId) {
179
+ throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
180
+ }
181
+ const finalParams = {
182
+ ...params,
183
+ workspace_id: workspaceId,
184
+ current_user: params.current_user ?? TapdClient.getNickName(),
185
+ };
186
+ return client.post("/iterations/unlock", finalParams);
94
187
  },
95
188
  },
96
189
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"iteration.js","sourceRoot":"","sources":["../../src/tools/iteration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iteration.js","sourceRoot":"","sources":["../../src/tools/iteration.ts"],"names":[],"mappings":"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"}