@omnicoreos/planka-mcp 0.2.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/CHANGELOG.md +86 -0
- package/CONTRIBUTING.md +37 -0
- package/CREDITS.md +39 -0
- package/LICENSE +22 -0
- package/README.es.md +213 -0
- package/README.md +213 -0
- package/dist/client.d.ts +96 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +281 -0
- package/dist/client.js.map +1 -0
- package/dist/errors.d.ts +85 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +226 -0
- package/dist/errors.js.map +1 -0
- package/dist/identity.generated.d.ts +3 -0
- package/dist/identity.generated.d.ts.map +1 -0
- package/dist/identity.generated.js +4 -0
- package/dist/identity.generated.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +93 -0
- package/dist/index.js.map +1 -0
- package/dist/operations/attachments.d.ts +34 -0
- package/dist/operations/attachments.d.ts.map +1 -0
- package/dist/operations/attachments.js +89 -0
- package/dist/operations/attachments.js.map +1 -0
- package/dist/operations/board-id.d.ts +9 -0
- package/dist/operations/board-id.d.ts.map +1 -0
- package/dist/operations/board-id.js +86 -0
- package/dist/operations/board-id.js.map +1 -0
- package/dist/operations/boards.d.ts +143 -0
- package/dist/operations/boards.d.ts.map +1 -0
- package/dist/operations/boards.js +391 -0
- package/dist/operations/boards.js.map +1 -0
- package/dist/operations/cards.d.ts +36 -0
- package/dist/operations/cards.d.ts.map +1 -0
- package/dist/operations/cards.js +81 -0
- package/dist/operations/cards.js.map +1 -0
- package/dist/operations/comments.d.ts +28 -0
- package/dist/operations/comments.d.ts.map +1 -0
- package/dist/operations/comments.js +53 -0
- package/dist/operations/comments.js.map +1 -0
- package/dist/operations/labels.d.ts +60 -0
- package/dist/operations/labels.d.ts.map +1 -0
- package/dist/operations/labels.js +146 -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 +40 -0
- package/dist/operations/lists.js.map +1 -0
- package/dist/operations/projects.d.ts +24 -0
- package/dist/operations/projects.d.ts.map +1 -0
- package/dist/operations/projects.js +61 -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 +111 -0
- package/dist/operations/tasks.js.map +1 -0
- package/dist/schemas/entities.d.ts +389 -0
- package/dist/schemas/entities.d.ts.map +1 -0
- package/dist/schemas/entities.js +202 -0
- package/dist/schemas/entities.js.map +1 -0
- package/dist/schemas/requests.d.ts +539 -0
- package/dist/schemas/requests.d.ts.map +1 -0
- package/dist/schemas/requests.js +187 -0
- package/dist/schemas/requests.js.map +1 -0
- package/dist/schemas/responses.d.ts +2626 -0
- package/dist/schemas/responses.d.ts.map +1 -0
- package/dist/schemas/responses.js +75 -0
- package/dist/schemas/responses.js.map +1 -0
- package/dist/tools/attachments.d.ts +270 -0
- package/dist/tools/attachments.d.ts.map +1 -0
- package/dist/tools/attachments.js +247 -0
- package/dist/tools/attachments.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 +368 -0
- package/dist/tools/cards.js.map +1 -0
- package/dist/tools/comments.d.ts +217 -0
- package/dist/tools/comments.d.ts.map +1 -0
- package/dist/tools/comments.js +208 -0
- package/dist/tools/comments.js.map +1 -0
- package/dist/tools/index.d.ts +1293 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +62 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/labels.d.ts +214 -0
- package/dist/tools/labels.d.ts.map +1 -0
- package/dist/tools/labels.js +302 -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/queries.d.ts +380 -0
- package/dist/tools/queries.d.ts.map +1 -0
- package/dist/tools/queries.js +256 -0
- package/dist/tools/queries.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/docs/planka-2x-gotchas.md +192 -0
- package/docs/tools.md +659 -0
- package/docs/troubleshooting.md +138 -0
- package/package.json +71 -0
- package/project.identity.json +7 -0
- package/scripts/bootstrap-board.mjs +160 -0
- package/scripts/lib/planka-api.mjs +244 -0
- package/scripts/lib/workflow-template.mjs +26 -0
- package/scripts/setup.mjs +236 -0
- package/scripts/setup.sh +48 -0
- package/scripts/sync-identity.mjs +57 -0
- package/server.json +43 -0
- package/tests/smoke/planka-smoke.mjs +920 -0
- package/workflow/README.md +232 -0
- package/workflow/board-template.md +115 -0
- package/workflow/skills/planka-close-card/SKILL.md +81 -0
- package/workflow/skills/planka-orchestrator/SKILL.md +126 -0
- package/workflow/worktrees/README.md +104 -0
- package/workflow/worktrees/wt.conf.example +24 -0
- package/workflow/worktrees/wt.sh +345 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input schemas for PLANKA API operations.
|
|
3
|
+
*
|
|
4
|
+
* Every operation takes ONE object and validates it here, identifiers
|
|
5
|
+
* included. Field names match the MCP tools' inputSchema (`cardId`, `listId`,
|
|
6
|
+
* `boardId`, …) so a Zod error path points straight at the argument the model
|
|
7
|
+
* sent.
|
|
8
|
+
*/
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
import { CardTypeSchema, LabelColorSchema, ListTypeSchema } from "./entities.js";
|
|
11
|
+
/** Required identifier; the field name travels inside the error message. */
|
|
12
|
+
const requiredId = (field) => z.string().min(1, `${field} is required and cannot be empty`);
|
|
13
|
+
// Identifier-only inputs (get / delete / list by parent)
|
|
14
|
+
export const CardIdSchema = z.object({ cardId: requiredId("cardId") });
|
|
15
|
+
export const BoardIdSchema = z.object({ boardId: requiredId("boardId") });
|
|
16
|
+
export const ListIdSchema = z.object({ listId: requiredId("listId") });
|
|
17
|
+
export const LabelIdSchema = z.object({ labelId: requiredId("labelId") });
|
|
18
|
+
export const CommentIdSchema = z.object({ commentId: requiredId("commentId") });
|
|
19
|
+
export const TaskIdSchema = z.object({ taskId: requiredId("taskId") });
|
|
20
|
+
export const TaskListIdSchema = z.object({
|
|
21
|
+
taskListId: requiredId("taskListId"),
|
|
22
|
+
});
|
|
23
|
+
export const AttachmentIdSchema = z.object({
|
|
24
|
+
attachmentId: requiredId("attachmentId"),
|
|
25
|
+
});
|
|
26
|
+
// Card requests
|
|
27
|
+
export const CreateCardSchema = z.object({
|
|
28
|
+
listId: z.string(),
|
|
29
|
+
name: z.string().min(1, "Card name required"),
|
|
30
|
+
description: z.string().optional(),
|
|
31
|
+
position: z.number().optional().default(65536),
|
|
32
|
+
type: CardTypeSchema.optional().default("project"), // Required for PLANKA 2.0
|
|
33
|
+
dueDate: z.string().optional(),
|
|
34
|
+
});
|
|
35
|
+
export const UpdateCardSchema = z.object({
|
|
36
|
+
name: z.string().min(1).optional(),
|
|
37
|
+
description: z.string().nullable().optional(),
|
|
38
|
+
dueDate: z.string().nullable().optional(),
|
|
39
|
+
isCompleted: z.boolean().optional(),
|
|
40
|
+
listId: z.string().optional(), // For moving cards
|
|
41
|
+
boardId: z.string().optional(), // For moving across boards
|
|
42
|
+
position: z.number().optional(),
|
|
43
|
+
});
|
|
44
|
+
export const UpdateCardParamsSchema = UpdateCardSchema.extend({
|
|
45
|
+
cardId: requiredId("cardId"),
|
|
46
|
+
});
|
|
47
|
+
export const MoveCardSchema = z.object({
|
|
48
|
+
cardId: z.string(),
|
|
49
|
+
listId: z.string(),
|
|
50
|
+
position: z.number().optional().default(65536),
|
|
51
|
+
boardId: z.string().optional(),
|
|
52
|
+
});
|
|
53
|
+
// Task requests
|
|
54
|
+
export const CreateTaskSchema = z.object({
|
|
55
|
+
cardId: z.string(),
|
|
56
|
+
name: z.string().min(1, "Task name required"),
|
|
57
|
+
position: z.number().optional().default(65536),
|
|
58
|
+
});
|
|
59
|
+
export const UpdateTaskSchema = z.object({
|
|
60
|
+
name: z.string().min(1).optional(),
|
|
61
|
+
isCompleted: z.boolean().optional(),
|
|
62
|
+
position: z.number().optional(),
|
|
63
|
+
});
|
|
64
|
+
export const UpdateTaskParamsSchema = UpdateTaskSchema.extend({
|
|
65
|
+
taskId: requiredId("taskId"),
|
|
66
|
+
});
|
|
67
|
+
export const BatchCreateTasksSchema = z.object({
|
|
68
|
+
cardId: z.string(),
|
|
69
|
+
tasks: z.array(z.object({
|
|
70
|
+
name: z.string().min(1),
|
|
71
|
+
position: z.number().optional(),
|
|
72
|
+
})),
|
|
73
|
+
});
|
|
74
|
+
export const CreateTaskListSchema = z.object({
|
|
75
|
+
cardId: requiredId("cardId"),
|
|
76
|
+
name: z.string().min(1, "Task-list name required"),
|
|
77
|
+
position: z.number().optional().default(65536),
|
|
78
|
+
});
|
|
79
|
+
// Label requests
|
|
80
|
+
export const CreateLabelSchema = z.object({
|
|
81
|
+
boardId: z.string(),
|
|
82
|
+
name: z.string().min(1, "Label name required"),
|
|
83
|
+
color: LabelColorSchema,
|
|
84
|
+
position: z.number().optional().default(65536),
|
|
85
|
+
});
|
|
86
|
+
export const UpdateLabelSchema = z.object({
|
|
87
|
+
name: z.string().min(1).optional(),
|
|
88
|
+
color: LabelColorSchema.optional(),
|
|
89
|
+
position: z.number().optional(),
|
|
90
|
+
});
|
|
91
|
+
export const UpdateLabelParamsSchema = UpdateLabelSchema.extend({
|
|
92
|
+
labelId: requiredId("labelId"),
|
|
93
|
+
});
|
|
94
|
+
export const AddLabelToCardSchema = z.object({
|
|
95
|
+
cardId: z.string(),
|
|
96
|
+
labelId: z.string(),
|
|
97
|
+
});
|
|
98
|
+
export const RemoveLabelFromCardSchema = z.object({
|
|
99
|
+
cardId: z.string(),
|
|
100
|
+
labelId: z.string(),
|
|
101
|
+
});
|
|
102
|
+
export const SetCardLabelsSchema = z.object({
|
|
103
|
+
cardId: requiredId("cardId"),
|
|
104
|
+
addLabelIds: z.array(z.string().min(1)).optional(),
|
|
105
|
+
removeLabelIds: z.array(z.string().min(1)).optional(),
|
|
106
|
+
});
|
|
107
|
+
// Comment requests
|
|
108
|
+
export const CreateCommentSchema = z.object({
|
|
109
|
+
cardId: z.string(),
|
|
110
|
+
text: z.string().min(1, "Comment text required"),
|
|
111
|
+
});
|
|
112
|
+
export const UpdateCommentSchema = z.object({
|
|
113
|
+
text: z.string().min(1),
|
|
114
|
+
});
|
|
115
|
+
export const UpdateCommentParamsSchema = UpdateCommentSchema.extend({
|
|
116
|
+
commentId: requiredId("commentId"),
|
|
117
|
+
});
|
|
118
|
+
// List requests
|
|
119
|
+
export const CreateListSchema = z.object({
|
|
120
|
+
boardId: z.string(),
|
|
121
|
+
name: z.string().min(1, "List name required"),
|
|
122
|
+
position: z.number().optional().default(65536),
|
|
123
|
+
type: ListTypeSchema.optional().default("active"),
|
|
124
|
+
});
|
|
125
|
+
export const UpdateListSchema = z.object({
|
|
126
|
+
name: z.string().min(1).optional(),
|
|
127
|
+
position: z.number().optional(),
|
|
128
|
+
type: ListTypeSchema.optional(),
|
|
129
|
+
});
|
|
130
|
+
export const UpdateListParamsSchema = UpdateListSchema.extend({
|
|
131
|
+
listId: requiredId("listId"),
|
|
132
|
+
});
|
|
133
|
+
// Board requests
|
|
134
|
+
export const GetCardsForListSchema = z.object({
|
|
135
|
+
listId: requiredId("listId"),
|
|
136
|
+
/** Resolving label names costs one extra GET on the board. */
|
|
137
|
+
withLabels: z.boolean().optional().default(true),
|
|
138
|
+
});
|
|
139
|
+
/**
|
|
140
|
+
* Output pagination: how much is handed back to the model, not how much is
|
|
141
|
+
* asked of Planka (its API pages 50 at a time with its own cursor and accepts
|
|
142
|
+
* neither limit nor offset).
|
|
143
|
+
*/
|
|
144
|
+
const limitField = (fallback) => z.number().int().min(1).max(200).optional().default(fallback);
|
|
145
|
+
const offsetField = z.number().int().min(0).optional().default(0);
|
|
146
|
+
export const ListCardsSchema = z.object({
|
|
147
|
+
listId: requiredId("listId"),
|
|
148
|
+
withLabels: z.boolean().optional().default(true),
|
|
149
|
+
withDescription: z.boolean().optional().default(false),
|
|
150
|
+
labelFilter: z.string().min(1).optional(),
|
|
151
|
+
limit: limitField(25),
|
|
152
|
+
offset: offsetField,
|
|
153
|
+
});
|
|
154
|
+
export const BoardSummarySchema = z.object({
|
|
155
|
+
boardId: requiredId("boardId"),
|
|
156
|
+
/** List names (fragment, accent- and case-insensitive) or list ids. */
|
|
157
|
+
cardsFrom: z.array(z.string().min(1)).optional(),
|
|
158
|
+
/** Label flagged as highlighted on every card returned. */
|
|
159
|
+
highlightLabel: z.string().min(1).optional().default("decidido"),
|
|
160
|
+
limit: limitField(50),
|
|
161
|
+
});
|
|
162
|
+
export const FindCardsSchema = z
|
|
163
|
+
.object({
|
|
164
|
+
boardId: requiredId("boardId"),
|
|
165
|
+
labelName: z.string().min(1).optional(),
|
|
166
|
+
query: z.string().min(1).optional(),
|
|
167
|
+
listId: z.string().min(1).optional(),
|
|
168
|
+
withDescription: z.boolean().optional().default(false),
|
|
169
|
+
limit: limitField(25),
|
|
170
|
+
offset: offsetField,
|
|
171
|
+
})
|
|
172
|
+
.refine((input) => input.labelName !== undefined ||
|
|
173
|
+
input.query !== undefined ||
|
|
174
|
+
input.listId !== undefined, {
|
|
175
|
+
message: "give at least one filter: labelName, query or listId (an unfiltered search would return the whole board)",
|
|
176
|
+
});
|
|
177
|
+
// Attachment requests
|
|
178
|
+
export const UploadAttachmentSchema = z.object({
|
|
179
|
+
cardId: requiredId("cardId"),
|
|
180
|
+
filePath: z.string().min(1, "filePath is required"),
|
|
181
|
+
name: z.string().min(1).optional(),
|
|
182
|
+
});
|
|
183
|
+
// Project requests
|
|
184
|
+
export const GetStructureSchema = z.object({
|
|
185
|
+
projectId: z.string().min(1).optional(),
|
|
186
|
+
});
|
|
187
|
+
//# sourceMappingURL=requests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../../src/schemas/requests.ts"],"names":[],"mappings":"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"}
|