skillshield 1.0.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 (167) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +400 -0
  3. package/dist/channels/discord.d.ts +18 -0
  4. package/dist/channels/discord.d.ts.map +1 -0
  5. package/dist/channels/discord.js +275 -0
  6. package/dist/channels/discord.js.map +1 -0
  7. package/dist/channels/index.d.ts +67 -0
  8. package/dist/channels/index.d.ts.map +1 -0
  9. package/dist/channels/index.js +127 -0
  10. package/dist/channels/index.js.map +1 -0
  11. package/dist/channels/slack.d.ts +20 -0
  12. package/dist/channels/slack.d.ts.map +1 -0
  13. package/dist/channels/slack.js +296 -0
  14. package/dist/channels/slack.js.map +1 -0
  15. package/dist/channels/telegram.d.ts +20 -0
  16. package/dist/channels/telegram.d.ts.map +1 -0
  17. package/dist/channels/telegram.js +223 -0
  18. package/dist/channels/telegram.js.map +1 -0
  19. package/dist/channels/whatsapp.d.ts +25 -0
  20. package/dist/channels/whatsapp.d.ts.map +1 -0
  21. package/dist/channels/whatsapp.js +187 -0
  22. package/dist/channels/whatsapp.js.map +1 -0
  23. package/dist/cli/commands/badge.d.ts +11 -0
  24. package/dist/cli/commands/badge.d.ts.map +1 -0
  25. package/dist/cli/commands/badge.js +98 -0
  26. package/dist/cli/commands/badge.js.map +1 -0
  27. package/dist/cli/commands/config.d.ts +3 -0
  28. package/dist/cli/commands/config.d.ts.map +1 -0
  29. package/dist/cli/commands/config.js +140 -0
  30. package/dist/cli/commands/config.js.map +1 -0
  31. package/dist/cli/commands/deploy.d.ts +3 -0
  32. package/dist/cli/commands/deploy.d.ts.map +1 -0
  33. package/dist/cli/commands/deploy.js +56 -0
  34. package/dist/cli/commands/deploy.js.map +1 -0
  35. package/dist/cli/commands/init.d.ts +3 -0
  36. package/dist/cli/commands/init.d.ts.map +1 -0
  37. package/dist/cli/commands/init.js +99 -0
  38. package/dist/cli/commands/init.js.map +1 -0
  39. package/dist/cli/commands/install.d.ts +3 -0
  40. package/dist/cli/commands/install.d.ts.map +1 -0
  41. package/dist/cli/commands/install.js +90 -0
  42. package/dist/cli/commands/install.js.map +1 -0
  43. package/dist/cli/commands/list.d.ts +3 -0
  44. package/dist/cli/commands/list.d.ts.map +1 -0
  45. package/dist/cli/commands/list.js +76 -0
  46. package/dist/cli/commands/list.js.map +1 -0
  47. package/dist/cli/commands/run.d.ts +3 -0
  48. package/dist/cli/commands/run.d.ts.map +1 -0
  49. package/dist/cli/commands/run.js +160 -0
  50. package/dist/cli/commands/run.js.map +1 -0
  51. package/dist/cli/commands/scan.d.ts +3 -0
  52. package/dist/cli/commands/scan.d.ts.map +1 -0
  53. package/dist/cli/commands/scan.js +133 -0
  54. package/dist/cli/commands/scan.js.map +1 -0
  55. package/dist/cli/commands/search.d.ts +3 -0
  56. package/dist/cli/commands/search.d.ts.map +1 -0
  57. package/dist/cli/commands/search.js +56 -0
  58. package/dist/cli/commands/search.js.map +1 -0
  59. package/dist/cli/index.d.ts +3 -0
  60. package/dist/cli/index.d.ts.map +1 -0
  61. package/dist/cli/index.js +70 -0
  62. package/dist/cli/index.js.map +1 -0
  63. package/dist/core/config.d.ts +167 -0
  64. package/dist/core/config.d.ts.map +1 -0
  65. package/dist/core/config.js +398 -0
  66. package/dist/core/config.js.map +1 -0
  67. package/dist/core/parser.d.ts +34 -0
  68. package/dist/core/parser.d.ts.map +1 -0
  69. package/dist/core/parser.js +462 -0
  70. package/dist/core/parser.js.map +1 -0
  71. package/dist/core/runtime.d.ts +68 -0
  72. package/dist/core/runtime.d.ts.map +1 -0
  73. package/dist/core/runtime.js +560 -0
  74. package/dist/core/runtime.js.map +1 -0
  75. package/dist/core/types.d.ts +525 -0
  76. package/dist/core/types.d.ts.map +1 -0
  77. package/dist/core/types.js +44 -0
  78. package/dist/core/types.js.map +1 -0
  79. package/dist/guard/index.d.ts +57 -0
  80. package/dist/guard/index.d.ts.map +1 -0
  81. package/dist/guard/index.js +238 -0
  82. package/dist/guard/index.js.map +1 -0
  83. package/dist/guard/patterns.d.ts +21 -0
  84. package/dist/guard/patterns.d.ts.map +1 -0
  85. package/dist/guard/patterns.js +797 -0
  86. package/dist/guard/patterns.js.map +1 -0
  87. package/dist/hub/index.d.ts +44 -0
  88. package/dist/hub/index.d.ts.map +1 -0
  89. package/dist/hub/index.js +144 -0
  90. package/dist/hub/index.js.map +1 -0
  91. package/dist/hub/registry.d.ts +52 -0
  92. package/dist/hub/registry.d.ts.map +1 -0
  93. package/dist/hub/registry.js +192 -0
  94. package/dist/hub/registry.js.map +1 -0
  95. package/dist/i18n/index.d.ts +19 -0
  96. package/dist/i18n/index.d.ts.map +1 -0
  97. package/dist/i18n/index.js +92 -0
  98. package/dist/i18n/index.js.map +1 -0
  99. package/dist/i18n/locales/en.d.ts +110 -0
  100. package/dist/i18n/locales/en.d.ts.map +1 -0
  101. package/dist/i18n/locales/en.js +123 -0
  102. package/dist/i18n/locales/en.js.map +1 -0
  103. package/dist/i18n/locales/es.d.ts +110 -0
  104. package/dist/i18n/locales/es.d.ts.map +1 -0
  105. package/dist/i18n/locales/es.js +123 -0
  106. package/dist/i18n/locales/es.js.map +1 -0
  107. package/dist/i18n/locales/pt.d.ts +110 -0
  108. package/dist/i18n/locales/pt.d.ts.map +1 -0
  109. package/dist/i18n/locales/pt.js +123 -0
  110. package/dist/i18n/locales/pt.js.map +1 -0
  111. package/dist/i18n/locales/zh.d.ts +110 -0
  112. package/dist/i18n/locales/zh.d.ts.map +1 -0
  113. package/dist/i18n/locales/zh.js +123 -0
  114. package/dist/i18n/locales/zh.js.map +1 -0
  115. package/dist/index.d.ts +168 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +275 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/router/index.d.ts +89 -0
  120. package/dist/router/index.d.ts.map +1 -0
  121. package/dist/router/index.js +292 -0
  122. package/dist/router/index.js.map +1 -0
  123. package/dist/router/providers.d.ts +48 -0
  124. package/dist/router/providers.d.ts.map +1 -0
  125. package/dist/router/providers.js +733 -0
  126. package/dist/router/providers.js.map +1 -0
  127. package/dist/runtime/executor.d.ts +96 -0
  128. package/dist/runtime/executor.d.ts.map +1 -0
  129. package/dist/runtime/executor.js +389 -0
  130. package/dist/runtime/executor.js.map +1 -0
  131. package/dist/sandbox/index.d.ts +52 -0
  132. package/dist/sandbox/index.d.ts.map +1 -0
  133. package/dist/sandbox/index.js +248 -0
  134. package/dist/sandbox/index.js.map +1 -0
  135. package/dist/security/skillguard.d.ts +25 -0
  136. package/dist/security/skillguard.d.ts.map +1 -0
  137. package/dist/security/skillguard.js +137 -0
  138. package/dist/security/skillguard.js.map +1 -0
  139. package/dist/tools/index.d.ts +55 -0
  140. package/dist/tools/index.d.ts.map +1 -0
  141. package/dist/tools/index.js +276 -0
  142. package/dist/tools/index.js.map +1 -0
  143. package/dist/tools/web-engine.d.ts +158 -0
  144. package/dist/tools/web-engine.d.ts.map +1 -0
  145. package/dist/tools/web-engine.js +802 -0
  146. package/dist/tools/web-engine.js.map +1 -0
  147. package/dist/tools/web-tools.d.ts +173 -0
  148. package/dist/tools/web-tools.d.ts.map +1 -0
  149. package/dist/tools/web-tools.js +251 -0
  150. package/dist/tools/web-tools.js.map +1 -0
  151. package/dist/utils/errors.d.ts +44 -0
  152. package/dist/utils/errors.d.ts.map +1 -0
  153. package/dist/utils/errors.js +130 -0
  154. package/dist/utils/errors.js.map +1 -0
  155. package/dist/utils/logger.d.ts +28 -0
  156. package/dist/utils/logger.d.ts.map +1 -0
  157. package/dist/utils/logger.js +121 -0
  158. package/dist/utils/logger.js.map +1 -0
  159. package/examples/basic-usage.ts +276 -0
  160. package/examples/code-reviewer.skill.md +83 -0
  161. package/examples/creative-writer.skill.md +80 -0
  162. package/examples/data-analyzer.skill.md +61 -0
  163. package/examples/hello-world.skill.md +36 -0
  164. package/examples/sample-skill.md +156 -0
  165. package/examples/summarizer.skill.md +62 -0
  166. package/examples/translator.skill.md +45 -0
  167. package/package.json +110 -0
@@ -0,0 +1,733 @@
1
+ export const PROVIDER_REGISTRY = {
2
+ // OpenAI
3
+ openai: {
4
+ name: "OpenAI",
5
+ baseUrl: "https://api.openai.com/v1",
6
+ requiresApiKey: true,
7
+ freeTier: false,
8
+ homepage: "https://openai.com",
9
+ documentation: "https://platform.openai.com/docs",
10
+ rateLimit: {
11
+ requestsPerMinute: 500,
12
+ tokensPerMinute: 2000000,
13
+ },
14
+ models: [
15
+ {
16
+ id: "gpt-4",
17
+ name: "GPT-4",
18
+ contextWindow: 8192,
19
+ maxOutput: 4096,
20
+ costPer1kTokens: 0.03,
21
+ capabilities: {
22
+ vision: true,
23
+ tools: true,
24
+ streaming: true,
25
+ functionCalling: true,
26
+ json: true,
27
+ },
28
+ releaseDate: "2023-03",
29
+ },
30
+ {
31
+ id: "gpt-4-turbo",
32
+ name: "GPT-4 Turbo",
33
+ contextWindow: 128000,
34
+ maxOutput: 4096,
35
+ costPer1kTokens: 0.01,
36
+ capabilities: {
37
+ vision: true,
38
+ tools: true,
39
+ streaming: true,
40
+ functionCalling: true,
41
+ json: true,
42
+ },
43
+ releaseDate: "2023-11",
44
+ },
45
+ {
46
+ id: "gpt-4o",
47
+ name: "GPT-4o",
48
+ contextWindow: 128000,
49
+ maxOutput: 4096,
50
+ costPer1kTokens: 0.005,
51
+ capabilities: {
52
+ vision: true,
53
+ tools: true,
54
+ streaming: true,
55
+ functionCalling: true,
56
+ json: true,
57
+ },
58
+ releaseDate: "2024-05",
59
+ },
60
+ {
61
+ id: "gpt-4o-mini",
62
+ name: "GPT-4o mini",
63
+ contextWindow: 128000,
64
+ maxOutput: 4096,
65
+ costPer1kTokens: 0.00015,
66
+ capabilities: {
67
+ vision: true,
68
+ tools: true,
69
+ streaming: true,
70
+ functionCalling: true,
71
+ json: true,
72
+ },
73
+ releaseDate: "2024-07",
74
+ },
75
+ {
76
+ id: "gpt-3.5-turbo",
77
+ name: "GPT-3.5 Turbo",
78
+ contextWindow: 4096,
79
+ maxOutput: 4096,
80
+ costPer1kTokens: 0.0005,
81
+ capabilities: {
82
+ tools: true,
83
+ streaming: true,
84
+ functionCalling: true,
85
+ json: true,
86
+ },
87
+ releaseDate: "2023-03",
88
+ },
89
+ ],
90
+ },
91
+ // Anthropic
92
+ anthropic: {
93
+ name: "Anthropic",
94
+ baseUrl: "https://api.anthropic.com",
95
+ requiresApiKey: true,
96
+ freeTier: false,
97
+ homepage: "https://anthropic.com",
98
+ documentation: "https://docs.anthropic.com",
99
+ rateLimit: {
100
+ requestsPerMinute: 600,
101
+ tokensPerMinute: 2000000,
102
+ },
103
+ models: [
104
+ {
105
+ id: "claude-opus-4",
106
+ name: "Claude Opus 4",
107
+ contextWindow: 200000,
108
+ maxOutput: 8192,
109
+ costPer1kTokens: 0.015,
110
+ capabilities: {
111
+ vision: true,
112
+ tools: true,
113
+ streaming: true,
114
+ functionCalling: true,
115
+ json: true,
116
+ },
117
+ releaseDate: "2024-11",
118
+ },
119
+ {
120
+ id: "claude-3-5-sonnet",
121
+ name: "Claude 3.5 Sonnet",
122
+ contextWindow: 200000,
123
+ maxOutput: 8192,
124
+ costPer1kTokens: 0.003,
125
+ capabilities: {
126
+ vision: true,
127
+ tools: true,
128
+ streaming: true,
129
+ functionCalling: true,
130
+ json: true,
131
+ },
132
+ releaseDate: "2024-06",
133
+ },
134
+ {
135
+ id: "claude-3-sonnet-20240229",
136
+ name: "Claude 3 Sonnet",
137
+ contextWindow: 200000,
138
+ maxOutput: 4096,
139
+ costPer1kTokens: 0.003,
140
+ capabilities: {
141
+ vision: true,
142
+ tools: true,
143
+ streaming: true,
144
+ functionCalling: true,
145
+ json: true,
146
+ },
147
+ releaseDate: "2024-02",
148
+ },
149
+ {
150
+ id: "claude-3-haiku-20240307",
151
+ name: "Claude 3 Haiku",
152
+ contextWindow: 200000,
153
+ maxOutput: 4096,
154
+ costPer1kTokens: 0.00025,
155
+ capabilities: {
156
+ vision: true,
157
+ tools: true,
158
+ streaming: true,
159
+ functionCalling: true,
160
+ json: true,
161
+ },
162
+ releaseDate: "2024-03",
163
+ },
164
+ ],
165
+ },
166
+ // Google
167
+ google: {
168
+ name: "Google DeepMind",
169
+ baseUrl: "https://generativelanguage.googleapis.com",
170
+ requiresApiKey: true,
171
+ freeTier: true,
172
+ homepage: "https://ai.google.dev",
173
+ documentation: "https://ai.google.dev/docs",
174
+ rateLimit: {
175
+ requestsPerMinute: 60,
176
+ tokensPerMinute: 4000000,
177
+ },
178
+ models: [
179
+ {
180
+ id: "gemini-2-flash",
181
+ name: "Gemini 2.0 Flash",
182
+ contextWindow: 1000000,
183
+ maxOutput: 8192,
184
+ costPer1kTokens: 0.0,
185
+ capabilities: {
186
+ vision: true,
187
+ tools: true,
188
+ streaming: true,
189
+ functionCalling: true,
190
+ json: true,
191
+ },
192
+ releaseDate: "2024-12",
193
+ },
194
+ {
195
+ id: "gemini-2-5-pro",
196
+ name: "Gemini 2.5 Pro",
197
+ contextWindow: 1000000,
198
+ maxOutput: 8192,
199
+ costPer1kTokens: 0.001,
200
+ capabilities: {
201
+ vision: true,
202
+ tools: true,
203
+ streaming: true,
204
+ functionCalling: true,
205
+ json: true,
206
+ },
207
+ releaseDate: "2025-01",
208
+ },
209
+ {
210
+ id: "gemini-1-5-pro",
211
+ name: "Gemini 1.5 Pro",
212
+ contextWindow: 2000000,
213
+ maxOutput: 8192,
214
+ costPer1kTokens: 0.0025,
215
+ capabilities: {
216
+ vision: true,
217
+ tools: true,
218
+ streaming: true,
219
+ functionCalling: true,
220
+ json: true,
221
+ },
222
+ releaseDate: "2024-06",
223
+ },
224
+ {
225
+ id: "gemini-1-5-flash",
226
+ name: "Gemini 1.5 Flash",
227
+ contextWindow: 1000000,
228
+ maxOutput: 8192,
229
+ costPer1kTokens: 0.00005,
230
+ capabilities: {
231
+ vision: true,
232
+ tools: true,
233
+ streaming: true,
234
+ functionCalling: true,
235
+ json: true,
236
+ },
237
+ releaseDate: "2024-09",
238
+ },
239
+ ],
240
+ },
241
+ // DeepSeek
242
+ deepseek: {
243
+ name: "DeepSeek",
244
+ baseUrl: "https://api.deepseek.com/beta",
245
+ requiresApiKey: true,
246
+ freeTier: true,
247
+ homepage: "https://deepseek.com",
248
+ documentation: "https://platform.deepseek.com/api-docs",
249
+ rateLimit: {
250
+ requestsPerMinute: 500,
251
+ tokensPerMinute: 8000000,
252
+ },
253
+ models: [
254
+ {
255
+ id: "deepseek-chat",
256
+ name: "DeepSeek Chat",
257
+ contextWindow: 64000,
258
+ maxOutput: 4096,
259
+ costPer1kTokens: 0.00014,
260
+ capabilities: {
261
+ streaming: true,
262
+ functionCalling: true,
263
+ json: true,
264
+ },
265
+ releaseDate: "2024-01",
266
+ },
267
+ {
268
+ id: "deepseek-r1",
269
+ name: "DeepSeek R1",
270
+ contextWindow: 64000,
271
+ maxOutput: 8192,
272
+ costPer1kTokens: 0.00055,
273
+ capabilities: {
274
+ streaming: true,
275
+ json: true,
276
+ },
277
+ releaseDate: "2024-12",
278
+ },
279
+ {
280
+ id: "deepseek-v3",
281
+ name: "DeepSeek V3",
282
+ contextWindow: 64000,
283
+ maxOutput: 4096,
284
+ costPer1kTokens: 0.0002,
285
+ capabilities: {
286
+ streaming: true,
287
+ functionCalling: true,
288
+ json: true,
289
+ },
290
+ releaseDate: "2024-12",
291
+ },
292
+ ],
293
+ },
294
+ // Qwen (Alibaba)
295
+ qwen: {
296
+ name: "Qwen (Alibaba)",
297
+ baseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",
298
+ requiresApiKey: true,
299
+ freeTier: true,
300
+ homepage: "https://www.qwenlm.ai",
301
+ documentation: "https://help.aliyun.com/zh_CN/dashscope/developer-reference/",
302
+ rateLimit: {
303
+ requestsPerMinute: 500,
304
+ tokensPerMinute: 4000000,
305
+ },
306
+ models: [
307
+ {
308
+ id: "qwen-plus",
309
+ name: "Qwen Plus",
310
+ contextWindow: 32000,
311
+ maxOutput: 2048,
312
+ costPer1kTokens: 0.0002,
313
+ capabilities: {
314
+ streaming: true,
315
+ functionCalling: true,
316
+ json: true,
317
+ },
318
+ releaseDate: "2024-01",
319
+ },
320
+ {
321
+ id: "qwen-turbo",
322
+ name: "Qwen Turbo",
323
+ contextWindow: 32000,
324
+ maxOutput: 2048,
325
+ costPer1kTokens: 0.00005,
326
+ capabilities: {
327
+ streaming: true,
328
+ json: true,
329
+ },
330
+ releaseDate: "2024-01",
331
+ },
332
+ {
333
+ id: "qwen-max",
334
+ name: "Qwen Max",
335
+ contextWindow: 200000,
336
+ maxOutput: 8192,
337
+ costPer1kTokens: 0.002,
338
+ capabilities: {
339
+ vision: true,
340
+ streaming: true,
341
+ functionCalling: true,
342
+ json: true,
343
+ },
344
+ releaseDate: "2024-06",
345
+ },
346
+ {
347
+ id: "qwen-long",
348
+ name: "Qwen Long",
349
+ contextWindow: 1000000,
350
+ maxOutput: 4096,
351
+ costPer1kTokens: 0.0005,
352
+ capabilities: {
353
+ streaming: true,
354
+ json: true,
355
+ },
356
+ releaseDate: "2024-08",
357
+ },
358
+ ],
359
+ },
360
+ // Groq
361
+ groq: {
362
+ name: "Groq",
363
+ baseUrl: "https://api.groq.com/openai/v1",
364
+ requiresApiKey: true,
365
+ freeTier: false,
366
+ homepage: "https://groq.com",
367
+ documentation: "https://console.groq.com/docs",
368
+ rateLimit: {
369
+ requestsPerMinute: 60,
370
+ tokensPerMinute: 4000000,
371
+ },
372
+ models: [
373
+ {
374
+ id: "llama-3.3-70b-versatile",
375
+ name: "Llama 3.3 70B",
376
+ contextWindow: 8192,
377
+ maxOutput: 4096,
378
+ costPer1kTokens: 0.0,
379
+ capabilities: {
380
+ streaming: true,
381
+ },
382
+ releaseDate: "2024-04",
383
+ },
384
+ {
385
+ id: "llama-3.1-8b-instant",
386
+ name: "Llama 3.1 8B Instant",
387
+ contextWindow: 32768,
388
+ maxOutput: 4096,
389
+ costPer1kTokens: 0.0,
390
+ capabilities: {
391
+ streaming: true,
392
+ },
393
+ releaseDate: "2023-12",
394
+ },
395
+ {
396
+ id: "gemma2-9b-it",
397
+ name: "Gemma 2 9B IT",
398
+ contextWindow: 8192,
399
+ maxOutput: 4096,
400
+ costPer1kTokens: 0.0,
401
+ capabilities: {
402
+ streaming: true,
403
+ },
404
+ releaseDate: "2024-02",
405
+ },
406
+ ],
407
+ },
408
+ // Together AI
409
+ together: {
410
+ name: "Together AI",
411
+ baseUrl: "https://api.together.xyz/v1",
412
+ requiresApiKey: true,
413
+ freeTier: true,
414
+ homepage: "https://www.together.ai",
415
+ documentation: "https://docs.together.ai",
416
+ rateLimit: {
417
+ requestsPerMinute: 100,
418
+ },
419
+ models: [
420
+ {
421
+ id: "meta-llama/Llama-3-70b-chat-hf",
422
+ name: "Llama 3 70B Chat",
423
+ contextWindow: 8192,
424
+ maxOutput: 4096,
425
+ costPer1kTokens: 0.0,
426
+ capabilities: {
427
+ streaming: true,
428
+ },
429
+ releaseDate: "2024-04",
430
+ },
431
+ {
432
+ id: "NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO",
433
+ name: "Nous Hermes 2 Mixtral",
434
+ contextWindow: 32768,
435
+ maxOutput: 4096,
436
+ costPer1kTokens: 0.0,
437
+ capabilities: {
438
+ streaming: true,
439
+ },
440
+ releaseDate: "2024-01",
441
+ },
442
+ {
443
+ id: "mistralai/Mistral-7B-Instruct-v0.2",
444
+ name: "Mistral 7B Instruct",
445
+ contextWindow: 32768,
446
+ maxOutput: 4096,
447
+ costPer1kTokens: 0.0,
448
+ capabilities: {
449
+ streaming: true,
450
+ },
451
+ releaseDate: "2024-02",
452
+ },
453
+ ],
454
+ },
455
+ // Fireworks AI
456
+ fireworks: {
457
+ name: "Fireworks AI",
458
+ baseUrl: "https://api.fireworks.ai/inference/v1",
459
+ requiresApiKey: true,
460
+ freeTier: true,
461
+ homepage: "https://fireworks.ai",
462
+ documentation: "https://docs.fireworks.ai",
463
+ rateLimit: {
464
+ requestsPerMinute: 200,
465
+ },
466
+ models: [
467
+ {
468
+ id: "accounts/fireworks/models/llama-v3-70b-instruct",
469
+ name: "Llama 3 70B Instruct",
470
+ contextWindow: 8192,
471
+ maxOutput: 4096,
472
+ costPer1kTokens: 0.0,
473
+ capabilities: {
474
+ streaming: true,
475
+ },
476
+ releaseDate: "2024-04",
477
+ },
478
+ {
479
+ id: "accounts/fireworks/models/mistral-large",
480
+ name: "Mistral Large",
481
+ contextWindow: 32768,
482
+ maxOutput: 4096,
483
+ costPer1kTokens: 0.0,
484
+ capabilities: {
485
+ streaming: true,
486
+ },
487
+ releaseDate: "2024-02",
488
+ },
489
+ {
490
+ id: "accounts/fireworks/models/qwen-72b-chat",
491
+ name: "Qwen 72B Chat",
492
+ contextWindow: 32768,
493
+ maxOutput: 4096,
494
+ costPer1kTokens: 0.0,
495
+ capabilities: {
496
+ streaming: true,
497
+ },
498
+ releaseDate: "2024-05",
499
+ },
500
+ ],
501
+ },
502
+ // Kimi (Moonshot AI)
503
+ kimi: {
504
+ name: "Kimi (Moonshot AI)",
505
+ baseUrl: "https://api.moonshot.cn/v1",
506
+ requiresApiKey: true,
507
+ freeTier: false,
508
+ homepage: "https://kimi.moonshot.cn",
509
+ documentation: "https://platform.moonshot.cn/docs",
510
+ rateLimit: {
511
+ requestsPerMinute: 60,
512
+ },
513
+ models: [
514
+ {
515
+ id: "moonshot-v1-128k",
516
+ name: "Moonshot V1 128K",
517
+ contextWindow: 128000,
518
+ maxOutput: 4096,
519
+ costPer1kTokens: 0.008,
520
+ capabilities: {
521
+ streaming: true,
522
+ functionCalling: true,
523
+ json: true,
524
+ },
525
+ releaseDate: "2024-03",
526
+ },
527
+ {
528
+ id: "moonshot-v1-32k",
529
+ name: "Moonshot V1 32K",
530
+ contextWindow: 32000,
531
+ maxOutput: 4096,
532
+ costPer1kTokens: 0.002,
533
+ capabilities: {
534
+ streaming: true,
535
+ functionCalling: true,
536
+ json: true,
537
+ },
538
+ releaseDate: "2024-03",
539
+ },
540
+ {
541
+ id: "moonshot-v1-8k",
542
+ name: "Moonshot V1 8K",
543
+ contextWindow: 8000,
544
+ maxOutput: 4096,
545
+ costPer1kTokens: 0.001,
546
+ capabilities: {
547
+ streaming: true,
548
+ functionCalling: true,
549
+ json: true,
550
+ },
551
+ releaseDate: "2024-03",
552
+ },
553
+ ],
554
+ },
555
+ // Zhipu AI (SIFU / Big Model)
556
+ zhipu: {
557
+ name: "Zhipu AI (SIFU)",
558
+ baseUrl: "https://open.bigmodel.cn/api/paas/v4",
559
+ requiresApiKey: true,
560
+ freeTier: false,
561
+ homepage: "https://open.bigmodel.cn",
562
+ documentation: "https://open.bigmodel.cn/dev/howuse/introduction",
563
+ rateLimit: {
564
+ requestsPerMinute: 100,
565
+ },
566
+ models: [
567
+ {
568
+ id: "glm-4-flash",
569
+ name: "GLM-4 Flash",
570
+ contextWindow: 128000,
571
+ maxOutput: 4096,
572
+ costPer1kTokens: 0.0001,
573
+ capabilities: {
574
+ vision: true,
575
+ streaming: true,
576
+ functionCalling: true,
577
+ json: true,
578
+ },
579
+ releaseDate: "2024-06",
580
+ },
581
+ {
582
+ id: "glm-4",
583
+ name: "GLM-4",
584
+ contextWindow: 128000,
585
+ maxOutput: 4096,
586
+ costPer1kTokens: 0.01,
587
+ capabilities: {
588
+ vision: true,
589
+ streaming: true,
590
+ functionCalling: true,
591
+ json: true,
592
+ },
593
+ releaseDate: "2024-01",
594
+ },
595
+ {
596
+ id: "glm-4-plus",
597
+ name: "GLM-4 Plus",
598
+ contextWindow: 128000,
599
+ maxOutput: 4096,
600
+ costPer1kTokens: 0.05,
601
+ capabilities: {
602
+ vision: true,
603
+ streaming: true,
604
+ functionCalling: true,
605
+ json: true,
606
+ },
607
+ releaseDate: "2024-08",
608
+ },
609
+ ],
610
+ },
611
+ // Ollama (Local)
612
+ ollama: {
613
+ name: "Ollama (Local)",
614
+ baseUrl: "http://localhost:11434",
615
+ requiresApiKey: false,
616
+ freeTier: true,
617
+ homepage: "https://ollama.ai",
618
+ documentation: "https://github.com/ollama/ollama",
619
+ models: [
620
+ {
621
+ id: "llama3",
622
+ name: "Llama 3",
623
+ contextWindow: 8192,
624
+ maxOutput: 4096,
625
+ costPer1kTokens: 0.0,
626
+ capabilities: {
627
+ streaming: true,
628
+ },
629
+ releaseDate: "2024-04",
630
+ },
631
+ {
632
+ id: "qwen2.5",
633
+ name: "Qwen 2.5",
634
+ contextWindow: 32768,
635
+ maxOutput: 4096,
636
+ costPer1kTokens: 0.0,
637
+ capabilities: {
638
+ streaming: true,
639
+ },
640
+ releaseDate: "2024-10",
641
+ },
642
+ {
643
+ id: "deepseek-r1",
644
+ name: "DeepSeek R1",
645
+ contextWindow: 64000,
646
+ maxOutput: 8192,
647
+ costPer1kTokens: 0.0,
648
+ capabilities: {
649
+ streaming: true,
650
+ },
651
+ releaseDate: "2024-12",
652
+ },
653
+ {
654
+ id: "mistral",
655
+ name: "Mistral",
656
+ contextWindow: 32768,
657
+ maxOutput: 4096,
658
+ costPer1kTokens: 0.0,
659
+ capabilities: {
660
+ streaming: true,
661
+ },
662
+ releaseDate: "2024-02",
663
+ },
664
+ {
665
+ id: "neural-chat",
666
+ name: "Neural Chat",
667
+ contextWindow: 8192,
668
+ maxOutput: 4096,
669
+ costPer1kTokens: 0.0,
670
+ capabilities: {
671
+ streaming: true,
672
+ },
673
+ releaseDate: "2024-01",
674
+ },
675
+ ],
676
+ },
677
+ };
678
+ export function getProvider(name) {
679
+ return PROVIDER_REGISTRY[name.toLowerCase()];
680
+ }
681
+ export function getModel(provider, modelId) {
682
+ const providerConfig = getProvider(provider);
683
+ if (!providerConfig)
684
+ return undefined;
685
+ return providerConfig.models.find((m) => m.id === modelId);
686
+ }
687
+ export function listFreeModels() {
688
+ const results = [];
689
+ for (const [providerName, providerData] of Object.entries(PROVIDER_REGISTRY)) {
690
+ if (providerData.freeTier) {
691
+ for (const model of providerData.models) {
692
+ if (model.costPer1kTokens === 0 || model.costPer1kTokens < 0.0001) {
693
+ results.push({
694
+ provider: providerName,
695
+ model: model.id,
696
+ name: model.name,
697
+ });
698
+ }
699
+ }
700
+ }
701
+ }
702
+ return results;
703
+ }
704
+ export function getModelsByCapability(capability) {
705
+ const results = [];
706
+ for (const [providerName, providerData] of Object.entries(PROVIDER_REGISTRY)) {
707
+ for (const model of providerData.models) {
708
+ if (model.capabilities?.[capability]) {
709
+ results.push({
710
+ provider: providerName,
711
+ model,
712
+ });
713
+ }
714
+ }
715
+ }
716
+ return results;
717
+ }
718
+ export function getModelsByMinContext(contextWindow) {
719
+ const results = [];
720
+ for (const [providerName, providerData] of Object.entries(PROVIDER_REGISTRY)) {
721
+ for (const model of providerData.models) {
722
+ if (model.contextWindow >= contextWindow) {
723
+ results.push({
724
+ provider: providerName,
725
+ model,
726
+ });
727
+ }
728
+ }
729
+ }
730
+ return results.sort((a, b) => a.model.contextWindow - b.model.contextWindow);
731
+ }
732
+ export default PROVIDER_REGISTRY;
733
+ //# sourceMappingURL=providers.js.map