@commandable/integration-data 0.3.0 → 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.
- package/dist/credentials-index.d.ts +2 -7
- package/dist/credentials-index.d.ts.map +1 -1
- package/dist/credentials-index.js +11 -677
- package/dist/credentials-index.js.map +1 -1
- package/dist/generated/registry.d.ts +3 -0
- package/dist/generated/registry.d.ts.map +1 -0
- package/dist/generated/registry.js +11889 -0
- package/dist/generated/registry.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +1 -133
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +63 -194
- package/dist/loader.js.map +1 -1
- package/dist/tools.d.ts +2 -2
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +1 -1
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +88 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +3 -4
- package/integrations/README.md +0 -52
- package/integrations/__tests__/liveHarness.ts +0 -97
- package/integrations/__tests__/usageParity.ts +0 -54
- package/integrations/airtable/.env.test +0 -9
- package/integrations/airtable/.env.test.example +0 -11
- package/integrations/airtable/README.md +0 -27
- package/integrations/airtable/__tests__/get_handlers.test.ts +0 -187
- package/integrations/airtable/__tests__/usage_parity.test.ts +0 -9
- package/integrations/airtable/__tests__/write_and_admin_handlers.test.ts +0 -116
- package/integrations/airtable/credentials.json +0 -26
- package/integrations/airtable/credentials_hint.md +0 -4
- package/integrations/airtable/handlers/create_record.js +0 -12
- package/integrations/airtable/handlers/delete_record.js +0 -7
- package/integrations/airtable/handlers/get_record.js +0 -4
- package/integrations/airtable/handlers/get_table_schema.js +0 -6
- package/integrations/airtable/handlers/list_bases.js +0 -4
- package/integrations/airtable/handlers/list_records.js +0 -25
- package/integrations/airtable/handlers/list_table_fields.js +0 -6
- package/integrations/airtable/handlers/list_tables.js +0 -4
- package/integrations/airtable/handlers/list_views.js +0 -6
- package/integrations/airtable/handlers/search_records.js +0 -6
- package/integrations/airtable/handlers/update_record.js +0 -11
- package/integrations/airtable/manifest.json +0 -83
- package/integrations/airtable/schemas/create_record.json +0 -12
- package/integrations/airtable/schemas/delete_record.json +0 -11
- package/integrations/airtable/schemas/empty.json +0 -6
- package/integrations/airtable/schemas/get_record.json +0 -11
- package/integrations/airtable/schemas/id_base.json +0 -9
- package/integrations/airtable/schemas/id_base_table.json +0 -10
- package/integrations/airtable/schemas/list_records.json +0 -26
- package/integrations/airtable/schemas/search_records.json +0 -12
- package/integrations/airtable/schemas/update_record.json +0 -13
- package/integrations/confluence/.env.test +0 -25
- package/integrations/confluence/.env.test.example +0 -36
- package/integrations/confluence/README.md +0 -28
- package/integrations/confluence/__tests__/get_handlers.test.ts +0 -121
- package/integrations/confluence/__tests__/usage_parity.test.ts +0 -14
- package/integrations/confluence/__tests__/write_handlers.test.ts +0 -131
- package/integrations/confluence/credentials.json +0 -39
- package/integrations/confluence/credentials_hint.md +0 -4
- package/integrations/confluence/credentials_hint_api_token.md +0 -9
- package/integrations/confluence/credentials_hint_oauth_token.md +0 -8
- package/integrations/confluence/handlers/add_comment.js +0 -19
- package/integrations/confluence/handlers/add_label.js +0 -16
- package/integrations/confluence/handlers/create_page.js +0 -22
- package/integrations/confluence/handlers/delete_page.js +0 -17
- package/integrations/confluence/handlers/get_comments.js +0 -33
- package/integrations/confluence/handlers/get_page_children.js +0 -30
- package/integrations/confluence/handlers/get_space.js +0 -22
- package/integrations/confluence/handlers/list_spaces.js +0 -39
- package/integrations/confluence/handlers/read_page.js +0 -49
- package/integrations/confluence/handlers/search_pages.js +0 -42
- package/integrations/confluence/handlers/update_page.js +0 -42
- package/integrations/confluence/manifest.json +0 -85
- package/integrations/confluence/prompt.md +0 -55
- package/integrations/confluence/schemas/add_comment.json +0 -22
- package/integrations/confluence/schemas/add_label.json +0 -19
- package/integrations/confluence/schemas/create_page.json +0 -33
- package/integrations/confluence/schemas/delete_page.json +0 -23
- package/integrations/confluence/schemas/empty.json +0 -6
- package/integrations/confluence/schemas/get_comments.json +0 -24
- package/integrations/confluence/schemas/get_page_children.json +0 -28
- package/integrations/confluence/schemas/get_space.json +0 -18
- package/integrations/confluence/schemas/list_spaces.json +0 -36
- package/integrations/confluence/schemas/read_page.json +0 -28
- package/integrations/confluence/schemas/search_pages.json +0 -26
- package/integrations/confluence/schemas/update_page.json +0 -31
- package/integrations/github/.env.test +0 -16
- package/integrations/github/.env.test.example +0 -17
- package/integrations/github/README.md +0 -75
- package/integrations/github/__tests__/get_handlers.test.ts +0 -305
- package/integrations/github/__tests__/usage_parity.test.ts +0 -22
- package/integrations/github/__tests__/write_handlers.test.ts +0 -496
- package/integrations/github/credentials.json +0 -47
- package/integrations/github/credentials_hint.md +0 -7
- package/integrations/github/credentials_hint_classic_pat.md +0 -8
- package/integrations/github/credentials_hint_fine_grained_pat.md +0 -9
- package/integrations/github/handlers/add_labels_to_issue.js +0 -12
- package/integrations/github/handlers/close_issue.js +0 -5
- package/integrations/github/handlers/comment_on_issue.js +0 -5
- package/integrations/github/handlers/create_branch.js +0 -33
- package/integrations/github/handlers/create_commit.js +0 -84
- package/integrations/github/handlers/create_file.js +0 -46
- package/integrations/github/handlers/create_issue.js +0 -10
- package/integrations/github/handlers/create_or_update_file.js +0 -21
- package/integrations/github/handlers/create_pull_request.js +0 -16
- package/integrations/github/handlers/create_pull_request_review.js +0 -10
- package/integrations/github/handlers/create_release.js +0 -14
- package/integrations/github/handlers/create_repo.js +0 -11
- package/integrations/github/handlers/delete_branch.js +0 -8
- package/integrations/github/handlers/delete_file.js +0 -22
- package/integrations/github/handlers/delete_repo.js +0 -6
- package/integrations/github/handlers/edit_file.js +0 -52
- package/integrations/github/handlers/edit_files.js +0 -107
- package/integrations/github/handlers/fork_repo.js +0 -10
- package/integrations/github/handlers/get_commit.js +0 -8
- package/integrations/github/handlers/get_file_contents.js +0 -21
- package/integrations/github/handlers/get_issue.js +0 -4
- package/integrations/github/handlers/get_job_logs.js +0 -6
- package/integrations/github/handlers/get_latest_release.js +0 -4
- package/integrations/github/handlers/get_me.js +0 -4
- package/integrations/github/handlers/get_pull_request.js +0 -4
- package/integrations/github/handlers/get_pull_request_diff.js +0 -8
- package/integrations/github/handlers/get_repo.js +0 -4
- package/integrations/github/handlers/get_repo_tree.js +0 -12
- package/integrations/github/handlers/get_workflow_run.js +0 -4
- package/integrations/github/handlers/list_branches.js +0 -9
- package/integrations/github/handlers/list_commits.js +0 -11
- package/integrations/github/handlers/list_issue_comments.js +0 -8
- package/integrations/github/handlers/list_issues.js +0 -11
- package/integrations/github/handlers/list_labels.js +0 -8
- package/integrations/github/handlers/list_pull_request_comments.js +0 -8
- package/integrations/github/handlers/list_pull_request_files.js +0 -8
- package/integrations/github/handlers/list_pull_requests.js +0 -13
- package/integrations/github/handlers/list_releases.js +0 -8
- package/integrations/github/handlers/list_repos_install.js +0 -4
- package/integrations/github/handlers/list_repos_user.js +0 -4
- package/integrations/github/handlers/list_tags.js +0 -8
- package/integrations/github/handlers/list_workflow_runs.js +0 -11
- package/integrations/github/handlers/merge_pull_request.js +0 -14
- package/integrations/github/handlers/request_pull_request_reviewers.js +0 -10
- package/integrations/github/handlers/search_code.js +0 -8
- package/integrations/github/handlers/search_issues.js +0 -8
- package/integrations/github/handlers/search_pull_requests.js +0 -8
- package/integrations/github/handlers/search_repos.js +0 -10
- package/integrations/github/handlers/update_issue.js +0 -15
- package/integrations/github/handlers/update_pull_request.js +0 -13
- package/integrations/github/manifest.json +0 -91
- package/integrations/github/prompt.md +0 -36
- package/integrations/github/schemas/add_labels_to_issue.json +0 -12
- package/integrations/github/schemas/close_issue.json +0 -10
- package/integrations/github/schemas/comment_on_issue.json +0 -11
- package/integrations/github/schemas/create_branch.json +0 -12
- package/integrations/github/schemas/create_commit.json +0 -25
- package/integrations/github/schemas/create_file.json +0 -13
- package/integrations/github/schemas/create_issue.json +0 -13
- package/integrations/github/schemas/create_or_update_file.json +0 -15
- package/integrations/github/schemas/create_pull_request.json +0 -15
- package/integrations/github/schemas/create_pull_request_review.json +0 -17
- package/integrations/github/schemas/create_release.json +0 -16
- package/integrations/github/schemas/create_repo.json +0 -12
- package/integrations/github/schemas/delete_branch.json +0 -10
- package/integrations/github/schemas/delete_file.json +0 -13
- package/integrations/github/schemas/delete_repo.json +0 -10
- package/integrations/github/schemas/edit_file.json +0 -26
- package/integrations/github/schemas/edit_files.json +0 -39
- package/integrations/github/schemas/empty.json +0 -5
- package/integrations/github/schemas/fork_repo.json +0 -11
- package/integrations/github/schemas/get_commit.json +0 -12
- package/integrations/github/schemas/get_file_contents.json +0 -11
- package/integrations/github/schemas/get_issue.json +0 -10
- package/integrations/github/schemas/get_job_logs.json +0 -10
- package/integrations/github/schemas/get_pull_request.json +0 -10
- package/integrations/github/schemas/get_pull_request_diff.json +0 -10
- package/integrations/github/schemas/get_repo.json +0 -9
- package/integrations/github/schemas/get_repo_tree.json +0 -12
- package/integrations/github/schemas/get_workflow_run.json +0 -10
- package/integrations/github/schemas/list_branches.json +0 -12
- package/integrations/github/schemas/list_commits.json +0 -14
- package/integrations/github/schemas/list_issue_comments.json +0 -12
- package/integrations/github/schemas/list_issues.json +0 -14
- package/integrations/github/schemas/list_labels.json +0 -11
- package/integrations/github/schemas/list_pull_request_comments.json +0 -12
- package/integrations/github/schemas/list_pull_request_files.json +0 -12
- package/integrations/github/schemas/list_pull_requests.json +0 -16
- package/integrations/github/schemas/list_releases.json +0 -11
- package/integrations/github/schemas/list_tags.json +0 -11
- package/integrations/github/schemas/list_workflow_runs.json +0 -18
- package/integrations/github/schemas/merge_pull_request.json +0 -14
- package/integrations/github/schemas/owner_repo.json +0 -9
- package/integrations/github/schemas/request_pull_request_reviewers.json +0 -20
- package/integrations/github/schemas/search_code.json +0 -10
- package/integrations/github/schemas/search_issues.json +0 -10
- package/integrations/github/schemas/search_pull_requests.json +0 -10
- package/integrations/github/schemas/search_repos.json +0 -12
- package/integrations/github/schemas/update_issue.json +0 -15
- package/integrations/github/schemas/update_pull_request.json +0 -15
- package/integrations/google-calendar/.env.test.example +0 -11
- package/integrations/google-calendar/README.md +0 -41
- package/integrations/google-calendar/__tests__/get_handlers.test.ts +0 -120
- package/integrations/google-calendar/__tests__/usage_parity.test.ts +0 -9
- package/integrations/google-calendar/__tests__/write_and_admin_handlers.test.ts +0 -155
- package/integrations/google-calendar/credentials.json +0 -59
- package/integrations/google-calendar/credentials_hint.md +0 -9
- package/integrations/google-calendar/credentials_hint_oauth_token.md +0 -8
- package/integrations/google-calendar/credentials_hint_service_account.md +0 -10
- package/integrations/google-calendar/handlers/create_event.js +0 -6
- package/integrations/google-calendar/handlers/delete_acl.js +0 -6
- package/integrations/google-calendar/handlers/delete_event.js +0 -7
- package/integrations/google-calendar/handlers/freebusy_query.js +0 -4
- package/integrations/google-calendar/handlers/get_acl.js +0 -5
- package/integrations/google-calendar/handlers/get_calendar.js +0 -4
- package/integrations/google-calendar/handlers/get_event.js +0 -9
- package/integrations/google-calendar/handlers/insert_acl.js +0 -6
- package/integrations/google-calendar/handlers/list_acl.js +0 -5
- package/integrations/google-calendar/handlers/list_calendars.js +0 -4
- package/integrations/google-calendar/handlers/list_colors.js +0 -4
- package/integrations/google-calendar/handlers/list_events.js +0 -23
- package/integrations/google-calendar/handlers/list_settings.js +0 -4
- package/integrations/google-calendar/handlers/move_event.js +0 -6
- package/integrations/google-calendar/handlers/patch_event.js +0 -5
- package/integrations/google-calendar/handlers/quick_add.js +0 -6
- package/integrations/google-calendar/handlers/update_acl.js +0 -7
- package/integrations/google-calendar/manifest.json +0 -35
- package/integrations/google-calendar/prompt.md +0 -68
- package/integrations/google-calendar/schemas/create_event.json +0 -34
- package/integrations/google-calendar/schemas/delete_acl.json +0 -9
- package/integrations/google-calendar/schemas/empty.json +0 -1
- package/integrations/google-calendar/schemas/freebusy_query.json +0 -13
- package/integrations/google-calendar/schemas/get_acl.json +0 -9
- package/integrations/google-calendar/schemas/id_calendar.json +0 -8
- package/integrations/google-calendar/schemas/id_calendar_event.json +0 -11
- package/integrations/google-calendar/schemas/insert_acl.json +0 -18
- package/integrations/google-calendar/schemas/list_events.json +0 -17
- package/integrations/google-calendar/schemas/move_event.json +0 -10
- package/integrations/google-calendar/schemas/patch_event.json +0 -10
- package/integrations/google-calendar/schemas/quick_add.json +0 -9
- package/integrations/google-calendar/schemas/update_acl.json +0 -10
- package/integrations/google-docs/README.md +0 -30
- package/integrations/google-docs/__tests__/get_handlers.test.ts +0 -83
- package/integrations/google-docs/__tests__/usage_parity.test.ts +0 -9
- package/integrations/google-docs/__tests__/write_handlers.test.ts +0 -238
- package/integrations/google-docs/credentials.json +0 -57
- package/integrations/google-docs/credentials_hint.md +0 -9
- package/integrations/google-docs/credentials_hint_oauth_token.md +0 -8
- package/integrations/google-docs/credentials_hint_service_account.md +0 -10
- package/integrations/google-docs/handlers/append_text.js +0 -12
- package/integrations/google-docs/handlers/batch_update.js +0 -13
- package/integrations/google-docs/handlers/create_document.js +0 -9
- package/integrations/google-docs/handlers/delete_first_match.js +0 -50
- package/integrations/google-docs/handlers/insert_inline_image_after_first_match.js +0 -41
- package/integrations/google-docs/handlers/insert_page_break_after_first_match.js +0 -49
- package/integrations/google-docs/handlers/insert_table_after_first_match.js +0 -49
- package/integrations/google-docs/handlers/insert_text_after_first_match.js +0 -51
- package/integrations/google-docs/handlers/read_document.js +0 -189
- package/integrations/google-docs/handlers/replace_all_text.js +0 -8
- package/integrations/google-docs/handlers/style_first_match.js +0 -42
- package/integrations/google-docs/handlers/update_document_style.js +0 -8
- package/integrations/google-docs/handlers/update_paragraph_style_for_first_match.js +0 -48
- package/integrations/google-docs/manifest.json +0 -43
- package/integrations/google-docs/prompt.md +0 -49
- package/integrations/google-docs/schemas/append_text.json +0 -10
- package/integrations/google-docs/schemas/apply_text_style.json +0 -13
- package/integrations/google-docs/schemas/batch_update.json +0 -16
- package/integrations/google-docs/schemas/create_document.json +0 -8
- package/integrations/google-docs/schemas/delete_content_range.json +0 -11
- package/integrations/google-docs/schemas/delete_first_match.json +0 -10
- package/integrations/google-docs/schemas/insert_inline_image.json +0 -12
- package/integrations/google-docs/schemas/insert_inline_image_after_first_match.json +0 -12
- package/integrations/google-docs/schemas/insert_page_break.json +0 -10
- package/integrations/google-docs/schemas/insert_page_break_after_first_match.json +0 -11
- package/integrations/google-docs/schemas/insert_table.json +0 -12
- package/integrations/google-docs/schemas/insert_table_after_first_match.json +0 -13
- package/integrations/google-docs/schemas/insert_text_after_first_match.json +0 -12
- package/integrations/google-docs/schemas/insert_text_at.json +0 -11
- package/integrations/google-docs/schemas/read_document.json +0 -12
- package/integrations/google-docs/schemas/replace_all_text.json +0 -12
- package/integrations/google-docs/schemas/style_first_match.json +0 -12
- package/integrations/google-docs/schemas/update_document_style.json +0 -11
- package/integrations/google-docs/schemas/update_paragraph_style.json +0 -13
- package/integrations/google-docs/schemas/update_paragraph_style_for_first_match.json +0 -12
- package/integrations/google-docs/todo.md +0 -18
- package/integrations/google-drive/README.md +0 -26
- package/integrations/google-drive/__tests__/handlers.test.ts +0 -145
- package/integrations/google-drive/__tests__/usage_parity.test.ts +0 -9
- package/integrations/google-drive/credentials.json +0 -59
- package/integrations/google-drive/credentials_hint_oauth_token.md +0 -8
- package/integrations/google-drive/credentials_hint_service_account.md +0 -10
- package/integrations/google-drive/handlers/create_file.js +0 -15
- package/integrations/google-drive/handlers/create_folder.js +0 -15
- package/integrations/google-drive/handlers/delete_file.js +0 -14
- package/integrations/google-drive/handlers/get_file.js +0 -5
- package/integrations/google-drive/handlers/get_file_content.js +0 -41
- package/integrations/google-drive/handlers/list_files.js +0 -15
- package/integrations/google-drive/handlers/move_file.js +0 -12
- package/integrations/google-drive/handlers/search_files.js +0 -20
- package/integrations/google-drive/handlers/share_file.js +0 -20
- package/integrations/google-drive/manifest.json +0 -69
- package/integrations/google-drive/prompt.md +0 -59
- package/integrations/google-drive/schemas/create_file.json +0 -12
- package/integrations/google-drive/schemas/create_folder.json +0 -11
- package/integrations/google-drive/schemas/delete_file.json +0 -10
- package/integrations/google-drive/schemas/get_file.json +0 -10
- package/integrations/google-drive/schemas/get_file_content.json +0 -11
- package/integrations/google-drive/schemas/list_files.json +0 -12
- package/integrations/google-drive/schemas/move_file.json +0 -12
- package/integrations/google-drive/schemas/search_files.json +0 -14
- package/integrations/google-drive/schemas/share_file.json +0 -23
- package/integrations/google-gmail/.env.test.example +0 -11
- package/integrations/google-gmail/README.md +0 -49
- package/integrations/google-gmail/__tests__/get_handlers.test.ts +0 -134
- package/integrations/google-gmail/__tests__/usage_parity.test.ts +0 -9
- package/integrations/google-gmail/__tests__/write_and_admin_handlers.test.ts +0 -211
- package/integrations/google-gmail/credentials.json +0 -59
- package/integrations/google-gmail/credentials_hint_oauth_token.md +0 -8
- package/integrations/google-gmail/credentials_hint_service_account.md +0 -10
- package/integrations/google-gmail/handlers/create_draft_email.js +0 -27
- package/integrations/google-gmail/handlers/create_label.js +0 -12
- package/integrations/google-gmail/handlers/delete_draft.js +0 -13
- package/integrations/google-gmail/handlers/delete_label.js +0 -13
- package/integrations/google-gmail/handlers/delete_message.js +0 -13
- package/integrations/google-gmail/handlers/delete_thread.js +0 -13
- package/integrations/google-gmail/handlers/get_draft.js +0 -6
- package/integrations/google-gmail/handlers/get_label.js +0 -6
- package/integrations/google-gmail/handlers/get_message.js +0 -14
- package/integrations/google-gmail/handlers/get_profile.js +0 -5
- package/integrations/google-gmail/handlers/get_thread.js +0 -14
- package/integrations/google-gmail/handlers/list_drafts.js +0 -15
- package/integrations/google-gmail/handlers/list_labels.js +0 -5
- package/integrations/google-gmail/handlers/list_messages.js +0 -19
- package/integrations/google-gmail/handlers/list_threads.js +0 -19
- package/integrations/google-gmail/handlers/modify_message.js +0 -11
- package/integrations/google-gmail/handlers/modify_thread.js +0 -11
- package/integrations/google-gmail/handlers/read_email.js +0 -56
- package/integrations/google-gmail/handlers/send_draft.js +0 -15
- package/integrations/google-gmail/handlers/send_email.js +0 -22
- package/integrations/google-gmail/handlers/trash_message.js +0 -6
- package/integrations/google-gmail/handlers/trash_thread.js +0 -6
- package/integrations/google-gmail/handlers/untrash_message.js +0 -6
- package/integrations/google-gmail/handlers/untrash_thread.js +0 -6
- package/integrations/google-gmail/handlers/update_label.js +0 -15
- package/integrations/google-gmail/manifest.json +0 -44
- package/integrations/google-gmail/prompt.md +0 -52
- package/integrations/google-gmail/schemas/create_draft_email.json +0 -16
- package/integrations/google-gmail/schemas/create_label.json +0 -26
- package/integrations/google-gmail/schemas/get_message.json +0 -20
- package/integrations/google-gmail/schemas/get_profile.json +0 -11
- package/integrations/google-gmail/schemas/get_thread.json +0 -20
- package/integrations/google-gmail/schemas/id_draft.json +0 -16
- package/integrations/google-gmail/schemas/id_label.json +0 -16
- package/integrations/google-gmail/schemas/id_message.json +0 -16
- package/integrations/google-gmail/schemas/id_thread.json +0 -16
- package/integrations/google-gmail/schemas/list_drafts.json +0 -30
- package/integrations/google-gmail/schemas/list_labels.json +0 -11
- package/integrations/google-gmail/schemas/list_messages.json +0 -35
- package/integrations/google-gmail/schemas/list_threads.json +0 -35
- package/integrations/google-gmail/schemas/modify_message.json +0 -24
- package/integrations/google-gmail/schemas/modify_thread.json +0 -24
- package/integrations/google-gmail/schemas/read_email.json +0 -10
- package/integrations/google-gmail/schemas/send_draft.json +0 -29
- package/integrations/google-gmail/schemas/send_email.json +0 -17
- package/integrations/google-gmail/schemas/update_label.json +0 -33
- package/integrations/google-sheet/README.md +0 -27
- package/integrations/google-sheet/__tests__/get_handlers.test.ts +0 -76
- package/integrations/google-sheet/__tests__/usage_parity.test.ts +0 -9
- package/integrations/google-sheet/__tests__/write_handlers.test.ts +0 -153
- package/integrations/google-sheet/credentials.json +0 -57
- package/integrations/google-sheet/credentials_hint.md +0 -9
- package/integrations/google-sheet/credentials_hint_oauth_token.md +0 -8
- package/integrations/google-sheet/credentials_hint_service_account.md +0 -10
- package/integrations/google-sheet/handlers/append_values.js +0 -18
- package/integrations/google-sheet/handlers/batch_clear_values.js +0 -6
- package/integrations/google-sheet/handlers/batch_update.js +0 -14
- package/integrations/google-sheet/handlers/batch_update_values.js +0 -16
- package/integrations/google-sheet/handlers/clear_values.js +0 -6
- package/integrations/google-sheet/handlers/copy_to_spreadsheet.js +0 -6
- package/integrations/google-sheet/handlers/create_spreadsheet.js +0 -5
- package/integrations/google-sheet/handlers/get_spreadsheet.js +0 -14
- package/integrations/google-sheet/handlers/read_sheet.js +0 -75
- package/integrations/google-sheet/handlers/update_values.js +0 -16
- package/integrations/google-sheet/manifest.json +0 -76
- package/integrations/google-sheet/prompt.md +0 -49
- package/integrations/google-sheet/schemas/append_values.json +0 -16
- package/integrations/google-sheet/schemas/batch_clear_values.json +0 -10
- package/integrations/google-sheet/schemas/batch_update.json +0 -13
- package/integrations/google-sheet/schemas/batch_update_values.json +0 -25
- package/integrations/google-sheet/schemas/clear_values.json +0 -10
- package/integrations/google-sheet/schemas/copy_to_spreadsheet.json +0 -11
- package/integrations/google-sheet/schemas/create_spreadsheet.json +0 -11
- package/integrations/google-sheet/schemas/get_spreadsheet.json +0 -16
- package/integrations/google-sheet/schemas/read_sheet.json +0 -21
- package/integrations/google-sheet/schemas/update_values.json +0 -15
- package/integrations/google-slides/README.md +0 -28
- package/integrations/google-slides/__tests__/get_handlers.test.ts +0 -74
- package/integrations/google-slides/__tests__/usage_parity.test.ts +0 -9
- package/integrations/google-slides/__tests__/write_handlers.test.ts +0 -131
- package/integrations/google-slides/credentials.json +0 -57
- package/integrations/google-slides/credentials_hint.md +0 -9
- package/integrations/google-slides/credentials_hint_oauth_token.md +0 -8
- package/integrations/google-slides/credentials_hint_service_account.md +0 -10
- package/integrations/google-slides/handlers/append_text_to_title_of_first_slide.js +0 -17
- package/integrations/google-slides/handlers/batch_update.js +0 -15
- package/integrations/google-slides/handlers/create_presentation.js +0 -8
- package/integrations/google-slides/handlers/create_slide_after_first_match.js +0 -20
- package/integrations/google-slides/handlers/get_page_thumbnail.js +0 -12
- package/integrations/google-slides/handlers/insert_image_after_first_match.js +0 -19
- package/integrations/google-slides/handlers/insert_shape_after_first_match.js +0 -21
- package/integrations/google-slides/handlers/read_presentation.js +0 -51
- package/integrations/google-slides/handlers/replace_text_first_match.js +0 -9
- package/integrations/google-slides/handlers/set_background_color_for_slide_index.js +0 -15
- package/integrations/google-slides/handlers/style_text_first_match.js +0 -48
- package/integrations/google-slides/manifest.json +0 -41
- package/integrations/google-slides/prompt.md +0 -56
- package/integrations/google-slides/schemas/append_text_to_title_of_first_slide.json +0 -11
- package/integrations/google-slides/schemas/batch_update.json +0 -13
- package/integrations/google-slides/schemas/create_presentation.json +0 -8
- package/integrations/google-slides/schemas/create_slide_after_first_match.json +0 -11
- package/integrations/google-slides/schemas/get_page_thumbnail.json +0 -12
- package/integrations/google-slides/schemas/get_presentation.json +0 -9
- package/integrations/google-slides/schemas/insert_image_after_first_match.json +0 -13
- package/integrations/google-slides/schemas/insert_shape_after_first_match.json +0 -13
- package/integrations/google-slides/schemas/replace_text_first_match.json +0 -12
- package/integrations/google-slides/schemas/set_background_color_for_slide_index.json +0 -11
- package/integrations/google-slides/schemas/style_text_first_match.json +0 -12
- package/integrations/hubspot/.env.test.example +0 -20
- package/integrations/hubspot/README.md +0 -48
- package/integrations/hubspot/__tests__/get_handlers.test.ts +0 -151
- package/integrations/hubspot/__tests__/usage_parity.test.ts +0 -10
- package/integrations/hubspot/__tests__/write_handlers.test.ts +0 -244
- package/integrations/hubspot/credentials.json +0 -50
- package/integrations/hubspot/credentials_hint.md +0 -20
- package/integrations/hubspot/credentials_hint_oauth_token.md +0 -16
- package/integrations/hubspot/handlers/archive_company.js +0 -13
- package/integrations/hubspot/handlers/archive_contact.js +0 -13
- package/integrations/hubspot/handlers/archive_deal.js +0 -13
- package/integrations/hubspot/handlers/archive_ticket.js +0 -13
- package/integrations/hubspot/handlers/create_association.js +0 -18
- package/integrations/hubspot/handlers/create_company.js +0 -13
- package/integrations/hubspot/handlers/create_contact.js +0 -14
- package/integrations/hubspot/handlers/create_deal.js +0 -16
- package/integrations/hubspot/handlers/create_note.js +0 -44
- package/integrations/hubspot/handlers/create_task.js +0 -48
- package/integrations/hubspot/handlers/create_ticket.js +0 -15
- package/integrations/hubspot/handlers/get_associations.js +0 -14
- package/integrations/hubspot/handlers/get_company.js +0 -18
- package/integrations/hubspot/handlers/get_contact.js +0 -18
- package/integrations/hubspot/handlers/get_deal.js +0 -18
- package/integrations/hubspot/handlers/get_ticket.js +0 -20
- package/integrations/hubspot/handlers/list_owners.js +0 -12
- package/integrations/hubspot/handlers/list_pipelines.js +0 -5
- package/integrations/hubspot/handlers/list_properties.js +0 -11
- package/integrations/hubspot/handlers/remove_association.js +0 -22
- package/integrations/hubspot/handlers/search_companies.js +0 -43
- package/integrations/hubspot/handlers/search_contacts.js +0 -43
- package/integrations/hubspot/handlers/search_deals.js +0 -43
- package/integrations/hubspot/handlers/search_notes.js +0 -43
- package/integrations/hubspot/handlers/search_tasks.js +0 -43
- package/integrations/hubspot/handlers/search_tickets.js +0 -43
- package/integrations/hubspot/handlers/update_company.js +0 -13
- package/integrations/hubspot/handlers/update_contact.js +0 -14
- package/integrations/hubspot/handlers/update_deal.js +0 -16
- package/integrations/hubspot/handlers/update_task.js +0 -17
- package/integrations/hubspot/handlers/update_ticket.js +0 -15
- package/integrations/hubspot/manifest.json +0 -230
- package/integrations/hubspot/prompt.md +0 -69
- package/integrations/hubspot/schemas/archive_company.json +0 -13
- package/integrations/hubspot/schemas/archive_contact.json +0 -13
- package/integrations/hubspot/schemas/archive_deal.json +0 -9
- package/integrations/hubspot/schemas/archive_ticket.json +0 -9
- package/integrations/hubspot/schemas/create_association.json +0 -24
- package/integrations/hubspot/schemas/create_company.json +0 -14
- package/integrations/hubspot/schemas/create_contact.json +0 -15
- package/integrations/hubspot/schemas/create_deal.json +0 -20
- package/integrations/hubspot/schemas/create_note.json +0 -37
- package/integrations/hubspot/schemas/create_task.json +0 -51
- package/integrations/hubspot/schemas/create_ticket.json +0 -16
- package/integrations/hubspot/schemas/empty.json +0 -6
- package/integrations/hubspot/schemas/get_associations.json +0 -30
- package/integrations/hubspot/schemas/get_company.json +0 -27
- package/integrations/hubspot/schemas/get_contact.json +0 -27
- package/integrations/hubspot/schemas/get_deal.json +0 -20
- package/integrations/hubspot/schemas/get_ticket.json +0 -20
- package/integrations/hubspot/schemas/list_owners.json +0 -25
- package/integrations/hubspot/schemas/list_pipelines.json +0 -13
- package/integrations/hubspot/schemas/list_properties.json +0 -17
- package/integrations/hubspot/schemas/remove_association.json +0 -24
- package/integrations/hubspot/schemas/search_companies.json +0 -56
- package/integrations/hubspot/schemas/search_contacts.json +0 -56
- package/integrations/hubspot/schemas/search_deals.json +0 -43
- package/integrations/hubspot/schemas/search_notes.json +0 -43
- package/integrations/hubspot/schemas/search_tasks.json +0 -43
- package/integrations/hubspot/schemas/search_tickets.json +0 -43
- package/integrations/hubspot/schemas/update_company.json +0 -20
- package/integrations/hubspot/schemas/update_contact.json +0 -21
- package/integrations/hubspot/schemas/update_deal.json +0 -19
- package/integrations/hubspot/schemas/update_task.json +0 -31
- package/integrations/hubspot/schemas/update_ticket.json +0 -18
- package/integrations/jira/.env.test +0 -46
- package/integrations/jira/.env.test.example +0 -41
- package/integrations/jira/README.md +0 -46
- package/integrations/jira/__tests__/get_handlers.test.ts +0 -193
- package/integrations/jira/__tests__/usage_parity.test.ts +0 -14
- package/integrations/jira/__tests__/write_handlers.test.ts +0 -157
- package/integrations/jira/credentials.json +0 -39
- package/integrations/jira/credentials_hint.md +0 -4
- package/integrations/jira/credentials_hint_api_token.md +0 -6
- package/integrations/jira/credentials_hint_oauth_token.md +0 -6
- package/integrations/jira/handlers/add_comment.js +0 -9
- package/integrations/jira/handlers/assign_issue.js +0 -11
- package/integrations/jira/handlers/create_issue.js +0 -37
- package/integrations/jira/handlers/create_sprint.js +0 -19
- package/integrations/jira/handlers/delete_issue.js +0 -10
- package/integrations/jira/handlers/get_backlog_issues.js +0 -13
- package/integrations/jira/handlers/get_board.js +0 -6
- package/integrations/jira/handlers/get_issue.js +0 -63
- package/integrations/jira/handlers/get_issue_comments.js +0 -31
- package/integrations/jira/handlers/get_myself.js +0 -14
- package/integrations/jira/handlers/get_project.js +0 -28
- package/integrations/jira/handlers/get_sprint.js +0 -5
- package/integrations/jira/handlers/get_sprint_issues.js +0 -13
- package/integrations/jira/handlers/get_transitions.js +0 -23
- package/integrations/jira/handlers/list_boards.js +0 -34
- package/integrations/jira/handlers/list_projects.js +0 -29
- package/integrations/jira/handlers/list_sprints.js +0 -29
- package/integrations/jira/handlers/move_issues_to_sprint.js +0 -11
- package/integrations/jira/handlers/search_issues.js +0 -43
- package/integrations/jira/handlers/search_users.js +0 -21
- package/integrations/jira/handlers/transition_issue.js +0 -44
- package/integrations/jira/handlers/update_issue.js +0 -40
- package/integrations/jira/handlers/update_sprint.js +0 -20
- package/integrations/jira/manifest.json +0 -204
- package/integrations/jira/prompt.md +0 -80
- package/integrations/jira/schemas/add_comment.json +0 -16
- package/integrations/jira/schemas/assign_issue.json +0 -16
- package/integrations/jira/schemas/create_issue.json +0 -49
- package/integrations/jira/schemas/create_sprint.json +0 -29
- package/integrations/jira/schemas/delete_issue.json +0 -12
- package/integrations/jira/schemas/empty.json +0 -6
- package/integrations/jira/schemas/get_backlog_issues.json +0 -33
- package/integrations/jira/schemas/get_board.json +0 -13
- package/integrations/jira/schemas/get_issue.json +0 -23
- package/integrations/jira/schemas/get_issue_comments.json +0 -23
- package/integrations/jira/schemas/get_project.json +0 -17
- package/integrations/jira/schemas/get_sprint.json +0 -13
- package/integrations/jira/schemas/get_sprint_issues.json +0 -33
- package/integrations/jira/schemas/get_transitions.json +0 -12
- package/integrations/jira/schemas/list_boards.json +0 -27
- package/integrations/jira/schemas/list_projects.json +0 -22
- package/integrations/jira/schemas/list_sprints.json +0 -29
- package/integrations/jira/schemas/move_issues_to_sprint.json +0 -19
- package/integrations/jira/schemas/search_issues.json +0 -28
- package/integrations/jira/schemas/search_users.json +0 -18
- package/integrations/jira/schemas/transition_issue.json +0 -38
- package/integrations/jira/schemas/update_issue.json +0 -47
- package/integrations/jira/schemas/update_sprint.json +0 -33
- package/integrations/new_integration_prompt.md +0 -216
- package/integrations/notion/.env.test +0 -10
- package/integrations/notion/.env.test.example +0 -13
- package/integrations/notion/README.md +0 -42
- package/integrations/notion/__tests__/get_handlers.test.ts +0 -156
- package/integrations/notion/__tests__/usage_parity.test.ts +0 -9
- package/integrations/notion/__tests__/write_and_admin_handlers.test.ts +0 -186
- package/integrations/notion/credentials.json +0 -27
- package/integrations/notion/credentials_hint.md +0 -5
- package/integrations/notion/handlers/append_block_children.js +0 -7
- package/integrations/notion/handlers/create_comment.js +0 -10
- package/integrations/notion/handlers/create_database.js +0 -11
- package/integrations/notion/handlers/create_page.js +0 -13
- package/integrations/notion/handlers/delete_block.js +0 -8
- package/integrations/notion/handlers/get_me.js +0 -4
- package/integrations/notion/handlers/list_block_children.js +0 -10
- package/integrations/notion/handlers/list_comments.js +0 -14
- package/integrations/notion/handlers/list_users.js +0 -10
- package/integrations/notion/handlers/query_database.js +0 -10
- package/integrations/notion/handlers/retrieve_block.js +0 -4
- package/integrations/notion/handlers/retrieve_database.js +0 -4
- package/integrations/notion/handlers/retrieve_page.js +0 -4
- package/integrations/notion/handlers/retrieve_page_property_item.js +0 -10
- package/integrations/notion/handlers/retrieve_user.js +0 -4
- package/integrations/notion/handlers/search.js +0 -11
- package/integrations/notion/handlers/update_block.js +0 -7
- package/integrations/notion/handlers/update_database.js +0 -10
- package/integrations/notion/handlers/update_page_properties.js +0 -10
- package/integrations/notion/manifest.json +0 -168
- package/integrations/notion/prompt.md +0 -26
- package/integrations/notion/schemas/append_block_children.json +0 -10
- package/integrations/notion/schemas/create_comment.json +0 -18
- package/integrations/notion/schemas/create_database.json +0 -18
- package/integrations/notion/schemas/create_page.json +0 -22
- package/integrations/notion/schemas/delete_block.json +0 -9
- package/integrations/notion/schemas/empty.json +0 -6
- package/integrations/notion/schemas/id_block.json +0 -9
- package/integrations/notion/schemas/id_database.json +0 -9
- package/integrations/notion/schemas/id_page.json +0 -9
- package/integrations/notion/schemas/id_user.json +0 -9
- package/integrations/notion/schemas/list_block_children.json +0 -11
- package/integrations/notion/schemas/list_comments.json +0 -15
- package/integrations/notion/schemas/list_users.json +0 -9
- package/integrations/notion/schemas/query_database.json +0 -13
- package/integrations/notion/schemas/retrieve_page_property_item.json +0 -12
- package/integrations/notion/schemas/search.json +0 -27
- package/integrations/notion/schemas/update_block.json +0 -10
- package/integrations/notion/schemas/update_database.json +0 -13
- package/integrations/notion/schemas/update_page_properties.json +0 -13
- package/integrations/trello/.env.test +0 -6
- package/integrations/trello/.env.test.example +0 -9
- package/integrations/trello/README.md +0 -50
- package/integrations/trello/__tests__/get_handlers.test.ts +0 -225
- package/integrations/trello/__tests__/usage_parity.test.ts +0 -9
- package/integrations/trello/__tests__/write_and_admin_handlers.test.ts +0 -171
- package/integrations/trello/credentials.json +0 -32
- package/integrations/trello/credentials_hint.md +0 -4
- package/integrations/trello/handlers/add_checklist_to_card.js +0 -5
- package/integrations/trello/handlers/add_member_to_card.js +0 -5
- package/integrations/trello/handlers/archive_list.js +0 -5
- package/integrations/trello/handlers/close_board.js +0 -6
- package/integrations/trello/handlers/create_board.js +0 -11
- package/integrations/trello/handlers/create_card.js +0 -13
- package/integrations/trello/handlers/create_list.js +0 -7
- package/integrations/trello/handlers/delete_board.js +0 -13
- package/integrations/trello/handlers/delete_card.js +0 -9
- package/integrations/trello/handlers/get_board.js +0 -4
- package/integrations/trello/handlers/get_board_cards.js +0 -4
- package/integrations/trello/handlers/get_board_custom_fields.js +0 -4
- package/integrations/trello/handlers/get_board_labels.js +0 -4
- package/integrations/trello/handlers/get_board_lists.js +0 -4
- package/integrations/trello/handlers/get_board_members.js +0 -4
- package/integrations/trello/handlers/get_board_memberships.js +0 -4
- package/integrations/trello/handlers/get_card.js +0 -4
- package/integrations/trello/handlers/get_card_actions.js +0 -4
- package/integrations/trello/handlers/get_card_attachments.js +0 -4
- package/integrations/trello/handlers/get_card_checklists.js +0 -4
- package/integrations/trello/handlers/get_card_custom_field_items.js +0 -4
- package/integrations/trello/handlers/get_card_members.js +0 -4
- package/integrations/trello/handlers/get_list.js +0 -4
- package/integrations/trello/handlers/get_list_cards.js +0 -4
- package/integrations/trello/handlers/get_member.js +0 -4
- package/integrations/trello/handlers/get_member_boards.js +0 -4
- package/integrations/trello/handlers/get_member_organizations.js +0 -4
- package/integrations/trello/handlers/get_organization.js +0 -4
- package/integrations/trello/handlers/get_organization_boards.js +0 -4
- package/integrations/trello/handlers/move_card_to_list.js +0 -5
- package/integrations/trello/handlers/remove_member_from_card.js +0 -9
- package/integrations/trello/handlers/search.js +0 -5
- package/integrations/trello/handlers/update_card.js +0 -19
- package/integrations/trello/handlers/update_list.js +0 -11
- package/integrations/trello/manifest.json +0 -252
- package/integrations/trello/schemas/add_checklist_to_card.json +0 -10
- package/integrations/trello/schemas/add_member_to_card.json +0 -10
- package/integrations/trello/schemas/archive_list.json +0 -9
- package/integrations/trello/schemas/close_board.json +0 -10
- package/integrations/trello/schemas/create_board.json +0 -12
- package/integrations/trello/schemas/create_card.json +0 -13
- package/integrations/trello/schemas/create_list.json +0 -11
- package/integrations/trello/schemas/delete_board.json +0 -10
- package/integrations/trello/schemas/delete_card.json +0 -9
- package/integrations/trello/schemas/display_trello_cards.json +0 -45
- package/integrations/trello/schemas/empty.json +0 -5
- package/integrations/trello/schemas/get_member.json +0 -5
- package/integrations/trello/schemas/id_board.json +0 -8
- package/integrations/trello/schemas/id_card.json +0 -8
- package/integrations/trello/schemas/id_list.json +0 -8
- package/integrations/trello/schemas/id_org.json +0 -8
- package/integrations/trello/schemas/move_card_to_list.json +0 -10
- package/integrations/trello/schemas/remove_member_from_card.json +0 -10
- package/integrations/trello/schemas/search.json +0 -8
- package/integrations/trello/schemas/update_card.json +0 -16
- package/integrations/trello/schemas/update_list.json +0 -12
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"type": "object",
|
|
4
|
-
"properties": {
|
|
5
|
-
"calendarId": { "type": "string", "description": "Calendar ID. Use 'primary' for the user's main calendar. Find other calendar IDs via list_calendars." },
|
|
6
|
-
"timeMin": { "type": "string", "description": "Start of the time range (RFC3339 format, e.g. '2024-01-15T00:00:00Z' or '2024-01-15T09:00:00-05:00'). Only events ending after this time are returned." },
|
|
7
|
-
"timeMax": { "type": "string", "description": "End of the time range (RFC3339 format). Only events starting before this time are returned." },
|
|
8
|
-
"q": { "type": "string", "description": "Free-text search query matching event summary, description, location, and attendee details." },
|
|
9
|
-
"maxResults": { "type": "integer", "minimum": 1, "maximum": 2500, "default": 25, "description": "Maximum number of events to return. Defaults to 25. Use pageToken from the response for the next page." },
|
|
10
|
-
"pageToken": { "type": "string", "description": "Page token from a previous list_events response to retrieve the next page of results." },
|
|
11
|
-
"singleEvents": { "type": "boolean", "description": "Expand recurring events into individual instances. Set to true with orderBy='startTime' to get events in chronological order." },
|
|
12
|
-
"orderBy": { "type": "string", "enum": ["startTime", "updated"], "description": "Sort order. 'startTime' requires singleEvents=true. 'updated' sorts by last modification time." },
|
|
13
|
-
"fields": { "type": "string", "description": "Partial response fields selector to reduce response size. Example: 'items(id,summary,start,end,attendees)'. See Calendar API fields reference." }
|
|
14
|
-
},
|
|
15
|
-
"required": ["calendarId"],
|
|
16
|
-
"additionalProperties": false
|
|
17
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"type": "object",
|
|
3
|
-
"properties": {
|
|
4
|
-
"calendarId": { "type": "string" },
|
|
5
|
-
"eventId": { "type": "string" },
|
|
6
|
-
"destination": { "type": "string", "description": "Destination calendarId" }
|
|
7
|
-
},
|
|
8
|
-
"required": ["calendarId", "eventId", "destination"],
|
|
9
|
-
"additionalProperties": false
|
|
10
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"type": "object",
|
|
3
|
-
"properties": {
|
|
4
|
-
"calendarId": { "type": "string" },
|
|
5
|
-
"ruleId": { "type": "string" },
|
|
6
|
-
"role": { "type": "string", "enum": ["none", "freeBusyReader", "reader", "writer", "owner"] }
|
|
7
|
-
},
|
|
8
|
-
"required": ["calendarId", "ruleId", "role"],
|
|
9
|
-
"additionalProperties": false
|
|
10
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Google Docs
|
|
2
|
-
|
|
3
|
-
**13 tools**
|
|
4
|
-
|
|
5
|
-

|
|
6
|
-
|
|
7
|
-
## Credential variants
|
|
8
|
-
|
|
9
|
-
| Variant | Label |
|
|
10
|
-
|---|---|
|
|
11
|
-
| `service_account` | Service Account (recommended) _(default)_ |
|
|
12
|
-
| `oauth_token` | OAuth Access Token (short-lived) |
|
|
13
|
-
|
|
14
|
-
## Tools
|
|
15
|
-
|
|
16
|
-
| Tool | Scope | Description |
|
|
17
|
-
|---|---|---|
|
|
18
|
-
| `read_document` | read | Read a Google Doc and return its content as clean Markdown. Preserves headings, bold, ita… |
|
|
19
|
-
| `create_document` | write | Create a new empty Google Doc with the given title. Returns the created document's metada… |
|
|
20
|
-
| `batch_update` | write | Send a documents.batchUpdate request to modify a document with one or more structured req… |
|
|
21
|
-
| `append_text` | write | Append plain text to the end of a Google Doc. Automatically fetches the document to find … |
|
|
22
|
-
| `replace_all_text` | write | Replace all occurrences of a text string in a Google Doc with new text. Case-sensitive by… |
|
|
23
|
-
| `style_first_match` | write | Find the first occurrence of text in a document and apply a TextStyle to it (bold, italic… |
|
|
24
|
-
| `insert_text_after_first_match` | write | Find the first occurrence of text and insert new text immediately before or after it. Use… |
|
|
25
|
-
| `insert_table_after_first_match` | write | Find the first occurrence of text and insert a table with the specified number of rows an… |
|
|
26
|
-
| `insert_page_break_after_first_match` | write | Find the first occurrence of text and insert a page break nearby. Useful for structuring … |
|
|
27
|
-
| `insert_inline_image_after_first_match` | write | Find the first occurrence of text and insert an inline image nearby, referenced by URL. R… |
|
|
28
|
-
| `delete_first_match` | write | Find the first occurrence of text in the document and delete it. Only the first match is … |
|
|
29
|
-
| `update_paragraph_style_for_first_match` | write | Find the first occurrence of text and update the paragraph style for the paragraph contai… |
|
|
30
|
-
| `update_document_style` | write | Update document-level style properties such as page size (pageSize.width, pageSize.height… |
|
|
@@ -1,83 +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 Docs read tests -- runs once per available credential variant.
|
|
5
|
-
// Required env vars (at least one):
|
|
6
|
-
// - GOOGLE_SERVICE_ACCOUNT_JSON (service_account variant)
|
|
7
|
-
// - GOOGLE_TOKEN (oauth_token variant)
|
|
8
|
-
|
|
9
|
-
const env = process.env as Record<string, string | undefined>
|
|
10
|
-
|
|
11
|
-
interface VariantConfig {
|
|
12
|
-
key: string
|
|
13
|
-
credentials: () => Record<string, string>
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const variants: VariantConfig[] = [
|
|
17
|
-
{
|
|
18
|
-
key: 'service_account',
|
|
19
|
-
credentials: () => ({ serviceAccountJson: env.GOOGLE_SERVICE_ACCOUNT_JSON || '', subject: env.GOOGLE_IMPERSONATE_SUBJECT || '' }),
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
key: 'oauth_token',
|
|
23
|
-
credentials: () => ({ token: env.GOOGLE_TOKEN || '' }),
|
|
24
|
-
},
|
|
25
|
-
].filter(v => Object.values(v.credentials()).some(val => val.trim().length > 0))
|
|
26
|
-
|
|
27
|
-
const suiteOrSkip = variants.length > 0 ? describe : describe.skip
|
|
28
|
-
|
|
29
|
-
suiteOrSkip('google-docs read handlers (live)', () => {
|
|
30
|
-
for (const variant of variants) {
|
|
31
|
-
describe(`variant: ${variant.key}`, () => {
|
|
32
|
-
let docs: ReturnType<typeof createToolbox>
|
|
33
|
-
let drive: ReturnType<typeof createToolbox>
|
|
34
|
-
let folderId: string | undefined
|
|
35
|
-
let documentId: string | undefined
|
|
36
|
-
|
|
37
|
-
beforeAll(async () => {
|
|
38
|
-
const credentialStore = createCredentialStore(async () => variant.credentials())
|
|
39
|
-
const proxy = createProxy(credentialStore)
|
|
40
|
-
docs = createToolbox(
|
|
41
|
-
'google-docs',
|
|
42
|
-
proxy,
|
|
43
|
-
createIntegrationNode('google-docs', { label: 'Google Docs', credentialId: 'google-docs-creds', credentialVariant: variant.key }),
|
|
44
|
-
variant.key,
|
|
45
|
-
)
|
|
46
|
-
drive = createToolbox(
|
|
47
|
-
'google-drive',
|
|
48
|
-
proxy,
|
|
49
|
-
createIntegrationNode('google-drive', { label: 'Google Drive', credentialId: 'google-drive-creds', credentialVariant: variant.key }),
|
|
50
|
-
variant.key,
|
|
51
|
-
)
|
|
52
|
-
|
|
53
|
-
const folder = await drive.write('create_folder')({ name: `CmdTest Docs ${Date.now()}` })
|
|
54
|
-
folderId = folder?.id
|
|
55
|
-
expect(folderId).toBeTruthy()
|
|
56
|
-
|
|
57
|
-
const created = await drive.write('create_file')({
|
|
58
|
-
name: `CmdTest Doc ${Date.now()}`,
|
|
59
|
-
mimeType: 'application/vnd.google-apps.document',
|
|
60
|
-
parentId: folderId,
|
|
61
|
-
})
|
|
62
|
-
documentId = created?.id
|
|
63
|
-
expect(documentId).toBeTruthy()
|
|
64
|
-
}, 60000)
|
|
65
|
-
|
|
66
|
-
afterAll(async () => {
|
|
67
|
-
if (!folderId)
|
|
68
|
-
return
|
|
69
|
-
await safeCleanup(async () => documentId ? drive.write('delete_file')({ fileId: documentId }) : Promise.resolve())
|
|
70
|
-
await safeCleanup(async () => drive.write('delete_file')({ fileId: folderId }))
|
|
71
|
-
}, 60000)
|
|
72
|
-
|
|
73
|
-
it('read_document returns markdown content', async () => {
|
|
74
|
-
if (!documentId)
|
|
75
|
-
return expect(true).toBe(true)
|
|
76
|
-
const handler = docs.read('read_document')
|
|
77
|
-
const result = await handler({ documentId })
|
|
78
|
-
expect(result?.documentId || result?.title).toBeTruthy()
|
|
79
|
-
expect(typeof result?.markdown).toBe('string')
|
|
80
|
-
}, 30000)
|
|
81
|
-
})
|
|
82
|
-
}
|
|
83
|
-
})
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest'
|
|
2
|
-
import { getMissingToolUsages } from '../../__tests__/usageParity.js'
|
|
3
|
-
|
|
4
|
-
describe('google-docs static usage parity', () => {
|
|
5
|
-
it('every manifest tool is referenced in tests', () => {
|
|
6
|
-
const missing = getMissingToolUsages({ integrationName: 'google-docs', importMetaUrl: import.meta.url })
|
|
7
|
-
expect(missing, `Missing handler usages in tests: ${missing.join(', ')}`).toEqual([])
|
|
8
|
-
})
|
|
9
|
-
})
|
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
import { afterAll, beforeAll, describe, expect, it } from 'vitest'
|
|
2
|
-
import { createCredentialStore, createIntegrationNode, createProxy, createToolbox, safeCleanup } from '../../__tests__/liveHarness.js'
|
|
3
|
-
|
|
4
|
-
// LIVE Google Docs write tests -- runs once per available credential variant.
|
|
5
|
-
// Required env vars (at least one):
|
|
6
|
-
// - GOOGLE_SERVICE_ACCOUNT_JSON (service_account variant)
|
|
7
|
-
// - GOOGLE_TOKEN (oauth_token variant)
|
|
8
|
-
|
|
9
|
-
const env = process.env as Record<string, string | undefined>
|
|
10
|
-
|
|
11
|
-
interface VariantConfig {
|
|
12
|
-
key: string
|
|
13
|
-
credentials: () => Record<string, string>
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const variants: VariantConfig[] = [
|
|
17
|
-
{
|
|
18
|
-
key: 'service_account',
|
|
19
|
-
credentials: () => ({ serviceAccountJson: env.GOOGLE_SERVICE_ACCOUNT_JSON || '', subject: env.GOOGLE_IMPERSONATE_SUBJECT || '' }),
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
key: 'oauth_token',
|
|
23
|
-
credentials: () => ({ token: env.GOOGLE_TOKEN || '' }),
|
|
24
|
-
},
|
|
25
|
-
].filter(v => Object.values(v.credentials()).some(val => val.trim().length > 0))
|
|
26
|
-
|
|
27
|
-
const suiteOrSkip = variants.length > 0 ? describe : describe.skip
|
|
28
|
-
|
|
29
|
-
suiteOrSkip('google-docs write handlers (live)', () => {
|
|
30
|
-
for (const variant of variants) {
|
|
31
|
-
describe(`variant: ${variant.key}`, () => {
|
|
32
|
-
const ctx: { documentId?: string, folderId?: string } = {}
|
|
33
|
-
let docs: ReturnType<typeof createToolbox>
|
|
34
|
-
let drive: ReturnType<typeof createToolbox>
|
|
35
|
-
|
|
36
|
-
beforeAll(async () => {
|
|
37
|
-
const credentialStore = createCredentialStore(async () => variant.credentials())
|
|
38
|
-
const proxy = createProxy(credentialStore)
|
|
39
|
-
docs = createToolbox(
|
|
40
|
-
'google-docs',
|
|
41
|
-
proxy,
|
|
42
|
-
createIntegrationNode('google-docs', { label: 'Google Docs', credentialId: 'google-docs-creds', credentialVariant: variant.key }),
|
|
43
|
-
variant.key,
|
|
44
|
-
)
|
|
45
|
-
drive = createToolbox(
|
|
46
|
-
'google-drive',
|
|
47
|
-
proxy,
|
|
48
|
-
createIntegrationNode('google-drive', { label: 'Google Drive', credentialId: 'google-drive-creds', credentialVariant: variant.key }),
|
|
49
|
-
variant.key,
|
|
50
|
-
)
|
|
51
|
-
|
|
52
|
-
const folder = await drive.write('create_folder')({
|
|
53
|
-
name: `CmdTest Docs Write ${Date.now()}`,
|
|
54
|
-
})
|
|
55
|
-
ctx.folderId = folder?.id
|
|
56
|
-
expect(ctx.folderId).toBeTruthy()
|
|
57
|
-
|
|
58
|
-
const doc = await drive.write('create_file')({
|
|
59
|
-
name: `CmdTest Doc ${Date.now()}`,
|
|
60
|
-
mimeType: 'application/vnd.google-apps.document',
|
|
61
|
-
parentId: ctx.folderId,
|
|
62
|
-
})
|
|
63
|
-
ctx.documentId = doc?.id
|
|
64
|
-
expect(ctx.documentId).toBeTruthy()
|
|
65
|
-
}, 60000)
|
|
66
|
-
|
|
67
|
-
afterAll(async () => {
|
|
68
|
-
await safeCleanup(async () => ctx.documentId ? drive.write('delete_file')({ fileId: ctx.documentId }) : Promise.resolve())
|
|
69
|
-
await safeCleanup(async () => ctx.folderId ? drive.write('delete_file')({ fileId: ctx.folderId }) : Promise.resolve())
|
|
70
|
-
}, 60000)
|
|
71
|
-
|
|
72
|
-
it('batch_update can perform a trivial replaceAllText no-op', async () => {
|
|
73
|
-
const documentId = ctx.documentId
|
|
74
|
-
if (!documentId)
|
|
75
|
-
return expect(true).toBe(true)
|
|
76
|
-
const batch_update = docs.write('batch_update')
|
|
77
|
-
const res = await batch_update({ documentId, requests: [
|
|
78
|
-
{ replaceAllText: { containsText: { text: '___unlikely___', matchCase: true }, replaceText: '___unlikely___' } },
|
|
79
|
-
] })
|
|
80
|
-
expect(Array.isArray(res?.replies) || res?.documentId).toBeTruthy()
|
|
81
|
-
}, 60000)
|
|
82
|
-
|
|
83
|
-
it('append_text appends content', async () => {
|
|
84
|
-
const documentId = ctx.documentId
|
|
85
|
-
if (!documentId)
|
|
86
|
-
return expect(true).toBe(true)
|
|
87
|
-
const append_text = docs.write('append_text')
|
|
88
|
-
const marker = `CmdTest ${Date.now()}`
|
|
89
|
-
const res = await append_text({ documentId, text: marker })
|
|
90
|
-
expect(res?.documentId || Array.isArray(res?.replies)).toBeTruthy()
|
|
91
|
-
const read_document = docs.read('read_document')
|
|
92
|
-
const after = await read_document({ documentId })
|
|
93
|
-
expect(String(after?.markdown || '')).toContain(marker)
|
|
94
|
-
}, 60000)
|
|
95
|
-
|
|
96
|
-
it('insert_text_after_first_match inserts text near target', async () => {
|
|
97
|
-
const documentId = ctx.documentId
|
|
98
|
-
if (!documentId)
|
|
99
|
-
return expect(true).toBe(true)
|
|
100
|
-
const insert_text_after_first_match = docs.write('insert_text_after_first_match')
|
|
101
|
-
const read_document = docs.read('read_document')
|
|
102
|
-
const anchor = `ANCHOR_${Date.now()}`
|
|
103
|
-
const appended = docs.write('append_text')
|
|
104
|
-
const before = await read_document({ documentId })
|
|
105
|
-
if (!String(before?.markdown || '').includes(anchor))
|
|
106
|
-
await appended({ documentId, text: `\n${anchor}\n` })
|
|
107
|
-
const insertSnippet = ` CmdTest ${Date.now()} `
|
|
108
|
-
const res = await insert_text_after_first_match({ documentId, findText: anchor, insertText: insertSnippet, position: 'after' })
|
|
109
|
-
expect(res?.applied === true || Array.isArray(res?.replies)).toBeTruthy()
|
|
110
|
-
const after = await read_document({ documentId })
|
|
111
|
-
const text = String(after?.markdown || '')
|
|
112
|
-
expect(text).toContain(anchor)
|
|
113
|
-
expect(text).toContain(insertSnippet.trim())
|
|
114
|
-
}, 60000)
|
|
115
|
-
|
|
116
|
-
it('replace_all_text replaces occurrences', async () => {
|
|
117
|
-
const documentId = ctx.documentId
|
|
118
|
-
if (!documentId)
|
|
119
|
-
return expect(true).toBe(true)
|
|
120
|
-
const replace_all_text = docs.write('replace_all_text')
|
|
121
|
-
const res = await replace_all_text({ documentId, findText: '___unlikely___', replaceText: '___unlikely___', matchCase: true })
|
|
122
|
-
expect(res?.documentId || Array.isArray(res?.replies)).toBeTruthy()
|
|
123
|
-
}, 60000)
|
|
124
|
-
|
|
125
|
-
it('style_first_match applies style to first match', async () => {
|
|
126
|
-
const documentId = ctx.documentId
|
|
127
|
-
if (!documentId)
|
|
128
|
-
return expect(true).toBe(true)
|
|
129
|
-
const style_first_match = docs.write('style_first_match')
|
|
130
|
-
const read_document = docs.read('read_document')
|
|
131
|
-
const anchor = `ANCHOR_${Date.now()}`
|
|
132
|
-
const appended = docs.write('append_text')
|
|
133
|
-
const before = await read_document({ documentId })
|
|
134
|
-
if (!String(before?.markdown || '').includes(anchor))
|
|
135
|
-
await appended({ documentId, text: `\n${anchor}\n` })
|
|
136
|
-
const res = await style_first_match({ documentId, findText: anchor, textStyle: { bold: true } })
|
|
137
|
-
expect(res?.applied === true || Array.isArray(res?.replies)).toBeTruthy()
|
|
138
|
-
}, 60000)
|
|
139
|
-
|
|
140
|
-
it('insert_table_after_first_match inserts a table near target', async () => {
|
|
141
|
-
const documentId = ctx.documentId
|
|
142
|
-
if (!documentId)
|
|
143
|
-
return expect(true).toBe(true)
|
|
144
|
-
const insert_table_after_first_match = docs.write('insert_table_after_first_match')
|
|
145
|
-
const read_document = docs.read('read_document')
|
|
146
|
-
const anchor = `ANCHOR_${Date.now()}`
|
|
147
|
-
const appended = docs.write('append_text')
|
|
148
|
-
const before = await read_document({ documentId })
|
|
149
|
-
if (!String(before?.markdown || '').includes(anchor))
|
|
150
|
-
await appended({ documentId, text: `\n${anchor}\n` })
|
|
151
|
-
const res = await insert_table_after_first_match({ documentId, findText: anchor, rows: 1, columns: 1 })
|
|
152
|
-
expect(res?.applied === true || Array.isArray(res?.replies)).toBeTruthy()
|
|
153
|
-
const after = await read_document({ documentId })
|
|
154
|
-
const hasTable = String(after?.markdown || '').includes('|')
|
|
155
|
-
expect(hasTable).toBe(true)
|
|
156
|
-
}, 60000)
|
|
157
|
-
|
|
158
|
-
it('insert_page_break_after_first_match inserts a break near target', async () => {
|
|
159
|
-
const documentId = ctx.documentId
|
|
160
|
-
if (!documentId)
|
|
161
|
-
return expect(true).toBe(true)
|
|
162
|
-
const insert_page_break_after_first_match = docs.write('insert_page_break_after_first_match')
|
|
163
|
-
const read_document = docs.read('read_document')
|
|
164
|
-
const anchor = `ANCHOR_${Date.now()}`
|
|
165
|
-
const appended = docs.write('append_text')
|
|
166
|
-
const before = await read_document({ documentId })
|
|
167
|
-
if (!String(before?.markdown || '').includes(anchor))
|
|
168
|
-
await appended({ documentId, text: `\n${anchor}\n` })
|
|
169
|
-
const res = await insert_page_break_after_first_match({ documentId, findText: anchor })
|
|
170
|
-
expect(res?.applied === true || Array.isArray(res?.replies)).toBeTruthy()
|
|
171
|
-
}, 60000)
|
|
172
|
-
|
|
173
|
-
it('insert_inline_image_after_first_match inserts an image when allowed', async () => {
|
|
174
|
-
if (!ctx.documentId)
|
|
175
|
-
return expect(true).toBe(true)
|
|
176
|
-
const documentId = ctx.documentId
|
|
177
|
-
const imageUri = 'https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png'
|
|
178
|
-
const insert_inline_image_after_first_match = docs.write('insert_inline_image_after_first_match')
|
|
179
|
-
const anchor = `ANCHOR_${Date.now()}`
|
|
180
|
-
const appended = docs.write('append_text')
|
|
181
|
-
const read_document = docs.read('read_document')
|
|
182
|
-
const before = await read_document({ documentId })
|
|
183
|
-
if (!String(before?.markdown || '').includes(anchor))
|
|
184
|
-
await appended({ documentId, text: `\n${anchor}\n` })
|
|
185
|
-
const res = await insert_inline_image_after_first_match({ documentId, findText: anchor, uri: imageUri })
|
|
186
|
-
expect(res?.applied === true || Array.isArray(res?.replies)).toBeTruthy()
|
|
187
|
-
}, 60000)
|
|
188
|
-
|
|
189
|
-
it('delete_first_match deletes a small span (no-op ok)', async () => {
|
|
190
|
-
const documentId = ctx.documentId
|
|
191
|
-
if (!documentId)
|
|
192
|
-
return expect(true).toBe(true)
|
|
193
|
-
const delete_first_match = docs.write('delete_first_match')
|
|
194
|
-
const read_document = docs.read('read_document')
|
|
195
|
-
const anchor = `ANCHOR_${Date.now()}`
|
|
196
|
-
const appended = docs.write('append_text')
|
|
197
|
-
const before = await read_document({ documentId })
|
|
198
|
-
if (!String(before?.markdown || '').includes(anchor))
|
|
199
|
-
await appended({ documentId, text: `\n${anchor}\n` })
|
|
200
|
-
const res = await delete_first_match({ documentId, findText: anchor })
|
|
201
|
-
expect(res?.applied === true || Array.isArray(res?.replies)).toBeTruthy()
|
|
202
|
-
const after = await read_document({ documentId })
|
|
203
|
-
expect(String(after?.markdown || '')).not.toContain(anchor)
|
|
204
|
-
}, 60000)
|
|
205
|
-
|
|
206
|
-
it('update_paragraph_style_for_first_match updates paragraph style near target', async () => {
|
|
207
|
-
const documentId = ctx.documentId
|
|
208
|
-
if (!documentId)
|
|
209
|
-
return expect(true).toBe(true)
|
|
210
|
-
const update_paragraph_style_for_first_match = docs.write('update_paragraph_style_for_first_match')
|
|
211
|
-
const read_document = docs.read('read_document')
|
|
212
|
-
const anchor = `ANCHOR_${Date.now()}`
|
|
213
|
-
const appended = docs.write('append_text')
|
|
214
|
-
const before = await read_document({ documentId })
|
|
215
|
-
if (!String(before?.markdown || '').includes(anchor))
|
|
216
|
-
await appended({ documentId, text: `\n${anchor}\n` })
|
|
217
|
-
const res = await update_paragraph_style_for_first_match({ documentId, findText: anchor, paragraphStyle: { alignment: 'CENTER' } })
|
|
218
|
-
expect(res?.applied === true || Array.isArray(res?.replies)).toBeTruthy()
|
|
219
|
-
}, 60000)
|
|
220
|
-
|
|
221
|
-
it('update_document_style updates doc style with no-op', async () => {
|
|
222
|
-
const documentId = ctx.documentId
|
|
223
|
-
if (!documentId)
|
|
224
|
-
return expect(true).toBe(true)
|
|
225
|
-
const update_document_style = docs.write('update_document_style')
|
|
226
|
-
const res = await update_document_style({ documentId, documentStyle: { useFirstPageHeaderFooter: false } })
|
|
227
|
-
expect(res?.documentId || Array.isArray(res?.replies)).toBeTruthy()
|
|
228
|
-
}, 60000)
|
|
229
|
-
|
|
230
|
-
it('create_document creates a document (self-cleaning)', async () => {
|
|
231
|
-
const created = await docs.write('create_document')({ title: `CmdTest Doc Tool ${Date.now()}` })
|
|
232
|
-
const id = created?.documentId
|
|
233
|
-
expect(typeof id).toBe('string')
|
|
234
|
-
await safeCleanup(async () => id ? drive.write('delete_file')({ fileId: id }) : Promise.resolve())
|
|
235
|
-
}, 60000)
|
|
236
|
-
})
|
|
237
|
-
}
|
|
238
|
-
})
|
|
@@ -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 documents + drive.",
|
|
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 documents and drive scopes."
|
|
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 document 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 scopes: `https://www.googleapis.com/auth/documents` and `https://www.googleapis.com/auth/drive`
|
|
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 Docs API** and **Google Drive 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 Google Docs documents with the service account's `client_email`
|
|
9
|
-
|
|
10
|
-
For Google Workspace users: if you need to access user documents, configure domain-wide delegation and set the `subject` field to the user's email.
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
async (input) => {
|
|
2
|
-
const { documentId, text } = input
|
|
3
|
-
// Get doc to find end index
|
|
4
|
-
const metaRes = await integration.fetch(`/documents/${encodeURIComponent(documentId)}`)
|
|
5
|
-
const meta = await metaRes.json()
|
|
6
|
-
const endIndex = meta?.body?.content?.[meta.body.content.length - 1]?.endIndex || 1
|
|
7
|
-
const res = await integration.fetch(`/documents/${encodeURIComponent(documentId)}:batchUpdate`, {
|
|
8
|
-
method: 'POST',
|
|
9
|
-
body: { requests: [{ insertText: { text, location: { index: endIndex - 1 } } }] },
|
|
10
|
-
})
|
|
11
|
-
return await res.json()
|
|
12
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
async (input) => {
|
|
2
|
-
const { documentId, requests, writeControl, includeTabStops } = input
|
|
3
|
-
const params = new URLSearchParams()
|
|
4
|
-
if (includeTabStops !== undefined)
|
|
5
|
-
params.set('includeTabStops', String(includeTabStops))
|
|
6
|
-
const qs = params.toString()
|
|
7
|
-
const path = `/documents/${encodeURIComponent(documentId)}:batchUpdate${qs ? `?${qs}` : ''}`
|
|
8
|
-
const body = { requests }
|
|
9
|
-
if (writeControl)
|
|
10
|
-
body.writeControl = writeControl
|
|
11
|
-
const res = await integration.fetch(path, { method: 'POST', body })
|
|
12
|
-
return await res.json()
|
|
13
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
async (input) => {
|
|
2
|
-
const { documentId, findText } = input
|
|
3
|
-
const marker = `__CMD_MARK_${Date.now()}__`
|
|
4
|
-
const replaceRes = await integration.fetch(`/documents/${encodeURIComponent(documentId)}:batchUpdate`, {
|
|
5
|
-
method: 'POST',
|
|
6
|
-
body: { requests: [{ replaceAllText: { containsText: { text: findText, matchCase: false }, replaceText: marker } }] },
|
|
7
|
-
})
|
|
8
|
-
await replaceRes.json()
|
|
9
|
-
|
|
10
|
-
const getRes = await integration.fetch(`/documents/${encodeURIComponent(documentId)}`)
|
|
11
|
-
const doc = await getRes.json()
|
|
12
|
-
let startIndex = -1
|
|
13
|
-
let endIndex = -1
|
|
14
|
-
for (const el of (doc?.body?.content || [])) {
|
|
15
|
-
const p = el.paragraph
|
|
16
|
-
if (!p)
|
|
17
|
-
continue
|
|
18
|
-
for (const e of (p.elements || [])) {
|
|
19
|
-
const t = e?.textRun?.content
|
|
20
|
-
if (!t)
|
|
21
|
-
continue
|
|
22
|
-
const idx = t.indexOf(marker)
|
|
23
|
-
if (idx >= 0) {
|
|
24
|
-
const elStart = e.startIndex || 1
|
|
25
|
-
startIndex = elStart + idx
|
|
26
|
-
endIndex = startIndex + marker.length
|
|
27
|
-
break
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
if (startIndex >= 0)
|
|
31
|
-
break
|
|
32
|
-
}
|
|
33
|
-
if (startIndex < 0) {
|
|
34
|
-
const confirm = await integration.fetch(`/documents/${encodeURIComponent(documentId)}`)
|
|
35
|
-
const got = await confirm.json()
|
|
36
|
-
return { documentId: got?.documentId || documentId, applied: false, replies: [] }
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const requests = []
|
|
40
|
-
requests.push({ deleteContentRange: { range: { startIndex, endIndex } } })
|
|
41
|
-
// also clean any remaining markers
|
|
42
|
-
requests.push({ replaceAllText: { containsText: { text: marker, matchCase: true }, replaceText: '' } })
|
|
43
|
-
const res = await integration.fetch(`/documents/${encodeURIComponent(documentId)}:batchUpdate`, { method: 'POST', body: { requests } })
|
|
44
|
-
const out = await res.json()
|
|
45
|
-
if (out?.documentId || Array.isArray(out?.replies))
|
|
46
|
-
return { ...out, applied: true }
|
|
47
|
-
const confirm = await integration.fetch(`/documents/${encodeURIComponent(documentId)}`)
|
|
48
|
-
const got = await confirm.json()
|
|
49
|
-
return { documentId: got?.documentId || documentId, applied: true, replies: Array.isArray(out?.replies) ? out.replies : [] }
|
|
50
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
async (input) => {
|
|
2
|
-
const { documentId, findText, uri, altText, position } = input
|
|
3
|
-
const marker = `__CMD_MARK_${Date.now()}__`
|
|
4
|
-
const replaceRes = await integration.fetch(`/documents/${encodeURIComponent(documentId)}:batchUpdate`, {
|
|
5
|
-
method: 'POST',
|
|
6
|
-
body: { requests: [{ replaceAllText: { containsText: { text: findText, matchCase: false }, replaceText: marker } }] },
|
|
7
|
-
})
|
|
8
|
-
await replaceRes.json()
|
|
9
|
-
|
|
10
|
-
const getRes = await integration.fetch(`/documents/${encodeURIComponent(documentId)}`)
|
|
11
|
-
const doc = await getRes.json()
|
|
12
|
-
let baseIndex = -1
|
|
13
|
-
for (const el of (doc?.body?.content || [])) {
|
|
14
|
-
const p = el.paragraph
|
|
15
|
-
if (!p)
|
|
16
|
-
continue
|
|
17
|
-
for (const e of (p.elements || [])) {
|
|
18
|
-
const t = e?.textRun?.content
|
|
19
|
-
if (!t)
|
|
20
|
-
continue
|
|
21
|
-
const idx = t.indexOf(marker)
|
|
22
|
-
if (idx >= 0) {
|
|
23
|
-
const elStart = e.startIndex || 1
|
|
24
|
-
const startIndex = elStart + idx
|
|
25
|
-
const endIndex = startIndex + marker.length
|
|
26
|
-
baseIndex = position === 'before' ? startIndex : endIndex
|
|
27
|
-
break
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
if (baseIndex >= 0)
|
|
31
|
-
break
|
|
32
|
-
}
|
|
33
|
-
if (baseIndex < 0)
|
|
34
|
-
return { ok: true }
|
|
35
|
-
|
|
36
|
-
const requests = []
|
|
37
|
-
requests.push({ insertInlineImage: { location: { index: baseIndex }, uri } })
|
|
38
|
-
requests.push({ replaceAllText: { containsText: { text: marker, matchCase: true }, replaceText: findText } })
|
|
39
|
-
const res = await integration.fetch(`/documents/${encodeURIComponent(documentId)}:batchUpdate`, { method: 'POST', body: { requests } })
|
|
40
|
-
return await res.json()
|
|
41
|
-
}
|