@juspay/neurolink 12.5.0 → 12.5.1

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 (46) hide show
  1. package/CHANGELOG.md +1 -5
  2. package/dist/adapters/providerImageAdapter.js +43 -19
  3. package/dist/browser/neurolink.min.js +414 -414
  4. package/dist/cli/commands/setup.d.ts +12 -7
  5. package/dist/cli/commands/setup.js +17 -16
  6. package/dist/constants/contextWindows.js +23 -95
  7. package/dist/constants/enums.d.ts +111 -216
  8. package/dist/constants/enums.js +124 -240
  9. package/dist/factories/providerDescriptors.d.ts +2 -4
  10. package/dist/factories/providerDescriptors.js +83 -127
  11. package/dist/models/manifestRegistry.js +53 -4
  12. package/dist/providers/catalog/cerebras.json +75 -0
  13. package/dist/providers/catalog/cloudflare.json +121 -0
  14. package/dist/providers/catalog/fireworks.json +124 -0
  15. package/dist/providers/catalog/groq.json +127 -0
  16. package/dist/providers/catalog/index.generated.d.ts +3 -0
  17. package/dist/providers/catalog/index.generated.js +33 -0
  18. package/dist/providers/catalog/loader.d.ts +6 -0
  19. package/dist/providers/catalog/loader.js +115 -0
  20. package/dist/providers/catalog/mistral.json +244 -0
  21. package/dist/providers/catalog/perplexity.json +103 -0
  22. package/dist/providers/catalog/provider-catalog.schema.json +351 -0
  23. package/dist/providers/catalog/sambanova.json +129 -0
  24. package/dist/providers/catalog/schema.d.ts +123 -0
  25. package/dist/providers/catalog/schema.js +310 -0
  26. package/dist/providers/catalog/together-ai.json +172 -0
  27. package/dist/providers/catalog/xai.json +108 -0
  28. package/dist/providers/openaiCompatCatalog.d.ts +13 -13
  29. package/dist/providers/openaiCompatCatalog.js +15 -326
  30. package/dist/types/index.d.ts +2 -0
  31. package/dist/types/index.js +2 -0
  32. package/dist/types/providerCatalog.d.ts +149 -0
  33. package/dist/types/providerCatalog.generated.d.ts +2 -0
  34. package/dist/types/providerCatalog.generated.js +1 -0
  35. package/dist/types/providerCatalog.js +7 -0
  36. package/dist/types/providers.d.ts +14 -14
  37. package/dist/utils/modelChoices.d.ts +11 -3
  38. package/dist/utils/modelChoices.js +84 -190
  39. package/dist/utils/pricing.js +92 -127
  40. package/dist/utils/providerConfig.d.ts +1 -1
  41. package/dist/utils/providerConfig.js +24 -108
  42. package/package.json +2 -1
  43. package/dist/models/manifests/cerebras.d.ts +0 -9
  44. package/dist/models/manifests/cerebras.js +0 -19
  45. package/dist/models/manifests/sambanova.d.ts +0 -11
  46. package/dist/models/manifests/sambanova.js +0 -42
@@ -0,0 +1,351 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$comment": "Documentation-grade mirror of src/lib/providers/catalog/schema.ts for editor red-squiggle validation. The zod schema is authoritative \u2014 keep this file in sync by hand when that one changes. This mirror cannot express the zod schema's cross-field refinements (e.g. models.default must be a key of models.catalog, wire's baseURL-XOR-baseURLTemplate rule, errorRules requiring status or pattern); those are enforced only at parse time by parseProviderCatalogJson.",
4
+ "title": "NeuroLink Provider Catalog",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "id",
9
+ "displayName",
10
+ "aliases",
11
+ "tier",
12
+ "wire",
13
+ "models",
14
+ "capabilities",
15
+ "errorRules",
16
+ "setup",
17
+ "evidence"
18
+ ],
19
+ "properties": {
20
+ "$schema": {
21
+ "type": "string",
22
+ "description": "Editor-only pointer to this file. Accepted and ignored by the parser."
23
+ },
24
+ "id": {
25
+ "type": "string",
26
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
27
+ },
28
+ "displayName": {
29
+ "type": "string"
30
+ },
31
+ "enumTypeName": {
32
+ "type": "string",
33
+ "pattern": "^[A-Za-z_$][A-Za-z0-9_$]*$",
34
+ "description": "Exported <Name>Models enum name override. Default: PascalCase(id) + \"Models\"."
35
+ },
36
+ "credentialsKey": {
37
+ "type": "string",
38
+ "description": "Overrides the derived camelCase NeurolinkCredentials key. Required where the derived name would rename a pre-existing public credential field (see together-ai -> \"together\")."
39
+ },
40
+ "aliases": {
41
+ "type": "array",
42
+ "items": {
43
+ "type": "string"
44
+ }
45
+ },
46
+ "tier": {
47
+ "const": 2
48
+ },
49
+ "wire": {
50
+ "type": "object",
51
+ "additionalProperties": false,
52
+ "properties": {
53
+ "baseURL": {
54
+ "type": "string"
55
+ },
56
+ "baseURLTemplate": {
57
+ "type": "string"
58
+ },
59
+ "extraCredentials": {
60
+ "type": "array",
61
+ "items": {
62
+ "type": "string",
63
+ "pattern": "^[A-Za-z_$][A-Za-z0-9_$]*$"
64
+ },
65
+ "maxItems": 1
66
+ },
67
+ "missingCredentialMessage": {
68
+ "type": "string"
69
+ },
70
+ "envOverrides": {
71
+ "type": "object",
72
+ "additionalProperties": false,
73
+ "properties": {
74
+ "apiKey": {
75
+ "type": "string"
76
+ },
77
+ "baseURL": {
78
+ "type": "string"
79
+ },
80
+ "model": {
81
+ "type": "string"
82
+ }
83
+ }
84
+ }
85
+ }
86
+ },
87
+ "models": {
88
+ "type": "object",
89
+ "additionalProperties": false,
90
+ "required": [
91
+ "default",
92
+ "fallbacks",
93
+ "defaultContextWindow",
94
+ "defaultMaxOutputTokens",
95
+ "catalog"
96
+ ],
97
+ "properties": {
98
+ "default": {
99
+ "type": "string"
100
+ },
101
+ "fallbacks": {
102
+ "type": "array",
103
+ "items": {
104
+ "type": "string"
105
+ },
106
+ "minItems": 1
107
+ },
108
+ "fallbackModelName": {
109
+ "type": "string",
110
+ "description": "Default: fallbacks[1] ?? fallbacks[0]."
111
+ },
112
+ "registryDefaultModel": {
113
+ "type": "string",
114
+ "description": "Default: models.default."
115
+ },
116
+ "defaultContextWindow": {
117
+ "type": "number"
118
+ },
119
+ "defaultMaxOutputTokens": {
120
+ "type": "number"
121
+ },
122
+ "catalog": {
123
+ "type": "object",
124
+ "additionalProperties": {
125
+ "type": "object",
126
+ "additionalProperties": false,
127
+ "required": ["vision", "status", "description"],
128
+ "properties": {
129
+ "contextWindow": {
130
+ "type": "number"
131
+ },
132
+ "maxOutputTokens": {
133
+ "type": "number"
134
+ },
135
+ "pricingPerMTok": {
136
+ "type": "object",
137
+ "additionalProperties": false,
138
+ "required": ["input", "output"],
139
+ "properties": {
140
+ "input": {
141
+ "type": "number"
142
+ },
143
+ "output": {
144
+ "type": "number"
145
+ },
146
+ "cachedInput": {
147
+ "type": "number"
148
+ }
149
+ }
150
+ },
151
+ "vision": {
152
+ "type": "boolean"
153
+ },
154
+ "status": {
155
+ "type": "string",
156
+ "enum": ["production", "preview", "retired"]
157
+ },
158
+ "description": {
159
+ "type": "string"
160
+ },
161
+ "enumMember": {
162
+ "type": "string",
163
+ "pattern": "^[A-Za-z_$][A-Za-z0-9_$]*$"
164
+ }
165
+ }
166
+ }
167
+ },
168
+ "topModels": {
169
+ "type": "array",
170
+ "items": {
171
+ "type": "string"
172
+ },
173
+ "minItems": 1,
174
+ "description": "Ordered curated subset of catalog keys for wizard/choice surfaces. Falls back to the full catalog in file order when absent."
175
+ },
176
+ "visionModel": {
177
+ "type": "string",
178
+ "description": "The live-verified vision model capability tests should exercise. Must be a key of models.catalog whose entry has vision: true (enforced by the zod schema, not expressible here). Default: first vision:true model in file order."
179
+ },
180
+ "testModel": {
181
+ "type": "string",
182
+ "minLength": 1,
183
+ "description": "The live-verified model the capability matrix drives, for providers whose default is retired upstream or gated off the testing account. May name a model outside models.catalog. Default: models.default. Never affects the runtime default."
184
+ }
185
+ }
186
+ },
187
+ "capabilities": {
188
+ "type": "object",
189
+ "additionalProperties": false,
190
+ "required": [
191
+ "text",
192
+ "streaming",
193
+ "tools",
194
+ "toolsWithStreaming",
195
+ "structuredOutput",
196
+ "structuredOutputWithTools",
197
+ "embeddings",
198
+ "thinking"
199
+ ],
200
+ "properties": {
201
+ "text": {
202
+ "type": "boolean"
203
+ },
204
+ "streaming": {
205
+ "type": "boolean"
206
+ },
207
+ "tools": {
208
+ "type": "boolean"
209
+ },
210
+ "toolsWithStreaming": {
211
+ "type": "boolean"
212
+ },
213
+ "structuredOutput": {
214
+ "type": "boolean"
215
+ },
216
+ "structuredOutputWithTools": {
217
+ "type": "boolean"
218
+ },
219
+ "embeddings": {
220
+ "type": "boolean"
221
+ },
222
+ "thinking": {
223
+ "type": "boolean"
224
+ }
225
+ }
226
+ },
227
+ "errorRules": {
228
+ "type": "array",
229
+ "items": {
230
+ "type": "object",
231
+ "additionalProperties": false,
232
+ "required": ["class", "message"],
233
+ "properties": {
234
+ "status": {
235
+ "type": "number"
236
+ },
237
+ "pattern": {
238
+ "type": "string"
239
+ },
240
+ "class": {
241
+ "type": "string",
242
+ "enum": [
243
+ "authentication",
244
+ "rate-limit",
245
+ "invalid-model",
246
+ "network",
247
+ "provider"
248
+ ]
249
+ },
250
+ "message": {
251
+ "type": "string"
252
+ }
253
+ }
254
+ }
255
+ },
256
+ "quirks": {
257
+ "type": "object",
258
+ "additionalProperties": false,
259
+ "properties": {
260
+ "timeoutErrorClass": {
261
+ "const": "provider"
262
+ },
263
+ "registryDefaultIgnoresModelEnvVar": {
264
+ "type": "boolean"
265
+ }
266
+ }
267
+ },
268
+ "setup": {
269
+ "type": "object",
270
+ "additionalProperties": false,
271
+ "required": ["url", "apiKeyFormat", "billingPolicy", "instructions"],
272
+ "properties": {
273
+ "url": {
274
+ "type": "string"
275
+ },
276
+ "apiKeyFormat": {
277
+ "type": ["string", "null"]
278
+ },
279
+ "billingPolicy": {
280
+ "type": "string",
281
+ "enum": ["free-tier", "free-with-card", "no-free-tier"]
282
+ },
283
+ "instructions": {
284
+ "type": "array",
285
+ "items": {
286
+ "type": "string"
287
+ }
288
+ },
289
+ "description": {
290
+ "type": "string",
291
+ "description": "Label shown by the setup wizard for the credential (default: \"API key\")."
292
+ }
293
+ }
294
+ },
295
+ "evidence": {
296
+ "type": "object",
297
+ "additionalProperties": false,
298
+ "required": ["rosterVerified", "liveMatrix", "addedInPR"],
299
+ "properties": {
300
+ "rosterVerified": {
301
+ "$ref": "#/definitions/probeEvidence"
302
+ },
303
+ "authProbe": {
304
+ "$ref": "#/definitions/probeEvidence"
305
+ },
306
+ "billingProbe": {
307
+ "$ref": "#/definitions/probeEvidence"
308
+ },
309
+ "liveMatrix": {
310
+ "type": ["object", "null"],
311
+ "additionalProperties": false,
312
+ "required": ["date", "result"],
313
+ "properties": {
314
+ "date": {
315
+ "type": "string",
316
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
317
+ },
318
+ "result": {
319
+ "type": "string"
320
+ }
321
+ }
322
+ },
323
+ "addedInPR": {
324
+ "type": "string"
325
+ }
326
+ }
327
+ }
328
+ },
329
+ "definitions": {
330
+ "probeEvidence": {
331
+ "type": "object",
332
+ "additionalProperties": false,
333
+ "required": ["date"],
334
+ "properties": {
335
+ "date": {
336
+ "type": "string",
337
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
338
+ },
339
+ "status": {
340
+ "type": "number"
341
+ },
342
+ "code": {
343
+ "type": "string"
344
+ },
345
+ "method": {
346
+ "type": "string"
347
+ }
348
+ }
349
+ }
350
+ }
351
+ }
@@ -0,0 +1,129 @@
1
+ {
2
+ "$schema": "./provider-catalog.schema.json",
3
+ "id": "sambanova",
4
+ "displayName": "SambaNova",
5
+ "aliases": [],
6
+ "tier": 2,
7
+ "wire": {
8
+ "baseURL": "https://api.sambanova.ai/v1"
9
+ },
10
+ "models": {
11
+ "default": "Meta-Llama-3.3-70B-Instruct",
12
+ "visionModel": "gemma-4-31B-it",
13
+ "fallbacks": ["Meta-Llama-3.3-70B-Instruct", "gpt-oss-120b"],
14
+ "defaultContextWindow": 131072,
15
+ "defaultMaxOutputTokens": 8192,
16
+ "catalog": {
17
+ "Meta-Llama-3.3-70B-Instruct": {
18
+ "contextWindow": 131072,
19
+ "pricingPerMTok": { "input": 0.6, "output": 1.2 },
20
+ "vision": false,
21
+ "status": "production",
22
+ "description": "Recommended - Meta Llama 3.3 70B; production, 128K context"
23
+ },
24
+ "gpt-oss-120b": {
25
+ "contextWindow": 131072,
26
+ "pricingPerMTok": { "input": 0.22, "output": 0.59 },
27
+ "vision": false,
28
+ "status": "production",
29
+ "description": "OpenAI GPT-OSS 120B (open-weight)"
30
+ },
31
+ "DeepSeek-V3.1": {
32
+ "contextWindow": 131072,
33
+ "pricingPerMTok": { "input": 3, "output": 4.5 },
34
+ "vision": false,
35
+ "status": "production",
36
+ "description": "DeepSeek V3.1 (reasoning)"
37
+ },
38
+ "DeepSeek-V3.2": {
39
+ "contextWindow": 32768,
40
+ "pricingPerMTok": { "input": 3, "output": 4.5 },
41
+ "vision": false,
42
+ "status": "preview",
43
+ "description": "DeepSeek V3.2 (reasoning; vendor preview, 32K context)"
44
+ },
45
+ "MiniMax-M2.7": {
46
+ "contextWindow": 196608,
47
+ "pricingPerMTok": { "input": 0.6, "output": 2.4, "cachedInput": 0.06 },
48
+ "vision": false,
49
+ "status": "production",
50
+ "description": "MiniMax M2.7, 192K context"
51
+ },
52
+ "MiniMax-M3": {
53
+ "pricingPerMTok": { "input": 0.6, "output": 2.4 },
54
+ "vision": true,
55
+ "status": "production",
56
+ "description": "MiniMax M3 (vision)"
57
+ },
58
+ "gemma-4-31B-it": {
59
+ "contextWindow": 131072,
60
+ "pricingPerMTok": { "input": 0.38, "output": 1.15 },
61
+ "vision": true,
62
+ "status": "preview",
63
+ "description": "Google Gemma 4 31B IT (vision; vendor preview)"
64
+ }
65
+ },
66
+ "topModels": [
67
+ "Meta-Llama-3.3-70B-Instruct",
68
+ "gpt-oss-120b",
69
+ "DeepSeek-V3.1",
70
+ "DeepSeek-V3.2",
71
+ "MiniMax-M2.7",
72
+ "MiniMax-M3",
73
+ "gemma-4-31B-it"
74
+ ]
75
+ },
76
+ "capabilities": {
77
+ "text": true,
78
+ "streaming": true,
79
+ "tools": true,
80
+ "toolsWithStreaming": true,
81
+ "structuredOutput": true,
82
+ "structuredOutputWithTools": false,
83
+ "embeddings": false,
84
+ "thinking": false
85
+ },
86
+ "errorRules": [
87
+ {
88
+ "status": 401,
89
+ "pattern": "invalid_api_key|Incorrect API key|authentication_error",
90
+ "class": "authentication",
91
+ "message": "Invalid SambaNova API key. Check {apiKeyEnvVar}. Get one at https://cloud.sambanova.ai/apis"
92
+ },
93
+ {
94
+ "status": 402,
95
+ "pattern": "PAYMENT_METHOD_REQUIRED|balance_units",
96
+ "class": "provider",
97
+ "message": "SambaNova account has no credits (new accounts have no free allowance). Add a payment method and purchase credits at https://cloud.sambanova.ai/plans/billing"
98
+ }
99
+ ],
100
+ "setup": {
101
+ "url": "https://cloud.sambanova.ai/apis",
102
+ "apiKeyFormat": null,
103
+ "billingPolicy": "no-free-tier",
104
+ "instructions": [
105
+ "1. Visit: https://cloud.sambanova.ai (Google/Microsoft OAuth works)",
106
+ "2. Complete the profile step; note new accounts have NO free allowance — a payment method and purchased credits are required before calls succeed",
107
+ "3. Create an API key under API Keys",
108
+ "4. Set {apiKeyEnvVar} in your .env file"
109
+ ]
110
+ },
111
+ "evidence": {
112
+ "rosterVerified": {
113
+ "date": "2026-08-27",
114
+ "method": "authenticated GET /v1/models"
115
+ },
116
+ "authProbe": {
117
+ "date": "2026-08-27",
118
+ "status": 401,
119
+ "code": "invalid_api_key"
120
+ },
121
+ "billingProbe": {
122
+ "date": "2026-08-27",
123
+ "status": 402,
124
+ "code": "PAYMENT_METHOD_REQUIRED"
125
+ },
126
+ "liveMatrix": { "date": "2026-08-28", "result": "5/5" },
127
+ "addedInPR": "https://github.com/juspay/neurolink/pull/1586"
128
+ }
129
+ }
@@ -0,0 +1,123 @@
1
+ /**
2
+ * zod validator for the single-JSON provider catalog authoring format.
3
+ * Mirrors src/lib/types/providerCatalog.ts field-for-field with
4
+ * z.strictObject (unknown keys are authoring mistakes) plus the
5
+ * cross-field refinements the plain types cannot express. See
6
+ * docs/superpowers/plans/2026-08-28-provider-json-catalog-spec.md.
7
+ *
8
+ * provider-catalog.schema.json is a hand-kept JSON Schema mirror for
9
+ * editor validation only — this file is the authoritative validator.
10
+ */
11
+ import { z } from "zod";
12
+ import type { ProviderCatalogJson } from "../../types/index.js";
13
+ export declare const providerCatalogJsonSchema: z.ZodObject<{
14
+ $schema: z.ZodOptional<z.ZodString>;
15
+ id: z.ZodString;
16
+ displayName: z.ZodString;
17
+ enumTypeName: z.ZodOptional<z.ZodString>;
18
+ credentialsKey: z.ZodOptional<z.ZodString>;
19
+ aliases: z.ZodArray<z.ZodString>;
20
+ tier: z.ZodLiteral<2>;
21
+ wire: z.ZodObject<{
22
+ baseURL: z.ZodOptional<z.ZodString>;
23
+ baseURLTemplate: z.ZodOptional<z.ZodString>;
24
+ extraCredentials: z.ZodOptional<z.ZodArray<z.ZodString>>;
25
+ missingCredentialMessage: z.ZodOptional<z.ZodString>;
26
+ envOverrides: z.ZodOptional<z.ZodObject<{
27
+ apiKey: z.ZodOptional<z.ZodString>;
28
+ baseURL: z.ZodOptional<z.ZodString>;
29
+ model: z.ZodOptional<z.ZodString>;
30
+ }, z.core.$strict>>;
31
+ }, z.core.$strict>;
32
+ models: z.ZodObject<{
33
+ default: z.ZodString;
34
+ fallbacks: z.ZodArray<z.ZodString>;
35
+ fallbackModelName: z.ZodOptional<z.ZodString>;
36
+ registryDefaultModel: z.ZodOptional<z.ZodString>;
37
+ defaultContextWindow: z.ZodNumber;
38
+ defaultMaxOutputTokens: z.ZodNumber;
39
+ catalog: z.ZodRecord<z.ZodString, z.ZodObject<{
40
+ contextWindow: z.ZodOptional<z.ZodNumber>;
41
+ maxOutputTokens: z.ZodOptional<z.ZodNumber>;
42
+ pricingPerMTok: z.ZodOptional<z.ZodObject<{
43
+ input: z.ZodNumber;
44
+ output: z.ZodNumber;
45
+ cachedInput: z.ZodOptional<z.ZodNumber>;
46
+ }, z.core.$strict>>;
47
+ vision: z.ZodBoolean;
48
+ status: z.ZodEnum<{
49
+ production: "production";
50
+ preview: "preview";
51
+ retired: "retired";
52
+ }>;
53
+ description: z.ZodString;
54
+ enumMember: z.ZodOptional<z.ZodString>;
55
+ }, z.core.$strict>>;
56
+ topModels: z.ZodOptional<z.ZodArray<z.ZodString>>;
57
+ visionModel: z.ZodOptional<z.ZodString>;
58
+ testModel: z.ZodOptional<z.ZodString>;
59
+ }, z.core.$strict>;
60
+ capabilities: z.ZodObject<{
61
+ text: z.ZodBoolean;
62
+ streaming: z.ZodBoolean;
63
+ tools: z.ZodBoolean;
64
+ toolsWithStreaming: z.ZodBoolean;
65
+ structuredOutput: z.ZodBoolean;
66
+ structuredOutputWithTools: z.ZodBoolean;
67
+ embeddings: z.ZodBoolean;
68
+ thinking: z.ZodBoolean;
69
+ }, z.core.$strict>;
70
+ errorRules: z.ZodArray<z.ZodObject<{
71
+ status: z.ZodOptional<z.ZodNumber>;
72
+ pattern: z.ZodOptional<z.ZodString>;
73
+ class: z.ZodEnum<{
74
+ network: "network";
75
+ provider: "provider";
76
+ authentication: "authentication";
77
+ "invalid-model": "invalid-model";
78
+ "rate-limit": "rate-limit";
79
+ }>;
80
+ message: z.ZodString;
81
+ }, z.core.$strict>>;
82
+ quirks: z.ZodOptional<z.ZodObject<{
83
+ timeoutErrorClass: z.ZodOptional<z.ZodLiteral<"provider">>;
84
+ registryDefaultIgnoresModelEnvVar: z.ZodOptional<z.ZodBoolean>;
85
+ }, z.core.$strict>>;
86
+ setup: z.ZodObject<{
87
+ url: z.ZodString;
88
+ apiKeyFormat: z.ZodNullable<z.ZodString>;
89
+ billingPolicy: z.ZodEnum<{
90
+ "free-with-card": "free-with-card";
91
+ "free-tier": "free-tier";
92
+ "no-free-tier": "no-free-tier";
93
+ }>;
94
+ instructions: z.ZodArray<z.ZodString>;
95
+ description: z.ZodOptional<z.ZodString>;
96
+ }, z.core.$strict>;
97
+ evidence: z.ZodObject<{
98
+ rosterVerified: z.ZodObject<{
99
+ date: z.ZodString;
100
+ status: z.ZodOptional<z.ZodNumber>;
101
+ code: z.ZodOptional<z.ZodString>;
102
+ method: z.ZodOptional<z.ZodString>;
103
+ }, z.core.$strict>;
104
+ authProbe: z.ZodOptional<z.ZodObject<{
105
+ date: z.ZodString;
106
+ status: z.ZodOptional<z.ZodNumber>;
107
+ code: z.ZodOptional<z.ZodString>;
108
+ method: z.ZodOptional<z.ZodString>;
109
+ }, z.core.$strict>>;
110
+ billingProbe: z.ZodOptional<z.ZodObject<{
111
+ date: z.ZodString;
112
+ status: z.ZodOptional<z.ZodNumber>;
113
+ code: z.ZodOptional<z.ZodString>;
114
+ method: z.ZodOptional<z.ZodString>;
115
+ }, z.core.$strict>>;
116
+ liveMatrix: z.ZodNullable<z.ZodObject<{
117
+ date: z.ZodString;
118
+ result: z.ZodString;
119
+ }, z.core.$strict>>;
120
+ addedInPR: z.ZodString;
121
+ }, z.core.$strict>;
122
+ }, z.core.$strict>;
123
+ export declare function parseProviderCatalogJson(raw: unknown, sourcePath: string): ProviderCatalogJson;