// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { McpOptions } from './options'; export type SdkMethod = { clientCallName: string; fullyQualifiedName: string; httpMethod?: 'get' | 'post' | 'put' | 'patch' | 'delete' | 'query'; httpPath?: string; }; export const sdkMethods: SdkMethod[] = [ { clientCallName: 'client.v2.messages.retrieveFiles', fullyQualifiedName: 'v2.messages.retrieveFiles', httpMethod: 'get', httpPath: '/api/v2/messages/{message_id}/files', }, { clientCallName: 'client.v2.chatRooms.create', fullyQualifiedName: 'v2.chatRooms.create', httpMethod: 'post', httpPath: '/api/v2/chat_rooms', }, { clientCallName: 'client.v2.chatRooms.retrieve', fullyQualifiedName: 'v2.chatRooms.retrieve', httpMethod: 'get', httpPath: '/api/v2/chat_rooms/{id}', }, { clientCallName: 'client.v2.chatRooms.list', fullyQualifiedName: 'v2.chatRooms.list', httpMethod: 'get', httpPath: '/api/v2/chat_rooms', }, { clientCallName: 'client.v2.chatRooms.messages.create', fullyQualifiedName: 'v2.chatRooms.messages.create', httpMethod: 'post', httpPath: '/api/v2/chat_rooms/{chat_room_id}/messages', }, { clientCallName: 'client.v2.chatRooms.messages.list', fullyQualifiedName: 'v2.chatRooms.messages.list', httpMethod: 'get', httpPath: '/api/v2/chat_rooms/{chat_room_id}/messages', }, { clientCallName: 'client.v2.chatRooms.participants.list', fullyQualifiedName: 'v2.chatRooms.participants.list', httpMethod: 'get', httpPath: '/api/v2/chat_rooms/{chat_room_id}/participants', }, { clientCallName: 'client.v2.chatRooms.participants.add', fullyQualifiedName: 'v2.chatRooms.participants.add', httpMethod: 'post', httpPath: '/api/v2/chat_rooms/{chat_room_id}/participants', }, { clientCallName: 'client.v2.companies.create', fullyQualifiedName: 'v2.companies.create', httpMethod: 'post', httpPath: '/api/v2/companies', }, { clientCallName: 'client.v2.companies.retrieve', fullyQualifiedName: 'v2.companies.retrieve', httpMethod: 'get', httpPath: '/api/v2/companies/{id}', }, { clientCallName: 'client.v2.companies.update', fullyQualifiedName: 'v2.companies.update', httpMethod: 'patch', httpPath: '/api/v2/companies/{id}', }, { clientCallName: 'client.v2.companies.list', fullyQualifiedName: 'v2.companies.list', httpMethod: 'get', httpPath: '/api/v2/companies', }, { clientCallName: 'client.v2.contacts.create', fullyQualifiedName: 'v2.contacts.create', httpMethod: 'post', httpPath: '/api/v2/contacts', }, { clientCallName: 'client.v2.contacts.retrieve', fullyQualifiedName: 'v2.contacts.retrieve', httpMethod: 'get', httpPath: '/api/v2/contacts/{id}', }, { clientCallName: 'client.v2.contacts.update', fullyQualifiedName: 'v2.contacts.update', httpMethod: 'patch', httpPath: '/api/v2/contacts/{id}', }, { clientCallName: 'client.v2.contacts.list', fullyQualifiedName: 'v2.contacts.list', httpMethod: 'get', httpPath: '/api/v2/contacts', }, { clientCallName: 'client.v2.contacts.workspaces.retrieve', fullyQualifiedName: 'v2.contacts.workspaces.retrieve', httpMethod: 'get', httpPath: '/api/v2/contacts/{contact_id}/workspaces/{id}', }, { clientCallName: 'client.v2.contacts.workspaces.list', fullyQualifiedName: 'v2.contacts.workspaces.list', httpMethod: 'get', httpPath: '/api/v2/contacts/{contact_id}/workspaces', }, { clientCallName: 'client.v2.items.retrieve', fullyQualifiedName: 'v2.items.retrieve', httpMethod: 'get', httpPath: '/api/v2/items', }, { clientCallName: 'client.v2.members.retrieve', fullyQualifiedName: 'v2.members.retrieve', httpMethod: 'get', httpPath: '/api/v2/members', }, { clientCallName: 'client.v2.organizations.retrieve', fullyQualifiedName: 'v2.organizations.retrieve', httpMethod: 'get', httpPath: '/api/v2/organizations', }, { clientCallName: 'client.v2.ping.create', fullyQualifiedName: 'v2.ping.create', httpMethod: 'post', httpPath: '/api/v2/pings', }, { clientCallName: 'client.v2.notes.create', fullyQualifiedName: 'v2.notes.create', httpMethod: 'post', httpPath: '/api/v2/notes', }, { clientCallName: 'client.v2.notes.retrieve', fullyQualifiedName: 'v2.notes.retrieve', httpMethod: 'get', httpPath: '/api/v2/notes/{id}', }, { clientCallName: 'client.v2.notes.list', fullyQualifiedName: 'v2.notes.list', httpMethod: 'get', httpPath: '/api/v2/notes', }, { clientCallName: 'client.v2.customFields.retrieve', fullyQualifiedName: 'v2.customFields.retrieve', httpMethod: 'get', httpPath: '/api/v2/custom-fields/{id}', }, { clientCallName: 'client.v2.customFields.list', fullyQualifiedName: 'v2.customFields.list', httpMethod: 'get', httpPath: '/api/v2/custom-fields', }, { clientCallName: 'client.v2.customFields.values.retrieve', fullyQualifiedName: 'v2.customFields.values.retrieve', httpMethod: 'get', httpPath: '/api/v2/custom-fields/{custom_field_id}/values', }, { clientCallName: 'client.v2.forms.create', fullyQualifiedName: 'v2.forms.create', httpMethod: 'post', httpPath: '/api/v2/forms', }, { clientCallName: 'client.v2.forms.retrieve', fullyQualifiedName: 'v2.forms.retrieve', httpMethod: 'get', httpPath: '/api/v2/forms/{id}', }, { clientCallName: 'client.v2.forms.update', fullyQualifiedName: 'v2.forms.update', httpMethod: 'patch', httpPath: '/api/v2/forms/{id}', }, { clientCallName: 'client.v2.forms.list', fullyQualifiedName: 'v2.forms.list', httpMethod: 'get', httpPath: '/api/v2/forms', }, { clientCallName: 'client.v2.forms.createQuestion', fullyQualifiedName: 'v2.forms.createQuestion', httpMethod: 'post', httpPath: '/api/v2/forms/{form_id}/questions', }, { clientCallName: 'client.v2.forms.createTitle', fullyQualifiedName: 'v2.forms.createTitle', httpMethod: 'post', httpPath: '/api/v2/forms/{form_id}/titles', }, { clientCallName: 'client.v2.forms.answers.retrieve', fullyQualifiedName: 'v2.forms.answers.retrieve', httpMethod: 'get', httpPath: '/api/v2/forms/{form_id}/answers/{id}', }, { clientCallName: 'client.v2.forms.answers.list', fullyQualifiedName: 'v2.forms.answers.list', httpMethod: 'get', httpPath: '/api/v2/forms/{form_id}/answers', }, { clientCallName: 'client.v2.forms.assignments.create', fullyQualifiedName: 'v2.forms.assignments.create', httpMethod: 'post', httpPath: '/api/v2/forms/{form_id}/assignments', }, { clientCallName: 'client.v2.forms.assignments.retrieve', fullyQualifiedName: 'v2.forms.assignments.retrieve', httpMethod: 'get', httpPath: '/api/v2/forms/{form_id}/assignments/{id}', }, { clientCallName: 'client.v2.forms.assignments.list', fullyQualifiedName: 'v2.forms.assignments.list', httpMethod: 'get', httpPath: '/api/v2/forms/{form_id}/assignments', }, { clientCallName: 'client.v2.forms.items.retrieve', fullyQualifiedName: 'v2.forms.items.retrieve', httpMethod: 'get', httpPath: '/api/v2/forms/{form_id}/items/{id}', }, { clientCallName: 'client.v2.forms.items.list', fullyQualifiedName: 'v2.forms.items.list', httpMethod: 'get', httpPath: '/api/v2/forms/{form_id}/items', }, { clientCallName: 'client.v2.forms.items.conditionGroup.create', fullyQualifiedName: 'v2.forms.items.conditionGroup.create', httpMethod: 'post', httpPath: '/api/v2/forms/{form_id}/items/{item_id}/condition_group', }, { clientCallName: 'client.v2.forms.items.conditionGroup.retrieve', fullyQualifiedName: 'v2.forms.items.conditionGroup.retrieve', httpMethod: 'get', httpPath: '/api/v2/forms/{form_id}/items/{item_id}/condition_group', }, { clientCallName: 'client.v2.forms.items.conditionGroup.update', fullyQualifiedName: 'v2.forms.items.conditionGroup.update', httpMethod: 'patch', httpPath: '/api/v2/forms/{form_id}/items/{item_id}/condition_group', }, { clientCallName: 'client.v2.forms.items.conditions.create', fullyQualifiedName: 'v2.forms.items.conditions.create', httpMethod: 'post', httpPath: '/api/v2/forms/{form_id}/items/{item_id}/conditions', }, { clientCallName: 'client.v2.forms.items.conditions.update', fullyQualifiedName: 'v2.forms.items.conditions.update', httpMethod: 'patch', httpPath: '/api/v2/forms/{form_id}/items/{item_id}/conditions/{id}', }, { clientCallName: 'client.v2.forms.items.conditions.list', fullyQualifiedName: 'v2.forms.items.conditions.list', httpMethod: 'get', httpPath: '/api/v2/forms/{form_id}/items/{item_id}/conditions', }, { clientCallName: 'client.v2.forms.items.conditions.delete', fullyQualifiedName: 'v2.forms.items.conditions.delete', httpMethod: 'delete', httpPath: '/api/v2/forms/{form_id}/items/{item_id}/conditions/{id}', }, { clientCallName: 'client.v2.forms.sections.create', fullyQualifiedName: 'v2.forms.sections.create', httpMethod: 'post', httpPath: '/api/v2/forms/{form_id}/sections', }, { clientCallName: 'client.v2.forms.sections.retrieve', fullyQualifiedName: 'v2.forms.sections.retrieve', httpMethod: 'get', httpPath: '/api/v2/forms/{form_id}/sections/{id}', }, { clientCallName: 'client.v2.forms.sections.update', fullyQualifiedName: 'v2.forms.sections.update', httpMethod: 'patch', httpPath: '/api/v2/forms/{form_id}/sections/{id}', }, { clientCallName: 'client.v2.forms.sections.list', fullyQualifiedName: 'v2.forms.sections.list', httpMethod: 'get', httpPath: '/api/v2/forms/{form_id}/sections', }, { clientCallName: 'client.v2.forms.submissions.retrieve', fullyQualifiedName: 'v2.forms.submissions.retrieve', httpMethod: 'get', httpPath: '/api/v2/forms/{form_id}/submissions/{id}', }, { clientCallName: 'client.v2.forms.submissions.list', fullyQualifiedName: 'v2.forms.submissions.list', httpMethod: 'get', httpPath: '/api/v2/forms/{form_id}/submissions', }, { clientCallName: 'client.v2.invoices.retrieve', fullyQualifiedName: 'v2.invoices.retrieve', httpMethod: 'get', httpPath: '/api/v2/invoices/{id}', }, { clientCallName: 'client.v2.invoices.update', fullyQualifiedName: 'v2.invoices.update', httpMethod: 'patch', httpPath: '/api/v2/invoices/{id}', }, { clientCallName: 'client.v2.invoices.list', fullyQualifiedName: 'v2.invoices.list', httpMethod: 'get', httpPath: '/api/v2/invoices', }, { clientCallName: 'client.v2.invoices.createPaymentNotice', fullyQualifiedName: 'v2.invoices.createPaymentNotice', httpMethod: 'post', httpPath: '/api/v2/invoices/{invoice_id}/payment-notice', }, { clientCallName: 'client.v2.invoices.createPaymentURL', fullyQualifiedName: 'v2.invoices.createPaymentURL', httpMethod: 'post', httpPath: '/api/v2/invoices/{invoice_id}/payment-url', }, { clientCallName: 'client.v2.invoices.retrieveLineItems', fullyQualifiedName: 'v2.invoices.retrieveLineItems', httpMethod: 'get', httpPath: '/api/v2/invoices/{invoice_id}/line-items', }, { clientCallName: 'client.v2.projectTypes.list', fullyQualifiedName: 'v2.projectTypes.list', httpMethod: 'get', httpPath: '/api/v2/project-types', }, { clientCallName: 'client.v2.projectTypes.retrieveStages', fullyQualifiedName: 'v2.projectTypes.retrieveStages', httpMethod: 'get', httpPath: '/api/v2/project-types/{project_type_id}/project-stages', }, { clientCallName: 'client.v2.projects.create', fullyQualifiedName: 'v2.projects.create', httpMethod: 'post', httpPath: '/api/v2/projects', }, { clientCallName: 'client.v2.projects.retrieve', fullyQualifiedName: 'v2.projects.retrieve', httpMethod: 'get', httpPath: '/api/v2/projects/{id}', }, { clientCallName: 'client.v2.projects.update', fullyQualifiedName: 'v2.projects.update', httpMethod: 'patch', httpPath: '/api/v2/projects/{id}', }, { clientCallName: 'client.v2.projects.list', fullyQualifiedName: 'v2.projects.list', httpMethod: 'get', httpPath: '/api/v2/projects', }, { clientCallName: 'client.v2.projects.retrieveContacts', fullyQualifiedName: 'v2.projects.retrieveContacts', httpMethod: 'get', httpPath: '/api/v2/projects/{project_id}/contacts', }, { clientCallName: 'client.v2.projects.retrieveUsers', fullyQualifiedName: 'v2.projects.retrieveUsers', httpMethod: 'get', httpPath: '/api/v2/projects/{project_id}/users', }, { clientCallName: 'client.v2.projects.sections.create', fullyQualifiedName: 'v2.projects.sections.create', httpMethod: 'post', httpPath: '/api/v2/projects/{project_id}/sections', }, { clientCallName: 'client.v2.projects.sections.list', fullyQualifiedName: 'v2.projects.sections.list', httpMethod: 'get', httpPath: '/api/v2/projects/{project_id}/sections', }, { clientCallName: 'client.v2.projects.sections.templates.retrieve', fullyQualifiedName: 'v2.projects.sections.templates.retrieve', httpMethod: 'get', httpPath: '/api/v2/project-sections/templates/{id}', }, { clientCallName: 'client.v2.projects.sections.templates.list', fullyQualifiedName: 'v2.projects.sections.templates.list', httpMethod: 'get', httpPath: '/api/v2/project-sections/templates', }, { clientCallName: 'client.v2.proposals.create', fullyQualifiedName: 'v2.proposals.create', httpMethod: 'post', httpPath: '/api/v2/proposals', }, { clientCallName: 'client.v2.proposals.retrieve', fullyQualifiedName: 'v2.proposals.retrieve', httpMethod: 'get', httpPath: '/api/v2/proposals/{id}', }, { clientCallName: 'client.v2.proposals.list', fullyQualifiedName: 'v2.proposals.list', httpMethod: 'get', httpPath: '/api/v2/proposals', }, { clientCallName: 'client.v2.proposals.issue', fullyQualifiedName: 'v2.proposals.issue', httpMethod: 'post', httpPath: '/api/v2/proposals/{proposal_id}/issuances', }, { clientCallName: 'client.v2.proposals.retrieveContacts', fullyQualifiedName: 'v2.proposals.retrieveContacts', httpMethod: 'get', httpPath: '/api/v2/proposals/{proposal_id}/contacts', }, { clientCallName: 'client.v2.proposals.retrieveMetadata', fullyQualifiedName: 'v2.proposals.retrieveMetadata', httpMethod: 'get', httpPath: '/api/v2/proposals/{id}/metadata', }, { clientCallName: 'client.v2.proposals.lineItems.create', fullyQualifiedName: 'v2.proposals.lineItems.create', httpMethod: 'post', httpPath: '/api/v2/proposals/{proposal_id}/line-items', }, { clientCallName: 'client.v2.proposals.lineItems.retrieve', fullyQualifiedName: 'v2.proposals.lineItems.retrieve', httpMethod: 'get', httpPath: '/api/v2/proposals/{proposal_id}/line-items', }, { clientCallName: 'client.v2.sealTemplates.retrieve', fullyQualifiedName: 'v2.sealTemplates.retrieve', httpMethod: 'get', httpPath: '/api/v2/seal_templates/{id}', }, { clientCallName: 'client.v2.sealTemplates.list', fullyQualifiedName: 'v2.sealTemplates.list', httpMethod: 'get', httpPath: '/api/v2/seal_templates', }, { clientCallName: 'client.v2.sealTemplates.retrieveParties', fullyQualifiedName: 'v2.sealTemplates.retrieveParties', httpMethod: 'get', httpPath: '/api/v2/seal_templates/{seal_template_id}/parties', }, { clientCallName: 'client.v2.sealTemplates.submissions.create', fullyQualifiedName: 'v2.sealTemplates.submissions.create', httpMethod: 'post', httpPath: '/api/v2/seal_templates/{seal_template_id}/submissions', }, { clientCallName: 'client.v2.sealTemplates.submissions.list', fullyQualifiedName: 'v2.sealTemplates.submissions.list', httpMethod: 'get', httpPath: '/api/v2/seal_templates/{seal_template_id}/submissions', }, { clientCallName: 'client.v2.sealTemplates.submissions.retrieveSubmitters', fullyQualifiedName: 'v2.sealTemplates.submissions.retrieveSubmitters', httpMethod: 'get', httpPath: '/api/v2/seal_templates/{seal_template_id}/submissions/{submission_id}/submitters', }, { clientCallName: 'client.v2.tasks.create', fullyQualifiedName: 'v2.tasks.create', httpMethod: 'post', httpPath: '/api/v2/tasks', }, { clientCallName: 'client.v2.tasks.retrieve', fullyQualifiedName: 'v2.tasks.retrieve', httpMethod: 'get', httpPath: '/api/v2/tasks/{id}', }, { clientCallName: 'client.v2.tasks.update', fullyQualifiedName: 'v2.tasks.update', httpMethod: 'patch', httpPath: '/api/v2/tasks/{id}', }, { clientCallName: 'client.v2.tasks.list', fullyQualifiedName: 'v2.tasks.list', httpMethod: 'get', httpPath: '/api/v2/tasks', }, { clientCallName: 'client.v2.tasks.retrieveContacts', fullyQualifiedName: 'v2.tasks.retrieveContacts', httpMethod: 'get', httpPath: '/api/v2/tasks/{task_id}/contacts', }, { clientCallName: 'client.v2.tasks.retrieveUsers', fullyQualifiedName: 'v2.tasks.retrieveUsers', httpMethod: 'get', httpPath: '/api/v2/tasks/{task_id}/users', }, { clientCallName: 'client.v2.tasks.comments.create', fullyQualifiedName: 'v2.tasks.comments.create', httpMethod: 'post', httpPath: '/api/v2/tasks/{task_id}/comments', }, { clientCallName: 'client.v2.tasks.comments.retrieve', fullyQualifiedName: 'v2.tasks.comments.retrieve', httpMethod: 'get', httpPath: '/api/v2/tasks/{task_id}/comments/{id}', }, { clientCallName: 'client.v2.tasks.comments.list', fullyQualifiedName: 'v2.tasks.comments.list', httpMethod: 'get', httpPath: '/api/v2/tasks/{task_id}/comments', }, { clientCallName: 'client.v2.tasks.files.create', fullyQualifiedName: 'v2.tasks.files.create', httpMethod: 'post', httpPath: '/api/v2/tasks/{task_id}/files', }, { clientCallName: 'client.v2.tasks.files.retrieve', fullyQualifiedName: 'v2.tasks.files.retrieve', httpMethod: 'get', httpPath: '/api/v2/tasks/{task_id}/files/{id}', }, { clientCallName: 'client.v2.tasks.files.update', fullyQualifiedName: 'v2.tasks.files.update', httpMethod: 'patch', httpPath: '/api/v2/tasks/{task_id}/files/{id}', }, { clientCallName: 'client.v2.tasks.files.list', fullyQualifiedName: 'v2.tasks.files.list', httpMethod: 'get', httpPath: '/api/v2/tasks/{task_id}/files', }, { clientCallName: 'client.v2.timeTrackings.create', fullyQualifiedName: 'v2.timeTrackings.create', httpMethod: 'post', httpPath: '/api/v2/time_trackings', }, { clientCallName: 'client.v2.timeTrackings.retrieve', fullyQualifiedName: 'v2.timeTrackings.retrieve', httpMethod: 'get', httpPath: '/api/v2/time_trackings/{id}', }, { clientCallName: 'client.v2.timeTrackings.update', fullyQualifiedName: 'v2.timeTrackings.update', httpMethod: 'patch', httpPath: '/api/v2/time_trackings/{id}', }, { clientCallName: 'client.v2.timeTrackings.list', fullyQualifiedName: 'v2.timeTrackings.list', httpMethod: 'get', httpPath: '/api/v2/time_trackings', }, { clientCallName: 'client.v2.workspaces.create', fullyQualifiedName: 'v2.workspaces.create', httpMethod: 'post', httpPath: '/api/v2/workspaces', }, { clientCallName: 'client.v2.workspaces.retrieve', fullyQualifiedName: 'v2.workspaces.retrieve', httpMethod: 'get', httpPath: '/api/v2/workspaces/{id}', }, { clientCallName: 'client.v2.workspaces.update', fullyQualifiedName: 'v2.workspaces.update', httpMethod: 'patch', httpPath: '/api/v2/workspaces/{id}', }, { clientCallName: 'client.v2.workspaces.list', fullyQualifiedName: 'v2.workspaces.list', httpMethod: 'get', httpPath: '/api/v2/workspaces', }, { clientCallName: 'client.v2.workspaces.delete', fullyQualifiedName: 'v2.workspaces.delete', httpMethod: 'delete', httpPath: '/api/v2/workspaces/{id}', }, { clientCallName: 'client.v2.workspaces.retrieveTemplates', fullyQualifiedName: 'v2.workspaces.retrieveTemplates', httpMethod: 'get', httpPath: '/api/v2/workspaces/templates', }, { clientCallName: 'client.v2.workspaces.archive.create', fullyQualifiedName: 'v2.workspaces.archive.create', httpMethod: 'post', httpPath: '/api/v2/workspaces/{workspace_id}/archive', }, { clientCallName: 'client.v2.workspaces.archive.deleteAll', fullyQualifiedName: 'v2.workspaces.archive.deleteAll', httpMethod: 'delete', httpPath: '/api/v2/workspaces/{workspace_id}/archive', }, { clientCallName: 'client.v2.workspaces.contacts.retrieve', fullyQualifiedName: 'v2.workspaces.contacts.retrieve', httpMethod: 'get', httpPath: '/api/v2/workspaces/{workspace_id}/contacts/{id}', }, { clientCallName: 'client.v2.workspaces.contacts.list', fullyQualifiedName: 'v2.workspaces.contacts.list', httpMethod: 'get', httpPath: '/api/v2/workspaces/{workspace_id}/contacts', }, { clientCallName: 'client.v2.workspaces.contacts.delete', fullyQualifiedName: 'v2.workspaces.contacts.delete', httpMethod: 'delete', httpPath: '/api/v2/workspaces/{workspace_id}/contacts/{id}', }, { clientCallName: 'client.v2.workspaces.embeds.create', fullyQualifiedName: 'v2.workspaces.embeds.create', httpMethod: 'post', httpPath: '/api/v2/workspaces/{workspace_id}/embeds', }, { clientCallName: 'client.v2.workspaces.embeds.retrieve', fullyQualifiedName: 'v2.workspaces.embeds.retrieve', httpMethod: 'get', httpPath: '/api/v2/workspaces/{workspace_id}/embeds/{id}', }, { clientCallName: 'client.v2.workspaces.embeds.update', fullyQualifiedName: 'v2.workspaces.embeds.update', httpMethod: 'patch', httpPath: '/api/v2/workspaces/{workspace_id}/embeds/{id}', }, { clientCallName: 'client.v2.workspaces.embeds.list', fullyQualifiedName: 'v2.workspaces.embeds.list', httpMethod: 'get', httpPath: '/api/v2/workspaces/{workspace_id}/embeds', }, { clientCallName: 'client.v2.workspaces.files.create', fullyQualifiedName: 'v2.workspaces.files.create', httpMethod: 'post', httpPath: '/api/v2/workspaces/{workspace_id}/files', }, { clientCallName: 'client.v2.workspaces.files.retrieve', fullyQualifiedName: 'v2.workspaces.files.retrieve', httpMethod: 'get', httpPath: '/api/v2/workspaces/{workspace_id}/files/{id}', }, { clientCallName: 'client.v2.workspaces.files.update', fullyQualifiedName: 'v2.workspaces.files.update', httpMethod: 'patch', httpPath: '/api/v2/workspaces/{workspace_id}/files/{id}', }, { clientCallName: 'client.v2.workspaces.files.list', fullyQualifiedName: 'v2.workspaces.files.list', httpMethod: 'get', httpPath: '/api/v2/workspaces/{workspace_id}/files', }, { clientCallName: 'client.v2.workspaces.folders.create', fullyQualifiedName: 'v2.workspaces.folders.create', httpMethod: 'post', httpPath: '/api/v2/workspaces/{workspace_id}/folders', }, { clientCallName: 'client.v2.workspaces.folders.retrieve', fullyQualifiedName: 'v2.workspaces.folders.retrieve', httpMethod: 'get', httpPath: '/api/v2/workspaces/{workspace_id}/folders/{id}', }, { clientCallName: 'client.v2.workspaces.folders.update', fullyQualifiedName: 'v2.workspaces.folders.update', httpMethod: 'patch', httpPath: '/api/v2/workspaces/{workspace_id}/folders/{id}', }, { clientCallName: 'client.v2.workspaces.folders.list', fullyQualifiedName: 'v2.workspaces.folders.list', httpMethod: 'get', httpPath: '/api/v2/workspaces/{workspace_id}/folders', }, { clientCallName: 'client.v2.workspaces.folders.accesses.create', fullyQualifiedName: 'v2.workspaces.folders.accesses.create', httpMethod: 'post', httpPath: '/api/v2/workspaces/{workspace_id}/folders/{folder_id}/accesses', }, { clientCallName: 'client.v2.workspaces.folders.accesses.list', fullyQualifiedName: 'v2.workspaces.folders.accesses.list', httpMethod: 'get', httpPath: '/api/v2/workspaces/{workspace_id}/folders/{folder_id}/accesses', }, { clientCallName: 'client.v2.workspaces.folders.accesses.deleteAll', fullyQualifiedName: 'v2.workspaces.folders.accesses.deleteAll', httpMethod: 'delete', httpPath: '/api/v2/workspaces/{workspace_id}/folders/{folder_id}/accesses', }, { clientCallName: 'client.v2.workspaces.invites.create', fullyQualifiedName: 'v2.workspaces.invites.create', httpMethod: 'post', httpPath: '/api/v2/workspaces/{workspace_id}/invites', }, { clientCallName: 'client.v2.workspaces.invites.list', fullyQualifiedName: 'v2.workspaces.invites.list', httpMethod: 'get', httpPath: '/api/v2/workspaces/{workspace_id}/invites', }, { clientCallName: 'client.v2.workspaces.invites.delete', fullyQualifiedName: 'v2.workspaces.invites.delete', httpMethod: 'delete', httpPath: '/api/v2/workspaces/{workspace_id}/invites/{id}', }, { clientCallName: 'client.v2.workspaces.links.create', fullyQualifiedName: 'v2.workspaces.links.create', httpMethod: 'post', httpPath: '/api/v2/workspaces/{workspace_id}/links', }, { clientCallName: 'client.v2.workspaces.links.retrieve', fullyQualifiedName: 'v2.workspaces.links.retrieve', httpMethod: 'get', httpPath: '/api/v2/workspaces/{workspace_id}/links/{id}', }, { clientCallName: 'client.v2.workspaces.links.list', fullyQualifiedName: 'v2.workspaces.links.list', httpMethod: 'get', httpPath: '/api/v2/workspaces/{workspace_id}/links', }, { clientCallName: 'client.v2.workspaces.notes.create', fullyQualifiedName: 'v2.workspaces.notes.create', httpMethod: 'post', httpPath: '/api/v2/workspaces/{workspace_id}/notes', }, { clientCallName: 'client.v2.workspaces.notes.retrieve', fullyQualifiedName: 'v2.workspaces.notes.retrieve', httpMethod: 'get', httpPath: '/api/v2/workspaces/{workspace_id}/notes/{id}', }, { clientCallName: 'client.v2.workspaces.notes.list', fullyQualifiedName: 'v2.workspaces.notes.list', httpMethod: 'get', httpPath: '/api/v2/workspaces/{workspace_id}/notes', }, { clientCallName: 'client.v2.workspaces.tasks.create', fullyQualifiedName: 'v2.workspaces.tasks.create', httpMethod: 'post', httpPath: '/api/v2/workspaces/{workspace_id}/tasks', }, { clientCallName: 'client.v2.workspaces.tasks.retrieve', fullyQualifiedName: 'v2.workspaces.tasks.retrieve', httpMethod: 'get', httpPath: '/api/v2/workspaces/{workspace_id}/tasks/{id}', }, { clientCallName: 'client.v2.workspaces.tasks.update', fullyQualifiedName: 'v2.workspaces.tasks.update', httpMethod: 'patch', httpPath: '/api/v2/workspaces/{workspace_id}/tasks/{id}', }, { clientCallName: 'client.v2.workspaces.tasks.list', fullyQualifiedName: 'v2.workspaces.tasks.list', httpMethod: 'get', httpPath: '/api/v2/workspaces/{workspace_id}/tasks', }, { clientCallName: 'client.v2.workspaces.tasks.items.list', fullyQualifiedName: 'v2.workspaces.tasks.items.list', httpMethod: 'get', httpPath: '/api/v2/workspaces/{workspace_id}/tasks/{task_id}/items', }, { clientCallName: 'client.v2.workspaces.tasks.items.shortcut.create', fullyQualifiedName: 'v2.workspaces.tasks.items.shortcut.create', httpMethod: 'post', httpPath: '/api/v2/workspaces/{workspace_id}/tasks/{task_id}/items/{item_id}/shortcut', }, { clientCallName: 'client.v2.workspaces.tasks.items.shortcut.deleteAll', fullyQualifiedName: 'v2.workspaces.tasks.items.shortcut.deleteAll', httpMethod: 'delete', httpPath: '/api/v2/workspaces/{workspace_id}/tasks/{task_id}/items/{item_id}/shortcut', }, ]; function allowedMethodsForCodeTool(options: McpOptions | undefined): SdkMethod[] | undefined { if (!options) { return undefined; } let allowedMethods: SdkMethod[]; if (options.codeAllowHttpGets || options.codeAllowedMethods) { // Start with nothing allowed and then add into it from options let allowedMethodsSet = new Set(); if (options.codeAllowHttpGets) { // Add all methods that map to an HTTP GET sdkMethods .filter((method) => method.httpMethod === 'get') .forEach((method) => allowedMethodsSet.add(method)); } if (options.codeAllowedMethods) { // Add all methods that match any of the allowed regexps const allowedRegexps = options.codeAllowedMethods.map((pattern) => { try { return new RegExp(pattern); } catch (e) { throw new Error( `Invalid regex pattern for allowed method: "${pattern}": ${e instanceof Error ? e.message : e}`, ); } }); sdkMethods .filter((method) => allowedRegexps.some((regexp) => regexp.test(method.fullyQualifiedName))) .forEach((method) => allowedMethodsSet.add(method)); } allowedMethods = Array.from(allowedMethodsSet); } else { // Start with everything allowed allowedMethods = [...sdkMethods]; } if (options.codeBlockedMethods) { // Filter down based on blocked regexps const blockedRegexps = options.codeBlockedMethods.map((pattern) => { try { return new RegExp(pattern); } catch (e) { throw new Error( `Invalid regex pattern for blocked method: "${pattern}": ${e instanceof Error ? e.message : e}`, ); } }); allowedMethods = allowedMethods.filter( (method) => !blockedRegexps.some((regexp) => regexp.test(method.fullyQualifiedName)), ); } return allowedMethods; } export function blockedMethodsForCodeTool(options: McpOptions | undefined): SdkMethod[] | undefined { const allowedMethods = allowedMethodsForCodeTool(options); if (!allowedMethods) { return undefined; } const allowedSet = new Set(allowedMethods.map((method) => method.fullyQualifiedName)); // Return any methods that are not explicitly allowed return sdkMethods.filter((method) => !allowedSet.has(method.fullyQualifiedName)); }