Compare commits

..

22 Commits

Author SHA1 Message Date
Waleed
3fbd57caf1 v0.5.26: tool fixes, templates and knowledgebase fixes, deployment versions in logs 2025-12-11 00:52:13 -08:00
Vikhyath Mondreti
b5da61377c v0.5.25: minor ui improvements, copilot billing fix 2025-12-10 18:32:27 -08:00
Waleed
18b7032494 v0.5.24: agent tool and UX improvements, redis service overhaul (#2291)
* feat(folders): add the ability to create a folder within a folder in popover (#2287)

* fix(agent): filter out empty params to ensure LLM can set tool params at runtime (#2288)

* fix(mcp): added backfill effect to add missing descriptions for mcp tools (#2290)

* fix(redis): cleanup access pattern across callsites (#2289)

* fix(redis): cleanup access pattern across callsites

* swap redis command to be non blocking

* improvement(log-details): polling, trace spans (#2292)

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: Emir Karabeg <78010029+emir-karabeg@users.noreply.github.com>
2025-12-10 13:09:21 -08:00
Waleed
b7bbef8620 v0.5.23: kb, logs, general ui improvements, token bucket rate limits, docs, mcp, autolayout improvements (#2286)
* fix(mcp): prevent redundant MCP server discovery calls at runtime, use cached tool schema instead (#2273)

* fix(mcp): prevent redundant MCP server discovery calls at runtime, use cached tool schema instead

* added backfill, added loading state for tools in settings > mcp

* fix tool inp

* feat(rate-limiter): token bucket algorithm  (#2270)

* fix(ratelimit): make deployed chat rate limited

* improvement(rate-limiter): use token bucket algo

* update docs

* fix

* fix type

* fix db rate limiter

* address greptile comments

* feat(i18n): update translations (#2275)

Co-authored-by: icecrasher321 <icecrasher321@users.noreply.github.com>

* fix(tools): updated kalshi and polymarket tools to accurately reflect outputs (#2274)

* feat(i18n): update translations (#2276)

Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>

* fix(autolayout): align by handle (#2277)

* fix(autolayout): align by handle

* use shared constants everywhere

* cleanup

* fix(copilot): fix custom tools (#2278)

* Fix title custom tool

* Checkpoitn (broken)

* Fix custom tool flash

* Edit workflow returns null fix

* Works

* Fix lint

* fix(ime): prevent form submission during IME composition steps (#2279)

* fix(ui): prevent form submission during IME composition steps

* chore(gitignore): add IntelliJ IDE files to .gitignore

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: Waleed <walif6@gmail.com>
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>

* feat(ui): logs, kb, emcn (#2207)

* feat(kb): emcn alignment; sidebar: popover primary; settings-modal: expand

* feat: EMCN breadcrumb; improvement(KB): UI

* fix: hydration error

* improvement(KB): UI

* feat: emcn modal sizing, KB tags; refactor: deleted old sidebar

* feat(logs): UI

* fix: add documents modal name

* feat: logs, emcn, cursorrules; refactor: logs

* feat: dashboard

* feat: notifications; improvement: logs details

* fixed random rectangle on canvas

* fixed the name of the file to align

* fix build

---------

Co-authored-by: waleed <walif6@gmail.com>

* fix(creds): glitch allowing multiple credentials in an integration (#2282)

* improvement: custom tools modal, logs-details (#2283)

* fix(docs): fix copy page button and header hook (#2284)

* improvement(chat): add the ability to download files from the deployed chat (#2280)

* added teams download and chat download file

* Removed comments

* removed comments

* component structure and download all

* removed comments

* cleanup code

* fix empty files case

* small fix

* fix(container): resize heuristic improvement (#2285)

* estimate block height for resize based on subblocks

* fix hydration error

* make more conservative

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: icecrasher321 <icecrasher321@users.noreply.github.com>
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
Co-authored-by: Siddharth Ganesan <33737564+Sg312@users.noreply.github.com>
Co-authored-by: mosa <mosaxiv@gmail.com>
Co-authored-by: Emir Karabeg <78010029+emir-karabeg@users.noreply.github.com>
Co-authored-by: Adam Gough <77861281+aadamgough@users.noreply.github.com>
2025-12-10 00:57:58 -08:00
Waleed
52edbea659 v0.5.22: rss feed trigger, sftp tool, billing fixes, 413 surfacing, copilot improvements 2025-12-09 10:27:36 -08:00
Vikhyath Mondreti
d480057fd3 fix(migration): migration got removed by force push (#2253) 2025-12-08 14:08:12 -08:00
Waleed
c27c233da0 v0.5.21: google groups, virtualized code viewer, ui, autolayout, docs improvements 2025-12-08 13:10:50 -08:00
Waleed
ebef5f3a27 v0.5.20: google slides, ui fixes, subflow resizing improvements 2025-12-06 15:36:09 -08:00
Vikhyath Mondreti
12c4c2d44f v0.5.19: copilot fix 2025-12-05 15:27:31 -08:00
Vikhyath Mondreti
929a352edb fix(build): added trigger.dev sdk mock to tests (#2216) 2025-12-05 14:26:50 -08:00
Vikhyath Mondreti
6cd078b0fe v0.5.18: ui fixes, nextjs16, workspace notifications, admin APIs, loading improvements, new slack tools 2025-12-05 14:03:09 -08:00
Waleed
31874939ee v0.5.17: modals, billing fixes, bun update, zoom, dropbox, kalshi, polymarket, datadog, ahrefs, gitlab, shopify, ssh, wordpress integrations 2025-12-04 13:29:46 -08:00
Waleed
e157ce5fbc v0.5.16: MCP fixes, code refactors, jira fixes, new mistral models 2025-12-02 22:02:11 -08:00
Vikhyath Mondreti
774e5d585c v0.5.15: add tools, revert subblock prop change 2025-12-01 13:52:12 -08:00
Vikhyath Mondreti
54cc93743f v0.5.14: fix issue with teams, google selectors + cleanup code 2025-12-01 12:39:39 -08:00
Waleed
8c32ad4c0d v0.5.13: polling fixes, generic agent search tool, status page, smtp, sendgrid, linkedin, more tools (#2148)
* feat(tools): added smtp, sendgrid, mailgun, linkedin, fixed permissions in context menu (#2133)

* feat(tools): added twilio sendgrid integration

* feat(tools): added smtp, sendgrid, mailgun, fixed permissions in context menu

* added top level mocks for sporadically failing tests

* incr type safety

* fix(team-plans): track departed member usage so value not lost (#2118)

* fix(team-plans): track departed member usage so value not lost

* reset usage to 0 when they leave team

* prep merge with stagig

* regen migrations

* fix org invite + ws selection'

---------

Co-authored-by: Waleed <walif6@gmail.com>

* feat(i18n): update translations (#2134)

Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>

* feat(creators): add verification for creators (#2135)

* feat(tools): added apify block/tools  (#2136)

* feat(tools): added apify

* cleanup

* feat(i18n): update translations (#2137)

Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>

* feat(env): added more optional env var examples (#2138)

* feat(statuspage): added statuspage, updated list of tools in footer, renamed routes (#2139)

* feat(statuspage): added statuspage, updated list of tools in footer, renamed routes

* ack PR comments

* feat(tools): add generic search tool (#2140)

* feat(i18n): update translations (#2141)

* fix(sdks): bump sdk versions (#2142)

* fix(webhooks): count test webhooks towards usage limit (#2143)

* fix(bill): add requestId to webhook processing (#2144)

* improvement(subflow): remove all associated edges when moving a block into a subflow (#2145)

* improvement(subflow): remove all associated edges when moving a block into a subflow

* ack PR comments

* fix(polling): mark webhook failed on webhook trigger errors (#2146)

* fix(deps): declare core transient deps explicitly (#2147)

* fix(deps): declare core transient deps explicitly

* ack PR comments

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
2025-12-01 10:15:36 -08:00
Waleed
1d08796853 v0.5.12: memory optimizations, sentry, incidentio, posthog, zendesk, pylon, intercom, mailchimp, loading optimizations (#2132)
* fix(memory-util): fixed unbounded array of gmail/outlook pollers causing high memory util, added missing db indexes/removed unused ones, auto-disable schedules/webhooks after 10 consecutive failures (#2115)

* fix(memory-util): fixed unbounded array of gmail/outlook pollers causing high memory util, added missing db indexes/removed unused ones, auto-disable schedules/webhooks after 10 consecutive failures

* ack PR comments

* ack

* improvement(teams-plan): seats increase simplification + not triggering checkout session (#2117)

* improvement(teams-plan): seats increase simplification + not triggering checkout session

* cleanup via helper

* feat(tools): added sentry, incidentio, and posthog tools (#2116)

* feat(tools): added sentry, incidentio, and posthog tools

* update docs

* fixed docs to use native fumadocs for llms.txt and copy markdown, fixed tool issues

* cleanup

* enhance error extractor, fixed posthog tools

* docs enhancements, cleanup

* added more incident io ops, remove zustand/shallow in favor of zustand/react/shallow

* fix type errors

* remove unnecessary comments

* added vllm to docs

* feat(i18n): update translations (#2120)

* feat(i18n): update translations

* fix build

---------

Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>

* improvement(workflow-execution): perf improvements to passing workflow state + decrypted env vars (#2119)

* improvement(execution): load workflow state once instead of 2-3 times

* decrypt only in get helper

* remove comments

* remove comments

* feat(models): host google gemini models (#2122)

* feat(models): host google gemini models

* remove unused primary key

* feat(i18n): update translations (#2123)

Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>

* feat(tools): added zendesk, pylon, intercom, & mailchimp (#2126)

* feat(tools): added zendesk, pylon, intercom, & mailchimp

* finish zendesk and pylon

* updated docs

* feat(i18n): update translations (#2129)

* feat(i18n): update translations

* fixed build

---------

Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>

* fix(permissions): add client-side permissions validation to prevent unauthorized actions, upgraded custom tool modal (#2130)

* fix(permissions): add client-side permissions validation to prevent unauthorized actions, upgraded custom tool modal

* fix failing test

* fix test

* cleanup

* fix(custom-tools): add composite index on custom tool names & workspace id (#2131)

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
2025-11-28 16:08:06 -08:00
Waleed
ebcd243942 v0.5.11: stt, videogen, vllm, billing fixes, new models 2025-11-25 01:14:12 -08:00
Waleed
b7e814b721 v0.5.10: copilot upgrade, preprocessor, logs search, UI, code hygiene 2025-11-21 12:04:34 -08:00
Waleed
842ef27ed9 v0.5.9: add backwards compatibility for agent messages array 2025-11-20 11:19:42 -08:00
Vikhyath Mondreti
31c34b2ea3 v0.5.8: notifications, billing, ui changes, store loading state machine 2025-11-20 01:32:32 -08:00
Vikhyath Mondreti
8f0ef58056 v0.5.7: combobox selectors, usage indicator, workflow loading race condition, other improvements 2025-11-17 21:25:51 -08:00
222 changed files with 2305 additions and 4710 deletions

File diff suppressed because one or more lines are too long

View File

@@ -90,7 +90,6 @@ import {
ShopifyIcon,
SlackIcon,
SmtpIcon,
SQSIcon,
SshIcon,
STTIcon,
StagehandIcon,
@@ -146,7 +145,6 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
stagehand_agent: StagehandIcon,
stagehand: StagehandIcon,
ssh: SshIcon,
sqs: SQSIcon,
smtp: SmtpIcon,
slack: SlackIcon,
shopify: ShopifyIcon,

View File

@@ -51,9 +51,10 @@ Führe einen APIFY-Aktor synchron aus und erhalte Ergebnisse (maximal 5 Minuten)
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob der Actor-Lauf erfolgreich war |
| `runId` | string | APIFY-Lauf-ID |
| `status` | string | Laufstatus \(SUCCEEDED, FAILED, usw.\) |
| `success` | boolean | Ob die Aktor-Ausführung erfolgreich war |
| `runId` | string | APIFY-Ausführungs-ID |
| `status` | string | Ausführungsstatus \(SUCCEEDED, FAILED, usw.\) |
| `datasetId` | string | Dataset-ID mit Ergebnissen |
| `items` | array | Dataset-Elemente \(falls abgeschlossen\) |
### `apify_run_actor_async`

View File

@@ -34,14 +34,7 @@ Eine einzelne Aufgabe anhand der GID abrufen oder mehrere Aufgaben mit Filtern e
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `ts` | string | Zeitstempel der Antwort |
| `gid` | string | Global eindeutige Kennung der Aufgabe |
| `resource_type` | string | Ressourcentyp \(task\) |
| `resource_subtype` | string | Ressourcen-Subtyp |
| `name` | string | Aufgabenname |
| `notes` | string | Aufgabennotizen oder -beschreibung |
| `completed` | boolean | Ob die Aufgabe abgeschlossen ist |
| `assignee` | object | Details zum Zugewiesenen |
| `output` | object | Details einer einzelnen Aufgabe oder Array von Aufgaben, abhängig davon, ob taskGid angegeben wurde |
### `asana_create_task`
@@ -61,14 +54,8 @@ Eine neue Aufgabe in Asana erstellen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `ts` | string | Zeitstempel der Antwort |
| `gid` | string | Global eindeutige Kennung der Aufgabe |
| `name` | string | Aufgabenname |
| `notes` | string | Aufgabennotizen oder -beschreibung |
| `completed` | boolean | Ob die Aufgabe abgeschlossen ist |
| `created_at` | string | Zeitstempel der Aufgabenerstellung |
| `permalink_url` | string | URL zur Aufgabe in Asana |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Details der erstellten Aufgabe mit Zeitstempel, GID, Name, Notizen und Permalink |
### `asana_update_task`
@@ -90,12 +77,7 @@ Eine bestehende Aufgabe in Asana aktualisieren
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `ts` | string | Zeitstempel der Antwort |
| `gid` | string | Global eindeutige Kennung der Aufgabe |
| `name` | string | Aufgabenname |
| `notes` | string | Aufgabennotizen oder -beschreibung |
| `completed` | boolean | Ob die Aufgabe abgeschlossen ist |
| `modified_at` | string | Zeitstempel der letzten Änderung der Aufgabe |
| `output` | object | Aktualisierte Aufgabendetails mit Zeitstempel, GID, Name, Notizen und Änderungszeitstempel |
### `asana_get_projects`
@@ -112,8 +94,7 @@ Alle Projekte aus einem Asana-Workspace abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `ts` | string | Zeitstempel der Antwort |
| `projects` | array | Array von Projekten |
| `output` | object | Liste der Projekte mit ihrer GID, Name und Ressourcentyp |
### `asana_search_tasks`
@@ -134,8 +115,7 @@ Nach Aufgaben in einem Asana-Workspace suchen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `ts` | string | Zeitstempel der Antwort |
| `tasks` | array | Array von passenden Aufgaben |
| `output` | object | Liste der Aufgaben, die den Suchkriterien entsprechen |
### `asana_add_comment`
@@ -153,11 +133,7 @@ Einen Kommentar (Story) zu einer Asana-Aufgabe hinzufügen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `ts` | string | Zeitstempel der Antwort |
| `gid` | string | Global eindeutige Kennung des Kommentars |
| `text` | string | Textinhalt des Kommentars |
| `created_at` | string | Erstellungszeitstempel des Kommentars |
| `created_by` | object | Details zum Autor des Kommentars |
| `output` | object | Kommentardetails einschließlich gid, Text, Erstellungszeitstempel und Autor |
## Hinweise

View File

@@ -221,36 +221,9 @@ Löscht einen Kommentar von einer Confluence-Seite.
| `commentId` | string | Gelöschte Kommentar-ID |
| `deleted` | boolean | Löschstatus |
### `confluence_upload_attachment`
Laden Sie eine Datei als Anhang zu einer Confluence-Seite hoch.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
| `pageId` | string | Ja | Confluence-Seiten-ID, an die die Datei angehängt werden soll |
| `file` | file | Ja | Die als Anhang hochzuladende Datei |
| `fileName` | string | Nein | Optionaler benutzerdefinierter Dateiname für den Anhang |
| `comment` | string | Nein | Optionaler Kommentar zum Anhang |
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | Zeitstempel des Uploads |
| `attachmentId` | string | Hochgeladene Anhangs-ID |
| `title` | string | Dateiname des Anhangs |
| `fileSize` | number | Dateigröße in Bytes |
| `mediaType` | string | MIME-Typ des Anhangs |
| `downloadUrl` | string | Download-URL für den Anhang |
| `pageId` | string | Seiten-ID, zu der der Anhang hinzugefügt wurde |
### `confluence_list_attachments`
Listen Sie alle Anhänge einer Confluence-Seite auf.
Listet alle Anhänge einer Confluence-Seite auf.
#### Eingabe
@@ -270,7 +243,7 @@ Listen Sie alle Anhänge einer Confluence-Seite auf.
### `confluence_delete_attachment`
Löschen eines Anhangs von einer Confluence-Seite (wird in den Papierkorb verschoben).
Löscht einen Anhang von einer Confluence-Seite (wird in den Papierkorb verschoben).
#### Eingabe
@@ -290,7 +263,7 @@ Löschen eines Anhangs von einer Confluence-Seite (wird in den Papierkorb versch
### `confluence_list_labels`
Listet alle Labels einer Confluence-Seite auf.
Alle Labels einer Confluence-Seite auflisten.
#### Eingabe
@@ -309,7 +282,7 @@ Listet alle Labels einer Confluence-Seite auf.
### `confluence_get_space`
Ruft Details zu einem bestimmten Confluence-Space ab.
Details zu einem bestimmten Confluence-Space abrufen.
#### Eingabe
@@ -333,7 +306,7 @@ Ruft Details zu einem bestimmten Confluence-Space ab.
### `confluence_list_spaces`
Listet alle Confluence-Spaces auf, auf die der Benutzer zugreifen kann.
Alle für den Benutzer zugänglichen Confluence-Spaces auflisten.
#### Eingabe

View File

@@ -144,7 +144,8 @@ Extrahieren Sie strukturierte Daten aus vollständigen Webseiten mithilfe von na
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob der Extraktionsvorgang erfolgreich war |
| `data` | object | Extrahierte strukturierte Daten gemäß dem Schema oder der Eingabeaufforderung |
| `data` | object | Extrahierte strukturierte Daten gemäß dem Schema oder Prompt |
| `sources` | array | Datenquellen \(nur wenn showSources aktiviert ist\) |
## Hinweise

View File

@@ -34,8 +34,7 @@ Alle Gruppen in einer Google Workspace-Domain auflisten
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `groups` | json | Array von Gruppenobjekten |
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_get_group`
@@ -51,7 +50,7 @@ Details einer bestimmten Google-Gruppe nach E-Mail oder Gruppen-ID abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `group` | json | Gruppenobjekt |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_create_group`
@@ -69,7 +68,7 @@ Eine neue Google-Gruppe in der Domain erstellen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `group` | json | Erstelltes Gruppenobjekt |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_update_group`
@@ -88,7 +87,7 @@ Eine bestehende Google-Gruppe aktualisieren
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `group` | json | Aktualisiertes Gruppenobjekt |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_delete_group`
@@ -104,7 +103,7 @@ Eine Google-Gruppe löschen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgsmeldung |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_list_members`
@@ -123,8 +122,7 @@ Alle Mitglieder einer Google-Gruppe auflisten
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `members` | json | Array von Mitgliederobjekten |
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_get_member`
@@ -141,7 +139,7 @@ Details eines bestimmten Mitglieds in einer Google-Gruppe abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `member` | json | Mitgliederobjekt |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_add_member`
@@ -159,7 +157,7 @@ Ein neues Mitglied zu einer Google-Gruppe hinzufügen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `member` | json | Hinzugefügtes Mitgliederobjekt |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_remove_member`
@@ -176,7 +174,7 @@ Ein Mitglied aus einer Google-Gruppe entfernen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgsmeldung |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_update_member`
@@ -194,7 +192,7 @@ Ein Mitglied aktualisieren
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `member` | json | Aktualisiertes Mitgliederobjekt |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_has_member`
@@ -211,7 +209,7 @@ Prüfen, ob ein Benutzer Mitglied einer Google-Gruppe ist
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `isMember` | boolean | Gibt an, ob der Benutzer ein Mitglied der Gruppe ist |
| `output` | json | Google Groups API-Antwortdaten |
## Hinweise

View File

@@ -35,7 +35,8 @@ Einen Export in einer Angelegenheit erstellen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `export` | json | Erstelltes Export-Objekt |
| `output` | json | Vault API-Antwortdaten |
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
### `google_vault_list_matters_export`
@@ -54,9 +55,8 @@ Exporte für eine Angelegenheit auflisten
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `exports` | json | Array von Export-Objekten |
| `export` | json | Einzelnes Export-Objekt \(wenn exportId angegeben ist\) |
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
| `output` | json | Vault API-Antwortdaten |
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
### `google_vault_download_export_file`
@@ -95,7 +95,8 @@ Eine Aufbewahrung in einer Angelegenheit erstellen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `hold` | json | Erstelltes Hold-Objekt |
| `output` | json | Vault-API-Antwortdaten |
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
### `google_vault_list_matters_holds`
@@ -112,11 +113,10 @@ Aufbewahrungen für eine Angelegenheit auflisten
#### Output
| Parameter | Typ | Beschreibung |
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `holds` | json | Array von Hold-Objekten |
| `hold` | json | Einzelnes Hold-Objekt \(wenn holdId angegeben ist\) |
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
| `output` | json | Vault API-Antwortdaten |
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
### `google_vault_create_matters`
@@ -131,9 +131,10 @@ Einen neuen Fall in Google Vault erstellen
#### Output
| Parameter | Typ | Beschreibung |
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `matter` | json | Erstelltes Matter-Objekt |
| `output` | json | Vault API-Antwortdaten |
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
### `google_vault_list_matters`
@@ -149,11 +150,10 @@ Fälle auflisten oder einen bestimmten Fall abrufen, wenn matterId angegeben ist
#### Output
| Parameter | Typ | Beschreibung |
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `matters` | json | Array von Matter-Objekten |
| `matter` | json | Einzelnes Matter-Objekt \(wenn matterId angegeben ist\) |
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
| `output` | json | Vault API-Antwortdaten |
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
## Hinweise

View File

@@ -46,11 +46,10 @@ Alle Benutzer vom HubSpot-Konto abrufen
#### Output
| Parameter | Typ | Beschreibung |
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `users` | array | Array von HubSpot-Benutzerobjekten |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Benutzerdaten |
### `hubspot_list_contacts`
@@ -69,10 +68,8 @@ Alle Kontakte vom HubSpot-Konto mit Paginierungsunterstützung abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `contacts` | array | Array von HubSpot-Kontaktobjekten |
| `paging` | object | Paginierungsinformationen |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Kontaktdaten |
### `hubspot_get_contact`
@@ -91,9 +88,8 @@ Einen einzelnen Kontakt anhand von ID oder E-Mail aus HubSpot abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `contact` | object | HubSpot-Kontaktobjekt mit Eigenschaften |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Kontaktdaten |
### `hubspot_create_contact`
@@ -110,9 +106,8 @@ Erstellt einen neuen Kontakt in HubSpot. Erfordert mindestens eines der folgende
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `contact` | object | Erstelltes HubSpot-Kontaktobjekt |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Daten des erstellten Kontakts |
### `hubspot_update_contact`
@@ -130,9 +125,8 @@ Aktualisiert einen bestehenden Kontakt in HubSpot anhand von ID oder E-Mail
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `contact` | object | Aktualisiertes HubSpot-Kontaktobjekt |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Daten des aktualisierten Kontakts |
### `hubspot_search_contacts`
@@ -153,11 +147,8 @@ Suche nach Kontakten in HubSpot mit Filtern, Sortierung und Abfragen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `contacts` | array | Array übereinstimmender HubSpot-Kontaktobjekte |
| `total` | number | Gesamtanzahl übereinstimmender Kontakte |
| `paging` | object | Paginierungsinformationen |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Suchergebnisse |
### `hubspot_list_companies`
@@ -176,10 +167,8 @@ Alle Unternehmen aus dem HubSpot-Konto mit Paginierungsunterstützung abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `companies` | array | Array von HubSpot-Unternehmensobjekten |
| `paging` | object | Paginierungsinformationen |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Unternehmensdaten |
### `hubspot_get_company`
@@ -198,9 +187,8 @@ Ruft ein einzelnes Unternehmen anhand der ID oder Domain von HubSpot ab
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `company` | object | HubSpot-Unternehmensobjekt mit Eigenschaften |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Unternehmensdaten |
### `hubspot_create_company`
@@ -217,9 +205,8 @@ Erstellt ein neues Unternehmen in HubSpot
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `company` | object | Erstelltes HubSpot-Unternehmensobjekt |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Daten des erstellten Unternehmens |
### `hubspot_update_company`
@@ -237,9 +224,8 @@ Aktualisiert ein bestehendes Unternehmen in HubSpot anhand der ID oder Domain
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `company` | object | Aktualisiertes HubSpot-Unternehmensobjekt |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Aktualisierte Unternehmensdaten |
### `hubspot_search_companies`
@@ -260,11 +246,8 @@ Suche nach Unternehmen in HubSpot mit Filtern, Sortierung und Abfragen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `companies` | array | Array übereinstimmender HubSpot-Unternehmensobjekte |
| `total` | number | Gesamtzahl übereinstimmender Unternehmen |
| `paging` | object | Paginierungsinformationen |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Suchergebnisse |
### `hubspot_list_deals`
@@ -283,10 +266,8 @@ Alle Deals vom HubSpot-Konto mit Paginierungsunterstützung abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `deals` | array | Array von HubSpot-Deal-Objekten |
| `paging` | object | Paginierungsinformationen |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Deals-Daten |
## Hinweise

View File

@@ -49,11 +49,10 @@ Alle Deals von Pipedrive mit optionalen Filtern abrufen
#### Output
| Parameter | Typ | Beschreibung |
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `deals` | array | Array von Deal-Objekten aus Pipedrive |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Deals-Daten und Metadaten |
### `pipedrive_get_deal`
@@ -67,11 +66,10 @@ Detaillierte Informationen über einen bestimmten Deal abrufen
#### Output
| Parameter | Typ | Beschreibung |
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `deal` | object | Deal-Objekt mit vollständigen Details |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Deal-Details |
### `pipedrive_create_deal`
@@ -95,9 +93,8 @@ Einen neuen Deal in Pipedrive erstellen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `deal` | object | Das erstellte Deal-Objekt |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Details des erstellten Deals |
### `pipedrive_update_deal`
@@ -118,9 +115,8 @@ Aktualisieren eines bestehenden Deals in Pipedrive
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `deal` | object | Das aktualisierte Deal-Objekt |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Details des aktualisierten Deals |
### `pipedrive_get_files`
@@ -137,11 +133,10 @@ Dateien von Pipedrive mit optionalen Filtern abrufen
#### Output
| Parameter | Typ | Beschreibung |
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `files` | array | Array von Datei-Objekten aus Pipedrive |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Dateidaten |
### `pipedrive_get_mail_messages`
@@ -156,11 +151,10 @@ E-Mail-Threads aus dem Pipedrive-Postfach abrufen
#### Output
| Parameter | Typ | Beschreibung |
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `messages` | array | Array von E-Mail-Thread-Objekten aus der Pipedrive-Mailbox |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | E-Mail-Thread-Daten |
### `pipedrive_get_mail_thread`
@@ -174,11 +168,10 @@ Alle Nachrichten aus einem bestimmten E-Mail-Thread abrufen
#### Output
| Parameter | Typ | Beschreibung |
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `messages` | array | Array von E-Mail-Nachrichtenobjekten aus dem Thread |
| `metadata` | object | Operationsmetadaten einschließlich Thread-ID |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Nachrichtendaten des E-Mail-Threads |
### `pipedrive_get_pipelines`
@@ -197,9 +190,8 @@ Alle Pipelines aus Pipedrive abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `pipelines` | array | Array von Pipeline-Objekten aus Pipedrive |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Status des Operationserfolgs |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Pipeline-Daten |
### `pipedrive_get_pipeline_deals`
@@ -218,9 +210,8 @@ Alle Deals in einer bestimmten Pipeline abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `deals` | array | Array von Deal-Objekten aus der Pipeline |
| `metadata` | object | Operationsmetadaten einschließlich Pipeline-ID |
| `success` | boolean | Status des Operationserfolgs |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Pipeline-Deals-Daten |
### `pipedrive_get_projects`
@@ -238,10 +229,8 @@ Alle Projekte oder ein bestimmtes Projekt von Pipedrive abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `projects` | array | Array von Projektobjekten (bei Auflistung aller) |
| `project` | object | Einzelnes Projektobjekt (wenn project_id angegeben ist) |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Status des Operationserfolgs |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Projektdaten oder Details eines einzelnen Projekts |
### `pipedrive_create_project`
@@ -260,9 +249,8 @@ Erstelle ein neues Projekt in Pipedrive
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `project` | object | Das erstellte Projektobjekt |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Details des erstellten Projekts |
### `pipedrive_get_activities`
@@ -283,9 +271,8 @@ Aktivitäten (Aufgaben) von Pipedrive mit optionalen Filtern abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `activities` | array | Array von Aktivitätsobjekten aus Pipedrive |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Aktivitätsdaten |
### `pipedrive_create_activity`
@@ -309,9 +296,8 @@ Eine neue Aktivität (Aufgabe) in Pipedrive erstellen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `activity` | object | Das erstellte Aktivitätsobjekt |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Details der erstellten Aktivität |
### `pipedrive_update_activity`
@@ -331,11 +317,10 @@ Eine bestehende Aktivität (Aufgabe) in Pipedrive aktualisieren
#### Output
| Parameter | Typ | Beschreibung |
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `activity` | object | Das aktualisierte Aktivitätsobjekt |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Status des Operationserfolgs |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Aktualisierte Aktivitätsdetails |
### `pipedrive_get_leads`
@@ -354,12 +339,10 @@ Alle Leads oder einen bestimmten Lead von Pipedrive abrufen
#### Output
| Parameter | Typ | Beschreibung |
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `leads` | array | Array von Lead-Objekten (bei Auflistung aller) |
| `lead` | object | Einzelnes Lead-Objekt (wenn lead_id angegeben ist) |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Status des Operationserfolgs |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Lead-Daten oder Details eines einzelnen Leads |
### `pipedrive_create_lead`
@@ -380,11 +363,10 @@ Einen neuen Lead in Pipedrive erstellen
#### Output
| Parameter | Typ | Beschreibung |
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `lead` | object | Das erstellte Lead-Objekt |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Status des Operationserfolgs |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Details des erstellten Leads |
### `pipedrive_update_lead`
@@ -406,11 +388,10 @@ Einen vorhandenen Lead in Pipedrive aktualisieren
#### Output
| Parameter | Typ | Beschreibung |
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `lead` | object | Das aktualisierte Lead-Objekt |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Status des Operationserfolgs |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Details des aktualisierten Leads |
### `pipedrive_delete_lead`
@@ -426,9 +407,8 @@ Einen bestimmten Lead aus Pipedrive löschen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `data` | object | Löschbestätigungsdaten |
| `metadata` | object | Operationsmetadaten |
| `success` | boolean | Status des Operationserfolgs |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Löschergebnis |
## Hinweise

View File

@@ -1,63 +0,0 @@
---
title: Amazon SQS
description: Verbindung zu Amazon SQS
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="sqs"
color="linear-gradient(45deg, #2E27AD 0%, #527FFF 100%)"
/>
{/* MANUAL-CONTENT-START:intro */}
[Amazon Simple Queue Service (SQS)](https://aws.amazon.com/sqs/) ist ein vollständig verwalteter Message-Queuing-Dienst, der es ermöglicht, Microservices, verteilte Systeme und serverlose Anwendungen zu entkoppeln und zu skalieren. SQS beseitigt die Komplexität und den Aufwand, die mit der Verwaltung und dem Betrieb von nachrichtenorientierter Middleware verbunden sind, und ermöglicht Entwicklern, sich auf differenzierende Arbeit zu konzentrieren.
Mit Amazon SQS können Sie:
- **Nachrichten senden**: Veröffentlichen Sie Nachrichten in Warteschlangen für asynchrone Verarbeitung
- **Anwendungen entkoppeln**: Ermöglichen Sie eine lose Kopplung zwischen Komponenten Ihres Systems
- **Workloads skalieren**: Bewältigen Sie variable Arbeitslasten ohne Bereitstellung von Infrastruktur
- **Zuverlässigkeit gewährleisten**: Eingebaute Redundanz und hohe Verfügbarkeit
- **FIFO-Warteschlangen unterstützen**: Strikte Nachrichtenreihenfolge und genau einmalige Verarbeitung beibehalten
In Sim ermöglicht die SQS-Integration Ihren Agenten, Nachrichten sicher und programmatisch an Amazon SQS-Warteschlangen zu senden. Unterstützte Operationen umfassen:
- **Nachricht senden**: Senden Sie Nachrichten an SQS-Warteschlangen mit optionaler Nachrichtengruppen-ID und Deduplizierungs-ID für FIFO-Warteschlangen
Diese Integration ermöglicht es Ihren Agenten, Workflows zum Senden von Nachrichten ohne manuelle Eingriffe zu automatisieren. Durch die Verbindung von Sim mit Amazon SQS können Sie Agenten erstellen, die Nachrichten innerhalb Ihrer Workflows in Warteschlangen veröffentlichen alles ohne Verwaltung der Warteschlangen-Infrastruktur oder Verbindungen.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integrieren Sie Amazon SQS in den Workflow. Kann Nachrichten an SQS-Warteschlangen senden.
## Tools
### `sqs_send`
Eine Nachricht an eine Amazon SQS-Warteschlange senden
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `region` | string | Ja | AWS-Region (z.B. us-east-1) |
| `accessKeyId` | string | Ja | AWS-Zugriffsschlüssel-ID |
| `secretAccessKey` | string | Ja | AWS-Geheimzugriffsschlüssel |
| `queueUrl` | string | Ja | Queue-URL |
| `data` | object | Ja | Zu sendender Nachrichtentext |
| `messageGroupId` | string | Nein | Nachrichtengruppen-ID (optional) |
| `messageDeduplicationId` | string | Nein | Nachrichtendeduplizierungs-ID (optional) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `id` | string | Nachrichten-ID |
## Hinweise
- Kategorie: `tools`
- Typ: `sqs`

View File

@@ -48,9 +48,25 @@ Formularantworten von Typeform abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `total_items` | number | Gesamtanzahl der Antworten |
| `page_count` | number | Gesamtanzahl der verfügbaren Seiten |
| `items` | array | Array von Antwortobjekten mit response_id, submitted_at, answers und metadata |
| `total_items` | number | Gesamtzahl der Antworten/Formulare |
| `page_count` | number | Gesamtseitenanzahl |
| `items` | json | Array der Antwort-/Formularelemente |
| `id` | string | Eindeutige Formular-ID |
| `title` | string | Formulartitel |
| `type` | string | Formulartyp |
| `created_at` | string | ISO-Zeitstempel der Formularerstellung |
| `last_updated_at` | string | ISO-Zeitstempel der letzten Aktualisierung |
| `settings` | json | Formulareinstellungsobjekt |
| `theme` | json | Theme-Konfigurationsobjekt |
| `workspace` | json | Workspace-Informationen |
| `fields` | json | Array der Formularfelder/Fragen |
| `thankyou_screens` | json | Array der Dankesbildschirme |
| `_links` | json | Links zu verwandten Ressourcen |
| `deleted` | boolean | Ob das Formular erfolgreich gelöscht wurde |
| `message` | string | Löschbestätigungsnachricht |
| `fileUrl` | string | URL der heruntergeladenen Datei |
| `contentType` | string | Datei-Content-Type |
| `filename` | string | Dateiname |
### `typeform_files`
@@ -112,7 +128,7 @@ Eine Liste aller Formulare in Ihrem Typeform-Konto abrufen
| --------- | ---- | ----------- |
| `total_items` | number | Gesamtanzahl der Formulare im Konto |
| `page_count` | number | Gesamtanzahl der verfügbaren Seiten |
| `items` | array | Array von Formularobjekten mit id, title, created_at, last_updated_at, settings, theme und _links |
| `items` | array | Array von Formularobjekten |
### `typeform_get_form`
@@ -132,13 +148,11 @@ Vollständige Details und Struktur eines bestimmten Formulars abrufen
| `id` | string | Eindeutige Formular-ID |
| `title` | string | Formulartitel |
| `type` | string | Formulartyp \(form, quiz, etc.\) |
| `created_at` | string | ISO-Zeitstempel der Formularerstellung |
| `last_updated_at` | string | ISO-Zeitstempel der letzten Aktualisierung |
| `settings` | object | Formulareinstellungen einschließlich Sprache, Fortschrittsbalken, etc. |
| `theme` | object | Theme-Referenz |
| `workspace` | object | Workspace-Referenz |
| `fields` | array | Array von Formularfeldern/Fragen |
| `welcome_screens` | array | Array von Begrüßungsbildschirmen |
| `thankyou_screens` | array | Array von Dankesbildschirmen |
| `_links` | object | Links zu verwandten Ressourcen einschließlich öffentlicher Formular-URL |
| `theme` | object | Theme-Konfiguration mit Farben, Schriftarten und Design-Einstellungen |
| `workspace` | object | Workspace-Informationen |
### `typeform_create_form`
@@ -163,8 +177,13 @@ Ein neues Formular mit Feldern und Einstellungen erstellen
| `id` | string | Eindeutige Kennung des erstellten Formulars |
| `title` | string | Formulartitel |
| `type` | string | Formulartyp |
| `created_at` | string | ISO-Zeitstempel der Formularerstellung |
| `last_updated_at` | string | ISO-Zeitstempel der letzten Aktualisierung |
| `settings` | object | Formulareinstellungen |
| `theme` | object | Angewandte Theme-Konfiguration |
| `workspace` | object | Workspace-Informationen |
| `fields` | array | Array der erstellten Formularfelder |
| `_links` | object | Links zu verwandten Ressourcen einschließlich öffentlicher Formular-URL |
| `_links` | object | Links zu verwandten Ressourcen |
### `typeform_update_form`
@@ -185,12 +204,13 @@ Ein bestehendes Formular mit JSON Patch-Operationen aktualisieren
| `id` | string | Eindeutige Kennung des aktualisierten Formulars |
| `title` | string | Formulartitel |
| `type` | string | Formulartyp |
| `created_at` | string | ISO-Zeitstempel der Formularerstellung |
| `last_updated_at` | string | ISO-Zeitstempel der letzten Aktualisierung |
| `settings` | object | Formulareinstellungen |
| `theme` | object | Theme-Referenz |
| `workspace` | object | Workspace-Referenz |
| `fields` | array | Array von Formularfeldern |
| `welcome_screens` | array | Array von Begrüßungsbildschirmen |
| `thankyou_screens` | array | Array von Dankesbildschirmen |
| `theme` | object | Theme-Konfiguration |
| `workspace` | object | Workspace-Informationen |
| `fields` | array | Array der Formularfelder |
| `thankyou_screens` | array | Array der Dankesbildschirme |
| `_links` | object | Links zu verwandten Ressourcen |
### `typeform_delete_form`

View File

@@ -57,6 +57,7 @@ Run an APIFY actor synchronously and get results (max 5 minutes)
| `success` | boolean | Whether the actor run succeeded |
| `runId` | string | APIFY run ID |
| `status` | string | Run status \(SUCCEEDED, FAILED, etc.\) |
| `datasetId` | string | Dataset ID containing results |
| `items` | array | Dataset items \(if completed\) |
### `apify_run_actor_async`

View File

@@ -36,14 +36,7 @@ Retrieve a single task by GID or get multiple tasks with filters
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `ts` | string | Timestamp of the response |
| `gid` | string | Task globally unique identifier |
| `resource_type` | string | Resource type \(task\) |
| `resource_subtype` | string | Resource subtype |
| `name` | string | Task name |
| `notes` | string | Task notes or description |
| `completed` | boolean | Whether the task is completed |
| `assignee` | object | Assignee details |
| `output` | object | Single task details or array of tasks, depending on whether taskGid was provided |
### `asana_create_task`
@@ -64,13 +57,7 @@ Create a new task in Asana
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `ts` | string | Timestamp of the response |
| `gid` | string | Task globally unique identifier |
| `name` | string | Task name |
| `notes` | string | Task notes or description |
| `completed` | boolean | Whether the task is completed |
| `created_at` | string | Task creation timestamp |
| `permalink_url` | string | URL to the task in Asana |
| `output` | object | Created task details with timestamp, gid, name, notes, and permalink |
### `asana_update_task`
@@ -92,12 +79,7 @@ Update an existing task in Asana
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `ts` | string | Timestamp of the response |
| `gid` | string | Task globally unique identifier |
| `name` | string | Task name |
| `notes` | string | Task notes or description |
| `completed` | boolean | Whether the task is completed |
| `modified_at` | string | Task last modified timestamp |
| `output` | object | Updated task details with timestamp, gid, name, notes, and modified timestamp |
### `asana_get_projects`
@@ -114,8 +96,7 @@ Retrieve all projects from an Asana workspace
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `ts` | string | Timestamp of the response |
| `projects` | array | Array of projects |
| `output` | object | List of projects with their gid, name, and resource type |
### `asana_search_tasks`
@@ -136,8 +117,7 @@ Search for tasks in an Asana workspace
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `ts` | string | Timestamp of the response |
| `tasks` | array | Array of matching tasks |
| `output` | object | List of tasks matching the search criteria |
### `asana_add_comment`
@@ -155,11 +135,7 @@ Add a comment (story) to an Asana task
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `ts` | string | Timestamp of the response |
| `gid` | string | Comment globally unique identifier |
| `text` | string | Comment text content |
| `created_at` | string | Comment creation timestamp |
| `created_by` | object | Comment author details |
| `output` | object | Comment details including gid, text, created timestamp, and author |

View File

@@ -224,33 +224,6 @@ Delete a comment from a Confluence page.
| `commentId` | string | Deleted comment ID |
| `deleted` | boolean | Deletion status |
### `confluence_upload_attachment`
Upload a file as an attachment to a Confluence page.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
| `pageId` | string | Yes | Confluence page ID to attach the file to |
| `file` | file | Yes | The file to upload as an attachment |
| `fileName` | string | No | Optional custom file name for the attachment |
| `comment` | string | No | Optional comment to add to the attachment |
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of upload |
| `attachmentId` | string | Uploaded attachment ID |
| `title` | string | Attachment file name |
| `fileSize` | number | File size in bytes |
| `mediaType` | string | MIME type of the attachment |
| `downloadUrl` | string | Download URL for the attachment |
| `pageId` | string | Page ID the attachment was added to |
### `confluence_list_attachments`
List all attachments on a Confluence page.

View File

@@ -148,6 +148,7 @@ Extract structured data from entire webpages using natural language prompts and
| --------- | ---- | ----------- |
| `success` | boolean | Whether the extraction operation was successful |
| `data` | object | Extracted structured data according to the schema or prompt |
| `sources` | array | Data sources \(only if showSources is enabled\) |

View File

@@ -36,8 +36,7 @@ List all groups in a Google Workspace domain
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `groups` | json | Array of group objects |
| `nextPageToken` | string | Token for fetching next page of results |
| `output` | json | Google Groups API response data |
### `google_groups_get_group`
@@ -53,7 +52,7 @@ Get details of a specific Google Group by email or group ID
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `group` | json | Group object |
| `output` | json | Google Groups API response data |
### `google_groups_create_group`
@@ -71,7 +70,7 @@ Create a new Google Group in the domain
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `group` | json | Created group object |
| `output` | json | Google Groups API response data |
### `google_groups_update_group`
@@ -90,7 +89,7 @@ Update an existing Google Group
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `group` | json | Updated group object |
| `output` | json | Google Groups API response data |
### `google_groups_delete_group`
@@ -106,7 +105,7 @@ Delete a Google Group
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success message |
| `output` | json | Google Groups API response data |
### `google_groups_list_members`
@@ -125,8 +124,7 @@ List all members of a Google Group
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `members` | json | Array of member objects |
| `nextPageToken` | string | Token for fetching next page of results |
| `output` | json | Google Groups API response data |
### `google_groups_get_member`
@@ -143,7 +141,7 @@ Get details of a specific member in a Google Group
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `member` | json | Member object |
| `output` | json | Google Groups API response data |
### `google_groups_add_member`
@@ -161,7 +159,7 @@ Add a new member to a Google Group
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `member` | json | Added member object |
| `output` | json | Google Groups API response data |
### `google_groups_remove_member`
@@ -178,7 +176,7 @@ Remove a member from a Google Group
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Success message |
| `output` | json | Google Groups API response data |
### `google_groups_update_member`
@@ -196,7 +194,7 @@ Update a member
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `member` | json | Updated member object |
| `output` | json | Google Groups API response data |
### `google_groups_has_member`
@@ -213,7 +211,7 @@ Check if a user is a member of a Google Group
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `isMember` | boolean | Whether the user is a member of the group |
| `output` | json | Google Groups API response data |

View File

@@ -36,7 +36,8 @@ Create an export in a matter
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `export` | json | Created export object |
| `output` | json | Vault API response data |
| `file` | json | Downloaded export file \(UserFile\) from execution files |
### `google_vault_list_matters_export`
@@ -55,9 +56,8 @@ List exports for a matter
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `exports` | json | Array of export objects |
| `export` | json | Single export object \(when exportId is provided\) |
| `nextPageToken` | string | Token for fetching next page of results |
| `output` | json | Vault API response data |
| `file` | json | Downloaded export file \(UserFile\) from execution files |
### `google_vault_download_export_file`
@@ -96,7 +96,8 @@ Create a hold in a matter
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `hold` | json | Created hold object |
| `output` | json | Vault API response data |
| `file` | json | Downloaded export file \(UserFile\) from execution files |
### `google_vault_list_matters_holds`
@@ -115,9 +116,8 @@ List holds for a matter
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `holds` | json | Array of hold objects |
| `hold` | json | Single hold object \(when holdId is provided\) |
| `nextPageToken` | string | Token for fetching next page of results |
| `output` | json | Vault API response data |
| `file` | json | Downloaded export file \(UserFile\) from execution files |
### `google_vault_create_matters`
@@ -134,7 +134,8 @@ Create a new matter in Google Vault
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `matter` | json | Created matter object |
| `output` | json | Vault API response data |
| `file` | json | Downloaded export file \(UserFile\) from execution files |
### `google_vault_list_matters`
@@ -152,9 +153,8 @@ List matters, or get a specific matter if matterId is provided
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `matters` | json | Array of matter objects |
| `matter` | json | Single matter object \(when matterId is provided\) |
| `nextPageToken` | string | Token for fetching next page of results |
| `output` | json | Vault API response data |
| `file` | json | Downloaded export file \(UserFile\) from execution files |

View File

@@ -50,9 +50,8 @@ Retrieve all users from HubSpot account
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `users` | array | Array of HubSpot user objects |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Users data |
### `hubspot_list_contacts`
@@ -71,10 +70,8 @@ Retrieve all contacts from HubSpot account with pagination support
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `contacts` | array | Array of HubSpot contact objects |
| `paging` | object | Pagination information |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Contacts data |
### `hubspot_get_contact`
@@ -93,9 +90,8 @@ Retrieve a single contact by ID or email from HubSpot
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `contact` | object | HubSpot contact object with properties |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Contact data |
### `hubspot_create_contact`
@@ -112,9 +108,8 @@ 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 |
| `success` | boolean | Operation success status |
| `output` | object | Created contact data |
### `hubspot_update_contact`
@@ -132,9 +127,8 @@ Update an existing contact in HubSpot by ID or email
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `contact` | object | Updated HubSpot contact object |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Updated contact data |
### `hubspot_search_contacts`
@@ -155,11 +149,8 @@ Search for contacts in HubSpot using filters, sorting, and queries
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `contacts` | array | Array of matching HubSpot contact objects |
| `total` | number | Total number of matching contacts |
| `paging` | object | Pagination information |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Search results |
### `hubspot_list_companies`
@@ -178,10 +169,8 @@ Retrieve all companies from HubSpot account with pagination support
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `companies` | array | Array of HubSpot company objects |
| `paging` | object | Pagination information |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Companies data |
### `hubspot_get_company`
@@ -200,9 +189,8 @@ Retrieve a single company by ID or domain from HubSpot
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `company` | object | HubSpot company object with properties |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Company data |
### `hubspot_create_company`
@@ -219,9 +207,8 @@ Create a new company in HubSpot
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `company` | object | Created HubSpot company object |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Created company data |
### `hubspot_update_company`
@@ -239,9 +226,8 @@ Update an existing company in HubSpot by ID or domain
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `company` | object | Updated HubSpot company object |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Updated company data |
### `hubspot_search_companies`
@@ -262,11 +248,8 @@ Search for companies in HubSpot using filters, sorting, and queries
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `companies` | array | Array of matching HubSpot company objects |
| `total` | number | Total number of matching companies |
| `paging` | object | Pagination information |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Search results |
### `hubspot_list_deals`
@@ -285,10 +268,8 @@ Retrieve all deals from HubSpot account with pagination support
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deals` | array | Array of HubSpot deal objects |
| `paging` | object | Pagination information |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Deals data |

View File

@@ -86,7 +86,6 @@
"shopify",
"slack",
"smtp",
"sqs",
"ssh",
"stagehand",
"stagehand_agent",

View File

@@ -54,9 +54,8 @@ Retrieve all deals from Pipedrive with optional filters
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deals` | array | Array of deal objects from Pipedrive |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Deals data and metadata |
### `pipedrive_get_deal`
@@ -72,9 +71,8 @@ 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 |
| `output` | object | Deal details |
### `pipedrive_create_deal`
@@ -98,9 +96,8 @@ Create a new deal in Pipedrive
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deal` | object | The created deal object |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Created deal details |
### `pipedrive_update_deal`
@@ -121,9 +118,8 @@ Update an existing deal in Pipedrive
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deal` | object | The updated deal object |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Updated deal details |
### `pipedrive_get_files`
@@ -142,9 +138,8 @@ Retrieve files from Pipedrive with optional filters
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `files` | array | Array of file objects from Pipedrive |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Files data |
### `pipedrive_get_mail_messages`
@@ -161,9 +156,8 @@ Retrieve mail threads from Pipedrive mailbox
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `messages` | array | Array of mail thread objects from Pipedrive mailbox |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Mail threads data |
### `pipedrive_get_mail_thread`
@@ -179,9 +173,8 @@ 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 |
| `success` | boolean | Operation success status |
| `output` | object | Mail thread messages data |
### `pipedrive_get_pipelines`
@@ -200,9 +193,8 @@ Retrieve all pipelines from Pipedrive
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `pipelines` | array | Array of pipeline objects from Pipedrive |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Pipelines data |
### `pipedrive_get_pipeline_deals`
@@ -221,9 +213,8 @@ 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 |
| `success` | boolean | Operation success status |
| `output` | object | Pipeline deals data |
### `pipedrive_get_projects`
@@ -241,10 +232,8 @@ Retrieve all projects or a specific project from Pipedrive
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `projects` | array | Array of project objects \(when listing all\) |
| `project` | object | Single project object \(when project_id is provided\) |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Projects data or single project details |
### `pipedrive_create_project`
@@ -263,9 +252,8 @@ Create a new project in Pipedrive
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `project` | object | The created project object |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Created project details |
### `pipedrive_get_activities`
@@ -286,9 +274,8 @@ Retrieve activities (tasks) from Pipedrive with optional filters
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `activities` | array | Array of activity objects from Pipedrive |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Activities data |
### `pipedrive_create_activity`
@@ -312,9 +299,8 @@ 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 |
| `output` | object | Created activity details |
### `pipedrive_update_activity`
@@ -336,9 +322,8 @@ 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 |
| `output` | object | Updated activity details |
### `pipedrive_get_leads`
@@ -359,10 +344,8 @@ Retrieve all leads or a specific lead from Pipedrive
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `leads` | array | Array of lead objects \(when listing all\) |
| `lead` | object | Single lead object \(when lead_id is provided\) |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Leads data or single lead details |
### `pipedrive_create_lead`
@@ -385,9 +368,8 @@ Create a new lead in Pipedrive
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `lead` | object | The created lead object |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Created lead details |
### `pipedrive_update_lead`
@@ -411,9 +393,8 @@ Update an existing lead in Pipedrive
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `lead` | object | The updated lead object |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Updated lead details |
### `pipedrive_delete_lead`
@@ -429,9 +410,8 @@ Delete a specific lead from Pipedrive
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `data` | object | Deletion confirmation data |
| `metadata` | object | Operation metadata |
| `success` | boolean | Operation success status |
| `output` | object | Deletion result |

View File

@@ -1,68 +0,0 @@
---
title: Amazon SQS
description: Connect to Amazon SQS
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="sqs"
color="linear-gradient(45deg, #2E27AD 0%, #527FFF 100%)"
/>
{/* MANUAL-CONTENT-START:intro */}
[Amazon Simple Queue Service (SQS)](https://aws.amazon.com/sqs/) is a fully managed message queuing service that enables you to decouple and scale microservices, distributed systems, and serverless applications. SQS eliminates the complexity and overhead associated with managing and operating message-oriented middleware, and empowers developers to focus on differentiating work.
With Amazon SQS, you can:
- **Send messages**: Publish messages to queues for asynchronous processing
- **Decouple applications**: Enable loose coupling between components of your system
- **Scale workloads**: Handle variable workloads without provisioning infrastructure
- **Ensure reliability**: Built-in redundancy and high availability
- **Support FIFO queues**: Maintain strict message ordering and exactly-once processing
In Sim, the SQS integration enables your agents to send messages to Amazon SQS queues securely and programmatically. Supported operations include:
- **Send Message**: Send messages to SQS queues with optional message group ID and deduplication ID for FIFO queues
This integration allows your agents to automate message sending workflows without manual intervention. By connecting Sim with Amazon SQS, you can build agents that publish messages to queues within your workflows—all without handling queue infrastructure or connections.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate Amazon SQS into the workflow. Can send messages to SQS queues.
## Tools
### `sqs_send`
Send a message to an Amazon SQS queue
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `region` | string | Yes | AWS region \(e.g., us-east-1\) |
| `accessKeyId` | string | Yes | AWS access key ID |
| `secretAccessKey` | string | Yes | AWS secret access key |
| `queueUrl` | string | Yes | Queue URL |
| `data` | object | Yes | Message body to send |
| `messageGroupId` | string | No | Message group ID \(optional\) |
| `messageDeduplicationId` | string | No | Message deduplication ID \(optional\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Operation status message |
| `id` | string | Message ID |
## Notes
- Category: `tools`
- Type: `sqs`

View File

@@ -51,9 +51,25 @@ Retrieve form responses from Typeform
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `total_items` | number | Total number of responses |
| `page_count` | number | Total number of pages available |
| `items` | array | Array of response objects with response_id, submitted_at, answers, and metadata |
| `total_items` | number | Total response/form count |
| `page_count` | number | Total page count |
| `items` | json | Response/form items array |
| `id` | string | Form unique identifier |
| `title` | string | Form title |
| `type` | string | Form type |
| `created_at` | string | ISO timestamp of form creation |
| `last_updated_at` | string | ISO timestamp of last update |
| `settings` | json | Form settings object |
| `theme` | json | Theme configuration object |
| `workspace` | json | Workspace information |
| `fields` | json | Form fields/questions array |
| `thankyou_screens` | json | Thank you screens array |
| `_links` | json | Related resource links |
| `deleted` | boolean | Whether the form was successfully deleted |
| `message` | string | Deletion confirmation message |
| `fileUrl` | string | Downloaded file URL |
| `contentType` | string | File content type |
| `filename` | string | File name |
### `typeform_files`
@@ -115,7 +131,7 @@ Retrieve a list of all forms in your Typeform account
| --------- | ---- | ----------- |
| `total_items` | number | Total number of forms in the account |
| `page_count` | number | Total number of pages available |
| `items` | array | Array of form objects with id, title, created_at, last_updated_at, settings, theme, and _links |
| `items` | array | Array of form objects |
### `typeform_get_form`
@@ -135,13 +151,11 @@ Retrieve complete details and structure of a specific form
| `id` | string | Form unique identifier |
| `title` | string | Form title |
| `type` | string | Form type \(form, quiz, etc.\) |
| `created_at` | string | ISO timestamp of form creation |
| `last_updated_at` | string | ISO timestamp of last update |
| `settings` | object | Form settings including language, progress bar, etc. |
| `theme` | object | Theme reference |
| `workspace` | object | Workspace reference |
| `fields` | array | Array of form fields/questions |
| `welcome_screens` | array | Array of welcome screens |
| `thankyou_screens` | array | Array of thank you screens |
| `_links` | object | Related resource links including public form URL |
| `theme` | object | Theme configuration with colors, fonts, and design settings |
| `workspace` | object | Workspace information |
### `typeform_create_form`
@@ -166,8 +180,13 @@ Create a new form with fields and settings
| `id` | string | Created form unique identifier |
| `title` | string | Form title |
| `type` | string | Form type |
| `created_at` | string | ISO timestamp of form creation |
| `last_updated_at` | string | ISO timestamp of last update |
| `settings` | object | Form settings |
| `theme` | object | Applied theme configuration |
| `workspace` | object | Workspace information |
| `fields` | array | Array of created form fields |
| `_links` | object | Related resource links including public form URL |
| `_links` | object | Related resource links |
### `typeform_update_form`
@@ -188,11 +207,12 @@ Update an existing form using JSON Patch operations
| `id` | string | Updated form unique identifier |
| `title` | string | Form title |
| `type` | string | Form type |
| `created_at` | string | ISO timestamp of form creation |
| `last_updated_at` | string | ISO timestamp of last update |
| `settings` | object | Form settings |
| `theme` | object | Theme reference |
| `workspace` | object | Workspace reference |
| `theme` | object | Theme configuration |
| `workspace` | object | Workspace information |
| `fields` | array | Array of form fields |
| `welcome_screens` | array | Array of welcome screens |
| `thankyou_screens` | array | Array of thank you screens |
| `_links` | object | Related resource links |

View File

@@ -54,6 +54,7 @@ Ejecuta un actor de APIFY de forma sincrónica y obtén resultados (máximo 5 mi
| `success` | boolean | Si la ejecución del actor tuvo éxito |
| `runId` | string | ID de ejecución de APIFY |
| `status` | string | Estado de la ejecución \(SUCCEEDED, FAILED, etc.\) |
| `datasetId` | string | ID del conjunto de datos que contiene los resultados |
| `items` | array | Elementos del conjunto de datos \(si se completó\) |
### `apify_run_actor_async`

View File

@@ -34,14 +34,7 @@ Recupera una tarea individual por GID u obtén múltiples tareas con filtros
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `ts` | string | Marca de tiempo de la respuesta |
| `gid` | string | Identificador único global de la tarea |
| `resource_type` | string | Tipo de recurso \(tarea\) |
| `resource_subtype` | string | Subtipo de recurso |
| `name` | string | Nombre de la tarea |
| `notes` | string | Notas o descripción de la tarea |
| `completed` | boolean | Si la tarea está completada |
| `assignee` | object | Detalles del asignado |
| `output` | object | Detalles de una tarea individual o matriz de tareas, dependiendo de si se proporcionó taskGid |
### `asana_create_task`
@@ -62,13 +55,7 @@ Crear una nueva tarea en Asana
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `ts` | string | Marca de tiempo de la respuesta |
| `gid` | string | Identificador único global de la tarea |
| `name` | string | Nombre de la tarea |
| `notes` | string | Notas o descripción de la tarea |
| `completed` | boolean | Si la tarea está completada |
| `created_at` | string | Marca de tiempo de creación de la tarea |
| `permalink_url` | string | URL a la tarea en Asana |
| `output` | object | Detalles de la tarea creada con marca de tiempo, gid, nombre, notas y enlace permanente |
### `asana_update_task`
@@ -90,12 +77,7 @@ Actualizar una tarea existente en Asana
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `ts` | string | Marca de tiempo de la respuesta |
| `gid` | string | Identificador único global de la tarea |
| `name` | string | Nombre de la tarea |
| `notes` | string | Notas o descripción de la tarea |
| `completed` | boolean | Si la tarea está completada |
| `modified_at` | string | Marca de tiempo de última modificación de la tarea |
| `output` | object | Detalles actualizados de la tarea con marca de tiempo, gid, nombre, notas y marca de tiempo de modificación |
### `asana_get_projects`
@@ -112,8 +94,7 @@ Recuperar todos los proyectos de un espacio de trabajo de Asana
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `ts` | string | Marca de tiempo de la respuesta |
| `projects` | array | Array de proyectos |
| `output` | object | Lista de proyectos con su gid, nombre y tipo de recurso |
### `asana_search_tasks`
@@ -134,8 +115,7 @@ Buscar tareas en un espacio de trabajo de Asana
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `ts` | string | Marca de tiempo de la respuesta |
| `tasks` | array | Array de tareas coincidentes |
| `output` | object | Lista de tareas que coinciden con los criterios de búsqueda |
### `asana_add_comment`
@@ -153,11 +133,7 @@ Añadir un comentario (historia) a una tarea de Asana
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `ts` | string | Marca de tiempo de la respuesta |
| `gid` | string | Identificador único global del comentario |
| `text` | string | Contenido de texto del comentario |
| `created_at` | string | Marca de tiempo de creación del comentario |
| `created_by` | object | Detalles del autor del comentario |
| `output` | object | Detalles del comentario incluyendo gid, texto, marca de tiempo de creación y autor |
## Notas

View File

@@ -221,44 +221,17 @@ Eliminar un comentario de una página de Confluence.
| `commentId` | string | ID del comentario eliminado |
| `deleted` | boolean | Estado de eliminación |
### `confluence_upload_attachment`
Sube un archivo como adjunto a una página de Confluence.
#### Entrada
| Parámetro | Tipo | Obligatorio | Descripción |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Sí | Tu dominio de Confluence \(p. ej., tuempresa.atlassian.net\) |
| `pageId` | string | Sí | ID de la página de Confluence a la que adjuntar el archivo |
| `file` | file | Sí | El archivo a subir como adjunto |
| `fileName` | string | No | Nombre de archivo personalizado opcional para el adjunto |
| `comment` | string | No | Comentario opcional para añadir al adjunto |
| `cloudId` | string | No | ID de Confluence Cloud para la instancia. Si no se proporciona, se obtendrá utilizando el dominio. |
#### Salida
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `ts` | string | Marca de tiempo de la subida |
| `attachmentId` | string | ID del adjunto subido |
| `title` | string | Nombre del archivo adjunto |
| `fileSize` | number | Tamaño del archivo en bytes |
| `mediaType` | string | Tipo MIME del adjunto |
| `downloadUrl` | string | URL de descarga del adjunto |
| `pageId` | string | ID de la página a la que se añadió el adjunto |
### `confluence_list_attachments`
Lista todos los adjuntos en una página de Confluence.
Listar todos los archivos adjuntos en una página de Confluence.
#### Entrada
| Parámetro | Tipo | Obligatorio | Descripción |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Sí | Tu dominio de Confluence \(p. ej., tuempresa.atlassian.net\) |
| `pageId` | string | Sí | ID de la página de Confluence de la que listar adjuntos |
| `limit` | number | No | Número máximo de adjuntos a devolver \(predeterminado: 25\) |
| `pageId` | string | Sí | ID de la página de Confluence de la que listar los archivos adjuntos |
| `limit` | number | No | Número máximo de archivos adjuntos a devolver \(predeterminado: 25\) |
| `cloudId` | string | No | ID de Confluence Cloud para la instancia. Si no se proporciona, se obtendrá utilizando el dominio. |
#### Salida
@@ -266,31 +239,31 @@ Lista todos los adjuntos en una página de Confluence.
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `ts` | string | Marca de tiempo de la recuperación |
| `attachments` | array | Lista de archivos adjuntos |
| `attachments` | array | Lista de adjuntos |
### `confluence_delete_attachment`
Eliminar un archivo adjunto de una página de Confluence (lo mueve a la papelera).
Eliminar un adjunto de una página de Confluence (se mueve a la papelera).
#### Entrada
| Parámetro | Tipo | Obligatorio | Descripción |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Sí | Tu dominio de Confluence \(p. ej., tuempresa.atlassian.net\) |
| `attachmentId` | string | Sí | ID del archivo adjunto de Confluence a eliminar |
| `attachmentId` | string | Sí | ID del adjunto de Confluence a eliminar |
| `cloudId` | string | No | ID de Confluence Cloud para la instancia. Si no se proporciona, se obtendrá utilizando el dominio. |
#### Salida
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `ts` | string | Marca de tiempo de eliminación |
| `attachmentId` | string | ID del archivo adjunto eliminado |
| `deleted` | boolean | Estado de eliminación |
| `ts` | string | Marca de tiempo de la eliminación |
| `attachmentId` | string | ID del adjunto eliminado |
| `deleted` | boolean | Estado de la eliminación |
### `confluence_list_labels`
Listar todas las etiquetas de una página de Confluence.
Listar todas las etiquetas en una página de Confluence.
#### Entrada

View File

@@ -144,7 +144,8 @@ Extrae datos estructurados de páginas web completas utilizando instrucciones en
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Si la operación de extracción fue exitosa |
| `data` | object | Datos estructurados extraídos según el esquema o indicación |
| `data` | object | Datos estructurados extraídos según el esquema o prompt |
| `sources` | array | Fuentes de datos \(solo si showSources está habilitado\) |
## Notas

View File

@@ -34,8 +34,7 @@ Listar todos los grupos en un dominio de Google Workspace
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `groups` | json | Array de objetos de grupo |
| `nextPageToken` | string | Token para obtener la siguiente página de resultados |
| `output` | json | Datos de respuesta de la API de Google Groups |
### `google_groups_get_group`
@@ -51,7 +50,7 @@ Obtener detalles de un Grupo de Google específico por correo electrónico o ID
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `group` | json | Objeto de grupo |
| `output` | json | Datos de respuesta de la API de Google Groups |
### `google_groups_create_group`
@@ -69,7 +68,7 @@ Crear un nuevo Grupo de Google en el dominio
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `group` | json | Objeto de grupo creado |
| `output` | json | Datos de respuesta de la API de Google Groups |
### `google_groups_update_group`
@@ -88,7 +87,7 @@ Actualizar un grupo de Google existente
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `group` | json | Objeto de grupo actualizado |
| `output` | json | Datos de respuesta de la API de Google Groups |
### `google_groups_delete_group`
@@ -104,7 +103,7 @@ Eliminar un grupo de Google
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `message` | string | Mensaje de éxito |
| `output` | json | Datos de respuesta de la API de Google Groups |
### `google_groups_list_members`
@@ -123,8 +122,7 @@ Listar todos los miembros de un Grupo de Google
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `members` | json | Array de objetos de miembro |
| `nextPageToken` | string | Token para obtener la siguiente página de resultados |
| `output` | json | Datos de respuesta de la API de Grupos de Google |
### `google_groups_get_member`
@@ -141,7 +139,7 @@ Obtener detalles de un miembro específico en un Grupo de Google
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `member` | json | Objeto de miembro |
| `output` | json | Datos de respuesta de la API de Grupos de Google |
### `google_groups_add_member`
@@ -159,7 +157,7 @@ Añadir un nuevo miembro a un Grupo de Google
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `member` | json | Objeto de miembro añadido |
| `output` | json | Datos de respuesta de la API de Google Groups |
### `google_groups_remove_member`
@@ -176,7 +174,7 @@ Eliminar un miembro de un grupo de Google
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `message` | string | Mensaje de éxito |
| `output` | json | Datos de respuesta de la API de Google Groups |
### `google_groups_update_member`
@@ -194,7 +192,7 @@ Actualizar un miembro
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `member` | json | Objeto de miembro actualizado |
| `output` | json | Datos de respuesta de la API de Google Groups |
### `google_groups_has_member`
@@ -211,7 +209,7 @@ Comprobar si un usuario es miembro de un grupo de Google
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `isMember` | boolean | Indica si el usuario es miembro del grupo |
| `output` | json | Datos de respuesta de la API de Google Groups |
## Notas

View File

@@ -34,7 +34,8 @@ Crear una exportación en un asunto
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `export` | json | Objeto de exportación creado |
| `output` | json | Datos de respuesta de la API de Vault |
| `file` | json | Archivo de exportación descargado \(UserFile\) de los archivos de ejecución |
### `google_vault_list_matters_export`
@@ -53,9 +54,8 @@ Listar exportaciones para un asunto
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `exports` | json | Array de objetos de exportación |
| `export` | json | Objeto de exportación único \(cuando se proporciona exportId\) |
| `nextPageToken` | string | Token para obtener la siguiente página de resultados |
| `output` | json | Datos de respuesta de la API de Vault |
| `file` | json | Archivo de exportación descargado \(UserFile\) de los archivos de ejecución |
### `google_vault_download_export_file`
@@ -94,7 +94,8 @@ Crear una retención en un asunto
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `hold` | json | Objeto de retención creado |
| `output` | json | Datos de respuesta de la API de Vault |
| `file` | json | Archivo de exportación descargado \(UserFile\) de los archivos de ejecución |
### `google_vault_list_matters_holds`
@@ -113,9 +114,8 @@ Listar retenciones para un asunto
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `holds` | json | Array de objetos de retención |
| `hold` | json | Objeto de retención único \(cuando se proporciona holdId\) |
| `nextPageToken` | string | Token para obtener la siguiente página de resultados |
| `output` | json | Datos de respuesta de la API de Vault |
| `file` | json | Archivo de exportación descargado (UserFile) de los archivos de ejecución |
### `google_vault_create_matters`
@@ -132,7 +132,8 @@ Crear un nuevo asunto en Google Vault
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `matter` | json | Objeto de asunto creado |
| `output` | json | Datos de respuesta de la API de Vault |
| `file` | json | Archivo de exportación descargado (UserFile) de los archivos de ejecución |
### `google_vault_list_matters`
@@ -150,9 +151,8 @@ Listar asuntos, o obtener un asunto específico si se proporciona matterId
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `matters` | json | Array de objetos de asunto |
| `matter` | json | Objeto de asunto único \(cuando se proporciona matterId\) |
| `nextPageToken` | string | Token para obtener la siguiente página de resultados |
| `output` | json | Datos de respuesta de la API de Vault |
| `file` | json | Archivo de exportación descargado (UserFile) de los archivos de ejecución |
## Notas

View File

@@ -47,9 +47,8 @@ Recuperar todos los usuarios de la cuenta de HubSpot
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `users` | array | Array de objetos de usuario de HubSpot |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de usuarios |
### `hubspot_list_contacts`
@@ -68,10 +67,8 @@ Recuperar todos los contactos de la cuenta de HubSpot con soporte de paginación
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `contacts` | array | Array de objetos de contacto de HubSpot |
| `paging` | object | Información de paginación |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de contactos |
### `hubspot_get_contact`
@@ -90,9 +87,8 @@ Recuperar un solo contacto por ID o email desde HubSpot
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `contact` | object | Objeto de contacto de HubSpot con propiedades |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos del contacto |
### `hubspot_create_contact`
@@ -109,9 +105,8 @@ Crear un nuevo contacto en HubSpot. Requiere al menos uno de: email, firstname o
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `contact` | object | Objeto de contacto de HubSpot creado |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | objeto | Datos del contacto creado |
### `hubspot_update_contact`
@@ -129,9 +124,8 @@ Actualizar un contacto existente en HubSpot por ID o email
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `contact` | object | Objeto de contacto de HubSpot actualizado |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | objeto | Datos del contacto actualizado |
### `hubspot_search_contacts`
@@ -152,11 +146,8 @@ Buscar contactos en HubSpot usando filtros, ordenación y consultas
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `contacts` | array | Array de objetos de contacto de HubSpot coincidentes |
| `total` | number | Número total de contactos coincidentes |
| `paging` | object | Información de paginación |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Resultados de la búsqueda |
### `hubspot_list_companies`
@@ -175,10 +166,8 @@ Recuperar todas las empresas de la cuenta de HubSpot con soporte de paginación
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `companies` | array | Array de objetos de empresa de HubSpot |
| `paging` | object | Información de paginación |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de las empresas |
### `hubspot_get_company`
@@ -197,9 +186,8 @@ Recuperar una sola empresa por ID o dominio desde HubSpot
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `company` | object | Objeto de empresa de HubSpot con propiedades |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de la empresa |
### `hubspot_create_company`
@@ -216,9 +204,8 @@ Crear una nueva empresa en HubSpot
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `company` | object | Objeto de empresa de HubSpot creado |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de la empresa creada |
### `hubspot_update_company`
@@ -236,9 +223,8 @@ Actualizar una empresa existente en HubSpot por ID o dominio
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `company` | object | Objeto de empresa de HubSpot actualizado |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos actualizados de la empresa |
### `hubspot_search_companies`
@@ -259,11 +245,8 @@ Buscar empresas en HubSpot usando filtros, ordenación y consultas
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `companies` | array | Array de objetos de empresa de HubSpot coincidentes |
| `total` | number | Número total de empresas coincidentes |
| `paging` | object | Información de paginación |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Resultados de la búsqueda |
### `hubspot_list_deals`
@@ -282,10 +265,8 @@ Recuperar todos los acuerdos de la cuenta de HubSpot con soporte de paginación
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `deals` | array | Array de objetos de negocio de HubSpot |
| `paging` | object | Información de paginación |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de ofertas |
## Notas

View File

@@ -51,9 +51,8 @@ Recupera todos los acuerdos de Pipedrive con filtros opcionales
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `deals` | array | Array de objetos de acuerdos de Pipedrive |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos y metadatos de los acuerdos |
### `pipedrive_get_deal`
@@ -69,9 +68,8 @@ Recuperar información detallada sobre un acuerdo específico
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `deal` | object | Objeto de acuerdo con detalles completos |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Detalles del acuerdo |
### `pipedrive_create_deal`
@@ -95,9 +93,8 @@ Crear un nuevo acuerdo en Pipedrive
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `deal` | object | El objeto de acuerdo creado |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Detalles del acuerdo creado |
### `pipedrive_update_deal`
@@ -118,9 +115,8 @@ Actualizar un acuerdo existente en Pipedrive
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `deal` | object | El objeto de acuerdo actualizado |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Detalles del acuerdo actualizado |
### `pipedrive_get_files`
@@ -139,9 +135,8 @@ Recuperar archivos de Pipedrive con filtros opcionales
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `files` | array | Array de objetos de archivo de Pipedrive |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de archivos |
### `pipedrive_get_mail_messages`
@@ -158,9 +153,8 @@ Recuperar hilos de correo del buzón de Pipedrive
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `messages` | array | Array de objetos de hilos de correo del buzón de Pipedrive |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de hilos de correo |
### `pipedrive_get_mail_thread`
@@ -176,9 +170,8 @@ Recuperar todos los mensajes de un hilo de correo específico
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `messages` | array | Array de objetos de mensajes de correo del hilo |
| `metadata` | object | Metadatos de la operación incluyendo ID del hilo |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de mensajes del hilo de correo |
### `pipedrive_get_pipelines`
@@ -197,9 +190,8 @@ Recuperar todos los pipelines de Pipedrive
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `pipelines` | array | Array de objetos de pipeline de Pipedrive |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de los pipelines |
### `pipedrive_get_pipeline_deals`
@@ -218,9 +210,8 @@ Recuperar todos los acuerdos en un pipeline específico
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `deals` | array | Array de objetos de acuerdos del pipeline |
| `metadata` | object | Metadatos de la operación incluyendo ID del pipeline |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de acuerdos del pipeline |
### `pipedrive_get_projects`
@@ -238,10 +229,8 @@ Recuperar todos los proyectos o un proyecto específico de Pipedrive
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `projects` | array | Array de objetos de proyectos \(al listar todos\) |
| `project` | object | Objeto de un solo proyecto \(cuando se proporciona project_id\) |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de proyectos o detalles de un solo proyecto |
### `pipedrive_create_project`
@@ -260,9 +249,8 @@ Crear un nuevo proyecto en Pipedrive
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `project` | object | El objeto del proyecto creado |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Detalles del proyecto creado |
### `pipedrive_get_activities`
@@ -283,9 +271,8 @@ Recuperar actividades (tareas) de Pipedrive con filtros opcionales
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `activities` | array | Array de objetos de actividades de Pipedrive |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de actividades |
### `pipedrive_create_activity`
@@ -309,9 +296,8 @@ Crear una nueva actividad (tarea) en Pipedrive
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `activity` | object | El objeto de actividad creado |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Detalles de la actividad creada |
### `pipedrive_update_activity`
@@ -333,9 +319,8 @@ Actualizar una actividad existente (tarea) en Pipedrive
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `activity` | object | El objeto de actividad actualizado |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Detalles de la actividad actualizada |
### `pipedrive_get_leads`
@@ -356,10 +341,8 @@ Recuperar todos los leads o un lead específico de Pipedrive
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `leads` | array | Array de objetos de leads \(al listar todos\) |
| `lead` | object | Objeto de lead individual \(cuando se proporciona lead_id\) |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de leads o detalles de un solo lead |
### `pipedrive_create_lead`
@@ -382,9 +365,8 @@ Crear un nuevo lead en Pipedrive
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `lead` | object | El objeto de lead creado |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Detalles del lead creado |
### `pipedrive_update_lead`
@@ -408,9 +390,8 @@ Actualizar un lead existente en Pipedrive
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `lead` | object | El objeto de lead actualizado |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Detalles del lead actualizado |
### `pipedrive_delete_lead`
@@ -426,9 +407,8 @@ Eliminar un lead específico de Pipedrive
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `data` | object | Datos de confirmación de eliminación |
| `metadata` | object | Metadatos de la operación |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Resultado de la eliminación |
## Notas

View File

@@ -1,63 +0,0 @@
---
title: Amazon SQS
description: Conectar a Amazon SQS
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="sqs"
color="linear-gradient(45deg, #2E27AD 0%, #527FFF 100%)"
/>
{/* MANUAL-CONTENT-START:intro */}
[Amazon Simple Queue Service (SQS)](https://aws.amazon.com/sqs/) es un servicio de cola de mensajes completamente administrado que permite desacoplar y escalar microservicios, sistemas distribuidos y aplicaciones sin servidor. SQS elimina la complejidad y la sobrecarga asociadas con la gestión y operación de middleware orientado a mensajes, y permite a los desarrolladores centrarse en el trabajo diferenciador.
Con Amazon SQS, puedes:
- **Enviar mensajes**: Publicar mensajes en colas para procesamiento asíncrono
- **Desacoplar aplicaciones**: Permitir un acoplamiento flexible entre los componentes de tu sistema
- **Escalar cargas de trabajo**: Manejar cargas de trabajo variables sin aprovisionar infraestructura
- **Garantizar fiabilidad**: Redundancia incorporada y alta disponibilidad
- **Soportar colas FIFO**: Mantener un orden estricto de mensajes y procesamiento exactamente una vez
En Sim, la integración con SQS permite a tus agentes enviar mensajes a las colas de Amazon SQS de forma segura y programática. Las operaciones compatibles incluyen:
- **Enviar mensaje**: Enviar mensajes a colas SQS con ID de grupo de mensajes opcional e ID de deduplicación para colas FIFO
Esta integración permite a tus agentes automatizar flujos de trabajo de envío de mensajes sin intervención manual. Al conectar Sim con Amazon SQS, puedes crear agentes que publiquen mensajes en colas dentro de tus flujos de trabajo, todo sin tener que gestionar la infraestructura o las conexiones de las colas.
{/* MANUAL-CONTENT-END */}
## Instrucciones de uso
Integra Amazon SQS en el flujo de trabajo. Puede enviar mensajes a colas SQS.
## Herramientas
### `sqs_send`
Enviar un mensaje a una cola de Amazon SQS
#### Entrada
| Parámetro | Tipo | Obligatorio | Descripción |
| --------- | ---- | -------- | ----------- |
| `region` | string | Sí | Región de AWS (p. ej., us-east-1) |
| `accessKeyId` | string | Sí | ID de clave de acceso de AWS |
| `secretAccessKey` | string | Sí | Clave de acceso secreta de AWS |
| `queueUrl` | string | Sí | URL de la cola |
| `data` | object | Sí | Cuerpo del mensaje a enviar |
| `messageGroupId` | string | No | ID del grupo de mensajes (opcional) |
| `messageDeduplicationId` | string | No | ID de deduplicación del mensaje (opcional) |
#### Salida
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `message` | string | Mensaje de estado de la operación |
| `id` | string | ID del mensaje |
## Notas
- Categoría: `tools`
- Tipo: `sqs`

View File

@@ -48,9 +48,25 @@ Recuperar respuestas de formularios de Typeform
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `total_items` | number | Número total de respuestas |
| `page_count` | number | Número total de páginas disponibles |
| `items` | array | Array de objetos de respuesta con response_id, submitted_at, answers y metadata |
| `total_items` | number | Recuento total de respuestas/formularios |
| `page_count` | number | Recuento total de páginas |
| `items` | json | Array de elementos de respuesta/formulario |
| `id` | string | Identificador único del formulario |
| `title` | string | Título del formulario |
| `type` | string | Tipo de formulario |
| `created_at` | string | Marca de tiempo ISO de creación del formulario |
| `last_updated_at` | string | Marca de tiempo ISO de última actualización |
| `settings` | json | Objeto de configuración del formulario |
| `theme` | json | Objeto de configuración del tema |
| `workspace` | json | Información del espacio de trabajo |
| `fields` | json | Array de campos/preguntas del formulario |
| `thankyou_screens` | json | Array de pantallas de agradecimiento |
| `_links` | json | Enlaces a recursos relacionados |
| `deleted` | boolean | Si el formulario se eliminó correctamente |
| `message` | string | Mensaje de confirmación de eliminación |
| `fileUrl` | string | URL del archivo descargado |
| `contentType` | string | Tipo de contenido del archivo |
| `filename` | string | Nombre del archivo |
### `typeform_files`
@@ -112,7 +128,7 @@ Recupera una lista de todos los formularios en tu cuenta de Typeform
| --------- | ---- | ----------- |
| `total_items` | number | Número total de formularios en la cuenta |
| `page_count` | number | Número total de páginas disponibles |
| `items` | array | Array de objetos de formulario con id, title, created_at, last_updated_at, settings, theme y _links |
| `items` | array | Array de objetos de formulario |
### `typeform_get_form`
@@ -132,13 +148,11 @@ Recuperar detalles completos y estructura de un formulario específico
| `id` | string | Identificador único del formulario |
| `title` | string | Título del formulario |
| `type` | string | Tipo de formulario \(form, quiz, etc.\) |
| `created_at` | string | Marca de tiempo ISO de creación del formulario |
| `last_updated_at` | string | Marca de tiempo ISO de última actualización |
| `settings` | object | Configuración del formulario incluyendo idioma, barra de progreso, etc. |
| `theme` | object | Referencia del tema |
| `workspace` | object | Referencia del espacio de trabajo |
| `fields` | array | Array de campos/preguntas del formulario |
| `welcome_screens` | array | Array de pantallas de bienvenida |
| `thankyou_screens` | array | Array de pantallas de agradecimiento |
| `_links` | object | Enlaces a recursos relacionados incluyendo URL pública del formulario |
| `theme` | object | Configuración del tema con colores, fuentes y ajustes de diseño |
| `workspace` | object | Información del espacio de trabajo |
### `typeform_create_form`
@@ -163,8 +177,13 @@ Crear un nuevo formulario con campos y configuraciones
| `id` | string | Identificador único del formulario creado |
| `title` | string | Título del formulario |
| `type` | string | Tipo de formulario |
| `fields` | array | Array de campos del formulario creado |
| `_links` | object | Enlaces a recursos relacionados incluyendo URL pública del formulario |
| `created_at` | string | Marca de tiempo ISO de creación del formulario |
| `last_updated_at` | string | Marca de tiempo ISO de última actualización |
| `settings` | object | Configuración del formulario |
| `theme` | object | Configuración del tema aplicado |
| `workspace` | object | Información del espacio de trabajo |
| `fields` | array | Array de campos del formulario creados |
| `_links` | object | Enlaces a recursos relacionados |
### `typeform_update_form`
@@ -185,11 +204,12 @@ Actualizar un formulario existente usando operaciones JSON Patch
| `id` | string | Identificador único del formulario actualizado |
| `title` | string | Título del formulario |
| `type` | string | Tipo de formulario |
| `created_at` | string | Marca de tiempo ISO de creación del formulario |
| `last_updated_at` | string | Marca de tiempo ISO de última actualización |
| `settings` | object | Configuración del formulario |
| `theme` | object | Referencia del tema |
| `workspace` | object | Referencia del espacio de trabajo |
| `theme` | object | Configuración del tema |
| `workspace` | object | Información del espacio de trabajo |
| `fields` | array | Array de campos del formulario |
| `welcome_screens` | array | Array de pantallas de bienvenida |
| `thankyou_screens` | array | Array de pantallas de agradecimiento |
| `_links` | object | Enlaces a recursos relacionados |

View File

@@ -51,10 +51,11 @@ Exécuter un acteur APIFY de manière synchrone et obtenir les résultats (maxim
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Indique si l'exécution de l'acteur a réussi |
| `runId` | string | ID d'exécution APIFY |
| `status` | string | Statut d'exécution \(SUCCEEDED, FAILED, etc.\) |
| `items` | array | Éléments du dataset \(si terminé\) |
| `success` | booléen | Indique si l'exécution de l'acteur a réussi |
| `runId` | chaîne | ID d'exécution APIFY |
| `status` | chaîne | Statut d'exécution \(SUCCEEDED, FAILED, etc.\) |
| `datasetId` | chaîne | ID du jeu de données contenant les résultats |
| `items` | tableau | Éléments du jeu de données \(si terminé\) |
### `apify_run_actor_async`

View File

@@ -34,14 +34,7 @@ Récupérer une tâche unique par GID ou obtenir plusieurs tâches avec des filt
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `ts` | string | Horodatage de la réponse |
| `gid` | string | Identifiant unique global de la tâche |
| `resource_type` | string | Type de ressource \(tâche\) |
| `resource_subtype` | string | Sous-type de ressource |
| `name` | string | Nom de la tâche |
| `notes` | string | Notes ou description de la tâche |
| `completed` | boolean | Si la tâche est terminée |
| `assignee` | object | Détails de l'assigné |
| `output` | object | Détails d'une tâche unique ou tableau de tâches, selon que taskGid a été fourni ou non |
### `asana_create_task`
@@ -61,14 +54,8 @@ Créer une nouvelle tâche dans Asana
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `ts` | string | Horodatage de la réponse |
| `gid` | string | Identifiant unique global de la tâche |
| `name` | string | Nom de la tâche |
| `notes` | string | Notes ou description de la tâche |
| `completed` | boolean | Si la tâche est terminée |
| `created_at` | string | Horodatage de création de la tâche |
| `permalink_url` | string | URL vers la tâche dans Asana |
| `success` | booléen | Statut de réussite de l'opération |
| `output` | objet | Détails de la tâche créée avec horodatage, gid, nom, notes et lien permanent |
### `asana_update_task`
@@ -90,12 +77,7 @@ Mettre à jour une tâche existante dans Asana
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `ts` | string | Horodatage de la réponse |
| `gid` | string | Identifiant unique global de la tâche |
| `name` | string | Nom de la tâche |
| `notes` | string | Notes ou description de la tâche |
| `completed` | boolean | Si la tâche est terminée |
| `modified_at` | string | Horodatage de dernière modification de la tâche |
| `output` | object | Détails de la tâche mise à jour avec horodatage, gid, nom, notes et horodatage de modification |
### `asana_get_projects`
@@ -112,8 +94,7 @@ Récupérer tous les projets d'un espace de travail Asana
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `ts` | string | Horodatage de la réponse |
| `projects` | array | Tableau de projets |
| `output` | object | Liste des projets avec leur gid, nom et type de ressource |
### `asana_search_tasks`
@@ -134,8 +115,7 @@ Rechercher des tâches dans un espace de travail Asana
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `ts` | string | Horodatage de la réponse |
| `tasks` | array | Tableau des tâches correspondantes |
| `output` | object | Liste des tâches correspondant aux critères de recherche |
### `asana_add_comment`
@@ -153,11 +133,7 @@ Ajouter un commentaire (story) à une tâche Asana
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `ts` | string | Horodatage de la réponse |
| `gid` | string | Identifiant unique global du commentaire |
| `text` | string | Contenu textuel du commentaire |
| `created_at` | string | Horodatage de création du commentaire |
| `created_by` | object | Détails de l'auteur du commentaire |
| `output` | object | Détails du commentaire incluant gid, texte, horodatage de création et auteur |
## Notes

View File

@@ -221,33 +221,6 @@ Supprimer un commentaire d'une page Confluence.
| `commentId` | chaîne | ID du commentaire supprimé |
| `deleted` | booléen | Statut de la suppression |
### `confluence_upload_attachment`
Téléverser un fichier en tant que pièce jointe à une page Confluence.
#### Entrée
| Paramètre | Type | Obligatoire | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | chaîne | Oui | Votre domaine Confluence \(ex. : votreentreprise.atlassian.net\) |
| `pageId` | chaîne | Oui | ID de la page Confluence à laquelle joindre le fichier |
| `file` | fichier | Oui | Le fichier à téléverser en tant que pièce jointe |
| `fileName` | chaîne | Non | Nom de fichier personnalisé optionnel pour la pièce jointe |
| `comment` | chaîne | Non | Commentaire optionnel à ajouter à la pièce jointe |
| `cloudId` | chaîne | Non | ID Cloud Confluence pour l'instance. S'il n'est pas fourni, il sera récupéré à l'aide du domaine. |
#### Sortie
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `ts` | chaîne | Horodatage du téléversement |
| `attachmentId` | chaîne | ID de la pièce jointe téléversée |
| `title` | chaîne | Nom du fichier de la pièce jointe |
| `fileSize` | nombre | Taille du fichier en octets |
| `mediaType` | chaîne | Type MIME de la pièce jointe |
| `downloadUrl` | chaîne | URL de téléchargement de la pièce jointe |
| `pageId` | chaîne | ID de la page à laquelle la pièce jointe a été ajoutée |
### `confluence_list_attachments`
Lister toutes les pièces jointes d'une page Confluence.

View File

@@ -145,6 +145,7 @@ Extrayez des données structurées de pages web entières à l'aide d'instructio
| --------- | ---- | ----------- |
| `success` | boolean | Indique si l'opération d'extraction a réussi |
| `data` | object | Données structurées extraites selon le schéma ou l'invite |
| `sources` | array | Sources de données \(uniquement si showSources est activé\) |
## Remarques

View File

@@ -34,8 +34,7 @@ Lister tous les groupes dans un domaine Google Workspace
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `groups` | json | Tableau d'objets de groupe |
| `nextPageToken` | string | Jeton pour récupérer la page suivante de résultats |
| `output` | json | Données de réponse de l'API Google Groups |
### `google_groups_get_group`
@@ -51,7 +50,7 @@ Obtenir les détails d'un groupe Google spécifique par email ou ID de groupe
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `group` | json | Objet de groupe |
| `output` | json | Données de réponse de l'API Google Groups |
### `google_groups_create_group`
@@ -69,7 +68,7 @@ Créer un nouveau groupe Google dans le domaine
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `group` | json | Objet de groupe créé |
| `output` | json | Données de réponse de l'API Google Groups |
### `google_groups_update_group`
@@ -88,7 +87,7 @@ Mettre à jour un groupe Google existant
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `group` | json | Objet de groupe mis à jour |
| `output` | json | Données de réponse de l'API Google Groups |
### `google_groups_delete_group`
@@ -104,7 +103,7 @@ Supprimer un groupe Google
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Message de succès |
| `output` | json | Données de réponse de l'API Google Groups |
### `google_groups_list_members`
@@ -123,8 +122,7 @@ Lister tous les membres d'un groupe Google
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `members` | json | Tableau d'objets de membre |
| `nextPageToken` | string | Jeton pour récupérer la page suivante de résultats |
| `output` | json | Données de réponse de l'API Google Groups |
### `google_groups_get_member`
@@ -141,7 +139,7 @@ Obtenir les détails d'un membre spécifique dans un groupe Google
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `member` | json | Objet de membre |
| `output` | json | Données de réponse de l'API Google Groups |
### `google_groups_add_member`
@@ -159,7 +157,7 @@ Ajouter un nouveau membre à un groupe Google
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `member` | json | Objet de membre ajouté |
| `output` | json | Données de réponse de l'API Google Groups |
### `google_groups_remove_member`
@@ -176,7 +174,7 @@ Supprimer un membre d'un groupe Google
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Message de succès |
| `output` | json | Données de réponse de l'API Google Groups |
### `google_groups_update_member`
@@ -194,7 +192,7 @@ Mettre à jour un membre
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `member` | json | Objet de membre mis à jour |
| `output` | json | Données de réponse de l'API Google Groups |
### `google_groups_has_member`
@@ -211,7 +209,7 @@ Vérifier si un utilisateur est membre d'un groupe Google
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `isMember` | boolean | Indique si l'utilisateur est membre du groupe |
| `output` | json | Données de réponse de l'API Google Groups |
## Notes

View File

@@ -35,7 +35,8 @@ Créer une exportation dans une affaire
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `export` | json | Objet d'exportation créé |
| `output` | json | Données de réponse de l'API Vault |
| `file` | json | Fichier d'exportation téléchargé \(UserFile\) depuis les fichiers d'exécution |
### `google_vault_list_matters_export`
@@ -54,9 +55,8 @@ Lister les exportations pour une affaire
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `exports` | json | Tableau d'objets d'exportation |
| `export` | json | Objet d'exportation unique \(lorsque exportId est fourni\) |
| `nextPageToken` | string | Jeton pour récupérer la page suivante de résultats |
| `output` | json | Données de réponse de l'API Vault |
| `file` | json | Fichier d'exportation téléchargé \(UserFile\) depuis les fichiers d'exécution |
### `google_vault_download_export_file`
@@ -95,7 +95,8 @@ Créer une suspension dans une affaire
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `hold` | json | Objet de suspension créé |
| `output` | json | Données de réponse de l'API Vault |
| `file` | json | Fichier d'exportation téléchargé \(UserFile\) depuis les fichiers d'exécution |
### `google_vault_list_matters_holds`
@@ -114,9 +115,8 @@ Lister les suspensions pour une affaire
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `holds` | json | Tableau d'objets de suspension |
| `hold` | json | Objet de suspension unique \(lorsque holdId est fourni\) |
| `nextPageToken` | string | Jeton pour récupérer la page suivante de résultats |
| `output` | json | Données de réponse de l'API Vault |
| `file` | json | Fichier d'exportation téléchargé (UserFile) à partir des fichiers d'exécution |
### `google_vault_create_matters`
@@ -133,7 +133,8 @@ Créer une nouvelle affaire dans Google Vault
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `matter` | json | Objet d'affaire cé |
| `output` | json | Données de réponse de l'API Vault |
| `file` | json | Fichier d'exportation téléchargé (UserFile) à partir des fichiers d'exécution |
### `google_vault_list_matters`
@@ -151,9 +152,8 @@ Lister les affaires, ou obtenir une affaire spécifique si matterId est fourni
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `matters` | json | Tableau d'objets d'affaire |
| `matter` | json | Objet d'affaire unique \(lorsque matterId est fourni\) |
| `nextPageToken` | string | Jeton pour récupérer la page suivante de résultats |
| `output` | json | Données de réponse de l'API Vault |
| `file` | json | Fichier d'exportation téléchargé (UserFile) à partir des fichiers d'exécution |
## Notes

View File

@@ -48,9 +48,8 @@ Récupérer tous les utilisateurs du compte HubSpot
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `users` | array | Tableau d'objets utilisateur HubSpot |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données des utilisateurs |
### `hubspot_list_contacts`
@@ -69,10 +68,8 @@ Récupérer tous les contacts du compte HubSpot avec prise en charge de la pagin
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `contacts` | array | Tableau d'objets contact HubSpot |
| `paging` | object | Informations de pagination |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `success` | booléen | Statut de réussite de l'opération |
| `output` | objet | Données des contacts |
### `hubspot_get_contact`
@@ -91,9 +88,8 @@ Récupérer un seul contact par ID ou email depuis HubSpot
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `contact` | object | Objet contact HubSpot avec propriétés |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `success` | booléen | Statut de réussite de l'opération |
| `output` | objet | Données du contact |
### `hubspot_create_contact`
@@ -110,9 +106,8 @@ Créer un nouveau contact dans HubSpot. Nécessite au moins l'un des éléments
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `contact` | object | Objet contact HubSpot créé |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `success` | booléen | Statut de réussite de l'opération |
| `output` | objet | Données du contact créé |
### `hubspot_update_contact`
@@ -130,9 +125,8 @@ Mettre à jour un contact existant dans HubSpot par ID ou email
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `contact` | object | Objet contact HubSpot mis à jour |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `success` | booléen | Statut de réussite de l'opération |
| `output` | objet | Données du contact mis à jour |
### `hubspot_search_contacts`
@@ -153,11 +147,8 @@ Rechercher des contacts dans HubSpot en utilisant des filtres, des tris et des r
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `contacts` | array | Tableau d'objets contact HubSpot correspondants |
| `total` | number | Nombre total de contacts correspondants |
| `paging` | object | Informations de pagination |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Résultats de la recherche |
### `hubspot_list_companies`
@@ -176,10 +167,8 @@ Récupérer toutes les entreprises du compte HubSpot avec prise en charge de la
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `companies` | array | Tableau d'objets entreprise HubSpot |
| `paging` | object | Informations de pagination |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données des entreprises |
### `hubspot_get_company`
@@ -198,9 +187,8 @@ Récupérer une seule entreprise par ID ou domaine depuis HubSpot
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `company` | object | Objet entreprise HubSpot avec propriétés |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de l'entreprise |
### `hubspot_create_company`
@@ -217,9 +205,8 @@ Créer une nouvelle entreprise dans HubSpot
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `company` | object | Objet entreprise HubSpot créé |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de l'entreprise créée |
### `hubspot_update_company`
@@ -237,9 +224,8 @@ Mettre à jour une entreprise existante dans HubSpot par ID ou domaine
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `company` | object | Objet entreprise HubSpot mis à jour |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de l'entreprise mises à jour |
### `hubspot_search_companies`
@@ -260,11 +246,8 @@ Rechercher des entreprises dans HubSpot en utilisant des filtres, des tris et de
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `companies` | array | Tableau d'objets entreprise HubSpot correspondants |
| `total` | number | Nombre total d'entreprises correspondantes |
| `paging` | object | Informations de pagination |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Résultats de la recherche |
### `hubspot_list_deals`
@@ -283,10 +266,8 @@ Récupérer toutes les affaires du compte HubSpot avec prise en charge de la pag
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `deals` | array | Tableau d'objets affaire HubSpot |
| `paging` | object | Informations de pagination |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données des offres |
## Notes

View File

@@ -51,9 +51,8 @@ Récupérer toutes les affaires de Pipedrive avec des filtres optionnels
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `deals` | array | Tableau d'objets d'affaires de Pipedrive |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données et métadonnées des affaires |
### `pipedrive_get_deal`
@@ -69,9 +68,8 @@ Récupérer des informations détaillées sur une affaire spécifique
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `deal` | object | Objet d'affaire avec tous les détails |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Détails de l'affaire |
### `pipedrive_create_deal`
@@ -95,9 +93,8 @@ Créer une nouvelle affaire dans Pipedrive
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `deal` | object | L'objet d'affaire créé |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Détails de l'affaire créée |
### `pipedrive_update_deal`
@@ -118,9 +115,8 @@ Mettre à jour une affaire existante dans Pipedrive
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `deal` | object | L'objet d'affaire mis à jour |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Détails de l'affaire mise à jour |
### `pipedrive_get_files`
@@ -139,9 +135,8 @@ Récupérer des fichiers depuis Pipedrive avec des filtres optionnels
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `files` | array | Tableau d'objets fichiers de Pipedrive |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données des fichiers |
### `pipedrive_get_mail_messages`
@@ -158,9 +153,8 @@ Récupérer les fils de discussion de la boîte mail Pipedrive
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `messages` | array | Tableau d'objets de fils de discussion de la boîte mail Pipedrive |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données des fils de discussion |
### `pipedrive_get_mail_thread`
@@ -176,9 +170,8 @@ Récupérer tous les messages d'un fil de discussion spécifique
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `messages` | array | Tableau d'objets de messages électroniques du fil de discussion |
| `metadata` | object | Métadonnées de l'opération incluant l'ID du fil de discussion |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données des messages du fil de discussion |
### `pipedrive_get_pipelines`
@@ -197,9 +190,8 @@ Récupérer tous les pipelines de Pipedrive
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `pipelines` | array | Tableau d'objets de pipeline de Pipedrive |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données des pipelines |
### `pipedrive_get_pipeline_deals`
@@ -218,9 +210,8 @@ Récupérer toutes les affaires dans un pipeline spécifique
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `deals` | array | Tableau d'objets d'affaires du pipeline |
| `metadata` | object | Métadonnées de l'opération incluant l'ID du pipeline |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données des affaires du pipeline |
### `pipedrive_get_projects`
@@ -238,10 +229,8 @@ Récupérer tous les projets ou un projet spécifique de Pipedrive
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `projects` | array | Tableau d'objets de projet (lors du listage de tous) |
| `project` | object | Objet de projet unique (lorsque project_id est fourni) |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données des projets ou détails d'un projet unique |
### `pipedrive_create_project`
@@ -260,9 +249,8 @@ Créer un nouveau projet dans Pipedrive
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `project` | object | L'objet du projet créé |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Détails du projet créé |
### `pipedrive_get_activities`
@@ -283,9 +271,8 @@ Récupérer les activités (tâches) de Pipedrive avec filtres optionnels
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `activities` | array | Tableau d'objets d'activité de Pipedrive |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données des activités |
### `pipedrive_create_activity`
@@ -309,9 +296,8 @@ Créer une nouvelle activité (tâche) dans Pipedrive
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `activity` | object | L'objet activité créé |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `success` | booléen | Statut de réussite de l'opération |
| `output` | objet | Détails de l'activité créée |
### `pipedrive_update_activity`
@@ -333,9 +319,8 @@ Mettre à jour une activité existante (tâche) dans Pipedrive
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `activity` | object | L'objet activité mis à jour |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Détails de l'activité mise à jour |
### `pipedrive_get_leads`
@@ -356,10 +341,8 @@ Récupérer tous les prospects ou un prospect spécifique depuis Pipedrive
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `leads` | array | Tableau d'objets prospect \(lors de la liste complète\) |
| `lead` | object | Objet prospect unique \(lorsque lead_id est fourni\) |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données des prospects ou détails d'un prospect spécifique |
### `pipedrive_create_lead`
@@ -382,9 +365,8 @@ Créer un nouveau prospect dans Pipedrive
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `lead` | object | L'objet prospect créé |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Détails du lead créé |
### `pipedrive_update_lead`
@@ -408,9 +390,8 @@ Mettre à jour un lead existant dans Pipedrive
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `lead` | object | L'objet prospect mis à jour |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Détails du lead mis à jour |
### `pipedrive_delete_lead`
@@ -426,9 +407,8 @@ Supprimer un lead spécifique de Pipedrive
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `data` | object | Données de confirmation de suppression |
| `metadata` | object | Métadonnées de l'opération |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Résultat de la suppression |
## Notes

View File

@@ -1,63 +0,0 @@
---
title: Amazon SQS
description: Se connecter à Amazon SQS
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="sqs"
color="linear-gradient(45deg, #2E27AD 0%, #527FFF 100%)"
/>
{/* MANUAL-CONTENT-START:intro */}
[Amazon Simple Queue Service (SQS)](https://aws.amazon.com/sqs/) est un service de file d'attente de messages entièrement géré qui permet de découpler et de mettre à l'échelle des microservices, des systèmes distribués et des applications sans serveur. SQS élimine la complexité et les frais généraux associés à la gestion et à l'exploitation d'un middleware orienté messages, et permet aux développeurs de se concentrer sur un travail différenciant.
Avec Amazon SQS, vous pouvez :
- **Envoyer des messages** : publier des messages dans des files d'attente pour un traitement asynchrone
- **Découpler des applications** : permettre un couplage souple entre les composants de votre système
- **Mettre à l'échelle les charges de travail** : gérer des charges de travail variables sans provisionner d'infrastructure
- **Assurer la fiabilité** : redondance intégrée et haute disponibilité
- **Prendre en charge les files d'attente FIFO** : maintenir un ordre strict des messages et un traitement exactement une fois
Dans Sim, l'intégration SQS permet à vos agents d'envoyer des messages aux files d'attente Amazon SQS de manière sécurisée et programmatique. Les opérations prises en charge comprennent :
- **Envoi de message** : envoyer des messages aux files d'attente SQS avec un ID de groupe de messages facultatif et un ID de déduplication pour les files d'attente FIFO
Cette intégration permet à vos agents d'automatiser les flux de travail d'envoi de messages sans intervention manuelle. En connectant Sim à Amazon SQS, vous pouvez créer des agents qui publient des messages dans des files d'attente au sein de vos flux de travail, le tout sans avoir à gérer l'infrastructure ou les connexions des files d'attente.
{/* MANUAL-CONTENT-END */}
## Instructions d'utilisation
Intégrez Amazon SQS dans le flux de travail. Peut envoyer des messages aux files d'attente SQS.
## Outils
### `sqs_send`
Envoyer un message à une file d'attente Amazon SQS
#### Entrée
| Paramètre | Type | Obligatoire | Description |
| --------- | ---- | ----------- | ----------- |
| `region` | string | Oui | Région AWS (par ex., us-east-1) |
| `accessKeyId` | string | Oui | ID de clé d'accès AWS |
| `secretAccessKey` | string | Oui | Clé d'accès secrète AWS |
| `queueUrl` | string | Oui | URL de la file d'attente |
| `data` | object | Oui | Corps du message à envoyer |
| `messageGroupId` | string | Non | ID de groupe de messages (facultatif) |
| `messageDeduplicationId` | string | Non | ID de déduplication de message (facultatif) |
#### Sortie
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Message d'état de l'opération |
| `id` | string | ID du message |
## Notes
- Catégorie : `tools`
- Type : `sqs`

View File

@@ -48,9 +48,25 @@ Récupérer les réponses aux formulaires depuis Typeform
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `total_items` | nombre | Nombre total de réponses |
| `page_count` | nombre | Nombre total de pages disponibles |
| `items` | tableau | Tableau d'objets de réponse avec response_id, submitted_at, answers et metadata |
| `total_items` | nombre | Nombre total de réponses/formulaires |
| `page_count` | nombre | Nombre total de pages |
| `items` | json | Tableau des éléments de réponse/formulaire |
| `id` | chaîne | Identifiant unique du formulaire |
| `title` | chaîne | Titre du formulaire |
| `type` | chaîne | Type de formulaire |
| `created_at` | chaîne | Horodatage ISO de création du formulaire |
| `last_updated_at` | chaîne | Horodatage ISO de la dernière mise à jour |
| `settings` | json | Objet des paramètres du formulaire |
| `theme` | json | Objet de configuration du thème |
| `workspace` | json | Informations sur l'espace de travail |
| `fields` | json | Tableau des champs/questions du formulaire |
| `thankyou_screens` | json | Tableau des écrans de remerciement |
| `_links` | json | Liens vers les ressources associées |
| `deleted` | booléen | Indique si le formulaire a été supprimé avec succès |
| `message` | chaîne | Message de confirmation de suppression |
| `fileUrl` | chaîne | URL du fichier téléchargé |
| `contentType` | chaîne | Type de contenu du fichier |
| `filename` | chaîne | Nom du fichier |
### `typeform_files`
@@ -112,7 +128,7 @@ Récupérer la liste de tous les formulaires dans votre compte Typeform
| --------- | ---- | ----------- |
| `total_items` | nombre | Nombre total de formulaires dans le compte |
| `page_count` | nombre | Nombre total de pages disponibles |
| `items` | tableau | Tableau d'objets de formulaire avec id, title, created_at, last_updated_at, settings, theme et _links |
| `items` | tableau | Tableau d'objets de formulaire |
### `typeform_get_form`
@@ -132,13 +148,11 @@ Récupérer les détails complets et la structure d'un formulaire spécifique
| `id` | chaîne | Identifiant unique du formulaire |
| `title` | chaîne | Titre du formulaire |
| `type` | chaîne | Type de formulaire \(form, quiz, etc.\) |
| `created_at` | chaîne | Horodatage ISO de création du formulaire |
| `last_updated_at` | chaîne | Horodatage ISO de la dernière mise à jour |
| `settings` | objet | Paramètres du formulaire incluant langue, barre de progression, etc. |
| `theme` | objet | Référence du thème |
| `workspace` | objet | Référence de l'espace de travail |
| `fields` | tableau | Tableau des champs/questions du formulaire |
| `welcome_screens` | tableau | Tableau des écrans d'accueil |
| `thankyou_screens` | tableau | Tableau des écrans de remerciement |
| `_links` | objet | Liens vers les ressources associées, y compris l'URL publique du formulaire |
| `theme` | objet | Configuration du thème avec couleurs, polices et paramètres de design |
| `workspace` | objet | Informations sur l'espace de travail |
### `typeform_create_form`
@@ -163,8 +177,13 @@ Créer un nouveau formulaire avec champs et paramètres
| `id` | chaîne | Identifiant unique du formulaire créé |
| `title` | chaîne | Titre du formulaire |
| `type` | chaîne | Type de formulaire |
| `fields` | tableau | Tableau des champs du formulaire créé |
| `_links` | objet | Liens vers les ressources associées, y compris l'URL publique du formulaire |
| `created_at` | chaîne | Horodatage ISO de création du formulaire |
| `last_updated_at` | chaîne | Horodatage ISO de la dernière mise à jour |
| `settings` | objet | Paramètres du formulaire |
| `theme` | objet | Configuration du thème appliqué |
| `workspace` | objet | Informations sur l'espace de travail |
| `fields` | tableau | Tableau des champs de formulaire créés |
| `_links` | objet | Liens vers les ressources associées |
### `typeform_update_form`
@@ -185,11 +204,12 @@ Mettre à jour un formulaire existant à l'aide d'opérations JSON Patch
| `id` | chaîne | Identifiant unique du formulaire mis à jour |
| `title` | chaîne | Titre du formulaire |
| `type` | chaîne | Type de formulaire |
| `created_at` | chaîne | Horodatage ISO de création du formulaire |
| `last_updated_at` | chaîne | Horodatage ISO de la dernière mise à jour |
| `settings` | objet | Paramètres du formulaire |
| `theme` | objet | Référence du thème |
| `workspace` | objet | Référence de l'espace de travail |
| `theme` | objet | Configuration du thème |
| `workspace` | objet | Informations sur l'espace de travail |
| `fields` | tableau | Tableau des champs du formulaire |
| `welcome_screens` | tableau | Tableau des écrans d'accueil |
| `thankyou_screens` | tableau | Tableau des écrans de remerciement |
| `_links` | objet | Liens vers les ressources associées |

View File

@@ -51,9 +51,10 @@ APIPYアクターを同期的に実行して結果を取得最大5分
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | アクター実行が成功したかどうか |
| `success` | boolean | アクター実行が成功したかどうか |
| `runId` | string | APIFY実行ID |
| `status` | string | 実行ステータスSUCCEEDED、FAILEDなど) |
| `status` | string | 実行ステータスSUCCEEDED、FAILEDなど |
| `datasetId` | string | 結果を含むデータセットID |
| `items` | array | データセット項目(完了した場合) |
### `apify_run_actor_async`

View File

@@ -33,15 +33,8 @@ GIDで単一のタスクを取得するか、フィルターを使用して複
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `ts` | string | レスポンスのタイムスタンプ |
| `gid` | string | タスクのグローバル一意識別子 |
| `resource_type` | string | リソースタイプ(タスク) |
| `resource_subtype` | string | リソースのサブタイプ |
| `name` | string | タスク名 |
| `notes` | string | タスクのメモや説明 |
| `completed` | boolean | タスクが完了しているかどうか |
| `assignee` | object | 担当者の詳細 |
| `success` | boolean | 操作成功ステータス |
| `output` | object | taskGidが提供されたかどうかに応じて、単一のタスクの詳細またはタスクの配列 |
### `asana_create_task`
@@ -61,14 +54,8 @@ Asanaで新しいタスクを作成する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `ts` | string | レスポンスのタイムスタンプ |
| `gid` | string | タスクのグローバル一意識別子 |
| `name` | string | タスク名 |
| `notes` | string | タスクのメモや説明 |
| `completed` | boolean | タスクが完了しているかどうか |
| `created_at` | string | タスク作成のタイムスタンプ |
| `permalink_url` | string | Asana内のタスクへのURL |
| `success` | boolean | 操作成功ステータス |
| `output` | object | タイムスタンプ、GID、名前、メモ、パーマリンクを含む作成されたタスクの詳細 |
### `asana_update_task`
@@ -90,12 +77,7 @@ Asanaの既存タスクを更新する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `ts` | string | レスポンスのタイムスタンプ |
| `gid` | string | タスクのグローバル一意識別子 |
| `name` | string | タスク名 |
| `notes` | string | タスクのメモや説明 |
| `completed` | boolean | タスクが完了しているかどうか |
| `modified_at` | string | タスクの最終更新タイムスタンプ |
| `output` | object | タイムスタンプ、gid、名前、メモ、更新タイムスタンプを含む更新されたタスクの詳細 |
### `asana_get_projects`
@@ -112,8 +94,7 @@ Asanaワークスペースからすべてのプロジェクトを取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `ts` | string | レスポンスのタイムスタンプ |
| `projects` | array | プロジェクトの配列 |
| `output` | object | gid、名前、リソースタイプを含むプロジェクトのリスト |
### `asana_search_tasks`
@@ -134,8 +115,7 @@ Asanaワークスペース内のタスクを検索する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `ts` | string | レスポンスのタイムスタンプ |
| `tasks` | array | 一致するタスクの配列 |
| `output` | object | 検索条件に一致するタスクのリスト |
### `asana_add_comment`
@@ -153,11 +133,7 @@ Asanaタスクにコメントストーリーを追加する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `ts` | string | レスポンスのタイムスタンプ |
| `gid` | string | コメントのグローバル一意識別子 |
| `text` | string | コメントのテキスト内容 |
| `created_at` | string | コメント作成タイムスタンプ |
| `created_by` | object | コメント投稿者の詳細 |
| `output` | object | gid、テキスト、作成タイムスタンプ、作成者を含むコメントの詳細 |
## 注意事項

View File

@@ -221,33 +221,6 @@ Confluenceページからコメントを削除します。
| `commentId` | string | 削除されたコメントID |
| `deleted` | boolean | 削除ステータス |
### `confluence_upload_attachment`
ファイルをConfluenceページに添付ファイルとしてアップロードします。
#### 入力
| パラメータ | 型 | 必須 | 説明 |
| --------- | ---- | -------- | ----------- |
| `domain` | string | はい | あなたのConfluenceドメインyourcompany.atlassian.net |
| `pageId` | string | はい | ファイルを添付するConfluenceページID |
| `file` | file | はい | 添付ファイルとしてアップロードするファイル |
| `fileName` | string | いいえ | 添付ファイルのオプションのカスタムファイル名 |
| `comment` | string | いいえ | 添付ファイルに追加するオプションのコメント |
| `cloudId` | string | いいえ | インスタンスのConfluence Cloud ID。提供されない場合、ドメインを使用して取得されます。 |
#### 出力
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `ts` | string | アップロードのタイムスタンプ |
| `attachmentId` | string | アップロードされた添付ファイルID |
| `title` | string | 添付ファイル名 |
| `fileSize` | number | ファイルサイズ(バイト単位) |
| `mediaType` | string | 添付ファイルのMIMEタイプ |
| `downloadUrl` | string | 添付ファイルのダウンロードURL |
| `pageId` | string | 添付ファイルが追加されたページID |
### `confluence_list_attachments`
Confluenceページのすべての添付ファイルを一覧表示します。
@@ -309,7 +282,7 @@ Confluenceページのすべてのラベルを一覧表示します。
### `confluence_get_space`
特定のConfluenceスペースに関する詳細を取得します。
特定のConfluenceスペース詳細を取得します。
#### 入力

View File

@@ -145,6 +145,7 @@ Firecrawlを使用してウェブ上の情報を検索します
| --------- | ---- | ----------- |
| `success` | boolean | 抽出操作が成功したかどうか |
| `data` | object | スキーマまたはプロンプトに従って抽出された構造化データ |
| `sources` | array | データソースshowSourcesが有効な場合のみ |
## 注意事項

View File

@@ -34,8 +34,7 @@ Google Workspaceドメイン内のすべてのグループを一覧表示する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `groups` | json | グループオブジェクトの配列 |
| `nextPageToken` | string | 次のページの結果を取得するためのトークン |
| `output` | json | Google グループ API レスポンスデータ |
### `google_groups_get_group`
@@ -51,7 +50,7 @@ Google Workspaceドメイン内のすべてのグループを一覧表示する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `group` | json | グループオブジェクト |
| `output` | json | Google グループ API レスポンスデータ |
### `google_groups_create_group`
@@ -69,7 +68,7 @@ Google Workspaceドメイン内のすべてのグループを一覧表示する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `group` | json | 作成されたグループオブジェクト |
| `output` | json | Google Groups APIのレスポンスデータ |
### `google_groups_update_group`
@@ -88,7 +87,7 @@ Google Workspaceドメイン内のすべてのグループを一覧表示する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `group` | json | 更新されたグループオブジェクト |
| `output` | json | Google Groups APIのレスポンスデータ |
### `google_groups_delete_group`
@@ -104,7 +103,7 @@ Googleグループを削除する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `message` | string | 成功メッセージ |
| `output` | json | Google Groups APIのレスポンスデータ |
### `google_groups_list_members`
@@ -123,8 +122,7 @@ Google グループのすべてのメンバーを一覧表示する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `members` | json | メンバーオブジェクトの配列 |
| `nextPageToken` | string | 次のページの結果を取得するためのトークン |
| `output` | json | Google Groups APIのレスポンスデータ |
### `google_groups_get_member`
@@ -141,7 +139,7 @@ Google グループ内の特定のメンバーの詳細を取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `member` | json | メンバーオブジェクト |
| `output` | json | Google Groups APIのレスポンスデータ |
### `google_groups_add_member`
@@ -159,7 +157,7 @@ Google グループに新しいメンバーを追加する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `member` | json | 追加されたメンバーオブジェクト |
| `output` | json | Google Groups APIレスポンスデータ |
### `google_groups_remove_member`
@@ -176,7 +174,7 @@ Google Groupからメンバーを削除する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `message` | string | 成功メッセージ |
| `output` | json | Google Groups APIレスポンスデータ |
### `google_groups_update_member`
@@ -194,7 +192,7 @@ Google Groupからメンバーを削除する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `member` | json | 更新されたメンバーオブジェクト |
| `output` | json | Google Groups APIレスポンスデータ |
### `google_groups_has_member`
@@ -211,7 +209,7 @@ Google Groupからメンバーを削除する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `isMember` | boolean | ユーザーがグループのメンバーであるかどうか |
| `output` | json | Google グループ API レスポンスデータ |
## 注意事項

View File

@@ -34,7 +34,8 @@ Google Vaultに接続して、案件内のエクスポートの作成、エク
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `export` | json | 作成されたエクスポートオブジェクト |
| `output` | json | Vault APIレスポンスデータ |
| `file` | json | 実行ファイルからダウンロードしたエクスポートファイルUserFile |
### `google_vault_list_matters_export`
@@ -53,9 +54,8 @@ Google Vaultに接続して、案件内のエクスポートの作成、エク
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `exports` | json | エクスポートオブジェクトの配列 |
| `export` | json | 単一のエクスポートオブジェクトexportIdが提供された場合 |
| `nextPageToken` | string | 結果の次のページを取得するためのトークン |
| `output` | json | Vault APIレスポンスデータ |
| `file` | json | 実行ファイルからダウンロードしたエクスポートファイルUserFile |
### `google_vault_download_export_file`
@@ -94,7 +94,8 @@ Google VaultエクスポートGCSオブジェクトから単一ファイ
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `hold` | json | 作成された保留オブジェクト |
| `output` | json | Vault APIレスポンスデータ |
| `file` | json | 実行ファイルからダウンロードしたエクスポートファイルUserFile |
### `google_vault_list_matters_holds`
@@ -111,11 +112,10 @@ Google VaultエクスポートGCSオブジェクトから単一ファイ
#### 出力
| パラメータ | | 説明 |
| パラメータ | タイプ | 説明 |
| --------- | ---- | ----------- |
| `holds` | json | 保留オブジェクトの配列 |
| `hold` | json | 単一の保留オブジェクトholdIdが提供された場合 |
| `nextPageToken` | string | 結果の次のページを取得するためのトークン |
| `output` | json | Vault APIレスポンスデータ |
| `file` | json | 実行ファイルからダウンロードされたエクスポートファイルUserFile |
### `google_vault_create_matters`
@@ -130,9 +130,10 @@ Google Vaultで新しい案件を作成する
#### 出力
| パラメータ | | 説明 |
| パラメータ | タイプ | 説明 |
| --------- | ---- | ----------- |
| `matter` | json | 作成された案件オブジェクト |
| `output` | json | Vault APIレスポンスデータ |
| `file` | json | 実行ファイルからダウンロードされたエクスポートファイルUserFile |
### `google_vault_list_matters`
@@ -148,11 +149,10 @@ Google Vaultで新しい案件を作成する
#### 出力
| パラメータ | | 説明 |
| パラメータ | タイプ | 説明 |
| --------- | ---- | ----------- |
| `matters` | json | 案件オブジェクトの配列 |
| `matter` | json | 単一の案件オブジェクトmatterIdが提供された場合 |
| `nextPageToken` | string | 結果の次のページを取得するためのトークン |
| `output` | json | Vault APIレスポンスデータ |
| `file` | json | 実行ファイルからダウンロードされたエクスポートファイルUserFile |
## 注意事項

View File

@@ -47,9 +47,8 @@ HubSpotアカウントからすべてのユーザーを取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `users` | array | HubSpotユーザーオブジェクトの配列 |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `success` | boolean | 操作の成功ステータス |
| `output` | object | ユーザーデータ |
### `hubspot_list_contacts`
@@ -68,10 +67,8 @@ HubSpotアカウントからすべてのユーザーを取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `contacts` | array | HubSpotコンタクトオブジェクトの配列 |
| `paging` | object | ページネーション情報 |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | コンタクトデータ |
### `hubspot_get_contact`
@@ -90,9 +87,8 @@ HubSpotからIDまたはメールで単一のコンタクトを取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `contact` | object | プロパティを持つHubSpotコンタクトオブジェクト |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | コンタクトデータ |
### `hubspot_create_contact`
@@ -109,9 +105,8 @@ HubSpotで新しい連絡先を作成します。少なくともemail、firstnam
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `contact` | object | 作成されたHubSpotコンタクトオブジェクト |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `success` | boolean | 操作の成功ステータス |
| `output` | object | 作成された連絡先データ |
### `hubspot_update_contact`
@@ -129,9 +124,8 @@ IDまたはメールアドレスでHubSpotの既存の連絡先を更新しま
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `contact` | object | 更新されたHubSpotコンタクトオブジェクト |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `success` | boolean | 操作の成功ステータス |
| `output` | object | 更新された連絡先データ |
### `hubspot_search_contacts`
@@ -152,11 +146,8 @@ IDまたはメールアドレスでHubSpotの既存の連絡先を更新しま
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `contacts` | array | 一致するHubSpotコンタクトオブジェクトの配列 |
| `total` | number | 一致するコンタクトの総数 |
| `paging` | object | ページネーション情報 |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `success` | boolean | 操作の成功ステータス |
| `output` | object | 検索結果 |
### `hubspot_list_companies`
@@ -175,10 +166,8 @@ IDまたはメールアドレスでHubSpotの既存の連絡先を更新しま
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `companies` | array | HubSpot会社オブジェクトの配列 |
| `paging` | object | ページネーション情報 |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `success` | boolean | 操作の成功ステータス |
| `output` | object | 企業データ |
### `hubspot_get_company`
@@ -197,9 +186,8 @@ IDまたはドメインからHubSpotの単一企業を取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `company` | object | プロパティを持つHubSpot会社オブジェクト |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 企業データ |
### `hubspot_create_company`
@@ -216,9 +204,8 @@ HubSpotに新しい企業を作成する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `company` | object | 作成されたHubSpot会社オブジェクト |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 作成された企業データ |
### `hubspot_update_company`
@@ -236,9 +223,8 @@ IDまたはドメインによってHubSpotの既存企業を更新する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `company` | object | 更新されたHubSpot会社オブジェクト |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 更新された会社データ |
### `hubspot_search_companies`
@@ -259,11 +245,8 @@ IDまたはドメインによってHubSpotの既存企業を更新する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `companies` | array | 一致するHubSpot会社オブジェクトの配列 |
| `total` | number | 一致する会社の総数 |
| `paging` | object | ページネーション情報 |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 検索結果 |
### `hubspot_list_deals`
@@ -282,10 +265,8 @@ IDまたはドメインによってHubSpotの既存企業を更新する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `deals` | array | HubSpotディールオブジェクトの配列 |
| `paging` | object | ページネーション情報 |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 取引データ |
## 注意事項

View File

@@ -51,9 +51,8 @@ Pipedriveをワークフローに統合します。強力なCRM機能を使用
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `deals` | array | Pipedriveからの取引オブジェクトの配列 |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 取引データとメタデータ |
### `pipedrive_get_deal`
@@ -69,9 +68,8 @@ Pipedriveをワークフローに統合します。強力なCRM機能を使用
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `deal` | object | 詳細情報を含む取引オブジェクト |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 取引の詳細 |
### `pipedrive_create_deal`
@@ -95,9 +93,8 @@ Pipedriveで新しい取引を作成する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `deal` | object | 作成された取引オブジェクト |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 作成されたディールの詳細 |
### `pipedrive_update_deal`
@@ -118,9 +115,8 @@ Pipedriveの既存のディールを更新する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `deal` | object | 更新された取引オブジェクト |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 更新されたディールの詳細 |
### `pipedrive_get_files`
@@ -139,9 +135,8 @@ Pipedriveの既存のディールを更新する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `files` | array | Pipedriveからのファイルオブジェクトの配列 |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | ファイルデータ |
### `pipedrive_get_mail_messages`
@@ -158,9 +153,8 @@ Pipedriveメールボックスからメールスレッドを取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `messages` | array | Pipedriveメールボックスからのメールスレッドオブジェクトの配列 |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | メールスレッドデータ |
### `pipedrive_get_mail_thread`
@@ -176,9 +170,8 @@ Pipedriveメールボックスからメールスレッドを取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `messages` | array | スレッドからのメールメッセージオブジェクトの配列 |
| `metadata` | object | スレッドIDを含む操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | メールスレッドメッセージデータ |
### `pipedrive_get_pipelines`
@@ -197,9 +190,8 @@ Pipedriveからすべてのパイプラインを取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `pipelines` | array | Pipedriveからのパイプラインオブジェクトの配列 |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | パイプラインデータ |
### `pipedrive_get_pipeline_deals`
@@ -218,9 +210,8 @@ Pipedriveからすべてのパイプラインを取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `deals` | array | パイプラインからの取引オブジェクトの配列 |
| `metadata` | object | パイプラインIDを含む操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | パイプライン取引データ |
### `pipedrive_get_projects`
@@ -238,10 +229,8 @@ Pipedriveからすべてのプロジェクトまたは特定のプロジェク
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `projects` | array | プロジェクトオブジェクトの配列(すべてをリスト表示する場合) |
| `project` | object | 単一のプロジェクトオブジェクトproject_idが提供される場合 |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | プロジェクトデータまたは単一プロジェクトの詳細 |
### `pipedrive_create_project`
@@ -260,9 +249,8 @@ Pipedriveで新しいプロジェクトを作成する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `project` | object | 作成されたプロジェクトオブジェクト |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 作成されたプロジェクトの詳細 |
### `pipedrive_get_activities`
@@ -283,9 +271,8 @@ Pipedriveで新しいプロジェクトを作成する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `activities` | array | Pipedriveからのアクティビティオブジェクトの配列 |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | アクティビティデータ |
### `pipedrive_create_activity`
@@ -309,9 +296,8 @@ Pipedriveで新しいアクティビティタスクを作成する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `activity` | object | 作成されたアクティビティオブジェクト |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `success` | boolean | 操作の成功ステータス |
| `output` | object | 作成されたアクティビティの詳細 |
### `pipedrive_update_activity`
@@ -333,9 +319,8 @@ Pipedriveで既存のアクティビティタスクを更新する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `activity` | object | 更新されたアクティビティオブジェクト |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 更新されたアクティビティの詳細 |
### `pipedrive_get_leads`
@@ -356,10 +341,8 @@ Pipedriveからすべてのリードまたは特定のリードを取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `leads` | array | リード オブジェクトの配列(すべてをリスト表示する場合) |
| `lead` | object | 単一のリード オブジェクトlead_id が提供される場合) |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | リードデータまたは単一リードの詳細 |
### `pipedrive_create_lead`
@@ -382,9 +365,8 @@ Pipedriveに新しいリードを作成する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `lead` | object | 作成されたリードオブジェクト |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 作成されたリードの詳細 |
### `pipedrive_update_lead`
@@ -408,9 +390,8 @@ Pipedriveの既存リードを更新する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `lead` | object | 更新されたリードオブジェクト |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 更新されたリードの詳細 |
### `pipedrive_delete_lead`
@@ -426,9 +407,8 @@ Pipedriveから特定のリードを削除する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `data` | object | 削除確認データ |
| `metadata` | object | 操作メタデータ |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 削除結果 |
## 注意事項

View File

@@ -1,63 +0,0 @@
---
title: Amazon SQS
description: Amazon SQSに接続
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="sqs"
color="linear-gradient(45deg, #2E27AD 0%, #527FFF 100%)"
/>
{/* MANUAL-CONTENT-START:intro */}
[Amazon Simple Queue Service (SQS)](https://aws.amazon.com/sqs/)は、マイクロサービス、分散システム、サーバーレスアプリケーションの分離とスケーリングを可能にする完全マネージド型のメッセージキューイングサービスです。SQSは、メッセージ指向のミドルウェアの管理と運用に関連する複雑さとオーバーヘッドを排除し、開発者が差別化作業に集中できるようにします。
Amazon SQSでは、以下のことが可能です
- **メッセージの送信**:非同期処理のためにキューにメッセージを公開
- **アプリケーションの分離**:システムのコンポーネント間の疎結合を実現
- **ワークロードのスケーリング**:インフラストラクチャをプロビジョニングせずに変動するワークロードを処理
- **信頼性の確保**:組み込みの冗長性と高可用性
- **FIFOキューのサポート**:厳密なメッセージ順序と完全に一度だけの処理を維持
Simでは、SQS統合により、エージェントがAmazon SQSキューにメッセージを安全にプログラムで送信できるようになります。サポートされている操作には以下が含まれます
- **メッセージ送信**FIFOキュー用のオプションのメッセージグループIDと重複排除IDを使用してSQSキューにメッセージを送信
この統合により、エージェントは手動介入なしでメッセージ送信ワークフローを自動化できます。SimとAmazon SQSを接続することで、キューインフラストラクチャや接続を処理することなく、ワークフロー内でキューにメッセージを公開するエージェントを構築できます。
{/* MANUAL-CONTENT-END */}
## 使用手順
Amazon SQSをワークフローに統合します。SQSキューにメッセージを送信できます。
## ツール
### `sqs_send`
Amazon SQSキューにメッセージを送信
#### 入力
| パラメータ | 型 | 必須 | 説明 |
| --------- | ---- | -------- | ----------- |
| `region` | string | はい | AWS リージョンus-east-1 |
| `accessKeyId` | string | はい | AWS アクセスキーID |
| `secretAccessKey` | string | はい | AWS シークレットアクセスキー |
| `queueUrl` | string | はい | キューURL |
| `data` | object | はい | 送信するメッセージ本文 |
| `messageGroupId` | string | いいえ | メッセージグループIDオプション |
| `messageDeduplicationId` | string | いいえ | メッセージ重複排除IDオプション |
#### 出力
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `message` | string | 操作ステータスメッセージ |
| `id` | string | メッセージID |
## 注意事項
- カテゴリー: `tools`
- タイプ: `sqs`

View File

@@ -48,9 +48,25 @@ Typeformからフォームの回答を取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `total_items` | number | 回答の総数 |
| `page_count` | number | 利用可能なページの総数 |
| `items` | array | response_id、submitted_at、answers、およびmetadataを含む回答オブジェクトの配列 |
| `total_items` | number | 回答/フォームの総数 |
| `page_count` | number | ページ数 |
| `items` | json | 回答/フォーム項目の配列 |
| `id` | string | フォームの一意の識別子 |
| `title` | string | フォームのタイトル |
| `type` | string | フォームのタイプ |
| `created_at` | string | フォーム作成のISOタイムスタンプ |
| `last_updated_at` | string | 最終更新のISOタイムスタンプ |
| `settings` | json | フォーム設定オブジェクト |
| `theme` | json | テーマ設定オブジェクト |
| `workspace` | json | ワークスペース情報 |
| `fields` | json | フォームフィールド/質問の配列 |
| `thankyou_screens` | json | サンキュースクリーンの配列 |
| `_links` | json | 関連リソースリンク |
| `deleted` | boolean | フォームが正常に削除されたかどうか |
| `message` | string | 削除確認メッセージ |
| `fileUrl` | string | ダウンロードされたファイルのURL |
| `contentType` | string | ファイルのコンテンツタイプ |
| `filename` | string | ファイル名 |
### `typeform_files`
@@ -111,8 +127,8 @@ Typeformアカウント内のすべてのフォームのリストを取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `total_items` | number | アカウント内のフォームの総数 |
| `page_count` | number | 利用可能なページの総数 |
| `items` | array | id、title、created_at、last_updated_at、settings、theme、および_linksを含むフォームオブジェクトの配列 |
| `page_count` | number | 利用可能なページ数 |
| `items` | array | フォームオブジェクトの配列 |
### `typeform_get_form`
@@ -132,13 +148,11 @@ Typeformアカウント内のすべてのフォームのリストを取得する
| `id` | string | フォームの一意の識別子 |
| `title` | string | フォームのタイトル |
| `type` | string | フォームのタイプform、quizなど |
| `settings` | object | 言語、プログレスバーなどを含むフォーム設定 |
| `theme` | object | テーマ参照 |
| `workspace` | object | ワークスペース参照 |
| `fields` | array | フォームフィールド/質問の配列 |
| `welcome_screens` | array | ウェルカム画面の配列 |
| `thankyou_screens` | array | サンキュー画面の配列 |
| `_links` | object | 公開フォームURLを含む関連リソースリンク |
| `created_at` | string | フォーム作成のISOタイムスタンプ |
| `last_updated_at` | string | 最終更新のISOタイムスタンプ |
| `settings` | object | 言語、進捗バーなどを含むフォーム設定 |
| `theme` | object | 色、フォント、デザイン設定を含むテーマ構成 |
| `workspace` | object | ワークスペース情報 |
### `typeform_create_form`
@@ -163,8 +177,13 @@ Typeformアカウント内のすべてのフォームのリストを取得する
| `id` | string | 作成されたフォームの一意の識別子 |
| `title` | string | フォームのタイトル |
| `type` | string | フォームのタイプ |
| `created_at` | string | フォーム作成のISOタイムスタンプ |
| `last_updated_at` | string | 最終更新のISOタイムスタンプ |
| `settings` | object | フォーム設定 |
| `theme` | object | 適用されたテーマ設定 |
| `workspace` | object | ワークスペース情報 |
| `fields` | array | 作成されたフォームフィールドの配列 |
| `_links` | object | 公開フォームURLを含む関連リソースリンク |
| `_links` | object | 関連リソースリンク |
### `typeform_update_form`
@@ -185,12 +204,13 @@ JSON Patchオペレーションを使用して既存のフォームを更新す
| `id` | string | 更新されたフォームの一意の識別子 |
| `title` | string | フォームのタイトル |
| `type` | string | フォームのタイプ |
| `created_at` | string | フォーム作成のISOタイムスタンプ |
| `last_updated_at` | string | 最終更新のISOタイムスタンプ |
| `settings` | object | フォーム設定 |
| `theme` | object | テーマ参照 |
| `workspace` | object | ワークスペース参照 |
| `theme` | object | テーマ設定 |
| `workspace` | object | ワークスペース情報 |
| `fields` | array | フォームフィールドの配列 |
| `welcome_screens` | array | ウェルカム画面の配列 |
| `thankyou_screens` | array | サンクスページの配列 |
| `thankyou_screens` | array | サンキュー画面の配列 |
| `_links` | object | 関連リソースリンク |
### `typeform_delete_form`

View File

@@ -54,6 +54,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| `success` | boolean | actor 运行是否成功 |
| `runId` | string | APIFY 运行 ID |
| `status` | string | 运行状态 \(SUCCEEDED, FAILED 等\) |
| `datasetId` | string | 包含结果的数据集 ID |
| `items` | array | 数据集条目 \(如果已完成\) |
### `apify_run_actor_async`

View File

@@ -34,14 +34,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `ts` | string | 响应的时间戳 |
| `gid` | string | 任务的全局唯一标识符 |
| `resource_type` | string | 资源类型(任务) |
| `resource_subtype` | string | 资源子类型 |
| `name` | string | 任务名称 |
| `notes` | string | 任务备注或描述 |
| `completed` | boolean | 任务是否已完成 |
| `assignee` | object | 分配人详情 |
| `output` | object | 单个任务详情或任务数组,取决于是否提供了 taskGid |
### `asana_create_task`
@@ -62,13 +55,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `ts` | string | 响应的时间戳 |
| `gid` | string | 任务的全局唯一标识符 |
| `name` | string | 任务名称 |
| `notes` | string | 任务备注或描述 |
| `completed` | boolean | 任务是否已完成 |
| `created_at` | string | 任务创建时间戳 |
| `permalink_url` | string | 任务在 Asana 中的 URL |
| `output` | object | 包含时间戳、gid、名称、备注和永久链接的已创建任务详情 |
### `asana_update_task`
@@ -90,12 +77,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `ts` | string | 响应的时间戳 |
| `gid` | string | 任务的全局唯一标识符 |
| `name` | string | 任务名称 |
| `notes` | string | 任务备注或描述 |
| `completed` | boolean | 任务是否已完成 |
| `modified_at` | string | 任务最后修改时间戳 |
| `output` | object | 更新的任务详情包括时间戳、gid、名称、备注和修改时间戳 |
### `asana_get_projects`
@@ -112,8 +94,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `ts` | string | 响应的时间戳 |
| `projects` | array | 项目数组 |
| `output` | object | 项目列表,包括它们的 gid、名称和资源类型 |
### `asana_search_tasks`
@@ -134,8 +115,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `ts` | string | 响应的时间戳 |
| `tasks` | array | 匹配任务的数组 |
| `output` | object | 符合搜索条件的任务列表 |
### `asana_add_comment`
@@ -153,11 +133,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `ts` | string | 响应的时间戳 |
| `gid` | string | 评论的全局唯一标识符 |
| `text` | string | 评论的文本内容 |
| `created_at` | string | 评论的创建时间戳 |
| `created_by` | object | 评论作者的详细信息 |
| `output` | object | 评论详情,包括 gid、文本、创建时间戳和作者 |
## 注意事项

View File

@@ -220,33 +220,6 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| `commentId` | string | 删除的评论 ID |
| `deleted` | boolean | 删除状态 |
### `confluence_upload_attachment`
将文件作为附件上传到 Confluence 页面。
#### 输入
| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `domain` | string | 是 | 您的 Confluence 域名 \(例如yourcompany.atlassian.net\) |
| `pageId` | string | 是 | 要附加文件的 Confluence 页面 ID |
| `file` | file | 是 | 要作为附件上传的文件 |
| `fileName` | string | 否 | 附件的可选自定义文件名 |
| `comment` | string | 否 | 附件的可选评论 |
| `cloudId` | string | 否 | 实例的 Confluence Cloud ID。如果未提供将使用域名进行获取。 |
#### 输出
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `ts` | string | 上传的时间戳 |
| `attachmentId` | string | 上传的附件 ID |
| `title` | string | 附件文件名 |
| `fileSize` | number | 文件大小(以字节为单位) |
| `mediaType` | string | 附件的 MIME 类型 |
| `downloadUrl` | string | 附件的下载 URL |
| `pageId` | string | 添加附件的页面 ID |
### `confluence_list_attachments`
列出 Confluence 页面上的所有附件。
@@ -257,7 +230,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| --------- | ---- | -------- | ----------- |
| `domain` | string | 是 | 您的 Confluence 域名 \(例如yourcompany.atlassian.net\) |
| `pageId` | string | 是 | 要列出附件的 Confluence 页面 ID |
| `limit` | number | 否 | 返回的最大附件数量 \(默认值25\) |
| `limit` | number | 否 | 返回的附件最大数量 \(默认值25\) |
| `cloudId` | string | 否 | 实例的 Confluence Cloud ID。如果未提供将使用域名进行获取。 |
#### 输出
@@ -284,7 +257,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `ts` | string | 删除的时间戳 |
| `attachmentId` | string | 删除的附件 ID |
| `attachmentId` | string | 删除的附件 ID |
| `deleted` | boolean | 删除状态 |
### `confluence_list_labels`
@@ -308,7 +281,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
### `confluence_get_space`
获取有关特定 Confluence 空间的详细信息。
获取特定 Confluence 空间的详细信息。
#### 输入

View File

@@ -145,6 +145,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| --------- | ---- | ----------- |
| `success` | boolean | 提取操作是否成功 |
| `data` | object | 根据模式或提示提取的结构化数据 |
| `sources` | array | 数据来源(仅在启用 showSources 时) |
## 注意

View File

@@ -34,8 +34,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `groups` | json | 群组对象的数组 |
| `nextPageToken` | string | 用于获取下一页结果的令牌 |
| `output` | json | Google Groups API 响应数据 |
### `google_groups_get_group`
@@ -51,7 +50,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `group` | json | 群组对象 |
| `output` | json | Google Groups API 响应数据 |
### `google_groups_create_group`
@@ -69,7 +68,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `group` | json | 创建的群组对象 |
| `output` | json | Google Groups API 响应数据 |
### `google_groups_update_group`
@@ -88,7 +87,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `group` | json | 更新的群组对象 |
| `output` | json | Google Groups API 响应数据 |
### `google_groups_delete_group`
@@ -104,7 +103,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `message` | string | 成功消息 |
| `output` | json | Google Groups API 响应数据 |
### `google_groups_list_members`
@@ -123,8 +122,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `members` | json | 成员对象的数组 |
| `nextPageToken` | string | 用于获取下一页结果的令牌 |
| `output` | json | Google Groups API 响应数据 |
### `google_groups_get_member`
@@ -141,7 +139,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `member` | json | 成员对象 |
| `output` | json | Google Groups API 响应数据 |
### `google_groups_add_member`
@@ -159,7 +157,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `member` | json | 添加的成员对象 |
| `output` | json | Google Groups API 响应数据 |
### `google_groups_remove_member`
@@ -176,7 +174,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `message` | string | 成功消息 |
| `output` | json | Google Groups API 响应数据 |
### `google_groups_update_member`
@@ -194,7 +192,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `member` | json | 更新的成员对象 |
| `output` | json | Google Groups API 响应数据 |
### `google_groups_has_member`
@@ -211,7 +209,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `isMember` | boolean | 用户是否是该群组的成员 |
| `output` | json | Google Groups API 响应数据 |
## 注意事项

View File

@@ -34,7 +34,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `export` | json | 创建的导出对象 |
| `output` | json | Vault API 响应数据 |
| `file` | json | 从执行文件中下载的导出文件 \(UserFile\) |
### `google_vault_list_matters_export`
@@ -53,9 +54,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `exports` | json | 导出对象的数组 |
| `export` | json | 单个导出对象(当提供 exportId 时) |
| `nextPageToken` | string | 用于获取下一页结果的令牌 |
| `output` | json | Vault API 响应数据 |
| `file` | json | 从执行文件中下载的导出文件 \(UserFile\) |
### `google_vault_download_export_file`
@@ -94,7 +94,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `hold` | json | 创建的保留对象 |
| `output` | json | Vault API 响应数据 |
| `file` | json | 从执行文件中下载的导出文件 \(UserFile\) |
### `google_vault_list_matters_holds`
@@ -113,9 +114,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `holds` | json | 保留对象的数组 |
| `hold` | json | 单个保留对象(当提供 holdId 时) |
| `nextPageToken` | string | 用于获取下一页结果的令牌 |
| `output` | json | Vault API 响应数据 |
| `file` | json | 从执行文件中下载的导出文件 \(UserFile\) |
### `google_vault_create_matters`
@@ -132,7 +132,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `matter` | json | 创建的事项对象 |
| `output` | json | Vault API 响应数据 |
| `file` | json | 从执行文件中下载的导出文件 \(UserFile\) |
### `google_vault_list_matters`
@@ -150,9 +151,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `matters` | json | 事项对象的数组 |
| `matter` | json | 单个事项对象(当提供 matterId 时) |
| `nextPageToken` | string | 用于获取下一页结果的令牌 |
| `output` | json | Vault API 响应数据 |
| `file` | json | 从执行文件中下载的导出文件 \(UserFile\) |
## 注意事项

View File

@@ -47,9 +47,8 @@ HubSpot CRM 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `users` | 数组 | HubSpot 用户对象的数组 |
| `metadata` | 对象 | 操作元数据 |
| `success` | 布尔值 | 操作成功状态 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 用户数据 |
### `hubspot_list_contacts`
@@ -68,10 +67,8 @@ HubSpot CRM 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `contacts` | 数组 | HubSpot 联系人对象的数组 |
| `paging` | 对象 | 分页信息 |
| `metadata` | 对象 | 操作元数据 |
| `success` | 布尔值 | 操作成功状态 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 联系人数据 |
### `hubspot_get_contact`
@@ -90,9 +87,8 @@ HubSpot CRM 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `contact` | 对象 | 带有属性的 HubSpot 联系人对象 |
| `metadata` | 对象 | 操作元数据 |
| `success` | 布尔值 | 操作成功状态 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 联系人数据 |
### `hubspot_create_contact`
@@ -109,9 +105,8 @@ HubSpot CRM 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `contact` | 对象 | 创建的 HubSpot 联系人对象 |
| `metadata` | 对象 | 操作元数据 |
| `success` | 布尔值 | 操作成功状态 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 创建的联系人数据 |
### `hubspot_update_contact`
@@ -129,9 +124,8 @@ HubSpot CRM 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `contact` | 对象 | 更新的 HubSpot 联系人对象 |
| `metadata` | 对象 | 操作元数据 |
| `success` | 布尔值 | 操作成功状态 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 更新的联系人数据 |
### `hubspot_search_contacts`
@@ -152,11 +146,8 @@ HubSpot CRM 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `contacts` | 数组 | 匹配的 HubSpot 联系人对象的数组 |
| `total` | 数字 | 匹配的联系人总数 |
| `paging` | 对象 | 分页信息 |
| `metadata` | 对象 | 操作元数据 |
| `success` | 布尔值 | 操作成功状态 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 搜索结果 |
### `hubspot_list_companies`
@@ -175,10 +166,8 @@ HubSpot CRM 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `companies` | array | HubSpot 公司对象的数组 |
| `paging` | object | 分页信息 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 公司数据 |
### `hubspot_get_company`
@@ -197,9 +186,8 @@ HubSpot CRM 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `company` | object | 带有属性的 HubSpot 公司对象 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 公司数据 |
### `hubspot_create_company`
@@ -216,9 +204,8 @@ HubSpot CRM 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `company` | object | 创建的 HubSpot 公司对象 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 创建的公司数据 |
### `hubspot_update_company`
@@ -236,9 +223,8 @@ HubSpot CRM 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `company` | object | 更新的 HubSpot 公司对象 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 更新的公司数据 |
### `hubspot_search_companies`
@@ -259,11 +245,8 @@ HubSpot CRM 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `companies` | array | 匹配的 HubSpot 公司对象的数组 |
| `total` | number | 匹配的公司总数 |
| `paging` | object | 分页信息 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 搜索结果 |
### `hubspot_list_deals`
@@ -282,10 +265,8 @@ HubSpot CRM 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `deals` | array | HubSpot 交易对象的数组 |
| `paging` | object | 分页信息 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `success` | 布尔值 | 操作成功状态 |
| `output` | 对象 | 交易数据 |
## 注意事项

View File

@@ -51,9 +51,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `deals` | array | 来自 Pipedrive 的交易对象数组 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 交易数据和元数据 |
### `pipedrive_get_deal`
@@ -69,9 +68,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `deal` | object | 包含完整详细信息的交易对象 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 交易详情 |
### `pipedrive_create_deal`
@@ -95,9 +93,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `deal` | object | 创建的交易对象 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 创建的交易详情 |
### `pipedrive_update_deal`
@@ -118,9 +115,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `deal` | object | 更新的交易对象 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 更新的交易详情 |
### `pipedrive_get_files`
@@ -139,9 +135,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `files` | array | 来自 Pipedrive 的文件对象数组 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 文件数据 |
### `pipedrive_get_mail_messages`
@@ -158,9 +153,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `messages` | array | 来自 Pipedrive 邮箱的邮件线程对象数组 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 邮件线程数据 |
### `pipedrive_get_mail_thread`
@@ -176,9 +170,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `messages` | array | 邮件线程中的邮件消息对象数组 |
| `metadata` | object | 包含线程 ID 的操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 邮件线程消息数据 |
### `pipedrive_get_pipelines`
@@ -197,9 +190,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `pipelines` | array | 来自 Pipedrive 的管道对象数组 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 管道数据 |
### `pipedrive_get_pipeline_deals`
@@ -218,9 +210,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `deals` | array | 管道中的交易对象数组 |
| `metadata` | object | 包含管道 ID 的操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 管道交易数据 |
### `pipedrive_get_projects`
@@ -238,10 +229,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `projects` | array | 项目对象数组(列出所有项目时) |
| `project` | object | 单个项目对象(提供 project_id 时) |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 项目数据或单个项目详情 |
### `pipedrive_create_project`
@@ -260,9 +249,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `project` | object | 创建的项目对象 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 创建的项目详情 |
### `pipedrive_get_activities`
@@ -283,9 +271,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `activities` | array | 来自 Pipedrive 的活动对象数组 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 活动数据 |
### `pipedrive_create_activity`
@@ -309,9 +296,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `activity` | object | 创建的活动对象 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 创建的活动详情 |
### `pipedrive_update_activity`
@@ -333,9 +319,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `activity` | object | 更新的活动对象 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 更新的活动详情 |
### `pipedrive_get_leads`
@@ -356,10 +341,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `leads` | array | 潜在客户对象数组(列出所有时) |
| `lead` | object | 单个潜在客户对象(提供 lead_id 时) |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 潜在客户数据或单个潜在客户详情 |
### `pipedrive_create_lead`
@@ -382,9 +365,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `lead` | object | 创建的潜在客户对象 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 创建的潜在客户详情 |
### `pipedrive_update_lead`
@@ -408,9 +390,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `lead` | object | 更新的潜在客户对象 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 更新的潜在客户详情 |
### `pipedrive_delete_lead`
@@ -426,9 +407,8 @@ Pipedrive 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `data` | object | 删除确认数据 |
| `metadata` | object | 操作元数据 |
| `success` | boolean | 操作成功状态 |
| `output` | object | 删除结果 |
## 注意事项

View File

@@ -1,63 +0,0 @@
---
title: Amazon SQS
description: 连接到 Amazon SQS
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="sqs"
color="linear-gradient(45deg, #2E27AD 0%, #527FFF 100%)"
/>
{/* MANUAL-CONTENT-START:intro */}
[Amazon Simple Queue Service (SQS)](https://aws.amazon.com/sqs/) 是一项完全托管的消息队列服务可帮助您解耦和扩展微服务、分布式系统和无服务器应用程序。SQS 消除了与管理和操作面向消息的中间件相关的复杂性和开销,使开发人员能够专注于差异化工作。
使用 Amazon SQS您可以
- **发送消息**:将消息发布到队列以进行异步处理
- **解耦应用程序**:实现系统组件之间的松耦合
- **扩展工作负载**:处理可变工作负载,无需预置基础设施
- **确保可靠性**:内置冗余和高可用性
- **支持 FIFO 队列**:保持严格的消息顺序和精确的一次性处理
在 Sim 中SQS 集成使您的代理能够安全且以编程方式将消息发送到 Amazon SQS 队列。支持的操作包括:
- **发送消息**:将消息发送到 SQS 队列,并为 FIFO 队列提供可选的消息组 ID 和去重 ID
此集成允许您的代理自动化消息发送工作流,无需人工干预。通过将 Sim 与 Amazon SQS 连接,您可以构建代理,在工作流中将消息发布到队列,而无需处理队列基础设施或连接。
{/* MANUAL-CONTENT-END */}
## 使用说明
将 Amazon SQS 集成到工作流中。可以将消息发送到 SQS 队列。
## 工具
### `sqs_send`
向 Amazon SQS 队列发送消息
#### 输入
| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `region` | string | 是 | AWS 区域 \(例如us-east-1\) |
| `accessKeyId` | string | 是 | AWS 访问密钥 ID |
| `secretAccessKey` | string | 是 | AWS 秘密访问密钥 |
| `queueUrl` | string | 是 | 队列 URL |
| `data` | object | 是 | 要发送的消息正文 |
| `messageGroupId` | string | 否 | 消息组 ID \(可选\) |
| `messageDeduplicationId` | string | 否 | 消息去重 ID \(可选\) |
#### 输出
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `message` | string | 操作状态消息 |
| `id` | string | 消息 ID |
## 注意事项
- 类别: `tools`
- 类型: `sqs`

View File

@@ -48,9 +48,25 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `total_items` | number | 响应总数 |
| `page_count` | number | 可用页面的总数 |
| `items` | array | 包含 response_id、submitted_at、answers 和 metadata 的响应对象数组 |
| `total_items` | number | 响应/表单总数 |
| `page_count` | number | 总数 |
| `items` | json | 响应/表单项目数组 |
| `id` | string | 表单唯一标识符 |
| `title` | string | 表单标题 |
| `type` | string | 表单类型 |
| `created_at` | string | 表单创建的 ISO 时间戳 |
| `last_updated_at` | string | 上次更新的 ISO 时间戳 |
| `settings` | json | 表单设置对象 |
| `theme` | json | 主题配置对象 |
| `workspace` | json | 工作区信息 |
| `fields` | json | 表单字段/问题数组 |
| `thankyou_screens` | json | 感谢页面数组 |
| `_links` | json | 相关资源链接 |
| `deleted` | boolean | 表单是否成功删除 |
| `message` | string | 删除确认消息 |
| `fileUrl` | string | 下载文件的 URL |
| `contentType` | string | 文件内容类型 |
| `filename` | string | 文件名 |
### `typeform_files`
@@ -110,9 +126,9 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `total_items` | number | 户中表单总数 |
| `total_items` | number | 户中表单总数 |
| `page_count` | number | 可用页面的总数 |
| `items` | array | 包含 id、title、created_at、last_updated_at、settings、theme 和 _links 的表单对象数组 |
| `items` | array | 表单对象数组 |
### `typeform_get_form`
@@ -131,14 +147,12 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| --------- | ---- | ----------- |
| `id` | string | 表单唯一标识符 |
| `title` | string | 表单标题 |
| `type` | string | 表单类型 \(form, quiz 等\) |
| `type` | string | 表单类型 \(表单、测验等\) |
| `created_at` | string | 表单创建的 ISO 时间戳 |
| `last_updated_at` | string | 上次更新的 ISO 时间戳 |
| `settings` | object | 表单设置,包括语言、进度条等 |
| `theme` | object | 主题引用 |
| `workspace` | object | 工作区引用 |
| `fields` | array | 表单字段/问题数组 |
| `welcome_screens` | array | 欢迎页面数组 |
| `thankyou_screens` | array | 感谢页面数组 |
| `_links` | object | 包括公共表单 URL 在内的相关资源链接 |
| `theme` | object | 主题配置,包括颜色、字体和设计设置 |
| `workspace` | object | 工作区信息 |
### `typeform_create_form`
@@ -163,8 +177,13 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| `id` | string | 创建的表单唯一标识符 |
| `title` | string | 表单标题 |
| `type` | string | 表单类型 |
| `created_at` | string | 表单创建的 ISO 时间戳 |
| `last_updated_at` | string | 最后更新的 ISO 时间戳 |
| `settings` | object | 表单设置 |
| `theme` | object | 应用的主题配置 |
| `workspace` | object | 工作区信息 |
| `fields` | array | 创建的表单字段数组 |
| `_links` | object | 包括公共表单 URL 在内的相关资源链接 |
| `_links` | object | 相关资源链接 |
### `typeform_update_form`
@@ -185,12 +204,13 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| `id` | string | 更新的表单唯一标识符 |
| `title` | string | 表单标题 |
| `type` | string | 表单类型 |
| `created_at` | string | 表单创建的 ISO 时间戳 |
| `last_updated_at` | string | 最后更新的 ISO 时间戳 |
| `settings` | object | 表单设置 |
| `theme` | object | 主题引用 |
| `workspace` | object | 工作区引用 |
| `theme` | object | 主题配置 |
| `workspace` | object | 工作区信息 |
| `fields` | array | 表单字段数组 |
| `welcome_screens` | array | 欢迎屏幕数组 |
| `thankyou_screens` | array | 感谢屏幕数组 |
| `thankyou_screens` | array | 感谢页面数组 |
| `_links` | object | 相关资源链接 |
### `typeform_delete_form`

View File

@@ -477,7 +477,7 @@ checksums:
content/11: 371d0e46b4bd2c23f559b8bc112f6955
content/12: f86b4f5f2c68f43bb30c31455e3be9b6
content/13: bcadfc362b69078beee0088e5936c98b
content/14: 5112eece1ec6b0be680f45e1135a3281
content/14: a29319a7824fc50f83f50b8d616371d4
content/15: 0bf7daaa3e25f831e867651f1f741b42
content/16: 194950d92c8162c418cb14eec4ab5a18
content/17: 371d0e46b4bd2c23f559b8bc112f6955
@@ -495,25 +495,25 @@ checksums:
content/29: 371d0e46b4bd2c23f559b8bc112f6955
content/30: 1cc22f14b53f6cb1508c9d9e76a97ffc
content/31: bcadfc362b69078beee0088e5936c98b
content/32: bfb1f1db8e96160f94f6edb40fa3faad
content/32: 52de3b8f239d1c17c53364d781b0e644
content/33: 13f4e18c7e77c96613108cfe64e4d364
content/34: aaada0cb81a7e70297d9d47f936e51fd
content/35: 371d0e46b4bd2c23f559b8bc112f6955
content/36: 4c6a3b159dfff0106b67269130253eba
content/37: bcadfc362b69078beee0088e5936c98b
content/38: 21cc925781120afc2c4568f74ed8191a
content/38: 93282e29fd004417112ebfee716b2e29
content/39: 5de052cae5ada1f845f7257ba431ebd1
content/40: 1a36fc873771b68a67d95a2130487aec
content/41: 371d0e46b4bd2c23f559b8bc112f6955
content/42: b000bca7bd6658d4b5d21e6c7787d05e
content/43: bcadfc362b69078beee0088e5936c98b
content/44: 448922b8585b0b4599e7023c80faa449
content/44: 8fa5b975e46b4e488b17cc497de86694
content/45: 776f62636d112cbd27d5064a40e29ec9
content/46: f512a5096a1d5a4e4a0afd762152b714
content/47: 371d0e46b4bd2c23f559b8bc112f6955
content/48: 06de592289fb5f4dff42f451ebf9658a
content/49: bcadfc362b69078beee0088e5936c98b
content/50: d242a9680311743714a60bf1941ef9ac
content/50: d3696981fefa1f9c436e23842f69e172
content/51: a4cfd36d36633eee441423283d4d5fb3
content/52: 85ea23183709f33902aec778c7cb62b0
content/53: 371d0e46b4bd2c23f559b8bc112f6955
@@ -3464,7 +3464,7 @@ checksums:
content/37: 371d0e46b4bd2c23f559b8bc112f6955
content/38: 3e7b1f581c8ef51fb3d9b6ecff47deb4
content/39: bcadfc362b69078beee0088e5936c98b
content/40: 07994574571bcaeb3b86ce92c46d0527
content/40: 8f63ba4785aed72b1840e562ff0d0df7
content/41: b3f310d5ef115bea5a8b75bf25d7ea9a
content/42: dc809f5be4a108f769310dd8290c0db4
bda76150deadd23f7803a15b39c4db66:
@@ -3845,44 +3845,38 @@ checksums:
content/60: 5901c2c84678c889c2d48e77b40014ec
content/61: bcadfc362b69078beee0088e5936c98b
content/62: d76ee741e1888731742798f2794101ed
content/63: a81589f2200fc67b255fe43614d22976
content/64: 37784f302e365fcd636a86adf08c0297
content/63: 496b5789a744fec56b165a7f7ccbefc0
content/64: 976b5c09fddc3981a1881e62624fb1f6
content/65: 371d0e46b4bd2c23f559b8bc112f6955
content/66: fed65968404d4a377eaf8d2387a15926
content/66: c9ea0e2c6bfb9abd73572d021f74a7de
content/67: bcadfc362b69078beee0088e5936c98b
content/68: bdfc6b8dc4f285b5636054bda5073f28
content/69: 496b5789a744fec56b165a7f7ccbefc0
content/70: 976b5c09fddc3981a1881e62624fb1f6
content/68: e01308629566a2c3e95cc26304188ef0
content/69: 1de796fec3488fe36d6e811727a916a9
content/70: 75f92c54e71d2734e3901343240ab29e
content/71: 371d0e46b4bd2c23f559b8bc112f6955
content/72: c9ea0e2c6bfb9abd73572d021f74a7de
content/72: 2e80241a94359c7165b7eee705674e31
content/73: bcadfc362b69078beee0088e5936c98b
content/74: e01308629566a2c3e95cc26304188ef0
content/75: 1de796fec3488fe36d6e811727a916a9
content/76: 75f92c54e71d2734e3901343240ab29e
content/74: e843dcc7e9c933e4a5747379c1e51f2e
content/75: 72c749dd7c4c64b84e8764c606c9599e
content/76: d3feee2154fc7a46b842e2435a649727
content/77: 371d0e46b4bd2c23f559b8bc112f6955
content/78: 2e80241a94359c7165b7eee705674e31
content/78: 7465a5023e6ba134f07e12e588a85671
content/79: bcadfc362b69078beee0088e5936c98b
content/80: e843dcc7e9c933e4a5747379c1e51f2e
content/81: 72c749dd7c4c64b84e8764c606c9599e
content/82: d3feee2154fc7a46b842e2435a649727
content/80: a2817ce70b061ae3f2c1bf62c4078001
content/81: 119c212dac0135f1ccedfbf0eb8d27ae
content/82: 83dd6ad7872478f4ec41b4362792b883
content/83: 371d0e46b4bd2c23f559b8bc112f6955
content/84: 7465a5023e6ba134f07e12e588a85671
content/84: d2acf911462ae4e825d47e8a386d6d1c
content/85: bcadfc362b69078beee0088e5936c98b
content/86: a2817ce70b061ae3f2c1bf62c4078001
content/87: 119c212dac0135f1ccedfbf0eb8d27ae
content/88: 83dd6ad7872478f4ec41b4362792b883
content/86: f69940bcedadf67b0e474682577207cf
content/87: db73fc05316809b28857ca697ceeffe7
content/88: 3277861c34a8958c3a6d47b5978ae867
content/89: 371d0e46b4bd2c23f559b8bc112f6955
content/90: d2acf911462ae4e825d47e8a386d6d1c
content/90: 07003e71b6286e0588f606d8e063c783
content/91: bcadfc362b69078beee0088e5936c98b
content/92: f69940bcedadf67b0e474682577207cf
content/93: db73fc05316809b28857ca697ceeffe7
content/94: 3277861c34a8958c3a6d47b5978ae867
content/95: 371d0e46b4bd2c23f559b8bc112f6955
content/96: 07003e71b6286e0588f606d8e063c783
content/97: bcadfc362b69078beee0088e5936c98b
content/98: 5c0becafe66dc048e541fe7330336c3f
content/99: b3f310d5ef115bea5a8b75bf25d7ea9a
content/100: 05207a2c6155f6912f2945a2ca85d5fc
content/92: 5c0becafe66dc048e541fe7330336c3f
content/93: b3f310d5ef115bea5a8b75bf25d7ea9a
content/94: 05207a2c6155f6912f2945a2ca85d5fc
63c9ac4220dfb233b39daaa9c82ade00:
meta/title: 50de3a91960f18340fe2672a889fcfd7
meta/description: 4dd9ce8fa67af977678af57427c65e0b
@@ -5680,13 +5674,13 @@ checksums:
content/7: 371d0e46b4bd2c23f559b8bc112f6955
content/8: a3c11477d8439403d831759eaf853014
content/9: bcadfc362b69078beee0088e5936c98b
content/10: 845660ec2cdd9b96a52f7fd6edb7e069
content/10: f383a8845c0fe57f4eb82c1c69009925
content/11: 6ec042e76b23443637c5318f52794824
content/12: 8b5f9dc14880c8c000fb31d2609b472d
content/13: 371d0e46b4bd2c23f559b8bc112f6955
content/14: 0a261f4aa9ed78d0d064e2bb0d62044c
content/15: bcadfc362b69078beee0088e5936c98b
content/16: e69b63114342a49f24a67f2867164814
content/16: f383a8845c0fe57f4eb82c1c69009925
content/17: da5389d425a2ed3cfc699b8b305b92ca
content/18: 2f8d4817554dde3883597dc00beb677a
content/19: 371d0e46b4bd2c23f559b8bc112f6955
@@ -5698,25 +5692,25 @@ checksums:
content/25: 371d0e46b4bd2c23f559b8bc112f6955
content/26: d5b98c983daa7d8b92969933a797b4fd
content/27: bcadfc362b69078beee0088e5936c98b
content/28: ba52aed0f57ba4b4616a67f7648c2d3b
content/28: f383a8845c0fe57f4eb82c1c69009925
content/29: 156255b2849bbf28a1aa98516dee39e1
content/30: 226995d6023bacd5ebeb6568cef38d32
content/31: 371d0e46b4bd2c23f559b8bc112f6955
content/32: 3d10386c77486a8fb7777eb2e616762f
content/33: bcadfc362b69078beee0088e5936c98b
content/34: 2556172bac9279ba61689e93a75077cc
content/34: f383a8845c0fe57f4eb82c1c69009925
content/35: e4d7bc479212113e9ce1e4a4bd76f86a
content/36: ce9c08055f6ec84a646c1fb90aab9fc4
content/37: 371d0e46b4bd2c23f559b8bc112f6955
content/38: 0f29418fa0c7fe544613330b91940f6a
content/39: bcadfc362b69078beee0088e5936c98b
content/40: 60cc1342d1475d0b822aacfcc9d162d8
content/40: f383a8845c0fe57f4eb82c1c69009925
content/41: 6226071e782ecd50a31e3667852aeaae
content/42: 6253ab1d2159b9179728769cc223b05a
content/43: 371d0e46b4bd2c23f559b8bc112f6955
content/44: 6ea2166f86fd38641c7cbbf7ff7dde14
content/45: bcadfc362b69078beee0088e5936c98b
content/46: 4c9b5b6404367f05cf17c80f718a9722
content/46: f383a8845c0fe57f4eb82c1c69009925
content/47: b3f310d5ef115bea5a8b75bf25d7ea9a
content/48: 5e1c856b28d30016198e90cda5b05e57
5d496ee293efcfeeabc8ba9cb5bea389:
@@ -6704,109 +6698,109 @@ checksums:
content/12: 371d0e46b4bd2c23f559b8bc112f6955
content/13: dae5c302ede2453d0009c5a685feb022
content/14: bcadfc362b69078beee0088e5936c98b
content/15: 1602503ae72d1314b640123d677cc633
content/15: 6fa0deda19439292c55097ef25239c77
content/16: 51bce1eb49f5202343f9826024223b31
content/17: 2350cbe796d8d46f5952029c863fda06
content/18: 371d0e46b4bd2c23f559b8bc112f6955
content/19: 9c06876470db23917a2a3ee5a4315733
content/20: bcadfc362b69078beee0088e5936c98b
content/21: 106fd592034d1f004c98d526cf3f3d73
content/21: 2e035c1b9af4b2beef1f5b5fdc0f2308
content/22: 7c0ac45f6f6630777a388cffda717b5b
content/23: 49cb82a2975f9088dab6b37cf7cc0554
content/24: 371d0e46b4bd2c23f559b8bc112f6955
content/25: 1479d81949322910928d3986fda177c8
content/26: bcadfc362b69078beee0088e5936c98b
content/27: b747e7b327f0dd4ae3672533e4e6eb62
content/27: 7a0fbeb1d352c71128b6c71919428414
content/28: afb55d14fa0dddda2ff67bdb87aa04b5
content/29: b06d024ce4c861572929702e551501c0
content/30: 371d0e46b4bd2c23f559b8bc112f6955
content/31: e23ce76d94ca15f112c3da007d896376
content/32: bcadfc362b69078beee0088e5936c98b
content/33: 4a8637b7a6dfe444af42778d5dea8953
content/33: d88238e92bd4da31e893dbef2602577f
content/34: 573ed349fb115c8e2b262639eb1cee94
content/35: 2cf83cedde0bf34c0126d10fa57d8ea7
content/36: 371d0e46b4bd2c23f559b8bc112f6955
content/37: ced779c0459899d9934ed9d5e9c16027
content/38: bcadfc362b69078beee0088e5936c98b
content/39: a22c0adf9f7af9920ffd005ea77f0973
content/39: a7eebb30e28a7b07316b224c7a2a8d65
content/40: 7346be42f9672ab948b276c6bcd6f7f6
content/41: 1aee2da8c1e7b0d6869959103bffb799
content/42: 371d0e46b4bd2c23f559b8bc112f6955
content/43: 87a0ac973fd1af8f8282589860fc9846
content/44: bcadfc362b69078beee0088e5936c98b
content/45: 5963fe44971a0c55f0a1a63305ee0489
content/45: 4c20536f0e8a44cd5f4e4fbac837c84d
content/46: 0a4667f0fe6170c78f12dab6c8f43545
content/47: 168d47bf81f43b2f07f68a6135dc6e20
content/48: 371d0e46b4bd2c23f559b8bc112f6955
content/49: f0e41e3c3b7472bbe309abaaf3251faf
content/50: bcadfc362b69078beee0088e5936c98b
content/51: 431aa94527010c6e8da4c205ec739e34
content/51: b8d43e8492c521206c7698b16ad47a77
content/52: 194e0dcae0b72f23ae9b7d5422a99b33
content/53: 3c4fdc8e069f2802c73471908fddd25a
content/54: 371d0e46b4bd2c23f559b8bc112f6955
content/55: 6014a6b6972597a13edc66f8bd65a9a0
content/56: bcadfc362b69078beee0088e5936c98b
content/57: 10e5475e4ba1928c6f409c962d48b1d7
content/57: 739083ffe3711c4dfb580ee7f2949343
content/58: 53e2acf4473d4182244c34aa421d8a43
content/59: d768c66310b7a829344a7ee4ac897e72
content/60: 371d0e46b4bd2c23f559b8bc112f6955
content/61: cd4caf9d3ae8aef3785a78db4fdadc9f
content/62: bcadfc362b69078beee0088e5936c98b
content/63: 680395d47cd8d1134facf052e0a2a38b
content/63: 9b70d9ae3fda05442e911dee1614f27e
content/64: 48b29aa751b26ed0f9db1e95e760cd27
content/65: 6b8826b7fe1b3639465cd267f149673a
content/66: 371d0e46b4bd2c23f559b8bc112f6955
content/67: bded72160da14ccf151b0a0eb06bb56f
content/68: bcadfc362b69078beee0088e5936c98b
content/69: e0b7ea1fe1ef728e53492b5993b15d14
content/69: e54159fa3e3620cc49bee79e772cb87e
content/70: ae4b76165d096d64525d1aee1e18fee0
content/71: a18956fdd8ce9a265626539f75e96084
content/72: 371d0e46b4bd2c23f559b8bc112f6955
content/73: 573b4147d240e71a452c45d772f28b33
content/74: bcadfc362b69078beee0088e5936c98b
content/75: 209a7be82a8c8f943a2b6eae46fdf59d
content/75: b8aa04222de1cd87b5ef6ffcad8e63fd
content/76: 4bd432a7a3e1440b6b71f235a6ad65cd
content/77: fd8fbeb55ef74c575281f61b04ec31c0
content/78: 371d0e46b4bd2c23f559b8bc112f6955
content/79: e558fa14a8f54ad2957a0715c8fc131d
content/80: bcadfc362b69078beee0088e5936c98b
content/81: 8cdef68820d5b731b817485136203e2e
content/81: 5e681a2ba92d15d5efdbd3269bbd595c
content/82: a617faea0b4556a3e2cdd76854be4eeb
content/83: 3a4f2fec3210cd6caaceaff1ade1d25d
content/84: 371d0e46b4bd2c23f559b8bc112f6955
content/85: 6268a8ef99f3c8edfbb54adb702252c2
content/86: bcadfc362b69078beee0088e5936c98b
content/87: c4005cf9f2be966687a8e1657053b658
content/87: 2db32021d8c338ff378c041bdd771b36
content/88: e594b6968a32cc114836e7d338b2ae72
content/89: ecbe896e30d37803f062d774c3fed61e
content/90: 371d0e46b4bd2c23f559b8bc112f6955
content/91: 31bb12c5fecb55e000fb6548ff84611d
content/92: bcadfc362b69078beee0088e5936c98b
content/93: 13881b819f65455ba6eaa79578a69416
content/93: cbb110de4c385f111ba0c2cfd2bee9ba
content/94: 232c00f66421f98d3acfe0066c25a861
content/95: 29cea11c97efbd2d46163eb3f091fe54
content/96: 371d0e46b4bd2c23f559b8bc112f6955
content/97: 1e7dbcb716a318b2861889422fdc16cc
content/98: bcadfc362b69078beee0088e5936c98b
content/99: 5642bc5da8834e5c1b825393e59138bb
content/99: bf86387df51e9fba30a22614e23450e0
content/100: b9fa49fac9189484fb4952264802b2fa
content/101: 730c30b24067e75bf4bd88067281d869
content/102: 371d0e46b4bd2c23f559b8bc112f6955
content/103: 80bad3d5d39d84dddf169515ea34e867
content/104: bcadfc362b69078beee0088e5936c98b
content/105: 8424c37fc3a7ab3c14673df85ffdb97e
content/105: 1f974e39ff95cbb8f217448e40537a7a
content/106: 7d3f547f7d19f6f08b6501de082e9d22
content/107: 410cfe5d22625805edc6d68e6cdd9606
content/108: 371d0e46b4bd2c23f559b8bc112f6955
content/109: 5ad03aa50355f0c83f7bb6cb8795a598
content/110: bcadfc362b69078beee0088e5936c98b
content/111: fbcea5843f0ceacfada9473d602b5073
content/111: f9e40bfcca798561cf3fa41ecea16079
content/112: 940c561f84e0e3cb3c75cf789ce886b8
content/113: 83d531300698c39ce89ff22a4a699722
content/114: 371d0e46b4bd2c23f559b8bc112f6955
content/115: 3015c78bbe4877ab591f25b04f026f1b
content/116: bcadfc362b69078beee0088e5936c98b
content/117: 0db5be06d1f87f79a56b19c0cd33c5d9
content/117: 45d8bfeced635336cacc9d4a8d08dbca
content/118: b3f310d5ef115bea5a8b75bf25d7ea9a
content/119: 58da44cca95db12222bd186cf4042384
f8151918dd7b32173a979241c19134ba:
@@ -6827,73 +6821,73 @@ checksums:
content/12: 371d0e46b4bd2c23f559b8bc112f6955
content/13: cf0eb00889d3fbe8f11192fbde69d152
content/14: bcadfc362b69078beee0088e5936c98b
content/15: 903282a17337b15eb942f93814ca7e27
content/15: ddea0f29c3b0b39d4d68accb1ee22f1d
content/16: dacdc7f65574fccd17af803318f08ef9
content/17: 1e91462ed3829658d2ec8c5e19b44276
content/18: 371d0e46b4bd2c23f559b8bc112f6955
content/19: 3f75fb03850d89c3746403ab778e6c6e
content/20: bcadfc362b69078beee0088e5936c98b
content/21: 91827ecd0a9656291c376a3ad8f4d496
content/21: a91e46a2855f87996b8dae5dc6a9aaf6
content/22: 8d068110b8b042b41197680cbcbd0927
content/23: dde6ab55890a4d8cc9327080ce0597c3
content/24: 371d0e46b4bd2c23f559b8bc112f6955
content/25: 3e92d8c3f4040a803e8b607960c29b6c
content/26: bcadfc362b69078beee0088e5936c98b
content/27: 237639e938a067fec5678d0515b7d168
content/27: b74416361f94e71f2a94139711a5dd21
content/28: 713d826a38614b3652126a3fe9c6126f
content/29: f5a0bd20a329a7dd67288c689b47e2d9
content/30: 371d0e46b4bd2c23f559b8bc112f6955
content/31: 98ca93ddd2a2aee2f61dec9fe632384a
content/32: bcadfc362b69078beee0088e5936c98b
content/33: a911e619373da2bd26a6ab96aec81055
content/33: 59c08999f9c404330ebd8f8a7d21e1a1
content/34: 7d04f221614ad1354fe3621c30df226d
content/35: 7e180b7c89c19f1e2cd120262e57ba38
content/36: 371d0e46b4bd2c23f559b8bc112f6955
content/37: 58087b9c1752a00e213ae852c0bd8809
content/38: bcadfc362b69078beee0088e5936c98b
content/39: 299684025f9e6e850ab16d6baf418b26
content/39: a9096a341b00ce4f4891daaca2586d1c
content/40: 3c244b481f57915598dd929f5b8a23cc
content/41: d6d85996497b2381017261d33d5cd1b0
content/42: 371d0e46b4bd2c23f559b8bc112f6955
content/43: 4fac81b063955c77058d3baa9163b3d0
content/44: bcadfc362b69078beee0088e5936c98b
content/45: f49a920a3b7cde671b28907e8b502139
content/45: d84fb23e5dfc9d41a177acd7dfb28e72
content/46: 5931a0fc92f49d3319a105262d5ca128
content/47: b08cbcbb1e221857dac6f92381f5bcb3
content/48: 371d0e46b4bd2c23f559b8bc112f6955
content/49: 6d1626fc785f9ada58825976e51a31f9
content/50: bcadfc362b69078beee0088e5936c98b
content/51: ccb1eb5dabe073b1c58ab500f799e52f
content/51: 024d1b1b1865fe5a64117e56e8787378
content/52: ebe21f836617d8f9fac6bc1c2adb80f6
content/53: db8df7c9b04b016eeb2b9a47e0719206
content/54: 371d0e46b4bd2c23f559b8bc112f6955
content/55: 66bbc953313a2075ca8598e291251910
content/56: bcadfc362b69078beee0088e5936c98b
content/57: 368234e1ffbba050e602cfa12151c3ea
content/57: a7e001e39652db8eeb4d32968bda102b
content/58: 688707edc447f458dd66ed554d4d4b3f
content/59: 2a2834d73d8ff43d7e3b4e5bda10325e
content/60: 371d0e46b4bd2c23f559b8bc112f6955
content/61: ade51ba73d7a75e12fc928288ff20ea9
content/62: bcadfc362b69078beee0088e5936c98b
content/63: 7c3270bc6736a2bd7c0f5496d1c5f5ce
content/63: 4c03414c0a9acc3ea28293b627b5b881
content/64: 76aaca4f2b31aac6deaeaa1d71882912
content/65: b05b49d0597283e9c4c672f0b45ecda0
content/66: 371d0e46b4bd2c23f559b8bc112f6955
content/67: 0ba45c91fa13677917e47e88297e5a20
content/68: bcadfc362b69078beee0088e5936c98b
content/69: ddfbf3d4e45cae666af814d9c855f219
content/69: 3155eda71c6003c7382f3f1c7c793c4d
content/70: 41fdc537cc5a4f117f4e51b10d4b893c
content/71: 2aab9e60a5ddef37cc45e839fd265d10
content/72: 371d0e46b4bd2c23f559b8bc112f6955
content/73: 4fac81b063955c77058d3baa9163b3d0
content/74: bcadfc362b69078beee0088e5936c98b
content/75: 043b526a4286ce4cd2dac146a6e4da9a
content/75: d84fb23e5dfc9d41a177acd7dfb28e72
content/76: 1e064911f29516b36aac2252d09d3264
content/77: 8872c46680fb5433e3e0e0a77e003b22
content/78: 371d0e46b4bd2c23f559b8bc112f6955
content/79: 6d1626fc785f9ada58825976e51a31f9
content/80: bcadfc362b69078beee0088e5936c98b
content/81: 4edfee5770f54034f27f9bc59ee7d1f4
content/81: fed2311ba97e58ae76786292a757702e
content/82: b3f310d5ef115bea5a8b75bf25d7ea9a
content/83: dd6d6480c2ae6bc7c827ec9564ec7ef9
ed72a377ba81c1bf04db2423f73d062b:
@@ -6909,37 +6903,37 @@ checksums:
content/7: 371d0e46b4bd2c23f559b8bc112f6955
content/8: 3266fdc66f47be026e3d85ab90eb7d16
content/9: bcadfc362b69078beee0088e5936c98b
content/10: 2f41e84609ff3ba897a32f8e033b97a4
content/10: 365ddc9f29d7be92c2728fa31acd422e
content/11: 886903f11f98dfe38a6e6f29fdbb8528
content/12: 3d11d1d78714f9e4075abf1953e75419
content/13: 371d0e46b4bd2c23f559b8bc112f6955
content/14: fa21911c64ea75c918e352059eb2fe7f
content/15: bcadfc362b69078beee0088e5936c98b
content/16: 662dacdee0a82c71c7b630238514aaf3
content/16: 73fafa520a11921f8df9fa8d8b587d92
content/17: 82a733d968d25120950aaf9fd928c63c
content/18: bef062551faa2678b2112920a5bda1d2
content/19: 371d0e46b4bd2c23f559b8bc112f6955
content/20: 4aeb05322a8d1e939a3b3b64d28f08a5
content/21: bcadfc362b69078beee0088e5936c98b
content/22: 25e898053049f3125589308873970895
content/22: 1619572a3d37abd3ce129d2504ecbdcb
content/23: 5cf8947a4e28bad973b58526cb57d0ab
content/24: 0093e8689859deeb465584a5338891fd
content/25: 371d0e46b4bd2c23f559b8bc112f6955
content/26: aebeebc35e961034b2800b44d3c8c50a
content/27: bcadfc362b69078beee0088e5936c98b
content/28: 87d76638ba698c2b3e5b8f67377eff5f
content/28: f0659feb482e9a487ff14d3babc59851
content/29: 69d5a8e4bf6275107b232f78bb67162a
content/30: 37fd64adf8a955b203d31a19bd328878
content/31: 371d0e46b4bd2c23f559b8bc112f6955
content/32: 78657a4d018e378ca7aea2e00d1aa602
content/33: bcadfc362b69078beee0088e5936c98b
content/34: d05d8d278738bb917a7e0f88ff94458b
content/34: e267b11cdce02732ed71edd6cce119ae
content/35: 1f5a6b20541ced797f9bf32db70f972d
content/36: 9cec30d66167e3a54f01f27b500026f2
content/37: 371d0e46b4bd2c23f559b8bc112f6955
content/38: 1705a4a7e36233333aa624fd7c561bef
content/39: bcadfc362b69078beee0088e5936c98b
content/40: 9ca0c224a20194a7efe00c52d1ce3218
content/40: 60efbb9e08ce955c225a0e8cf69626be
content/41: b3f310d5ef115bea5a8b75bf25d7ea9a
content/42: e7d074449d490a0eb0f4cbf2ca1886ab
b7341c73e73c19fbe18dd999900d8f7c:
@@ -47479,7 +47473,7 @@ checksums:
content/13: 371d0e46b4bd2c23f559b8bc112f6955
content/14: 6c217c31e3269045db51e0ca2e02dc40
content/15: bcadfc362b69078beee0088e5936c98b
content/16: cff09b9499de76d13da4478d7365dec2
content/16: 9a5ecda96a3113d95900df597cffc636
content/17: e28cdc705de05af33fc86ed8d5d900d3
content/18: 0e38f19d9fbfbd36051d2e5c7f65d0c0
content/19: 371d0e46b4bd2c23f559b8bc112f6955
@@ -48954,67 +48948,67 @@ checksums:
content/7: 371d0e46b4bd2c23f559b8bc112f6955
content/8: ddf9f33ab00bc63ba73d935e9a9461bb
content/9: bcadfc362b69078beee0088e5936c98b
content/10: 221e358865139adec497f1cb5d0b1a99
content/10: 83f29573676a9d1ccb33827ff578858a
content/11: 16b29a33d78bf2344e7b204ca98c0b82
content/12: 97b8063d8d1ada29666d9ec525694a93
content/13: 371d0e46b4bd2c23f559b8bc112f6955
content/14: 6e295e5dcf37ad9f7ee602652b93c5bf
content/15: bcadfc362b69078beee0088e5936c98b
content/16: 5c47ddc296b16e10a7b1594b7dcfd825
content/16: 83f29573676a9d1ccb33827ff578858a
content/17: 20c596f9dbdfe0cfa2d8f5b60dc71514
content/18: 1448d524a996ed212e7dbdbe967339b0
content/19: 371d0e46b4bd2c23f559b8bc112f6955
content/20: 0c9e28a7cf7bcfee1fe692fbd502dbb4
content/21: bcadfc362b69078beee0088e5936c98b
content/22: f559cd33f4b35b97e66d822945f63137
content/22: 83f29573676a9d1ccb33827ff578858a
content/23: 24e966f4a7a7f97a355b749b74377e64
content/24: 968f985de62e1fe2ad21716d7c215fc3
content/25: 371d0e46b4bd2c23f559b8bc112f6955
content/26: fd89e6852579854ef98eef8a76a261c5
content/27: bcadfc362b69078beee0088e5936c98b
content/28: 08765f663111f814f0f7e0d3343f6cef
content/28: 83f29573676a9d1ccb33827ff578858a
content/29: 84bf7ab082392d81a1347dd4091df95c
content/30: e6d21b5e83b22fcee600f5863114f76b
content/31: 371d0e46b4bd2c23f559b8bc112f6955
content/32: 6357650b93cf00ec79d620f75336a063
content/33: bcadfc362b69078beee0088e5936c98b
content/34: 2b3c80bcbce92fe344b5d92ace204b15
content/34: 83f29573676a9d1ccb33827ff578858a
content/35: 9a047f1df87fa8980889528cd4a7e23e
content/36: 10a705b69f4de0cafb55b579a091ff3e
content/37: 371d0e46b4bd2c23f559b8bc112f6955
content/38: a5f1409dffad379396a370fc6ef0b784
content/39: bcadfc362b69078beee0088e5936c98b
content/40: 49d0e9315a756ad56e74dd4554d65f25
content/40: 83f29573676a9d1ccb33827ff578858a
content/41: bc110e334defc4a0037ba2ef9fb75083
content/42: 741dfd7becb14378932cbad9bd3f1aaa
content/43: 371d0e46b4bd2c23f559b8bc112f6955
content/44: 5bf2c3d8e1f679dffa34a23728e09d3d
content/45: bcadfc362b69078beee0088e5936c98b
content/46: ee3bece021d785fa491f484d2647efa9
content/46: 83f29573676a9d1ccb33827ff578858a
content/47: 007ad7c8b597dd1638c1d730ae57c18b
content/48: 66114378d52751790fb30b1d4a49fb4b
content/49: 371d0e46b4bd2c23f559b8bc112f6955
content/50: 2f9f05b2bdf789cfda1791b0a274de0f
content/51: bcadfc362b69078beee0088e5936c98b
content/52: d08b87675acf0952c583781b4344377f
content/52: 83f29573676a9d1ccb33827ff578858a
content/53: b812f4c86dc86447c8aab2e6fc7ee77b
content/54: d368e64c4bc2884ac4af1c046d3043fc
content/55: 371d0e46b4bd2c23f559b8bc112f6955
content/56: 8d96a5aad7ba60cbbe6c4ab8b816c8f5
content/57: bcadfc362b69078beee0088e5936c98b
content/58: 2b3c80bcbce92fe344b5d92ace204b15
content/58: 83f29573676a9d1ccb33827ff578858a
content/59: bb444040039dcefd837703242f69b3f2
content/60: 2ca4d597cf85afe0c09441a1c55dc588
content/61: 371d0e46b4bd2c23f559b8bc112f6955
content/62: f90f9e7f20b3c4bf832a71e2dcbc1fe5
content/63: bcadfc362b69078beee0088e5936c98b
content/64: 41fcb4df99d2ba5f87c86d126a017227
content/64: 83f29573676a9d1ccb33827ff578858a
content/65: cdbf6d4d4066c241de37637f23944a51
content/66: 1f1ad7c241c27cf4614ba7b0b67fb584
content/67: 371d0e46b4bd2c23f559b8bc112f6955
content/68: 705cf28994842a8a455ba3dcb61c3f11
content/69: bcadfc362b69078beee0088e5936c98b
content/70: a03d9bf68ad5a88bf70953996c51b951
content/70: 83f29573676a9d1ccb33827ff578858a
content/71: b3f310d5ef115bea5a8b75bf25d7ea9a
content/72: fe020be6c017a995d0355c99c6b034ec
1b5c57a63b2d38e097b7f96b6e054db8:
@@ -49311,25 +49305,3 @@ checksums:
content/9: 7a3be8a3771ee428ecf09008e42c0e2e
content/10: 42e4caf9b036a8d7726a8968f3ed201f
content/11: e74f8ee79105babdaa8dfec520ecdf74
01bda2a6417895b3b24a3d2b543866d4:
meta/title: 55272c40df2a877093c8470e52102e87
meta/description: 13e8a6591a8addf009cb647bb7ee6a0d
content/0: 1b031fb0c62c46b177aeed5c3d3f8f80
content/1: 13c31b22dc8320eea4766871b5bdb2b1
content/2: da04d549734a9cf9c8cc168dbd6952dc
content/3: ecde46402d67144e99794c51b616c17d
content/4: 8884d8cca8ee6de94be5d8116e2f94b6
content/5: 3b6cc1660e95dc03733da604d98f19b9
content/6: 2167786106b3d684b5175827be6b3a1f
content/7: 3271375c7c99de5bdf13fad0b98b466d
content/8: 821e6394b0a953e2b0842b04ae8f3105
content/9: 88b0ee08769002bb9b22b4683e7a8e4c
content/10: 9c8aa3f09c9b2bd50ea4cdff3598ea4e
content/11: b1a2d0fd1320fb6a73e3fda153b9c7ae
content/12: cba5245faf73a6067d5720b824e1bef0
content/13: 371d0e46b4bd2c23f559b8bc112f6955
content/14: c93b79e5e1d98454c11e30fc97049725
content/15: bcadfc362b69078beee0088e5936c98b
content/16: a064887f5c777b54e029ba6ba1b56848
content/17: b3f310d5ef115bea5a8b75bf25d7ea9a
content/18: a4748f8ce0a4667675ca03e4d9fef87b

View File

@@ -19,7 +19,7 @@
"fumadocs-mdx": "14.1.0",
"fumadocs-ui": "16.2.3",
"lucide-react": "^0.511.0",
"next": "16.0.9",
"next": "16.0.7",
"next-themes": "^0.4.6",
"react": "19.2.1",
"react-dom": "19.2.1",

View File

@@ -135,7 +135,6 @@ export default function Nav({ hideAuthButtons = false, variant = 'landing' }: Na
priority
loading='eager'
quality={100}
unoptimized
/>
) : (
<Image

View File

@@ -5,7 +5,7 @@ import path from 'path'
import binaryExtensionsList from 'binary-extensions'
import { type NextRequest, NextResponse } from 'next/server'
import { checkHybridAuth } from '@/lib/auth/hybrid'
import { createPinnedUrl, validateUrlWithDNS } from '@/lib/core/security/input-validation'
import { validateExternalUrl } from '@/lib/core/security/input-validation'
import { isSupportedFileType, parseFile } from '@/lib/file-parsers'
import { createLogger } from '@/lib/logs/console/logger'
import { isUsingCloudStorage, type StorageContext, StorageService } from '@/lib/uploads'
@@ -15,7 +15,6 @@ import {
extractCleanFilename,
extractStorageKey,
extractWorkspaceIdFromExecutionKey,
getMimeTypeFromExtension,
getViewerUrl,
inferContextFromKey,
} from '@/lib/uploads/utils/file-utils'
@@ -45,6 +44,36 @@ interface ParseResult {
}
}
const fileTypeMap: Record<string, string> = {
// Text formats
txt: 'text/plain',
csv: 'text/csv',
json: 'application/json',
xml: 'application/xml',
md: 'text/markdown',
html: 'text/html',
css: 'text/css',
js: 'application/javascript',
ts: 'application/typescript',
// Document formats
pdf: 'application/pdf',
doc: 'application/msword',
docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
// Spreadsheet formats
xls: 'application/vnd.ms-excel',
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
// Presentation formats
ppt: 'application/vnd.ms-powerpoint',
pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
// Image formats
png: 'image/png',
jpg: 'image/jpeg',
jpeg: 'image/jpeg',
gif: 'image/gif',
// Archive formats
zip: 'application/zip',
}
/**
* Main API route handler
*/
@@ -241,7 +270,7 @@ async function handleExternalUrl(
logger.info('Fetching external URL:', url)
logger.info('WorkspaceId for URL save:', workspaceId)
const urlValidation = await validateUrlWithDNS(url, 'fileUrl')
const urlValidation = validateExternalUrl(url, 'fileUrl')
if (!urlValidation.isValid) {
logger.warn(`Blocked external URL request: ${urlValidation.error}`)
return {
@@ -317,12 +346,8 @@ async function handleExternalUrl(
}
}
const pinnedUrl = createPinnedUrl(url, urlValidation.resolvedIP!)
const response = await fetch(pinnedUrl, {
const response = await fetch(url, {
signal: AbortSignal.timeout(DOWNLOAD_TIMEOUT_MS),
headers: {
Host: urlValidation.originalHostname!,
},
})
if (!response.ok) {
throw new Error(`Failed to fetch URL: ${response.status} ${response.statusText}`)
@@ -353,8 +378,7 @@ async function handleExternalUrl(
})
} else {
const { uploadWorkspaceFile } = await import('@/lib/uploads/contexts/workspace')
const mimeType =
response.headers.get('content-type') || getMimeTypeFromExtension(extension)
const mimeType = response.headers.get('content-type') || getMimeType(extension)
await uploadWorkspaceFile(workspaceId, userId, buffer, filename, mimeType)
logger.info(`Saved URL file to workspace storage: ${filename}`)
}
@@ -546,7 +570,7 @@ async function handleLocalFile(
content: result.content,
filePath,
metadata: {
fileType: fileType || getMimeTypeFromExtension(extension),
fileType: fileType || getMimeType(extension),
size: stats.size,
hash,
processingTime: 0,
@@ -681,7 +705,7 @@ async function handleGenericTextBuffer(
content: result.content,
filePath: originalPath || filename,
metadata: {
fileType: fileType || getMimeTypeFromExtension(extension),
fileType: fileType || getMimeType(extension),
size: fileBuffer.length,
hash: createHash('md5').update(fileBuffer).digest('hex'),
processingTime: 0,
@@ -699,7 +723,7 @@ async function handleGenericTextBuffer(
content,
filePath: originalPath || filename,
metadata: {
fileType: fileType || getMimeTypeFromExtension(extension),
fileType: fileType || getMimeType(extension),
size: fileBuffer.length,
hash: createHash('md5').update(fileBuffer).digest('hex'),
processingTime: 0,
@@ -740,7 +764,7 @@ function handleGenericBuffer(
content,
filePath: filename,
metadata: {
fileType: fileType || getMimeTypeFromExtension(extension),
fileType: fileType || getMimeType(extension),
size: fileBuffer.length,
hash: createHash('md5').update(fileBuffer).digest('hex'),
processingTime: 0,
@@ -763,6 +787,13 @@ async function parseBufferAsPdf(buffer: Buffer) {
}
}
/**
* Get MIME type from file extension
*/
function getMimeType(extension: string): string {
return fileTypeMap[extension] || 'application/octet-stream'
}
/**
* Format bytes to human readable size
*/

View File

@@ -7,11 +7,7 @@ import { getParsedBody, withMcpAuth } from '@/lib/mcp/middleware'
import { mcpService } from '@/lib/mcp/service'
import type { McpTransport } from '@/lib/mcp/types'
import { validateMcpServerUrl } from '@/lib/mcp/url-validator'
import {
createMcpErrorResponse,
createMcpSuccessResponse,
generateMcpServerId,
} from '@/lib/mcp/utils'
import { createMcpErrorResponse, createMcpSuccessResponse } from '@/lib/mcp/utils'
const logger = createLogger('McpServersAPI')
@@ -54,20 +50,13 @@ export const GET = withMcpAuth('read')(
/**
* POST - Register a new MCP server for the workspace (requires write permission)
*
* Uses deterministic server IDs based on URL hash to ensure that re-adding
* the same server produces the same ID. This prevents "server not found" errors
* when workflows reference the old server ID after delete/re-add cycles.
*
* If a server with the same ID already exists (same URL in same workspace),
* it will be updated instead of creating a duplicate.
*/
export const POST = withMcpAuth('write')(
async (request: NextRequest, { userId, workspaceId, requestId }) => {
try {
const body = getParsedBody(request) || (await request.json())
logger.info(`[${requestId}] Registering MCP server:`, {
logger.info(`[${requestId}] Registering new MCP server:`, {
name: body.name,
transport: body.transport,
workspaceId,
@@ -93,43 +82,7 @@ export const POST = withMcpAuth('write')(
body.url = urlValidation.normalizedUrl
}
const serverId = body.url ? generateMcpServerId(workspaceId, body.url) : crypto.randomUUID()
const [existingServer] = await db
.select({ id: mcpServers.id, deletedAt: mcpServers.deletedAt })
.from(mcpServers)
.where(and(eq(mcpServers.id, serverId), eq(mcpServers.workspaceId, workspaceId)))
.limit(1)
if (existingServer) {
logger.info(
`[${requestId}] Server with ID ${serverId} already exists, updating instead of creating`
)
await db
.update(mcpServers)
.set({
name: body.name,
description: body.description,
transport: body.transport,
url: body.url,
headers: body.headers || {},
timeout: body.timeout || 30000,
retries: body.retries || 3,
enabled: body.enabled !== false,
updatedAt: new Date(),
deletedAt: null,
})
.where(eq(mcpServers.id, serverId))
mcpService.clearCache(workspaceId)
logger.info(
`[${requestId}] Successfully updated MCP server: ${body.name} (ID: ${serverId})`
)
return createMcpSuccessResponse({ serverId, updated: true }, 200)
}
const serverId = body.id || crypto.randomUUID()
await db
.insert(mcpServers)
@@ -152,10 +105,9 @@ export const POST = withMcpAuth('write')(
mcpService.clearCache(workspaceId)
logger.info(
`[${requestId}] Successfully registered MCP server: ${body.name} (ID: ${serverId})`
)
logger.info(`[${requestId}] Successfully registered MCP server: ${body.name}`)
// Track MCP server registration
try {
const { trackPlatformEvent } = await import('@/lib/core/telemetry')
trackPlatformEvent('platform.mcp.server_added', {

View File

@@ -4,7 +4,7 @@ import { z } from 'zod'
import { checkHybridAuth } from '@/lib/auth/hybrid'
import { generateInternalToken } from '@/lib/auth/internal'
import { isDev } from '@/lib/core/config/environment'
import { createPinnedUrl, validateUrlWithDNS } from '@/lib/core/security/input-validation'
import { validateProxyUrl } from '@/lib/core/security/input-validation'
import { generateRequestId } from '@/lib/core/utils/request'
import { getBaseUrl } from '@/lib/core/utils/urls'
import { createLogger } from '@/lib/logs/console/logger'
@@ -173,7 +173,7 @@ export async function GET(request: Request) {
return createErrorResponse("Missing 'url' parameter", 400)
}
const urlValidation = await validateUrlWithDNS(targetUrl)
const urlValidation = validateProxyUrl(targetUrl)
if (!urlValidation.isValid) {
logger.warn(`[${requestId}] Blocked proxy request`, {
url: targetUrl.substring(0, 100),
@@ -211,13 +211,11 @@ export async function GET(request: Request) {
logger.info(`[${requestId}] Proxying ${method} request to: ${targetUrl}`)
try {
const pinnedUrl = createPinnedUrl(targetUrl, urlValidation.resolvedIP!)
const response = await fetch(pinnedUrl, {
const response = await fetch(targetUrl, {
method: method,
headers: {
...getProxyHeaders(),
...customHeaders,
Host: urlValidation.originalHostname!,
},
body: body || undefined,
})

View File

@@ -86,16 +86,18 @@ export async function POST(request: Request) {
return NextResponse.json({
success: true,
ts: new Date().toISOString(),
gid: story.gid,
text: story.text || '',
created_at: story.created_at,
created_by: story.created_by
? {
gid: story.created_by.gid,
name: story.created_by.name,
}
: undefined,
output: {
ts: new Date().toISOString(),
gid: story.gid,
text: story.text || '',
created_at: story.created_at,
created_by: story.created_by
? {
gid: story.created_by.gid,
name: story.created_by.name,
}
: undefined,
},
})
} catch (error) {
logger.error('Error processing request:', error)

View File

@@ -99,13 +99,15 @@ export async function POST(request: Request) {
return NextResponse.json({
success: true,
ts: new Date().toISOString(),
gid: task.gid,
name: task.name,
notes: task.notes || '',
completed: task.completed || false,
created_at: task.created_at,
permalink_url: task.permalink_url,
output: {
ts: new Date().toISOString(),
gid: task.gid,
name: task.name,
notes: task.notes || '',
completed: task.completed || false,
created_at: task.created_at,
permalink_url: task.permalink_url,
},
})
} catch (error: any) {
logger.error('Error creating Asana task:', {

View File

@@ -73,12 +73,14 @@ export async function POST(request: Request) {
return NextResponse.json({
success: true,
ts: new Date().toISOString(),
projects: projects.map((project: any) => ({
gid: project.gid,
name: project.name,
resource_type: project.resource_type,
})),
output: {
ts: new Date().toISOString(),
projects: projects.map((project: any) => ({
gid: project.gid,
name: project.name,
resource_type: project.resource_type,
})),
},
})
} catch (error) {
logger.error('Error processing request:', error)

View File

@@ -69,29 +69,31 @@ export async function POST(request: Request) {
return NextResponse.json({
success: true,
ts: new Date().toISOString(),
gid: task.gid,
resource_type: task.resource_type,
resource_subtype: task.resource_subtype,
name: task.name,
notes: task.notes || '',
completed: task.completed || false,
assignee: task.assignee
? {
gid: task.assignee.gid,
name: task.assignee.name,
}
: undefined,
created_by: task.created_by
? {
gid: task.created_by.gid,
resource_type: task.created_by.resource_type,
name: task.created_by.name,
}
: undefined,
due_on: task.due_on || undefined,
created_at: task.created_at,
modified_at: task.modified_at,
output: {
ts: new Date().toISOString(),
gid: task.gid,
resource_type: task.resource_type,
resource_subtype: task.resource_subtype,
name: task.name,
notes: task.notes || '',
completed: task.completed || false,
assignee: task.assignee
? {
gid: task.assignee.gid,
name: task.assignee.name,
}
: undefined,
created_by: task.created_by
? {
gid: task.created_by.gid,
resource_type: task.created_by.resource_type,
name: task.created_by.name,
}
: undefined,
due_on: task.due_on || undefined,
created_at: task.created_at,
modified_at: task.modified_at,
},
})
}
@@ -178,32 +180,34 @@ export async function POST(request: Request) {
return NextResponse.json({
success: true,
ts: new Date().toISOString(),
tasks: tasks.map((task: any) => ({
gid: task.gid,
resource_type: task.resource_type,
resource_subtype: task.resource_subtype,
name: task.name,
notes: task.notes || '',
completed: task.completed || false,
assignee: task.assignee
? {
gid: task.assignee.gid,
name: task.assignee.name,
}
: undefined,
created_by: task.created_by
? {
gid: task.created_by.gid,
resource_type: task.created_by.resource_type,
name: task.created_by.name,
}
: undefined,
due_on: task.due_on || undefined,
created_at: task.created_at,
modified_at: task.modified_at,
})),
next_page: result.next_page,
output: {
ts: new Date().toISOString(),
tasks: tasks.map((task: any) => ({
gid: task.gid,
resource_type: task.resource_type,
resource_subtype: task.resource_subtype,
name: task.name,
notes: task.notes || '',
completed: task.completed || false,
assignee: task.assignee
? {
gid: task.assignee.gid,
name: task.assignee.name,
}
: undefined,
created_by: task.created_by
? {
gid: task.created_by.gid,
resource_type: task.created_by.resource_type,
name: task.created_by.name,
}
: undefined,
due_on: task.due_on || undefined,
created_at: task.created_at,
modified_at: task.modified_at,
})),
next_page: result.next_page,
},
})
} catch (error) {
logger.error('Error processing request:', error)

View File

@@ -96,32 +96,34 @@ export async function POST(request: Request) {
return NextResponse.json({
success: true,
ts: new Date().toISOString(),
tasks: tasks.map((task: any) => ({
gid: task.gid,
resource_type: task.resource_type,
resource_subtype: task.resource_subtype,
name: task.name,
notes: task.notes || '',
completed: task.completed || false,
assignee: task.assignee
? {
gid: task.assignee.gid,
name: task.assignee.name,
}
: undefined,
created_by: task.created_by
? {
gid: task.created_by.gid,
resource_type: task.created_by.resource_type,
name: task.created_by.name,
}
: undefined,
due_on: task.due_on || undefined,
created_at: task.created_at,
modified_at: task.modified_at,
})),
next_page: result.next_page,
output: {
ts: new Date().toISOString(),
tasks: tasks.map((task: any) => ({
gid: task.gid,
resource_type: task.resource_type,
resource_subtype: task.resource_subtype,
name: task.name,
notes: task.notes || '',
completed: task.completed || false,
assignee: task.assignee
? {
gid: task.assignee.gid,
name: task.assignee.name,
}
: undefined,
created_by: task.created_by
? {
gid: task.created_by.gid,
resource_type: task.created_by.resource_type,
name: task.created_by.name,
}
: undefined,
due_on: task.due_on || undefined,
created_at: task.created_at,
modified_at: task.modified_at,
})),
next_page: result.next_page,
},
})
} catch (error) {
logger.error('Error processing request:', error)

View File

@@ -99,12 +99,14 @@ export async function PUT(request: Request) {
return NextResponse.json({
success: true,
ts: new Date().toISOString(),
gid: task.gid,
name: task.name,
notes: task.notes || '',
completed: task.completed || false,
modified_at: task.modified_at,
output: {
ts: new Date().toISOString(),
gid: task.gid,
name: task.name,
notes: task.notes || '',
completed: task.completed || false,
modified_at: task.modified_at,
},
})
} catch (error: any) {
logger.error('Error updating Asana task:', {

View File

@@ -31,16 +31,6 @@ export async function POST(request: Request) {
return NextResponse.json({ error: 'Space ID is required' }, { status: 400 })
}
if (!/^\d+$/.test(String(spaceId))) {
return NextResponse.json(
{
error:
'Invalid Space ID. The Space ID must be a numeric value, not the space key from the URL. Use the "list" operation to get all spaces with their numeric IDs.',
},
{ status: 400 }
)
}
if (!title) {
return NextResponse.json({ error: 'Title is required' }, { status: 400 })
}
@@ -101,24 +91,10 @@ export async function POST(request: Request) {
statusText: response.statusText,
error: JSON.stringify(errorData, null, 2),
})
let errorMessage = `Failed to create Confluence page (${response.status})`
if (errorData?.message) {
errorMessage = errorData.message
} else if (errorData?.errors && Array.isArray(errorData.errors)) {
const firstError = errorData.errors[0]
if (firstError?.title) {
if (firstError.title.includes("'spaceId'") && firstError.title.includes('Long')) {
errorMessage =
'Invalid Space ID. Use the list spaces operation to find valid space IDs.'
} else {
errorMessage = firstError.title
}
} else {
errorMessage = JSON.stringify(errorData.errors)
}
}
const errorMessage =
errorData?.message ||
(errorData?.errors && JSON.stringify(errorData.errors)) ||
`Failed to create Confluence page (${response.status})`
return NextResponse.json({ error: errorMessage }, { status: response.status })
}

View File

@@ -1,135 +0,0 @@
import { type NextRequest, NextResponse } from 'next/server'
import { validateAlphanumericId, validateJiraCloudId } from '@/lib/core/security/input-validation'
import { createLogger } from '@/lib/logs/console/logger'
import { processSingleFileToUserFile } from '@/lib/uploads/utils/file-utils'
import { downloadFileFromStorage } from '@/lib/uploads/utils/file-utils.server'
import { getConfluenceCloudId } from '@/tools/confluence/utils'
const logger = createLogger('ConfluenceUploadAttachmentAPI')
export const dynamic = 'force-dynamic'
export async function POST(request: NextRequest) {
try {
const body = await request.json()
const { domain, accessToken, cloudId: providedCloudId, pageId, file, fileName, comment } = body
if (!domain) {
return NextResponse.json({ error: 'Domain is required' }, { status: 400 })
}
if (!accessToken) {
return NextResponse.json({ error: 'Access token is required' }, { status: 400 })
}
if (!pageId) {
return NextResponse.json({ error: 'Page ID is required' }, { status: 400 })
}
if (!file) {
return NextResponse.json({ error: 'File is required' }, { status: 400 })
}
const pageIdValidation = validateAlphanumericId(pageId, 'pageId', 255)
if (!pageIdValidation.isValid) {
return NextResponse.json({ error: pageIdValidation.error }, { status: 400 })
}
const cloudId = providedCloudId || (await getConfluenceCloudId(domain, accessToken))
const cloudIdValidation = validateJiraCloudId(cloudId, 'cloudId')
if (!cloudIdValidation.isValid) {
return NextResponse.json({ error: cloudIdValidation.error }, { status: 400 })
}
let fileToProcess = file
if (Array.isArray(file)) {
if (file.length === 0) {
return NextResponse.json({ error: 'No file provided' }, { status: 400 })
}
fileToProcess = file[0]
}
let userFile
try {
userFile = processSingleFileToUserFile(fileToProcess, 'confluence-upload', logger)
} catch (error) {
return NextResponse.json(
{ error: error instanceof Error ? error.message : 'Failed to process file' },
{ status: 400 }
)
}
let fileBuffer: Buffer
try {
fileBuffer = await downloadFileFromStorage(userFile, 'confluence-upload', logger)
} catch (error) {
logger.error('Failed to download file from storage:', error)
return NextResponse.json(
{
error: `Failed to download file: ${error instanceof Error ? error.message : 'Unknown error'}`,
},
{ status: 500 }
)
}
const uploadFileName = fileName || userFile.name || 'attachment'
const mimeType = userFile.type || 'application/octet-stream'
const url = `https://api.atlassian.com/ex/confluence/${cloudId}/wiki/rest/api/content/${pageId}/child/attachment`
const formData = new FormData()
const blob = new Blob([new Uint8Array(fileBuffer)], { type: mimeType })
formData.append('file', blob, uploadFileName)
if (comment) {
formData.append('comment', comment)
}
const response = await fetch(url, {
method: 'POST',
headers: {
Authorization: `Bearer ${accessToken}`,
'X-Atlassian-Token': 'nocheck',
},
body: formData,
})
if (!response.ok) {
const errorData = await response.json().catch(() => null)
logger.error('Confluence API error response:', {
status: response.status,
statusText: response.statusText,
error: JSON.stringify(errorData, null, 2),
})
let errorMessage = `Failed to upload attachment to Confluence (${response.status})`
if (errorData?.message) {
errorMessage = errorData.message
} else if (errorData?.errorMessage) {
errorMessage = errorData.errorMessage
}
return NextResponse.json({ error: errorMessage }, { status: response.status })
}
const data = await response.json()
const attachment = data.results?.[0] || data
return NextResponse.json({
attachmentId: attachment.id,
title: attachment.title,
fileSize: attachment.extensions?.fileSize || 0,
mediaType: attachment.extensions?.mediaType || mimeType,
downloadUrl: attachment._links?.download || '',
pageId: pageId,
})
} catch (error) {
logger.error('Error uploading Confluence attachment:', error)
return NextResponse.json(
{ error: (error as Error).message || 'Internal server error' },
{ status: 500 }
)
}
}

View File

@@ -4,10 +4,7 @@ import { z } from 'zod'
import { checkHybridAuth } from '@/lib/auth/hybrid'
import { generateRequestId } from '@/lib/core/utils/request'
import { createLogger } from '@/lib/logs/console/logger'
import {
getExtensionFromMimeType,
processSingleFileToUserFile,
} from '@/lib/uploads/utils/file-utils'
import { processSingleFileToUserFile } from '@/lib/uploads/utils/file-utils'
import { downloadFileFromStorage } from '@/lib/uploads/utils/file-utils.server'
import { normalizeExcelValues } from '@/tools/onedrive/utils'
@@ -30,8 +27,9 @@ const OneDriveUploadSchema = z.object({
fileName: z.string().min(1, 'File name is required'),
file: z.any().optional(), // UserFile object (optional for blank Excel creation)
folderId: z.string().optional().nullable(),
mimeType: z.string().nullish(), // Accept string, null, or undefined
values: ExcelValuesSchema.optional().nullable(),
mimeType: z.string().optional(),
// Optional Excel write-after-create inputs
values: ExcelValuesSchema.optional(),
})
export async function POST(request: NextRequest) {
@@ -151,17 +149,9 @@ export async function POST(request: NextRequest) {
)
}
// Ensure file name has an appropriate extension
// Ensure file name has correct extension for Excel files
let fileName = validatedData.fileName
const hasExtension = fileName.includes('.') && fileName.lastIndexOf('.') > 0
if (!hasExtension) {
const extension = getExtensionFromMimeType(mimeType)
if (extension) {
fileName = `${fileName}.${extension}`
logger.info(`[${requestId}] Added extension to filename: ${fileName}`)
}
} else if (isExcelCreation && !fileName.endsWith('.xlsx')) {
if (isExcelCreation && !fileName.endsWith('.xlsx')) {
fileName = `${fileName.replace(/\.[^.]*$/, '')}.xlsx`
}

View File

@@ -33,10 +33,9 @@ export async function executeQuery(
params: unknown[] = []
): Promise<{ rows: unknown[]; rowCount: number }> {
const result = await sql.unsafe(query, params)
const rowCount = result.count ?? result.length ?? 0
return {
rows: Array.isArray(result) ? result : [result],
rowCount,
rowCount: Array.isArray(result) ? result.length : result ? 1 : 0,
}
}
@@ -108,10 +107,9 @@ export async function executeInsert(
const query = `INSERT INTO ${sanitizedTable} (${sanitizedColumns.join(', ')}) VALUES (${placeholders.join(', ')}) RETURNING *`
const result = await sql.unsafe(query, values)
const rowCount = result.count ?? result.length ?? 0
return {
rows: Array.isArray(result) ? result : [result],
rowCount,
rowCount: Array.isArray(result) ? result.length : result ? 1 : 0,
}
}
@@ -132,10 +130,9 @@ export async function executeUpdate(
const query = `UPDATE ${sanitizedTable} SET ${setClause} WHERE ${where} RETURNING *`
const result = await sql.unsafe(query, values)
const rowCount = result.count ?? result.length ?? 0
return {
rows: Array.isArray(result) ? result : [result],
rowCount,
rowCount: Array.isArray(result) ? result.length : result ? 1 : 0,
}
}
@@ -150,9 +147,8 @@ export async function executeDelete(
const query = `DELETE FROM ${sanitizedTable} WHERE ${where} RETURNING *`
const result = await sql.unsafe(query, [])
const rowCount = result.count ?? result.length ?? 0
return {
rows: Array.isArray(result) ? result : [result],
rowCount,
rowCount: Array.isArray(result) ? result.length : result ? 1 : 0,
}
}

View File

@@ -1,70 +0,0 @@
import { randomUUID } from 'crypto'
import { type NextRequest, NextResponse } from 'next/server'
import { z } from 'zod'
import { createLogger } from '@/lib/logs/console/logger'
import { createSqsClient, sendMessage } from '../utils'
const logger = createLogger('SQSSendMessageAPI')
const SendMessageSchema = z.object({
region: z.string().min(1, 'AWS region is required'),
accessKeyId: z.string().min(1, 'AWS access key ID is required'),
secretAccessKey: z.string().min(1, 'AWS secret access key is required'),
queueUrl: z.string().min(1, 'Queue URL is required'),
messageGroupId: z.string().nullish(),
messageDeduplicationId: z.string().nullish(),
data: z.record(z.unknown()).refine((obj) => Object.keys(obj).length > 0, {
message: 'Data object must have at least one field',
}),
})
export async function POST(request: NextRequest) {
const requestId = randomUUID().slice(0, 8)
try {
const body = await request.json()
const params = SendMessageSchema.parse(body)
logger.info(`[${requestId}] Sending message to SQS queue ${params.queueUrl}`)
const client = createSqsClient({
region: params.region,
accessKeyId: params.accessKeyId,
secretAccessKey: params.secretAccessKey,
})
try {
const result = await sendMessage(
client,
params.queueUrl,
params.data,
params.messageGroupId,
params.messageDeduplicationId
)
logger.info(`[${requestId}] Message sent to SQS queue ${params.queueUrl}`)
return NextResponse.json({
message: `Message sent to SQS queue ${params.queueUrl}`,
id: result?.id,
})
} finally {
client.destroy()
}
} catch (error) {
if (error instanceof z.ZodError) {
logger.warn(`[${requestId}] Invalid request data`, {
errors: error.errors,
})
return NextResponse.json(
{ error: 'Invalid request data', details: error.errors },
{ status: 400 }
)
}
const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred'
logger.error(`[${requestId}] SQS send message failed:`, error)
return NextResponse.json({ error: `SQS send message failed: ${errorMessage}` }, { status: 500 })
}
}

View File

@@ -1,40 +0,0 @@
import { SendMessageCommand, type SendMessageCommandOutput, SQSClient } from '@aws-sdk/client-sqs'
import type { SqsConnectionConfig } from '@/tools/sqs/types'
export function createSqsClient(config: SqsConnectionConfig): SQSClient {
return new SQSClient({
region: config.region,
credentials: {
accessKeyId: config.accessKeyId,
secretAccessKey: config.secretAccessKey,
},
})
}
export async function sendMessage(
client: SQSClient,
queueUrl: string,
data: Record<string, unknown>,
messageGroupId?: string | null,
messageDeduplicationId?: string | null
): Promise<Record<string, unknown> | null> {
const command = new SendMessageCommand({
QueueUrl: queueUrl,
MessageBody: JSON.stringify(data),
MessageGroupId: messageGroupId ?? undefined,
...(messageDeduplicationId ? { MessageDeduplicationId: messageDeduplicationId } : {}),
})
const response = await client.send(command)
return parseSendMessageResponse(response)
}
function parseSendMessageResponse(
response: SendMessageCommandOutput
): Record<string, unknown> | null {
if (!response) {
return null
}
return { id: response.MessageId }
}

View File

@@ -496,7 +496,7 @@ export async function POST(request: NextRequest) {
verbose: 1,
logger: (msg) => logger.info(typeof msg === 'string' ? msg : JSON.stringify(msg)),
model: {
modelName: 'anthropic/claude-3-7-sonnet-latest',
modelName: 'claude-sonnet-4-20250514',
apiKey: apiKey,
},
})
@@ -704,14 +704,7 @@ The system will substitute actual values when these placeholders are used, keepi
`.trim()
const agent = stagehand.agent({
model: {
modelName: 'anthropic/claude-3-7-sonnet-latest',
apiKey: apiKey,
},
executionModel: {
modelName: 'anthropic/claude-3-7-sonnet-latest',
apiKey: apiKey,
},
model: 'anthropic/claude-sonnet-4-20250514',
systemPrompt: `${agentInstructions}\n\n${additionalContext}`,
})
@@ -802,9 +795,6 @@ The system will substitute actual values when these placeholders are used, keepi
})
let structuredOutput = null
const hasOutputSchema =
outputSchema && typeof outputSchema === 'object' && outputSchema !== null
if (agentResult.message) {
try {
let jsonContent = agentResult.message
@@ -817,31 +807,33 @@ The system will substitute actual values when these placeholders are used, keepi
structuredOutput = JSON.parse(jsonContent)
logger.info('Successfully parsed structured output from agent response')
} catch (parseError) {
if (hasOutputSchema) {
logger.warn('Failed to parse JSON from agent message, attempting fallback extraction', {
error: parseError,
})
logger.error('Failed to parse JSON from agent message', {
error: parseError,
message: agentResult.message,
})
if (stagehand) {
try {
logger.info('Attempting to extract structured data using Stagehand extract')
const schemaObj = getSchemaObject(outputSchema)
const zodSchema = ensureZodObject(logger, schemaObj)
if (
outputSchema &&
typeof outputSchema === 'object' &&
outputSchema !== null &&
stagehand
) {
try {
logger.info('Attempting to extract structured data using Stagehand extract')
const schemaObj = getSchemaObject(outputSchema)
const zodSchema = ensureZodObject(logger, schemaObj)
structuredOutput = await stagehand.extract(
'Extract the requested information from this page according to the schema',
zodSchema
)
structuredOutput = await stagehand.extract(
'Extract the requested information from this page according to the schema',
zodSchema
)
logger.info('Successfully extracted structured data as fallback', {
keys: structuredOutput ? Object.keys(structuredOutput) : [],
})
} catch (extractError) {
logger.error('Fallback extraction also failed', { error: extractError })
}
logger.info('Successfully extracted structured data as fallback', {
keys: structuredOutput ? Object.keys(structuredOutput) : [],
})
} catch (extractError) {
logger.error('Fallback extraction also failed', { error: extractError })
}
} else {
logger.info('Agent returned plain text response (no schema provided)')
}
}
}

View File

@@ -86,7 +86,7 @@ export async function POST(request: NextRequest) {
verbose: 1,
logger: (msg) => logger.info(typeof msg === 'string' ? msg : JSON.stringify(msg)),
model: {
modelName: 'openai/gpt-4o',
modelName: 'gpt-4o',
apiKey: apiKey,
},
})

View File

@@ -466,7 +466,7 @@ export function KnowledgeBase({
*/
const checkForDeadProcesses = async () => {
const now = new Date()
const DEAD_PROCESS_THRESHOLD_MS = 600 * 1000 // 10 minutes
const DEAD_PROCESS_THRESHOLD_MS = 150 * 1000
const staleDocuments = documents.filter((doc) => {
if (doc.processingStatus !== 'processing' || !doc.processingStartedAt) {
@@ -928,22 +928,9 @@ export function KnowledgeBase({
Tags
</Button>
)}
<Tooltip.Root>
<Tooltip.Trigger asChild>
<Button
onClick={() => setShowDeleteDialog(true)}
disabled={!userPermissions.canEdit}
className='h-[32px] rounded-[6px]'
>
<Trash className='h-[14px] w-[14px]' />
</Button>
</Tooltip.Trigger>
{!userPermissions.canEdit && (
<Tooltip.Content>
Write permission required to delete knowledge base
</Tooltip.Content>
)}
</Tooltip.Root>
<Button onClick={() => setShowDeleteDialog(true)} className='h-[32px] rounded-[6px]'>
<Trash className='h-[14px] w-[14px]' />
</Button>
</div>
</div>
@@ -953,7 +940,7 @@ export function KnowledgeBase({
</p>
)}
<div className='mt-[16px] flex items-center gap-[8px]'>
<div className='mt-[12px] flex items-center gap-[8px]'>
<span className='text-[14px] text-[var(--text-muted)]'>
{pagination.total} {pagination.total === 1 ? 'document' : 'documents'}
</span>

View File

@@ -1,7 +1,7 @@
'use client'
import { useEffect, useRef, useState } from 'react'
import { Loader2, RotateCcw, X } from 'lucide-react'
import { AlertCircle, Loader2, RotateCcw, X } from 'lucide-react'
import { useParams } from 'next/navigation'
import {
Button,
@@ -283,11 +283,11 @@ export function AddDocumentsModal({
return (
<div
key={index}
className={cn(
'flex items-center gap-2 rounded-[4px] border p-[8px]',
isFailed && !isRetrying && 'border-[var(--text-error)]'
)}
className='flex items-center gap-2 rounded-[4px] border p-[8px]'
>
{isFailed && !isRetrying && (
<AlertCircle className='h-4 w-4 flex-shrink-0 text-[var(--text-error)]' />
)}
<span
className={cn(
'min-w-0 flex-1 truncate text-[12px]',
@@ -301,31 +301,29 @@ export function AddDocumentsModal({
{formatFileSize(file.size)}
</span>
<div className='flex flex-shrink-0 items-center gap-1'>
{isFailed && !isRetrying && (
<Button
type='button'
variant='ghost'
className='h-4 w-4 p-0 text-[var(--text-muted)] hover:text-[var(--text-primary)]'
onClick={() => handleRetryFile(index)}
disabled={isUploading}
>
<RotateCcw className='h-3.5 w-3.5' />
</Button>
)}
{isProcessing ? (
<Loader2 className='h-4 w-4 animate-spin text-[var(--text-muted)]' />
) : (
<>
{isFailed && (
<Button
type='button'
variant='ghost'
className='h-4 w-4 p-0'
onClick={() => handleRetryFile(index)}
disabled={isUploading}
>
<RotateCcw className='h-3 w-3' />
</Button>
)}
<Button
type='button'
variant='ghost'
className='h-4 w-4 p-0'
onClick={() => removeFile(index)}
disabled={isUploading}
>
<X className='h-3.5 w-3.5' />
</Button>
</>
<Button
type='button'
variant='ghost'
className='h-4 w-4 p-0'
onClick={() => removeFile(index)}
disabled={isUploading}
>
<X className='h-3.5 w-3.5' />
</Button>
)}
</div>
</div>
@@ -338,34 +336,30 @@ export function AddDocumentsModal({
</div>
</ModalBody>
<ModalFooter>
<div className='flex w-full items-center justify-between gap-[12px]'>
{uploadError ? (
<p className='min-w-0 flex-1 truncate text-[11px] text-[var(--text-error)] leading-tight'>
{uploadError.message}
</p>
) : (
<div />
)}
<div className='flex flex-shrink-0 gap-[8px]'>
<Button variant='default' onClick={handleClose} type='button' disabled={isUploading}>
Cancel
</Button>
<Button
variant='primary'
type='button'
onClick={handleUpload}
disabled={files.length === 0 || isUploading}
>
{isUploading
? uploadProgress.stage === 'uploading'
? `Uploading ${uploadProgress.filesCompleted}/${uploadProgress.totalFiles}...`
: uploadProgress.stage === 'processing'
? 'Processing...'
: 'Uploading...'
: 'Upload'}
</Button>
</div>
<ModalFooter className='flex-col items-stretch gap-[12px]'>
{uploadError && (
<p className='text-[11px] text-[var(--text-error)] leading-tight'>
{uploadError.message}
</p>
)}
<div className='flex justify-end gap-[8px]'>
<Button variant='default' onClick={handleClose} type='button' disabled={isUploading}>
Cancel
</Button>
<Button
variant='primary'
type='button'
onClick={handleUpload}
disabled={files.length === 0 || isUploading}
>
{isUploading
? uploadProgress.stage === 'uploading'
? `Uploading ${uploadProgress.filesCompleted}/${uploadProgress.totalFiles}...`
: uploadProgress.stage === 'processing'
? 'Processing...'
: 'Uploading...'
: 'Upload'}
</Button>
</div>
</ModalFooter>
</ModalContent>

View File

@@ -2,7 +2,7 @@
import { useEffect, useRef, useState } from 'react'
import { zodResolver } from '@hookform/resolvers/zod'
import { Loader2, RotateCcw, X } from 'lucide-react'
import { AlertCircle, Loader2, RotateCcw, X } from 'lucide-react'
import { useParams } from 'next/navigation'
import { useForm } from 'react-hook-form'
import { z } from 'zod'
@@ -449,11 +449,11 @@ export function CreateBaseModal({
return (
<div
key={index}
className={cn(
'flex items-center gap-2 rounded-[4px] border p-[8px]',
isFailed && !isRetrying && 'border-[var(--text-error)]'
)}
className='flex items-center gap-2 rounded-[4px] border p-[8px]'
>
{isFailed && !isRetrying && (
<AlertCircle className='h-4 w-4 flex-shrink-0 text-[var(--text-error)]' />
)}
<span
className={cn(
'min-w-0 flex-1 truncate text-[12px]',
@@ -467,34 +467,32 @@ export function CreateBaseModal({
{formatFileSize(file.size)}
</span>
<div className='flex flex-shrink-0 items-center gap-1'>
{isFailed && !isRetrying && (
<Button
type='button'
variant='ghost'
className='h-4 w-4 p-0 text-[var(--text-muted)] hover:text-[var(--text-primary)]'
onClick={() => {
setRetryingIndexes((prev) => new Set(prev).add(index))
removeFile(index)
}}
disabled={isUploading}
>
<RotateCcw className='h-3.5 w-3.5' />
</Button>
)}
{isProcessing ? (
<Loader2 className='h-4 w-4 animate-spin text-[var(--text-muted)]' />
) : (
<>
{isFailed && (
<Button
type='button'
variant='ghost'
className='h-4 w-4 p-0'
onClick={() => {
setRetryingIndexes((prev) => new Set(prev).add(index))
removeFile(index)
}}
disabled={isUploading}
>
<RotateCcw className='h-3 w-3' />
</Button>
)}
<Button
type='button'
variant='ghost'
className='h-4 w-4 p-0'
onClick={() => removeFile(index)}
disabled={isUploading}
>
<X className='h-3.5 w-3.5' />
</Button>
</>
<Button
type='button'
variant='ghost'
className='h-4 w-4 p-0'
onClick={() => removeFile(index)}
disabled={isUploading}
>
<X className='h-3.5 w-3.5' />
</Button>
)}
</div>
</div>
@@ -511,40 +509,32 @@ export function CreateBaseModal({
</div>
</ModalBody>
<ModalFooter>
<div className='flex w-full items-center justify-between gap-[12px]'>
{submitStatus?.type === 'error' || uploadError ? (
<p className='min-w-0 flex-1 truncate text-[11px] text-[var(--text-error)] leading-tight'>
{uploadError?.message || submitStatus?.message}
</p>
) : (
<div />
)}
<div className='flex flex-shrink-0 gap-[8px]'>
<Button
variant='default'
onClick={() => handleClose(false)}
type='button'
disabled={isSubmitting}
>
Cancel
</Button>
<Button
variant='primary'
type='submit'
disabled={isSubmitting || !nameValue?.trim()}
>
{isSubmitting
? isUploading
? uploadProgress.stage === 'uploading'
? `Uploading ${uploadProgress.filesCompleted}/${uploadProgress.totalFiles}...`
: uploadProgress.stage === 'processing'
? 'Processing...'
: 'Creating...'
: 'Creating...'
: 'Create'}
</Button>
</div>
<ModalFooter className='flex-col items-stretch gap-[12px]'>
{(submitStatus?.type === 'error' || uploadError) && (
<p className='text-[11px] text-[var(--text-error)] leading-tight'>
{uploadError?.message || submitStatus?.message}
</p>
)}
<div className='flex justify-end gap-[8px]'>
<Button
variant='default'
onClick={() => handleClose(false)}
type='button'
disabled={isSubmitting}
>
Cancel
</Button>
<Button variant='primary' type='submit' disabled={isSubmitting || !nameValue?.trim()}>
{isSubmitting
? isUploading
? uploadProgress.stage === 'uploading'
? `Uploading ${uploadProgress.filesCompleted}/${uploadProgress.totalFiles}...`
: uploadProgress.stage === 'processing'
? 'Processing...'
: 'Creating...'
: 'Creating...'
: 'Create'}
</Button>
</div>
</ModalFooter>
</form>

View File

@@ -1,8 +1,4 @@
import type React from 'react'
import {
SUPPORTED_AUDIO_EXTENSIONS,
SUPPORTED_VIDEO_EXTENSIONS,
} from '@/lib/uploads/utils/validation'
interface IconProps {
className?: string
@@ -227,19 +223,13 @@ export const DefaultFileIcon: React.FC<IconProps> = ({ className = 'w-6 h-6' })
export function getDocumentIcon(mimeType: string, filename: string): React.FC<IconProps> {
const extension = filename.split('.').pop()?.toLowerCase()
if (
mimeType.startsWith('audio/') ||
(extension &&
SUPPORTED_AUDIO_EXTENSIONS.includes(extension as (typeof SUPPORTED_AUDIO_EXTENSIONS)[number]))
) {
const audioExtensions = ['mp3', 'm4a', 'wav', 'webm', 'ogg', 'flac', 'aac', 'opus']
if (mimeType.startsWith('audio/') || (extension && audioExtensions.includes(extension))) {
return AudioIcon
}
if (
mimeType.startsWith('video/') ||
(extension &&
SUPPORTED_VIDEO_EXTENSIONS.includes(extension as (typeof SUPPORTED_VIDEO_EXTENSIONS)[number]))
) {
const videoExtensions = ['mp4', 'mov', 'avi', 'mkv']
if (mimeType.startsWith('video/') || (extension && videoExtensions.includes(extension))) {
return VideoIcon
}

View File

@@ -423,10 +423,6 @@ export function useKnowledgeUpload(options: UseKnowledgeUploadOptions = {}) {
return await uploadFileInChunks(file, presignedData, timeoutMs, fileIndex)
}
if (presignedOverride?.directUploadSupported && presignedOverride.presignedUrl) {
return await uploadFileDirectly(file, presignedOverride, timeoutMs, controller, fileIndex)
}
return await uploadFileThroughAPI(file, timeoutMs)
} finally {
clearTimeout(timeoutId)
@@ -514,6 +510,7 @@ export function useKnowledgeUpload(options: UseKnowledgeUploadOptions = {}) {
if (event.lengthComputable && fileIndex !== undefined && !isCompleted) {
const percentComplete = Math.round((event.loaded / event.total) * 100)
setUploadProgress((prev) => {
// Only update if this file is still uploading
if (prev.fileStatuses?.[fileIndex]?.status === 'uploading') {
return {
...prev,
@@ -641,6 +638,7 @@ export function useKnowledgeUpload(options: UseKnowledgeUploadOptions = {}) {
})
if (!partUrlsResponse.ok) {
// Abort the multipart upload if we can't get URLs
await fetch('/api/files/multipart?action=abort', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
@@ -824,6 +822,9 @@ export function useKnowledgeUpload(options: UseKnowledgeUploadOptions = {}) {
}
}
/**
* Upload files using batch presigned URLs (works for both S3 and Azure Blob)
*/
/**
* Uploads files in batches using presigned URLs
*/

View File

@@ -206,30 +206,7 @@ const generateOutputPaths = (outputs: Record<string, any>, prefix = ''): string[
paths.push(currentPath)
} else if (typeof value === 'object' && value !== null) {
if ('type' in value && typeof value.type === 'string') {
const hasNestedProperties =
(value.type === 'object' && value.properties) ||
(value.type === 'array' && value.items?.properties) ||
(value.type === 'array' &&
value.items &&
typeof value.items === 'object' &&
!('type' in value.items))
if (!hasNestedProperties) {
paths.push(currentPath)
}
if (value.type === 'object' && value.properties) {
paths.push(...generateOutputPaths(value.properties, currentPath))
} else if (value.type === 'array' && value.items?.properties) {
paths.push(...generateOutputPaths(value.items.properties, currentPath))
} else if (
value.type === 'array' &&
value.items &&
typeof value.items === 'object' &&
!('type' in value.items)
) {
paths.push(...generateOutputPaths(value.items, currentPath))
}
paths.push(currentPath)
} else {
const subPaths = generateOutputPaths(value, currentPath)
paths.push(...subPaths)

View File

@@ -70,7 +70,7 @@ const edgeTypes: EdgeTypes = {
// Memoized ReactFlow props to prevent unnecessary re-renders
const defaultEdgeOptions = { type: 'custom' }
const snapGrid: [number, number] = [50, 50]
const snapGrid: [number, number] = [20, 20]
const reactFlowFitViewOptions = { padding: 0.6 } as const
const reactFlowProOptions = { hideAttribution: true } as const
@@ -134,9 +134,6 @@ const WorkflowContent = React.memo(() => {
// Get copilot cleanup function
const copilotCleanup = useCopilotStore((state) => state.cleanup)
// Get snap to grid setting
const isSnapToGridEnabled = useGeneralStore((state) => state.isSnapToGridEnabled)
// Handle copilot stream cleanup on page unload and component unmount
useStreamCleanup(copilotCleanup)
@@ -2297,7 +2294,7 @@ const WorkflowContent = React.memo(() => {
onNodeDrag={effectivePermissions.canEdit ? onNodeDrag : undefined}
onNodeDragStop={effectivePermissions.canEdit ? onNodeDragStop : undefined}
onNodeDragStart={effectivePermissions.canEdit ? onNodeDragStart : undefined}
snapToGrid={isSnapToGridEnabled}
snapToGrid={false}
snapGrid={snapGrid}
elevateEdgesOnSelect={true}
// Performance optimizations

View File

@@ -10,7 +10,6 @@ import { useBrandConfig } from '@/lib/branding/branding'
import { cn } from '@/lib/core/utils/cn'
import { getTriggersForSidebar, hasTriggerCapability } from '@/lib/workflows/triggers/trigger-utils'
import { searchItems } from '@/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/search-utils'
import { SIDEBAR_SCROLL_EVENT } from '@/app/workspace/[workspaceId]/w/components/sidebar/sidebar'
import { getAllBlocks } from '@/blocks'
interface SearchModalProps {
@@ -431,12 +430,6 @@ export function SearchModal({
window.open(item.href, '_blank', 'noopener,noreferrer')
} else {
router.push(item.href)
// Scroll to the workflow in the sidebar after navigation
if (item.type === 'workflow') {
window.dispatchEvent(
new CustomEvent(SIDEBAR_SCROLL_EVENT, { detail: { itemId: item.id } })
)
}
}
}
break

View File

@@ -352,48 +352,13 @@ export function EnvironmentVariables({ registerBeforeLeaveHandler }: Environment
}, [])
const parseEnvVarLine = useCallback((line: string): UIEnvironmentVariable | null => {
const trimmed = line.trim()
if (!trimmed || trimmed.startsWith('#')) return null
const withoutExport = trimmed.replace(/^export\s+/, '')
const equalIndex = withoutExport.indexOf('=')
const equalIndex = line.indexOf('=')
if (equalIndex === -1 || equalIndex === 0) return null
const potentialKey = withoutExport.substring(0, equalIndex).trim()
const potentialKey = line.substring(0, equalIndex).trim()
if (!ENV_VAR_PATTERN.test(potentialKey)) return null
let value = withoutExport.substring(equalIndex + 1)
const looksLikeBase64Key = /^[A-Za-z0-9+/]+$/.test(potentialKey) && !potentialKey.includes('_')
const valueIsJustPadding = /^=+$/.test(value.trim())
if (looksLikeBase64Key && valueIsJustPadding && potentialKey.length > 20) {
return null
}
const trimmedValue = value.trim()
if (
!trimmedValue.startsWith('"') &&
!trimmedValue.startsWith("'") &&
!trimmedValue.startsWith('`')
) {
const commentIndex = value.search(/\s#/)
if (commentIndex !== -1) {
value = value.substring(0, commentIndex)
}
}
value = value.trim()
if (
(value.startsWith('"') && value.endsWith('"')) ||
(value.startsWith("'") && value.endsWith("'")) ||
(value.startsWith('`') && value.endsWith('`'))
) {
value = value.slice(1, -1)
}
const value = line.substring(equalIndex + 1).trim()
return { key: potentialKey, value, id: generateRowId() }
}, [])

View File

@@ -24,7 +24,6 @@ import { useProfilePictureUpload } from '@/app/workspace/[workspaceId]/w/compone
import { useGeneralSettings, useUpdateGeneralSetting } from '@/hooks/queries/general-settings'
import { useUpdateUserProfile, useUserProfile } from '@/hooks/queries/user-profile'
import { clearUserData } from '@/stores'
import { useGeneralStore } from '@/stores/settings/general/store'
const logger = createLogger('General')
@@ -57,9 +56,6 @@ export function General({ onOpenChange }: GeneralProps) {
const { data: settings, isLoading: isSettingsLoading } = useGeneralSettings()
const updateSetting = useUpdateGeneralSetting()
const isSnapToGridEnabled = useGeneralStore((state) => state.isSnapToGridEnabled)
const setSettings = useGeneralStore((state) => state.setSettings)
const isLoading = isProfileLoading || isSettingsLoading
const isTrainingEnabled = isTruthy(getEnv('NEXT_PUBLIC_COPILOT_TRAINING_ENABLED'))
@@ -236,10 +232,6 @@ export function General({ onOpenChange }: GeneralProps) {
}
}
const handleSnapToGridChange = (checked: boolean) => {
setSettings({ isSnapToGridEnabled: checked })
}
const handleTrainingControlsChange = async (checked: boolean) => {
if (checked !== settings?.showTrainingControls && !updateSetting.isPending) {
await updateSetting.mutateAsync({ key: 'showTrainingControls', value: checked })
@@ -420,15 +412,6 @@ export function General({ onOpenChange }: GeneralProps) {
/>
</div>
<div className='flex items-center justify-between'>
<Label htmlFor='snap-to-grid'>Snap to grid</Label>
<Switch
id='snap-to-grid'
checked={isSnapToGridEnabled}
onCheckedChange={handleSnapToGridChange}
/>
</div>
<div className='flex items-center justify-between'>
<Label htmlFor='error-notifications'>Run error notifications</Label>
<Switch

View File

@@ -20,7 +20,6 @@ import {
useDeleteMcpServer,
useMcpServers,
useMcpToolsQuery,
useRefreshMcpServer,
} from '@/hooks/queries/mcp'
import { useMcpServerTest } from '@/hooks/use-mcp-server-test'
import type { InputFieldType, McpServerFormData, McpServerTestResult } from './components'
@@ -90,24 +89,27 @@ export function MCP() {
} = useMcpToolsQuery(workspaceId)
const createServerMutation = useCreateMcpServer()
const deleteServerMutation = useDeleteMcpServer()
const refreshServerMutation = useRefreshMcpServer()
const { testResult, isTestingConnection, testConnection, clearTestResult } = useMcpServerTest()
const urlInputRef = useRef<HTMLInputElement>(null)
// Form state
const [showAddForm, setShowAddForm] = useState(false)
const [formData, setFormData] = useState<McpServerFormData>(DEFAULT_FORM_DATA)
const [isAddingServer, setIsAddingServer] = useState(false)
// Search and filtering state
const [searchTerm, setSearchTerm] = useState('')
const [deletingServers, setDeletingServers] = useState<Set<string>>(new Set())
// Delete confirmation dialog state
const [showDeleteDialog, setShowDeleteDialog] = useState(false)
const [serverToDelete, setServerToDelete] = useState<{ id: string; name: string } | null>(null)
// Server details view state
const [selectedServerId, setSelectedServerId] = useState<string | null>(null)
const [refreshStatus, setRefreshStatus] = useState<'idle' | 'refreshing' | 'refreshed'>('idle')
// Environment variable dropdown state
const [showEnvVars, setShowEnvVars] = useState(false)
const [envSearchTerm, setEnvSearchTerm] = useState('')
const [cursorPosition, setCursorPosition] = useState(0)
@@ -253,6 +255,7 @@ export function MCP() {
workspaceId,
}
// Test connection if not already tested
if (!testResult) {
const result = await testConnection(serverConfig)
if (!result.success) return
@@ -393,25 +396,6 @@ export function MCP() {
setSelectedServerId(null)
}, [])
/**
* Refreshes a server's tools by re-discovering them from the MCP server.
*/
const handleRefreshServer = useCallback(
async (serverId: string) => {
try {
setRefreshStatus('refreshing')
await refreshServerMutation.mutateAsync({ workspaceId, serverId })
logger.info(`Refreshed MCP server: ${serverId}`)
setRefreshStatus('refreshed')
setTimeout(() => setRefreshStatus('idle'), 2000)
} catch (error) {
logger.error('Failed to refresh MCP server:', error)
setRefreshStatus('idle')
}
},
[refreshServerMutation, workspaceId]
)
/**
* Gets the selected server and its tools for the detail view.
*/
@@ -428,10 +412,12 @@ export function MCP() {
const showEmptyState = !hasServers && !showAddForm
const showNoResults = searchTerm.trim() && filteredServers.length === 0 && servers.length > 0
// Form validation state
const isFormValid = formData.name.trim() && formData.url?.trim()
const isSubmitDisabled = serversLoading || isAddingServer || !isFormValid
const testButtonLabel = getTestButtonLabel(testResult, isTestingConnection)
// Show detail view if a server is selected
if (selectedServer) {
const { server, tools } = selectedServer
const transportLabel = formatTransportLabel(server.transport || 'http')
@@ -492,18 +478,7 @@ export function MCP() {
</div>
</div>
<div className='mt-auto flex items-center justify-between'>
<Button
onClick={() => handleRefreshServer(server.id)}
variant='default'
disabled={refreshStatus !== 'idle'}
>
{refreshStatus === 'refreshing'
? 'Refreshing...'
: refreshStatus === 'refreshed'
? 'Refreshed'
: 'Refresh Tools'}
</Button>
<div className='mt-auto flex items-center justify-end'>
<Button
onClick={handleBackToList}
variant='primary'

View File

@@ -14,7 +14,6 @@ import {
useItemDrag,
useItemRename,
} from '@/app/workspace/[workspaceId]/w/components/sidebar/hooks'
import { SIDEBAR_SCROLL_EVENT } from '@/app/workspace/[workspaceId]/w/components/sidebar/sidebar'
import { useDeleteFolder, useDuplicateFolder } from '@/app/workspace/[workspaceId]/w/hooks'
import { useCreateFolder, useUpdateFolder } from '@/hooks/queries/folders'
import { useCreateWorkflow } from '@/hooks/queries/workflows'
@@ -88,10 +87,6 @@ export function FolderItem({ folder, level, hoverHandlers }: FolderItemProps) {
if (result.id) {
router.push(`/workspace/${workspaceId}/w/${result.id}`)
// Scroll to the newly created workflow
window.dispatchEvent(
new CustomEvent(SIDEBAR_SCROLL_EVENT, { detail: { itemId: result.id } })
)
}
} catch (error) {
// Error already handled by mutation's onError callback
@@ -105,17 +100,11 @@ export function FolderItem({ folder, level, hoverHandlers }: FolderItemProps) {
*/
const handleCreateFolderInFolder = useCallback(async () => {
try {
const result = await createFolderMutation.mutateAsync({
await createFolderMutation.mutateAsync({
workspaceId,
name: 'New Folder',
parentId: folder.id,
})
if (result.id) {
// Scroll to the newly created folder
window.dispatchEvent(
new CustomEvent(SIDEBAR_SCROLL_EVENT, { detail: { itemId: result.id } })
)
}
} catch (error) {
logger.error('Failed to create folder:', error)
}

View File

@@ -1,6 +1,6 @@
'use client'
import { useCallback, useEffect, useMemo } from 'react'
import { useCallback, useEffect, useMemo, useRef } from 'react'
import clsx from 'clsx'
import { useParams, usePathname } from 'next/navigation'
import { FolderItem } from '@/app/workspace/[workspaceId]/w/components/sidebar/components/workflow-list/components/folder-item/folder-item'
@@ -144,8 +144,11 @@ export function WorkflowList({
[pathname, workspaceId]
)
// Track last scrolled workflow to avoid redundant scroll checks
const lastScrolledWorkflowRef = useRef<string | null>(null)
/**
* Auto-expand folders and select active workflow.
* Auto-expand folders, select active workflow, and scroll into view if needed.
*/
useEffect(() => {
if (!workflowId || isLoading || foldersLoading) return
@@ -161,6 +164,25 @@ export function WorkflowList({
if (!selectedWorkflows.has(workflowId)) {
selectOnly(workflowId)
}
// Skip scroll check if already handled for this workflow
if (lastScrolledWorkflowRef.current === workflowId) return
lastScrolledWorkflowRef.current = workflowId
// Scroll after render only if element is completely off-screen
requestAnimationFrame(() => {
const element = document.querySelector(`[data-item-id="${workflowId}"]`)
const container = scrollContainerRef.current
if (!element || !container) return
const { top: elTop, bottom: elBottom } = element.getBoundingClientRect()
const { top: ctTop, bottom: ctBottom } = container.getBoundingClientRect()
// Only scroll if completely above or below the visible area
if (elBottom <= ctTop || elTop >= ctBottom) {
element.scrollIntoView({ behavior: 'smooth', block: 'center' })
}
})
}, [workflowId, activeWorkflowFolderId, isLoading, foldersLoading, getFolderPath, setExpanded])
const renderWorkflowItem = useCallback(

View File

@@ -34,13 +34,9 @@ import { useSearchModalStore } from '@/stores/search-modal/store'
import { MIN_SIDEBAR_WIDTH, useSidebarStore } from '@/stores/sidebar/store'
const logger = createLogger('Sidebar')
/** Feature flag for billing usage indicator visibility */
// Feature flag: Billing usage indicator visibility (matches legacy sidebar behavior)
const isBillingEnabled = isTruthy(getEnv('NEXT_PUBLIC_BILLING_ENABLED'))
/** Event name for sidebar scroll operations - centralized for consistency */
export const SIDEBAR_SCROLL_EVENT = 'sidebar-scroll-to-item'
/**
* Sidebar component with resizable width that persists across page refreshes.
*
@@ -64,79 +60,63 @@ export function Sidebar() {
const fileInputRef = useRef<HTMLInputElement>(null)
const scrollContainerRef = useRef<HTMLDivElement>(null)
// Session data
const { data: sessionData, isPending: sessionLoading } = useSession()
/**
* Sidebar state from store with hydration tracking to prevent SSR mismatch.
* Uses default (expanded) state until hydrated.
*/
// Sidebar state - use store's hydration tracking to prevent SSR mismatch
const hasHydrated = useSidebarStore((state) => state._hasHydrated)
const isCollapsedStore = useSidebarStore((state) => state.isCollapsed)
const setIsCollapsed = useSidebarStore((state) => state.setIsCollapsed)
const setSidebarWidth = useSidebarStore((state) => state.setSidebarWidth)
// Use default (expanded) state until hydrated to prevent hydration mismatch
const isCollapsed = hasHydrated ? isCollapsedStore : false
// Determine if we're on a workflow page (only workflow pages allow collapse and resize)
const isOnWorkflowPage = !!workflowId
// Import state
const [isImporting, setIsImporting] = useState(false)
// Workspace import input ref
const workspaceFileInputRef = useRef<HTMLInputElement>(null)
// Workspace import hook
const { isImporting: isImportingWorkspace, handleImportWorkspace: importWorkspace } =
useImportWorkspace()
const { handleExportWorkspace: exportWorkspace } = useExportWorkspace()
// Workspace export hook
const { isExporting: isExportingWorkspace, handleExportWorkspace: exportWorkspace } =
useExportWorkspace()
// Workspace popover state
const [isWorkspaceMenuOpen, setIsWorkspaceMenuOpen] = useState(false)
// Footer navigation modal state
const [isHelpModalOpen, setIsHelpModalOpen] = useState(false)
const [isSettingsModalOpen, setIsSettingsModalOpen] = useState(false)
/** Listens for external events to open help modal */
// Listen for external events to open help modal
useEffect(() => {
const handleOpenHelpModal = () => setIsHelpModalOpen(true)
window.addEventListener('open-help-modal', handleOpenHelpModal)
return () => window.removeEventListener('open-help-modal', handleOpenHelpModal)
}, [])
/** Listens for scroll events and scrolls items into view if off-screen */
useEffect(() => {
const handleScrollToItem = (e: CustomEvent<{ itemId: string }>) => {
const { itemId } = e.detail
if (!itemId) return
const tryScroll = (retriesLeft: number) => {
requestAnimationFrame(() => {
const element = document.querySelector(`[data-item-id="${itemId}"]`)
const container = scrollContainerRef.current
if (!element || !container) {
if (retriesLeft > 0) tryScroll(retriesLeft - 1)
return
}
const { top: elTop, bottom: elBottom } = element.getBoundingClientRect()
const { top: ctTop, bottom: ctBottom } = container.getBoundingClientRect()
if (elBottom <= ctTop || elTop >= ctBottom) {
element.scrollIntoView({ behavior: 'smooth', block: 'center' })
}
})
}
tryScroll(10)
}
window.addEventListener(SIDEBAR_SCROLL_EVENT, handleScrollToItem as EventListener)
return () =>
window.removeEventListener(SIDEBAR_SCROLL_EVENT, handleScrollToItem as EventListener)
}, [])
// Global search modal state
const {
isOpen: isSearchModalOpen,
setOpen: setIsSearchModalOpen,
open: openSearchModal,
} = useSearchModalStore()
// Workspace management hook
const {
workspaces,
activeWorkspace,
isWorkspacesLoading,
fetchWorkspaces,
isWorkspaceValid,
switchWorkspace,
handleCreateWorkspace,
isCreatingWorkspace,
@@ -147,8 +127,10 @@ export function Sidebar() {
sessionUserId: sessionData?.user?.id,
})
// Sidebar resize hook
const { handleMouseDown } = useSidebarResize()
// Workflow operations hook
const {
regularWorkflows,
workflowsLoading,
@@ -156,14 +138,17 @@ export function Sidebar() {
handleCreateWorkflow: createWorkflow,
} = useWorkflowOperations({ workspaceId })
// Folder operations hook
const { isCreatingFolder, handleCreateFolder: createFolder } = useFolderOperations({
workspaceId,
})
// Duplicate workspace hook
const { handleDuplicateWorkspace: duplicateWorkspace } = useDuplicateWorkspace({
getWorkspaceId: () => workspaceId,
})
// Prepare data for search modal
const searchModalWorkflows = useMemo(
() =>
regularWorkflows.map((workflow) => ({
@@ -187,6 +172,7 @@ export function Sidebar() {
[workspaces, workspaceId]
)
// Footer navigation items
const footerNavigationItems = useMemo(
() => [
{
@@ -223,85 +209,116 @@ export function Sidebar() {
[workspaceId]
)
// Combined loading state
const isLoading = workflowsLoading || sessionLoading
const initialScrollDoneRef = useRef<string | null>(null)
/** Scrolls to active workflow on initial load or workspace switch */
useEffect(() => {
if (!workflowId || workflowsLoading || initialScrollDoneRef.current === workflowId) return
initialScrollDoneRef.current = workflowId
/**
* Scrolls a newly created element into view if completely off-screen.
* Uses requestAnimationFrame to sync with render, then scrolls.
*/
const scrollToElement = useCallback((elementId: string) => {
requestAnimationFrame(() => {
window.dispatchEvent(
new CustomEvent(SIDEBAR_SCROLL_EVENT, { detail: { itemId: workflowId } })
)
})
}, [workflowId, workflowsLoading])
const element = document.querySelector(`[data-item-id="${elementId}"]`)
const container = scrollContainerRef.current
if (!element || !container) return
/** Forces sidebar to minimum width and ensures it's expanded when not on a workflow page */
const { top: elTop, bottom: elBottom } = element.getBoundingClientRect()
const { top: ctTop, bottom: ctBottom } = container.getBoundingClientRect()
// Only scroll if element is completely off-screen
if (elBottom <= ctTop || elTop >= ctBottom) {
element.scrollIntoView({ behavior: 'smooth', block: 'center' })
}
})
}, [])
/**
* Force sidebar to minimum width and ensure it's expanded when not on a workflow page
*/
useEffect(() => {
if (!isOnWorkflowPage) {
// Ensure sidebar is always expanded on non-workflow pages
if (isCollapsed) {
setIsCollapsed(false)
}
// Force sidebar to minimum width
setSidebarWidth(MIN_SIDEBAR_WIDTH)
}
}, [isOnWorkflowPage, isCollapsed, setIsCollapsed, setSidebarWidth])
/** Creates a workflow and scrolls to it */
/**
* Handle create workflow - creates workflow and scrolls to it
*/
const handleCreateWorkflow = useCallback(async () => {
const workflowId = await createWorkflow()
if (workflowId) {
window.dispatchEvent(
new CustomEvent(SIDEBAR_SCROLL_EVENT, { detail: { itemId: workflowId } })
)
scrollToElement(workflowId)
}
}, [createWorkflow])
}, [createWorkflow, scrollToElement])
/** Creates a folder and scrolls to it */
/**
* Handle create folder - creates folder and scrolls to it
*/
const handleCreateFolder = useCallback(async () => {
const folderId = await createFolder()
if (folderId) {
window.dispatchEvent(new CustomEvent(SIDEBAR_SCROLL_EVENT, { detail: { itemId: folderId } }))
scrollToElement(folderId)
}
}, [createFolder])
}, [createFolder, scrollToElement])
/** Triggers file input for workflow import */
/**
* Handle import workflow button click - triggers file input
*/
const handleImportWorkflow = useCallback(() => {
fileInputRef.current?.click()
if (fileInputRef.current) {
fileInputRef.current.click()
}
}, [])
/** Handles workspace switch from popover menu */
/**
* Handle workspace switch from popover menu
*/
const handleWorkspaceSwitch = useCallback(
async (workspace: { id: string; name: string; ownerId: string; role?: string }) => {
if (workspace.id === workspaceId) {
setIsWorkspaceMenuOpen(false)
return
}
await switchWorkspace(workspace)
setIsWorkspaceMenuOpen(false)
},
[workspaceId, switchWorkspace]
)
/** Toggles sidebar collapse state */
/**
* Handle sidebar collapse toggle
*/
const handleToggleCollapse = useCallback(() => {
setIsCollapsed(!isCollapsed)
}, [isCollapsed, setIsCollapsed])
/** Reverts to active workflow selection when clicking sidebar background */
/**
* Handle click on sidebar elements to revert to active workflow selection
*/
const handleSidebarClick = useCallback(
(e: React.MouseEvent<HTMLElement>) => {
const target = e.target as HTMLElement
// Revert to active workflow selection if clicking on sidebar background, header, or search area
// But not on interactive elements like buttons or links
if (target.tagName === 'BUTTON' || target.closest('button, [role="button"], a')) {
return
}
const { selectOnly, clearSelection } = useFolderStore.getState()
workflowId ? selectOnly(workflowId) : clearSelection()
},
[workflowId]
)
/** Renames a workspace */
/**
* Handle workspace rename
*/
const handleRenameWorkspace = useCallback(
async (workspaceIdToRename: string, newName: string) => {
await updateWorkspaceName(workspaceIdToRename, newName)
@@ -309,7 +326,9 @@ export function Sidebar() {
[updateWorkspaceName]
)
/** Deletes a workspace */
/**
* Handle workspace delete
*/
const handleDeleteWorkspace = useCallback(
async (workspaceIdToDelete: string) => {
const workspaceToDelete = workspaces.find((w) => w.id === workspaceIdToDelete)
@@ -320,7 +339,9 @@ export function Sidebar() {
[workspaces, confirmDeleteWorkspace]
)
/** Duplicates a workspace */
/**
* Handle workspace duplicate
*/
const handleDuplicateWorkspace = useCallback(
async (_workspaceIdToDuplicate: string, workspaceName: string) => {
await duplicateWorkspace(workspaceName)
@@ -328,7 +349,9 @@ export function Sidebar() {
[duplicateWorkspace]
)
/** Exports a workspace */
/**
* Handle workspace export
*/
const handleExportWorkspace = useCallback(
async (workspaceIdToExport: string, workspaceName: string) => {
await exportWorkspace(workspaceIdToExport, workspaceName)
@@ -336,12 +359,18 @@ export function Sidebar() {
[exportWorkspace]
)
/** Triggers file input for workspace import */
/**
* Handle workspace import button click
*/
const handleImportWorkspace = useCallback(() => {
workspaceFileInputRef.current?.click()
if (workspaceFileInputRef.current) {
workspaceFileInputRef.current.click()
}
}, [])
/** Handles workspace import file selection */
/**
* Handle workspace import file change
*/
const handleWorkspaceFileChange = useCallback(
async (event: React.ChangeEvent<HTMLInputElement>) => {
const files = event.target.files
@@ -350,6 +379,7 @@ export function Sidebar() {
const zipFile = files[0]
await importWorkspace(zipFile)
// Reset file input
if (event.target) {
event.target.value = ''
}
@@ -357,7 +387,12 @@ export function Sidebar() {
[importWorkspace]
)
/** Resolves workspace ID from params or URL path */
/**
* Resolve a workspace id from either params or the current URL path.
*
* This mirrors existing behavior but is wrapped in a helper to keep command
* handlers small and focused.
*/
const resolveWorkspaceIdFromPath = useCallback((): string | undefined => {
if (workspaceId) return workspaceId
if (typeof window === 'undefined') return undefined
@@ -369,7 +404,12 @@ export function Sidebar() {
return parts[idx + 1]
}, [workspaceId])
/** Registers global sidebar commands with the central commands registry */
/**
* Register global sidebar commands using the central commands registry.
*
* Only commands declared in the registry can be registered here. The
* registry owns ids and shortcut strings; this component supplies handlers.
*/
useRegisterGlobalCommands(() =>
createCommands([
{

View File

@@ -287,19 +287,6 @@ export const AsanaBlock: BlockConfig<AsanaResponse> = {
},
outputs: {
success: { type: 'boolean', description: 'Operation success status' },
ts: { type: 'string', description: 'Timestamp of the response' },
gid: { type: 'string', description: 'Resource globally unique identifier' },
name: { type: 'string', description: 'Resource name' },
notes: { type: 'string', description: 'Task notes or description' },
completed: { type: 'boolean', description: 'Whether the task is completed' },
text: { type: 'string', description: 'Comment text content' },
assignee: { type: 'json', description: 'Assignee details (gid, name)' },
created_by: { type: 'json', description: 'Creator details (gid, name)' },
due_on: { type: 'string', description: 'Due date (YYYY-MM-DD)' },
created_at: { type: 'string', description: 'Creation timestamp' },
modified_at: { type: 'string', description: 'Last modified timestamp' },
permalink_url: { type: 'string', description: 'URL to the resource in Asana' },
tasks: { type: 'json', description: 'Array of tasks' },
projects: { type: 'json', description: 'Array of projects' },
output: { type: 'string', description: 'Operation result (JSON)' },
},
}

View File

@@ -32,23 +32,11 @@ export const BrowserUseBlock: BlockConfig<BrowserUseResponse> = {
title: 'Model',
type: 'dropdown',
options: [
{ label: 'Browser Use LLM', id: 'browser-use-llm' },
{ label: 'GPT-4o', id: 'gpt-4o' },
{ label: 'GPT-4o Mini', id: 'gpt-4o-mini' },
{ label: 'GPT-4.1', id: 'gpt-4.1' },
{ label: 'GPT-4.1 Mini', id: 'gpt-4.1-mini' },
{ label: 'O3', id: 'o3' },
{ label: 'O4 Mini', id: 'o4-mini' },
{ label: 'Gemini 2.5 Flash', id: 'gemini-2.5-flash' },
{ label: 'Gemini 2.5 Pro', id: 'gemini-2.5-pro' },
{ label: 'Gemini 3 Pro Preview', id: 'gemini-3-pro-preview' },
{ label: 'Gemini Flash Latest', id: 'gemini-flash-latest' },
{ label: 'Gemini Flash Lite Latest', id: 'gemini-flash-lite-latest' },
{ label: 'Claude 3.7 Sonnet', id: 'claude-3-7-sonnet-20250219' },
{ label: 'Claude Sonnet 4', id: 'claude-sonnet-4-20250514' },
{ label: 'Claude Sonnet 4.5', id: 'claude-sonnet-4-5-20250929' },
{ label: 'Claude Opus 4.5', id: 'claude-opus-4-5-20251101' },
{ label: 'Llama 4 Maverick', id: 'llama-4-maverick-17b-128e-instruct' },
{ label: 'gpt-4o', id: 'gpt-4o' },
{ label: 'gemini-2.0-flash', id: 'gemini-2.0-flash' },
{ label: 'gemini-2.0-flash-lite', id: 'gemini-2.0-flash-lite' },
{ label: 'claude-3-7-sonnet-20250219', id: 'claude-3-7-sonnet-20250219' },
{ label: 'llama-4-maverick-17b-128e-instruct', id: 'llama-4-maverick-17b-128e-instruct' },
],
},
{

View File

@@ -29,7 +29,6 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
{ label: 'List Comments', id: 'list_comments' },
{ label: 'Update Comment', id: 'update_comment' },
{ label: 'Delete Comment', id: 'delete_comment' },
{ label: 'Upload Attachment', id: 'upload_attachment' },
{ label: 'List Attachments', id: 'list_attachments' },
{ label: 'Delete Attachment', id: 'delete_attachment' },
{ label: 'List Labels', id: 'list_labels' },
@@ -156,28 +155,6 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
required: true,
condition: { field: 'operation', value: 'delete_attachment' },
},
{
id: 'attachmentFile',
title: 'File',
type: 'file-upload',
placeholder: 'Select file to upload',
required: true,
condition: { field: 'operation', value: 'upload_attachment' },
},
{
id: 'attachmentFileName',
title: 'File Name',
type: 'short-input',
placeholder: 'Optional custom file name',
condition: { field: 'operation', value: 'upload_attachment' },
},
{
id: 'attachmentComment',
title: 'Comment',
type: 'short-input',
placeholder: 'Optional comment for the attachment',
condition: { field: 'operation', value: 'upload_attachment' },
},
{
id: 'labelName',
title: 'Label Name',
@@ -208,7 +185,6 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
'confluence_list_comments',
'confluence_update_comment',
'confluence_delete_comment',
'confluence_upload_attachment',
'confluence_list_attachments',
'confluence_delete_attachment',
'confluence_list_labels',
@@ -236,8 +212,6 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
return 'confluence_update_comment'
case 'delete_comment':
return 'confluence_delete_comment'
case 'upload_attachment':
return 'confluence_upload_attachment'
case 'list_attachments':
return 'confluence_list_attachments'
case 'delete_attachment':
@@ -253,19 +227,11 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
}
},
params: (params) => {
const {
credential,
pageId,
manualPageId,
operation,
attachmentFile,
attachmentFileName,
attachmentComment,
...rest
} = params
const { credential, pageId, manualPageId, operation, ...rest } = params
const effectivePageId = (pageId || manualPageId || '').trim()
// Operations that require pageId
const requiresPageId = [
'read',
'update',
@@ -274,9 +240,9 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
'list_comments',
'list_attachments',
'list_labels',
'upload_attachment',
]
// Operations that require spaceId
const requiresSpaceId = ['create', 'get_space']
if (requiresPageId.includes(operation) && !effectivePageId) {
@@ -287,18 +253,6 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
throw new Error('Space ID is required for this operation.')
}
if (operation === 'upload_attachment') {
return {
credential,
pageId: effectivePageId,
operation,
file: attachmentFile,
fileName: attachmentFileName,
comment: attachmentComment,
...rest,
}
}
return {
credential,
pageId: effectivePageId || undefined,
@@ -322,9 +276,6 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
comment: { type: 'string', description: 'Comment text' },
commentId: { type: 'string', description: 'Comment identifier' },
attachmentId: { type: 'string', description: 'Attachment identifier' },
attachmentFile: { type: 'json', description: 'File to upload as attachment' },
attachmentFileName: { type: 'string', description: 'Custom file name for attachment' },
attachmentComment: { type: 'string', description: 'Comment for the attachment' },
labelName: { type: 'string', description: 'Label name' },
limit: { type: 'number', description: 'Maximum number of results' },
},
@@ -346,9 +297,6 @@ export const ConfluenceBlock: BlockConfig<ConfluenceResponse> = {
spaces: { type: 'array', description: 'List of spaces' },
commentId: { type: 'string', description: 'Comment identifier' },
attachmentId: { type: 'string', description: 'Attachment identifier' },
fileSize: { type: 'number', description: 'Attachment file size in bytes' },
mediaType: { type: 'string', description: 'Attachment MIME type' },
downloadUrl: { type: 'string', description: 'Attachment download URL' },
labelName: { type: 'string', description: 'Label name' },
spaceId: { type: 'string', description: 'Space identifier' },
name: { type: 'string', description: 'Space name' },

Some files were not shown because too many files have changed in this diff Show More