@oomol-lab/open-connector 1.6.4 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/open-connector/catalog/apps/aisa.json +6394 -0
- package/assets/open-connector/catalog/apps/baizhi_mcp.json +135 -0
- package/assets/open-connector/catalog/apps/bilibili.json +2586 -0
- package/assets/open-connector/catalog/apps/bitwarden.json +1423 -0
- package/assets/open-connector/catalog/apps/cronfree.json +303 -0
- package/assets/open-connector/catalog/apps/cufinder.json +368 -0
- package/assets/open-connector/catalog/apps/discordbot.json +2888 -248
- package/assets/open-connector/catalog/apps/drawio_mcp.json +192 -0
- package/assets/open-connector/catalog/apps/firecrawl.json +176 -32
- package/assets/open-connector/catalog/apps/framejet.json +273 -0
- package/assets/open-connector/catalog/apps/futunn.json +2967 -0
- package/assets/open-connector/catalog/apps/gmail.json +298 -0
- package/assets/open-connector/catalog/apps/google_analytics.json +4 -1
- package/assets/open-connector/catalog/apps/google_bigquery.json +4 -1
- package/assets/open-connector/catalog/apps/google_search_console.json +4 -1
- package/assets/open-connector/catalog/apps/googlecalendar.json +4 -1
- package/assets/open-connector/catalog/apps/googlechat.json +694 -7
- package/assets/open-connector/catalog/apps/googledocs.json +4 -1
- package/assets/open-connector/catalog/apps/googlesheets.json +4 -1
- package/assets/open-connector/catalog/apps/granola.json +23 -0
- package/assets/open-connector/catalog/apps/investoday_mcp.json +22228 -197
- package/assets/open-connector/catalog/apps/ixspy.json +2274 -0
- package/assets/open-connector/catalog/apps/keepa.json +3534 -987
- package/assets/open-connector/catalog/apps/linear.json +17 -0
- package/assets/open-connector/catalog/apps/linear_mcp.json +510 -0
- package/assets/open-connector/catalog/apps/moneyforward_mcp.json +1432 -0
- package/assets/open-connector/catalog/apps/notion.json +446 -1
- package/assets/open-connector/catalog/apps/notion_mcp.json +490 -0
- package/assets/open-connector/catalog/apps/odoo.json +619 -0
- package/assets/open-connector/catalog/apps/osv.json +663 -0
- package/assets/open-connector/catalog/apps/outlook.json +30 -8
- package/assets/open-connector/catalog/apps/outlook_calendar.json +23 -2
- package/assets/open-connector/catalog/apps/pdf_vector.json +329 -0
- package/assets/open-connector/catalog/apps/postiz.json +334 -0
- package/assets/open-connector/catalog/apps/proworkflow.json +529 -0
- package/assets/open-connector/catalog/apps/pulsetic.json +406 -0
- package/assets/open-connector/catalog/apps/sellersprite_mcp.json +2 -1
- package/assets/open-connector/catalog/apps/shopee.json +1785 -0
- package/assets/open-connector/catalog/apps/slack.json +304 -0
- package/assets/open-connector/catalog/apps/slackbot.json +295 -0
- package/assets/open-connector/catalog/apps/speak_ai.json +360 -0
- package/assets/open-connector/catalog/apps/tencent_docs.json +3 -0
- package/assets/open-connector/catalog/apps/wisburg.json +1528 -0
- package/assets/open-connector/catalog/apps/youtube.json +4 -1
- package/assets/open-connector/catalog/apps/zerotier.json +3319 -0
- package/assets/open-connector/catalog/apps/zyhub.json +1585 -0
- package/assets/open-connector/catalog/apps-index.json +1 -1
- package/package.json +1 -1
- package/src/core/cast.d.ts +10 -0
- package/src/core/cast.js +14 -0
- package/src/core/guarded-fetch.d.ts +6 -3
- package/src/core/guarded-fetch.js +6 -3
- package/src/core/json-schema.d.ts +5 -1
- package/src/core/json-schema.js +14 -2
- package/src/core/provider-scenarios.js +67 -13
- package/src/core/request.js +4 -1
- package/src/core/types.d.ts +10 -1
- package/src/mcp.js +10 -7
- package/src/oauth/oauth-client-config-service.d.ts +16 -1
- package/src/oauth/oauth-client-config-service.js +59 -3
- package/src/oauth/oauth-credential-refresh-service.js +3 -1
- package/src/oauth/oauth-flow-service.d.ts +6 -0
- package/src/oauth/oauth-flow-service.js +21 -4
- package/src/oauth/oauth-token.d.ts +13 -0
- package/src/providers/17track/runtime.js +1 -1
- package/src/providers/action-contracts.generated.d.ts +32 -8
- package/src/providers/aifinmarket/runtime.js +1 -1
- package/src/providers/aisa/executors.d.ts +4 -0
- package/src/providers/aisa/executors.js +864 -0
- package/src/providers/aliyun_ack/runtime.js +1 -1
- package/src/providers/aliyun_sls/runtime.js +1 -1
- package/src/providers/app_store_server/runtime-helpers.js +1 -1
- package/src/providers/baizhi_mcp/actions.d.ts +2 -0
- package/src/providers/baizhi_mcp/actions.js +40 -0
- package/src/providers/baizhi_mcp/executors.d.ts +3 -0
- package/src/providers/baizhi_mcp/executors.js +102 -0
- package/src/providers/bazhuayu/runtime.js +2 -2
- package/src/providers/bilibili/articles.d.ts +3 -0
- package/src/providers/bilibili/articles.js +369 -0
- package/src/providers/bilibili/executors.d.ts +8 -0
- package/src/providers/bilibili/executors.js +262 -0
- package/src/providers/bilibili/runtime.d.ts +95 -0
- package/src/providers/bilibili/runtime.js +236 -0
- package/src/providers/bilibili/upload.d.ts +14 -0
- package/src/providers/bilibili/upload.js +107 -0
- package/src/providers/bitwarden/executors.d.ts +3 -0
- package/src/providers/bitwarden/executors.js +146 -0
- package/src/providers/cloudflare_browser_rendering/executors.js +1 -1
- package/src/providers/cloudflare_dns/executors.js +1 -1
- package/src/providers/{cloudflare-current-user.js → cloudflare_dns/runtime-user.js} +2 -2
- package/src/providers/cloudflare_dns/runtime.d.ts +1 -1
- package/src/providers/cloudflare_dns/runtime.js +1 -1
- package/src/providers/cloudflare_r2/executors.js +1 -1
- package/src/providers/cloudflare_r2/runtime.d.ts +1 -1
- package/src/providers/cloudflare_r2/runtime.js +1 -1
- package/src/providers/cloudflare_worker/executors.js +1 -1
- package/src/providers/cloudflare_worker/runtime.d.ts +1 -1
- package/src/providers/cloudflare_worker/runtime.js +1 -1
- package/src/providers/cronfree/executors.d.ts +4 -0
- package/src/providers/cronfree/executors.js +89 -0
- package/src/providers/cufinder/executors.d.ts +4 -0
- package/src/providers/cufinder/executors.js +105 -0
- package/src/providers/dingtalk_mcp/runtime.js +1 -1
- package/src/providers/discordbot/executors.d.ts +0 -9
- package/src/providers/discordbot/executors.js +9 -101
- package/src/providers/discordbot/runtime-guilds.d.ts +3 -0
- package/src/providers/discordbot/runtime-guilds.js +464 -0
- package/src/providers/discordbot/runtime.d.ts +42 -0
- package/src/providers/discordbot/runtime.js +124 -0
- package/src/providers/drawio_mcp/executors.d.ts +3 -0
- package/src/providers/drawio_mcp/executors.js +19 -0
- package/src/providers/drawio_mcp/runtime.d.ts +8 -0
- package/src/providers/drawio_mcp/runtime.js +175 -0
- package/src/providers/elevenreader/runtime.js +6 -5
- package/src/providers/fastmoss_mcp/executors.js +2 -2
- package/src/providers/finchina/executors.js +1 -1
- package/src/providers/framejet/executors.d.ts +4 -0
- package/src/providers/framejet/executors.js +19 -0
- package/src/providers/framejet/runtime.d.ts +16 -0
- package/src/providers/framejet/runtime.js +148 -0
- package/src/providers/futunn/actions.d.ts +2 -0
- package/src/providers/futunn/actions.js +152 -0
- package/src/providers/futunn/actions.research.d.ts +2 -0
- package/src/providers/futunn/actions.research.js +423 -0
- package/src/providers/futunn/actions.trading.d.ts +2 -0
- package/src/providers/futunn/actions.trading.js +204 -0
- package/src/providers/futunn/executors.d.ts +3 -0
- package/src/providers/futunn/executors.js +24 -0
- package/src/providers/futunn/runtime-research.d.ts +3 -0
- package/src/providers/futunn/runtime-research.js +133 -0
- package/src/providers/futunn/runtime-trading.d.ts +3 -0
- package/src/providers/futunn/runtime-trading.js +39 -0
- package/src/providers/futunn/runtime.d.ts +2 -0
- package/src/providers/futunn/runtime.js +50 -0
- package/src/providers/futunn/transport.d.ts +11 -0
- package/src/providers/futunn/transport.js +76 -0
- package/src/providers/gildata/executors.js +1 -1
- package/src/providers/gmail/attachment-stream.d.ts +2 -0
- package/src/providers/gmail/attachment-stream.js +162 -0
- package/src/providers/gmail/executors.d.ts +3 -1
- package/src/providers/gmail/executors.js +54 -26
- package/src/providers/gmail/message.d.ts +6 -8
- package/src/providers/gmail/message.js +4 -0
- package/src/providers/gmail/scopes.d.ts +32 -0
- package/src/providers/gmail/scopes.js +37 -0
- package/src/providers/google_analytics/executors.js +2 -2
- package/src/providers/google_analytics/scopes.js +6 -1
- package/src/providers/google_bigquery/executors.js +2 -2
- package/src/providers/google_bigquery/scopes.js +2 -0
- package/src/providers/google_search_console/executors.js +2 -2
- package/src/providers/google_search_console/scopes.js +2 -0
- package/src/providers/googleads/executors.js +1 -1
- package/src/providers/googleads/scopes.d.ts +1 -3
- package/src/providers/googleads/scopes.js +2 -4
- package/src/providers/googlecalendar/executors.js +1 -1
- package/src/providers/googlecalendar/runtime-shared.js +2 -2
- package/src/providers/googlecalendar/scopes.js +2 -0
- package/src/providers/googlechat/executors.d.ts +1 -3
- package/src/providers/googlechat/executors.js +219 -28
- package/src/providers/googlechat/members.d.ts +55 -0
- package/src/providers/googlechat/members.js +293 -0
- package/src/providers/googlechat/runtime.d.ts +16 -0
- package/src/providers/googlechat/runtime.js +25 -0
- package/src/providers/googlechat/scopes.d.ts +22 -3
- package/src/providers/googlechat/scopes.js +30 -7
- package/src/providers/googledocs/executors.js +1 -1
- package/src/providers/googledrive/executors.js +2 -2
- package/src/providers/{google-auth.d.ts → googledrive/runtime-auth.d.ts} +2 -2
- package/src/providers/{google-auth.js → googledrive/runtime-auth.js} +3 -3
- package/src/providers/googledrive/runtime-collaboration.js +1 -1
- package/src/providers/{google-runtime.d.ts → googledrive/runtime-request.d.ts} +1 -1
- package/src/providers/{google-runtime.js → googledrive/runtime-request.js} +2 -2
- package/src/providers/googleforms/executors.js +2 -2
- package/src/providers/googleforms/scopes.d.ts +0 -3
- package/src/providers/googleforms/scopes.js +2 -6
- package/src/providers/googlemeet/executors.js +2 -2
- package/src/providers/googlemeet/scopes.d.ts +0 -3
- package/src/providers/googlemeet/scopes.js +2 -6
- package/src/providers/googlesheets/executors.js +1 -1
- package/src/providers/googlesheets/scopes.js +2 -0
- package/src/providers/googleslides/executors.js +2 -2
- package/src/providers/googleslides/scopes.d.ts +0 -3
- package/src/providers/googleslides/scopes.js +2 -6
- package/src/providers/googletasks/executors.js +2 -2
- package/src/providers/googletasks/scopes.d.ts +0 -3
- package/src/providers/googletasks/scopes.js +2 -6
- package/src/providers/granola/actions.js +2 -0
- package/src/providers/granola/runtime-mcp.js +2 -0
- package/src/providers/granola/runtime.js +2 -2
- package/src/providers/indiegogo/executors.js +1 -1
- package/src/providers/investoday_mcp/executors.js +2 -2
- package/src/providers/investoday_mcp/official-actions.js +19 -372
- package/src/providers/investoday_mcp/official-tool-types.d.ts +10 -0
- package/src/providers/investoday_mcp/official-tool-types.js +4 -0
- package/src/providers/investoday_mcp/official-tools/charts.d.ts +2 -0
- package/src/providers/investoday_mcp/official-tools/charts.js +32 -0
- package/src/providers/investoday_mcp/official-tools/fixed-income.d.ts +2 -0
- package/src/providers/investoday_mcp/official-tools/fixed-income.js +326 -0
- package/src/providers/investoday_mcp/official-tools/funds.d.ts +2 -0
- package/src/providers/investoday_mcp/official-tools/funds.js +1085 -0
- package/src/providers/investoday_mcp/official-tools/hong-kong.d.ts +2 -0
- package/src/providers/investoday_mcp/official-tools/hong-kong.js +275 -0
- package/src/providers/investoday_mcp/official-tools/indices-industries.d.ts +2 -0
- package/src/providers/investoday_mcp/official-tools/indices-industries.js +642 -0
- package/src/providers/investoday_mcp/official-tools/macro-calendar.d.ts +2 -0
- package/src/providers/investoday_mcp/official-tools/macro-calendar.js +398 -0
- package/src/providers/investoday_mcp/official-tools/other.d.ts +2 -0
- package/src/providers/investoday_mcp/official-tools/other.js +131 -0
- package/src/providers/investoday_mcp/official-tools/research-news.d.ts +2 -0
- package/src/providers/investoday_mcp/official-tools/research-news.js +302 -0
- package/src/providers/investoday_mcp/official-tools/stocks.d.ts +2 -0
- package/src/providers/investoday_mcp/official-tools/stocks.js +2829 -0
- package/src/providers/ixspy/executors.d.ts +3 -0
- package/src/providers/ixspy/executors.js +220 -0
- package/src/providers/iyunbiao/runtime.js +2 -2
- package/src/providers/keepa/actions.d.ts +1 -1
- package/src/providers/keepa/actions.js +371 -149
- package/src/providers/keepa/deal-attributes.d.ts +1 -0
- package/src/providers/keepa/deal-attributes.js +26 -0
- package/src/providers/keepa/runtime.js +212 -18
- package/src/providers/kingdee/executors.js +1 -1
- package/src/providers/kingdee/runtime.js +2 -2
- package/src/providers/kuaidi100/runtime.js +1 -1
- package/src/providers/linear/executors.js +12 -9
- package/src/providers/linear_mcp/actions.d.ts +47 -0
- package/src/providers/linear_mcp/actions.js +102 -0
- package/src/providers/linear_mcp/endpoints.d.ts +3 -0
- package/src/providers/linear_mcp/endpoints.js +3 -0
- package/src/providers/linear_mcp/executors.d.ts +3 -0
- package/src/providers/linear_mcp/executors.js +9 -0
- package/src/providers/linear_mcp/runtime-mcp.d.ts +15 -0
- package/src/providers/linear_mcp/runtime-mcp.js +238 -0
- package/src/providers/lingxing_mcp/runtime.js +1 -1
- package/src/providers/mcdonalds_cn_mcp/runtime.js +1 -1
- package/src/providers/metabase/mcp-runtime.js +1 -1
- package/src/providers/moneyforward_mcp/executors.d.ts +3 -0
- package/src/providers/moneyforward_mcp/executors.js +11 -0
- package/src/providers/moneyforward_mcp/manifest.d.ts +31 -0
- package/src/providers/moneyforward_mcp/manifest.js +204 -0
- package/src/providers/moneyforward_mcp/runtime.d.ts +18 -0
- package/src/providers/moneyforward_mcp/runtime.js +296 -0
- package/src/providers/notion/executors.js +39 -3
- package/src/providers/notion_mcp/endpoints.d.ts +3 -0
- package/src/providers/notion_mcp/endpoints.js +3 -0
- package/src/providers/notion_mcp/executors.d.ts +3 -0
- package/src/providers/notion_mcp/executors.js +176 -0
- package/src/providers/notion_mcp/mcp-response.d.ts +86 -0
- package/src/providers/notion_mcp/mcp-response.js +314 -0
- package/src/providers/odoo/executors.d.ts +3 -0
- package/src/providers/odoo/executors.js +32 -0
- package/src/providers/odoo/runtime.d.ts +16 -0
- package/src/providers/odoo/runtime.js +140 -0
- package/src/providers/osv/executors.d.ts +2 -0
- package/src/providers/osv/executors.js +11 -0
- package/src/providers/osv/runtime.d.ts +9 -0
- package/src/providers/osv/runtime.js +66 -0
- package/src/providers/outlook/executors.js +27 -6
- package/src/providers/outlook/microsoft-graph.js +17 -6
- package/src/providers/outlook_calendar/executors.js +24 -7
- package/src/providers/patsnap_mcp/executors.js +2 -2
- package/src/providers/pdf_vector/executors.d.ts +4 -0
- package/src/providers/pdf_vector/executors.js +108 -0
- package/src/providers/postiz/executors.d.ts +4 -0
- package/src/providers/postiz/executors.js +83 -0
- package/src/providers/provider-runtime.d.ts +18 -0
- package/src/providers/provider-runtime.js +60 -4
- package/src/providers/proworkflow/executors.d.ts +4 -0
- package/src/providers/proworkflow/executors.js +135 -0
- package/src/providers/pulsetic/executors.d.ts +4 -0
- package/src/providers/pulsetic/executors.js +126 -0
- package/src/providers/registry.generated.js +24 -0
- package/src/providers/scrape_creators/catalog.js +1 -1
- package/src/providers/scrape_creators/runtime.js +1 -1
- package/src/providers/sellersprite_mcp/executors.js +2 -2
- package/src/providers/sellersprite_mcp/official-actions.js +3 -2
- package/src/providers/sentry/runtime.js +6 -7
- package/src/providers/shopee/actions.d.ts +2 -0
- package/src/providers/shopee/actions.js +474 -0
- package/src/providers/shopee/executors.d.ts +3 -0
- package/src/providers/shopee/executors.js +85 -0
- package/src/providers/shopee/runtime.d.ts +79 -0
- package/src/providers/shopee/runtime.js +693 -0
- package/src/providers/slack/actions.js +69 -3
- package/src/providers/slack/runtime.js +116 -21
- package/src/providers/slickdeals/runtime.js +1 -1
- package/src/providers/sorftime_mcp/executors.js +2 -2
- package/src/providers/speak_ai/executors.d.ts +3 -0
- package/src/providers/speak_ai/executors.js +187 -0
- package/src/providers/tikhub/bounded-response.d.ts +1 -1
- package/src/providers/tikhub/bounded-response.js +8 -34
- package/src/providers/tikhub/endpoint-catalog.js +1 -1
- package/src/providers/tikhub/runtime.js +2 -2
- package/src/providers/tongdaxin/executors.js +79 -15
- package/src/providers/tushare/runtime.js +22 -9
- package/src/providers/uspto/executors.js +1 -1
- package/src/providers/waffo/executors.js +1 -1
- package/src/providers/waffo/runtime.js +1 -1
- package/src/providers/wecom_mcp/runtime.js +1 -1
- package/src/providers/wisburg/executors.d.ts +4 -0
- package/src/providers/wisburg/executors.js +13 -0
- package/src/providers/wisburg/runtime.d.ts +12 -0
- package/src/providers/wisburg/runtime.js +133 -0
- package/src/providers/xydc_mcp/executors.js +2 -2
- package/src/providers/youtube/executors.js +1 -1
- package/src/providers/youtube/runtime.js +1 -1
- package/src/providers/zerotier/executors.d.ts +9 -0
- package/src/providers/zerotier/executors.js +629 -0
- package/src/providers/zerotier/runtime.d.ts +54 -0
- package/src/providers/zerotier/runtime.js +207 -0
- package/src/providers/zyhub/executors.d.ts +3 -0
- package/src/providers/zyhub/executors.js +240 -0
- package/src/server/api/openapi.js +12 -2
- package/src/server/api/runtime-api.d.ts +8 -1
- package/src/server/api/runtime-api.js +19 -1
- package/src/server/connect-server.js +10 -2
- package/src/server/files/transit-files.d.ts +3 -2
- package/src/server/files/transit-files.js +31 -35
- package/src/providers/sentry/scopes.d.ts +0 -1
- package/src/providers/sentry/scopes.js +0 -7
- /package/src/providers/{cloudflare-current-user.d.ts → cloudflare_dns/runtime-user.d.ts} +0 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { GoogleQueryValue } from "../googledrive/runtime-request.ts";
|
|
2
|
+
import type { OAuthProviderContext } from "../provider-runtime.ts";
|
|
3
|
+
export declare const googleChatApiBaseUrl = "https://chat.googleapis.com/v1";
|
|
4
|
+
export type GoogleChatRuntimeContext = OAuthProviderContext;
|
|
5
|
+
interface GoogleChatRequestInput {
|
|
6
|
+
context: Pick<GoogleChatRuntimeContext, "accessToken" | "fetcher" | "signal">;
|
|
7
|
+
method?: string;
|
|
8
|
+
query?: Record<string, GoogleQueryValue>;
|
|
9
|
+
body?: unknown;
|
|
10
|
+
}
|
|
11
|
+
/** Send an authenticated JSON request on behalf of the Google Chat connection, to Chat or another Google API. */
|
|
12
|
+
export declare function googleChatJsonRequest<T>(url: string, input: GoogleChatRequestInput): Promise<T>;
|
|
13
|
+
/** Percent-encode each segment of a resource name such as spaces/{space}, keeping the separators. */
|
|
14
|
+
export declare function encodeResourceName(name: string): string;
|
|
15
|
+
export declare function stripPrefix(value: string, prefix: string): string;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { googleJsonRequest } from "../googledrive/runtime-request.js";
|
|
2
|
+
export const googleChatApiBaseUrl = "https://chat.googleapis.com/v1";
|
|
3
|
+
const service = "googlechat";
|
|
4
|
+
/** Send an authenticated JSON request on behalf of the Google Chat connection, to Chat or another Google API. */
|
|
5
|
+
export function googleChatJsonRequest(url, input) {
|
|
6
|
+
return googleJsonRequest(url, {
|
|
7
|
+
accessToken: input.context.accessToken,
|
|
8
|
+
fetcher: input.context.fetcher,
|
|
9
|
+
signal: input.context.signal,
|
|
10
|
+
method: input.method,
|
|
11
|
+
query: input.query,
|
|
12
|
+
body: input.body,
|
|
13
|
+
service,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
/** Percent-encode each segment of a resource name such as spaces/{space}, keeping the separators. */
|
|
17
|
+
export function encodeResourceName(name) {
|
|
18
|
+
return name
|
|
19
|
+
.split("/")
|
|
20
|
+
.map((segment) => encodeURIComponent(segment))
|
|
21
|
+
.join("/");
|
|
22
|
+
}
|
|
23
|
+
export function stripPrefix(value, prefix) {
|
|
24
|
+
return value.startsWith(prefix) ? value.slice(prefix.length) : value;
|
|
25
|
+
}
|
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
export declare const googleChatSpacesReadonlyScope = "https://www.googleapis.com/auth/chat.spaces.readonly";
|
|
2
2
|
export declare const googleChatMessagesReadonlyScope = "https://www.googleapis.com/auth/chat.messages.readonly";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Grants only "compose and send messages". Deliberately not `chat.messages`,
|
|
5
|
+
* which Google describes as "see, compose, send, update, and delete messages"
|
|
6
|
+
* plus reactions — far beyond what sending a message needs.
|
|
7
|
+
*/
|
|
8
|
+
export declare const googleChatMessagesCreateScope = "https://www.googleapis.com/auth/chat.messages.create";
|
|
9
|
+
/** Lists the members of a space, which is the only way to learn a direct message's other participant. */
|
|
10
|
+
export declare const googleChatMembershipsReadonlyScope = "https://www.googleapis.com/auth/chat.memberships.readonly";
|
|
11
|
+
/**
|
|
12
|
+
* Reads Workspace directory profiles through the People API. Under user
|
|
13
|
+
* authentication Chat can report a member as just `users/{id}` with no name, and
|
|
14
|
+
* this is the narrowest scope that turns that id into a name. It exposes the organization directory, not
|
|
15
|
+
* just the peer, and Workspace admins can restrict it or disable profile sharing.
|
|
16
|
+
*/
|
|
17
|
+
export declare const googleDirectoryReadonlyScope = "https://www.googleapis.com/auth/directory.readonly";
|
|
18
|
+
/**
|
|
19
|
+
* Scopes minted into service account tokens. Frozen at what existing domain-wide
|
|
20
|
+
* delegations already grant: a token request that asks for an undelegated scope
|
|
21
|
+
* fails as a whole, which would break every Chat action, not just the new ones.
|
|
22
|
+
* Service account connections therefore cannot send messages or name members.
|
|
23
|
+
*/
|
|
24
|
+
export declare const googleChatServiceAccountScopes: string[];
|
|
6
25
|
export declare const googleChatOAuthScopes: string[];
|
|
@@ -1,12 +1,35 @@
|
|
|
1
|
+
import { googleIdentityScopes } from "../googleads/scopes.js";
|
|
1
2
|
export const googleChatSpacesReadonlyScope = "https://www.googleapis.com/auth/chat.spaces.readonly";
|
|
2
3
|
export const googleChatMessagesReadonlyScope = "https://www.googleapis.com/auth/chat.messages.readonly";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Grants only "compose and send messages". Deliberately not `chat.messages`,
|
|
6
|
+
* which Google describes as "see, compose, send, update, and delete messages"
|
|
7
|
+
* plus reactions — far beyond what sending a message needs.
|
|
8
|
+
*/
|
|
9
|
+
export const googleChatMessagesCreateScope = "https://www.googleapis.com/auth/chat.messages.create";
|
|
10
|
+
/** Lists the members of a space, which is the only way to learn a direct message's other participant. */
|
|
11
|
+
export const googleChatMembershipsReadonlyScope = "https://www.googleapis.com/auth/chat.memberships.readonly";
|
|
12
|
+
/**
|
|
13
|
+
* Reads Workspace directory profiles through the People API. Under user
|
|
14
|
+
* authentication Chat can report a member as just `users/{id}` with no name, and
|
|
15
|
+
* this is the narrowest scope that turns that id into a name. It exposes the organization directory, not
|
|
16
|
+
* just the peer, and Workspace admins can restrict it or disable profile sharing.
|
|
17
|
+
*/
|
|
18
|
+
export const googleDirectoryReadonlyScope = "https://www.googleapis.com/auth/directory.readonly";
|
|
19
|
+
/**
|
|
20
|
+
* Scopes minted into service account tokens. Frozen at what existing domain-wide
|
|
21
|
+
* delegations already grant: a token request that asks for an undelegated scope
|
|
22
|
+
* fails as a whole, which would break every Chat action, not just the new ones.
|
|
23
|
+
* Service account connections therefore cannot send messages or name members.
|
|
24
|
+
*/
|
|
25
|
+
export const googleChatServiceAccountScopes = [
|
|
7
26
|
googleChatSpacesReadonlyScope,
|
|
8
27
|
googleChatMessagesReadonlyScope,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
28
|
+
...googleIdentityScopes,
|
|
29
|
+
];
|
|
30
|
+
export const googleChatOAuthScopes = [
|
|
31
|
+
...googleChatServiceAccountScopes,
|
|
32
|
+
googleChatMessagesCreateScope,
|
|
33
|
+
googleChatMembershipsReadonlyScope,
|
|
34
|
+
googleDirectoryReadonlyScope,
|
|
12
35
|
];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Buffer } from "node:buffer";
|
|
2
2
|
import { integer, objectArray } from "../../core/cast.js";
|
|
3
|
-
import { googleJsonRequest as googleJsonRequestShared, googleRequest as googleRequestShared, } from "../
|
|
3
|
+
import { googleJsonRequest as googleJsonRequestShared, googleRequest as googleRequestShared, } from "../googledrive/runtime-request.js";
|
|
4
4
|
import { asObject, asOptionalObject, asStringArray, compactObject, optionalBoolean, } from "../googledrive/runtime-shared.js";
|
|
5
5
|
import { defineProviderExecutors, defineProviderProxy, ProviderRequestError, requireOAuthCredential, } from "../provider-runtime.js";
|
|
6
6
|
const docsApiBaseUrl = "https://docs.googleapis.com/v1";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { requiredRawString, requiredString } from "../../core/cast.js";
|
|
3
3
|
import { readBoundedResponseBytes } from "../../core/request.js";
|
|
4
|
-
import { defineGoogleProviderExecutors, googleBearerProxyAuth, googleServiceAccountValidator } from "../google-auth.js";
|
|
5
|
-
import { googleJsonRequest, googleRequest } from "../google-runtime.js";
|
|
6
4
|
import { defineProviderProxy, providerProxyEndpointPrefixes, ProviderRequestError, providerResponseError, } from "../provider-runtime.js";
|
|
5
|
+
import { defineGoogleProviderExecutors, googleBearerProxyAuth, googleServiceAccountValidator } from "./runtime-auth.js";
|
|
7
6
|
import { createComment, createPermission, createReply, deleteComment, deletePermission, deleteReply, deleteRevision, getAbout, getApp, getComment, getPermission, getReply, getRevision, listComments, listFileLabels, listPermissions, listReplies, listRevisions, modifyFileLabels, updateComment, updateFileRevisionMetadata, updatePermission, updateReply, } from "./runtime-collaboration.js";
|
|
7
|
+
import { googleJsonRequest, googleRequest } from "./runtime-request.js";
|
|
8
8
|
import { asObject, asOptionalObject, asOptionalInteger, asStringArray, asStringRecord, compactObject, compactUnknownObject, optionalBoolean, optionalNestedString, optionalString, parseSizeBytes, pickOptionalBoolean, pickOptionalInteger, pickOptionalString, resolveFileId, resolveRequiredString, resolveSupportsAllDrives, } from "./runtime-shared.js";
|
|
9
9
|
import { googledriveOAuthScopes } from "./scopes.js";
|
|
10
10
|
const service = "googledrive";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { CredentialValidators, ProviderExecutors, ResolvedCredential } from "
|
|
2
|
-
import type { OAuthProviderContext, ProviderFetch, ProviderProxyAuth, ProviderRuntimeHandler } from "
|
|
1
|
+
import type { CredentialValidators, ProviderExecutors, ResolvedCredential } from "../../core/types.ts";
|
|
2
|
+
import type { OAuthProviderContext, ProviderFetch, ProviderProxyAuth, ProviderRuntimeHandler } from "../provider-runtime.ts";
|
|
3
3
|
/**
|
|
4
4
|
* A Google service account identity read from a stored custom credential.
|
|
5
5
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { importPKCS8, SignJWT } from "jose";
|
|
2
|
-
import { sha256Hex } from "
|
|
3
|
-
import { optionalNumberLike, optionalRecord, optionalString } from "
|
|
4
|
-
import { defineProviderExecutors, providerInputError, ProviderRequestError, providerUserAgent, requiredInputString, runProviderRequest, } from "
|
|
2
|
+
import { sha256Hex } from "../../core/aws-sigv4.js";
|
|
3
|
+
import { optionalNumberLike, optionalRecord, optionalString } from "../../core/cast.js";
|
|
4
|
+
import { defineProviderExecutors, providerInputError, ProviderRequestError, providerUserAgent, requiredInputString, runProviderRequest, } from "../provider-runtime.js";
|
|
5
5
|
const googleTokenUrl = "https://oauth2.googleapis.com/token";
|
|
6
6
|
const jwtBearerGrantType = "urn:ietf:params:oauth:grant-type:jwt-bearer";
|
|
7
7
|
/** Google issues one-hour access tokens for JWT bearer grants; assertions may ask for at most one hour. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { googleJsonRequest, googleRequest } from "../google-runtime.js";
|
|
2
1
|
import { ProviderRequestError } from "../provider-runtime.js";
|
|
2
|
+
import { googleJsonRequest, googleRequest } from "./runtime-request.js";
|
|
3
3
|
import { asObject, asOptionalObject, asStringArray, asStringRecordOrUndefined, compactObject, compactUnknownObject, optionalBoolean, optionalString, parseSizeBytes, pickOptionalBoolean, pickOptionalInteger, pickOptionalString, resolveFileId, resolveRequiredString, resolveSupportsAllDrives, } from "./runtime-shared.js";
|
|
4
4
|
const driveApiBaseUrl = "https://www.googleapis.com/drive/v3";
|
|
5
5
|
const permissionFields = [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { optionalRecord, optionalString } from "
|
|
2
|
-
import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, } from "
|
|
1
|
+
import { optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
+
import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
|
|
3
3
|
const defaultService = "googledrive";
|
|
4
4
|
const googleDefaultRequestTimeoutMs = 30_000;
|
|
5
5
|
export async function googleJsonRequest(url, input) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { compactObject, objectArray, optionalBoolean, optionalInteger, optionalRecord, optionalString, } from "../../core/cast.js";
|
|
2
|
-
import { defineGoogleProviderExecutors, googleBearerProxyAuth, googleServiceAccountValidator } from "../
|
|
3
|
-
import { googleJsonRequest } from "../
|
|
2
|
+
import { defineGoogleProviderExecutors, googleBearerProxyAuth, googleServiceAccountValidator, } from "../googledrive/runtime-auth.js";
|
|
3
|
+
import { googleJsonRequest } from "../googledrive/runtime-request.js";
|
|
4
4
|
import { defineProviderProxy, providerInputError, ProviderRequestError } from "../provider-runtime.js";
|
|
5
5
|
import { googleFormsOAuthScopes } from "./scopes.js";
|
|
6
6
|
export const googleFormsApiBaseUrl = "https://forms.googleapis.com/v1/forms";
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
export declare const googleFormsReadScope = "https://www.googleapis.com/auth/forms.body.readonly";
|
|
2
2
|
export declare const googleFormsWriteScope = "https://www.googleapis.com/auth/forms.body";
|
|
3
3
|
export declare const googleFormsResponsesReadScope = "https://www.googleapis.com/auth/forms.responses.readonly";
|
|
4
|
-
export declare const googleOpenIdScope = "openid";
|
|
5
|
-
export declare const googleEmailScope = "email";
|
|
6
|
-
export declare const googleProfileScope = "profile";
|
|
7
4
|
export declare const googleFormsOAuthScopes: string[];
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
+
import { googleIdentityScopes } from "../googleads/scopes.js";
|
|
1
2
|
export const googleFormsReadScope = "https://www.googleapis.com/auth/forms.body.readonly";
|
|
2
3
|
export const googleFormsWriteScope = "https://www.googleapis.com/auth/forms.body";
|
|
3
4
|
export const googleFormsResponsesReadScope = "https://www.googleapis.com/auth/forms.responses.readonly";
|
|
4
|
-
export const googleOpenIdScope = "openid";
|
|
5
|
-
export const googleEmailScope = "email";
|
|
6
|
-
export const googleProfileScope = "profile";
|
|
7
5
|
export const googleFormsOAuthScopes = [
|
|
8
6
|
googleFormsReadScope,
|
|
9
7
|
googleFormsWriteScope,
|
|
10
8
|
googleFormsResponsesReadScope,
|
|
11
|
-
|
|
12
|
-
googleEmailScope,
|
|
13
|
-
googleProfileScope,
|
|
9
|
+
...googleIdentityScopes,
|
|
14
10
|
];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { compactObject, looseArray, optionalInteger, optionalRecord, optionalString, requiredRecord, } from "../../core/cast.js";
|
|
2
|
-
import { defineGoogleProviderExecutors, googleBearerProxyAuth, googleServiceAccountValidator } from "../
|
|
3
|
-
import { googleJsonRequest } from "../
|
|
2
|
+
import { defineGoogleProviderExecutors, googleBearerProxyAuth, googleServiceAccountValidator, } from "../googledrive/runtime-auth.js";
|
|
3
|
+
import { googleJsonRequest } from "../googledrive/runtime-request.js";
|
|
4
4
|
import { defineProviderProxy, providerProxyEndpointPrefixes, ProviderRequestError } from "../provider-runtime.js";
|
|
5
5
|
import { googleMeetApiBaseUrl, googleMeetApiOrigin, googleMeetUserInfoUrl } from "./constants.js";
|
|
6
6
|
import { googleMeetOAuthScopes } from "./scopes.js";
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
export declare const googleMeetSpaceCreatedScope = "https://www.googleapis.com/auth/meetings.space.created";
|
|
2
2
|
export declare const googleMeetSpaceReadonlyScope = "https://www.googleapis.com/auth/meetings.space.readonly";
|
|
3
3
|
export declare const googleMeetSpaceSettingsScope = "https://www.googleapis.com/auth/meetings.space.settings";
|
|
4
|
-
export declare const googleOpenIdScope = "openid";
|
|
5
|
-
export declare const googleEmailScope = "email";
|
|
6
|
-
export declare const googleProfileScope = "profile";
|
|
7
4
|
export declare const googleMeetCreateScopes: string[];
|
|
8
5
|
export declare const googleMeetReadScopes: string[];
|
|
9
6
|
export declare const googleMeetSettingsScopes: string[];
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
+
import { googleIdentityScopes } from "../googleads/scopes.js";
|
|
1
2
|
export const googleMeetSpaceCreatedScope = "https://www.googleapis.com/auth/meetings.space.created";
|
|
2
3
|
export const googleMeetSpaceReadonlyScope = "https://www.googleapis.com/auth/meetings.space.readonly";
|
|
3
4
|
export const googleMeetSpaceSettingsScope = "https://www.googleapis.com/auth/meetings.space.settings";
|
|
4
|
-
export const googleOpenIdScope = "openid";
|
|
5
|
-
export const googleEmailScope = "email";
|
|
6
|
-
export const googleProfileScope = "profile";
|
|
7
5
|
export const googleMeetCreateScopes = [googleMeetSpaceCreatedScope];
|
|
8
6
|
export const googleMeetReadScopes = [googleMeetSpaceReadonlyScope];
|
|
9
7
|
export const googleMeetSettingsScopes = [googleMeetSpaceSettingsScope];
|
|
@@ -11,7 +9,5 @@ export const googleMeetOAuthScopes = [
|
|
|
11
9
|
googleMeetSpaceCreatedScope,
|
|
12
10
|
googleMeetSpaceReadonlyScope,
|
|
13
11
|
googleMeetSpaceSettingsScope,
|
|
14
|
-
|
|
15
|
-
googleEmailScope,
|
|
16
|
-
googleProfileScope,
|
|
12
|
+
...googleIdentityScopes,
|
|
17
13
|
];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineGoogleProviderExecutors, googleBearerProxyAuth, googleServiceAccountValidator } from "../
|
|
1
|
+
import { defineGoogleProviderExecutors, googleBearerProxyAuth, googleServiceAccountValidator, } from "../googledrive/runtime-auth.js";
|
|
2
2
|
import { defineProviderProxy } from "../provider-runtime.js";
|
|
3
3
|
import { addSheet, appendDimension, autoResizeDimensions, clearBasicFilter, copySheetToOtherSpreadsheet, createChart, deleteDimension, deleteSheet, findReplace, formatCell, insertDimension, mutateConditionalFormatRules, setBasicFilter, setDataValidationRule, updateDimensionProperties, updateSheetProperties, updateSpreadsheetProperties, } from "./runtime-batch-update.js";
|
|
4
4
|
import { createGoogleSheet, getConditionalFormatRules, getDataValidationRules, getSheetNames, getSpreadsheetByDataFilter, getSpreadsheetInfo, searchDeveloperMetadata, searchSpreadsheets, } from "./runtime-metadata.js";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { googleIdentityScopes } from "../googleads/scopes.js";
|
|
1
2
|
export const googleSheetsReadonlyScope = "https://www.googleapis.com/auth/spreadsheets.readonly";
|
|
2
3
|
export const googleSheetsFullScope = "https://www.googleapis.com/auth/spreadsheets";
|
|
3
4
|
export const googleDriveReadonlyScope = "https://www.googleapis.com/auth/drive.readonly";
|
|
@@ -9,4 +10,5 @@ export const googlesheetsOAuthScopes = [
|
|
|
9
10
|
googleSheetsFullScope,
|
|
10
11
|
googleDriveReadonlyScope,
|
|
11
12
|
googleDriveFullScope,
|
|
13
|
+
...googleIdentityScopes,
|
|
12
14
|
];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { compactObject, objectArray, optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
-
import { defineGoogleProviderExecutors, googleBearerProxyAuth, googleServiceAccountValidator } from "../
|
|
3
|
-
import { googleJsonRequest } from "../
|
|
2
|
+
import { defineGoogleProviderExecutors, googleBearerProxyAuth, googleServiceAccountValidator, } from "../googledrive/runtime-auth.js";
|
|
3
|
+
import { googleJsonRequest } from "../googledrive/runtime-request.js";
|
|
4
4
|
import { defineProviderProxy, providerInputError, ProviderRequestError } from "../provider-runtime.js";
|
|
5
5
|
import { googleSlidesOAuthScopes } from "./scopes.js";
|
|
6
6
|
export const slidesApiBaseUrl = "https://slides.googleapis.com/v1";
|
|
@@ -2,9 +2,6 @@ export declare const presentationsReadonlyScope = "https://www.googleapis.com/au
|
|
|
2
2
|
export declare const presentationsScope = "https://www.googleapis.com/auth/presentations";
|
|
3
3
|
export declare const googleDriveReadonlyScope = "https://www.googleapis.com/auth/drive.readonly";
|
|
4
4
|
export declare const googleDriveFullScope = "https://www.googleapis.com/auth/drive";
|
|
5
|
-
export declare const googleOpenIdScope = "openid";
|
|
6
|
-
export declare const googleEmailScope = "email";
|
|
7
|
-
export declare const googleProfileScope = "profile";
|
|
8
5
|
export declare const googleSlidesReadScopes: string[];
|
|
9
6
|
export declare const googleSlidesWriteScopes: string[];
|
|
10
7
|
export declare const googleSlidesOAuthScopes: string[];
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
+
import { googleIdentityScopes } from "../googleads/scopes.js";
|
|
1
2
|
export const presentationsReadonlyScope = "https://www.googleapis.com/auth/presentations.readonly";
|
|
2
3
|
export const presentationsScope = "https://www.googleapis.com/auth/presentations";
|
|
3
4
|
export const googleDriveReadonlyScope = "https://www.googleapis.com/auth/drive.readonly";
|
|
4
5
|
export const googleDriveFullScope = "https://www.googleapis.com/auth/drive";
|
|
5
|
-
export const googleOpenIdScope = "openid";
|
|
6
|
-
export const googleEmailScope = "email";
|
|
7
|
-
export const googleProfileScope = "profile";
|
|
8
6
|
export const googleSlidesReadScopes = [presentationsReadonlyScope, googleDriveReadonlyScope];
|
|
9
7
|
export const googleSlidesWriteScopes = [presentationsScope, googleDriveFullScope];
|
|
10
8
|
export const googleSlidesOAuthScopes = [
|
|
@@ -12,7 +10,5 @@ export const googleSlidesOAuthScopes = [
|
|
|
12
10
|
presentationsScope,
|
|
13
11
|
googleDriveReadonlyScope,
|
|
14
12
|
googleDriveFullScope,
|
|
15
|
-
|
|
16
|
-
googleEmailScope,
|
|
17
|
-
googleProfileScope,
|
|
13
|
+
...googleIdentityScopes,
|
|
18
14
|
];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { compactObject, optionalRecord, optionalString, pickOptionalBoolean, pickOptionalInteger, pickOptionalString, } from "../../core/cast.js";
|
|
2
|
-
import { defineGoogleProviderExecutors, googleBearerProxyAuth, googleServiceAccountValidator } from "../
|
|
3
|
-
import { googleJsonRequest, googleRequest } from "../
|
|
2
|
+
import { defineGoogleProviderExecutors, googleBearerProxyAuth, googleServiceAccountValidator, } from "../googledrive/runtime-auth.js";
|
|
3
|
+
import { googleJsonRequest, googleRequest } from "../googledrive/runtime-request.js";
|
|
4
4
|
import { defineProviderProxy, ProviderRequestError } from "../provider-runtime.js";
|
|
5
5
|
import { googleTasksOAuthScopes } from "./scopes.js";
|
|
6
6
|
export const googleTasksApiBaseUrl = "https://tasks.googleapis.com/tasks/v1";
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
export declare const googleTasksReadonlyScope = "https://www.googleapis.com/auth/tasks.readonly";
|
|
2
2
|
export declare const googleTasksFullScope = "https://www.googleapis.com/auth/tasks";
|
|
3
|
-
export declare const googleOpenIdScope = "openid";
|
|
4
|
-
export declare const googleEmailScope = "email";
|
|
5
|
-
export declare const googleProfileScope = "profile";
|
|
6
3
|
export declare const googleTasksReadScopes: string[];
|
|
7
4
|
export declare const googleTasksWriteScopes: string[];
|
|
8
5
|
export declare const googleTasksOAuthScopes: string[];
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
+
import { googleIdentityScopes } from "../googleads/scopes.js";
|
|
1
2
|
export const googleTasksReadonlyScope = "https://www.googleapis.com/auth/tasks.readonly";
|
|
2
3
|
export const googleTasksFullScope = "https://www.googleapis.com/auth/tasks";
|
|
3
|
-
export const googleOpenIdScope = "openid";
|
|
4
|
-
export const googleEmailScope = "email";
|
|
5
|
-
export const googleProfileScope = "profile";
|
|
6
4
|
export const googleTasksReadScopes = [googleTasksReadonlyScope];
|
|
7
5
|
export const googleTasksWriteScopes = [googleTasksFullScope];
|
|
8
6
|
export const googleTasksOAuthScopes = [
|
|
9
7
|
googleTasksReadonlyScope,
|
|
10
8
|
googleTasksFullScope,
|
|
11
|
-
|
|
12
|
-
googleEmailScope,
|
|
13
|
-
googleProfileScope,
|
|
9
|
+
...googleIdentityScopes,
|
|
14
10
|
];
|
|
@@ -67,6 +67,8 @@ const noteSchema = s.looseObject("A Granola note object. MCP supplies ID, title,
|
|
|
67
67
|
summary_text: s.string("The plain text summary of the note."),
|
|
68
68
|
summary_markdown: s.nullable(s.string("The markdown summary of the note, when available.")),
|
|
69
69
|
transcript: s.nullable(s.array("Transcript items returned by Granola.", transcriptItemSchema)),
|
|
70
|
+
date: s.optional(s.string("MCP only: meeting date when available, not a creation or update timestamp.")),
|
|
71
|
+
participants: s.optional(s.string("MCP only: participant names and email addresses as Granola lists them.")),
|
|
70
72
|
});
|
|
71
73
|
const listNotesInputSchema = s.object("Query parameters for listing Granola notes.", {
|
|
72
74
|
created_before: dateOrDateTimeSchema,
|
|
@@ -30,6 +30,8 @@ export const granolaMcpActionHandlers = {
|
|
|
30
30
|
title: meeting.title,
|
|
31
31
|
summary_markdown: meeting.summary,
|
|
32
32
|
transcript: input.include === "transcript" ? [{ text: await getGranolaTranscript(context, id) }] : undefined,
|
|
33
|
+
date: meeting.date,
|
|
34
|
+
participants: meeting.attendees || undefined,
|
|
33
35
|
},
|
|
34
36
|
};
|
|
35
37
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compactObject, objectArray, optionalRawString, optionalRecord, optionalString, rawStringOrNull, requiredBoolean, requiredRawString, requiredString, requiredStringArray, } from "../../core/cast.js";
|
|
2
|
-
import { providerInputError, providerResponseError, providerUserAgent, ProviderRequestError, readProviderJsonBody, requiredInputString, requiredResponseRecord, runProviderRequest, } from "../provider-runtime.js";
|
|
2
|
+
import { providerInputError, providerResponseError, providerUserAgent, ProviderRequestError, readProviderJsonBody, requiredInputString, requiredResponseRecord, runProviderRequest, withRetryAfterSeconds, } from "../provider-runtime.js";
|
|
3
3
|
export const granolaApiBaseUrl = "https://public-api.granola.ai";
|
|
4
4
|
export const granolaActionHandlers = {
|
|
5
5
|
async list_notes(input, context) {
|
|
@@ -190,5 +190,5 @@ async function assertGranolaResponse(response, mode) {
|
|
|
190
190
|
if (response.status === 400 || response.status === 404 || response.status === 422) {
|
|
191
191
|
throw new ProviderRequestError(400, message);
|
|
192
192
|
}
|
|
193
|
-
throw new ProviderRequestError(response.status >= 500 ? 502 : response.status || 502, message);
|
|
193
|
+
throw new ProviderRequestError(response.status >= 500 ? 502 : response.status || 502, message, withRetryAfterSeconds(response));
|
|
194
194
|
}
|
|
@@ -10,7 +10,7 @@ async function execute(input, context, name, path) {
|
|
|
10
10
|
url.searchParams.set("urlName", String(input.urlName));
|
|
11
11
|
const response = await context.fetcher(url, {
|
|
12
12
|
headers: { accept: "application/json", "user-agent": providerUserAgent },
|
|
13
|
-
redirect: "
|
|
13
|
+
redirect: "manual",
|
|
14
14
|
});
|
|
15
15
|
const payload = await response.json().catch(() => null);
|
|
16
16
|
if (!response.ok)
|
|
@@ -31,7 +31,7 @@ export const proxy = defineProviderProxy({
|
|
|
31
31
|
baseUrl: endpoint,
|
|
32
32
|
auth: { type: "api_key_query", name: "apiKey" },
|
|
33
33
|
skipDnsValidation: true,
|
|
34
|
-
redirect: "
|
|
34
|
+
redirect: "manual",
|
|
35
35
|
allowedEndpoint(value) {
|
|
36
36
|
const url = new URL(value, endpoint);
|
|
37
37
|
return url.origin === "https://data-api.investoday.net" && url.pathname === "/data/mcp";
|
|
@@ -62,7 +62,7 @@ function connectionInput(key, fetcher, signal) {
|
|
|
62
62
|
service: "Investoday",
|
|
63
63
|
fetcher: createInvestodayFetch(fetcher, key),
|
|
64
64
|
signal,
|
|
65
|
-
redirect: "
|
|
65
|
+
redirect: "manual",
|
|
66
66
|
terminateSession: true,
|
|
67
67
|
};
|
|
68
68
|
}
|