@commandable/integration-data 0.3.1 → 0.4.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 (671) hide show
  1. package/dist/credentials-index.d.ts +2 -7
  2. package/dist/credentials-index.d.ts.map +1 -1
  3. package/dist/credentials-index.js +11 -677
  4. package/dist/credentials-index.js.map +1 -1
  5. package/dist/generated/registry.d.ts +3 -0
  6. package/dist/generated/registry.d.ts.map +1 -0
  7. package/dist/generated/registry.js +11889 -0
  8. package/dist/generated/registry.js.map +1 -0
  9. package/dist/index.d.ts +2 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/loader.d.ts +1 -119
  14. package/dist/loader.d.ts.map +1 -1
  15. package/dist/loader.js +63 -178
  16. package/dist/loader.js.map +1 -1
  17. package/dist/tools.d.ts +1 -1
  18. package/dist/tools.d.ts.map +1 -1
  19. package/dist/types.d.ts +88 -0
  20. package/dist/types.d.ts.map +1 -0
  21. package/dist/types.js +2 -0
  22. package/dist/types.js.map +1 -0
  23. package/package.json +3 -4
  24. package/integrations/README.md +0 -52
  25. package/integrations/__tests__/liveHarness.ts +0 -97
  26. package/integrations/__tests__/usageParity.ts +0 -54
  27. package/integrations/airtable/.env.test +0 -9
  28. package/integrations/airtable/.env.test.example +0 -11
  29. package/integrations/airtable/README.md +0 -27
  30. package/integrations/airtable/__tests__/get_handlers.test.ts +0 -187
  31. package/integrations/airtable/__tests__/usage_parity.test.ts +0 -9
  32. package/integrations/airtable/__tests__/write_and_admin_handlers.test.ts +0 -116
  33. package/integrations/airtable/credentials.json +0 -26
  34. package/integrations/airtable/credentials_hint.md +0 -4
  35. package/integrations/airtable/handlers/create_record.js +0 -12
  36. package/integrations/airtable/handlers/delete_record.js +0 -7
  37. package/integrations/airtable/handlers/get_record.js +0 -4
  38. package/integrations/airtable/handlers/get_table_schema.js +0 -6
  39. package/integrations/airtable/handlers/list_bases.js +0 -4
  40. package/integrations/airtable/handlers/list_records.js +0 -25
  41. package/integrations/airtable/handlers/list_table_fields.js +0 -6
  42. package/integrations/airtable/handlers/list_tables.js +0 -4
  43. package/integrations/airtable/handlers/list_views.js +0 -6
  44. package/integrations/airtable/handlers/search_records.js +0 -6
  45. package/integrations/airtable/handlers/update_record.js +0 -11
  46. package/integrations/airtable/manifest.json +0 -84
  47. package/integrations/airtable/schemas/create_record.json +0 -12
  48. package/integrations/airtable/schemas/delete_record.json +0 -11
  49. package/integrations/airtable/schemas/empty.json +0 -6
  50. package/integrations/airtable/schemas/get_record.json +0 -11
  51. package/integrations/airtable/schemas/id_base.json +0 -9
  52. package/integrations/airtable/schemas/id_base_table.json +0 -10
  53. package/integrations/airtable/schemas/list_records.json +0 -26
  54. package/integrations/airtable/schemas/search_records.json +0 -12
  55. package/integrations/airtable/schemas/update_record.json +0 -13
  56. package/integrations/confluence/.env.test +0 -25
  57. package/integrations/confluence/.env.test.example +0 -36
  58. package/integrations/confluence/README.md +0 -28
  59. package/integrations/confluence/__tests__/get_handlers.test.ts +0 -121
  60. package/integrations/confluence/__tests__/usage_parity.test.ts +0 -14
  61. package/integrations/confluence/__tests__/write_handlers.test.ts +0 -131
  62. package/integrations/confluence/credentials.json +0 -39
  63. package/integrations/confluence/credentials_hint.md +0 -4
  64. package/integrations/confluence/credentials_hint_api_token.md +0 -9
  65. package/integrations/confluence/credentials_hint_oauth_token.md +0 -8
  66. package/integrations/confluence/handlers/add_comment.js +0 -19
  67. package/integrations/confluence/handlers/add_label.js +0 -16
  68. package/integrations/confluence/handlers/create_page.js +0 -22
  69. package/integrations/confluence/handlers/delete_page.js +0 -17
  70. package/integrations/confluence/handlers/get_comments.js +0 -33
  71. package/integrations/confluence/handlers/get_page_children.js +0 -30
  72. package/integrations/confluence/handlers/get_space.js +0 -22
  73. package/integrations/confluence/handlers/list_spaces.js +0 -39
  74. package/integrations/confluence/handlers/read_page.js +0 -49
  75. package/integrations/confluence/handlers/search_pages.js +0 -42
  76. package/integrations/confluence/handlers/update_page.js +0 -42
  77. package/integrations/confluence/manifest.json +0 -85
  78. package/integrations/confluence/prompt.md +0 -55
  79. package/integrations/confluence/schemas/add_comment.json +0 -22
  80. package/integrations/confluence/schemas/add_label.json +0 -19
  81. package/integrations/confluence/schemas/create_page.json +0 -33
  82. package/integrations/confluence/schemas/delete_page.json +0 -23
  83. package/integrations/confluence/schemas/empty.json +0 -6
  84. package/integrations/confluence/schemas/get_comments.json +0 -24
  85. package/integrations/confluence/schemas/get_page_children.json +0 -28
  86. package/integrations/confluence/schemas/get_space.json +0 -18
  87. package/integrations/confluence/schemas/list_spaces.json +0 -36
  88. package/integrations/confluence/schemas/read_page.json +0 -28
  89. package/integrations/confluence/schemas/search_pages.json +0 -26
  90. package/integrations/confluence/schemas/update_page.json +0 -31
  91. package/integrations/github/.env.test +0 -16
  92. package/integrations/github/.env.test.example +0 -17
  93. package/integrations/github/README.md +0 -75
  94. package/integrations/github/__tests__/get_handlers.test.ts +0 -305
  95. package/integrations/github/__tests__/usage_parity.test.ts +0 -22
  96. package/integrations/github/__tests__/write_handlers.test.ts +0 -496
  97. package/integrations/github/credentials.json +0 -47
  98. package/integrations/github/credentials_hint.md +0 -7
  99. package/integrations/github/credentials_hint_classic_pat.md +0 -8
  100. package/integrations/github/credentials_hint_fine_grained_pat.md +0 -9
  101. package/integrations/github/handlers/add_labels_to_issue.js +0 -12
  102. package/integrations/github/handlers/close_issue.js +0 -5
  103. package/integrations/github/handlers/comment_on_issue.js +0 -5
  104. package/integrations/github/handlers/create_branch.js +0 -33
  105. package/integrations/github/handlers/create_commit.js +0 -84
  106. package/integrations/github/handlers/create_file.js +0 -46
  107. package/integrations/github/handlers/create_issue.js +0 -10
  108. package/integrations/github/handlers/create_or_update_file.js +0 -21
  109. package/integrations/github/handlers/create_pull_request.js +0 -16
  110. package/integrations/github/handlers/create_pull_request_review.js +0 -10
  111. package/integrations/github/handlers/create_release.js +0 -14
  112. package/integrations/github/handlers/create_repo.js +0 -11
  113. package/integrations/github/handlers/delete_branch.js +0 -8
  114. package/integrations/github/handlers/delete_file.js +0 -22
  115. package/integrations/github/handlers/delete_repo.js +0 -6
  116. package/integrations/github/handlers/edit_file.js +0 -52
  117. package/integrations/github/handlers/edit_files.js +0 -107
  118. package/integrations/github/handlers/fork_repo.js +0 -10
  119. package/integrations/github/handlers/get_commit.js +0 -8
  120. package/integrations/github/handlers/get_file_contents.js +0 -21
  121. package/integrations/github/handlers/get_issue.js +0 -4
  122. package/integrations/github/handlers/get_job_logs.js +0 -6
  123. package/integrations/github/handlers/get_latest_release.js +0 -4
  124. package/integrations/github/handlers/get_me.js +0 -4
  125. package/integrations/github/handlers/get_pull_request.js +0 -4
  126. package/integrations/github/handlers/get_pull_request_diff.js +0 -8
  127. package/integrations/github/handlers/get_repo.js +0 -4
  128. package/integrations/github/handlers/get_repo_tree.js +0 -12
  129. package/integrations/github/handlers/get_workflow_run.js +0 -4
  130. package/integrations/github/handlers/list_branches.js +0 -9
  131. package/integrations/github/handlers/list_commits.js +0 -11
  132. package/integrations/github/handlers/list_issue_comments.js +0 -8
  133. package/integrations/github/handlers/list_issues.js +0 -11
  134. package/integrations/github/handlers/list_labels.js +0 -8
  135. package/integrations/github/handlers/list_pull_request_comments.js +0 -8
  136. package/integrations/github/handlers/list_pull_request_files.js +0 -8
  137. package/integrations/github/handlers/list_pull_requests.js +0 -13
  138. package/integrations/github/handlers/list_releases.js +0 -8
  139. package/integrations/github/handlers/list_repos_install.js +0 -4
  140. package/integrations/github/handlers/list_repos_user.js +0 -4
  141. package/integrations/github/handlers/list_tags.js +0 -8
  142. package/integrations/github/handlers/list_workflow_runs.js +0 -11
  143. package/integrations/github/handlers/merge_pull_request.js +0 -14
  144. package/integrations/github/handlers/request_pull_request_reviewers.js +0 -10
  145. package/integrations/github/handlers/search_code.js +0 -8
  146. package/integrations/github/handlers/search_issues.js +0 -8
  147. package/integrations/github/handlers/search_pull_requests.js +0 -8
  148. package/integrations/github/handlers/search_repos.js +0 -10
  149. package/integrations/github/handlers/update_issue.js +0 -15
  150. package/integrations/github/handlers/update_pull_request.js +0 -13
  151. package/integrations/github/manifest.json +0 -92
  152. package/integrations/github/prompt.md +0 -36
  153. package/integrations/github/schemas/add_labels_to_issue.json +0 -12
  154. package/integrations/github/schemas/close_issue.json +0 -10
  155. package/integrations/github/schemas/comment_on_issue.json +0 -11
  156. package/integrations/github/schemas/create_branch.json +0 -12
  157. package/integrations/github/schemas/create_commit.json +0 -25
  158. package/integrations/github/schemas/create_file.json +0 -13
  159. package/integrations/github/schemas/create_issue.json +0 -13
  160. package/integrations/github/schemas/create_or_update_file.json +0 -15
  161. package/integrations/github/schemas/create_pull_request.json +0 -15
  162. package/integrations/github/schemas/create_pull_request_review.json +0 -17
  163. package/integrations/github/schemas/create_release.json +0 -16
  164. package/integrations/github/schemas/create_repo.json +0 -12
  165. package/integrations/github/schemas/delete_branch.json +0 -10
  166. package/integrations/github/schemas/delete_file.json +0 -13
  167. package/integrations/github/schemas/delete_repo.json +0 -10
  168. package/integrations/github/schemas/edit_file.json +0 -26
  169. package/integrations/github/schemas/edit_files.json +0 -39
  170. package/integrations/github/schemas/empty.json +0 -5
  171. package/integrations/github/schemas/fork_repo.json +0 -11
  172. package/integrations/github/schemas/get_commit.json +0 -12
  173. package/integrations/github/schemas/get_file_contents.json +0 -11
  174. package/integrations/github/schemas/get_issue.json +0 -10
  175. package/integrations/github/schemas/get_job_logs.json +0 -10
  176. package/integrations/github/schemas/get_pull_request.json +0 -10
  177. package/integrations/github/schemas/get_pull_request_diff.json +0 -10
  178. package/integrations/github/schemas/get_repo.json +0 -9
  179. package/integrations/github/schemas/get_repo_tree.json +0 -12
  180. package/integrations/github/schemas/get_workflow_run.json +0 -10
  181. package/integrations/github/schemas/list_branches.json +0 -12
  182. package/integrations/github/schemas/list_commits.json +0 -14
  183. package/integrations/github/schemas/list_issue_comments.json +0 -12
  184. package/integrations/github/schemas/list_issues.json +0 -14
  185. package/integrations/github/schemas/list_labels.json +0 -11
  186. package/integrations/github/schemas/list_pull_request_comments.json +0 -12
  187. package/integrations/github/schemas/list_pull_request_files.json +0 -12
  188. package/integrations/github/schemas/list_pull_requests.json +0 -16
  189. package/integrations/github/schemas/list_releases.json +0 -11
  190. package/integrations/github/schemas/list_tags.json +0 -11
  191. package/integrations/github/schemas/list_workflow_runs.json +0 -18
  192. package/integrations/github/schemas/merge_pull_request.json +0 -14
  193. package/integrations/github/schemas/owner_repo.json +0 -9
  194. package/integrations/github/schemas/request_pull_request_reviewers.json +0 -20
  195. package/integrations/github/schemas/search_code.json +0 -10
  196. package/integrations/github/schemas/search_issues.json +0 -10
  197. package/integrations/github/schemas/search_pull_requests.json +0 -10
  198. package/integrations/github/schemas/search_repos.json +0 -12
  199. package/integrations/github/schemas/update_issue.json +0 -15
  200. package/integrations/github/schemas/update_pull_request.json +0 -15
  201. package/integrations/google-calendar/.env.test.example +0 -11
  202. package/integrations/google-calendar/README.md +0 -41
  203. package/integrations/google-calendar/__tests__/get_handlers.test.ts +0 -120
  204. package/integrations/google-calendar/__tests__/usage_parity.test.ts +0 -9
  205. package/integrations/google-calendar/__tests__/write_and_admin_handlers.test.ts +0 -155
  206. package/integrations/google-calendar/credentials.json +0 -59
  207. package/integrations/google-calendar/credentials_hint.md +0 -9
  208. package/integrations/google-calendar/credentials_hint_oauth_token.md +0 -8
  209. package/integrations/google-calendar/credentials_hint_service_account.md +0 -10
  210. package/integrations/google-calendar/handlers/create_event.js +0 -6
  211. package/integrations/google-calendar/handlers/delete_acl.js +0 -6
  212. package/integrations/google-calendar/handlers/delete_event.js +0 -7
  213. package/integrations/google-calendar/handlers/freebusy_query.js +0 -4
  214. package/integrations/google-calendar/handlers/get_acl.js +0 -5
  215. package/integrations/google-calendar/handlers/get_calendar.js +0 -4
  216. package/integrations/google-calendar/handlers/get_event.js +0 -9
  217. package/integrations/google-calendar/handlers/insert_acl.js +0 -6
  218. package/integrations/google-calendar/handlers/list_acl.js +0 -5
  219. package/integrations/google-calendar/handlers/list_calendars.js +0 -4
  220. package/integrations/google-calendar/handlers/list_colors.js +0 -4
  221. package/integrations/google-calendar/handlers/list_events.js +0 -23
  222. package/integrations/google-calendar/handlers/list_settings.js +0 -4
  223. package/integrations/google-calendar/handlers/move_event.js +0 -6
  224. package/integrations/google-calendar/handlers/patch_event.js +0 -5
  225. package/integrations/google-calendar/handlers/quick_add.js +0 -6
  226. package/integrations/google-calendar/handlers/update_acl.js +0 -7
  227. package/integrations/google-calendar/manifest.json +0 -36
  228. package/integrations/google-calendar/prompt.md +0 -68
  229. package/integrations/google-calendar/schemas/create_event.json +0 -34
  230. package/integrations/google-calendar/schemas/delete_acl.json +0 -9
  231. package/integrations/google-calendar/schemas/empty.json +0 -1
  232. package/integrations/google-calendar/schemas/freebusy_query.json +0 -13
  233. package/integrations/google-calendar/schemas/get_acl.json +0 -9
  234. package/integrations/google-calendar/schemas/id_calendar.json +0 -8
  235. package/integrations/google-calendar/schemas/id_calendar_event.json +0 -11
  236. package/integrations/google-calendar/schemas/insert_acl.json +0 -18
  237. package/integrations/google-calendar/schemas/list_events.json +0 -17
  238. package/integrations/google-calendar/schemas/move_event.json +0 -10
  239. package/integrations/google-calendar/schemas/patch_event.json +0 -10
  240. package/integrations/google-calendar/schemas/quick_add.json +0 -9
  241. package/integrations/google-calendar/schemas/update_acl.json +0 -10
  242. package/integrations/google-docs/README.md +0 -30
  243. package/integrations/google-docs/__tests__/get_handlers.test.ts +0 -83
  244. package/integrations/google-docs/__tests__/usage_parity.test.ts +0 -9
  245. package/integrations/google-docs/__tests__/write_handlers.test.ts +0 -238
  246. package/integrations/google-docs/credentials.json +0 -57
  247. package/integrations/google-docs/credentials_hint.md +0 -9
  248. package/integrations/google-docs/credentials_hint_oauth_token.md +0 -8
  249. package/integrations/google-docs/credentials_hint_service_account.md +0 -10
  250. package/integrations/google-docs/handlers/append_text.js +0 -12
  251. package/integrations/google-docs/handlers/batch_update.js +0 -13
  252. package/integrations/google-docs/handlers/create_document.js +0 -9
  253. package/integrations/google-docs/handlers/delete_first_match.js +0 -50
  254. package/integrations/google-docs/handlers/insert_inline_image_after_first_match.js +0 -41
  255. package/integrations/google-docs/handlers/insert_page_break_after_first_match.js +0 -49
  256. package/integrations/google-docs/handlers/insert_table_after_first_match.js +0 -49
  257. package/integrations/google-docs/handlers/insert_text_after_first_match.js +0 -51
  258. package/integrations/google-docs/handlers/read_document.js +0 -189
  259. package/integrations/google-docs/handlers/replace_all_text.js +0 -8
  260. package/integrations/google-docs/handlers/style_first_match.js +0 -42
  261. package/integrations/google-docs/handlers/update_document_style.js +0 -8
  262. package/integrations/google-docs/handlers/update_paragraph_style_for_first_match.js +0 -48
  263. package/integrations/google-docs/manifest.json +0 -44
  264. package/integrations/google-docs/prompt.md +0 -49
  265. package/integrations/google-docs/schemas/append_text.json +0 -10
  266. package/integrations/google-docs/schemas/apply_text_style.json +0 -13
  267. package/integrations/google-docs/schemas/batch_update.json +0 -16
  268. package/integrations/google-docs/schemas/create_document.json +0 -8
  269. package/integrations/google-docs/schemas/delete_content_range.json +0 -11
  270. package/integrations/google-docs/schemas/delete_first_match.json +0 -10
  271. package/integrations/google-docs/schemas/insert_inline_image.json +0 -12
  272. package/integrations/google-docs/schemas/insert_inline_image_after_first_match.json +0 -12
  273. package/integrations/google-docs/schemas/insert_page_break.json +0 -10
  274. package/integrations/google-docs/schemas/insert_page_break_after_first_match.json +0 -11
  275. package/integrations/google-docs/schemas/insert_table.json +0 -12
  276. package/integrations/google-docs/schemas/insert_table_after_first_match.json +0 -13
  277. package/integrations/google-docs/schemas/insert_text_after_first_match.json +0 -12
  278. package/integrations/google-docs/schemas/insert_text_at.json +0 -11
  279. package/integrations/google-docs/schemas/read_document.json +0 -12
  280. package/integrations/google-docs/schemas/replace_all_text.json +0 -12
  281. package/integrations/google-docs/schemas/style_first_match.json +0 -12
  282. package/integrations/google-docs/schemas/update_document_style.json +0 -11
  283. package/integrations/google-docs/schemas/update_paragraph_style.json +0 -13
  284. package/integrations/google-docs/schemas/update_paragraph_style_for_first_match.json +0 -12
  285. package/integrations/google-docs/todo.md +0 -18
  286. package/integrations/google-drive/README.md +0 -26
  287. package/integrations/google-drive/__tests__/handlers.test.ts +0 -145
  288. package/integrations/google-drive/__tests__/usage_parity.test.ts +0 -9
  289. package/integrations/google-drive/credentials.json +0 -59
  290. package/integrations/google-drive/credentials_hint_oauth_token.md +0 -8
  291. package/integrations/google-drive/credentials_hint_service_account.md +0 -10
  292. package/integrations/google-drive/handlers/create_file.js +0 -15
  293. package/integrations/google-drive/handlers/create_folder.js +0 -15
  294. package/integrations/google-drive/handlers/delete_file.js +0 -14
  295. package/integrations/google-drive/handlers/get_file.js +0 -5
  296. package/integrations/google-drive/handlers/get_file_content.js +0 -41
  297. package/integrations/google-drive/handlers/list_files.js +0 -15
  298. package/integrations/google-drive/handlers/move_file.js +0 -12
  299. package/integrations/google-drive/handlers/search_files.js +0 -20
  300. package/integrations/google-drive/handlers/share_file.js +0 -20
  301. package/integrations/google-drive/manifest.json +0 -70
  302. package/integrations/google-drive/prompt.md +0 -59
  303. package/integrations/google-drive/schemas/create_file.json +0 -12
  304. package/integrations/google-drive/schemas/create_folder.json +0 -11
  305. package/integrations/google-drive/schemas/delete_file.json +0 -10
  306. package/integrations/google-drive/schemas/get_file.json +0 -10
  307. package/integrations/google-drive/schemas/get_file_content.json +0 -11
  308. package/integrations/google-drive/schemas/list_files.json +0 -12
  309. package/integrations/google-drive/schemas/move_file.json +0 -12
  310. package/integrations/google-drive/schemas/search_files.json +0 -14
  311. package/integrations/google-drive/schemas/share_file.json +0 -23
  312. package/integrations/google-gmail/.env.test.example +0 -11
  313. package/integrations/google-gmail/README.md +0 -49
  314. package/integrations/google-gmail/__tests__/get_handlers.test.ts +0 -134
  315. package/integrations/google-gmail/__tests__/usage_parity.test.ts +0 -9
  316. package/integrations/google-gmail/__tests__/write_and_admin_handlers.test.ts +0 -211
  317. package/integrations/google-gmail/credentials.json +0 -59
  318. package/integrations/google-gmail/credentials_hint_oauth_token.md +0 -8
  319. package/integrations/google-gmail/credentials_hint_service_account.md +0 -10
  320. package/integrations/google-gmail/handlers/create_draft_email.js +0 -27
  321. package/integrations/google-gmail/handlers/create_label.js +0 -12
  322. package/integrations/google-gmail/handlers/delete_draft.js +0 -13
  323. package/integrations/google-gmail/handlers/delete_label.js +0 -13
  324. package/integrations/google-gmail/handlers/delete_message.js +0 -13
  325. package/integrations/google-gmail/handlers/delete_thread.js +0 -13
  326. package/integrations/google-gmail/handlers/get_draft.js +0 -6
  327. package/integrations/google-gmail/handlers/get_label.js +0 -6
  328. package/integrations/google-gmail/handlers/get_message.js +0 -14
  329. package/integrations/google-gmail/handlers/get_profile.js +0 -5
  330. package/integrations/google-gmail/handlers/get_thread.js +0 -14
  331. package/integrations/google-gmail/handlers/list_drafts.js +0 -15
  332. package/integrations/google-gmail/handlers/list_labels.js +0 -5
  333. package/integrations/google-gmail/handlers/list_messages.js +0 -19
  334. package/integrations/google-gmail/handlers/list_threads.js +0 -19
  335. package/integrations/google-gmail/handlers/modify_message.js +0 -11
  336. package/integrations/google-gmail/handlers/modify_thread.js +0 -11
  337. package/integrations/google-gmail/handlers/read_email.js +0 -56
  338. package/integrations/google-gmail/handlers/send_draft.js +0 -15
  339. package/integrations/google-gmail/handlers/send_email.js +0 -22
  340. package/integrations/google-gmail/handlers/trash_message.js +0 -6
  341. package/integrations/google-gmail/handlers/trash_thread.js +0 -6
  342. package/integrations/google-gmail/handlers/untrash_message.js +0 -6
  343. package/integrations/google-gmail/handlers/untrash_thread.js +0 -6
  344. package/integrations/google-gmail/handlers/update_label.js +0 -15
  345. package/integrations/google-gmail/manifest.json +0 -45
  346. package/integrations/google-gmail/prompt.md +0 -52
  347. package/integrations/google-gmail/schemas/create_draft_email.json +0 -16
  348. package/integrations/google-gmail/schemas/create_label.json +0 -26
  349. package/integrations/google-gmail/schemas/get_message.json +0 -20
  350. package/integrations/google-gmail/schemas/get_profile.json +0 -11
  351. package/integrations/google-gmail/schemas/get_thread.json +0 -20
  352. package/integrations/google-gmail/schemas/id_draft.json +0 -16
  353. package/integrations/google-gmail/schemas/id_label.json +0 -16
  354. package/integrations/google-gmail/schemas/id_message.json +0 -16
  355. package/integrations/google-gmail/schemas/id_thread.json +0 -16
  356. package/integrations/google-gmail/schemas/list_drafts.json +0 -30
  357. package/integrations/google-gmail/schemas/list_labels.json +0 -11
  358. package/integrations/google-gmail/schemas/list_messages.json +0 -35
  359. package/integrations/google-gmail/schemas/list_threads.json +0 -35
  360. package/integrations/google-gmail/schemas/modify_message.json +0 -24
  361. package/integrations/google-gmail/schemas/modify_thread.json +0 -24
  362. package/integrations/google-gmail/schemas/read_email.json +0 -10
  363. package/integrations/google-gmail/schemas/send_draft.json +0 -29
  364. package/integrations/google-gmail/schemas/send_email.json +0 -17
  365. package/integrations/google-gmail/schemas/update_label.json +0 -33
  366. package/integrations/google-sheet/README.md +0 -27
  367. package/integrations/google-sheet/__tests__/get_handlers.test.ts +0 -76
  368. package/integrations/google-sheet/__tests__/usage_parity.test.ts +0 -9
  369. package/integrations/google-sheet/__tests__/write_handlers.test.ts +0 -153
  370. package/integrations/google-sheet/credentials.json +0 -57
  371. package/integrations/google-sheet/credentials_hint.md +0 -9
  372. package/integrations/google-sheet/credentials_hint_oauth_token.md +0 -8
  373. package/integrations/google-sheet/credentials_hint_service_account.md +0 -10
  374. package/integrations/google-sheet/handlers/append_values.js +0 -18
  375. package/integrations/google-sheet/handlers/batch_clear_values.js +0 -6
  376. package/integrations/google-sheet/handlers/batch_update.js +0 -14
  377. package/integrations/google-sheet/handlers/batch_update_values.js +0 -16
  378. package/integrations/google-sheet/handlers/clear_values.js +0 -6
  379. package/integrations/google-sheet/handlers/copy_to_spreadsheet.js +0 -6
  380. package/integrations/google-sheet/handlers/create_spreadsheet.js +0 -5
  381. package/integrations/google-sheet/handlers/get_spreadsheet.js +0 -14
  382. package/integrations/google-sheet/handlers/read_sheet.js +0 -75
  383. package/integrations/google-sheet/handlers/update_values.js +0 -16
  384. package/integrations/google-sheet/manifest.json +0 -77
  385. package/integrations/google-sheet/prompt.md +0 -49
  386. package/integrations/google-sheet/schemas/append_values.json +0 -16
  387. package/integrations/google-sheet/schemas/batch_clear_values.json +0 -10
  388. package/integrations/google-sheet/schemas/batch_update.json +0 -13
  389. package/integrations/google-sheet/schemas/batch_update_values.json +0 -25
  390. package/integrations/google-sheet/schemas/clear_values.json +0 -10
  391. package/integrations/google-sheet/schemas/copy_to_spreadsheet.json +0 -11
  392. package/integrations/google-sheet/schemas/create_spreadsheet.json +0 -11
  393. package/integrations/google-sheet/schemas/get_spreadsheet.json +0 -16
  394. package/integrations/google-sheet/schemas/read_sheet.json +0 -21
  395. package/integrations/google-sheet/schemas/update_values.json +0 -15
  396. package/integrations/google-slides/README.md +0 -28
  397. package/integrations/google-slides/__tests__/get_handlers.test.ts +0 -74
  398. package/integrations/google-slides/__tests__/usage_parity.test.ts +0 -9
  399. package/integrations/google-slides/__tests__/write_handlers.test.ts +0 -131
  400. package/integrations/google-slides/credentials.json +0 -57
  401. package/integrations/google-slides/credentials_hint.md +0 -9
  402. package/integrations/google-slides/credentials_hint_oauth_token.md +0 -8
  403. package/integrations/google-slides/credentials_hint_service_account.md +0 -10
  404. package/integrations/google-slides/handlers/append_text_to_title_of_first_slide.js +0 -17
  405. package/integrations/google-slides/handlers/batch_update.js +0 -15
  406. package/integrations/google-slides/handlers/create_presentation.js +0 -8
  407. package/integrations/google-slides/handlers/create_slide_after_first_match.js +0 -20
  408. package/integrations/google-slides/handlers/get_page_thumbnail.js +0 -12
  409. package/integrations/google-slides/handlers/insert_image_after_first_match.js +0 -19
  410. package/integrations/google-slides/handlers/insert_shape_after_first_match.js +0 -21
  411. package/integrations/google-slides/handlers/read_presentation.js +0 -51
  412. package/integrations/google-slides/handlers/replace_text_first_match.js +0 -9
  413. package/integrations/google-slides/handlers/set_background_color_for_slide_index.js +0 -15
  414. package/integrations/google-slides/handlers/style_text_first_match.js +0 -48
  415. package/integrations/google-slides/manifest.json +0 -42
  416. package/integrations/google-slides/prompt.md +0 -56
  417. package/integrations/google-slides/schemas/append_text_to_title_of_first_slide.json +0 -11
  418. package/integrations/google-slides/schemas/batch_update.json +0 -13
  419. package/integrations/google-slides/schemas/create_presentation.json +0 -8
  420. package/integrations/google-slides/schemas/create_slide_after_first_match.json +0 -11
  421. package/integrations/google-slides/schemas/get_page_thumbnail.json +0 -12
  422. package/integrations/google-slides/schemas/get_presentation.json +0 -9
  423. package/integrations/google-slides/schemas/insert_image_after_first_match.json +0 -13
  424. package/integrations/google-slides/schemas/insert_shape_after_first_match.json +0 -13
  425. package/integrations/google-slides/schemas/replace_text_first_match.json +0 -12
  426. package/integrations/google-slides/schemas/set_background_color_for_slide_index.json +0 -11
  427. package/integrations/google-slides/schemas/style_text_first_match.json +0 -12
  428. package/integrations/hubspot/.env.test.example +0 -20
  429. package/integrations/hubspot/README.md +0 -48
  430. package/integrations/hubspot/__tests__/get_handlers.test.ts +0 -151
  431. package/integrations/hubspot/__tests__/usage_parity.test.ts +0 -10
  432. package/integrations/hubspot/__tests__/write_handlers.test.ts +0 -244
  433. package/integrations/hubspot/credentials.json +0 -50
  434. package/integrations/hubspot/credentials_hint.md +0 -20
  435. package/integrations/hubspot/credentials_hint_oauth_token.md +0 -16
  436. package/integrations/hubspot/handlers/archive_company.js +0 -13
  437. package/integrations/hubspot/handlers/archive_contact.js +0 -13
  438. package/integrations/hubspot/handlers/archive_deal.js +0 -13
  439. package/integrations/hubspot/handlers/archive_ticket.js +0 -13
  440. package/integrations/hubspot/handlers/create_association.js +0 -18
  441. package/integrations/hubspot/handlers/create_company.js +0 -13
  442. package/integrations/hubspot/handlers/create_contact.js +0 -14
  443. package/integrations/hubspot/handlers/create_deal.js +0 -16
  444. package/integrations/hubspot/handlers/create_note.js +0 -44
  445. package/integrations/hubspot/handlers/create_task.js +0 -48
  446. package/integrations/hubspot/handlers/create_ticket.js +0 -15
  447. package/integrations/hubspot/handlers/get_associations.js +0 -14
  448. package/integrations/hubspot/handlers/get_company.js +0 -18
  449. package/integrations/hubspot/handlers/get_contact.js +0 -18
  450. package/integrations/hubspot/handlers/get_deal.js +0 -18
  451. package/integrations/hubspot/handlers/get_ticket.js +0 -20
  452. package/integrations/hubspot/handlers/list_owners.js +0 -12
  453. package/integrations/hubspot/handlers/list_pipelines.js +0 -5
  454. package/integrations/hubspot/handlers/list_properties.js +0 -11
  455. package/integrations/hubspot/handlers/remove_association.js +0 -22
  456. package/integrations/hubspot/handlers/search_companies.js +0 -43
  457. package/integrations/hubspot/handlers/search_contacts.js +0 -43
  458. package/integrations/hubspot/handlers/search_deals.js +0 -43
  459. package/integrations/hubspot/handlers/search_notes.js +0 -43
  460. package/integrations/hubspot/handlers/search_tasks.js +0 -43
  461. package/integrations/hubspot/handlers/search_tickets.js +0 -43
  462. package/integrations/hubspot/handlers/update_company.js +0 -13
  463. package/integrations/hubspot/handlers/update_contact.js +0 -14
  464. package/integrations/hubspot/handlers/update_deal.js +0 -16
  465. package/integrations/hubspot/handlers/update_task.js +0 -17
  466. package/integrations/hubspot/handlers/update_ticket.js +0 -15
  467. package/integrations/hubspot/manifest.json +0 -231
  468. package/integrations/hubspot/prompt.md +0 -69
  469. package/integrations/hubspot/schemas/archive_company.json +0 -13
  470. package/integrations/hubspot/schemas/archive_contact.json +0 -13
  471. package/integrations/hubspot/schemas/archive_deal.json +0 -9
  472. package/integrations/hubspot/schemas/archive_ticket.json +0 -9
  473. package/integrations/hubspot/schemas/create_association.json +0 -24
  474. package/integrations/hubspot/schemas/create_company.json +0 -14
  475. package/integrations/hubspot/schemas/create_contact.json +0 -15
  476. package/integrations/hubspot/schemas/create_deal.json +0 -20
  477. package/integrations/hubspot/schemas/create_note.json +0 -37
  478. package/integrations/hubspot/schemas/create_task.json +0 -51
  479. package/integrations/hubspot/schemas/create_ticket.json +0 -16
  480. package/integrations/hubspot/schemas/empty.json +0 -6
  481. package/integrations/hubspot/schemas/get_associations.json +0 -30
  482. package/integrations/hubspot/schemas/get_company.json +0 -27
  483. package/integrations/hubspot/schemas/get_contact.json +0 -27
  484. package/integrations/hubspot/schemas/get_deal.json +0 -20
  485. package/integrations/hubspot/schemas/get_ticket.json +0 -20
  486. package/integrations/hubspot/schemas/list_owners.json +0 -25
  487. package/integrations/hubspot/schemas/list_pipelines.json +0 -13
  488. package/integrations/hubspot/schemas/list_properties.json +0 -17
  489. package/integrations/hubspot/schemas/remove_association.json +0 -24
  490. package/integrations/hubspot/schemas/search_companies.json +0 -56
  491. package/integrations/hubspot/schemas/search_contacts.json +0 -56
  492. package/integrations/hubspot/schemas/search_deals.json +0 -43
  493. package/integrations/hubspot/schemas/search_notes.json +0 -43
  494. package/integrations/hubspot/schemas/search_tasks.json +0 -43
  495. package/integrations/hubspot/schemas/search_tickets.json +0 -43
  496. package/integrations/hubspot/schemas/update_company.json +0 -20
  497. package/integrations/hubspot/schemas/update_contact.json +0 -21
  498. package/integrations/hubspot/schemas/update_deal.json +0 -19
  499. package/integrations/hubspot/schemas/update_task.json +0 -31
  500. package/integrations/hubspot/schemas/update_ticket.json +0 -18
  501. package/integrations/jira/.env.test +0 -46
  502. package/integrations/jira/.env.test.example +0 -41
  503. package/integrations/jira/README.md +0 -46
  504. package/integrations/jira/__tests__/get_handlers.test.ts +0 -193
  505. package/integrations/jira/__tests__/usage_parity.test.ts +0 -14
  506. package/integrations/jira/__tests__/write_handlers.test.ts +0 -157
  507. package/integrations/jira/credentials.json +0 -39
  508. package/integrations/jira/credentials_hint.md +0 -4
  509. package/integrations/jira/credentials_hint_api_token.md +0 -6
  510. package/integrations/jira/credentials_hint_oauth_token.md +0 -6
  511. package/integrations/jira/handlers/add_comment.js +0 -9
  512. package/integrations/jira/handlers/assign_issue.js +0 -11
  513. package/integrations/jira/handlers/create_issue.js +0 -37
  514. package/integrations/jira/handlers/create_sprint.js +0 -19
  515. package/integrations/jira/handlers/delete_issue.js +0 -10
  516. package/integrations/jira/handlers/get_backlog_issues.js +0 -13
  517. package/integrations/jira/handlers/get_board.js +0 -6
  518. package/integrations/jira/handlers/get_issue.js +0 -63
  519. package/integrations/jira/handlers/get_issue_comments.js +0 -31
  520. package/integrations/jira/handlers/get_myself.js +0 -14
  521. package/integrations/jira/handlers/get_project.js +0 -28
  522. package/integrations/jira/handlers/get_sprint.js +0 -5
  523. package/integrations/jira/handlers/get_sprint_issues.js +0 -13
  524. package/integrations/jira/handlers/get_transitions.js +0 -23
  525. package/integrations/jira/handlers/list_boards.js +0 -34
  526. package/integrations/jira/handlers/list_projects.js +0 -29
  527. package/integrations/jira/handlers/list_sprints.js +0 -29
  528. package/integrations/jira/handlers/move_issues_to_sprint.js +0 -11
  529. package/integrations/jira/handlers/search_issues.js +0 -43
  530. package/integrations/jira/handlers/search_users.js +0 -21
  531. package/integrations/jira/handlers/transition_issue.js +0 -44
  532. package/integrations/jira/handlers/update_issue.js +0 -40
  533. package/integrations/jira/handlers/update_sprint.js +0 -20
  534. package/integrations/jira/manifest.json +0 -204
  535. package/integrations/jira/prompt.md +0 -80
  536. package/integrations/jira/schemas/add_comment.json +0 -16
  537. package/integrations/jira/schemas/assign_issue.json +0 -16
  538. package/integrations/jira/schemas/create_issue.json +0 -49
  539. package/integrations/jira/schemas/create_sprint.json +0 -29
  540. package/integrations/jira/schemas/delete_issue.json +0 -12
  541. package/integrations/jira/schemas/empty.json +0 -6
  542. package/integrations/jira/schemas/get_backlog_issues.json +0 -33
  543. package/integrations/jira/schemas/get_board.json +0 -13
  544. package/integrations/jira/schemas/get_issue.json +0 -23
  545. package/integrations/jira/schemas/get_issue_comments.json +0 -23
  546. package/integrations/jira/schemas/get_project.json +0 -17
  547. package/integrations/jira/schemas/get_sprint.json +0 -13
  548. package/integrations/jira/schemas/get_sprint_issues.json +0 -33
  549. package/integrations/jira/schemas/get_transitions.json +0 -12
  550. package/integrations/jira/schemas/list_boards.json +0 -27
  551. package/integrations/jira/schemas/list_projects.json +0 -22
  552. package/integrations/jira/schemas/list_sprints.json +0 -29
  553. package/integrations/jira/schemas/move_issues_to_sprint.json +0 -19
  554. package/integrations/jira/schemas/search_issues.json +0 -28
  555. package/integrations/jira/schemas/search_users.json +0 -18
  556. package/integrations/jira/schemas/transition_issue.json +0 -38
  557. package/integrations/jira/schemas/update_issue.json +0 -47
  558. package/integrations/jira/schemas/update_sprint.json +0 -33
  559. package/integrations/new_integration_prompt.md +0 -216
  560. package/integrations/notion/.env.test +0 -10
  561. package/integrations/notion/.env.test.example +0 -13
  562. package/integrations/notion/README.md +0 -42
  563. package/integrations/notion/__tests__/get_handlers.test.ts +0 -156
  564. package/integrations/notion/__tests__/usage_parity.test.ts +0 -9
  565. package/integrations/notion/__tests__/write_and_admin_handlers.test.ts +0 -186
  566. package/integrations/notion/credentials.json +0 -27
  567. package/integrations/notion/credentials_hint.md +0 -5
  568. package/integrations/notion/handlers/append_block_children.js +0 -7
  569. package/integrations/notion/handlers/create_comment.js +0 -10
  570. package/integrations/notion/handlers/create_database.js +0 -11
  571. package/integrations/notion/handlers/create_page.js +0 -13
  572. package/integrations/notion/handlers/delete_block.js +0 -8
  573. package/integrations/notion/handlers/get_me.js +0 -4
  574. package/integrations/notion/handlers/list_block_children.js +0 -10
  575. package/integrations/notion/handlers/list_comments.js +0 -14
  576. package/integrations/notion/handlers/list_users.js +0 -10
  577. package/integrations/notion/handlers/query_database.js +0 -10
  578. package/integrations/notion/handlers/retrieve_block.js +0 -4
  579. package/integrations/notion/handlers/retrieve_database.js +0 -4
  580. package/integrations/notion/handlers/retrieve_page.js +0 -4
  581. package/integrations/notion/handlers/retrieve_page_property_item.js +0 -10
  582. package/integrations/notion/handlers/retrieve_user.js +0 -4
  583. package/integrations/notion/handlers/search.js +0 -11
  584. package/integrations/notion/handlers/update_block.js +0 -7
  585. package/integrations/notion/handlers/update_database.js +0 -10
  586. package/integrations/notion/handlers/update_page_properties.js +0 -10
  587. package/integrations/notion/manifest.json +0 -169
  588. package/integrations/notion/prompt.md +0 -26
  589. package/integrations/notion/schemas/append_block_children.json +0 -10
  590. package/integrations/notion/schemas/create_comment.json +0 -18
  591. package/integrations/notion/schemas/create_database.json +0 -18
  592. package/integrations/notion/schemas/create_page.json +0 -22
  593. package/integrations/notion/schemas/delete_block.json +0 -9
  594. package/integrations/notion/schemas/empty.json +0 -6
  595. package/integrations/notion/schemas/id_block.json +0 -9
  596. package/integrations/notion/schemas/id_database.json +0 -9
  597. package/integrations/notion/schemas/id_page.json +0 -9
  598. package/integrations/notion/schemas/id_user.json +0 -9
  599. package/integrations/notion/schemas/list_block_children.json +0 -11
  600. package/integrations/notion/schemas/list_comments.json +0 -15
  601. package/integrations/notion/schemas/list_users.json +0 -9
  602. package/integrations/notion/schemas/query_database.json +0 -13
  603. package/integrations/notion/schemas/retrieve_page_property_item.json +0 -12
  604. package/integrations/notion/schemas/search.json +0 -27
  605. package/integrations/notion/schemas/update_block.json +0 -10
  606. package/integrations/notion/schemas/update_database.json +0 -13
  607. package/integrations/notion/schemas/update_page_properties.json +0 -13
  608. package/integrations/trello/.env.test +0 -6
  609. package/integrations/trello/.env.test.example +0 -9
  610. package/integrations/trello/README.md +0 -50
  611. package/integrations/trello/__tests__/get_handlers.test.ts +0 -225
  612. package/integrations/trello/__tests__/usage_parity.test.ts +0 -9
  613. package/integrations/trello/__tests__/write_and_admin_handlers.test.ts +0 -171
  614. package/integrations/trello/credentials.json +0 -32
  615. package/integrations/trello/credentials_hint.md +0 -4
  616. package/integrations/trello/handlers/add_checklist_to_card.js +0 -5
  617. package/integrations/trello/handlers/add_member_to_card.js +0 -5
  618. package/integrations/trello/handlers/archive_list.js +0 -5
  619. package/integrations/trello/handlers/close_board.js +0 -6
  620. package/integrations/trello/handlers/create_board.js +0 -11
  621. package/integrations/trello/handlers/create_card.js +0 -13
  622. package/integrations/trello/handlers/create_list.js +0 -7
  623. package/integrations/trello/handlers/delete_board.js +0 -13
  624. package/integrations/trello/handlers/delete_card.js +0 -9
  625. package/integrations/trello/handlers/get_board.js +0 -4
  626. package/integrations/trello/handlers/get_board_cards.js +0 -4
  627. package/integrations/trello/handlers/get_board_custom_fields.js +0 -4
  628. package/integrations/trello/handlers/get_board_labels.js +0 -4
  629. package/integrations/trello/handlers/get_board_lists.js +0 -4
  630. package/integrations/trello/handlers/get_board_members.js +0 -4
  631. package/integrations/trello/handlers/get_board_memberships.js +0 -4
  632. package/integrations/trello/handlers/get_card.js +0 -4
  633. package/integrations/trello/handlers/get_card_actions.js +0 -4
  634. package/integrations/trello/handlers/get_card_attachments.js +0 -4
  635. package/integrations/trello/handlers/get_card_checklists.js +0 -4
  636. package/integrations/trello/handlers/get_card_custom_field_items.js +0 -4
  637. package/integrations/trello/handlers/get_card_members.js +0 -4
  638. package/integrations/trello/handlers/get_list.js +0 -4
  639. package/integrations/trello/handlers/get_list_cards.js +0 -4
  640. package/integrations/trello/handlers/get_member.js +0 -4
  641. package/integrations/trello/handlers/get_member_boards.js +0 -4
  642. package/integrations/trello/handlers/get_member_organizations.js +0 -4
  643. package/integrations/trello/handlers/get_organization.js +0 -4
  644. package/integrations/trello/handlers/get_organization_boards.js +0 -4
  645. package/integrations/trello/handlers/move_card_to_list.js +0 -5
  646. package/integrations/trello/handlers/remove_member_from_card.js +0 -9
  647. package/integrations/trello/handlers/search.js +0 -5
  648. package/integrations/trello/handlers/update_card.js +0 -19
  649. package/integrations/trello/handlers/update_list.js +0 -11
  650. package/integrations/trello/manifest.json +0 -245
  651. package/integrations/trello/schemas/add_checklist_to_card.json +0 -10
  652. package/integrations/trello/schemas/add_member_to_card.json +0 -10
  653. package/integrations/trello/schemas/archive_list.json +0 -9
  654. package/integrations/trello/schemas/close_board.json +0 -10
  655. package/integrations/trello/schemas/create_board.json +0 -12
  656. package/integrations/trello/schemas/create_card.json +0 -13
  657. package/integrations/trello/schemas/create_list.json +0 -11
  658. package/integrations/trello/schemas/delete_board.json +0 -10
  659. package/integrations/trello/schemas/delete_card.json +0 -9
  660. package/integrations/trello/schemas/display_trello_cards.json +0 -45
  661. package/integrations/trello/schemas/empty.json +0 -5
  662. package/integrations/trello/schemas/get_member.json +0 -5
  663. package/integrations/trello/schemas/id_board.json +0 -8
  664. package/integrations/trello/schemas/id_card.json +0 -8
  665. package/integrations/trello/schemas/id_list.json +0 -8
  666. package/integrations/trello/schemas/id_org.json +0 -8
  667. package/integrations/trello/schemas/move_card_to_list.json +0 -10
  668. package/integrations/trello/schemas/remove_member_from_card.json +0 -10
  669. package/integrations/trello/schemas/search.json +0 -8
  670. package/integrations/trello/schemas/update_card.json +0 -16
  671. package/integrations/trello/schemas/update_list.json +0 -12
@@ -1,211 +0,0 @@
1
- import { Buffer } from 'node:buffer'
2
- import { beforeAll, describe, expect, it } from 'vitest'
3
- import { createCredentialStore, createIntegrationNode, createProxy, createToolbox, safeCleanup } from '../../__tests__/liveHarness.js'
4
-
5
- const env = process.env as Record<string, string | undefined>
6
-
7
- interface VariantConfig {
8
- key: string
9
- credentials: () => Record<string, string>
10
- }
11
-
12
- const variants: VariantConfig[] = [
13
- {
14
- key: 'service_account',
15
- credentials: () => ({ serviceAccountJson: env.GOOGLE_SERVICE_ACCOUNT_JSON || '', subject: env.GOOGLE_IMPERSONATE_SUBJECT || '' }),
16
- },
17
- {
18
- key: 'oauth_token',
19
- credentials: () => ({ token: env.GOOGLE_TOKEN || '' }),
20
- },
21
- ].filter(v => Object.values(v.credentials()).some(val => val.trim().length > 0))
22
-
23
- const suiteOrSkip = variants.length > 0 ? describe : describe.skip
24
-
25
- function makeRawMessage(toEmail: string, subject: string, text: string): string {
26
- const mime = [
27
- `To: ${toEmail}`,
28
- `Subject: ${subject}`,
29
- 'MIME-Version: 1.0',
30
- 'Content-Type: text/plain; charset=UTF-8',
31
- '',
32
- text,
33
- ].join('\r\n')
34
- return Buffer.from(mime, 'utf8').toString('base64url')
35
- }
36
-
37
- suiteOrSkip('google-gmail write/admin handlers (live)', () => {
38
- for (const variant of variants) {
39
- describe(`variant: ${variant.key}`, () => {
40
- const ctx: { email?: string, inboxLabelId?: string, messageId?: string, threadId?: string } = {}
41
- let gmail: ReturnType<typeof createToolbox>
42
-
43
- beforeAll(async () => {
44
- const credentialStore = createCredentialStore(async () => variant.credentials())
45
- const proxy = createProxy(credentialStore)
46
- gmail = createToolbox(
47
- 'google-gmail',
48
- proxy,
49
- createIntegrationNode('google-gmail', { label: 'Google Gmail', credentialId: 'google-gmail-creds', credentialVariant: variant.key }),
50
- variant.key,
51
- )
52
-
53
- const profile = await gmail.read('get_profile')({})
54
- ctx.email = profile?.emailAddress
55
-
56
- const labels = await gmail.read('list_labels')({})
57
- ctx.inboxLabelId = labels?.labels?.find((l: any) => l?.name === 'INBOX')?.id || labels?.labels?.[0]?.id
58
-
59
- const listedMessages = await gmail.read('list_messages')({ maxResults: 5 })
60
- ctx.messageId = env.GMAIL_TEST_MESSAGE_ID || listedMessages?.messages?.[0]?.id
61
- if (ctx.messageId) {
62
- const msg = await gmail.read('get_message')({ messageId: ctx.messageId, format: 'minimal' })
63
- ctx.threadId = env.GMAIL_TEST_THREAD_ID || msg?.threadId
64
- }
65
- }, 60000)
66
-
67
- it('create_draft_email -> get_draft -> delete_draft', async () => {
68
- if (!ctx.email)
69
- return expect(true).toBe(true)
70
- const created = await gmail.write('create_draft_email')({
71
- to: ctx.email,
72
- subject: `CmdTest Gmail Draft ${Date.now()}`,
73
- body: 'Draft created by write tests.',
74
- })
75
- const draftId = created?.id
76
- expect(draftId).toBeTruthy()
77
- const got = await gmail.read('get_draft')({ draftId })
78
- expect(got?.id).toBe(draftId)
79
- const deleted = await gmail.write('delete_draft')({ draftId })
80
- expect(deleted?.success === true || deleted === '').toBe(true)
81
- }, 60000)
82
-
83
- it('modify_message -> trash_message -> untrash_message on an existing message', async () => {
84
- // Create a fresh draft so we own the message — avoids stale/trashed inbox IDs
85
- const draft = await gmail.write('create_draft_email')({
86
- to: ctx.email || 'noreply@example.com',
87
- subject: `CmdTest Trash ${Date.now()}`,
88
- body: 'Temporary message for trash/untrash test.',
89
- })
90
- const messageId = draft?.message?.id
91
- const draftId = draft?.id
92
- expect(messageId).toBeTruthy()
93
- try {
94
- const modified = await gmail.write('modify_message')({
95
- messageId,
96
- addLabelIds: ctx.inboxLabelId ? [ctx.inboxLabelId] : undefined,
97
- })
98
- expect(modified?.id).toBe(messageId)
99
- const trashed = await gmail.write('trash_message')({ messageId })
100
- expect(trashed?.id).toBe(messageId)
101
- const untrashed = await gmail.write('untrash_message')({ messageId })
102
- expect(untrashed?.id).toBe(messageId)
103
- }
104
- finally {
105
- await safeCleanup(async () => draftId ? gmail.write('delete_draft')({ draftId }) : Promise.resolve())
106
- }
107
- }, 60000)
108
-
109
- it('modify_thread -> trash_thread -> untrash_thread on an existing thread', async () => {
110
- // Create a fresh draft so we own the thread — avoids stale inbox IDs
111
- const draft = await gmail.write('create_draft_email')({
112
- to: ctx.email || 'noreply@example.com',
113
- subject: `CmdTest Thread Trash ${Date.now()}`,
114
- body: 'Temporary message for thread trash/untrash test.',
115
- })
116
- const threadId = draft?.message?.threadId
117
- const draftId = draft?.id
118
- expect(threadId).toBeTruthy()
119
- try {
120
- const modified = await gmail.write('modify_thread')({
121
- threadId,
122
- addLabelIds: ctx.inboxLabelId ? [ctx.inboxLabelId] : undefined,
123
- })
124
- expect(modified?.id).toBe(threadId)
125
- const trashed = await gmail.write('trash_thread')({ threadId })
126
- expect(trashed?.id).toBe(threadId)
127
- const untrashed = await gmail.write('untrash_thread')({ threadId })
128
- expect(untrashed?.id).toBe(threadId)
129
- }
130
- finally {
131
- await safeCleanup(async () => draftId ? gmail.write('delete_draft')({ draftId }) : Promise.resolve())
132
- }
133
- }, 60000)
134
-
135
- it('create_label -> update_label -> delete_label', async () => {
136
- const created = await gmail.admin('create_label')({
137
- name: `CmdTest Label ${Date.now()}`,
138
- labelListVisibility: 'labelShow',
139
- messageListVisibility: 'show',
140
- })
141
- const labelId = created?.id
142
- expect(labelId).toBeTruthy()
143
- const updated = await gmail.admin('update_label')({
144
- labelId,
145
- name: `CmdTest Label Updated ${Date.now()}`,
146
- labelListVisibility: 'labelHide',
147
- })
148
- expect(updated?.id).toBe(labelId)
149
- const deleted = await gmail.admin('delete_label')({ labelId })
150
- expect(deleted?.success === true || deleted === '').toBe(true)
151
- }, 60000)
152
-
153
- it('send_email sends mail when GMAIL_TEST_SEND_TO is set', async () => {
154
- const to = env.GMAIL_TEST_SEND_TO
155
- if (!to)
156
- return expect(true).toBe(true)
157
- const sent = await gmail.write('send_email')({
158
- to,
159
- subject: `CmdTest Gmail send_email ${Date.now()}`,
160
- body: 'Message sent by integration live test via send_email.',
161
- })
162
- expect(sent?.id).toBeTruthy()
163
- }, 60000)
164
-
165
- it('send_draft sends mail when GMAIL_TEST_SEND_TO is set', async () => {
166
- const to = env.GMAIL_TEST_SEND_TO
167
- if (!to)
168
- return expect(true).toBe(true)
169
- const created = await gmail.write('create_draft_email')({
170
- to,
171
- subject: `CmdTest Gmail send_draft ${Date.now()}`,
172
- body: 'Draft sent by integration live test.',
173
- })
174
- const draftId = created?.id
175
- expect(draftId).toBeTruthy()
176
- const sent = await gmail.write('send_draft')({ draftId })
177
- expect(sent?.id || sent?.threadId).toBeTruthy()
178
- }, 60000)
179
-
180
- it('delete_message deletes message when GMAIL_TEST_DELETE_MESSAGE_ID is set', async () => {
181
- const deleteMessageId = env.GMAIL_TEST_DELETE_MESSAGE_ID
182
- if (!deleteMessageId)
183
- return expect(true).toBe(true)
184
- const deleted = await gmail.write('delete_message')({ messageId: deleteMessageId })
185
- expect(deleted?.success === true || deleted === '').toBe(true)
186
- }, 60000)
187
-
188
- it('delete_thread deletes thread when GMAIL_TEST_DELETE_THREAD_ID is set', async () => {
189
- const deleteThreadId = env.GMAIL_TEST_DELETE_THREAD_ID
190
- if (!deleteThreadId)
191
- return expect(true).toBe(true)
192
- const deleted = await gmail.write('delete_thread')({ threadId: deleteThreadId })
193
- expect(deleted?.success === true || deleted === '').toBe(true)
194
- }, 60000)
195
-
196
- it('send_draft supports raw payload mode', async () => {
197
- const to = env.GMAIL_TEST_SEND_TO
198
- if (!to)
199
- return expect(true).toBe(true)
200
- const raw = makeRawMessage(to, `CmdTest Gmail send_draft raw ${Date.now()}`, 'Raw payload draft-send mode.')
201
- const sent = await gmail.write('send_draft')({ raw })
202
- expect(sent?.id || sent?.threadId).toBeTruthy()
203
- }, 60000)
204
-
205
- it('cleanup helper remains available for optional future cleanup', async () => {
206
- await safeCleanup(async () => Promise.resolve())
207
- expect(true).toBe(true)
208
- })
209
- })
210
- }
211
- })
@@ -1,59 +0,0 @@
1
- {
2
- "variants": {
3
- "service_account": {
4
- "label": "Service Account (recommended)",
5
- "schema": {
6
- "type": "object",
7
- "properties": {
8
- "serviceAccountJson": {
9
- "type": "string",
10
- "title": "Service Account JSON",
11
- "description": "Full service account key JSON (contents of the downloaded JSON file from Google Cloud)."
12
- },
13
- "subject": {
14
- "type": "string",
15
- "title": "Subject / impersonated user (optional)",
16
- "description": "User email to impersonate via Google Workspace domain-wide delegation. Usually required for mailbox access."
17
- },
18
- "scopes": {
19
- "type": "array",
20
- "title": "OAuth scopes (optional)",
21
- "description": "Optional override for OAuth scopes. Defaults to full Gmail access.",
22
- "items": { "type": "string" }
23
- }
24
- },
25
- "required": ["serviceAccountJson"],
26
- "additionalProperties": false
27
- },
28
- "injection": {
29
- "headers": {
30
- "Authorization": "Bearer {{token}}"
31
- }
32
- },
33
- "preprocess": "google_service_account",
34
- "healthCheck": { "path": "/users/me/profile" }
35
- },
36
- "oauth_token": {
37
- "label": "OAuth Access Token (short-lived)",
38
- "schema": {
39
- "type": "object",
40
- "properties": {
41
- "token": {
42
- "type": "string",
43
- "title": "OAuth Access Token",
44
- "description": "Short-lived Google OAuth access token with Gmail scopes."
45
- }
46
- },
47
- "required": ["token"],
48
- "additionalProperties": false
49
- },
50
- "injection": {
51
- "headers": {
52
- "Authorization": "Bearer {{token}}"
53
- }
54
- },
55
- "healthCheck": { "path": "/users/me/profile" }
56
- }
57
- },
58
- "default": "service_account"
59
- }
@@ -1,8 +0,0 @@
1
- Obtain a short-lived Google OAuth access token:
2
-
3
- 1. Use the Google OAuth 2.0 Playground (`https://developers.google.com/oauthplayground/`) or your own OAuth flow
4
- 2. Select scopes such as `https://www.googleapis.com/auth/gmail.modify` (and `https://www.googleapis.com/auth/gmail.send` if sending mail)
5
- 3. Exchange the authorization code for an access token
6
- 4. Paste the access token here
7
-
8
- Note: OAuth access tokens are short-lived (typically 1 hour). For long-running automation, prefer the Service Account variant with Workspace delegation.
@@ -1,10 +0,0 @@
1
- Set up a Google Cloud Service Account:
2
-
3
- 1. Open the [Google Cloud Console](https://console.cloud.google.com/)
4
- 2. Enable the **Gmail API** for your project
5
- 3. Go to **IAM & Admin -> Service Accounts** and create a new service account
6
- 4. Under **Keys**, click **Add Key -> Create new key -> JSON** and download the file
7
- 5. Paste the full contents of the JSON file here
8
- 6. For Google Workspace mailboxes, configure domain-wide delegation and set `subject` to the target user's email
9
-
10
- For personal Gmail accounts, use the OAuth token variant instead.
@@ -1,27 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const lines = []
4
- if (input.to) lines.push(`To: ${input.to}`)
5
- lines.push(`Subject: ${input.subject || ''}`)
6
- if (input.cc) lines.push(`Cc: ${input.cc}`)
7
- if (input.bcc) lines.push(`Bcc: ${input.bcc}`)
8
- if (input.replyToMessageId) lines.push(`In-Reply-To: ${input.replyToMessageId}`)
9
- lines.push('MIME-Version: 1.0')
10
- if (input.htmlBody) {
11
- lines.push('Content-Type: text/html; charset=UTF-8')
12
- lines.push('', input.htmlBody)
13
- }
14
- else {
15
- lines.push('Content-Type: text/plain; charset=UTF-8')
16
- lines.push('', input.body || '')
17
- }
18
- const raw = btoa(unescape(encodeURIComponent(lines.join('\r\n')))).replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '')
19
- const message = { raw }
20
- if (input.threadId) message.threadId = input.threadId
21
-
22
- const res = await integration.fetch(`/users/${userId}/drafts`, {
23
- method: 'POST',
24
- body: { message },
25
- })
26
- return await res.json()
27
- }
@@ -1,12 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const body = { name: input.name }
4
- if (input.messageListVisibility)
5
- body.messageListVisibility = input.messageListVisibility
6
- if (input.labelListVisibility)
7
- body.labelListVisibility = input.labelListVisibility
8
- if (input.color)
9
- body.color = input.color
10
- const res = await integration.fetch(`/users/${userId}/labels`, { method: 'POST', body })
11
- return await res.json()
12
- }
@@ -1,13 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const draftId = encodeURIComponent(input.draftId)
4
- const res = await integration.fetch(`/users/${userId}/drafts/${draftId}`, { method: 'DELETE' })
5
- if (res.status === 204)
6
- return { success: true }
7
- try {
8
- return await res.json()
9
- }
10
- catch {
11
- return { success: true }
12
- }
13
- }
@@ -1,13 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const labelId = encodeURIComponent(input.labelId)
4
- const res = await integration.fetch(`/users/${userId}/labels/${labelId}`, { method: 'DELETE' })
5
- if (res.status === 204)
6
- return { success: true }
7
- try {
8
- return await res.json()
9
- }
10
- catch {
11
- return { success: true }
12
- }
13
- }
@@ -1,13 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const messageId = encodeURIComponent(input.messageId)
4
- const res = await integration.fetch(`/users/${userId}/messages/${messageId}`, { method: 'DELETE' })
5
- if (res.status === 204)
6
- return { success: true }
7
- try {
8
- return await res.json()
9
- }
10
- catch {
11
- return { success: true }
12
- }
13
- }
@@ -1,13 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const threadId = encodeURIComponent(input.threadId)
4
- const res = await integration.fetch(`/users/${userId}/threads/${threadId}`, { method: 'DELETE' })
5
- if (res.status === 204)
6
- return { success: true }
7
- try {
8
- return await res.json()
9
- }
10
- catch {
11
- return { success: true }
12
- }
13
- }
@@ -1,6 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const draftId = encodeURIComponent(input.draftId)
4
- const res = await integration.fetch(`/users/${userId}/drafts/${draftId}`)
5
- return await res.json()
6
- }
@@ -1,6 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const labelId = encodeURIComponent(input.labelId)
4
- const res = await integration.fetch(`/users/${userId}/labels/${labelId}`)
5
- return await res.json()
6
- }
@@ -1,14 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const messageId = encodeURIComponent(input.messageId)
4
- const params = new URLSearchParams()
5
- if (input.format)
6
- params.set('format', input.format)
7
- if (Array.isArray(input.metadataHeaders)) {
8
- for (const header of input.metadataHeaders)
9
- params.append('metadataHeaders', String(header))
10
- }
11
- const qs = params.toString()
12
- const res = await integration.fetch(`/users/${userId}/messages/${messageId}${qs ? `?${qs}` : ''}`)
13
- return await res.json()
14
- }
@@ -1,5 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const res = await integration.fetch(`/users/${userId}/profile`)
4
- return await res.json()
5
- }
@@ -1,14 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const threadId = encodeURIComponent(input.threadId)
4
- const params = new URLSearchParams()
5
- if (input.format)
6
- params.set('format', input.format)
7
- if (Array.isArray(input.metadataHeaders)) {
8
- for (const header of input.metadataHeaders)
9
- params.append('metadataHeaders', String(header))
10
- }
11
- const qs = params.toString()
12
- const res = await integration.fetch(`/users/${userId}/threads/${threadId}${qs ? `?${qs}` : ''}`)
13
- return await res.json()
14
- }
@@ -1,15 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const params = new URLSearchParams()
4
- if (input.q)
5
- params.set('q', input.q)
6
- if (input.maxResults !== undefined)
7
- params.set('maxResults', String(input.maxResults))
8
- if (input.pageToken)
9
- params.set('pageToken', input.pageToken)
10
- if (input.includeSpamTrash !== undefined)
11
- params.set('includeSpamTrash', String(input.includeSpamTrash))
12
- const qs = params.toString()
13
- const res = await integration.fetch(`/users/${userId}/drafts${qs ? `?${qs}` : ''}`)
14
- return await res.json()
15
- }
@@ -1,5 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const res = await integration.fetch(`/users/${userId}/labels`)
4
- return await res.json()
5
- }
@@ -1,19 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const params = new URLSearchParams()
4
- if (input.q)
5
- params.set('q', input.q)
6
- if (Array.isArray(input.labelIds)) {
7
- for (const labelId of input.labelIds)
8
- params.append('labelIds', String(labelId))
9
- }
10
- if (input.maxResults !== undefined)
11
- params.set('maxResults', String(input.maxResults))
12
- if (input.pageToken)
13
- params.set('pageToken', input.pageToken)
14
- if (input.includeSpamTrash !== undefined)
15
- params.set('includeSpamTrash', String(input.includeSpamTrash))
16
- const qs = params.toString()
17
- const res = await integration.fetch(`/users/${userId}/messages${qs ? `?${qs}` : ''}`)
18
- return await res.json()
19
- }
@@ -1,19 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const params = new URLSearchParams()
4
- if (input.q)
5
- params.set('q', input.q)
6
- if (Array.isArray(input.labelIds)) {
7
- for (const labelId of input.labelIds)
8
- params.append('labelIds', String(labelId))
9
- }
10
- if (input.maxResults !== undefined)
11
- params.set('maxResults', String(input.maxResults))
12
- if (input.pageToken)
13
- params.set('pageToken', input.pageToken)
14
- if (input.includeSpamTrash !== undefined)
15
- params.set('includeSpamTrash', String(input.includeSpamTrash))
16
- const qs = params.toString()
17
- const res = await integration.fetch(`/users/${userId}/threads${qs ? `?${qs}` : ''}`)
18
- return await res.json()
19
- }
@@ -1,11 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const messageId = encodeURIComponent(input.messageId)
4
- const body = {}
5
- if (Array.isArray(input.addLabelIds))
6
- body.addLabelIds = input.addLabelIds
7
- if (Array.isArray(input.removeLabelIds))
8
- body.removeLabelIds = input.removeLabelIds
9
- const res = await integration.fetch(`/users/${userId}/messages/${messageId}/modify`, { method: 'POST', body })
10
- return await res.json()
11
- }
@@ -1,11 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const threadId = encodeURIComponent(input.threadId)
4
- const body = {}
5
- if (Array.isArray(input.addLabelIds))
6
- body.addLabelIds = input.addLabelIds
7
- if (Array.isArray(input.removeLabelIds))
8
- body.removeLabelIds = input.removeLabelIds
9
- const res = await integration.fetch(`/users/${userId}/threads/${threadId}/modify`, { method: 'POST', body })
10
- return await res.json()
11
- }
@@ -1,56 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const messageId = encodeURIComponent(input.messageId)
4
- const res = await integration.fetch(`/users/${userId}/messages/${messageId}?format=full`)
5
- const msg = await res.json()
6
-
7
- const getHeader = (name) => {
8
- const h = (msg.payload?.headers || []).find(h => h.name.toLowerCase() === name.toLowerCase())
9
- return h?.value || ''
10
- }
11
-
12
- const decodeBase64url = (data) => {
13
- if (!data) return ''
14
- try {
15
- return decodeURIComponent(escape(atob(data.replace(/-/g, '+').replace(/_/g, '/'))))
16
- }
17
- catch {
18
- return ''
19
- }
20
- }
21
-
22
- // Recursively extract text body, preferring text/plain over text/html
23
- const extractBody = (part) => {
24
- if (!part) return ''
25
- if (part.mimeType === 'text/plain' && part.body?.data)
26
- return decodeBase64url(part.body.data)
27
- if (part.parts) {
28
- // Depth-first: try text/plain first across all parts
29
- for (const p of part.parts) {
30
- if (p.mimeType === 'text/plain' && p.body?.data)
31
- return decodeBase64url(p.body.data)
32
- }
33
- // Recurse into nested multipart
34
- for (const p of part.parts) {
35
- const text = extractBody(p)
36
- if (text) return text
37
- }
38
- }
39
- if (part.mimeType === 'text/html' && part.body?.data)
40
- return decodeBase64url(part.body.data)
41
- return ''
42
- }
43
-
44
- return {
45
- id: msg.id,
46
- threadId: msg.threadId,
47
- labelIds: msg.labelIds || [],
48
- subject: getHeader('Subject'),
49
- from: getHeader('From'),
50
- to: getHeader('To'),
51
- cc: getHeader('Cc'),
52
- date: getHeader('Date'),
53
- snippet: msg.snippet || '',
54
- body: extractBody(msg.payload),
55
- }
56
- }
@@ -1,15 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const body = {}
4
- if (input.draftId)
5
- body.id = input.draftId
6
- if (input.raw) {
7
- body.message = { raw: input.raw }
8
- if (input.threadId)
9
- body.message.threadId = input.threadId
10
- if (Array.isArray(input.labelIds))
11
- body.message.labelIds = input.labelIds
12
- }
13
- const res = await integration.fetch(`/users/${userId}/drafts/send`, { method: 'POST', body })
14
- return await res.json()
15
- }
@@ -1,22 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const lines = [`To: ${input.to}`, `Subject: ${input.subject}`]
4
- if (input.cc) lines.push(`Cc: ${input.cc}`)
5
- if (input.bcc) lines.push(`Bcc: ${input.bcc}`)
6
- if (input.replyToMessageId) lines.push(`In-Reply-To: ${input.replyToMessageId}`)
7
- lines.push('MIME-Version: 1.0')
8
- if (input.htmlBody) {
9
- lines.push('Content-Type: text/html; charset=UTF-8')
10
- lines.push('', input.htmlBody)
11
- }
12
- else {
13
- lines.push('Content-Type: text/plain; charset=UTF-8')
14
- lines.push('', input.body)
15
- }
16
- const mime = lines.join('\r\n')
17
- const raw = btoa(unescape(encodeURIComponent(mime))).replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '')
18
- const body = { raw }
19
- if (input.threadId) body.threadId = input.threadId
20
- const res = await integration.fetch(`/users/${userId}/messages/send`, { method: 'POST', body })
21
- return await res.json()
22
- }
@@ -1,6 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const messageId = encodeURIComponent(input.messageId)
4
- const res = await integration.fetch(`/users/${userId}/messages/${messageId}/trash`, { method: 'POST' })
5
- return await res.json()
6
- }
@@ -1,6 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const threadId = encodeURIComponent(input.threadId)
4
- const res = await integration.fetch(`/users/${userId}/threads/${threadId}/trash`, { method: 'POST' })
5
- return await res.json()
6
- }
@@ -1,6 +0,0 @@
1
- async (input) => {
2
- const userId = encodeURIComponent(input.userId || 'me')
3
- const messageId = encodeURIComponent(input.messageId)
4
- const res = await integration.fetch(`/users/${userId}/messages/${messageId}/untrash`, { method: 'POST' })
5
- return await res.json()
6
- }