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

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 (73) hide show
  1. package/dist/cloudflare/index.d.ts +2 -2
  2. package/dist/cloudflare/index.d.ts.map +1 -1
  3. package/dist/cloudflare/index.js +1 -1
  4. package/dist/cloudflare/sentinel.d.ts +39 -1
  5. package/dist/cloudflare/sentinel.d.ts.map +1 -1
  6. package/dist/cloudflare/sentinel.js +22 -1
  7. package/dist/cloudflare/worker.d.ts +119 -2
  8. package/dist/cloudflare/worker.d.ts.map +1 -1
  9. package/dist/cloudflare/worker.js +90 -6
  10. package/dist/internal/aiDefault.d.ts +141 -0
  11. package/dist/internal/aiDefault.d.ts.map +1 -0
  12. package/dist/internal/aiDefault.js +204 -0
  13. package/dist/internal/aiProviders.d.ts +4 -1
  14. package/dist/internal/aiProviders.d.ts.map +1 -1
  15. package/dist/internal/aiProviders.js +5 -1
  16. package/dist/internal/appSettings.d.ts +20 -2
  17. package/dist/internal/appSettings.d.ts.map +1 -1
  18. package/dist/internal/appSettings.js +53 -7
  19. package/dist/internal/audit.d.ts +108 -0
  20. package/dist/internal/audit.d.ts.map +1 -0
  21. package/dist/internal/audit.js +235 -0
  22. package/dist/internal/capabilities.d.ts +275 -6
  23. package/dist/internal/capabilities.d.ts.map +1 -1
  24. package/dist/internal/capabilities.js +111 -0
  25. package/dist/internal/catalog/index.d.ts +38 -1
  26. package/dist/internal/catalog/index.d.ts.map +1 -1
  27. package/dist/internal/catalog/inference.d.ts +38 -1
  28. package/dist/internal/catalog/inference.d.ts.map +1 -1
  29. package/dist/internal/catalog/inference.js +33 -1
  30. package/dist/internal/devProviders.d.ts +2 -2
  31. package/dist/internal/devProviders.d.ts.map +1 -1
  32. package/dist/internal/devProviders.js +19 -1
  33. package/dist/internal/events.d.ts +13 -2
  34. package/dist/internal/events.d.ts.map +1 -1
  35. package/dist/internal/events.js +19 -3
  36. package/dist/internal/index.d.ts +4 -0
  37. package/dist/internal/index.d.ts.map +1 -1
  38. package/dist/internal/index.js +4 -0
  39. package/dist/internal/oauthPresets.d.ts +29 -0
  40. package/dist/internal/oauthPresets.d.ts.map +1 -0
  41. package/dist/internal/oauthPresets.js +534 -0
  42. package/dist/internal/oauthScopes.d.ts +56 -1
  43. package/dist/internal/oauthScopes.d.ts.map +1 -1
  44. package/dist/internal/oauthScopes.js +98 -4
  45. package/dist/internal/oauthSpec.d.ts +59 -0
  46. package/dist/internal/oauthSpec.d.ts.map +1 -0
  47. package/dist/internal/oauthSpec.js +676 -0
  48. package/dist/internal/protocol.d.ts +11 -0
  49. package/dist/internal/protocol.d.ts.map +1 -1
  50. package/dist/internal/protocol.js +9 -0
  51. package/dist/internal/providerRegistry.d.ts +17 -6
  52. package/dist/internal/providerRegistry.d.ts.map +1 -1
  53. package/dist/internal/providerRegistry.js +47 -2
  54. package/dist/internal/providerSpec.d.ts +11 -7
  55. package/dist/internal/providerSpec.d.ts.map +1 -1
  56. package/dist/internal/providerSpec.js +134 -37
  57. package/dist/internal/signInProviders.d.ts.map +1 -1
  58. package/dist/internal/signInProviders.js +11 -4
  59. package/dist/server/ai.d.ts +45 -0
  60. package/dist/server/ai.d.ts.map +1 -0
  61. package/dist/server/ai.js +40 -0
  62. package/dist/server/connectUrl.d.ts +21 -0
  63. package/dist/server/connectUrl.d.ts.map +1 -0
  64. package/dist/server/connectUrl.js +37 -0
  65. package/dist/server/gatewayFetch.d.ts.map +1 -1
  66. package/dist/server/gatewayFetch.js +72 -8
  67. package/dist/server/index.d.ts +4 -2
  68. package/dist/server/index.d.ts.map +1 -1
  69. package/dist/server/index.js +3 -1
  70. package/dist/server/integrationFetch.d.ts +39 -2
  71. package/dist/server/integrationFetch.d.ts.map +1 -1
  72. package/dist/server/integrationFetch.js +177 -13
  73. package/package.json +1 -1
@@ -407,7 +407,16 @@ export declare const CATALOG_ENTRIES: {
407
407
  readonly docs: "https://platform.claude.com/settings/keys";
408
408
  readonly api: "https://platform.claude.com/docs/en/api/overview";
409
409
  readonly origin: "https://api.anthropic.com";
410
- readonly inferenceRoutes: readonly ["/v1/messages", "/v1/messages/count_tokens"];
410
+ readonly inferenceRoutes: readonly ["/v1/messages", "/v1/messages/count_tokens", "/v1/chat/completions"];
411
+ readonly unstoredRoutes: readonly ["/v1/chat/completions"];
412
+ readonly shape: "anthropic";
413
+ readonly chat: {
414
+ readonly path: "/v1/chat/completions";
415
+ readonly model: "claude-haiku-5-5";
416
+ };
417
+ readonly aig: {
418
+ readonly slug: "anthropic";
419
+ };
411
420
  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.";
412
421
  readonly secrets: readonly [{
413
422
  readonly name: "ANTHROPIC_API_KEY";
@@ -442,6 +451,14 @@ export declare const CATALOG_ENTRIES: {
442
451
  readonly api: "https://ai.google.dev/gemini-api/docs/openai";
443
452
  readonly origin: "https://generativelanguage.googleapis.com";
444
453
  readonly inferenceRoutes: readonly ["/v1beta/openai/chat/completions", "/v1beta/openai/embeddings", "/v1beta/openai/images/generations"];
454
+ readonly chat: {
455
+ readonly path: "/v1beta/openai/chat/completions";
456
+ readonly model: "gemini-3.1-flash-lite";
457
+ };
458
+ readonly embeddings: {
459
+ readonly path: "/v1beta/openai/embeddings";
460
+ readonly model: "gemini-embedding-001";
461
+ };
445
462
  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.";
446
463
  readonly secrets: readonly [{
447
464
  readonly name: "GEMINI_API_KEY";
@@ -475,6 +492,17 @@ export declare const CATALOG_ENTRIES: {
475
492
  readonly api: "https://docs.mistral.ai/api/";
476
493
  readonly origin: "https://api.mistral.ai";
477
494
  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"];
495
+ readonly chat: {
496
+ readonly path: "/v1/chat/completions";
497
+ readonly model: "mistral-small-latest";
498
+ };
499
+ readonly embeddings: {
500
+ readonly path: "/v1/embeddings";
501
+ readonly model: "mistral-embed";
502
+ };
503
+ readonly aig: {
504
+ readonly slug: "mistral";
505
+ };
478
506
  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.";
479
507
  readonly secrets: readonly [{
480
508
  readonly name: "MISTRAL_API_KEY";
@@ -505,6 +533,14 @@ export declare const CATALOG_ENTRIES: {
505
533
  readonly api: "https://console.groq.com/docs/api-reference";
506
534
  readonly origin: "https://api.groq.com";
507
535
  readonly inferenceRoutes: readonly ["/openai/v1/chat/completions", "/openai/v1/responses", "/openai/v1/audio/transcriptions", "/openai/v1/audio/translations", "/openai/v1/audio/speech"];
536
+ readonly chat: {
537
+ readonly path: "/openai/v1/chat/completions";
538
+ readonly model: "openai/gpt-oss-20b";
539
+ };
540
+ readonly aig: {
541
+ readonly slug: "groq";
542
+ readonly trim: "/openai/v1";
543
+ };
508
544
  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.";
509
545
  readonly secrets: readonly [{
510
546
  readonly name: "GROQ_API_KEY";
@@ -538,6 +574,7 @@ export declare const CATALOG_ENTRIES: {
538
574
  readonly api: "https://docs.cohere.com/reference/about";
539
575
  readonly origin: "https://api.cohere.com";
540
576
  readonly inferenceRoutes: readonly ["/v2/chat", "/v2/embed", "/v2/rerank", "/v1/classify", "/v2/audio/transcriptions", "/v2/parse", "/v1/tokenize", "/v1/detokenize"];
577
+ readonly shape: "other";
541
578
  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.";
542
579
  readonly secrets: readonly [{
543
580
  readonly name: "COHERE_API_KEY";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/catalog/index.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMlB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/catalog/index.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMlB,CAAC"}
@@ -10,7 +10,16 @@ export declare const INFERENCE: {
10
10
  readonly docs: "https://platform.claude.com/settings/keys";
11
11
  readonly api: "https://platform.claude.com/docs/en/api/overview";
12
12
  readonly origin: "https://api.anthropic.com";
13
- readonly inferenceRoutes: readonly ["/v1/messages", "/v1/messages/count_tokens"];
13
+ readonly inferenceRoutes: readonly ["/v1/messages", "/v1/messages/count_tokens", "/v1/chat/completions"];
14
+ readonly unstoredRoutes: readonly ["/v1/chat/completions"];
15
+ readonly shape: "anthropic";
16
+ readonly chat: {
17
+ readonly path: "/v1/chat/completions";
18
+ readonly model: "claude-haiku-5-5";
19
+ };
20
+ readonly aig: {
21
+ readonly slug: "anthropic";
22
+ };
14
23
  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.";
15
24
  readonly secrets: readonly [{
16
25
  readonly name: "ANTHROPIC_API_KEY";
@@ -45,6 +54,14 @@ export declare const INFERENCE: {
45
54
  readonly api: "https://ai.google.dev/gemini-api/docs/openai";
46
55
  readonly origin: "https://generativelanguage.googleapis.com";
47
56
  readonly inferenceRoutes: readonly ["/v1beta/openai/chat/completions", "/v1beta/openai/embeddings", "/v1beta/openai/images/generations"];
57
+ readonly chat: {
58
+ readonly path: "/v1beta/openai/chat/completions";
59
+ readonly model: "gemini-3.1-flash-lite";
60
+ };
61
+ readonly embeddings: {
62
+ readonly path: "/v1beta/openai/embeddings";
63
+ readonly model: "gemini-embedding-001";
64
+ };
48
65
  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.";
49
66
  readonly secrets: readonly [{
50
67
  readonly name: "GEMINI_API_KEY";
@@ -78,6 +95,17 @@ export declare const INFERENCE: {
78
95
  readonly api: "https://docs.mistral.ai/api/";
79
96
  readonly origin: "https://api.mistral.ai";
80
97
  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"];
98
+ readonly chat: {
99
+ readonly path: "/v1/chat/completions";
100
+ readonly model: "mistral-small-latest";
101
+ };
102
+ readonly embeddings: {
103
+ readonly path: "/v1/embeddings";
104
+ readonly model: "mistral-embed";
105
+ };
106
+ readonly aig: {
107
+ readonly slug: "mistral";
108
+ };
81
109
  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.";
82
110
  readonly secrets: readonly [{
83
111
  readonly name: "MISTRAL_API_KEY";
@@ -108,6 +136,14 @@ export declare const INFERENCE: {
108
136
  readonly api: "https://console.groq.com/docs/api-reference";
109
137
  readonly origin: "https://api.groq.com";
110
138
  readonly inferenceRoutes: readonly ["/openai/v1/chat/completions", "/openai/v1/responses", "/openai/v1/audio/transcriptions", "/openai/v1/audio/translations", "/openai/v1/audio/speech"];
139
+ readonly chat: {
140
+ readonly path: "/openai/v1/chat/completions";
141
+ readonly model: "openai/gpt-oss-20b";
142
+ };
143
+ readonly aig: {
144
+ readonly slug: "groq";
145
+ readonly trim: "/openai/v1";
146
+ };
111
147
  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.";
112
148
  readonly secrets: readonly [{
113
149
  readonly name: "GROQ_API_KEY";
@@ -141,6 +177,7 @@ export declare const INFERENCE: {
141
177
  readonly api: "https://docs.cohere.com/reference/about";
142
178
  readonly origin: "https://api.cohere.com";
143
179
  readonly inferenceRoutes: readonly ["/v2/chat", "/v2/embed", "/v2/rerank", "/v1/classify", "/v2/audio/transcriptions", "/v2/parse", "/v1/tokenize", "/v1/detokenize"];
180
+ readonly shape: "other";
144
181
  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.";
145
182
  readonly secrets: readonly [{
146
183
  readonly name: "COHERE_API_KEY";
@@ -1 +1 @@
1
- {"version":3,"file":"inference.d.ts","sourceRoot":"","sources":["../../../src/internal/catalog/inference.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkbsD,CAAC"}
1
+ {"version":3,"file":"inference.d.ts","sourceRoot":"","sources":["../../../src/internal/catalog/inference.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkdsD,CAAC"}
@@ -11,7 +11,19 @@ export const INFERENCE = {
11
11
  docs: "https://platform.claude.com/settings/keys",
12
12
  api: "https://platform.claude.com/docs/en/api/overview",
13
13
  origin: "https://api.anthropic.com",
14
- inferenceRoutes: ["/v1/messages", "/v1/messages/count_tokens"],
14
+ inferenceRoutes: [
15
+ "/v1/messages",
16
+ "/v1/messages/count_tokens",
17
+ // Anthropic's OpenAI-compatible chat completions (its docs: not a
18
+ // long-term solution; `strict` is ignored): what the default route
19
+ // maps onto when Anthropic is the Gateway's default.
20
+ "/v1/chat/completions",
21
+ ],
22
+ unstoredRoutes: ["/v1/chat/completions"],
23
+ // The Messages API is the shape an app pins `anthropic` for.
24
+ shape: "anthropic",
25
+ chat: { path: "/v1/chat/completions", model: "claude-haiku-5-5" },
26
+ aig: { slug: "anthropic" },
15
27
  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.",
16
28
  secrets: [
17
29
  {
@@ -52,6 +64,16 @@ export const INFERENCE = {
52
64
  "/v1beta/openai/embeddings",
53
65
  "/v1beta/openai/images/generations",
54
66
  ],
67
+ chat: {
68
+ path: "/v1beta/openai/chat/completions",
69
+ model: "gemini-3.1-flash-lite",
70
+ },
71
+ embeddings: {
72
+ path: "/v1beta/openai/embeddings",
73
+ model: "gemini-embedding-001",
74
+ },
75
+ // No `aig`: AI Gateway documents Google AI Studio's native form only
76
+ // (/v1/models/{model}:generateContent), not these OpenAI-shaped paths.
55
77
  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.",
56
78
  secrets: [
57
79
  {
@@ -98,6 +120,9 @@ export const INFERENCE = {
98
120
  "/v1/audio/transcriptions",
99
121
  "/v1/audio/speech",
100
122
  ],
123
+ chat: { path: "/v1/chat/completions", model: "mistral-small-latest" },
124
+ embeddings: { path: "/v1/embeddings", model: "mistral-embed" },
125
+ aig: { slug: "mistral" },
101
126
  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.",
102
127
  secrets: [
103
128
  {
@@ -136,6 +161,9 @@ export const INFERENCE = {
136
161
  "/openai/v1/audio/translations",
137
162
  "/openai/v1/audio/speech",
138
163
  ],
164
+ chat: { path: "/openai/v1/chat/completions", model: "openai/gpt-oss-20b" },
165
+ // AI Gateway's Groq endpoint takes the path without `/openai/v1`.
166
+ aig: { slug: "groq", trim: "/openai/v1" },
139
167
  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.",
140
168
  secrets: [
141
169
  {
@@ -180,6 +208,10 @@ export const INFERENCE = {
180
208
  "/v1/tokenize",
181
209
  "/v1/detokenize",
182
210
  ],
211
+ // Cohere's own v2 shape: pinned by an app that speaks it, never the
212
+ // default (its OpenAI-compatible endpoint is on another host,
213
+ // api.cohere.ai). No `aig`: AI Gateway documents v1 paths only.
214
+ shape: "other",
183
215
  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.",
184
216
  secrets: [
185
217
  {
@@ -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" | "signin_provider" | "mcp_app" | "provider" | "ping";
12
+ export type EventGroup = "member" | "app" | "cap" | "tool" | "connection" | "token" | "access" | "signin_provider" | "mcp_app" | "provider" | "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. */
@@ -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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"}
@@ -47,8 +47,13 @@ export const EVENT_TYPES = [
47
47
  entry("mcp_app", "mcp_app.removed", "An MCP app was removed"),
48
48
  entry("mcp_app", "mcp_app.enabled", "An MCP app is being served again"),
49
49
  entry("mcp_app", "mcp_app.disabled", "An MCP app stopped being served"),
50
- entry("provider", "provider.added", "An API provider was registered"),
51
- entry("provider", "provider.removed", "An API provider was removed"),
50
+ entry("provider", "provider.added", "A provider was registered"),
51
+ entry("provider", "provider.removed", "A provider was removed"),
52
+ entry("provider", "provider.updated", "A provider's spec or OAuth client was replaced"),
53
+ entry("provider", "provider.connected", "Someone connected an account at an OAuth provider"),
54
+ entry("provider", "provider.disconnected", "An OAuth provider account was disconnected"),
55
+ entry("provider", "provider.connection_expired", "An OAuth provider refused to refresh a connection; it needs reconnecting"),
56
+ entry("ai", "ai.default_changed", "The default model provider changed"),
52
57
  entry("ping", "ping", "A test event, sent to one subscription on request"),
53
58
  ];
54
59
  const typesByName = new Map(EVENT_TYPES.map((info) => [info.type, info]));
@@ -101,8 +106,19 @@ export const EVENT_SUBSCRIPTIONS_MAX = 25;
101
106
  /** A webhook signing secret's length. */
102
107
  export const EVENT_SECRET_MIN_LENGTH = 16;
103
108
  export const EVENT_SECRET_MAX_LENGTH = 128;
104
- /** Events and deliveries are kept this long. */
109
+ /**
110
+ * Deliveries (the queue and its log) are kept this long. Events themselves
111
+ * are the audit log and live longer ({@link AUDIT_RETENTION_DAYS}).
112
+ */
105
113
  export const EVENT_RETENTION_DAYS = 30;
114
+ /**
115
+ * Events are kept this long: Admin → Activity → Audit, `everyapp workspace
116
+ * audit` and `everyapp_workspace_audit` read them back. A constant, not a
117
+ * setting.
118
+ */
119
+ export const AUDIT_RETENTION_DAYS = 90;
120
+ /** The most audit rows one page carries, on every surface. */
121
+ export const AUDIT_PAGE_MAX = 200;
106
122
  /** A subscription's URL. */
107
123
  export const EVENT_URL_MAX_LENGTH = 2048;
108
124
  /** A subscription's name. */
@@ -2,6 +2,7 @@ export * from "./protocol.js";
2
2
  export * from "./tools.js";
3
3
  export * from "./capabilities.js";
4
4
  export * from "./aiProviders.js";
5
+ export * from "./aiDefault.js";
5
6
  export * from "./gatewaySettings.js";
6
7
  export * from "./appSettings.js";
7
8
  export * from "./email.js";
@@ -9,8 +10,11 @@ export * from "./members.js";
9
10
  export * from "./organizationName.js";
10
11
  export * from "./oauthClient.js";
11
12
  export * from "./oauthScopes.js";
13
+ export * from "./oauthSpec.js";
14
+ export * from "./oauthPresets.js";
12
15
  export * from "./providerApps.js";
13
16
  export * from "./events.js";
17
+ export * from "./audit.js";
14
18
  export * from "./providerSpec.js";
15
19
  export * from "./providerRegistry.js";
16
20
  export * from "./remoteMcp.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/internal/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/internal/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC"}
@@ -2,6 +2,7 @@ export * from "./protocol.js";
2
2
  export * from "./tools.js";
3
3
  export * from "./capabilities.js";
4
4
  export * from "./aiProviders.js";
5
+ export * from "./aiDefault.js";
5
6
  export * from "./gatewaySettings.js";
6
7
  export * from "./appSettings.js";
7
8
  export * from "./email.js";
@@ -9,8 +10,11 @@ export * from "./members.js";
9
10
  export * from "./organizationName.js";
10
11
  export * from "./oauthClient.js";
11
12
  export * from "./oauthScopes.js";
13
+ export * from "./oauthSpec.js";
14
+ export * from "./oauthPresets.js";
12
15
  export * from "./providerApps.js";
13
16
  export * from "./events.js";
17
+ export * from "./audit.js";
14
18
  export * from "./providerSpec.js";
15
19
  export * from "./providerRegistry.js";
16
20
  export * from "./remoteMcp.js";
@@ -0,0 +1,29 @@
1
+ /**
2
+ * OAuth presets (docs/design/2026-10-oauth-providers.md section 4): ready
3
+ * `oauth2-user` specs, in the JSON shape `everyapp provider add` takes,
4
+ * for the providers people most often want a "Connect" button for. A
5
+ * preset becomes a `providers` row when added (`everyapp provider add
6
+ * --oauth github`, the Admin dialog, `everyapp_provider_add` with
7
+ * `preset`), so an operator may `provider show` and edit a copy; nothing
8
+ * here is a hidden catalog entry. Google, Microsoft, Slack and Discord
9
+ * are catalog clients with a `flow` and are offered in the same picker.
10
+ *
11
+ * Each preset parses with `parseProviderSpec` (oauthPresets.test.ts),
12
+ * names a console where the client is made, the API hosts the token is
13
+ * sent to, and scope sets an app declares under `scopes`. Scope strings
14
+ * are the providers' own, verified against their docs on 2026-10-25.
15
+ */
16
+ import { type RegistrableCapability } from "./providerSpec.js";
17
+ /** A preset's spec as JSON: the shape of ./oauthSpec.ts. */
18
+ export type OAuthPresetSpec = Readonly<Record<string, unknown>>;
19
+ export declare const OAUTH_PRESETS: Readonly<Record<string, OAuthPresetSpec>>;
20
+ /** The preset ids, in the order the picker shows them. */
21
+ export declare function oauthPresetIds(): string[];
22
+ /** A preset's parsed capability, for the picker's labels; throws for an unknown id (the test parses every preset). */
23
+ export declare function oauthPreset(id: string): RegistrableCapability | null;
24
+ /** Whether `capability` is an OAuth provider the Gateway runs the flow for. */
25
+ export declare function isOAuthProvider(capability: {
26
+ mode: string;
27
+ flow?: unknown;
28
+ } | undefined): boolean;
29
+ //# sourceMappingURL=oauthPresets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauthPresets.d.ts","sourceRoot":"","sources":["../../src/internal/oauthPresets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAE3B,4DAA4D;AAC5D,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEhE,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAofnE,CAAC;AAEF,0DAA0D;AAC1D,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAEzC;AAED,sHAAsH;AACtH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAUpE;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAC7B,UAAU,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,GACvD,OAAO,CAET"}