@commandable/integration-data 0.4.1 → 0.6.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 (665) 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 +11907 -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 +91 -177
  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 +92 -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 +6 -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.example +0 -11
  28. package/integrations/airtable/README.md +0 -27
  29. package/integrations/airtable/__tests__/get_handlers.test.ts +0 -187
  30. package/integrations/airtable/__tests__/usage_parity.test.ts +0 -9
  31. package/integrations/airtable/__tests__/write_and_admin_handlers.test.ts +0 -116
  32. package/integrations/airtable/credentials.json +0 -26
  33. package/integrations/airtable/credentials_hint.md +0 -4
  34. package/integrations/airtable/handlers/create_record.js +0 -12
  35. package/integrations/airtable/handlers/delete_record.js +0 -7
  36. package/integrations/airtable/handlers/get_record.js +0 -4
  37. package/integrations/airtable/handlers/get_table_schema.js +0 -6
  38. package/integrations/airtable/handlers/list_bases.js +0 -4
  39. package/integrations/airtable/handlers/list_records.js +0 -25
  40. package/integrations/airtable/handlers/list_table_fields.js +0 -6
  41. package/integrations/airtable/handlers/list_tables.js +0 -4
  42. package/integrations/airtable/handlers/list_views.js +0 -6
  43. package/integrations/airtable/handlers/search_records.js +0 -6
  44. package/integrations/airtable/handlers/update_record.js +0 -11
  45. package/integrations/airtable/manifest.json +0 -84
  46. package/integrations/airtable/schemas/create_record.json +0 -12
  47. package/integrations/airtable/schemas/delete_record.json +0 -11
  48. package/integrations/airtable/schemas/empty.json +0 -6
  49. package/integrations/airtable/schemas/get_record.json +0 -11
  50. package/integrations/airtable/schemas/id_base.json +0 -9
  51. package/integrations/airtable/schemas/id_base_table.json +0 -10
  52. package/integrations/airtable/schemas/list_records.json +0 -26
  53. package/integrations/airtable/schemas/search_records.json +0 -12
  54. package/integrations/airtable/schemas/update_record.json +0 -13
  55. package/integrations/confluence/.env.test.example +0 -36
  56. package/integrations/confluence/README.md +0 -28
  57. package/integrations/confluence/__tests__/get_handlers.test.ts +0 -121
  58. package/integrations/confluence/__tests__/usage_parity.test.ts +0 -14
  59. package/integrations/confluence/__tests__/write_handlers.test.ts +0 -131
  60. package/integrations/confluence/credentials.json +0 -39
  61. package/integrations/confluence/credentials_hint.md +0 -4
  62. package/integrations/confluence/credentials_hint_api_token.md +0 -9
  63. package/integrations/confluence/credentials_hint_oauth_token.md +0 -8
  64. package/integrations/confluence/handlers/add_comment.js +0 -19
  65. package/integrations/confluence/handlers/add_label.js +0 -16
  66. package/integrations/confluence/handlers/create_page.js +0 -22
  67. package/integrations/confluence/handlers/delete_page.js +0 -17
  68. package/integrations/confluence/handlers/get_comments.js +0 -33
  69. package/integrations/confluence/handlers/get_page_children.js +0 -30
  70. package/integrations/confluence/handlers/get_space.js +0 -22
  71. package/integrations/confluence/handlers/list_spaces.js +0 -39
  72. package/integrations/confluence/handlers/read_page.js +0 -49
  73. package/integrations/confluence/handlers/search_pages.js +0 -42
  74. package/integrations/confluence/handlers/update_page.js +0 -42
  75. package/integrations/confluence/manifest.json +0 -85
  76. package/integrations/confluence/prompt.md +0 -55
  77. package/integrations/confluence/schemas/add_comment.json +0 -22
  78. package/integrations/confluence/schemas/add_label.json +0 -19
  79. package/integrations/confluence/schemas/create_page.json +0 -33
  80. package/integrations/confluence/schemas/delete_page.json +0 -23
  81. package/integrations/confluence/schemas/empty.json +0 -6
  82. package/integrations/confluence/schemas/get_comments.json +0 -24
  83. package/integrations/confluence/schemas/get_page_children.json +0 -28
  84. package/integrations/confluence/schemas/get_space.json +0 -18
  85. package/integrations/confluence/schemas/list_spaces.json +0 -36
  86. package/integrations/confluence/schemas/read_page.json +0 -28
  87. package/integrations/confluence/schemas/search_pages.json +0 -26
  88. package/integrations/confluence/schemas/update_page.json +0 -31
  89. package/integrations/github/.env.test.example +0 -17
  90. package/integrations/github/README.md +0 -75
  91. package/integrations/github/__tests__/get_handlers.test.ts +0 -305
  92. package/integrations/github/__tests__/usage_parity.test.ts +0 -22
  93. package/integrations/github/__tests__/write_handlers.test.ts +0 -496
  94. package/integrations/github/credentials.json +0 -47
  95. package/integrations/github/credentials_hint.md +0 -7
  96. package/integrations/github/credentials_hint_classic_pat.md +0 -8
  97. package/integrations/github/credentials_hint_fine_grained_pat.md +0 -9
  98. package/integrations/github/handlers/add_labels_to_issue.js +0 -12
  99. package/integrations/github/handlers/close_issue.js +0 -5
  100. package/integrations/github/handlers/comment_on_issue.js +0 -5
  101. package/integrations/github/handlers/create_branch.js +0 -33
  102. package/integrations/github/handlers/create_commit.js +0 -84
  103. package/integrations/github/handlers/create_file.js +0 -46
  104. package/integrations/github/handlers/create_issue.js +0 -10
  105. package/integrations/github/handlers/create_or_update_file.js +0 -21
  106. package/integrations/github/handlers/create_pull_request.js +0 -16
  107. package/integrations/github/handlers/create_pull_request_review.js +0 -10
  108. package/integrations/github/handlers/create_release.js +0 -14
  109. package/integrations/github/handlers/create_repo.js +0 -11
  110. package/integrations/github/handlers/delete_branch.js +0 -8
  111. package/integrations/github/handlers/delete_file.js +0 -22
  112. package/integrations/github/handlers/delete_repo.js +0 -6
  113. package/integrations/github/handlers/edit_file.js +0 -52
  114. package/integrations/github/handlers/edit_files.js +0 -107
  115. package/integrations/github/handlers/fork_repo.js +0 -10
  116. package/integrations/github/handlers/get_commit.js +0 -8
  117. package/integrations/github/handlers/get_file_contents.js +0 -21
  118. package/integrations/github/handlers/get_issue.js +0 -4
  119. package/integrations/github/handlers/get_job_logs.js +0 -6
  120. package/integrations/github/handlers/get_latest_release.js +0 -4
  121. package/integrations/github/handlers/get_me.js +0 -4
  122. package/integrations/github/handlers/get_pull_request.js +0 -4
  123. package/integrations/github/handlers/get_pull_request_diff.js +0 -8
  124. package/integrations/github/handlers/get_repo.js +0 -4
  125. package/integrations/github/handlers/get_repo_tree.js +0 -12
  126. package/integrations/github/handlers/get_workflow_run.js +0 -4
  127. package/integrations/github/handlers/list_branches.js +0 -9
  128. package/integrations/github/handlers/list_commits.js +0 -11
  129. package/integrations/github/handlers/list_issue_comments.js +0 -8
  130. package/integrations/github/handlers/list_issues.js +0 -11
  131. package/integrations/github/handlers/list_labels.js +0 -8
  132. package/integrations/github/handlers/list_pull_request_comments.js +0 -8
  133. package/integrations/github/handlers/list_pull_request_files.js +0 -8
  134. package/integrations/github/handlers/list_pull_requests.js +0 -13
  135. package/integrations/github/handlers/list_releases.js +0 -8
  136. package/integrations/github/handlers/list_repos_install.js +0 -4
  137. package/integrations/github/handlers/list_repos_user.js +0 -16
  138. package/integrations/github/handlers/list_tags.js +0 -8
  139. package/integrations/github/handlers/list_workflow_runs.js +0 -11
  140. package/integrations/github/handlers/merge_pull_request.js +0 -14
  141. package/integrations/github/handlers/request_pull_request_reviewers.js +0 -10
  142. package/integrations/github/handlers/search_code.js +0 -8
  143. package/integrations/github/handlers/search_issues.js +0 -8
  144. package/integrations/github/handlers/search_pull_requests.js +0 -8
  145. package/integrations/github/handlers/search_repos.js +0 -10
  146. package/integrations/github/handlers/update_issue.js +0 -15
  147. package/integrations/github/handlers/update_pull_request.js +0 -13
  148. package/integrations/github/manifest.json +0 -92
  149. package/integrations/github/prompt.md +0 -36
  150. package/integrations/github/schemas/add_labels_to_issue.json +0 -12
  151. package/integrations/github/schemas/close_issue.json +0 -10
  152. package/integrations/github/schemas/comment_on_issue.json +0 -11
  153. package/integrations/github/schemas/create_branch.json +0 -12
  154. package/integrations/github/schemas/create_commit.json +0 -25
  155. package/integrations/github/schemas/create_file.json +0 -13
  156. package/integrations/github/schemas/create_issue.json +0 -13
  157. package/integrations/github/schemas/create_or_update_file.json +0 -15
  158. package/integrations/github/schemas/create_pull_request.json +0 -15
  159. package/integrations/github/schemas/create_pull_request_review.json +0 -17
  160. package/integrations/github/schemas/create_release.json +0 -16
  161. package/integrations/github/schemas/create_repo.json +0 -12
  162. package/integrations/github/schemas/delete_branch.json +0 -10
  163. package/integrations/github/schemas/delete_file.json +0 -13
  164. package/integrations/github/schemas/delete_repo.json +0 -10
  165. package/integrations/github/schemas/edit_file.json +0 -26
  166. package/integrations/github/schemas/edit_files.json +0 -39
  167. package/integrations/github/schemas/empty.json +0 -5
  168. package/integrations/github/schemas/fork_repo.json +0 -11
  169. package/integrations/github/schemas/get_commit.json +0 -12
  170. package/integrations/github/schemas/get_file_contents.json +0 -11
  171. package/integrations/github/schemas/get_issue.json +0 -10
  172. package/integrations/github/schemas/get_job_logs.json +0 -10
  173. package/integrations/github/schemas/get_pull_request.json +0 -10
  174. package/integrations/github/schemas/get_pull_request_diff.json +0 -10
  175. package/integrations/github/schemas/get_repo.json +0 -9
  176. package/integrations/github/schemas/get_repo_tree.json +0 -12
  177. package/integrations/github/schemas/get_workflow_run.json +0 -10
  178. package/integrations/github/schemas/list_branches.json +0 -12
  179. package/integrations/github/schemas/list_commits.json +0 -14
  180. package/integrations/github/schemas/list_issue_comments.json +0 -12
  181. package/integrations/github/schemas/list_issues.json +0 -14
  182. package/integrations/github/schemas/list_labels.json +0 -11
  183. package/integrations/github/schemas/list_pull_request_comments.json +0 -12
  184. package/integrations/github/schemas/list_pull_request_files.json +0 -12
  185. package/integrations/github/schemas/list_pull_requests.json +0 -16
  186. package/integrations/github/schemas/list_releases.json +0 -11
  187. package/integrations/github/schemas/list_tags.json +0 -11
  188. package/integrations/github/schemas/list_workflow_runs.json +0 -18
  189. package/integrations/github/schemas/merge_pull_request.json +0 -14
  190. package/integrations/github/schemas/owner_repo.json +0 -9
  191. package/integrations/github/schemas/request_pull_request_reviewers.json +0 -20
  192. package/integrations/github/schemas/search_code.json +0 -10
  193. package/integrations/github/schemas/search_issues.json +0 -10
  194. package/integrations/github/schemas/search_pull_requests.json +0 -10
  195. package/integrations/github/schemas/search_repos.json +0 -12
  196. package/integrations/github/schemas/update_issue.json +0 -15
  197. package/integrations/github/schemas/update_pull_request.json +0 -15
  198. package/integrations/google-calendar/.env.test.example +0 -11
  199. package/integrations/google-calendar/README.md +0 -41
  200. package/integrations/google-calendar/__tests__/get_handlers.test.ts +0 -120
  201. package/integrations/google-calendar/__tests__/usage_parity.test.ts +0 -9
  202. package/integrations/google-calendar/__tests__/write_and_admin_handlers.test.ts +0 -155
  203. package/integrations/google-calendar/credentials.json +0 -59
  204. package/integrations/google-calendar/credentials_hint.md +0 -9
  205. package/integrations/google-calendar/credentials_hint_oauth_token.md +0 -8
  206. package/integrations/google-calendar/credentials_hint_service_account.md +0 -10
  207. package/integrations/google-calendar/handlers/create_event.js +0 -6
  208. package/integrations/google-calendar/handlers/delete_acl.js +0 -6
  209. package/integrations/google-calendar/handlers/delete_event.js +0 -7
  210. package/integrations/google-calendar/handlers/freebusy_query.js +0 -4
  211. package/integrations/google-calendar/handlers/get_acl.js +0 -5
  212. package/integrations/google-calendar/handlers/get_calendar.js +0 -4
  213. package/integrations/google-calendar/handlers/get_event.js +0 -9
  214. package/integrations/google-calendar/handlers/insert_acl.js +0 -6
  215. package/integrations/google-calendar/handlers/list_acl.js +0 -5
  216. package/integrations/google-calendar/handlers/list_calendars.js +0 -4
  217. package/integrations/google-calendar/handlers/list_colors.js +0 -4
  218. package/integrations/google-calendar/handlers/list_events.js +0 -23
  219. package/integrations/google-calendar/handlers/list_settings.js +0 -4
  220. package/integrations/google-calendar/handlers/move_event.js +0 -6
  221. package/integrations/google-calendar/handlers/patch_event.js +0 -5
  222. package/integrations/google-calendar/handlers/quick_add.js +0 -6
  223. package/integrations/google-calendar/handlers/update_acl.js +0 -7
  224. package/integrations/google-calendar/manifest.json +0 -36
  225. package/integrations/google-calendar/prompt.md +0 -68
  226. package/integrations/google-calendar/schemas/create_event.json +0 -34
  227. package/integrations/google-calendar/schemas/delete_acl.json +0 -9
  228. package/integrations/google-calendar/schemas/empty.json +0 -1
  229. package/integrations/google-calendar/schemas/freebusy_query.json +0 -13
  230. package/integrations/google-calendar/schemas/get_acl.json +0 -9
  231. package/integrations/google-calendar/schemas/id_calendar.json +0 -8
  232. package/integrations/google-calendar/schemas/id_calendar_event.json +0 -11
  233. package/integrations/google-calendar/schemas/insert_acl.json +0 -18
  234. package/integrations/google-calendar/schemas/list_events.json +0 -17
  235. package/integrations/google-calendar/schemas/move_event.json +0 -10
  236. package/integrations/google-calendar/schemas/patch_event.json +0 -10
  237. package/integrations/google-calendar/schemas/quick_add.json +0 -9
  238. package/integrations/google-calendar/schemas/update_acl.json +0 -10
  239. package/integrations/google-docs/README.md +0 -30
  240. package/integrations/google-docs/__tests__/get_handlers.test.ts +0 -83
  241. package/integrations/google-docs/__tests__/usage_parity.test.ts +0 -9
  242. package/integrations/google-docs/__tests__/write_handlers.test.ts +0 -238
  243. package/integrations/google-docs/credentials.json +0 -57
  244. package/integrations/google-docs/credentials_hint.md +0 -9
  245. package/integrations/google-docs/credentials_hint_oauth_token.md +0 -8
  246. package/integrations/google-docs/credentials_hint_service_account.md +0 -10
  247. package/integrations/google-docs/handlers/append_text.js +0 -12
  248. package/integrations/google-docs/handlers/batch_update.js +0 -13
  249. package/integrations/google-docs/handlers/create_document.js +0 -9
  250. package/integrations/google-docs/handlers/delete_first_match.js +0 -50
  251. package/integrations/google-docs/handlers/insert_inline_image_after_first_match.js +0 -41
  252. package/integrations/google-docs/handlers/insert_page_break_after_first_match.js +0 -49
  253. package/integrations/google-docs/handlers/insert_table_after_first_match.js +0 -49
  254. package/integrations/google-docs/handlers/insert_text_after_first_match.js +0 -51
  255. package/integrations/google-docs/handlers/read_document.js +0 -189
  256. package/integrations/google-docs/handlers/replace_all_text.js +0 -8
  257. package/integrations/google-docs/handlers/style_first_match.js +0 -42
  258. package/integrations/google-docs/handlers/update_document_style.js +0 -8
  259. package/integrations/google-docs/handlers/update_paragraph_style_for_first_match.js +0 -48
  260. package/integrations/google-docs/manifest.json +0 -44
  261. package/integrations/google-docs/prompt.md +0 -49
  262. package/integrations/google-docs/schemas/append_text.json +0 -10
  263. package/integrations/google-docs/schemas/apply_text_style.json +0 -13
  264. package/integrations/google-docs/schemas/batch_update.json +0 -16
  265. package/integrations/google-docs/schemas/create_document.json +0 -8
  266. package/integrations/google-docs/schemas/delete_content_range.json +0 -11
  267. package/integrations/google-docs/schemas/delete_first_match.json +0 -10
  268. package/integrations/google-docs/schemas/insert_inline_image.json +0 -12
  269. package/integrations/google-docs/schemas/insert_inline_image_after_first_match.json +0 -12
  270. package/integrations/google-docs/schemas/insert_page_break.json +0 -10
  271. package/integrations/google-docs/schemas/insert_page_break_after_first_match.json +0 -11
  272. package/integrations/google-docs/schemas/insert_table.json +0 -12
  273. package/integrations/google-docs/schemas/insert_table_after_first_match.json +0 -13
  274. package/integrations/google-docs/schemas/insert_text_after_first_match.json +0 -12
  275. package/integrations/google-docs/schemas/insert_text_at.json +0 -11
  276. package/integrations/google-docs/schemas/read_document.json +0 -12
  277. package/integrations/google-docs/schemas/replace_all_text.json +0 -12
  278. package/integrations/google-docs/schemas/style_first_match.json +0 -12
  279. package/integrations/google-docs/schemas/update_document_style.json +0 -11
  280. package/integrations/google-docs/schemas/update_paragraph_style.json +0 -13
  281. package/integrations/google-docs/schemas/update_paragraph_style_for_first_match.json +0 -12
  282. package/integrations/google-docs/todo.md +0 -18
  283. package/integrations/google-drive/README.md +0 -26
  284. package/integrations/google-drive/__tests__/handlers.test.ts +0 -145
  285. package/integrations/google-drive/__tests__/usage_parity.test.ts +0 -9
  286. package/integrations/google-drive/credentials.json +0 -59
  287. package/integrations/google-drive/credentials_hint_oauth_token.md +0 -8
  288. package/integrations/google-drive/credentials_hint_service_account.md +0 -10
  289. package/integrations/google-drive/handlers/create_file.js +0 -15
  290. package/integrations/google-drive/handlers/create_folder.js +0 -15
  291. package/integrations/google-drive/handlers/delete_file.js +0 -14
  292. package/integrations/google-drive/handlers/get_file.js +0 -5
  293. package/integrations/google-drive/handlers/get_file_content.js +0 -41
  294. package/integrations/google-drive/handlers/list_files.js +0 -15
  295. package/integrations/google-drive/handlers/move_file.js +0 -12
  296. package/integrations/google-drive/handlers/search_files.js +0 -20
  297. package/integrations/google-drive/handlers/share_file.js +0 -20
  298. package/integrations/google-drive/manifest.json +0 -70
  299. package/integrations/google-drive/prompt.md +0 -59
  300. package/integrations/google-drive/schemas/create_file.json +0 -12
  301. package/integrations/google-drive/schemas/create_folder.json +0 -11
  302. package/integrations/google-drive/schemas/delete_file.json +0 -10
  303. package/integrations/google-drive/schemas/get_file.json +0 -10
  304. package/integrations/google-drive/schemas/get_file_content.json +0 -11
  305. package/integrations/google-drive/schemas/list_files.json +0 -12
  306. package/integrations/google-drive/schemas/move_file.json +0 -12
  307. package/integrations/google-drive/schemas/search_files.json +0 -14
  308. package/integrations/google-drive/schemas/share_file.json +0 -23
  309. package/integrations/google-gmail/.env.test.example +0 -11
  310. package/integrations/google-gmail/README.md +0 -49
  311. package/integrations/google-gmail/__tests__/get_handlers.test.ts +0 -134
  312. package/integrations/google-gmail/__tests__/usage_parity.test.ts +0 -9
  313. package/integrations/google-gmail/__tests__/write_and_admin_handlers.test.ts +0 -211
  314. package/integrations/google-gmail/credentials.json +0 -59
  315. package/integrations/google-gmail/credentials_hint_oauth_token.md +0 -8
  316. package/integrations/google-gmail/credentials_hint_service_account.md +0 -10
  317. package/integrations/google-gmail/handlers/create_draft_email.js +0 -27
  318. package/integrations/google-gmail/handlers/create_label.js +0 -12
  319. package/integrations/google-gmail/handlers/delete_draft.js +0 -13
  320. package/integrations/google-gmail/handlers/delete_label.js +0 -13
  321. package/integrations/google-gmail/handlers/delete_message.js +0 -13
  322. package/integrations/google-gmail/handlers/delete_thread.js +0 -13
  323. package/integrations/google-gmail/handlers/get_draft.js +0 -6
  324. package/integrations/google-gmail/handlers/get_label.js +0 -6
  325. package/integrations/google-gmail/handlers/get_message.js +0 -14
  326. package/integrations/google-gmail/handlers/get_profile.js +0 -5
  327. package/integrations/google-gmail/handlers/get_thread.js +0 -14
  328. package/integrations/google-gmail/handlers/list_drafts.js +0 -15
  329. package/integrations/google-gmail/handlers/list_labels.js +0 -5
  330. package/integrations/google-gmail/handlers/list_messages.js +0 -19
  331. package/integrations/google-gmail/handlers/list_threads.js +0 -19
  332. package/integrations/google-gmail/handlers/modify_message.js +0 -11
  333. package/integrations/google-gmail/handlers/modify_thread.js +0 -11
  334. package/integrations/google-gmail/handlers/read_email.js +0 -56
  335. package/integrations/google-gmail/handlers/send_draft.js +0 -15
  336. package/integrations/google-gmail/handlers/send_email.js +0 -22
  337. package/integrations/google-gmail/handlers/trash_message.js +0 -6
  338. package/integrations/google-gmail/handlers/trash_thread.js +0 -6
  339. package/integrations/google-gmail/handlers/untrash_message.js +0 -6
  340. package/integrations/google-gmail/handlers/untrash_thread.js +0 -6
  341. package/integrations/google-gmail/handlers/update_label.js +0 -15
  342. package/integrations/google-gmail/manifest.json +0 -45
  343. package/integrations/google-gmail/prompt.md +0 -52
  344. package/integrations/google-gmail/schemas/create_draft_email.json +0 -16
  345. package/integrations/google-gmail/schemas/create_label.json +0 -26
  346. package/integrations/google-gmail/schemas/get_message.json +0 -20
  347. package/integrations/google-gmail/schemas/get_profile.json +0 -11
  348. package/integrations/google-gmail/schemas/get_thread.json +0 -20
  349. package/integrations/google-gmail/schemas/id_draft.json +0 -16
  350. package/integrations/google-gmail/schemas/id_label.json +0 -16
  351. package/integrations/google-gmail/schemas/id_message.json +0 -16
  352. package/integrations/google-gmail/schemas/id_thread.json +0 -16
  353. package/integrations/google-gmail/schemas/list_drafts.json +0 -30
  354. package/integrations/google-gmail/schemas/list_labels.json +0 -11
  355. package/integrations/google-gmail/schemas/list_messages.json +0 -35
  356. package/integrations/google-gmail/schemas/list_threads.json +0 -35
  357. package/integrations/google-gmail/schemas/modify_message.json +0 -24
  358. package/integrations/google-gmail/schemas/modify_thread.json +0 -24
  359. package/integrations/google-gmail/schemas/read_email.json +0 -10
  360. package/integrations/google-gmail/schemas/send_draft.json +0 -29
  361. package/integrations/google-gmail/schemas/send_email.json +0 -17
  362. package/integrations/google-gmail/schemas/update_label.json +0 -33
  363. package/integrations/google-sheet/README.md +0 -27
  364. package/integrations/google-sheet/__tests__/get_handlers.test.ts +0 -76
  365. package/integrations/google-sheet/__tests__/usage_parity.test.ts +0 -9
  366. package/integrations/google-sheet/__tests__/write_handlers.test.ts +0 -153
  367. package/integrations/google-sheet/credentials.json +0 -57
  368. package/integrations/google-sheet/credentials_hint.md +0 -9
  369. package/integrations/google-sheet/credentials_hint_oauth_token.md +0 -8
  370. package/integrations/google-sheet/credentials_hint_service_account.md +0 -10
  371. package/integrations/google-sheet/handlers/append_values.js +0 -18
  372. package/integrations/google-sheet/handlers/batch_clear_values.js +0 -6
  373. package/integrations/google-sheet/handlers/batch_update.js +0 -14
  374. package/integrations/google-sheet/handlers/batch_update_values.js +0 -16
  375. package/integrations/google-sheet/handlers/clear_values.js +0 -6
  376. package/integrations/google-sheet/handlers/copy_to_spreadsheet.js +0 -6
  377. package/integrations/google-sheet/handlers/create_spreadsheet.js +0 -5
  378. package/integrations/google-sheet/handlers/get_spreadsheet.js +0 -14
  379. package/integrations/google-sheet/handlers/read_sheet.js +0 -75
  380. package/integrations/google-sheet/handlers/update_values.js +0 -16
  381. package/integrations/google-sheet/manifest.json +0 -77
  382. package/integrations/google-sheet/prompt.md +0 -49
  383. package/integrations/google-sheet/schemas/append_values.json +0 -16
  384. package/integrations/google-sheet/schemas/batch_clear_values.json +0 -10
  385. package/integrations/google-sheet/schemas/batch_update.json +0 -13
  386. package/integrations/google-sheet/schemas/batch_update_values.json +0 -25
  387. package/integrations/google-sheet/schemas/clear_values.json +0 -10
  388. package/integrations/google-sheet/schemas/copy_to_spreadsheet.json +0 -11
  389. package/integrations/google-sheet/schemas/create_spreadsheet.json +0 -11
  390. package/integrations/google-sheet/schemas/get_spreadsheet.json +0 -16
  391. package/integrations/google-sheet/schemas/read_sheet.json +0 -21
  392. package/integrations/google-sheet/schemas/update_values.json +0 -15
  393. package/integrations/google-slides/README.md +0 -28
  394. package/integrations/google-slides/__tests__/get_handlers.test.ts +0 -74
  395. package/integrations/google-slides/__tests__/usage_parity.test.ts +0 -9
  396. package/integrations/google-slides/__tests__/write_handlers.test.ts +0 -131
  397. package/integrations/google-slides/credentials.json +0 -57
  398. package/integrations/google-slides/credentials_hint.md +0 -9
  399. package/integrations/google-slides/credentials_hint_oauth_token.md +0 -8
  400. package/integrations/google-slides/credentials_hint_service_account.md +0 -10
  401. package/integrations/google-slides/handlers/append_text_to_title_of_first_slide.js +0 -17
  402. package/integrations/google-slides/handlers/batch_update.js +0 -15
  403. package/integrations/google-slides/handlers/create_presentation.js +0 -8
  404. package/integrations/google-slides/handlers/create_slide_after_first_match.js +0 -20
  405. package/integrations/google-slides/handlers/get_page_thumbnail.js +0 -12
  406. package/integrations/google-slides/handlers/insert_image_after_first_match.js +0 -19
  407. package/integrations/google-slides/handlers/insert_shape_after_first_match.js +0 -21
  408. package/integrations/google-slides/handlers/read_presentation.js +0 -51
  409. package/integrations/google-slides/handlers/replace_text_first_match.js +0 -9
  410. package/integrations/google-slides/handlers/set_background_color_for_slide_index.js +0 -15
  411. package/integrations/google-slides/handlers/style_text_first_match.js +0 -48
  412. package/integrations/google-slides/manifest.json +0 -42
  413. package/integrations/google-slides/prompt.md +0 -56
  414. package/integrations/google-slides/schemas/append_text_to_title_of_first_slide.json +0 -11
  415. package/integrations/google-slides/schemas/batch_update.json +0 -13
  416. package/integrations/google-slides/schemas/create_presentation.json +0 -8
  417. package/integrations/google-slides/schemas/create_slide_after_first_match.json +0 -11
  418. package/integrations/google-slides/schemas/get_page_thumbnail.json +0 -12
  419. package/integrations/google-slides/schemas/get_presentation.json +0 -9
  420. package/integrations/google-slides/schemas/insert_image_after_first_match.json +0 -13
  421. package/integrations/google-slides/schemas/insert_shape_after_first_match.json +0 -13
  422. package/integrations/google-slides/schemas/replace_text_first_match.json +0 -12
  423. package/integrations/google-slides/schemas/set_background_color_for_slide_index.json +0 -11
  424. package/integrations/google-slides/schemas/style_text_first_match.json +0 -12
  425. package/integrations/hubspot/.env.test.example +0 -20
  426. package/integrations/hubspot/README.md +0 -48
  427. package/integrations/hubspot/__tests__/get_handlers.test.ts +0 -151
  428. package/integrations/hubspot/__tests__/usage_parity.test.ts +0 -10
  429. package/integrations/hubspot/__tests__/write_handlers.test.ts +0 -244
  430. package/integrations/hubspot/credentials.json +0 -50
  431. package/integrations/hubspot/credentials_hint.md +0 -20
  432. package/integrations/hubspot/credentials_hint_oauth_token.md +0 -16
  433. package/integrations/hubspot/handlers/archive_company.js +0 -13
  434. package/integrations/hubspot/handlers/archive_contact.js +0 -13
  435. package/integrations/hubspot/handlers/archive_deal.js +0 -13
  436. package/integrations/hubspot/handlers/archive_ticket.js +0 -13
  437. package/integrations/hubspot/handlers/create_association.js +0 -18
  438. package/integrations/hubspot/handlers/create_company.js +0 -13
  439. package/integrations/hubspot/handlers/create_contact.js +0 -14
  440. package/integrations/hubspot/handlers/create_deal.js +0 -16
  441. package/integrations/hubspot/handlers/create_note.js +0 -44
  442. package/integrations/hubspot/handlers/create_task.js +0 -48
  443. package/integrations/hubspot/handlers/create_ticket.js +0 -15
  444. package/integrations/hubspot/handlers/get_associations.js +0 -14
  445. package/integrations/hubspot/handlers/get_company.js +0 -18
  446. package/integrations/hubspot/handlers/get_contact.js +0 -18
  447. package/integrations/hubspot/handlers/get_deal.js +0 -18
  448. package/integrations/hubspot/handlers/get_ticket.js +0 -20
  449. package/integrations/hubspot/handlers/list_owners.js +0 -12
  450. package/integrations/hubspot/handlers/list_pipelines.js +0 -5
  451. package/integrations/hubspot/handlers/list_properties.js +0 -11
  452. package/integrations/hubspot/handlers/remove_association.js +0 -22
  453. package/integrations/hubspot/handlers/search_companies.js +0 -43
  454. package/integrations/hubspot/handlers/search_contacts.js +0 -43
  455. package/integrations/hubspot/handlers/search_deals.js +0 -43
  456. package/integrations/hubspot/handlers/search_notes.js +0 -43
  457. package/integrations/hubspot/handlers/search_tasks.js +0 -43
  458. package/integrations/hubspot/handlers/search_tickets.js +0 -43
  459. package/integrations/hubspot/handlers/update_company.js +0 -13
  460. package/integrations/hubspot/handlers/update_contact.js +0 -14
  461. package/integrations/hubspot/handlers/update_deal.js +0 -16
  462. package/integrations/hubspot/handlers/update_task.js +0 -17
  463. package/integrations/hubspot/handlers/update_ticket.js +0 -15
  464. package/integrations/hubspot/manifest.json +0 -231
  465. package/integrations/hubspot/prompt.md +0 -69
  466. package/integrations/hubspot/schemas/archive_company.json +0 -13
  467. package/integrations/hubspot/schemas/archive_contact.json +0 -13
  468. package/integrations/hubspot/schemas/archive_deal.json +0 -9
  469. package/integrations/hubspot/schemas/archive_ticket.json +0 -9
  470. package/integrations/hubspot/schemas/create_association.json +0 -24
  471. package/integrations/hubspot/schemas/create_company.json +0 -14
  472. package/integrations/hubspot/schemas/create_contact.json +0 -15
  473. package/integrations/hubspot/schemas/create_deal.json +0 -20
  474. package/integrations/hubspot/schemas/create_note.json +0 -37
  475. package/integrations/hubspot/schemas/create_task.json +0 -51
  476. package/integrations/hubspot/schemas/create_ticket.json +0 -16
  477. package/integrations/hubspot/schemas/empty.json +0 -6
  478. package/integrations/hubspot/schemas/get_associations.json +0 -30
  479. package/integrations/hubspot/schemas/get_company.json +0 -27
  480. package/integrations/hubspot/schemas/get_contact.json +0 -27
  481. package/integrations/hubspot/schemas/get_deal.json +0 -20
  482. package/integrations/hubspot/schemas/get_ticket.json +0 -20
  483. package/integrations/hubspot/schemas/list_owners.json +0 -25
  484. package/integrations/hubspot/schemas/list_pipelines.json +0 -13
  485. package/integrations/hubspot/schemas/list_properties.json +0 -17
  486. package/integrations/hubspot/schemas/remove_association.json +0 -24
  487. package/integrations/hubspot/schemas/search_companies.json +0 -56
  488. package/integrations/hubspot/schemas/search_contacts.json +0 -56
  489. package/integrations/hubspot/schemas/search_deals.json +0 -43
  490. package/integrations/hubspot/schemas/search_notes.json +0 -43
  491. package/integrations/hubspot/schemas/search_tasks.json +0 -43
  492. package/integrations/hubspot/schemas/search_tickets.json +0 -43
  493. package/integrations/hubspot/schemas/update_company.json +0 -20
  494. package/integrations/hubspot/schemas/update_contact.json +0 -21
  495. package/integrations/hubspot/schemas/update_deal.json +0 -19
  496. package/integrations/hubspot/schemas/update_task.json +0 -31
  497. package/integrations/hubspot/schemas/update_ticket.json +0 -18
  498. package/integrations/jira/.env.test.example +0 -41
  499. package/integrations/jira/README.md +0 -46
  500. package/integrations/jira/__tests__/get_handlers.test.ts +0 -193
  501. package/integrations/jira/__tests__/usage_parity.test.ts +0 -14
  502. package/integrations/jira/__tests__/write_handlers.test.ts +0 -157
  503. package/integrations/jira/credentials.json +0 -39
  504. package/integrations/jira/credentials_hint.md +0 -4
  505. package/integrations/jira/credentials_hint_api_token.md +0 -6
  506. package/integrations/jira/credentials_hint_oauth_token.md +0 -6
  507. package/integrations/jira/handlers/add_comment.js +0 -9
  508. package/integrations/jira/handlers/assign_issue.js +0 -11
  509. package/integrations/jira/handlers/create_issue.js +0 -37
  510. package/integrations/jira/handlers/create_sprint.js +0 -19
  511. package/integrations/jira/handlers/delete_issue.js +0 -10
  512. package/integrations/jira/handlers/get_backlog_issues.js +0 -13
  513. package/integrations/jira/handlers/get_board.js +0 -6
  514. package/integrations/jira/handlers/get_issue.js +0 -63
  515. package/integrations/jira/handlers/get_issue_comments.js +0 -31
  516. package/integrations/jira/handlers/get_myself.js +0 -14
  517. package/integrations/jira/handlers/get_project.js +0 -28
  518. package/integrations/jira/handlers/get_sprint.js +0 -5
  519. package/integrations/jira/handlers/get_sprint_issues.js +0 -13
  520. package/integrations/jira/handlers/get_transitions.js +0 -23
  521. package/integrations/jira/handlers/list_boards.js +0 -34
  522. package/integrations/jira/handlers/list_projects.js +0 -29
  523. package/integrations/jira/handlers/list_sprints.js +0 -29
  524. package/integrations/jira/handlers/move_issues_to_sprint.js +0 -11
  525. package/integrations/jira/handlers/search_issues.js +0 -43
  526. package/integrations/jira/handlers/search_users.js +0 -21
  527. package/integrations/jira/handlers/transition_issue.js +0 -44
  528. package/integrations/jira/handlers/update_issue.js +0 -40
  529. package/integrations/jira/handlers/update_sprint.js +0 -20
  530. package/integrations/jira/manifest.json +0 -204
  531. package/integrations/jira/prompt.md +0 -80
  532. package/integrations/jira/schemas/add_comment.json +0 -16
  533. package/integrations/jira/schemas/assign_issue.json +0 -16
  534. package/integrations/jira/schemas/create_issue.json +0 -49
  535. package/integrations/jira/schemas/create_sprint.json +0 -29
  536. package/integrations/jira/schemas/delete_issue.json +0 -12
  537. package/integrations/jira/schemas/empty.json +0 -6
  538. package/integrations/jira/schemas/get_backlog_issues.json +0 -33
  539. package/integrations/jira/schemas/get_board.json +0 -13
  540. package/integrations/jira/schemas/get_issue.json +0 -23
  541. package/integrations/jira/schemas/get_issue_comments.json +0 -23
  542. package/integrations/jira/schemas/get_project.json +0 -17
  543. package/integrations/jira/schemas/get_sprint.json +0 -13
  544. package/integrations/jira/schemas/get_sprint_issues.json +0 -33
  545. package/integrations/jira/schemas/get_transitions.json +0 -12
  546. package/integrations/jira/schemas/list_boards.json +0 -27
  547. package/integrations/jira/schemas/list_projects.json +0 -22
  548. package/integrations/jira/schemas/list_sprints.json +0 -29
  549. package/integrations/jira/schemas/move_issues_to_sprint.json +0 -19
  550. package/integrations/jira/schemas/search_issues.json +0 -28
  551. package/integrations/jira/schemas/search_users.json +0 -18
  552. package/integrations/jira/schemas/transition_issue.json +0 -38
  553. package/integrations/jira/schemas/update_issue.json +0 -47
  554. package/integrations/jira/schemas/update_sprint.json +0 -33
  555. package/integrations/new_integration_prompt.md +0 -216
  556. package/integrations/notion/.env.test.example +0 -13
  557. package/integrations/notion/README.md +0 -42
  558. package/integrations/notion/__tests__/get_handlers.test.ts +0 -156
  559. package/integrations/notion/__tests__/usage_parity.test.ts +0 -9
  560. package/integrations/notion/__tests__/write_and_admin_handlers.test.ts +0 -186
  561. package/integrations/notion/credentials.json +0 -27
  562. package/integrations/notion/credentials_hint.md +0 -5
  563. package/integrations/notion/handlers/append_block_children.js +0 -7
  564. package/integrations/notion/handlers/create_comment.js +0 -10
  565. package/integrations/notion/handlers/create_database.js +0 -11
  566. package/integrations/notion/handlers/create_page.js +0 -13
  567. package/integrations/notion/handlers/delete_block.js +0 -8
  568. package/integrations/notion/handlers/get_me.js +0 -4
  569. package/integrations/notion/handlers/list_block_children.js +0 -10
  570. package/integrations/notion/handlers/list_comments.js +0 -14
  571. package/integrations/notion/handlers/list_users.js +0 -10
  572. package/integrations/notion/handlers/query_database.js +0 -10
  573. package/integrations/notion/handlers/retrieve_block.js +0 -4
  574. package/integrations/notion/handlers/retrieve_database.js +0 -4
  575. package/integrations/notion/handlers/retrieve_page.js +0 -4
  576. package/integrations/notion/handlers/retrieve_page_property_item.js +0 -10
  577. package/integrations/notion/handlers/retrieve_user.js +0 -4
  578. package/integrations/notion/handlers/search.js +0 -11
  579. package/integrations/notion/handlers/update_block.js +0 -7
  580. package/integrations/notion/handlers/update_database.js +0 -10
  581. package/integrations/notion/handlers/update_page_properties.js +0 -10
  582. package/integrations/notion/manifest.json +0 -169
  583. package/integrations/notion/prompt.md +0 -26
  584. package/integrations/notion/schemas/append_block_children.json +0 -10
  585. package/integrations/notion/schemas/create_comment.json +0 -18
  586. package/integrations/notion/schemas/create_database.json +0 -18
  587. package/integrations/notion/schemas/create_page.json +0 -22
  588. package/integrations/notion/schemas/delete_block.json +0 -9
  589. package/integrations/notion/schemas/empty.json +0 -6
  590. package/integrations/notion/schemas/id_block.json +0 -9
  591. package/integrations/notion/schemas/id_database.json +0 -9
  592. package/integrations/notion/schemas/id_page.json +0 -9
  593. package/integrations/notion/schemas/id_user.json +0 -9
  594. package/integrations/notion/schemas/list_block_children.json +0 -11
  595. package/integrations/notion/schemas/list_comments.json +0 -15
  596. package/integrations/notion/schemas/list_users.json +0 -9
  597. package/integrations/notion/schemas/query_database.json +0 -13
  598. package/integrations/notion/schemas/retrieve_page_property_item.json +0 -12
  599. package/integrations/notion/schemas/search.json +0 -27
  600. package/integrations/notion/schemas/update_block.json +0 -10
  601. package/integrations/notion/schemas/update_database.json +0 -13
  602. package/integrations/notion/schemas/update_page_properties.json +0 -13
  603. package/integrations/trello/.env.test.example +0 -9
  604. package/integrations/trello/README.md +0 -50
  605. package/integrations/trello/__tests__/get_handlers.test.ts +0 -225
  606. package/integrations/trello/__tests__/usage_parity.test.ts +0 -9
  607. package/integrations/trello/__tests__/write_and_admin_handlers.test.ts +0 -171
  608. package/integrations/trello/credentials.json +0 -32
  609. package/integrations/trello/credentials_hint.md +0 -4
  610. package/integrations/trello/handlers/add_checklist_to_card.js +0 -5
  611. package/integrations/trello/handlers/add_member_to_card.js +0 -5
  612. package/integrations/trello/handlers/archive_list.js +0 -5
  613. package/integrations/trello/handlers/close_board.js +0 -6
  614. package/integrations/trello/handlers/create_board.js +0 -11
  615. package/integrations/trello/handlers/create_card.js +0 -13
  616. package/integrations/trello/handlers/create_list.js +0 -7
  617. package/integrations/trello/handlers/delete_board.js +0 -13
  618. package/integrations/trello/handlers/delete_card.js +0 -9
  619. package/integrations/trello/handlers/get_board.js +0 -4
  620. package/integrations/trello/handlers/get_board_cards.js +0 -4
  621. package/integrations/trello/handlers/get_board_custom_fields.js +0 -4
  622. package/integrations/trello/handlers/get_board_labels.js +0 -4
  623. package/integrations/trello/handlers/get_board_lists.js +0 -4
  624. package/integrations/trello/handlers/get_board_members.js +0 -4
  625. package/integrations/trello/handlers/get_board_memberships.js +0 -4
  626. package/integrations/trello/handlers/get_card.js +0 -4
  627. package/integrations/trello/handlers/get_card_actions.js +0 -4
  628. package/integrations/trello/handlers/get_card_attachments.js +0 -4
  629. package/integrations/trello/handlers/get_card_checklists.js +0 -4
  630. package/integrations/trello/handlers/get_card_custom_field_items.js +0 -4
  631. package/integrations/trello/handlers/get_card_members.js +0 -4
  632. package/integrations/trello/handlers/get_list.js +0 -4
  633. package/integrations/trello/handlers/get_list_cards.js +0 -4
  634. package/integrations/trello/handlers/get_member.js +0 -4
  635. package/integrations/trello/handlers/get_member_boards.js +0 -4
  636. package/integrations/trello/handlers/get_member_organizations.js +0 -4
  637. package/integrations/trello/handlers/get_organization.js +0 -4
  638. package/integrations/trello/handlers/get_organization_boards.js +0 -4
  639. package/integrations/trello/handlers/move_card_to_list.js +0 -5
  640. package/integrations/trello/handlers/remove_member_from_card.js +0 -9
  641. package/integrations/trello/handlers/search.js +0 -5
  642. package/integrations/trello/handlers/update_card.js +0 -19
  643. package/integrations/trello/handlers/update_list.js +0 -11
  644. package/integrations/trello/manifest.json +0 -245
  645. package/integrations/trello/schemas/add_checklist_to_card.json +0 -10
  646. package/integrations/trello/schemas/add_member_to_card.json +0 -10
  647. package/integrations/trello/schemas/archive_list.json +0 -9
  648. package/integrations/trello/schemas/close_board.json +0 -10
  649. package/integrations/trello/schemas/create_board.json +0 -12
  650. package/integrations/trello/schemas/create_card.json +0 -13
  651. package/integrations/trello/schemas/create_list.json +0 -11
  652. package/integrations/trello/schemas/delete_board.json +0 -10
  653. package/integrations/trello/schemas/delete_card.json +0 -9
  654. package/integrations/trello/schemas/display_trello_cards.json +0 -45
  655. package/integrations/trello/schemas/empty.json +0 -5
  656. package/integrations/trello/schemas/get_member.json +0 -5
  657. package/integrations/trello/schemas/id_board.json +0 -8
  658. package/integrations/trello/schemas/id_card.json +0 -8
  659. package/integrations/trello/schemas/id_list.json +0 -8
  660. package/integrations/trello/schemas/id_org.json +0 -8
  661. package/integrations/trello/schemas/move_card_to_list.json +0 -10
  662. package/integrations/trello/schemas/remove_member_from_card.json +0 -10
  663. package/integrations/trello/schemas/search.json +0 -8
  664. package/integrations/trello/schemas/update_card.json +0 -16
  665. package/integrations/trello/schemas/update_list.json +0 -12
@@ -1,76 +0,0 @@
1
- import { afterAll, beforeAll, describe, expect, it } from 'vitest'
2
- import { createCredentialStore, createIntegrationNode, createProxy, createToolbox, hasEnv, safeCleanup } from '../../__tests__/liveHarness.js'
3
-
4
- // LIVE Google Sheets read tests using credentials
5
- // Required env vars:
6
- // - Either GOOGLE_TOKEN, OR GOOGLE_SERVICE_ACCOUNT_JSON
7
-
8
- const suite = (hasEnv('GOOGLE_TOKEN') || hasEnv('GOOGLE_SERVICE_ACCOUNT_JSON'))
9
- ? describe
10
- : describe.skip
11
-
12
- suite('google-sheet read handlers (live)', () => {
13
- let sheets: ReturnType<typeof createToolbox>
14
- let drive: ReturnType<typeof createToolbox>
15
- let sheetTitle: string | undefined
16
- let folderId: string | undefined
17
- let spreadsheetId: string | undefined
18
-
19
- beforeAll(async () => {
20
- const env = process.env as Record<string, string | undefined>
21
- const credentialStore = createCredentialStore(async () => ({
22
- token: env.GOOGLE_TOKEN || '',
23
- serviceAccountJson: env.GOOGLE_SERVICE_ACCOUNT_JSON || '',
24
- subject: env.GOOGLE_IMPERSONATE_SUBJECT || '',
25
- }))
26
- const proxy = createProxy(credentialStore)
27
- sheets = createToolbox('google-sheet', proxy, createIntegrationNode('google-sheet', { label: 'Google Sheets', credentialId: 'google-sheet-creds' }))
28
- drive = createToolbox('google-drive', proxy, createIntegrationNode('google-drive', { label: 'Google Drive', credentialId: 'google-drive-creds' }))
29
-
30
- // Create dedicated folder + spreadsheet for this run
31
- const folder = await drive.write('create_folder')({ name: `CmdTest Sheets ${Date.now()}` })
32
- folderId = folder?.id
33
- expect(folderId).toBeTruthy()
34
-
35
- const created = await drive.write('create_file')({
36
- name: `CmdTest Sheet ${Date.now()}`,
37
- mimeType: 'application/vnd.google-apps.spreadsheet',
38
- parentId: folderId,
39
- })
40
- spreadsheetId = created?.id
41
- expect(spreadsheetId).toBeTruthy()
42
-
43
- try {
44
- const get_spreadsheet = sheets.read('get_spreadsheet')
45
- const meta = await get_spreadsheet({ spreadsheetId })
46
- sheetTitle = meta?.sheets?.[0]?.properties?.title
47
- }
48
- catch {}
49
- }, 60000)
50
-
51
- afterAll(async () => {
52
- if (!folderId)
53
- return
54
- await safeCleanup(async () => spreadsheetId ? drive.write('delete_file')({ fileId: spreadsheetId }) : Promise.resolve())
55
- await safeCleanup(async () => drive.write('delete_file')({ fileId: folderId }))
56
- }, 60000)
57
-
58
- it('get_spreadsheet returns metadata', async () => {
59
- if (!spreadsheetId)
60
- return expect(true).toBe(true)
61
- const handler = sheets.read('get_spreadsheet')
62
- const result = await handler({ spreadsheetId })
63
- expect(result?.spreadsheetId || result?.sheets).toBeTruthy()
64
- }, 30000)
65
-
66
- it('read_sheet returns markdown with A1 coordinates', async () => {
67
- if (!spreadsheetId)
68
- return expect(true).toBe(true)
69
- const handler = sheets.read('read_sheet')
70
- const range = sheetTitle ? `${sheetTitle}!A1:B5` : 'A1:B5'
71
- const result = await handler({ spreadsheetId, range, valueRenderOption: 'FORMATTED_VALUE' })
72
- expect(result?.range).toBeTruthy()
73
- expect(typeof result?.markdown).toBe('string')
74
- expect(result?.columnCount >= 1).toBe(true)
75
- }, 30000)
76
- })
@@ -1,9 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
- import { getMissingToolUsages } from '../../__tests__/usageParity.js'
3
-
4
- describe('google-sheet static usage parity', () => {
5
- it('every manifest tool is referenced in tests', () => {
6
- const missing = getMissingToolUsages({ integrationName: 'google-sheet', importMetaUrl: import.meta.url })
7
- expect(missing, `Missing handler usages in tests: ${missing.join(', ')}`).toEqual([])
8
- })
9
- })
@@ -1,153 +0,0 @@
1
- import { afterAll, beforeAll, describe, expect, it } from 'vitest'
2
- import { createCredentialStore, createIntegrationNode, createProxy, createToolbox, hasEnv, safeCleanup } from '../../__tests__/liveHarness.js'
3
-
4
- // LIVE Google Sheets write tests using credentials
5
- // Required env vars:
6
- // - Either GOOGLE_TOKEN, OR GOOGLE_SERVICE_ACCOUNT_JSON
7
- // - GOOGLE_SHEETS_TEST_SPREADSHEET_ID (target spreadsheet ID with write access)
8
-
9
- interface Ctx {
10
- spreadsheetId?: string
11
- folderId?: string
12
- destSpreadsheetId?: string
13
- }
14
-
15
- const suite = (hasEnv('GOOGLE_TOKEN') || hasEnv('GOOGLE_SERVICE_ACCOUNT_JSON'))
16
- ? describe
17
- : describe.skip
18
-
19
- suite('google-sheet write handlers (live)', () => {
20
- const ctx: Ctx = {}
21
- let sheets: ReturnType<typeof createToolbox>
22
- let drive: ReturnType<typeof createToolbox>
23
- let sheetTitle: string | undefined
24
-
25
- beforeAll(async () => {
26
- const env = process.env as Record<string, string | undefined>
27
- const credentialStore = createCredentialStore(async () => ({
28
- token: env.GOOGLE_TOKEN || '',
29
- serviceAccountJson: env.GOOGLE_SERVICE_ACCOUNT_JSON || '',
30
- subject: env.GOOGLE_IMPERSONATE_SUBJECT || '',
31
- }))
32
- const proxy = createProxy(credentialStore)
33
- sheets = createToolbox('google-sheet', proxy, createIntegrationNode('google-sheet', { label: 'Google Sheets', credentialId: 'google-sheet-creds' }))
34
- drive = createToolbox('google-drive', proxy, createIntegrationNode('google-drive', { label: 'Google Drive', credentialId: 'google-drive-creds' }))
35
-
36
- const folder = await drive.write('create_folder')({ name: `CmdTest Sheets Write ${Date.now()}` })
37
- ctx.folderId = folder?.id
38
- expect(ctx.folderId).toBeTruthy()
39
-
40
- const created = await drive.write('create_file')({
41
- name: `CmdTest Sheet ${Date.now()}`,
42
- mimeType: 'application/vnd.google-apps.spreadsheet',
43
- parentId: ctx.folderId,
44
- })
45
- ctx.spreadsheetId = created?.id
46
- expect(ctx.spreadsheetId).toBeTruthy()
47
-
48
- const createdDest = await drive.write('create_file')({
49
- name: `CmdTest Sheet Dest ${Date.now()}`,
50
- mimeType: 'application/vnd.google-apps.spreadsheet',
51
- parentId: ctx.folderId,
52
- })
53
- ctx.destSpreadsheetId = createdDest?.id
54
- expect(ctx.destSpreadsheetId).toBeTruthy()
55
-
56
- // Try to detect a default sheet title
57
- if (ctx.spreadsheetId) {
58
- try {
59
- const get_spreadsheet = sheets.read('get_spreadsheet')
60
- const meta = await get_spreadsheet({ spreadsheetId: ctx.spreadsheetId })
61
- sheetTitle = meta?.sheets?.[0]?.properties?.title
62
- }
63
- catch {}
64
- }
65
- }, 60000)
66
-
67
- afterAll(async () => {
68
- await safeCleanup(async () => {
69
- const delete_file = drive.write('delete_file')
70
- if (ctx.spreadsheetId)
71
- await delete_file({ fileId: ctx.spreadsheetId })
72
- if (ctx.destSpreadsheetId)
73
- await delete_file({ fileId: ctx.destSpreadsheetId })
74
- })
75
- await safeCleanup(async () => ctx.folderId ? drive.write('delete_file')({ fileId: ctx.folderId }) : Promise.resolve())
76
- }, 60_000)
77
-
78
- it('append_values appends then clear_values clears', async () => {
79
- if (!ctx.spreadsheetId)
80
- return expect(true).toBe(true)
81
-
82
- const append_values = sheets.write('append_values')
83
- const aTitle = sheetTitle || 'Sheet1'
84
- const appendRes = await append_values({ spreadsheetId: ctx.spreadsheetId, range: `${aTitle}!A1`, values: [[`CmdTest ${Date.now()}`]], valueInputOption: 'USER_ENTERED' })
85
- expect(appendRes?.updates || appendRes?.tableRange || appendRes?.spreadsheetId).toBeTruthy()
86
-
87
- const clear_values = sheets.write('clear_values')
88
- const clearRes = await clear_values({ spreadsheetId: ctx.spreadsheetId, range: `${aTitle}!A1:A10` })
89
- expect(clearRes?.clearedRange || clearRes?.spreadsheetId).toBeTruthy()
90
- }, 60000)
91
-
92
- it('update_values updates a range', async () => {
93
- if (!ctx.spreadsheetId)
94
- return expect(true).toBe(true)
95
- const aTitle = sheetTitle || 'Sheet1'
96
- const update_values = sheets.write('update_values')
97
- const res = await update_values({ spreadsheetId: ctx.spreadsheetId, range: `${aTitle}!B1:B1`, values: [[`CmdTestU ${Date.now()}`]], valueInputOption: 'USER_ENTERED' })
98
- expect(res?.updatedRange || res?.spreadsheetId).toBeTruthy()
99
- }, 60000)
100
-
101
- it('batch_update_values updates multiple ranges', async () => {
102
- if (!ctx.spreadsheetId)
103
- return expect(true).toBe(true)
104
- const aTitle = sheetTitle || 'Sheet1'
105
- const batch_update_values = sheets.write('batch_update_values')
106
- const res = await batch_update_values({ spreadsheetId: ctx.spreadsheetId, data: [
107
- { range: `${aTitle}!C1:C1`, values: [[`CmdTestB1 ${Date.now()}`]] },
108
- { range: `${aTitle}!C2:C2`, values: [[`CmdTestB2 ${Date.now()}`]] },
109
- ], valueInputOption: 'USER_ENTERED', includeValuesInResponse: true })
110
- expect(res?.totalUpdatedCells >= 0 || res?.spreadsheetId).toBeTruthy()
111
- }, 60000)
112
-
113
- it('batch_clear_values clears multiple ranges', async () => {
114
- if (!ctx.spreadsheetId)
115
- return expect(true).toBe(true)
116
- const aTitle = sheetTitle || 'Sheet1'
117
- const batch_clear_values = sheets.write('batch_clear_values')
118
- const res = await batch_clear_values({ spreadsheetId: ctx.spreadsheetId, ranges: [`${aTitle}!A1:A2`, `${aTitle}!B1:B2`] })
119
- expect(Boolean(res?.spreadsheetId) || Array.isArray(res?.clearedRanges)).toBe(true)
120
- }, 60000)
121
-
122
- it('batch_update handles a trivial request (no-op findReplace)', async () => {
123
- if (!ctx.spreadsheetId)
124
- return expect(true).toBe(true)
125
- const aTitle = sheetTitle || 'Sheet1'
126
- const batch_update = sheets.write('batch_update')
127
- const res = await batch_update({ spreadsheetId: ctx.spreadsheetId, requests: [
128
- { findReplace: { find: '___unlikely___', replacement: '___unlikely___', matchCase: true, searchByRegex: false, includeFormulas: false, range: { sheetId: 0 } } },
129
- ], includeSpreadsheetInResponse: false })
130
- expect(res?.spreadsheetId).toBeTruthy()
131
- }, 60000)
132
-
133
- it('copy_to_spreadsheet copies a sheet when destination provided', async () => {
134
- if (!ctx.spreadsheetId || !ctx.destSpreadsheetId)
135
- return expect(true).toBe(true)
136
- const copy_to_spreadsheet = sheets.write('copy_to_spreadsheet')
137
- // Attempt to copy sheet with id 0 (typical for first sheet). If it fails, skip.
138
- try {
139
- const res = await copy_to_spreadsheet({ spreadsheetId: ctx.spreadsheetId, sheetId: 0, destinationSpreadsheetId: ctx.destSpreadsheetId })
140
- expect(res?.sheetId !== undefined || res?.spreadsheetId).toBeTruthy()
141
- }
142
- catch {
143
- expect(true).toBe(true)
144
- }
145
- }, 60000)
146
-
147
- it('create_spreadsheet creates a spreadsheet (self-cleaning)', async () => {
148
- const created = await sheets.write('create_spreadsheet')({ properties: { title: `CmdTest Sheet Tool ${Date.now()}` } })
149
- const id = created?.spreadsheetId
150
- expect(typeof id).toBe('string')
151
- await safeCleanup(async () => id ? drive.write('delete_file')({ fileId: id }) : Promise.resolve())
152
- }, 60000)
153
- })
@@ -1,57 +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": "Optional user email to impersonate when using Google Workspace domain-wide delegation."
17
- },
18
- "scopes": {
19
- "type": "array",
20
- "title": "OAuth scopes (optional)",
21
- "description": "Optional override for OAuth scopes. Defaults to spreadsheets.",
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
- },
35
- "oauth_token": {
36
- "label": "OAuth Access Token (short-lived)",
37
- "schema": {
38
- "type": "object",
39
- "properties": {
40
- "token": {
41
- "type": "string",
42
- "title": "OAuth Access Token",
43
- "description": "Short-lived Google OAuth access token with spreadsheets scope."
44
- }
45
- },
46
- "required": ["token"],
47
- "additionalProperties": false
48
- },
49
- "injection": {
50
- "headers": {
51
- "Authorization": "Bearer {{token}}"
52
- }
53
- }
54
- }
55
- },
56
- "default": "service_account"
57
- }
@@ -1,9 +0,0 @@
1
- Recommended: use a Google service account.
2
-
3
- - Create a service account in Google Cloud
4
- - Download a JSON key
5
- - Paste the JSON into `serviceAccountJson`
6
- - Share your test spreadsheet with the service account `client_email`
7
-
8
- You can also paste a short-lived OAuth access token into `token`, but it will expire.
9
-
@@ -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 the scope: `https://www.googleapis.com/auth/spreadsheets`
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 use, prefer the Service Account variant.
@@ -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 **Google Sheets 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. Share your target spreadsheets with the service account's `client_email`
9
-
10
- For Google Workspace users: optionally configure domain-wide delegation and set `subject` to the user's email.
@@ -1,18 +0,0 @@
1
- async (input) => {
2
- const { spreadsheetId, range, values, valueInputOption, insertDataOption, includeValuesInResponse, responseValueRenderOption, responseDateTimeRenderOption } = input
3
- const params = new URLSearchParams()
4
- if (valueInputOption)
5
- params.set('valueInputOption', valueInputOption)
6
- if (insertDataOption)
7
- params.set('insertDataOption', insertDataOption)
8
- if (includeValuesInResponse !== undefined)
9
- params.set('includeValuesInResponse', String(includeValuesInResponse))
10
- if (responseValueRenderOption)
11
- params.set('responseValueRenderOption', responseValueRenderOption)
12
- if (responseDateTimeRenderOption)
13
- params.set('responseDateTimeRenderOption', responseDateTimeRenderOption)
14
- const qs = params.toString()
15
- const path = `/spreadsheets/${encodeURIComponent(spreadsheetId)}/values/${encodeURIComponent(range)}:append${qs ? `?${qs}` : ''}`
16
- const res = await integration.fetch(path, { method: 'POST', body: { values } })
17
- return await res.json()
18
- }
@@ -1,6 +0,0 @@
1
- async (input) => {
2
- const { spreadsheetId, ranges } = input
3
- const path = `/spreadsheets/${encodeURIComponent(spreadsheetId)}/values:batchClear`
4
- const res = await integration.fetch(path, { method: 'POST', body: { ranges } })
5
- return await res.json()
6
- }
@@ -1,14 +0,0 @@
1
- async (input) => {
2
- const { spreadsheetId, requests, includeSpreadsheetInResponse, responseRanges, responseIncludeGridData } = input
3
- const params = new URLSearchParams()
4
- if (includeSpreadsheetInResponse !== undefined)
5
- params.set('includeSpreadsheetInResponse', String(includeSpreadsheetInResponse))
6
- if (Array.isArray(responseRanges))
7
- responseRanges.forEach(r => params.append('responseRanges', String(r)))
8
- if (responseIncludeGridData !== undefined)
9
- params.set('responseIncludeGridData', String(responseIncludeGridData))
10
- const qs = params.toString()
11
- const path = `/spreadsheets/${encodeURIComponent(spreadsheetId)}:batchUpdate${qs ? `?${qs}` : ''}`
12
- const res = await integration.fetch(path, { method: 'POST', body: { requests } })
13
- return await res.json()
14
- }
@@ -1,16 +0,0 @@
1
- async (input) => {
2
- const { spreadsheetId, data, valueInputOption, includeValuesInResponse, responseValueRenderOption, responseDateTimeRenderOption } = input
3
- const params = new URLSearchParams()
4
- if (valueInputOption)
5
- params.set('valueInputOption', valueInputOption)
6
- if (includeValuesInResponse !== undefined)
7
- params.set('includeValuesInResponse', String(includeValuesInResponse))
8
- if (responseValueRenderOption)
9
- params.set('responseValueRenderOption', responseValueRenderOption)
10
- if (responseDateTimeRenderOption)
11
- params.set('responseDateTimeRenderOption', responseDateTimeRenderOption)
12
- const qs = params.toString()
13
- const path = `/spreadsheets/${encodeURIComponent(spreadsheetId)}/values:batchUpdate${qs ? `?${qs}` : ''}`
14
- const res = await integration.fetch(path, { method: 'POST', body: { data } })
15
- return await res.json()
16
- }
@@ -1,6 +0,0 @@
1
- async (input) => {
2
- const { spreadsheetId, range } = input
3
- const path = `/spreadsheets/${encodeURIComponent(spreadsheetId)}/values/${encodeURIComponent(range)}:clear`
4
- const res = await integration.fetch(path, { method: 'POST', body: {} })
5
- return await res.json()
6
- }
@@ -1,6 +0,0 @@
1
- async (input) => {
2
- const { spreadsheetId, sheetId, destinationSpreadsheetId } = input
3
- const path = `/spreadsheets/${encodeURIComponent(spreadsheetId)}/sheets/${encodeURIComponent(sheetId)}:copyTo`
4
- const res = await integration.fetch(path, { method: 'POST', body: { destinationSpreadsheetId } })
5
- return await res.json()
6
- }
@@ -1,5 +0,0 @@
1
- async (input) => {
2
- const path = `/spreadsheets`
3
- const res = await integration.fetch(path, { method: 'POST', body: input })
4
- return await res.json()
5
- }
@@ -1,14 +0,0 @@
1
- async (input) => {
2
- const { spreadsheetId, includeGridData, ranges } = input
3
- const params = new URLSearchParams()
4
- if (includeGridData !== undefined)
5
- params.set('includeGridData', String(includeGridData))
6
- if (Array.isArray(ranges))
7
- ranges.forEach(r => params.append('ranges', String(r)))
8
- if (input.fields)
9
- params.set('fields', input.fields)
10
- const qs = params.toString()
11
- const path = `/spreadsheets/${encodeURIComponent(spreadsheetId)}${qs ? `?${qs}` : ''}`
12
- const res = await integration.fetch(path)
13
- return await res.json()
14
- }
@@ -1,75 +0,0 @@
1
- async (input) => {
2
- const toColumnName = (index) => {
3
- let n = index + 1
4
- let out = ''
5
- while (n > 0) {
6
- const rem = (n - 1) % 26
7
- out = String.fromCharCode(65 + rem) + out
8
- n = Math.floor((n - 1) / 26)
9
- }
10
- return out
11
- }
12
-
13
- const columnNameToIndex = (name) => {
14
- let value = 0
15
- for (const ch of name.toUpperCase()) {
16
- const code = ch.charCodeAt(0)
17
- if (code < 65 || code > 90) continue
18
- value = value * 26 + (code - 64)
19
- }
20
- return Math.max(0, value - 1)
21
- }
22
-
23
- const parseResolvedRange = (resolvedRange) => {
24
- // Examples: "Sheet1!A1:D5", "Sheet1!B:B", "Sheet1!2:9"
25
- const a1 = String(resolvedRange || '').split('!')[1] || ''
26
- const [start = 'A1'] = a1.split(':')
27
- const letters = (start.match(/[A-Za-z]+/) || ['A'])[0]
28
- const rowDigits = (start.match(/\d+/) || ['1'])[0]
29
- return {
30
- startColumn: columnNameToIndex(letters),
31
- startRow: Math.max(1, parseInt(rowDigits, 10) || 1),
32
- }
33
- }
34
-
35
- const escapeCell = (value) =>
36
- String(value ?? '')
37
- .replace(/\|/g, '\\|')
38
- .replace(/\r?\n/g, '<br>')
39
-
40
- const spreadsheetId = input.spreadsheetId
41
- const range = input.range || 'A1:Z1000'
42
- const params = new URLSearchParams()
43
- if (input.valueRenderOption) params.set('valueRenderOption', input.valueRenderOption)
44
-
45
- const qs = params.toString()
46
- const path = `/spreadsheets/${encodeURIComponent(spreadsheetId)}/values/${encodeURIComponent(range)}${qs ? `?${qs}` : ''}`
47
- const res = await integration.fetch(path)
48
- const payload = await res.json()
49
-
50
- const values = Array.isArray(payload?.values) ? payload.values : []
51
- const resolvedRange = payload?.range || range
52
- const { startColumn, startRow } = parseResolvedRange(resolvedRange)
53
-
54
- const width = Math.max(1, ...values.map((row) => (Array.isArray(row) ? row.length : 0)))
55
- const headerCells = Array.from({ length: width }, (_, i) => toColumnName(startColumn + i))
56
- const lines = [
57
- `| | ${headerCells.join(' | ')} |`,
58
- `|---|${Array(width).fill('---').join('|')}|`,
59
- ]
60
-
61
- for (let i = 0; i < values.length; i += 1) {
62
- const row = Array.isArray(values[i]) ? values[i] : []
63
- const padded = [...row, ...Array(width - row.length).fill('')]
64
- const escaped = padded.map((cell) => escapeCell(cell))
65
- lines.push(`| ${startRow + i} | ${escaped.join(' | ')} |`)
66
- }
67
-
68
- return {
69
- spreadsheetId,
70
- range: resolvedRange,
71
- rowCount: values.length,
72
- columnCount: width,
73
- markdown: lines.join('\n'),
74
- }
75
- }
@@ -1,16 +0,0 @@
1
- async (input) => {
2
- const { spreadsheetId, range, values, valueInputOption, includeValuesInResponse, responseValueRenderOption, responseDateTimeRenderOption } = input
3
- const params = new URLSearchParams()
4
- if (valueInputOption)
5
- params.set('valueInputOption', valueInputOption)
6
- if (includeValuesInResponse !== undefined)
7
- params.set('includeValuesInResponse', String(includeValuesInResponse))
8
- if (responseValueRenderOption)
9
- params.set('responseValueRenderOption', responseValueRenderOption)
10
- if (responseDateTimeRenderOption)
11
- params.set('responseDateTimeRenderOption', responseDateTimeRenderOption)
12
- const qs = params.toString()
13
- const path = `/spreadsheets/${encodeURIComponent(spreadsheetId)}/values/${encodeURIComponent(range)}${qs ? `?${qs}` : ''}`
14
- const res = await integration.fetch(path, { method: 'PUT', body: { values } })
15
- return await res.json()
16
- }
@@ -1,77 +0,0 @@
1
- {
2
- "name": "google-sheet",
3
- "version": "0.1.0",
4
- "baseUrl": "https://sheets.googleapis.com/v4",
5
- "tools": [
6
- {
7
- "name": "get_spreadsheet",
8
- "description": "Retrieve spreadsheet metadata including all sheet names, IDs, and properties. Set includeGridData=false (the default) to get only metadata without cell values. Use read_sheet for cell content. Use the 'fields' parameter to limit the response (e.g. fields='sheets.properties' to get only sheet names and IDs). The spreadsheetId appears in the URL: https://docs.google.com/spreadsheets/d/{spreadsheetId}/.",
9
- "inputSchema": "schemas/get_spreadsheet.json",
10
- "handler": "handlers/get_spreadsheet.js",
11
- "scope": "read"
12
- },
13
- {
14
- "name": "read_sheet",
15
- "description": "Read cell values from a sheet range and return as a Markdown table with A1 column headers and row numbers. Use this to read and understand spreadsheet data -- the coordinates in the output can be used directly with update_values and append_values for writes. Supports optional valueRenderOption for formulas or raw numbers. Use get_spreadsheet first to discover sheet names.",
16
- "inputSchema": "schemas/read_sheet.json",
17
- "handler": "handlers/read_sheet.js",
18
- "scope": "read"
19
- },
20
- {
21
- "name": "create_spreadsheet",
22
- "description": "Create a new Google Spreadsheet. Accepts a full spreadsheet resource body, allowing you to specify the title, initial sheets, and cell data. Minimum: provide {title: 'My Spreadsheet'}. Returns the created spreadsheet including its spreadsheetId.",
23
- "inputSchema": "schemas/create_spreadsheet.json",
24
- "handler": "handlers/create_spreadsheet.js",
25
- "scope": "write"
26
- },
27
- {
28
- "name": "update_values",
29
- "description": "Write values to a specific A1 range, replacing existing content. Use valueInputOption='USER_ENTERED' to parse values as the user would type them (supports formulas, dates, currency). Use 'RAW' to store values as literal strings. Provide values as a 2D array (rows of columns).",
30
- "inputSchema": "schemas/update_values.json",
31
- "handler": "handlers/update_values.js",
32
- "scope": "write"
33
- },
34
- {
35
- "name": "append_values",
36
- "description": "Append rows of values after the last row of existing data in a range. Useful for adding new rows to a table without knowing the exact next row number. Uses USER_ENTERED valueInputOption by default. The range determines which sheet to append to.",
37
- "inputSchema": "schemas/append_values.json",
38
- "handler": "handlers/append_values.js",
39
- "scope": "write"
40
- },
41
- {
42
- "name": "batch_update_values",
43
- "description": "Write values to multiple A1 ranges in a single API call. More efficient than calling update_values multiple times. Provide a data array where each item has range and values. Use valueInputOption='USER_ENTERED' for formulas and dates.",
44
- "inputSchema": "schemas/batch_update_values.json",
45
- "handler": "handlers/batch_update_values.js",
46
- "scope": "write"
47
- },
48
- {
49
- "name": "clear_values",
50
- "description": "Clear all values (but not formatting) in the specified A1 range. The cells remain but their content is removed. To clear formatting as well, use batch_update with a repeatCell request.",
51
- "inputSchema": "schemas/clear_values.json",
52
- "handler": "handlers/clear_values.js",
53
- "scope": "write"
54
- },
55
- {
56
- "name": "batch_clear_values",
57
- "description": "Clear values from multiple A1 ranges in a single API call. More efficient than calling clear_values multiple times.",
58
- "inputSchema": "schemas/batch_clear_values.json",
59
- "handler": "handlers/batch_clear_values.js",
60
- "scope": "write"
61
- },
62
- {
63
- "name": "batch_update",
64
- "description": "Send a spreadsheets.batchUpdate request for structural changes such as addSheet, deleteSheet, duplicateSheet, insertDimension, deleteDimension, mergeCells, sortRange, addConditionalFormatRule, and more. Accepts a requests array. Use update_values or batch_update_values for writing cell data.",
65
- "inputSchema": "schemas/batch_update.json",
66
- "handler": "handlers/batch_update.js",
67
- "scope": "write"
68
- },
69
- {
70
- "name": "copy_to_spreadsheet",
71
- "description": "Copy a specific sheet (tab) from one spreadsheet to another. Provide the source spreadsheetId, the sheetId (integer, from get_spreadsheet), and the destination spreadsheetId. Returns the copied sheet's properties in the destination spreadsheet.",
72
- "inputSchema": "schemas/copy_to_spreadsheet.json",
73
- "handler": "handlers/copy_to_spreadsheet.js",
74
- "scope": "write"
75
- }
76
- ]
77
- }
@@ -1,49 +0,0 @@
1
- ## A1 notation
2
-
3
- Ranges use A1 notation: `SheetName!StartCell:EndCell`
4
-
5
- Examples:
6
- - `Sheet1!A1:D10` — cells A1 to D10 on Sheet1
7
- - `Sheet1!A:A` — entire column A
8
- - `Sheet1!1:5` — rows 1 through 5
9
- - `Sheet1` — entire sheet (all data)
10
- - `A1:D10` — if the spreadsheet has only one sheet, sheet name can be omitted
11
- - `'My Sheet'!A1:B5` — sheet names with spaces must be quoted with single quotes
12
-
13
- Use `get_spreadsheet` with `fields='sheets.properties'` first to discover all sheet names and their IDs.
14
-
15
- ## valueInputOption
16
-
17
- Controls how input values are interpreted in `update_values`, `append_values`, and `batch_update_values`:
18
-
19
- - `USER_ENTERED` *(recommended)* — values are parsed as if a user typed them. Supports formulas (`=SUM(A1:A10)`), dates (`1/15/2024`), currency (`$1,234.56`), and percentages (`50%`)
20
- - `RAW` — values are stored as literal strings, no parsing. Use when you want exact string storage
21
-
22
- ## valueRenderOption
23
-
24
- Controls how values are returned in `read_sheet`:
25
-
26
- - `FORMATTED_VALUE` *(default)* — returns values as displayed in the UI (e.g. `"$1,234.56"`, `"50%"`)
27
- - `UNFORMATTED_VALUE` — returns raw numbers (e.g. `1234.56`, `0.5`)
28
- - `FORMULA` — returns formulas as strings (e.g. `"=SUM(A1:A10)"`)
29
-
30
- ## Recommended workflow
31
-
32
- 1. Call `get_spreadsheet` with `fields='sheets.properties'` to get sheet names and sheetIds
33
- 2. Use `read_sheet` with an A1 range to read data as markdown plus explicit row/column coordinates
34
- 3. Use the coordinates from `read_sheet` output (e.g. `B3`) with `update_values` or `append_values` for writes
35
-
36
- ## Structural changes
37
-
38
- For adding/removing sheets, inserting/deleting rows or columns, or formatting cells, use `batch_update` with the appropriate request types:
39
- - `addSheet` — add a new tab
40
- - `deleteSheet` — remove a tab (requires sheetId, not name)
41
- - `insertDimension` — insert rows or columns
42
- - `deleteDimension` — delete rows or columns
43
- - `repeatCell` — apply formatting to a range
44
-
45
- ## Large spreadsheets
46
-
47
- Avoid calling `get_spreadsheet` with `includeGridData=true` on large spreadsheets -- it can return megabytes of data. Instead:
48
- - Use `read_sheet` with specific ranges
49
- - Use `get_spreadsheet` with `fields='sheets.properties'` to get sheet metadata only