sermon-js 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +2 -1
  2. package/dist/api/index.d.cts +4 -4
  3. package/dist/api/index.d.ts +4 -4
  4. package/dist/{chunk-PARE6EUZ.cjs → chunk-NZTKXXW2.cjs} +7 -3
  5. package/dist/chunk-NZTKXXW2.cjs.map +1 -0
  6. package/dist/{chunk-2M4UBCDM.js → chunk-R7BDAQOM.js} +7 -3
  7. package/dist/chunk-R7BDAQOM.js.map +1 -0
  8. package/dist/{config-BEbP-uLf.d.cts → config-gro29syt.d.cts} +1 -1
  9. package/dist/{config-w1tm1bdu.d.ts → config-iY18j9IA.d.ts} +1 -1
  10. package/dist/{generic-lmrGxMDC.d.cts → generic-BUiaKpNp.d.cts} +2 -2
  11. package/dist/{generic-BJmlgtUM.d.ts → generic-CV2O4aNH.d.ts} +2 -2
  12. package/dist/index.cjs +6 -6
  13. package/dist/index.d.cts +8 -8
  14. package/dist/index.d.ts +8 -8
  15. package/dist/index.js +2 -2
  16. package/dist/presets/index.cjs +407 -47
  17. package/dist/presets/index.cjs.map +1 -1
  18. package/dist/presets/index.d.cts +173 -14
  19. package/dist/presets/index.d.ts +173 -14
  20. package/dist/presets/index.js +402 -48
  21. package/dist/presets/index.js.map +1 -1
  22. package/dist/react/heroui/index.cjs +27 -18
  23. package/dist/react/heroui/index.cjs.map +1 -1
  24. package/dist/react/heroui/index.d.cts +7 -2
  25. package/dist/react/heroui/index.d.ts +7 -2
  26. package/dist/react/heroui/index.js +13 -4
  27. package/dist/react/heroui/index.js.map +1 -1
  28. package/dist/react/index.d.cts +2 -2
  29. package/dist/react/index.d.ts +2 -2
  30. package/dist/{status-DsWzgb9Q.d.cts → status-BExBb08T.d.cts} +3 -3
  31. package/dist/{status-zd04ZQ98.d.ts → status-DmRhwvVC.d.ts} +3 -3
  32. package/dist/{store-_GuzSP0z.d.ts → store-BfKP7CjW.d.ts} +1 -1
  33. package/dist/{store-DybhDphS.d.cts → store-CAIB7Esp.d.cts} +1 -1
  34. package/dist/stores/mongodb.d.cts +2 -2
  35. package/dist/stores/mongodb.d.ts +2 -2
  36. package/dist/stores/redis.d.cts +2 -2
  37. package/dist/stores/redis.d.ts +2 -2
  38. package/dist/stores/sql.d.cts +2 -2
  39. package/dist/stores/sql.d.ts +2 -2
  40. package/dist/stores/upstash.d.cts +2 -2
  41. package/dist/stores/upstash.d.ts +2 -2
  42. package/dist/testing/index.cjs +3 -3
  43. package/dist/testing/index.d.cts +3 -3
  44. package/dist/testing/index.d.ts +3 -3
  45. package/dist/testing/index.js +1 -1
  46. package/dist/{tree-BXbXfjF1.d.cts → tree-J3riUyI9.d.cts} +9 -0
  47. package/dist/{tree-BXbXfjF1.d.ts → tree-J3riUyI9.d.ts} +9 -0
  48. package/dist/{types-CctvUAs2.d.cts → types-BVa6vIKk.d.cts} +9 -0
  49. package/dist/{types-CctvUAs2.d.ts → types-BVa6vIKk.d.ts} +9 -0
  50. package/package.json +1 -1
  51. package/dist/chunk-2M4UBCDM.js.map +0 -1
  52. package/dist/chunk-PARE6EUZ.cjs.map +0 -1
@@ -1,6 +1,6 @@
1
- export { G as GenericHttpOptions, g as generic } from '../generic-lmrGxMDC.cjs';
2
- import { b as PresetOptions, S as ServiceDefinition } from '../config-BEbP-uLf.cjs';
3
- import { P as ProbeHelpers, h as CommonOptions } from '../types-CctvUAs2.cjs';
1
+ export { G as GenericHttpOptions, g as generic } from '../generic-BUiaKpNp.cjs';
2
+ import { b as PresetOptions, S as ServiceDefinition } from '../config-gro29syt.cjs';
3
+ import { P as ProbeHelpers, h as CommonOptions } from '../types-BVa6vIKk.cjs';
4
4
 
5
5
  type FlyAppOptions = PresetOptions & {
6
6
  /** The Fly app name, e.g. "my-api" */
@@ -108,10 +108,71 @@ type S3BucketOptions = PresetOptions & {
108
108
  region?: string;
109
109
  secrets: AwsSecrets;
110
110
  };
111
+ type BedrockOptions = PresetOptions & {
112
+ /** AWS region of the Bedrock runtime, e.g. "eu-west-1" */
113
+ region: string | undefined;
114
+ /**
115
+ * The models you invoke, as the runtime expects them: a model ID or an inference profile
116
+ * ID ("eu.anthropic.claude-haiku-4-5-20251001-v1:0"). Each one is reported on its own row.
117
+ */
118
+ models: string[];
119
+ /** A Bedrock API key (`bearerToken`), or an access key pair */
120
+ secrets: {
121
+ bearerToken?: string | undefined;
122
+ accessKeyId?: string | undefined;
123
+ secretAccessKey?: string | undefined;
124
+ };
125
+ };
126
+ /**
127
+ * Amazon Bedrock. Invokes each model in `models` with a one-token request (the runtime has
128
+ * no free call that proves a model can be invoked).
129
+ * - up: every model answers
130
+ * - degraded: some models fail, or one is throttled (HTTP 429)
131
+ * - down: every model fails (wrong credentials, no access, wrong region)
132
+ *
133
+ * Reports one `instances` row per model. Authenticates with a Bedrock API key when
134
+ * `secrets.bearerToken` is given, otherwise signs with the access key pair (SigV4).
135
+ */
136
+ declare function bedrock(options: BedrockOptions): ServiceDefinition;
111
137
  /** Presets for AWS and S3-compatible storage */
112
138
  declare const aws: {
113
139
  credentials: (options: AwsCredentialsOptions) => ServiceDefinition;
114
140
  s3Bucket: (options: S3BucketOptions) => ServiceDefinition;
141
+ bedrock: typeof bedrock;
142
+ };
143
+
144
+ type NeonProjectOptions = PresetOptions & {
145
+ projectId: string | undefined;
146
+ /** A Neon API key (account, organization or project-scoped) */
147
+ secrets: {
148
+ apiKey: string | undefined;
149
+ };
150
+ /**
151
+ * Runs one statement with the driver you already use, e.g. `(sql) => pool.query(sql)`.
152
+ * `select 1` is only sent while the compute is active, so a check never wakes the database.
153
+ */
154
+ query?: (sql: string) => Promise<unknown>;
155
+ /**
156
+ * The compute `query` connects to: the `ep-…` part of the connection host.
157
+ * Default: the read-write compute of the default branch.
158
+ */
159
+ endpoint?: string;
160
+ track?: {
161
+ /** Your plan's compute allowance for the billing period, in CU-hours: adds a usage bar */
162
+ compute?: {
163
+ maxHours: number;
164
+ warnAbovePct?: number;
165
+ };
166
+ /** Your plan's storage allowance in GB: adds a usage bar (sum of the branches' logical sizes) */
167
+ storage?: {
168
+ maxGb: number;
169
+ warnAbovePct?: number;
170
+ };
171
+ };
172
+ };
173
+ /** Presets for Neon */
174
+ declare const neon: {
175
+ project: (options: NeonProjectOptions) => ServiceDefinition;
115
176
  };
116
177
 
117
178
  type MongoDatabase = {
@@ -166,12 +227,12 @@ declare const postgres: {
166
227
  ping: (options: PostgresPingOptions) => ServiceDefinition;
167
228
  };
168
229
 
169
- type ApiKey = {
230
+ type ApiKey$1 = {
170
231
  secrets: {
171
232
  apiKey: string | undefined;
172
233
  };
173
234
  };
174
- type DeepgramOptions = PresetOptions & ApiKey & {
235
+ type DeepgramOptions = PresetOptions & ApiKey$1 & {
175
236
  track?: {
176
237
  /** Warn when the prepaid balance drops below this amount (default 20). `false` skips the balance. */
177
238
  balance?: {
@@ -189,14 +250,14 @@ type DeepgramOptions = PresetOptions & ApiKey & {
189
250
  */
190
251
  declare const deepgram: (options: DeepgramOptions) => ServiceDefinition;
191
252
  /** Gladia. Lists live sessions (limit 1). up when the key works; down when rejected. */
192
- declare const gladia: (options: CommonOptions & ApiKey) => ServiceDefinition;
193
- type SpeechmaticsOptions = PresetOptions & ApiKey & {
253
+ declare const gladia: (options: CommonOptions & ApiKey$1) => ServiceDefinition;
254
+ type SpeechmaticsOptions = PresetOptions & ApiKey$1 & {
194
255
  /** API base URL, e.g. the EU endpoint (default "https://asr.api.speechmatics.com") */
195
256
  baseUrl?: string;
196
257
  };
197
258
  /** Speechmatics. Lists batch jobs (limit 1), which validates the API key. */
198
259
  declare const speechmatics: (options: SpeechmaticsOptions) => ServiceDefinition;
199
- type OpenAIOptions = PresetOptions & ApiKey & {
260
+ type OpenAIOptions = PresetOptions & ApiKey$1 & {
200
261
  /** Sent as the `OpenAI-Organization` header */
201
262
  organization?: string;
202
263
  track?: {
@@ -209,13 +270,31 @@ type OpenAIOptions = PresetOptions & ApiKey & {
209
270
  * It proves the key works; it can't see billing problems, which only show on real requests.
210
271
  */
211
272
  declare const openai: (options: OpenAIOptions) => ServiceDefinition;
212
- /** Anthropic. Lists models (limit 1). up when the key works; down when rejected. */
213
- declare const anthropic: (options: CommonOptions & ApiKey) => ServiceDefinition;
273
+ type AnthropicOptions = PresetOptions & ApiKey$1 & {
274
+ track?: {
275
+ /**
276
+ * The models you depend on (IDs or aliases, e.g. "claude-sonnet-4-6"). Each one is
277
+ * reported on its own row. Without a list, only the key is validated.
278
+ */
279
+ models?: string[];
280
+ };
281
+ };
282
+ /**
283
+ * Anthropic. Reads each model in `track.models` (free, no tokens), or lists models when
284
+ * there is no list.
285
+ * - up: the key works and every listed model is available to it
286
+ * - degraded: some models are missing or retired, or the API is rate limited or overloaded
287
+ * - down: the API rejects the key, errors, or none of the listed models is available
288
+ *
289
+ * Reports one `instances` row per model, so each keeps its own uptime and response time.
290
+ * It proves a model exists for this key; it can't see capacity problems on real requests.
291
+ */
292
+ declare const anthropic: (options: AnthropicOptions) => ServiceDefinition;
214
293
  /** Google Gemini. Lists models (page size 1). */
215
- declare const gemini: (options: CommonOptions & ApiKey) => ServiceDefinition;
294
+ declare const gemini: (options: CommonOptions & ApiKey$1) => ServiceDefinition;
216
295
  /** CAMB.AI. Lists source languages. */
217
- declare const cambai: (options: CommonOptions & ApiKey) => ServiceDefinition;
218
- type ElevenLabsOptions = PresetOptions & ApiKey & {
296
+ declare const cambai: (options: CommonOptions & ApiKey$1) => ServiceDefinition;
297
+ type ElevenLabsOptions = PresetOptions & ApiKey$1 & {
219
298
  track?: {
220
299
  /** Warn when less than this share of the period's credits is left (default 10) */
221
300
  quota?: {
@@ -513,4 +592,84 @@ declare const vercel: {
513
592
  blob: (options: VercelBlobOptions) => ServiceDefinition;
514
593
  };
515
594
 
516
- export { type AttendeeOptions, type AwsCredentialsOptions, type AxiomOptions, type AzureTranslatorOptions, type CloudflareStreamOptions, type DeepLOptions, type DeepgramOptions, type ElevenLabsOptions, type FlyAppOptions, type GcpInstanceOptions, type GitHubOptions, type GoogleServiceAccount, type GoogleTranslateOptions, type MailerSendOptions, type MeilisearchOptions, type MongoPingOptions, type MuxOptions, type OpenAIOptions, type PostgresPingOptions, type PusherOptions, type RedisPingOptions, type ResendOptions, type RevolutOptions, type S3BucketOptions, type SpeechmaticsOptions, type StatuspageOptions, type UpstashRedisOptions, type VercelAiGatewayOptions, type VercelBlobOptions, anthropic, attendee, aws, axiom, azureTranslator, cambai, clearGoogleTokens, cloudflareStream, crashReason, deepgram, deepl, elevenlabs, fly, gcp, gemini, github, gladia, googleServiceAccountToken, googleTranslate, mailersend, meilisearch, mongodb, mux, openai, parseServiceAccount, postgres, pusher, redis, resend, revolut, signGoogleAssertion, signPusherRequest, speechmatics, statuspage, upstashRedis, vercel };
595
+ type StripeOptions = PresetOptions & {
596
+ /** A secret or restricted key. Restricted keys need read access to what you track. */
597
+ secrets: {
598
+ apiKey: string | undefined;
599
+ };
600
+ track?: {
601
+ /** Warn when a live account can't take charges or payouts, or has overdue requirements (default true) */
602
+ account?: boolean;
603
+ /** Report each webhook endpoint, and events Stripe could not deliver in the last 24 h (default true) */
604
+ webhooks?: boolean;
605
+ /** Count disputes awaiting your response (default true) */
606
+ disputes?: boolean;
607
+ };
608
+ };
609
+ /**
610
+ * Stripe. Reads the balance, which validates the key, then what `track` asks for. All calls
611
+ * are free and read-only.
612
+ * - up: the key works
613
+ * - degraded: a webhook endpoint is disabled, Stripe could not deliver events in the last
614
+ * 24 h, or a live account can't take charges or payouts or has overdue requirements
615
+ * - down: the API rejects the key or errors
616
+ *
617
+ * Reports `metrics.mode` (live/test), `metrics.available`, `metrics.pending`,
618
+ * `metrics.undelivered24h`, `metrics.openDisputes`, and one `instances` row per webhook
619
+ * endpoint. What a restricted key may not read is left out, never counted as a failure.
620
+ */
621
+ declare const stripe: (options: StripeOptions) => ServiceDefinition;
622
+
623
+ type ApiKey = {
624
+ secrets: {
625
+ apiKey: string | undefined;
626
+ };
627
+ };
628
+ /**
629
+ * Exa. Sends an empty search, which Exa refuses for validation once the key is accepted:
630
+ * nothing is searched or billed.
631
+ * - up: the key is accepted
632
+ * - degraded: rate limited, or out of credits (HTTP 402)
633
+ * - down: the API rejects the key or errors
634
+ */
635
+ declare const exa: (options: CommonOptions & ApiKey) => ServiceDefinition;
636
+ /**
637
+ * Nimble. Sends an empty search, which Nimble refuses for validation once the key is
638
+ * accepted: nothing is searched or billed.
639
+ * - up: the key is accepted
640
+ * - degraded: rate limited, or out of credits (HTTP 402)
641
+ * - down: the API rejects the key or errors
642
+ */
643
+ declare const nimble: (options: CommonOptions & ApiKey) => ServiceDefinition;
644
+ type TavilyOptions = PresetOptions & ApiKey & {
645
+ track?: {
646
+ /** Warn when this share of the credits is used (default 90) */
647
+ quota?: {
648
+ warnAbovePct?: number;
649
+ };
650
+ };
651
+ };
652
+ /**
653
+ * Tavily. Reads `/usage`, which validates the API key.
654
+ * - up: the key works
655
+ * - degraded: `track.quota.warnAbovePct` of the credits are used
656
+ * - down: the API rejects the key or errors
657
+ *
658
+ * Reports a `usage` bar (the key's own limit when it has one, otherwise the plan's) and
659
+ * `metrics.plan`.
660
+ */
661
+ declare const tavily: (options: TavilyOptions) => ServiceDefinition;
662
+ type EmeliaOptions = PresetOptions & ApiKey & {
663
+ /** API base URL (default "https://api.emelia.io") */
664
+ baseUrl?: string;
665
+ };
666
+ /**
667
+ * Emelia. Sends an empty email-finder request, which Emelia refuses for validation once the
668
+ * key is accepted: nothing is looked up or billed.
669
+ * - up: the key is accepted
670
+ * - degraded: rate limited, or out of credits (HTTP 402)
671
+ * - down: the API rejects the key or errors
672
+ */
673
+ declare const emelia: (options: EmeliaOptions) => ServiceDefinition;
674
+
675
+ export { type AnthropicOptions, type AttendeeOptions, type AwsCredentialsOptions, type AxiomOptions, type AzureTranslatorOptions, type BedrockOptions, type CloudflareStreamOptions, type DeepLOptions, type DeepgramOptions, type ElevenLabsOptions, type EmeliaOptions, type FlyAppOptions, type GcpInstanceOptions, type GitHubOptions, type GoogleServiceAccount, type GoogleTranslateOptions, type MailerSendOptions, type MeilisearchOptions, type MongoPingOptions, type MuxOptions, type NeonProjectOptions, type OpenAIOptions, type PostgresPingOptions, type PusherOptions, type RedisPingOptions, type ResendOptions, type RevolutOptions, type S3BucketOptions, type SpeechmaticsOptions, type StatuspageOptions, type StripeOptions, type TavilyOptions, type UpstashRedisOptions, type VercelAiGatewayOptions, type VercelBlobOptions, anthropic, attendee, aws, axiom, azureTranslator, cambai, clearGoogleTokens, cloudflareStream, crashReason, deepgram, deepl, elevenlabs, emelia, exa, fly, gcp, gemini, github, gladia, googleServiceAccountToken, googleTranslate, mailersend, meilisearch, mongodb, mux, neon, nimble, openai, parseServiceAccount, postgres, pusher, redis, resend, revolut, signGoogleAssertion, signPusherRequest, speechmatics, statuspage, stripe, tavily, upstashRedis, vercel };
@@ -1,6 +1,6 @@
1
- export { G as GenericHttpOptions, g as generic } from '../generic-BJmlgtUM.js';
2
- import { b as PresetOptions, S as ServiceDefinition } from '../config-w1tm1bdu.js';
3
- import { P as ProbeHelpers, h as CommonOptions } from '../types-CctvUAs2.js';
1
+ export { G as GenericHttpOptions, g as generic } from '../generic-CV2O4aNH.js';
2
+ import { b as PresetOptions, S as ServiceDefinition } from '../config-iY18j9IA.js';
3
+ import { P as ProbeHelpers, h as CommonOptions } from '../types-BVa6vIKk.js';
4
4
 
5
5
  type FlyAppOptions = PresetOptions & {
6
6
  /** The Fly app name, e.g. "my-api" */
@@ -108,10 +108,71 @@ type S3BucketOptions = PresetOptions & {
108
108
  region?: string;
109
109
  secrets: AwsSecrets;
110
110
  };
111
+ type BedrockOptions = PresetOptions & {
112
+ /** AWS region of the Bedrock runtime, e.g. "eu-west-1" */
113
+ region: string | undefined;
114
+ /**
115
+ * The models you invoke, as the runtime expects them: a model ID or an inference profile
116
+ * ID ("eu.anthropic.claude-haiku-4-5-20251001-v1:0"). Each one is reported on its own row.
117
+ */
118
+ models: string[];
119
+ /** A Bedrock API key (`bearerToken`), or an access key pair */
120
+ secrets: {
121
+ bearerToken?: string | undefined;
122
+ accessKeyId?: string | undefined;
123
+ secretAccessKey?: string | undefined;
124
+ };
125
+ };
126
+ /**
127
+ * Amazon Bedrock. Invokes each model in `models` with a one-token request (the runtime has
128
+ * no free call that proves a model can be invoked).
129
+ * - up: every model answers
130
+ * - degraded: some models fail, or one is throttled (HTTP 429)
131
+ * - down: every model fails (wrong credentials, no access, wrong region)
132
+ *
133
+ * Reports one `instances` row per model. Authenticates with a Bedrock API key when
134
+ * `secrets.bearerToken` is given, otherwise signs with the access key pair (SigV4).
135
+ */
136
+ declare function bedrock(options: BedrockOptions): ServiceDefinition;
111
137
  /** Presets for AWS and S3-compatible storage */
112
138
  declare const aws: {
113
139
  credentials: (options: AwsCredentialsOptions) => ServiceDefinition;
114
140
  s3Bucket: (options: S3BucketOptions) => ServiceDefinition;
141
+ bedrock: typeof bedrock;
142
+ };
143
+
144
+ type NeonProjectOptions = PresetOptions & {
145
+ projectId: string | undefined;
146
+ /** A Neon API key (account, organization or project-scoped) */
147
+ secrets: {
148
+ apiKey: string | undefined;
149
+ };
150
+ /**
151
+ * Runs one statement with the driver you already use, e.g. `(sql) => pool.query(sql)`.
152
+ * `select 1` is only sent while the compute is active, so a check never wakes the database.
153
+ */
154
+ query?: (sql: string) => Promise<unknown>;
155
+ /**
156
+ * The compute `query` connects to: the `ep-…` part of the connection host.
157
+ * Default: the read-write compute of the default branch.
158
+ */
159
+ endpoint?: string;
160
+ track?: {
161
+ /** Your plan's compute allowance for the billing period, in CU-hours: adds a usage bar */
162
+ compute?: {
163
+ maxHours: number;
164
+ warnAbovePct?: number;
165
+ };
166
+ /** Your plan's storage allowance in GB: adds a usage bar (sum of the branches' logical sizes) */
167
+ storage?: {
168
+ maxGb: number;
169
+ warnAbovePct?: number;
170
+ };
171
+ };
172
+ };
173
+ /** Presets for Neon */
174
+ declare const neon: {
175
+ project: (options: NeonProjectOptions) => ServiceDefinition;
115
176
  };
116
177
 
117
178
  type MongoDatabase = {
@@ -166,12 +227,12 @@ declare const postgres: {
166
227
  ping: (options: PostgresPingOptions) => ServiceDefinition;
167
228
  };
168
229
 
169
- type ApiKey = {
230
+ type ApiKey$1 = {
170
231
  secrets: {
171
232
  apiKey: string | undefined;
172
233
  };
173
234
  };
174
- type DeepgramOptions = PresetOptions & ApiKey & {
235
+ type DeepgramOptions = PresetOptions & ApiKey$1 & {
175
236
  track?: {
176
237
  /** Warn when the prepaid balance drops below this amount (default 20). `false` skips the balance. */
177
238
  balance?: {
@@ -189,14 +250,14 @@ type DeepgramOptions = PresetOptions & ApiKey & {
189
250
  */
190
251
  declare const deepgram: (options: DeepgramOptions) => ServiceDefinition;
191
252
  /** Gladia. Lists live sessions (limit 1). up when the key works; down when rejected. */
192
- declare const gladia: (options: CommonOptions & ApiKey) => ServiceDefinition;
193
- type SpeechmaticsOptions = PresetOptions & ApiKey & {
253
+ declare const gladia: (options: CommonOptions & ApiKey$1) => ServiceDefinition;
254
+ type SpeechmaticsOptions = PresetOptions & ApiKey$1 & {
194
255
  /** API base URL, e.g. the EU endpoint (default "https://asr.api.speechmatics.com") */
195
256
  baseUrl?: string;
196
257
  };
197
258
  /** Speechmatics. Lists batch jobs (limit 1), which validates the API key. */
198
259
  declare const speechmatics: (options: SpeechmaticsOptions) => ServiceDefinition;
199
- type OpenAIOptions = PresetOptions & ApiKey & {
260
+ type OpenAIOptions = PresetOptions & ApiKey$1 & {
200
261
  /** Sent as the `OpenAI-Organization` header */
201
262
  organization?: string;
202
263
  track?: {
@@ -209,13 +270,31 @@ type OpenAIOptions = PresetOptions & ApiKey & {
209
270
  * It proves the key works; it can't see billing problems, which only show on real requests.
210
271
  */
211
272
  declare const openai: (options: OpenAIOptions) => ServiceDefinition;
212
- /** Anthropic. Lists models (limit 1). up when the key works; down when rejected. */
213
- declare const anthropic: (options: CommonOptions & ApiKey) => ServiceDefinition;
273
+ type AnthropicOptions = PresetOptions & ApiKey$1 & {
274
+ track?: {
275
+ /**
276
+ * The models you depend on (IDs or aliases, e.g. "claude-sonnet-4-6"). Each one is
277
+ * reported on its own row. Without a list, only the key is validated.
278
+ */
279
+ models?: string[];
280
+ };
281
+ };
282
+ /**
283
+ * Anthropic. Reads each model in `track.models` (free, no tokens), or lists models when
284
+ * there is no list.
285
+ * - up: the key works and every listed model is available to it
286
+ * - degraded: some models are missing or retired, or the API is rate limited or overloaded
287
+ * - down: the API rejects the key, errors, or none of the listed models is available
288
+ *
289
+ * Reports one `instances` row per model, so each keeps its own uptime and response time.
290
+ * It proves a model exists for this key; it can't see capacity problems on real requests.
291
+ */
292
+ declare const anthropic: (options: AnthropicOptions) => ServiceDefinition;
214
293
  /** Google Gemini. Lists models (page size 1). */
215
- declare const gemini: (options: CommonOptions & ApiKey) => ServiceDefinition;
294
+ declare const gemini: (options: CommonOptions & ApiKey$1) => ServiceDefinition;
216
295
  /** CAMB.AI. Lists source languages. */
217
- declare const cambai: (options: CommonOptions & ApiKey) => ServiceDefinition;
218
- type ElevenLabsOptions = PresetOptions & ApiKey & {
296
+ declare const cambai: (options: CommonOptions & ApiKey$1) => ServiceDefinition;
297
+ type ElevenLabsOptions = PresetOptions & ApiKey$1 & {
219
298
  track?: {
220
299
  /** Warn when less than this share of the period's credits is left (default 10) */
221
300
  quota?: {
@@ -513,4 +592,84 @@ declare const vercel: {
513
592
  blob: (options: VercelBlobOptions) => ServiceDefinition;
514
593
  };
515
594
 
516
- export { type AttendeeOptions, type AwsCredentialsOptions, type AxiomOptions, type AzureTranslatorOptions, type CloudflareStreamOptions, type DeepLOptions, type DeepgramOptions, type ElevenLabsOptions, type FlyAppOptions, type GcpInstanceOptions, type GitHubOptions, type GoogleServiceAccount, type GoogleTranslateOptions, type MailerSendOptions, type MeilisearchOptions, type MongoPingOptions, type MuxOptions, type OpenAIOptions, type PostgresPingOptions, type PusherOptions, type RedisPingOptions, type ResendOptions, type RevolutOptions, type S3BucketOptions, type SpeechmaticsOptions, type StatuspageOptions, type UpstashRedisOptions, type VercelAiGatewayOptions, type VercelBlobOptions, anthropic, attendee, aws, axiom, azureTranslator, cambai, clearGoogleTokens, cloudflareStream, crashReason, deepgram, deepl, elevenlabs, fly, gcp, gemini, github, gladia, googleServiceAccountToken, googleTranslate, mailersend, meilisearch, mongodb, mux, openai, parseServiceAccount, postgres, pusher, redis, resend, revolut, signGoogleAssertion, signPusherRequest, speechmatics, statuspage, upstashRedis, vercel };
595
+ type StripeOptions = PresetOptions & {
596
+ /** A secret or restricted key. Restricted keys need read access to what you track. */
597
+ secrets: {
598
+ apiKey: string | undefined;
599
+ };
600
+ track?: {
601
+ /** Warn when a live account can't take charges or payouts, or has overdue requirements (default true) */
602
+ account?: boolean;
603
+ /** Report each webhook endpoint, and events Stripe could not deliver in the last 24 h (default true) */
604
+ webhooks?: boolean;
605
+ /** Count disputes awaiting your response (default true) */
606
+ disputes?: boolean;
607
+ };
608
+ };
609
+ /**
610
+ * Stripe. Reads the balance, which validates the key, then what `track` asks for. All calls
611
+ * are free and read-only.
612
+ * - up: the key works
613
+ * - degraded: a webhook endpoint is disabled, Stripe could not deliver events in the last
614
+ * 24 h, or a live account can't take charges or payouts or has overdue requirements
615
+ * - down: the API rejects the key or errors
616
+ *
617
+ * Reports `metrics.mode` (live/test), `metrics.available`, `metrics.pending`,
618
+ * `metrics.undelivered24h`, `metrics.openDisputes`, and one `instances` row per webhook
619
+ * endpoint. What a restricted key may not read is left out, never counted as a failure.
620
+ */
621
+ declare const stripe: (options: StripeOptions) => ServiceDefinition;
622
+
623
+ type ApiKey = {
624
+ secrets: {
625
+ apiKey: string | undefined;
626
+ };
627
+ };
628
+ /**
629
+ * Exa. Sends an empty search, which Exa refuses for validation once the key is accepted:
630
+ * nothing is searched or billed.
631
+ * - up: the key is accepted
632
+ * - degraded: rate limited, or out of credits (HTTP 402)
633
+ * - down: the API rejects the key or errors
634
+ */
635
+ declare const exa: (options: CommonOptions & ApiKey) => ServiceDefinition;
636
+ /**
637
+ * Nimble. Sends an empty search, which Nimble refuses for validation once the key is
638
+ * accepted: nothing is searched or billed.
639
+ * - up: the key is accepted
640
+ * - degraded: rate limited, or out of credits (HTTP 402)
641
+ * - down: the API rejects the key or errors
642
+ */
643
+ declare const nimble: (options: CommonOptions & ApiKey) => ServiceDefinition;
644
+ type TavilyOptions = PresetOptions & ApiKey & {
645
+ track?: {
646
+ /** Warn when this share of the credits is used (default 90) */
647
+ quota?: {
648
+ warnAbovePct?: number;
649
+ };
650
+ };
651
+ };
652
+ /**
653
+ * Tavily. Reads `/usage`, which validates the API key.
654
+ * - up: the key works
655
+ * - degraded: `track.quota.warnAbovePct` of the credits are used
656
+ * - down: the API rejects the key or errors
657
+ *
658
+ * Reports a `usage` bar (the key's own limit when it has one, otherwise the plan's) and
659
+ * `metrics.plan`.
660
+ */
661
+ declare const tavily: (options: TavilyOptions) => ServiceDefinition;
662
+ type EmeliaOptions = PresetOptions & ApiKey & {
663
+ /** API base URL (default "https://api.emelia.io") */
664
+ baseUrl?: string;
665
+ };
666
+ /**
667
+ * Emelia. Sends an empty email-finder request, which Emelia refuses for validation once the
668
+ * key is accepted: nothing is looked up or billed.
669
+ * - up: the key is accepted
670
+ * - degraded: rate limited, or out of credits (HTTP 402)
671
+ * - down: the API rejects the key or errors
672
+ */
673
+ declare const emelia: (options: EmeliaOptions) => ServiceDefinition;
674
+
675
+ export { type AnthropicOptions, type AttendeeOptions, type AwsCredentialsOptions, type AxiomOptions, type AzureTranslatorOptions, type BedrockOptions, type CloudflareStreamOptions, type DeepLOptions, type DeepgramOptions, type ElevenLabsOptions, type EmeliaOptions, type FlyAppOptions, type GcpInstanceOptions, type GitHubOptions, type GoogleServiceAccount, type GoogleTranslateOptions, type MailerSendOptions, type MeilisearchOptions, type MongoPingOptions, type MuxOptions, type NeonProjectOptions, type OpenAIOptions, type PostgresPingOptions, type PusherOptions, type RedisPingOptions, type ResendOptions, type RevolutOptions, type S3BucketOptions, type SpeechmaticsOptions, type StatuspageOptions, type StripeOptions, type TavilyOptions, type UpstashRedisOptions, type VercelAiGatewayOptions, type VercelBlobOptions, anthropic, attendee, aws, axiom, azureTranslator, cambai, clearGoogleTokens, cloudflareStream, crashReason, deepgram, deepl, elevenlabs, emelia, exa, fly, gcp, gemini, github, gladia, googleServiceAccountToken, googleTranslate, mailersend, meilisearch, mongodb, mux, neon, nimble, openai, parseServiceAccount, postgres, pusher, redis, resend, revolut, signGoogleAssertion, signPusherRequest, speechmatics, statuspage, stripe, tavily, upstashRedis, vercel };