@divyacon/piece-trello 0.0.0-stage → 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.
Files changed (313) hide show
  1. package/LICENSE.MIT-AP +24 -0
  2. package/README.md +8 -2
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +153 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/lib/actions/ai/add-checklist-item.d.ts +6 -0
  8. package/dist/lib/actions/ai/add-checklist-item.d.ts.map +1 -0
  9. package/dist/lib/actions/ai/add-checklist-item.js +64 -0
  10. package/dist/lib/actions/ai/add-checklist-item.js.map +1 -0
  11. package/dist/lib/actions/ai/add-checklist-to-card.d.ts +5 -0
  12. package/dist/lib/actions/ai/add-checklist-to-card.d.ts.map +1 -0
  13. package/dist/lib/actions/ai/add-checklist-to-card.js +57 -0
  14. package/dist/lib/actions/ai/add-checklist-to-card.js.map +1 -0
  15. package/dist/lib/actions/ai/add-comment-to-card.d.ts +5 -0
  16. package/dist/lib/actions/ai/add-comment-to-card.d.ts.map +1 -0
  17. package/dist/lib/actions/ai/add-comment-to-card.js +55 -0
  18. package/dist/lib/actions/ai/add-comment-to-card.js.map +1 -0
  19. package/dist/lib/actions/ai/add-label-to-card.d.ts +5 -0
  20. package/dist/lib/actions/ai/add-label-to-card.d.ts.map +1 -0
  21. package/dist/lib/actions/ai/add-label-to-card.js +56 -0
  22. package/dist/lib/actions/ai/add-label-to-card.js.map +1 -0
  23. package/dist/lib/actions/ai/add-member-to-card.d.ts +5 -0
  24. package/dist/lib/actions/ai/add-member-to-card.d.ts.map +1 -0
  25. package/dist/lib/actions/ai/add-member-to-card.js +56 -0
  26. package/dist/lib/actions/ai/add-member-to-card.js.map +1 -0
  27. package/dist/lib/actions/ai/add-reaction-to-comment.d.ts +5 -0
  28. package/dist/lib/actions/ai/add-reaction-to-comment.d.ts.map +1 -0
  29. package/dist/lib/actions/ai/add-reaction-to-comment.js +60 -0
  30. package/dist/lib/actions/ai/add-reaction-to-comment.js.map +1 -0
  31. package/dist/lib/actions/ai/ai-common.d.ts +18 -0
  32. package/dist/lib/actions/ai/ai-common.d.ts.map +1 -0
  33. package/dist/lib/actions/ai/ai-common.js +29 -0
  34. package/dist/lib/actions/ai/ai-common.js.map +1 -0
  35. package/dist/lib/actions/ai/archive-all-cards-in-list.d.ts +4 -0
  36. package/dist/lib/actions/ai/archive-all-cards-in-list.d.ts.map +1 -0
  37. package/dist/lib/actions/ai/archive-all-cards-in-list.js +47 -0
  38. package/dist/lib/actions/ai/archive-all-cards-in-list.js.map +1 -0
  39. package/dist/lib/actions/ai/archive-board.d.ts +5 -0
  40. package/dist/lib/actions/ai/archive-board.d.ts.map +1 -0
  41. package/dist/lib/actions/ai/archive-board.js +59 -0
  42. package/dist/lib/actions/ai/archive-board.js.map +1 -0
  43. package/dist/lib/actions/ai/archive-card.d.ts +5 -0
  44. package/dist/lib/actions/ai/archive-card.d.ts.map +1 -0
  45. package/dist/lib/actions/ai/archive-card.js +59 -0
  46. package/dist/lib/actions/ai/archive-card.js.map +1 -0
  47. package/dist/lib/actions/ai/archive-list.d.ts +5 -0
  48. package/dist/lib/actions/ai/archive-list.d.ts.map +1 -0
  49. package/dist/lib/actions/ai/archive-list.js +59 -0
  50. package/dist/lib/actions/ai/archive-list.js.map +1 -0
  51. package/dist/lib/actions/ai/create-board-label.d.ts +6 -0
  52. package/dist/lib/actions/ai/create-board-label.d.ts.map +1 -0
  53. package/dist/lib/actions/ai/create-board-label.js +67 -0
  54. package/dist/lib/actions/ai/create-board-label.js.map +1 -0
  55. package/dist/lib/actions/ai/create-board.d.ts +6 -0
  56. package/dist/lib/actions/ai/create-board.d.ts.map +1 -0
  57. package/dist/lib/actions/ai/create-board.js +64 -0
  58. package/dist/lib/actions/ai/create-board.js.map +1 -0
  59. package/dist/lib/actions/ai/create-card-ai.d.ts +8 -0
  60. package/dist/lib/actions/ai/create-card-ai.d.ts.map +1 -0
  61. package/dist/lib/actions/ai/create-card-ai.js +99 -0
  62. package/dist/lib/actions/ai/create-card-ai.js.map +1 -0
  63. package/dist/lib/actions/ai/create-list.d.ts +6 -0
  64. package/dist/lib/actions/ai/create-list.d.ts.map +1 -0
  65. package/dist/lib/actions/ai/create-list.js +70 -0
  66. package/dist/lib/actions/ai/create-list.js.map +1 -0
  67. package/dist/lib/actions/ai/delete-card-ai.d.ts +4 -0
  68. package/dist/lib/actions/ai/delete-card-ai.d.ts.map +1 -0
  69. package/dist/lib/actions/ai/delete-card-ai.js +63 -0
  70. package/dist/lib/actions/ai/delete-card-ai.js.map +1 -0
  71. package/dist/lib/actions/ai/delete-checklist-item.d.ts +5 -0
  72. package/dist/lib/actions/ai/delete-checklist-item.d.ts.map +1 -0
  73. package/dist/lib/actions/ai/delete-checklist-item.js +52 -0
  74. package/dist/lib/actions/ai/delete-checklist-item.js.map +1 -0
  75. package/dist/lib/actions/ai/delete-checklist.d.ts +4 -0
  76. package/dist/lib/actions/ai/delete-checklist.d.ts.map +1 -0
  77. package/dist/lib/actions/ai/delete-checklist.js +47 -0
  78. package/dist/lib/actions/ai/delete-checklist.js.map +1 -0
  79. package/dist/lib/actions/ai/delete-comment.d.ts +5 -0
  80. package/dist/lib/actions/ai/delete-comment.d.ts.map +1 -0
  81. package/dist/lib/actions/ai/delete-comment.js +52 -0
  82. package/dist/lib/actions/ai/delete-comment.js.map +1 -0
  83. package/dist/lib/actions/ai/get-board.d.ts +4 -0
  84. package/dist/lib/actions/ai/get-board.d.ts.map +1 -0
  85. package/dist/lib/actions/ai/get-board.js +49 -0
  86. package/dist/lib/actions/ai/get-board.js.map +1 -0
  87. package/dist/lib/actions/ai/get-card-ai.d.ts +4 -0
  88. package/dist/lib/actions/ai/get-card-ai.d.ts.map +1 -0
  89. package/dist/lib/actions/ai/get-card-ai.js +64 -0
  90. package/dist/lib/actions/ai/get-card-ai.js.map +1 -0
  91. package/dist/lib/actions/ai/get-list.d.ts +4 -0
  92. package/dist/lib/actions/ai/get-list.d.ts.map +1 -0
  93. package/dist/lib/actions/ai/get-list.js +49 -0
  94. package/dist/lib/actions/ai/get-list.js.map +1 -0
  95. package/dist/lib/actions/ai/get-member.d.ts +4 -0
  96. package/dist/lib/actions/ai/get-member.d.ts.map +1 -0
  97. package/dist/lib/actions/ai/get-member.js +49 -0
  98. package/dist/lib/actions/ai/get-member.js.map +1 -0
  99. package/dist/lib/actions/ai/get-my-member.d.ts +2 -0
  100. package/dist/lib/actions/ai/get-my-member.d.ts.map +1 -0
  101. package/dist/lib/actions/ai/get-my-member.js +43 -0
  102. package/dist/lib/actions/ai/get-my-member.js.map +1 -0
  103. package/dist/lib/actions/ai/list-board-labels.d.ts +5 -0
  104. package/dist/lib/actions/ai/list-board-labels.d.ts.map +1 -0
  105. package/dist/lib/actions/ai/list-board-labels.js +60 -0
  106. package/dist/lib/actions/ai/list-board-labels.js.map +1 -0
  107. package/dist/lib/actions/ai/list-board-members.d.ts +4 -0
  108. package/dist/lib/actions/ai/list-board-members.d.ts.map +1 -0
  109. package/dist/lib/actions/ai/list-board-members.js +51 -0
  110. package/dist/lib/actions/ai/list-board-members.js.map +1 -0
  111. package/dist/lib/actions/ai/list-boards.d.ts +5 -0
  112. package/dist/lib/actions/ai/list-boards.d.ts.map +1 -0
  113. package/dist/lib/actions/ai/list-boards.js +68 -0
  114. package/dist/lib/actions/ai/list-boards.js.map +1 -0
  115. package/dist/lib/actions/ai/list-card-attachments-ai.d.ts +4 -0
  116. package/dist/lib/actions/ai/list-card-attachments-ai.d.ts.map +1 -0
  117. package/dist/lib/actions/ai/list-card-attachments-ai.js +64 -0
  118. package/dist/lib/actions/ai/list-card-attachments-ai.js.map +1 -0
  119. package/dist/lib/actions/ai/list-card-checklists.d.ts +4 -0
  120. package/dist/lib/actions/ai/list-card-checklists.d.ts.map +1 -0
  121. package/dist/lib/actions/ai/list-card-checklists.js +51 -0
  122. package/dist/lib/actions/ai/list-card-checklists.js.map +1 -0
  123. package/dist/lib/actions/ai/list-card-comments.d.ts +5 -0
  124. package/dist/lib/actions/ai/list-card-comments.d.ts.map +1 -0
  125. package/dist/lib/actions/ai/list-card-comments.js +60 -0
  126. package/dist/lib/actions/ai/list-card-comments.js.map +1 -0
  127. package/dist/lib/actions/ai/list-card-members.d.ts +4 -0
  128. package/dist/lib/actions/ai/list-card-members.d.ts.map +1 -0
  129. package/dist/lib/actions/ai/list-card-members.js +51 -0
  130. package/dist/lib/actions/ai/list-card-members.js.map +1 -0
  131. package/dist/lib/actions/ai/list-cards-in-board.d.ts +5 -0
  132. package/dist/lib/actions/ai/list-cards-in-board.d.ts.map +1 -0
  133. package/dist/lib/actions/ai/list-cards-in-board.js +68 -0
  134. package/dist/lib/actions/ai/list-cards-in-board.js.map +1 -0
  135. package/dist/lib/actions/ai/list-cards-in-list.d.ts +5 -0
  136. package/dist/lib/actions/ai/list-cards-in-list.d.ts.map +1 -0
  137. package/dist/lib/actions/ai/list-cards-in-list.js +67 -0
  138. package/dist/lib/actions/ai/list-cards-in-list.js.map +1 -0
  139. package/dist/lib/actions/ai/list-lists.d.ts +5 -0
  140. package/dist/lib/actions/ai/list-lists.d.ts.map +1 -0
  141. package/dist/lib/actions/ai/list-lists.js +67 -0
  142. package/dist/lib/actions/ai/list-lists.js.map +1 -0
  143. package/dist/lib/actions/ai/list-organization-boards.d.ts +4 -0
  144. package/dist/lib/actions/ai/list-organization-boards.d.ts.map +1 -0
  145. package/dist/lib/actions/ai/list-organization-boards.js +51 -0
  146. package/dist/lib/actions/ai/list-organization-boards.js.map +1 -0
  147. package/dist/lib/actions/ai/move-all-cards-in-list.d.ts +6 -0
  148. package/dist/lib/actions/ai/move-all-cards-in-list.d.ts.map +1 -0
  149. package/dist/lib/actions/ai/move-all-cards-in-list.js +60 -0
  150. package/dist/lib/actions/ai/move-all-cards-in-list.js.map +1 -0
  151. package/dist/lib/actions/ai/move-card.d.ts +5 -0
  152. package/dist/lib/actions/ai/move-card.d.ts.map +1 -0
  153. package/dist/lib/actions/ai/move-card.js +56 -0
  154. package/dist/lib/actions/ai/move-card.js.map +1 -0
  155. package/dist/lib/actions/ai/remove-label-from-card.d.ts +5 -0
  156. package/dist/lib/actions/ai/remove-label-from-card.d.ts.map +1 -0
  157. package/dist/lib/actions/ai/remove-label-from-card.js +52 -0
  158. package/dist/lib/actions/ai/remove-label-from-card.js.map +1 -0
  159. package/dist/lib/actions/ai/remove-member-from-card.d.ts +5 -0
  160. package/dist/lib/actions/ai/remove-member-from-card.d.ts.map +1 -0
  161. package/dist/lib/actions/ai/remove-member-from-card.js +54 -0
  162. package/dist/lib/actions/ai/remove-member-from-card.js.map +1 -0
  163. package/dist/lib/actions/ai/rename-list.d.ts +5 -0
  164. package/dist/lib/actions/ai/rename-list.d.ts.map +1 -0
  165. package/dist/lib/actions/ai/rename-list.js +55 -0
  166. package/dist/lib/actions/ai/rename-list.js.map +1 -0
  167. package/dist/lib/actions/ai/search-cards.d.ts +7 -0
  168. package/dist/lib/actions/ai/search-cards.d.ts.map +1 -0
  169. package/dist/lib/actions/ai/search-cards.js +88 -0
  170. package/dist/lib/actions/ai/search-cards.js.map +1 -0
  171. package/dist/lib/actions/ai/search-members.d.ts +7 -0
  172. package/dist/lib/actions/ai/search-members.d.ts.map +1 -0
  173. package/dist/lib/actions/ai/search-members.js +75 -0
  174. package/dist/lib/actions/ai/search-members.js.map +1 -0
  175. package/dist/lib/actions/ai/set-checklist-item-state.d.ts +7 -0
  176. package/dist/lib/actions/ai/set-checklist-item-state.d.ts.map +1 -0
  177. package/dist/lib/actions/ai/set-checklist-item-state.js +71 -0
  178. package/dist/lib/actions/ai/set-checklist-item-state.js.map +1 -0
  179. package/dist/lib/actions/ai/update-board.d.ts +6 -0
  180. package/dist/lib/actions/ai/update-board.d.ts.map +1 -0
  181. package/dist/lib/actions/ai/update-board.js +64 -0
  182. package/dist/lib/actions/ai/update-board.js.map +1 -0
  183. package/dist/lib/actions/ai/update-card-ai.d.ts +11 -0
  184. package/dist/lib/actions/ai/update-card-ai.d.ts.map +1 -0
  185. package/dist/lib/actions/ai/update-card-ai.js +130 -0
  186. package/dist/lib/actions/ai/update-card-ai.js.map +1 -0
  187. package/dist/lib/actions/ai/update-comment.d.ts +6 -0
  188. package/dist/lib/actions/ai/update-comment.d.ts.map +1 -0
  189. package/dist/lib/actions/ai/update-comment.js +60 -0
  190. package/dist/lib/actions/ai/update-comment.js.map +1 -0
  191. package/dist/lib/actions/ai/update-label.d.ts +6 -0
  192. package/dist/lib/actions/ai/update-label.d.ts.map +1 -0
  193. package/dist/lib/actions/ai/update-label.js +65 -0
  194. package/dist/lib/actions/ai/update-label.js.map +1 -0
  195. package/dist/lib/actions/card/create-card.d.ts +9 -0
  196. package/dist/lib/actions/card/create-card.d.ts.map +1 -0
  197. package/dist/lib/actions/card/create-card.js +73 -0
  198. package/dist/lib/actions/card/create-card.js.map +1 -0
  199. package/dist/lib/actions/card/delete-card.d.ts +4 -0
  200. package/dist/lib/actions/card/delete-card.d.ts.map +1 -0
  201. package/dist/lib/actions/card/delete-card.js +44 -0
  202. package/dist/lib/actions/card/delete-card.js.map +1 -0
  203. package/dist/lib/actions/card/get-card.d.ts +4 -0
  204. package/dist/lib/actions/card/get-card.d.ts.map +1 -0
  205. package/dist/lib/actions/card/get-card.js +45 -0
  206. package/dist/lib/actions/card/get-card.js.map +1 -0
  207. package/dist/lib/actions/card/update-card.d.ts +12 -0
  208. package/dist/lib/actions/card/update-card.d.ts.map +1 -0
  209. package/dist/lib/actions/card/update-card.js +104 -0
  210. package/dist/lib/actions/card/update-card.js.map +1 -0
  211. package/dist/lib/actions/card-attachment/add-card-attachment.d.ts +8 -0
  212. package/dist/lib/actions/card-attachment/add-card-attachment.d.ts.map +1 -0
  213. package/dist/lib/actions/card-attachment/add-card-attachment.js +76 -0
  214. package/dist/lib/actions/card-attachment/add-card-attachment.js.map +1 -0
  215. package/dist/lib/actions/card-attachment/delete-card-attachment.d.ts +5 -0
  216. package/dist/lib/actions/card-attachment/delete-card-attachment.d.ts.map +1 -0
  217. package/dist/lib/actions/card-attachment/delete-card-attachment.js +49 -0
  218. package/dist/lib/actions/card-attachment/delete-card-attachment.js.map +1 -0
  219. package/dist/lib/actions/card-attachment/get-card-attachment.d.ts +5 -0
  220. package/dist/lib/actions/card-attachment/get-card-attachment.d.ts.map +1 -0
  221. package/dist/lib/actions/card-attachment/get-card-attachment.js +50 -0
  222. package/dist/lib/actions/card-attachment/get-card-attachment.js.map +1 -0
  223. package/dist/lib/actions/card-attachment/get-card-attachments.d.ts +4 -0
  224. package/dist/lib/actions/card-attachment/get-card-attachments.d.ts.map +1 -0
  225. package/dist/lib/actions/card-attachment/get-card-attachments.js +45 -0
  226. package/dist/lib/actions/card-attachment/get-card-attachments.js.map +1 -0
  227. package/dist/lib/common/index.d.ts +25 -0
  228. package/dist/lib/common/index.d.ts.map +1 -0
  229. package/dist/lib/common/index.js +292 -0
  230. package/dist/lib/common/index.js.map +1 -0
  231. package/dist/lib/common/props/card.d.ts +116 -0
  232. package/dist/lib/common/props/card.d.ts.map +1 -0
  233. package/dist/lib/common/props/card.js +3 -0
  234. package/dist/lib/common/props/card.js.map +1 -0
  235. package/dist/lib/output-schemas.d.ts +50 -0
  236. package/dist/lib/output-schemas.d.ts.map +1 -0
  237. package/dist/lib/output-schemas.js +316 -0
  238. package/dist/lib/output-schemas.js.map +1 -0
  239. package/dist/lib/triggers/cardMoved.d.ts +15 -0
  240. package/dist/lib/triggers/cardMoved.d.ts.map +1 -0
  241. package/dist/lib/triggers/cardMoved.js +152 -0
  242. package/dist/lib/triggers/cardMoved.js.map +1 -0
  243. package/dist/lib/triggers/deadline.d.ts +23 -0
  244. package/dist/lib/triggers/deadline.d.ts.map +1 -0
  245. package/dist/lib/triggers/deadline.js +94 -0
  246. package/dist/lib/triggers/deadline.js.map +1 -0
  247. package/dist/lib/triggers/newCard.d.ts +15 -0
  248. package/dist/lib/triggers/newCard.d.ts.map +1 -0
  249. package/dist/lib/triggers/newCard.js +151 -0
  250. package/dist/lib/triggers/newCard.js.map +1 -0
  251. package/package.json +45 -3
  252. package/src/index.ts +153 -0
  253. package/src/lib/actions/ai/add-checklist-item.ts +67 -0
  254. package/src/lib/actions/ai/add-checklist-to-card.ts +58 -0
  255. package/src/lib/actions/ai/add-comment-to-card.ts +55 -0
  256. package/src/lib/actions/ai/add-label-to-card.ts +57 -0
  257. package/src/lib/actions/ai/add-member-to-card.ts +57 -0
  258. package/src/lib/actions/ai/add-reaction-to-comment.ts +61 -0
  259. package/src/lib/actions/ai/ai-common.ts +40 -0
  260. package/src/lib/actions/ai/archive-all-cards-in-list.ts +47 -0
  261. package/src/lib/actions/ai/archive-board.ts +58 -0
  262. package/src/lib/actions/ai/archive-card.ts +58 -0
  263. package/src/lib/actions/ai/archive-list.ts +58 -0
  264. package/src/lib/actions/ai/create-board-label.ts +69 -0
  265. package/src/lib/actions/ai/create-board.ts +66 -0
  266. package/src/lib/actions/ai/create-card-ai.ts +103 -0
  267. package/src/lib/actions/ai/create-list.ts +71 -0
  268. package/src/lib/actions/ai/delete-card-ai.ts +64 -0
  269. package/src/lib/actions/ai/delete-checklist-item.ts +54 -0
  270. package/src/lib/actions/ai/delete-checklist.ts +48 -0
  271. package/src/lib/actions/ai/delete-comment.ts +52 -0
  272. package/src/lib/actions/ai/get-board.ts +49 -0
  273. package/src/lib/actions/ai/get-card-ai.ts +67 -0
  274. package/src/lib/actions/ai/get-list.ts +49 -0
  275. package/src/lib/actions/ai/get-member.ts +50 -0
  276. package/src/lib/actions/ai/get-my-member.ts +43 -0
  277. package/src/lib/actions/ai/list-board-labels.ts +62 -0
  278. package/src/lib/actions/ai/list-board-members.ts +52 -0
  279. package/src/lib/actions/ai/list-boards.ts +71 -0
  280. package/src/lib/actions/ai/list-card-attachments-ai.ts +66 -0
  281. package/src/lib/actions/ai/list-card-checklists.ts +52 -0
  282. package/src/lib/actions/ai/list-card-comments.ts +62 -0
  283. package/src/lib/actions/ai/list-card-members.ts +52 -0
  284. package/src/lib/actions/ai/list-cards-in-board.ts +70 -0
  285. package/src/lib/actions/ai/list-cards-in-list.ts +69 -0
  286. package/src/lib/actions/ai/list-lists.ts +69 -0
  287. package/src/lib/actions/ai/list-organization-boards.ts +53 -0
  288. package/src/lib/actions/ai/move-all-cards-in-list.ts +61 -0
  289. package/src/lib/actions/ai/move-card.ts +57 -0
  290. package/src/lib/actions/ai/remove-label-from-card.ts +53 -0
  291. package/src/lib/actions/ai/remove-member-from-card.ts +55 -0
  292. package/src/lib/actions/ai/rename-list.ts +55 -0
  293. package/src/lib/actions/ai/search-cards.ts +91 -0
  294. package/src/lib/actions/ai/search-members.ts +75 -0
  295. package/src/lib/actions/ai/set-checklist-item-state.ts +73 -0
  296. package/src/lib/actions/ai/update-board.ts +65 -0
  297. package/src/lib/actions/ai/update-card-ai.ts +136 -0
  298. package/src/lib/actions/ai/update-comment.ts +61 -0
  299. package/src/lib/actions/ai/update-label.ts +67 -0
  300. package/src/lib/actions/card/create-card.ts +73 -0
  301. package/src/lib/actions/card/delete-card.ts +44 -0
  302. package/src/lib/actions/card/get-card.ts +44 -0
  303. package/src/lib/actions/card/update-card.ts +113 -0
  304. package/src/lib/actions/card-attachment/add-card-attachment.ts +86 -0
  305. package/src/lib/actions/card-attachment/delete-card-attachment.ts +49 -0
  306. package/src/lib/actions/card-attachment/get-card-attachment.ts +51 -0
  307. package/src/lib/actions/card-attachment/get-card-attachments.ts +45 -0
  308. package/src/lib/common/index.ts +333 -0
  309. package/src/lib/common/props/card.ts +113 -0
  310. package/src/lib/output-schemas.ts +374 -0
  311. package/src/lib/triggers/cardMoved.ts +155 -0
  312. package/src/lib/triggers/deadline.ts +89 -0
  313. package/src/lib/triggers/newCard.ts +156 -0
package/src/index.ts ADDED
@@ -0,0 +1,153 @@
1
+ import {
2
+ HttpMethod,
3
+ HttpRequest,
4
+ createCustomApiCallAction,
5
+ httpClient,
6
+ } from '@agnocon/pieces-common';
7
+ import { PieceAuth, createPiece } from '@agnocon/pieces-framework';
8
+ import { PieceCategory } from '@agnocon/pieces-framework';
9
+ import { createCard } from './lib/actions/card/create-card';
10
+ import { getCard } from './lib/actions/card/get-card';
11
+ import { updateCard } from './lib/actions/card/update-card';
12
+ import { deleteCard } from './lib/actions/card/delete-card';
13
+ import { getCardAttachments } from './lib/actions/card-attachment/get-card-attachments';
14
+ import { addCardAttachment } from './lib/actions/card-attachment/add-card-attachment';
15
+ import { getCardAttachment } from './lib/actions/card-attachment/get-card-attachment';
16
+ import { deleteCardAttachment } from './lib/actions/card-attachment/delete-card-attachment';
17
+ // audience:'ai' agent atomics (twins reuse existing run() logic with agent-shaped props)
18
+ import { createCardAi } from './lib/actions/ai/create-card-ai';
19
+ import { getCardAi } from './lib/actions/ai/get-card-ai';
20
+ import { updateCardAi } from './lib/actions/ai/update-card-ai';
21
+ import { deleteCardAi } from './lib/actions/ai/delete-card-ai';
22
+ import { listCardAttachmentsAi } from './lib/actions/ai/list-card-attachments-ai';
23
+ import { searchCards } from './lib/actions/ai/search-cards';
24
+ import { searchMembers } from './lib/actions/ai/search-members';
25
+ import { listCardsInList } from './lib/actions/ai/list-cards-in-list';
26
+ import { listCardsInBoard } from './lib/actions/ai/list-cards-in-board';
27
+ import { addCommentToCard } from './lib/actions/ai/add-comment-to-card';
28
+ import { listCardComments } from './lib/actions/ai/list-card-comments';
29
+ import { updateComment } from './lib/actions/ai/update-comment';
30
+ import { deleteComment } from './lib/actions/ai/delete-comment';
31
+ import { addMemberToCard } from './lib/actions/ai/add-member-to-card';
32
+ import { removeMemberFromCard } from './lib/actions/ai/remove-member-from-card';
33
+ import { listCardMembers } from './lib/actions/ai/list-card-members';
34
+ import { createBoardLabel } from './lib/actions/ai/create-board-label';
35
+ import { addLabelToCard } from './lib/actions/ai/add-label-to-card';
36
+ import { removeLabelFromCard } from './lib/actions/ai/remove-label-from-card';
37
+ import { listBoardLabels } from './lib/actions/ai/list-board-labels';
38
+ import { updateLabel } from './lib/actions/ai/update-label';
39
+ import { moveCard } from './lib/actions/ai/move-card';
40
+ import { archiveCard } from './lib/actions/ai/archive-card';
41
+ import { createList } from './lib/actions/ai/create-list';
42
+ import { listLists } from './lib/actions/ai/list-lists';
43
+ import { getList } from './lib/actions/ai/get-list';
44
+ import { renameList } from './lib/actions/ai/rename-list';
45
+ import { archiveList } from './lib/actions/ai/archive-list';
46
+ import { moveAllCardsInList } from './lib/actions/ai/move-all-cards-in-list';
47
+ import { archiveAllCardsInList } from './lib/actions/ai/archive-all-cards-in-list';
48
+ import { createBoard } from './lib/actions/ai/create-board';
49
+ import { getBoard } from './lib/actions/ai/get-board';
50
+ import { listBoards } from './lib/actions/ai/list-boards';
51
+ import { updateBoard } from './lib/actions/ai/update-board';
52
+ import { archiveBoard } from './lib/actions/ai/archive-board';
53
+ import { listBoardMembers } from './lib/actions/ai/list-board-members';
54
+ import { addChecklistToCard } from './lib/actions/ai/add-checklist-to-card';
55
+ import { listCardChecklists } from './lib/actions/ai/list-card-checklists';
56
+ import { deleteChecklist } from './lib/actions/ai/delete-checklist';
57
+ import { setChecklistItemState } from './lib/actions/ai/set-checklist-item-state';
58
+ import { deleteChecklistItem } from './lib/actions/ai/delete-checklist-item';
59
+ import { addChecklistItem } from './lib/actions/ai/add-checklist-item';
60
+ import { getMyMember } from './lib/actions/ai/get-my-member';
61
+ import { getMember } from './lib/actions/ai/get-member';
62
+ import { listOrganizationBoards } from './lib/actions/ai/list-organization-boards';
63
+ import { addReactionToComment } from './lib/actions/ai/add-reaction-to-comment';
64
+ import { cardMovedTrigger } from './lib/triggers/cardMoved';
65
+ import { newCardTrigger } from './lib/triggers/newCard';
66
+ import { deadlineTrigger } from './lib/triggers/deadline';
67
+
68
+ const markdownProperty = `
69
+ To obtain your API key and token, follow these steps:
70
+
71
+ 1. Go to https://trello.com/power-ups/admin.
72
+ 2. Click **New** to create a new power-up.
73
+ 3. Enter power-up information, and click **Create**.
74
+ 4. From the API Key page, click **Generate a new API key**.
75
+ 5. Copy **API Key** and enter it into the Trello API Key connection.
76
+ 6. On the right side of the page, find the text *"you can manually generate a Token"* and click the **Token** link.**Do not use the Secret field below the API key**.
77
+ 7. Authorize the app and copy the generated token.
78
+ 8. Paste the token into the Trello Token field.
79
+ `;
80
+ export const trelloAuth = PieceAuth.BasicAuth({
81
+ description: markdownProperty,
82
+ required: true,
83
+ username: {
84
+ displayName: 'API Key',
85
+ description: 'Trello API Key',
86
+ },
87
+ password: {
88
+ displayName: 'Token',
89
+ description: 'Trello Token',
90
+ },
91
+ validate: async ({ auth }) => {
92
+ const { username, password } = auth;
93
+ if (!username || !password) {
94
+ return {
95
+ valid: false,
96
+ error: 'Empty API Key or Token',
97
+ };
98
+ }
99
+ try {
100
+ const request: HttpRequest = {
101
+ method: HttpMethod.GET,
102
+ url:
103
+ `https://api.trello.com/1/members/me/boards` +
104
+ `?key=` +
105
+ username +
106
+ `&token=` +
107
+ password,
108
+ };
109
+ await httpClient.sendRequest(request);
110
+ return {
111
+ valid: true,
112
+ };
113
+ } catch (e) {
114
+ return {
115
+ valid: false,
116
+ error: 'Invalid API Key or Token',
117
+ };
118
+ }
119
+ },
120
+ });
121
+
122
+ export const trello = createPiece({
123
+ displayName: 'Trello',
124
+ description: 'Project management tool for teams',
125
+ minimumSupportedRelease: '0.86.4',
126
+ logoUrl: 'https://cdn.activepieces.com/pieces/trello.png',
127
+ authors: ["Salem-Alaa", "kishanprmr", "MoShizzle", "khaledmashaly", "abuaboud", "AshotZaqoyan"],
128
+ categories: [PieceCategory.PRODUCTIVITY],
129
+ auth: trelloAuth,
130
+ actions: [createCard, getCard, updateCard, deleteCard, getCardAttachments, addCardAttachment, getCardAttachment, deleteCardAttachment,
131
+ // audience:'ai' agent atomics
132
+ createCardAi, getCardAi, updateCardAi, deleteCardAi, listCardAttachmentsAi, searchCards, searchMembers, listCardsInList, listCardsInBoard,
133
+ addCommentToCard, listCardComments, updateComment, deleteComment,
134
+ addMemberToCard, removeMemberFromCard, listCardMembers,
135
+ createBoardLabel, addLabelToCard, removeLabelFromCard, listBoardLabels, updateLabel,
136
+ moveCard, archiveCard,
137
+ createList, listLists, getList, renameList, archiveList, moveAllCardsInList, archiveAllCardsInList,
138
+ createBoard, getBoard, listBoards, updateBoard, archiveBoard, listBoardMembers,
139
+ addChecklistToCard, listCardChecklists, deleteChecklist, setChecklistItemState, deleteChecklistItem, addChecklistItem,
140
+ getMyMember, getMember, listOrganizationBoards, addReactionToComment, createCustomApiCallAction({
141
+ auth: trelloAuth,
142
+ baseUrl: () => 'https://api.trello.com/1',
143
+ authLocation: 'queryParams',
144
+ authMapping: async (auth) => {
145
+ return {
146
+ key: auth.username,
147
+ token: auth.password
148
+ }
149
+ }
150
+ })
151
+ ],
152
+ triggers: [cardMovedTrigger, newCardTrigger, deadlineTrigger],
153
+ });
@@ -0,0 +1,67 @@
1
+ import { createAction, Property } from '@agnocon/pieces-framework';
2
+ import {
3
+ httpClient,
4
+ HttpRequest,
5
+ HttpMethod,
6
+ QueryParams,
7
+ } from '@agnocon/pieces-common';
8
+ import { trelloCommon } from '../../common';
9
+ import { trelloAuth } from '../../..';
10
+ import { withAuthParams, rethrowTrelloError } from './ai-common';
11
+ import { addChecklistItemActionOutputSchema } from '../../output-schemas';
12
+
13
+
14
+ export const addChecklistItem = createAction({
15
+ auth: trelloAuth,
16
+ name: 'add_checklist_item',
17
+ displayName: 'Add Checklist Item (Agent)',
18
+ description: 'Add an item to a Trello checklist.',
19
+ audience: 'ai',
20
+ outputSchema: addChecklistItemActionOutputSchema,
21
+ aiMetadata: {
22
+ description:
23
+ 'Adds a check item to an existing Trello checklist. Obtain checklist_id (idChecklist) from List Card Checklists (or the output of Add Checklist To Card). Each call adds a distinct item, so it is not idempotent.',
24
+ idempotent: false,
25
+ },
26
+ props: {
27
+ checklist_id: Property.ShortText({
28
+ displayName: 'Checklist ID',
29
+ description:
30
+ 'The checklist id (idChecklist). Obtain it from List Card Checklists or Add Checklist To Card.',
31
+ required: true,
32
+ }),
33
+ name: Property.ShortText({
34
+ displayName: 'Item Name',
35
+ required: true,
36
+ }),
37
+ checked: Property.Checkbox({
38
+ displayName: 'Checked',
39
+ description: 'Create the item already marked complete.',
40
+ required: false,
41
+ }),
42
+ },
43
+
44
+ async run(context) {
45
+ const params: QueryParams = {
46
+ name: context.propsValue['name'],
47
+ };
48
+ if (context.propsValue['checked'] !== undefined) {
49
+ params['checked'] = context.propsValue['checked'] ? 'true' : 'false';
50
+ }
51
+ try {
52
+ const request: HttpRequest = {
53
+ method: HttpMethod.POST,
54
+ url: `${trelloCommon.baseUrl}checklists/${context.propsValue['checklist_id']}/checkItems`,
55
+ headers: { Accept: 'application/json' },
56
+ queryParams: withAuthParams(context.auth, params),
57
+ };
58
+ const response = await httpClient.sendRequest(request);
59
+ return response.body;
60
+ } catch (error: any) {
61
+ rethrowTrelloError(
62
+ error,
63
+ 'Checklist not found. Verify the checklist_id (resolve it via List Card Checklists).'
64
+ );
65
+ }
66
+ },
67
+ });
@@ -0,0 +1,58 @@
1
+ import { createAction, Property } from '@agnocon/pieces-framework';
2
+ import {
3
+ httpClient,
4
+ HttpRequest,
5
+ HttpMethod,
6
+ QueryParams,
7
+ } from '@agnocon/pieces-common';
8
+ import { trelloCommon } from '../../common';
9
+ import { trelloAuth } from '../../..';
10
+ import { withAuthParams, rethrowTrelloError } from './ai-common';
11
+ import { addChecklistToCardActionOutputSchema } from '../../output-schemas';
12
+
13
+ export const addChecklistToCard = createAction({
14
+ auth: trelloAuth,
15
+ name: 'add_checklist_to_card',
16
+ displayName: 'Add Checklist To Card (Agent)',
17
+ description: 'Create a checklist on a Trello card.',
18
+ audience: 'ai',
19
+ outputSchema: addChecklistToCardActionOutputSchema,
20
+ aiMetadata: {
21
+ description:
22
+ 'Creates a checklist on a Trello card and returns its idChecklist, which you then pass to Add Checklist Item and Set Checklist Item State. Obtain card_id from Search Cards. Each call creates a distinct checklist, so it is not idempotent.',
23
+ idempotent: false,
24
+ },
25
+ props: {
26
+ card_id: Property.ShortText({
27
+ displayName: 'Card ID',
28
+ description: 'The ID of the card. Obtain it from Search Cards.',
29
+ required: true,
30
+ }),
31
+ name: Property.ShortText({
32
+ displayName: 'Checklist Name',
33
+ required: false,
34
+ }),
35
+ },
36
+
37
+ async run(context) {
38
+ const params: QueryParams = {};
39
+ if (context.propsValue['name']) {
40
+ params['name'] = context.propsValue['name'] as string;
41
+ }
42
+ try {
43
+ const request: HttpRequest = {
44
+ method: HttpMethod.POST,
45
+ url: `${trelloCommon.baseUrl}cards/${context.propsValue['card_id']}/checklists`,
46
+ headers: { Accept: 'application/json' },
47
+ queryParams: withAuthParams(context.auth, params),
48
+ };
49
+ const response = await httpClient.sendRequest(request);
50
+ return response.body;
51
+ } catch (error: any) {
52
+ rethrowTrelloError(
53
+ error,
54
+ 'Card not found. Verify the card_id (resolve it via Search Cards).'
55
+ );
56
+ }
57
+ },
58
+ });
@@ -0,0 +1,55 @@
1
+ import { createAction, Property } from '@agnocon/pieces-framework';
2
+ import {
3
+ httpClient,
4
+ HttpRequest,
5
+ HttpMethod,
6
+ } from '@agnocon/pieces-common';
7
+ import { trelloCommon } from '../../common';
8
+ import { trelloAuth } from '../../..';
9
+ import { withAuthParams, rethrowTrelloError } from './ai-common';
10
+ import { addCommentToCardActionOutputSchema } from '../../output-schemas';
11
+
12
+ export const addCommentToCard = createAction({
13
+ auth: trelloAuth,
14
+ name: 'add_comment_to_card',
15
+ displayName: 'Add Comment To Card (Agent)',
16
+ description: 'Add a comment to a Trello card.',
17
+ audience: 'ai',
18
+ outputSchema: addCommentToCardActionOutputSchema,
19
+ aiMetadata: {
20
+ description:
21
+ 'Posts a comment on a Trello card identified by card_id. This is the primary way for an agent to report status or notes on a card. Obtain card_id from Search Cards. Each call adds a new comment, so it is not idempotent.',
22
+ idempotent: false,
23
+ },
24
+ props: {
25
+ card_id: Property.ShortText({
26
+ displayName: 'Card ID',
27
+ description: 'The ID of the card to comment on. Obtain it from Search Cards.',
28
+ required: true,
29
+ }),
30
+ text: Property.LongText({
31
+ displayName: 'Comment Text',
32
+ required: true,
33
+ }),
34
+ },
35
+
36
+ async run(context) {
37
+ try {
38
+ const request: HttpRequest = {
39
+ method: HttpMethod.POST,
40
+ url: `${trelloCommon.baseUrl}cards/${context.propsValue['card_id']}/actions/comments`,
41
+ headers: { Accept: 'application/json' },
42
+ queryParams: withAuthParams(context.auth, {
43
+ text: context.propsValue['text'],
44
+ }),
45
+ };
46
+ const response = await httpClient.sendRequest(request);
47
+ return response.body;
48
+ } catch (error: any) {
49
+ rethrowTrelloError(
50
+ error,
51
+ 'Card not found. Verify the card_id (resolve it via Search Cards).'
52
+ );
53
+ }
54
+ },
55
+ });
@@ -0,0 +1,57 @@
1
+ import { createAction, Property } from '@agnocon/pieces-framework';
2
+ import {
3
+ httpClient,
4
+ HttpRequest,
5
+ HttpMethod,
6
+ } from '@agnocon/pieces-common';
7
+ import { trelloCommon } from '../../common';
8
+ import { trelloAuth } from '../../..';
9
+ import { withAuthParams, rethrowTrelloError } from './ai-common';
10
+ import { addLabelToCardActionOutputSchema } from '../../output-schemas';
11
+
12
+ export const addLabelToCard = createAction({
13
+ auth: trelloAuth,
14
+ name: 'add_label_to_card',
15
+ displayName: 'Add Label To Card (Agent)',
16
+ description: 'Attach an existing label to a Trello card.',
17
+ audience: 'ai',
18
+ outputSchema: addLabelToCardActionOutputSchema,
19
+ aiMetadata: {
20
+ description:
21
+ 'Attaches an existing board label to a Trello card. Obtain card_id from Search Cards and label_id from List Board Labels (or Create Board Label). Re-attaching an already-present label converges to the same label set, so it is idempotent.',
22
+ idempotent: true,
23
+ },
24
+ props: {
25
+ card_id: Property.ShortText({
26
+ displayName: 'Card ID',
27
+ description: 'The ID of the card. Obtain it from Search Cards.',
28
+ required: true,
29
+ }),
30
+ label_id: Property.ShortText({
31
+ displayName: 'Label ID',
32
+ description:
33
+ 'The label id to attach. Obtain it from List Board Labels or Create Board Label.',
34
+ required: true,
35
+ }),
36
+ },
37
+
38
+ async run(context) {
39
+ try {
40
+ const request: HttpRequest = {
41
+ method: HttpMethod.POST,
42
+ url: `${trelloCommon.baseUrl}cards/${context.propsValue['card_id']}/idLabels`,
43
+ headers: { Accept: 'application/json' },
44
+ queryParams: withAuthParams(context.auth, {
45
+ value: context.propsValue['label_id'],
46
+ }),
47
+ };
48
+ const response = await httpClient.sendRequest(request);
49
+ return response.body;
50
+ } catch (error: any) {
51
+ rethrowTrelloError(
52
+ error,
53
+ 'Card or label not found. Verify the card_id and label_id.'
54
+ );
55
+ }
56
+ },
57
+ });
@@ -0,0 +1,57 @@
1
+ import { createAction, Property } from '@agnocon/pieces-framework';
2
+ import {
3
+ httpClient,
4
+ HttpRequest,
5
+ HttpMethod,
6
+ } from '@agnocon/pieces-common';
7
+ import { trelloCommon } from '../../common';
8
+ import { trelloAuth } from '../../..';
9
+ import { withAuthParams, rethrowTrelloError } from './ai-common';
10
+ import { addMemberToCardActionOutputSchema } from '../../output-schemas';
11
+
12
+ export const addMemberToCard = createAction({
13
+ auth: trelloAuth,
14
+ name: 'add_member_to_card',
15
+ displayName: 'Add Member To Card (Agent)',
16
+ description: 'Assign a member to a Trello card.',
17
+ audience: 'ai',
18
+ outputSchema: addMemberToCardActionOutputSchema,
19
+ aiMetadata: {
20
+ description:
21
+ 'Assigns a member to a Trello card. Obtain card_id from Search Cards and member_id from Search Members or List Board Members. Re-adding an already-assigned member converges to the same member set (Trello returns the full member list rather than a clean no-op), so it is idempotent.',
22
+ idempotent: true,
23
+ },
24
+ props: {
25
+ card_id: Property.ShortText({
26
+ displayName: 'Card ID',
27
+ description: 'The ID of the card. Obtain it from Search Cards.',
28
+ required: true,
29
+ }),
30
+ member_id: Property.ShortText({
31
+ displayName: 'Member ID',
32
+ description:
33
+ 'The member id to assign. Obtain it from Search Members or List Board Members.',
34
+ required: true,
35
+ }),
36
+ },
37
+
38
+ async run(context) {
39
+ try {
40
+ const request: HttpRequest = {
41
+ method: HttpMethod.POST,
42
+ url: `${trelloCommon.baseUrl}cards/${context.propsValue['card_id']}/idMembers`,
43
+ headers: { Accept: 'application/json' },
44
+ queryParams: withAuthParams(context.auth, {
45
+ value: context.propsValue['member_id'],
46
+ }),
47
+ };
48
+ const response = await httpClient.sendRequest(request);
49
+ return response.body;
50
+ } catch (error: any) {
51
+ rethrowTrelloError(
52
+ error,
53
+ 'Card or member not found. Verify the card_id and member_id.'
54
+ );
55
+ }
56
+ },
57
+ });
@@ -0,0 +1,61 @@
1
+ import { createAction, Property } from '@agnocon/pieces-framework';
2
+ import {
3
+ httpClient,
4
+ HttpRequest,
5
+ HttpMethod,
6
+ } from '@agnocon/pieces-common';
7
+ import { trelloCommon } from '../../common';
8
+ import { trelloAuth } from '../../..';
9
+ import { withAuthParams, rethrowTrelloError } from './ai-common';
10
+ import { addReactionToCommentActionOutputSchema } from '../../output-schemas';
11
+
12
+ export const addReactionToComment = createAction({
13
+ auth: trelloAuth,
14
+ name: 'add_reaction_to_comment',
15
+ displayName: 'Add Reaction To Comment (Agent)',
16
+ description: 'React (emoji) to a Trello comment.',
17
+ audience: 'ai',
18
+ outputSchema: addReactionToCommentActionOutputSchema,
19
+ aiMetadata: {
20
+ description:
21
+ 'Adds an emoji reaction to a comment action on a Trello card. Provide the comment id (action_id) from List Card Comments and identify the emoji by its shortName (e.g. "thumbsup"). Each call adds a reaction, so it is not idempotent.',
22
+ idempotent: false,
23
+ },
24
+ props: {
25
+ action_id: Property.ShortText({
26
+ displayName: 'Comment ID',
27
+ description:
28
+ 'The comment (action) id to react to. Obtain it from List Card Comments.',
29
+ required: true,
30
+ }),
31
+ short_name: Property.ShortText({
32
+ displayName: 'Emoji Short Name',
33
+ description: 'The emoji short name, e.g. "thumbsup", "heart", "tada".',
34
+ required: true,
35
+ }),
36
+ },
37
+
38
+ async run(context) {
39
+ try {
40
+ const request: HttpRequest = {
41
+ method: HttpMethod.POST,
42
+ url: `${trelloCommon.baseUrl}actions/${context.propsValue['action_id']}/reactions`,
43
+ headers: {
44
+ Accept: 'application/json',
45
+ 'Content-Type': 'application/json',
46
+ },
47
+ queryParams: withAuthParams(context.auth),
48
+ body: {
49
+ shortName: context.propsValue['short_name'],
50
+ },
51
+ };
52
+ const response = await httpClient.sendRequest(request);
53
+ return response.body;
54
+ } catch (error: any) {
55
+ rethrowTrelloError(
56
+ error,
57
+ 'Comment (action) not found. Verify the action_id (resolve it via List Card Comments).'
58
+ );
59
+ }
60
+ },
61
+ });
@@ -0,0 +1,40 @@
1
+ import { QueryParams } from '@agnocon/pieces-common';
2
+
3
+ /**
4
+ * Shared helpers for the audience:'ai' Trello atomics. Trello auth is the
5
+ * BasicAuth API key + token passed as ?key=&token= query params (auth.username
6
+ * = API key, auth.password = token) — the same pattern every existing action
7
+ * uses. These helpers keep the agent atomics DRY without changing that pattern.
8
+ */
9
+
10
+ export type TrelloAuthValue = { username: string; password: string };
11
+
12
+ /** Build the ?key=&token= auth query-param suffix the Trello REST API expects. */
13
+ export function authQuery(auth: TrelloAuthValue): string {
14
+ return `?key=${auth.username}&token=${auth.password}`;
15
+ }
16
+
17
+ /** Auth params merged into a QueryParams object (for requests that pass queryParams). */
18
+ export function withAuthParams(
19
+ auth: TrelloAuthValue,
20
+ params: QueryParams = {}
21
+ ): QueryParams {
22
+ return { ...params, key: auth.username, token: auth.password };
23
+ }
24
+
25
+ /** Map a Trello HTTP error to a clear, per-status message; rethrow otherwise. */
26
+ export function rethrowTrelloError(error: any, notFoundHint: string): never {
27
+ const status = error?.response?.status;
28
+ if (status === 401 || status === 403) {
29
+ throw new Error(
30
+ 'Permission denied. Check the connection token and that the connected user has the required access (some board/organization actions require admin permission).'
31
+ );
32
+ }
33
+ if (status === 404) {
34
+ throw new Error(notFoundHint);
35
+ }
36
+ if (status === 429) {
37
+ throw new Error('Trello rate limit exceeded. Retry after a short delay.');
38
+ }
39
+ throw error;
40
+ }
@@ -0,0 +1,47 @@
1
+ import { createAction, Property } from '@agnocon/pieces-framework';
2
+ import {
3
+ httpClient,
4
+ HttpRequest,
5
+ HttpMethod,
6
+ } from '@agnocon/pieces-common';
7
+ import { trelloCommon } from '../../common';
8
+ import { trelloAuth } from '../../..';
9
+ import { withAuthParams, rethrowTrelloError } from './ai-common';
10
+
11
+ export const archiveAllCardsInList = createAction({
12
+ auth: trelloAuth,
13
+ name: 'archive_all_cards_in_list',
14
+ displayName: 'Archive All Cards In List (Agent)',
15
+ description: 'Archive every card in a Trello list.',
16
+ audience: 'ai',
17
+ aiMetadata: {
18
+ description:
19
+ 'Archives every card in a Trello list identified by list_id (recoverable bulk archive). Obtain list_id from List Lists. This is a bulk mutation, so it is not idempotent.',
20
+ idempotent: false,
21
+ },
22
+ props: {
23
+ list_id: Property.ShortText({
24
+ displayName: 'List ID',
25
+ description: 'The ID of the list. Obtain it from List Lists.',
26
+ required: true,
27
+ }),
28
+ },
29
+
30
+ async run(context) {
31
+ try {
32
+ const request: HttpRequest = {
33
+ method: HttpMethod.POST,
34
+ url: `${trelloCommon.baseUrl}lists/${context.propsValue['list_id']}/archiveAllCards`,
35
+ headers: { Accept: 'application/json' },
36
+ queryParams: withAuthParams(context.auth),
37
+ };
38
+ const response = await httpClient.sendRequest(request);
39
+ return response.body;
40
+ } catch (error: any) {
41
+ rethrowTrelloError(
42
+ error,
43
+ 'List not found. Verify the list_id (resolve it via List Lists).'
44
+ );
45
+ }
46
+ },
47
+ });
@@ -0,0 +1,58 @@
1
+ import { createAction, Property } from '@agnocon/pieces-framework';
2
+ import {
3
+ httpClient,
4
+ HttpRequest,
5
+ HttpMethod,
6
+ } from '@agnocon/pieces-common';
7
+ import { trelloCommon } from '../../common';
8
+ import { trelloAuth } from '../../..';
9
+ import { withAuthParams, rethrowTrelloError } from './ai-common';
10
+ import { archiveBoardActionOutputSchema } from '../../output-schemas';
11
+
12
+ export const archiveBoard = createAction({
13
+ auth: trelloAuth,
14
+ name: 'archive_board',
15
+ displayName: 'Archive Board (Agent)',
16
+ description: 'Close (archive) or reopen a Trello board.',
17
+ audience: 'ai',
18
+ outputSchema: archiveBoardActionOutputSchema,
19
+ aiMetadata: {
20
+ description:
21
+ 'Closes (archives, closed=true) or reopens (closed=false) a Trello board identified by board_id. Archiving is recoverable; prefer this over permanently deleting a board. Obtain board_id from List Boards. Setting the same closed state again converges, so it is idempotent.',
22
+ idempotent: true,
23
+ },
24
+ props: {
25
+ board_id: Property.ShortText({
26
+ displayName: 'Board ID',
27
+ description: 'The ID of the board. Obtain it from List Boards.',
28
+ required: true,
29
+ }),
30
+ closed: Property.Checkbox({
31
+ displayName: 'Closed',
32
+ description: 'True to close (archive) the board, false to reopen it.',
33
+ required: false,
34
+ defaultValue: true,
35
+ }),
36
+ },
37
+
38
+ async run(context) {
39
+ const closed = context.propsValue['closed'] ?? true;
40
+ try {
41
+ const request: HttpRequest = {
42
+ method: HttpMethod.PUT,
43
+ url: `${trelloCommon.baseUrl}boards/${context.propsValue['board_id']}/closed`,
44
+ headers: { Accept: 'application/json' },
45
+ queryParams: withAuthParams(context.auth, {
46
+ value: closed ? 'true' : 'false',
47
+ }),
48
+ };
49
+ const response = await httpClient.sendRequest(request);
50
+ return response.body;
51
+ } catch (error: any) {
52
+ rethrowTrelloError(
53
+ error,
54
+ 'Board not found. Verify the board_id (resolve it via List Boards).'
55
+ );
56
+ }
57
+ },
58
+ });