mirror of
https://github.com/simstudioai/sim.git
synced 2026-01-11 07:58:06 -05:00
Compare commits
2 Commits
fix/action
...
improvemen
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e52f0f1f9b | ||
|
|
79a70c768f |
@@ -137,7 +137,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
|
||||
circleback: CirclebackIcon,
|
||||
clay: ClayIcon,
|
||||
confluence: ConfluenceIcon,
|
||||
cursor: CursorIcon,
|
||||
cursor_v2: CursorIcon,
|
||||
datadog: DatadogIcon,
|
||||
discord: DiscordIcon,
|
||||
dropbox: DropboxIcon,
|
||||
@@ -149,10 +149,10 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
|
||||
file: DocumentIcon,
|
||||
firecrawl: FirecrawlIcon,
|
||||
fireflies: FirefliesIcon,
|
||||
github: GithubIcon,
|
||||
github_v2: GithubIcon,
|
||||
gitlab: GitLabIcon,
|
||||
gmail: GmailIcon,
|
||||
google_calendar: GoogleCalendarIcon,
|
||||
gmail_v2: GmailIcon,
|
||||
google_calendar_v2: GoogleCalendarIcon,
|
||||
google_docs: GoogleDocsIcon,
|
||||
google_drive: GoogleDriveIcon,
|
||||
google_forms: GoogleFormsIcon,
|
||||
@@ -170,7 +170,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
|
||||
image_generator: ImageIcon,
|
||||
imap: MailServerIcon,
|
||||
incidentio: IncidentioIcon,
|
||||
intercom: IntercomIcon,
|
||||
intercom_v2: IntercomIcon,
|
||||
jina: JinaAIIcon,
|
||||
jira: JiraIcon,
|
||||
jira_service_management: JiraServiceManagementIcon,
|
||||
@@ -190,7 +190,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
|
||||
mongodb: MongoDBIcon,
|
||||
mysql: MySQLIcon,
|
||||
neo4j: Neo4jIcon,
|
||||
notion: NotionIcon,
|
||||
notion_v2: NotionIcon,
|
||||
onedrive: MicrosoftOneDriveIcon,
|
||||
openai: OpenAIIcon,
|
||||
outlook: OutlookIcon,
|
||||
@@ -226,7 +226,6 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
|
||||
supabase: SupabaseIcon,
|
||||
tavily: TavilyIcon,
|
||||
telegram: TelegramIcon,
|
||||
thinking: BrainIcon,
|
||||
translate: TranslateIcon,
|
||||
trello: TrelloIcon,
|
||||
tts: TTSIcon,
|
||||
|
||||
@@ -61,7 +61,9 @@ Search Apollo
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `people` | json | Array of people matching the search criteria |
|
||||
| `metadata` | json | Pagination information including page, per_page, and total_entries |
|
||||
| `page` | number | Current page number |
|
||||
| `per_page` | number | Results per page |
|
||||
| `total_entries` | number | Total matching entries |
|
||||
|
||||
### `apollo_people_enrich`
|
||||
|
||||
@@ -86,7 +88,7 @@ Enrich data for a single person using Apollo
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `person` | json | Enriched person data from Apollo |
|
||||
| `metadata` | json | Enrichment metadata including enriched status |
|
||||
| `enriched` | boolean | Whether the person was successfully enriched |
|
||||
|
||||
### `apollo_people_bulk_enrich`
|
||||
|
||||
@@ -106,7 +108,8 @@ Enrich data for up to 10 people at once using Apollo
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `people` | json | Array of enriched people data |
|
||||
| `metadata` | json | Bulk enrichment metadata including total and enriched counts |
|
||||
| `total` | number | Total number of people processed |
|
||||
| `enriched` | number | Number of people successfully enriched |
|
||||
|
||||
### `apollo_organization_search`
|
||||
|
||||
@@ -129,7 +132,9 @@ Search Apollo
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `organizations` | json | Array of organizations matching the search criteria |
|
||||
| `metadata` | json | Pagination information including page, per_page, and total_entries |
|
||||
| `page` | number | Current page number |
|
||||
| `per_page` | number | Results per page |
|
||||
| `total_entries` | number | Total matching entries |
|
||||
|
||||
### `apollo_organization_enrich`
|
||||
|
||||
@@ -148,7 +153,7 @@ Enrich data for a single organization using Apollo
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `organization` | json | Enriched organization data from Apollo |
|
||||
| `metadata` | json | Enrichment metadata including enriched status |
|
||||
| `enriched` | boolean | Whether the organization was successfully enriched |
|
||||
|
||||
### `apollo_organization_bulk_enrich`
|
||||
|
||||
@@ -166,7 +171,8 @@ Enrich data for up to 10 organizations at once using Apollo
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `organizations` | json | Array of enriched organization data |
|
||||
| `metadata` | json | Bulk enrichment metadata including total and enriched counts |
|
||||
| `total` | number | Total number of organizations processed |
|
||||
| `enriched` | number | Number of organizations successfully enriched |
|
||||
|
||||
### `apollo_contact_create`
|
||||
|
||||
@@ -189,7 +195,7 @@ Create a new contact in your Apollo database
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Created contact data from Apollo |
|
||||
| `metadata` | json | Creation metadata including created status |
|
||||
| `created` | boolean | Whether the contact was successfully created |
|
||||
|
||||
### `apollo_contact_update`
|
||||
|
||||
@@ -213,7 +219,7 @@ Update an existing contact in your Apollo database
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Updated contact data from Apollo |
|
||||
| `metadata` | json | Update metadata including updated status |
|
||||
| `updated` | boolean | Whether the contact was successfully updated |
|
||||
|
||||
### `apollo_contact_search`
|
||||
|
||||
@@ -234,7 +240,9 @@ Search your team
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | json | Array of contacts matching the search criteria |
|
||||
| `metadata` | json | Pagination information including page, per_page, and total_entries |
|
||||
| `page` | number | Current page number |
|
||||
| `per_page` | number | Results per page |
|
||||
| `total_entries` | number | Total matching entries |
|
||||
|
||||
### `apollo_contact_bulk_create`
|
||||
|
||||
@@ -254,7 +262,9 @@ Create up to 100 contacts at once in your Apollo database. Supports deduplicatio
|
||||
| --------- | ---- | ----------- |
|
||||
| `created_contacts` | json | Array of newly created contacts |
|
||||
| `existing_contacts` | json | Array of existing contacts \(when deduplication is enabled\) |
|
||||
| `metadata` | json | Bulk creation metadata including counts of created and existing contacts |
|
||||
| `total_submitted` | number | Total number of contacts submitted |
|
||||
| `created` | number | Number of contacts successfully created |
|
||||
| `existing` | number | Number of existing contacts found |
|
||||
|
||||
### `apollo_contact_bulk_update`
|
||||
|
||||
@@ -273,7 +283,9 @@ Update up to 100 existing contacts at once in your Apollo database. Each contact
|
||||
| --------- | ---- | ----------- |
|
||||
| `updated_contacts` | json | Array of successfully updated contacts |
|
||||
| `failed_contacts` | json | Array of contacts that failed to update |
|
||||
| `metadata` | json | Bulk update metadata including counts of updated and failed contacts |
|
||||
| `total_submitted` | number | Total number of contacts submitted |
|
||||
| `updated` | number | Number of contacts successfully updated |
|
||||
| `failed` | number | Number of contacts that failed to update |
|
||||
|
||||
### `apollo_account_create`
|
||||
|
||||
@@ -294,7 +306,7 @@ Create a new account (company) in your Apollo database
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `account` | json | Created account data from Apollo |
|
||||
| `metadata` | json | Creation metadata including created status |
|
||||
| `created` | boolean | Whether the account was successfully created |
|
||||
|
||||
### `apollo_account_update`
|
||||
|
||||
@@ -316,7 +328,7 @@ Update an existing account in your Apollo database
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `account` | json | Updated account data from Apollo |
|
||||
| `metadata` | json | Update metadata including updated status |
|
||||
| `updated` | boolean | Whether the account was successfully updated |
|
||||
|
||||
### `apollo_account_search`
|
||||
|
||||
@@ -338,7 +350,9 @@ Search your team
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `accounts` | json | Array of accounts matching the search criteria |
|
||||
| `metadata` | json | Pagination information including page, per_page, and total_entries |
|
||||
| `page` | number | Current page number |
|
||||
| `per_page` | number | Results per page |
|
||||
| `total_entries` | number | Total matching entries |
|
||||
|
||||
### `apollo_account_bulk_create`
|
||||
|
||||
@@ -357,7 +371,9 @@ Create up to 100 accounts at once in your Apollo database. Note: Apollo does not
|
||||
| --------- | ---- | ----------- |
|
||||
| `created_accounts` | json | Array of newly created accounts |
|
||||
| `failed_accounts` | json | Array of accounts that failed to create |
|
||||
| `metadata` | json | Bulk creation metadata including counts of created and failed accounts |
|
||||
| `total_submitted` | number | Total number of accounts submitted |
|
||||
| `created` | number | Number of accounts successfully created |
|
||||
| `failed` | number | Number of accounts that failed to create |
|
||||
|
||||
### `apollo_account_bulk_update`
|
||||
|
||||
@@ -376,7 +392,9 @@ Update up to 1000 existing accounts at once in your Apollo database (higher limi
|
||||
| --------- | ---- | ----------- |
|
||||
| `updated_accounts` | json | Array of successfully updated accounts |
|
||||
| `failed_accounts` | json | Array of accounts that failed to update |
|
||||
| `metadata` | json | Bulk update metadata including counts of updated and failed accounts |
|
||||
| `total_submitted` | number | Total number of accounts submitted |
|
||||
| `updated` | number | Number of accounts successfully updated |
|
||||
| `failed` | number | Number of accounts that failed to update |
|
||||
|
||||
### `apollo_opportunity_create`
|
||||
|
||||
@@ -400,7 +418,7 @@ Create a new deal for an account in your Apollo database (master key required)
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `opportunity` | json | Created opportunity data from Apollo |
|
||||
| `metadata` | json | Creation metadata including created status |
|
||||
| `created` | boolean | Whether the opportunity was successfully created |
|
||||
|
||||
### `apollo_opportunity_search`
|
||||
|
||||
@@ -423,7 +441,9 @@ Search and list all deals/opportunities in your team
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `opportunities` | json | Array of opportunities matching the search criteria |
|
||||
| `metadata` | json | Pagination information including page, per_page, and total_entries |
|
||||
| `page` | number | Current page number |
|
||||
| `per_page` | number | Results per page |
|
||||
| `total_entries` | number | Total matching entries |
|
||||
|
||||
### `apollo_opportunity_get`
|
||||
|
||||
@@ -441,7 +461,7 @@ Retrieve complete details of a specific deal/opportunity by ID
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `opportunity` | json | Complete opportunity data from Apollo |
|
||||
| `metadata` | json | Retrieval metadata including found status |
|
||||
| `found` | boolean | Whether the opportunity was found |
|
||||
|
||||
### `apollo_opportunity_update`
|
||||
|
||||
@@ -465,7 +485,7 @@ Update an existing deal/opportunity in your Apollo database
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `opportunity` | json | Updated opportunity data from Apollo |
|
||||
| `metadata` | json | Update metadata including updated status |
|
||||
| `updated` | boolean | Whether the opportunity was successfully updated |
|
||||
|
||||
### `apollo_sequence_search`
|
||||
|
||||
@@ -486,7 +506,9 @@ Search for sequences/campaigns in your team
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `sequences` | json | Array of sequences/campaigns matching the search criteria |
|
||||
| `metadata` | json | Pagination information including page, per_page, and total_entries |
|
||||
| `page` | number | Current page number |
|
||||
| `per_page` | number | Results per page |
|
||||
| `total_entries` | number | Total matching entries |
|
||||
|
||||
### `apollo_sequence_add_contacts`
|
||||
|
||||
@@ -507,7 +529,8 @@ Add contacts to an Apollo sequence
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts_added` | json | Array of contact IDs added to the sequence |
|
||||
| `metadata` | json | Sequence metadata including sequence_id and total_added count |
|
||||
| `sequence_id` | string | ID of the sequence contacts were added to |
|
||||
| `total_added` | number | Total number of contacts added |
|
||||
|
||||
### `apollo_task_create`
|
||||
|
||||
@@ -530,7 +553,7 @@ Create a new task in Apollo
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `task` | json | Created task data from Apollo |
|
||||
| `metadata` | json | Creation metadata including created status |
|
||||
| `created` | boolean | Whether the task was successfully created |
|
||||
|
||||
### `apollo_task_search`
|
||||
|
||||
@@ -552,7 +575,9 @@ Search for tasks in Apollo
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `tasks` | json | Array of tasks matching the search criteria |
|
||||
| `metadata` | json | Pagination information including page, per_page, and total_entries |
|
||||
| `page` | number | Current page number |
|
||||
| `per_page` | number | Results per page |
|
||||
| `total_entries` | number | Total matching entries |
|
||||
|
||||
### `apollo_email_accounts`
|
||||
|
||||
@@ -569,7 +594,7 @@ Get list of team
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `email_accounts` | json | Array of team email accounts linked in Apollo |
|
||||
| `metadata` | json | Metadata including total count of email accounts |
|
||||
| `total` | number | Total count of email accounts |
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,186 +0,0 @@
|
||||
---
|
||||
title: Cursor
|
||||
description: Launch and manage Cursor cloud agents to work on GitHub repositories
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="cursor"
|
||||
color="#1E1E1E"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Cursor](https://www.cursor.so/) is an AI IDE and cloud-based platform that lets you launch and manage powerful AI agents able to work directly on your GitHub repositories. Cursor agents can automate development tasks, enhance your team's productivity, and collaborate with you by making code changes, responding to natural language instructions, and maintaining conversation history about their activities.
|
||||
|
||||
With Cursor, you can:
|
||||
|
||||
- **Launch cloud agents for codebases**: Instantly create new AI agents that work on your repositories in the cloud
|
||||
- **Delegate coding tasks using natural language**: Guide agents with written instructions, amendments, and clarifications
|
||||
- **Monitor progress and outputs**: Retrieve agent status, view detailed results, and inspect current or completed tasks
|
||||
- **Access full conversation history**: Review all prompts and AI responses for transparency and auditability
|
||||
- **Control and manage agent lifecycle**: List active agents, terminate agents, and manage API-based agent launches and follow-ups
|
||||
|
||||
In Sim, the Cursor integration enables your agents and workflows to interact programmatically with Cursor cloud agents. This means you can use Sim to:
|
||||
|
||||
- List all cloud agents and browse their current state (`cursor_list_agents`)
|
||||
- Retrieve up-to-date status and outputs for any agent (`cursor_get_agent`)
|
||||
- View the full conversation history for any coding agent (`cursor_get_conversation`)
|
||||
- Add follow-up instructions or new prompts to a running agent
|
||||
- Manage and terminate agents as needed
|
||||
|
||||
This integration helps you combine the flexible intelligence of Sim agents with the powerful development automation capabilities of Cursor, making it possible to scale AI-driven development across your projects.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
|
||||
## Usage Instructions
|
||||
|
||||
Interact with Cursor Cloud Agents API to launch AI agents that can work on your GitHub repositories. Supports launching agents, adding follow-up instructions, checking status, viewing conversations, and managing agent lifecycle.
|
||||
|
||||
|
||||
|
||||
## Tools
|
||||
|
||||
### `cursor_list_agents`
|
||||
|
||||
List all cloud agents for the authenticated user with optional pagination.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Cursor API key |
|
||||
| `limit` | number | No | Number of agents to return \(default: 20, max: 100\) |
|
||||
| `cursor` | string | No | Pagination cursor from previous response |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Human-readable list of agents |
|
||||
| `metadata` | object | Agent list metadata |
|
||||
|
||||
### `cursor_get_agent`
|
||||
|
||||
Retrieve the current status and results of a cloud agent.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Cursor API key |
|
||||
| `agentId` | string | Yes | Unique identifier for the cloud agent \(e.g., bc_abc123\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Human-readable agent details |
|
||||
| `metadata` | object | Agent metadata |
|
||||
|
||||
### `cursor_get_conversation`
|
||||
|
||||
Retrieve the conversation history of a cloud agent, including all user prompts and assistant responses.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Cursor API key |
|
||||
| `agentId` | string | Yes | Unique identifier for the cloud agent \(e.g., bc_abc123\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Human-readable conversation history |
|
||||
| `metadata` | object | Conversation metadata |
|
||||
|
||||
### `cursor_launch_agent`
|
||||
|
||||
Start a new cloud agent to work on a GitHub repository with the given instructions.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Cursor API key |
|
||||
| `repository` | string | Yes | GitHub repository URL \(e.g., https://github.com/your-org/your-repo\) |
|
||||
| `ref` | string | No | Branch, tag, or commit to work from \(defaults to default branch\) |
|
||||
| `promptText` | string | Yes | The instruction text for the agent |
|
||||
| `promptImages` | string | No | JSON array of image objects with base64 data and dimensions |
|
||||
| `model` | string | No | Model to use \(leave empty for auto-selection\) |
|
||||
| `branchName` | string | No | Custom branch name for the agent to use |
|
||||
| `autoCreatePr` | boolean | No | Automatically create a PR when the agent finishes |
|
||||
| `openAsCursorGithubApp` | boolean | No | Open the PR as the Cursor GitHub App |
|
||||
| `skipReviewerRequest` | boolean | No | Skip requesting reviewers on the PR |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message with agent details |
|
||||
| `metadata` | object | Launch result metadata |
|
||||
|
||||
### `cursor_add_followup`
|
||||
|
||||
Add a follow-up instruction to an existing cloud agent.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Cursor API key |
|
||||
| `agentId` | string | Yes | Unique identifier for the cloud agent \(e.g., bc_abc123\) |
|
||||
| `followupPromptText` | string | Yes | The follow-up instruction text for the agent |
|
||||
| `promptImages` | string | No | JSON array of image objects with base64 data and dimensions \(max 5\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message |
|
||||
| `metadata` | object | Result metadata |
|
||||
|
||||
### `cursor_stop_agent`
|
||||
|
||||
Stop a running cloud agent. This pauses the agent without deleting it.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Cursor API key |
|
||||
| `agentId` | string | Yes | Unique identifier for the cloud agent \(e.g., bc_abc123\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message |
|
||||
| `metadata` | object | Result metadata |
|
||||
|
||||
### `cursor_delete_agent`
|
||||
|
||||
Permanently delete a cloud agent. This action cannot be undone.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | Cursor API key |
|
||||
| `agentId` | string | Yes | Unique identifier for the cloud agent \(e.g., bc_abc123\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message |
|
||||
| `metadata` | object | Result metadata |
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `tools`
|
||||
- Type: `cursor`
|
||||
183
apps/docs/content/docs/en/tools/cursor_v2.mdx
Normal file
183
apps/docs/content/docs/en/tools/cursor_v2.mdx
Normal file
@@ -0,0 +1,183 @@
|
||||
---
|
||||
title: Cursor
|
||||
description: Agent identifier
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="cursor_v2"
|
||||
color="#F5F5F5"
|
||||
/>
|
||||
|
||||
|
||||
|
||||
## Tools
|
||||
|
||||
### `cursor_list_agents_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Agent identifier |
|
||||
| `url` | string | Agent URL \(launch operation\) |
|
||||
| `name` | string | Agent name |
|
||||
| `status` | string | Agent status |
|
||||
| `source` | json | Agent source repository info |
|
||||
| `target` | json | Agent target branch/PR info |
|
||||
| `summary` | string | Agent summary |
|
||||
| `createdAt` | string | Agent creation timestamp |
|
||||
| `agents` | json | Array of agent objects \(list operation\) |
|
||||
| `nextCursor` | string | Pagination cursor \(list operation\) |
|
||||
| `messages` | json | Conversation messages \(get conversation operation\) |
|
||||
|
||||
### `cursor_get_agent_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Agent identifier |
|
||||
| `url` | string | Agent URL \(launch operation\) |
|
||||
| `name` | string | Agent name |
|
||||
| `status` | string | Agent status |
|
||||
| `source` | json | Agent source repository info |
|
||||
| `target` | json | Agent target branch/PR info |
|
||||
| `summary` | string | Agent summary |
|
||||
| `createdAt` | string | Agent creation timestamp |
|
||||
| `agents` | json | Array of agent objects \(list operation\) |
|
||||
| `nextCursor` | string | Pagination cursor \(list operation\) |
|
||||
| `messages` | json | Conversation messages \(get conversation operation\) |
|
||||
|
||||
### `cursor_get_conversation_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Agent identifier |
|
||||
| `url` | string | Agent URL \(launch operation\) |
|
||||
| `name` | string | Agent name |
|
||||
| `status` | string | Agent status |
|
||||
| `source` | json | Agent source repository info |
|
||||
| `target` | json | Agent target branch/PR info |
|
||||
| `summary` | string | Agent summary |
|
||||
| `createdAt` | string | Agent creation timestamp |
|
||||
| `agents` | json | Array of agent objects \(list operation\) |
|
||||
| `nextCursor` | string | Pagination cursor \(list operation\) |
|
||||
| `messages` | json | Conversation messages \(get conversation operation\) |
|
||||
|
||||
### `cursor_launch_agent_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Agent identifier |
|
||||
| `url` | string | Agent URL \(launch operation\) |
|
||||
| `name` | string | Agent name |
|
||||
| `status` | string | Agent status |
|
||||
| `source` | json | Agent source repository info |
|
||||
| `target` | json | Agent target branch/PR info |
|
||||
| `summary` | string | Agent summary |
|
||||
| `createdAt` | string | Agent creation timestamp |
|
||||
| `agents` | json | Array of agent objects \(list operation\) |
|
||||
| `nextCursor` | string | Pagination cursor \(list operation\) |
|
||||
| `messages` | json | Conversation messages \(get conversation operation\) |
|
||||
|
||||
### `cursor_add_followup_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Agent identifier |
|
||||
| `url` | string | Agent URL \(launch operation\) |
|
||||
| `name` | string | Agent name |
|
||||
| `status` | string | Agent status |
|
||||
| `source` | json | Agent source repository info |
|
||||
| `target` | json | Agent target branch/PR info |
|
||||
| `summary` | string | Agent summary |
|
||||
| `createdAt` | string | Agent creation timestamp |
|
||||
| `agents` | json | Array of agent objects \(list operation\) |
|
||||
| `nextCursor` | string | Pagination cursor \(list operation\) |
|
||||
| `messages` | json | Conversation messages \(get conversation operation\) |
|
||||
|
||||
### `cursor_stop_agent_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Agent identifier |
|
||||
| `url` | string | Agent URL \(launch operation\) |
|
||||
| `name` | string | Agent name |
|
||||
| `status` | string | Agent status |
|
||||
| `source` | json | Agent source repository info |
|
||||
| `target` | json | Agent target branch/PR info |
|
||||
| `summary` | string | Agent summary |
|
||||
| `createdAt` | string | Agent creation timestamp |
|
||||
| `agents` | json | Array of agent objects \(list operation\) |
|
||||
| `nextCursor` | string | Pagination cursor \(list operation\) |
|
||||
| `messages` | json | Conversation messages \(get conversation operation\) |
|
||||
|
||||
### `cursor_delete_agent_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Agent identifier |
|
||||
| `url` | string | Agent URL \(launch operation\) |
|
||||
| `name` | string | Agent name |
|
||||
| `status` | string | Agent status |
|
||||
| `source` | json | Agent source repository info |
|
||||
| `target` | json | Agent target branch/PR info |
|
||||
| `summary` | string | Agent summary |
|
||||
| `createdAt` | string | Agent creation timestamp |
|
||||
| `agents` | json | Array of agent objects \(list operation\) |
|
||||
| `nextCursor` | string | Pagination cursor \(list operation\) |
|
||||
| `messages` | json | Conversation messages \(get conversation operation\) |
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `misc`
|
||||
- Type: `cursor_v2`
|
||||
File diff suppressed because it is too large
Load Diff
20
apps/docs/content/docs/en/tools/github_v2.mdx
Normal file
20
apps/docs/content/docs/en/tools/github_v2.mdx
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: GitHub
|
||||
description: Operation result data (API-aligned)
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="github_v2"
|
||||
color="#F5F5F5"
|
||||
/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `misc`
|
||||
- Type: `github_v2`
|
||||
@@ -1,280 +0,0 @@
|
||||
---
|
||||
title: Gmail
|
||||
description: Send, read, search, and move Gmail messages or trigger workflows from Gmail events
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="gmail"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Gmail](https://gmail.com) is Google's popular email service that provides a robust platform for sending, receiving, and managing email communications. With over 1.8 billion active users worldwide, Gmail offers a feature-rich experience with powerful search capabilities, organizational tools, and integration options.
|
||||
|
||||
With Gmail, you can:
|
||||
|
||||
- **Send and receive emails**: Communicate with contacts through a clean, intuitive interface
|
||||
- **Organize messages**: Use labels, folders, and filters to keep your inbox organized
|
||||
- **Search efficiently**: Find specific messages quickly with Google's powerful search technology
|
||||
- **Automate workflows**: Create filters and rules to automatically process incoming emails
|
||||
- **Access from anywhere**: Use Gmail across devices with synchronized content and settings
|
||||
- **Integrate with other services**: Connect with Google Calendar, Drive, and other productivity tools
|
||||
|
||||
In Sim, the Gmail integration enables your agents to fully manage emails programmatically with comprehensive automation capabilities. This allows for powerful automation scenarios such as sending notifications, processing incoming messages, extracting information from emails, and managing communication workflows at scale. Your agents can:
|
||||
|
||||
- **Compose and send**: Create personalized emails with attachments and send to recipients
|
||||
- **Read and search**: Find specific messages using Gmail's query syntax and extract content
|
||||
- **Organize intelligently**: Mark messages as read/unread, archive or unarchive emails, and manage labels
|
||||
- **Clean up inbox**: Delete messages, move emails between labels, and maintain inbox zero
|
||||
- **Trigger workflows**: Listen for new emails in real-time, enabling responsive workflows that react to incoming messages
|
||||
|
||||
This integration bridges the gap between your AI workflows and email communications, enabling seamless interaction with one of the world's most widely used communication platforms. Whether you're automating customer support responses, processing receipts, managing subscriptions, or coordinating team communications, the Gmail integration provides all the tools you need for comprehensive email automation.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
|
||||
## Usage Instructions
|
||||
|
||||
Integrate Gmail into the workflow. Can send, read, search, and move emails. Can be used in trigger mode to trigger a workflow when a new email is received.
|
||||
|
||||
|
||||
|
||||
## Tools
|
||||
|
||||
### `gmail_send`
|
||||
|
||||
Send emails using Gmail
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `to` | string | Yes | Recipient email address |
|
||||
| `subject` | string | No | Email subject |
|
||||
| `body` | string | Yes | Email body content |
|
||||
| `contentType` | string | No | Content type for the email body \(text or html\) |
|
||||
| `threadId` | string | No | Thread ID to reply to \(for threading\) |
|
||||
| `replyToMessageId` | string | No | Gmail message ID to reply to - use the "id" field from Gmail Read results \(not the RFC "messageId"\) |
|
||||
| `cc` | string | No | CC recipients \(comma-separated\) |
|
||||
| `bcc` | string | No | BCC recipients \(comma-separated\) |
|
||||
| `attachments` | file[] | No | Files to attach to the email |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message |
|
||||
| `metadata` | object | Email metadata |
|
||||
|
||||
### `gmail_draft`
|
||||
|
||||
Draft emails using Gmail
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `to` | string | Yes | Recipient email address |
|
||||
| `subject` | string | No | Email subject |
|
||||
| `body` | string | Yes | Email body content |
|
||||
| `contentType` | string | No | Content type for the email body \(text or html\) |
|
||||
| `threadId` | string | No | Thread ID to reply to \(for threading\) |
|
||||
| `replyToMessageId` | string | No | Gmail message ID to reply to - use the "id" field from Gmail Read results \(not the RFC "messageId"\) |
|
||||
| `cc` | string | No | CC recipients \(comma-separated\) |
|
||||
| `bcc` | string | No | BCC recipients \(comma-separated\) |
|
||||
| `attachments` | file[] | No | Files to attach to the email draft |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message |
|
||||
| `metadata` | object | Draft metadata |
|
||||
|
||||
### `gmail_read`
|
||||
|
||||
Read emails from Gmail
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | No | ID of the message to read |
|
||||
| `folder` | string | No | Folder/label to read emails from |
|
||||
| `unreadOnly` | boolean | No | Only retrieve unread messages |
|
||||
| `maxResults` | number | No | Maximum number of messages to retrieve \(default: 1, max: 10\) |
|
||||
| `includeAttachments` | boolean | No | Download and include email attachments |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Text content of the email |
|
||||
| `metadata` | json | Metadata of the email |
|
||||
| `attachments` | file[] | Attachments of the email |
|
||||
|
||||
### `gmail_search`
|
||||
|
||||
Search emails in Gmail
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Yes | Search query for emails |
|
||||
| `maxResults` | number | No | Maximum number of results to return |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Search results summary |
|
||||
| `metadata` | object | Search metadata |
|
||||
|
||||
### `gmail_move`
|
||||
|
||||
Move emails between Gmail labels/folders
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | Yes | ID of the message to move |
|
||||
| `addLabelIds` | string | Yes | Comma-separated label IDs to add \(e.g., INBOX, Label_123\) |
|
||||
| `removeLabelIds` | string | No | Comma-separated label IDs to remove \(e.g., INBOX, SPAM\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message |
|
||||
| `metadata` | object | Email metadata |
|
||||
|
||||
### `gmail_mark_read`
|
||||
|
||||
Mark a Gmail message as read
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | Yes | ID of the message to mark as read |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message |
|
||||
| `metadata` | object | Email metadata |
|
||||
|
||||
### `gmail_mark_unread`
|
||||
|
||||
Mark a Gmail message as unread
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | Yes | ID of the message to mark as unread |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message |
|
||||
| `metadata` | object | Email metadata |
|
||||
|
||||
### `gmail_archive`
|
||||
|
||||
Archive a Gmail message (remove from inbox)
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | Yes | ID of the message to archive |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message |
|
||||
| `metadata` | object | Email metadata |
|
||||
|
||||
### `gmail_unarchive`
|
||||
|
||||
Unarchive a Gmail message (move back to inbox)
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | Yes | ID of the message to unarchive |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message |
|
||||
| `metadata` | object | Email metadata |
|
||||
|
||||
### `gmail_delete`
|
||||
|
||||
Delete a Gmail message (move to trash)
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | Yes | ID of the message to delete |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message |
|
||||
| `metadata` | object | Email metadata |
|
||||
|
||||
### `gmail_add_label`
|
||||
|
||||
Add label(s) to a Gmail message
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | Yes | ID of the message to add labels to |
|
||||
| `labelIds` | string | Yes | Comma-separated label IDs to add \(e.g., INBOX, Label_123\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message |
|
||||
| `metadata` | object | Email metadata |
|
||||
|
||||
### `gmail_remove_label`
|
||||
|
||||
Remove label(s) from a Gmail message
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | Yes | ID of the message to remove labels from |
|
||||
| `labelIds` | string | Yes | Comma-separated label IDs to remove \(e.g., INBOX, Label_123\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message |
|
||||
| `metadata` | object | Email metadata |
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `tools`
|
||||
- Type: `gmail`
|
||||
394
apps/docs/content/docs/en/tools/gmail_v2.mdx
Normal file
394
apps/docs/content/docs/en/tools/gmail_v2.mdx
Normal file
@@ -0,0 +1,394 @@
|
||||
---
|
||||
title: Gmail
|
||||
description: Gmail message ID
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="gmail_v2"
|
||||
color="#F5F5F5"
|
||||
/>
|
||||
|
||||
|
||||
|
||||
## Tools
|
||||
|
||||
### `gmail_send_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Gmail message ID |
|
||||
| `threadId` | string | Gmail thread ID |
|
||||
| `labelIds` | array | Email label IDs |
|
||||
| `from` | string | Sender |
|
||||
| `to` | string | To |
|
||||
| `subject` | string | Subject |
|
||||
| `date` | string | Date |
|
||||
| `body` | string | Email body text \(best-effort\) |
|
||||
| `results` | json | Search/read summary results |
|
||||
| `attachments` | json | Downloaded attachments \(if enabled\) |
|
||||
| `email_id` | string | Gmail message ID |
|
||||
| `thread_id` | string | Gmail thread ID |
|
||||
| `cc` | string | CC recipients \(comma-separated\) |
|
||||
| `body_text` | string | Plain text email body |
|
||||
| `body_html` | string | HTML email body |
|
||||
| `labels` | string | Email labels \(comma-separated\) |
|
||||
| `has_attachments` | boolean | Whether email has attachments |
|
||||
| `raw_email` | json | Complete raw email data from Gmail API \(if enabled\) |
|
||||
| `timestamp` | string | Event timestamp |
|
||||
|
||||
### `gmail_draft_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Gmail message ID |
|
||||
| `threadId` | string | Gmail thread ID |
|
||||
| `labelIds` | array | Email label IDs |
|
||||
| `from` | string | Sender |
|
||||
| `to` | string | To |
|
||||
| `subject` | string | Subject |
|
||||
| `date` | string | Date |
|
||||
| `body` | string | Email body text \(best-effort\) |
|
||||
| `results` | json | Search/read summary results |
|
||||
| `attachments` | json | Downloaded attachments \(if enabled\) |
|
||||
| `email_id` | string | Gmail message ID |
|
||||
| `thread_id` | string | Gmail thread ID |
|
||||
| `cc` | string | CC recipients \(comma-separated\) |
|
||||
| `body_text` | string | Plain text email body |
|
||||
| `body_html` | string | HTML email body |
|
||||
| `labels` | string | Email labels \(comma-separated\) |
|
||||
| `has_attachments` | boolean | Whether email has attachments |
|
||||
| `raw_email` | json | Complete raw email data from Gmail API \(if enabled\) |
|
||||
| `timestamp` | string | Event timestamp |
|
||||
|
||||
### `gmail_read_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Gmail message ID |
|
||||
| `threadId` | string | Gmail thread ID |
|
||||
| `labelIds` | array | Email label IDs |
|
||||
| `from` | string | Sender |
|
||||
| `to` | string | To |
|
||||
| `subject` | string | Subject |
|
||||
| `date` | string | Date |
|
||||
| `body` | string | Email body text \(best-effort\) |
|
||||
| `results` | json | Search/read summary results |
|
||||
| `attachments` | json | Downloaded attachments \(if enabled\) |
|
||||
| `email_id` | string | Gmail message ID |
|
||||
| `thread_id` | string | Gmail thread ID |
|
||||
| `cc` | string | CC recipients \(comma-separated\) |
|
||||
| `body_text` | string | Plain text email body |
|
||||
| `body_html` | string | HTML email body |
|
||||
| `labels` | string | Email labels \(comma-separated\) |
|
||||
| `has_attachments` | boolean | Whether email has attachments |
|
||||
| `raw_email` | json | Complete raw email data from Gmail API \(if enabled\) |
|
||||
| `timestamp` | string | Event timestamp |
|
||||
|
||||
### `gmail_search_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Gmail message ID |
|
||||
| `threadId` | string | Gmail thread ID |
|
||||
| `labelIds` | array | Email label IDs |
|
||||
| `from` | string | Sender |
|
||||
| `to` | string | To |
|
||||
| `subject` | string | Subject |
|
||||
| `date` | string | Date |
|
||||
| `body` | string | Email body text \(best-effort\) |
|
||||
| `results` | json | Search/read summary results |
|
||||
| `attachments` | json | Downloaded attachments \(if enabled\) |
|
||||
| `email_id` | string | Gmail message ID |
|
||||
| `thread_id` | string | Gmail thread ID |
|
||||
| `cc` | string | CC recipients \(comma-separated\) |
|
||||
| `body_text` | string | Plain text email body |
|
||||
| `body_html` | string | HTML email body |
|
||||
| `labels` | string | Email labels \(comma-separated\) |
|
||||
| `has_attachments` | boolean | Whether email has attachments |
|
||||
| `raw_email` | json | Complete raw email data from Gmail API \(if enabled\) |
|
||||
| `timestamp` | string | Event timestamp |
|
||||
|
||||
### `gmail_move_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Gmail message ID |
|
||||
| `threadId` | string | Gmail thread ID |
|
||||
| `labelIds` | array | Email label IDs |
|
||||
| `from` | string | Sender |
|
||||
| `to` | string | To |
|
||||
| `subject` | string | Subject |
|
||||
| `date` | string | Date |
|
||||
| `body` | string | Email body text \(best-effort\) |
|
||||
| `results` | json | Search/read summary results |
|
||||
| `attachments` | json | Downloaded attachments \(if enabled\) |
|
||||
| `email_id` | string | Gmail message ID |
|
||||
| `thread_id` | string | Gmail thread ID |
|
||||
| `cc` | string | CC recipients \(comma-separated\) |
|
||||
| `body_text` | string | Plain text email body |
|
||||
| `body_html` | string | HTML email body |
|
||||
| `labels` | string | Email labels \(comma-separated\) |
|
||||
| `has_attachments` | boolean | Whether email has attachments |
|
||||
| `raw_email` | json | Complete raw email data from Gmail API \(if enabled\) |
|
||||
| `timestamp` | string | Event timestamp |
|
||||
|
||||
### `gmail_mark_read_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Gmail message ID |
|
||||
| `threadId` | string | Gmail thread ID |
|
||||
| `labelIds` | array | Email label IDs |
|
||||
| `from` | string | Sender |
|
||||
| `to` | string | To |
|
||||
| `subject` | string | Subject |
|
||||
| `date` | string | Date |
|
||||
| `body` | string | Email body text \(best-effort\) |
|
||||
| `results` | json | Search/read summary results |
|
||||
| `attachments` | json | Downloaded attachments \(if enabled\) |
|
||||
| `email_id` | string | Gmail message ID |
|
||||
| `thread_id` | string | Gmail thread ID |
|
||||
| `cc` | string | CC recipients \(comma-separated\) |
|
||||
| `body_text` | string | Plain text email body |
|
||||
| `body_html` | string | HTML email body |
|
||||
| `labels` | string | Email labels \(comma-separated\) |
|
||||
| `has_attachments` | boolean | Whether email has attachments |
|
||||
| `raw_email` | json | Complete raw email data from Gmail API \(if enabled\) |
|
||||
| `timestamp` | string | Event timestamp |
|
||||
|
||||
### `gmail_mark_unread_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Gmail message ID |
|
||||
| `threadId` | string | Gmail thread ID |
|
||||
| `labelIds` | array | Email label IDs |
|
||||
| `from` | string | Sender |
|
||||
| `to` | string | To |
|
||||
| `subject` | string | Subject |
|
||||
| `date` | string | Date |
|
||||
| `body` | string | Email body text \(best-effort\) |
|
||||
| `results` | json | Search/read summary results |
|
||||
| `attachments` | json | Downloaded attachments \(if enabled\) |
|
||||
| `email_id` | string | Gmail message ID |
|
||||
| `thread_id` | string | Gmail thread ID |
|
||||
| `cc` | string | CC recipients \(comma-separated\) |
|
||||
| `body_text` | string | Plain text email body |
|
||||
| `body_html` | string | HTML email body |
|
||||
| `labels` | string | Email labels \(comma-separated\) |
|
||||
| `has_attachments` | boolean | Whether email has attachments |
|
||||
| `raw_email` | json | Complete raw email data from Gmail API \(if enabled\) |
|
||||
| `timestamp` | string | Event timestamp |
|
||||
|
||||
### `gmail_archive_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Gmail message ID |
|
||||
| `threadId` | string | Gmail thread ID |
|
||||
| `labelIds` | array | Email label IDs |
|
||||
| `from` | string | Sender |
|
||||
| `to` | string | To |
|
||||
| `subject` | string | Subject |
|
||||
| `date` | string | Date |
|
||||
| `body` | string | Email body text \(best-effort\) |
|
||||
| `results` | json | Search/read summary results |
|
||||
| `attachments` | json | Downloaded attachments \(if enabled\) |
|
||||
| `email_id` | string | Gmail message ID |
|
||||
| `thread_id` | string | Gmail thread ID |
|
||||
| `cc` | string | CC recipients \(comma-separated\) |
|
||||
| `body_text` | string | Plain text email body |
|
||||
| `body_html` | string | HTML email body |
|
||||
| `labels` | string | Email labels \(comma-separated\) |
|
||||
| `has_attachments` | boolean | Whether email has attachments |
|
||||
| `raw_email` | json | Complete raw email data from Gmail API \(if enabled\) |
|
||||
| `timestamp` | string | Event timestamp |
|
||||
|
||||
### `gmail_unarchive_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Gmail message ID |
|
||||
| `threadId` | string | Gmail thread ID |
|
||||
| `labelIds` | array | Email label IDs |
|
||||
| `from` | string | Sender |
|
||||
| `to` | string | To |
|
||||
| `subject` | string | Subject |
|
||||
| `date` | string | Date |
|
||||
| `body` | string | Email body text \(best-effort\) |
|
||||
| `results` | json | Search/read summary results |
|
||||
| `attachments` | json | Downloaded attachments \(if enabled\) |
|
||||
| `email_id` | string | Gmail message ID |
|
||||
| `thread_id` | string | Gmail thread ID |
|
||||
| `cc` | string | CC recipients \(comma-separated\) |
|
||||
| `body_text` | string | Plain text email body |
|
||||
| `body_html` | string | HTML email body |
|
||||
| `labels` | string | Email labels \(comma-separated\) |
|
||||
| `has_attachments` | boolean | Whether email has attachments |
|
||||
| `raw_email` | json | Complete raw email data from Gmail API \(if enabled\) |
|
||||
| `timestamp` | string | Event timestamp |
|
||||
|
||||
### `gmail_delete_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Gmail message ID |
|
||||
| `threadId` | string | Gmail thread ID |
|
||||
| `labelIds` | array | Email label IDs |
|
||||
| `from` | string | Sender |
|
||||
| `to` | string | To |
|
||||
| `subject` | string | Subject |
|
||||
| `date` | string | Date |
|
||||
| `body` | string | Email body text \(best-effort\) |
|
||||
| `results` | json | Search/read summary results |
|
||||
| `attachments` | json | Downloaded attachments \(if enabled\) |
|
||||
| `email_id` | string | Gmail message ID |
|
||||
| `thread_id` | string | Gmail thread ID |
|
||||
| `cc` | string | CC recipients \(comma-separated\) |
|
||||
| `body_text` | string | Plain text email body |
|
||||
| `body_html` | string | HTML email body |
|
||||
| `labels` | string | Email labels \(comma-separated\) |
|
||||
| `has_attachments` | boolean | Whether email has attachments |
|
||||
| `raw_email` | json | Complete raw email data from Gmail API \(if enabled\) |
|
||||
| `timestamp` | string | Event timestamp |
|
||||
|
||||
### `gmail_add_label_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Gmail message ID |
|
||||
| `threadId` | string | Gmail thread ID |
|
||||
| `labelIds` | array | Email label IDs |
|
||||
| `from` | string | Sender |
|
||||
| `to` | string | To |
|
||||
| `subject` | string | Subject |
|
||||
| `date` | string | Date |
|
||||
| `body` | string | Email body text \(best-effort\) |
|
||||
| `results` | json | Search/read summary results |
|
||||
| `attachments` | json | Downloaded attachments \(if enabled\) |
|
||||
| `email_id` | string | Gmail message ID |
|
||||
| `thread_id` | string | Gmail thread ID |
|
||||
| `cc` | string | CC recipients \(comma-separated\) |
|
||||
| `body_text` | string | Plain text email body |
|
||||
| `body_html` | string | HTML email body |
|
||||
| `labels` | string | Email labels \(comma-separated\) |
|
||||
| `has_attachments` | boolean | Whether email has attachments |
|
||||
| `raw_email` | json | Complete raw email data from Gmail API \(if enabled\) |
|
||||
| `timestamp` | string | Event timestamp |
|
||||
|
||||
### `gmail_remove_label_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Gmail message ID |
|
||||
| `threadId` | string | Gmail thread ID |
|
||||
| `labelIds` | array | Email label IDs |
|
||||
| `from` | string | Sender |
|
||||
| `to` | string | To |
|
||||
| `subject` | string | Subject |
|
||||
| `date` | string | Date |
|
||||
| `body` | string | Email body text \(best-effort\) |
|
||||
| `results` | json | Search/read summary results |
|
||||
| `attachments` | json | Downloaded attachments \(if enabled\) |
|
||||
| `email_id` | string | Gmail message ID |
|
||||
| `thread_id` | string | Gmail thread ID |
|
||||
| `cc` | string | CC recipients \(comma-separated\) |
|
||||
| `body_text` | string | Plain text email body |
|
||||
| `body_html` | string | HTML email body |
|
||||
| `labels` | string | Email labels \(comma-separated\) |
|
||||
| `has_attachments` | boolean | Whether email has attachments |
|
||||
| `raw_email` | json | Complete raw email data from Gmail API \(if enabled\) |
|
||||
| `timestamp` | string | Event timestamp |
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `misc`
|
||||
- Type: `gmail_v2`
|
||||
@@ -1,146 +0,0 @@
|
||||
---
|
||||
title: Google Calendar
|
||||
description: Manage Google Calendar events
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="google_calendar"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Google Calendar](https://calendar.google.com) is Google's powerful calendar and scheduling service that provides a comprehensive platform for managing events, meetings, and appointments. With seamless integration across Google's ecosystem and widespread adoption, Google Calendar offers robust features for both personal and professional scheduling needs.
|
||||
|
||||
With Google Calendar, you can:
|
||||
|
||||
- **Create and manage events**: Schedule meetings, appointments, and reminders with detailed information
|
||||
- **Send calendar invites**: Automatically notify and coordinate with attendees through email invitations
|
||||
- **Natural language event creation**: Quickly add events using conversational language like "Meeting with John tomorrow at 3pm"
|
||||
- **View and search events**: Easily find and access your scheduled events across multiple calendars
|
||||
- **Manage multiple calendars**: Organize different types of events across various calendars
|
||||
|
||||
In Sim, the Google Calendar integration enables your agents to programmatically create, read, and manage calendar events. This allows for powerful automation scenarios such as scheduling meetings, sending calendar invites, checking availability, and managing event details. Your agents can create events with natural language input, send automated calendar invitations to attendees, retrieve event information, and list upcoming events. This integration bridges the gap between your AI workflows and calendar management, enabling seamless scheduling automation and coordination with one of the world's most widely used calendar platforms.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
|
||||
## Usage Instructions
|
||||
|
||||
Integrate Google Calendar into the workflow. Can create, read, update, and list calendar events.
|
||||
|
||||
|
||||
|
||||
## Tools
|
||||
|
||||
### `google_calendar_create`
|
||||
|
||||
Create a new event in Google Calendar
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `calendarId` | string | No | Calendar ID \(defaults to primary\) |
|
||||
| `summary` | string | Yes | Event title/summary |
|
||||
| `description` | string | No | Event description |
|
||||
| `location` | string | No | Event location |
|
||||
| `startDateTime` | string | Yes | Start date and time. MUST include timezone offset \(e.g., 2025-06-03T10:00:00-08:00\) OR provide timeZone parameter |
|
||||
| `endDateTime` | string | Yes | End date and time. MUST include timezone offset \(e.g., 2025-06-03T11:00:00-08:00\) OR provide timeZone parameter |
|
||||
| `timeZone` | string | No | Time zone \(e.g., America/Los_Angeles\). Required if datetime does not include offset. Defaults to America/Los_Angeles if not provided. |
|
||||
| `attendees` | array | No | Array of attendee email addresses |
|
||||
| `sendUpdates` | string | No | How to send updates to attendees: all, externalOnly, or none |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Event creation confirmation message |
|
||||
| `metadata` | json | Created event metadata including ID, status, and details |
|
||||
|
||||
### `google_calendar_list`
|
||||
|
||||
List events from Google Calendar
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `calendarId` | string | No | Calendar ID \(defaults to primary\) |
|
||||
| `timeMin` | string | No | Lower bound for events \(RFC3339 timestamp, e.g., 2025-06-03T00:00:00Z\) |
|
||||
| `timeMax` | string | No | Upper bound for events \(RFC3339 timestamp, e.g., 2025-06-04T00:00:00Z\) |
|
||||
| `orderBy` | string | No | Order of events returned \(startTime or updated\) |
|
||||
| `showDeleted` | boolean | No | Include deleted events |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Summary of found events count |
|
||||
| `metadata` | json | List of events with pagination tokens and event details |
|
||||
|
||||
### `google_calendar_get`
|
||||
|
||||
Get a specific event from Google Calendar
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `calendarId` | string | No | Calendar ID \(defaults to primary\) |
|
||||
| `eventId` | string | Yes | Event ID to retrieve |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Event retrieval confirmation message |
|
||||
| `metadata` | json | Event details including ID, status, times, and attendees |
|
||||
|
||||
### `google_calendar_quick_add`
|
||||
|
||||
Create events from natural language text
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `calendarId` | string | No | Calendar ID \(defaults to primary\) |
|
||||
| `text` | string | Yes | Natural language text describing the event \(e.g., "Meeting with John tomorrow at 3pm"\) |
|
||||
| `attendees` | array | No | Array of attendee email addresses \(comma-separated string also accepted\) |
|
||||
| `sendUpdates` | string | No | How to send updates to attendees: all, externalOnly, or none |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Event creation confirmation message from natural language |
|
||||
| `metadata` | json | Created event metadata including parsed details |
|
||||
|
||||
### `google_calendar_invite`
|
||||
|
||||
Invite attendees to an existing Google Calendar event
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `calendarId` | string | No | Calendar ID \(defaults to primary\) |
|
||||
| `eventId` | string | Yes | Event ID to invite attendees to |
|
||||
| `attendees` | array | Yes | Array of attendee email addresses to invite |
|
||||
| `sendUpdates` | string | No | How to send updates to attendees: all, externalOnly, or none |
|
||||
| `replaceExisting` | boolean | No | Whether to replace existing attendees or add to them \(defaults to false\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Attendee invitation confirmation message with email delivery status |
|
||||
| `metadata` | json | Updated event metadata including attendee list and details |
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `tools`
|
||||
- Type: `google_calendar`
|
||||
157
apps/docs/content/docs/en/tools/google_calendar_v2.mdx
Normal file
157
apps/docs/content/docs/en/tools/google_calendar_v2.mdx
Normal file
@@ -0,0 +1,157 @@
|
||||
---
|
||||
title: Google Calendar
|
||||
description: Event ID
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="google_calendar_v2"
|
||||
color="#F5F5F5"
|
||||
/>
|
||||
|
||||
|
||||
|
||||
## Tools
|
||||
|
||||
### `google_calendar_create_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Event ID |
|
||||
| `htmlLink` | string | Event link |
|
||||
| `status` | string | Event status |
|
||||
| `summary` | string | Event title |
|
||||
| `description` | string | Event description |
|
||||
| `location` | string | Event location |
|
||||
| `start` | json | Event start |
|
||||
| `end` | json | Event end |
|
||||
| `attendees` | json | Event attendees |
|
||||
| `creator` | json | Event creator |
|
||||
| `organizer` | json | Event organizer |
|
||||
| `events` | json | List of events \(list operation\) |
|
||||
| `nextPageToken` | string | Next page token |
|
||||
| `nextSyncToken` | string | Next sync token |
|
||||
| `timeZone` | string | Calendar time zone |
|
||||
|
||||
### `google_calendar_list_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Event ID |
|
||||
| `htmlLink` | string | Event link |
|
||||
| `status` | string | Event status |
|
||||
| `summary` | string | Event title |
|
||||
| `description` | string | Event description |
|
||||
| `location` | string | Event location |
|
||||
| `start` | json | Event start |
|
||||
| `end` | json | Event end |
|
||||
| `attendees` | json | Event attendees |
|
||||
| `creator` | json | Event creator |
|
||||
| `organizer` | json | Event organizer |
|
||||
| `events` | json | List of events \(list operation\) |
|
||||
| `nextPageToken` | string | Next page token |
|
||||
| `nextSyncToken` | string | Next sync token |
|
||||
| `timeZone` | string | Calendar time zone |
|
||||
|
||||
### `google_calendar_get_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Event ID |
|
||||
| `htmlLink` | string | Event link |
|
||||
| `status` | string | Event status |
|
||||
| `summary` | string | Event title |
|
||||
| `description` | string | Event description |
|
||||
| `location` | string | Event location |
|
||||
| `start` | json | Event start |
|
||||
| `end` | json | Event end |
|
||||
| `attendees` | json | Event attendees |
|
||||
| `creator` | json | Event creator |
|
||||
| `organizer` | json | Event organizer |
|
||||
| `events` | json | List of events \(list operation\) |
|
||||
| `nextPageToken` | string | Next page token |
|
||||
| `nextSyncToken` | string | Next sync token |
|
||||
| `timeZone` | string | Calendar time zone |
|
||||
|
||||
### `google_calendar_quick_add_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Event ID |
|
||||
| `htmlLink` | string | Event link |
|
||||
| `status` | string | Event status |
|
||||
| `summary` | string | Event title |
|
||||
| `description` | string | Event description |
|
||||
| `location` | string | Event location |
|
||||
| `start` | json | Event start |
|
||||
| `end` | json | Event end |
|
||||
| `attendees` | json | Event attendees |
|
||||
| `creator` | json | Event creator |
|
||||
| `organizer` | json | Event organizer |
|
||||
| `events` | json | List of events \(list operation\) |
|
||||
| `nextPageToken` | string | Next page token |
|
||||
| `nextSyncToken` | string | Next sync token |
|
||||
| `timeZone` | string | Calendar time zone |
|
||||
|
||||
### `google_calendar_invite_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Event ID |
|
||||
| `htmlLink` | string | Event link |
|
||||
| `status` | string | Event status |
|
||||
| `summary` | string | Event title |
|
||||
| `description` | string | Event description |
|
||||
| `location` | string | Event location |
|
||||
| `start` | json | Event start |
|
||||
| `end` | json | Event end |
|
||||
| `attendees` | json | Event attendees |
|
||||
| `creator` | json | Event creator |
|
||||
| `organizer` | json | Event organizer |
|
||||
| `events` | json | List of events \(list operation\) |
|
||||
| `nextPageToken` | string | Next page token |
|
||||
| `nextSyncToken` | string | Next sync token |
|
||||
| `timeZone` | string | Calendar time zone |
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `misc`
|
||||
- Type: `google_calendar_v2`
|
||||
@@ -96,13 +96,13 @@ Download a file from Google Drive with complete metadata (exports Google Workspa
|
||||
| `fileId` | string | Yes | The ID of the file to download |
|
||||
| `mimeType` | string | No | The MIME type to export Google Workspace files to \(optional\) |
|
||||
| `fileName` | string | No | Optional filename override |
|
||||
| `includeRevisions` | boolean | No | Whether to include revision history in the metadata \(default: true\) |
|
||||
| `includeRevisions` | boolean | No | Whether to include revision history in the metadata \(default: true, returns first 100 revisions\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | object | Downloaded file stored in execution files |
|
||||
| `file` | object | Downloaded file data |
|
||||
|
||||
### `google_drive_list`
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ Retrieve all users from HubSpot account
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | Array of HubSpot user objects |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `totalItems` | number | Total number of users returned |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `hubspot_list_contacts`
|
||||
@@ -73,7 +73,7 @@ Retrieve all contacts from HubSpot account with pagination support
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Array of HubSpot contact objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `metadata` | object | Metadata with totalReturned and hasMore |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `hubspot_get_contact`
|
||||
@@ -94,7 +94,7 @@ Retrieve a single contact by ID or email from HubSpot
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | HubSpot contact object with properties |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `contactId` | string | The retrieved contact ID |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `hubspot_create_contact`
|
||||
@@ -113,7 +113,7 @@ Create a new contact in HubSpot. Requires at least one of: email, firstname, or
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | Created HubSpot contact object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `contactId` | string | The created contact ID |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `hubspot_update_contact`
|
||||
@@ -133,7 +133,7 @@ Update an existing contact in HubSpot by ID or email
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | Updated HubSpot contact object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `contactId` | string | The updated contact ID |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `hubspot_search_contacts`
|
||||
@@ -158,7 +158,7 @@ Search for contacts in HubSpot using filters, sorting, and queries
|
||||
| `contacts` | array | Array of matching HubSpot contact objects |
|
||||
| `total` | number | Total number of matching contacts |
|
||||
| `paging` | object | Pagination information |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `metadata` | object | Metadata with totalReturned and hasMore |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `hubspot_list_companies`
|
||||
@@ -180,7 +180,7 @@ Retrieve all companies from HubSpot account with pagination support
|
||||
| --------- | ---- | ----------- |
|
||||
| `companies` | array | Array of HubSpot company objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `metadata` | object | Metadata with totalReturned and hasMore |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `hubspot_get_company`
|
||||
@@ -201,7 +201,7 @@ Retrieve a single company by ID or domain from HubSpot
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | HubSpot company object with properties |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `companyId` | string | The retrieved company ID |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `hubspot_create_company`
|
||||
@@ -220,7 +220,7 @@ Create a new company in HubSpot
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Created HubSpot company object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `companyId` | string | The created company ID |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `hubspot_update_company`
|
||||
@@ -240,7 +240,7 @@ Update an existing company in HubSpot by ID or domain
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Updated HubSpot company object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `companyId` | string | The updated company ID |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `hubspot_search_companies`
|
||||
@@ -265,7 +265,7 @@ Search for companies in HubSpot using filters, sorting, and queries
|
||||
| `companies` | array | Array of matching HubSpot company objects |
|
||||
| `total` | number | Total number of matching companies |
|
||||
| `paging` | object | Pagination information |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `metadata` | object | Metadata with totalReturned and hasMore |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `hubspot_list_deals`
|
||||
@@ -287,7 +287,7 @@ Retrieve all deals from HubSpot account with pagination support
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | Array of HubSpot deal objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `metadata` | object | Metadata with totalReturned and hasMore |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
|
||||
|
||||
@@ -1,365 +0,0 @@
|
||||
---
|
||||
title: Intercom
|
||||
description: Manage contacts, companies, conversations, tickets, and messages in Intercom
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="intercom"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Intercom](https://www.intercom.com/) is a leading customer communications platform that enables you to manage and automate your interactions with contacts, companies, conversations, tickets, and messages—all in one place. The Intercom integration in Sim lets your agents programmatically manage customer relationships, support requests, and conversations directly from your automated workflows.
|
||||
|
||||
With the Intercom tools, you can:
|
||||
|
||||
- **Contacts Management:** Create, get, update, list, search, and delete contacts—automate your CRM processes and keep your customer records up-to-date.
|
||||
- **Company Management:** Create new companies, retrieve company details, and list all companies related to your users or business clients.
|
||||
- **Conversation Handling:** Get, list, reply to, and search through conversations—allowing agents to track ongoing support threads, provide answers, and automate follow-up actions.
|
||||
- **Ticket Management:** Create and retrieve tickets programmatically, helping you automate customer service, support issue tracking, and workflow escalations.
|
||||
- **Send Messages:** Trigger messages to users or leads for onboarding, support, or marketing, all from within your workflow automation.
|
||||
|
||||
By integrating Intercom tools into Sim, you empower your workflows to communicate directly with your users, automate customer support processes, manage leads, and streamline communications at scale. Whether you need to create new contacts, keep customer data synchronized, manage support tickets, or send personalized engagement messages, the Intercom tools provide a comprehensive way to manage customer interactions as part of your intelligent automations.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
|
||||
## Usage Instructions
|
||||
|
||||
Integrate Intercom into the workflow. Can create, get, update, list, search, and delete contacts; create, get, and list companies; get, list, reply, and search conversations; create and get tickets; and create messages.
|
||||
|
||||
|
||||
|
||||
## Tools
|
||||
|
||||
### `intercom_create_contact`
|
||||
|
||||
Create a new contact in Intercom with email, external_id, or role
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `role` | string | No | The role of the contact. Accepts 'user' or 'lead'. Defaults to 'lead' if not specified. |
|
||||
| `email` | string | No | The contact's email address |
|
||||
| `external_id` | string | No | A unique identifier for the contact provided by the client |
|
||||
| `phone` | string | No | The contact's phone number |
|
||||
| `name` | string | No | The contact's name |
|
||||
| `avatar` | string | No | An avatar image URL for the contact |
|
||||
| `signed_up_at` | number | No | The time the user signed up as a Unix timestamp |
|
||||
| `last_seen_at` | number | No | The time the user was last seen as a Unix timestamp |
|
||||
| `owner_id` | string | No | The id of an admin that has been assigned account ownership of the contact |
|
||||
| `unsubscribed_from_emails` | boolean | No | Whether the contact is unsubscribed from emails |
|
||||
| `custom_attributes` | string | No | Custom attributes as JSON object \(e.g., \{"attribute_name": "value"\}\) |
|
||||
| `company_id` | string | No | Company ID to associate the contact with during creation |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | Created contact object |
|
||||
|
||||
### `intercom_get_contact`
|
||||
|
||||
Get a single contact by ID from Intercom
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `contactId` | string | Yes | Contact ID to retrieve |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | Contact object |
|
||||
|
||||
### `intercom_update_contact`
|
||||
|
||||
Update an existing contact in Intercom
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `contactId` | string | Yes | Contact ID to update |
|
||||
| `role` | string | No | The role of the contact. Accepts 'user' or 'lead'. |
|
||||
| `external_id` | string | No | A unique identifier for the contact provided by the client |
|
||||
| `email` | string | No | The contact's email address |
|
||||
| `phone` | string | No | The contact's phone number |
|
||||
| `name` | string | No | The contact's name |
|
||||
| `avatar` | string | No | An avatar image URL for the contact |
|
||||
| `signed_up_at` | number | No | The time the user signed up as a Unix timestamp |
|
||||
| `last_seen_at` | number | No | The time the user was last seen as a Unix timestamp |
|
||||
| `owner_id` | string | No | The id of an admin that has been assigned account ownership of the contact |
|
||||
| `unsubscribed_from_emails` | boolean | No | Whether the contact is unsubscribed from emails |
|
||||
| `custom_attributes` | string | No | Custom attributes as JSON object \(e.g., \{"attribute_name": "value"\}\) |
|
||||
| `company_id` | string | No | Company ID to associate the contact with |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | Updated contact object |
|
||||
|
||||
### `intercom_list_contacts`
|
||||
|
||||
List all contacts from Intercom with pagination support
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `per_page` | number | No | Number of results per page \(max: 150\) |
|
||||
| `starting_after` | string | No | Cursor for pagination - ID to start after |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Array of contact objects |
|
||||
|
||||
### `intercom_search_contacts`
|
||||
|
||||
Search for contacts in Intercom using a query
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Yes | Search query \(e.g., \{"field":"email","operator":"=","value":"user@example.com"\}\) |
|
||||
| `per_page` | number | No | Number of results per page \(max: 150\) |
|
||||
| `starting_after` | string | No | Cursor for pagination |
|
||||
| `sort_field` | string | No | Field to sort by \(e.g., "name", "created_at", "last_seen_at"\) |
|
||||
| `sort_order` | string | No | Sort order: "ascending" or "descending" |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Array of matching contact objects |
|
||||
|
||||
### `intercom_delete_contact`
|
||||
|
||||
Delete a contact from Intercom by ID
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `contactId` | string | Yes | Contact ID to delete |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | ID of deleted contact |
|
||||
| `deleted` | boolean | Whether the contact was deleted |
|
||||
| `metadata` | object | Operation metadata |
|
||||
|
||||
### `intercom_create_company`
|
||||
|
||||
Create or update a company in Intercom
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `company_id` | string | Yes | Your unique identifier for the company |
|
||||
| `name` | string | No | The name of the company |
|
||||
| `website` | string | No | The company website |
|
||||
| `plan` | string | No | The company plan name |
|
||||
| `size` | number | No | The number of employees in the company |
|
||||
| `industry` | string | No | The industry the company operates in |
|
||||
| `monthly_spend` | number | No | How much revenue the company generates for your business. Note: This field truncates floats to whole integers \(e.g., 155.98 becomes 155\) |
|
||||
| `custom_attributes` | string | No | Custom attributes as JSON object |
|
||||
| `remote_created_at` | number | No | The time the company was created by you as a Unix timestamp |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Created or updated company object |
|
||||
|
||||
### `intercom_get_company`
|
||||
|
||||
Retrieve a single company by ID from Intercom
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `companyId` | string | Yes | Company ID to retrieve |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Company object |
|
||||
|
||||
### `intercom_list_companies`
|
||||
|
||||
List all companies from Intercom with pagination support. Note: This endpoint has a limit of 10,000 companies that can be returned using pagination. For datasets larger than 10,000 companies, use the Scroll API instead.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `per_page` | number | No | Number of results per page |
|
||||
| `page` | number | No | Page number |
|
||||
| `starting_after` | string | No | Cursor for pagination \(preferred over page-based pagination\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `companies` | array | Array of company objects |
|
||||
|
||||
### `intercom_get_conversation`
|
||||
|
||||
Retrieve a single conversation by ID from Intercom
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `conversationId` | string | Yes | Conversation ID to retrieve |
|
||||
| `display_as` | string | No | Set to "plaintext" to retrieve messages in plain text |
|
||||
| `include_translations` | boolean | No | When true, conversation parts will be translated to the detected language of the conversation |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `conversation` | object | Conversation object |
|
||||
|
||||
### `intercom_list_conversations`
|
||||
|
||||
List all conversations from Intercom with pagination support
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `per_page` | number | No | Number of results per page \(max: 150\) |
|
||||
| `starting_after` | string | No | Cursor for pagination |
|
||||
| `sort` | string | No | Field to sort by \(e.g., "waiting_since", "updated_at", "created_at"\) |
|
||||
| `order` | string | No | Sort order: "asc" \(ascending\) or "desc" \(descending\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `conversations` | array | Array of conversation objects |
|
||||
|
||||
### `intercom_reply_conversation`
|
||||
|
||||
Reply to a conversation as an admin in Intercom
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `conversationId` | string | Yes | Conversation ID to reply to |
|
||||
| `message_type` | string | Yes | Message type: "comment" or "note" |
|
||||
| `body` | string | Yes | The text body of the reply |
|
||||
| `admin_id` | string | No | The ID of the admin authoring the reply. If not provided, a default admin \(Operator/Fin\) will be used. |
|
||||
| `attachment_urls` | string | No | Comma-separated list of image URLs \(max 10\) |
|
||||
| `created_at` | number | No | Unix timestamp for when the reply was created. If not provided, current time is used. |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `conversation` | object | Updated conversation object |
|
||||
|
||||
### `intercom_search_conversations`
|
||||
|
||||
Search for conversations in Intercom using a query
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Yes | Search query as JSON object |
|
||||
| `per_page` | number | No | Number of results per page \(max: 150\) |
|
||||
| `starting_after` | string | No | Cursor for pagination |
|
||||
| `sort_field` | string | No | Field to sort by \(e.g., "created_at", "updated_at"\) |
|
||||
| `sort_order` | string | No | Sort order: "ascending" or "descending" |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `conversations` | array | Array of matching conversation objects |
|
||||
|
||||
### `intercom_create_ticket`
|
||||
|
||||
Create a new ticket in Intercom
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `ticket_type_id` | string | Yes | The ID of the ticket type |
|
||||
| `contacts` | string | Yes | JSON array of contact identifiers \(e.g., \[\{"id": "contact_id"\}\]\) |
|
||||
| `ticket_attributes` | string | Yes | JSON object with ticket attributes including _default_title_ and _default_description_ |
|
||||
| `company_id` | string | No | Company ID to associate the ticket with |
|
||||
| `created_at` | number | No | Unix timestamp for when the ticket was created. If not provided, current time is used. |
|
||||
| `conversation_to_link_id` | string | No | ID of an existing conversation to link to this ticket |
|
||||
| `disable_notifications` | boolean | No | When true, suppresses notifications when the ticket is created |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ticket` | object | Created ticket object |
|
||||
|
||||
### `intercom_get_ticket`
|
||||
|
||||
Retrieve a single ticket by ID from Intercom
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `ticketId` | string | Yes | Ticket ID to retrieve |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ticket` | object | Ticket object |
|
||||
|
||||
### `intercom_create_message`
|
||||
|
||||
Create and send a new admin-initiated message in Intercom
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `message_type` | string | Yes | Message type: "inapp" for in-app messages or "email" for email messages |
|
||||
| `template` | string | Yes | Message template style: "plain" for plain text or "personal" for personalized style |
|
||||
| `subject` | string | No | The subject of the message \(for email type\) |
|
||||
| `body` | string | Yes | The body of the message |
|
||||
| `from_type` | string | Yes | Sender type: "admin" |
|
||||
| `from_id` | string | Yes | The ID of the admin sending the message |
|
||||
| `to_type` | string | Yes | Recipient type: "contact" |
|
||||
| `to_id` | string | Yes | The ID of the contact receiving the message |
|
||||
| `created_at` | number | No | Unix timestamp for when the message was created. If not provided, current time is used. |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | object | Created message object |
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `tools`
|
||||
- Type: `intercom`
|
||||
486
apps/docs/content/docs/en/tools/intercom_v2.mdx
Normal file
486
apps/docs/content/docs/en/tools/intercom_v2.mdx
Normal file
@@ -0,0 +1,486 @@
|
||||
---
|
||||
title: Intercom
|
||||
description: Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="intercom_v2"
|
||||
color="#F5F5F5"
|
||||
/>
|
||||
|
||||
|
||||
|
||||
## Tools
|
||||
|
||||
### `intercom_create_contact_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at |
|
||||
| `contactId` | string | ID of the contact \(for create/update operations\) |
|
||||
| `contacts` | array | Array of contacts \(for list/search operations\) |
|
||||
| `company` | json | Company object with id, company_id, name, website |
|
||||
| `companyId` | string | ID of the company \(for create operations\) |
|
||||
| `companies` | array | Array of companies \(for list operations\) |
|
||||
| `conversation` | json | Conversation object with id, title, state, open |
|
||||
| `conversationId` | string | ID of the conversation \(for reply operations\) |
|
||||
| `conversations` | array | Array of conversations \(for list/search operations\) |
|
||||
| `ticket` | json | Ticket object with id, ticket_id, ticket_state |
|
||||
| `ticketId` | string | ID of the ticket \(for create operations\) |
|
||||
| `message` | json | Message object with id, type |
|
||||
| `messageId` | string | ID of the message \(for create operations\) |
|
||||
| `total_count` | number | Total count \(for list/search operations\) |
|
||||
| `pages` | json | Pagination info with page, per_page, total_pages |
|
||||
| `id` | string | ID of the deleted item \(for delete operations\) |
|
||||
| `deleted` | boolean | Whether the item was deleted \(for delete operations\) |
|
||||
|
||||
### `intercom_get_contact_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at |
|
||||
| `contactId` | string | ID of the contact \(for create/update operations\) |
|
||||
| `contacts` | array | Array of contacts \(for list/search operations\) |
|
||||
| `company` | json | Company object with id, company_id, name, website |
|
||||
| `companyId` | string | ID of the company \(for create operations\) |
|
||||
| `companies` | array | Array of companies \(for list operations\) |
|
||||
| `conversation` | json | Conversation object with id, title, state, open |
|
||||
| `conversationId` | string | ID of the conversation \(for reply operations\) |
|
||||
| `conversations` | array | Array of conversations \(for list/search operations\) |
|
||||
| `ticket` | json | Ticket object with id, ticket_id, ticket_state |
|
||||
| `ticketId` | string | ID of the ticket \(for create operations\) |
|
||||
| `message` | json | Message object with id, type |
|
||||
| `messageId` | string | ID of the message \(for create operations\) |
|
||||
| `total_count` | number | Total count \(for list/search operations\) |
|
||||
| `pages` | json | Pagination info with page, per_page, total_pages |
|
||||
| `id` | string | ID of the deleted item \(for delete operations\) |
|
||||
| `deleted` | boolean | Whether the item was deleted \(for delete operations\) |
|
||||
|
||||
### `intercom_update_contact_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at |
|
||||
| `contactId` | string | ID of the contact \(for create/update operations\) |
|
||||
| `contacts` | array | Array of contacts \(for list/search operations\) |
|
||||
| `company` | json | Company object with id, company_id, name, website |
|
||||
| `companyId` | string | ID of the company \(for create operations\) |
|
||||
| `companies` | array | Array of companies \(for list operations\) |
|
||||
| `conversation` | json | Conversation object with id, title, state, open |
|
||||
| `conversationId` | string | ID of the conversation \(for reply operations\) |
|
||||
| `conversations` | array | Array of conversations \(for list/search operations\) |
|
||||
| `ticket` | json | Ticket object with id, ticket_id, ticket_state |
|
||||
| `ticketId` | string | ID of the ticket \(for create operations\) |
|
||||
| `message` | json | Message object with id, type |
|
||||
| `messageId` | string | ID of the message \(for create operations\) |
|
||||
| `total_count` | number | Total count \(for list/search operations\) |
|
||||
| `pages` | json | Pagination info with page, per_page, total_pages |
|
||||
| `id` | string | ID of the deleted item \(for delete operations\) |
|
||||
| `deleted` | boolean | Whether the item was deleted \(for delete operations\) |
|
||||
|
||||
### `intercom_list_contacts_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at |
|
||||
| `contactId` | string | ID of the contact \(for create/update operations\) |
|
||||
| `contacts` | array | Array of contacts \(for list/search operations\) |
|
||||
| `company` | json | Company object with id, company_id, name, website |
|
||||
| `companyId` | string | ID of the company \(for create operations\) |
|
||||
| `companies` | array | Array of companies \(for list operations\) |
|
||||
| `conversation` | json | Conversation object with id, title, state, open |
|
||||
| `conversationId` | string | ID of the conversation \(for reply operations\) |
|
||||
| `conversations` | array | Array of conversations \(for list/search operations\) |
|
||||
| `ticket` | json | Ticket object with id, ticket_id, ticket_state |
|
||||
| `ticketId` | string | ID of the ticket \(for create operations\) |
|
||||
| `message` | json | Message object with id, type |
|
||||
| `messageId` | string | ID of the message \(for create operations\) |
|
||||
| `total_count` | number | Total count \(for list/search operations\) |
|
||||
| `pages` | json | Pagination info with page, per_page, total_pages |
|
||||
| `id` | string | ID of the deleted item \(for delete operations\) |
|
||||
| `deleted` | boolean | Whether the item was deleted \(for delete operations\) |
|
||||
|
||||
### `intercom_search_contacts_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at |
|
||||
| `contactId` | string | ID of the contact \(for create/update operations\) |
|
||||
| `contacts` | array | Array of contacts \(for list/search operations\) |
|
||||
| `company` | json | Company object with id, company_id, name, website |
|
||||
| `companyId` | string | ID of the company \(for create operations\) |
|
||||
| `companies` | array | Array of companies \(for list operations\) |
|
||||
| `conversation` | json | Conversation object with id, title, state, open |
|
||||
| `conversationId` | string | ID of the conversation \(for reply operations\) |
|
||||
| `conversations` | array | Array of conversations \(for list/search operations\) |
|
||||
| `ticket` | json | Ticket object with id, ticket_id, ticket_state |
|
||||
| `ticketId` | string | ID of the ticket \(for create operations\) |
|
||||
| `message` | json | Message object with id, type |
|
||||
| `messageId` | string | ID of the message \(for create operations\) |
|
||||
| `total_count` | number | Total count \(for list/search operations\) |
|
||||
| `pages` | json | Pagination info with page, per_page, total_pages |
|
||||
| `id` | string | ID of the deleted item \(for delete operations\) |
|
||||
| `deleted` | boolean | Whether the item was deleted \(for delete operations\) |
|
||||
|
||||
### `intercom_delete_contact_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at |
|
||||
| `contactId` | string | ID of the contact \(for create/update operations\) |
|
||||
| `contacts` | array | Array of contacts \(for list/search operations\) |
|
||||
| `company` | json | Company object with id, company_id, name, website |
|
||||
| `companyId` | string | ID of the company \(for create operations\) |
|
||||
| `companies` | array | Array of companies \(for list operations\) |
|
||||
| `conversation` | json | Conversation object with id, title, state, open |
|
||||
| `conversationId` | string | ID of the conversation \(for reply operations\) |
|
||||
| `conversations` | array | Array of conversations \(for list/search operations\) |
|
||||
| `ticket` | json | Ticket object with id, ticket_id, ticket_state |
|
||||
| `ticketId` | string | ID of the ticket \(for create operations\) |
|
||||
| `message` | json | Message object with id, type |
|
||||
| `messageId` | string | ID of the message \(for create operations\) |
|
||||
| `total_count` | number | Total count \(for list/search operations\) |
|
||||
| `pages` | json | Pagination info with page, per_page, total_pages |
|
||||
| `id` | string | ID of the deleted item \(for delete operations\) |
|
||||
| `deleted` | boolean | Whether the item was deleted \(for delete operations\) |
|
||||
|
||||
### `intercom_create_company_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at |
|
||||
| `contactId` | string | ID of the contact \(for create/update operations\) |
|
||||
| `contacts` | array | Array of contacts \(for list/search operations\) |
|
||||
| `company` | json | Company object with id, company_id, name, website |
|
||||
| `companyId` | string | ID of the company \(for create operations\) |
|
||||
| `companies` | array | Array of companies \(for list operations\) |
|
||||
| `conversation` | json | Conversation object with id, title, state, open |
|
||||
| `conversationId` | string | ID of the conversation \(for reply operations\) |
|
||||
| `conversations` | array | Array of conversations \(for list/search operations\) |
|
||||
| `ticket` | json | Ticket object with id, ticket_id, ticket_state |
|
||||
| `ticketId` | string | ID of the ticket \(for create operations\) |
|
||||
| `message` | json | Message object with id, type |
|
||||
| `messageId` | string | ID of the message \(for create operations\) |
|
||||
| `total_count` | number | Total count \(for list/search operations\) |
|
||||
| `pages` | json | Pagination info with page, per_page, total_pages |
|
||||
| `id` | string | ID of the deleted item \(for delete operations\) |
|
||||
| `deleted` | boolean | Whether the item was deleted \(for delete operations\) |
|
||||
|
||||
### `intercom_get_company_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at |
|
||||
| `contactId` | string | ID of the contact \(for create/update operations\) |
|
||||
| `contacts` | array | Array of contacts \(for list/search operations\) |
|
||||
| `company` | json | Company object with id, company_id, name, website |
|
||||
| `companyId` | string | ID of the company \(for create operations\) |
|
||||
| `companies` | array | Array of companies \(for list operations\) |
|
||||
| `conversation` | json | Conversation object with id, title, state, open |
|
||||
| `conversationId` | string | ID of the conversation \(for reply operations\) |
|
||||
| `conversations` | array | Array of conversations \(for list/search operations\) |
|
||||
| `ticket` | json | Ticket object with id, ticket_id, ticket_state |
|
||||
| `ticketId` | string | ID of the ticket \(for create operations\) |
|
||||
| `message` | json | Message object with id, type |
|
||||
| `messageId` | string | ID of the message \(for create operations\) |
|
||||
| `total_count` | number | Total count \(for list/search operations\) |
|
||||
| `pages` | json | Pagination info with page, per_page, total_pages |
|
||||
| `id` | string | ID of the deleted item \(for delete operations\) |
|
||||
| `deleted` | boolean | Whether the item was deleted \(for delete operations\) |
|
||||
|
||||
### `intercom_list_companies_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at |
|
||||
| `contactId` | string | ID of the contact \(for create/update operations\) |
|
||||
| `contacts` | array | Array of contacts \(for list/search operations\) |
|
||||
| `company` | json | Company object with id, company_id, name, website |
|
||||
| `companyId` | string | ID of the company \(for create operations\) |
|
||||
| `companies` | array | Array of companies \(for list operations\) |
|
||||
| `conversation` | json | Conversation object with id, title, state, open |
|
||||
| `conversationId` | string | ID of the conversation \(for reply operations\) |
|
||||
| `conversations` | array | Array of conversations \(for list/search operations\) |
|
||||
| `ticket` | json | Ticket object with id, ticket_id, ticket_state |
|
||||
| `ticketId` | string | ID of the ticket \(for create operations\) |
|
||||
| `message` | json | Message object with id, type |
|
||||
| `messageId` | string | ID of the message \(for create operations\) |
|
||||
| `total_count` | number | Total count \(for list/search operations\) |
|
||||
| `pages` | json | Pagination info with page, per_page, total_pages |
|
||||
| `id` | string | ID of the deleted item \(for delete operations\) |
|
||||
| `deleted` | boolean | Whether the item was deleted \(for delete operations\) |
|
||||
|
||||
### `intercom_get_conversation_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at |
|
||||
| `contactId` | string | ID of the contact \(for create/update operations\) |
|
||||
| `contacts` | array | Array of contacts \(for list/search operations\) |
|
||||
| `company` | json | Company object with id, company_id, name, website |
|
||||
| `companyId` | string | ID of the company \(for create operations\) |
|
||||
| `companies` | array | Array of companies \(for list operations\) |
|
||||
| `conversation` | json | Conversation object with id, title, state, open |
|
||||
| `conversationId` | string | ID of the conversation \(for reply operations\) |
|
||||
| `conversations` | array | Array of conversations \(for list/search operations\) |
|
||||
| `ticket` | json | Ticket object with id, ticket_id, ticket_state |
|
||||
| `ticketId` | string | ID of the ticket \(for create operations\) |
|
||||
| `message` | json | Message object with id, type |
|
||||
| `messageId` | string | ID of the message \(for create operations\) |
|
||||
| `total_count` | number | Total count \(for list/search operations\) |
|
||||
| `pages` | json | Pagination info with page, per_page, total_pages |
|
||||
| `id` | string | ID of the deleted item \(for delete operations\) |
|
||||
| `deleted` | boolean | Whether the item was deleted \(for delete operations\) |
|
||||
|
||||
### `intercom_list_conversations_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at |
|
||||
| `contactId` | string | ID of the contact \(for create/update operations\) |
|
||||
| `contacts` | array | Array of contacts \(for list/search operations\) |
|
||||
| `company` | json | Company object with id, company_id, name, website |
|
||||
| `companyId` | string | ID of the company \(for create operations\) |
|
||||
| `companies` | array | Array of companies \(for list operations\) |
|
||||
| `conversation` | json | Conversation object with id, title, state, open |
|
||||
| `conversationId` | string | ID of the conversation \(for reply operations\) |
|
||||
| `conversations` | array | Array of conversations \(for list/search operations\) |
|
||||
| `ticket` | json | Ticket object with id, ticket_id, ticket_state |
|
||||
| `ticketId` | string | ID of the ticket \(for create operations\) |
|
||||
| `message` | json | Message object with id, type |
|
||||
| `messageId` | string | ID of the message \(for create operations\) |
|
||||
| `total_count` | number | Total count \(for list/search operations\) |
|
||||
| `pages` | json | Pagination info with page, per_page, total_pages |
|
||||
| `id` | string | ID of the deleted item \(for delete operations\) |
|
||||
| `deleted` | boolean | Whether the item was deleted \(for delete operations\) |
|
||||
|
||||
### `intercom_reply_conversation_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at |
|
||||
| `contactId` | string | ID of the contact \(for create/update operations\) |
|
||||
| `contacts` | array | Array of contacts \(for list/search operations\) |
|
||||
| `company` | json | Company object with id, company_id, name, website |
|
||||
| `companyId` | string | ID of the company \(for create operations\) |
|
||||
| `companies` | array | Array of companies \(for list operations\) |
|
||||
| `conversation` | json | Conversation object with id, title, state, open |
|
||||
| `conversationId` | string | ID of the conversation \(for reply operations\) |
|
||||
| `conversations` | array | Array of conversations \(for list/search operations\) |
|
||||
| `ticket` | json | Ticket object with id, ticket_id, ticket_state |
|
||||
| `ticketId` | string | ID of the ticket \(for create operations\) |
|
||||
| `message` | json | Message object with id, type |
|
||||
| `messageId` | string | ID of the message \(for create operations\) |
|
||||
| `total_count` | number | Total count \(for list/search operations\) |
|
||||
| `pages` | json | Pagination info with page, per_page, total_pages |
|
||||
| `id` | string | ID of the deleted item \(for delete operations\) |
|
||||
| `deleted` | boolean | Whether the item was deleted \(for delete operations\) |
|
||||
|
||||
### `intercom_search_conversations_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at |
|
||||
| `contactId` | string | ID of the contact \(for create/update operations\) |
|
||||
| `contacts` | array | Array of contacts \(for list/search operations\) |
|
||||
| `company` | json | Company object with id, company_id, name, website |
|
||||
| `companyId` | string | ID of the company \(for create operations\) |
|
||||
| `companies` | array | Array of companies \(for list operations\) |
|
||||
| `conversation` | json | Conversation object with id, title, state, open |
|
||||
| `conversationId` | string | ID of the conversation \(for reply operations\) |
|
||||
| `conversations` | array | Array of conversations \(for list/search operations\) |
|
||||
| `ticket` | json | Ticket object with id, ticket_id, ticket_state |
|
||||
| `ticketId` | string | ID of the ticket \(for create operations\) |
|
||||
| `message` | json | Message object with id, type |
|
||||
| `messageId` | string | ID of the message \(for create operations\) |
|
||||
| `total_count` | number | Total count \(for list/search operations\) |
|
||||
| `pages` | json | Pagination info with page, per_page, total_pages |
|
||||
| `id` | string | ID of the deleted item \(for delete operations\) |
|
||||
| `deleted` | boolean | Whether the item was deleted \(for delete operations\) |
|
||||
|
||||
### `intercom_create_ticket_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at |
|
||||
| `contactId` | string | ID of the contact \(for create/update operations\) |
|
||||
| `contacts` | array | Array of contacts \(for list/search operations\) |
|
||||
| `company` | json | Company object with id, company_id, name, website |
|
||||
| `companyId` | string | ID of the company \(for create operations\) |
|
||||
| `companies` | array | Array of companies \(for list operations\) |
|
||||
| `conversation` | json | Conversation object with id, title, state, open |
|
||||
| `conversationId` | string | ID of the conversation \(for reply operations\) |
|
||||
| `conversations` | array | Array of conversations \(for list/search operations\) |
|
||||
| `ticket` | json | Ticket object with id, ticket_id, ticket_state |
|
||||
| `ticketId` | string | ID of the ticket \(for create operations\) |
|
||||
| `message` | json | Message object with id, type |
|
||||
| `messageId` | string | ID of the message \(for create operations\) |
|
||||
| `total_count` | number | Total count \(for list/search operations\) |
|
||||
| `pages` | json | Pagination info with page, per_page, total_pages |
|
||||
| `id` | string | ID of the deleted item \(for delete operations\) |
|
||||
| `deleted` | boolean | Whether the item was deleted \(for delete operations\) |
|
||||
|
||||
### `intercom_get_ticket_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at |
|
||||
| `contactId` | string | ID of the contact \(for create/update operations\) |
|
||||
| `contacts` | array | Array of contacts \(for list/search operations\) |
|
||||
| `company` | json | Company object with id, company_id, name, website |
|
||||
| `companyId` | string | ID of the company \(for create operations\) |
|
||||
| `companies` | array | Array of companies \(for list operations\) |
|
||||
| `conversation` | json | Conversation object with id, title, state, open |
|
||||
| `conversationId` | string | ID of the conversation \(for reply operations\) |
|
||||
| `conversations` | array | Array of conversations \(for list/search operations\) |
|
||||
| `ticket` | json | Ticket object with id, ticket_id, ticket_state |
|
||||
| `ticketId` | string | ID of the ticket \(for create operations\) |
|
||||
| `message` | json | Message object with id, type |
|
||||
| `messageId` | string | ID of the message \(for create operations\) |
|
||||
| `total_count` | number | Total count \(for list/search operations\) |
|
||||
| `pages` | json | Pagination info with page, per_page, total_pages |
|
||||
| `id` | string | ID of the deleted item \(for delete operations\) |
|
||||
| `deleted` | boolean | Whether the item was deleted \(for delete operations\) |
|
||||
|
||||
### `intercom_create_message_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at |
|
||||
| `contactId` | string | ID of the contact \(for create/update operations\) |
|
||||
| `contacts` | array | Array of contacts \(for list/search operations\) |
|
||||
| `company` | json | Company object with id, company_id, name, website |
|
||||
| `companyId` | string | ID of the company \(for create operations\) |
|
||||
| `companies` | array | Array of companies \(for list operations\) |
|
||||
| `conversation` | json | Conversation object with id, title, state, open |
|
||||
| `conversationId` | string | ID of the conversation \(for reply operations\) |
|
||||
| `conversations` | array | Array of conversations \(for list/search operations\) |
|
||||
| `ticket` | json | Ticket object with id, ticket_id, ticket_state |
|
||||
| `ticketId` | string | ID of the ticket \(for create operations\) |
|
||||
| `message` | json | Message object with id, type |
|
||||
| `messageId` | string | ID of the message \(for create operations\) |
|
||||
| `total_count` | number | Total count \(for list/search operations\) |
|
||||
| `pages` | json | Pagination info with page, per_page, total_pages |
|
||||
| `id` | string | ID of the deleted item \(for delete operations\) |
|
||||
| `deleted` | boolean | Whether the item was deleted \(for delete operations\) |
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `misc`
|
||||
- Type: `intercom_v2`
|
||||
@@ -70,8 +70,8 @@ Retrieve a list of audiences (lists) from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Audiences data and metadata |
|
||||
| `success` | boolean | Whether the audiences were successfully retrieved |
|
||||
| `output` | object | Audiences data |
|
||||
|
||||
### `mailchimp_get_audience`
|
||||
|
||||
@@ -88,8 +88,8 @@ Retrieve details of a specific audience (list) from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Audience data and metadata |
|
||||
| `success` | boolean | Whether the audience was successfully retrieved |
|
||||
| `output` | object | Audience data |
|
||||
|
||||
### `mailchimp_create_audience`
|
||||
|
||||
@@ -150,8 +150,7 @@ Delete an audience (list) from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deletion confirmation |
|
||||
| `success` | boolean | Whether the audience was successfully deleted |
|
||||
|
||||
### `mailchimp_get_members`
|
||||
|
||||
@@ -171,8 +170,8 @@ Retrieve a list of members from a Mailchimp audience
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Members data and metadata |
|
||||
| `success` | boolean | Whether the members were successfully retrieved |
|
||||
| `output` | object | Members data |
|
||||
|
||||
### `mailchimp_get_member`
|
||||
|
||||
@@ -190,8 +189,8 @@ Retrieve details of a specific member from a Mailchimp audience
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Member data and metadata |
|
||||
| `success` | boolean | Whether the member was successfully retrieved |
|
||||
| `output` | object | Member data |
|
||||
|
||||
### `mailchimp_add_member`
|
||||
|
||||
@@ -277,8 +276,7 @@ Delete a member from a Mailchimp audience
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deletion confirmation |
|
||||
| `success` | boolean | Whether the member was successfully deleted |
|
||||
|
||||
### `mailchimp_archive_member`
|
||||
|
||||
@@ -338,8 +336,8 @@ Retrieve a list of campaigns from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Campaigns data and metadata |
|
||||
| `success` | boolean | Whether the campaigns were successfully retrieved |
|
||||
| `output` | object | Campaigns data |
|
||||
|
||||
### `mailchimp_get_campaign`
|
||||
|
||||
@@ -356,8 +354,8 @@ Retrieve details of a specific campaign from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Campaign data and metadata |
|
||||
| `success` | boolean | Whether the campaign was successfully retrieved |
|
||||
| `output` | object | Campaign data |
|
||||
|
||||
### `mailchimp_create_campaign`
|
||||
|
||||
@@ -414,8 +412,7 @@ Delete a campaign from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deletion confirmation |
|
||||
| `success` | boolean | Whether the campaign was successfully deleted |
|
||||
|
||||
### `mailchimp_send_campaign`
|
||||
|
||||
@@ -451,8 +448,7 @@ Schedule a Mailchimp campaign to be sent at a specific time
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Schedule confirmation |
|
||||
| `success` | boolean | Whether the campaign was successfully scheduled |
|
||||
|
||||
### `mailchimp_unschedule_campaign`
|
||||
|
||||
@@ -505,7 +501,7 @@ Retrieve the HTML and plain-text content for a Mailchimp campaign
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `success` | boolean | Whether the campaign content was successfully retrieved |
|
||||
| `output` | object | Campaign content data |
|
||||
|
||||
### `mailchimp_set_campaign_content`
|
||||
@@ -545,8 +541,8 @@ Retrieve a list of automations from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Automations data and metadata |
|
||||
| `success` | boolean | Whether the automations were successfully retrieved |
|
||||
| `output` | object | Automations data |
|
||||
|
||||
### `mailchimp_get_automation`
|
||||
|
||||
@@ -563,8 +559,8 @@ Retrieve details of a specific automation from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Automation data and metadata |
|
||||
| `success` | boolean | Whether the automation was successfully retrieved |
|
||||
| `output` | object | Automation data |
|
||||
|
||||
### `mailchimp_start_automation`
|
||||
|
||||
@@ -638,8 +634,8 @@ Retrieve a list of templates from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Templates data and metadata |
|
||||
| `success` | boolean | Whether the templates were successfully retrieved |
|
||||
| `output` | object | Templates data |
|
||||
|
||||
### `mailchimp_get_template`
|
||||
|
||||
@@ -656,8 +652,8 @@ Retrieve details of a specific template from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Template data and metadata |
|
||||
| `success` | boolean | Whether the template was successfully retrieved |
|
||||
| `output` | object | Template data |
|
||||
|
||||
### `mailchimp_create_template`
|
||||
|
||||
@@ -713,8 +709,7 @@ Delete a template from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deletion confirmation |
|
||||
| `success` | boolean | Whether the template was successfully deleted |
|
||||
|
||||
### `mailchimp_get_campaign_reports`
|
||||
|
||||
@@ -732,8 +727,8 @@ Retrieve a list of campaign reports from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Campaign reports data and metadata |
|
||||
| `success` | boolean | Whether the campaign reports were successfully retrieved |
|
||||
| `output` | object | Campaign reports data |
|
||||
|
||||
### `mailchimp_get_campaign_report`
|
||||
|
||||
@@ -750,8 +745,8 @@ Retrieve the report for a specific campaign from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Campaign report data and metadata |
|
||||
| `success` | boolean | Whether the campaign report was successfully retrieved |
|
||||
| `output` | object | Campaign report data |
|
||||
|
||||
### `mailchimp_get_segments`
|
||||
|
||||
@@ -770,8 +765,8 @@ Retrieve a list of segments from a Mailchimp audience
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Segments data and metadata |
|
||||
| `success` | boolean | Whether the segments were successfully retrieved |
|
||||
| `output` | object | Segments data |
|
||||
|
||||
### `mailchimp_get_segment`
|
||||
|
||||
@@ -789,8 +784,8 @@ Retrieve details of a specific segment from a Mailchimp audience
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Segment data and metadata |
|
||||
| `success` | boolean | Whether the segment was successfully retrieved |
|
||||
| `output` | object | Segment data |
|
||||
|
||||
### `mailchimp_create_segment`
|
||||
|
||||
@@ -849,8 +844,7 @@ Delete a segment from a Mailchimp audience
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deletion confirmation |
|
||||
| `success` | boolean | Whether the segment was successfully deleted |
|
||||
|
||||
### `mailchimp_get_segment_members`
|
||||
|
||||
@@ -870,8 +864,8 @@ Retrieve members of a specific segment from a Mailchimp audience
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Segment members data and metadata |
|
||||
| `success` | boolean | Whether the segment members were successfully retrieved |
|
||||
| `output` | object | Segment members data |
|
||||
|
||||
### `mailchimp_add_segment_member`
|
||||
|
||||
@@ -929,8 +923,8 @@ Retrieve tags associated with a member in a Mailchimp audience
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Member tags data and metadata |
|
||||
| `success` | boolean | Whether the member tags were successfully retrieved |
|
||||
| `output` | object | Member tags data |
|
||||
|
||||
### `mailchimp_add_member_tags`
|
||||
|
||||
@@ -989,8 +983,8 @@ Retrieve a list of merge fields from a Mailchimp audience
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Merge fields data and metadata |
|
||||
| `success` | boolean | Whether the merge fields were successfully retrieved |
|
||||
| `output` | object | Merge fields data |
|
||||
|
||||
### `mailchimp_get_merge_field`
|
||||
|
||||
@@ -1008,8 +1002,8 @@ Retrieve details of a specific merge field from a Mailchimp audience
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Merge field data and metadata |
|
||||
| `success` | boolean | Whether the merge field was successfully retrieved |
|
||||
| `output` | object | Merge field data |
|
||||
|
||||
### `mailchimp_create_merge_field`
|
||||
|
||||
@@ -1067,8 +1061,7 @@ Delete a merge field from a Mailchimp audience
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deletion confirmation |
|
||||
| `success` | boolean | Whether the merge field was successfully deleted |
|
||||
|
||||
### `mailchimp_get_interest_categories`
|
||||
|
||||
@@ -1087,8 +1080,8 @@ Retrieve a list of interest categories from a Mailchimp audience
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Interest categories data and metadata |
|
||||
| `success` | boolean | Whether the interest categories were successfully retrieved |
|
||||
| `output` | object | Interest categories data |
|
||||
|
||||
### `mailchimp_get_interest_category`
|
||||
|
||||
@@ -1106,8 +1099,8 @@ Retrieve details of a specific interest category from a Mailchimp audience
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Interest category data and metadata |
|
||||
| `success` | boolean | Whether the interest category was successfully retrieved |
|
||||
| `output` | object | Interest category data |
|
||||
|
||||
### `mailchimp_create_interest_category`
|
||||
|
||||
@@ -1165,8 +1158,7 @@ Delete an interest category from a Mailchimp audience
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deletion confirmation |
|
||||
| `success` | boolean | Whether the interest category was successfully deleted |
|
||||
|
||||
### `mailchimp_get_interests`
|
||||
|
||||
@@ -1186,8 +1178,8 @@ Retrieve a list of interests from an interest category in a Mailchimp audience
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Interests data and metadata |
|
||||
| `success` | boolean | Whether the interests were successfully retrieved |
|
||||
| `output` | object | Interests data |
|
||||
|
||||
### `mailchimp_get_interest`
|
||||
|
||||
@@ -1206,8 +1198,8 @@ Retrieve details of a specific interest from an interest category in a Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Interest data and metadata |
|
||||
| `success` | boolean | Whether the interest was successfully retrieved |
|
||||
| `output` | object | Interest data |
|
||||
|
||||
### `mailchimp_create_interest`
|
||||
|
||||
@@ -1267,8 +1259,7 @@ Delete an interest from an interest category in a Mailchimp audience
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deletion confirmation |
|
||||
| `success` | boolean | Whether the interest was successfully deleted |
|
||||
|
||||
### `mailchimp_get_landing_pages`
|
||||
|
||||
@@ -1286,8 +1277,8 @@ Retrieve a list of landing pages from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Landing pages data and metadata |
|
||||
| `success` | boolean | Whether the landing pages were successfully retrieved |
|
||||
| `output` | object | Landing pages data |
|
||||
|
||||
### `mailchimp_get_landing_page`
|
||||
|
||||
@@ -1304,8 +1295,8 @@ Retrieve details of a specific landing page from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Landing page data and metadata |
|
||||
| `success` | boolean | Whether the landing page was successfully retrieved |
|
||||
| `output` | object | Landing page data |
|
||||
|
||||
### `mailchimp_create_landing_page`
|
||||
|
||||
@@ -1360,8 +1351,7 @@ Delete a landing page from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deletion confirmation |
|
||||
| `success` | boolean | Whether the landing page was successfully deleted |
|
||||
|
||||
### `mailchimp_publish_landing_page`
|
||||
|
||||
@@ -1415,8 +1405,8 @@ Retrieve a list of batch operations from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Batch operations data and metadata |
|
||||
| `success` | boolean | Whether the batch operations were successfully retrieved |
|
||||
| `output` | object | Batch operations data |
|
||||
|
||||
### `mailchimp_get_batch_operation`
|
||||
|
||||
@@ -1433,8 +1423,8 @@ Retrieve details of a specific batch operation from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Batch operation data and metadata |
|
||||
| `success` | boolean | Whether the batch operation was successfully retrieved |
|
||||
| `output` | object | Batch operation data |
|
||||
|
||||
### `mailchimp_create_batch_operation`
|
||||
|
||||
@@ -1469,8 +1459,7 @@ Delete a batch operation from Mailchimp
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deletion confirmation |
|
||||
| `success` | boolean | Whether the batch operation was successfully deleted |
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"circleback",
|
||||
"clay",
|
||||
"confluence",
|
||||
"cursor",
|
||||
"cursor_v2",
|
||||
"datadog",
|
||||
"discord",
|
||||
"dropbox",
|
||||
@@ -24,10 +24,10 @@
|
||||
"file",
|
||||
"firecrawl",
|
||||
"fireflies",
|
||||
"github",
|
||||
"github_v2",
|
||||
"gitlab",
|
||||
"gmail",
|
||||
"google_calendar",
|
||||
"gmail_v2",
|
||||
"google_calendar_v2",
|
||||
"google_docs",
|
||||
"google_drive",
|
||||
"google_forms",
|
||||
@@ -45,7 +45,7 @@
|
||||
"image_generator",
|
||||
"imap",
|
||||
"incidentio",
|
||||
"intercom",
|
||||
"intercom_v2",
|
||||
"jina",
|
||||
"jira",
|
||||
"jira_service_management",
|
||||
@@ -65,7 +65,7 @@
|
||||
"mongodb",
|
||||
"mysql",
|
||||
"neo4j",
|
||||
"notion",
|
||||
"notion_v2",
|
||||
"onedrive",
|
||||
"openai",
|
||||
"outlook",
|
||||
@@ -101,7 +101,6 @@
|
||||
"supabase",
|
||||
"tavily",
|
||||
"telegram",
|
||||
"thinking",
|
||||
"translate",
|
||||
"trello",
|
||||
"tts",
|
||||
|
||||
@@ -1,180 +0,0 @@
|
||||
---
|
||||
title: Notion
|
||||
description: Manage Notion pages
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="notion"
|
||||
color="#181C1E"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Notion](https://www.notion.so) is an all-in-one workspace that combines notes, documents, wikis, and project management tools into a single platform. It offers a flexible and customizable environment where users can create, organize, and collaborate on content in various formats.
|
||||
|
||||
With Notion, you can:
|
||||
|
||||
- **Create versatile content**: Build documents, wikis, databases, kanban boards, calendars, and more
|
||||
- **Organize information**: Structure content hierarchically with nested pages and powerful databases
|
||||
- **Collaborate seamlessly**: Share workspaces and pages with team members for real-time collaboration
|
||||
- **Customize your workspace**: Design your ideal workflow with flexible templates and building blocks
|
||||
- **Connect information**: Link between pages and databases to create a knowledge network
|
||||
- **Access anywhere**: Use Notion across web, desktop, and mobile platforms with automatic syncing
|
||||
|
||||
In Sim, the Notion integration enables your agents to interact directly with your Notion workspace programmatically. This allows for powerful automation scenarios such as knowledge management, content creation, and information retrieval. Your agents can:
|
||||
|
||||
- **Read Notion pages**: Extract content and metadata from any Notion page.
|
||||
- **Read Notion databases**: Retrieve database structure and information.
|
||||
- **Write to pages**: Append new content to existing Notion pages.
|
||||
- **Create new pages**: Generate new Notion pages under a parent page, with custom titles and content.
|
||||
- **Query databases**: Search and filter database entries using advanced filter and sort criteria.
|
||||
- **Search workspace**: Search across your entire Notion workspace for pages or databases matching specific queries.
|
||||
- **Create new databases**: Programmatically create new databases with custom properties and structure.
|
||||
|
||||
This integration bridges the gap between your AI workflows and your knowledge base, enabling seamless documentation and information management. By connecting Sim with Notion, you can automate documentation processes, maintain up-to-date information repositories, generate reports, and organize information intelligently—all through your intelligent agents.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
|
||||
## Usage Instructions
|
||||
|
||||
Integrate with Notion into the workflow. Can read page, read database, create page, create database, append content, query database, and search workspace.
|
||||
|
||||
|
||||
|
||||
## Tools
|
||||
|
||||
### `notion_read`
|
||||
|
||||
Read content from a Notion page
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `pageId` | string | Yes | The ID of the Notion page to read |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Page content in markdown format with headers, paragraphs, lists, and todos |
|
||||
| `metadata` | object | Page metadata including title, URL, and timestamps |
|
||||
|
||||
### `notion_read_database`
|
||||
|
||||
Read database information and structure from Notion
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `databaseId` | string | Yes | The ID of the Notion database to read |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Database information including title, properties schema, and metadata |
|
||||
| `metadata` | object | Database metadata including title, ID, URL, timestamps, and properties schema |
|
||||
|
||||
### `notion_write`
|
||||
|
||||
Append content to a Notion page
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `pageId` | string | Yes | The ID of the Notion page to append content to |
|
||||
| `content` | string | Yes | The content to append to the page |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message confirming content was appended to page |
|
||||
|
||||
### `notion_create_page`
|
||||
|
||||
Create a new page in Notion
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `parentId` | string | Yes | ID of the parent page |
|
||||
| `title` | string | No | Title of the new page |
|
||||
| `content` | string | No | Optional content to add to the page upon creation |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message confirming page creation |
|
||||
| `metadata` | object | Page metadata including title, page ID, URL, and timestamps |
|
||||
|
||||
### `notion_query_database`
|
||||
|
||||
Query and filter Notion database entries with advanced filtering
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `databaseId` | string | Yes | The ID of the database to query |
|
||||
| `filter` | string | No | Filter conditions as JSON \(optional\) |
|
||||
| `sorts` | string | No | Sort criteria as JSON array \(optional\) |
|
||||
| `pageSize` | number | No | Number of results to return \(default: 100, max: 100\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Formatted list of database entries with their properties |
|
||||
| `metadata` | object | Query metadata including total results count, pagination info, and raw results array |
|
||||
|
||||
### `notion_search`
|
||||
|
||||
Search across all pages and databases in Notion workspace
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | No | Search terms \(leave empty to get all pages\) |
|
||||
| `filterType` | string | No | Filter by object type: page, database, or leave empty for all |
|
||||
| `pageSize` | number | No | Number of results to return \(default: 100, max: 100\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Formatted list of search results including pages and databases |
|
||||
| `metadata` | object | Search metadata including total results count, pagination info, and raw results array |
|
||||
|
||||
### `notion_create_database`
|
||||
|
||||
Create a new database in Notion with custom properties
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `parentId` | string | Yes | ID of the parent page where the database will be created |
|
||||
| `title` | string | Yes | Title for the new database |
|
||||
| `properties` | string | No | Database properties as JSON object \(optional, will create a default "Name" property if empty\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Success message with database details and properties list |
|
||||
| `metadata` | object | Database metadata including ID, title, URL, creation time, and properties schema |
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `tools`
|
||||
- Type: `notion`
|
||||
194
apps/docs/content/docs/en/tools/notion_v2.mdx
Normal file
194
apps/docs/content/docs/en/tools/notion_v2.mdx
Normal file
@@ -0,0 +1,194 @@
|
||||
---
|
||||
title: Notion
|
||||
description: Manage Notion pages
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="notion_v2"
|
||||
color="#181C1E"
|
||||
/>
|
||||
|
||||
## Usage Instructions
|
||||
|
||||
Integrate with Notion into the workflow. Can read page, read database, create page, create database, append content, query database, and search workspace.
|
||||
|
||||
|
||||
|
||||
## Tools
|
||||
|
||||
### `notion_read_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Page content in markdown format |
|
||||
| `title` | string | Page or database title |
|
||||
| `url` | string | Notion URL |
|
||||
| `id` | string | Page or database ID |
|
||||
| `created_time` | string | Creation timestamp |
|
||||
| `last_edited_time` | string | Last edit timestamp |
|
||||
| `results` | array | Array of results from query or search |
|
||||
| `has_more` | boolean | Whether more results are available |
|
||||
| `next_cursor` | string | Cursor for pagination |
|
||||
| `total_results` | number | Number of results returned |
|
||||
| `properties` | json | Database properties schema |
|
||||
| `appended` | boolean | Whether content was successfully appended |
|
||||
|
||||
### `notion_read_database_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Page content in markdown format |
|
||||
| `title` | string | Page or database title |
|
||||
| `url` | string | Notion URL |
|
||||
| `id` | string | Page or database ID |
|
||||
| `created_time` | string | Creation timestamp |
|
||||
| `last_edited_time` | string | Last edit timestamp |
|
||||
| `results` | array | Array of results from query or search |
|
||||
| `has_more` | boolean | Whether more results are available |
|
||||
| `next_cursor` | string | Cursor for pagination |
|
||||
| `total_results` | number | Number of results returned |
|
||||
| `properties` | json | Database properties schema |
|
||||
| `appended` | boolean | Whether content was successfully appended |
|
||||
|
||||
### `notion_write_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Page content in markdown format |
|
||||
| `title` | string | Page or database title |
|
||||
| `url` | string | Notion URL |
|
||||
| `id` | string | Page or database ID |
|
||||
| `created_time` | string | Creation timestamp |
|
||||
| `last_edited_time` | string | Last edit timestamp |
|
||||
| `results` | array | Array of results from query or search |
|
||||
| `has_more` | boolean | Whether more results are available |
|
||||
| `next_cursor` | string | Cursor for pagination |
|
||||
| `total_results` | number | Number of results returned |
|
||||
| `properties` | json | Database properties schema |
|
||||
| `appended` | boolean | Whether content was successfully appended |
|
||||
|
||||
### `notion_create_page_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Page content in markdown format |
|
||||
| `title` | string | Page or database title |
|
||||
| `url` | string | Notion URL |
|
||||
| `id` | string | Page or database ID |
|
||||
| `created_time` | string | Creation timestamp |
|
||||
| `last_edited_time` | string | Last edit timestamp |
|
||||
| `results` | array | Array of results from query or search |
|
||||
| `has_more` | boolean | Whether more results are available |
|
||||
| `next_cursor` | string | Cursor for pagination |
|
||||
| `total_results` | number | Number of results returned |
|
||||
| `properties` | json | Database properties schema |
|
||||
| `appended` | boolean | Whether content was successfully appended |
|
||||
|
||||
### `notion_query_database_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Page content in markdown format |
|
||||
| `title` | string | Page or database title |
|
||||
| `url` | string | Notion URL |
|
||||
| `id` | string | Page or database ID |
|
||||
| `created_time` | string | Creation timestamp |
|
||||
| `last_edited_time` | string | Last edit timestamp |
|
||||
| `results` | array | Array of results from query or search |
|
||||
| `has_more` | boolean | Whether more results are available |
|
||||
| `next_cursor` | string | Cursor for pagination |
|
||||
| `total_results` | number | Number of results returned |
|
||||
| `properties` | json | Database properties schema |
|
||||
| `appended` | boolean | Whether content was successfully appended |
|
||||
|
||||
### `notion_search_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Page content in markdown format |
|
||||
| `title` | string | Page or database title |
|
||||
| `url` | string | Notion URL |
|
||||
| `id` | string | Page or database ID |
|
||||
| `created_time` | string | Creation timestamp |
|
||||
| `last_edited_time` | string | Last edit timestamp |
|
||||
| `results` | array | Array of results from query or search |
|
||||
| `has_more` | boolean | Whether more results are available |
|
||||
| `next_cursor` | string | Cursor for pagination |
|
||||
| `total_results` | number | Number of results returned |
|
||||
| `properties` | json | Database properties schema |
|
||||
| `appended` | boolean | Whether content was successfully appended |
|
||||
|
||||
### `notion_create_database_v2`
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Page content in markdown format |
|
||||
| `title` | string | Page or database title |
|
||||
| `url` | string | Notion URL |
|
||||
| `id` | string | Page or database ID |
|
||||
| `created_time` | string | Creation timestamp |
|
||||
| `last_edited_time` | string | Last edit timestamp |
|
||||
| `results` | array | Array of results from query or search |
|
||||
| `has_more` | boolean | Whether more results are available |
|
||||
| `next_cursor` | string | Cursor for pagination |
|
||||
| `total_results` | number | Number of results returned |
|
||||
| `properties` | json | Database properties schema |
|
||||
| `appended` | boolean | Whether content was successfully appended |
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `tools`
|
||||
- Type: `notion_v2`
|
||||
@@ -55,7 +55,7 @@ Retrieve all deals from Pipedrive with optional filters
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | Array of deal objects from Pipedrive |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `metadata` | object | Pagination metadata for the response |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `pipedrive_get_deal`
|
||||
@@ -73,7 +73,6 @@ Retrieve detailed information about a specific deal
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | Deal object with full details |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `pipedrive_create_deal`
|
||||
@@ -99,7 +98,6 @@ Create a new deal in Pipedrive
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | The created deal object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `pipedrive_update_deal`
|
||||
@@ -122,7 +120,6 @@ Update an existing deal in Pipedrive
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deal` | object | The updated deal object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `pipedrive_get_files`
|
||||
@@ -143,7 +140,7 @@ Retrieve files from Pipedrive with optional filters
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `files` | array | Array of file objects from Pipedrive |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `total_items` | number | Total number of files returned |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `pipedrive_get_mail_messages`
|
||||
@@ -162,7 +159,7 @@ Retrieve mail threads from Pipedrive mailbox
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `messages` | array | Array of mail thread objects from Pipedrive mailbox |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `total_items` | number | Total number of mail threads returned |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `pipedrive_get_mail_thread`
|
||||
@@ -180,7 +177,7 @@ Retrieve all messages from a specific mail thread
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `messages` | array | Array of mail message objects from the thread |
|
||||
| `metadata` | object | Operation metadata including thread ID |
|
||||
| `metadata` | object | Thread and pagination metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `pipedrive_get_pipelines`
|
||||
@@ -201,7 +198,7 @@ Retrieve all pipelines from Pipedrive
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `pipelines` | array | Array of pipeline objects from Pipedrive |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `total_items` | number | Total number of pipelines returned |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `pipedrive_get_pipeline_deals`
|
||||
@@ -222,7 +219,7 @@ Retrieve all deals in a specific pipeline
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | Array of deal objects from the pipeline |
|
||||
| `metadata` | object | Operation metadata including pipeline ID |
|
||||
| `metadata` | object | Pipeline and pagination metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `pipedrive_get_projects`
|
||||
@@ -243,7 +240,7 @@ Retrieve all projects or a specific project from Pipedrive
|
||||
| --------- | ---- | ----------- |
|
||||
| `projects` | array | Array of project objects \(when listing all\) |
|
||||
| `project` | object | Single project object \(when project_id is provided\) |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `total_items` | number | Total number of projects returned |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `pipedrive_create_project`
|
||||
@@ -264,7 +261,6 @@ Create a new project in Pipedrive
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `project` | object | The created project object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `pipedrive_get_activities`
|
||||
@@ -287,7 +283,7 @@ Retrieve activities (tasks) from Pipedrive with optional filters
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activities` | array | Array of activity objects from Pipedrive |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `total_items` | number | Total number of activities returned |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `pipedrive_create_activity`
|
||||
@@ -313,7 +309,6 @@ Create a new activity (task) in Pipedrive
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activity` | object | The created activity object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `pipedrive_update_activity`
|
||||
@@ -337,7 +332,6 @@ Update an existing activity (task) in Pipedrive
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `activity` | object | The updated activity object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `pipedrive_get_leads`
|
||||
@@ -361,7 +355,7 @@ Retrieve all leads or a specific lead from Pipedrive
|
||||
| --------- | ---- | ----------- |
|
||||
| `leads` | array | Array of lead objects \(when listing all\) |
|
||||
| `lead` | object | Single lead object \(when lead_id is provided\) |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `total_items` | number | Total number of leads returned |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `pipedrive_create_lead`
|
||||
@@ -386,7 +380,6 @@ Create a new lead in Pipedrive
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `lead` | object | The created lead object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `pipedrive_update_lead`
|
||||
@@ -412,7 +405,6 @@ Update an existing lead in Pipedrive
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `lead` | object | The updated lead object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
### `pipedrive_delete_lead`
|
||||
@@ -430,7 +422,6 @@ Delete a specific lead from Pipedrive
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `data` | object | Deletion confirmation data |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `success` | boolean | Operation success status |
|
||||
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ Capture multiple events at once in PostHog. Use this for bulk event ingestion to
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Status message indicating whether the batch was captured successfully |
|
||||
| `eventsProcessed` | number | Number of events processed in the batch |
|
||||
| `events_processed` | number | Number of events processed in the batch |
|
||||
|
||||
### `posthog_list_persons`
|
||||
|
||||
@@ -600,9 +600,9 @@ Evaluate feature flags for a specific user or group. This is a public endpoint t
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `featureFlags` | object | Feature flag evaluations \(key-value pairs where values are boolean or string variants\) |
|
||||
| `featureFlagPayloads` | object | Additional payloads attached to feature flags |
|
||||
| `errorsWhileComputingFlags` | boolean | Whether there were errors while computing flags |
|
||||
| `feature_flags` | object | Feature flag evaluations \(key-value pairs where values are boolean or string variants\) |
|
||||
| `feature_flag_payloads` | object | Additional payloads attached to feature flags |
|
||||
| `errors_while_computing_flags` | boolean | Whether there were errors while computing flags |
|
||||
|
||||
### `posthog_list_experiments`
|
||||
|
||||
|
||||
@@ -259,7 +259,7 @@ Get lead(s) from Salesforce
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success status |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Lead data |
|
||||
|
||||
### `salesforce_create_lead`
|
||||
@@ -286,8 +286,8 @@ Create a new lead
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success |
|
||||
| `output` | object | Created lead |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created lead data |
|
||||
|
||||
### `salesforce_update_lead`
|
||||
|
||||
@@ -314,8 +314,8 @@ Update an existing lead
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success |
|
||||
| `output` | object | Updated lead |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated lead data |
|
||||
|
||||
### `salesforce_delete_lead`
|
||||
|
||||
@@ -333,8 +333,8 @@ Delete a lead
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success |
|
||||
| `output` | object | Deleted lead |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deleted lead data |
|
||||
|
||||
### `salesforce_get_opportunities`
|
||||
|
||||
@@ -355,7 +355,7 @@ Get opportunity(ies) from Salesforce
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Opportunity data |
|
||||
|
||||
### `salesforce_create_opportunity`
|
||||
@@ -380,8 +380,8 @@ Create a new opportunity
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success |
|
||||
| `output` | object | Created opportunity |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created opportunity data |
|
||||
|
||||
### `salesforce_update_opportunity`
|
||||
|
||||
@@ -406,8 +406,8 @@ Update an existing opportunity
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success |
|
||||
| `output` | object | Updated opportunity |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated opportunity data |
|
||||
|
||||
### `salesforce_delete_opportunity`
|
||||
|
||||
@@ -425,8 +425,8 @@ Delete an opportunity
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success |
|
||||
| `output` | object | Deleted opportunity |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deleted opportunity data |
|
||||
|
||||
### `salesforce_get_cases`
|
||||
|
||||
@@ -447,7 +447,7 @@ Get case(s) from Salesforce
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Case data |
|
||||
|
||||
### `salesforce_create_case`
|
||||
@@ -472,8 +472,8 @@ Create a new case
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success |
|
||||
| `output` | object | Created case |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created case data |
|
||||
|
||||
### `salesforce_update_case`
|
||||
|
||||
@@ -495,8 +495,8 @@ Update an existing case
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success |
|
||||
| `output` | object | Updated case |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated case data |
|
||||
|
||||
### `salesforce_delete_case`
|
||||
|
||||
@@ -514,8 +514,8 @@ Delete a case
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success |
|
||||
| `output` | object | Deleted case |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deleted case data |
|
||||
|
||||
### `salesforce_get_tasks`
|
||||
|
||||
@@ -536,7 +536,7 @@ Get task(s) from Salesforce
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Task data |
|
||||
|
||||
### `salesforce_create_task`
|
||||
@@ -561,8 +561,8 @@ Create a new task
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success |
|
||||
| `output` | object | Created task |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Created task data |
|
||||
|
||||
### `salesforce_update_task`
|
||||
|
||||
@@ -585,8 +585,8 @@ Update an existing task
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success |
|
||||
| `output` | object | Updated task |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Updated task data |
|
||||
|
||||
### `salesforce_delete_task`
|
||||
|
||||
@@ -604,8 +604,8 @@ Delete a task
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success |
|
||||
| `output` | object | Deleted task |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Deleted task data |
|
||||
|
||||
### `salesforce_list_reports`
|
||||
|
||||
@@ -624,7 +624,7 @@ Get a list of reports accessible by the current user
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success status |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Reports data |
|
||||
|
||||
### `salesforce_get_report`
|
||||
@@ -643,7 +643,7 @@ Get metadata and describe information for a specific report
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success status |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Report metadata |
|
||||
|
||||
### `salesforce_run_report`
|
||||
@@ -664,7 +664,7 @@ Execute a report and retrieve the results
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success status |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Report results |
|
||||
|
||||
### `salesforce_list_report_types`
|
||||
@@ -682,7 +682,7 @@ Get a list of available report types
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success status |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Report types data |
|
||||
|
||||
### `salesforce_list_dashboards`
|
||||
@@ -701,7 +701,7 @@ Get a list of dashboards accessible by the current user
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success status |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Dashboards data |
|
||||
|
||||
### `salesforce_get_dashboard`
|
||||
@@ -720,7 +720,7 @@ Get details and results for a specific dashboard
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success status |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Dashboard data |
|
||||
|
||||
### `salesforce_refresh_dashboard`
|
||||
@@ -739,7 +739,7 @@ Refresh a dashboard to get the latest data
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success status |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Refreshed dashboard data |
|
||||
|
||||
### `salesforce_query`
|
||||
@@ -758,7 +758,7 @@ Execute a custom SOQL query to retrieve data from Salesforce
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success status |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Query results |
|
||||
|
||||
### `salesforce_query_more`
|
||||
@@ -777,7 +777,7 @@ Retrieve additional query results using the nextRecordsUrl from a previous query
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success status |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Query results |
|
||||
|
||||
### `salesforce_describe_object`
|
||||
@@ -796,7 +796,7 @@ Get metadata and field information for a Salesforce object
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success status |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Object metadata |
|
||||
|
||||
### `salesforce_list_objects`
|
||||
@@ -814,7 +814,7 @@ Get a list of all available Salesforce objects
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Success status |
|
||||
| `success` | boolean | Operation success status |
|
||||
| `output` | object | Objects list |
|
||||
|
||||
|
||||
|
||||
@@ -282,7 +282,6 @@ Permanently delete a customer
|
||||
| --------- | ---- | ----------- |
|
||||
| `deleted` | boolean | Whether the customer was deleted |
|
||||
| `id` | string | The ID of the deleted customer |
|
||||
| `metadata` | json | Deletion metadata |
|
||||
|
||||
### `stripe_list_customers`
|
||||
|
||||
@@ -541,7 +540,6 @@ Permanently delete a draft invoice
|
||||
| --------- | ---- | ----------- |
|
||||
| `deleted` | boolean | Whether the invoice was deleted |
|
||||
| `id` | string | The ID of the deleted invoice |
|
||||
| `metadata` | json | Deletion metadata |
|
||||
|
||||
### `stripe_finalize_invoice`
|
||||
|
||||
@@ -856,7 +854,6 @@ Permanently delete a product
|
||||
| --------- | ---- | ----------- |
|
||||
| `deleted` | boolean | Whether the product was deleted |
|
||||
| `id` | string | The ID of the deleted product |
|
||||
| `metadata` | json | Deletion metadata |
|
||||
|
||||
### `stripe_list_products`
|
||||
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
---
|
||||
title: Thinking
|
||||
description: Forces model to outline its thought process.
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="thinking"
|
||||
color="#181C1E"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
The Thinking tool encourages AI models to engage in explicit reasoning before responding to complex queries. By providing a dedicated space for step-by-step analysis, this tool helps models break down problems, consider multiple perspectives, and arrive at more thoughtful conclusions.
|
||||
|
||||
Research has shown that prompting language models to "think step by step" can significantly improve their reasoning capabilities. According to [Anthropic's research on Claude's Think tool](https://www.anthropic.com/engineering/claude-think-tool), when models are given space to work through their reasoning explicitly, they demonstrate:
|
||||
|
||||
- **Improved problem-solving**: Breaking complex problems into manageable steps
|
||||
- **Enhanced accuracy**: Reducing errors by carefully working through each component of a problem
|
||||
- **Greater transparency**: Making the model's reasoning process visible and auditable
|
||||
- **More nuanced responses**: Considering multiple angles before arriving at conclusions
|
||||
|
||||
In Sim, the Thinking tool creates a structured opportunity for your agents to engage in this kind of deliberate reasoning. By incorporating thinking steps into your workflows, you can help your agents tackle complex tasks more effectively, avoid common reasoning pitfalls, and produce higher-quality outputs. This is particularly valuable for tasks involving multi-step reasoning, complex decision-making, or situations where accuracy is critical.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
|
||||
## Usage Instructions
|
||||
|
||||
Adds a step where the model explicitly outlines its thought process before proceeding. This can improve reasoning quality by encouraging step-by-step analysis.
|
||||
|
||||
|
||||
|
||||
## Tools
|
||||
|
||||
### `thinking_tool`
|
||||
|
||||
Processes a provided thought/instruction, making it available for subsequent steps.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `thought` | string | Yes | Your internal reasoning, analysis, or thought process. Use this to think through the problem step by step before responding. |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `acknowledgedThought` | string | The thought that was processed and acknowledged |
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `tools`
|
||||
- Type: `thinking`
|
||||
@@ -78,7 +78,6 @@ Retrieve a list of tickets from Zendesk with optional filtering
|
||||
| --------- | ---- | ----------- |
|
||||
| `tickets` | array | Array of ticket objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| `metadata` | object | Operation metadata |
|
||||
|
||||
### `zendesk_get_ticket`
|
||||
|
||||
@@ -98,7 +97,7 @@ Get a single ticket by ID from Zendesk
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ticket` | object | Ticket object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `ticket_id` | number | The ticket ID |
|
||||
|
||||
### `zendesk_create_ticket`
|
||||
|
||||
@@ -127,7 +126,7 @@ Create a new ticket in Zendesk with support for custom fields
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ticket` | object | Created ticket object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `ticket_id` | number | The created ticket ID |
|
||||
|
||||
### `zendesk_create_tickets_bulk`
|
||||
|
||||
@@ -146,8 +145,8 @@ Create multiple tickets in Zendesk at once (max 100)
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `jobStatus` | object | Job status object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `job_status` | object | Job status object |
|
||||
| `job_id` | string | The bulk operation job ID |
|
||||
|
||||
### `zendesk_update_ticket`
|
||||
|
||||
@@ -176,7 +175,7 @@ Update an existing ticket in Zendesk with support for custom fields
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ticket` | object | Updated ticket object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `ticket_id` | number | The updated ticket ID |
|
||||
|
||||
### `zendesk_update_tickets_bulk`
|
||||
|
||||
@@ -200,8 +199,8 @@ Update multiple tickets in Zendesk at once (max 100)
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `jobStatus` | object | Job status object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `job_status` | object | Job status object |
|
||||
| `job_id` | string | The bulk operation job ID |
|
||||
|
||||
### `zendesk_delete_ticket`
|
||||
|
||||
@@ -221,7 +220,7 @@ Delete a ticket from Zendesk
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deleted` | boolean | Deletion success |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `ticket_id` | string | The deleted ticket ID |
|
||||
|
||||
### `zendesk_merge_tickets`
|
||||
|
||||
@@ -242,8 +241,9 @@ Merge multiple tickets into a target ticket
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `jobStatus` | object | Job status object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `job_status` | object | Job status object |
|
||||
| `job_id` | string | The merge job ID |
|
||||
| `target_ticket_id` | string | The target ticket ID that tickets were merged into |
|
||||
|
||||
### `zendesk_get_users`
|
||||
|
||||
@@ -267,7 +267,6 @@ Retrieve a list of users from Zendesk with optional filtering
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | Array of user objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| `metadata` | object | Operation metadata |
|
||||
|
||||
### `zendesk_get_user`
|
||||
|
||||
@@ -287,7 +286,7 @@ Get a single user by ID from Zendesk
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | object | User object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `user_id` | number | The user ID |
|
||||
|
||||
### `zendesk_get_current_user`
|
||||
|
||||
@@ -306,7 +305,7 @@ Get the currently authenticated user from Zendesk
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | object | Current user object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `user_id` | number | The current user ID |
|
||||
|
||||
### `zendesk_search_users`
|
||||
|
||||
@@ -330,7 +329,6 @@ Search for users in Zendesk using a query string
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | Array of user objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| `metadata` | object | Operation metadata |
|
||||
|
||||
### `zendesk_create_user`
|
||||
|
||||
@@ -357,7 +355,7 @@ Create a new user in Zendesk
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | object | Created user object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `user_id` | number | The created user ID |
|
||||
|
||||
### `zendesk_create_users_bulk`
|
||||
|
||||
@@ -376,8 +374,8 @@ Create multiple users in Zendesk using bulk import
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `jobStatus` | object | Job status object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `job_status` | object | Job status object |
|
||||
| `job_id` | string | The bulk operation job ID |
|
||||
|
||||
### `zendesk_update_user`
|
||||
|
||||
@@ -404,8 +402,8 @@ Update an existing user in Zendesk
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | object | Updated user object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `user` | json | Updated user object |
|
||||
| `user_id` | number | The updated user ID |
|
||||
|
||||
### `zendesk_update_users_bulk`
|
||||
|
||||
@@ -424,8 +422,8 @@ Update multiple users in Zendesk using bulk update
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `jobStatus` | object | Job status object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `job_status` | object | Job status object |
|
||||
| `job_id` | string | The bulk operation job ID |
|
||||
|
||||
### `zendesk_delete_user`
|
||||
|
||||
@@ -445,7 +443,7 @@ Delete a user from Zendesk
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deleted` | boolean | Deletion success |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `user_id` | string | The deleted user ID |
|
||||
|
||||
### `zendesk_get_organizations`
|
||||
|
||||
@@ -467,7 +465,6 @@ Retrieve a list of organizations from Zendesk
|
||||
| --------- | ---- | ----------- |
|
||||
| `organizations` | array | Array of organization objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| `metadata` | object | Operation metadata |
|
||||
|
||||
### `zendesk_get_organization`
|
||||
|
||||
@@ -486,8 +483,8 @@ Get a single organization by ID from Zendesk
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `organization` | object | Organization object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `organization` | json | Organization object |
|
||||
| `organization_id` | number | The organization ID |
|
||||
|
||||
### `zendesk_autocomplete_organizations`
|
||||
|
||||
@@ -510,7 +507,6 @@ Autocomplete organizations in Zendesk by name prefix (for name matching/autocomp
|
||||
| --------- | ---- | ----------- |
|
||||
| `organizations` | array | Array of organization objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| `metadata` | object | Operation metadata |
|
||||
|
||||
### `zendesk_create_organization`
|
||||
|
||||
@@ -534,8 +530,8 @@ Create a new organization in Zendesk
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `organization` | object | Created organization object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `organization` | json | Created organization object |
|
||||
| `organization_id` | number | The created organization ID |
|
||||
|
||||
### `zendesk_create_organizations_bulk`
|
||||
|
||||
@@ -554,8 +550,8 @@ Create multiple organizations in Zendesk using bulk import
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `jobStatus` | object | Job status object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `job_status` | object | Job status object |
|
||||
| `job_id` | string | The bulk operation job ID |
|
||||
|
||||
### `zendesk_update_organization`
|
||||
|
||||
@@ -580,8 +576,8 @@ Update an existing organization in Zendesk
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `organization` | object | Updated organization object |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `organization` | json | Updated organization object |
|
||||
| `organization_id` | number | The updated organization ID |
|
||||
|
||||
### `zendesk_delete_organization`
|
||||
|
||||
@@ -600,8 +596,8 @@ Delete an organization from Zendesk
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deleted` | boolean | Deletion success |
|
||||
| `metadata` | object | Operation metadata |
|
||||
| `deleted` | boolean | Whether the organization was successfully deleted |
|
||||
| `organization_id` | string | The deleted organization ID |
|
||||
|
||||
### `zendesk_search`
|
||||
|
||||
@@ -626,7 +622,6 @@ Unified search across tickets, users, and organizations in Zendesk
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | Array of result objects |
|
||||
| `paging` | object | Pagination information |
|
||||
| `metadata` | object | Operation metadata |
|
||||
|
||||
### `zendesk_search_count`
|
||||
|
||||
@@ -646,7 +641,6 @@ Count the number of search results matching a query in Zendesk
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `count` | number | Number of matching results |
|
||||
| `metadata` | object | Operation metadata |
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -240,7 +240,7 @@ const generateOutputPaths = (outputs: Record<string, any>, prefix = ''): string[
|
||||
} else if (typeof value === 'object' && value !== null) {
|
||||
if ('type' in value && typeof value.type === 'string') {
|
||||
const hasNestedProperties =
|
||||
(value.type === 'object' && value.properties) ||
|
||||
((value.type === 'object' || value.type === 'json') && value.properties) ||
|
||||
(value.type === 'array' && value.items?.properties) ||
|
||||
(value.type === 'array' &&
|
||||
value.items &&
|
||||
@@ -251,7 +251,7 @@ const generateOutputPaths = (outputs: Record<string, any>, prefix = ''): string[
|
||||
paths.push(currentPath)
|
||||
}
|
||||
|
||||
if (value.type === 'object' && value.properties) {
|
||||
if ((value.type === 'object' || value.type === 'json') && value.properties) {
|
||||
paths.push(...generateOutputPaths(value.properties, currentPath))
|
||||
} else if (value.type === 'array' && value.items?.properties) {
|
||||
paths.push(...generateOutputPaths(value.items.properties, currentPath))
|
||||
|
||||
@@ -1016,6 +1016,7 @@ export function ToolInput({
|
||||
const toolBlocks = useMemo(() => {
|
||||
const allToolBlocks = getAllBlocks().filter(
|
||||
(block) =>
|
||||
!block.hideFromToolbar &&
|
||||
(block.category === 'tools' ||
|
||||
block.type === 'api' ||
|
||||
block.type === 'webhook_request' ||
|
||||
|
||||
@@ -182,7 +182,7 @@ export function SearchModal({
|
||||
const allBlocks = getAllBlocks()
|
||||
const filteredAllBlocks = filterBlocks(allBlocks)
|
||||
return filteredAllBlocks
|
||||
.filter((block) => block.category === 'tools')
|
||||
.filter((block) => !block.hideFromToolbar && block.category === 'tools')
|
||||
.map(
|
||||
(block): ToolItem => ({
|
||||
id: block.type,
|
||||
@@ -225,7 +225,7 @@ export function SearchModal({
|
||||
const docsItems: DocItem[] = []
|
||||
|
||||
allBlocks.forEach((block) => {
|
||||
if (block.docsLink) {
|
||||
if (block.docsLink && !block.hideFromToolbar) {
|
||||
docsItems.push({
|
||||
id: `docs-${block.type}`,
|
||||
name: block.name,
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import { CursorIcon } from '@/components/icons'
|
||||
import type { BlockConfig } from '@/blocks/types'
|
||||
import { AuthMode } from '@/blocks/types'
|
||||
import { createVersionedToolSelector } from '@/blocks/utils'
|
||||
import type { CursorResponse } from '@/tools/cursor/types'
|
||||
|
||||
export const CursorBlock: BlockConfig<CursorResponse> = {
|
||||
type: 'cursor',
|
||||
name: 'Cursor',
|
||||
name: 'Cursor (Legacy)',
|
||||
description: 'Launch and manage Cursor cloud agents to work on GitHub repositories',
|
||||
longDescription:
|
||||
'Interact with Cursor Cloud Agents API to launch AI agents that can work on your GitHub repositories. Supports launching agents, adding follow-up instructions, checking status, viewing conversations, and managing agent lifecycle.',
|
||||
@@ -14,6 +15,7 @@ export const CursorBlock: BlockConfig<CursorResponse> = {
|
||||
bgColor: '#1E1E1E',
|
||||
icon: CursorIcon,
|
||||
authMode: AuthMode.ApiKey,
|
||||
hideFromToolbar: true,
|
||||
subBlocks: [
|
||||
{
|
||||
id: 'operation',
|
||||
@@ -169,3 +171,42 @@ export const CursorBlock: BlockConfig<CursorResponse> = {
|
||||
metadata: { type: 'json', description: 'Response metadata' },
|
||||
},
|
||||
}
|
||||
|
||||
export const CursorV2Block: BlockConfig<CursorResponse> = {
|
||||
...CursorBlock,
|
||||
type: 'cursor_v2',
|
||||
name: 'Cursor',
|
||||
hideFromToolbar: false,
|
||||
tools: {
|
||||
...CursorBlock.tools,
|
||||
access: [
|
||||
'cursor_list_agents_v2',
|
||||
'cursor_get_agent_v2',
|
||||
'cursor_get_conversation_v2',
|
||||
'cursor_launch_agent_v2',
|
||||
'cursor_add_followup_v2',
|
||||
'cursor_stop_agent_v2',
|
||||
'cursor_delete_agent_v2',
|
||||
],
|
||||
config: {
|
||||
tool: createVersionedToolSelector({
|
||||
baseToolSelector: (params) => params.operation || 'cursor_launch_agent',
|
||||
suffix: '_v2',
|
||||
fallbackToolId: 'cursor_launch_agent_v2',
|
||||
}),
|
||||
},
|
||||
},
|
||||
outputs: {
|
||||
id: { type: 'string', description: 'Agent identifier' },
|
||||
url: { type: 'string', description: 'Agent URL (launch operation)' },
|
||||
name: { type: 'string', description: 'Agent name' },
|
||||
status: { type: 'string', description: 'Agent status' },
|
||||
source: { type: 'json', description: 'Agent source repository info' },
|
||||
target: { type: 'json', description: 'Agent target branch/PR info' },
|
||||
summary: { type: 'string', description: 'Agent summary' },
|
||||
createdAt: { type: 'string', description: 'Agent creation timestamp' },
|
||||
agents: { type: 'json', description: 'Array of agent objects (list operation)' },
|
||||
nextCursor: { type: 'string', description: 'Pagination cursor (list operation)' },
|
||||
messages: { type: 'json', description: 'Conversation messages (get conversation operation)' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import { getTrigger } from '@/triggers'
|
||||
|
||||
export const GitHubBlock: BlockConfig<GitHubResponse> = {
|
||||
type: 'github',
|
||||
name: 'GitHub',
|
||||
name: 'GitHub (Legacy)',
|
||||
description: 'Interact with GitHub or trigger workflows from GitHub events',
|
||||
authMode: AuthMode.ApiKey,
|
||||
longDescription:
|
||||
@@ -16,6 +16,7 @@ export const GitHubBlock: BlockConfig<GitHubResponse> = {
|
||||
bgColor: '#181C1E',
|
||||
icon: GithubIcon,
|
||||
triggerAllowed: true,
|
||||
hideFromToolbar: true,
|
||||
subBlocks: [
|
||||
{
|
||||
id: 'operation',
|
||||
@@ -1335,3 +1336,44 @@ export const GitHubBlock: BlockConfig<GitHubResponse> = {
|
||||
],
|
||||
},
|
||||
}
|
||||
|
||||
export const GitHubV2Block: BlockConfig<GitHubResponse> = {
|
||||
...GitHubBlock,
|
||||
type: 'github_v2',
|
||||
name: 'GitHub',
|
||||
hideFromToolbar: false,
|
||||
tools: {
|
||||
...GitHubBlock.tools,
|
||||
access: (GitHubBlock.tools?.access || []).map((toolId) => `${toolId}_v2`),
|
||||
config: {
|
||||
...GitHubBlock.tools?.config,
|
||||
tool: (params) => {
|
||||
const baseToolId = (GitHubBlock.tools?.config as any)?.tool(params)
|
||||
return `${baseToolId}_v2`
|
||||
},
|
||||
params: (GitHubBlock.tools?.config as any)?.params,
|
||||
},
|
||||
},
|
||||
outputs: {
|
||||
data: { type: 'json', description: 'Operation result data (API-aligned)' },
|
||||
|
||||
// Trigger outputs (unchanged)
|
||||
action: { type: 'string', description: 'The action that was performed' },
|
||||
event_type: { type: 'string', description: 'Type of GitHub event' },
|
||||
repository: { type: 'string', description: 'Repository full name' },
|
||||
repository_name: { type: 'string', description: 'Repository name only' },
|
||||
repository_owner: { type: 'string', description: 'Repository owner username' },
|
||||
sender: { type: 'string', description: 'Username of the user who triggered the event' },
|
||||
sender_id: { type: 'string', description: 'User ID of the sender' },
|
||||
ref: { type: 'string', description: 'Git reference (for push events)' },
|
||||
before: { type: 'string', description: 'SHA of the commit before the push' },
|
||||
after: { type: 'string', description: 'SHA of the commit after the push' },
|
||||
commits: { type: 'string', description: 'Array of commit objects (for push events)' },
|
||||
pull_request: { type: 'string', description: 'Pull request object (for pull_request events)' },
|
||||
issue: { type: 'string', description: 'Issue object (for issues events)' },
|
||||
comment: { type: 'string', description: 'Comment object (for comment events)' },
|
||||
branch: { type: 'string', description: 'Branch name extracted from ref' },
|
||||
commit_message: { type: 'string', description: 'Latest commit message' },
|
||||
commit_author: { type: 'string', description: 'Author of the latest commit' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,12 +1,44 @@
|
||||
import { GmailIcon } from '@/components/icons'
|
||||
import type { BlockConfig } from '@/blocks/types'
|
||||
import { AuthMode } from '@/blocks/types'
|
||||
import { createVersionedToolSelector } from '@/blocks/utils'
|
||||
import type { GmailToolResponse } from '@/tools/gmail/types'
|
||||
import { getTrigger } from '@/triggers'
|
||||
|
||||
function selectGmailToolId(params: Record<string, any>): string {
|
||||
switch (params.operation) {
|
||||
case 'send_gmail':
|
||||
return 'gmail_send'
|
||||
case 'draft_gmail':
|
||||
return 'gmail_draft'
|
||||
case 'search_gmail':
|
||||
return 'gmail_search'
|
||||
case 'read_gmail':
|
||||
return 'gmail_read'
|
||||
case 'move_gmail':
|
||||
return 'gmail_move'
|
||||
case 'mark_read_gmail':
|
||||
return 'gmail_mark_read'
|
||||
case 'mark_unread_gmail':
|
||||
return 'gmail_mark_unread'
|
||||
case 'archive_gmail':
|
||||
return 'gmail_archive'
|
||||
case 'unarchive_gmail':
|
||||
return 'gmail_unarchive'
|
||||
case 'delete_gmail':
|
||||
return 'gmail_delete'
|
||||
case 'add_label_gmail':
|
||||
return 'gmail_add_label'
|
||||
case 'remove_label_gmail':
|
||||
return 'gmail_remove_label'
|
||||
default:
|
||||
throw new Error(`Invalid Gmail operation: ${params.operation}`)
|
||||
}
|
||||
}
|
||||
|
||||
export const GmailBlock: BlockConfig<GmailToolResponse> = {
|
||||
type: 'gmail',
|
||||
name: 'Gmail',
|
||||
name: 'Gmail (Legacy)',
|
||||
description: 'Send, read, search, and move Gmail messages or trigger workflows from Gmail events',
|
||||
authMode: AuthMode.OAuth,
|
||||
longDescription:
|
||||
@@ -15,6 +47,7 @@ export const GmailBlock: BlockConfig<GmailToolResponse> = {
|
||||
category: 'tools',
|
||||
bgColor: '#E0E0E0',
|
||||
icon: GmailIcon,
|
||||
hideFromToolbar: true,
|
||||
triggerAllowed: true,
|
||||
subBlocks: [
|
||||
// Operation selector
|
||||
@@ -376,36 +409,7 @@ Return ONLY the search query - no explanations, no extra text.`,
|
||||
'gmail_remove_label',
|
||||
],
|
||||
config: {
|
||||
tool: (params) => {
|
||||
switch (params.operation) {
|
||||
case 'send_gmail':
|
||||
return 'gmail_send'
|
||||
case 'draft_gmail':
|
||||
return 'gmail_draft'
|
||||
case 'search_gmail':
|
||||
return 'gmail_search'
|
||||
case 'read_gmail':
|
||||
return 'gmail_read'
|
||||
case 'move_gmail':
|
||||
return 'gmail_move'
|
||||
case 'mark_read_gmail':
|
||||
return 'gmail_mark_read'
|
||||
case 'mark_unread_gmail':
|
||||
return 'gmail_mark_unread'
|
||||
case 'archive_gmail':
|
||||
return 'gmail_archive'
|
||||
case 'unarchive_gmail':
|
||||
return 'gmail_unarchive'
|
||||
case 'delete_gmail':
|
||||
return 'gmail_delete'
|
||||
case 'add_label_gmail':
|
||||
return 'gmail_add_label'
|
||||
case 'remove_label_gmail':
|
||||
return 'gmail_remove_label'
|
||||
default:
|
||||
throw new Error(`Invalid Gmail operation: ${params.operation}`)
|
||||
}
|
||||
},
|
||||
tool: selectGmailToolId,
|
||||
params: (params) => {
|
||||
const {
|
||||
credential,
|
||||
@@ -539,3 +543,59 @@ Return ONLY the search query - no explanations, no extra text.`,
|
||||
available: ['gmail_poller'],
|
||||
},
|
||||
}
|
||||
|
||||
export const GmailV2Block: BlockConfig<GmailToolResponse> = {
|
||||
...GmailBlock,
|
||||
type: 'gmail_v2',
|
||||
name: 'Gmail',
|
||||
hideFromToolbar: false,
|
||||
tools: {
|
||||
...GmailBlock.tools,
|
||||
access: [
|
||||
'gmail_send_v2',
|
||||
'gmail_draft_v2',
|
||||
'gmail_read_v2',
|
||||
'gmail_search_v2',
|
||||
'gmail_move_v2',
|
||||
'gmail_mark_read_v2',
|
||||
'gmail_mark_unread_v2',
|
||||
'gmail_archive_v2',
|
||||
'gmail_unarchive_v2',
|
||||
'gmail_delete_v2',
|
||||
'gmail_add_label_v2',
|
||||
'gmail_remove_label_v2',
|
||||
],
|
||||
config: {
|
||||
...GmailBlock.tools?.config,
|
||||
tool: createVersionedToolSelector({
|
||||
baseToolSelector: selectGmailToolId,
|
||||
suffix: '_v2',
|
||||
fallbackToolId: 'gmail_send_v2',
|
||||
}),
|
||||
},
|
||||
},
|
||||
outputs: {
|
||||
// V2 tool outputs (API-aligned)
|
||||
id: { type: 'string', description: 'Gmail message ID' },
|
||||
threadId: { type: 'string', description: 'Gmail thread ID' },
|
||||
labelIds: { type: 'array', description: 'Email label IDs' },
|
||||
from: { type: 'string', description: 'Sender' },
|
||||
to: { type: 'string', description: 'To' },
|
||||
subject: { type: 'string', description: 'Subject' },
|
||||
date: { type: 'string', description: 'Date' },
|
||||
body: { type: 'string', description: 'Email body text (best-effort)' },
|
||||
results: { type: 'json', description: 'Search/read summary results' },
|
||||
attachments: { type: 'json', description: 'Downloaded attachments (if enabled)' },
|
||||
|
||||
// Trigger outputs (unchanged)
|
||||
email_id: { type: 'string', description: 'Gmail message ID' },
|
||||
thread_id: { type: 'string', description: 'Gmail thread ID' },
|
||||
cc: { type: 'string', description: 'CC recipients (comma-separated)' },
|
||||
body_text: { type: 'string', description: 'Plain text email body' },
|
||||
body_html: { type: 'string', description: 'HTML email body' },
|
||||
labels: { type: 'string', description: 'Email labels (comma-separated)' },
|
||||
has_attachments: { type: 'boolean', description: 'Whether email has attachments' },
|
||||
raw_email: { type: 'json', description: 'Complete raw email data from Gmail API (if enabled)' },
|
||||
timestamp: { type: 'string', description: 'Event timestamp' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import type { GoogleCalendarResponse } from '@/tools/google_calendar/types'
|
||||
|
||||
export const GoogleCalendarBlock: BlockConfig<GoogleCalendarResponse> = {
|
||||
type: 'google_calendar',
|
||||
name: 'Google Calendar',
|
||||
name: 'Google Calendar (Legacy)',
|
||||
description: 'Manage Google Calendar events',
|
||||
authMode: AuthMode.OAuth,
|
||||
longDescription:
|
||||
@@ -14,6 +14,7 @@ export const GoogleCalendarBlock: BlockConfig<GoogleCalendarResponse> = {
|
||||
category: 'tools',
|
||||
bgColor: '#E0E0E0',
|
||||
icon: GoogleCalendarIcon,
|
||||
hideFromToolbar: true,
|
||||
subBlocks: [
|
||||
{
|
||||
id: 'operation',
|
||||
@@ -385,3 +386,54 @@ Return ONLY the natural language event text - no explanations.`,
|
||||
metadata: { type: 'json', description: 'Event metadata' },
|
||||
},
|
||||
}
|
||||
|
||||
export const GoogleCalendarV2Block: BlockConfig<GoogleCalendarResponse> = {
|
||||
...GoogleCalendarBlock,
|
||||
type: 'google_calendar_v2',
|
||||
name: 'Google Calendar',
|
||||
hideFromToolbar: false,
|
||||
tools: {
|
||||
...GoogleCalendarBlock.tools,
|
||||
access: [
|
||||
'google_calendar_create_v2',
|
||||
'google_calendar_list_v2',
|
||||
'google_calendar_get_v2',
|
||||
'google_calendar_quick_add_v2',
|
||||
'google_calendar_invite_v2',
|
||||
],
|
||||
config: {
|
||||
...GoogleCalendarBlock.tools?.config,
|
||||
tool: (params) => {
|
||||
const operation = params.operation || 'create'
|
||||
if (
|
||||
operation !== 'create' &&
|
||||
operation !== 'list' &&
|
||||
operation !== 'get' &&
|
||||
operation !== 'quick_add' &&
|
||||
operation !== 'invite'
|
||||
) {
|
||||
throw new Error(`Invalid Google Calendar operation: ${operation}`)
|
||||
}
|
||||
return `google_calendar_${operation}_v2`
|
||||
},
|
||||
params: GoogleCalendarBlock.tools?.config?.params,
|
||||
},
|
||||
},
|
||||
outputs: {
|
||||
id: { type: 'string', description: 'Event ID' },
|
||||
htmlLink: { type: 'string', description: 'Event link' },
|
||||
status: { type: 'string', description: 'Event status' },
|
||||
summary: { type: 'string', description: 'Event title' },
|
||||
description: { type: 'string', description: 'Event description' },
|
||||
location: { type: 'string', description: 'Event location' },
|
||||
start: { type: 'json', description: 'Event start' },
|
||||
end: { type: 'json', description: 'Event end' },
|
||||
attendees: { type: 'json', description: 'Event attendees' },
|
||||
creator: { type: 'json', description: 'Event creator' },
|
||||
organizer: { type: 'json', description: 'Event organizer' },
|
||||
events: { type: 'json', description: 'List of events (list operation)' },
|
||||
nextPageToken: { type: 'string', description: 'Next page token' },
|
||||
nextSyncToken: { type: 'string', description: 'Next sync token' },
|
||||
timeZone: { type: 'string', description: 'Calendar time zone' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import { IntercomIcon } from '@/components/icons'
|
||||
import type { BlockConfig } from '@/blocks/types'
|
||||
import { AuthMode } from '@/blocks/types'
|
||||
import { createVersionedToolSelector } from '@/blocks/utils'
|
||||
|
||||
export const IntercomBlock: BlockConfig = {
|
||||
type: 'intercom',
|
||||
name: 'Intercom',
|
||||
name: 'Intercom (Legacy)',
|
||||
hideFromToolbar: true,
|
||||
description: 'Manage contacts, companies, conversations, tickets, and messages in Intercom',
|
||||
longDescription:
|
||||
'Integrate Intercom into the workflow. Can create, get, update, list, search, and delete contacts; create, get, and list companies; get, list, reply, and search conversations; create and get tickets; and create messages.',
|
||||
@@ -937,3 +939,108 @@ Return ONLY the numeric timestamp - no explanations, no quotes, no extra text.`,
|
||||
output: { type: 'json', description: 'Operation result data' },
|
||||
},
|
||||
}
|
||||
|
||||
export const IntercomV2Block: BlockConfig = {
|
||||
...IntercomBlock,
|
||||
type: 'intercom_v2',
|
||||
name: 'Intercom',
|
||||
hideFromToolbar: false,
|
||||
tools: {
|
||||
...IntercomBlock.tools,
|
||||
access: [
|
||||
'intercom_create_contact_v2',
|
||||
'intercom_get_contact_v2',
|
||||
'intercom_update_contact_v2',
|
||||
'intercom_list_contacts_v2',
|
||||
'intercom_search_contacts_v2',
|
||||
'intercom_delete_contact_v2',
|
||||
'intercom_create_company_v2',
|
||||
'intercom_get_company_v2',
|
||||
'intercom_list_companies_v2',
|
||||
'intercom_get_conversation_v2',
|
||||
'intercom_list_conversations_v2',
|
||||
'intercom_reply_conversation_v2',
|
||||
'intercom_search_conversations_v2',
|
||||
'intercom_create_ticket_v2',
|
||||
'intercom_get_ticket_v2',
|
||||
'intercom_create_message_v2',
|
||||
],
|
||||
config: {
|
||||
tool: createVersionedToolSelector({
|
||||
baseToolSelector: (params) => {
|
||||
switch (params.operation) {
|
||||
case 'create_contact':
|
||||
return 'intercom_create_contact'
|
||||
case 'get_contact':
|
||||
return 'intercom_get_contact'
|
||||
case 'update_contact':
|
||||
return 'intercom_update_contact'
|
||||
case 'list_contacts':
|
||||
return 'intercom_list_contacts'
|
||||
case 'search_contacts':
|
||||
return 'intercom_search_contacts'
|
||||
case 'delete_contact':
|
||||
return 'intercom_delete_contact'
|
||||
case 'create_company':
|
||||
return 'intercom_create_company'
|
||||
case 'get_company':
|
||||
return 'intercom_get_company'
|
||||
case 'list_companies':
|
||||
return 'intercom_list_companies'
|
||||
case 'get_conversation':
|
||||
return 'intercom_get_conversation'
|
||||
case 'list_conversations':
|
||||
return 'intercom_list_conversations'
|
||||
case 'reply_conversation':
|
||||
return 'intercom_reply_conversation'
|
||||
case 'search_conversations':
|
||||
return 'intercom_search_conversations'
|
||||
case 'create_ticket':
|
||||
return 'intercom_create_ticket'
|
||||
case 'get_ticket':
|
||||
return 'intercom_get_ticket'
|
||||
case 'create_message':
|
||||
return 'intercom_create_message'
|
||||
default:
|
||||
return 'intercom_create_contact'
|
||||
}
|
||||
},
|
||||
suffix: '_v2',
|
||||
fallbackToolId: 'intercom_create_contact_v2',
|
||||
}),
|
||||
params: IntercomBlock.tools!.config!.params,
|
||||
},
|
||||
},
|
||||
outputs: {
|
||||
contact: {
|
||||
type: 'json',
|
||||
description:
|
||||
'Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at',
|
||||
},
|
||||
contactId: { type: 'string', description: 'ID of the contact (for create/update operations)' },
|
||||
contacts: { type: 'array', description: 'Array of contacts (for list/search operations)' },
|
||||
company: { type: 'json', description: 'Company object with id, company_id, name, website' },
|
||||
companyId: { type: 'string', description: 'ID of the company (for create operations)' },
|
||||
companies: { type: 'array', description: 'Array of companies (for list operations)' },
|
||||
conversation: { type: 'json', description: 'Conversation object with id, title, state, open' },
|
||||
conversationId: {
|
||||
type: 'string',
|
||||
description: 'ID of the conversation (for reply operations)',
|
||||
},
|
||||
conversations: {
|
||||
type: 'array',
|
||||
description: 'Array of conversations (for list/search operations)',
|
||||
},
|
||||
ticket: { type: 'json', description: 'Ticket object with id, ticket_id, ticket_state' },
|
||||
ticketId: { type: 'string', description: 'ID of the ticket (for create operations)' },
|
||||
message: { type: 'json', description: 'Message object with id, type' },
|
||||
messageId: { type: 'string', description: 'ID of the message (for create operations)' },
|
||||
total_count: { type: 'number', description: 'Total count (for list/search operations)' },
|
||||
pages: { type: 'json', description: 'Pagination info with page, per_page, total_pages' },
|
||||
id: { type: 'string', description: 'ID of the deleted item (for delete operations)' },
|
||||
deleted: {
|
||||
type: 'boolean',
|
||||
description: 'Whether the item was deleted (for delete operations)',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -3,9 +3,11 @@ import type { BlockConfig } from '@/blocks/types'
|
||||
import { AuthMode } from '@/blocks/types'
|
||||
import type { NotionResponse } from '@/tools/notion/types'
|
||||
|
||||
// Legacy block - hidden from toolbar
|
||||
export const NotionBlock: BlockConfig<NotionResponse> = {
|
||||
type: 'notion',
|
||||
name: 'Notion',
|
||||
name: 'Notion (Legacy)',
|
||||
hideFromToolbar: true,
|
||||
description: 'Manage Notion pages',
|
||||
authMode: AuthMode.OAuth,
|
||||
longDescription:
|
||||
@@ -357,3 +359,124 @@ export const NotionBlock: BlockConfig<NotionResponse> = {
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// V2 Block with API-aligned outputs
|
||||
export const NotionV2Block: BlockConfig<any> = {
|
||||
type: 'notion_v2',
|
||||
name: 'Notion',
|
||||
description: 'Manage Notion pages',
|
||||
authMode: AuthMode.OAuth,
|
||||
longDescription:
|
||||
'Integrate with Notion into the workflow. Can read page, read database, create page, create database, append content, query database, and search workspace.',
|
||||
docsLink: 'https://docs.sim.ai/tools/notion',
|
||||
category: 'tools',
|
||||
bgColor: '#181C1E',
|
||||
icon: NotionIcon,
|
||||
hideFromToolbar: false,
|
||||
subBlocks: NotionBlock.subBlocks,
|
||||
tools: {
|
||||
access: [
|
||||
'notion_read_v2',
|
||||
'notion_read_database_v2',
|
||||
'notion_write_v2',
|
||||
'notion_create_page_v2',
|
||||
'notion_query_database_v2',
|
||||
'notion_search_v2',
|
||||
'notion_create_database_v2',
|
||||
],
|
||||
config: {
|
||||
tool: (params) => {
|
||||
switch (params.operation) {
|
||||
case 'notion_read':
|
||||
return 'notion_read_v2'
|
||||
case 'notion_read_database':
|
||||
return 'notion_read_database_v2'
|
||||
case 'notion_write':
|
||||
return 'notion_write_v2'
|
||||
case 'notion_create_page':
|
||||
return 'notion_create_page_v2'
|
||||
case 'notion_query_database':
|
||||
return 'notion_query_database_v2'
|
||||
case 'notion_search':
|
||||
return 'notion_search_v2'
|
||||
case 'notion_create_database':
|
||||
return 'notion_create_database_v2'
|
||||
default:
|
||||
return 'notion_read_v2'
|
||||
}
|
||||
},
|
||||
params: NotionBlock.tools?.config?.params,
|
||||
},
|
||||
},
|
||||
inputs: NotionBlock.inputs,
|
||||
outputs: {
|
||||
// Read page outputs
|
||||
content: {
|
||||
type: 'string',
|
||||
description: 'Page content in markdown format',
|
||||
condition: { field: 'operation', value: 'notion_read' },
|
||||
},
|
||||
title: {
|
||||
type: 'string',
|
||||
description: 'Page or database title',
|
||||
},
|
||||
url: {
|
||||
type: 'string',
|
||||
description: 'Notion URL',
|
||||
},
|
||||
id: {
|
||||
type: 'string',
|
||||
description: 'Page or database ID',
|
||||
condition: {
|
||||
field: 'operation',
|
||||
value: [
|
||||
'notion_create_page',
|
||||
'notion_create_database',
|
||||
'notion_read_database',
|
||||
'notion_update_page',
|
||||
],
|
||||
},
|
||||
},
|
||||
created_time: {
|
||||
type: 'string',
|
||||
description: 'Creation timestamp',
|
||||
},
|
||||
last_edited_time: {
|
||||
type: 'string',
|
||||
description: 'Last edit timestamp',
|
||||
},
|
||||
// Database query/search outputs
|
||||
results: {
|
||||
type: 'array',
|
||||
description: 'Array of results from query or search',
|
||||
condition: { field: 'operation', value: ['notion_query_database', 'notion_search'] },
|
||||
},
|
||||
has_more: {
|
||||
type: 'boolean',
|
||||
description: 'Whether more results are available',
|
||||
condition: { field: 'operation', value: ['notion_query_database', 'notion_search'] },
|
||||
},
|
||||
next_cursor: {
|
||||
type: 'string',
|
||||
description: 'Cursor for pagination',
|
||||
condition: { field: 'operation', value: ['notion_query_database', 'notion_search'] },
|
||||
},
|
||||
total_results: {
|
||||
type: 'number',
|
||||
description: 'Number of results returned',
|
||||
condition: { field: 'operation', value: ['notion_query_database', 'notion_search'] },
|
||||
},
|
||||
// Database schema
|
||||
properties: {
|
||||
type: 'json',
|
||||
description: 'Database properties schema',
|
||||
condition: { field: 'operation', value: ['notion_read_database', 'notion_create_database'] },
|
||||
},
|
||||
// Write output
|
||||
appended: {
|
||||
type: 'boolean',
|
||||
description: 'Whether content was successfully appended',
|
||||
condition: { field: 'operation', value: 'notion_write' },
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -250,7 +250,7 @@ Return ONLY the date/time string - no explanations, no quotes, no extra text.`,
|
||||
tasks: { type: 'json', description: 'Array of task objects from bulk read operations' },
|
||||
metadata: {
|
||||
type: 'json',
|
||||
description: 'Operation metadata including item IDs, types, and operation details',
|
||||
description: 'Operation metadata with itemId, noteId, contactId, taskId, itemType',
|
||||
},
|
||||
success: {
|
||||
type: 'boolean',
|
||||
|
||||
@@ -15,7 +15,7 @@ import { CirclebackBlock } from '@/blocks/blocks/circleback'
|
||||
import { ClayBlock } from '@/blocks/blocks/clay'
|
||||
import { ConditionBlock } from '@/blocks/blocks/condition'
|
||||
import { ConfluenceBlock } from '@/blocks/blocks/confluence'
|
||||
import { CursorBlock } from '@/blocks/blocks/cursor'
|
||||
import { CursorBlock, CursorV2Block } from '@/blocks/blocks/cursor'
|
||||
import { DatadogBlock } from '@/blocks/blocks/datadog'
|
||||
import { DiscordBlock } from '@/blocks/blocks/discord'
|
||||
import { DropboxBlock } from '@/blocks/blocks/dropbox'
|
||||
@@ -30,11 +30,11 @@ import { FirecrawlBlock } from '@/blocks/blocks/firecrawl'
|
||||
import { FirefliesBlock } from '@/blocks/blocks/fireflies'
|
||||
import { FunctionBlock } from '@/blocks/blocks/function'
|
||||
import { GenericWebhookBlock } from '@/blocks/blocks/generic_webhook'
|
||||
import { GitHubBlock } from '@/blocks/blocks/github'
|
||||
import { GitHubBlock, GitHubV2Block } from '@/blocks/blocks/github'
|
||||
import { GitLabBlock } from '@/blocks/blocks/gitlab'
|
||||
import { GmailBlock } from '@/blocks/blocks/gmail'
|
||||
import { GmailBlock, GmailV2Block } from '@/blocks/blocks/gmail'
|
||||
import { GoogleSearchBlock } from '@/blocks/blocks/google'
|
||||
import { GoogleCalendarBlock } from '@/blocks/blocks/google_calendar'
|
||||
import { GoogleCalendarBlock, GoogleCalendarV2Block } from '@/blocks/blocks/google_calendar'
|
||||
import { GoogleDocsBlock } from '@/blocks/blocks/google_docs'
|
||||
import { GoogleDriveBlock } from '@/blocks/blocks/google_drive'
|
||||
import { GoogleFormsBlock } from '@/blocks/blocks/google_form'
|
||||
@@ -54,7 +54,7 @@ import { ImageGeneratorBlock } from '@/blocks/blocks/image_generator'
|
||||
import { ImapBlock } from '@/blocks/blocks/imap'
|
||||
import { IncidentioBlock } from '@/blocks/blocks/incidentio'
|
||||
import { InputTriggerBlock } from '@/blocks/blocks/input_trigger'
|
||||
import { IntercomBlock } from '@/blocks/blocks/intercom'
|
||||
import { IntercomBlock, IntercomV2Block } from '@/blocks/blocks/intercom'
|
||||
import { JinaBlock } from '@/blocks/blocks/jina'
|
||||
import { JiraBlock } from '@/blocks/blocks/jira'
|
||||
import { JiraServiceManagementBlock } from '@/blocks/blocks/jira_service_management'
|
||||
@@ -77,7 +77,7 @@ import { MongoDBBlock } from '@/blocks/blocks/mongodb'
|
||||
import { MySQLBlock } from '@/blocks/blocks/mysql'
|
||||
import { Neo4jBlock } from '@/blocks/blocks/neo4j'
|
||||
import { NoteBlock } from '@/blocks/blocks/note'
|
||||
import { NotionBlock } from '@/blocks/blocks/notion'
|
||||
import { NotionBlock, NotionV2Block } from '@/blocks/blocks/notion'
|
||||
import { OneDriveBlock } from '@/blocks/blocks/onedrive'
|
||||
import { OpenAIBlock } from '@/blocks/blocks/openai'
|
||||
import { OutlookBlock } from '@/blocks/blocks/outlook'
|
||||
@@ -165,6 +165,7 @@ export const registry: Record<string, BlockConfig> = {
|
||||
condition: ConditionBlock,
|
||||
confluence: ConfluenceBlock,
|
||||
cursor: CursorBlock,
|
||||
cursor_v2: CursorV2Block,
|
||||
datadog: DatadogBlock,
|
||||
discord: DiscordBlock,
|
||||
dropbox: DropboxBlock,
|
||||
@@ -179,13 +180,16 @@ export const registry: Record<string, BlockConfig> = {
|
||||
function: FunctionBlock,
|
||||
generic_webhook: GenericWebhookBlock,
|
||||
github: GitHubBlock,
|
||||
github_v2: GitHubV2Block,
|
||||
gitlab: GitLabBlock,
|
||||
gmail: GmailBlock,
|
||||
gmail_v2: GmailV2Block,
|
||||
grain: GrainBlock,
|
||||
grafana: GrafanaBlock,
|
||||
greptile: GreptileBlock,
|
||||
guardrails: GuardrailsBlock,
|
||||
google_calendar: GoogleCalendarBlock,
|
||||
google_calendar_v2: GoogleCalendarV2Block,
|
||||
google_docs: GoogleDocsBlock,
|
||||
google_drive: GoogleDriveBlock,
|
||||
google_forms: GoogleFormsBlock,
|
||||
@@ -203,6 +207,7 @@ export const registry: Record<string, BlockConfig> = {
|
||||
incidentio: IncidentioBlock,
|
||||
input_trigger: InputTriggerBlock,
|
||||
intercom: IntercomBlock,
|
||||
intercom_v2: IntercomV2Block,
|
||||
jina: JinaBlock,
|
||||
jira: JiraBlock,
|
||||
jira_service_management: JiraServiceManagementBlock,
|
||||
@@ -226,6 +231,7 @@ export const registry: Record<string, BlockConfig> = {
|
||||
neo4j: Neo4jBlock,
|
||||
note: NoteBlock,
|
||||
notion: NotionBlock,
|
||||
notion_v2: NotionV2Block,
|
||||
onedrive: OneDriveBlock,
|
||||
openai: OpenAIBlock,
|
||||
outlook: OutlookBlock,
|
||||
|
||||
@@ -214,3 +214,38 @@ export const PROVIDER_CREDENTIAL_INPUTS = {
|
||||
bedrockSecretKey: { type: 'string', description: 'AWS Secret Access Key for Bedrock' },
|
||||
bedrockRegion: { type: 'string', description: 'AWS region for Bedrock' },
|
||||
} as const
|
||||
|
||||
/**
|
||||
* Create a versioned tool selector from an existing tool selector.
|
||||
*
|
||||
* This is useful for `*_v2` blocks where the operation UI remains the same, but
|
||||
* the underlying tool IDs are suffixed (e.g. `cursor_launch_agent` -> `cursor_launch_agent_v2`).
|
||||
*
|
||||
* @example
|
||||
* tools: {
|
||||
* config: {
|
||||
* tool: createVersionedToolSelector({
|
||||
* baseToolSelector: (params) => params.operation,
|
||||
* suffix: '_v2',
|
||||
* fallbackToolId: 'cursor_launch_agent_v2',
|
||||
* }),
|
||||
* },
|
||||
* }
|
||||
*/
|
||||
export function createVersionedToolSelector<TParams extends Record<string, any>>(args: {
|
||||
baseToolSelector: (params: TParams) => string
|
||||
suffix: `_${string}`
|
||||
fallbackToolId: string
|
||||
}): (params: TParams) => string {
|
||||
const { baseToolSelector, suffix, fallbackToolId } = args
|
||||
|
||||
return (params: TParams) => {
|
||||
try {
|
||||
const baseToolId = baseToolSelector(params)
|
||||
if (!baseToolId || typeof baseToolId !== 'string') return fallbackToolId
|
||||
return baseToolId.endsWith(suffix) ? baseToolId : `${baseToolId}${suffix}`
|
||||
} catch {
|
||||
return fallbackToolId
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,11 +56,9 @@ export const apolloAccountBulkCreateTool: ToolConfig<
|
||||
output: {
|
||||
created_accounts: data.accounts || data.created_accounts || [],
|
||||
failed_accounts: data.failed_accounts || [],
|
||||
metadata: {
|
||||
total_submitted: data.accounts?.length || 0,
|
||||
created: data.created_accounts?.length || data.accounts?.length || 0,
|
||||
failed: data.failed_accounts?.length || 0,
|
||||
},
|
||||
total_submitted: data.accounts?.length || 0,
|
||||
created: data.created_accounts?.length || data.accounts?.length || 0,
|
||||
failed: data.failed_accounts?.length || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
@@ -74,9 +72,17 @@ export const apolloAccountBulkCreateTool: ToolConfig<
|
||||
type: 'json',
|
||||
description: 'Array of accounts that failed to create',
|
||||
},
|
||||
metadata: {
|
||||
type: 'json',
|
||||
description: 'Bulk creation metadata including counts of created and failed accounts',
|
||||
total_submitted: {
|
||||
type: 'number',
|
||||
description: 'Total number of accounts submitted',
|
||||
},
|
||||
created: {
|
||||
type: 'number',
|
||||
description: 'Number of accounts successfully created',
|
||||
},
|
||||
failed: {
|
||||
type: 'number',
|
||||
description: 'Number of accounts that failed to create',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -56,11 +56,9 @@ export const apolloAccountBulkUpdateTool: ToolConfig<
|
||||
output: {
|
||||
updated_accounts: data.accounts || data.updated_accounts || [],
|
||||
failed_accounts: data.failed_accounts || [],
|
||||
metadata: {
|
||||
total_submitted: data.accounts?.length || 0,
|
||||
updated: data.updated_accounts?.length || data.accounts?.length || 0,
|
||||
failed: data.failed_accounts?.length || 0,
|
||||
},
|
||||
total_submitted: data.accounts?.length || 0,
|
||||
updated: data.updated_accounts?.length || data.accounts?.length || 0,
|
||||
failed: data.failed_accounts?.length || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
@@ -74,9 +72,17 @@ export const apolloAccountBulkUpdateTool: ToolConfig<
|
||||
type: 'json',
|
||||
description: 'Array of accounts that failed to update',
|
||||
},
|
||||
metadata: {
|
||||
type: 'json',
|
||||
description: 'Bulk update metadata including counts of updated and failed accounts',
|
||||
total_submitted: {
|
||||
type: 'number',
|
||||
description: 'Total number of accounts submitted',
|
||||
},
|
||||
updated: {
|
||||
type: 'number',
|
||||
description: 'Number of accounts successfully updated',
|
||||
},
|
||||
failed: {
|
||||
type: 'number',
|
||||
description: 'Number of accounts that failed to update',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -72,15 +72,13 @@ export const apolloAccountCreateTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
account: data.account || {},
|
||||
metadata: {
|
||||
created: !!data.account,
|
||||
},
|
||||
created: !!data.account,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
account: { type: 'json', description: 'Created account data from Apollo' },
|
||||
metadata: { type: 'json', description: 'Creation metadata including created status' },
|
||||
created: { type: 'boolean', description: 'Whether the account was successfully created' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -84,20 +84,17 @@ export const apolloAccountSearchTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
accounts: data.accounts || [],
|
||||
metadata: {
|
||||
page: data.pagination?.page || 1,
|
||||
per_page: data.pagination?.per_page || 25,
|
||||
total_entries: data.pagination?.total_entries || 0,
|
||||
},
|
||||
page: data.pagination?.page || 1,
|
||||
per_page: data.pagination?.per_page || 25,
|
||||
total_entries: data.pagination?.total_entries || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
accounts: { type: 'json', description: 'Array of accounts matching the search criteria' },
|
||||
metadata: {
|
||||
type: 'json',
|
||||
description: 'Pagination information including page, per_page, and total_entries',
|
||||
},
|
||||
page: { type: 'number', description: 'Current page number' },
|
||||
per_page: { type: 'number', description: 'Results per page' },
|
||||
total_entries: { type: 'number', description: 'Total matching entries' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -80,15 +80,13 @@ export const apolloAccountUpdateTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
account: data.account || {},
|
||||
metadata: {
|
||||
updated: !!data.account,
|
||||
},
|
||||
updated: !!data.account,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
account: { type: 'json', description: 'Updated account data from Apollo' },
|
||||
metadata: { type: 'json', description: 'Update metadata including updated status' },
|
||||
updated: { type: 'boolean', description: 'Whether the account was successfully updated' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -69,11 +69,9 @@ export const apolloContactBulkCreateTool: ToolConfig<
|
||||
output: {
|
||||
created_contacts: data.contacts || data.created_contacts || [],
|
||||
existing_contacts: data.existing_contacts || [],
|
||||
metadata: {
|
||||
total_submitted: data.contacts?.length || 0,
|
||||
created: data.created_contacts?.length || data.contacts?.length || 0,
|
||||
existing: data.existing_contacts?.length || 0,
|
||||
},
|
||||
total_submitted: data.contacts?.length || 0,
|
||||
created: data.created_contacts?.length || data.contacts?.length || 0,
|
||||
existing: data.existing_contacts?.length || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
@@ -87,9 +85,17 @@ export const apolloContactBulkCreateTool: ToolConfig<
|
||||
type: 'json',
|
||||
description: 'Array of existing contacts (when deduplication is enabled)',
|
||||
},
|
||||
metadata: {
|
||||
type: 'json',
|
||||
description: 'Bulk creation metadata including counts of created and existing contacts',
|
||||
total_submitted: {
|
||||
type: 'number',
|
||||
description: 'Total number of contacts submitted',
|
||||
},
|
||||
created: {
|
||||
type: 'number',
|
||||
description: 'Number of contacts successfully created',
|
||||
},
|
||||
existing: {
|
||||
type: 'number',
|
||||
description: 'Number of existing contacts found',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -56,11 +56,9 @@ export const apolloContactBulkUpdateTool: ToolConfig<
|
||||
output: {
|
||||
updated_contacts: data.contacts || data.updated_contacts || [],
|
||||
failed_contacts: data.failed_contacts || [],
|
||||
metadata: {
|
||||
total_submitted: data.contacts?.length || 0,
|
||||
updated: data.updated_contacts?.length || data.contacts?.length || 0,
|
||||
failed: data.failed_contacts?.length || 0,
|
||||
},
|
||||
total_submitted: data.contacts?.length || 0,
|
||||
updated: data.updated_contacts?.length || data.contacts?.length || 0,
|
||||
failed: data.failed_contacts?.length || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
@@ -74,9 +72,17 @@ export const apolloContactBulkUpdateTool: ToolConfig<
|
||||
type: 'json',
|
||||
description: 'Array of contacts that failed to update',
|
||||
},
|
||||
metadata: {
|
||||
type: 'json',
|
||||
description: 'Bulk update metadata including counts of updated and failed contacts',
|
||||
total_submitted: {
|
||||
type: 'number',
|
||||
description: 'Total number of contacts submitted',
|
||||
},
|
||||
updated: {
|
||||
type: 'number',
|
||||
description: 'Number of contacts successfully updated',
|
||||
},
|
||||
failed: {
|
||||
type: 'number',
|
||||
description: 'Number of contacts that failed to update',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -88,15 +88,13 @@ export const apolloContactCreateTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
contact: data.contact || {},
|
||||
metadata: {
|
||||
created: !!data.contact,
|
||||
},
|
||||
created: !!data.contact,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
contact: { type: 'json', description: 'Created contact data from Apollo' },
|
||||
metadata: { type: 'json', description: 'Creation metadata including created status' },
|
||||
created: { type: 'boolean', description: 'Whether the contact was successfully created' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -76,20 +76,17 @@ export const apolloContactSearchTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
contacts: data.contacts || [],
|
||||
metadata: {
|
||||
page: data.pagination?.page || 1,
|
||||
per_page: data.pagination?.per_page || 25,
|
||||
total_entries: data.pagination?.total_entries || 0,
|
||||
},
|
||||
page: data.pagination?.page || 1,
|
||||
per_page: data.pagination?.per_page || 25,
|
||||
total_entries: data.pagination?.total_entries || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
contacts: { type: 'json', description: 'Array of contacts matching the search criteria' },
|
||||
metadata: {
|
||||
type: 'json',
|
||||
description: 'Pagination information including page, per_page, and total_entries',
|
||||
},
|
||||
page: { type: 'number', description: 'Current page number' },
|
||||
per_page: { type: 'number', description: 'Results per page' },
|
||||
total_entries: { type: 'number', description: 'Total matching entries' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -94,15 +94,13 @@ export const apolloContactUpdateTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
contact: data.contact || {},
|
||||
metadata: {
|
||||
updated: !!data.contact,
|
||||
},
|
||||
updated: !!data.contact,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
contact: { type: 'json', description: 'Updated contact data from Apollo' },
|
||||
metadata: { type: 'json', description: 'Update metadata including updated status' },
|
||||
updated: { type: 'boolean', description: 'Whether the contact was successfully updated' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -41,15 +41,13 @@ export const apolloEmailAccountsTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
email_accounts: data.email_accounts || [],
|
||||
metadata: {
|
||||
total: data.email_accounts?.length || 0,
|
||||
},
|
||||
total: data.email_accounts?.length || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
email_accounts: { type: 'json', description: 'Array of team email accounts linked in Apollo' },
|
||||
metadata: { type: 'json', description: 'Metadata including total count of email accounts' },
|
||||
total: { type: 'number', description: 'Total count of email accounts' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -98,15 +98,13 @@ export const apolloOpportunityCreateTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
opportunity: data.opportunity || {},
|
||||
metadata: {
|
||||
created: !!data.opportunity,
|
||||
},
|
||||
created: !!data.opportunity,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
opportunity: { type: 'json', description: 'Created opportunity data from Apollo' },
|
||||
metadata: { type: 'json', description: 'Creation metadata including created status' },
|
||||
created: { type: 'boolean', description: 'Whether the opportunity was successfully created' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -48,15 +48,13 @@ export const apolloOpportunityGetTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
opportunity: data.opportunity || {},
|
||||
metadata: {
|
||||
found: !!data.opportunity,
|
||||
},
|
||||
found: !!data.opportunity,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
opportunity: { type: 'json', description: 'Complete opportunity data from Apollo' },
|
||||
metadata: { type: 'json', description: 'Retrieval metadata including found status' },
|
||||
found: { type: 'boolean', description: 'Whether the opportunity was found' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -91,11 +91,9 @@ export const apolloOpportunitySearchTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
opportunities: data.opportunities || [],
|
||||
metadata: {
|
||||
page: data.pagination?.page || 1,
|
||||
per_page: data.pagination?.per_page || 25,
|
||||
total_entries: data.pagination?.total_entries || 0,
|
||||
},
|
||||
page: data.pagination?.page || 1,
|
||||
per_page: data.pagination?.per_page || 25,
|
||||
total_entries: data.pagination?.total_entries || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
@@ -105,9 +103,8 @@ export const apolloOpportunitySearchTool: ToolConfig<
|
||||
type: 'json',
|
||||
description: 'Array of opportunities matching the search criteria',
|
||||
},
|
||||
metadata: {
|
||||
type: 'json',
|
||||
description: 'Pagination information including page, per_page, and total_entries',
|
||||
},
|
||||
page: { type: 'number', description: 'Current page number' },
|
||||
per_page: { type: 'number', description: 'Results per page' },
|
||||
total_entries: { type: 'number', description: 'Total matching entries' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -97,15 +97,13 @@ export const apolloOpportunityUpdateTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
opportunity: data.opportunity || {},
|
||||
metadata: {
|
||||
updated: !!data.opportunity,
|
||||
},
|
||||
updated: !!data.opportunity,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
opportunity: { type: 'json', description: 'Updated opportunity data from Apollo' },
|
||||
metadata: { type: 'json', description: 'Update metadata including updated status' },
|
||||
updated: { type: 'boolean', description: 'Whether the opportunity was successfully updated' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -53,19 +53,15 @@ export const apolloOrganizationBulkEnrichTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
organizations: data.matches || [],
|
||||
metadata: {
|
||||
total: data.matches?.length || 0,
|
||||
enriched: data.matches?.filter((o: any) => o).length || 0,
|
||||
},
|
||||
total: data.matches?.length || 0,
|
||||
enriched: data.matches?.filter((o: any) => o).length || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
organizations: { type: 'json', description: 'Array of enriched organization data' },
|
||||
metadata: {
|
||||
type: 'json',
|
||||
description: 'Bulk enrichment metadata including total and enriched counts',
|
||||
},
|
||||
total: { type: 'number', description: 'Total number of organizations processed' },
|
||||
enriched: { type: 'number', description: 'Number of organizations successfully enriched' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -71,15 +71,16 @@ export const apolloOrganizationEnrichTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
organization: data.organization || {},
|
||||
metadata: {
|
||||
enriched: !!data.organization,
|
||||
},
|
||||
enriched: !!data.organization,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
organization: { type: 'json', description: 'Enriched organization data from Apollo' },
|
||||
metadata: { type: 'json', description: 'Enrichment metadata including enriched status' },
|
||||
enriched: {
|
||||
type: 'boolean',
|
||||
description: 'Whether the organization was successfully enriched',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -101,11 +101,9 @@ export const apolloOrganizationSearchTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
organizations: data.organizations || [],
|
||||
metadata: {
|
||||
page: data.pagination?.page || 1,
|
||||
per_page: data.pagination?.per_page || 25,
|
||||
total_entries: data.pagination?.total_entries || 0,
|
||||
},
|
||||
page: data.pagination?.page || 1,
|
||||
per_page: data.pagination?.per_page || 25,
|
||||
total_entries: data.pagination?.total_entries || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
@@ -115,9 +113,8 @@ export const apolloOrganizationSearchTool: ToolConfig<
|
||||
type: 'json',
|
||||
description: 'Array of organizations matching the search criteria',
|
||||
},
|
||||
metadata: {
|
||||
type: 'json',
|
||||
description: 'Pagination information including page, per_page, and total_entries',
|
||||
},
|
||||
page: { type: 'number', description: 'Current page number' },
|
||||
per_page: { type: 'number', description: 'Results per page' },
|
||||
total_entries: { type: 'number', description: 'Total matching entries' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -67,19 +67,15 @@ export const apolloPeopleBulkEnrichTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
people: data.matches || [],
|
||||
metadata: {
|
||||
total: data.matches?.length || 0,
|
||||
enriched: data.matches?.filter((p: any) => p).length || 0,
|
||||
},
|
||||
total: data.matches?.length || 0,
|
||||
enriched: data.matches?.filter((p: any) => p).length || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
people: { type: 'json', description: 'Array of enriched people data' },
|
||||
metadata: {
|
||||
type: 'json',
|
||||
description: 'Bulk enrichment metadata including total and enriched counts',
|
||||
},
|
||||
total: { type: 'number', description: 'Total number of people processed' },
|
||||
enriched: { type: 'number', description: 'Number of people successfully enriched' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -107,15 +107,13 @@ export const apolloPeopleEnrichTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
person: data.person || {},
|
||||
metadata: {
|
||||
enriched: !!data.person,
|
||||
},
|
||||
enriched: !!data.person,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
person: { type: 'json', description: 'Enriched person data from Apollo' },
|
||||
metadata: { type: 'json', description: 'Enrichment metadata including enriched status' },
|
||||
enriched: { type: 'boolean', description: 'Whether the person was successfully enriched' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -107,20 +107,17 @@ export const apolloPeopleSearchTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
people: data.people || [],
|
||||
metadata: {
|
||||
page: data.pagination?.page || 1,
|
||||
per_page: data.pagination?.per_page || 25,
|
||||
total_entries: data.pagination?.total_entries || 0,
|
||||
},
|
||||
page: data.pagination?.page || 1,
|
||||
per_page: data.pagination?.per_page || 25,
|
||||
total_entries: data.pagination?.total_entries || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
people: { type: 'json', description: 'Array of people matching the search criteria' },
|
||||
metadata: {
|
||||
type: 'json',
|
||||
description: 'Pagination information including page, per_page, and total_entries',
|
||||
},
|
||||
page: { type: 'number', description: 'Current page number' },
|
||||
per_page: { type: 'number', description: 'Results per page' },
|
||||
total_entries: { type: 'number', description: 'Total matching entries' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -81,19 +81,15 @@ export const apolloSequenceAddContactsTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
contacts_added: data.contacts || params?.contact_ids || [],
|
||||
metadata: {
|
||||
sequence_id: params?.sequence_id || '',
|
||||
total_added: data.contacts?.length || params?.contact_ids?.length || 0,
|
||||
},
|
||||
sequence_id: params?.sequence_id || '',
|
||||
total_added: data.contacts?.length || params?.contact_ids?.length || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
contacts_added: { type: 'json', description: 'Array of contact IDs added to the sequence' },
|
||||
metadata: {
|
||||
type: 'json',
|
||||
description: 'Sequence metadata including sequence_id and total_added count',
|
||||
},
|
||||
sequence_id: { type: 'string', description: 'ID of the sequence contacts were added to' },
|
||||
total_added: { type: 'number', description: 'Total number of contacts added' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -74,11 +74,9 @@ export const apolloSequenceSearchTool: ToolConfig<
|
||||
success: true,
|
||||
output: {
|
||||
sequences: data.emailer_campaigns || [],
|
||||
metadata: {
|
||||
page: data.pagination?.page || 1,
|
||||
per_page: data.pagination?.per_page || 25,
|
||||
total_entries: data.pagination?.total_entries || 0,
|
||||
},
|
||||
page: data.pagination?.page || 1,
|
||||
per_page: data.pagination?.per_page || 25,
|
||||
total_entries: data.pagination?.total_entries || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
@@ -88,9 +86,8 @@ export const apolloSequenceSearchTool: ToolConfig<
|
||||
type: 'json',
|
||||
description: 'Array of sequences/campaigns matching the search criteria',
|
||||
},
|
||||
metadata: {
|
||||
type: 'json',
|
||||
description: 'Pagination information including page, per_page, and total_entries',
|
||||
},
|
||||
page: { type: 'number', description: 'Current page number' },
|
||||
per_page: { type: 'number', description: 'Results per page' },
|
||||
total_entries: { type: 'number', description: 'Total matching entries' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -89,15 +89,13 @@ export const apolloTaskCreateTool: ToolConfig<ApolloTaskCreateParams, ApolloTask
|
||||
created: true,
|
||||
message: 'Task created successfully. Apollo API does not return task details.',
|
||||
},
|
||||
metadata: {
|
||||
created: data === true || !!data.task,
|
||||
},
|
||||
created: data === true || !!data.task,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
task: { type: 'json', description: 'Created task data from Apollo' },
|
||||
metadata: { type: 'json', description: 'Creation metadata including created status' },
|
||||
created: { type: 'boolean', description: 'Whether the task was successfully created' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -78,20 +78,17 @@ export const apolloTaskSearchTool: ToolConfig<ApolloTaskSearchParams, ApolloTask
|
||||
success: true,
|
||||
output: {
|
||||
tasks: data.tasks || [],
|
||||
metadata: {
|
||||
page: data.pagination?.page || 1,
|
||||
per_page: data.pagination?.per_page || 25,
|
||||
total_entries: data.pagination?.total_entries || 0,
|
||||
},
|
||||
page: data.pagination?.page || 1,
|
||||
per_page: data.pagination?.per_page || 25,
|
||||
total_entries: data.pagination?.total_entries || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
tasks: { type: 'json', description: 'Array of tasks matching the search criteria' },
|
||||
metadata: {
|
||||
type: 'json',
|
||||
description: 'Pagination information including page, per_page, and total_entries',
|
||||
},
|
||||
page: { type: 'number', description: 'Current page number' },
|
||||
per_page: { type: 'number', description: 'Results per page' },
|
||||
total_entries: { type: 'number', description: 'Total matching entries' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -89,11 +89,9 @@ export interface ApolloPeopleSearchParams extends ApolloBaseParams {
|
||||
export interface ApolloPeopleSearchResponse extends ToolResponse {
|
||||
output: {
|
||||
people: ApolloPerson[]
|
||||
metadata: {
|
||||
page: number
|
||||
per_page: number
|
||||
total_entries: number
|
||||
}
|
||||
page: number
|
||||
per_page: number
|
||||
total_entries: number
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,9 +110,7 @@ export interface ApolloPeopleEnrichParams extends ApolloBaseParams {
|
||||
export interface ApolloPeopleEnrichResponse extends ToolResponse {
|
||||
output: {
|
||||
person: ApolloPerson
|
||||
metadata: {
|
||||
enriched: boolean
|
||||
}
|
||||
enriched: boolean
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,10 +130,8 @@ export interface ApolloPeopleBulkEnrichParams extends ApolloBaseParams {
|
||||
export interface ApolloPeopleBulkEnrichResponse extends ToolResponse {
|
||||
output: {
|
||||
people: ApolloPerson[]
|
||||
metadata: {
|
||||
total: number
|
||||
enriched: number
|
||||
}
|
||||
total: number
|
||||
enriched: number
|
||||
}
|
||||
}
|
||||
|
||||
@@ -154,11 +148,9 @@ export interface ApolloOrganizationSearchParams extends ApolloBaseParams {
|
||||
export interface ApolloOrganizationSearchResponse extends ToolResponse {
|
||||
output: {
|
||||
organizations: ApolloOrganization[]
|
||||
metadata: {
|
||||
page: number
|
||||
per_page: number
|
||||
total_entries: number
|
||||
}
|
||||
page: number
|
||||
per_page: number
|
||||
total_entries: number
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,9 +163,7 @@ export interface ApolloOrganizationEnrichParams extends ApolloBaseParams {
|
||||
export interface ApolloOrganizationEnrichResponse extends ToolResponse {
|
||||
output: {
|
||||
organization: ApolloOrganization
|
||||
metadata: {
|
||||
enriched: boolean
|
||||
}
|
||||
enriched: boolean
|
||||
}
|
||||
}
|
||||
|
||||
@@ -188,10 +178,8 @@ export interface ApolloOrganizationBulkEnrichParams extends ApolloBaseParams {
|
||||
export interface ApolloOrganizationBulkEnrichResponse extends ToolResponse {
|
||||
output: {
|
||||
organizations: ApolloOrganization[]
|
||||
metadata: {
|
||||
total: number
|
||||
enriched: number
|
||||
}
|
||||
total: number
|
||||
enriched: number
|
||||
}
|
||||
}
|
||||
|
||||
@@ -208,9 +196,7 @@ export interface ApolloContactCreateParams extends ApolloBaseParams {
|
||||
export interface ApolloContactCreateResponse extends ToolResponse {
|
||||
output: {
|
||||
contact: ApolloContact
|
||||
metadata: {
|
||||
created: boolean
|
||||
}
|
||||
created: boolean
|
||||
}
|
||||
}
|
||||
|
||||
@@ -228,9 +214,7 @@ export interface ApolloContactUpdateParams extends ApolloBaseParams {
|
||||
export interface ApolloContactUpdateResponse extends ToolResponse {
|
||||
output: {
|
||||
contact: ApolloContact
|
||||
metadata: {
|
||||
updated: boolean
|
||||
}
|
||||
updated: boolean
|
||||
}
|
||||
}
|
||||
|
||||
@@ -251,11 +235,9 @@ export interface ApolloContactBulkCreateResponse extends ToolResponse {
|
||||
output: {
|
||||
created_contacts: ApolloContact[]
|
||||
existing_contacts: ApolloContact[]
|
||||
metadata: {
|
||||
total_submitted: number
|
||||
created: number
|
||||
existing: number
|
||||
}
|
||||
total_submitted: number
|
||||
created: number
|
||||
existing: number
|
||||
}
|
||||
}
|
||||
|
||||
@@ -276,11 +258,9 @@ export interface ApolloContactBulkUpdateResponse extends ToolResponse {
|
||||
output: {
|
||||
updated_contacts: ApolloContact[]
|
||||
failed_contacts: Array<{ id: string; error: string }>
|
||||
metadata: {
|
||||
total_submitted: number
|
||||
updated: number
|
||||
failed: number
|
||||
}
|
||||
total_submitted: number
|
||||
updated: number
|
||||
failed: number
|
||||
}
|
||||
}
|
||||
|
||||
@@ -295,11 +275,9 @@ export interface ApolloContactSearchParams extends ApolloBaseParams {
|
||||
export interface ApolloContactSearchResponse extends ToolResponse {
|
||||
output: {
|
||||
contacts: ApolloContact[]
|
||||
metadata: {
|
||||
page: number
|
||||
per_page: number
|
||||
total_entries: number
|
||||
}
|
||||
page: number
|
||||
per_page: number
|
||||
total_entries: number
|
||||
}
|
||||
}
|
||||
|
||||
@@ -314,9 +292,7 @@ export interface ApolloAccountCreateParams extends ApolloBaseParams {
|
||||
export interface ApolloAccountCreateResponse extends ToolResponse {
|
||||
output: {
|
||||
account: ApolloAccount
|
||||
metadata: {
|
||||
created: boolean
|
||||
}
|
||||
created: boolean
|
||||
}
|
||||
}
|
||||
|
||||
@@ -332,9 +308,7 @@ export interface ApolloAccountUpdateParams extends ApolloBaseParams {
|
||||
export interface ApolloAccountUpdateResponse extends ToolResponse {
|
||||
output: {
|
||||
account: ApolloAccount
|
||||
metadata: {
|
||||
updated: boolean
|
||||
}
|
||||
updated: boolean
|
||||
}
|
||||
}
|
||||
|
||||
@@ -350,11 +324,9 @@ export interface ApolloAccountSearchParams extends ApolloBaseParams {
|
||||
export interface ApolloAccountSearchResponse extends ToolResponse {
|
||||
output: {
|
||||
accounts: ApolloAccount[]
|
||||
metadata: {
|
||||
page: number
|
||||
per_page: number
|
||||
total_entries: number
|
||||
}
|
||||
page: number
|
||||
per_page: number
|
||||
total_entries: number
|
||||
}
|
||||
}
|
||||
|
||||
@@ -372,11 +344,9 @@ export interface ApolloAccountBulkCreateResponse extends ToolResponse {
|
||||
output: {
|
||||
created_accounts: ApolloAccount[]
|
||||
failed_accounts: Array<{ name: string; error: string }>
|
||||
metadata: {
|
||||
total_submitted: number
|
||||
created: number
|
||||
failed: number
|
||||
}
|
||||
total_submitted: number
|
||||
created: number
|
||||
failed: number
|
||||
}
|
||||
}
|
||||
|
||||
@@ -395,11 +365,9 @@ export interface ApolloAccountBulkUpdateResponse extends ToolResponse {
|
||||
output: {
|
||||
updated_accounts: ApolloAccount[]
|
||||
failed_accounts: Array<{ id: string; error: string }>
|
||||
metadata: {
|
||||
total_submitted: number
|
||||
updated: number
|
||||
failed: number
|
||||
}
|
||||
total_submitted: number
|
||||
updated: number
|
||||
failed: number
|
||||
}
|
||||
}
|
||||
|
||||
@@ -414,10 +382,8 @@ export interface ApolloSequenceAddContactsParams extends ApolloBaseParams {
|
||||
export interface ApolloSequenceAddContactsResponse extends ToolResponse {
|
||||
output: {
|
||||
contacts_added: string[]
|
||||
metadata: {
|
||||
sequence_id: string
|
||||
total_added: number
|
||||
}
|
||||
sequence_id: string
|
||||
total_added: number
|
||||
}
|
||||
}
|
||||
|
||||
@@ -434,9 +400,7 @@ export interface ApolloTaskCreateParams extends ApolloBaseParams {
|
||||
export interface ApolloTaskCreateResponse extends ToolResponse {
|
||||
output: {
|
||||
task: ApolloTask
|
||||
metadata: {
|
||||
created: boolean
|
||||
}
|
||||
created: boolean
|
||||
}
|
||||
}
|
||||
|
||||
@@ -452,11 +416,9 @@ export interface ApolloTaskSearchParams extends ApolloBaseParams {
|
||||
export interface ApolloTaskSearchResponse extends ToolResponse {
|
||||
output: {
|
||||
tasks: ApolloTask[]
|
||||
metadata: {
|
||||
page: number
|
||||
per_page: number
|
||||
total_entries: number
|
||||
}
|
||||
page: number
|
||||
per_page: number
|
||||
total_entries: number
|
||||
}
|
||||
}
|
||||
|
||||
@@ -470,9 +432,7 @@ export interface ApolloEmailAccountsResponse extends ToolResponse {
|
||||
email: string
|
||||
active: boolean
|
||||
}>
|
||||
metadata: {
|
||||
total: number
|
||||
}
|
||||
total: number
|
||||
}
|
||||
}
|
||||
|
||||
@@ -490,9 +450,7 @@ export interface ApolloOpportunityCreateParams extends ApolloBaseParams {
|
||||
export interface ApolloOpportunityCreateResponse extends ToolResponse {
|
||||
output: {
|
||||
opportunity: ApolloOpportunity
|
||||
metadata: {
|
||||
created: boolean
|
||||
}
|
||||
created: boolean
|
||||
}
|
||||
}
|
||||
|
||||
@@ -509,11 +467,9 @@ export interface ApolloOpportunitySearchParams extends ApolloBaseParams {
|
||||
export interface ApolloOpportunitySearchResponse extends ToolResponse {
|
||||
output: {
|
||||
opportunities: ApolloOpportunity[]
|
||||
metadata: {
|
||||
page: number
|
||||
per_page: number
|
||||
total_entries: number
|
||||
}
|
||||
page: number
|
||||
per_page: number
|
||||
total_entries: number
|
||||
}
|
||||
}
|
||||
|
||||
@@ -525,9 +481,7 @@ export interface ApolloOpportunityGetParams extends ApolloBaseParams {
|
||||
export interface ApolloOpportunityGetResponse extends ToolResponse {
|
||||
output: {
|
||||
opportunity: ApolloOpportunity
|
||||
metadata: {
|
||||
found: boolean
|
||||
}
|
||||
found: boolean
|
||||
}
|
||||
}
|
||||
|
||||
@@ -545,9 +499,7 @@ export interface ApolloOpportunityUpdateParams extends ApolloBaseParams {
|
||||
export interface ApolloOpportunityUpdateResponse extends ToolResponse {
|
||||
output: {
|
||||
opportunity: ApolloOpportunity
|
||||
metadata: {
|
||||
updated: boolean
|
||||
}
|
||||
updated: boolean
|
||||
}
|
||||
}
|
||||
|
||||
@@ -575,11 +527,9 @@ export interface ApolloSequenceSearchParams extends ApolloBaseParams {
|
||||
export interface ApolloSequenceSearchResponse extends ToolResponse {
|
||||
output: {
|
||||
sequences: ApolloSequence[]
|
||||
metadata: {
|
||||
page: number
|
||||
per_page: number
|
||||
total_entries: number
|
||||
}
|
||||
page: number
|
||||
per_page: number
|
||||
total_entries: number
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
import type { AddFollowupParams, AddFollowupResponse } from '@/tools/cursor/types'
|
||||
import type { ToolConfig } from '@/tools/types'
|
||||
|
||||
export const addFollowupTool: ToolConfig<AddFollowupParams, AddFollowupResponse> = {
|
||||
id: 'cursor_add_followup',
|
||||
name: 'Cursor Add Follow-up',
|
||||
description: 'Add a follow-up instruction to an existing cloud agent.',
|
||||
version: '1.0.0',
|
||||
|
||||
const addFollowupBase = {
|
||||
params: {
|
||||
apiKey: {
|
||||
type: 'string',
|
||||
@@ -33,15 +28,15 @@ export const addFollowupTool: ToolConfig<AddFollowupParams, AddFollowupResponse>
|
||||
description: 'JSON array of image objects with base64 data and dimensions (max 5)',
|
||||
},
|
||||
},
|
||||
|
||||
request: {
|
||||
url: (params) => `https://api.cursor.com/v0/agents/${params.agentId}/followup`,
|
||||
url: (params: AddFollowupParams) =>
|
||||
`https://api.cursor.com/v0/agents/${params.agentId}/followup`,
|
||||
method: 'POST',
|
||||
headers: (params) => ({
|
||||
headers: (params: AddFollowupParams) => ({
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: `Basic ${Buffer.from(`${params.apiKey}:`).toString('base64')}`,
|
||||
}),
|
||||
body: (params) => {
|
||||
body: (params: AddFollowupParams) => {
|
||||
const body: Record<string, any> = {
|
||||
prompt: {
|
||||
text: params.followupPromptText,
|
||||
@@ -59,6 +54,15 @@ export const addFollowupTool: ToolConfig<AddFollowupParams, AddFollowupResponse>
|
||||
return body
|
||||
},
|
||||
},
|
||||
} satisfies Pick<ToolConfig<AddFollowupParams, any>, 'params' | 'request'>
|
||||
|
||||
export const addFollowupTool: ToolConfig<AddFollowupParams, AddFollowupResponse> = {
|
||||
id: 'cursor_add_followup',
|
||||
name: 'Cursor Add Follow-up',
|
||||
description: 'Add a follow-up instruction to an existing cloud agent.',
|
||||
version: '1.0.0',
|
||||
|
||||
...addFollowupBase,
|
||||
|
||||
transformResponse: async (response) => {
|
||||
const data = await response.json()
|
||||
@@ -87,3 +91,32 @@ export const addFollowupTool: ToolConfig<AddFollowupParams, AddFollowupResponse>
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
interface AddFollowupV2Response {
|
||||
success: boolean
|
||||
output: {
|
||||
id: string
|
||||
}
|
||||
}
|
||||
|
||||
export const addFollowupV2Tool: ToolConfig<AddFollowupParams, AddFollowupV2Response> = {
|
||||
...addFollowupBase,
|
||||
id: 'cursor_add_followup_v2',
|
||||
name: 'Cursor Add Follow-up',
|
||||
description:
|
||||
'Add a follow-up instruction to an existing cloud agent. Returns API-aligned fields only.',
|
||||
version: '2.0.0',
|
||||
transformResponse: async (response) => {
|
||||
const data = await response.json()
|
||||
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: data.id,
|
||||
},
|
||||
}
|
||||
},
|
||||
outputs: {
|
||||
id: { type: 'string', description: 'Agent ID' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
import type { DeleteAgentParams, DeleteAgentResponse } from '@/tools/cursor/types'
|
||||
import type { ToolConfig } from '@/tools/types'
|
||||
|
||||
export const deleteAgentTool: ToolConfig<DeleteAgentParams, DeleteAgentResponse> = {
|
||||
id: 'cursor_delete_agent',
|
||||
name: 'Cursor Delete Agent',
|
||||
description: 'Permanently delete a cloud agent. This action cannot be undone.',
|
||||
version: '1.0.0',
|
||||
|
||||
const deleteAgentBase = {
|
||||
params: {
|
||||
apiKey: {
|
||||
type: 'string',
|
||||
@@ -21,14 +16,22 @@ export const deleteAgentTool: ToolConfig<DeleteAgentParams, DeleteAgentResponse>
|
||||
description: 'Unique identifier for the cloud agent (e.g., bc_abc123)',
|
||||
},
|
||||
},
|
||||
|
||||
request: {
|
||||
url: (params) => `https://api.cursor.com/v0/agents/${params.agentId}`,
|
||||
url: (params: DeleteAgentParams) => `https://api.cursor.com/v0/agents/${params.agentId}`,
|
||||
method: 'DELETE',
|
||||
headers: (params) => ({
|
||||
headers: (params: DeleteAgentParams) => ({
|
||||
Authorization: `Basic ${Buffer.from(`${params.apiKey}:`).toString('base64')}`,
|
||||
}),
|
||||
},
|
||||
} satisfies Pick<ToolConfig<DeleteAgentParams, any>, 'params' | 'request'>
|
||||
|
||||
export const deleteAgentTool: ToolConfig<DeleteAgentParams, DeleteAgentResponse> = {
|
||||
id: 'cursor_delete_agent',
|
||||
name: 'Cursor Delete Agent',
|
||||
description: 'Permanently delete a cloud agent. This action cannot be undone.',
|
||||
version: '1.0.0',
|
||||
|
||||
...deleteAgentBase,
|
||||
|
||||
transformResponse: async (response) => {
|
||||
const data = await response.json()
|
||||
@@ -57,3 +60,31 @@ export const deleteAgentTool: ToolConfig<DeleteAgentParams, DeleteAgentResponse>
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
interface DeleteAgentV2Response {
|
||||
success: boolean
|
||||
output: {
|
||||
id: string
|
||||
}
|
||||
}
|
||||
|
||||
export const deleteAgentV2Tool: ToolConfig<DeleteAgentParams, DeleteAgentV2Response> = {
|
||||
...deleteAgentBase,
|
||||
id: 'cursor_delete_agent_v2',
|
||||
name: 'Cursor Delete Agent',
|
||||
description: 'Permanently delete a cloud agent. Returns API-aligned fields only.',
|
||||
version: '2.0.0',
|
||||
transformResponse: async (response) => {
|
||||
const data = await response.json()
|
||||
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: data.id,
|
||||
},
|
||||
}
|
||||
},
|
||||
outputs: {
|
||||
id: { type: 'string', description: 'Agent ID' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
import type { GetAgentParams, GetAgentResponse } from '@/tools/cursor/types'
|
||||
import type { ToolConfig } from '@/tools/types'
|
||||
|
||||
export const getAgentTool: ToolConfig<GetAgentParams, GetAgentResponse> = {
|
||||
id: 'cursor_get_agent',
|
||||
name: 'Cursor Get Agent',
|
||||
description: 'Retrieve the current status and results of a cloud agent.',
|
||||
version: '1.0.0',
|
||||
|
||||
const getAgentBase = {
|
||||
params: {
|
||||
apiKey: {
|
||||
type: 'string',
|
||||
@@ -21,14 +16,22 @@ export const getAgentTool: ToolConfig<GetAgentParams, GetAgentResponse> = {
|
||||
description: 'Unique identifier for the cloud agent (e.g., bc_abc123)',
|
||||
},
|
||||
},
|
||||
|
||||
request: {
|
||||
url: (params) => `https://api.cursor.com/v0/agents/${params.agentId}`,
|
||||
url: (params: GetAgentParams) => `https://api.cursor.com/v0/agents/${params.agentId}`,
|
||||
method: 'GET',
|
||||
headers: (params) => ({
|
||||
headers: (params: GetAgentParams) => ({
|
||||
Authorization: `Basic ${Buffer.from(`${params.apiKey}:`).toString('base64')}`,
|
||||
}),
|
||||
},
|
||||
} satisfies Pick<ToolConfig<GetAgentParams, any>, 'params' | 'request'>
|
||||
|
||||
export const getAgentTool: ToolConfig<GetAgentParams, GetAgentResponse> = {
|
||||
id: 'cursor_get_agent',
|
||||
name: 'Cursor Get Agent',
|
||||
description: 'Retrieve the current status and results of a cloud agent.',
|
||||
version: '1.0.0',
|
||||
|
||||
...getAgentBase,
|
||||
|
||||
transformResponse: async (response) => {
|
||||
const data = await response.json()
|
||||
@@ -59,3 +62,50 @@ export const getAgentTool: ToolConfig<GetAgentParams, GetAgentResponse> = {
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
interface GetAgentV2Response {
|
||||
success: boolean
|
||||
output: {
|
||||
id: string
|
||||
name: string
|
||||
status: string
|
||||
source: Record<string, any>
|
||||
target: Record<string, any>
|
||||
summary?: string
|
||||
createdAt: string
|
||||
}
|
||||
}
|
||||
|
||||
export const getAgentV2Tool: ToolConfig<GetAgentParams, GetAgentV2Response> = {
|
||||
...getAgentBase,
|
||||
id: 'cursor_get_agent_v2',
|
||||
name: 'Cursor Get Agent',
|
||||
description:
|
||||
'Retrieve the current status and results of a cloud agent. Returns API-aligned fields only.',
|
||||
version: '2.0.0',
|
||||
transformResponse: async (response) => {
|
||||
const data = await response.json()
|
||||
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: data.id,
|
||||
name: data.name,
|
||||
status: data.status,
|
||||
source: data.source,
|
||||
target: data.target,
|
||||
summary: data.summary,
|
||||
createdAt: data.createdAt,
|
||||
},
|
||||
}
|
||||
},
|
||||
outputs: {
|
||||
id: { type: 'string', description: 'Agent ID' },
|
||||
name: { type: 'string', description: 'Agent name' },
|
||||
status: { type: 'string', description: 'Agent status' },
|
||||
source: { type: 'json', description: 'Source repository info' },
|
||||
target: { type: 'json', description: 'Target branch/PR info' },
|
||||
summary: { type: 'string', description: 'Agent summary', optional: true },
|
||||
createdAt: { type: 'string', description: 'Creation timestamp' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,13 +1,7 @@
|
||||
import type { GetConversationParams, GetConversationResponse } from '@/tools/cursor/types'
|
||||
import type { ToolConfig } from '@/tools/types'
|
||||
|
||||
export const getConversationTool: ToolConfig<GetConversationParams, GetConversationResponse> = {
|
||||
id: 'cursor_get_conversation',
|
||||
name: 'Cursor Get Conversation',
|
||||
description:
|
||||
'Retrieve the conversation history of a cloud agent, including all user prompts and assistant responses.',
|
||||
version: '1.0.0',
|
||||
|
||||
const getConversationBase = {
|
||||
params: {
|
||||
apiKey: {
|
||||
type: 'string',
|
||||
@@ -22,14 +16,24 @@ export const getConversationTool: ToolConfig<GetConversationParams, GetConversat
|
||||
description: 'Unique identifier for the cloud agent (e.g., bc_abc123)',
|
||||
},
|
||||
},
|
||||
|
||||
request: {
|
||||
url: (params) => `https://api.cursor.com/v0/agents/${params.agentId}/conversation`,
|
||||
url: (params: GetConversationParams) =>
|
||||
`https://api.cursor.com/v0/agents/${params.agentId}/conversation`,
|
||||
method: 'GET',
|
||||
headers: (params) => ({
|
||||
headers: (params: GetConversationParams) => ({
|
||||
Authorization: `Basic ${Buffer.from(`${params.apiKey}:`).toString('base64')}`,
|
||||
}),
|
||||
},
|
||||
} satisfies Pick<ToolConfig<GetConversationParams, any>, 'params' | 'request'>
|
||||
|
||||
export const getConversationTool: ToolConfig<GetConversationParams, GetConversationResponse> = {
|
||||
id: 'cursor_get_conversation',
|
||||
name: 'Cursor Get Conversation',
|
||||
description:
|
||||
'Retrieve the conversation history of a cloud agent, including all user prompts and assistant responses.',
|
||||
version: '1.0.0',
|
||||
|
||||
...getConversationBase,
|
||||
|
||||
transformResponse: async (response) => {
|
||||
const data = await response.json()
|
||||
@@ -61,3 +65,35 @@ export const getConversationTool: ToolConfig<GetConversationParams, GetConversat
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
interface GetConversationV2Response {
|
||||
success: boolean
|
||||
output: {
|
||||
id: string
|
||||
messages: unknown[]
|
||||
}
|
||||
}
|
||||
|
||||
export const getConversationV2Tool: ToolConfig<GetConversationParams, GetConversationV2Response> = {
|
||||
...getConversationBase,
|
||||
id: 'cursor_get_conversation_v2',
|
||||
name: 'Cursor Get Conversation',
|
||||
description:
|
||||
'Retrieve the conversation history of a cloud agent, including all user prompts and assistant responses. Returns API-aligned fields only.',
|
||||
version: '2.0.0',
|
||||
transformResponse: async (response) => {
|
||||
const data = await response.json()
|
||||
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: data.id,
|
||||
messages: data.messages,
|
||||
},
|
||||
}
|
||||
},
|
||||
outputs: {
|
||||
id: { type: 'string', description: 'Agent ID' },
|
||||
messages: { type: 'array', description: 'Array of conversation messages' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { addFollowupTool } from '@/tools/cursor/add_followup'
|
||||
import { deleteAgentTool } from '@/tools/cursor/delete_agent'
|
||||
import { getAgentTool } from '@/tools/cursor/get_agent'
|
||||
import { getConversationTool } from '@/tools/cursor/get_conversation'
|
||||
import { launchAgentTool } from '@/tools/cursor/launch_agent'
|
||||
import { listAgentsTool } from '@/tools/cursor/list_agents'
|
||||
import { stopAgentTool } from '@/tools/cursor/stop_agent'
|
||||
import { addFollowupTool, addFollowupV2Tool } from '@/tools/cursor/add_followup'
|
||||
import { deleteAgentTool, deleteAgentV2Tool } from '@/tools/cursor/delete_agent'
|
||||
import { getAgentTool, getAgentV2Tool } from '@/tools/cursor/get_agent'
|
||||
import { getConversationTool, getConversationV2Tool } from '@/tools/cursor/get_conversation'
|
||||
import { launchAgentTool, launchAgentV2Tool } from '@/tools/cursor/launch_agent'
|
||||
import { listAgentsTool, listAgentsV2Tool } from '@/tools/cursor/list_agents'
|
||||
import { stopAgentTool, stopAgentV2Tool } from '@/tools/cursor/stop_agent'
|
||||
|
||||
export const cursorListAgentsTool = listAgentsTool
|
||||
export const cursorGetAgentTool = getAgentTool
|
||||
@@ -13,3 +13,11 @@ export const cursorLaunchAgentTool = launchAgentTool
|
||||
export const cursorAddFollowupTool = addFollowupTool
|
||||
export const cursorStopAgentTool = stopAgentTool
|
||||
export const cursorDeleteAgentTool = deleteAgentTool
|
||||
|
||||
export const cursorListAgentsV2Tool = listAgentsV2Tool
|
||||
export const cursorGetAgentV2Tool = getAgentV2Tool
|
||||
export const cursorGetConversationV2Tool = getConversationV2Tool
|
||||
export const cursorLaunchAgentV2Tool = launchAgentV2Tool
|
||||
export const cursorAddFollowupV2Tool = addFollowupV2Tool
|
||||
export const cursorStopAgentV2Tool = stopAgentV2Tool
|
||||
export const cursorDeleteAgentV2Tool = deleteAgentV2Tool
|
||||
|
||||
@@ -1,13 +1,7 @@
|
||||
import type { LaunchAgentParams, LaunchAgentResponse } from '@/tools/cursor/types'
|
||||
import type { ToolConfig } from '@/tools/types'
|
||||
|
||||
export const launchAgentTool: ToolConfig<LaunchAgentParams, LaunchAgentResponse> = {
|
||||
id: 'cursor_launch_agent',
|
||||
name: 'Cursor Launch Agent',
|
||||
description:
|
||||
'Start a new cloud agent to work on a GitHub repository with the given instructions.',
|
||||
version: '1.0.0',
|
||||
|
||||
const launchAgentBase = {
|
||||
params: {
|
||||
apiKey: {
|
||||
type: 'string',
|
||||
@@ -70,15 +64,14 @@ export const launchAgentTool: ToolConfig<LaunchAgentParams, LaunchAgentResponse>
|
||||
description: 'Skip requesting reviewers on the PR',
|
||||
},
|
||||
},
|
||||
|
||||
request: {
|
||||
url: () => 'https://api.cursor.com/v0/agents',
|
||||
method: 'POST',
|
||||
headers: (params) => ({
|
||||
headers: (params: LaunchAgentParams) => ({
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: `Basic ${Buffer.from(`${params.apiKey}:`).toString('base64')}`,
|
||||
}),
|
||||
body: (params) => {
|
||||
body: (params: LaunchAgentParams) => {
|
||||
const body: Record<string, any> = {
|
||||
source: {
|
||||
repository: params.repository,
|
||||
@@ -119,6 +112,16 @@ export const launchAgentTool: ToolConfig<LaunchAgentParams, LaunchAgentResponse>
|
||||
return body
|
||||
},
|
||||
},
|
||||
} satisfies Pick<ToolConfig<LaunchAgentParams, any>, 'params' | 'request'>
|
||||
|
||||
export const launchAgentTool: ToolConfig<LaunchAgentParams, LaunchAgentResponse> = {
|
||||
id: 'cursor_launch_agent',
|
||||
name: 'Cursor Launch Agent',
|
||||
description:
|
||||
'Start a new cloud agent to work on a GitHub repository with the given instructions.',
|
||||
version: '1.0.0',
|
||||
|
||||
...launchAgentBase,
|
||||
|
||||
transformResponse: async (response) => {
|
||||
const data = await response.json()
|
||||
@@ -148,3 +151,36 @@ export const launchAgentTool: ToolConfig<LaunchAgentParams, LaunchAgentResponse>
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
interface LaunchAgentV2Response {
|
||||
success: boolean
|
||||
output: {
|
||||
id: string
|
||||
url: string
|
||||
}
|
||||
}
|
||||
|
||||
export const launchAgentV2Tool: ToolConfig<LaunchAgentParams, LaunchAgentV2Response> = {
|
||||
...launchAgentBase,
|
||||
id: 'cursor_launch_agent_v2',
|
||||
name: 'Cursor Launch Agent',
|
||||
description:
|
||||
'Start a new cloud agent to work on a GitHub repository with the given instructions. Returns API-aligned fields only.',
|
||||
version: '2.0.0',
|
||||
transformResponse: async (response) => {
|
||||
const data = await response.json()
|
||||
const agentUrl = `https://cursor.com/agents?selectedBcId=${data.id}`
|
||||
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: data.id,
|
||||
url: agentUrl,
|
||||
},
|
||||
}
|
||||
},
|
||||
outputs: {
|
||||
id: { type: 'string', description: 'Agent ID' },
|
||||
url: { type: 'string', description: 'Agent URL' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
import type { ListAgentsParams, ListAgentsResponse } from '@/tools/cursor/types'
|
||||
import type { ToolConfig } from '@/tools/types'
|
||||
|
||||
export const listAgentsTool: ToolConfig<ListAgentsParams, ListAgentsResponse> = {
|
||||
id: 'cursor_list_agents',
|
||||
name: 'Cursor List Agents',
|
||||
description: 'List all cloud agents for the authenticated user with optional pagination.',
|
||||
version: '1.0.0',
|
||||
|
||||
const listAgentsBase = {
|
||||
params: {
|
||||
apiKey: {
|
||||
type: 'string',
|
||||
@@ -27,19 +22,27 @@ export const listAgentsTool: ToolConfig<ListAgentsParams, ListAgentsResponse> =
|
||||
description: 'Pagination cursor from previous response',
|
||||
},
|
||||
},
|
||||
|
||||
request: {
|
||||
url: (params) => {
|
||||
url: (params: ListAgentsParams) => {
|
||||
const url = new URL('https://api.cursor.com/v0/agents')
|
||||
if (params.limit) url.searchParams.set('limit', String(params.limit))
|
||||
if (params.cursor) url.searchParams.set('cursor', params.cursor)
|
||||
return url.toString()
|
||||
},
|
||||
method: 'GET',
|
||||
headers: (params) => ({
|
||||
headers: (params: ListAgentsParams) => ({
|
||||
Authorization: `Basic ${Buffer.from(`${params.apiKey}:`).toString('base64')}`,
|
||||
}),
|
||||
},
|
||||
} satisfies Pick<ToolConfig<ListAgentsParams, any>, 'params' | 'request'>
|
||||
|
||||
export const listAgentsTool: ToolConfig<ListAgentsParams, ListAgentsResponse> = {
|
||||
id: 'cursor_list_agents',
|
||||
name: 'Cursor List Agents',
|
||||
description: 'List all cloud agents for the authenticated user with optional pagination.',
|
||||
version: '1.0.0',
|
||||
|
||||
...listAgentsBase,
|
||||
|
||||
transformResponse: async (response) => {
|
||||
const data = await response.json()
|
||||
@@ -75,3 +78,35 @@ export const listAgentsTool: ToolConfig<ListAgentsParams, ListAgentsResponse> =
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
interface ListAgentsV2Response {
|
||||
success: boolean
|
||||
output: {
|
||||
agents: unknown[]
|
||||
nextCursor?: string
|
||||
}
|
||||
}
|
||||
|
||||
export const listAgentsV2Tool: ToolConfig<ListAgentsParams, ListAgentsV2Response> = {
|
||||
...listAgentsBase,
|
||||
id: 'cursor_list_agents_v2',
|
||||
name: 'Cursor List Agents',
|
||||
description:
|
||||
'List all cloud agents for the authenticated user with optional pagination. Returns API-aligned fields only.',
|
||||
version: '2.0.0',
|
||||
transformResponse: async (response) => {
|
||||
const data = await response.json()
|
||||
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
agents: data.agents,
|
||||
nextCursor: data.nextCursor,
|
||||
},
|
||||
}
|
||||
},
|
||||
outputs: {
|
||||
agents: { type: 'array', description: 'Array of agent objects' },
|
||||
nextCursor: { type: 'string', description: 'Pagination cursor for next page', optional: true },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
import type { StopAgentParams, StopAgentResponse } from '@/tools/cursor/types'
|
||||
import type { ToolConfig } from '@/tools/types'
|
||||
|
||||
export const stopAgentTool: ToolConfig<StopAgentParams, StopAgentResponse> = {
|
||||
id: 'cursor_stop_agent',
|
||||
name: 'Cursor Stop Agent',
|
||||
description: 'Stop a running cloud agent. This pauses the agent without deleting it.',
|
||||
version: '1.0.0',
|
||||
|
||||
const stopAgentBase = {
|
||||
params: {
|
||||
apiKey: {
|
||||
type: 'string',
|
||||
@@ -21,14 +16,22 @@ export const stopAgentTool: ToolConfig<StopAgentParams, StopAgentResponse> = {
|
||||
description: 'Unique identifier for the cloud agent (e.g., bc_abc123)',
|
||||
},
|
||||
},
|
||||
|
||||
request: {
|
||||
url: (params) => `https://api.cursor.com/v0/agents/${params.agentId}/stop`,
|
||||
url: (params: StopAgentParams) => `https://api.cursor.com/v0/agents/${params.agentId}/stop`,
|
||||
method: 'POST',
|
||||
headers: (params) => ({
|
||||
headers: (params: StopAgentParams) => ({
|
||||
Authorization: `Basic ${Buffer.from(`${params.apiKey}:`).toString('base64')}`,
|
||||
}),
|
||||
},
|
||||
} satisfies Pick<ToolConfig<StopAgentParams, any>, 'params' | 'request'>
|
||||
|
||||
export const stopAgentTool: ToolConfig<StopAgentParams, StopAgentResponse> = {
|
||||
id: 'cursor_stop_agent',
|
||||
name: 'Cursor Stop Agent',
|
||||
description: 'Stop a running cloud agent. This pauses the agent without deleting it.',
|
||||
version: '1.0.0',
|
||||
|
||||
...stopAgentBase,
|
||||
|
||||
transformResponse: async (response) => {
|
||||
const data = await response.json()
|
||||
@@ -57,3 +60,31 @@ export const stopAgentTool: ToolConfig<StopAgentParams, StopAgentResponse> = {
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
interface StopAgentV2Response {
|
||||
success: boolean
|
||||
output: {
|
||||
id: string
|
||||
}
|
||||
}
|
||||
|
||||
export const stopAgentV2Tool: ToolConfig<StopAgentParams, StopAgentV2Response> = {
|
||||
...stopAgentBase,
|
||||
id: 'cursor_stop_agent_v2',
|
||||
name: 'Cursor Stop Agent',
|
||||
description: 'Stop a running cloud agent. Returns API-aligned fields only.',
|
||||
version: '2.0.0',
|
||||
transformResponse: async (response) => {
|
||||
const data = await response.json()
|
||||
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: data.id,
|
||||
},
|
||||
}
|
||||
},
|
||||
outputs: {
|
||||
id: { type: 'string', description: 'Agent ID' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -106,3 +106,46 @@ URL: ${issue.html_url}`
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const addAssigneesV2Tool: ToolConfig<AddAssigneesParams, any> = {
|
||||
id: 'github_add_assignees_v2',
|
||||
name: addAssigneesTool.name,
|
||||
description: addAssigneesTool.description,
|
||||
version: '2.0.0',
|
||||
params: addAssigneesTool.params,
|
||||
request: addAssigneesTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const issue = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: issue.id,
|
||||
number: issue.number,
|
||||
title: issue.title,
|
||||
state: issue.state,
|
||||
html_url: issue.html_url,
|
||||
body: issue.body,
|
||||
user: issue.user,
|
||||
labels: issue.labels,
|
||||
assignees: issue.assignees,
|
||||
created_at: issue.created_at,
|
||||
updated_at: issue.updated_at,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
id: { type: 'number', description: 'Issue ID' },
|
||||
number: { type: 'number', description: 'Issue number' },
|
||||
title: { type: 'string', description: 'Issue title' },
|
||||
state: { type: 'string', description: 'Issue state' },
|
||||
html_url: { type: 'string', description: 'GitHub web URL' },
|
||||
body: { type: 'string', description: 'Issue body' },
|
||||
user: { type: 'json', description: 'Issue creator' },
|
||||
labels: { type: 'array', description: 'Array of label objects' },
|
||||
assignees: { type: 'array', description: 'Array of assignee objects' },
|
||||
created_at: { type: 'string', description: 'Creation timestamp' },
|
||||
updated_at: { type: 'string', description: 'Last update timestamp' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -94,3 +94,40 @@ All labels on issue: ${labels.join(', ')}`
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const addLabelsV2Tool: ToolConfig<AddLabelsParams, any> = {
|
||||
id: 'github_add_labels_v2',
|
||||
name: addLabelsTool.name,
|
||||
description: addLabelsTool.description,
|
||||
version: '2.0.0',
|
||||
params: addLabelsTool.params,
|
||||
request: addLabelsTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const labels = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
items: labels,
|
||||
count: labels.length,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
items: {
|
||||
type: 'array',
|
||||
description: 'Array of label objects on the issue',
|
||||
items: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
id: { type: 'number', description: 'Label ID' },
|
||||
name: { type: 'string', description: 'Label name' },
|
||||
color: { type: 'string', description: 'Label color' },
|
||||
description: { type: 'string', description: 'Label description' },
|
||||
},
|
||||
},
|
||||
},
|
||||
count: { type: 'number', description: 'Number of labels' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -122,3 +122,26 @@ The run may have already completed or been cancelled.`
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const cancelWorkflowRunV2Tool: ToolConfig = {
|
||||
id: 'github_cancel_workflow_run_v2',
|
||||
name: cancelWorkflowRunTool.name,
|
||||
description: cancelWorkflowRunTool.description,
|
||||
version: '2.0.0',
|
||||
params: cancelWorkflowRunTool.params,
|
||||
request: cancelWorkflowRunTool.request,
|
||||
oauth: cancelWorkflowRunTool.oauth,
|
||||
transformResponse: async (response: Response, params) => {
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
cancelled: response.status === 202,
|
||||
run_id: params?.run_id || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
outputs: {
|
||||
cancelled: { type: 'boolean', description: 'Whether cancellation was initiated' },
|
||||
run_id: { type: 'number', description: 'Workflow run ID' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -113,3 +113,50 @@ URL: ${issue.html_url}`
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const closeIssueV2Tool: ToolConfig<CloseIssueParams, any> = {
|
||||
id: 'github_close_issue_v2',
|
||||
name: closeIssueTool.name,
|
||||
description: closeIssueTool.description,
|
||||
version: '2.0.0',
|
||||
params: closeIssueTool.params,
|
||||
request: closeIssueTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const issue = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: issue.id,
|
||||
number: issue.number,
|
||||
title: issue.title,
|
||||
state: issue.state,
|
||||
state_reason: issue.state_reason,
|
||||
html_url: issue.html_url,
|
||||
body: issue.body,
|
||||
user: issue.user,
|
||||
labels: issue.labels,
|
||||
assignees: issue.assignees,
|
||||
closed_at: issue.closed_at,
|
||||
created_at: issue.created_at,
|
||||
updated_at: issue.updated_at,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
id: { type: 'number', description: 'Issue ID' },
|
||||
number: { type: 'number', description: 'Issue number' },
|
||||
title: { type: 'string', description: 'Issue title' },
|
||||
state: { type: 'string', description: 'Issue state (closed)' },
|
||||
state_reason: { type: 'string', description: 'Reason for closing' },
|
||||
html_url: { type: 'string', description: 'GitHub web URL' },
|
||||
body: { type: 'string', description: 'Issue body' },
|
||||
user: { type: 'json', description: 'User who created the issue' },
|
||||
labels: { type: 'array', description: 'Array of label objects' },
|
||||
assignees: { type: 'array', description: 'Array of assignee objects' },
|
||||
closed_at: { type: 'string', description: 'Close timestamp' },
|
||||
created_at: { type: 'string', description: 'Creation timestamp' },
|
||||
updated_at: { type: 'string', description: 'Last update timestamp' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -90,3 +90,52 @@ URL: ${pr.html_url}`
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const closePRV2Tool: ToolConfig<ClosePRParams, any> = {
|
||||
id: 'github_close_pr_v2',
|
||||
name: closePRTool.name,
|
||||
description: closePRTool.description,
|
||||
version: '2.0.0',
|
||||
params: closePRTool.params,
|
||||
request: closePRTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const pr = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: pr.id,
|
||||
number: pr.number,
|
||||
title: pr.title,
|
||||
state: pr.state,
|
||||
html_url: pr.html_url,
|
||||
body: pr.body,
|
||||
user: pr.user,
|
||||
head: pr.head,
|
||||
base: pr.base,
|
||||
draft: pr.draft,
|
||||
merged: pr.merged,
|
||||
closed_at: pr.closed_at,
|
||||
created_at: pr.created_at,
|
||||
updated_at: pr.updated_at,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
id: { type: 'number', description: 'PR ID' },
|
||||
number: { type: 'number', description: 'PR number' },
|
||||
title: { type: 'string', description: 'PR title' },
|
||||
state: { type: 'string', description: 'PR state (closed)' },
|
||||
html_url: { type: 'string', description: 'GitHub web URL' },
|
||||
body: { type: 'string', description: 'PR description' },
|
||||
user: { type: 'json', description: 'User who created the PR' },
|
||||
head: { type: 'json', description: 'Head branch info' },
|
||||
base: { type: 'json', description: 'Base branch info' },
|
||||
draft: { type: 'boolean', description: 'Whether PR is a draft' },
|
||||
merged: { type: 'boolean', description: 'Whether PR is merged' },
|
||||
closed_at: { type: 'string', description: 'Close timestamp' },
|
||||
created_at: { type: 'string', description: 'Creation timestamp' },
|
||||
updated_at: { type: 'string', description: 'Last update timestamp' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -139,3 +139,42 @@ export const commentTool: ToolConfig<CreateCommentParams, CreateCommentResponse>
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const commentV2Tool: ToolConfig = {
|
||||
id: 'github_comment_v2',
|
||||
name: commentTool.name,
|
||||
description: commentTool.description,
|
||||
version: '2.0.0',
|
||||
params: commentTool.params,
|
||||
request: commentTool.request,
|
||||
transformResponse: async (response: Response) => {
|
||||
const data = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: data.id,
|
||||
body: data.body,
|
||||
html_url: data.html_url,
|
||||
user: data.user,
|
||||
path: data.path,
|
||||
line: data.line || data.position,
|
||||
side: data.side,
|
||||
commit_id: data.commit_id,
|
||||
created_at: data.created_at,
|
||||
updated_at: data.updated_at,
|
||||
},
|
||||
}
|
||||
},
|
||||
outputs: {
|
||||
id: { type: 'number', description: 'Comment ID' },
|
||||
body: { type: 'string', description: 'Comment body' },
|
||||
html_url: { type: 'string', description: 'GitHub web URL' },
|
||||
user: { type: 'json', description: 'User who created the comment' },
|
||||
path: { type: 'string', description: 'File path (if file comment)' },
|
||||
line: { type: 'number', description: 'Line number' },
|
||||
side: { type: 'string', description: 'Diff side' },
|
||||
commit_id: { type: 'string', description: 'Commit ID' },
|
||||
created_at: { type: 'string', description: 'Creation timestamp' },
|
||||
updated_at: { type: 'string', description: 'Last update timestamp' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -91,3 +91,32 @@ URL: ${ref.url}`
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const createBranchV2Tool: ToolConfig<CreateBranchParams, any> = {
|
||||
id: 'github_create_branch_v2',
|
||||
name: createBranchTool.name,
|
||||
description: createBranchTool.description,
|
||||
version: '2.0.0',
|
||||
params: createBranchTool.params,
|
||||
request: createBranchTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const ref = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
ref: ref.ref,
|
||||
node_id: ref.node_id,
|
||||
url: ref.url,
|
||||
object: ref.object,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
ref: { type: 'string', description: 'Full reference name (refs/heads/branch)' },
|
||||
node_id: { type: 'string', description: 'Git ref node ID' },
|
||||
url: { type: 'string', description: 'API URL for the reference' },
|
||||
object: { type: 'json', description: 'Git object with type and sha' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -170,3 +170,27 @@ View file: ${data.content.html_url}`
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const createFileV2Tool: ToolConfig = {
|
||||
id: 'github_create_file_v2',
|
||||
name: createFileTool.name,
|
||||
description: createFileTool.description,
|
||||
version: '2.0.0',
|
||||
params: createFileTool.params,
|
||||
request: createFileTool.request,
|
||||
oauth: createFileTool.oauth,
|
||||
transformResponse: async (response: Response) => {
|
||||
const data = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
content: data.content,
|
||||
commit: data.commit,
|
||||
},
|
||||
}
|
||||
},
|
||||
outputs: {
|
||||
content: { type: 'json', description: 'Created file content info' },
|
||||
commit: { type: 'json', description: 'Commit information' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -141,3 +141,50 @@ ${assignees.length > 0 ? `Assignees: ${assignees.join(', ')}` : ''}`
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const createIssueV2Tool: ToolConfig<CreateIssueParams, any> = {
|
||||
id: 'github_create_issue_v2',
|
||||
name: createIssueTool.name,
|
||||
description: createIssueTool.description,
|
||||
version: '2.0.0',
|
||||
params: createIssueTool.params,
|
||||
request: createIssueTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const issue = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: issue.id,
|
||||
number: issue.number,
|
||||
title: issue.title,
|
||||
state: issue.state,
|
||||
html_url: issue.html_url,
|
||||
body: issue.body,
|
||||
user: issue.user,
|
||||
labels: issue.labels,
|
||||
assignees: issue.assignees,
|
||||
milestone: issue.milestone,
|
||||
created_at: issue.created_at,
|
||||
updated_at: issue.updated_at,
|
||||
closed_at: issue.closed_at,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
id: { type: 'number', description: 'Issue ID' },
|
||||
number: { type: 'number', description: 'Issue number' },
|
||||
title: { type: 'string', description: 'Issue title' },
|
||||
state: { type: 'string', description: 'Issue state (open/closed)' },
|
||||
html_url: { type: 'string', description: 'GitHub web URL' },
|
||||
body: { type: 'string', description: 'Issue body/description' },
|
||||
user: { type: 'json', description: 'User who created the issue' },
|
||||
labels: { type: 'array', description: 'Array of label objects' },
|
||||
assignees: { type: 'array', description: 'Array of assignee objects' },
|
||||
milestone: { type: 'json', description: 'Milestone object' },
|
||||
created_at: { type: 'string', description: 'Creation timestamp' },
|
||||
updated_at: { type: 'string', description: 'Last update timestamp' },
|
||||
closed_at: { type: 'string', description: 'Close timestamp' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -118,3 +118,52 @@ URL: ${pr.html_url}`
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const createPRV2Tool: ToolConfig<CreatePRParams, any> = {
|
||||
id: 'github_create_pr_v2',
|
||||
name: createPRTool.name,
|
||||
description: createPRTool.description,
|
||||
version: '2.0.0',
|
||||
params: createPRTool.params,
|
||||
request: createPRTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const pr = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: pr.id,
|
||||
number: pr.number,
|
||||
title: pr.title,
|
||||
state: pr.state,
|
||||
html_url: pr.html_url,
|
||||
body: pr.body,
|
||||
user: pr.user,
|
||||
head: pr.head,
|
||||
base: pr.base,
|
||||
draft: pr.draft,
|
||||
merged: pr.merged,
|
||||
mergeable: pr.mergeable,
|
||||
created_at: pr.created_at,
|
||||
updated_at: pr.updated_at,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
id: { type: 'number', description: 'Pull request ID' },
|
||||
number: { type: 'number', description: 'Pull request number' },
|
||||
title: { type: 'string', description: 'PR title' },
|
||||
state: { type: 'string', description: 'PR state' },
|
||||
html_url: { type: 'string', description: 'GitHub web URL' },
|
||||
body: { type: 'string', description: 'PR description' },
|
||||
user: { type: 'json', description: 'User who created the PR' },
|
||||
head: { type: 'json', description: 'Head branch info' },
|
||||
base: { type: 'json', description: 'Base branch info' },
|
||||
draft: { type: 'boolean', description: 'Whether PR is a draft' },
|
||||
merged: { type: 'boolean', description: 'Whether PR is merged' },
|
||||
mergeable: { type: 'boolean', description: 'Whether PR is mergeable' },
|
||||
created_at: { type: 'string', description: 'Creation timestamp' },
|
||||
updated_at: { type: 'string', description: 'Last update timestamp' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -146,3 +146,45 @@ export const createProjectTool: ToolConfig<CreateProjectParams, ProjectResponse>
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const createProjectV2Tool: ToolConfig = {
|
||||
id: 'github_create_project_v2',
|
||||
name: createProjectTool.name,
|
||||
description: createProjectTool.description,
|
||||
version: '2.0.0',
|
||||
params: createProjectTool.params,
|
||||
request: createProjectTool.request,
|
||||
oauth: createProjectTool.oauth,
|
||||
transformResponse: async (response: Response) => {
|
||||
const data = await response.json()
|
||||
if (data.errors) {
|
||||
return {
|
||||
success: false,
|
||||
output: { id: '', title: '', number: 0, url: '' },
|
||||
error: data.errors[0].message,
|
||||
}
|
||||
}
|
||||
const project = data.data?.createProjectV2?.projectV2 || {}
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: project.id,
|
||||
title: project.title,
|
||||
number: project.number,
|
||||
url: project.url,
|
||||
closed: project.closed,
|
||||
public: project.public,
|
||||
shortDescription: project.shortDescription,
|
||||
},
|
||||
}
|
||||
},
|
||||
outputs: {
|
||||
id: { type: 'string', description: 'Project node ID' },
|
||||
title: { type: 'string', description: 'Project title' },
|
||||
number: { type: 'number', description: 'Project number' },
|
||||
url: { type: 'string', description: 'Project URL' },
|
||||
closed: { type: 'boolean', description: 'Whether project is closed' },
|
||||
public: { type: 'boolean', description: 'Whether project is public' },
|
||||
shortDescription: { type: 'string', description: 'Short description' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -155,3 +155,49 @@ Download URLs:
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const createReleaseV2Tool: ToolConfig = {
|
||||
id: 'github_create_release_v2',
|
||||
name: createReleaseTool.name,
|
||||
description: createReleaseTool.description,
|
||||
version: '2.0.0',
|
||||
params: createReleaseTool.params,
|
||||
request: createReleaseTool.request,
|
||||
oauth: createReleaseTool.oauth,
|
||||
transformResponse: async (response: Response) => {
|
||||
const data = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: data.id,
|
||||
tag_name: data.tag_name,
|
||||
name: data.name,
|
||||
body: data.body,
|
||||
html_url: data.html_url,
|
||||
tarball_url: data.tarball_url,
|
||||
zipball_url: data.zipball_url,
|
||||
draft: data.draft,
|
||||
prerelease: data.prerelease,
|
||||
author: data.author,
|
||||
assets: data.assets,
|
||||
created_at: data.created_at,
|
||||
published_at: data.published_at,
|
||||
},
|
||||
}
|
||||
},
|
||||
outputs: {
|
||||
id: { type: 'number', description: 'Release ID' },
|
||||
tag_name: { type: 'string', description: 'Git tag name' },
|
||||
name: { type: 'string', description: 'Release name' },
|
||||
body: { type: 'string', description: 'Release description' },
|
||||
html_url: { type: 'string', description: 'GitHub web URL' },
|
||||
tarball_url: { type: 'string', description: 'Tarball download URL' },
|
||||
zipball_url: { type: 'string', description: 'Zipball download URL' },
|
||||
draft: { type: 'boolean', description: 'Whether this is a draft' },
|
||||
prerelease: { type: 'boolean', description: 'Whether this is a prerelease' },
|
||||
author: { type: 'json', description: 'Release author' },
|
||||
assets: { type: 'array', description: 'Release assets' },
|
||||
created_at: { type: 'string', description: 'Creation timestamp' },
|
||||
published_at: { type: 'string', description: 'Publication timestamp' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -87,3 +87,28 @@ export const deleteBranchTool: ToolConfig<DeleteBranchParams, DeleteBranchRespon
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const deleteBranchV2Tool: ToolConfig<DeleteBranchParams, any> = {
|
||||
id: 'github_delete_branch_v2',
|
||||
name: deleteBranchTool.name,
|
||||
description: deleteBranchTool.description,
|
||||
version: '2.0.0',
|
||||
params: deleteBranchTool.params,
|
||||
request: deleteBranchTool.request,
|
||||
|
||||
transformResponse: async (response: Response, params) => {
|
||||
// DELETE returns 204 No Content on success
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
deleted: response.status === 204,
|
||||
branch: params?.branch || '',
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
deleted: { type: 'boolean', description: 'Whether the branch was deleted' },
|
||||
branch: { type: 'string', description: 'Name of the deleted branch' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -72,3 +72,27 @@ export const deleteCommentTool: ToolConfig<DeleteCommentParams, DeleteCommentRes
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const deleteCommentV2Tool: ToolConfig<DeleteCommentParams, any> = {
|
||||
id: 'github_delete_comment_v2',
|
||||
name: deleteCommentTool.name,
|
||||
description: deleteCommentTool.description,
|
||||
version: '2.0.0',
|
||||
params: deleteCommentTool.params,
|
||||
request: deleteCommentTool.request,
|
||||
|
||||
transformResponse: async (response: Response, params) => {
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
deleted: response.status === 204,
|
||||
comment_id: params?.comment_id || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
deleted: { type: 'boolean', description: 'Whether deletion was successful' },
|
||||
comment_id: { type: 'number', description: 'Deleted comment ID' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -147,3 +147,28 @@ View commit: ${data.commit.html_url || 'N/A'}`
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const deleteFileV2Tool: ToolConfig<DeleteFileParams, any> = {
|
||||
id: 'github_delete_file_v2',
|
||||
name: deleteFileTool.name,
|
||||
description: deleteFileTool.description,
|
||||
version: '2.0.0',
|
||||
params: deleteFileTool.params,
|
||||
request: deleteFileTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const data = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
content: data.content,
|
||||
commit: data.commit,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
content: { type: 'json', description: 'File content info (null for delete)' },
|
||||
commit: { type: 'json', description: 'Commit information' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -126,3 +126,42 @@ export const deleteProjectTool: ToolConfig<DeleteProjectParams, ProjectResponse>
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const deleteProjectV2Tool: ToolConfig<DeleteProjectParams, any> = {
|
||||
id: 'github_delete_project_v2',
|
||||
name: deleteProjectTool.name,
|
||||
description: deleteProjectTool.description,
|
||||
version: '2.0.0',
|
||||
params: deleteProjectTool.params,
|
||||
request: deleteProjectTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const data = await response.json()
|
||||
|
||||
if (data.errors) {
|
||||
return {
|
||||
success: false,
|
||||
output: { id: '', title: '', number: 0, url: '' },
|
||||
error: data.errors[0].message,
|
||||
}
|
||||
}
|
||||
|
||||
const project = data.data?.deleteProjectV2?.projectV2 || {}
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: project.id,
|
||||
title: project.title,
|
||||
number: project.number,
|
||||
url: project.url,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
id: { type: 'string', description: 'Deleted project node ID' },
|
||||
title: { type: 'string', description: 'Deleted project title' },
|
||||
number: { type: 'number', description: 'Deleted project number' },
|
||||
url: { type: 'string', description: 'Deleted project URL' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -96,3 +96,27 @@ Note: The associated Git tag has not been deleted and remains in the repository.
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const deleteReleaseV2Tool: ToolConfig<DeleteReleaseParams, any> = {
|
||||
id: 'github_delete_release_v2',
|
||||
name: deleteReleaseTool.name,
|
||||
description: deleteReleaseTool.description,
|
||||
version: '2.0.0',
|
||||
params: deleteReleaseTool.params,
|
||||
request: deleteReleaseTool.request,
|
||||
|
||||
transformResponse: async (response: Response, params) => {
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
deleted: response.status === 204,
|
||||
release_id: params?.release_id || 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
deleted: { type: 'boolean', description: 'Whether the release was deleted' },
|
||||
release_id: { type: 'number', description: 'ID of the deleted release' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -90,3 +90,34 @@ Protected: ${branch.protected ? 'Yes' : 'No'}`
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const getBranchV2Tool: ToolConfig<GetBranchParams, any> = {
|
||||
id: 'github_get_branch_v2',
|
||||
name: getBranchTool.name,
|
||||
description: getBranchTool.description,
|
||||
version: '2.0.0',
|
||||
params: getBranchTool.params,
|
||||
request: getBranchTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const branch = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
name: branch.name,
|
||||
commit: branch.commit,
|
||||
protected: branch.protected,
|
||||
protection: branch.protection,
|
||||
protection_url: branch.protection_url,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
name: { type: 'string', description: 'Branch name' },
|
||||
commit: { type: 'json', description: 'Commit object with sha, url, etc.' },
|
||||
protected: { type: 'boolean', description: 'Whether branch is protected' },
|
||||
protection: { type: 'json', description: 'Protection settings object' },
|
||||
protection_url: { type: 'string', description: 'URL to protection settings' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -181,3 +181,49 @@ Enforce Admins: ${protection.enforce_admins?.enabled ? 'Yes' : 'No'}`
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const getBranchProtectionV2Tool: ToolConfig<GetBranchProtectionParams, any> = {
|
||||
id: 'github_get_branch_protection_v2',
|
||||
name: getBranchProtectionTool.name,
|
||||
description: getBranchProtectionTool.description,
|
||||
version: '2.0.0',
|
||||
params: getBranchProtectionTool.params,
|
||||
request: getBranchProtectionTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const protection = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
url: protection.url,
|
||||
required_status_checks: protection.required_status_checks,
|
||||
enforce_admins: protection.enforce_admins,
|
||||
required_pull_request_reviews: protection.required_pull_request_reviews,
|
||||
restrictions: protection.restrictions,
|
||||
required_linear_history: protection.required_linear_history,
|
||||
allow_force_pushes: protection.allow_force_pushes,
|
||||
allow_deletions: protection.allow_deletions,
|
||||
block_creations: protection.block_creations,
|
||||
required_conversation_resolution: protection.required_conversation_resolution,
|
||||
required_signatures: protection.required_signatures,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
url: { type: 'string', description: 'Protection settings URL' },
|
||||
required_status_checks: { type: 'json', description: 'Status check requirements' },
|
||||
enforce_admins: { type: 'json', description: 'Admin enforcement settings' },
|
||||
required_pull_request_reviews: { type: 'json', description: 'PR review requirements' },
|
||||
restrictions: { type: 'json', description: 'Push restrictions' },
|
||||
required_linear_history: { type: 'json', description: 'Linear history requirement' },
|
||||
allow_force_pushes: { type: 'json', description: 'Force push settings' },
|
||||
allow_deletions: { type: 'json', description: 'Deletion settings' },
|
||||
block_creations: { type: 'json', description: 'Creation blocking settings' },
|
||||
required_conversation_resolution: {
|
||||
type: 'json',
|
||||
description: 'Conversation resolution requirement',
|
||||
},
|
||||
required_signatures: { type: 'json', description: 'Signature requirements' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -136,3 +136,57 @@ ${contentPreview}`
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const getFileContentV2Tool: ToolConfig<GetFileContentParams, any> = {
|
||||
id: 'github_get_file_content_v2',
|
||||
name: getFileContentTool.name,
|
||||
description: getFileContentTool.description,
|
||||
version: '2.0.0',
|
||||
params: getFileContentTool.params,
|
||||
request: getFileContentTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const data = await response.json()
|
||||
|
||||
// Decode base64 content if present
|
||||
let decodedContent = ''
|
||||
if (data.content && data.encoding === 'base64') {
|
||||
try {
|
||||
decodedContent = Buffer.from(data.content, 'base64').toString('utf-8')
|
||||
} catch {
|
||||
decodedContent = data.content
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
name: data.name,
|
||||
path: data.path,
|
||||
sha: data.sha,
|
||||
size: data.size,
|
||||
type: data.type,
|
||||
content: decodedContent || data.content,
|
||||
encoding: data.encoding,
|
||||
html_url: data.html_url,
|
||||
download_url: data.download_url,
|
||||
git_url: data.git_url,
|
||||
_links: data._links,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
name: { type: 'string', description: 'File name' },
|
||||
path: { type: 'string', description: 'Full path in repository' },
|
||||
sha: { type: 'string', description: 'Git blob SHA' },
|
||||
size: { type: 'number', description: 'File size in bytes' },
|
||||
type: { type: 'string', description: 'Content type (file/dir/symlink/submodule)' },
|
||||
content: { type: 'string', description: 'Decoded file content' },
|
||||
encoding: { type: 'string', description: 'Content encoding' },
|
||||
html_url: { type: 'string', description: 'GitHub web URL' },
|
||||
download_url: { type: 'string', description: 'Direct download URL' },
|
||||
git_url: { type: 'string', description: 'Git blob API URL' },
|
||||
_links: { type: 'json', description: 'Related links' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -104,3 +104,54 @@ ${issue.body || 'No description provided'}`
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const getIssueV2Tool: ToolConfig<GetIssueParams, any> = {
|
||||
id: 'github_get_issue_v2',
|
||||
name: getIssueTool.name,
|
||||
description: getIssueTool.description,
|
||||
version: '2.0.0',
|
||||
params: getIssueTool.params,
|
||||
request: getIssueTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const issue = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: issue.id,
|
||||
number: issue.number,
|
||||
title: issue.title,
|
||||
state: issue.state,
|
||||
html_url: issue.html_url,
|
||||
body: issue.body,
|
||||
user: issue.user,
|
||||
labels: issue.labels,
|
||||
assignees: issue.assignees,
|
||||
milestone: issue.milestone,
|
||||
comments: issue.comments,
|
||||
created_at: issue.created_at,
|
||||
updated_at: issue.updated_at,
|
||||
closed_at: issue.closed_at,
|
||||
closed_by: issue.closed_by,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
id: { type: 'number', description: 'Issue ID' },
|
||||
number: { type: 'number', description: 'Issue number' },
|
||||
title: { type: 'string', description: 'Issue title' },
|
||||
state: { type: 'string', description: 'Issue state (open/closed)' },
|
||||
html_url: { type: 'string', description: 'GitHub web URL' },
|
||||
body: { type: 'string', description: 'Issue body/description' },
|
||||
user: { type: 'json', description: 'User who created the issue' },
|
||||
labels: { type: 'array', description: 'Array of label objects' },
|
||||
assignees: { type: 'array', description: 'Array of assignee objects' },
|
||||
milestone: { type: 'json', description: 'Milestone object' },
|
||||
comments: { type: 'number', description: 'Number of comments' },
|
||||
created_at: { type: 'string', description: 'Creation timestamp' },
|
||||
updated_at: { type: 'string', description: 'Last update timestamp' },
|
||||
closed_at: { type: 'string', description: 'Close timestamp' },
|
||||
closed_by: { type: 'json', description: 'User who closed the issue' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -136,3 +136,45 @@ ${files
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const getPRFilesV2Tool: ToolConfig<GetPRFilesParams, any> = {
|
||||
id: 'github_get_pr_files_v2',
|
||||
name: getPRFilesTool.name,
|
||||
description: getPRFilesTool.description,
|
||||
version: '2.0.0',
|
||||
params: getPRFilesTool.params,
|
||||
request: getPRFilesTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const files = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
items: files,
|
||||
count: files.length,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
items: {
|
||||
type: 'array',
|
||||
description: 'Array of changed file objects',
|
||||
items: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
filename: { type: 'string', description: 'File path' },
|
||||
status: { type: 'string', description: 'Change status (added/modified/deleted/renamed)' },
|
||||
additions: { type: 'number', description: 'Lines added' },
|
||||
deletions: { type: 'number', description: 'Lines deleted' },
|
||||
changes: { type: 'number', description: 'Total changes' },
|
||||
patch: { type: 'string', description: 'File diff patch' },
|
||||
sha: { type: 'string', description: 'File SHA' },
|
||||
blob_url: { type: 'string', description: 'GitHub blob URL' },
|
||||
raw_url: { type: 'string', description: 'Raw file URL' },
|
||||
},
|
||||
},
|
||||
},
|
||||
count: { type: 'number', description: 'Total number of files' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -161,3 +161,86 @@ export const getProjectTool: ToolConfig<GetProjectParams, ProjectResponse> = {
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const getProjectV2Tool: ToolConfig<GetProjectParams, any> = {
|
||||
id: 'github_get_project_v2',
|
||||
name: getProjectTool.name,
|
||||
description: getProjectTool.description,
|
||||
version: '2.0.0',
|
||||
params: getProjectTool.params,
|
||||
request: getProjectTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const data = await response.json()
|
||||
|
||||
if (data.errors) {
|
||||
return {
|
||||
success: false,
|
||||
output: {
|
||||
id: '',
|
||||
title: '',
|
||||
number: 0,
|
||||
url: '',
|
||||
closed: false,
|
||||
public: false,
|
||||
shortDescription: '',
|
||||
readme: '',
|
||||
createdAt: '',
|
||||
updatedAt: '',
|
||||
},
|
||||
error: data.errors[0].message,
|
||||
}
|
||||
}
|
||||
|
||||
const ownerData = data.data?.organization || data.data?.user
|
||||
const project = ownerData?.projectV2
|
||||
|
||||
if (!project) {
|
||||
return {
|
||||
success: false,
|
||||
output: {
|
||||
id: '',
|
||||
title: '',
|
||||
number: 0,
|
||||
url: '',
|
||||
closed: false,
|
||||
public: false,
|
||||
shortDescription: '',
|
||||
readme: '',
|
||||
createdAt: '',
|
||||
updatedAt: '',
|
||||
},
|
||||
error: 'Project not found',
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: project.id,
|
||||
title: project.title,
|
||||
number: project.number,
|
||||
url: project.url,
|
||||
closed: project.closed,
|
||||
public: project.public,
|
||||
shortDescription: project.shortDescription,
|
||||
readme: project.readme,
|
||||
createdAt: project.createdAt,
|
||||
updatedAt: project.updatedAt,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
id: { type: 'string', description: 'Project node ID' },
|
||||
title: { type: 'string', description: 'Project title' },
|
||||
number: { type: 'number', description: 'Project number' },
|
||||
url: { type: 'string', description: 'Project URL' },
|
||||
closed: { type: 'boolean', description: 'Whether project is closed' },
|
||||
public: { type: 'boolean', description: 'Whether project is public' },
|
||||
shortDescription: { type: 'string', description: 'Short description' },
|
||||
readme: { type: 'string', description: 'Project readme' },
|
||||
createdAt: { type: 'string', description: 'Creation timestamp' },
|
||||
updatedAt: { type: 'string', description: 'Last update timestamp' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -109,3 +109,52 @@ Download URLs:
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const getReleaseV2Tool: ToolConfig<GetReleaseParams, any> = {
|
||||
id: 'github_get_release_v2',
|
||||
name: getReleaseTool.name,
|
||||
description: getReleaseTool.description,
|
||||
version: '2.0.0',
|
||||
params: getReleaseTool.params,
|
||||
request: getReleaseTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const data = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: data.id,
|
||||
tag_name: data.tag_name,
|
||||
name: data.name,
|
||||
body: data.body,
|
||||
html_url: data.html_url,
|
||||
tarball_url: data.tarball_url,
|
||||
zipball_url: data.zipball_url,
|
||||
draft: data.draft,
|
||||
prerelease: data.prerelease,
|
||||
author: data.author,
|
||||
assets: data.assets,
|
||||
created_at: data.created_at,
|
||||
published_at: data.published_at,
|
||||
target_commitish: data.target_commitish,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
id: { type: 'number', description: 'Release ID' },
|
||||
tag_name: { type: 'string', description: 'Git tag name' },
|
||||
name: { type: 'string', description: 'Release name' },
|
||||
body: { type: 'string', description: 'Release description' },
|
||||
html_url: { type: 'string', description: 'GitHub web URL' },
|
||||
tarball_url: { type: 'string', description: 'Tarball download URL' },
|
||||
zipball_url: { type: 'string', description: 'Zipball download URL' },
|
||||
draft: { type: 'boolean', description: 'Whether this is a draft' },
|
||||
prerelease: { type: 'boolean', description: 'Whether this is a prerelease' },
|
||||
author: { type: 'json', description: 'Release author object' },
|
||||
assets: { type: 'array', description: 'Array of release asset objects' },
|
||||
created_at: { type: 'string', description: 'Creation timestamp' },
|
||||
published_at: { type: 'string', description: 'Publication timestamp' },
|
||||
target_commitish: { type: 'string', description: 'Target commit/branch' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -161,3 +161,53 @@ Total items: ${items.length}
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const getTreeV2Tool: ToolConfig<GetTreeParams, any> = {
|
||||
id: 'github_get_tree_v2',
|
||||
name: getTreeTool.name,
|
||||
description: getTreeTool.description,
|
||||
version: '2.0.0',
|
||||
params: getTreeTool.params,
|
||||
request: getTreeTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const data = await response.json()
|
||||
|
||||
// API returns array for directory, object for file
|
||||
if (!Array.isArray(data)) {
|
||||
return {
|
||||
success: false,
|
||||
output: { items: [], count: 0 },
|
||||
error: 'Path points to a file. Use github_get_file_content to get file contents.',
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
items: data,
|
||||
count: data.length,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
items: {
|
||||
type: 'array',
|
||||
description: 'Array of file/directory objects',
|
||||
items: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
name: { type: 'string', description: 'File or directory name' },
|
||||
path: { type: 'string', description: 'Full path in repository' },
|
||||
sha: { type: 'string', description: 'Git object SHA' },
|
||||
size: { type: 'number', description: 'Size in bytes' },
|
||||
type: { type: 'string', description: 'Type (file/dir/symlink/submodule)' },
|
||||
html_url: { type: 'string', description: 'GitHub web URL' },
|
||||
download_url: { type: 'string', description: 'Direct download URL' },
|
||||
},
|
||||
},
|
||||
},
|
||||
count: { type: 'number', description: 'Total number of items' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -87,3 +87,44 @@ Updated: ${data.updated_at}`
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const getWorkflowV2Tool: ToolConfig<GetWorkflowParams, any> = {
|
||||
id: 'github_get_workflow_v2',
|
||||
name: getWorkflowTool.name,
|
||||
description: getWorkflowTool.description,
|
||||
version: '2.0.0',
|
||||
params: getWorkflowTool.params,
|
||||
request: getWorkflowTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const data = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: data.id,
|
||||
node_id: data.node_id,
|
||||
name: data.name,
|
||||
path: data.path,
|
||||
state: data.state,
|
||||
html_url: data.html_url,
|
||||
badge_url: data.badge_url,
|
||||
url: data.url,
|
||||
created_at: data.created_at,
|
||||
updated_at: data.updated_at,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
id: { type: 'number', description: 'Workflow ID' },
|
||||
node_id: { type: 'string', description: 'Workflow node ID' },
|
||||
name: { type: 'string', description: 'Workflow name' },
|
||||
path: { type: 'string', description: 'Path to workflow file' },
|
||||
state: { type: 'string', description: 'Workflow state (active/disabled)' },
|
||||
html_url: { type: 'string', description: 'GitHub web URL' },
|
||||
badge_url: { type: 'string', description: 'Badge URL' },
|
||||
url: { type: 'string', description: 'API URL' },
|
||||
created_at: { type: 'string', description: 'Creation timestamp' },
|
||||
updated_at: { type: 'string', description: 'Last update timestamp' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -93,3 +93,60 @@ Logs: ${data.logs_url}`
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const getWorkflowRunV2Tool: ToolConfig<GetWorkflowRunParams, any> = {
|
||||
id: 'github_get_workflow_run_v2',
|
||||
name: getWorkflowRunTool.name,
|
||||
description: getWorkflowRunTool.description,
|
||||
version: '2.0.0',
|
||||
params: getWorkflowRunTool.params,
|
||||
request: getWorkflowRunTool.request,
|
||||
|
||||
transformResponse: async (response: Response) => {
|
||||
const data = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: data.id,
|
||||
name: data.name,
|
||||
head_branch: data.head_branch,
|
||||
head_sha: data.head_sha,
|
||||
run_number: data.run_number,
|
||||
run_attempt: data.run_attempt,
|
||||
event: data.event,
|
||||
status: data.status,
|
||||
conclusion: data.conclusion,
|
||||
workflow_id: data.workflow_id,
|
||||
html_url: data.html_url,
|
||||
logs_url: data.logs_url,
|
||||
jobs_url: data.jobs_url,
|
||||
artifacts_url: data.artifacts_url,
|
||||
triggering_actor: data.triggering_actor,
|
||||
run_started_at: data.run_started_at,
|
||||
created_at: data.created_at,
|
||||
updated_at: data.updated_at,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
id: { type: 'number', description: 'Workflow run ID' },
|
||||
name: { type: 'string', description: 'Workflow name' },
|
||||
head_branch: { type: 'string', description: 'Branch name' },
|
||||
head_sha: { type: 'string', description: 'Commit SHA' },
|
||||
run_number: { type: 'number', description: 'Run number' },
|
||||
run_attempt: { type: 'number', description: 'Run attempt number' },
|
||||
event: { type: 'string', description: 'Trigger event type' },
|
||||
status: { type: 'string', description: 'Run status' },
|
||||
conclusion: { type: 'string', description: 'Run conclusion' },
|
||||
workflow_id: { type: 'number', description: 'Workflow ID' },
|
||||
html_url: { type: 'string', description: 'GitHub web URL' },
|
||||
logs_url: { type: 'string', description: 'Logs download URL' },
|
||||
jobs_url: { type: 'string', description: 'Jobs API URL' },
|
||||
artifacts_url: { type: 'string', description: 'Artifacts API URL' },
|
||||
triggering_actor: { type: 'json', description: 'User who triggered the run' },
|
||||
run_started_at: { type: 'string', description: 'Run start timestamp' },
|
||||
created_at: { type: 'string', description: 'Creation timestamp' },
|
||||
updated_at: { type: 'string', description: 'Last update timestamp' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,105 +1,163 @@
|
||||
import { addAssigneesTool } from '@/tools/github/add_assignees'
|
||||
import { addLabelsTool } from '@/tools/github/add_labels'
|
||||
import { cancelWorkflowRunTool } from '@/tools/github/cancel_workflow_run'
|
||||
import { closeIssueTool } from '@/tools/github/close_issue'
|
||||
import { closePRTool } from '@/tools/github/close_pr'
|
||||
import { commentTool } from '@/tools/github/comment'
|
||||
import { createBranchTool } from '@/tools/github/create_branch'
|
||||
import { createFileTool } from '@/tools/github/create_file'
|
||||
import { createIssueTool } from '@/tools/github/create_issue'
|
||||
import { createPRTool } from '@/tools/github/create_pr'
|
||||
import { createProjectTool } from '@/tools/github/create_project'
|
||||
import { createReleaseTool } from '@/tools/github/create_release'
|
||||
import { deleteBranchTool } from '@/tools/github/delete_branch'
|
||||
import { deleteCommentTool } from '@/tools/github/delete_comment'
|
||||
import { deleteFileTool } from '@/tools/github/delete_file'
|
||||
import { deleteProjectTool } from '@/tools/github/delete_project'
|
||||
import { deleteReleaseTool } from '@/tools/github/delete_release'
|
||||
import { getBranchTool } from '@/tools/github/get_branch'
|
||||
import { getBranchProtectionTool } from '@/tools/github/get_branch_protection'
|
||||
import { getFileContentTool } from '@/tools/github/get_file_content'
|
||||
import { getIssueTool } from '@/tools/github/get_issue'
|
||||
import { getPRFilesTool } from '@/tools/github/get_pr_files'
|
||||
import { getProjectTool } from '@/tools/github/get_project'
|
||||
import { getReleaseTool } from '@/tools/github/get_release'
|
||||
import { getTreeTool } from '@/tools/github/get_tree'
|
||||
import { getWorkflowTool } from '@/tools/github/get_workflow'
|
||||
import { getWorkflowRunTool } from '@/tools/github/get_workflow_run'
|
||||
import { issueCommentTool } from '@/tools/github/issue_comment'
|
||||
import { latestCommitTool } from '@/tools/github/latest_commit'
|
||||
import { listBranchesTool } from '@/tools/github/list_branches'
|
||||
import { listIssueCommentsTool } from '@/tools/github/list_issue_comments'
|
||||
import { listIssuesTool } from '@/tools/github/list_issues'
|
||||
import { listPRCommentsTool } from '@/tools/github/list_pr_comments'
|
||||
import { listProjectsTool } from '@/tools/github/list_projects'
|
||||
import { listPRsTool } from '@/tools/github/list_prs'
|
||||
import { listReleasesTool } from '@/tools/github/list_releases'
|
||||
import { listWorkflowRunsTool } from '@/tools/github/list_workflow_runs'
|
||||
import { listWorkflowsTool } from '@/tools/github/list_workflows'
|
||||
import { mergePRTool } from '@/tools/github/merge_pr'
|
||||
import { prTool } from '@/tools/github/pr'
|
||||
import { removeLabelTool } from '@/tools/github/remove_label'
|
||||
import { repoInfoTool } from '@/tools/github/repo_info'
|
||||
import { requestReviewersTool } from '@/tools/github/request_reviewers'
|
||||
import { rerunWorkflowTool } from '@/tools/github/rerun_workflow'
|
||||
import { triggerWorkflowTool } from '@/tools/github/trigger_workflow'
|
||||
import { updateBranchProtectionTool } from '@/tools/github/update_branch_protection'
|
||||
import { updateCommentTool } from '@/tools/github/update_comment'
|
||||
import { updateFileTool } from '@/tools/github/update_file'
|
||||
import { updateIssueTool } from '@/tools/github/update_issue'
|
||||
import { updatePRTool } from '@/tools/github/update_pr'
|
||||
import { updateProjectTool } from '@/tools/github/update_project'
|
||||
import { updateReleaseTool } from '@/tools/github/update_release'
|
||||
import { addAssigneesTool, addAssigneesV2Tool } from '@/tools/github/add_assignees'
|
||||
import { addLabelsTool, addLabelsV2Tool } from '@/tools/github/add_labels'
|
||||
import { cancelWorkflowRunTool, cancelWorkflowRunV2Tool } from '@/tools/github/cancel_workflow_run'
|
||||
import { closeIssueTool, closeIssueV2Tool } from '@/tools/github/close_issue'
|
||||
import { closePRTool, closePRV2Tool } from '@/tools/github/close_pr'
|
||||
import { commentTool, commentV2Tool } from '@/tools/github/comment'
|
||||
import { createBranchTool, createBranchV2Tool } from '@/tools/github/create_branch'
|
||||
import { createFileTool, createFileV2Tool } from '@/tools/github/create_file'
|
||||
import { createIssueTool, createIssueV2Tool } from '@/tools/github/create_issue'
|
||||
import { createPRTool, createPRV2Tool } from '@/tools/github/create_pr'
|
||||
import { createProjectTool, createProjectV2Tool } from '@/tools/github/create_project'
|
||||
import { createReleaseTool, createReleaseV2Tool } from '@/tools/github/create_release'
|
||||
import { deleteBranchTool, deleteBranchV2Tool } from '@/tools/github/delete_branch'
|
||||
import { deleteCommentTool, deleteCommentV2Tool } from '@/tools/github/delete_comment'
|
||||
import { deleteFileTool, deleteFileV2Tool } from '@/tools/github/delete_file'
|
||||
import { deleteProjectTool, deleteProjectV2Tool } from '@/tools/github/delete_project'
|
||||
import { deleteReleaseTool, deleteReleaseV2Tool } from '@/tools/github/delete_release'
|
||||
import { getBranchTool, getBranchV2Tool } from '@/tools/github/get_branch'
|
||||
import {
|
||||
getBranchProtectionTool,
|
||||
getBranchProtectionV2Tool,
|
||||
} from '@/tools/github/get_branch_protection'
|
||||
import { getFileContentTool, getFileContentV2Tool } from '@/tools/github/get_file_content'
|
||||
import { getIssueTool, getIssueV2Tool } from '@/tools/github/get_issue'
|
||||
import { getPRFilesTool, getPRFilesV2Tool } from '@/tools/github/get_pr_files'
|
||||
import { getProjectTool, getProjectV2Tool } from '@/tools/github/get_project'
|
||||
import { getReleaseTool, getReleaseV2Tool } from '@/tools/github/get_release'
|
||||
import { getTreeTool, getTreeV2Tool } from '@/tools/github/get_tree'
|
||||
import { getWorkflowTool, getWorkflowV2Tool } from '@/tools/github/get_workflow'
|
||||
import { getWorkflowRunTool, getWorkflowRunV2Tool } from '@/tools/github/get_workflow_run'
|
||||
import { issueCommentTool, issueCommentV2Tool } from '@/tools/github/issue_comment'
|
||||
import { latestCommitTool, latestCommitV2Tool } from '@/tools/github/latest_commit'
|
||||
import { listBranchesTool, listBranchesV2Tool } from '@/tools/github/list_branches'
|
||||
import { listIssueCommentsTool, listIssueCommentsV2Tool } from '@/tools/github/list_issue_comments'
|
||||
import { listIssuesTool, listIssuesV2Tool } from '@/tools/github/list_issues'
|
||||
import { listPRCommentsTool, listPRCommentsV2Tool } from '@/tools/github/list_pr_comments'
|
||||
import { listProjectsTool, listProjectsV2Tool } from '@/tools/github/list_projects'
|
||||
import { listPRsTool, listPRsV2Tool } from '@/tools/github/list_prs'
|
||||
import { listReleasesTool, listReleasesV2Tool } from '@/tools/github/list_releases'
|
||||
import { listWorkflowRunsTool, listWorkflowRunsV2Tool } from '@/tools/github/list_workflow_runs'
|
||||
import { listWorkflowsTool, listWorkflowsV2Tool } from '@/tools/github/list_workflows'
|
||||
import { mergePRTool, mergePRV2Tool } from '@/tools/github/merge_pr'
|
||||
import { prTool, prV2Tool } from '@/tools/github/pr'
|
||||
import { removeLabelTool, removeLabelV2Tool } from '@/tools/github/remove_label'
|
||||
import { repoInfoTool, repoInfoV2Tool } from '@/tools/github/repo_info'
|
||||
import { requestReviewersTool, requestReviewersV2Tool } from '@/tools/github/request_reviewers'
|
||||
import { rerunWorkflowTool, rerunWorkflowV2Tool } from '@/tools/github/rerun_workflow'
|
||||
import { triggerWorkflowTool, triggerWorkflowV2Tool } from '@/tools/github/trigger_workflow'
|
||||
import {
|
||||
updateBranchProtectionTool,
|
||||
updateBranchProtectionV2Tool,
|
||||
} from '@/tools/github/update_branch_protection'
|
||||
import { updateCommentTool, updateCommentV2Tool } from '@/tools/github/update_comment'
|
||||
import { updateFileTool, updateFileV2Tool } from '@/tools/github/update_file'
|
||||
import { updateIssueTool, updateIssueV2Tool } from '@/tools/github/update_issue'
|
||||
import { updatePRTool, updatePRV2Tool } from '@/tools/github/update_pr'
|
||||
import { updateProjectTool, updateProjectV2Tool } from '@/tools/github/update_project'
|
||||
import { updateReleaseTool, updateReleaseV2Tool } from '@/tools/github/update_release'
|
||||
|
||||
export const githubCancelWorkflowRunTool = cancelWorkflowRunTool
|
||||
export const githubCancelWorkflowRunV2Tool = cancelWorkflowRunV2Tool
|
||||
export const githubClosePRTool = closePRTool
|
||||
export const githubClosePRV2Tool = closePRV2Tool
|
||||
export const githubCommentTool = commentTool
|
||||
export const githubCommentV2Tool = commentV2Tool
|
||||
export const githubCreateBranchTool = createBranchTool
|
||||
export const githubCreateBranchV2Tool = createBranchV2Tool
|
||||
export const githubCreateFileTool = createFileTool
|
||||
export const githubCreateFileV2Tool = createFileV2Tool
|
||||
export const githubCreatePRTool = createPRTool
|
||||
export const githubCreatePRV2Tool = createPRV2Tool
|
||||
export const githubCreateProjectTool = createProjectTool
|
||||
export const githubCreateProjectV2Tool = createProjectV2Tool
|
||||
export const githubCreateReleaseTool = createReleaseTool
|
||||
export const githubCreateReleaseV2Tool = createReleaseV2Tool
|
||||
export const githubDeleteBranchTool = deleteBranchTool
|
||||
export const githubDeleteBranchV2Tool = deleteBranchV2Tool
|
||||
export const githubDeleteCommentTool = deleteCommentTool
|
||||
export const githubDeleteCommentV2Tool = deleteCommentV2Tool
|
||||
export const githubDeleteFileTool = deleteFileTool
|
||||
export const githubDeleteFileV2Tool = deleteFileV2Tool
|
||||
export const githubDeleteProjectTool = deleteProjectTool
|
||||
export const githubDeleteProjectV2Tool = deleteProjectV2Tool
|
||||
export const githubDeleteReleaseTool = deleteReleaseTool
|
||||
export const githubDeleteReleaseV2Tool = deleteReleaseV2Tool
|
||||
export const githubGetBranchTool = getBranchTool
|
||||
export const githubGetBranchV2Tool = getBranchV2Tool
|
||||
export const githubGetBranchProtectionTool = getBranchProtectionTool
|
||||
export const githubGetBranchProtectionV2Tool = getBranchProtectionV2Tool
|
||||
export const githubGetFileContentTool = getFileContentTool
|
||||
export const githubGetFileContentV2Tool = getFileContentV2Tool
|
||||
export const githubGetPRFilesTool = getPRFilesTool
|
||||
export const githubGetPRFilesV2Tool = getPRFilesV2Tool
|
||||
export const githubGetProjectTool = getProjectTool
|
||||
export const githubGetProjectV2Tool = getProjectV2Tool
|
||||
export const githubGetReleaseTool = getReleaseTool
|
||||
export const githubGetReleaseV2Tool = getReleaseV2Tool
|
||||
export const githubGetTreeTool = getTreeTool
|
||||
export const githubGetTreeV2Tool = getTreeV2Tool
|
||||
export const githubGetWorkflowTool = getWorkflowTool
|
||||
export const githubGetWorkflowV2Tool = getWorkflowV2Tool
|
||||
export const githubGetWorkflowRunTool = getWorkflowRunTool
|
||||
export const githubGetWorkflowRunV2Tool = getWorkflowRunV2Tool
|
||||
export const githubIssueCommentTool = issueCommentTool
|
||||
export const githubIssueCommentV2Tool = issueCommentV2Tool
|
||||
export const githubLatestCommitTool = latestCommitTool
|
||||
export const githubLatestCommitV2Tool = latestCommitV2Tool
|
||||
export const githubListBranchesTool = listBranchesTool
|
||||
export const githubListBranchesV2Tool = listBranchesV2Tool
|
||||
export const githubListIssueCommentsTool = listIssueCommentsTool
|
||||
export const githubListIssueCommentsV2Tool = listIssueCommentsV2Tool
|
||||
export const githubListPRCommentsTool = listPRCommentsTool
|
||||
export const githubListPRCommentsV2Tool = listPRCommentsV2Tool
|
||||
export const githubListPRsTool = listPRsTool
|
||||
export const githubListPRsV2Tool = listPRsV2Tool
|
||||
export const githubListProjectsTool = listProjectsTool
|
||||
export const githubListProjectsV2Tool = listProjectsV2Tool
|
||||
export const githubListReleasesTool = listReleasesTool
|
||||
export const githubListReleasesV2Tool = listReleasesV2Tool
|
||||
export const githubListWorkflowRunsTool = listWorkflowRunsTool
|
||||
export const githubListWorkflowRunsV2Tool = listWorkflowRunsV2Tool
|
||||
export const githubListWorkflowsTool = listWorkflowsTool
|
||||
export const githubListWorkflowsV2Tool = listWorkflowsV2Tool
|
||||
export const githubMergePRTool = mergePRTool
|
||||
export const githubMergePRV2Tool = mergePRV2Tool
|
||||
export const githubPrTool = prTool
|
||||
export const githubPrV2Tool = prV2Tool
|
||||
export const githubRepoInfoTool = repoInfoTool
|
||||
export const githubRepoInfoV2Tool = repoInfoV2Tool
|
||||
export const githubRequestReviewersTool = requestReviewersTool
|
||||
export const githubRequestReviewersV2Tool = requestReviewersV2Tool
|
||||
export const githubRerunWorkflowTool = rerunWorkflowTool
|
||||
export const githubRerunWorkflowV2Tool = rerunWorkflowV2Tool
|
||||
export const githubTriggerWorkflowTool = triggerWorkflowTool
|
||||
export const githubTriggerWorkflowV2Tool = triggerWorkflowV2Tool
|
||||
export const githubUpdateBranchProtectionTool = updateBranchProtectionTool
|
||||
export const githubUpdateBranchProtectionV2Tool = updateBranchProtectionV2Tool
|
||||
export const githubUpdateCommentTool = updateCommentTool
|
||||
export const githubUpdateCommentV2Tool = updateCommentV2Tool
|
||||
export const githubUpdateFileTool = updateFileTool
|
||||
export const githubUpdateFileV2Tool = updateFileV2Tool
|
||||
export const githubUpdatePRTool = updatePRTool
|
||||
export const githubUpdatePRV2Tool = updatePRV2Tool
|
||||
export const githubUpdateProjectTool = updateProjectTool
|
||||
export const githubUpdateProjectV2Tool = updateProjectV2Tool
|
||||
export const githubUpdateReleaseTool = updateReleaseTool
|
||||
export const githubUpdateReleaseV2Tool = updateReleaseV2Tool
|
||||
export const githubAddAssigneesTool = addAssigneesTool
|
||||
export const githubAddAssigneesV2Tool = addAssigneesV2Tool
|
||||
export const githubAddLabelsTool = addLabelsTool
|
||||
export const githubAddLabelsV2Tool = addLabelsV2Tool
|
||||
export const githubCloseIssueTool = closeIssueTool
|
||||
export const githubCloseIssueV2Tool = closeIssueV2Tool
|
||||
export const githubCreateIssueTool = createIssueTool
|
||||
export const githubCreateIssueV2Tool = createIssueV2Tool
|
||||
export const githubGetIssueTool = getIssueTool
|
||||
export const githubGetIssueV2Tool = getIssueV2Tool
|
||||
export const githubListIssuesTool = listIssuesTool
|
||||
export const githubListIssuesV2Tool = listIssuesV2Tool
|
||||
export const githubRemoveLabelTool = removeLabelTool
|
||||
export const githubRemoveLabelV2Tool = removeLabelV2Tool
|
||||
export const githubUpdateIssueTool = updateIssueTool
|
||||
export const githubUpdateIssueV2Tool = updateIssueV2Tool
|
||||
|
||||
@@ -101,3 +101,35 @@ export const issueCommentTool: ToolConfig<CreateIssueCommentParams, IssueComment
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const issueCommentV2Tool: ToolConfig = {
|
||||
id: 'github_issue_comment_v2',
|
||||
name: issueCommentTool.name,
|
||||
description: issueCommentTool.description,
|
||||
version: '2.0.0',
|
||||
params: issueCommentTool.params,
|
||||
request: issueCommentTool.request,
|
||||
oauth: issueCommentTool.oauth,
|
||||
transformResponse: async (response: Response) => {
|
||||
const comment = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
id: comment.id,
|
||||
body: comment.body,
|
||||
html_url: comment.html_url,
|
||||
user: comment.user,
|
||||
created_at: comment.created_at,
|
||||
updated_at: comment.updated_at,
|
||||
},
|
||||
}
|
||||
},
|
||||
outputs: {
|
||||
id: { type: 'number', description: 'Comment ID' },
|
||||
body: { type: 'string', description: 'Comment body' },
|
||||
html_url: { type: 'string', description: 'GitHub web URL' },
|
||||
user: { type: 'json', description: 'User who created the comment' },
|
||||
created_at: { type: 'string', description: 'Creation timestamp' },
|
||||
updated_at: { type: 'string', description: 'Last update timestamp' },
|
||||
},
|
||||
}
|
||||
|
||||
@@ -134,3 +134,34 @@ export const latestCommitTool: ToolConfig<LatestCommitParams, LatestCommitRespon
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export const latestCommitV2Tool: ToolConfig = {
|
||||
id: 'github_latest_commit_v2',
|
||||
name: latestCommitTool.name,
|
||||
description: latestCommitTool.description,
|
||||
version: '2.0.0',
|
||||
params: latestCommitTool.params,
|
||||
request: latestCommitTool.request,
|
||||
oauth: latestCommitTool.oauth,
|
||||
transformResponse: async (response: Response) => {
|
||||
const commits = await response.json()
|
||||
const commit = commits[0]
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
sha: commit.sha,
|
||||
html_url: commit.html_url,
|
||||
commit: commit.commit,
|
||||
author: commit.author,
|
||||
committer: commit.committer,
|
||||
},
|
||||
}
|
||||
},
|
||||
outputs: {
|
||||
sha: { type: 'string', description: 'Commit SHA' },
|
||||
html_url: { type: 'string', description: 'GitHub web URL' },
|
||||
commit: { type: 'json', description: 'Commit info with message, author, committer' },
|
||||
author: { type: 'json', description: 'Author user object' },
|
||||
committer: { type: 'json', description: 'Committer user object' },
|
||||
},
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user