@oomol-lab/open-connector 1.9.1 → 1.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/open-connector/catalog/apps/aisa.json +1946 -56
- package/assets/open-connector/catalog/apps/akta.json +1181 -0
- package/assets/open-connector/catalog/apps/asana.json +110 -0
- package/assets/open-connector/catalog/apps/calendly.json +103 -0
- package/assets/open-connector/catalog/apps/clickup.json +104 -0
- package/assets/open-connector/catalog/apps/cloro.json +9289 -0
- package/assets/open-connector/catalog/apps/contextdev.json +20670 -0
- package/assets/open-connector/catalog/apps/deepseek.json +177 -0
- package/assets/open-connector/catalog/apps/defillama.json +23747 -0
- package/assets/open-connector/catalog/apps/fireflies.json +103 -0
- package/assets/open-connector/catalog/apps/fundable.json +7926 -0
- package/assets/open-connector/catalog/apps/intercom.json +110 -0
- package/assets/open-connector/catalog/apps/jira.json +110 -0
- package/assets/open-connector/catalog/apps/keenable.json +235 -0
- package/assets/open-connector/catalog/apps/kolsprite_mcp.json +1227 -0
- package/assets/open-connector/catalog/apps/litescrape.json +52514 -0
- package/assets/open-connector/catalog/apps/magichour.json +5926 -0
- package/assets/open-connector/catalog/apps/minimax.json +24 -14
- package/assets/open-connector/catalog/apps/notion.json +731 -76
- package/assets/open-connector/catalog/apps/octen.json +5248 -0
- package/assets/open-connector/catalog/apps/openrouter.json +10 -0
- package/assets/open-connector/catalog/apps/orbit.json +3574 -0
- package/assets/open-connector/catalog/apps/pandadoc.json +68 -0
- package/assets/open-connector/catalog/apps/pipedrive.json +86 -0
- package/assets/open-connector/catalog/apps/ploid.json +9802 -0
- package/assets/open-connector/catalog/apps/resend.json +100 -0
- package/assets/open-connector/catalog/apps/salesforce.json +2487 -119
- package/assets/open-connector/catalog/apps/saperly.json +7056 -0
- package/assets/open-connector/catalog/apps/search1api.json +2382 -0
- package/assets/open-connector/catalog/apps/sentry.json +129 -0
- package/assets/open-connector/catalog/apps/slackbot.json +230 -1
- package/assets/open-connector/catalog/apps/surf.json +11378 -0
- package/assets/open-connector/catalog/apps/tally.json +113 -0
- package/assets/open-connector/catalog/apps/tinyfish.json +6154 -0
- package/assets/open-connector/catalog/apps/typeform.json +90 -1
- package/assets/open-connector/catalog/apps/vaquill.json +5944 -0
- package/assets/open-connector/catalog/apps/vercel.json +110 -0
- package/assets/open-connector/catalog/apps/weixin_store.json +1256 -7
- package/assets/open-connector/catalog/apps/zoom.json +112 -0
- package/assets/open-connector/catalog/apps-index.json +1 -1
- package/package.json +1 -1
- package/src/core/json-schema.d.ts +11 -3
- package/src/core/json-schema.js +13 -3
- package/src/providers/action-contracts.generated.d.ts +23 -6
- package/src/providers/aisa/executors.js +238 -6
- package/src/providers/aisa/firecrawl-actions.d.ts +9 -0
- package/src/providers/aisa/firecrawl-actions.js +115 -0
- package/src/providers/akta/actions.d.ts +9 -0
- package/src/providers/akta/actions.js +420 -0
- package/src/providers/akta/executors.d.ts +4 -0
- package/src/providers/akta/executors.js +103 -0
- package/src/providers/asana/executors.d.ts +2 -0
- package/src/providers/asana/executors.js +2 -0
- package/src/providers/asana/trigger-on-task-event.d.ts +2 -0
- package/src/providers/asana/trigger-on-task-event.definition.d.ts +4 -0
- package/src/providers/asana/trigger-on-task-event.definition.js +42 -0
- package/src/providers/asana/trigger-on-task-event.js +160 -0
- package/src/providers/calendly/executors.d.ts +2 -0
- package/src/providers/calendly/executors.js +2 -0
- package/src/providers/calendly/trigger-on-booking-event.d.ts +2 -0
- package/src/providers/calendly/trigger-on-booking-event.definition.d.ts +5 -0
- package/src/providers/calendly/trigger-on-booking-event.definition.js +42 -0
- package/src/providers/calendly/trigger-on-booking-event.js +144 -0
- package/src/providers/clickup/executors.d.ts +2 -0
- package/src/providers/clickup/executors.js +2 -0
- package/src/providers/clickup/trigger-on-task-event.d.ts +2 -0
- package/src/providers/clickup/trigger-on-task-event.definition.d.ts +4 -0
- package/src/providers/clickup/trigger-on-task-event.definition.js +41 -0
- package/src/providers/clickup/trigger-on-task-event.js +94 -0
- package/src/providers/cloro/actions.d.ts +12 -0
- package/src/providers/cloro/actions.js +155 -0
- package/src/providers/cloro/executors.d.ts +4 -0
- package/src/providers/cloro/executors.js +67 -0
- package/src/providers/cloro/inputs.d.ts +10 -0
- package/src/providers/cloro/inputs.js +680 -0
- package/src/providers/contextdev/actions.d.ts +14 -0
- package/src/providers/contextdev/actions.js +647 -0
- package/src/providers/contextdev/executors.d.ts +4 -0
- package/src/providers/contextdev/executors.js +109 -0
- package/src/providers/contextdev/files.d.ts +3 -0
- package/src/providers/contextdev/files.js +49 -0
- package/src/providers/contextdev/input-schemas.d.ts +49 -0
- package/src/providers/contextdev/input-schemas.js +3082 -0
- package/src/providers/contextdev/output-schemas.d.ts +49 -0
- package/src/providers/contextdev/output-schemas.js +1599 -0
- package/src/providers/deepseek/executors.d.ts +0 -5
- package/src/providers/deepseek/executors.js +38 -25
- package/src/providers/defillama/actions.d.ts +24 -0
- package/src/providers/defillama/actions.js +24 -0
- package/src/providers/defillama/dimensions-definitions.d.ts +2 -0
- package/src/providers/defillama/dimensions-definitions.js +1387 -0
- package/src/providers/defillama/ecosystem-definitions.d.ts +2 -0
- package/src/providers/defillama/ecosystem-definitions.js +758 -0
- package/src/providers/defillama/equities-definitions.d.ts +2 -0
- package/src/providers/defillama/equities-definitions.js +733 -0
- package/src/providers/defillama/executors.d.ts +4 -0
- package/src/providers/defillama/executors.js +196 -0
- package/src/providers/defillama/markets-definitions.d.ts +2 -0
- package/src/providers/defillama/markets-definitions.js +624 -0
- package/src/providers/defillama/shared-schemas.d.ts +71 -0
- package/src/providers/defillama/shared-schemas.js +157 -0
- package/src/providers/defillama/tvl-definitions.d.ts +2 -0
- package/src/providers/defillama/tvl-definitions.js +546 -0
- package/src/providers/defillama/yields-definitions.d.ts +2 -0
- package/src/providers/defillama/yields-definitions.js +766 -0
- package/src/providers/feishu_app_bot/trigger-on-event.js +2 -0
- package/src/providers/fireflies/executors.d.ts +2 -0
- package/src/providers/fireflies/executors.js +2 -0
- package/src/providers/fireflies/trigger-on-meeting-ready.d.ts +2 -0
- package/src/providers/fireflies/trigger-on-meeting-ready.definition.d.ts +4 -0
- package/src/providers/fireflies/trigger-on-meeting-ready.definition.js +44 -0
- package/src/providers/fireflies/trigger-on-meeting-ready.js +60 -0
- package/src/providers/fundable/actions.d.ts +8 -0
- package/src/providers/fundable/actions.js +1515 -0
- package/src/providers/fundable/executors.d.ts +4 -0
- package/src/providers/fundable/executors.js +74 -0
- package/src/providers/gmail/message.d.ts +1 -6
- package/src/providers/gmail/message.js +1 -1
- package/src/providers/intercom/executors.d.ts +2 -0
- package/src/providers/intercom/executors.js +2 -0
- package/src/providers/intercom/trigger-on-conversation-event.d.ts +2 -0
- package/src/providers/intercom/trigger-on-conversation-event.definition.d.ts +4 -0
- package/src/providers/intercom/trigger-on-conversation-event.definition.js +42 -0
- package/src/providers/intercom/trigger-on-conversation-event.js +23 -0
- package/src/providers/jira/executors.d.ts +2 -0
- package/src/providers/jira/executors.js +2 -0
- package/src/providers/jira/trigger-on-issue-event.d.ts +2 -0
- package/src/providers/jira/trigger-on-issue-event.definition.d.ts +4 -0
- package/src/providers/jira/trigger-on-issue-event.definition.js +44 -0
- package/src/providers/jira/trigger-on-issue-event.js +116 -0
- package/src/providers/jira/trigger-resource.d.ts +4 -0
- package/src/providers/jira/trigger-resource.js +141 -0
- package/src/providers/keenable/executors.d.ts +4 -0
- package/src/providers/keenable/executors.js +20 -0
- package/src/providers/keenable/runtime.d.ts +26 -0
- package/src/providers/keenable/runtime.js +89 -0
- package/src/providers/kolsprite_mcp/actions.d.ts +2 -0
- package/src/providers/kolsprite_mcp/actions.js +519 -0
- package/src/providers/kolsprite_mcp/executors.d.ts +4 -0
- package/src/providers/kolsprite_mcp/executors.js +89 -0
- package/src/providers/litescrape/actions.d.ts +12 -0
- package/src/providers/litescrape/actions.js +124 -0
- package/src/providers/litescrape/airbnb-schemas.d.ts +2 -0
- package/src/providers/litescrape/airbnb-schemas.js +72 -0
- package/src/providers/litescrape/aliexpress-schemas.d.ts +2 -0
- package/src/providers/litescrape/aliexpress-schemas.js +52 -0
- package/src/providers/litescrape/amazon-schemas.d.ts +2 -0
- package/src/providers/litescrape/amazon-schemas.js +358 -0
- package/src/providers/litescrape/apartments-schemas.d.ts +2 -0
- package/src/providers/litescrape/apartments-schemas.js +45 -0
- package/src/providers/litescrape/apple-schemas.d.ts +2 -0
- package/src/providers/litescrape/apple-schemas.js +215 -0
- package/src/providers/litescrape/ashby-schemas.d.ts +2 -0
- package/src/providers/litescrape/ashby-schemas.js +82 -0
- package/src/providers/litescrape/baidu-schemas.d.ts +2 -0
- package/src/providers/litescrape/baidu-schemas.js +31 -0
- package/src/providers/litescrape/bestbuy-schemas.d.ts +2 -0
- package/src/providers/litescrape/bestbuy-schemas.js +56 -0
- package/src/providers/litescrape/bing-schemas.d.ts +2 -0
- package/src/providers/litescrape/bing-schemas.js +315 -0
- package/src/providers/litescrape/brave-schemas.d.ts +2 -0
- package/src/providers/litescrape/brave-schemas.js +101 -0
- package/src/providers/litescrape/copilot-schemas.d.ts +2 -0
- package/src/providers/litescrape/copilot-schemas.js +590 -0
- package/src/providers/litescrape/duckduckgo-schemas.d.ts +2 -0
- package/src/providers/litescrape/duckduckgo-schemas.js +64 -0
- package/src/providers/litescrape/ebay-schemas.d.ts +2 -0
- package/src/providers/litescrape/ebay-schemas.js +300 -0
- package/src/providers/litescrape/etsy-schemas.d.ts +2 -0
- package/src/providers/litescrape/etsy-schemas.js +52 -0
- package/src/providers/litescrape/eventbrite-schemas.d.ts +2 -0
- package/src/providers/litescrape/eventbrite-schemas.js +43 -0
- package/src/providers/litescrape/executors.d.ts +4 -0
- package/src/providers/litescrape/executors.js +138 -0
- package/src/providers/litescrape/facebook-schemas.d.ts +2 -0
- package/src/providers/litescrape/facebook-schemas.js +283 -0
- package/src/providers/litescrape/glassdoor-schemas.d.ts +2 -0
- package/src/providers/litescrape/glassdoor-schemas.js +147 -0
- package/src/providers/litescrape/google-schemas.d.ts +2 -0
- package/src/providers/litescrape/google-schemas.js +1686 -0
- package/src/providers/litescrape/homedepot-schemas.d.ts +2 -0
- package/src/providers/litescrape/homedepot-schemas.js +58 -0
- package/src/providers/litescrape/homes-schemas.d.ts +2 -0
- package/src/providers/litescrape/homes-schemas.js +45 -0
- package/src/providers/litescrape/ikea-schemas.d.ts +2 -0
- package/src/providers/litescrape/ikea-schemas.js +56 -0
- package/src/providers/litescrape/indeed-schemas.d.ts +2 -0
- package/src/providers/litescrape/indeed-schemas.js +141 -0
- package/src/providers/litescrape/instagram-schemas.d.ts +2 -0
- package/src/providers/litescrape/instagram-schemas.js +234 -0
- package/src/providers/litescrape/kroger-schemas.d.ts +2 -0
- package/src/providers/litescrape/kroger-schemas.js +62 -0
- package/src/providers/litescrape/levels-schemas.d.ts +2 -0
- package/src/providers/litescrape/levels-schemas.js +153 -0
- package/src/providers/litescrape/naver-schemas.d.ts +2 -0
- package/src/providers/litescrape/naver-schemas.js +107 -0
- package/src/providers/litescrape/realtor-schemas.d.ts +2 -0
- package/src/providers/litescrape/realtor-schemas.js +47 -0
- package/src/providers/litescrape/redfin-schemas.d.ts +2 -0
- package/src/providers/litescrape/redfin-schemas.js +112 -0
- package/src/providers/litescrape/shared.d.ts +9 -0
- package/src/providers/litescrape/shared.js +1 -0
- package/src/providers/litescrape/sprouts-schemas.d.ts +2 -0
- package/src/providers/litescrape/sprouts-schemas.js +72 -0
- package/src/providers/litescrape/target-schemas.d.ts +2 -0
- package/src/providers/litescrape/target-schemas.js +56 -0
- package/src/providers/litescrape/tiktok-schemas.d.ts +2 -0
- package/src/providers/litescrape/tiktok-schemas.js +625 -0
- package/src/providers/litescrape/tools.d.ts +2 -0
- package/src/providers/litescrape/tools.js +88 -0
- package/src/providers/litescrape/tripadvisor-schemas.d.ts +2 -0
- package/src/providers/litescrape/tripadvisor-schemas.js +119 -0
- package/src/providers/litescrape/walmart-schemas.d.ts +2 -0
- package/src/providers/litescrape/walmart-schemas.js +52 -0
- package/src/providers/litescrape/wayfair-schemas.d.ts +2 -0
- package/src/providers/litescrape/wayfair-schemas.js +52 -0
- package/src/providers/litescrape/web-schemas.d.ts +2 -0
- package/src/providers/litescrape/web-schemas.js +463 -0
- package/src/providers/litescrape/wholefoods-schemas.d.ts +2 -0
- package/src/providers/litescrape/wholefoods-schemas.js +56 -0
- package/src/providers/litescrape/x-schemas.d.ts +2 -0
- package/src/providers/litescrape/x-schemas.js +128 -0
- package/src/providers/litescrape/yahoo-schemas.d.ts +2 -0
- package/src/providers/litescrape/yahoo-schemas.js +234 -0
- package/src/providers/litescrape/yandex-schemas.d.ts +2 -0
- package/src/providers/litescrape/yandex-schemas.js +179 -0
- package/src/providers/litescrape/yelp-schemas.d.ts +2 -0
- package/src/providers/litescrape/yelp-schemas.js +130 -0
- package/src/providers/litescrape/youtube-schemas.d.ts +2 -0
- package/src/providers/litescrape/youtube-schemas.js +128 -0
- package/src/providers/litescrape/zillow-schemas.d.ts +2 -0
- package/src/providers/litescrape/zillow-schemas.js +128 -0
- package/src/providers/litescrape/ziprecruiter-schemas.d.ts +2 -0
- package/src/providers/litescrape/ziprecruiter-schemas.js +96 -0
- package/src/providers/magichour/actions.d.ts +22 -0
- package/src/providers/magichour/actions.js +308 -0
- package/src/providers/magichour/audio-schemas.d.ts +2 -0
- package/src/providers/magichour/audio-schemas.js +54 -0
- package/src/providers/magichour/executors.d.ts +4 -0
- package/src/providers/magichour/executors.js +115 -0
- package/src/providers/magichour/image-schemas.d.ts +2 -0
- package/src/providers/magichour/image-schemas.js +443 -0
- package/src/providers/magichour/project-schemas.d.ts +8 -0
- package/src/providers/magichour/project-schemas.js +65 -0
- package/src/providers/magichour/shared-schemas.d.ts +8 -0
- package/src/providers/magichour/shared-schemas.js +18 -0
- package/src/providers/magichour/utility-schemas.d.ts +11 -0
- package/src/providers/magichour/utility-schemas.js +150 -0
- package/src/providers/magichour/video-schemas.d.ts +2 -0
- package/src/providers/magichour/video-schemas.js +629 -0
- package/src/providers/magichour/voices.d.ts +1 -0
- package/src/providers/magichour/voices.js +1268 -0
- package/src/providers/minimax/executors.js +19 -4
- package/src/providers/minimax/text-models.d.ts +2 -0
- package/src/providers/minimax/text-models.js +34 -0
- package/src/providers/moneyforward_mcp/manifest.d.ts +0 -2
- package/src/providers/moneyforward_mcp/manifest.js +1 -1
- package/src/providers/notion/executors.js +36 -3
- package/src/providers/octen/actions.d.ts +6 -0
- package/src/providers/octen/actions.js +919 -0
- package/src/providers/octen/executors.d.ts +4 -0
- package/src/providers/octen/executors.js +125 -0
- package/src/providers/octen/inputs.d.ts +2 -0
- package/src/providers/octen/inputs.js +2434 -0
- package/src/providers/octen/research.d.ts +1 -0
- package/src/providers/octen/research.js +86 -0
- package/src/providers/openrouter/executors.js +7 -4
- package/src/providers/orbit/actions.d.ts +2 -0
- package/src/providers/orbit/actions.js +3030 -0
- package/src/providers/orbit/executors.d.ts +4 -0
- package/src/providers/orbit/executors.js +106 -0
- package/src/providers/orbit/routes.d.ts +9 -0
- package/src/providers/orbit/routes.js +170 -0
- package/src/providers/pandadoc/executors.d.ts +2 -0
- package/src/providers/pandadoc/executors.js +2 -0
- package/src/providers/pandadoc/trigger-on-document-event.d.ts +2 -0
- package/src/providers/pandadoc/trigger-on-document-event.definition.d.ts +4 -0
- package/src/providers/pandadoc/trigger-on-document-event.definition.js +33 -0
- package/src/providers/pandadoc/trigger-on-document-event.js +96 -0
- package/src/providers/pipedrive/executors.d.ts +2 -0
- package/src/providers/pipedrive/executors.js +2 -0
- package/src/providers/pipedrive/trigger-on-crm-event.d.ts +2 -0
- package/src/providers/pipedrive/trigger-on-crm-event.definition.d.ts +4 -0
- package/src/providers/pipedrive/trigger-on-crm-event.definition.js +30 -0
- package/src/providers/pipedrive/trigger-on-crm-event.js +101 -0
- package/src/providers/ploid/actions.d.ts +16 -0
- package/src/providers/ploid/actions.js +23 -0
- package/src/providers/ploid/endpoints.json +8440 -0
- package/src/providers/ploid/executors.d.ts +4 -0
- package/src/providers/ploid/executors.js +119 -0
- package/src/providers/provider-runtime.d.ts +13 -0
- package/src/providers/provider-runtime.js +37 -4
- package/src/providers/registry.generated.js +17 -0
- package/src/providers/resend/executors.d.ts +2 -0
- package/src/providers/resend/executors.js +2 -0
- package/src/providers/resend/trigger-on-email-event.d.ts +2 -0
- package/src/providers/resend/trigger-on-email-event.definition.d.ts +4 -0
- package/src/providers/resend/trigger-on-email-event.definition.js +37 -0
- package/src/providers/resend/trigger-on-email-event.js +125 -0
- package/src/providers/salesforce/chatter-routes.d.ts +107 -0
- package/src/providers/salesforce/chatter-routes.js +140 -0
- package/src/providers/salesforce/context.d.ts +2 -2
- package/src/providers/salesforce/context.js +7 -4
- package/src/providers/salesforce/executors.js +10 -0
- package/src/providers/salesforce/runtime-approvals.d.ts +2 -0
- package/src/providers/salesforce/runtime-approvals.js +52 -0
- package/src/providers/salesforce/runtime-base.js +14 -3
- package/src/providers/salesforce/runtime-chatter.d.ts +2 -0
- package/src/providers/salesforce/runtime-chatter.js +78 -0
- package/src/providers/salesforce/runtime-knowledge.d.ts +2 -0
- package/src/providers/salesforce/runtime-knowledge.js +34 -0
- package/src/providers/salesforce/runtime-leads.d.ts +2 -0
- package/src/providers/salesforce/runtime-leads.js +117 -0
- package/src/providers/salesforce/runtime-platform.d.ts +2 -0
- package/src/providers/salesforce/runtime-platform.js +67 -0
- package/src/providers/saperly/actions.d.ts +17 -0
- package/src/providers/saperly/actions.js +869 -0
- package/src/providers/saperly/executors.d.ts +4 -0
- package/src/providers/saperly/executors.js +113 -0
- package/src/providers/saperly/schemas.d.ts +33 -0
- package/src/providers/saperly/schemas.js +601 -0
- package/src/providers/search1api/actions.d.ts +2 -0
- package/src/providers/search1api/actions.js +39 -0
- package/src/providers/search1api/executors.d.ts +4 -0
- package/src/providers/search1api/executors.js +72 -0
- package/src/providers/search1api/runtime.d.ts +3 -0
- package/src/providers/search1api/runtime.js +44 -0
- package/src/providers/search1api/schemas.d.ts +3 -0
- package/src/providers/search1api/schemas.js +1834 -0
- package/src/providers/sentry/executors.d.ts +2 -0
- package/src/providers/sentry/executors.js +2 -0
- package/src/providers/sentry/trigger-on-issue-alert.d.ts +2 -0
- package/src/providers/sentry/trigger-on-issue-alert.definition.d.ts +4 -0
- package/src/providers/sentry/trigger-on-issue-alert.definition.js +64 -0
- package/src/providers/sentry/trigger-on-issue-alert.js +80 -0
- package/src/providers/sf_express/runtime.d.ts +0 -16
- package/src/providers/sf_express/runtime.js +2 -2
- package/src/providers/slack/runtime.d.ts +6 -1
- package/src/providers/slack/runtime.js +21 -0
- package/src/providers/slackbot/actions.js +17 -1
- package/src/providers/slackbot/executors.d.ts +2 -0
- package/src/providers/slackbot/executors.js +5 -1
- package/src/providers/slackbot/trigger-on-event.d.ts +2 -0
- package/src/providers/slackbot/trigger-on-event.definition.d.ts +4 -0
- package/src/providers/slackbot/trigger-on-event.definition.js +57 -0
- package/src/providers/slackbot/trigger-on-event.js +23 -0
- package/src/providers/surf/actions.d.ts +21 -0
- package/src/providers/surf/actions.js +26 -0
- package/src/providers/surf/discovery-definitions.d.ts +2 -0
- package/src/providers/surf/discovery-definitions.js +871 -0
- package/src/providers/surf/equity-definitions.d.ts +2 -0
- package/src/providers/surf/equity-definitions.js +322 -0
- package/src/providers/surf/executors.d.ts +4 -0
- package/src/providers/surf/executors.js +131 -0
- package/src/providers/surf/market-definitions.d.ts +2 -0
- package/src/providers/surf/market-definitions.js +885 -0
- package/src/providers/surf/onchain-definitions.d.ts +2 -0
- package/src/providers/surf/onchain-definitions.js +901 -0
- package/src/providers/surf/prediction-definitions.d.ts +2 -0
- package/src/providers/surf/prediction-definitions.js +683 -0
- package/src/providers/surf/shared-schemas.d.ts +18 -0
- package/src/providers/surf/shared-schemas.js +37 -0
- package/src/providers/tally/executors.d.ts +2 -0
- package/src/providers/tally/executors.js +2 -0
- package/src/providers/tally/trigger-on-form-response.d.ts +2 -0
- package/src/providers/tally/trigger-on-form-response.definition.d.ts +4 -0
- package/src/providers/tally/trigger-on-form-response.definition.js +54 -0
- package/src/providers/tally/trigger-on-form-response.js +166 -0
- package/src/providers/tinyfish/actions.d.ts +6 -0
- package/src/providers/tinyfish/actions.js +19 -0
- package/src/providers/tinyfish/agent-actions.d.ts +2 -0
- package/src/providers/tinyfish/agent-actions.js +268 -0
- package/src/providers/tinyfish/data-actions.d.ts +2 -0
- package/src/providers/tinyfish/data-actions.js +186 -0
- package/src/providers/tinyfish/data-schemas.d.ts +7 -0
- package/src/providers/tinyfish/data-schemas.js +103 -0
- package/src/providers/tinyfish/endpoints.d.ts +14 -0
- package/src/providers/tinyfish/endpoints.js +1 -0
- package/src/providers/tinyfish/executors.d.ts +4 -0
- package/src/providers/tinyfish/executors.js +133 -0
- package/src/providers/tinyfish/management-actions.d.ts +2 -0
- package/src/providers/tinyfish/management-actions.js +524 -0
- package/src/providers/tinyfish/monitor-schemas.d.ts +5 -0
- package/src/providers/tinyfish/monitor-schemas.js +65 -0
- package/src/providers/tinyfish/research-schemas.d.ts +6 -0
- package/src/providers/tinyfish/research-schemas.js +71 -0
- package/src/providers/trello/executors.js +5 -2
- package/src/providers/typeform/executors.d.ts +2 -0
- package/src/providers/typeform/executors.js +2 -0
- package/src/providers/typeform/trigger-on-form-response.d.ts +2 -0
- package/src/providers/typeform/trigger-on-form-response.definition.d.ts +4 -0
- package/src/providers/typeform/trigger-on-form-response.definition.js +40 -0
- package/src/providers/typeform/trigger-on-form-response.js +68 -0
- package/src/providers/vaquill/actions.d.ts +13 -0
- package/src/providers/vaquill/actions.js +529 -0
- package/src/providers/vaquill/executors.d.ts +4 -0
- package/src/providers/vaquill/executors.js +141 -0
- package/src/providers/vaquill/schemas.d.ts +67 -0
- package/src/providers/vaquill/schemas.js +4953 -0
- package/src/providers/vercel/executors.d.ts +2 -0
- package/src/providers/vercel/executors.js +2 -0
- package/src/providers/vercel/trigger-on-deployment-event.d.ts +2 -0
- package/src/providers/vercel/trigger-on-deployment-event.definition.d.ts +5 -0
- package/src/providers/vercel/trigger-on-deployment-event.definition.js +41 -0
- package/src/providers/vercel/trigger-on-deployment-event.js +102 -0
- package/src/providers/weixin_bot/runtime.d.ts +0 -1
- package/src/providers/weixin_bot/runtime.js +1 -1
- package/src/providers/weixin_store/access-token.d.ts +3 -3
- package/src/providers/weixin_store/access-token.js +15 -7
- package/src/providers/weixin_store/executors.js +214 -1
- package/src/providers/zoom/executors.d.ts +2 -0
- package/src/providers/zoom/executors.js +2 -0
- package/src/providers/zoom/trigger-on-recording-ready.d.ts +2 -0
- package/src/providers/zoom/trigger-on-recording-ready.definition.d.ts +4 -0
- package/src/providers/zoom/trigger-on-recording-ready.definition.js +44 -0
- package/src/providers/zoom/trigger-on-recording-ready.js +39 -0
- package/src/server/api/action-example.js +12 -1
- package/src/server/api/pattern-example.js +35 -1
- package/src/server/api/trigger-routes.js +1 -1
- package/src/server/connect-app.js +1 -0
- package/src/triggers/common/integration.d.ts +15 -3
- package/src/triggers/common/integration.js +5 -0
- package/src/triggers/common/proxy.d.ts +7 -0
- package/src/triggers/managed-webhook.d.ts +13 -0
- package/src/triggers/managed-webhook.js +48 -0
- package/src/triggers/request.d.ts +5 -1
- package/src/triggers/request.js +2 -0
- package/src/triggers/resources.d.ts +8 -2
- package/src/triggers/resources.js +31 -0
- package/src/triggers/signature.d.ts +3 -3
- package/src/triggers/signature.js +4 -6
- package/src/triggers/sources/configuration-schema.d.ts +5 -0
- package/src/triggers/sources/configuration-schema.js +118 -0
- package/src/triggers/sources/configuration.d.ts +115 -0
- package/src/triggers/sources/configuration.js +1 -0
- package/src/triggers/sources/definition.d.ts +61 -0
- package/src/triggers/sources/definition.js +3 -0
- package/src/triggers/sources/feishu-demands.d.ts +6 -0
- package/src/triggers/sources/feishu-demands.js +24 -0
- package/src/triggers/sources/feishu-events.d.ts +19 -0
- package/src/triggers/sources/feishu-events.js +108 -0
- package/src/triggers/sources/feishu.d.ts +3 -0
- package/src/triggers/sources/feishu.js +85 -0
- package/src/triggers/sources/fireflies.d.ts +3 -0
- package/src/triggers/sources/fireflies.js +100 -0
- package/src/triggers/sources/intercom.d.ts +3 -0
- package/src/triggers/sources/intercom.js +86 -0
- package/src/triggers/sources/jira.d.ts +3 -0
- package/src/triggers/sources/jira.js +120 -0
- package/src/triggers/sources/operation.d.ts +42 -0
- package/src/triggers/sources/operation.js +146 -0
- package/src/triggers/sources/sentry.d.ts +3 -0
- package/src/triggers/sources/sentry.js +125 -0
- package/src/triggers/sources/signature.d.ts +1 -0
- package/src/triggers/sources/signature.js +10 -0
- package/src/triggers/sources/slack.d.ts +3 -0
- package/src/triggers/sources/slack.js +127 -0
- package/src/triggers/sources/zoom.d.ts +3 -0
- package/src/triggers/sources/zoom.js +113 -0
- package/src/triggers/trigger-runner.d.ts +2 -0
- package/src/triggers/trigger-runner.js +52 -16
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { readSchemaProperties } from "../../core/json-schema.js";
|
|
2
|
+
import { s } from "../../core/json-schema.js";
|
|
3
|
+
import { fetchInput, fetchOutput, searchInput, searchOutput, usageInput, usageOutput } from "./data-schemas.js";
|
|
4
|
+
import { monitorCreateInput, monitorId, monitorOutput, monitorUpdateInput } from "./monitor-schemas.js";
|
|
5
|
+
import { researchId, researchInput, researchListInput, researchOutput, researchStatus } from "./research-schemas.js";
|
|
6
|
+
const researchIdInput = s.requiredObject("Research run identifier.", { research_run_id: researchId });
|
|
7
|
+
const monitorIdInput = s.requiredObject("Monitor identifier.", { id: monitorId });
|
|
8
|
+
const usageQueryKeys = Object.keys(readSchemaProperties(usageInput));
|
|
9
|
+
export const dataEndpoints = [
|
|
10
|
+
{
|
|
11
|
+
name: "search",
|
|
12
|
+
description: "Search web pages, news or research papers with optional content fetching.",
|
|
13
|
+
operationType: "read",
|
|
14
|
+
origin: "search",
|
|
15
|
+
method: "GET",
|
|
16
|
+
path: "/",
|
|
17
|
+
queryKeys: Object.keys(readSchemaProperties(searchInput)),
|
|
18
|
+
inputSchema: searchInput,
|
|
19
|
+
outputSchema: searchOutput,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "list_search_usage",
|
|
23
|
+
description: "List paginated search usage records and recorded results.",
|
|
24
|
+
operationType: "read",
|
|
25
|
+
origin: "search",
|
|
26
|
+
method: "GET",
|
|
27
|
+
path: "/usage",
|
|
28
|
+
queryKeys: usageQueryKeys,
|
|
29
|
+
inputSchema: usageInput,
|
|
30
|
+
outputSchema: usageOutput,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: "fetch_urls",
|
|
34
|
+
description: "Fetch up to ten URLs with content extraction, selectors and conditional request support; inspect per-URL errors.",
|
|
35
|
+
operationType: "read",
|
|
36
|
+
origin: "fetchApi",
|
|
37
|
+
method: "POST",
|
|
38
|
+
path: "/",
|
|
39
|
+
inputSchema: fetchInput,
|
|
40
|
+
outputSchema: fetchOutput,
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: "list_fetch_usage",
|
|
44
|
+
description: "List paginated fetch usage records.",
|
|
45
|
+
operationType: "read",
|
|
46
|
+
origin: "fetchApi",
|
|
47
|
+
method: "GET",
|
|
48
|
+
path: "/usage",
|
|
49
|
+
queryKeys: usageQueryKeys,
|
|
50
|
+
inputSchema: usageInput,
|
|
51
|
+
outputSchema: usageOutput,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: "start_research",
|
|
55
|
+
description: "Start deep or maximum-depth research and retrieve its reports through get_research_run.",
|
|
56
|
+
operationType: "write",
|
|
57
|
+
origin: "main",
|
|
58
|
+
method: "POST",
|
|
59
|
+
path: "/v1/automation/run-research-async",
|
|
60
|
+
inputSchema: researchInput,
|
|
61
|
+
outputSchema: s.looseObject("Research submission.", {
|
|
62
|
+
research_run_id: researchId,
|
|
63
|
+
error: s.nullable(s.looseObject("Run creation error; null on success.")),
|
|
64
|
+
}),
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: "list_research_runs",
|
|
68
|
+
description: "List research runs with query, state, timestamp and cursor filters.",
|
|
69
|
+
operationType: "read",
|
|
70
|
+
origin: "main",
|
|
71
|
+
method: "GET",
|
|
72
|
+
path: "/v1/research-run",
|
|
73
|
+
queryKeys: Object.keys(readSchemaProperties(researchListInput)),
|
|
74
|
+
inputSchema: researchListInput,
|
|
75
|
+
outputSchema: s.looseObject("Research run page.", {
|
|
76
|
+
data: s.array("Research runs.", researchOutput),
|
|
77
|
+
pagination: s.looseObject("Pagination metadata.", {
|
|
78
|
+
total: s.integer("Total matching runs."),
|
|
79
|
+
next_cursor: s.nullable(s.string("Next-page cursor.")),
|
|
80
|
+
has_more: s.boolean("Whether more results exist."),
|
|
81
|
+
}),
|
|
82
|
+
}),
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: "get_research_run",
|
|
86
|
+
description: "Get research progress, final reports, sources and terminal outcome.",
|
|
87
|
+
operationType: "read",
|
|
88
|
+
origin: "main",
|
|
89
|
+
method: "GET",
|
|
90
|
+
path: "/v1/research-run/{research_run_id}",
|
|
91
|
+
pathKeys: ["research_run_id"],
|
|
92
|
+
inputSchema: researchIdInput,
|
|
93
|
+
outputSchema: researchOutput,
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
name: "cancel_research_run",
|
|
97
|
+
description: "Cancel a research run and return whether its state changed.",
|
|
98
|
+
operationType: "destructive",
|
|
99
|
+
origin: "main",
|
|
100
|
+
method: "POST",
|
|
101
|
+
path: "/v1/research-run/{research_run_id}/cancel",
|
|
102
|
+
pathKeys: ["research_run_id"],
|
|
103
|
+
inputSchema: researchIdInput,
|
|
104
|
+
outputSchema: s.looseObject("Cancellation outcome.", {
|
|
105
|
+
research_run_id: researchId,
|
|
106
|
+
status: researchStatus,
|
|
107
|
+
cancelled: s.boolean("Whether this request cancelled the run."),
|
|
108
|
+
}),
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: "create_monitor",
|
|
112
|
+
description: "Create a Page or Topic Monitor with a schedule and baseline run; requires a personal API key.",
|
|
113
|
+
operationType: "write",
|
|
114
|
+
origin: "main",
|
|
115
|
+
method: "POST",
|
|
116
|
+
path: "/v1/monitors",
|
|
117
|
+
inputSchema: monitorCreateInput,
|
|
118
|
+
outputSchema: s.looseObject("Created monitor and baseline.", {
|
|
119
|
+
monitor: monitorOutput,
|
|
120
|
+
run: s.looseObject("Baseline page or topic run."),
|
|
121
|
+
}),
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
name: "list_monitors",
|
|
125
|
+
description: "List Page and Topic Monitors owned by the personal API key.",
|
|
126
|
+
operationType: "read",
|
|
127
|
+
origin: "main",
|
|
128
|
+
method: "GET",
|
|
129
|
+
path: "/v1/monitors",
|
|
130
|
+
inputSchema: s.requiredObject("No parameters.", {}),
|
|
131
|
+
outputSchema: s.looseObject("Monitor list.", {
|
|
132
|
+
monitors: s.array("Owned monitors.", monitorOutput),
|
|
133
|
+
}),
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
name: "get_monitor",
|
|
137
|
+
description: "Get a Page or Topic Monitor and its configuration.",
|
|
138
|
+
operationType: "read",
|
|
139
|
+
origin: "main",
|
|
140
|
+
method: "GET",
|
|
141
|
+
path: "/v1/monitors/{id}",
|
|
142
|
+
pathKeys: ["id"],
|
|
143
|
+
inputSchema: monitorIdInput,
|
|
144
|
+
outputSchema: monitorOutput,
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
name: "update_monitor",
|
|
148
|
+
description: "Pause or resume a Monitor, or update its schedule and optional metadata; these update modes cannot be combined.",
|
|
149
|
+
operationType: "destructive",
|
|
150
|
+
origin: "main",
|
|
151
|
+
method: "PATCH",
|
|
152
|
+
path: "/v1/monitors/{id}",
|
|
153
|
+
pathKeys: ["id"],
|
|
154
|
+
inputSchema: monitorUpdateInput,
|
|
155
|
+
outputSchema: monitorOutput,
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
name: "delete_monitor",
|
|
159
|
+
description: "Delete a Monitor and stop its scheduled runs.",
|
|
160
|
+
operationType: "destructive",
|
|
161
|
+
origin: "main",
|
|
162
|
+
method: "DELETE",
|
|
163
|
+
path: "/v1/monitors/{id}",
|
|
164
|
+
pathKeys: ["id"],
|
|
165
|
+
inputSchema: monitorIdInput,
|
|
166
|
+
outputSchema: s.looseObject("Deletion result.", {
|
|
167
|
+
deleted: s.literal(true, {
|
|
168
|
+
description: "Whether deletion succeeded.",
|
|
169
|
+
}),
|
|
170
|
+
id: monitorId,
|
|
171
|
+
}),
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
name: "run_monitor",
|
|
175
|
+
description: "Run a Monitor immediately and return its Page or Topic results.",
|
|
176
|
+
operationType: "write",
|
|
177
|
+
origin: "main",
|
|
178
|
+
method: "POST",
|
|
179
|
+
path: "/v1/monitors/{id}/runs",
|
|
180
|
+
pathKeys: ["id"],
|
|
181
|
+
inputSchema: monitorIdInput,
|
|
182
|
+
outputSchema: s.looseObject("Monitor run result.", {
|
|
183
|
+
run: s.looseObject("Page or Topic run, including change detection results."),
|
|
184
|
+
}),
|
|
185
|
+
},
|
|
186
|
+
];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { JsonSchema } from "../../core/types.ts";
|
|
2
|
+
export declare const usageInput: JsonSchema;
|
|
3
|
+
export declare const usageOutput: JsonSchema;
|
|
4
|
+
export declare const fetchInput: JsonSchema;
|
|
5
|
+
export declare const fetchOutput: JsonSchema;
|
|
6
|
+
export declare const searchInput: JsonSchema;
|
|
7
|
+
export declare const searchOutput: JsonSchema;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { s } from "../../core/json-schema.js";
|
|
2
|
+
export const usageInput = s.object("Usage filters.", {
|
|
3
|
+
start_after: s.string("Start timestamp, exclusive.", { format: "date-time" }),
|
|
4
|
+
end_before: s.string("End timestamp, exclusive.", { format: "date-time" }),
|
|
5
|
+
status: s.stringEnum("Usage outcome.", ["completed", "failed"]),
|
|
6
|
+
limit: s.integer("Records per page; defaults to 100.", { minimum: 1, maximum: 1000 }),
|
|
7
|
+
page: s.integer("Page number, starting at 1.", { minimum: 1 }),
|
|
8
|
+
}, { required: [] });
|
|
9
|
+
export const usageOutput = s.looseObject("Paginated usage records.", {
|
|
10
|
+
items: s.array("Usage records.", s.looseObject("Usage record.")),
|
|
11
|
+
total: s.integer("Total records."),
|
|
12
|
+
limit: s.integer("Page size."),
|
|
13
|
+
page: s.integer("Current page."),
|
|
14
|
+
total_pages: s.integer("Total pages."),
|
|
15
|
+
has_more: s.boolean("Whether another page exists."),
|
|
16
|
+
});
|
|
17
|
+
const fetchOptions = {
|
|
18
|
+
purpose: s.string("Underlying task used to tailor extraction.", {
|
|
19
|
+
minLength: 1,
|
|
20
|
+
maxLength: 2000,
|
|
21
|
+
}),
|
|
22
|
+
format: s.stringEnum("Extracted content format; defaults to markdown.", ["markdown", "html", "json"]),
|
|
23
|
+
links: s.boolean("Extract outbound links."),
|
|
24
|
+
image_links: s.boolean("Extract image URLs."),
|
|
25
|
+
iframe_links: s.boolean("Extract iframe URLs; browser-rendered frames require browser rendering."),
|
|
26
|
+
page_metadata: s.boolean("Include canonical URL, favicon, robots, Open Graph, Twitter and other page metadata."),
|
|
27
|
+
ttl: s.integer("Cache freshness tolerance in seconds; 0 prefers live fetch, but origin caching may extend tolerance.", { minimum: 0 }),
|
|
28
|
+
per_url_timeout_ms: s.integer("Independent timeout budget per URL in milliseconds.", {
|
|
29
|
+
minimum: 1,
|
|
30
|
+
maximum: 110000,
|
|
31
|
+
}),
|
|
32
|
+
if_none_match: s.string("ETag to replay; valid only with one URL.", { minLength: 1 }),
|
|
33
|
+
if_modified_since: s.string("Last-Modified validator to replay; valid only with one URL.", {
|
|
34
|
+
minLength: 1,
|
|
35
|
+
}),
|
|
36
|
+
include_etag_and_last_modified: s.boolean("Include validators and conditional not_modified results."),
|
|
37
|
+
include_selectors: s.array("Extract only matching CSS regions; total misses return selector_not_matched with retry hints.", s.string("CSS selector.", { minLength: 1, maxLength: 1000 }), { minItems: 1, maxItems: 20 }),
|
|
38
|
+
exclude_selectors: s.array("Remove matching CSS regions before extraction; direct PDF/CSV returns selector_unsupported.", s.string("CSS selector.", { minLength: 1, maxLength: 1000 }), { minItems: 1, maxItems: 20 }),
|
|
39
|
+
};
|
|
40
|
+
export const fetchInput = {
|
|
41
|
+
...s.object("Fetch one or more URLs independently.", {
|
|
42
|
+
urls: s.array("URLs fetched by TinyFish.", s.string("Public URL.", { format: "uri" }), {
|
|
43
|
+
minItems: 1,
|
|
44
|
+
maxItems: 10,
|
|
45
|
+
}),
|
|
46
|
+
...fetchOptions,
|
|
47
|
+
}, { required: ["urls"] }),
|
|
48
|
+
anyOf: [
|
|
49
|
+
{ not: { anyOf: [{ required: ["if_none_match"] }, { required: ["if_modified_since"] }] } },
|
|
50
|
+
{ properties: { urls: { maxItems: 1 } } },
|
|
51
|
+
],
|
|
52
|
+
};
|
|
53
|
+
export const fetchOutput = s.looseObject("Fetch results with independent per-URL errors.", {
|
|
54
|
+
results: s.array("Successfully fetched URLs including conditional results.", s.looseObject("Fetched page.", {
|
|
55
|
+
url: s.string("Requested URL."),
|
|
56
|
+
final_url: s.nullable(s.string("Final URL.")),
|
|
57
|
+
title: s.nullable(s.string("Page title.")),
|
|
58
|
+
text: s.unknown("Extracted markdown, HTML or structured JSON; may be null."),
|
|
59
|
+
format: s.stringEnum("Content format.", ["markdown", "html", "json"]),
|
|
60
|
+
not_modified: s.boolean("True when the origin returned 304."),
|
|
61
|
+
etag: s.string("ETag validator."),
|
|
62
|
+
last_modified: s.string("Last-Modified validator."),
|
|
63
|
+
unmatched_selectors: s.stringArray("Selectors that did not match while others succeeded."),
|
|
64
|
+
})),
|
|
65
|
+
errors: s.array("Failures for individual URLs.", s.looseObject("Fetch failure.", {
|
|
66
|
+
url: s.string("Failed URL."),
|
|
67
|
+
error: s.string("Provider error code."),
|
|
68
|
+
status: s.integer("Origin HTTP status when applicable."),
|
|
69
|
+
unmatched_selectors: s.stringArray("Selectors with no match."),
|
|
70
|
+
candidate_selectors: s.stringArray("Suggested selectors for a retry."),
|
|
71
|
+
})),
|
|
72
|
+
request_id: s.string("Correlation ID, present for failed URLs."),
|
|
73
|
+
});
|
|
74
|
+
export const searchInput = s.object("Search query and filters.", {
|
|
75
|
+
query: s.string("Search query.", { minLength: 1, maxLength: 2000 }),
|
|
76
|
+
purpose: s.string("Underlying task used to rank results.", { minLength: 1, maxLength: 2000 }),
|
|
77
|
+
location: s.string("Country code; inferred from language when omitted."),
|
|
78
|
+
language: s.string("Language code; inferred from location when omitted."),
|
|
79
|
+
include_domains: s.string("Comma-separated domains to include."),
|
|
80
|
+
exclude_domains: s.string("Comma-separated domains to exclude."),
|
|
81
|
+
domain_type: s.stringEnum("Search source pool.", ["web", "news", "research_paper"]),
|
|
82
|
+
after_date: s.string("Return results after YYYY-MM-DD."),
|
|
83
|
+
before_date: s.string("Return results before YYYY-MM-DD."),
|
|
84
|
+
recency_minutes: s.integer("Freshness window in minutes.", { minimum: 1, maximum: 5256000 }),
|
|
85
|
+
pub_year_min: s.integer("Minimum research-paper publication year. Only supported for domain_type=research_paper.", {
|
|
86
|
+
minimum: 0,
|
|
87
|
+
maximum: 9999,
|
|
88
|
+
}),
|
|
89
|
+
pub_year_max: s.integer("Maximum research-paper publication year. Only supported for domain_type=research_paper.", {
|
|
90
|
+
minimum: 0,
|
|
91
|
+
maximum: 9999,
|
|
92
|
+
}),
|
|
93
|
+
page: s.nullable(s.integer("Page index, starting at 0.", { minimum: 0, maximum: 10 })),
|
|
94
|
+
include_thumbnail: s.stringEnum("Include available thumbnails.", ["true", "false"]),
|
|
95
|
+
fetch: s.looseObject("Fetch configuration; encoded as JSON in the query string, maximum 256 encoded characters."),
|
|
96
|
+
}, { required: ["query"] });
|
|
97
|
+
export const searchOutput = s.looseObject("Search results.", {
|
|
98
|
+
query: s.string("Executed query."),
|
|
99
|
+
results: s.array("Ranked results with optional fetched content and fetch_error.", s.looseObject("Search result.")),
|
|
100
|
+
total_results: s.integer("Total results."),
|
|
101
|
+
page: s.integer("Current zero-based page."),
|
|
102
|
+
request_id: s.string("Correlation ID when any fetch failed."),
|
|
103
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ActionDefinition, JsonSchema } from "../../core/types.ts";
|
|
2
|
+
export interface TinyfishEndpoint {
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
operationType: ActionDefinition["operationType"];
|
|
6
|
+
origin: "main" | "search" | "fetchApi" | "browser";
|
|
7
|
+
path: string;
|
|
8
|
+
method: "GET" | "POST" | "PATCH" | "DELETE";
|
|
9
|
+
pathKeys?: string[];
|
|
10
|
+
queryKeys?: string[];
|
|
11
|
+
inputSchema: JsonSchema;
|
|
12
|
+
outputSchema: JsonSchema;
|
|
13
|
+
responseType?: "screenshot" | "html";
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CredentialValidators, ProviderExecutors, ProviderProxyExecutor } from "../../core/types.ts";
|
|
2
|
+
export declare const credentialValidators: CredentialValidators;
|
|
3
|
+
export declare const executors: ProviderExecutors;
|
|
4
|
+
export declare const proxy: ProviderProxyExecutor;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
+
import { storeResponseInTransit } from "../../core/request.js";
|
|
3
|
+
import { requiredResponseRecord, isAbortLikeError, runProviderRequest, ProviderRequestError, providerInputError, providerResponseError, defineApiKeyProviderExecutors, defineProviderProxy, } from "../provider-runtime.js";
|
|
4
|
+
import { tinyfishActions } from "./actions.js";
|
|
5
|
+
import { tinyfishEndpointByName } from "./actions.js";
|
|
6
|
+
const origins = {
|
|
7
|
+
main: "https://agent.tinyfish.ai",
|
|
8
|
+
search: "https://api.search.tinyfish.ai",
|
|
9
|
+
fetchApi: "https://api.fetch.tinyfish.ai",
|
|
10
|
+
browser: "https://api.browser.tinyfish.ai",
|
|
11
|
+
};
|
|
12
|
+
async function request(endpoint, input, apiKey, fetcher, validating = false, transitFiles, parentSignal) {
|
|
13
|
+
const body = { ...input };
|
|
14
|
+
let path = endpoint.path;
|
|
15
|
+
for (const key of endpoint.pathKeys ?? []) {
|
|
16
|
+
const value = String(body[key]);
|
|
17
|
+
if (value === "." || value === "..")
|
|
18
|
+
throw providerInputError(`Invalid ${key}`);
|
|
19
|
+
path = path.replace(`{${key}}`, encodeURIComponent(value));
|
|
20
|
+
delete body[key];
|
|
21
|
+
}
|
|
22
|
+
const url = new URL(path, origins[endpoint.origin]);
|
|
23
|
+
for (const key of endpoint.queryKeys ?? []) {
|
|
24
|
+
const value = body[key];
|
|
25
|
+
if (endpoint.name === "search" && key === "fetch" && JSON.stringify(value)?.length > 256)
|
|
26
|
+
throw providerInputError("Search fetch configuration must encode to at most 256 characters");
|
|
27
|
+
if (value !== undefined && value !== null)
|
|
28
|
+
url.searchParams.set(key, typeof value === "object" ? JSON.stringify(value) : String(value));
|
|
29
|
+
delete body[key];
|
|
30
|
+
}
|
|
31
|
+
const headers = new Headers({
|
|
32
|
+
"X-API-Key": apiKey,
|
|
33
|
+
accept: endpoint.responseType === "screenshot"
|
|
34
|
+
? "image/jpeg"
|
|
35
|
+
: endpoint.responseType === "html"
|
|
36
|
+
? "text/html"
|
|
37
|
+
: "application/json",
|
|
38
|
+
});
|
|
39
|
+
if (endpoint.name === "top_up_wallet") {
|
|
40
|
+
const amount = Number(body.amount);
|
|
41
|
+
if (amount < 10 || amount > 500)
|
|
42
|
+
throw providerInputError("Wallet top-up amount must be between 10 and 500 USD");
|
|
43
|
+
const paymentAuthorization = optionalString(body.paymentAuthorization);
|
|
44
|
+
if (paymentAuthorization)
|
|
45
|
+
headers.set("Payment-Authorization", paymentAuthorization);
|
|
46
|
+
delete body.paymentAuthorization;
|
|
47
|
+
}
|
|
48
|
+
const hasBody = endpoint.method === "POST" || endpoint.method === "PATCH";
|
|
49
|
+
if (hasBody)
|
|
50
|
+
headers.set("content-type", "application/json");
|
|
51
|
+
if (endpoint.responseType && !transitFiles)
|
|
52
|
+
throw new ProviderRequestError(500, "TinyFish snapshots require file transit and execution context", undefined, "provider_error");
|
|
53
|
+
const timeoutMs = endpoint.origin === "fetchApi" && endpoint.method === "POST" ? 150000 : undefined;
|
|
54
|
+
return runProviderRequest({ label: "TinyFish", timeoutMs, signal: parentSignal }, async (signal) => {
|
|
55
|
+
const response = await fetcher(url, {
|
|
56
|
+
method: endpoint.method,
|
|
57
|
+
headers,
|
|
58
|
+
body: hasBody ? JSON.stringify(body) : undefined,
|
|
59
|
+
signal,
|
|
60
|
+
});
|
|
61
|
+
if (response.ok && endpoint.responseType) {
|
|
62
|
+
const mimeType = endpoint.responseType === "screenshot" ? "image/jpeg" : "text/html";
|
|
63
|
+
const file = await storeResponseInTransit(response, transitFiles, {
|
|
64
|
+
name: endpoint.responseType === "screenshot" ? "tinyfish-screenshot.jpg" : "tinyfish-snapshot.html",
|
|
65
|
+
mimeType,
|
|
66
|
+
fieldName: "TinyFish snapshot",
|
|
67
|
+
createError: providerResponseError,
|
|
68
|
+
signal,
|
|
69
|
+
});
|
|
70
|
+
return { url: file.downloadUrl, mimeType };
|
|
71
|
+
}
|
|
72
|
+
if (response.status === 204 && response.ok)
|
|
73
|
+
return { success: true };
|
|
74
|
+
const payload = await response.json().catch((error) => {
|
|
75
|
+
if (isAbortLikeError(error))
|
|
76
|
+
throw error;
|
|
77
|
+
return undefined;
|
|
78
|
+
});
|
|
79
|
+
if (endpoint.name === "top_up_wallet" && response.status === 402 && response.headers.has("www-authenticate")) {
|
|
80
|
+
return {
|
|
81
|
+
status: "payment_required",
|
|
82
|
+
challenge: response.headers.get("www-authenticate"),
|
|
83
|
+
body: payload ?? null,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
if (!response.ok) {
|
|
87
|
+
const object = optionalRecord(payload);
|
|
88
|
+
const error = optionalRecord(object?.error);
|
|
89
|
+
const code = optionalString(error?.code);
|
|
90
|
+
const message = optionalString(error?.message) ??
|
|
91
|
+
optionalString(object?.message) ??
|
|
92
|
+
optionalString(object?.detail) ??
|
|
93
|
+
optionalString(object?.title);
|
|
94
|
+
const hint = optionalString(object?.hint) ?? optionalString(error?.hint);
|
|
95
|
+
const invalidKey = code === "INVALID_API_KEY" || code === "MISSING_API_KEY";
|
|
96
|
+
throw new ProviderRequestError(invalidKey && validating ? 400 : response.status, `TinyFish request failed (${response.status})${code ? `: ${code}` : ""}${message ? `: ${message}` : ""}${hint ? `: ${hint}` : ""}`, undefined, invalidKey ? (validating ? "invalid_input" : "authorization_failed") : "provider_error");
|
|
97
|
+
}
|
|
98
|
+
const result = requiredResponseRecord(payload, "TinyFish response");
|
|
99
|
+
const taskIdFields = { submit_run: "run_id", start_research: "research_run_id" };
|
|
100
|
+
const taskIdField = taskIdFields[endpoint.name];
|
|
101
|
+
if (taskIdField && !optionalString(result[taskIdField]))
|
|
102
|
+
throw providerResponseError("TinyFish task creation failed: missing task ID");
|
|
103
|
+
if (endpoint.name === "submit_run_batch" && !Array.isArray(result.run_ids)) {
|
|
104
|
+
const error = optionalRecord(result.error);
|
|
105
|
+
throw providerResponseError(`TinyFish batch creation failed: ${optionalString(error?.message) ?? "missing run IDs"}`);
|
|
106
|
+
}
|
|
107
|
+
return result;
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
async function execute(actionName, values, context) {
|
|
111
|
+
const { apiKey, fetcher } = context;
|
|
112
|
+
const endpoint = tinyfishEndpointByName.get(actionName);
|
|
113
|
+
if (!endpoint)
|
|
114
|
+
throw providerInputError("Unknown TinyFish action");
|
|
115
|
+
return request(endpoint, values, apiKey, fetcher, false, context.transitFiles, context.signal);
|
|
116
|
+
}
|
|
117
|
+
export const credentialValidators = {
|
|
118
|
+
async apiKey(input, { fetcher, signal }) {
|
|
119
|
+
const endpoint = [...tinyfishEndpointByName.values()].find((entry) => entry.origin === "search" && entry.path === "/usage");
|
|
120
|
+
await request(endpoint, { limit: 1 }, input.apiKey, fetcher, true, undefined, signal);
|
|
121
|
+
return { profile: { displayName: "TinyFish API Key" }, grantedScopes: [], metadata: {} };
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
export const executors = defineApiKeyProviderExecutors("tinyfish", Object.fromEntries(tinyfishActions.map((action) => [action.name, (values, context) => execute(action.name, values, context)])));
|
|
125
|
+
export const proxy = defineProviderProxy({
|
|
126
|
+
service: "tinyfish",
|
|
127
|
+
baseUrl: origins.main,
|
|
128
|
+
allowedOrigins: Object.values(origins),
|
|
129
|
+
auth: { type: "api_key_header", name: "X-API-Key" },
|
|
130
|
+
customizeRequest({ headers }) {
|
|
131
|
+
headers.set("accept", "application/json");
|
|
132
|
+
},
|
|
133
|
+
});
|