@every-app/sdk 0.3.0-rc.2 → 0.3.0-rc.4

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.
Files changed (110) hide show
  1. package/README.md +1 -1
  2. package/dist/cloudflare/index.d.ts +2 -2
  3. package/dist/cloudflare/index.d.ts.map +1 -1
  4. package/dist/cloudflare/index.js +1 -1
  5. package/dist/cloudflare/sentinel.d.ts +57 -2
  6. package/dist/cloudflare/sentinel.d.ts.map +1 -1
  7. package/dist/cloudflare/sentinel.js +27 -2
  8. package/dist/cloudflare/worker.d.ts +297 -5
  9. package/dist/cloudflare/worker.d.ts.map +1 -1
  10. package/dist/cloudflare/worker.js +279 -12
  11. package/dist/dev/index.d.ts +1 -1
  12. package/dist/dev/index.d.ts.map +1 -1
  13. package/dist/dev/index.js +1 -1
  14. package/dist/dev/keypair.d.ts +2 -0
  15. package/dist/dev/keypair.d.ts.map +1 -1
  16. package/dist/dev/keypair.js +2 -0
  17. package/dist/internal/aiDefault.d.ts +141 -0
  18. package/dist/internal/aiDefault.d.ts.map +1 -0
  19. package/dist/internal/aiDefault.js +204 -0
  20. package/dist/internal/aiProviders.d.ts +4 -1
  21. package/dist/internal/aiProviders.d.ts.map +1 -1
  22. package/dist/internal/aiProviders.js +5 -1
  23. package/dist/internal/appSettings.d.ts +20 -2
  24. package/dist/internal/appSettings.d.ts.map +1 -1
  25. package/dist/internal/appSettings.js +53 -7
  26. package/dist/internal/audit.d.ts +108 -0
  27. package/dist/internal/audit.d.ts.map +1 -0
  28. package/dist/internal/audit.js +235 -0
  29. package/dist/internal/capabilities.d.ts +276 -7
  30. package/dist/internal/capabilities.d.ts.map +1 -1
  31. package/dist/internal/capabilities.js +111 -0
  32. package/dist/internal/catalog/index.d.ts +39 -2
  33. package/dist/internal/catalog/index.d.ts.map +1 -1
  34. package/dist/internal/catalog/inference.d.ts +39 -2
  35. package/dist/internal/catalog/inference.d.ts.map +1 -1
  36. package/dist/internal/catalog/inference.js +36 -4
  37. package/dist/internal/devProviders.d.ts +2 -2
  38. package/dist/internal/devProviders.d.ts.map +1 -1
  39. package/dist/internal/devProviders.js +19 -1
  40. package/dist/internal/events.d.ts +13 -2
  41. package/dist/internal/events.d.ts.map +1 -1
  42. package/dist/internal/events.js +42 -4
  43. package/dist/internal/identity.d.ts +29 -3
  44. package/dist/internal/identity.d.ts.map +1 -1
  45. package/dist/internal/identity.js +37 -9
  46. package/dist/internal/index.d.ts +5 -1
  47. package/dist/internal/index.d.ts.map +1 -1
  48. package/dist/internal/index.js +5 -1
  49. package/dist/internal/members.d.ts +3 -2
  50. package/dist/internal/members.d.ts.map +1 -1
  51. package/dist/internal/oauthPresets.d.ts +29 -0
  52. package/dist/internal/oauthPresets.d.ts.map +1 -0
  53. package/dist/internal/oauthPresets.js +534 -0
  54. package/dist/internal/oauthScopes.d.ts +56 -1
  55. package/dist/internal/oauthScopes.d.ts.map +1 -1
  56. package/dist/internal/oauthScopes.js +98 -4
  57. package/dist/internal/oauthSpec.d.ts +59 -0
  58. package/dist/internal/oauthSpec.d.ts.map +1 -0
  59. package/dist/internal/oauthSpec.js +676 -0
  60. package/dist/internal/protocol.d.ts +36 -1
  61. package/dist/internal/protocol.d.ts.map +1 -1
  62. package/dist/internal/protocol.js +30 -1
  63. package/dist/internal/providerRegistry.d.ts +17 -6
  64. package/dist/internal/providerRegistry.d.ts.map +1 -1
  65. package/dist/internal/providerRegistry.js +47 -2
  66. package/dist/internal/providerSpec.d.ts +11 -7
  67. package/dist/internal/providerSpec.d.ts.map +1 -1
  68. package/dist/internal/providerSpec.js +134 -37
  69. package/dist/internal/signInProviders.d.ts.map +1 -1
  70. package/dist/internal/signInProviders.js +11 -4
  71. package/dist/server/ai.d.ts +45 -0
  72. package/dist/server/ai.d.ts.map +1 -0
  73. package/dist/server/ai.js +40 -0
  74. package/dist/server/attribution.d.ts +9 -5
  75. package/dist/server/attribution.d.ts.map +1 -1
  76. package/dist/server/attribution.js +12 -4
  77. package/dist/server/connectUrl.d.ts +21 -0
  78. package/dist/server/connectUrl.d.ts.map +1 -0
  79. package/dist/server/connectUrl.js +37 -0
  80. package/dist/server/context.d.ts +68 -0
  81. package/dist/server/context.d.ts.map +1 -0
  82. package/dist/server/context.js +117 -0
  83. package/dist/server/emit.d.ts +1 -1
  84. package/dist/server/emit.d.ts.map +1 -1
  85. package/dist/server/emit.js +4 -4
  86. package/dist/server/everyApp.d.ts +27 -7
  87. package/dist/server/everyApp.d.ts.map +1 -1
  88. package/dist/server/everyApp.js +106 -5
  89. package/dist/server/fromMcpTools.d.ts +89 -0
  90. package/dist/server/fromMcpTools.d.ts.map +1 -0
  91. package/dist/server/fromMcpTools.js +192 -0
  92. package/dist/server/gatewayFetch.d.ts +8 -6
  93. package/dist/server/gatewayFetch.d.ts.map +1 -1
  94. package/dist/server/gatewayFetch.js +78 -11
  95. package/dist/server/index.d.ts +7 -3
  96. package/dist/server/index.d.ts.map +1 -1
  97. package/dist/server/index.js +6 -2
  98. package/dist/server/integrationFetch.d.ts +55 -8
  99. package/dist/server/integrationFetch.d.ts.map +1 -1
  100. package/dist/server/integrationFetch.js +198 -18
  101. package/dist/server/listMembers.d.ts +1 -1
  102. package/dist/server/listMembers.d.ts.map +1 -1
  103. package/dist/server/listMembers.js +5 -8
  104. package/dist/server/sendEmail.d.ts +1 -1
  105. package/dist/server/sendEmail.d.ts.map +1 -1
  106. package/dist/server/sendEmail.js +4 -4
  107. package/dist/server/toolsEndpoint.d.ts.map +1 -1
  108. package/dist/server/toolsEndpoint.js +11 -5
  109. package/package.json +13 -14
  110. package/LICENSE +0 -21
@@ -212,6 +212,12 @@ export interface AiProviderCapability extends ProviderDetails {
212
212
  label: string;
213
213
  /** Where the key goes: bearer for the three today; Anthropic's `x-api-key` header is a `header` kind. */
214
214
  auth: ApiKeyAuth;
215
+ /**
216
+ * The auth setting is read when set and the entry works without it:
217
+ * Cloudflare AI Gateway's own token (`cf-aig-authorization`), which an
218
+ * authenticated gateway requires and an open one ignores. Never a need.
219
+ */
220
+ authOptional?: true;
215
221
  docs: string;
216
222
  setup?: string;
217
223
  /** `https://api.openai.com`. */
@@ -224,6 +230,55 @@ export interface AiProviderCapability extends ProviderDetails {
224
230
  unstoredRoutes?: readonly string[];
225
231
  extraRoutes?: boolean;
226
232
  normalize?: "workers-ai";
233
+ /**
234
+ * The request shape the provider's inference routes take: OpenAI's
235
+ * (chat completions and the OpenAI-compatible family: OpenRouter,
236
+ * Workers AI, Groq, Mistral, Gemini's `/v1beta/openai`), or Anthropic's
237
+ * Messages API, or the provider's own (Cohere's v2). The Gateway's
238
+ * default route (`/api/ai/default/…`) serves OpenAI-shaped chat, so only
239
+ * an `openai`-shaped entry can be the default; the others are pinned by
240
+ * an app that speaks them. Absent: `openai`.
241
+ */
242
+ shape?: "openai" | "anthropic" | "other";
243
+ /**
244
+ * Chat through the default route: the entry's chat route (one of
245
+ * `inferenceRoutes`) that `/api/ai/default/v1/chat/completions` maps
246
+ * onto, and the model the Gateway fills in when the app names none or
247
+ * names `default`. Absent: the entry can't be the Gateway's default.
248
+ */
249
+ chat?: AiRoute;
250
+ /** Embeddings through the default route (`/api/ai/default/v1/embeddings`), the same way. */
251
+ embeddings?: AiRoute;
252
+ /**
253
+ * How Cloudflare AI Gateway fronts the provider: its slug under
254
+ * `https://gateway.ai.cloudflare.com/v1/{account}/{gateway}/`, and the
255
+ * prefix of the provider's direct path the gateway's URL leaves out
256
+ * (OpenRouter's `/api`, OpenAI's `/v1`); or, for Workers AI, whose REST
257
+ * API is AI Gateway's own host, `header: true`: the call keeps its URL
258
+ * and carries `cf-aig-gateway-id`. With `AI_GATEWAY_ID` set, every call
259
+ * to an entry with an `aig` block goes through AI Gateway with the
260
+ * provider's own key still on it; an entry without one goes direct
261
+ * (Gemini's and Cohere's OpenAI-shaped paths have no documented AI
262
+ * Gateway form, 2026-10-25).
263
+ */
264
+ aig?: {
265
+ slug: string;
266
+ trim?: string;
267
+ header?: true;
268
+ };
269
+ /**
270
+ * `proxy`: the entry fronts the other AI providers (Cloudflare AI
271
+ * Gateway) and serves no models of its own: never listed under
272
+ * `providers`, never the default, reached through the entries it fronts.
273
+ */
274
+ kind?: "proxy";
275
+ }
276
+ /** A route of an AI provider the default route maps onto, with the model used when the app names none. */
277
+ export interface AiRoute {
278
+ /** One of the entry's `inferenceRoutes`: `/api/v1/chat/completions`. */
279
+ path: string;
280
+ /** The model the Gateway fills in: a cheap, capable one of the provider's. */
281
+ model: string;
227
282
  }
228
283
  /** What `access: "write"` adds to a provider's read methods when its entry doesn't say. */
229
284
  export declare const DEFAULT_WRITE_METHODS: readonly string[];
@@ -306,8 +361,13 @@ export interface OAuthScopeSet {
306
361
  userScopes?: readonly string[];
307
362
  routes: readonly OAuthScopeRoute[];
308
363
  }
309
- /** How a provider spells granted scopes in its token response; each has a parser in ./oauthScopes.ts. */
310
- export type OAuthScopeDialect = "google" | "microsoft" | "slack";
364
+ /**
365
+ * How a provider spells granted scopes in its token response; each has a
366
+ * parser in ./oauthScopes.ts. `space` and `comma` are the plain spellings
367
+ * a registered provider names (`scopeDialect`): a token response without
368
+ * a `scope` field is taken as granted-as-requested (RFC 6749 §5.1).
369
+ */
370
+ export type OAuthScopeDialect = "google" | "microsoft" | "slack" | "space" | "comma";
311
371
  /**
312
372
  * Everything the gateway needs to hold an app to its scope sets at the
313
373
  * token endpoint. Present means an app's entry must list `scopes` and the
@@ -348,6 +408,39 @@ export interface OAuthScopePolicy {
348
408
  */
349
409
  deniedSegments: readonly string[];
350
410
  }
411
+ /** How a provider names the account a new connection is for, read once after the exchange. */
412
+ export interface OAuthIdentity {
413
+ /** An https URL on one of the provider's `api` hosts, GET with the new token. */
414
+ url: string;
415
+ /** A dot path into the JSON answer for the label ("ben", "ben@example.com"). */
416
+ label: string;
417
+ /** A dot path for the provider's stable id of the account (optional). */
418
+ id?: string;
419
+ }
420
+ /**
421
+ * What the Gateway needs to run a provider's authorization-code flow
422
+ * itself (docs/design/2026-10-oauth-providers.md section 5): present on a
423
+ * catalog entry that supports the Gateway-owned flow, and built from a
424
+ * registered row's `auth` (`kind: "oauth2-user"`). Absent: the entry
425
+ * keeps the app-driven flow only (the social networks).
426
+ */
427
+ export interface OAuthFlow {
428
+ /** The token endpoint the Gateway posts the code and refresh token to (https). */
429
+ tokenUrl: string;
430
+ /** Where a disconnect revokes the token; absent means the tokens die at their expiry. */
431
+ revokeUrl?: string;
432
+ /** The revoke call's method (default POST). */
433
+ revokeMethod?: "POST" | "DELETE";
434
+ /** Whether the authorize request carries a PKCE S256 challenge (default true). */
435
+ pkce: boolean;
436
+ /** How the token response spells what it granted. */
437
+ scopeDialect: OAuthScopeDialect;
438
+ /** Extra query on the authorize URL (Google's `access_type=offline`). */
439
+ authorizeParams?: Readonly<Record<string, string>>;
440
+ /** Extra headers on the token request (GitHub's `Accept: application/json`). */
441
+ tokenHeaders?: Readonly<Record<string, string>>;
442
+ identity?: OAuthIdentity;
443
+ }
351
444
  /**
352
445
  * A provider's OAuth client the gateway holds. The gateway completes its
353
446
  * token endpoints only (`token`), putting the client on each request; the
@@ -373,8 +466,13 @@ export interface OAuthClientCapability {
373
466
  hostSetting?: string;
374
467
  /** The origin when `hostSetting` is unset. */
375
468
  defaultOrigin?: string;
376
- /** Obtaining and refreshing user tokens with the operator's client writes. */
377
- access: readonly ["write"];
469
+ /**
470
+ * Obtaining and refreshing user tokens with the operator's client
471
+ * writes, so a catalog client is `["write"]`. A registered OAuth
472
+ * provider says what the proxy may do with the held token: read, write
473
+ * or both (docs/design/2026-10-oauth-providers.md section 7).
474
+ */
475
+ access: readonly CapabilityAccess[];
378
476
  /** Where the operator registers the client. */
379
477
  console: string;
380
478
  /** The everyapp skill's setup guide for the client, when one exists. */
@@ -395,8 +493,28 @@ export interface OAuthClientCapability {
395
493
  * client is the grant, as for Postiz's social networks.
396
494
  */
397
495
  scopePolicy?: OAuthScopePolicy;
398
- /** Hosts the app calls afterwards with the user's token (docs only); a scope policy's routes are on them. */
496
+ /**
497
+ * Hosts the app calls afterwards with the user's token; the Gateway's
498
+ * held-token branch forwards to these alone, and a scope policy's
499
+ * routes are on them.
500
+ */
399
501
  api: readonly string[];
502
+ /** The Gateway-owned flow, when the entry supports it. */
503
+ flow?: OAuthFlow;
504
+ /** A registered OAuth provider's spec fields (a catalog client has `setup` instead). */
505
+ description?: string;
506
+ /** The API reference (a spec's `api`), optional. */
507
+ reference?: string;
508
+ hint?: string;
509
+ example?: string;
510
+ tags?: readonly string[];
511
+ /**
512
+ * A registered OAuth provider's methods: what a read grant may use
513
+ * (default GET and HEAD) and what a write grant adds (default the
514
+ * API-key default). A catalog client leaves both unset.
515
+ */
516
+ readMethods?: readonly string[];
517
+ writeMethods?: readonly string[];
400
518
  /**
401
519
  * The redirect paths the operator registers, on the app's host
402
520
  * (`https://<app>.<APP_BASE_DOMAIN><path>`): Postiz's callback pages, the
@@ -814,11 +932,20 @@ export declare const CAPABILITIES: {
814
932
  readonly docs: "https://platform.claude.com/settings/keys";
815
933
  readonly api: "https://platform.claude.com/docs/en/api/overview";
816
934
  readonly origin: "https://api.anthropic.com";
817
- readonly inferenceRoutes: readonly ["/v1/messages", "/v1/messages/count_tokens"];
935
+ readonly inferenceRoutes: readonly ["/v1/messages", "/v1/messages/count_tokens", "/v1/chat/completions"];
936
+ readonly unstoredRoutes: readonly ["/v1/chat/completions"];
937
+ readonly shape: "anthropic";
938
+ readonly chat: {
939
+ readonly path: "/v1/chat/completions";
940
+ readonly model: "claude-haiku-5-5";
941
+ };
942
+ readonly aig: {
943
+ readonly slug: "anthropic";
944
+ };
818
945
  readonly hint: "An API key from the Claude Console's API keys page; the Gateway sends it as a bearer token. Apps send the anthropic-version header themselves.";
819
946
  readonly secrets: readonly [{
820
947
  readonly name: "ANTHROPIC_API_KEY";
821
- readonly hint: "A key scoped to one workspace, so no call needs an anthropic-workspace-id header.";
948
+ readonly hint: "A key scoped to one workspace; the Gateway strips any anthropic-workspace-id header an app sends, so the key alone decides the workspace.";
822
949
  }];
823
950
  readonly smoke: {
824
951
  readonly method: "GET";
@@ -849,6 +976,14 @@ export declare const CAPABILITIES: {
849
976
  readonly api: "https://ai.google.dev/gemini-api/docs/openai";
850
977
  readonly origin: "https://generativelanguage.googleapis.com";
851
978
  readonly inferenceRoutes: readonly ["/v1beta/openai/chat/completions", "/v1beta/openai/embeddings", "/v1beta/openai/images/generations"];
979
+ readonly chat: {
980
+ readonly path: "/v1beta/openai/chat/completions";
981
+ readonly model: "gemini-3.1-flash-lite";
982
+ };
983
+ readonly embeddings: {
984
+ readonly path: "/v1beta/openai/embeddings";
985
+ readonly model: "gemini-embedding-001";
986
+ };
852
987
  readonly hint: "An API key from Google AI Studio; the Gateway sends it as a bearer token. Apps call Gemini's OpenAI-shaped paths under /v1beta/openai.";
853
988
  readonly secrets: readonly [{
854
989
  readonly name: "GEMINI_API_KEY";
@@ -882,6 +1017,17 @@ export declare const CAPABILITIES: {
882
1017
  readonly api: "https://docs.mistral.ai/api/";
883
1018
  readonly origin: "https://api.mistral.ai";
884
1019
  readonly inferenceRoutes: readonly ["/v1/chat/completions", "/v1/fim/completions", "/v1/embeddings", "/v1/moderations", "/v1/chat/moderations", "/v1/classifications", "/v1/chat/classifications", "/v1/ocr", "/v1/audio/transcriptions", "/v1/audio/speech"];
1020
+ readonly chat: {
1021
+ readonly path: "/v1/chat/completions";
1022
+ readonly model: "mistral-small-latest";
1023
+ };
1024
+ readonly embeddings: {
1025
+ readonly path: "/v1/embeddings";
1026
+ readonly model: "mistral-embed";
1027
+ };
1028
+ readonly aig: {
1029
+ readonly slug: "mistral";
1030
+ };
885
1031
  readonly hint: "An API key from API Keys in the Mistral Studio console; the Gateway sends it as a bearer token. Free mode needs no card; usage and rate limits apply.";
886
1032
  readonly secrets: readonly [{
887
1033
  readonly name: "MISTRAL_API_KEY";
@@ -912,6 +1058,14 @@ export declare const CAPABILITIES: {
912
1058
  readonly api: "https://console.groq.com/docs/api-reference";
913
1059
  readonly origin: "https://api.groq.com";
914
1060
  readonly inferenceRoutes: readonly ["/openai/v1/chat/completions", "/openai/v1/responses", "/openai/v1/audio/transcriptions", "/openai/v1/audio/translations", "/openai/v1/audio/speech"];
1061
+ readonly chat: {
1062
+ readonly path: "/openai/v1/chat/completions";
1063
+ readonly model: "openai/gpt-oss-20b";
1064
+ };
1065
+ readonly aig: {
1066
+ readonly slug: "groq";
1067
+ readonly trim: "/openai/v1";
1068
+ };
915
1069
  readonly hint: "An API key from the Groq console; the Gateway sends it as a bearer token. Apps call the OpenAI-shaped paths under /openai/v1.";
916
1070
  readonly secrets: readonly [{
917
1071
  readonly name: "GROQ_API_KEY";
@@ -945,6 +1099,7 @@ export declare const CAPABILITIES: {
945
1099
  readonly api: "https://docs.cohere.com/reference/about";
946
1100
  readonly origin: "https://api.cohere.com";
947
1101
  readonly inferenceRoutes: readonly ["/v2/chat", "/v2/embed", "/v2/rerank", "/v1/classify", "/v2/audio/transcriptions", "/v2/parse", "/v1/tokenize", "/v1/detokenize"];
1102
+ readonly shape: "other";
948
1103
  readonly hint: "An API key from the Cohere dashboard; the Gateway sends it as a bearer token. Trial keys are free and limited; production keys are paid.";
949
1104
  readonly secrets: readonly [{
950
1105
  readonly name: "COHERE_API_KEY";
@@ -2317,6 +2472,18 @@ export declare const CAPABILITIES: {
2317
2472
  readonly inferenceRoutes: readonly ["/v1/responses", "/v1/chat/completions", "/v1/embeddings", "/v1/audio/speech", "/v1/audio/transcriptions", "/v1/audio/translations", "/v1/images/generations", "/v1/images/edits", "/v1/images/variations"];
2318
2473
  readonly unstoredRoutes: readonly ["/v1/responses", "/v1/chat/completions"];
2319
2474
  readonly extraRoutes: true;
2475
+ readonly chat: {
2476
+ readonly path: "/v1/chat/completions";
2477
+ readonly model: "gpt-6-luna";
2478
+ };
2479
+ readonly embeddings: {
2480
+ readonly path: "/v1/embeddings";
2481
+ readonly model: "text-embedding-3-small";
2482
+ };
2483
+ readonly aig: {
2484
+ readonly slug: "openai";
2485
+ readonly trim: "/v1";
2486
+ };
2320
2487
  readonly hint: "A secret key from the API keys page; the Gateway puts it on every call as a bearer token.";
2321
2488
  readonly verified: {
2322
2489
  readonly on: "2026-10-25";
@@ -2336,6 +2503,18 @@ export declare const CAPABILITIES: {
2336
2503
  readonly setup: "setup/openrouter.md";
2337
2504
  readonly origin: "https://openrouter.ai";
2338
2505
  readonly inferenceRoutes: readonly ["/api/v1/chat/completions", "/api/v1/completions", "/api/v1/responses", "/api/v1/embeddings"];
2506
+ readonly chat: {
2507
+ readonly path: "/api/v1/chat/completions";
2508
+ readonly model: "anthropic/claude-haiku-5.5";
2509
+ };
2510
+ readonly embeddings: {
2511
+ readonly path: "/api/v1/embeddings";
2512
+ readonly model: "openai/text-embedding-3-small";
2513
+ };
2514
+ readonly aig: {
2515
+ readonly slug: "openrouter";
2516
+ readonly trim: "/api";
2517
+ };
2339
2518
  readonly hint: "An API key from OpenRouter's keys page; the Gateway puts it on every call as a bearer token.";
2340
2519
  readonly cost: {
2341
2520
  readonly unit: "token";
@@ -2363,12 +2542,56 @@ export declare const CAPABILITIES: {
2363
2542
  readonly basePath: "/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai";
2364
2543
  readonly inferenceRoutes: readonly ["/v1/chat/completions", "/v1/embeddings", "/v1/responses"];
2365
2544
  readonly normalize: "workers-ai";
2545
+ readonly chat: {
2546
+ readonly path: "/v1/chat/completions";
2547
+ readonly model: "@cf/meta/llama-4-scout-17b-16e-instruct";
2548
+ };
2549
+ readonly embeddings: {
2550
+ readonly path: "/v1/embeddings";
2551
+ readonly model: "@cf/baai/bge-m3";
2552
+ };
2553
+ readonly aig: {
2554
+ readonly slug: "workers-ai";
2555
+ readonly header: true;
2556
+ };
2366
2557
  readonly hint: "A Cloudflare API token with Workers AI Read (the Workers AI page's prefilled token); the account is the Gateway's own.";
2367
2558
  readonly verified: {
2368
2559
  readonly on: "2026-10-25";
2369
2560
  readonly how: "live";
2370
2561
  };
2371
2562
  };
2563
+ readonly "ai-gateway": {
2564
+ readonly mode: "ai";
2565
+ readonly kind: "proxy";
2566
+ readonly label: "Cloudflare AI Gateway";
2567
+ readonly description: "Cloudflare's proxy in front of the other AI providers: logs, caching, rate limits and spend, with each provider's own key.";
2568
+ readonly auth: {
2569
+ readonly kind: "header";
2570
+ readonly header: "cf-aig-authorization";
2571
+ readonly prefix: "Bearer ";
2572
+ readonly secret: "AI_GATEWAY_API_KEY";
2573
+ };
2574
+ readonly authOptional: true;
2575
+ readonly docs: "https://dash.cloudflare.com/?to=/:account/ai/ai-gateway";
2576
+ readonly api: "https://developers.cloudflare.com/ai-gateway/";
2577
+ readonly setup: "setup/ai-gateway.md";
2578
+ readonly origin: "https://gateway.ai.cloudflare.com";
2579
+ readonly alsoNeeds: readonly ["CLOUDFLARE_ACCOUNT_ID", "AI_GATEWAY_ID"];
2580
+ readonly basePath: "/v1/{CLOUDFLARE_ACCOUNT_ID}/{AI_GATEWAY_ID}";
2581
+ readonly inferenceRoutes: readonly [];
2582
+ readonly hint: "The gateway's id from the AI Gateway page (everyapp ai gateway on makes one named everyapp); AI_GATEWAY_API_KEY only for an authenticated gateway, sent as cf-aig-authorization.";
2583
+ readonly secrets: readonly [{
2584
+ readonly name: "AI_GATEWAY_ID";
2585
+ readonly hint: "The AI Gateway's id (its name in the dashboard), in the Gateway's own Cloudflare account.";
2586
+ }, {
2587
+ readonly name: "AI_GATEWAY_API_KEY";
2588
+ readonly hint: "An AI Gateway token with Run permission, only when the gateway is authenticated; leave unset for an open gateway.";
2589
+ }];
2590
+ readonly verified: {
2591
+ readonly on: "2026-10-25";
2592
+ readonly how: "docs";
2593
+ };
2594
+ };
2372
2595
  readonly dataforseo: {
2373
2596
  readonly mode: "api_key";
2374
2597
  readonly label: "DataForSEO";
@@ -2687,6 +2910,17 @@ export declare const CAPABILITIES: {
2687
2910
  };
2688
2911
  readonly api: readonly ["discord.com"];
2689
2912
  readonly redirectPaths: readonly ["/integrations/social/discord"];
2913
+ readonly flow: {
2914
+ readonly tokenUrl: "https://discord.com/api/oauth2/token";
2915
+ readonly revokeUrl: "https://discord.com/api/oauth2/token/revoke";
2916
+ readonly pkce: true;
2917
+ readonly scopeDialect: "space";
2918
+ readonly identity: {
2919
+ readonly url: "https://discord.com/api/users/@me";
2920
+ readonly label: "username";
2921
+ readonly id: "id";
2922
+ };
2923
+ };
2690
2924
  };
2691
2925
  readonly slack: {
2692
2926
  readonly mode: "oauth_client";
@@ -2801,6 +3035,17 @@ export declare const CAPABILITIES: {
2801
3035
  };
2802
3036
  readonly api: readonly ["slack.com"];
2803
3037
  readonly redirectPaths: readonly ["/integrations/social/slack", "/integrations/slack/callback"];
3038
+ readonly flow: {
3039
+ readonly tokenUrl: "https://slack.com/api/oauth.v2.access";
3040
+ readonly revokeUrl: "https://slack.com/api/auth.revoke";
3041
+ readonly pkce: false;
3042
+ readonly scopeDialect: "slack";
3043
+ readonly identity: {
3044
+ readonly url: "https://slack.com/api/auth.test";
3045
+ readonly label: "team";
3046
+ readonly id: "user_id";
3047
+ };
3048
+ };
2804
3049
  };
2805
3050
  readonly mastodon: {
2806
3051
  readonly mode: "oauth_client";
@@ -3004,6 +3249,20 @@ export declare const CAPABILITIES: {
3004
3249
  };
3005
3250
  readonly api: readonly ["gmail.googleapis.com", "www.googleapis.com", "searchconsole.googleapis.com", "analyticsdata.googleapis.com", "analyticsadmin.googleapis.com", "openidconnect.googleapis.com"];
3006
3251
  readonly redirectPaths: readonly ["/integrations/google/callback"];
3252
+ readonly flow: {
3253
+ readonly tokenUrl: "https://oauth2.googleapis.com/token";
3254
+ readonly pkce: true;
3255
+ readonly scopeDialect: "google";
3256
+ readonly authorizeParams: {
3257
+ readonly access_type: "offline";
3258
+ readonly prompt: "consent";
3259
+ };
3260
+ readonly identity: {
3261
+ readonly url: "https://openidconnect.googleapis.com/v1/userinfo";
3262
+ readonly label: "email";
3263
+ readonly id: "sub";
3264
+ };
3265
+ };
3007
3266
  };
3008
3267
  readonly "microsoft-365": {
3009
3268
  readonly mode: "oauth_client";
@@ -3065,6 +3324,16 @@ export declare const CAPABILITIES: {
3065
3324
  };
3066
3325
  readonly api: readonly ["graph.microsoft.com"];
3067
3326
  readonly redirectPaths: readonly ["/integrations/microsoft/callback"];
3327
+ readonly flow: {
3328
+ readonly tokenUrl: "https://login.microsoftonline.com/common/oauth2/v2.0/token";
3329
+ readonly pkce: true;
3330
+ readonly scopeDialect: "microsoft";
3331
+ readonly identity: {
3332
+ readonly url: "https://graph.microsoft.com/v1.0/me";
3333
+ readonly label: "userPrincipalName";
3334
+ readonly id: "id";
3335
+ };
3336
+ };
3068
3337
  };
3069
3338
  };
3070
3339
  export type CapabilityId = keyof typeof CAPABILITIES;
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/internal/capabilities.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/internal/capabilities.ts"],"names":[],"mappings":"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wB,CAAC;AAI7B,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -70,6 +70,12 @@ export const CAPABILITIES = {
70
70
  // More than inference needs both the operator (AI_PROXY_EXTRA_ROUTES)
71
71
  // and the app's manifest (`ai.routes`): OpenAI paths only.
72
72
  extraRoutes: true,
73
+ // Tool calling on chat completions needs `reasoning_effort: "none"`
74
+ // on the GPT-6 family (the responses route takes tools as it is).
75
+ chat: { path: "/v1/chat/completions", model: "gpt-6-luna" },
76
+ embeddings: { path: "/v1/embeddings", model: "text-embedding-3-small" },
77
+ // AI Gateway's OpenAI endpoint takes the path without `/v1`.
78
+ aig: { slug: "openai", trim: "/v1" },
73
79
  hint: "A secret key from the API keys page; the Gateway puts it on every call as a bearer token.",
74
80
  verified: { on: "2026-10-25", how: "live" },
75
81
  },
@@ -90,6 +96,16 @@ export const CAPABILITIES = {
90
96
  "/api/v1/responses",
91
97
  "/api/v1/embeddings",
92
98
  ],
99
+ chat: {
100
+ path: "/api/v1/chat/completions",
101
+ model: "anthropic/claude-haiku-5.5",
102
+ },
103
+ embeddings: {
104
+ path: "/api/v1/embeddings",
105
+ model: "openai/text-embedding-3-small",
106
+ },
107
+ // AI Gateway's OpenRouter endpoint takes the path without `/api`.
108
+ aig: { slug: "openrouter", trim: "/api" },
93
109
  hint: "An API key from OpenRouter's keys page; the Gateway puts it on every call as a bearer token.",
94
110
  // Every answer's `usage.cost` is the call's price in USD, what
95
111
  // OpenRouter charges the key: read off the tail with the tokens.
@@ -122,9 +138,55 @@ export const CAPABILITIES = {
122
138
  "/v1/responses",
123
139
  ],
124
140
  normalize: "workers-ai",
141
+ chat: {
142
+ path: "/v1/chat/completions",
143
+ model: "@cf/meta/llama-4-scout-17b-16e-instruct",
144
+ },
145
+ embeddings: { path: "/v1/embeddings", model: "@cf/baai/bge-m3" },
146
+ // Workers AI's REST API is AI Gateway's own host: the URL stays and
147
+ // `cf-aig-gateway-id` names the gateway.
148
+ aig: { slug: "workers-ai", header: true },
125
149
  hint: "A Cloudflare API token with Workers AI Read (the Workers AI page's prefilled token); the account is the Gateway's own.",
126
150
  verified: { on: "2026-10-25", how: "live" },
127
151
  },
152
+ // Cloudflare AI Gateway: a proxy in front of the other AI providers
153
+ // (logs, caching, rate limits, spend), with no models of its own. With
154
+ // AI_GATEWAY_ID set, every call to an `ai` entry that has an `aig` slug
155
+ // goes through it, the provider's own key still on the call; the
156
+ // gateway's own token is optional (an authenticated gateway requires
157
+ // it). Never listed under `providers`: it fronts the entries apps list.
158
+ "ai-gateway": {
159
+ mode: "ai",
160
+ kind: "proxy",
161
+ label: "Cloudflare AI Gateway",
162
+ description: "Cloudflare's proxy in front of the other AI providers: logs, caching, rate limits and spend, with each provider's own key.",
163
+ auth: {
164
+ kind: "header",
165
+ header: "cf-aig-authorization",
166
+ prefix: "Bearer ",
167
+ secret: "AI_GATEWAY_API_KEY",
168
+ },
169
+ authOptional: true,
170
+ docs: "https://dash.cloudflare.com/?to=/:account/ai/ai-gateway",
171
+ api: "https://developers.cloudflare.com/ai-gateway/",
172
+ setup: "setup/ai-gateway.md",
173
+ origin: "https://gateway.ai.cloudflare.com",
174
+ alsoNeeds: ["CLOUDFLARE_ACCOUNT_ID", "AI_GATEWAY_ID"],
175
+ basePath: "/v1/{CLOUDFLARE_ACCOUNT_ID}/{AI_GATEWAY_ID}",
176
+ inferenceRoutes: [],
177
+ hint: "The gateway's id from the AI Gateway page (everyapp ai gateway on makes one named everyapp); AI_GATEWAY_API_KEY only for an authenticated gateway, sent as cf-aig-authorization.",
178
+ secrets: [
179
+ {
180
+ name: "AI_GATEWAY_ID",
181
+ hint: "The AI Gateway's id (its name in the dashboard), in the Gateway's own Cloudflare account.",
182
+ },
183
+ {
184
+ name: "AI_GATEWAY_API_KEY",
185
+ hint: "An AI Gateway token with Run permission, only when the gateway is authenticated; leave unset for an open gateway.",
186
+ },
187
+ ],
188
+ verified: { on: "2026-10-25", how: "docs" },
189
+ },
128
190
  dataforseo: {
129
191
  mode: "api_key",
130
192
  label: "DataForSEO",
@@ -572,6 +634,17 @@ export const CAPABILITIES = {
572
634
  },
573
635
  api: ["discord.com"],
574
636
  redirectPaths: ["/integrations/social/discord"],
637
+ flow: {
638
+ tokenUrl: "https://discord.com/api/oauth2/token",
639
+ revokeUrl: "https://discord.com/api/oauth2/token/revoke",
640
+ pkce: true,
641
+ scopeDialect: "space",
642
+ identity: {
643
+ url: "https://discord.com/api/users/@me",
644
+ label: "username",
645
+ id: "id",
646
+ },
647
+ },
575
648
  },
576
649
  slack: {
577
650
  mode: "oauth_client",
@@ -786,6 +859,19 @@ export const CAPABILITIES = {
786
859
  "/integrations/social/slack",
787
860
  "/integrations/slack/callback",
788
861
  ],
862
+ // Slack refuses `code_challenge`; `auth.test` names the workspace and
863
+ // the installing person.
864
+ flow: {
865
+ tokenUrl: "https://slack.com/api/oauth.v2.access",
866
+ revokeUrl: "https://slack.com/api/auth.revoke",
867
+ pkce: false,
868
+ scopeDialect: "slack",
869
+ identity: {
870
+ url: "https://slack.com/api/auth.test",
871
+ label: "team",
872
+ id: "user_id",
873
+ },
874
+ },
789
875
  },
790
876
  mastodon: {
791
877
  mode: "oauth_client",
@@ -1076,6 +1162,21 @@ export const CAPABILITIES = {
1076
1162
  "openidconnect.googleapis.com",
1077
1163
  ],
1078
1164
  redirectPaths: ["/integrations/google/callback"],
1165
+ // The Gateway-owned flow: a refresh token needs `access_type=offline`,
1166
+ // and `prompt=consent` makes Google issue one on every connect. No
1167
+ // revoke: Google's `/revoke` is per person per client and would also
1168
+ // kill the tokens an app-driven OpenSEO holds under the same client.
1169
+ flow: {
1170
+ tokenUrl: "https://oauth2.googleapis.com/token",
1171
+ pkce: true,
1172
+ scopeDialect: "google",
1173
+ authorizeParams: { access_type: "offline", prompt: "consent" },
1174
+ identity: {
1175
+ url: "https://openidconnect.googleapis.com/v1/userinfo",
1176
+ label: "email",
1177
+ id: "sub",
1178
+ },
1179
+ },
1079
1180
  },
1080
1181
  "microsoft-365": {
1081
1182
  mode: "oauth_client",
@@ -1171,6 +1272,16 @@ export const CAPABILITIES = {
1171
1272
  },
1172
1273
  api: ["graph.microsoft.com"],
1173
1274
  redirectPaths: ["/integrations/microsoft/callback"],
1275
+ flow: {
1276
+ tokenUrl: "https://login.microsoftonline.com/common/oauth2/v2.0/token",
1277
+ pkce: true,
1278
+ scopeDialect: "microsoft",
1279
+ identity: {
1280
+ url: "https://graph.microsoft.com/v1.0/me",
1281
+ label: "userPrincipalName",
1282
+ id: "id",
1283
+ },
1284
+ },
1174
1285
  },
1175
1286
  // The first fifty beyond the entries above (catalog/*.ts, PR 3 of the
1176
1287
  // provider registry), after them so the derived lists keep their order.