@filcuk/planka-mcp 1.0.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/LICENSE +21 -0
- package/README.md +180 -0
- package/dist/client.d.ts +55 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +193 -0
- package/dist/client.js.map +1 -0
- package/dist/errors.d.ts +39 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +82 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +100 -0
- package/dist/index.js.map +1 -0
- package/dist/operations/boards.d.ts +39 -0
- package/dist/operations/boards.d.ts.map +1 -0
- package/dist/operations/boards.js +76 -0
- package/dist/operations/boards.js.map +1 -0
- package/dist/operations/cards.d.ts +35 -0
- package/dist/operations/cards.d.ts.map +1 -0
- package/dist/operations/cards.js +70 -0
- package/dist/operations/cards.js.map +1 -0
- package/dist/operations/comments.d.ts +20 -0
- package/dist/operations/comments.d.ts.map +1 -0
- package/dist/operations/comments.js +42 -0
- package/dist/operations/comments.js.map +1 -0
- package/dist/operations/labels.d.ts +32 -0
- package/dist/operations/labels.d.ts.map +1 -0
- package/dist/operations/labels.js +91 -0
- package/dist/operations/labels.js.map +1 -0
- package/dist/operations/lists.d.ts +15 -0
- package/dist/operations/lists.d.ts.map +1 -0
- package/dist/operations/lists.js +35 -0
- package/dist/operations/lists.js.map +1 -0
- package/dist/operations/projects.d.ts +23 -0
- package/dist/operations/projects.d.ts.map +1 -0
- package/dist/operations/projects.js +52 -0
- package/dist/operations/projects.js.map +1 -0
- package/dist/operations/tasks.d.ts +30 -0
- package/dist/operations/tasks.d.ts.map +1 -0
- package/dist/operations/tasks.js +102 -0
- package/dist/operations/tasks.js.map +1 -0
- package/dist/schemas/entities.d.ts +307 -0
- package/dist/schemas/entities.d.ts.map +1 -0
- package/dist/schemas/entities.js +168 -0
- package/dist/schemas/entities.js.map +1 -0
- package/dist/schemas/requests.d.ts +225 -0
- package/dist/schemas/requests.d.ts.map +1 -0
- package/dist/schemas/requests.js +87 -0
- package/dist/schemas/requests.js.map +1 -0
- package/dist/schemas/responses.d.ts +2161 -0
- package/dist/schemas/responses.d.ts.map +1 -0
- package/dist/schemas/responses.js +68 -0
- package/dist/schemas/responses.js.map +1 -0
- package/dist/tools/cards.d.ts +401 -0
- package/dist/tools/cards.d.ts.map +1 -0
- package/dist/tools/cards.js +367 -0
- package/dist/tools/cards.js.map +1 -0
- package/dist/tools/comments.d.ts +134 -0
- package/dist/tools/comments.d.ts.map +1 -0
- package/dist/tools/comments.js +109 -0
- package/dist/tools/comments.js.map +1 -0
- package/dist/tools/index.d.ts +790 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +44 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/labels.d.ts +198 -0
- package/dist/tools/labels.d.ts.map +1 -0
- package/dist/tools/labels.js +265 -0
- package/dist/tools/labels.js.map +1 -0
- package/dist/tools/lists.d.ts +117 -0
- package/dist/tools/lists.d.ts.map +1 -0
- package/dist/tools/lists.js +178 -0
- package/dist/tools/lists.js.map +1 -0
- package/dist/tools/navigation.d.ts +106 -0
- package/dist/tools/navigation.d.ts.map +1 -0
- package/dist/tools/navigation.js +151 -0
- package/dist/tools/navigation.js.map +1 -0
- package/dist/tools/tasks.d.ts +223 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +169 -0
- package/dist/tools/tasks.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List tools for PLANKA MCP server.
|
|
3
|
+
*/
|
|
4
|
+
import { createList, updateList, deleteList, } from "../operations/lists.js";
|
|
5
|
+
import { PlankaError } from "../errors.js";
|
|
6
|
+
/**
|
|
7
|
+
* Tool: planka_manage_lists
|
|
8
|
+
* Create, update, or delete lists on a board.
|
|
9
|
+
*/
|
|
10
|
+
export const manageListsTool = {
|
|
11
|
+
name: "planka_manage_lists",
|
|
12
|
+
description: "Create, update, or delete lists on a board.",
|
|
13
|
+
inputSchema: {
|
|
14
|
+
type: "object",
|
|
15
|
+
properties: {
|
|
16
|
+
action: {
|
|
17
|
+
type: "string",
|
|
18
|
+
enum: ["create", "update", "delete"],
|
|
19
|
+
description: "Action to perform",
|
|
20
|
+
},
|
|
21
|
+
boardId: {
|
|
22
|
+
type: "string",
|
|
23
|
+
description: "Board ID (required for create)",
|
|
24
|
+
},
|
|
25
|
+
listId: {
|
|
26
|
+
type: "string",
|
|
27
|
+
description: "List ID (required for update/delete)",
|
|
28
|
+
},
|
|
29
|
+
name: {
|
|
30
|
+
type: "string",
|
|
31
|
+
description: "List name",
|
|
32
|
+
},
|
|
33
|
+
position: {
|
|
34
|
+
type: "number",
|
|
35
|
+
description: "List position",
|
|
36
|
+
},
|
|
37
|
+
type: {
|
|
38
|
+
type: "string",
|
|
39
|
+
enum: ["active", "closed", "archive", "trash"],
|
|
40
|
+
description: "List type (defaults to active for normal kanban columns)",
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
required: ["action"],
|
|
44
|
+
},
|
|
45
|
+
handler: async (params) => {
|
|
46
|
+
try {
|
|
47
|
+
switch (params.action) {
|
|
48
|
+
case "create": {
|
|
49
|
+
if (!params.boardId) {
|
|
50
|
+
return {
|
|
51
|
+
content: [
|
|
52
|
+
{
|
|
53
|
+
type: "text",
|
|
54
|
+
text: "Error: boardId is required for create action",
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
isError: true,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
if (!params.name) {
|
|
61
|
+
return {
|
|
62
|
+
content: [
|
|
63
|
+
{
|
|
64
|
+
type: "text",
|
|
65
|
+
text: "Error: name is required for create action",
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
isError: true,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
const list = await createList({
|
|
72
|
+
boardId: params.boardId,
|
|
73
|
+
name: params.name,
|
|
74
|
+
type: params.type,
|
|
75
|
+
position: params.position,
|
|
76
|
+
});
|
|
77
|
+
return {
|
|
78
|
+
content: [
|
|
79
|
+
{
|
|
80
|
+
type: "text",
|
|
81
|
+
text: JSON.stringify({
|
|
82
|
+
success: true,
|
|
83
|
+
list: {
|
|
84
|
+
id: list.id,
|
|
85
|
+
name: list.name,
|
|
86
|
+
type: list.type,
|
|
87
|
+
position: list.position,
|
|
88
|
+
},
|
|
89
|
+
}, null, 2),
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
case "update": {
|
|
95
|
+
if (!params.listId) {
|
|
96
|
+
return {
|
|
97
|
+
content: [
|
|
98
|
+
{
|
|
99
|
+
type: "text",
|
|
100
|
+
text: "Error: listId is required for update action",
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
isError: true,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
const updates = {};
|
|
107
|
+
if (params.name !== undefined)
|
|
108
|
+
updates.name = params.name;
|
|
109
|
+
if (params.position !== undefined)
|
|
110
|
+
updates.position = params.position;
|
|
111
|
+
const list = await updateList(params.listId, updates);
|
|
112
|
+
return {
|
|
113
|
+
content: [
|
|
114
|
+
{
|
|
115
|
+
type: "text",
|
|
116
|
+
text: JSON.stringify({
|
|
117
|
+
success: true,
|
|
118
|
+
list: {
|
|
119
|
+
id: list.id,
|
|
120
|
+
name: list.name,
|
|
121
|
+
type: list.type,
|
|
122
|
+
position: list.position,
|
|
123
|
+
},
|
|
124
|
+
}, null, 2),
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
case "delete": {
|
|
130
|
+
if (!params.listId) {
|
|
131
|
+
return {
|
|
132
|
+
content: [
|
|
133
|
+
{
|
|
134
|
+
type: "text",
|
|
135
|
+
text: "Error: listId is required for delete action",
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
isError: true,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
await deleteList(params.listId);
|
|
142
|
+
return {
|
|
143
|
+
content: [
|
|
144
|
+
{
|
|
145
|
+
type: "text",
|
|
146
|
+
text: JSON.stringify({
|
|
147
|
+
success: true,
|
|
148
|
+
message: `List ${params.listId} deleted`,
|
|
149
|
+
}, null, 2),
|
|
150
|
+
},
|
|
151
|
+
],
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
default:
|
|
155
|
+
return {
|
|
156
|
+
content: [
|
|
157
|
+
{
|
|
158
|
+
type: "text",
|
|
159
|
+
text: `Error: Unknown action '${params.action}'`,
|
|
160
|
+
},
|
|
161
|
+
],
|
|
162
|
+
isError: true,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
if (error instanceof PlankaError) {
|
|
168
|
+
return {
|
|
169
|
+
content: [{ type: "text", text: `Error: ${error.message}` }],
|
|
170
|
+
isError: true,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
throw error;
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
export const listTools = [manageListsTool];
|
|
178
|
+
//# sourceMappingURL=lists.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lists.js","sourceRoot":"","sources":["../../src/tools/lists.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool: planka_get_structure
|
|
3
|
+
* Get the full project/board/list hierarchy.
|
|
4
|
+
*/
|
|
5
|
+
export declare const getStructureTool: {
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
inputSchema: {
|
|
9
|
+
type: "object";
|
|
10
|
+
properties: {
|
|
11
|
+
projectId: {
|
|
12
|
+
type: string;
|
|
13
|
+
description: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
handler: (params: {
|
|
18
|
+
projectId?: string;
|
|
19
|
+
}) => Promise<{
|
|
20
|
+
content: {
|
|
21
|
+
type: "text";
|
|
22
|
+
text: string;
|
|
23
|
+
}[];
|
|
24
|
+
}>;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Tool: planka_get_board
|
|
28
|
+
* Get a board with all its lists, cards, and labels.
|
|
29
|
+
*/
|
|
30
|
+
export declare const getBoardTool: {
|
|
31
|
+
name: string;
|
|
32
|
+
description: string;
|
|
33
|
+
inputSchema: {
|
|
34
|
+
type: "object";
|
|
35
|
+
properties: {
|
|
36
|
+
boardId: {
|
|
37
|
+
type: string;
|
|
38
|
+
description: string;
|
|
39
|
+
};
|
|
40
|
+
includeTaskCounts: {
|
|
41
|
+
type: string;
|
|
42
|
+
description: string;
|
|
43
|
+
default: boolean;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
required: string[];
|
|
47
|
+
};
|
|
48
|
+
handler: (params: {
|
|
49
|
+
boardId: string;
|
|
50
|
+
includeTaskCounts?: boolean;
|
|
51
|
+
}) => Promise<{
|
|
52
|
+
content: {
|
|
53
|
+
type: "text";
|
|
54
|
+
text: string;
|
|
55
|
+
}[];
|
|
56
|
+
}>;
|
|
57
|
+
};
|
|
58
|
+
export declare const navigationTools: ({
|
|
59
|
+
name: string;
|
|
60
|
+
description: string;
|
|
61
|
+
inputSchema: {
|
|
62
|
+
type: "object";
|
|
63
|
+
properties: {
|
|
64
|
+
projectId: {
|
|
65
|
+
type: string;
|
|
66
|
+
description: string;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
handler: (params: {
|
|
71
|
+
projectId?: string;
|
|
72
|
+
}) => Promise<{
|
|
73
|
+
content: {
|
|
74
|
+
type: "text";
|
|
75
|
+
text: string;
|
|
76
|
+
}[];
|
|
77
|
+
}>;
|
|
78
|
+
} | {
|
|
79
|
+
name: string;
|
|
80
|
+
description: string;
|
|
81
|
+
inputSchema: {
|
|
82
|
+
type: "object";
|
|
83
|
+
properties: {
|
|
84
|
+
boardId: {
|
|
85
|
+
type: string;
|
|
86
|
+
description: string;
|
|
87
|
+
};
|
|
88
|
+
includeTaskCounts: {
|
|
89
|
+
type: string;
|
|
90
|
+
description: string;
|
|
91
|
+
default: boolean;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
required: string[];
|
|
95
|
+
};
|
|
96
|
+
handler: (params: {
|
|
97
|
+
boardId: string;
|
|
98
|
+
includeTaskCounts?: boolean;
|
|
99
|
+
}) => Promise<{
|
|
100
|
+
content: {
|
|
101
|
+
type: "text";
|
|
102
|
+
text: string;
|
|
103
|
+
}[];
|
|
104
|
+
}>;
|
|
105
|
+
})[];
|
|
106
|
+
//# sourceMappingURL=navigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/tools/navigation.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;sBAaH;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;CA8B/C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;sBAmBC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE;;;;;;CAyFzE,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;sBAlJF;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;sBAuDtB;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE;;;;;;IA2FX,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Navigation tools for PLANKA MCP server.
|
|
3
|
+
*/
|
|
4
|
+
import { getStructure } from "../operations/projects.js";
|
|
5
|
+
import { getBoardWithTaskCounts } from "../operations/boards.js";
|
|
6
|
+
/**
|
|
7
|
+
* Tool: planka_get_structure
|
|
8
|
+
* Get the full project/board/list hierarchy.
|
|
9
|
+
*/
|
|
10
|
+
export const getStructureTool = {
|
|
11
|
+
name: "planka_get_structure",
|
|
12
|
+
description: "Get the full project/board/list structure. Use this to understand what projects and boards exist before working with cards.",
|
|
13
|
+
inputSchema: {
|
|
14
|
+
type: "object",
|
|
15
|
+
properties: {
|
|
16
|
+
projectId: {
|
|
17
|
+
type: "string",
|
|
18
|
+
description: "Optional: Get structure for a specific project only",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
handler: async (params) => {
|
|
23
|
+
const structure = await getStructure(params.projectId);
|
|
24
|
+
// Format for readability
|
|
25
|
+
const formatted = structure.map((project) => ({
|
|
26
|
+
project: {
|
|
27
|
+
id: project.project.id,
|
|
28
|
+
name: project.project.name,
|
|
29
|
+
},
|
|
30
|
+
boards: project.boards.map((b) => ({
|
|
31
|
+
id: b.board.id,
|
|
32
|
+
name: b.board.name,
|
|
33
|
+
lists: b.lists
|
|
34
|
+
.filter((l) => l.name !== null) // Filter out archive/trash
|
|
35
|
+
.map((l) => ({
|
|
36
|
+
id: l.id,
|
|
37
|
+
name: l.name,
|
|
38
|
+
})),
|
|
39
|
+
})),
|
|
40
|
+
}));
|
|
41
|
+
return {
|
|
42
|
+
content: [
|
|
43
|
+
{
|
|
44
|
+
type: "text",
|
|
45
|
+
text: JSON.stringify(formatted, null, 2),
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
};
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Tool: planka_get_board
|
|
53
|
+
* Get a board with all its lists, cards, and labels.
|
|
54
|
+
*/
|
|
55
|
+
export const getBoardTool = {
|
|
56
|
+
name: "planka_get_board",
|
|
57
|
+
description: "Get a board with all its lists, cards, and labels. Use this to see everything on a board.",
|
|
58
|
+
inputSchema: {
|
|
59
|
+
type: "object",
|
|
60
|
+
properties: {
|
|
61
|
+
boardId: {
|
|
62
|
+
type: "string",
|
|
63
|
+
description: "The board ID",
|
|
64
|
+
},
|
|
65
|
+
includeTaskCounts: {
|
|
66
|
+
type: "boolean",
|
|
67
|
+
description: "Include task completion counts for each card",
|
|
68
|
+
default: true,
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
required: ["boardId"],
|
|
72
|
+
},
|
|
73
|
+
handler: async (params) => {
|
|
74
|
+
const details = await getBoardWithTaskCounts(params.boardId);
|
|
75
|
+
// Group cards by list for readability
|
|
76
|
+
const cardsByList = new Map();
|
|
77
|
+
for (const card of details.cards) {
|
|
78
|
+
const listCards = cardsByList.get(card.listId) || [];
|
|
79
|
+
listCards.push(card);
|
|
80
|
+
cardsByList.set(card.listId, listCards);
|
|
81
|
+
}
|
|
82
|
+
// Build label lookup
|
|
83
|
+
const labelById = new Map(details.labels.map((l) => [l.id, l]));
|
|
84
|
+
// Build card-label lookup
|
|
85
|
+
const labelsByCard = new Map();
|
|
86
|
+
for (const cl of details.cardLabels) {
|
|
87
|
+
const labels = labelsByCard.get(cl.cardId) || [];
|
|
88
|
+
const label = labelById.get(cl.labelId);
|
|
89
|
+
if (label) {
|
|
90
|
+
labels.push(label.name || label.color);
|
|
91
|
+
}
|
|
92
|
+
labelsByCard.set(cl.cardId, labels);
|
|
93
|
+
}
|
|
94
|
+
const formatted = {
|
|
95
|
+
board: {
|
|
96
|
+
id: details.board.id,
|
|
97
|
+
name: details.board.name,
|
|
98
|
+
},
|
|
99
|
+
labels: details.labels.map((l) => ({
|
|
100
|
+
id: l.id,
|
|
101
|
+
name: l.name,
|
|
102
|
+
color: l.color,
|
|
103
|
+
})),
|
|
104
|
+
lists: details.lists
|
|
105
|
+
.filter((l) => l.name !== null) // Filter archive/trash
|
|
106
|
+
.map((list) => {
|
|
107
|
+
const listCards = (cardsByList.get(list.id) || []).sort((a, b) => a.position - b.position);
|
|
108
|
+
return {
|
|
109
|
+
id: list.id,
|
|
110
|
+
name: list.name,
|
|
111
|
+
cards: listCards.map((card) => {
|
|
112
|
+
const cardData = {
|
|
113
|
+
id: card.id,
|
|
114
|
+
name: card.name,
|
|
115
|
+
};
|
|
116
|
+
if (card.description) {
|
|
117
|
+
cardData.description =
|
|
118
|
+
card.description.length > 100
|
|
119
|
+
? card.description.substring(0, 100) + "..."
|
|
120
|
+
: card.description;
|
|
121
|
+
}
|
|
122
|
+
if (card.dueDate) {
|
|
123
|
+
cardData.dueDate = card.dueDate;
|
|
124
|
+
}
|
|
125
|
+
if (card.isCompleted) {
|
|
126
|
+
cardData.isCompleted = card.isCompleted;
|
|
127
|
+
}
|
|
128
|
+
const cardLabels = labelsByCard.get(card.id);
|
|
129
|
+
if (cardLabels && cardLabels.length > 0) {
|
|
130
|
+
cardData.labels = cardLabels;
|
|
131
|
+
}
|
|
132
|
+
if (params.includeTaskCounts !== false && card.taskCount > 0) {
|
|
133
|
+
cardData.tasks = `${card.completedTaskCount}/${card.taskCount}`;
|
|
134
|
+
}
|
|
135
|
+
return cardData;
|
|
136
|
+
}),
|
|
137
|
+
};
|
|
138
|
+
}),
|
|
139
|
+
};
|
|
140
|
+
return {
|
|
141
|
+
content: [
|
|
142
|
+
{
|
|
143
|
+
type: "text",
|
|
144
|
+
text: JSON.stringify(formatted, null, 2),
|
|
145
|
+
},
|
|
146
|
+
],
|
|
147
|
+
};
|
|
148
|
+
},
|
|
149
|
+
};
|
|
150
|
+
export const navigationTools = [getStructureTool, getBoardTool];
|
|
151
|
+
//# sourceMappingURL=navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/tools/navigation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool: planka_create_tasks
|
|
3
|
+
* Add one or more tasks (checklist items) to a card.
|
|
4
|
+
*/
|
|
5
|
+
export declare const createTasksTool: {
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
inputSchema: {
|
|
9
|
+
type: "object";
|
|
10
|
+
properties: {
|
|
11
|
+
cardId: {
|
|
12
|
+
type: string;
|
|
13
|
+
description: string;
|
|
14
|
+
};
|
|
15
|
+
tasks: {
|
|
16
|
+
type: string;
|
|
17
|
+
items: {
|
|
18
|
+
type: string;
|
|
19
|
+
};
|
|
20
|
+
minItems: number;
|
|
21
|
+
description: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
required: string[];
|
|
25
|
+
};
|
|
26
|
+
handler: (params: {
|
|
27
|
+
cardId: string;
|
|
28
|
+
tasks: string[];
|
|
29
|
+
}) => Promise<{
|
|
30
|
+
content: {
|
|
31
|
+
type: "text";
|
|
32
|
+
text: string;
|
|
33
|
+
}[];
|
|
34
|
+
isError?: undefined;
|
|
35
|
+
} | {
|
|
36
|
+
content: {
|
|
37
|
+
type: "text";
|
|
38
|
+
text: string;
|
|
39
|
+
}[];
|
|
40
|
+
isError: boolean;
|
|
41
|
+
}>;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Tool: planka_update_task
|
|
45
|
+
* Update a task's name or completion status.
|
|
46
|
+
*/
|
|
47
|
+
export declare const updateTaskTool: {
|
|
48
|
+
name: string;
|
|
49
|
+
description: string;
|
|
50
|
+
inputSchema: {
|
|
51
|
+
type: "object";
|
|
52
|
+
properties: {
|
|
53
|
+
taskId: {
|
|
54
|
+
type: string;
|
|
55
|
+
description: string;
|
|
56
|
+
};
|
|
57
|
+
name: {
|
|
58
|
+
type: string;
|
|
59
|
+
description: string;
|
|
60
|
+
};
|
|
61
|
+
isCompleted: {
|
|
62
|
+
type: string;
|
|
63
|
+
description: string;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
required: string[];
|
|
67
|
+
};
|
|
68
|
+
handler: (params: {
|
|
69
|
+
taskId: string;
|
|
70
|
+
name?: string;
|
|
71
|
+
isCompleted?: boolean;
|
|
72
|
+
}) => Promise<{
|
|
73
|
+
content: {
|
|
74
|
+
type: "text";
|
|
75
|
+
text: string;
|
|
76
|
+
}[];
|
|
77
|
+
isError?: undefined;
|
|
78
|
+
} | {
|
|
79
|
+
content: {
|
|
80
|
+
type: "text";
|
|
81
|
+
text: string;
|
|
82
|
+
}[];
|
|
83
|
+
isError: boolean;
|
|
84
|
+
}>;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Tool: planka_delete_task
|
|
88
|
+
* Delete a task from a card.
|
|
89
|
+
*/
|
|
90
|
+
export declare const deleteTaskTool: {
|
|
91
|
+
name: string;
|
|
92
|
+
description: string;
|
|
93
|
+
inputSchema: {
|
|
94
|
+
type: "object";
|
|
95
|
+
properties: {
|
|
96
|
+
taskId: {
|
|
97
|
+
type: string;
|
|
98
|
+
description: string;
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
required: string[];
|
|
102
|
+
};
|
|
103
|
+
handler: (params: {
|
|
104
|
+
taskId: string;
|
|
105
|
+
}) => Promise<{
|
|
106
|
+
content: {
|
|
107
|
+
type: "text";
|
|
108
|
+
text: string;
|
|
109
|
+
}[];
|
|
110
|
+
isError?: undefined;
|
|
111
|
+
} | {
|
|
112
|
+
content: {
|
|
113
|
+
type: "text";
|
|
114
|
+
text: string;
|
|
115
|
+
}[];
|
|
116
|
+
isError: boolean;
|
|
117
|
+
}>;
|
|
118
|
+
};
|
|
119
|
+
export declare const taskTools: ({
|
|
120
|
+
name: string;
|
|
121
|
+
description: string;
|
|
122
|
+
inputSchema: {
|
|
123
|
+
type: "object";
|
|
124
|
+
properties: {
|
|
125
|
+
cardId: {
|
|
126
|
+
type: string;
|
|
127
|
+
description: string;
|
|
128
|
+
};
|
|
129
|
+
tasks: {
|
|
130
|
+
type: string;
|
|
131
|
+
items: {
|
|
132
|
+
type: string;
|
|
133
|
+
};
|
|
134
|
+
minItems: number;
|
|
135
|
+
description: string;
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
required: string[];
|
|
139
|
+
};
|
|
140
|
+
handler: (params: {
|
|
141
|
+
cardId: string;
|
|
142
|
+
tasks: string[];
|
|
143
|
+
}) => Promise<{
|
|
144
|
+
content: {
|
|
145
|
+
type: "text";
|
|
146
|
+
text: string;
|
|
147
|
+
}[];
|
|
148
|
+
isError?: undefined;
|
|
149
|
+
} | {
|
|
150
|
+
content: {
|
|
151
|
+
type: "text";
|
|
152
|
+
text: string;
|
|
153
|
+
}[];
|
|
154
|
+
isError: boolean;
|
|
155
|
+
}>;
|
|
156
|
+
} | {
|
|
157
|
+
name: string;
|
|
158
|
+
description: string;
|
|
159
|
+
inputSchema: {
|
|
160
|
+
type: "object";
|
|
161
|
+
properties: {
|
|
162
|
+
taskId: {
|
|
163
|
+
type: string;
|
|
164
|
+
description: string;
|
|
165
|
+
};
|
|
166
|
+
name: {
|
|
167
|
+
type: string;
|
|
168
|
+
description: string;
|
|
169
|
+
};
|
|
170
|
+
isCompleted: {
|
|
171
|
+
type: string;
|
|
172
|
+
description: string;
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
required: string[];
|
|
176
|
+
};
|
|
177
|
+
handler: (params: {
|
|
178
|
+
taskId: string;
|
|
179
|
+
name?: string;
|
|
180
|
+
isCompleted?: boolean;
|
|
181
|
+
}) => Promise<{
|
|
182
|
+
content: {
|
|
183
|
+
type: "text";
|
|
184
|
+
text: string;
|
|
185
|
+
}[];
|
|
186
|
+
isError?: undefined;
|
|
187
|
+
} | {
|
|
188
|
+
content: {
|
|
189
|
+
type: "text";
|
|
190
|
+
text: string;
|
|
191
|
+
}[];
|
|
192
|
+
isError: boolean;
|
|
193
|
+
}>;
|
|
194
|
+
} | {
|
|
195
|
+
name: string;
|
|
196
|
+
description: string;
|
|
197
|
+
inputSchema: {
|
|
198
|
+
type: "object";
|
|
199
|
+
properties: {
|
|
200
|
+
taskId: {
|
|
201
|
+
type: string;
|
|
202
|
+
description: string;
|
|
203
|
+
};
|
|
204
|
+
};
|
|
205
|
+
required: string[];
|
|
206
|
+
};
|
|
207
|
+
handler: (params: {
|
|
208
|
+
taskId: string;
|
|
209
|
+
}) => Promise<{
|
|
210
|
+
content: {
|
|
211
|
+
type: "text";
|
|
212
|
+
text: string;
|
|
213
|
+
}[];
|
|
214
|
+
isError?: undefined;
|
|
215
|
+
} | {
|
|
216
|
+
content: {
|
|
217
|
+
type: "text";
|
|
218
|
+
text: string;
|
|
219
|
+
}[];
|
|
220
|
+
isError: boolean;
|
|
221
|
+
}>;
|
|
222
|
+
})[];
|
|
223
|
+
//# sourceMappingURL=tasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/tools/tasks.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;sBAmBF;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE;;;;;;;;;;;;;CAqC5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;sBAqBD;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB;;;;;;;;;;;;;CAyCF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;sBAaD;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;CA6B3C,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;sBA/JI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAgEnC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB;;;;;;;;;;;;;;;;;;;;;;;;;;sBA4DuB;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;IA+B8B,CAAC"}
|