@omnicoreos/planka-mcp 0.2.0 → 0.3.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 (195) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/.claude-plugin/marketplace.json +26 -0
  3. package/.claude-plugin/plugin.json +45 -0
  4. package/.codex-plugin/mcp.json +16 -0
  5. package/.codex-plugin/plugin.json +27 -0
  6. package/.mcp.json +17 -0
  7. package/CHANGELOG.md +510 -0
  8. package/README.es.md +294 -55
  9. package/README.md +293 -55
  10. package/dist/cli/init.d.ts +101 -0
  11. package/dist/cli/init.d.ts.map +1 -0
  12. package/dist/cli/init.js +481 -0
  13. package/dist/cli/init.js.map +1 -0
  14. package/dist/client.d.ts +32 -4
  15. package/dist/client.d.ts.map +1 -1
  16. package/dist/client.js +106 -32
  17. package/dist/client.js.map +1 -1
  18. package/dist/config/policy.d.ts +82 -0
  19. package/dist/config/policy.d.ts.map +1 -0
  20. package/dist/config/policy.js +226 -0
  21. package/dist/config/policy.js.map +1 -0
  22. package/dist/errors.d.ts +5 -1
  23. package/dist/errors.d.ts.map +1 -1
  24. package/dist/errors.js +62 -5
  25. package/dist/errors.js.map +1 -1
  26. package/dist/identity.generated.d.ts +2 -1
  27. package/dist/identity.generated.d.ts.map +1 -1
  28. package/dist/identity.generated.js +2 -1
  29. package/dist/identity.generated.js.map +1 -1
  30. package/dist/index.js +85 -10
  31. package/dist/index.js.map +1 -1
  32. package/dist/instructions.d.ts +21 -0
  33. package/dist/instructions.d.ts.map +1 -0
  34. package/dist/instructions.js +37 -0
  35. package/dist/instructions.js.map +1 -0
  36. package/dist/operations/actions.d.ts +654 -0
  37. package/dist/operations/actions.d.ts.map +1 -0
  38. package/dist/operations/actions.js +154 -0
  39. package/dist/operations/actions.js.map +1 -0
  40. package/dist/operations/archive.d.ts +28 -0
  41. package/dist/operations/archive.d.ts.map +1 -0
  42. package/dist/operations/archive.js +74 -0
  43. package/dist/operations/archive.js.map +1 -0
  44. package/dist/operations/attachments.d.ts +1 -1
  45. package/dist/operations/attachments.d.ts.map +1 -1
  46. package/dist/operations/attachments.js +3 -1
  47. package/dist/operations/attachments.js.map +1 -1
  48. package/dist/operations/board-id.d.ts +1 -1
  49. package/dist/operations/board-id.d.ts.map +1 -1
  50. package/dist/operations/board-id.js +13 -7
  51. package/dist/operations/board-id.js.map +1 -1
  52. package/dist/operations/boards.d.ts +96 -19
  53. package/dist/operations/boards.d.ts.map +1 -1
  54. package/dist/operations/boards.js +377 -93
  55. package/dist/operations/boards.js.map +1 -1
  56. package/dist/operations/card-brief.d.ts +91 -0
  57. package/dist/operations/card-brief.d.ts.map +1 -0
  58. package/dist/operations/card-brief.js +79 -0
  59. package/dist/operations/card-brief.js.map +1 -0
  60. package/dist/operations/cards.d.ts +34 -9
  61. package/dist/operations/cards.d.ts.map +1 -1
  62. package/dist/operations/cards.js +60 -14
  63. package/dist/operations/cards.js.map +1 -1
  64. package/dist/operations/comments.d.ts +61 -4
  65. package/dist/operations/comments.d.ts.map +1 -1
  66. package/dist/operations/comments.js +91 -8
  67. package/dist/operations/comments.js.map +1 -1
  68. package/dist/operations/duplicate.d.ts +16 -0
  69. package/dist/operations/duplicate.d.ts.map +1 -0
  70. package/dist/operations/duplicate.js +43 -0
  71. package/dist/operations/duplicate.js.map +1 -0
  72. package/dist/operations/labels.d.ts +1 -1
  73. package/dist/operations/labels.d.ts.map +1 -1
  74. package/dist/operations/labels.js +7 -4
  75. package/dist/operations/labels.js.map +1 -1
  76. package/dist/operations/lists.d.ts +63 -1
  77. package/dist/operations/lists.d.ts.map +1 -1
  78. package/dist/operations/lists.js +97 -2
  79. package/dist/operations/lists.js.map +1 -1
  80. package/dist/operations/members.d.ts +39 -0
  81. package/dist/operations/members.d.ts.map +1 -0
  82. package/dist/operations/members.js +107 -0
  83. package/dist/operations/members.js.map +1 -0
  84. package/dist/operations/projects.d.ts +16 -0
  85. package/dist/operations/projects.d.ts.map +1 -1
  86. package/dist/operations/projects.js +54 -9
  87. package/dist/operations/projects.js.map +1 -1
  88. package/dist/operations/tasks.d.ts +1 -1
  89. package/dist/operations/tasks.d.ts.map +1 -1
  90. package/dist/operations/tasks.js +5 -3
  91. package/dist/operations/tasks.js.map +1 -1
  92. package/dist/operations/users.d.ts +123 -0
  93. package/dist/operations/users.d.ts.map +1 -0
  94. package/dist/operations/users.js +180 -0
  95. package/dist/operations/users.js.map +1 -0
  96. package/dist/operations/verify.d.ts +84 -0
  97. package/dist/operations/verify.d.ts.map +1 -0
  98. package/dist/operations/verify.js +124 -0
  99. package/dist/operations/verify.js.map +1 -0
  100. package/dist/prompts.d.ts +48 -0
  101. package/dist/prompts.d.ts.map +1 -0
  102. package/dist/prompts.js +155 -0
  103. package/dist/prompts.js.map +1 -0
  104. package/dist/resources.d.ts +38 -0
  105. package/dist/resources.d.ts.map +1 -0
  106. package/dist/resources.js +127 -0
  107. package/dist/resources.js.map +1 -0
  108. package/dist/schemas/entities.d.ts +115 -24
  109. package/dist/schemas/entities.d.ts.map +1 -1
  110. package/dist/schemas/entities.js +48 -0
  111. package/dist/schemas/entities.js.map +1 -1
  112. package/dist/schemas/requests.d.ts +121 -46
  113. package/dist/schemas/requests.d.ts.map +1 -1
  114. package/dist/schemas/requests.js +57 -12
  115. package/dist/schemas/requests.js.map +1 -1
  116. package/dist/schemas/responses.d.ts +541 -186
  117. package/dist/schemas/responses.d.ts.map +1 -1
  118. package/dist/schemas/responses.js +13 -2
  119. package/dist/schemas/responses.js.map +1 -1
  120. package/dist/tools/activity.d.ts +150 -0
  121. package/dist/tools/activity.d.ts.map +1 -0
  122. package/dist/tools/activity.js +198 -0
  123. package/dist/tools/activity.js.map +1 -0
  124. package/dist/tools/annotations.d.ts +52 -0
  125. package/dist/tools/annotations.d.ts.map +1 -0
  126. package/dist/tools/annotations.js +214 -0
  127. package/dist/tools/annotations.js.map +1 -0
  128. package/dist/tools/attachments.d.ts +28 -4
  129. package/dist/tools/attachments.d.ts.map +1 -1
  130. package/dist/tools/attachments.js +53 -34
  131. package/dist/tools/attachments.js.map +1 -1
  132. package/dist/tools/card-ops.d.ts +232 -0
  133. package/dist/tools/card-ops.d.ts.map +1 -0
  134. package/dist/tools/card-ops.js +333 -0
  135. package/dist/tools/card-ops.js.map +1 -0
  136. package/dist/tools/cards.d.ts +90 -8
  137. package/dist/tools/cards.d.ts.map +1 -1
  138. package/dist/tools/cards.js +411 -128
  139. package/dist/tools/cards.js.map +1 -1
  140. package/dist/tools/comments.d.ts +226 -22
  141. package/dist/tools/comments.d.ts.map +1 -1
  142. package/dist/tools/comments.js +163 -134
  143. package/dist/tools/comments.js.map +1 -1
  144. package/dist/tools/dispatch.d.ts +47 -0
  145. package/dist/tools/dispatch.d.ts.map +1 -0
  146. package/dist/tools/dispatch.js +63 -0
  147. package/dist/tools/dispatch.js.map +1 -0
  148. package/dist/tools/guard.d.ts +9 -0
  149. package/dist/tools/guard.d.ts.map +1 -0
  150. package/dist/tools/guard.js +20 -0
  151. package/dist/tools/guard.js.map +1 -0
  152. package/dist/tools/index.d.ts +748 -450
  153. package/dist/tools/index.d.ts.map +1 -1
  154. package/dist/tools/index.js +136 -17
  155. package/dist/tools/index.js.map +1 -1
  156. package/dist/tools/labels.d.ts +213 -18
  157. package/dist/tools/labels.d.ts.map +1 -1
  158. package/dist/tools/labels.js +218 -203
  159. package/dist/tools/labels.js.map +1 -1
  160. package/dist/tools/lists.d.ts +222 -15
  161. package/dist/tools/lists.d.ts.map +1 -1
  162. package/dist/tools/lists.js +175 -156
  163. package/dist/tools/lists.js.map +1 -1
  164. package/dist/tools/members.d.ts +128 -0
  165. package/dist/tools/members.d.ts.map +1 -0
  166. package/dist/tools/members.js +150 -0
  167. package/dist/tools/members.js.map +1 -0
  168. package/dist/tools/navigation.d.ts +22 -2
  169. package/dist/tools/navigation.d.ts.map +1 -1
  170. package/dist/tools/navigation.js +60 -15
  171. package/dist/tools/navigation.js.map +1 -1
  172. package/dist/tools/queries.d.ts +196 -166
  173. package/dist/tools/queries.d.ts.map +1 -1
  174. package/dist/tools/queries.js +125 -155
  175. package/dist/tools/queries.js.map +1 -1
  176. package/dist/tools/tasks.d.ts +26 -6
  177. package/dist/tools/tasks.d.ts.map +1 -1
  178. package/dist/tools/tasks.js +110 -55
  179. package/dist/tools/tasks.js.map +1 -1
  180. package/dist/tools/users.d.ts +130 -0
  181. package/dist/tools/users.d.ts.map +1 -0
  182. package/dist/tools/users.js +165 -0
  183. package/dist/tools/users.js.map +1 -0
  184. package/docs/planka-2x-gotchas.md +121 -5
  185. package/docs/tools.md +771 -187
  186. package/docs/troubleshooting.md +137 -5
  187. package/hooks/hooks.json +15 -0
  188. package/hooks/preflight.mjs +100 -0
  189. package/package.json +6 -1
  190. package/scripts/setup.sh +8 -26
  191. package/scripts/sync-identity.mjs +55 -1
  192. package/server.json +87 -6
  193. package/tests/smoke/planka-smoke.mjs +512 -72
  194. package/workflow/skills/planka-close-card/SKILL.md +18 -5
  195. package/workflow/skills/planka-orchestrator/SKILL.md +36 -7
@@ -1,3 +1,4 @@
1
+ import { AccessPolicy } from "../config/policy.js";
1
2
  /**
2
3
  * All registered tools.
3
4
  */
@@ -11,10 +12,15 @@ export declare const allTools: ({
11
12
  type: string;
12
13
  description: string;
13
14
  };
15
+ withLists: {
16
+ type: string;
17
+ description: string;
18
+ };
14
19
  };
15
20
  };
16
21
  handler: (params: {
17
22
  projectId?: string;
23
+ withLists?: boolean;
18
24
  }) => Promise<{
19
25
  content: {
20
26
  type: "text";
@@ -36,12 +42,17 @@ export declare const allTools: ({
36
42
  description: string;
37
43
  default: boolean;
38
44
  };
45
+ limit: {
46
+ type: string;
47
+ description: string;
48
+ };
39
49
  };
40
50
  required: string[];
41
51
  };
42
52
  handler: (params: {
43
- boardId: string;
53
+ boardId?: string;
44
54
  includeTaskCounts?: boolean;
55
+ limit?: number;
45
56
  }) => Promise<{
46
57
  content: {
47
58
  type: "text";
@@ -94,6 +105,56 @@ export declare const allTools: ({
94
105
  tasks?: string[];
95
106
  dueDate?: string;
96
107
  labelIds?: string[];
108
+ }) => Promise<{
109
+ isError?: true | undefined;
110
+ content: {
111
+ type: "text";
112
+ text: string;
113
+ }[];
114
+ } | {
115
+ content: {
116
+ type: "text";
117
+ text: string;
118
+ }[];
119
+ isError: boolean;
120
+ }>;
121
+ } | {
122
+ name: string;
123
+ description: string;
124
+ inputSchema: {
125
+ type: "object";
126
+ properties: {
127
+ cardId: {
128
+ type: string;
129
+ description: string;
130
+ };
131
+ detail: {
132
+ type: string;
133
+ enum: string[];
134
+ description: string;
135
+ };
136
+ withComments: {
137
+ description: string;
138
+ anyOf: ({
139
+ type: string;
140
+ enum?: undefined;
141
+ } | {
142
+ type: string;
143
+ enum: string[];
144
+ })[];
145
+ };
146
+ descriptionChars: {
147
+ type: string;
148
+ description: string;
149
+ };
150
+ };
151
+ required: string[];
152
+ };
153
+ handler: (params: {
154
+ cardId: string;
155
+ detail?: "digest" | "full";
156
+ withComments?: number | "all";
157
+ descriptionChars?: number;
97
158
  }) => Promise<{
98
159
  content: {
99
160
  type: "text";
@@ -143,11 +204,11 @@ export declare const allTools: ({
143
204
  dueDate?: string | null;
144
205
  isCompleted?: boolean;
145
206
  }) => Promise<{
207
+ isError?: true | undefined;
146
208
  content: {
147
209
  type: "text";
148
210
  text: string;
149
211
  }[];
150
- isError?: undefined;
151
212
  } | {
152
213
  content: {
153
214
  type: "text";
@@ -169,6 +230,10 @@ export declare const allTools: ({
169
230
  type: string;
170
231
  description: string;
171
232
  };
233
+ boardId: {
234
+ type: string;
235
+ description: string;
236
+ };
172
237
  position: {
173
238
  type: string;
174
239
  description: string;
@@ -179,13 +244,14 @@ export declare const allTools: ({
179
244
  handler: (params: {
180
245
  cardId: string;
181
246
  listId: string;
247
+ boardId?: string;
182
248
  position?: number;
183
249
  }) => Promise<{
250
+ isError?: true | undefined;
184
251
  content: {
185
252
  type: "text";
186
253
  text: string;
187
254
  }[];
188
- isError?: undefined;
189
255
  } | {
190
256
  content: {
191
257
  type: "text";
@@ -218,11 +284,11 @@ export declare const allTools: ({
218
284
  cardId: string;
219
285
  tasks: string[];
220
286
  }) => Promise<{
287
+ isError?: true | undefined;
221
288
  content: {
222
289
  type: "text";
223
290
  text: string;
224
291
  }[];
225
- isError?: undefined;
226
292
  } | {
227
293
  content: {
228
294
  type: "text";
@@ -240,6 +306,10 @@ export declare const allTools: ({
240
306
  type: string;
241
307
  description: string;
242
308
  };
309
+ cardId: {
310
+ type: string;
311
+ description: string;
312
+ };
243
313
  name: {
244
314
  type: string;
245
315
  description: string;
@@ -253,14 +323,15 @@ export declare const allTools: ({
253
323
  };
254
324
  handler: (params: {
255
325
  taskId: string;
326
+ cardId?: string;
256
327
  name?: string;
257
328
  isCompleted?: boolean;
258
329
  }) => Promise<{
330
+ isError?: true | undefined;
259
331
  content: {
260
332
  type: "text";
261
333
  text: string;
262
334
  }[];
263
- isError?: undefined;
264
335
  } | {
265
336
  content: {
266
337
  type: "text";
@@ -278,17 +349,22 @@ export declare const allTools: ({
278
349
  type: string;
279
350
  description: string;
280
351
  };
352
+ cardId: {
353
+ type: string;
354
+ description: string;
355
+ };
281
356
  };
282
357
  required: string[];
283
358
  };
284
359
  handler: (params: {
285
360
  taskId: string;
361
+ cardId?: string;
286
362
  }) => Promise<{
363
+ isError?: true | undefined;
287
364
  content: {
288
365
  type: "text";
289
366
  text: string;
290
367
  }[];
291
- isError?: undefined;
292
368
  } | {
293
369
  content: {
294
370
  type: "text";
@@ -296,6 +372,98 @@ export declare const allTools: ({
296
372
  }[];
297
373
  isError: boolean;
298
374
  }>;
375
+ } | {
376
+ name: string;
377
+ description: string;
378
+ inputSchema: {
379
+ type: "object";
380
+ properties: {
381
+ boardId: {
382
+ type: string;
383
+ description: string;
384
+ };
385
+ name: {
386
+ type: string;
387
+ description: string;
388
+ };
389
+ color: {
390
+ type: string;
391
+ enum: readonly string[];
392
+ description: string;
393
+ };
394
+ position: {
395
+ type: string;
396
+ description: string;
397
+ };
398
+ };
399
+ required: string[];
400
+ };
401
+ handler: (params: {
402
+ boardId?: string;
403
+ name: string;
404
+ color: string;
405
+ position?: number;
406
+ }) => Promise<{
407
+ isError?: true | undefined;
408
+ content: {
409
+ type: "text";
410
+ text: string;
411
+ }[];
412
+ } | import("./guard.js").ToolReply>;
413
+ } | {
414
+ name: string;
415
+ description: string;
416
+ inputSchema: {
417
+ type: "object";
418
+ properties: {
419
+ labelId: {
420
+ type: string;
421
+ description: string;
422
+ };
423
+ name: {
424
+ type: string;
425
+ description: string;
426
+ };
427
+ color: {
428
+ type: string;
429
+ description: string;
430
+ };
431
+ };
432
+ required: string[];
433
+ };
434
+ handler: (params: {
435
+ labelId: string;
436
+ name?: string;
437
+ color?: string;
438
+ }) => Promise<{
439
+ isError?: true | undefined;
440
+ content: {
441
+ type: "text";
442
+ text: string;
443
+ }[];
444
+ } | import("./guard.js").ToolReply>;
445
+ } | {
446
+ name: string;
447
+ description: string;
448
+ inputSchema: {
449
+ type: "object";
450
+ properties: {
451
+ labelId: {
452
+ type: string;
453
+ description: string;
454
+ };
455
+ };
456
+ required: string[];
457
+ };
458
+ handler: (params: {
459
+ labelId: string;
460
+ }) => Promise<{
461
+ isError?: true | undefined;
462
+ content: {
463
+ type: "text";
464
+ text: string;
465
+ }[];
466
+ } | import("./guard.js").ToolReply>;
299
467
  } | {
300
468
  name: string;
301
469
  description: string;
@@ -333,17 +501,17 @@ export declare const allTools: ({
333
501
  name?: string;
334
502
  color?: string;
335
503
  }) => Promise<{
336
- content: {
337
- type: "text";
338
- text: string;
339
- }[];
340
- isError: boolean;
504
+ content: Array<{
505
+ type: string;
506
+ [key: string]: unknown;
507
+ }>;
508
+ isError?: boolean;
341
509
  } | {
342
510
  content: {
343
511
  type: "text";
344
512
  text: string;
345
513
  }[];
346
- isError?: undefined;
514
+ isError: true;
347
515
  }>;
348
516
  } | {
349
517
  name: string;
@@ -385,17 +553,17 @@ export declare const allTools: ({
385
553
  labelIds?: string[];
386
554
  removeLabelIds?: string[];
387
555
  }) => Promise<{
556
+ isError?: true | undefined;
388
557
  content: {
389
558
  type: "text";
390
559
  text: string;
391
560
  }[];
392
- isError: boolean;
393
561
  } | {
394
- isError?: true | undefined;
395
562
  content: {
396
563
  type: "text";
397
564
  text: string;
398
565
  }[];
566
+ isError: boolean;
399
567
  }>;
400
568
  } | {
401
569
  name: string;
@@ -418,30 +586,19 @@ export declare const allTools: ({
418
586
  cardId: string;
419
587
  text: string;
420
588
  }) => Promise<{
589
+ isError?: true | undefined;
421
590
  content: {
422
591
  type: "text";
423
592
  text: string;
424
593
  }[];
425
- isError?: undefined;
426
- } | {
427
- content: {
428
- type: "text";
429
- text: string;
430
- }[];
431
- isError: boolean;
432
- }>;
594
+ } | import("./guard.js").ToolReply>;
433
595
  } | {
434
596
  name: string;
435
597
  description: string;
436
598
  inputSchema: {
437
599
  type: "object";
438
600
  properties: {
439
- action: {
440
- type: string;
441
- enum: string[];
442
- description: string;
443
- };
444
- commentId: {
601
+ cardId: {
445
602
  type: string;
446
603
  description: string;
447
604
  };
@@ -453,21 +610,20 @@ export declare const allTools: ({
453
610
  required: string[];
454
611
  };
455
612
  handler: (params: {
456
- action: "update" | "delete";
457
- commentId: string;
458
- text?: string;
613
+ cardId: string;
614
+ text: string;
459
615
  }) => Promise<{
460
- content: {
461
- type: "text";
462
- text: string;
463
- }[];
464
- isError: boolean;
616
+ content: Array<{
617
+ type: string;
618
+ [key: string]: unknown;
619
+ }>;
620
+ isError?: boolean;
465
621
  } | {
466
622
  content: {
467
623
  type: "text";
468
624
  text: string;
469
625
  }[];
470
- isError?: undefined;
626
+ isError: true;
471
627
  }>;
472
628
  } | {
473
629
  name: string;
@@ -475,28 +631,23 @@ export declare const allTools: ({
475
631
  inputSchema: {
476
632
  type: "object";
477
633
  properties: {
478
- action: {
479
- type: string;
480
- enum: string[];
481
- description: string;
482
- };
483
- boardId: {
634
+ cardId: {
484
635
  type: string;
485
636
  description: string;
486
637
  };
487
- listId: {
638
+ limit: {
488
639
  type: string;
489
640
  description: string;
490
641
  };
491
- name: {
642
+ beforeId: {
492
643
  type: string;
493
644
  description: string;
494
645
  };
495
- position: {
646
+ all: {
496
647
  type: string;
497
648
  description: string;
498
649
  };
499
- type: {
650
+ order: {
500
651
  type: string;
501
652
  enum: string[];
502
653
  description: string;
@@ -505,24 +656,23 @@ export declare const allTools: ({
505
656
  required: string[];
506
657
  };
507
658
  handler: (params: {
508
- action: "create" | "update" | "delete";
509
- boardId?: string;
510
- listId?: string;
511
- name?: string;
512
- position?: number;
513
- type?: "active" | "closed";
659
+ cardId: string;
660
+ limit?: number;
661
+ beforeId?: string;
662
+ all?: boolean;
663
+ order?: "asc" | "desc";
514
664
  }) => Promise<{
515
665
  content: {
516
666
  type: "text";
517
667
  text: string;
518
668
  }[];
519
- isError: boolean;
669
+ isError?: undefined;
520
670
  } | {
521
671
  content: {
522
672
  type: "text";
523
673
  text: string;
524
674
  }[];
525
- isError?: undefined;
675
+ isError: boolean;
526
676
  }>;
527
677
  } | {
528
678
  name: string;
@@ -530,15 +680,11 @@ export declare const allTools: ({
530
680
  inputSchema: {
531
681
  type: "object";
532
682
  properties: {
533
- cardId: {
534
- type: string;
535
- description: string;
536
- };
537
- filePath: {
683
+ commentId: {
538
684
  type: string;
539
685
  description: string;
540
686
  };
541
- name: {
687
+ text: {
542
688
  type: string;
543
689
  description: string;
544
690
  };
@@ -546,23 +692,22 @@ export declare const allTools: ({
546
692
  required: string[];
547
693
  };
548
694
  handler: (params: {
549
- cardId: string;
550
- filePath: string;
551
- name?: string;
695
+ commentId: string;
696
+ text: string;
552
697
  }) => Promise<{
553
- isError?: boolean | undefined;
698
+ isError?: true | undefined;
554
699
  content: {
555
700
  type: "text";
556
701
  text: string;
557
702
  }[];
558
- }>;
703
+ } | import("./guard.js").ToolReply>;
559
704
  } | {
560
705
  name: string;
561
706
  description: string;
562
707
  inputSchema: {
563
708
  type: "object";
564
709
  properties: {
565
- cardId: {
710
+ commentId: {
566
711
  type: string;
567
712
  description: string;
568
713
  };
@@ -570,30 +715,30 @@ export declare const allTools: ({
570
715
  required: string[];
571
716
  };
572
717
  handler: (params: {
573
- cardId: string;
718
+ commentId: string;
574
719
  }) => Promise<{
720
+ isError?: true | undefined;
575
721
  content: {
576
722
  type: "text";
577
723
  text: string;
578
724
  }[];
579
- isError: boolean;
580
- } | {
581
- content: {
582
- type: "text";
583
- text: string;
584
- }[];
585
- }>;
725
+ } | import("./guard.js").ToolReply>;
586
726
  } | {
587
727
  name: string;
588
728
  description: string;
589
729
  inputSchema: {
590
730
  type: "object";
591
731
  properties: {
592
- cardId: {
732
+ action: {
593
733
  type: string;
734
+ enum: string[];
594
735
  description: string;
595
736
  };
596
- attachmentId: {
737
+ commentId: {
738
+ type: string;
739
+ description: string;
740
+ };
741
+ text: {
597
742
  type: string;
598
743
  description: string;
599
744
  };
@@ -601,81 +746,190 @@ export declare const allTools: ({
601
746
  required: string[];
602
747
  };
603
748
  handler: (params: {
604
- cardId: string;
605
- attachmentId?: string;
749
+ action: "update" | "delete";
750
+ commentId: string;
751
+ text?: string;
606
752
  }) => Promise<{
753
+ content: Array<{
754
+ type: string;
755
+ [key: string]: unknown;
756
+ }>;
757
+ isError?: boolean;
758
+ } | {
607
759
  content: {
608
760
  type: "text";
609
761
  text: string;
610
762
  }[];
611
- isError: boolean;
612
- } | {
613
- content: ({
763
+ isError: true;
764
+ }>;
765
+ } | {
766
+ name: string;
767
+ description: string;
768
+ inputSchema: {
769
+ type: "object";
770
+ properties: {
771
+ boardId: {
772
+ type: string;
773
+ description: string;
774
+ };
775
+ name: {
776
+ type: string;
777
+ description: string;
778
+ };
779
+ position: {
780
+ type: string;
781
+ description: string;
782
+ };
783
+ type: {
784
+ type: string;
785
+ enum: string[];
786
+ description: string;
787
+ };
788
+ };
789
+ required: string[];
790
+ };
791
+ handler: (params: {
792
+ boardId?: string;
793
+ name: string;
794
+ position?: number;
795
+ type?: "active" | "closed";
796
+ }) => Promise<{
797
+ isError?: true | undefined;
798
+ content: {
614
799
  type: "text";
615
800
  text: string;
616
- data?: undefined;
617
- mimeType?: undefined;
618
- } | {
619
- type: "image";
620
- data: string;
621
- mimeType: string;
622
- text?: undefined;
623
- })[];
624
- }>;
801
+ }[];
802
+ } | import("./guard.js").ToolReply>;
625
803
  } | {
626
804
  name: string;
627
805
  description: string;
628
806
  inputSchema: {
629
807
  type: "object";
630
808
  properties: {
631
- attachmentId: {
809
+ listId: {
810
+ type: string;
811
+ description: string;
812
+ };
813
+ name: {
814
+ type: string;
815
+ description: string;
816
+ };
817
+ position: {
632
818
  type: string;
633
819
  description: string;
634
820
  };
821
+ type: {
822
+ type: string;
823
+ enum: string[];
824
+ description: string;
825
+ };
635
826
  };
636
827
  required: string[];
637
828
  };
638
829
  handler: (params: {
639
- attachmentId: string;
830
+ listId: string;
831
+ name?: string;
832
+ position?: number;
833
+ type?: "active" | "closed";
640
834
  }) => Promise<{
835
+ isError?: true | undefined;
641
836
  content: {
642
837
  type: "text";
643
838
  text: string;
644
839
  }[];
645
- isError: boolean;
646
- } | {
840
+ } | import("./guard.js").ToolReply>;
841
+ } | {
842
+ name: string;
843
+ description: string;
844
+ inputSchema: {
845
+ type: "object";
846
+ properties: {
847
+ listId: {
848
+ type: string;
849
+ description: string;
850
+ };
851
+ };
852
+ required: string[];
853
+ };
854
+ handler: (params: {
855
+ listId: string;
856
+ }) => Promise<{
857
+ isError?: true | undefined;
647
858
  content: {
648
859
  type: "text";
649
860
  text: string;
650
861
  }[];
651
- }>;
862
+ } | import("./guard.js").ToolReply>;
652
863
  } | {
653
864
  name: string;
654
865
  description: string;
655
866
  inputSchema: {
656
867
  type: "object";
657
868
  properties: {
869
+ action: {
870
+ type: string;
871
+ enum: string[];
872
+ description: string;
873
+ };
874
+ boardId: {
875
+ type: string;
876
+ description: string;
877
+ };
658
878
  listId: {
659
879
  type: string;
660
880
  description: string;
661
881
  };
662
- withLabels: {
882
+ name: {
663
883
  type: string;
664
884
  description: string;
665
885
  };
666
- withDescription: {
886
+ position: {
667
887
  type: string;
668
888
  description: string;
669
889
  };
670
- labelFilter: {
890
+ type: {
671
891
  type: string;
892
+ enum: string[];
672
893
  description: string;
673
894
  };
674
- limit: {
895
+ };
896
+ required: string[];
897
+ };
898
+ handler: (params: {
899
+ action: "create" | "update" | "delete";
900
+ boardId?: string;
901
+ listId?: string;
902
+ name?: string;
903
+ position?: number;
904
+ type?: "active" | "closed";
905
+ }) => Promise<{
906
+ content: Array<{
907
+ type: string;
908
+ [key: string]: unknown;
909
+ }>;
910
+ isError?: boolean;
911
+ } | {
912
+ content: {
913
+ type: "text";
914
+ text: string;
915
+ }[];
916
+ isError: true;
917
+ }>;
918
+ } | {
919
+ name: string;
920
+ description: string;
921
+ inputSchema: {
922
+ type: "object";
923
+ properties: {
924
+ cardId: {
925
+ type: string;
926
+ description: string;
927
+ };
928
+ filePath: {
675
929
  type: string;
676
930
  description: string;
677
931
  };
678
- offset: {
932
+ name: {
679
933
  type: string;
680
934
  description: string;
681
935
  };
@@ -683,13 +937,11 @@ export declare const allTools: ({
683
937
  required: string[];
684
938
  };
685
939
  handler: (params: {
686
- listId: string;
687
- withLabels?: boolean;
688
- withDescription?: boolean;
689
- labelFilter?: string;
690
- limit?: number;
691
- offset?: number;
940
+ cardId: string;
941
+ filePath: string;
942
+ name?: string;
692
943
  }) => Promise<{
944
+ isError?: true | undefined;
693
945
  content: {
694
946
  type: "text";
695
947
  text: string;
@@ -707,7 +959,7 @@ export declare const allTools: ({
707
959
  inputSchema: {
708
960
  type: "object";
709
961
  properties: {
710
- boardId: {
962
+ cardId: {
711
963
  type: string;
712
964
  description: string;
713
965
  };
@@ -715,18 +967,18 @@ export declare const allTools: ({
715
967
  required: string[];
716
968
  };
717
969
  handler: (params: {
718
- boardId: string;
970
+ cardId: string;
719
971
  }) => Promise<{
720
972
  content: {
721
973
  type: "text";
722
974
  text: string;
723
975
  }[];
976
+ isError: boolean;
724
977
  } | {
725
978
  content: {
726
979
  type: "text";
727
980
  text: string;
728
981
  }[];
729
- isError: boolean;
730
982
  }>;
731
983
  } | {
732
984
  name: string;
@@ -734,22 +986,50 @@ export declare const allTools: ({
734
986
  inputSchema: {
735
987
  type: "object";
736
988
  properties: {
737
- boardId: {
989
+ cardId: {
738
990
  type: string;
739
991
  description: string;
740
992
  };
741
- cardsFrom: {
993
+ attachmentId: {
742
994
  type: string;
743
- items: {
744
- type: string;
745
- };
746
995
  description: string;
747
996
  };
748
- highlightLabel: {
997
+ };
998
+ required: string[];
999
+ };
1000
+ handler: (params: {
1001
+ cardId: string;
1002
+ attachmentId?: string;
1003
+ }) => Promise<{
1004
+ content: {
1005
+ type: "text";
1006
+ text: string;
1007
+ }[];
1008
+ isError: boolean;
1009
+ } | {
1010
+ content: ({
1011
+ type: "text";
1012
+ text: string;
1013
+ data?: undefined;
1014
+ mimeType?: undefined;
1015
+ } | {
1016
+ type: "image";
1017
+ data: string;
1018
+ mimeType: string;
1019
+ text?: undefined;
1020
+ })[];
1021
+ }>;
1022
+ } | {
1023
+ name: string;
1024
+ description: string;
1025
+ inputSchema: {
1026
+ type: "object";
1027
+ properties: {
1028
+ attachmentId: {
749
1029
  type: string;
750
1030
  description: string;
751
1031
  };
752
- limit: {
1032
+ cardId: {
753
1033
  type: string;
754
1034
  description: string;
755
1035
  };
@@ -757,11 +1037,10 @@ export declare const allTools: ({
757
1037
  required: string[];
758
1038
  };
759
1039
  handler: (params: {
760
- boardId: string;
761
- cardsFrom?: string[];
762
- highlightLabel?: string;
763
- limit?: number;
1040
+ attachmentId: string;
1041
+ cardId?: string;
764
1042
  }) => Promise<{
1043
+ isError?: true | undefined;
765
1044
  content: {
766
1045
  type: "text";
767
1046
  text: string;
@@ -779,46 +1058,104 @@ export declare const allTools: ({
779
1058
  inputSchema: {
780
1059
  type: "object";
781
1060
  properties: {
782
- boardId: {
783
- type: string;
784
- description: string;
1061
+ readonly boardId: {
1062
+ readonly type: "string";
1063
+ readonly description: "Board ID. Optional with PLANKA_DEFAULT_BOARD_ID; ignored when listId is given.";
1064
+ };
1065
+ readonly listId: {
1066
+ readonly type: "string";
1067
+ readonly description: "Read exactly this column. THE CHEAP PATH: one request, no pagination, so total is the real size of the column and truncated is false by construction.";
1068
+ };
1069
+ readonly listName: {
1070
+ readonly type: "string";
1071
+ readonly description: "Column name fragment (case- and accent-insensitive) instead of an ID. Costs a board read; listId is cheaper.";
1072
+ };
1073
+ readonly query: {
1074
+ readonly type: "string";
1075
+ readonly description: "Free text matched against card name AND description. Several words are ANDed — all must appear — ignoring case and accents. A leading '/' makes the rest a case-insensitive regular expression.";
1076
+ };
1077
+ readonly labelName: {
1078
+ readonly type: "string";
1079
+ readonly description: "Only cards carrying this label name (exact name, case- and accent-insensitive). If the board has no such label, the response says so and lists the ones it does have.";
1080
+ };
1081
+ readonly labelIds: {
1082
+ readonly type: "array";
1083
+ readonly items: {
1084
+ readonly type: "string";
1085
+ };
1086
+ readonly description: "Only cards carrying at least one of these label IDs (OR).";
785
1087
  };
786
- labelName: {
787
- type: string;
788
- description: string;
1088
+ readonly userIds: {
1089
+ readonly type: "array";
1090
+ readonly items: {
1091
+ readonly type: "string";
1092
+ };
1093
+ readonly description: "Only cards where one of these users is a member or a task assignee (OR).";
789
1094
  };
790
- query: {
791
- type: string;
792
- description: string;
1095
+ readonly withLabels: {
1096
+ readonly type: "boolean";
1097
+ readonly description: "Resolve label names. Default true; false skips one board read on the listId path.";
793
1098
  };
794
- listId: {
1099
+ readonly detail: {
1100
+ readonly type: "string";
1101
+ readonly enum: readonly ["digest", "full"];
1102
+ readonly description: "digest (default): id, name, labels, members, tasks, dueDate, commentsTotal, updatedAt. full: every field of the card, description included.";
1103
+ };
1104
+ readonly descriptionChars: {
1105
+ readonly type: "number";
1106
+ readonly description: "Per-match description preview, in characters. 0 (the default) leaves descriptions out.";
1107
+ };
1108
+ readonly limit: {
1109
+ readonly type: "number";
1110
+ readonly description: "Max matches to return. Default 25, max 200.";
1111
+ };
1112
+ readonly offset: {
1113
+ readonly type: "number";
1114
+ readonly description: "Skip this many matches. Use nextOffset from the previous response.";
1115
+ };
1116
+ };
1117
+ };
1118
+ handler: (params: import("./queries.js").FindCardsParams) => Promise<{
1119
+ content: {
1120
+ type: "text";
1121
+ text: string;
1122
+ }[];
1123
+ } | {
1124
+ content: {
1125
+ type: "text";
1126
+ text: string;
1127
+ }[];
1128
+ isError: boolean;
1129
+ }>;
1130
+ } | {
1131
+ name: string;
1132
+ description: string;
1133
+ inputSchema: {
1134
+ type: "object";
1135
+ properties: {
1136
+ boardId: {
795
1137
  type: string;
796
1138
  description: string;
797
1139
  };
798
- withDescription: {
1140
+ cardsFrom: {
799
1141
  type: string;
1142
+ items: {
1143
+ type: string;
1144
+ };
800
1145
  description: string;
801
1146
  };
802
- limit: {
1147
+ highlightLabel: {
803
1148
  type: string;
804
1149
  description: string;
805
1150
  };
806
- offset: {
1151
+ limit: {
807
1152
  type: string;
808
1153
  description: string;
809
1154
  };
810
1155
  };
811
1156
  required: string[];
812
1157
  };
813
- handler: (params: {
814
- boardId: string;
815
- labelName?: string;
816
- query?: string;
817
- listId?: string;
818
- withDescription?: boolean;
819
- limit?: number;
820
- offset?: number;
821
- }) => Promise<{
1158
+ handler: (params: import("./queries.js").BoardSummaryParams) => Promise<{
822
1159
  content: {
823
1160
  type: "text";
824
1161
  text: string;
@@ -830,457 +1167,411 @@ export declare const allTools: ({
830
1167
  }[];
831
1168
  isError: boolean;
832
1169
  }>;
833
- })[];
834
- /**
835
- * Content blocks a tool may return.
836
- * "image" lets the model actually SEE an attached screenshot (base64).
837
- */
838
- export type ToolContent = {
839
- type: "text";
840
- text: string;
841
1170
  } | {
842
- type: "image";
843
- data: string;
844
- mimeType: string;
845
- };
846
- /**
847
- * Tool type definition.
848
- */
849
- export interface Tool {
850
- name: string;
851
- description: string;
852
- inputSchema: {
853
- type: "object";
854
- properties: Record<string, unknown>;
855
- required?: string[];
856
- };
857
- handler: (params: unknown) => Promise<{
858
- content: ToolContent[];
859
- isError?: boolean;
860
- }>;
861
- }
862
- /**
863
- * Get a tool by name.
864
- */
865
- export declare function getTool(name: string): Tool | undefined;
866
- /**
867
- * Required inputSchema fields that never arrived.
868
- *
869
- * The inputSchema is JSON Schema, not Zod: this only checks presence, which is
870
- * what stops a missing `tasks` from blowing up inside the handler as "Cannot
871
- * read properties of undefined (reading 'map')".
872
- */
873
- export declare function findMissingRequiredArgs(tool: Tool, args: unknown): string[];
874
- /**
875
- * Get all tool definitions (for MCP listTools).
876
- */
877
- export declare function getToolDefinitions(): {
878
1171
  name: string;
879
1172
  description: string;
880
1173
  inputSchema: {
881
- type: "object";
882
- properties: {
883
- projectId: {
884
- type: string;
885
- description: string;
886
- };
887
- };
888
- } | {
889
1174
  type: "object";
890
1175
  properties: {
891
1176
  boardId: {
892
1177
  type: string;
893
1178
  description: string;
894
1179
  };
895
- includeTaskCounts: {
896
- type: string;
897
- description: string;
898
- default: boolean;
899
- };
900
- };
901
- required: string[];
902
- } | {
903
- type: "object";
904
- properties: {
905
- listId: {
906
- type: string;
907
- description: string;
908
- };
909
- name: {
910
- type: string;
911
- description: string;
912
- };
913
- description: {
914
- type: string;
915
- description: string;
916
- };
917
- tasks: {
918
- type: string;
919
- items: {
920
- type: string;
921
- };
922
- description: string;
923
- };
924
- dueDate: {
925
- type: string;
926
- description: string;
927
- };
928
- labelIds: {
929
- type: string;
930
- items: {
931
- type: string;
932
- };
933
- description: string;
934
- };
935
1180
  };
936
1181
  required: string[];
1182
+ };
1183
+ handler: (params: {
1184
+ boardId?: string;
1185
+ }) => Promise<{
1186
+ content: {
1187
+ type: "text";
1188
+ text: string;
1189
+ }[];
937
1190
  } | {
1191
+ content: {
1192
+ type: "text";
1193
+ text: string;
1194
+ }[];
1195
+ isError: boolean;
1196
+ }>;
1197
+ } | {
1198
+ name: string;
1199
+ description: string;
1200
+ inputSchema: {
938
1201
  type: "object";
939
1202
  properties: {
940
1203
  cardId: {
941
1204
  type: string;
942
1205
  description: string;
943
1206
  };
944
- name: {
1207
+ limit: {
945
1208
  type: string;
946
1209
  description: string;
947
1210
  };
948
- description: {
949
- type: string[];
950
- description: string;
951
- };
952
- dueDate: {
953
- type: string[];
954
- description: string;
955
- };
956
- isCompleted: {
1211
+ beforeId: {
957
1212
  type: string;
958
1213
  description: string;
959
1214
  };
960
1215
  };
961
1216
  required: string[];
962
- } | {
1217
+ };
1218
+ handler: (params: {
1219
+ cardId: string;
1220
+ limit?: number;
1221
+ beforeId?: string;
1222
+ }) => Promise<{
1223
+ content: {
1224
+ type: "text";
1225
+ text: string;
1226
+ }[];
1227
+ }>;
1228
+ } | {
1229
+ name: string;
1230
+ description: string;
1231
+ inputSchema: {
963
1232
  type: "object";
964
1233
  properties: {
965
- cardId: {
966
- type: string;
967
- description: string;
968
- };
969
- listId: {
1234
+ boardId: {
970
1235
  type: string;
971
1236
  description: string;
972
1237
  };
973
- position: {
1238
+ since: {
974
1239
  type: string;
975
1240
  description: string;
976
1241
  };
977
- };
978
- required: string[];
979
- } | {
980
- type: "object";
981
- properties: {
982
- cardId: {
1242
+ limit: {
983
1243
  type: string;
984
1244
  description: string;
985
1245
  };
986
- tasks: {
1246
+ types: {
987
1247
  type: string;
988
1248
  items: {
989
1249
  type: string;
1250
+ enum: ("createCard" | "moveCard" | "addMemberToCard" | "removeMemberFromCard" | "completeTask" | "uncompleteTask")[];
990
1251
  };
991
- minItems: number;
992
- description: string;
993
- };
994
- };
995
- required: string[];
996
- } | {
997
- type: "object";
998
- properties: {
999
- taskId: {
1000
- type: string;
1001
- description: string;
1002
- };
1003
- name: {
1004
- type: string;
1005
- description: string;
1006
- };
1007
- isCompleted: {
1008
- type: string;
1009
- description: string;
1010
- };
1011
- };
1012
- required: string[];
1013
- } | {
1014
- type: "object";
1015
- properties: {
1016
- taskId: {
1017
- type: string;
1018
- description: string;
1019
- };
1020
- };
1021
- required: string[];
1022
- } | {
1023
- type: "object";
1024
- properties: {
1025
- action: {
1026
- type: string;
1027
- enum: string[];
1028
- description: string;
1029
- };
1030
- boardId: {
1031
- type: string;
1032
- description: string;
1033
- };
1034
- labelId: {
1035
- type: string;
1036
- description: string;
1037
- };
1038
- name: {
1039
- type: string;
1040
- description: string;
1041
- };
1042
- color: {
1043
- type: string;
1044
1252
  description: string;
1045
1253
  };
1046
1254
  };
1047
- required: string[];
1048
- } | {
1255
+ };
1256
+ handler: (params: {
1257
+ boardId?: string;
1258
+ since?: string;
1259
+ limit?: number;
1260
+ types?: string[];
1261
+ }) => Promise<{
1262
+ content: {
1263
+ type: "text";
1264
+ text: string;
1265
+ }[];
1266
+ }>;
1267
+ } | {
1268
+ name: string;
1269
+ description: string;
1270
+ inputSchema: {
1049
1271
  type: "object";
1050
1272
  properties: {
1051
1273
  cardId: {
1052
1274
  type: string;
1053
1275
  description: string;
1054
1276
  };
1055
- addLabelIds: {
1277
+ add: {
1056
1278
  type: string;
1057
1279
  items: {
1058
1280
  type: string;
1059
1281
  };
1060
1282
  description: string;
1061
1283
  };
1062
- labelIds: {
1284
+ remove: {
1063
1285
  type: string;
1064
1286
  items: {
1065
1287
  type: string;
1066
1288
  };
1067
1289
  description: string;
1068
1290
  };
1069
- removeLabelIds: {
1291
+ addUserNames: {
1070
1292
  type: string;
1071
1293
  items: {
1072
1294
  type: string;
1073
1295
  };
1074
1296
  description: string;
1075
1297
  };
1076
- };
1077
- required: string[];
1078
- } | {
1079
- type: "object";
1080
- properties: {
1081
- cardId: {
1082
- type: string;
1083
- description: string;
1084
- };
1085
- text: {
1086
- type: string;
1087
- description: string;
1088
- };
1089
- };
1090
- required: string[];
1091
- } | {
1092
- type: "object";
1093
- properties: {
1094
- action: {
1095
- type: string;
1096
- enum: string[];
1097
- description: string;
1098
- };
1099
- commentId: {
1298
+ removeUserNames: {
1100
1299
  type: string;
1300
+ items: {
1301
+ type: string;
1302
+ };
1101
1303
  description: string;
1102
1304
  };
1103
- text: {
1305
+ boardId: {
1104
1306
  type: string;
1105
1307
  description: string;
1106
1308
  };
1107
1309
  };
1108
1310
  required: string[];
1109
- } | {
1311
+ };
1312
+ handler: (params: {
1313
+ cardId: string;
1314
+ add?: string[];
1315
+ remove?: string[];
1316
+ addUserNames?: string[];
1317
+ removeUserNames?: string[];
1318
+ boardId?: string;
1319
+ }) => Promise<{
1320
+ isError?: true | undefined;
1321
+ content: {
1322
+ type: "text";
1323
+ text: string;
1324
+ }[];
1325
+ }>;
1326
+ } | {
1327
+ name: string;
1328
+ description: string;
1329
+ inputSchema: {
1110
1330
  type: "object";
1111
1331
  properties: {
1112
- action: {
1113
- type: string;
1114
- enum: string[];
1115
- description: string;
1116
- };
1117
1332
  boardId: {
1118
1333
  type: string;
1119
1334
  description: string;
1120
1335
  };
1121
- listId: {
1122
- type: string;
1123
- description: string;
1124
- };
1125
- name: {
1126
- type: string;
1127
- description: string;
1128
- };
1129
- position: {
1130
- type: string;
1131
- description: string;
1132
- };
1133
- type: {
1336
+ detail: {
1134
1337
  type: string;
1135
1338
  enum: string[];
1136
1339
  description: string;
1137
1340
  };
1138
1341
  };
1139
- required: string[];
1140
- } | {
1141
- type: "object";
1142
- properties: {
1143
- cardId: {
1144
- type: string;
1145
- description: string;
1146
- };
1147
- filePath: {
1148
- type: string;
1149
- description: string;
1150
- };
1151
- name: {
1152
- type: string;
1153
- description: string;
1154
- };
1155
- };
1156
- required: string[];
1342
+ };
1343
+ handler: (params: {
1344
+ boardId?: string;
1345
+ detail?: "digest" | "full";
1346
+ }) => Promise<{
1347
+ content: {
1348
+ type: "text";
1349
+ text: string;
1350
+ }[];
1351
+ isError: true;
1157
1352
  } | {
1353
+ content: {
1354
+ type: "text";
1355
+ text: string;
1356
+ }[];
1357
+ }>;
1358
+ } | {
1359
+ name: string;
1360
+ description: string;
1361
+ inputSchema: {
1158
1362
  type: "object";
1159
1363
  properties: {
1160
- cardId: {
1364
+ boardId: {
1161
1365
  type: string;
1162
1366
  description: string;
1163
1367
  };
1164
1368
  };
1165
- required: string[];
1369
+ };
1370
+ handler: (params?: {
1371
+ boardId?: string;
1372
+ }) => Promise<{
1373
+ content: {
1374
+ type: "text";
1375
+ text: string;
1376
+ }[];
1377
+ isError: true;
1166
1378
  } | {
1379
+ content: {
1380
+ type: "text";
1381
+ text: string;
1382
+ }[];
1383
+ }>;
1384
+ } | {
1385
+ name: string;
1386
+ description: string;
1387
+ inputSchema: {
1167
1388
  type: "object";
1168
1389
  properties: {
1169
1390
  cardId: {
1170
1391
  type: string;
1171
1392
  description: string;
1172
1393
  };
1173
- attachmentId: {
1174
- type: string;
1175
- description: string;
1176
- };
1177
- };
1178
- required: string[];
1179
- } | {
1180
- type: "object";
1181
- properties: {
1182
- attachmentId: {
1183
- type: string;
1184
- description: string;
1185
- };
1186
- };
1187
- required: string[];
1188
- } | {
1189
- type: "object";
1190
- properties: {
1191
1394
  listId: {
1192
1395
  type: string;
1193
1396
  description: string;
1194
1397
  };
1195
- withLabels: {
1196
- type: string;
1197
- description: string;
1198
- };
1199
- withDescription: {
1200
- type: string;
1201
- description: string;
1202
- };
1203
- labelFilter: {
1204
- type: string;
1205
- description: string;
1206
- };
1207
- limit: {
1398
+ boardId: {
1208
1399
  type: string;
1209
1400
  description: string;
1210
1401
  };
1211
- offset: {
1402
+ name: {
1212
1403
  type: string;
1213
1404
  description: string;
1214
1405
  };
1215
- };
1216
- required: string[];
1217
- } | {
1218
- type: "object";
1219
- properties: {
1220
- boardId: {
1406
+ position: {
1221
1407
  type: string;
1222
1408
  description: string;
1223
1409
  };
1224
1410
  };
1225
1411
  required: string[];
1226
- } | {
1412
+ };
1413
+ handler: (params: {
1414
+ cardId: string;
1415
+ listId?: string;
1416
+ boardId?: string;
1417
+ name?: string;
1418
+ position?: number;
1419
+ }) => Promise<{
1420
+ isError?: true | undefined;
1421
+ content: {
1422
+ type: "text";
1423
+ text: string;
1424
+ }[];
1425
+ }>;
1426
+ } | {
1427
+ name: string;
1428
+ description: string;
1429
+ inputSchema: {
1227
1430
  type: "object";
1228
1431
  properties: {
1229
- boardId: {
1230
- type: string;
1231
- description: string;
1232
- };
1233
- cardsFrom: {
1432
+ cardId: {
1234
1433
  type: string;
1235
- items: {
1236
- type: string;
1237
- };
1238
1434
  description: string;
1239
1435
  };
1240
- highlightLabel: {
1436
+ restoreToListId: {
1241
1437
  type: string;
1242
1438
  description: string;
1243
1439
  };
1244
- limit: {
1440
+ position: {
1245
1441
  type: string;
1246
1442
  description: string;
1247
1443
  };
1248
1444
  };
1249
1445
  required: string[];
1250
- } | {
1446
+ };
1447
+ handler: (params: {
1448
+ cardId: string;
1449
+ restoreToListId?: string;
1450
+ position?: number;
1451
+ }) => Promise<{
1452
+ isError?: true | undefined;
1453
+ content: {
1454
+ type: "text";
1455
+ text: string;
1456
+ }[];
1457
+ }>;
1458
+ } | {
1459
+ name: string;
1460
+ description: string;
1461
+ inputSchema: {
1251
1462
  type: "object";
1252
1463
  properties: {
1253
- boardId: {
1254
- type: string;
1255
- description: string;
1256
- };
1257
- labelName: {
1464
+ fromListId: {
1258
1465
  type: string;
1259
1466
  description: string;
1260
1467
  };
1261
- query: {
1468
+ toListId: {
1262
1469
  type: string;
1263
1470
  description: string;
1264
1471
  };
1265
- listId: {
1266
- type: string;
1267
- description: string;
1268
- };
1269
- withDescription: {
1270
- type: string;
1271
- description: string;
1272
- };
1273
- limit: {
1274
- type: string;
1275
- description: string;
1276
- };
1277
- offset: {
1472
+ boardId: {
1278
1473
  type: string;
1279
1474
  description: string;
1280
1475
  };
1281
1476
  };
1282
1477
  required: string[];
1283
1478
  };
1479
+ handler: (params: {
1480
+ fromListId: string;
1481
+ toListId: string;
1482
+ boardId?: string;
1483
+ }) => Promise<{
1484
+ isError?: true | undefined;
1485
+ content: {
1486
+ type: "text";
1487
+ text: string;
1488
+ }[];
1489
+ }>;
1490
+ })[];
1491
+ /**
1492
+ * Content blocks a tool may return.
1493
+ * "image" lets the model actually SEE an attached screenshot (base64).
1494
+ */
1495
+ export type ToolContent = {
1496
+ type: "text";
1497
+ text: string;
1498
+ } | {
1499
+ type: "image";
1500
+ data: string;
1501
+ mimeType: string;
1502
+ };
1503
+ /**
1504
+ * Tool type definition.
1505
+ */
1506
+ export interface Tool {
1507
+ name: string;
1508
+ description: string;
1509
+ inputSchema: {
1510
+ type: "object";
1511
+ properties: Record<string, unknown>;
1512
+ required?: string[];
1513
+ };
1514
+ handler: (params: unknown) => Promise<{
1515
+ content: ToolContent[];
1516
+ isError?: boolean;
1517
+ }>;
1518
+ }
1519
+ /**
1520
+ * Get a tool by name.
1521
+ *
1522
+ * Returns a refusing stub for tools disabled by PLANKA_READ_ONLY or
1523
+ * PLANKA_DISABLED_TOOLS, and undefined only for names that do not exist.
1524
+ */
1525
+ export declare function getTool(name: string, policy?: AccessPolicy): Tool | undefined;
1526
+ /**
1527
+ * Required inputSchema fields that never arrived.
1528
+ *
1529
+ * With one tool per action (create/update/delete instead of a `manage_*` enum)
1530
+ * `required` is finally expressive enough for this generic check to carry the
1531
+ * weight the hand-written guards used to.
1532
+ *
1533
+ * Checked against `effectiveInputSchema`, never the raw registry schema: what
1534
+ * the deployment ANNOUNCED is what the call is judged by. Doing it the other
1535
+ * way is how `PLANKA_DEFAULT_BOARD_ID` used to reject `planka_board_summary {}`
1536
+ * while its own tools/list entry said `boardId` was optional.
1537
+ */
1538
+ export declare function findMissingRequiredArgs(tool: Tool, args: unknown, policy?: AccessPolicy): string[];
1539
+ /**
1540
+ * Tools kept only so callers written against the old names keep working.
1541
+ *
1542
+ * Each one routes to the create_/update_/delete_ tool that replaced it and adds
1543
+ * nothing else. They are still callable when hidden — a model working from a
1544
+ * cached tools/list must get the real behaviour, not "unknown tool".
1545
+ *
1546
+ * `PLANKA_HIDE_DEPRECATED=true` drops them from tools/list, which is worth a
1547
+ * few hundred characters of context per session on a deployment that has
1548
+ * already migrated.
1549
+ */
1550
+ export declare const DEPRECATED_TOOL_NAMES: ReadonlySet<string>;
1551
+ /**
1552
+ * The schema a tool is actually published — and judged — with.
1553
+ *
1554
+ * The single source of truth for both sides of the contract: `tools/list`
1555
+ * advertises this, and the runtime presence check validates against this.
1556
+ */
1557
+ export declare function effectiveInputSchema(tool: {
1558
+ inputSchema: Tool["inputSchema"];
1559
+ }, policy?: AccessPolicy): Tool["inputSchema"];
1560
+ /**
1561
+ * Get all tool definitions (for MCP listTools), after the access policy:
1562
+ * read-only and disabled tools are not advertised at all.
1563
+ */
1564
+ export declare function getToolDefinitions(policy?: AccessPolicy): {
1565
+ _meta?: Record<string, unknown> | undefined;
1566
+ annotations?: import("./annotations.js").ToolBehaviourHints | undefined;
1567
+ description: string;
1568
+ inputSchema: {
1569
+ type: "object";
1570
+ properties: Record<string, unknown>;
1571
+ required?: string[];
1572
+ };
1573
+ title?: string | undefined;
1574
+ name: string;
1284
1575
  }[];
1285
1576
  export { navigationTools } from "./navigation.js";
1286
1577
  export { cardTools } from "./cards.js";
@@ -1290,4 +1581,11 @@ export { commentTools } from "./comments.js";
1290
1581
  export { listTools } from "./lists.js";
1291
1582
  export { attachmentTools } from "./attachments.js";
1292
1583
  export { queryTools } from "./queries.js";
1584
+ export { activityTools } from "./activity.js";
1585
+ export { memberTools } from "./members.js";
1586
+ export { userTools } from "./users.js";
1587
+ export { cardOpsTools } from "./card-ops.js";
1588
+ export { missingRequiredArgs } from "./dispatch.js";
1589
+ export { toolPresentation, TOOLS_REQUIRING_USER_INTERACTION, } from "./annotations.js";
1590
+ export type { ToolBehaviourHints, ToolPresentation } from "./annotations.js";
1293
1591
  //# sourceMappingURL=index.d.ts.map