@jhl8041/dooray-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +9 -0
- package/.serena/project.yml +84 -0
- package/CLAUDE.md +119 -0
- package/README.md +82 -0
- package/dist/api/client.d.ts +70 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +186 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/common.d.ts +14 -0
- package/dist/api/common.d.ts.map +1 -0
- package/dist/api/common.js +25 -0
- package/dist/api/common.js.map +1 -0
- package/dist/api/projects.d.ts +83 -0
- package/dist/api/projects.d.ts.map +1 -0
- package/dist/api/projects.js +300 -0
- package/dist/api/projects.js.map +1 -0
- package/dist/api/wiki.d.ts +38 -0
- package/dist/api/wiki.d.ts.map +1 -0
- package/dist/api/wiki.js +95 -0
- package/dist/api/wiki.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +227 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/common/get-my-member-info.d.ts +29 -0
- package/dist/tools/common/get-my-member-info.d.ts.map +1 -0
- package/dist/tools/common/get-my-member-info.js +95 -0
- package/dist/tools/common/get-my-member-info.js.map +1 -0
- package/dist/tools/projects/create-task-comment.d.ts +92 -0
- package/dist/tools/projects/create-task-comment.d.ts.map +1 -0
- package/dist/tools/projects/create-task-comment.js +171 -0
- package/dist/tools/projects/create-task-comment.js.map +1 -0
- package/dist/tools/projects/create-task.d.ts +191 -0
- package/dist/tools/projects/create-task.d.ts.map +1 -0
- package/dist/tools/projects/create-task.js +217 -0
- package/dist/tools/projects/create-task.js.map +1 -0
- package/dist/tools/projects/get-milestone-list.d.ts +49 -0
- package/dist/tools/projects/get-milestone-list.d.ts.map +1 -0
- package/dist/tools/projects/get-milestone-list.js +112 -0
- package/dist/tools/projects/get-milestone-list.js.map +1 -0
- package/dist/tools/projects/get-project-list.d.ts +50 -0
- package/dist/tools/projects/get-project-list.d.ts.map +1 -0
- package/dist/tools/projects/get-project-list.js +113 -0
- package/dist/tools/projects/get-project-list.js.map +1 -0
- package/dist/tools/projects/get-project-member-group-list.d.ts +55 -0
- package/dist/tools/projects/get-project-member-group-list.d.ts.map +1 -0
- package/dist/tools/projects/get-project-member-group-list.js +127 -0
- package/dist/tools/projects/get-project-member-group-list.js.map +1 -0
- package/dist/tools/projects/get-project-member-list.d.ts +66 -0
- package/dist/tools/projects/get-project-member-list.d.ts.map +1 -0
- package/dist/tools/projects/get-project-member-list.js +159 -0
- package/dist/tools/projects/get-project-member-list.js.map +1 -0
- package/dist/tools/projects/get-project-template-list.d.ts +55 -0
- package/dist/tools/projects/get-project-template-list.d.ts.map +1 -0
- package/dist/tools/projects/get-project-template-list.js +127 -0
- package/dist/tools/projects/get-project-template-list.js.map +1 -0
- package/dist/tools/projects/get-project-template.d.ts +48 -0
- package/dist/tools/projects/get-project-template.d.ts.map +1 -0
- package/dist/tools/projects/get-project-template.js +132 -0
- package/dist/tools/projects/get-project-template.js.map +1 -0
- package/dist/tools/projects/get-project-workflow-list.d.ts +41 -0
- package/dist/tools/projects/get-project-workflow-list.d.ts.map +1 -0
- package/dist/tools/projects/get-project-workflow-list.js +107 -0
- package/dist/tools/projects/get-project-workflow-list.js.map +1 -0
- package/dist/tools/projects/get-project.d.ts +41 -0
- package/dist/tools/projects/get-project.d.ts.map +1 -0
- package/dist/tools/projects/get-project.js +110 -0
- package/dist/tools/projects/get-project.js.map +1 -0
- package/dist/tools/projects/get-tag-list.d.ts +55 -0
- package/dist/tools/projects/get-tag-list.d.ts.map +1 -0
- package/dist/tools/projects/get-tag-list.js +145 -0
- package/dist/tools/projects/get-tag-list.js.map +1 -0
- package/dist/tools/projects/get-task-comment-list.d.ts +63 -0
- package/dist/tools/projects/get-task-comment-list.d.ts.map +1 -0
- package/dist/tools/projects/get-task-comment-list.js +136 -0
- package/dist/tools/projects/get-task-comment-list.js.map +1 -0
- package/dist/tools/projects/get-task-list.d.ts +184 -0
- package/dist/tools/projects/get-task-list.d.ts.map +1 -0
- package/dist/tools/projects/get-task-list.js +257 -0
- package/dist/tools/projects/get-task-list.js.map +1 -0
- package/dist/tools/projects/get-task.d.ts +48 -0
- package/dist/tools/projects/get-task.d.ts.map +1 -0
- package/dist/tools/projects/get-task.js +130 -0
- package/dist/tools/projects/get-task.js.map +1 -0
- package/dist/tools/projects/update-task-comment.d.ts +92 -0
- package/dist/tools/projects/update-task-comment.d.ts.map +1 -0
- package/dist/tools/projects/update-task-comment.js +176 -0
- package/dist/tools/projects/update-task-comment.js.map +1 -0
- package/dist/tools/projects/update-task.d.ts +196 -0
- package/dist/tools/projects/update-task.d.ts.map +1 -0
- package/dist/tools/projects/update-task.js +227 -0
- package/dist/tools/projects/update-task.js.map +1 -0
- package/dist/tools/wiki/create-wiki-page.d.ts +89 -0
- package/dist/tools/wiki/create-wiki-page.d.ts.map +1 -0
- package/dist/tools/wiki/create-wiki-page.js +142 -0
- package/dist/tools/wiki/create-wiki-page.js.map +1 -0
- package/dist/tools/wiki/get-wiki-list.d.ts +58 -0
- package/dist/tools/wiki/get-wiki-list.d.ts.map +1 -0
- package/dist/tools/wiki/get-wiki-list.js +118 -0
- package/dist/tools/wiki/get-wiki-list.js.map +1 -0
- package/dist/tools/wiki/get-wiki-page-list.d.ts +65 -0
- package/dist/tools/wiki/get-wiki-page-list.d.ts.map +1 -0
- package/dist/tools/wiki/get-wiki-page-list.js +125 -0
- package/dist/tools/wiki/get-wiki-page-list.js.map +1 -0
- package/dist/tools/wiki/get-wiki-page.d.ts +48 -0
- package/dist/tools/wiki/get-wiki-page.d.ts.map +1 -0
- package/dist/tools/wiki/get-wiki-page.js +100 -0
- package/dist/tools/wiki/get-wiki-page.js.map +1 -0
- package/dist/tools/wiki/update-wiki-page.d.ts +89 -0
- package/dist/tools/wiki/update-wiki-page.d.ts.map +1 -0
- package/dist/tools/wiki/update-wiki-page.js +140 -0
- package/dist/tools/wiki/update-wiki-page.js.map +1 -0
- package/dist/types/config.d.ts +18 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +6 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/dooray-api.d.ts +387 -0
- package/dist/types/dooray-api.d.ts.map +1 -0
- package/dist/types/dooray-api.js +7 -0
- package/dist/types/dooray-api.js.map +1 -0
- package/dist/utils/errors.d.ts +28 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +60 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/logger.d.ts +22 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +50 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/member-transform.d.ts +20 -0
- package/dist/utils/member-transform.d.ts.map +1 -0
- package/dist/utils/member-transform.js +48 -0
- package/dist/utils/member-transform.js.map +1 -0
- package/dist/utils/response-filters.d.ts +121 -0
- package/dist/utils/response-filters.d.ts.map +1 -0
- package/dist/utils/response-filters.js +166 -0
- package/dist/utils/response-filters.js.map +1 -0
- package/dooray-mcp.iml +8 -0
- package/package.json +54 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create Task Tool
|
|
3
|
+
* Create a new task in a project
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
export declare const createTaskSchema: z.ZodObject<{
|
|
7
|
+
projectId: z.ZodString;
|
|
8
|
+
parentPostId: z.ZodOptional<z.ZodString>;
|
|
9
|
+
subject: z.ZodString;
|
|
10
|
+
body: z.ZodOptional<z.ZodObject<{
|
|
11
|
+
mimeType: z.ZodEnum<["text/x-markdown", "text/html"]>;
|
|
12
|
+
content: z.ZodString;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
mimeType: "text/x-markdown" | "text/html";
|
|
15
|
+
content: string;
|
|
16
|
+
}, {
|
|
17
|
+
mimeType: "text/x-markdown" | "text/html";
|
|
18
|
+
content: string;
|
|
19
|
+
}>>;
|
|
20
|
+
assignees: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
21
|
+
id: z.ZodString;
|
|
22
|
+
type: z.ZodEnum<["member", "group", "email"]>;
|
|
23
|
+
}, "strip", z.ZodTypeAny, {
|
|
24
|
+
type: "member" | "group" | "email";
|
|
25
|
+
id: string;
|
|
26
|
+
}, {
|
|
27
|
+
type: "member" | "group" | "email";
|
|
28
|
+
id: string;
|
|
29
|
+
}>, "many">>;
|
|
30
|
+
cc: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
31
|
+
id: z.ZodString;
|
|
32
|
+
type: z.ZodEnum<["member", "group", "email"]>;
|
|
33
|
+
}, "strip", z.ZodTypeAny, {
|
|
34
|
+
type: "member" | "group" | "email";
|
|
35
|
+
id: string;
|
|
36
|
+
}, {
|
|
37
|
+
type: "member" | "group" | "email";
|
|
38
|
+
id: string;
|
|
39
|
+
}>, "many">>;
|
|
40
|
+
dueDate: z.ZodOptional<z.ZodString>;
|
|
41
|
+
milestoneId: z.ZodOptional<z.ZodString>;
|
|
42
|
+
tagIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
43
|
+
priority: z.ZodOptional<z.ZodEnum<["highest", "high", "normal", "low", "lowest", "none"]>>;
|
|
44
|
+
}, "strip", z.ZodTypeAny, {
|
|
45
|
+
subject: string;
|
|
46
|
+
projectId: string;
|
|
47
|
+
body?: {
|
|
48
|
+
mimeType: "text/x-markdown" | "text/html";
|
|
49
|
+
content: string;
|
|
50
|
+
} | undefined;
|
|
51
|
+
tagIds?: string[] | undefined;
|
|
52
|
+
parentPostId?: string | undefined;
|
|
53
|
+
dueDate?: string | undefined;
|
|
54
|
+
milestoneId?: string | undefined;
|
|
55
|
+
priority?: "highest" | "high" | "normal" | "low" | "lowest" | "none" | undefined;
|
|
56
|
+
assignees?: {
|
|
57
|
+
type: "member" | "group" | "email";
|
|
58
|
+
id: string;
|
|
59
|
+
}[] | undefined;
|
|
60
|
+
cc?: {
|
|
61
|
+
type: "member" | "group" | "email";
|
|
62
|
+
id: string;
|
|
63
|
+
}[] | undefined;
|
|
64
|
+
}, {
|
|
65
|
+
subject: string;
|
|
66
|
+
projectId: string;
|
|
67
|
+
body?: {
|
|
68
|
+
mimeType: "text/x-markdown" | "text/html";
|
|
69
|
+
content: string;
|
|
70
|
+
} | undefined;
|
|
71
|
+
tagIds?: string[] | undefined;
|
|
72
|
+
parentPostId?: string | undefined;
|
|
73
|
+
dueDate?: string | undefined;
|
|
74
|
+
milestoneId?: string | undefined;
|
|
75
|
+
priority?: "highest" | "high" | "normal" | "low" | "lowest" | "none" | undefined;
|
|
76
|
+
assignees?: {
|
|
77
|
+
type: "member" | "group" | "email";
|
|
78
|
+
id: string;
|
|
79
|
+
}[] | undefined;
|
|
80
|
+
cc?: {
|
|
81
|
+
type: "member" | "group" | "email";
|
|
82
|
+
id: string;
|
|
83
|
+
}[] | undefined;
|
|
84
|
+
}>;
|
|
85
|
+
export type CreateTaskInput = z.infer<typeof createTaskSchema>;
|
|
86
|
+
export declare function createTaskHandler(args: CreateTaskInput): Promise<{
|
|
87
|
+
content: {
|
|
88
|
+
type: string;
|
|
89
|
+
text: string;
|
|
90
|
+
}[];
|
|
91
|
+
isError?: undefined;
|
|
92
|
+
} | {
|
|
93
|
+
content: {
|
|
94
|
+
type: string;
|
|
95
|
+
text: string;
|
|
96
|
+
}[];
|
|
97
|
+
isError: boolean;
|
|
98
|
+
}>;
|
|
99
|
+
export declare const createTaskTool: {
|
|
100
|
+
name: string;
|
|
101
|
+
description: string;
|
|
102
|
+
inputSchema: {
|
|
103
|
+
type: string;
|
|
104
|
+
properties: {
|
|
105
|
+
projectId: {
|
|
106
|
+
type: string;
|
|
107
|
+
description: string;
|
|
108
|
+
};
|
|
109
|
+
parentPostId: {
|
|
110
|
+
type: string;
|
|
111
|
+
description: string;
|
|
112
|
+
};
|
|
113
|
+
subject: {
|
|
114
|
+
type: string;
|
|
115
|
+
description: string;
|
|
116
|
+
};
|
|
117
|
+
body: {
|
|
118
|
+
type: string;
|
|
119
|
+
properties: {
|
|
120
|
+
mimeType: {
|
|
121
|
+
type: string;
|
|
122
|
+
enum: string[];
|
|
123
|
+
description: string;
|
|
124
|
+
};
|
|
125
|
+
content: {
|
|
126
|
+
type: string;
|
|
127
|
+
description: string;
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
required: string[];
|
|
131
|
+
description: string;
|
|
132
|
+
};
|
|
133
|
+
assignees: {
|
|
134
|
+
type: string;
|
|
135
|
+
items: {
|
|
136
|
+
type: string;
|
|
137
|
+
properties: {
|
|
138
|
+
id: {
|
|
139
|
+
type: string;
|
|
140
|
+
};
|
|
141
|
+
type: {
|
|
142
|
+
type: string;
|
|
143
|
+
enum: string[];
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
required: string[];
|
|
147
|
+
};
|
|
148
|
+
description: string;
|
|
149
|
+
};
|
|
150
|
+
cc: {
|
|
151
|
+
type: string;
|
|
152
|
+
items: {
|
|
153
|
+
type: string;
|
|
154
|
+
properties: {
|
|
155
|
+
id: {
|
|
156
|
+
type: string;
|
|
157
|
+
};
|
|
158
|
+
type: {
|
|
159
|
+
type: string;
|
|
160
|
+
enum: string[];
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
required: string[];
|
|
164
|
+
};
|
|
165
|
+
description: string;
|
|
166
|
+
};
|
|
167
|
+
dueDate: {
|
|
168
|
+
type: string;
|
|
169
|
+
description: string;
|
|
170
|
+
};
|
|
171
|
+
milestoneId: {
|
|
172
|
+
type: string;
|
|
173
|
+
description: string;
|
|
174
|
+
};
|
|
175
|
+
tagIds: {
|
|
176
|
+
type: string;
|
|
177
|
+
items: {
|
|
178
|
+
type: string;
|
|
179
|
+
};
|
|
180
|
+
description: string;
|
|
181
|
+
};
|
|
182
|
+
priority: {
|
|
183
|
+
type: string;
|
|
184
|
+
enum: string[];
|
|
185
|
+
description: string;
|
|
186
|
+
};
|
|
187
|
+
};
|
|
188
|
+
required: string[];
|
|
189
|
+
};
|
|
190
|
+
};
|
|
191
|
+
//# sourceMappingURL=create-task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-task.d.ts","sourceRoot":"","sources":["../../../src/tools/projects/create-task.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE/D,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,eAAe;;;;;;;;;;;;GAoC5D;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiH1B,CAAC"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Create Task Tool
|
|
4
|
+
* Create a new task in a project
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.createTaskTool = exports.createTaskSchema = void 0;
|
|
41
|
+
exports.createTaskHandler = createTaskHandler;
|
|
42
|
+
const zod_1 = require("zod");
|
|
43
|
+
const projectsApi = __importStar(require("../../api/projects.js"));
|
|
44
|
+
const errors_js_1 = require("../../utils/errors.js");
|
|
45
|
+
const member_transform_js_1 = require("../../utils/member-transform.js");
|
|
46
|
+
const memberSchema = zod_1.z.object({
|
|
47
|
+
id: zod_1.z.string(),
|
|
48
|
+
type: zod_1.z.enum(['member', 'group', 'email']),
|
|
49
|
+
});
|
|
50
|
+
const bodySchema = zod_1.z.object({
|
|
51
|
+
mimeType: zod_1.z.enum(['text/x-markdown', 'text/html']),
|
|
52
|
+
content: zod_1.z.string(),
|
|
53
|
+
});
|
|
54
|
+
exports.createTaskSchema = zod_1.z.object({
|
|
55
|
+
projectId: zod_1.z.string().describe('Project ID where the task will be created'),
|
|
56
|
+
parentPostId: zod_1.z.string().optional().describe('Parent task ID to create this as a subtask'),
|
|
57
|
+
subject: zod_1.z.string().describe('Task subject/title'),
|
|
58
|
+
body: bodySchema.optional().describe('Task body content'),
|
|
59
|
+
assignees: zod_1.z.array(memberSchema).optional().describe('List of assignees'),
|
|
60
|
+
cc: zod_1.z.array(memberSchema).optional().describe('List of CC recipients'),
|
|
61
|
+
dueDate: zod_1.z.string().optional().describe('Due date (ISO 8601 format: YYYY-MM-DDTHH:mm:ssZ)'),
|
|
62
|
+
milestoneId: zod_1.z.string().optional().describe('Milestone ID'),
|
|
63
|
+
tagIds: zod_1.z.array(zod_1.z.string()).optional().describe('Array of tag IDs'),
|
|
64
|
+
priority: zod_1.z.enum(['highest', 'high', 'normal', 'low', 'lowest', 'none']).optional().describe('Task priority level'),
|
|
65
|
+
});
|
|
66
|
+
async function createTaskHandler(args) {
|
|
67
|
+
try {
|
|
68
|
+
const result = await projectsApi.createTask({
|
|
69
|
+
projectId: args.projectId,
|
|
70
|
+
parentPostId: args.parentPostId,
|
|
71
|
+
subject: args.subject,
|
|
72
|
+
body: args.body,
|
|
73
|
+
users: {
|
|
74
|
+
to: (0, member_transform_js_1.transformMembers)(args.assignees),
|
|
75
|
+
cc: (0, member_transform_js_1.transformMembers)(args.cc),
|
|
76
|
+
},
|
|
77
|
+
dueDate: args.dueDate,
|
|
78
|
+
milestoneId: args.milestoneId,
|
|
79
|
+
tagIds: args.tagIds,
|
|
80
|
+
priority: args.priority,
|
|
81
|
+
});
|
|
82
|
+
return {
|
|
83
|
+
content: [
|
|
84
|
+
{
|
|
85
|
+
type: 'text',
|
|
86
|
+
text: JSON.stringify(result, null, 2),
|
|
87
|
+
},
|
|
88
|
+
],
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
return {
|
|
93
|
+
content: [
|
|
94
|
+
{
|
|
95
|
+
type: 'text',
|
|
96
|
+
text: `Error: ${(0, errors_js_1.formatError)(error)}`,
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
isError: true,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.createTaskTool = {
|
|
104
|
+
name: 'create-task',
|
|
105
|
+
description: `Create a new task (업무) in a Dooray project. Required fields: projectId and subject.
|
|
106
|
+
|
|
107
|
+
**RECOMMENDED INTERACTIVE WORKFLOW** (ask user questions step by step):
|
|
108
|
+
|
|
109
|
+
1. **Templates**: Call get-project-template-list, ask user if they want to use a template
|
|
110
|
+
- If yes: Call get-project-template to get full details, use as defaults for subject/body/tags/assignees/cc/priority
|
|
111
|
+
- Extract tag IDs: template.tags.map(t => t.id)
|
|
112
|
+
- Transform members: template.users.to/cc to {id, type} format
|
|
113
|
+
|
|
114
|
+
2. **Title & Body**: Ask for task title (subject) and content (body)
|
|
115
|
+
- If template selected: Elaborate user's content to fit template structure
|
|
116
|
+
- If no template and no body provided: Ask user for body content before creating task
|
|
117
|
+
- Body format: {"mimeType": "text/x-markdown", "content": "..."}
|
|
118
|
+
|
|
119
|
+
3. **Assignees & CC**: Ask for "to" (담당자) and "cc" (참조)
|
|
120
|
+
- Get options: get-my-member-info (current user), get-project-member-list (members), get-project-member-group-list (groups)
|
|
121
|
+
- Member types: {"id": "...", "type": "member|group|email"}
|
|
122
|
+
- "member": organizationMemberId, "group": group id, "email": email address
|
|
123
|
+
|
|
124
|
+
4. **Tags**: Call get-tag-list, ask which tags to register
|
|
125
|
+
- **CRITICAL**: Check tagGroup.mandatory=true - MUST select from these groups or task creation fails (500 error)
|
|
126
|
+
- tagGroup.selectOne=true: Select exactly ONE tag from group
|
|
127
|
+
- tagGroup.selectOne=false: Select one or MORE tags from group
|
|
128
|
+
|
|
129
|
+
**Key Settings**:
|
|
130
|
+
- Priority: Default "none" if not specified
|
|
131
|
+
- Subtasks: Set parentPostId to create 하위업무
|
|
132
|
+
- URL extraction: "https://nhnent.dooray.com/task/PROJECT_ID" → extract PROJECT_ID
|
|
133
|
+
|
|
134
|
+
**Examples**:
|
|
135
|
+
- Simple: {"projectId": "123", "subject": "Fix bug", "tagIds": ["tag1"]}
|
|
136
|
+
- With template: {"projectId": "123", "subject": "[SMS] Issue", "body": {...}, "assignees": [{...}], "tagIds": ["tag1", "tag2"]}
|
|
137
|
+
- Full: {"projectId": "123", "subject": "Deploy", "assignees": [{"id": "user1", "type": "member"}], "cc": [{"id": "user2", "type": "member"}], "priority": "high", "tagIds": ["tag1"]}
|
|
138
|
+
|
|
139
|
+
Returns: Created task with ID and number.`,
|
|
140
|
+
inputSchema: {
|
|
141
|
+
type: 'object',
|
|
142
|
+
properties: {
|
|
143
|
+
projectId: {
|
|
144
|
+
type: 'string',
|
|
145
|
+
description: 'Project ID where the task will be created',
|
|
146
|
+
},
|
|
147
|
+
parentPostId: {
|
|
148
|
+
type: 'string',
|
|
149
|
+
description: 'Parent task ID to create this as a subtask (하위업무). Omit to create a regular task.',
|
|
150
|
+
},
|
|
151
|
+
subject: {
|
|
152
|
+
type: 'string',
|
|
153
|
+
description: 'Task subject/title (required)',
|
|
154
|
+
},
|
|
155
|
+
body: {
|
|
156
|
+
type: 'object',
|
|
157
|
+
properties: {
|
|
158
|
+
mimeType: {
|
|
159
|
+
type: 'string',
|
|
160
|
+
enum: ['text/x-markdown', 'text/html'],
|
|
161
|
+
description: 'Content format',
|
|
162
|
+
},
|
|
163
|
+
content: {
|
|
164
|
+
type: 'string',
|
|
165
|
+
description: 'Task body content',
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
required: ['mimeType', 'content'],
|
|
169
|
+
description: 'Task body with formatted content. IMPORTANT: If user has not provided body content and no template is selected, ask the user for task details/description before creating the task.',
|
|
170
|
+
},
|
|
171
|
+
assignees: {
|
|
172
|
+
type: 'array',
|
|
173
|
+
items: {
|
|
174
|
+
type: 'object',
|
|
175
|
+
properties: {
|
|
176
|
+
id: { type: 'string' },
|
|
177
|
+
type: { type: 'string', enum: ['member', 'group', 'email'] },
|
|
178
|
+
},
|
|
179
|
+
required: ['id', 'type'],
|
|
180
|
+
},
|
|
181
|
+
description: 'List of assignees (담당자). To get assignee options: (1) use get-my-member-info for current user, (2) use get-project-member-list for project members, (3) use get-project-member-group-list for member groups. Each assignee object has {id: string, type: "member"|"group"|"email"}.',
|
|
182
|
+
},
|
|
183
|
+
cc: {
|
|
184
|
+
type: 'array',
|
|
185
|
+
items: {
|
|
186
|
+
type: 'object',
|
|
187
|
+
properties: {
|
|
188
|
+
id: { type: 'string' },
|
|
189
|
+
type: { type: 'string', enum: ['member', 'group', 'email'] },
|
|
190
|
+
},
|
|
191
|
+
required: ['id', 'type'],
|
|
192
|
+
},
|
|
193
|
+
description: 'List of CC recipients (참조). To get CC options: (1) use get-my-member-info for current user, (2) use get-project-member-list for project members, (3) use get-project-member-group-list for member groups. Each CC object has {id: string, type: "member"|"group"|"email"}.',
|
|
194
|
+
},
|
|
195
|
+
dueDate: {
|
|
196
|
+
type: 'string',
|
|
197
|
+
description: 'Due date in ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ)',
|
|
198
|
+
},
|
|
199
|
+
milestoneId: {
|
|
200
|
+
type: 'string',
|
|
201
|
+
description: 'Milestone ID to associate with this task',
|
|
202
|
+
},
|
|
203
|
+
tagIds: {
|
|
204
|
+
type: 'array',
|
|
205
|
+
items: { type: 'string' },
|
|
206
|
+
description: 'Array of tag IDs to apply to this task. IMPORTANT: Check for mandatory tag groups using get-tag-list tool. Projects may require specific tags from mandatory tag groups.',
|
|
207
|
+
},
|
|
208
|
+
priority: {
|
|
209
|
+
type: 'string',
|
|
210
|
+
enum: ['highest', 'high', 'normal', 'low', 'lowest', 'none'],
|
|
211
|
+
description: 'Task priority level (highest, high, normal, low, lowest, none). Default: "none" if not specified by user.',
|
|
212
|
+
},
|
|
213
|
+
},
|
|
214
|
+
required: ['projectId', 'subject'],
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
//# sourceMappingURL=create-task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-task.js","sourceRoot":"","sources":["../../../src/tools/projects/create-task.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get Milestone List Tool
|
|
3
|
+
* Get list of milestones for a project
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
export declare const getMilestoneListSchema: z.ZodObject<{
|
|
7
|
+
projectId: z.ZodString;
|
|
8
|
+
status: z.ZodOptional<z.ZodEnum<["open", "closed"]>>;
|
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
|
10
|
+
projectId: string;
|
|
11
|
+
status?: "open" | "closed" | undefined;
|
|
12
|
+
}, {
|
|
13
|
+
projectId: string;
|
|
14
|
+
status?: "open" | "closed" | undefined;
|
|
15
|
+
}>;
|
|
16
|
+
export type GetMilestoneListInput = z.infer<typeof getMilestoneListSchema>;
|
|
17
|
+
export declare function getMilestoneListHandler(args: GetMilestoneListInput): Promise<{
|
|
18
|
+
content: {
|
|
19
|
+
type: string;
|
|
20
|
+
text: string;
|
|
21
|
+
}[];
|
|
22
|
+
isError?: undefined;
|
|
23
|
+
} | {
|
|
24
|
+
content: {
|
|
25
|
+
type: string;
|
|
26
|
+
text: string;
|
|
27
|
+
}[];
|
|
28
|
+
isError: boolean;
|
|
29
|
+
}>;
|
|
30
|
+
export declare const getMilestoneListTool: {
|
|
31
|
+
name: string;
|
|
32
|
+
description: string;
|
|
33
|
+
inputSchema: {
|
|
34
|
+
type: string;
|
|
35
|
+
properties: {
|
|
36
|
+
projectId: {
|
|
37
|
+
type: string;
|
|
38
|
+
description: string;
|
|
39
|
+
};
|
|
40
|
+
status: {
|
|
41
|
+
type: string;
|
|
42
|
+
enum: string[];
|
|
43
|
+
description: string;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
required: string[];
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=get-milestone-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-milestone-list.d.ts","sourceRoot":"","sources":["../../../src/tools/projects/get-milestone-list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,sBAAsB;;;;;;;;;EAGjC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE3E,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB;;;;;;;;;;;;GA6BxE;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;CAgChC,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Get Milestone List Tool
|
|
4
|
+
* Get list of milestones for a project
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.getMilestoneListTool = exports.getMilestoneListSchema = void 0;
|
|
41
|
+
exports.getMilestoneListHandler = getMilestoneListHandler;
|
|
42
|
+
const zod_1 = require("zod");
|
|
43
|
+
const projectsApi = __importStar(require("../../api/projects.js"));
|
|
44
|
+
const errors_js_1 = require("../../utils/errors.js");
|
|
45
|
+
const response_filters_js_1 = require("../../utils/response-filters.js");
|
|
46
|
+
exports.getMilestoneListSchema = zod_1.z.object({
|
|
47
|
+
projectId: zod_1.z.string().describe('Project ID'),
|
|
48
|
+
status: zod_1.z.enum(['open', 'closed']).optional().describe('Filter by milestone status'),
|
|
49
|
+
});
|
|
50
|
+
async function getMilestoneListHandler(args) {
|
|
51
|
+
try {
|
|
52
|
+
const result = await projectsApi.getMilestones({
|
|
53
|
+
projectId: args.projectId,
|
|
54
|
+
status: args.status,
|
|
55
|
+
});
|
|
56
|
+
// Filter to compact response to reduce token usage (result is Milestone[], not paginated)
|
|
57
|
+
const compactResult = result.map(response_filters_js_1.filterMilestoneForList);
|
|
58
|
+
return {
|
|
59
|
+
content: [
|
|
60
|
+
{
|
|
61
|
+
type: 'text',
|
|
62
|
+
text: JSON.stringify(compactResult, null, 2),
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
return {
|
|
69
|
+
content: [
|
|
70
|
+
{
|
|
71
|
+
type: 'text',
|
|
72
|
+
text: `Error: ${(0, errors_js_1.formatError)(error)}`,
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
isError: true,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.getMilestoneListTool = {
|
|
80
|
+
name: 'get-milestone-list',
|
|
81
|
+
description: `Get list of milestones for a project.
|
|
82
|
+
|
|
83
|
+
Milestones are used to organize and track tasks by release or sprint. This tool retrieves all milestones in a project.
|
|
84
|
+
|
|
85
|
+
**Note**: Returns compact response with essential fields only.
|
|
86
|
+
|
|
87
|
+
**URL Pattern Recognition**:
|
|
88
|
+
When given a Dooray URL like "https://nhnent.dooray.com/task/PROJECT_ID", extract the PROJECT_ID (the first numeric ID after "/task/") and use it as the projectId parameter.
|
|
89
|
+
|
|
90
|
+
Examples:
|
|
91
|
+
- Get all milestones: {"projectId": "123456"}
|
|
92
|
+
- Get only open milestones: {"projectId": "123456", "status": "open"}
|
|
93
|
+
- Get only closed milestones: {"projectId": "123456", "status": "closed"}
|
|
94
|
+
|
|
95
|
+
Returns an array of milestones with id, name, description, dates, and status. Use milestone IDs when creating or updating tasks.`,
|
|
96
|
+
inputSchema: {
|
|
97
|
+
type: 'object',
|
|
98
|
+
properties: {
|
|
99
|
+
projectId: {
|
|
100
|
+
type: 'string',
|
|
101
|
+
description: 'Project ID to get milestones from',
|
|
102
|
+
},
|
|
103
|
+
status: {
|
|
104
|
+
type: 'string',
|
|
105
|
+
enum: ['open', 'closed'],
|
|
106
|
+
description: 'Filter by milestone status (open or closed)',
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
required: ['projectId'],
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=get-milestone-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-milestone-list.js","sourceRoot":"","sources":["../../../src/tools/projects/get-milestone-list.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcH,0DA6BC;AAzCD,6BAAwB;AACxB,mEAAqD;AACrD,qDAAoD;AACpD,yEAAyE;AAE5D,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC5C,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;CACrF,CAAC,CAAC;AAII,KAAK,UAAU,uBAAuB,CAAC,IAA2B;IACvE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC;YAC7C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QAEH,0FAA0F;QAC1F,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,4CAAsB,CAAC,CAAC;QAEzD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC7C;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,UAAU,IAAA,uBAAW,EAAC,KAAK,CAAC,EAAE;iBACrC;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAEY,QAAA,oBAAoB,GAAG;IAClC,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE;;;;;;;;;;;;;;iIAckH;IAC/H,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mCAAmC;aACjD;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;gBACxB,WAAW,EAAE,6CAA6C;aAC3D;SACF;QACD,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB;CACF,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get Project List Tool
|
|
3
|
+
* Get list of projects accessible by the user
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
export declare const getProjectListSchema: z.ZodObject<{
|
|
7
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
8
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
|
10
|
+
page?: number | undefined;
|
|
11
|
+
size?: number | undefined;
|
|
12
|
+
}, {
|
|
13
|
+
page?: number | undefined;
|
|
14
|
+
size?: number | undefined;
|
|
15
|
+
}>;
|
|
16
|
+
export type GetProjectListInput = z.infer<typeof getProjectListSchema>;
|
|
17
|
+
export declare function getProjectListHandler(args: GetProjectListInput): Promise<{
|
|
18
|
+
content: {
|
|
19
|
+
type: string;
|
|
20
|
+
text: string;
|
|
21
|
+
}[];
|
|
22
|
+
isError?: undefined;
|
|
23
|
+
} | {
|
|
24
|
+
content: {
|
|
25
|
+
type: string;
|
|
26
|
+
text: string;
|
|
27
|
+
}[];
|
|
28
|
+
isError: boolean;
|
|
29
|
+
}>;
|
|
30
|
+
export declare const getProjectListTool: {
|
|
31
|
+
name: string;
|
|
32
|
+
description: string;
|
|
33
|
+
inputSchema: {
|
|
34
|
+
type: string;
|
|
35
|
+
properties: {
|
|
36
|
+
page: {
|
|
37
|
+
type: string;
|
|
38
|
+
description: string;
|
|
39
|
+
minimum: number;
|
|
40
|
+
};
|
|
41
|
+
size: {
|
|
42
|
+
type: string;
|
|
43
|
+
description: string;
|
|
44
|
+
minimum: number;
|
|
45
|
+
maximum: number;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=get-project-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-project-list.d.ts","sourceRoot":"","sources":["../../../src/tools/projects/get-project-list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB;;;;;;;;;;;;GA6BpE;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;CAiC9B,CAAC"}
|