@every-app/sdk 0.3.0-rc.1 → 0.3.0-rc.11

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 (181) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +62 -64
  3. package/dist/cloudflare/catalogSettings.generated.d.ts +84 -0
  4. package/dist/cloudflare/catalogSettings.generated.d.ts.map +1 -0
  5. package/dist/cloudflare/catalogSettings.generated.js +175 -0
  6. package/dist/cloudflare/index.d.ts +3 -2
  7. package/dist/cloudflare/index.d.ts.map +1 -1
  8. package/dist/cloudflare/index.js +4 -1
  9. package/dist/cloudflare/sentinel.d.ts +60 -2
  10. package/dist/cloudflare/sentinel.d.ts.map +1 -1
  11. package/dist/cloudflare/sentinel.js +37 -2
  12. package/dist/cloudflare/worker.d.ts +391 -63
  13. package/dist/cloudflare/worker.d.ts.map +1 -1
  14. package/dist/cloudflare/worker.js +394 -108
  15. package/dist/dev/index.d.ts +1 -1
  16. package/dist/dev/index.d.ts.map +1 -1
  17. package/dist/dev/index.js +1 -1
  18. package/dist/dev/keypair.d.ts +2 -0
  19. package/dist/dev/keypair.d.ts.map +1 -1
  20. package/dist/dev/keypair.js +2 -0
  21. package/dist/index.d.ts +6 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +5 -0
  24. package/dist/internal/aiDefault.d.ts +205 -0
  25. package/dist/internal/aiDefault.d.ts.map +1 -0
  26. package/dist/internal/aiDefault.js +335 -0
  27. package/dist/internal/aiProviders.d.ts +7 -2
  28. package/dist/internal/aiProviders.d.ts.map +1 -1
  29. package/dist/internal/aiProviders.js +19 -6
  30. package/dist/internal/appSettings.d.ts +82 -4
  31. package/dist/internal/appSettings.d.ts.map +1 -1
  32. package/dist/internal/appSettings.js +204 -29
  33. package/dist/internal/audit.d.ts +108 -0
  34. package/dist/internal/audit.d.ts.map +1 -0
  35. package/dist/internal/audit.js +235 -0
  36. package/dist/internal/capabilities.d.ts +2261 -815
  37. package/dist/internal/capabilities.d.ts.map +1 -1
  38. package/dist/internal/capabilities.js +122 -1034
  39. package/dist/internal/catalog/commerce.d.ts +394 -0
  40. package/dist/internal/catalog/commerce.d.ts.map +1 -0
  41. package/dist/internal/catalog/commerce.js +477 -0
  42. package/dist/internal/catalog/comms.d.ts +375 -0
  43. package/dist/internal/catalog/comms.d.ts.map +1 -0
  44. package/dist/internal/catalog/comms.js +520 -0
  45. package/dist/internal/catalog/index.d.ts +2008 -0
  46. package/dist/internal/catalog/index.d.ts.map +1 -0
  47. package/dist/internal/catalog/index.js +19 -0
  48. package/dist/internal/catalog/inference.d.ts +393 -0
  49. package/dist/internal/catalog/inference.d.ts.map +1 -0
  50. package/dist/internal/catalog/inference.js +460 -0
  51. package/dist/internal/catalog/infra.d.ts +458 -0
  52. package/dist/internal/catalog/infra.d.ts.map +1 -0
  53. package/dist/internal/catalog/infra.js +608 -0
  54. package/dist/internal/catalog/search.d.ts +400 -0
  55. package/dist/internal/catalog/search.d.ts.map +1 -0
  56. package/dist/internal/catalog/search.js +463 -0
  57. package/dist/internal/devProviders.d.ts +2 -2
  58. package/dist/internal/devProviders.d.ts.map +1 -1
  59. package/dist/internal/devProviders.js +19 -1
  60. package/dist/internal/events.d.ts +65 -3
  61. package/dist/internal/events.d.ts.map +1 -1
  62. package/dist/internal/events.js +110 -5
  63. package/dist/internal/gatewaySettings.d.ts +3 -2
  64. package/dist/internal/gatewaySettings.d.ts.map +1 -1
  65. package/dist/internal/gatewaySettings.js +12 -6
  66. package/dist/internal/identity.d.ts +41 -4
  67. package/dist/internal/identity.d.ts.map +1 -1
  68. package/dist/internal/identity.js +48 -10
  69. package/dist/internal/index.d.ts +6 -1
  70. package/dist/internal/index.d.ts.map +1 -1
  71. package/dist/internal/index.js +6 -1
  72. package/dist/internal/members.d.ts +3 -2
  73. package/dist/internal/members.d.ts.map +1 -1
  74. package/dist/internal/oauthBuiltIns.d.ts +101 -0
  75. package/dist/internal/oauthBuiltIns.d.ts.map +1 -0
  76. package/dist/internal/oauthBuiltIns.js +122 -0
  77. package/dist/internal/oauthClient.d.ts +8 -50
  78. package/dist/internal/oauthClient.d.ts.map +1 -1
  79. package/dist/internal/oauthClient.js +2 -177
  80. package/dist/internal/oauthPresets.d.ts +32 -0
  81. package/dist/internal/oauthPresets.d.ts.map +1 -0
  82. package/dist/internal/oauthPresets.js +253 -0
  83. package/dist/internal/oauthScopes.d.ts +43 -100
  84. package/dist/internal/oauthScopes.d.ts.map +1 -1
  85. package/dist/internal/oauthScopes.js +83 -382
  86. package/dist/internal/oauthSpec.d.ts +103 -0
  87. package/dist/internal/oauthSpec.d.ts.map +1 -0
  88. package/dist/internal/oauthSpec.js +520 -0
  89. package/dist/internal/protocol.d.ts +97 -5
  90. package/dist/internal/protocol.d.ts.map +1 -1
  91. package/dist/internal/protocol.js +89 -1
  92. package/dist/internal/providerRegistry.d.ts +17 -6
  93. package/dist/internal/providerRegistry.d.ts.map +1 -1
  94. package/dist/internal/providerRegistry.js +71 -8
  95. package/dist/internal/providerSpec.d.ts +18 -7
  96. package/dist/internal/providerSpec.d.ts.map +1 -1
  97. package/dist/internal/providerSpec.js +420 -34
  98. package/dist/internal/remoteMcp.d.ts.map +1 -1
  99. package/dist/internal/remoteMcp.js +1 -5
  100. package/dist/internal/signInProviders.d.ts +104 -0
  101. package/dist/internal/signInProviders.d.ts.map +1 -0
  102. package/dist/internal/signInProviders.js +245 -0
  103. package/dist/internal/tools.d.ts +5 -4
  104. package/dist/internal/tools.d.ts.map +1 -1
  105. package/dist/internal/tools.js +4 -3
  106. package/dist/manifest.d.ts +267 -0
  107. package/dist/manifest.d.ts.map +1 -0
  108. package/dist/manifest.js +30 -0
  109. package/dist/server/ai.d.ts +111 -0
  110. package/dist/server/ai.d.ts.map +1 -0
  111. package/dist/server/ai.js +145 -0
  112. package/dist/server/aiBinding.d.ts +68 -0
  113. package/dist/server/aiBinding.d.ts.map +1 -0
  114. package/dist/server/aiBinding.js +294 -0
  115. package/dist/server/attribution.d.ts +18 -5
  116. package/dist/server/attribution.d.ts.map +1 -1
  117. package/dist/server/attribution.js +19 -5
  118. package/dist/server/connectUrl.d.ts +16 -0
  119. package/dist/server/connectUrl.d.ts.map +1 -0
  120. package/dist/server/connectUrl.js +40 -0
  121. package/dist/server/context.d.ts +68 -0
  122. package/dist/server/context.d.ts.map +1 -0
  123. package/dist/server/context.js +117 -0
  124. package/dist/server/emailBinding.d.ts +72 -0
  125. package/dist/server/emailBinding.d.ts.map +1 -0
  126. package/dist/server/emailBinding.js +124 -0
  127. package/dist/server/emit.d.ts +1 -1
  128. package/dist/server/emit.d.ts.map +1 -1
  129. package/dist/server/emit.js +7 -7
  130. package/dist/server/env.d.ts +44 -0
  131. package/dist/server/env.d.ts.map +1 -0
  132. package/dist/server/env.js +1 -0
  133. package/dist/server/eventsEndpoint.d.ts +48 -0
  134. package/dist/server/eventsEndpoint.d.ts.map +1 -0
  135. package/dist/server/eventsEndpoint.js +145 -0
  136. package/dist/server/everyApp.d.ts +40 -11
  137. package/dist/server/everyApp.d.ts.map +1 -1
  138. package/dist/server/everyApp.js +116 -6
  139. package/dist/server/fromMcpTools.d.ts +89 -0
  140. package/dist/server/fromMcpTools.d.ts.map +1 -0
  141. package/dist/server/fromMcpTools.js +192 -0
  142. package/dist/server/gatewayFetch.d.ts +42 -18
  143. package/dist/server/gatewayFetch.d.ts.map +1 -1
  144. package/dist/server/gatewayFetch.js +138 -19
  145. package/dist/server/gatewayUrl.d.ts +13 -0
  146. package/dist/server/gatewayUrl.d.ts.map +1 -0
  147. package/dist/server/gatewayUrl.js +34 -0
  148. package/dist/server/index.d.ts +16 -4
  149. package/dist/server/index.d.ts.map +1 -1
  150. package/dist/server/index.js +13 -3
  151. package/dist/server/integrationFetch.d.ts +92 -73
  152. package/dist/server/integrationFetch.d.ts.map +1 -1
  153. package/dist/server/integrationFetch.js +206 -319
  154. package/dist/server/listMembers.d.ts +1 -1
  155. package/dist/server/listMembers.d.ts.map +1 -1
  156. package/dist/server/listMembers.js +8 -11
  157. package/dist/server/refusal.d.ts +55 -0
  158. package/dist/server/refusal.d.ts.map +1 -0
  159. package/dist/server/refusal.js +193 -0
  160. package/dist/server/sendEmail.d.ts +1 -1
  161. package/dist/server/sendEmail.d.ts.map +1 -1
  162. package/dist/server/sendEmail.js +7 -7
  163. package/dist/server/tools.d.ts +7 -2
  164. package/dist/server/tools.d.ts.map +1 -1
  165. package/dist/server/tools.js +2 -1
  166. package/dist/server/toolsEndpoint.d.ts +3 -1
  167. package/dist/server/toolsEndpoint.d.ts.map +1 -1
  168. package/dist/server/toolsEndpoint.js +19 -7
  169. package/dist/server/webhooks.d.ts +56 -0
  170. package/dist/server/webhooks.d.ts.map +1 -0
  171. package/dist/server/webhooks.js +205 -0
  172. package/dist/tanstack-start/index.d.ts +9 -0
  173. package/dist/tanstack-start/index.d.ts.map +1 -0
  174. package/dist/tanstack-start/index.js +29 -0
  175. package/dist/testing/index.d.ts +93 -0
  176. package/dist/testing/index.d.ts.map +1 -0
  177. package/dist/testing/index.js +156 -0
  178. package/package.json +35 -14
  179. package/dist/server/authorizeUrl.d.ts +0 -43
  180. package/dist/server/authorizeUrl.d.ts.map +0 -1
  181. package/dist/server/authorizeUrl.js +0 -110
@@ -0,0 +1,463 @@
1
+ export const SEARCH = {
2
+ firecrawl: {
3
+ mode: "api_key",
4
+ label: "Firecrawl",
5
+ description: "Scrapes, crawls, maps and searches the web, returning clean markdown or structured data.",
6
+ auth: {
7
+ kind: "bearer",
8
+ secret: "FIRECRAWL_API_KEY",
9
+ },
10
+ docs: "https://www.firecrawl.dev/app/api-keys",
11
+ api: "https://docs.firecrawl.dev/api-reference/introduction",
12
+ hosts: ["api.firecrawl.dev"],
13
+ data: "per-call",
14
+ access: ["read", "write"],
15
+ readMethods: ["GET", "POST"],
16
+ writeMethods: ["DELETE"],
17
+ accountWidePaths: [
18
+ ["team"],
19
+ ["crawl", "active"],
20
+ ["monitor"],
21
+ ["agent"],
22
+ ["interact"],
23
+ ["support", "ask"],
24
+ ],
25
+ hint: "An API key from Firecrawl's API keys page; the Gateway sends it as a bearer token. Scrape, crawl, map, search and extract are POSTs and job status is a GET; cancelling a crawl or batch (DELETE) needs write.",
26
+ secrets: [
27
+ {
28
+ name: "FIRECRAWL_API_KEY",
29
+ hint: "An API key from Firecrawl's API keys page; it starts with fc-.",
30
+ },
31
+ ],
32
+ smoke: {
33
+ method: "GET",
34
+ path: "/v2/team/credit-usage",
35
+ expect: [200],
36
+ free: true,
37
+ note: "Remaining credits; account-wide, so the Gateway refuses it for apps: run it from the person's terminal.",
38
+ },
39
+ cost: {
40
+ unit: "result",
41
+ note: "Credits: 1 per page scraped or crawled, 1 per map call, 2 per 10 search results; JSON extraction and other options add more.",
42
+ },
43
+ rate: {
44
+ note: "Per team per minute, by plan: /scrape 10 on Free, 100 Hobby, 500 Standard, 5,000 Growth; /crawl 2, 20, 100, 1,000.",
45
+ },
46
+ example: "scrape https://example.com/pricing into markdown",
47
+ verified: {
48
+ on: "2026-10-25",
49
+ how: "docs",
50
+ },
51
+ tags: ["scrape", "crawl", "search"],
52
+ },
53
+ exa: {
54
+ mode: "api_key",
55
+ label: "Exa",
56
+ description: "Web search built for AI: search results, page contents, similar links and cited answers.",
57
+ auth: {
58
+ kind: "header",
59
+ secret: "EXA_API_KEY",
60
+ header: "x-api-key",
61
+ },
62
+ docs: "https://dashboard.exa.ai/api-keys",
63
+ api: "https://exa.ai/docs/reference/search",
64
+ hosts: ["api.exa.ai"],
65
+ data: "per-call",
66
+ access: ["read"],
67
+ readMethods: ["POST"],
68
+ accountWidePaths: [["websets"], ["monitors"], ["agent"], ["batches"]],
69
+ hint: "An API key from the Exa dashboard (the free tier gives $10 of credit a month); the Gateway sends it in the x-api-key header. Search, contents, find-similar and answer are POSTs.",
70
+ secrets: [
71
+ {
72
+ name: "EXA_API_KEY",
73
+ hint: "An API key from the API keys page of the Exa dashboard.",
74
+ },
75
+ ],
76
+ smoke: {
77
+ method: "GET",
78
+ path: "/websets/v0/teams/me",
79
+ expect: [200],
80
+ free: true,
81
+ note: "Team info under the Websets API (the docs page leaves out the /websets prefix); account-wide, so run it from the person's terminal.",
82
+ },
83
+ cost: {
84
+ unit: "call",
85
+ usd: 0.007,
86
+ note: "Search $7 per 1k (auto and fast; lite $4), contents $1 per 1k pages, answer $5 per 1k; up to 10 results included.",
87
+ },
88
+ rate: {
89
+ perSecond: 10,
90
+ note: "Per team: /search and /answer 10 QPS, deep search 5, /contents 100.",
91
+ },
92
+ example: "find recent articles about solid-state batteries",
93
+ verified: {
94
+ on: "2026-10-25",
95
+ how: "docs",
96
+ },
97
+ tags: ["search"],
98
+ },
99
+ tavily: {
100
+ mode: "api_key",
101
+ label: "Tavily",
102
+ description: "Web search, page extraction, crawling and site maps for AI agents, plus research reports.",
103
+ auth: {
104
+ kind: "bearer",
105
+ secret: "TAVILY_API_KEY",
106
+ },
107
+ docs: "https://app.tavily.com",
108
+ api: "https://docs.tavily.com/documentation/api-reference/endpoint/search",
109
+ hosts: ["api.tavily.com"],
110
+ data: "per-call",
111
+ access: ["read"],
112
+ readMethods: ["GET", "POST"],
113
+ accountWidePaths: [["usage"], ["logs"], ["org-usage"]],
114
+ hint: "An API key from app.tavily.com (1,000 free credits a month); the Gateway sends it as a bearer token. Search, extract, crawl, map and research are POSTs; a research result is a GET.",
115
+ secrets: [
116
+ {
117
+ name: "TAVILY_API_KEY",
118
+ hint: "An API key from the Tavily dashboard; it starts with tvly-.",
119
+ },
120
+ ],
121
+ smoke: {
122
+ method: "GET",
123
+ path: "/usage",
124
+ expect: [200],
125
+ free: true,
126
+ note: "Key and account usage, not an endpoint that costs credits; account-wide, so run it from the person's terminal (10 calls per 10 minutes).",
127
+ },
128
+ cost: {
129
+ unit: "call",
130
+ usd: 0.008,
131
+ note: "Pay as you go $0.008 per credit: basic search 1 credit, advanced 2; extract 1 credit per 5 URLs; map 1 per 10 pages.",
132
+ },
133
+ rate: {
134
+ perMinute: 100,
135
+ note: "Development keys 100 per minute, production keys 1,000; crawl 100 and research 20 per minute for both.",
136
+ },
137
+ example: "search the web for this week's news on EU AI rules",
138
+ verified: {
139
+ on: "2026-10-25",
140
+ how: "docs",
141
+ },
142
+ tags: ["search", "scrape"],
143
+ },
144
+ // Unverified: Serper publishes no API reference; the request shape is read from its playground.
145
+ serper: {
146
+ mode: "api_key",
147
+ label: "Serper",
148
+ description: "Google search results as JSON: web, news, images, places, shopping, scholar and patents.",
149
+ auth: {
150
+ kind: "header",
151
+ secret: "SERPER_API_KEY",
152
+ header: "X-API-KEY",
153
+ },
154
+ docs: "https://serper.dev/api-keys",
155
+ api: "https://serper.dev/playground",
156
+ hosts: ["google.serper.dev", "scrape.serper.dev"],
157
+ data: "per-call",
158
+ access: ["read"],
159
+ readMethods: ["POST"],
160
+ accountWidePaths: [],
161
+ hint: 'An API key from serper.dev (2,500 free queries to start); the Gateway sends it in the X-API-KEY header. Every search is a POST to google.serper.dev/<type> (search, news, images, places, …) with a JSON body such as {"q": "…"}.',
162
+ secrets: [
163
+ {
164
+ name: "SERPER_API_KEY",
165
+ hint: "The API key on serper.dev's API keys page.",
166
+ },
167
+ ],
168
+ cost: {
169
+ unit: "call",
170
+ usd: 0.001,
171
+ note: "Prepaid credits, one per successful query: $1.00 per 1k on the 50k pack, down to $0.30 per 1k on the largest.",
172
+ },
173
+ rate: {
174
+ perSecond: 50,
175
+ note: "Starter credits 50 queries per second; Standard 100, Scale 200, Ultimate 300.",
176
+ },
177
+ example: "get the top Google results for best project management software",
178
+ verified: false,
179
+ tags: ["search", "serp"],
180
+ },
181
+ "brave-search": {
182
+ mode: "api_key",
183
+ label: "Brave Search",
184
+ description: "Brave's independent web index: web, news, images, videos, places, LLM context and answers.",
185
+ auth: {
186
+ kind: "header",
187
+ secret: "BRAVE_SEARCH_API_KEY",
188
+ header: "X-Subscription-Token",
189
+ },
190
+ docs: "https://api-dashboard.search.brave.com/app/keys",
191
+ api: "https://api-dashboard.search.brave.com/documentation",
192
+ hosts: ["api.search.brave.com"],
193
+ data: "per-call",
194
+ access: ["read"],
195
+ readMethods: ["GET", "POST"],
196
+ accountWidePaths: [],
197
+ hint: "Activate a plan (it includes $5 of free credit a month), then create a key under API Keys; the Gateway sends it in the X-Subscription-Token header. Searches are GETs (POST works too); answers are a POST to /res/v1/chat/completions.",
198
+ secrets: [
199
+ {
200
+ name: "BRAVE_SEARCH_API_KEY",
201
+ hint: "A key from the API Keys section of the Brave Search API dashboard, made after activating a plan.",
202
+ },
203
+ ],
204
+ cost: {
205
+ unit: "call",
206
+ usd: 0.005,
207
+ note: "Search $5 per 1k requests; Answers $4 per 1k plus $5 per million tokens; $5 free credit a month; only successful calls count.",
208
+ },
209
+ rate: {
210
+ perSecond: 50,
211
+ note: "Search plan 50 queries per second; Answers 2 per second.",
212
+ },
213
+ example: "search the web for the latest Cloudflare Workers release notes",
214
+ verified: {
215
+ on: "2026-10-25",
216
+ how: "docs",
217
+ },
218
+ tags: ["search"],
219
+ },
220
+ apify: {
221
+ mode: "api_key",
222
+ label: "Apify",
223
+ description: "Runs Apify Actors (ready-made scrapers and automations) and reads their datasets and stores.",
224
+ auth: {
225
+ kind: "bearer",
226
+ secret: "APIFY_API_TOKEN",
227
+ },
228
+ docs: "https://console.apify.com/settings/integrations",
229
+ api: "https://docs.apify.com/api/v2",
230
+ hosts: ["api.apify.com"],
231
+ data: "account",
232
+ access: ["read", "write"],
233
+ readMethods: ["GET", "HEAD"],
234
+ writeMethods: ["POST", "PUT", "DELETE"],
235
+ accountWidePaths: [
236
+ ["users"],
237
+ ["webhooks"],
238
+ ["webhook-dispatches"],
239
+ ["env-vars"],
240
+ ],
241
+ hint: "The API token from Apify Console, Settings > API & Integrations; the Gateway sends it as a bearer token. Reading Actors, runs and datasets needs read; starting a run is a POST, so it needs write.",
242
+ secrets: [
243
+ {
244
+ name: "APIFY_API_TOKEN",
245
+ hint: "The API token under Settings > API & Integrations in Apify Console.",
246
+ },
247
+ ],
248
+ smoke: {
249
+ method: "GET",
250
+ path: "/v2/users/me",
251
+ expect: [200],
252
+ free: true,
253
+ note: "The docs' verify call; account-wide, so the Gateway refuses it for apps: run it from the person's terminal.",
254
+ },
255
+ rate: {
256
+ perSecond: 60,
257
+ note: "60 requests per second per resource (one Actor, run, dataset or store); 250,000 requests per minute per user overall.",
258
+ },
259
+ example: "run the Google Maps scraper Actor for coffee shops in Austin and list the results",
260
+ verified: {
261
+ on: "2026-10-25",
262
+ how: "docs",
263
+ },
264
+ tags: ["scrape", "automation"],
265
+ },
266
+ deepgram: {
267
+ mode: "api_key",
268
+ label: "Deepgram",
269
+ description: "Speech to text, text to speech and text analysis.",
270
+ auth: {
271
+ kind: "bearer",
272
+ secret: "DEEPGRAM_API_KEY",
273
+ scheme: "Token",
274
+ },
275
+ docs: "https://console.deepgram.com/",
276
+ api: "https://developers.deepgram.com/reference/deepgram-api-overview",
277
+ hosts: [
278
+ "api.deepgram.com",
279
+ "api.eu.deepgram.com",
280
+ "api.au.deepgram.com",
281
+ "api.in.deepgram.com",
282
+ ],
283
+ data: "per-call",
284
+ access: ["read"],
285
+ readMethods: ["GET", "POST"],
286
+ accountWidePaths: [["projects"], ["auth", "grant"]],
287
+ hint: "An API key from the Deepgram Console; the Gateway sends it as Authorization: Token <key>, and the EU, Australia and India hosts take the same key. Transcription (/v1/listen), speech (/v1/speak) and text analysis (/v1/read) are POSTs.",
288
+ secrets: [
289
+ {
290
+ name: "DEEPGRAM_API_KEY",
291
+ hint: "A project API key created in the Deepgram Console.",
292
+ },
293
+ ],
294
+ smoke: {
295
+ method: "GET",
296
+ path: "/v1/models",
297
+ expect: [200],
298
+ free: true,
299
+ note: "Lists the public models; it needs the key and processes no audio.",
300
+ },
301
+ cost: {
302
+ unit: "call",
303
+ note: "Nova-3 pre-recorded $0.0043 per audio minute (pay as you go); Aura-2 speech $0.030 per 1k characters; $200 free credit.",
304
+ },
305
+ rate: {
306
+ note: "Concurrency per project on pay as you go: 50 pre-recorded transcriptions, 15 text-to-speech requests.",
307
+ },
308
+ example: "transcribe this podcast episode and label the speakers",
309
+ verified: {
310
+ on: "2026-10-25",
311
+ how: "docs",
312
+ },
313
+ tags: ["speech", "transcription"],
314
+ },
315
+ elevenlabs: {
316
+ mode: "api_key",
317
+ label: "ElevenLabs",
318
+ description: "Text to speech, speech to text, sound effects, music and voice changing.",
319
+ auth: {
320
+ kind: "header",
321
+ secret: "ELEVENLABS_API_KEY",
322
+ header: "xi-api-key",
323
+ },
324
+ docs: "https://elevenlabs.io/app/settings/api-keys",
325
+ api: "https://elevenlabs.io/docs/api-reference/introduction",
326
+ hosts: ["api.elevenlabs.io"],
327
+ data: "per-call",
328
+ access: ["read"],
329
+ readMethods: ["GET", "POST"],
330
+ accountWidePaths: [
331
+ ["v1", "user"],
332
+ ["v1", "usage"],
333
+ ["v1", "workspace"],
334
+ ["v1", "workspaces"],
335
+ ["v1", "service-accounts"],
336
+ ["v1", "history"],
337
+ ["v1", "single-use-token"],
338
+ ["v1", "convai"],
339
+ ["v1", "dubbing"],
340
+ ["v1", "studio"],
341
+ ["v1", "pronunciation-dictionaries"],
342
+ ["v1", "voices", "add"],
343
+ ["v1", "voices", "pvc"],
344
+ ["v1", "voices", "collections"],
345
+ ["edit"],
346
+ ["replicate-to-isolated-environment"],
347
+ ["v1", "text-to-voice"],
348
+ ["v1", "audio-native"],
349
+ ["v1", "productions"],
350
+ ["v1", "speech-engine"],
351
+ ["v1", "music", "finetunes"],
352
+ ["v1", "flows"],
353
+ ["v1", "assets"],
354
+ ["v1", "audio-isolation", "history"],
355
+ ],
356
+ hint: "An API key from ElevenLabs' API keys page; the Gateway sends it in the xi-api-key header. Speech, transcription and sound generation are POSTs; listing voices and models are GETs.",
357
+ secrets: [
358
+ {
359
+ name: "ELEVENLABS_API_KEY",
360
+ hint: "An API key from ElevenLabs' API keys page; it can be scoped to the endpoints the app uses and given a credit cap.",
361
+ },
362
+ ],
363
+ smoke: {
364
+ method: "GET",
365
+ path: "/v1/models",
366
+ expect: [200],
367
+ free: true,
368
+ note: "The first request in ElevenLabs' authentication docs; it generates nothing.",
369
+ },
370
+ example: "read this paragraph aloud in a calm narrator voice",
371
+ verified: {
372
+ on: "2026-10-25",
373
+ how: "docs",
374
+ },
375
+ tags: ["speech", "audio"],
376
+ },
377
+ // `account`, not per-call: GET /v2/transcript lists every transcript on the account and shares its segment with /v2/transcript/<id>.
378
+ assemblyai: {
379
+ mode: "api_key",
380
+ label: "AssemblyAI",
381
+ description: "Transcribes recorded audio and video, with speaker labels, redaction and subtitles.",
382
+ auth: {
383
+ kind: "header",
384
+ secret: "ASSEMBLYAI_API_KEY",
385
+ header: "Authorization",
386
+ },
387
+ docs: "https://www.assemblyai.com/dashboard/home",
388
+ api: "https://www.assemblyai.com/docs",
389
+ hosts: ["api.assemblyai.com", "api.eu.assemblyai.com"],
390
+ data: "account",
391
+ access: ["read", "write"],
392
+ readMethods: ["GET", "POST"],
393
+ writeMethods: ["DELETE"],
394
+ accountWidePaths: [],
395
+ hint: "The API key from your AssemblyAI dashboard; the Gateway sends it as the whole Authorization header, with no Bearer word. Audio is submitted with a POST to /v2/transcript and the app polls GET /v2/transcript/<id>; deleting a transcript needs write.",
396
+ secrets: [
397
+ {
398
+ name: "ASSEMBLYAI_API_KEY",
399
+ hint: "The API key on your AssemblyAI dashboard.",
400
+ },
401
+ ],
402
+ smoke: {
403
+ method: "GET",
404
+ path: "/v2/transcript?limit=1",
405
+ expect: [200],
406
+ free: true,
407
+ note: "Lists the account's latest transcript; it transcribes nothing.",
408
+ },
409
+ cost: {
410
+ unit: "call",
411
+ note: "Per hour of audio submitted: Universal-3.5 Pro $0.21, Universal-2 $0.15; the free tier covers up to 185 hours of pre-recorded audio.",
412
+ },
413
+ rate: {
414
+ perMinute: 4000,
415
+ note: "20,000 requests per 5 minutes per account; 5 transcriptions in parallel on free accounts, 200 or more on paid.",
416
+ },
417
+ example: "transcribe this sales call recording with speaker labels",
418
+ verified: {
419
+ on: "2026-10-25",
420
+ how: "docs",
421
+ },
422
+ tags: ["speech", "transcription"],
423
+ },
424
+ newsapi: {
425
+ mode: "api_key",
426
+ label: "NewsAPI",
427
+ description: "Searches news articles and live headlines from over 150,000 sources.",
428
+ auth: {
429
+ kind: "header",
430
+ secret: "NEWSAPI_API_KEY",
431
+ header: "X-Api-Key",
432
+ },
433
+ docs: "https://newsapi.org/register",
434
+ api: "https://newsapi.org/docs",
435
+ hosts: ["newsapi.org"],
436
+ data: "per-call",
437
+ access: ["read"],
438
+ readMethods: ["GET"],
439
+ accountWidePaths: [],
440
+ hint: "An API key from newsapi.org/register; the Gateway sends it in the X-Api-Key header. The free Developer plan allows 100 requests a day, delays articles by 24 hours and is for development only; production needs a paid plan.",
441
+ secrets: [
442
+ {
443
+ name: "NEWSAPI_API_KEY",
444
+ hint: "The API key NewsAPI shows after you register.",
445
+ },
446
+ ],
447
+ cost: {
448
+ unit: "call",
449
+ usd: 0.0018,
450
+ note: "Developer plan free (100 requests a day, development only); Business $449 a month for 250,000 requests, then $0.0018 each.",
451
+ },
452
+ rate: {
453
+ perDay: 100,
454
+ note: "Developer plan; Business includes 250,000 requests a month, Advanced 2,000,000.",
455
+ },
456
+ example: "find today's top business headlines in the US",
457
+ verified: {
458
+ on: "2026-10-25",
459
+ how: "docs",
460
+ },
461
+ tags: ["news"],
462
+ },
463
+ };
@@ -16,7 +16,7 @@
16
16
  * doesn't parse is ignored until an app asks for its id, which then gets
17
17
  * a ConfigurationError naming the file.
18
18
  */
19
- import type { ApiKeyCapability } from "./capabilities.js";
19
+ import { type RegistrableCapability } from "./providerSpec.js";
20
20
  /** The dev Worker's binding holding the specs (a copy is in ../cloudflare/worker.ts, kept in step by a test). */
21
21
  export declare const DEV_PROVIDERS_ENV = "EVERYAPP_DEV_PROVIDERS";
22
22
  /** Where the specs live in an app, relative to its directory. */
@@ -33,7 +33,7 @@ export declare function devProviderFile(id: string): string;
33
33
  /** A registered provider resolved for local development, or why it can't be. */
34
34
  export type DevProviderLookup = {
35
35
  found: true;
36
- capability: ApiKeyCapability;
36
+ capability: RegistrableCapability;
37
37
  file: string;
38
38
  } | {
39
39
  found: false;
@@ -1 +1 @@
1
- {"version":3,"file":"devProviders.d.ts","sourceRoot":"","sources":["../../src/internal/devProviders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,iHAAiH;AACjH,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAE1D,iEAAiE;AACjE,eAAO,MAAM,iBAAiB,wBAAwB,CAAC;AAEvD,0CAA0C;AAC1C,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,IAAI,EAAE,OAAO,CAAC;CACf;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,GACzB;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAuBtC;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACzC,EAAE,EAAE,MAAM,GACT,iBAAiB,CA+BnB"}
1
+ {"version":3,"file":"devProviders.d.ts","sourceRoot":"","sources":["../../src/internal/devProviders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAE3B,iHAAiH;AACjH,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAE1D,iEAAiE;AACjE,eAAO,MAAM,iBAAiB,wBAAwB,CAAC;AAEvD,0CAA0C;AAC1C,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,IAAI,EAAE,OAAO,CAAC;CACf;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,GACzB;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,qBAAqB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAuBtC;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACzC,EAAE,EAAE,MAAM,GACT,iBAAiB,CA+BnB"}
@@ -1,4 +1,22 @@
1
- import { describeSpecProblems, parseProviderSpec } from "./providerSpec.js";
1
+ /**
2
+ * A provider registered on a gateway, in local development
3
+ * (docs/design/2026-10-provider-registry.md, section 4). There is no
4
+ * gateway to ask in `everyapp dev`, so the spec comes from the app's
5
+ * directory: `everyapp provider add` (run in an app directory) and
6
+ * `everyapp provider show <id> --save` write it to
7
+ * `.everyapp/providers/<id>.json`, `everyAppWorker()` reads every such
8
+ * file when it builds the dev Worker and hands them over as one text
9
+ * binding, {@link DEV_PROVIDERS_ENV}, and `integrationFetch()`'s local
10
+ * fallback resolves an id outside the catalog from it, with the
11
+ * developer's own key from `.dev.vars` under the spec's setting names.
12
+ *
13
+ * The binding is JSON: `[{ "file": ".everyapp/providers/stripe.json",
14
+ * "spec": <the file's JSON, or its text when it isn't JSON> }]`. Each spec
15
+ * is parsed here, with the same parser `provider add` uses; one that
16
+ * doesn't parse is ignored until an app asks for its id, which then gets
17
+ * a ConfigurationError naming the file.
18
+ */
19
+ import { describeSpecProblems, parseProviderSpec, } from "./providerSpec.js";
2
20
  /** The dev Worker's binding holding the specs (a copy is in ../cloudflare/worker.ts, kept in step by a test). */
3
21
  export const DEV_PROVIDERS_ENV = "EVERYAPP_DEV_PROVIDERS";
4
22
  /** Where the specs live in an app, relative to its directory. */
@@ -9,7 +9,7 @@
9
9
  * apps/every-app-gateway/src/server/events/catalogue.ts; this module knows
10
10
  * the names, versions and one-line descriptions only.
11
11
  */
12
- export type EventGroup = "member" | "app" | "cap" | "tool" | "connection" | "token" | "access" | "mcp_app" | "provider" | "ping";
12
+ export type EventGroup = "member" | "organization" | "app" | "cap" | "group" | "tool" | "connection" | "token" | "access" | "signin_provider" | "mcp_app" | "provider" | "subscription" | "ai" | "ping";
13
13
  export interface EventTypeInfo {
14
14
  /** `member.joined`, `cap.reached`, … */
15
15
  readonly type: string;
@@ -56,8 +56,19 @@ export declare const EVENT_SUBSCRIPTIONS_MAX = 25;
56
56
  /** A webhook signing secret's length. */
57
57
  export declare const EVENT_SECRET_MIN_LENGTH = 16;
58
58
  export declare const EVENT_SECRET_MAX_LENGTH = 128;
59
- /** Events and deliveries are kept this long. */
59
+ /**
60
+ * Deliveries (the queue and its log) are kept this long. Events themselves
61
+ * are the audit log and live longer ({@link AUDIT_RETENTION_DAYS}).
62
+ */
60
63
  export declare const EVENT_RETENTION_DAYS = 30;
64
+ /**
65
+ * Events are kept this long: Admin → Activity → Audit, `everyapp workspace
66
+ * audit` and `everyapp_workspace_audit` read them back. A constant, not a
67
+ * setting.
68
+ */
69
+ export declare const AUDIT_RETENTION_DAYS = 90;
70
+ /** The most audit rows one page carries, on every surface. */
71
+ export declare const AUDIT_PAGE_MAX = 200;
61
72
  /** A subscription's URL. */
62
73
  export declare const EVENT_URL_MAX_LENGTH = 2048;
63
74
  /** A subscription's name. */
@@ -103,11 +114,62 @@ export declare const EVENT_PRIVATE_NAME_SUFFIXES: readonly string[];
103
114
  */
104
115
  export declare function isPrivateEventTargetName(host: string): boolean;
105
116
  /** The sinks a subscription delivers to. */
106
- export declare const EVENT_SINKS: readonly ["webhook", "email"];
117
+ export declare const EVENT_SINKS: readonly ["webhook", "email", "app"];
107
118
  export type EventSink = (typeof EVENT_SINKS)[number];
108
119
  /** Whom the email sink mails: the organization's owners, or owners and admins. */
109
120
  export declare const EVENT_EMAIL_RECIPIENTS: readonly ["owners", "admins"];
110
121
  export type EventEmailRecipients = (typeof EVENT_EMAIL_RECIPIENTS)[number];
122
+ /**
123
+ * The `app` sink (docs/design/2026-11-birds-decisions/app-event-sink.md):
124
+ * an app declares `events: { subscribe, why }` in its manifest, the deploy
125
+ * makes the subscription for the app's own organization, and the Gateway
126
+ * delivers over the app's service binding to {@link APP_EVENTS_PATH} with a
127
+ * system token of purpose `events.deliver`.
128
+ *
129
+ * Which events may reach an app is an **allowlist** of families, not a
130
+ * deny-list: a family added to the catalogue later reaches no app until it
131
+ * is added here on purpose. `token.*`, `subscription.*`, `provider.*`,
132
+ * `signin_provider.*`, `cap.*`, `ai.*`, `access.*` and `organization.*` are
133
+ * not on it, and `member.password_reset` is left out of `member.*`.
134
+ */
135
+ export declare const APP_EVENTS_PATH = "/__everyapp/events";
136
+ export declare const APP_SINK_EVENT_FAMILIES: readonly EventGroup[];
137
+ /** Types of an allowed family that still never reach an app. */
138
+ export declare const APP_SINK_EXCLUDED_TYPES: readonly string[];
139
+ /** The most patterns one app's `events.subscribe` may list. */
140
+ export declare const APP_SINK_PATTERNS_MAX = 25;
141
+ /**
142
+ * Whether an event of this type may be delivered to an app at all: its
143
+ * family is on the allowlist and the type isn't excluded. Checked when the
144
+ * bus queues a delivery and again before each attempt, whatever the
145
+ * subscription's stored patterns say.
146
+ */
147
+ export declare function appSinkTypeAllowed(type: string): boolean;
148
+ /**
149
+ * What is wrong with a pattern an app's manifest subscribes to, or null: a
150
+ * well-formed pattern ({@link eventPatternProblem}) inside an allowed
151
+ * family. `*` and any pattern outside the families are refused at deploy.
152
+ */
153
+ export declare function appSinkPatternProblem(pattern: string): string | null;
154
+ /**
155
+ * What the Gateway POSTs to {@link APP_EVENTS_PATH}: the same envelope a
156
+ * webhook receives.
157
+ */
158
+ export interface AppEventEnvelope {
159
+ id: string;
160
+ type: string;
161
+ version: number;
162
+ summary: string;
163
+ time: string;
164
+ gateway: string;
165
+ organization: {
166
+ id: string;
167
+ slug: string;
168
+ name: string;
169
+ };
170
+ actor: unknown;
171
+ data: Record<string, unknown>;
172
+ }
111
173
  /**
112
174
  * A subscription pattern: `*` (everything but ping), an exact type, or a
113
175
  * prefix with `.*` (`member.*`, `app.*`, `app.crm.*`). `app.*` matches the
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/internal/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/internal/events.ts"],"names":[],"mappings":"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"}