@ik-firewall/core 1.0.1 → 1.0.2
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.
- package/dist/index.cjs +32 -0
- package/dist/index.d.cts +12 -2
- package/dist/index.d.ts +12 -2
- package/dist/index.js +31 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -31,6 +31,7 @@ __export(index_exports, {
|
|
|
31
31
|
IKFirewallCore: () => IKFirewallCore,
|
|
32
32
|
LocalProvider: () => LocalProvider,
|
|
33
33
|
OpenAIProvider: () => OpenAIProvider,
|
|
34
|
+
PerplexityProvider: () => PerplexityProvider,
|
|
34
35
|
StressTester: () => StressTester,
|
|
35
36
|
SurgicalTester: () => SurgicalTester
|
|
36
37
|
});
|
|
@@ -1149,6 +1150,18 @@ var GeminiProvider = class extends BaseProvider {
|
|
|
1149
1150
|
}
|
|
1150
1151
|
};
|
|
1151
1152
|
|
|
1153
|
+
// src/providers/PerplexityProvider.ts
|
|
1154
|
+
var PerplexityProvider = class extends BaseProvider {
|
|
1155
|
+
functionalProvider;
|
|
1156
|
+
constructor(provider) {
|
|
1157
|
+
super();
|
|
1158
|
+
this.functionalProvider = provider;
|
|
1159
|
+
}
|
|
1160
|
+
async call(prompt, role) {
|
|
1161
|
+
return this.functionalProvider(prompt, role);
|
|
1162
|
+
}
|
|
1163
|
+
};
|
|
1164
|
+
|
|
1152
1165
|
// src/Orchestrator.ts
|
|
1153
1166
|
var Orchestrator = class {
|
|
1154
1167
|
config;
|
|
@@ -1167,6 +1180,7 @@ var Orchestrator = class {
|
|
|
1167
1180
|
if (mode === "anthropic") return { provider: "anthropic", model: "claude-3-5-sonnet-20241022", tier: 4 };
|
|
1168
1181
|
if (mode === "deepseek") return { provider: "deepseek", model: "deepseek-reasoner", tier: 4 };
|
|
1169
1182
|
if (mode === "gemini") return { provider: "gemini", model: "gemini-1.5-pro", tier: 4 };
|
|
1183
|
+
if (mode === "perplexity") return { provider: "perplexity", model: "sonar-large-online", tier: 4 };
|
|
1170
1184
|
return { provider: "openai", model: "gpt-4o", tier: 4 };
|
|
1171
1185
|
}
|
|
1172
1186
|
if (mode === "local") {
|
|
@@ -1193,6 +1207,13 @@ var Orchestrator = class {
|
|
|
1193
1207
|
tier: isHighComplexity ? 3 : 2
|
|
1194
1208
|
};
|
|
1195
1209
|
}
|
|
1210
|
+
if (mode === "perplexity") {
|
|
1211
|
+
return {
|
|
1212
|
+
provider: "perplexity",
|
|
1213
|
+
model: isHighComplexity ? "sonar-large-online" : "sonar-small-online",
|
|
1214
|
+
tier: isHighComplexity ? 3 : 2
|
|
1215
|
+
};
|
|
1216
|
+
}
|
|
1196
1217
|
if (mode === "cloud" || mode === "openai") {
|
|
1197
1218
|
return {
|
|
1198
1219
|
provider: "openai",
|
|
@@ -1437,6 +1458,8 @@ var IKFirewallCore = class _IKFirewallCore {
|
|
|
1437
1458
|
this.cloudProvider = new DeepSeekProvider(cloudProvider);
|
|
1438
1459
|
} else if (mode === "gemini") {
|
|
1439
1460
|
this.cloudProvider = new GeminiProvider(cloudProvider);
|
|
1461
|
+
} else if (mode === "perplexity") {
|
|
1462
|
+
this.cloudProvider = new PerplexityProvider(cloudProvider);
|
|
1440
1463
|
} else {
|
|
1441
1464
|
this.cloudProvider = new OpenAIProvider(cloudProvider);
|
|
1442
1465
|
}
|
|
@@ -1507,6 +1530,10 @@ var IKFirewallCore = class _IKFirewallCore {
|
|
|
1507
1530
|
available: !!process.env.GEMINI_API_KEY,
|
|
1508
1531
|
reason: !!process.env.GEMINI_API_KEY ? void 0 : "Missing GEMINI_API_KEY inside environment."
|
|
1509
1532
|
};
|
|
1533
|
+
providers["perplexity"] = {
|
|
1534
|
+
available: !!process.env.PERPLEXITY_API_KEY,
|
|
1535
|
+
reason: !!process.env.PERPLEXITY_API_KEY ? void 0 : "Missing PERPLEXITY_API_KEY inside environment."
|
|
1536
|
+
};
|
|
1510
1537
|
return providers;
|
|
1511
1538
|
}
|
|
1512
1539
|
/**
|
|
@@ -1565,6 +1592,8 @@ var IKFirewallCore = class _IKFirewallCore {
|
|
|
1565
1592
|
overrideProvider = new DeepSeekProvider(provider);
|
|
1566
1593
|
} else if (mode === "gemini") {
|
|
1567
1594
|
overrideProvider = new GeminiProvider(provider);
|
|
1595
|
+
} else if (mode === "perplexity") {
|
|
1596
|
+
overrideProvider = new PerplexityProvider(provider);
|
|
1568
1597
|
} else {
|
|
1569
1598
|
overrideProvider = new OpenAIProvider(provider);
|
|
1570
1599
|
}
|
|
@@ -1714,6 +1743,8 @@ var IKFirewallCore = class _IKFirewallCore {
|
|
|
1714
1743
|
overrideProvider = new DeepSeekProvider(provider);
|
|
1715
1744
|
} else if (mode === "gemini") {
|
|
1716
1745
|
overrideProvider = new GeminiProvider(provider);
|
|
1746
|
+
} else if (mode === "perplexity") {
|
|
1747
|
+
overrideProvider = new PerplexityProvider(provider);
|
|
1717
1748
|
} else {
|
|
1718
1749
|
overrideProvider = new OpenAIProvider(provider);
|
|
1719
1750
|
}
|
|
@@ -2440,6 +2471,7 @@ var IKBenchmarks = {
|
|
|
2440
2471
|
IKFirewallCore,
|
|
2441
2472
|
LocalProvider,
|
|
2442
2473
|
OpenAIProvider,
|
|
2474
|
+
PerplexityProvider,
|
|
2443
2475
|
StressTester,
|
|
2444
2476
|
SurgicalTester
|
|
2445
2477
|
});
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
type ModelRole = 'high_performance' | 'cost_optimized' | 'audit_layer';
|
|
2
|
-
type ProviderMode = 'openai' | 'anthropic' | 'deepseek' | 'gemini' | 'local' | 'hybrid';
|
|
2
|
+
type ProviderMode = 'openai' | 'anthropic' | 'deepseek' | 'gemini' | 'perplexity' | 'local' | 'hybrid';
|
|
3
3
|
type RuntimeStrategy = 'internal' | 'sidecar' | 'wasm';
|
|
4
4
|
type ContextMode = 'FIRST_MESSAGE' | 'EVERY_MESSAGE' | 'SYSTEM_ONLY';
|
|
5
5
|
type PromptLength = 'SHORT' | 'MEDIUM' | 'LONG';
|
|
@@ -224,6 +224,16 @@ declare class GeminiProvider extends BaseProvider {
|
|
|
224
224
|
call(prompt: string, role: ModelRole): Promise<AIResponse>;
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
+
/**
|
|
228
|
+
* PerplexityProvider ensures compatibility with Perplexity API (Sonar online models)
|
|
229
|
+
* while connecting to the core firewall logic.
|
|
230
|
+
*/
|
|
231
|
+
declare class PerplexityProvider extends BaseProvider {
|
|
232
|
+
private functionalProvider;
|
|
233
|
+
constructor(provider: AIProvider);
|
|
234
|
+
call(prompt: string, role: ModelRole): Promise<AIResponse>;
|
|
235
|
+
}
|
|
236
|
+
|
|
227
237
|
/**
|
|
228
238
|
* IK FIREWALL: THE CORE ALGORITHM (STANDALONE VERSION)
|
|
229
239
|
* Version: 2.1.0 (Modular & Provider-Agnostic)
|
|
@@ -680,4 +690,4 @@ declare const IKBenchmarks: {
|
|
|
680
690
|
BIG_TEST: TestPrompt[];
|
|
681
691
|
};
|
|
682
692
|
|
|
683
|
-
export { type AIProvider, type AIResponse, AnthropicProvider, BaseProvider, type ContextMode, DeepSeekProvider, Dictionaries, DictionaryRegex, GeminiProvider, HeuristicGatekeeper, IKBenchmarks, type IKConfig, IKFirewallCore, type IKHooks, type IKMetrics, type IKPluginInfo, LocalProvider, type ModelRole, OpenAIProvider, type PromptLength, type PromptType, type ProviderMode, type RuntimeStrategy, type StressReport, type StressTestCase, StressTester, SurgicalTester, type TestCase, type TestPrompt, type TestResult, type UsageData };
|
|
693
|
+
export { type AIProvider, type AIResponse, AnthropicProvider, BaseProvider, type ContextMode, DeepSeekProvider, Dictionaries, DictionaryRegex, GeminiProvider, HeuristicGatekeeper, IKBenchmarks, type IKConfig, IKFirewallCore, type IKHooks, type IKMetrics, type IKPluginInfo, LocalProvider, type ModelRole, OpenAIProvider, PerplexityProvider, type PromptLength, type PromptType, type ProviderMode, type RuntimeStrategy, type StressReport, type StressTestCase, StressTester, SurgicalTester, type TestCase, type TestPrompt, type TestResult, type UsageData };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
type ModelRole = 'high_performance' | 'cost_optimized' | 'audit_layer';
|
|
2
|
-
type ProviderMode = 'openai' | 'anthropic' | 'deepseek' | 'gemini' | 'local' | 'hybrid';
|
|
2
|
+
type ProviderMode = 'openai' | 'anthropic' | 'deepseek' | 'gemini' | 'perplexity' | 'local' | 'hybrid';
|
|
3
3
|
type RuntimeStrategy = 'internal' | 'sidecar' | 'wasm';
|
|
4
4
|
type ContextMode = 'FIRST_MESSAGE' | 'EVERY_MESSAGE' | 'SYSTEM_ONLY';
|
|
5
5
|
type PromptLength = 'SHORT' | 'MEDIUM' | 'LONG';
|
|
@@ -224,6 +224,16 @@ declare class GeminiProvider extends BaseProvider {
|
|
|
224
224
|
call(prompt: string, role: ModelRole): Promise<AIResponse>;
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
+
/**
|
|
228
|
+
* PerplexityProvider ensures compatibility with Perplexity API (Sonar online models)
|
|
229
|
+
* while connecting to the core firewall logic.
|
|
230
|
+
*/
|
|
231
|
+
declare class PerplexityProvider extends BaseProvider {
|
|
232
|
+
private functionalProvider;
|
|
233
|
+
constructor(provider: AIProvider);
|
|
234
|
+
call(prompt: string, role: ModelRole): Promise<AIResponse>;
|
|
235
|
+
}
|
|
236
|
+
|
|
227
237
|
/**
|
|
228
238
|
* IK FIREWALL: THE CORE ALGORITHM (STANDALONE VERSION)
|
|
229
239
|
* Version: 2.1.0 (Modular & Provider-Agnostic)
|
|
@@ -680,4 +690,4 @@ declare const IKBenchmarks: {
|
|
|
680
690
|
BIG_TEST: TestPrompt[];
|
|
681
691
|
};
|
|
682
692
|
|
|
683
|
-
export { type AIProvider, type AIResponse, AnthropicProvider, BaseProvider, type ContextMode, DeepSeekProvider, Dictionaries, DictionaryRegex, GeminiProvider, HeuristicGatekeeper, IKBenchmarks, type IKConfig, IKFirewallCore, type IKHooks, type IKMetrics, type IKPluginInfo, LocalProvider, type ModelRole, OpenAIProvider, type PromptLength, type PromptType, type ProviderMode, type RuntimeStrategy, type StressReport, type StressTestCase, StressTester, SurgicalTester, type TestCase, type TestPrompt, type TestResult, type UsageData };
|
|
693
|
+
export { type AIProvider, type AIResponse, AnthropicProvider, BaseProvider, type ContextMode, DeepSeekProvider, Dictionaries, DictionaryRegex, GeminiProvider, HeuristicGatekeeper, IKBenchmarks, type IKConfig, IKFirewallCore, type IKHooks, type IKMetrics, type IKPluginInfo, LocalProvider, type ModelRole, OpenAIProvider, PerplexityProvider, type PromptLength, type PromptType, type ProviderMode, type RuntimeStrategy, type StressReport, type StressTestCase, StressTester, SurgicalTester, type TestCase, type TestPrompt, type TestResult, type UsageData };
|
package/dist/index.js
CHANGED
|
@@ -1118,6 +1118,18 @@ var GeminiProvider = class extends BaseProvider {
|
|
|
1118
1118
|
}
|
|
1119
1119
|
};
|
|
1120
1120
|
|
|
1121
|
+
// src/providers/PerplexityProvider.ts
|
|
1122
|
+
var PerplexityProvider = class extends BaseProvider {
|
|
1123
|
+
functionalProvider;
|
|
1124
|
+
constructor(provider) {
|
|
1125
|
+
super();
|
|
1126
|
+
this.functionalProvider = provider;
|
|
1127
|
+
}
|
|
1128
|
+
async call(prompt, role) {
|
|
1129
|
+
return this.functionalProvider(prompt, role);
|
|
1130
|
+
}
|
|
1131
|
+
};
|
|
1132
|
+
|
|
1121
1133
|
// src/Orchestrator.ts
|
|
1122
1134
|
var Orchestrator = class {
|
|
1123
1135
|
config;
|
|
@@ -1136,6 +1148,7 @@ var Orchestrator = class {
|
|
|
1136
1148
|
if (mode === "anthropic") return { provider: "anthropic", model: "claude-3-5-sonnet-20241022", tier: 4 };
|
|
1137
1149
|
if (mode === "deepseek") return { provider: "deepseek", model: "deepseek-reasoner", tier: 4 };
|
|
1138
1150
|
if (mode === "gemini") return { provider: "gemini", model: "gemini-1.5-pro", tier: 4 };
|
|
1151
|
+
if (mode === "perplexity") return { provider: "perplexity", model: "sonar-large-online", tier: 4 };
|
|
1139
1152
|
return { provider: "openai", model: "gpt-4o", tier: 4 };
|
|
1140
1153
|
}
|
|
1141
1154
|
if (mode === "local") {
|
|
@@ -1162,6 +1175,13 @@ var Orchestrator = class {
|
|
|
1162
1175
|
tier: isHighComplexity ? 3 : 2
|
|
1163
1176
|
};
|
|
1164
1177
|
}
|
|
1178
|
+
if (mode === "perplexity") {
|
|
1179
|
+
return {
|
|
1180
|
+
provider: "perplexity",
|
|
1181
|
+
model: isHighComplexity ? "sonar-large-online" : "sonar-small-online",
|
|
1182
|
+
tier: isHighComplexity ? 3 : 2
|
|
1183
|
+
};
|
|
1184
|
+
}
|
|
1165
1185
|
if (mode === "cloud" || mode === "openai") {
|
|
1166
1186
|
return {
|
|
1167
1187
|
provider: "openai",
|
|
@@ -1406,6 +1426,8 @@ var IKFirewallCore = class _IKFirewallCore {
|
|
|
1406
1426
|
this.cloudProvider = new DeepSeekProvider(cloudProvider);
|
|
1407
1427
|
} else if (mode === "gemini") {
|
|
1408
1428
|
this.cloudProvider = new GeminiProvider(cloudProvider);
|
|
1429
|
+
} else if (mode === "perplexity") {
|
|
1430
|
+
this.cloudProvider = new PerplexityProvider(cloudProvider);
|
|
1409
1431
|
} else {
|
|
1410
1432
|
this.cloudProvider = new OpenAIProvider(cloudProvider);
|
|
1411
1433
|
}
|
|
@@ -1476,6 +1498,10 @@ var IKFirewallCore = class _IKFirewallCore {
|
|
|
1476
1498
|
available: !!process.env.GEMINI_API_KEY,
|
|
1477
1499
|
reason: !!process.env.GEMINI_API_KEY ? void 0 : "Missing GEMINI_API_KEY inside environment."
|
|
1478
1500
|
};
|
|
1501
|
+
providers["perplexity"] = {
|
|
1502
|
+
available: !!process.env.PERPLEXITY_API_KEY,
|
|
1503
|
+
reason: !!process.env.PERPLEXITY_API_KEY ? void 0 : "Missing PERPLEXITY_API_KEY inside environment."
|
|
1504
|
+
};
|
|
1479
1505
|
return providers;
|
|
1480
1506
|
}
|
|
1481
1507
|
/**
|
|
@@ -1534,6 +1560,8 @@ var IKFirewallCore = class _IKFirewallCore {
|
|
|
1534
1560
|
overrideProvider = new DeepSeekProvider(provider);
|
|
1535
1561
|
} else if (mode === "gemini") {
|
|
1536
1562
|
overrideProvider = new GeminiProvider(provider);
|
|
1563
|
+
} else if (mode === "perplexity") {
|
|
1564
|
+
overrideProvider = new PerplexityProvider(provider);
|
|
1537
1565
|
} else {
|
|
1538
1566
|
overrideProvider = new OpenAIProvider(provider);
|
|
1539
1567
|
}
|
|
@@ -1683,6 +1711,8 @@ var IKFirewallCore = class _IKFirewallCore {
|
|
|
1683
1711
|
overrideProvider = new DeepSeekProvider(provider);
|
|
1684
1712
|
} else if (mode === "gemini") {
|
|
1685
1713
|
overrideProvider = new GeminiProvider(provider);
|
|
1714
|
+
} else if (mode === "perplexity") {
|
|
1715
|
+
overrideProvider = new PerplexityProvider(provider);
|
|
1686
1716
|
} else {
|
|
1687
1717
|
overrideProvider = new OpenAIProvider(provider);
|
|
1688
1718
|
}
|
|
@@ -2408,6 +2438,7 @@ export {
|
|
|
2408
2438
|
IKFirewallCore,
|
|
2409
2439
|
LocalProvider,
|
|
2410
2440
|
OpenAIProvider,
|
|
2441
|
+
PerplexityProvider,
|
|
2411
2442
|
StressTester,
|
|
2412
2443
|
SurgicalTester
|
|
2413
2444
|
};
|