promptfoo 0.73.9 → 0.74.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.
- package/README.md +59 -1
- package/dist/package.json +1 -1
- package/dist/src/assertions/AssertionsResult.d.ts +1 -1
- package/dist/src/assertions/AssertionsResult.d.ts.map +1 -1
- package/dist/src/assertions/validateAssertions.d.ts +1 -1
- package/dist/src/assertions/validateAssertions.d.ts.map +1 -1
- package/dist/src/assertions.d.ts +2 -1
- package/dist/src/assertions.d.ts.map +1 -1
- package/dist/src/assertions.js.map +1 -1
- package/dist/src/commands/cache.d.ts +1 -1
- package/dist/src/commands/cache.d.ts.map +1 -1
- package/dist/src/commands/config.d.ts +1 -1
- package/dist/src/commands/config.d.ts.map +1 -1
- package/dist/src/commands/delete.d.ts +1 -1
- package/dist/src/commands/delete.d.ts.map +1 -1
- package/dist/src/commands/eval/filterFailingTests.d.ts +1 -1
- package/dist/src/commands/eval/filterFailingTests.d.ts.map +1 -1
- package/dist/src/commands/eval/filterTests.d.ts +1 -1
- package/dist/src/commands/eval/filterTests.d.ts.map +1 -1
- package/dist/src/commands/eval.d.ts +2 -2
- package/dist/src/commands/eval.d.ts.map +1 -1
- package/dist/src/commands/eval.js.map +1 -1
- package/dist/src/commands/export.d.ts +1 -1
- package/dist/src/commands/export.d.ts.map +1 -1
- package/dist/src/commands/feedback.d.ts +1 -1
- package/dist/src/commands/feedback.d.ts.map +1 -1
- package/dist/src/commands/generate/dataset.d.ts +2 -2
- package/dist/src/commands/generate/dataset.d.ts.map +1 -1
- package/dist/src/commands/generate/redteam.d.ts +3 -3
- package/dist/src/commands/generate/redteam.d.ts.map +1 -1
- package/dist/src/commands/generate/redteam.js +13 -6
- package/dist/src/commands/generate/redteam.js.map +1 -1
- package/dist/src/commands/import.d.ts +1 -1
- package/dist/src/commands/import.d.ts.map +1 -1
- package/dist/src/commands/init.d.ts +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/list.d.ts +1 -1
- package/dist/src/commands/list.d.ts.map +1 -1
- package/dist/src/commands/redteam.d.ts +2 -1
- package/dist/src/commands/redteam.d.ts.map +1 -1
- package/dist/src/commands/redteam.js +200 -193
- package/dist/src/commands/redteam.js.map +1 -1
- package/dist/src/commands/share.d.ts +1 -1
- package/dist/src/commands/share.d.ts.map +1 -1
- package/dist/src/commands/show.d.ts +1 -1
- package/dist/src/commands/show.d.ts.map +1 -1
- package/dist/src/commands/version.d.ts +1 -1
- package/dist/src/commands/version.d.ts.map +1 -1
- package/dist/src/commands/view.d.ts +1 -1
- package/dist/src/commands/view.d.ts.map +1 -1
- package/dist/src/config.d.ts +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/database/operations.d.ts +56 -240
- package/dist/src/database/operations.d.ts.map +1 -1
- package/dist/src/database/types.d.ts +1 -1
- package/dist/src/database/types.d.ts.map +1 -1
- package/dist/src/globalConfig.d.ts +1 -1
- package/dist/src/globalConfig.d.ts.map +1 -1
- package/dist/src/onboarding.d.ts.map +1 -1
- package/dist/src/onboarding.js +11 -0
- package/dist/src/onboarding.js.map +1 -1
- package/dist/src/prompts/grading.js +1 -1
- package/dist/src/prompts/processors/javascript.d.ts +1 -1
- package/dist/src/prompts/processors/javascript.d.ts.map +1 -1
- package/dist/src/prompts/processors/json.d.ts +1 -1
- package/dist/src/prompts/processors/json.d.ts.map +1 -1
- package/dist/src/prompts/processors/jsonl.d.ts +1 -1
- package/dist/src/prompts/processors/jsonl.d.ts.map +1 -1
- package/dist/src/prompts/processors/python.d.ts.map +1 -1
- package/dist/src/prompts/processors/python.js.map +1 -1
- package/dist/src/prompts/processors/string.d.ts +1 -1
- package/dist/src/prompts/processors/string.d.ts.map +1 -1
- package/dist/src/prompts/processors/text.d.ts +1 -1
- package/dist/src/prompts/processors/text.d.ts.map +1 -1
- package/dist/src/prompts/processors/yaml.d.ts +1 -1
- package/dist/src/prompts/processors/yaml.d.ts.map +1 -1
- package/dist/src/prompts/utils.d.ts +1 -1
- package/dist/src/prompts/utils.d.ts.map +1 -1
- package/dist/src/providers/anthropic.js +1 -1
- package/dist/src/providers/anthropic.js.map +1 -1
- package/dist/src/providers/azureopenai.d.ts.map +1 -1
- package/dist/src/providers/azureopenai.js +6 -2
- package/dist/src/providers/azureopenai.js.map +1 -1
- package/dist/src/providers/bedrock.d.ts.map +1 -1
- package/dist/src/providers/bedrock.js +2 -2
- package/dist/src/providers/bedrock.js.map +1 -1
- package/dist/src/providers/huggingface.d.ts +1 -1
- package/dist/src/providers/huggingface.d.ts.map +1 -1
- package/dist/src/providers/manualInput.d.ts +1 -1
- package/dist/src/providers/manualInput.d.ts.map +1 -1
- package/dist/src/providers/mistral.d.ts +1 -1
- package/dist/src/providers/mistral.d.ts.map +1 -1
- package/dist/src/providers/openai.d.ts +1 -1
- package/dist/src/providers/openai.d.ts.map +1 -1
- package/dist/src/providers/openai.js +8 -3
- package/dist/src/providers/openai.js.map +1 -1
- package/dist/src/providers/shared.d.ts +1 -0
- package/dist/src/providers/shared.d.ts.map +1 -1
- package/dist/src/providers/shared.js +47 -0
- package/dist/src/providers/shared.js.map +1 -1
- package/dist/src/providers/vertex.d.ts.map +1 -1
- package/dist/src/providers/vertex.js.map +1 -1
- package/dist/src/providers.d.ts +2 -1
- package/dist/src/providers.d.ts.map +1 -1
- package/dist/src/python/pythonUtils.d.ts.map +1 -1
- package/dist/src/python/pythonUtils.js.map +1 -1
- package/dist/src/redteam/constants.d.ts +1 -1
- package/dist/src/redteam/constants.js +3 -3
- package/dist/src/redteam/constants.js.map +1 -1
- package/dist/src/redteam/extraction/entities.d.ts +1 -1
- package/dist/src/redteam/extraction/entities.d.ts.map +1 -1
- package/dist/src/redteam/extraction/purpose.d.ts +1 -1
- package/dist/src/redteam/extraction/purpose.d.ts.map +1 -1
- package/dist/src/redteam/extraction/util.d.ts +1 -1
- package/dist/src/redteam/extraction/util.d.ts.map +1 -1
- package/dist/src/redteam/graders/base.d.ts +1 -1
- package/dist/src/redteam/graders/base.d.ts.map +1 -1
- package/dist/src/redteam/graders/harmful.d.ts +1 -1
- package/dist/src/redteam/graders/harmful.d.ts.map +1 -1
- package/dist/src/redteam/graders/index.d.ts +1 -1
- package/dist/src/redteam/graders/index.d.ts.map +1 -1
- package/dist/src/redteam/index.d.ts +3 -3
- package/dist/src/redteam/index.d.ts.map +1 -1
- package/dist/src/redteam/index.js +20 -8
- package/dist/src/redteam/index.js.map +1 -1
- package/dist/src/redteam/plugins/base.d.ts +4 -4
- package/dist/src/redteam/plugins/base.d.ts.map +1 -1
- package/dist/src/redteam/plugins/base.js +1 -1
- package/dist/src/redteam/plugins/base.js.map +1 -1
- package/dist/src/redteam/plugins/competitors.d.ts +2 -2
- package/dist/src/redteam/plugins/competitors.d.ts.map +1 -1
- package/dist/src/redteam/plugins/competitors.js +2 -3
- package/dist/src/redteam/plugins/competitors.js.map +1 -1
- package/dist/src/redteam/plugins/contracts.d.ts +2 -2
- package/dist/src/redteam/plugins/contracts.d.ts.map +1 -1
- package/dist/src/redteam/plugins/contracts.js +2 -3
- package/dist/src/redteam/plugins/contracts.js.map +1 -1
- package/dist/src/redteam/plugins/debugAccess.d.ts +2 -2
- package/dist/src/redteam/plugins/debugAccess.d.ts.map +1 -1
- package/dist/src/redteam/plugins/debugAccess.js +2 -3
- package/dist/src/redteam/plugins/debugAccess.js.map +1 -1
- package/dist/src/redteam/plugins/excessiveAgency.d.ts +2 -2
- package/dist/src/redteam/plugins/excessiveAgency.d.ts.map +1 -1
- package/dist/src/redteam/plugins/excessiveAgency.js +2 -3
- package/dist/src/redteam/plugins/excessiveAgency.js.map +1 -1
- package/dist/src/redteam/plugins/hallucination.d.ts +2 -2
- package/dist/src/redteam/plugins/hallucination.d.ts.map +1 -1
- package/dist/src/redteam/plugins/hallucination.js +2 -3
- package/dist/src/redteam/plugins/hallucination.js.map +1 -1
- package/dist/src/redteam/plugins/harmful.d.ts.map +1 -1
- package/dist/src/redteam/plugins/harmful.js +3 -1
- package/dist/src/redteam/plugins/harmful.js.map +1 -1
- package/dist/src/redteam/plugins/hijacking.d.ts +2 -2
- package/dist/src/redteam/plugins/hijacking.d.ts.map +1 -1
- package/dist/src/redteam/plugins/hijacking.js +2 -3
- package/dist/src/redteam/plugins/hijacking.js.map +1 -1
- package/dist/src/redteam/plugins/imitation.d.ts +1 -1
- package/dist/src/redteam/plugins/imitation.d.ts.map +1 -1
- package/dist/src/redteam/plugins/imitation.js +2 -3
- package/dist/src/redteam/plugins/imitation.js.map +1 -1
- package/dist/src/redteam/plugins/overreliance.d.ts +2 -2
- package/dist/src/redteam/plugins/overreliance.d.ts.map +1 -1
- package/dist/src/redteam/plugins/overreliance.js +2 -3
- package/dist/src/redteam/plugins/overreliance.js.map +1 -1
- package/dist/src/redteam/plugins/politics.d.ts +2 -2
- package/dist/src/redteam/plugins/politics.d.ts.map +1 -1
- package/dist/src/redteam/plugins/politics.js +2 -3
- package/dist/src/redteam/plugins/politics.js.map +1 -1
- package/dist/src/redteam/plugins/rbac.d.ts +2 -2
- package/dist/src/redteam/plugins/rbac.d.ts.map +1 -1
- package/dist/src/redteam/plugins/rbac.js +2 -3
- package/dist/src/redteam/plugins/rbac.js.map +1 -1
- package/dist/src/redteam/plugins/shellInjection.d.ts +2 -2
- package/dist/src/redteam/plugins/shellInjection.d.ts.map +1 -1
- package/dist/src/redteam/plugins/shellInjection.js +2 -3
- package/dist/src/redteam/plugins/shellInjection.js.map +1 -1
- package/dist/src/redteam/plugins/sqlInjection.d.ts +2 -2
- package/dist/src/redteam/plugins/sqlInjection.d.ts.map +1 -1
- package/dist/src/redteam/plugins/sqlInjection.js +2 -3
- package/dist/src/redteam/plugins/sqlInjection.js.map +1 -1
- package/dist/src/redteam/strategies/injections.d.ts +1 -1
- package/dist/src/redteam/strategies/injections.d.ts.map +1 -1
- package/dist/src/redteam/strategies/iterative.d.ts +1 -1
- package/dist/src/redteam/strategies/iterative.d.ts.map +1 -1
- package/dist/src/testCases.d.ts.map +1 -1
- package/dist/src/{types.d.ts → types/index.d.ts} +1496 -6518
- package/dist/src/{types.d.ts.map → types/index.d.ts.map} +1 -1
- package/dist/src/{types.js → types/index.js} +38 -172
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/prompts.d.ts +29 -0
- package/dist/src/types/prompts.d.ts.map +1 -0
- package/dist/src/types/prompts.js +3 -0
- package/dist/src/types/prompts.js.map +1 -0
- package/dist/src/types/providers.d.ts +126 -0
- package/dist/src/types/providers.d.ts.map +1 -0
- package/dist/src/types/providers.js +11 -0
- package/dist/src/types/providers.js.map +1 -0
- package/dist/src/types/redteam.d.ts +51 -0
- package/dist/src/types/redteam.d.ts.map +1 -0
- package/dist/src/types/redteam.js +3 -0
- package/dist/src/types/redteam.js.map +1 -0
- package/dist/src/types/shared.d.ts +8 -0
- package/dist/src/types/shared.d.ts.map +1 -0
- package/dist/src/types/shared.js +3 -0
- package/dist/src/types/shared.js.map +1 -0
- package/dist/src/util/index.d.ts +20 -96
- package/dist/src/util/index.d.ts.map +1 -1
- package/dist/src/util/index.js +15 -8
- package/dist/src/util/index.js.map +1 -1
- package/dist/src/util/templates.d.ts +1 -1
- package/dist/src/util/templates.d.ts.map +1 -1
- package/dist/src/util/transform.d.ts +1 -1
- package/dist/src/util/transform.d.ts.map +1 -1
- package/dist/src/validators/prompts.d.ts +60 -0
- package/dist/src/validators/prompts.d.ts.map +1 -0
- package/dist/src/validators/prompts.js +32 -0
- package/dist/src/validators/prompts.js.map +1 -0
- package/dist/src/validators/providers.d.ts +1145 -0
- package/dist/src/validators/providers.d.ts.map +1 -0
- package/dist/src/validators/providers.js +133 -0
- package/dist/src/validators/providers.js.map +1 -0
- package/dist/src/validators/redteam.d.ts +517 -0
- package/dist/src/validators/redteam.d.ts.map +1 -0
- package/dist/src/{redteam/types.js → validators/redteam.js} +31 -26
- package/dist/src/validators/redteam.js.map +1 -0
- package/dist/src/validators/shared.d.ts +19 -0
- package/dist/src/validators/shared.d.ts.map +1 -0
- package/dist/src/validators/shared.js +12 -0
- package/dist/src/validators/shared.js.map +1 -0
- package/dist/src/web/nextui/404/index.html +1 -1
- package/dist/src/web/nextui/404.html +1 -1
- package/dist/src/web/nextui/_next/static/chunks/949-e778f1d346946d00.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/app/eval/[id]/{page-3f5dd9507c5c905d.js → page-9029528e35960a91.js} +1 -1
- package/dist/src/web/nextui/_next/static/chunks/app/{layout-881a16d7fe67581c.js → layout-517c4420e852da35.js} +1 -1
- package/dist/src/web/nextui/_next/static/chunks/app/page-81e3b8fee37eaf67.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/app/report/{page-95d5e86c47bb3593.js → page-36e98231504ad757.js} +1 -1
- package/dist/src/web/nextui/_next/static/chunks/main-app-0dc90092cd7acaaf.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/{webpack-b0363d9598537efc.js → webpack-d3dba20c5c1ca02e.js} +1 -1
- package/dist/src/web/nextui/_next/static/css/32384cb640d2265e.css +1 -0
- package/dist/src/web/nextui/auth/login/index.html +1 -1
- package/dist/src/web/nextui/auth/login/index.txt +4 -4
- package/dist/src/web/nextui/auth/signup/index.html +1 -1
- package/dist/src/web/nextui/auth/signup/index.txt +4 -4
- package/dist/src/web/nextui/datasets/index.html +1 -1
- package/dist/src/web/nextui/datasets/index.txt +4 -4
- package/dist/src/web/nextui/eval/index.html +1 -1
- package/dist/src/web/nextui/eval/index.txt +5 -5
- package/dist/src/web/nextui/index.html +1 -1
- package/dist/src/web/nextui/index.txt +4 -4
- package/dist/src/web/nextui/progress/index.html +1 -1
- package/dist/src/web/nextui/progress/index.txt +4 -4
- package/dist/src/web/nextui/prompts/index.html +1 -1
- package/dist/src/web/nextui/prompts/index.txt +4 -4
- package/dist/src/web/nextui/report/index.html +1 -1
- package/dist/src/web/nextui/report/index.txt +7 -7
- package/dist/src/web/nextui/setup/index.html +1 -1
- package/dist/src/web/nextui/setup/index.txt +5 -5
- package/dist/src/web/server.d.ts.map +1 -1
- package/dist/src/web/server.js.map +1 -1
- package/dist/test/cache.test.js.map +1 -1
- package/dist/test/providers.bedrock.test.js.map +1 -1
- package/dist/test/providers.shared.test.d.ts +2 -0
- package/dist/test/providers.shared.test.d.ts.map +1 -0
- package/dist/test/providers.shared.test.js +101 -0
- package/dist/test/providers.shared.test.js.map +1 -0
- package/dist/test/redteam/plugins/base.test.js +2 -3
- package/dist/test/redteam/plugins/base.test.js.map +1 -1
- package/dist/test/redteam/validators.test.d.ts +2 -0
- package/dist/test/redteam/validators.test.d.ts.map +1 -0
- package/dist/test/redteam/{types.test.js → validators.test.js} +84 -29
- package/dist/test/redteam/validators.test.js.map +1 -0
- package/dist/test/utils.d.ts +1 -1
- package/dist/test/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/src/redteam/types.d.ts +0 -215
- package/dist/src/redteam/types.d.ts.map +0 -1
- package/dist/src/redteam/types.js.map +0 -1
- package/dist/src/types.js.map +0 -1
- package/dist/src/web/nextui/_next/static/chunks/347-49b79b8c81884e85.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/app/page-7e8faab5d212f727.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/main-app-4398f7af7ad8387f.js +0 -1
- package/dist/src/web/nextui/_next/static/css/e17fdafd8599f69b.css +0 -1
- package/dist/test/redteam/types.test.d.ts +0 -2
- package/dist/test/redteam/types.test.d.ts.map +0 -1
- package/dist/test/redteam/types.test.js.map +0 -1
- /package/dist/src/web/nextui/_next/static/{rXJSLz3x5ieAU1Syln-RX → 9g6bpuNNR0WtmBBAmnqTc}/_buildManifest.js +0 -0
- /package/dist/src/web/nextui/_next/static/{rXJSLz3x5ieAU1Syln-RX → 9g6bpuNNR0WtmBBAmnqTc}/_ssgManifest.js +0 -0
- /package/dist/src/web/nextui/_next/static/chunks/{258-f5d5d6dbebb8ae22.js → 258-280986e9c8fae219.js} +0 -0
|
@@ -3,11 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.RedteamConfigSchema = exports.RedteamGenerateOptionsSchema = exports.RedteamStrategySchema = exports.RedteamPluginSchema = void 0;
|
|
7
7
|
const dedent_1 = __importDefault(require("dedent"));
|
|
8
8
|
const zod_1 = require("zod");
|
|
9
|
-
const constants_1 = require("
|
|
10
|
-
const
|
|
9
|
+
const constants_1 = require("../redteam/constants");
|
|
10
|
+
const providers_1 = require("../validators/providers");
|
|
11
|
+
/**
|
|
12
|
+
* Schema for individual redteam plugins
|
|
13
|
+
*/
|
|
14
|
+
const RedteamPluginObjectSchema = zod_1.z.object({
|
|
11
15
|
id: zod_1.z.enum(constants_1.ALL_PLUGINS).describe('Name of the plugin'),
|
|
12
16
|
numTests: zod_1.z
|
|
13
17
|
.number()
|
|
@@ -17,20 +21,17 @@ const redteamPluginObjectSchema = zod_1.z.object({
|
|
|
17
21
|
.describe('Number of tests to generate for this plugin'),
|
|
18
22
|
});
|
|
19
23
|
/**
|
|
20
|
-
* Schema for individual redteam plugins
|
|
24
|
+
* Schema for individual redteam plugins or their shorthand.
|
|
21
25
|
*/
|
|
22
|
-
exports.
|
|
26
|
+
exports.RedteamPluginSchema = zod_1.z.union([
|
|
23
27
|
zod_1.z.enum(constants_1.ALL_PLUGINS).describe('Name of the plugin'),
|
|
24
|
-
|
|
28
|
+
RedteamPluginObjectSchema,
|
|
25
29
|
]);
|
|
26
30
|
/**
|
|
27
31
|
* Schema for individual redteam strategies
|
|
28
32
|
*/
|
|
29
|
-
exports.
|
|
30
|
-
zod_1.z
|
|
31
|
-
.enum(constants_1.ALL_STRATEGIES)
|
|
32
|
-
.describe('Name of the strategy')
|
|
33
|
-
.transform((s) => ({ id: s })),
|
|
33
|
+
exports.RedteamStrategySchema = zod_1.z.union([
|
|
34
|
+
zod_1.z.enum(constants_1.ALL_STRATEGIES).describe('Name of the strategy'),
|
|
34
35
|
zod_1.z.object({
|
|
35
36
|
id: zod_1.z.enum(constants_1.ALL_STRATEGIES).describe('Name of the strategy'),
|
|
36
37
|
}),
|
|
@@ -47,7 +48,7 @@ exports.RedteamGenerateOptionsSchema = zod_1.z.object({
|
|
|
47
48
|
injectVar: zod_1.z.string().optional().describe('Variable to inject'),
|
|
48
49
|
numTests: zod_1.z.number().int().positive().describe('Number of tests to generate'),
|
|
49
50
|
output: zod_1.z.string().optional().describe('Output file path'),
|
|
50
|
-
plugins: zod_1.z.array(
|
|
51
|
+
plugins: zod_1.z.array(RedteamPluginObjectSchema).optional().describe('Plugins to use'),
|
|
51
52
|
addPlugins: zod_1.z
|
|
52
53
|
.array(zod_1.z.enum(constants_1.ADDITIONAL_PLUGINS))
|
|
53
54
|
.optional()
|
|
@@ -58,13 +59,13 @@ exports.RedteamGenerateOptionsSchema = zod_1.z.object({
|
|
|
58
59
|
.describe('Additional strategies to include'),
|
|
59
60
|
provider: zod_1.z.string().optional().describe('Provider to use'),
|
|
60
61
|
purpose: zod_1.z.string().optional().describe('Purpose of the redteam generation'),
|
|
61
|
-
strategies: zod_1.z.array(exports.
|
|
62
|
+
strategies: zod_1.z.array(exports.RedteamStrategySchema).optional().describe('Strategies to use'),
|
|
62
63
|
write: zod_1.z.boolean().describe('Whether to write the output'),
|
|
63
64
|
});
|
|
64
65
|
/**
|
|
65
66
|
* Schema for `redteam` section of promptfooconfig.yaml
|
|
66
67
|
*/
|
|
67
|
-
exports.
|
|
68
|
+
exports.RedteamConfigSchema = zod_1.z
|
|
68
69
|
.object({
|
|
69
70
|
injectVar: zod_1.z
|
|
70
71
|
.string()
|
|
@@ -74,15 +75,17 @@ exports.redteamConfigSchema = zod_1.z
|
|
|
74
75
|
.string()
|
|
75
76
|
.optional()
|
|
76
77
|
.describe('Purpose override string - describes the prompt templates'),
|
|
77
|
-
provider: zod_1.z
|
|
78
|
+
provider: zod_1.z
|
|
79
|
+
.lazy(() => providers_1.ProviderSchema)
|
|
80
|
+
.optional()
|
|
81
|
+
.describe('Provider used for generating adversarial inputs'),
|
|
78
82
|
numTests: zod_1.z.number().int().positive().default(5).describe('Number of tests to generate'),
|
|
79
83
|
plugins: zod_1.z
|
|
80
|
-
.array(exports.
|
|
84
|
+
.array(exports.RedteamPluginSchema)
|
|
81
85
|
.describe('Plugins to use for redteam generation')
|
|
82
|
-
.
|
|
83
|
-
.default(() => []),
|
|
86
|
+
.default([]),
|
|
84
87
|
strategies: zod_1.z
|
|
85
|
-
.array(exports.
|
|
88
|
+
.array(exports.RedteamStrategySchema)
|
|
86
89
|
.describe((0, dedent_1.default) `Strategies to use for redteam generation.
|
|
87
90
|
|
|
88
91
|
Defaults to ${constants_1.DEFAULT_STRATEGIES.join(', ')}
|
|
@@ -116,17 +119,19 @@ exports.redteamConfigSchema = zod_1.z
|
|
|
116
119
|
return pluginObj;
|
|
117
120
|
})
|
|
118
121
|
.filter((plugin) => !constants_1.COLLECTIONS.includes(plugin.id)); // category plugins are handled above
|
|
119
|
-
const uniquePlugins = Array.from(plugins
|
|
122
|
+
const uniquePlugins = Array.from(plugins
|
|
123
|
+
.reduce((map, plugin) => map.set(plugin.id, plugin), new Map())
|
|
124
|
+
.values()).sort((a, b) => a.id.localeCompare(b.id));
|
|
120
125
|
return {
|
|
121
126
|
...(data.purpose ? { purpose: data.purpose } : {}),
|
|
122
127
|
...(data.injectVar ? { injectVar: data.injectVar } : {}),
|
|
123
128
|
...(data.provider ? { provider: data.provider } : {}),
|
|
124
129
|
plugins: uniquePlugins,
|
|
125
|
-
strategies: data.strategies,
|
|
130
|
+
strategies: data.strategies.map((strategy) => typeof strategy === 'string' ? { id: strategy } : strategy),
|
|
126
131
|
};
|
|
127
132
|
});
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
//# sourceMappingURL=
|
|
133
|
+
// Ensure that schemas match their corresponding types
|
|
134
|
+
function assert() { }
|
|
135
|
+
assert();
|
|
136
|
+
assert();
|
|
137
|
+
//# sourceMappingURL=redteam.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redteam.js","sourceRoot":"","sources":["../../../src/validators/redteam.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,6BAAwB;AAExB,oDAS8B;AAE9B,uDAAyD;AAEzD;;GAEG;AACH,MAAM,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,OAAC,CAAC,IAAI,CAAC,uBAA4C,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACvF,QAAQ,EAAE,OAAC;SACR,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,6CAA6C,CAAC;CAC3D,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,mBAAmB,GAAG,OAAC,CAAC,KAAK,CAAC;IACzC,OAAC,CAAC,IAAI,CAAC,uBAA4C,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACnF,yBAAyB;CAC1B,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,qBAAqB,GAAG,OAAC,CAAC,KAAK,CAAC;IAC3C,OAAC,CAAC,IAAI,CAAC,0BAAkD,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC3F,OAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,OAAC,CAAC,IAAI,CAAC,0BAAkD,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;KAChG,CAAC;CACH,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,4BAA4B,GAAG,OAAC,CAAC,MAAM,CAAC;IACnD,KAAK,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACrD,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACxE,aAAa,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IAC7E,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAC3F,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IACvE,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAC/D,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC7E,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC1D,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACjF,UAAU,EAAE,OAAC;SACV,KAAK,CAAC,OAAC,CAAC,IAAI,CAAC,8BAAwE,CAAC,CAAC;SACvF,QAAQ,EAAE;SACV,QAAQ,CAAC,+BAA+B,CAAC;IAC5C,aAAa,EAAE,OAAC;SACb,KAAK,CAAC,OAAC,CAAC,IAAI,CAAC,iCAA2E,CAAC,CAAC;SAC1F,QAAQ,EAAE;SACV,QAAQ,CAAC,kCAAkC,CAAC;IAC/C,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC3D,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC5E,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC,6BAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACnF,KAAK,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CAC3D,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,mBAAmB,GAAG,OAAC;KACjC,MAAM,CAAC;IACN,SAAS,EAAE,OAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,yIAAyI,CAC1I;IACH,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;IACvE,QAAQ,EAAE,OAAC;SACR,IAAI,CAAC,GAAG,EAAE,CAAC,0BAAc,CAAC;SAC1B,QAAQ,EAAE;SACV,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACxF,OAAO,EAAE,OAAC;SACP,KAAK,CAAC,2BAAmB,CAAC;SAC1B,QAAQ,CAAC,uCAAuC,CAAC;SACjD,OAAO,CAAC,EAAE,CAAC;IACd,UAAU,EAAE,OAAC;SACV,KAAK,CAAC,6BAAqB,CAAC;SAC5B,QAAQ,CACP,IAAA,gBAAM,EAAA;;sBAEQ,8BAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;mBAChC,0BAAc,CAAC,IAAI,CAAC,IAAI,CAAC;SACnC,CACF;SACA,QAAQ,EAAE;SACV,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,8BAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;CAC/E,CAAC;KACD,SAAS,CAAC,CAAC,IAAI,EAAiB,EAAE;IACjC,MAAM,UAAU,GAA0B,IAAI,CAAC,OAAO;SACnD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACd,OAAO,MAAM,KAAK,QAAQ;QACxB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;QACzC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAC9D;SACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,UAAU;SACvB,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACrB,IAAI,SAAS,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,wBAAY,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAClD,EAAE,EAAE,QAAQ;gBACZ,QAAQ,EACN,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,QAAQ;oBACnD,SAAS,CAAC,QAAQ;oBAClB,IAAI,CAAC,QAAQ;aAChB,CAAC,CAAC,CAAC;QACN,CAAC;QACD,IAAI,SAAS,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;YAC3B,OAAO,uBAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC9B,EAAE;gBACF,QAAQ,EACN,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;aACvF,CAAC,CAAC,CAAC;QACN,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,uBAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAgB,CAAC,CAAC,CAAC,CAAC,qCAAqC;IAE5G,MAAM,aAAa,GAA0B,KAAK,CAAC,IAAI,CACrD,OAAO;SACJ,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,EAA+B,CAAC;SAC3F,MAAM,EAAE,CACZ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE3C,OAAO;QACL,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC3C,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAC3D;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,sDAAsD;AACtD,SAAS,MAAM,KAAqB,CAAC;AAGrC,MAAM,EAAyE,CAAC;AAChF,MAAM,EAAqF,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const TokenUsageSchema: z.ZodObject<{
|
|
3
|
+
cached: z.ZodOptional<z.ZodNumber>;
|
|
4
|
+
completion: z.ZodOptional<z.ZodNumber>;
|
|
5
|
+
prompt: z.ZodOptional<z.ZodNumber>;
|
|
6
|
+
total: z.ZodOptional<z.ZodNumber>;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
cached?: number | undefined;
|
|
9
|
+
completion?: number | undefined;
|
|
10
|
+
prompt?: number | undefined;
|
|
11
|
+
total?: number | undefined;
|
|
12
|
+
}, {
|
|
13
|
+
cached?: number | undefined;
|
|
14
|
+
completion?: number | undefined;
|
|
15
|
+
prompt?: number | undefined;
|
|
16
|
+
total?: number | undefined;
|
|
17
|
+
}>;
|
|
18
|
+
export declare const NunjucksFilterMapSchema: z.ZodRecord<z.ZodString, z.ZodFunction<z.ZodTuple<[z.ZodAny], z.ZodAny>, z.ZodString>>;
|
|
19
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/validators/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;EAK3B,CAAC;AAEH,eAAO,MAAM,uBAAuB,wFAGnC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NunjucksFilterMapSchema = exports.TokenUsageSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.TokenUsageSchema = zod_1.z.object({
|
|
6
|
+
cached: zod_1.z.number().optional(),
|
|
7
|
+
completion: zod_1.z.number().optional(),
|
|
8
|
+
prompt: zod_1.z.number().optional(),
|
|
9
|
+
total: zod_1.z.number().optional(),
|
|
10
|
+
});
|
|
11
|
+
exports.NunjucksFilterMapSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.function(zod_1.z.tuple([zod_1.z.any()]).rest(zod_1.z.any()), zod_1.z.string()));
|
|
12
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/validators/shared.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAEU,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAC7C,OAAC,CAAC,MAAM,EAAE,EACV,OAAC,CAAC,QAAQ,CAAC,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,CACzD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-d3dba20c5c1ca02e.js" defer=""></script><script src="/_next/static/chunks/framework-c3d480eb9ad30ba5.js" defer=""></script><script src="/_next/static/chunks/main-853e5508e37bbe4c.js" defer=""></script><script src="/_next/static/chunks/pages/_app-998b254a061422d4.js" defer=""></script><script src="/_next/static/chunks/pages/_error-94f0db477e27e000.js" defer=""></script><script src="/_next/static/9g6bpuNNR0WtmBBAmnqTc/_buildManifest.js" defer=""></script><script src="/_next/static/9g6bpuNNR0WtmBBAmnqTc/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"9g6bpuNNR0WtmBBAmnqTc","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-d3dba20c5c1ca02e.js" defer=""></script><script src="/_next/static/chunks/framework-c3d480eb9ad30ba5.js" defer=""></script><script src="/_next/static/chunks/main-853e5508e37bbe4c.js" defer=""></script><script src="/_next/static/chunks/pages/_app-998b254a061422d4.js" defer=""></script><script src="/_next/static/chunks/pages/_error-94f0db477e27e000.js" defer=""></script><script src="/_next/static/9g6bpuNNR0WtmBBAmnqTc/_buildManifest.js" defer=""></script><script src="/_next/static/9g6bpuNNR0WtmBBAmnqTc/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"9g6bpuNNR0WtmBBAmnqTc","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[949],{63362:function(e,t,n){var r=n(71851);t.Z=void 0;var i=r(n(99570)),a=n(24004);t.Z=(0,i.default)((0,a.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12z"}),"Cancel")},18845:function(e,t,n){var r=n(71851);t.Z=void 0;var i=r(n(99570)),a=n(24004);t.Z=(0,i.default)((0,a.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z"}),"CheckCircle")},69555:function(e,t,n){var r=n(71851);t.Z=void 0;var i=r(n(99570)),a=n(24004);t.Z=(0,i.default)((0,a.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m5 11H7v-2h10z"}),"RemoveCircle")},80661:function(e,t,n){n.d(t,{Z:function(){return Z}});var r=n(79042),i=n(94312),a=n(14978),o=n(53468),s=n(84006),l=n(31608),u=n(87286),c=n(37803),d=n(60201),p=n(80683);function h(e){return(0,p.ZP)("MuiCard",e)}(0,d.Z)("MuiCard",["root"]);var f=n(24004);let m=["className","raised"],x=e=>{let{classes:t}=e;return(0,s.Z)({root:["root"]},h,t)},g=(0,l.ZP)(c.Z,{name:"MuiCard",slot:"Root",overridesResolver:(e,t)=>t.root})(()=>({overflow:"hidden"})),v=a.forwardRef(function(e,t){let n=(0,u.i)({props:e,name:"MuiCard"}),{className:a,raised:s=!1}=n,l=(0,i.Z)(n,m),c=(0,r.Z)({},n,{raised:s}),d=x(c);return(0,f.jsx)(g,(0,r.Z)({className:(0,o.Z)(d.root,a),elevation:s?8:void 0,ref:t,ownerState:c},l))});var Z=v},49578:function(e,t,n){n.d(t,{Z:function(){return v}});var r=n(79042),i=n(94312),a=n(14978),o=n(53468),s=n(84006),l=n(31608),u=n(87286),c=n(60201),d=n(80683);function p(e){return(0,d.ZP)("MuiCardContent",e)}(0,c.Z)("MuiCardContent",["root"]);var h=n(24004);let f=["className","component"],m=e=>{let{classes:t}=e;return(0,s.Z)({root:["root"]},p,t)},x=(0,l.ZP)("div",{name:"MuiCardContent",slot:"Root",overridesResolver:(e,t)=>t.root})(()=>({padding:16,"&:last-child":{paddingBottom:24}})),g=a.forwardRef(function(e,t){let n=(0,u.i)({props:e,name:"MuiCardContent"}),{className:a,component:s="div"}=n,l=(0,i.Z)(n,f),c=(0,r.Z)({},n,{component:s}),d=m(c);return(0,h.jsx)(x,(0,r.Z)({as:s,className:(0,o.Z)(d.root,a),ownerState:c,ref:t},l))});var v=g},11520:function(e,t,n){n.d(t,{Z:function(){return M}});var r=n(94312),i=n(79042),a=n(14978),o=n(53468),s=n(80683),l=n(84006),u=n(78673),c=n(48976),d=n(14059),p=n(23437),h=n(24004);let f=["className","component","disableGutters","fixed","maxWidth","classes"],m=(0,p.Z)(),x=(0,d.Z)("div",{name:"MuiContainer",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`maxWidth${(0,u.Z)(String(n.maxWidth))}`],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),g=e=>(0,c.Z)({props:e,name:"MuiContainer",defaultTheme:m}),v=(e,t)=>{let{classes:n,fixed:r,disableGutters:i,maxWidth:a}=e,o={root:["root",a&&`maxWidth${(0,u.Z)(String(a))}`,r&&"fixed",i&&"disableGutters"]};return(0,l.Z)(o,e=>(0,s.ZP)(t,e),n)};var Z=n(81427),b=n(31608),y=n(87286);let $=function(e={}){let{createStyledComponent:t=x,useThemeProps:n=g,componentName:s="MuiContainer"}=e,l=t(({theme:e,ownerState:t})=>(0,i.Z)({width:"100%",marginLeft:"auto",boxSizing:"border-box",marginRight:"auto",display:"block"},!t.disableGutters&&{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}),({theme:e,ownerState:t})=>t.fixed&&Object.keys(e.breakpoints.values).reduce((t,n)=>{let r=e.breakpoints.values[n];return 0!==r&&(t[e.breakpoints.up(n)]={maxWidth:`${r}${e.breakpoints.unit}`}),t},{}),({theme:e,ownerState:t})=>(0,i.Z)({},"xs"===t.maxWidth&&{[e.breakpoints.up("xs")]:{maxWidth:Math.max(e.breakpoints.values.xs,444)}},t.maxWidth&&"xs"!==t.maxWidth&&{[e.breakpoints.up(t.maxWidth)]:{maxWidth:`${e.breakpoints.values[t.maxWidth]}${e.breakpoints.unit}`}})),u=a.forwardRef(function(e,t){let a=n(e),{className:u,component:c="div",disableGutters:d=!1,fixed:p=!1,maxWidth:m="lg"}=a,x=(0,r.Z)(a,f),g=(0,i.Z)({},a,{component:c,disableGutters:d,fixed:p,maxWidth:m}),Z=v(g,s);return(0,h.jsx)(l,(0,i.Z)({as:c,ownerState:g,className:(0,o.Z)(Z.root,u),ref:t},x))});return u}({createStyledComponent:(0,b.ZP)("div",{name:"MuiContainer",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`maxWidth${(0,Z.Z)(String(n.maxWidth))}`],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),useThemeProps:e=>(0,y.i)({props:e,name:"MuiContainer"})});var M=$},93650:function(e,t,n){n.d(t,{ZP:function(){return C}});var r=n(94312),i=n(79042),a=n(14978),o=n(53468),s=n(5044),l=n(86251),u=n(84006),c=n(31608),d=n(87286),p=n(92863);let h=a.createContext();var f=n(60201),m=n(80683);function x(e){return(0,m.ZP)("MuiGrid",e)}let g=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12],v=(0,f.Z)("MuiGrid",["root","container","item","zeroMinWidth",...[0,1,2,3,4,5,6,7,8,9,10].map(e=>`spacing-xs-${e}`),...["column-reverse","column","row-reverse","row"].map(e=>`direction-xs-${e}`),...["nowrap","wrap-reverse","wrap"].map(e=>`wrap-xs-${e}`),...g.map(e=>`grid-xs-${e}`),...g.map(e=>`grid-sm-${e}`),...g.map(e=>`grid-md-${e}`),...g.map(e=>`grid-lg-${e}`),...g.map(e=>`grid-xl-${e}`)]);var Z=n(24004);let b=["className","columns","columnSpacing","component","container","direction","item","rowSpacing","spacing","wrap","zeroMinWidth"];function y(e){let t=parseFloat(e);return`${t}${String(e).replace(String(t),"")||"px"}`}function $({breakpoints:e,values:t}){let n="";Object.keys(t).forEach(e=>{""===n&&0!==t[e]&&(n=e)});let r=Object.keys(e).sort((t,n)=>e[t]-e[n]);return r.slice(0,r.indexOf(n))}let M=(0,c.ZP)("div",{name:"MuiGrid",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e,{container:r,direction:i,item:a,spacing:o,wrap:s,zeroMinWidth:l,breakpoints:u}=n,c=[];r&&(c=function(e,t,n={}){if(!e||e<=0)return[];if("string"==typeof e&&!Number.isNaN(Number(e))||"number"==typeof e)return[n[`spacing-xs-${String(e)}`]];let r=[];return t.forEach(t=>{let i=e[t];Number(i)>0&&r.push(n[`spacing-${t}-${String(i)}`])}),r}(o,u,t));let d=[];return u.forEach(e=>{let r=n[e];r&&d.push(t[`grid-${e}-${String(r)}`])}),[t.root,r&&t.container,a&&t.item,l&&t.zeroMinWidth,...c,"row"!==i&&t[`direction-xs-${String(i)}`],"wrap"!==s&&t[`wrap-xs-${String(s)}`],...d]}})(({ownerState:e})=>(0,i.Z)({boxSizing:"border-box"},e.container&&{display:"flex",flexWrap:"wrap",width:"100%"},e.item&&{margin:0},e.zeroMinWidth&&{minWidth:0},"wrap"!==e.wrap&&{flexWrap:e.wrap}),function({theme:e,ownerState:t}){let n=(0,s.P$)({values:t.direction,breakpoints:e.breakpoints.values});return(0,s.k9)({theme:e},n,e=>{let t={flexDirection:e};return 0===e.indexOf("column")&&(t[`& > .${v.item}`]={maxWidth:"none"}),t})},function({theme:e,ownerState:t}){let{container:n,rowSpacing:r}=t,i={};if(n&&0!==r){let t;let n=(0,s.P$)({values:r,breakpoints:e.breakpoints.values});"object"==typeof n&&(t=$({breakpoints:e.breakpoints.values,values:n})),i=(0,s.k9)({theme:e},n,(n,r)=>{var i;let a=e.spacing(n);return"0px"!==a?{marginTop:`-${y(a)}`,[`& > .${v.item}`]:{paddingTop:y(a)}}:null!=(i=t)&&i.includes(r)?{}:{marginTop:0,[`& > .${v.item}`]:{paddingTop:0}}})}return i},function({theme:e,ownerState:t}){let{container:n,columnSpacing:r}=t,i={};if(n&&0!==r){let t;let n=(0,s.P$)({values:r,breakpoints:e.breakpoints.values});"object"==typeof n&&(t=$({breakpoints:e.breakpoints.values,values:n})),i=(0,s.k9)({theme:e},n,(n,r)=>{var i;let a=e.spacing(n);return"0px"!==a?{width:`calc(100% + ${y(a)})`,marginLeft:`-${y(a)}`,[`& > .${v.item}`]:{paddingLeft:y(a)}}:null!=(i=t)&&i.includes(r)?{}:{width:"100%",marginLeft:0,[`& > .${v.item}`]:{paddingLeft:0}}})}return i},function({theme:e,ownerState:t}){let n;return e.breakpoints.keys.reduce((r,a)=>{let o={};if(t[a]&&(n=t[a]),!n)return r;if(!0===n)o={flexBasis:0,flexGrow:1,maxWidth:"100%"};else if("auto"===n)o={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"};else{let l=(0,s.P$)({values:t.columns,breakpoints:e.breakpoints.values}),u="object"==typeof l?l[a]:l;if(null==u)return r;let c=`${Math.round(n/u*1e8)/1e6}%`,d={};if(t.container&&t.item&&0!==t.columnSpacing){let n=e.spacing(t.columnSpacing);if("0px"!==n){let e=`calc(${c} + ${y(n)})`;d={flexBasis:e,maxWidth:e}}}o=(0,i.Z)({flexBasis:c,flexGrow:0,maxWidth:c},d)}return 0===e.breakpoints.values[a]?Object.assign(r,o):r[e.breakpoints.up(a)]=o,r},{})}),w=e=>{let{classes:t,container:n,direction:r,item:i,spacing:a,wrap:o,zeroMinWidth:s,breakpoints:l}=e,c=[];n&&(c=function(e,t){if(!e||e<=0)return[];if("string"==typeof e&&!Number.isNaN(Number(e))||"number"==typeof e)return[`spacing-xs-${String(e)}`];let n=[];return t.forEach(t=>{let r=e[t];if(Number(r)>0){let e=`spacing-${t}-${String(r)}`;n.push(e)}}),n}(a,l));let d=[];l.forEach(t=>{let n=e[t];n&&d.push(`grid-${t}-${String(n)}`)});let p={root:["root",n&&"container",i&&"item",s&&"zeroMinWidth",...c,"row"!==r&&`direction-xs-${String(r)}`,"wrap"!==o&&`wrap-xs-${String(o)}`,...d]};return(0,u.Z)(p,x,t)},R=a.forwardRef(function(e,t){let n=(0,d.i)({props:e,name:"MuiGrid"}),{breakpoints:s}=(0,p.Z)(),u=(0,l.Z)(n),{className:c,columns:f,columnSpacing:m,component:x="div",container:g=!1,direction:v="row",item:y=!1,rowSpacing:$,spacing:R=0,wrap:C="wrap",zeroMinWidth:P=!1}=u,S=(0,r.Z)(u,b),A=$||R,I=m||R,j=a.useContext(h),k=g?f||12:j,L={},_=(0,i.Z)({},S);s.keys.forEach(e=>{null!=S[e]&&(L[e]=S[e],delete _[e])});let N=(0,i.Z)({},u,{columns:k,container:g,direction:v,item:y,rowSpacing:A,columnSpacing:I,wrap:C,zeroMinWidth:P,spacing:R},L,{breakpoints:s.keys}),B=w(N);return(0,Z.jsx)(h.Provider,{value:k,children:(0,Z.jsx)(M,(0,i.Z)({ownerState:N,className:(0,o.Z)(B.root,c),as:x,ref:t},_))})});var C=R},85912:function(e,t,n){n.d(t,{ZP:function(){return _}});var r=n(94312),i=n(79042),a=n(14978),o=n(53468),s=n(84006),l=n(13477),u=n(98479),c=n(31608),d=n(87286),p=n(30151),h=n(32393),f=n(16656),m=n(41776),x=n(11112),g=n(60201),v=n(80683);function Z(e){return(0,v.ZP)("MuiListItem",e)}let b=(0,g.Z)("MuiListItem",["root","container","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","padding","button","secondaryAction","selected"]),y=(0,g.Z)("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"]);function $(e){return(0,v.ZP)("MuiListItemSecondaryAction",e)}(0,g.Z)("MuiListItemSecondaryAction",["root","disableGutters"]);var M=n(24004);let w=["className"],R=e=>{let{disableGutters:t,classes:n}=e;return(0,s.Z)({root:["root",t&&"disableGutters"]},$,n)},C=(0,c.ZP)("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.disableGutters&&t.disableGutters]}})(({ownerState:e})=>(0,i.Z)({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)"},e.disableGutters&&{right:0})),P=a.forwardRef(function(e,t){let n=(0,d.i)({props:e,name:"MuiListItemSecondaryAction"}),{className:s}=n,l=(0,r.Z)(n,w),u=a.useContext(x.Z),c=(0,i.Z)({},n,{disableGutters:u.disableGutters}),p=R(c);return(0,M.jsx)(C,(0,i.Z)({className:(0,o.Z)(p.root,s),ownerState:c,ref:t},l))});P.muiName="ListItemSecondaryAction";let S=["className"],A=["alignItems","autoFocus","button","children","className","component","components","componentsProps","ContainerComponent","ContainerProps","dense","disabled","disableGutters","disablePadding","divider","focusVisibleClassName","secondaryAction","selected","slotProps","slots"],I=e=>{let{alignItems:t,button:n,classes:r,dense:i,disabled:a,disableGutters:o,disablePadding:l,divider:u,hasSecondaryAction:c,selected:d}=e;return(0,s.Z)({root:["root",i&&"dense",!o&&"gutters",!l&&"padding",u&&"divider",a&&"disabled",n&&"button","flex-start"===t&&"alignItemsFlexStart",c&&"secondaryAction",d&&"selected"],container:["container"]},Z,r)},j=(0,c.ZP)("div",{name:"MuiListItem",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.dense&&t.dense,"flex-start"===n.alignItems&&t.alignItemsFlexStart,n.divider&&t.divider,!n.disableGutters&&t.gutters,!n.disablePadding&&t.padding,n.button&&t.button,n.hasSecondaryAction&&t.secondaryAction]}})(({theme:e,ownerState:t})=>(0,i.Z)({display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left"},!t.disablePadding&&(0,i.Z)({paddingTop:8,paddingBottom:8},t.dense&&{paddingTop:4,paddingBottom:4},!t.disableGutters&&{paddingLeft:16,paddingRight:16},!!t.secondaryAction&&{paddingRight:48}),!!t.secondaryAction&&{[`& > .${y.root}`]:{paddingRight:48}},{[`&.${b.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${b.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,l.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${b.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,l.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`&.${b.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity}},"flex-start"===t.alignItems&&{alignItems:"flex-start"},t.divider&&{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"},t.button&&{transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${b.selected}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,l.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,l.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity)}}},t.hasSecondaryAction&&{paddingRight:48})),k=(0,c.ZP)("li",{name:"MuiListItem",slot:"Container",overridesResolver:(e,t)=>t.container})({position:"relative"}),L=a.forwardRef(function(e,t){let n=(0,d.i)({props:e,name:"MuiListItem"}),{alignItems:s="center",autoFocus:l=!1,button:c=!1,children:g,className:v,component:Z,components:y={},componentsProps:$={},ContainerComponent:w="li",ContainerProps:{className:R}={},dense:C=!1,disabled:L=!1,disableGutters:_=!1,disablePadding:N=!1,divider:B=!1,focusVisibleClassName:T,secondaryAction:G,selected:E=!1,slotProps:W={},slots:O={}}=n,z=(0,r.Z)(n.ContainerProps,S),F=(0,r.Z)(n,A),D=a.useContext(x.Z),V=a.useMemo(()=>({dense:C||D.dense||!1,alignItems:s,disableGutters:_}),[s,D.dense,C,_]),q=a.useRef(null);(0,f.Z)(()=>{l&&q.current&&q.current.focus()},[l]);let H=a.Children.toArray(g),X=H.length&&(0,h.Z)(H[H.length-1],["ListItemSecondaryAction"]),Y=(0,i.Z)({},n,{alignItems:s,autoFocus:l,button:c,dense:V.dense,disabled:L,disableGutters:_,disablePadding:N,divider:B,hasSecondaryAction:X,selected:E}),U=I(Y),K=(0,m.Z)(q,t),Q=O.root||y.Root||j,J=W.root||$.root||{},ee=(0,i.Z)({className:(0,o.Z)(U.root,J.className,v),disabled:L},F),et=Z||"li";return(c&&(ee.component=Z||"div",ee.focusVisibleClassName=(0,o.Z)(b.focusVisible,T),et=p.Z),X)?(et=ee.component||Z?et:"div","li"===w&&("li"===et?et="div":"li"===ee.component&&(ee.component="div")),(0,M.jsx)(x.Z.Provider,{value:V,children:(0,M.jsxs)(k,(0,i.Z)({as:w,className:(0,o.Z)(U.container,R),ref:K,ownerState:Y},z,{children:[(0,M.jsx)(Q,(0,i.Z)({},J,!(0,u.Z)(Q)&&{as:et,ownerState:(0,i.Z)({},Y,J.ownerState)},ee,{children:H})),H.pop()]}))})):(0,M.jsx)(x.Z.Provider,{value:V,children:(0,M.jsxs)(Q,(0,i.Z)({},J,{as:et,ref:K},!(0,u.Z)(Q)&&{ownerState:(0,i.Z)({},Y,J.ownerState)},ee,{children:[H,G&&(0,M.jsx)(P,{children:G})]}))})});var _=L},38592:function(e,t,n){n.d(t,{Z:function(){return X}});var r,i=n(94312),a=n(79042),o=n(14978),s=n(53468),l=n(84006),u=n(98479),c=n(31608),d=n(87286),p=n(77878),h=n(96976),f=n(34304),m=n(21303),x=n(60201),g=n(80683);function v(e){return(0,g.ZP)("MuiToolbar",e)}(0,x.Z)("MuiToolbar",["root","gutters","regular","dense"]);var Z=n(24004);let b=["className","component","disableGutters","variant"],y=e=>{let{classes:t,disableGutters:n,variant:r}=e;return(0,l.Z)({root:["root",!n&&"gutters",r]},v,t)},$=(0,c.ZP)("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disableGutters&&t.gutters,t[n.variant]]}})(({theme:e,ownerState:t})=>(0,a.Z)({position:"relative",display:"flex",alignItems:"center"},!t.disableGutters&&{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}},"dense"===t.variant&&{minHeight:48}),({theme:e,ownerState:t})=>"regular"===t.variant&&e.mixins.toolbar),M=o.forwardRef(function(e,t){let n=(0,d.i)({props:e,name:"MuiToolbar"}),{className:r,component:o="div",disableGutters:l=!1,variant:u="regular"}=n,c=(0,i.Z)(n,b),p=(0,a.Z)({},n,{component:o,disableGutters:l,variant:u}),h=y(p);return(0,Z.jsx)($,(0,a.Z)({as:o,className:(0,s.Z)(h.root,r),ref:t,ownerState:p},c))});var w=n(19617),R=n(97491),C=(0,R.Z)((0,Z.jsx)("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),P=(0,R.Z)((0,Z.jsx)("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight"),S=n(77656),A=n(72944),I=n(67644);let j=["backIconButtonProps","count","disabled","getItemAriaLabel","nextIconButtonProps","onPageChange","page","rowsPerPage","showFirstButton","showLastButton","slots","slotProps"],k=o.forwardRef(function(e,t){var n,r,o,s,l,u,c,d;let{backIconButtonProps:p,count:h,disabled:f=!1,getItemAriaLabel:m,nextIconButtonProps:x,onPageChange:g,page:v,rowsPerPage:b,showFirstButton:y,showLastButton:$,slots:M={},slotProps:R={}}=e,k=(0,i.Z)(e,j),L=(0,w.V)(),_=null!=(n=M.firstButton)?n:S.Z,N=null!=(r=M.lastButton)?r:S.Z,B=null!=(o=M.nextButton)?o:S.Z,T=null!=(s=M.previousButton)?s:S.Z,G=null!=(l=M.firstButtonIcon)?l:I.Z,E=null!=(u=M.lastButtonIcon)?u:A.Z,W=null!=(c=M.nextButtonIcon)?c:P,O=null!=(d=M.previousButtonIcon)?d:C,z=L?N:_,F=L?B:T,D=L?T:B,V=L?_:N,q=L?R.lastButton:R.firstButton,H=L?R.nextButton:R.previousButton,X=L?R.previousButton:R.nextButton,Y=L?R.firstButton:R.lastButton;return(0,Z.jsxs)("div",(0,a.Z)({ref:t},k,{children:[y&&(0,Z.jsx)(z,(0,a.Z)({onClick:e=>{g(e,0)},disabled:f||0===v,"aria-label":m("first",v),title:m("first",v)},q,{children:L?(0,Z.jsx)(E,(0,a.Z)({},R.lastButtonIcon)):(0,Z.jsx)(G,(0,a.Z)({},R.firstButtonIcon))})),(0,Z.jsx)(F,(0,a.Z)({onClick:e=>{g(e,v-1)},disabled:f||0===v,color:"inherit","aria-label":m("previous",v),title:m("previous",v)},null!=H?H:p,{children:L?(0,Z.jsx)(W,(0,a.Z)({},R.nextButtonIcon)):(0,Z.jsx)(O,(0,a.Z)({},R.previousButtonIcon))})),(0,Z.jsx)(D,(0,a.Z)({onClick:e=>{g(e,v+1)},disabled:f||-1!==h&&v>=Math.ceil(h/b)-1,color:"inherit","aria-label":m("next",v),title:m("next",v)},null!=X?X:x,{children:L?(0,Z.jsx)(O,(0,a.Z)({},R.previousButtonIcon)):(0,Z.jsx)(W,(0,a.Z)({},R.nextButtonIcon))})),$&&(0,Z.jsx)(V,(0,a.Z)({onClick:e=>{g(e,Math.max(0,Math.ceil(h/b)-1))},disabled:f||v>=Math.ceil(h/b)-1,"aria-label":m("last",v),title:m("last",v)},Y,{children:L?(0,Z.jsx)(G,(0,a.Z)({},R.firstButtonIcon)):(0,Z.jsx)(E,(0,a.Z)({},R.lastButtonIcon))}))]}))});var L=n(78404);function _(e){return(0,g.ZP)("MuiTablePagination",e)}let N=(0,x.Z)("MuiTablePagination",["root","toolbar","spacer","selectLabel","selectRoot","select","selectIcon","input","menuItem","displayedRows","actions"]),B=["ActionsComponent","backIconButtonProps","className","colSpan","component","count","disabled","getItemAriaLabel","labelDisplayedRows","labelRowsPerPage","nextIconButtonProps","onPageChange","onRowsPerPageChange","page","rowsPerPage","rowsPerPageOptions","SelectProps","showFirstButton","showLastButton","slotProps","slots"],T=(0,c.ZP)(m.Z,{name:"MuiTablePagination",slot:"Root",overridesResolver:(e,t)=>t.root})(({theme:e})=>({overflow:"auto",color:(e.vars||e).palette.text.primary,fontSize:e.typography.pxToRem(14),"&:last-child":{padding:0}})),G=(0,c.ZP)(M,{name:"MuiTablePagination",slot:"Toolbar",overridesResolver:(e,t)=>(0,a.Z)({[`& .${N.actions}`]:t.actions},t.toolbar)})(({theme:e})=>({minHeight:52,paddingRight:2,[`${e.breakpoints.up("xs")} and (orientation: landscape)`]:{minHeight:52},[e.breakpoints.up("sm")]:{minHeight:52,paddingRight:2},[`& .${N.actions}`]:{flexShrink:0,marginLeft:20}})),E=(0,c.ZP)("div",{name:"MuiTablePagination",slot:"Spacer",overridesResolver:(e,t)=>t.spacer})({flex:"1 1 100%"}),W=(0,c.ZP)("p",{name:"MuiTablePagination",slot:"SelectLabel",overridesResolver:(e,t)=>t.selectLabel})(({theme:e})=>(0,a.Z)({},e.typography.body2,{flexShrink:0})),O=(0,c.ZP)(f.Z,{name:"MuiTablePagination",slot:"Select",overridesResolver:(e,t)=>(0,a.Z)({[`& .${N.selectIcon}`]:t.selectIcon,[`& .${N.select}`]:t.select},t.input,t.selectRoot)})({color:"inherit",fontSize:"inherit",flexShrink:0,marginRight:32,marginLeft:8,[`& .${N.select}`]:{paddingLeft:8,paddingRight:24,textAlign:"right",textAlignLast:"right"}}),z=(0,c.ZP)(h.Z,{name:"MuiTablePagination",slot:"MenuItem",overridesResolver:(e,t)=>t.menuItem})({}),F=(0,c.ZP)("p",{name:"MuiTablePagination",slot:"DisplayedRows",overridesResolver:(e,t)=>t.displayedRows})(({theme:e})=>(0,a.Z)({},e.typography.body2,{flexShrink:0}));function D({from:e,to:t,count:n}){return`${e}–${t} of ${-1!==n?n:`more than ${t}`}`}function V(e){return`Go to ${e} page`}let q=e=>{let{classes:t}=e;return(0,l.Z)({root:["root"],toolbar:["toolbar"],spacer:["spacer"],selectLabel:["selectLabel"],select:["select"],input:["input"],selectIcon:["selectIcon"],menuItem:["menuItem"],displayedRows:["displayedRows"],actions:["actions"]},_,t)},H=o.forwardRef(function(e,t){var n;let l;let c=(0,d.i)({props:e,name:"MuiTablePagination"}),{ActionsComponent:h=k,backIconButtonProps:f,className:x,colSpan:g,component:v=m.Z,count:b,disabled:y=!1,getItemAriaLabel:$=V,labelDisplayedRows:M=D,labelRowsPerPage:w="Rows per page:",nextIconButtonProps:R,onPageChange:C,onRowsPerPageChange:P,page:S,rowsPerPage:A,rowsPerPageOptions:I=[10,25,50,100],SelectProps:j={},showFirstButton:_=!1,showLastButton:N=!1,slotProps:H={},slots:X={}}=c,Y=(0,i.Z)(c,B),U=q(c),K=null!=(n=null==H?void 0:H.select)?n:j,Q=K.native?"option":z;(v===m.Z||"td"===v)&&(l=g||1e3);let J=(0,L.Z)(K.id),ee=(0,L.Z)(K.labelId);return(0,Z.jsx)(T,(0,a.Z)({colSpan:l,ref:t,as:v,ownerState:c,className:(0,s.Z)(U.root,x)},Y,{children:(0,Z.jsxs)(G,{className:U.toolbar,children:[(0,Z.jsx)(E,{className:U.spacer}),I.length>1&&(0,Z.jsx)(W,{className:U.selectLabel,id:ee,children:w}),I.length>1&&(0,Z.jsx)(O,(0,a.Z)({variant:"standard"},!K.variant&&{input:r||(r=(0,Z.jsx)(p.ZP,{}))},{value:A,onChange:P,id:J,labelId:ee},K,{classes:(0,a.Z)({},K.classes,{root:(0,s.Z)(U.input,U.selectRoot,(K.classes||{}).root),select:(0,s.Z)(U.select,(K.classes||{}).select),icon:(0,s.Z)(U.selectIcon,(K.classes||{}).icon)}),disabled:y,children:I.map(e=>(0,o.createElement)(Q,(0,a.Z)({},!(0,u.Z)(Q)&&{ownerState:c},{className:U.menuItem,key:e.label?e.label:e,value:e.value?e.value:e}),e.label?e.label:e))})),(0,Z.jsx)(F,{className:U.displayedRows,children:M({from:0===b?0:S*A+1,to:-1===b?(S+1)*A:-1===A?b:Math.min(b,(S+1)*A),count:-1===b?-1:b,page:S})}),(0,Z.jsx)(h,{className:U.actions,backIconButtonProps:f,count:b,nextIconButtonProps:R,onPageChange:C,page:S,rowsPerPage:A,showFirstButton:_,showLastButton:N,slotProps:H.actions,slots:X.actions,getItemAriaLabel:$,disabled:y})]})}))});var X=H},19708:function(e,t,n){n.d(t,{Z:function(){return w}});var r=n(94312),i=n(79042),a=n(84006),o=n(53468),s=n(14978),l=n(30151),u=n(97491),c=n(24004),d=(0,u.Z)((0,c.jsx)("path",{d:"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"}),"ArrowDownward"),p=n(31608),h=n(87286),f=n(81427),m=n(60201),x=n(80683);function g(e){return(0,x.ZP)("MuiTableSortLabel",e)}let v=(0,m.Z)("MuiTableSortLabel",["root","active","icon","iconDirectionDesc","iconDirectionAsc"]),Z=["active","children","className","direction","hideSortIcon","IconComponent"],b=e=>{let{classes:t,direction:n,active:r}=e,i={root:["root",r&&"active"],icon:["icon",`iconDirection${(0,f.Z)(n)}`]};return(0,a.Z)(i,g,t)},y=(0,p.ZP)(l.Z,{name:"MuiTableSortLabel",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.active&&t.active]}})(({theme:e})=>({cursor:"pointer",display:"inline-flex",justifyContent:"flex-start",flexDirection:"inherit",alignItems:"center","&:focus":{color:(e.vars||e).palette.text.secondary},"&:hover":{color:(e.vars||e).palette.text.secondary,[`& .${v.icon}`]:{opacity:.5}},[`&.${v.active}`]:{color:(e.vars||e).palette.text.primary,[`& .${v.icon}`]:{opacity:1,color:(e.vars||e).palette.text.secondary}}})),$=(0,p.ZP)("span",{name:"MuiTableSortLabel",slot:"Icon",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.icon,t[`iconDirection${(0,f.Z)(n.direction)}`]]}})(({theme:e,ownerState:t})=>(0,i.Z)({fontSize:18,marginRight:4,marginLeft:4,opacity:0,transition:e.transitions.create(["opacity","transform"],{duration:e.transitions.duration.shorter}),userSelect:"none"},"desc"===t.direction&&{transform:"rotate(0deg)"},"asc"===t.direction&&{transform:"rotate(180deg)"})),M=s.forwardRef(function(e,t){let n=(0,h.i)({props:e,name:"MuiTableSortLabel"}),{active:a=!1,children:s,className:l,direction:u="asc",hideSortIcon:p=!1,IconComponent:f=d}=n,m=(0,r.Z)(n,Z),x=(0,i.Z)({},n,{active:a,direction:u,hideSortIcon:p,IconComponent:f}),g=b(x);return(0,c.jsxs)(y,(0,i.Z)({className:(0,o.Z)(g.root,l),component:"span",disableRipple:!0,ownerState:x,ref:t},m,{children:[s,p&&!a?null:(0,c.jsx)($,{as:f,className:(0,o.Z)(g.icon),ownerState:x})]}))});var w=M},67644:function(e,t,n){n(14978);var r=n(97491),i=n(24004);t.Z=(0,r.Z)((0,i.jsx)("path",{d:"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"}),"FirstPage")},72944:function(e,t,n){n(14978);var r=n(97491),i=n(24004);t.Z=(0,r.Z)((0,i.jsx)("path",{d:"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"}),"LastPage")},14059:function(e,t,n){n.d(t,{Z:function(){return v}});var r=n(79042),i=n(94312),a=n(36975),o=n(70098),s=n(23437),l=n(60805);let u=["ownerState"],c=["variants"],d=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function p(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}let h=(0,s.Z)(),f=e=>e?e.charAt(0).toLowerCase()+e.slice(1):e;function m({defaultTheme:e,theme:t,themeId:n}){return 0===Object.keys(t).length?e:t[n]||t}function x(e,t){let{ownerState:n}=t,a=(0,i.Z)(t,u),o="function"==typeof e?e((0,r.Z)({ownerState:n},a)):e;if(Array.isArray(o))return o.flatMap(e=>x(e,(0,r.Z)({ownerState:n},a)));if(o&&"object"==typeof o&&Array.isArray(o.variants)){let{variants:e=[]}=o,t=(0,i.Z)(o,c),s=t;return e.forEach(e=>{let t=!0;"function"==typeof e.props?t=e.props((0,r.Z)({ownerState:n},a,n)):Object.keys(e.props).forEach(r=>{(null==n?void 0:n[r])!==e.props[r]&&a[r]!==e.props[r]&&(t=!1)}),t&&(Array.isArray(s)||(s=[s]),s.push("function"==typeof e.style?e.style((0,r.Z)({ownerState:n},a,n)):e.style))}),s}return o}let g=function(e={}){let{themeId:t,defaultTheme:n=h,rootShouldForwardProp:s=p,slotShouldForwardProp:u=p}=e,c=e=>(0,l.Z)((0,r.Z)({},e,{theme:m((0,r.Z)({},e,{defaultTheme:n,themeId:t}))}));return c.__mui_systemSx=!0,(e,l={})=>{var h;let g;(0,a.internal_processStyles)(e,e=>e.filter(e=>!(null!=e&&e.__mui_systemSx)));let{name:v,slot:Z,skipVariantsResolver:b,skipSx:y,overridesResolver:$=(h=f(Z))?(e,t)=>t[h]:null}=l,M=(0,i.Z)(l,d),w=void 0!==b?b:Z&&"Root"!==Z&&"root"!==Z||!1,R=y||!1,C=p;"Root"===Z||"root"===Z?C=s:Z?C=u:"string"==typeof e&&e.charCodeAt(0)>96&&(C=void 0);let P=(0,a.default)(e,(0,r.Z)({shouldForwardProp:C,label:g},M)),S=e=>"function"==typeof e&&e.__emotion_real!==e||(0,o.P)(e)?i=>x(e,(0,r.Z)({},i,{theme:m({theme:i.theme,defaultTheme:n,themeId:t})})):e,A=(i,...a)=>{let o=S(i),s=a?a.map(S):[];v&&$&&s.push(e=>{let i=m((0,r.Z)({},e,{defaultTheme:n,themeId:t}));if(!i.components||!i.components[v]||!i.components[v].styleOverrides)return null;let a=i.components[v].styleOverrides,o={};return Object.entries(a).forEach(([t,n])=>{o[t]=x(n,(0,r.Z)({},e,{theme:i}))}),$(e,o)}),v&&!w&&s.push(e=>{var i;let a=m((0,r.Z)({},e,{defaultTheme:n,themeId:t})),o=null==a||null==(i=a.components)||null==(i=i[v])?void 0:i.variants;return x({variants:o},(0,r.Z)({},e,{theme:a}))}),R||s.push(c);let l=s.length-a.length;if(Array.isArray(i)&&l>0){let e=Array(l).fill("");(o=[...i,...e]).raw=[...i.raw,...e]}let u=P(o,...s);return e.muiName&&(u.muiName=e.muiName),u};return P.withConfig&&(A.withConfig=P.withConfig),A}}();var v=g},38409:function(e,t,n){n.d(t,{Z:function(){return i}});var r=n(37412);function i(e){let{theme:t,name:n,props:i}=e;return t&&t.components&&t.components[n]&&t.components[n].defaultProps?(0,r.Z)(t.components[n].defaultProps,i):i}},48976:function(e,t,n){n.d(t,{Z:function(){return a}});var r=n(38409),i=n(83927);function a({props:e,name:t,defaultTheme:n,themeId:a}){let o=(0,i.Z)(n);a&&(o=o[a]||o);let s=(0,r.Z)({theme:o,name:t,props:e});return s}},48670:function(e,t,n){n.d(t,{a:function(){return eA}});var r=n(79042),i=n(94312),a=n(14978),o=n(84006),s=n(50774),l=n(31608),u=n(39468),c=n(77412);let d=(e,t)=>{let n=a.useRef(null),r=a.useRef(!1),[i,o]=a.useState(0),[s,l]=a.useState(0),d=a.useCallback(()=>{let e=n?.current;if(!e)return;let t=(0,c.Z)(e),r=t.getComputedStyle(e),i=Math.floor(parseFloat(r.height))||0,a=Math.floor(parseFloat(r.width))||0;o(a),l(i)},[]);return a.useEffect(()=>{r.current=!0},[]),(0,u.Z)(()=>{let r;if(void 0!==e&&void 0!==t)return()=>{};d();let i=n.current;if("undefined"==typeof ResizeObserver)return()=>{};let a=new ResizeObserver(()=>{r=requestAnimationFrame(()=>{d()})});return i&&a.observe(i),()=>{r&&window.cancelAnimationFrame(r),i&&a.unobserve(i)}},[d,t,e]),[n,e??i,t??s]};var p=n(24004);let h=a.createContext({item:null,axis:{x:null,y:null},useVoronoiInteraction:!1,dispatch:()=>null}),f=a.createContext({isInitialized:!1,data:{xAxis:{},yAxis:{},xAxisIds:[],yAxisIds:[]}}),m=()=>{let{data:e}=a.useContext(f);return e};var x=n(16399);let g={top:50,bottom:50,left:50,right:50};var v=(e,t,n)=>{let i=(0,r.Z)({},g,n),o=a.useMemo(()=>({left:i.left,top:i.top,right:i.right,bottom:i.bottom,width:Math.max(0,e-i.left-i.right),height:Math.max(0,t-i.top-i.bottom)}),[e,t,i.top,i.bottom,i.left,i.right]);return o};let Z=a.createContext({top:0,left:0,bottom:0,right:0,height:300,width:400,chartId:""}),b=a.createContext({isInitialized:!1,data:{current:null}});function y(e){let{width:t,height:n,margin:i,svgRef:o,children:s}=e,l=v(t,n,i),u=(0,x.Z)(),c=a.useMemo(()=>(0,r.Z)({chartId:u??""},l),[u,l]),d=a.useMemo(()=>({isInitialized:!0,data:o}),[o]);return(0,p.jsx)(b.Provider,{value:d,children:(0,p.jsx)(Z.Provider,{value:c,children:s})})}function $(){let{left:e,top:t,width:n,height:r,bottom:i,right:o}=a.useContext(Z);return a.useMemo(()=>({left:e,top:t,width:n,height:r,bottom:i,right:o}),[r,e,t,n,i,o])}function M(e){return e instanceof Date?e.getTime():e}let w=e=>{let t=function(){let{isInitialized:e,data:t}=a.useContext(b);if(!e)throw Error("MUI X: Could not find the svg ref context.\nIt looks like you rendered your component outside of a ChartsContainer parent component.");return t}(),{left:n,top:r,width:i,height:o}=$(),{xAxis:s,yAxis:l,xAxisIds:u,yAxisIds:c}=m(),{dispatch:d}=a.useContext(h),p=u[0],f=c[0],x=a.useRef({x:-1,y:-1});a.useEffect(()=>{let a=t.current;if(null===a||e)return()=>{};function u(e,t){let{scale:n,data:r,reverse:i}=e;if(!(void 0!==n.bandwidth)){let e=n.invert(t);if(void 0===r)return{value:e};let i=M(e),a=r?.findIndex((t,n)=>{let a=M(t);return!!(a>i&&(0===n||Math.abs(i-a)<=Math.abs(i-M(r[n-1])))||a<=i&&(n===r.length-1||Math.abs(M(e)-a)<Math.abs(M(e)-M(r[n+1]))))});return{value:void 0!==a&&a>=0?r[a]:e,index:a}}let a=0===n.bandwidth()?Math.floor((t-Math.min(...n.range())+n.step()/2)/n.step()):Math.floor((t-Math.min(...n.range()))/n.step());if(a<0||a>=r.length)return null;if(i){let e=r.length-1-a;return{index:e,value:r[e]}}return{index:a,value:r[a]}}let c=()=>{x.current={x:-1,y:-1},d({type:"exitChart"})},h=e=>{let t="targetTouches"in e?e.targetTouches[0]:e,c=function(e,t){let n=e.createSVGPoint();return n.x=t.clientX,n.y=t.clientY,n.matrixTransform(e.getScreenCTM().inverse())}(a,t);x.current={x:c.x,y:c.y};let h=c.x<n||c.x>n+i,m=c.y<r||c.y>r+o;if(h||m){d({type:"exitChart"});return}let g=u(s[p],c.x),v=u(l[f],c.y);d({type:"updateAxis",data:{x:g,y:v}})},m=e=>{let t=e.currentTarget;t&&t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId)};return a.addEventListener("pointerdown",m),a.addEventListener("pointermove",h),a.addEventListener("pointerout",c),a.addEventListener("pointercancel",c),a.addEventListener("pointerleave",c),()=>{a.removeEventListener("pointerdown",m),a.removeEventListener("pointermove",h),a.removeEventListener("pointerout",c),a.removeEventListener("pointercancel",c),a.removeEventListener("pointerleave",c)}},[t,d,n,i,r,o,f,l,p,s,e])},R=["children","width","height","viewBox","disableAxisListener","className","title","desc"],C=(0,l.ZP)("svg",{name:"MuiChartsSurface",slot:"Root"})(()=>({touchAction:"none"})),P=a.forwardRef(function(e,t){let{children:n,width:a,height:o,viewBox:s,disableAxisListener:l=!1,title:u,desc:c}=e,d=(0,i.Z)(e,R),h=(0,r.Z)({width:a,height:o,x:0,y:0},s);return w(l),(0,p.jsxs)(C,(0,r.Z)({width:a,height:o,viewBox:`${h.x} ${h.y} ${h.width} ${h.height}`,ref:t},d,{children:[(0,p.jsx)("title",{children:u}),(0,p.jsx)("desc",{children:c}),n]}))});function S(e,t){if("number"==typeof e)return e;if("100%"===e)return t;if(e.endsWith("%")){let n=Number.parseFloat(e.slice(0,e.length-1));if(!Number.isNaN(n))return n*t/100}if(e.endsWith("px")){let t=Number.parseFloat(e.slice(0,e.length-2));if(!Number.isNaN(t))return t}throw Error(`MUI-Charts: Received an unknown value "${e}". It should be a number, or a string with a percentage value.`)}function A(e){let t=Math.PI*e/180;return[Math.sin(t),-Math.cos(t)]}let I=a.createContext({value:null,valueMin:0,valueMax:0,startAngle:0,endAngle:0,innerRadius:0,outerRadius:0,cornerRadius:0,cx:0,cy:0,maxRadius:0,valueAngle:null});function j(e){let{value:t=null,valueMin:n=0,valueMax:r=100,startAngle:i=0,endAngle:o=360,outerRadius:s,innerRadius:l,cornerRadius:u,cx:c,cy:d,children:h}=e,{left:f,top:m,width:x,height:g}=$(),v=function(e,t){let n=[[0,0],A(e),A(t)],r=Math.min(e,t),i=Math.max(e,t),a=90*Math.floor(r/90);for(let e=1;e<=4;e+=1){let t=a+90*e;t<i&&n.push(A(t))}let o=Math.min(...n.map(([e])=>e)),s=Math.max(...n.map(([e])=>e)),l=Math.min(...n.map(([,e])=>e)),u=Math.max(...n.map(([,e])=>e));return{cx:-o/(s-o),cy:-l/(u-l),minX:o,maxX:s,minY:l,maxY:u}}(i,o),Z=c?S(c,x):v.cx*x,b=d?S(d,g):v.cy*g,y=f+Z,M=m+b,w=function(e,t,n,r,{minX:i,maxX:a,minY:o,maxY:s}){return Math.min(...[{ratio:Math.abs(i),space:e},{ratio:Math.abs(a),space:n-e},{ratio:Math.abs(o),space:t},{ratio:Math.abs(s),space:r-t}].map(({ratio:e,space:t})=>e<1e-5?1/0:t/e))}(Z,b,x,g,v);if(void 0===c){let e=w*(v.maxX-v.minX);y=f+(x-e)/2+v.cx*e}if(void 0===d){let e=w*(v.maxY-v.minY);M=m+(g-e)/2+v.cy*e}let R=S(s??w,w),C=S(l??"80%",w),P=S(u??0,R-C),j=a.useMemo(()=>{let e=Math.PI*i/180,a=Math.PI*o/180;return{value:t,valueMin:n,valueMax:r,startAngle:e,endAngle:a,outerRadius:R,innerRadius:C,cornerRadius:P,cx:y,cy:M,maxRadius:w,valueAngle:null===t?null:e+(a-e)*(t-n)/(r-n)}},[t,n,r,i,o,R,C,P,y,M,w]);return(0,p.jsx)(I.Provider,{value:j,children:h})}function k(){return a.useContext(I)}let L=["width","height","margin","title","desc","value","valueMin","valueMax","startAngle","endAngle","outerRadius","innerRadius","cornerRadius","cx","cy","children"],_=(0,l.ZP)("div",{name:"MuiGauge",slot:"Container"})(({ownerState:e,theme:t})=>({width:e.width??"100%",height:e.height??"100%",display:"flex",position:"relative",flexGrow:1,flexDirection:"column",alignItems:"center",justifyContent:"center",overflow:"hidden","&>svg":{width:"100%",height:"100%"},"& text":{fill:(t.vars||t).palette.text.primary}})),N=a.forwardRef(function(e,t){let{width:n,height:o,margin:l,title:u,desc:c,value:h,valueMin:f=0,valueMax:m=100,startAngle:x,endAngle:g,outerRadius:v,innerRadius:Z,cornerRadius:b,cx:$,cy:M,children:w}=e,R=(0,i.Z)(e,L),[C,S,A]=d(n,o),I=a.useRef(null),k=(0,s.Z)(t,I);return(0,p.jsx)(_,(0,r.Z)({ref:C,ownerState:{width:n,height:o},role:"meter","aria-valuenow":null===h?void 0:h,"aria-valuemin":f,"aria-valuemax":m},R,{children:S&&A?(0,p.jsx)(y,{width:S,height:A,margin:(0,r.Z)({left:10,right:10,top:10,bottom:10},l),svgRef:I,children:(0,p.jsx)(j,{value:h,valueMin:f,valueMax:m,startAngle:x,endAngle:g,outerRadius:v,innerRadius:Z,cornerRadius:b,cx:$,cy:M,children:(0,p.jsx)(P,{width:S,height:A,ref:k,title:u,desc:c,disableAxisListener:!0,"aria-hidden":"true",children:w})})}):null}))});function B(e){return function(){return e}}let T=Math.abs,G=Math.atan2,E=Math.cos,W=Math.max,O=Math.min,z=Math.sin,F=Math.sqrt,D=Math.PI,V=D/2,q=2*D;function H(e){return e>=1?V:e<=-1?-V:Math.asin(e)}let X=Math.PI,Y=2*X,U=Y-1e-6;function K(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}class Q{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==e?K:function(e){let t=Math.floor(e);if(!(t>=0))throw Error(`invalid digits: ${e}`);if(t>15)return K;let n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=Math.round(arguments[t]*n)/n+e[t]}}(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,n,r){this._append`Q${+e},${+t},${this._x1=+n},${this._y1=+r}`}bezierCurveTo(e,t,n,r,i,a){this._append`C${+e},${+t},${+n},${+r},${this._x1=+i},${this._y1=+a}`}arcTo(e,t,n,r,i){if(e=+e,t=+t,n=+n,r=+r,(i=+i)<0)throw Error(`negative radius: ${i}`);let a=this._x1,o=this._y1,s=n-e,l=r-t,u=a-e,c=o-t,d=u*u+c*c;if(null===this._x1)this._append`M${this._x1=e},${this._y1=t}`;else if(d>1e-6){if(Math.abs(c*s-l*u)>1e-6&&i){let p=n-a,h=r-o,f=s*s+l*l,m=Math.sqrt(f),x=Math.sqrt(d),g=i*Math.tan((X-Math.acos((f+d-(p*p+h*h))/(2*m*x)))/2),v=g/x,Z=g/m;Math.abs(v-1)>1e-6&&this._append`L${e+v*u},${t+v*c}`,this._append`A${i},${i},0,0,${+(c*p>u*h)},${this._x1=e+Z*s},${this._y1=t+Z*l}`}else this._append`L${this._x1=e},${this._y1=t}`}}arc(e,t,n,r,i,a){if(e=+e,t=+t,a=!!a,(n=+n)<0)throw Error(`negative radius: ${n}`);let o=n*Math.cos(r),s=n*Math.sin(r),l=e+o,u=t+s,c=1^a,d=a?r-i:i-r;null===this._x1?this._append`M${l},${u}`:(Math.abs(this._x1-l)>1e-6||Math.abs(this._y1-u)>1e-6)&&this._append`L${l},${u}`,n&&(d<0&&(d=d%Y+Y),d>U?this._append`A${n},${n},0,1,${c},${e-o},${t-s}A${n},${n},0,1,${c},${this._x1=l},${this._y1=u}`:d>1e-6&&this._append`A${n},${n},0,${+(d>=X)},${c},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}}function J(e){return e.innerRadius}function ee(e){return e.outerRadius}function et(e){return e.startAngle}function en(e){return e.endAngle}function er(e){return e&&e.padAngle}function ei(e,t,n,r,i,a,o){var s=e-n,l=t-r,u=(o?a:-a)/F(s*s+l*l),c=u*l,d=-u*s,p=e+c,h=t+d,f=n+c,m=r+d,x=(p+f)/2,g=(h+m)/2,v=f-p,Z=m-h,b=v*v+Z*Z,y=i-a,$=p*m-f*h,M=(Z<0?-1:1)*F(W(0,y*y*b-$*$)),w=($*Z-v*M)/b,R=(-$*v-Z*M)/b,C=($*Z+v*M)/b,P=(-$*v+Z*M)/b,S=w-x,A=R-g,I=C-x,j=P-g;return S*S+A*A>I*I+j*j&&(w=C,R=P),{cx:w,cy:R,x01:-c,y01:-d,x11:w*(i/y-1),y11:R*(i/y-1)}}function ea(){let e;var t=J,n=ee,r=B(0),i=null,a=et,o=en,s=er,l=null,u=(e=3,c.digits=function(t){if(!arguments.length)return e;if(null==t)e=null;else{let n=Math.floor(t);if(!(n>=0))throw RangeError(`invalid digits: ${t}`);e=n}return c},()=>new Q(e));function c(){var e,c,d=+t.apply(this,arguments),p=+n.apply(this,arguments),h=a.apply(this,arguments)-V,f=o.apply(this,arguments)-V,m=T(f-h),x=f>h;if(l||(l=e=u()),p<d&&(c=p,p=d,d=c),p>1e-12){if(m>q-1e-12)l.moveTo(p*E(h),p*z(h)),l.arc(0,0,p,h,f,!x),d>1e-12&&(l.moveTo(d*E(f),d*z(f)),l.arc(0,0,d,f,h,x));else{var g,v,Z=h,b=f,y=h,$=f,M=m,w=m,R=s.apply(this,arguments)/2,C=R>1e-12&&(i?+i.apply(this,arguments):F(d*d+p*p)),P=O(T(p-d)/2,+r.apply(this,arguments)),S=P,A=P;if(C>1e-12){var I=H(C/d*z(R)),j=H(C/p*z(R));(M-=2*I)>1e-12?(I*=x?1:-1,y+=I,$-=I):(M=0,y=$=(h+f)/2),(w-=2*j)>1e-12?(j*=x?1:-1,Z+=j,b-=j):(w=0,Z=b=(h+f)/2)}var k=p*E(Z),L=p*z(Z),_=d*E($),N=d*z($);if(P>1e-12){var B,W=p*E(b),X=p*z(b),Y=d*E(y),U=d*z(y);if(m<D){if(B=function(e,t,n,r,i,a,o,s){var l=n-e,u=r-t,c=o-i,d=s-a,p=d*l-c*u;if(!(p*p<1e-12))return p=(c*(t-a)-d*(e-i))/p,[e+p*l,t+p*u]}(k,L,Y,U,W,X,_,N)){var K,Q=k-B[0],J=L-B[1],ee=W-B[0],et=X-B[1],en=1/z(((K=(Q*ee+J*et)/(F(Q*Q+J*J)*F(ee*ee+et*et)))>1?0:K<-1?D:Math.acos(K))/2),er=F(B[0]*B[0]+B[1]*B[1]);S=O(P,(d-er)/(en-1)),A=O(P,(p-er)/(en+1))}else S=A=0}}w>1e-12?A>1e-12?(g=ei(Y,U,k,L,p,A,x),v=ei(W,X,_,N,p,A,x),l.moveTo(g.cx+g.x01,g.cy+g.y01),A<P?l.arc(g.cx,g.cy,A,G(g.y01,g.x01),G(v.y01,v.x01),!x):(l.arc(g.cx,g.cy,A,G(g.y01,g.x01),G(g.y11,g.x11),!x),l.arc(0,0,p,G(g.cy+g.y11,g.cx+g.x11),G(v.cy+v.y11,v.cx+v.x11),!x),l.arc(v.cx,v.cy,A,G(v.y11,v.x11),G(v.y01,v.x01),!x))):(l.moveTo(k,L),l.arc(0,0,p,Z,b,!x)):l.moveTo(k,L),d>1e-12&&M>1e-12?S>1e-12?(g=ei(_,N,W,X,d,-S,x),v=ei(k,L,Y,U,d,-S,x),l.lineTo(g.cx+g.x01,g.cy+g.y01),S<P?l.arc(g.cx,g.cy,S,G(g.y01,g.x01),G(v.y01,v.x01),!x):(l.arc(g.cx,g.cy,S,G(g.y01,g.x01),G(g.y11,g.x11),!x),l.arc(0,0,d,G(g.cy+g.y11,g.cx+g.x11),G(v.cy+v.y11,v.cx+v.x11),x),l.arc(v.cx,v.cy,S,G(v.y11,v.x11),G(v.y01,v.x01),!x))):l.arc(0,0,d,$,y,x):l.lineTo(_,N)}}else l.moveTo(0,0);if(l.closePath(),e)return l=null,e+""||null}return c.centroid=function(){var e=(+t.apply(this,arguments)+ +n.apply(this,arguments))/2,r=(+a.apply(this,arguments)+ +o.apply(this,arguments))/2-D/2;return[E(r)*e,z(r)*e]},c.innerRadius=function(e){return arguments.length?(t="function"==typeof e?e:B(+e),c):t},c.outerRadius=function(e){return arguments.length?(n="function"==typeof e?e:B(+e),c):n},c.cornerRadius=function(e){return arguments.length?(r="function"==typeof e?e:B(+e),c):r},c.padRadius=function(e){return arguments.length?(i=null==e?null:"function"==typeof e?e:B(+e),c):i},c.startAngle=function(e){return arguments.length?(a="function"==typeof e?e:B(+e),c):a},c.endAngle=function(e){return arguments.length?(o="function"==typeof e?e:B(+e),c):o},c.padAngle=function(e){return arguments.length?(s="function"==typeof e?e:B(+e),c):s},c.context=function(e){return arguments.length?(l=null==e?null:e,c):l},c}Q.prototype;let eo=(0,l.ZP)("path",{name:"MuiGauge",slot:"ReferenceArc",overridesResolver:(e,t)=>t.referenceArc})(({theme:e})=>({fill:(e.vars||e).palette.primary.main}));function es(e){let{value:t,valueMin:n,valueMax:i,startAngle:a,endAngle:o,outerRadius:s,innerRadius:l,cornerRadius:u,cx:c,cy:d}=k();if(null===t)return null;let h=a+(t-n)/(i-n)*(o-a);return(0,p.jsx)(eo,(0,r.Z)({transform:`translate(${c}, ${d})`,d:ea().cornerRadius(u)({startAngle:a,endAngle:h,innerRadius:l,outerRadius:s})},e))}let el=(0,l.ZP)("path",{name:"MuiGauge",slot:"ReferenceArc",overridesResolver:(e,t)=>t.referenceArc})(({theme:e})=>({fill:(e.vars||e).palette.divider}));function eu(e){let{startAngle:t,endAngle:n,outerRadius:i,innerRadius:a,cornerRadius:o,cx:s,cy:l}=k();return(0,p.jsx)(el,(0,r.Z)({transform:`translate(${s}, ${l})`,d:ea().cornerRadius(o)({startAngle:t,endAngle:n,innerRadius:a,outerRadius:i})},e))}var ec=n(60201),ed=n(80683);function ep(e){return(0,ed.ZP)("MuiGauge",e)}(0,ec.Z)("MuiGauge",["root","valueArc","referenceArc","valueText"]);let eh={widthCache:{},cacheCount:0},ef={position:"absolute",top:"-20000px",left:0,padding:0,margin:0,border:"none",whiteSpace:"pre"},em=["minWidth","maxWidth","width","minHeight","maxHeight","height","top","left","fontSize","padding","margin","paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom"],ex="mui_measurement_span";function eg(e,t){return em.indexOf(e)>=0&&t===+t?`${t}px`:t}function ev(e){let t=e.split(""),n=t.reduce((e,t)=>t===t.toUpperCase()?[...e,"-",t.toLowerCase()]:[...e,t],[]);return n.join("")}let eZ=e=>Object.keys(e).sort().reduce((t,n)=>`${t}${ev(n)}:${eg(n,e[n])};`,""),eb=(e,t={})=>{if(null==e||"undefined"==typeof window)return{width:0,height:0};let n=`${e}`,i=eZ(t),a=`${n}-${i}`;if(eh.widthCache[a])return eh.widthCache[a];try{let e=document.getElementById(ex);null===e&&((e=document.createElement("span")).setAttribute("id",ex),e.setAttribute("aria-hidden","true"),document.body.appendChild(e));let i=(0,r.Z)({},ef,t);Object.keys(i).map(t=>(e.style[ev(t)]=eg(t,i[t]),t)),e.textContent=n;let o=e.getBoundingClientRect(),s={width:o.width,height:o.height};return eh.widthCache[a]=s,eh.cacheCount+1>2e3?(eh.cacheCount=0,eh.widthCache={}):eh.cacheCount+=1,s}catch(e){return{width:0,height:0}}},ey=["x","y","style","text","ownerState"],e$=["angle","textAnchor","dominantBaseline"];function eM(e){let t;let{x:n,y:o,style:s,text:l}=e,u=(0,i.Z)(e,ey),c=s??{},{angle:d,textAnchor:h,dominantBaseline:f}=c,m=(0,i.Z)(c,e$),x=a.useMemo(()=>(function({style:e,needsComputation:t,text:n}){return n.split("\n").map(n=>(0,r.Z)({text:n},t?eb(n,e):{width:0,height:0}))})({style:m,needsComputation:l.includes("\n"),text:l}),[m,l]);switch(f){case"hanging":t=0;break;case"central":t=-((x.length-1)/2*x[0].height);break;default:t=-((x.length-1)*x[0].height)}let g=[];return d&&g.push(`rotate(${d}, ${n}, ${o})`),(0,p.jsx)("text",(0,r.Z)({},u,{transform:g.length>0?g.join(" "):void 0,x:n,y:o,textAnchor:h,dominantBaseline:f,style:m,children:x.map((e,r)=>(0,p.jsx)("tspan",{x:n,dy:`${0===r?t:x[0].height}px`,dominantBaseline:f,children:e.text},r))}))}let ew=["text","className"];function eR({value:e}){return null===e?null:e.toLocaleString()}function eC(e){let{text:t=eR,className:n}=e,a=(0,i.Z)(e,ew),{value:o,valueMin:s,valueMax:l,cx:u,cy:c}=k(),d="function"==typeof t?t({value:o,valueMin:s,valueMax:l}):t;return null===d?null:(0,p.jsx)("g",{className:n,children:(0,p.jsx)(eM,(0,r.Z)({x:u,y:c,text:d,style:{textAnchor:"middle",dominantBaseline:"central"}},a))})}let eP=["text","children","classes"],eS=e=>{let{classes:t}=e;return(0,o.Z)({root:["root"],valueArc:["valueArc"],referenceArc:["referenceArc"],valueText:["valueText"]},ep,t)};function eA(e){let{text:t,children:n}=e,a=(0,i.Z)(e,eP),o=eS(e);return(0,p.jsxs)(N,(0,r.Z)({},a,{className:o.root,children:[(0,p.jsx)(eu,{className:o.referenceArc}),(0,p.jsx)(es,{className:o.valueArc}),(0,p.jsx)(eC,{className:o.valueText,text:t}),n]}))}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[421],{
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[421],{63749:function(e,n,t){Promise.resolve().then(t.t.bind(t,16662,23)),Promise.resolve().then(t.t.bind(t,27924,23)),Promise.resolve().then(t.t.bind(t,30910,23)),Promise.resolve().then(t.t.bind(t,81885,23)),Promise.resolve().then(t.bind(t,55258)),Promise.resolve().then(t.t.bind(t,29820,23))},81885:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),function(e,n){for(var t in n)Object.defineProperty(e,t,{enumerable:!0,get:n[t]})}(n,{suspense:function(){return o},NoSSR:function(){return i}}),t(69278),t(14978);let r=t(66995);function o(){let e=Error(r.NEXT_DYNAMIC_NO_SSR_CODE);throw e.digest=r.NEXT_DYNAMIC_NO_SSR_CODE,e}function i(e){let{children:n}=e;return n}},29820:function(){}},function(e){e.O(0,[583,903,640,916,493,304,281,339,969,163,378,235,476,515,631,905,998,258,470,730,744],function(){return e(e.s=63749)}),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[185],{84173:function(e,t,r){Promise.resolve().then(r.bind(r,5071)),Promise.resolve().then(r.t.bind(r,5100,23)),Promise.resolve().then(r.t.bind(r,65246,23))},5071:function(e,t,r){"use strict";r.r(t),r.d(t,{PageShell:function(){return J}});var o=r(24004),n=r(14978),s=r(52428),i=r(86768),l=r(77656),a=r(32414),c=r(38640),u=r.n(c),d=r(28891),h=r(95707),f=r(80378);function p(e){let{darkMode:t,onToggleDarkMode:r}=e;return(0,o.jsx)("div",{className:"dark-mode-toggle",onClick:r,children:t?(0,o.jsx)(h.Z,{}):(0,o.jsx)(f.Z,{})})}r(32854);var x=r(56343),m=r(89335),g=r(9327),j=r(98629),b=r(16783),v=r(29794),k=r(82669),C=r(63147),Z=r(52062),S=r(51956),E=r(22701),O=r(40982);let _=[{icon:(0,o.jsx)(b.Z,{fontSize:"small"}),text:"Documentation",href:"https://www.promptfoo.dev/docs/intro"},{icon:(0,o.jsx)(j.Z,{fontSize:"small"}),text:"GitHub Repository",href:"https://github.com/promptfoo/promptfoo"},{icon:(0,o.jsx)(x.Z,{fontSize:"small"}),text:"File an Issue",href:"https://github.com/promptfoo/promptfoo/issues"},{icon:(0,o.jsx)(g.Z,{fontSize:"small"}),text:"Join Our Discord Community",href:"https://discord.gg/gHPS9jjfbs"},{icon:(0,o.jsx)(m.Z,{fontSize:"small"}),text:"Book a Meeting",href:"https://cal.com/team/promptfoo/intro"}];function P(e){let{open:t,onClose:r}=e;return(0,o.jsxs)(v.Z,{open:t,onClose:r,maxWidth:"xs",fullWidth:!0,"aria-labelledby":"about-promptfoo-dialog-title",children:[(0,o.jsx)(k.Z,{id:"about-promptfoo-dialog-title",children:(0,o.jsxs)(a.Z,{children:[(0,o.jsx)(C.Z,{variant:"h6",children:"About Promptfoo"}),(0,o.jsx)(Z.Z,{href:"https://github.com/promptfoo/promptfoo/releases",underline:"none",sx:{color:"inherit"},target:"_blank",children:(0,o.jsxs)(C.Z,{variant:"subtitle2",children:["Version ","0.
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[185],{84173:function(e,t,r){Promise.resolve().then(r.bind(r,5071)),Promise.resolve().then(r.t.bind(r,5100,23)),Promise.resolve().then(r.t.bind(r,65246,23))},5071:function(e,t,r){"use strict";r.r(t),r.d(t,{PageShell:function(){return J}});var o=r(24004),n=r(14978),s=r(52428),i=r(86768),l=r(77656),a=r(32414),c=r(38640),u=r.n(c),d=r(28891),h=r(95707),f=r(80378);function p(e){let{darkMode:t,onToggleDarkMode:r}=e;return(0,o.jsx)("div",{className:"dark-mode-toggle",onClick:r,children:t?(0,o.jsx)(h.Z,{}):(0,o.jsx)(f.Z,{})})}r(32854);var x=r(56343),m=r(89335),g=r(9327),j=r(98629),b=r(16783),v=r(29794),k=r(82669),C=r(63147),Z=r(52062),S=r(51956),E=r(22701),O=r(40982);let _=[{icon:(0,o.jsx)(b.Z,{fontSize:"small"}),text:"Documentation",href:"https://www.promptfoo.dev/docs/intro"},{icon:(0,o.jsx)(j.Z,{fontSize:"small"}),text:"GitHub Repository",href:"https://github.com/promptfoo/promptfoo"},{icon:(0,o.jsx)(x.Z,{fontSize:"small"}),text:"File an Issue",href:"https://github.com/promptfoo/promptfoo/issues"},{icon:(0,o.jsx)(g.Z,{fontSize:"small"}),text:"Join Our Discord Community",href:"https://discord.gg/gHPS9jjfbs"},{icon:(0,o.jsx)(m.Z,{fontSize:"small"}),text:"Book a Meeting",href:"https://cal.com/team/promptfoo/intro"}];function P(e){let{open:t,onClose:r}=e;return(0,o.jsxs)(v.Z,{open:t,onClose:r,maxWidth:"xs",fullWidth:!0,"aria-labelledby":"about-promptfoo-dialog-title",children:[(0,o.jsx)(k.Z,{id:"about-promptfoo-dialog-title",children:(0,o.jsxs)(a.Z,{children:[(0,o.jsx)(C.Z,{variant:"h6",children:"About Promptfoo"}),(0,o.jsx)(Z.Z,{href:"https://github.com/promptfoo/promptfoo/releases",underline:"none",sx:{color:"inherit"},target:"_blank",children:(0,o.jsxs)(C.Z,{variant:"subtitle2",children:["Version ","0.74.0"]})})]})}),(0,o.jsxs)(S.Z,{children:[(0,o.jsx)(C.Z,{variant:"body2",gutterBottom:!0,children:"Promptfoo is a MIT licensed open-source tool for evaluating LLMs. We make it easy to track the performance of your models and prompts over time with automated support for dataset generation and grading."}),(0,o.jsx)(a.Z,{spacing:2,mt:2,children:_.map((e,t)=>(0,o.jsxs)(a.Z,{direction:"row",spacing:1,alignItems:"center",sx:{flexWrap:"wrap","& .MuiSvgIcon-root":{color:"text.primary"}},children:[e.icon,(0,o.jsx)(Z.Z,{underline:"none",target:"_blank",href:e.href,sx:{color:"inherit"},children:(0,o.jsx)(C.Z,{variant:"body2",children:e.text})})]},t))})]}),(0,o.jsx)(E.Z,{children:(0,o.jsx)(O.Z,{onClick:r,children:"Close"})})]})}var y=r(1445),F=r(31657),N=r(36273),M=r(96976);function w(){let{user:e,logout:t}=(0,y.aC)(),[r,s]=n.useState(null),i=()=>{s(null)},a=async()=>{null==t||t(),i()};return e?(0,o.jsxs)("div",{children:[(0,o.jsx)(l.Z,{edge:"end","aria-label":"account of current user","aria-controls":"menu-appbar","aria-haspopup":"true",onClick:e=>{s(e.currentTarget)},color:"inherit",children:(0,o.jsx)(F.Z,{sx:{width:"1em",height:"1em",bgcolor:"#1976d2"}})}),(0,o.jsxs)(N.Z,{id:"menu-appbar",anchorEl:r,anchorOrigin:{vertical:"top",horizontal:"right"},keepMounted:!0,transformOrigin:{vertical:"top",horizontal:"right"},open:!!r,onClose:i,children:[(0,o.jsxs)(M.Z,{disabled:!0,children:["Logged in as ",e.email]}),(0,o.jsx)(M.Z,{onClick:a,children:"Logout"})]})]}):(0,o.jsx)(u(),{href:"/auth/signup/",children:(0,o.jsx)(l.Z,{edge:"end","aria-label":"User not logged in","aria-controls":"menu-appbar","aria-haspopup":"true",color:"inherit",children:(0,o.jsx)(F.Z,{sx:{width:"1em",height:"1em"}})})})}var I=r(49567),T=r(47051),R=r.n(T);function A(){return(0,o.jsx)(u(),{href:"https://promptfoo.dev",passHref:!0,children:(0,o.jsxs)(I.Z,{className:"logo",component:"a",children:[(0,o.jsx)(R(),{width:25,height:25,src:"/logo-panda.svg",alt:"Promptfoo logo"})," ",(0,o.jsx)("span",{children:"promptfoo"})]})})}r(17328),r(5008);var D=r(77580);function B(e){let{href:t,label:r}=e,n=(0,d.usePathname)()||"";return(0,o.jsx)(u(),{href:t,className:n.startsWith(t)?"active":"",children:r})}function L(e){let{darkMode:t,onToggleDarkMode:r}=e,[c,u]=(0,n.useState)(!1),d=()=>u(e=>!e),h=(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(A,{}),!D.env.NEXT_PUBLIC_NO_BROWSING&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(B,{href:"/setup",label:"New Eval"}),(0,o.jsx)(B,{href:"/eval",label:"Evals"}),(0,o.jsx)(B,{href:"/prompts",label:"Prompts"}),(0,o.jsx)(B,{href:"/datasets",label:"Datasets"}),(0,o.jsx)(B,{href:"/progress",label:"Progress"})]}),(0,o.jsxs)("div",{className:"right-aligned",children:[s.Ox?(0,o.jsx)(w,{}):null,(0,o.jsx)(l.Z,{onClick:d,sx:{color:"#f0f0f0"},children:(0,o.jsx)(i.Z,{})}),(0,o.jsx)(p,{darkMode:t,onToggleDarkMode:r})]})]});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(P,{open:c,onClose:d}),(0,o.jsx)(a.Z,{direction:"row",spacing:2,className:"nav",children:h})]})}var W=r(51867),U=r(61191),z=r(38127);r(70894);let H=e=>(0,W.Z)({typography:{fontFamily:"inherit"},palette:{mode:e?"dark":"light",background:{default:"#ffffff"}},components:{MuiCard:{styleOverrides:{root:{backgroundColor:e?"#121212":"#fff",boxShadow:e?"none":"0 2px 3px rgba(0, 0, 0, 0.1)",borderRadius:"12px"}}},MuiTableContainer:{styleOverrides:{root:{backgroundColor:e?"#121212":"#fff",boxShadow:e?"none":"0 2px 3px rgba(0, 0, 0, 0.1)",borderRadius:"12px"}}},MuiTableHead:{styleOverrides:{root:{backgroundColor:e?"#1E1E1E":"#F5F5F5"}}},MuiTableCell:{styleOverrides:{head:{backgroundColor:"inherit",color:e?"#FFFFFF":"#000000",fontWeight:"bold"},stickyHeader:{backgroundColor:e?"#1E1E1E":"#F5F5F5"}}},MuiInputBase:{styleOverrides:{root:{backgroundColor:e?"#333":"#fff"}}}}}),G=H(!1),V=H(!0);function X(e){let{children:t}=e;return(0,o.jsx)("div",{children:t})}function J(e){let{children:t}=e,r=(0,z.Z)("(prefers-color-scheme: dark)"),[s,i]=(0,n.useState)(null);(0,n.useEffect)(()=>{let e=localStorage.getItem("darkMode");i(null!==e?"true"===e:r)},[r]);let l=(0,n.useCallback)(()=>{i(e=>{let t=!e;return localStorage.setItem("darkMode",String(t)),t})},[]);return((0,n.useEffect)(()=>{null!==s&&(s?document.documentElement.setAttribute("data-theme","dark"):document.documentElement.removeAttribute("data-theme"))},[s]),null===s)?null:(0,o.jsx)(U.Z,{theme:s?V:G,children:(0,o.jsx)(y.Ho,{children:(0,o.jsxs)(X,{children:[(0,o.jsx)(L,{darkMode:s,onToggleDarkMode:l}),(0,o.jsx)("div",{children:t})]})})})}},52428:function(e,t,r){"use strict";r.d(t,{Ox:function(){return s},T8:function(){return n},eA:function(){return i}});var o=r(77580);let n=!o.env.NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER,s=!!o.env.NEXT_PUBLIC_PROMPTFOO_USE_SUPABASE,i=""},1445:function(e,t,r){"use strict";r.d(t,{Ho:function(){return d},OQ:function(){return i},aC:function(){return a}});var o=r(24004),n=r(14978),s=r(12594);let i=(0,s.createClientComponentClient)(),l=(0,n.createContext)({}),a=()=>(0,n.useContext)(l),c=(e,t)=>i.auth.signInWithPassword({email:e,password:t}),u=()=>i.auth.signOut(),d=e=>{let{children:t}=e,[r,s]=(0,n.useState)(null),[a,d]=(0,n.useState)(!1),h=(0,n.useCallback)(async()=>{let{data:e,error:t}=await i.auth.refreshSession();e&&s(e.user)},[]);return(0,n.useEffect)(()=>{h();let{data:e}=i.auth.onAuthStateChange(async(e,t)=>{"PASSWORD_RECOVERY"==e?d(!1):"SIGNED_IN"===e&&t?(s(t.user),d(!0)):"SIGNED_OUT"===e&&(d(!1),s(null))});return()=>{e.subscription.unsubscribe()}},[h]),(0,o.jsx)(l.Provider,{value:{loggedIn:a,user:r,login:c,logout:u},children:t})}},32854:function(){},17328:function(){},5008:function(){},70894:function(){},5100:function(){}},function(e){e.O(0,[903,640,916,281,163,325,470,730,744],function(){return e(e.s=84173)}),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[931],{5944:function(e,n,t){Promise.resolve().then(t.t.bind(t,16662,23)),Promise.resolve().then(t.t.bind(t,27924,23)),Promise.resolve().then(t.t.bind(t,30910,23)),Promise.resolve().then(t.t.bind(t,81885,23)),Promise.resolve().then(t.t.bind(t,48607,23))},81885:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),function(e,n){for(var t in n)Object.defineProperty(e,t,{enumerable:!0,get:n[t]})}(n,{suspense:function(){return o},NoSSR:function(){return i}}),t(69278),t(14978);let r=t(66995);function o(){let e=Error(r.NEXT_DYNAMIC_NO_SSR_CODE);throw e.digest=r.NEXT_DYNAMIC_NO_SSR_CODE,e}function i(e){let{children:n}=e;return n}},48607:function(){}},function(e){e.O(0,[470,730,744],function(){return e(e.s=5944)}),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[420],{58004:function(e,i,t){Promise.resolve().then(t.bind(t,77087))},49532:function(e,i,t){"use strict";let a,s;async function r(){if(a||(s||(s=fetch("/api/config").then(e=>e.json()).then(e=>a=e.apiBaseUrl)),await s),void 0===a)throw Error("API base URL is undefined");return a}t.d(i,{b:function(){return r}})},77087:function(e,i,t){"use strict";t.r(i),t.d(i,{default:function(){return er}});var a,s,r=t(24004),n=t(14978),l=t(49532),o=t(49567),c=t(80661),m=t(885),d=t(11520),u=t(32414),h=t(63147),p=t(49578);let g={"Brand Risk":["competitors","politics","excessive-agency","hallucination","imitation","overreliance","harmful:graphic-content","harmful:indiscriminate-weapons","harmful:misinformation-disinformation","harmful:non-violent-crime","harmful:radicalization","harmful:unsafe-practices"],"Legal Risk":["harmful:child-exploitation","harmful:copyright-violations","harmful:cybercrime","harmful:illegal-activities","harmful:illegal-drugs","harmful:intellectual-property","harmful:privacy","harmful:sex-crime","harmful:sexual-content","harmful:specialized-advice","harmful:violent-crime","harmful:self-harm","contracts"],"Malicious Attacks":["debug-access","harmful:harassment-bullying","harmful:hate","harmful:insults","harmful:profanity","hijacking","jailbreak","pii","prompt-injection","rbac","shell-injection","sql-injection"]},f={"Brand Risk":"Risks that can affect the brand reputation and trustworthiness.","Legal Risk":"Risks that can lead to legal consequences or violations.","Malicious Attacks":"Risks involving malicious activities targeting the system or users."};(a=s||(s={})).Critical="Critical",a.High="High",a.Medium="Medium",a.Low="Low";let v={"debug-access":s.High,"excessive-agency":s.Medium,"harmful:child-exploitation":s.Critical,"harmful:copyright-violations":s.Low,"harmful:cybercrime":s.Low,"harmful:graphic-content":s.Medium,"harmful:harassment-bullying":s.Low,"harmful:hate":s.Critical,"harmful:illegal-activities":s.Medium,"harmful:illegal-drugs":s.Medium,"harmful:indiscriminate-weapons":s.Medium,"harmful:insults":s.Low,"harmful:intellectual-property":s.Medium,"harmful:misinformation-disinformation":s.Medium,"harmful:non-violent-crime":s.Medium,"harmful:privacy":s.High,"harmful:profanity":s.Low,"harmful:radicalization":s.Low,"harmful:self-harm":s.Critical,"harmful:sex-crime":s.High,"harmful:sexual-content":s.Medium,"harmful:specialized-advice":s.Medium,"harmful:unsafe-practices":s.Low,"harmful:violent-crime":s.High,"prompt-injection":s.Medium,"shell-injection":s.High,"sql-injection":s.High,competitors:s.Low,contracts:s.Medium,hallucination:s.Medium,hijacking:s.High,imitation:s.Low,jailbreak:s.Medium,overreliance:s.Low,pii:s.High,politics:s.Low,rbac:s.High},x=Object.entries(g).reduce((e,i)=>{let[t,a]=i;return a.forEach(i=>{e[i]=t}),e},{});Object.keys(x);let j={"debug-access":"DebugAccess","excessive-agency":"ExcessiveAgency","harmful:child-exploitation":"Child Exploitation","harmful:cybercrime":"Cybercrime & Unauthorized Intrusion - Hacking and Malware","harmful:graphic-content":"Graphic & age-restricted content","harmful:harassment-bullying":"Harassment & Bullying","harmful:hate":"Hate","harmful:illegal-activities":"Illegal Activities - Fraud & scams","harmful:illegal-drugs":"Illegal Drugs","harmful:indiscriminate-weapons":"Indiscriminate Weapons","harmful:insults":"Insults and personal attacks","harmful:intellectual-property":"Intellectual Property violation","harmful:misinformation-disinformation":"Misinformation & Disinformation - Harmful lies and propaganda","harmful:non-violent-crime":"Non-Violent Crimes","harmful:privacy":"Privacy violations","harmful:profanity":"Requests containing profanity","harmful:radicalization":"Radicalization","harmful:self-harm":"Self-Harm","harmful:sex-crime":"Sex Crimes","harmful:sexual-content":"Sexual Content","harmful:specialized-advice":"Specialized Advice - Financial","harmful:unsafe-practices":"Promotion of unsafe practices","harmful:violent-crime":"Violent Crimes","harmful:chemical-biological-weapons":"Chemical & Biological Weapons","harmful:copyright-violations":"Copyright Violations - Copyrighted text","prompt-injection":"Harmful/Injection","shell-injection":"ShellInjection","sql-injection":"SqlInjection",competitors:"CompetitorEndorsement",contracts:"ContractualCommitment",hallucination:"Hallucination",hijacking:"Hijacking",imitation:"Imitation",jailbreak:"Harmful/Iterative",overreliance:"Overreliance",pii:"PIILeak",politics:"PoliticalStatement",rbac:"RbacEnforcement"},y=Object.entries(j).reduce((e,i)=>{let[t,a]=i;return e[a]=t,e},{}),b={"excessive-agency":"Excessive Agency","prompt-injection":"Prompt Injection",competitors:"Competitor Endorsements",contracts:"Unsupervised Contracts",jailbreak:"Jailbreak",pii:"PII Leaks",politics:"Political Opinions","shell-injection":"Shell Injection","sql-injection":"SQL Injection",rbac:"RBAC Enforcement","debug-access":"Debug Access","harmful:specialized-advice":"Specialized Advice","harmful:illegal-activities":"Illegal Activities","harmful:cybercrime":"Cybercrime","harmful:copyright-violations":"Copyright Violations","harmful:misinformation-disinformation":"Misinformation & disinformation"},w={competitors:"Competitor mentions and endorsements",contracts:"Enters business or legal commitments without supervision.","debug-access":"Attempts to access or use debugging commands.","excessive-agency":"Model taking excessive initiative or misunderstanding its capabilities.",hallucination:"Model generating false or misleading information.",harmful:"All harmful categories","harmful:chemical-biological-weapons":"Content related to chemical or biological weapons","harmful:child-exploitation":"Content exploiting or harming children.","harmful:copyright-violations":"Content violating copyright laws.","harmful:cybercrime":"Content related to cybercriminal activities.","harmful:graphic-content":"Displaying graphic or violent content.","harmful:harassment-bullying":"Content that harasses or bullies individuals.","harmful:hate":"Content that promotes hate or discrimination.","harmful:illegal-activities":"Content promoting illegal activities.","harmful:illegal-drugs":"Content related to illegal drug use or trade.","harmful:indiscriminate-weapons":"Content related to weapons without context.","harmful:insults":"Content that insults or demeans individuals.","harmful:intellectual-property":"Content violating intellectual property rights.","harmful:misinformation-disinformation":"Spreading false or misleading information.","harmful:non-violent-crime":"Content related to non-violent criminal activities.","harmful:privacy":"Content violating privacy rights.","harmful:profanity":"Content containing profane or inappropriate language.","harmful:radicalization":"Content that promotes radical or extremist views.","harmful:self-harm":"Content that encourages self-harm or suicide.","harmful:sex-crime":"Content related to sexual crimes.","harmful:sexual-content":"Explicit or inappropriate sexual content.","harmful:specialized-advice":"Providing advice in specialized fields without expertise.","harmful:unsafe-practices":"Content promoting unsafe or harmful practices.","harmful:violent-crime":"Content related to violent criminal activities.",hijacking:"Unauthorized or off-topic resource use.",imitation:"Imitates people, brands, or organizations.",jailbreak:"Attempts to bypass security measures through iterative prompt refinement.","jailbreak:tree":"Experimental: More expensive and time-consuming jailbreak technique for improved results.",overreliance:"Model susceptible to relying on an incorrect user assumption or input.",pii:"All PII categories","pii:api-db":"PII exposed through API or database","pii:direct":"Direct exposure of PII","pii:session":"PII exposed in session data","pii:social":"PII exposed through social engineering",politics:"Makes political statements.","prompt-injection":"Malicious inputs designed to manipulate the model's behavior.",rbac:"Tests whether the model properly implements Role-Based Access Control (RBAC).","shell-injection":"Attempts to execute shell commands through the model.","sql-injection":"Attempts to perform SQL injection attacks to manipulate database queries."};t(4309);var C=e=>{let{categoryStats:i}=e,t=[s.Critical,s.High,s.Medium,s.Low],a=t.reduce((e,t)=>(e[t]=Object.keys(i).reduce((e,i)=>v[i]===t?e+1:e,0),e),{});return(0,r.jsx)(u.Z,{spacing:2,direction:{xs:"column",sm:"row"},children:t.map(e=>(0,r.jsx)(o.Z,{flex:1,children:(0,r.jsx)(c.Z,{className:"severity-card card-".concat(e.toLowerCase()),children:(0,r.jsxs)(p.Z,{onClick:()=>window.location.hash="#table",children:[(0,r.jsx)(h.Z,{variant:"h6",gutterBottom:!0,children:e}),(0,r.jsx)(h.Z,{variant:"h4",color:"text.primary",children:a[e]}),(0,r.jsx)(h.Z,{variant:"body2",color:"text.secondary",children:"issues"})]})})},e))})},k=t(75307),Z=t(40982),R=t(29794),I=t(22701),P=t(51956),A=t(82669),L=t(77656),S=t(97540),M=t(37204),F=t(79685),N=t(74595);let H={getItem:async e=>await (0,M.U2)(e)||null,setItem:async(e,i)=>{await (0,M.t8)(e,i)},removeItem:async e=>{await (0,M.IV)(e)}},z=(0,F.Ue)()((0,N.tJ)(e=>({showPercentagesOnRiskCards:!1,setShowPercentagesOnRiskCards:i=>e(()=>({showPercentagesOnRiskCards:i})),pluginPassRateThreshold:1,setPluginPassRateThreshold:i=>e(()=>({pluginPassRateThreshold:i}))}),{name:"ReportViewStorage",storage:(0,N.FL)(()=>H)}));var E=()=>{let{showPercentagesOnRiskCards:e,setShowPercentagesOnRiskCards:i,pluginPassRateThreshold:t,setPluginPassRateThreshold:a}=z(),[s,l]=n.useState(!1),o=()=>{l(!1)};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(L.Z,{onClick:()=>{l(!0)},sx:{position:"absolute",top:8,right:8},"aria-label":"settings",children:(0,r.jsx)(k.Z,{})}),(0,r.jsxs)(R.Z,{open:s,onClose:o,fullWidth:!0,maxWidth:"sm",children:[(0,r.jsx)(A.Z,{children:"Report Settings"}),(0,r.jsxs)(P.Z,{children:[(0,r.jsx)(h.Z,{component:"div",sx:{padding:"16px 0"},children:(0,r.jsxs)("label",{style:{display:"flex",alignItems:"center",cursor:"pointer"},children:[(0,r.jsx)("input",{type:"checkbox",checked:e,onChange:e=>i(e.target.checked),style:{marginRight:"10px"}}),"Show percentages on risk cards"]})}),(0,r.jsxs)(h.Z,{component:"div",sx:{padding:"16px 0"},children:[(0,r.jsxs)("label",{children:["Plugin Pass Rate Threshold: ",(100*t).toFixed(0),"%"]}),(0,r.jsx)(h.Z,{variant:"body2",color:"textSecondary",sx:{mt:1},children:"Sets the threshold for considering a plugin as passed on the risk cards."}),(0,r.jsx)(S.ZP,{value:t,onChange:(e,i)=>a(i),"aria-labelledby":"plugin-pass-rate-threshold-slider",step:.05,marks:!0,min:0,max:1,valueLabelDisplay:"auto",valueLabelFormat:e=>"".concat((100*e).toFixed(0),"%")})]})]}),(0,r.jsx)(I.Z,{children:(0,r.jsx)(Z.Z,{onClick:o,variant:"contained",color:"primary",children:"Close"})})]})]})},D=t(63362),U=t(18845),W=t(93650),O=t(47908),T=t(85912),q=t(94941),B=t(65969),V=t(48670);t(46553);var _=e=>{let{title:i,subtitle:t,progressValue:a,numTestsPassed:s,numTestsFailed:n,testTypes:l}=e,{showPercentagesOnRiskCards:m,pluginPassRateThreshold:d}=z();return(0,r.jsx)(c.Z,{children:(0,r.jsx)(p.Z,{className:"risk-card-container",children:(0,r.jsxs)(W.ZP,{container:!0,spacing:3,children:[(0,r.jsxs)(W.ZP,{item:!0,xs:12,md:6,style:{display:"flex",flexDirection:"column",alignItems:"center",textAlign:"center"},children:[(0,r.jsx)(h.Z,{variant:"h5",className:"risk-card-title",children:i}),(0,r.jsx)(h.Z,{variant:"subtitle1",color:"textSecondary",mb:2,children:t}),(0,r.jsx)(o.Z,{sx:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",width:100,height:100},children:(0,r.jsx)(V.a,{value:a,max:100,thickness:10,arc:{startAngle:-90,endAngle:90,color:"primary.main"},text:"".concat(Math.round(a),"%"),sx:{width:"100%",height:"100%"}})}),(0,r.jsxs)(h.Z,{variant:"h6",className:"risk-card-issues",children:[n," failed probes"]}),(0,r.jsxs)(h.Z,{variant:"subtitle1",color:"textSecondary",className:"risk-card-tests-passed",children:[s,"/",s+n," passed"]})]}),(0,r.jsx)(W.ZP,{item:!0,xs:6,md:4,children:(0,r.jsx)(O.Z,{dense:!0,children:l.map((e,i)=>(0,r.jsx)(B.Z,{title:w[e.name],placement:"left",arrow:!0,children:(0,r.jsxs)(T.ZP,{className:"risk-card-list-item",onClick:i=>{let t=new URLSearchParams(window.location.search),a=t.get("evalId"),s=j[e.name],r="/eval/?evalId=".concat(a,"&search=").concat(encodeURIComponent("(var=".concat(s,"|metric=").concat(s,")")));i.ctrlKey||i.metaKey?window.open(r,"_blank"):window.location.href=r},style:{cursor:"pointer"},children:[(0,r.jsx)(q.Z,{primary:b[e.name]||j[e.name],primaryTypographyProps:{variant:"body2"}}),m?(0,r.jsx)(h.Z,{variant:"body2",className:"risk-card-percentage ".concat(e.percentage>=.8?"risk-card-percentage-high":e.percentage>=.5?"risk-card-percentage-medium":"risk-card-percentage-low"),children:"".concat(Math.round(100*e.percentage),"%")}):e.percentage>=d?(0,r.jsx)(U.Z,{className:"risk-card-icon-passed"}):(0,r.jsx)(D.Z,{className:"risk-card-icon-failed"})]})},i))})})]})})})};t(32991);var J=e=>{let{categoryStats:i}=e,t=Object.keys(g).map(e=>({name:e,passed:g[e].every(e=>{var t,a;return(null===(t=i[e])||void 0===t?void 0:t.pass)===(null===(a=i[e])||void 0===a?void 0:a.total)})}));return(0,r.jsx)(u.Z,{spacing:4,children:t.map((e,t)=>{let a=e.name,s=g[a],n=s.reduce((e,t)=>{var a;return e+((null===(a=i[t])||void 0===a?void 0:a.pass)||0)},0),l=s.reduce((e,t)=>{var a;return e+((null===(a=i[t])||void 0===a?void 0:a.total)||0)},0);return(0,r.jsx)(_,{title:e.name,subtitle:f[a],progressValue:n/l*100,numTestsPassed:n,numTestsFailed:l-n,testTypes:s.map(e=>{var t,a,s,r;return{name:e,passed:(null===(t=i[e])||void 0===t?void 0:t.pass)===(null===(a=i[e])||void 0===a?void 0:a.total),percentage:((null===(s=i[e])||void 0===s?void 0:s.pass)||1)/((null===(r=i[e])||void 0===r?void 0:r.total)||1)}})},t)})})},K=t(65068),Q=t(70417),G=t(21303),X=t(61451),Y=t(26485),$=t(38592),ee=t(30021),ei=t(19708),et=t(28891);t(93091);let ea=e=>{let i=[];for(let[t,a]of Object.entries(g))for(let t of a)i.push({pluginName:t,type:j[t]||t,description:w[t]||"",passRate:e[t]?(e[t].pass/e[t].total*100).toFixed(1)+"%":"N/A",passRateWithFilter:e[t]?(e[t].passWithFilter/e[t].total*100).toFixed(1)+"%":"N/A",severity:v[t]||"Unknown"});return i.sort((e,i)=>"N/A"===e.passRate?1:"N/A"===i.passRate?-1:parseFloat(e.passRate)-parseFloat(i.passRate))};var es=e=>{let{evalId:i,categoryStats:t}=e;(0,et.useRouter)();let a=ea(t).filter(e=>"N/A"!==e.passRate),[s,l]=n.useState(0),[c,m]=n.useState(10),[d,u]=n.useState("asc"),[p,g]=n.useState("default"),f=e=>{let i=p===e&&"asc"===d;u(i?"desc":"asc"),g(e)};return(0,r.jsxs)(o.Z,{children:[(0,r.jsx)(h.Z,{variant:"h5",gutterBottom:!0,id:"table",children:"Vulnerabilities and Mitigations"}),(0,r.jsxs)(X.Z,{children:[(0,r.jsxs)(K.Z,{children:[(0,r.jsx)(Y.Z,{children:(0,r.jsxs)(ee.Z,{children:[(0,r.jsx)(G.Z,{children:"Type"}),(0,r.jsx)(G.Z,{children:"Description"}),(0,r.jsx)(G.Z,{children:(0,r.jsx)(ei.Z,{active:"passRate"===p,direction:"passRate"===p?d:"asc",onClick:()=>f("passRate"),children:"Pass rate"})}),(0,r.jsx)(G.Z,{children:(0,r.jsx)(ei.Z,{active:"severity"===p,direction:"severity"===p?d:"asc",onClick:()=>f("severity"),children:"Severity"})}),(0,r.jsx)(G.Z,{style:{minWidth:"275px"},children:"Actions"})]})}),(0,r.jsx)(Q.Z,{children:a.sort((e,i)=>{if("passRate"===p)return"N/A"===e.passRate?1:"N/A"===i.passRate?-1:"asc"===d?parseFloat(e.passRate)-parseFloat(i.passRate):parseFloat(i.passRate)-parseFloat(e.passRate);if("severity"===p){if("N/A"===e.passRate)return 1;if("N/A"===i.passRate)return -1;let t={Critical:4,High:3,Medium:2,Low:1};return"asc"===d?t[e.severity]-t[i.severity]:t[i.severity]-t[e.severity]}{let t={Critical:4,High:3,Medium:2,Low:1};return e.severity===i.severity?parseFloat(e.passRate)-parseFloat(i.passRate):t[i.severity]-t[e.severity]}}).slice(s*c,s*c+c).map((e,i)=>{let t="";if("N/A"!==e.passRate){let i=parseFloat(e.passRate);t=i>=75?"pass-high":i>=50?"pass-medium":"pass-low"}return(0,r.jsxs)(ee.Z,{children:[(0,r.jsx)(G.Z,{children:(0,r.jsx)("span",{style:{fontWeight:500},children:b[e.pluginName]||e.type})}),(0,r.jsx)(G.Z,{children:e.description}),(0,r.jsxs)(G.Z,{className:t,children:[(0,r.jsx)("strong",{children:e.passRate}),e.passRateWithFilter!==e.passRate?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("br",{}),"(",e.passRateWithFilter," with mitigation)"]}):null]}),(0,r.jsx)(G.Z,{className:"vuln-".concat(e.severity.toLowerCase()),children:e.severity}),(0,r.jsxs)(G.Z,{style:{minWidth:270},children:[(0,r.jsx)(Z.Z,{variant:"contained",size:"small",onClick:()=>{let i=new URLSearchParams(window.location.search),t=i.get("evalId");window.location.href="/eval/?evalId=".concat(t,"&search=").concat(encodeURIComponent("(var=".concat(e.type,"|metric=").concat(e.type,")")))},children:"View logs"}),(0,r.jsx)(B.Z,{title:"Temporarily disabled while in beta, click to contact us to enable",children:(0,r.jsx)(Z.Z,{variant:"contained",size:"small",color:"inherit",style:{marginLeft:8},onClick:()=>{window.location.href="mailto:inquiries@promptfoo.dev?subject=Promptfoo%20automatic%20vulnerability%20mitigation&body=Hello%20Promptfoo%20Team,%0D%0A%0D%0AI%20am%20interested%20in%20learning%20more%20about%20the%20automatic%20vulnerability%20mitigation%20beta.%20Please%20provide%20me%20with%20more%20details.%0D%0A%0D%0A"},children:"Apply mitigation"})})]})]},i)})})]}),a.length>c&&(0,r.jsx)($.Z,{rowsPerPageOptions:[10,25,50],component:"div",count:a.length,rowsPerPage:c,page:s,onPageChange:(e,i)=>{l(i)},onRowsPerPageChange:e=>{m(parseInt(e.target.value,10)),l(0)}})]})]})};t(67667);var er=()=>{let[e,i]=n.useState(null),[t,a]=n.useState(null);if(n.useEffect(()=>{let e=async e=>{let i=await fetch("".concat(await (0,l.b)(),"/api/results/").concat(e),{cache:"no-store"}),t=await i.json();a(t.data)},t=new URLSearchParams(window.location.search);if(!t)return;let s=t.get("evalId");s&&(i(s),e(s))},[]),n.useEffect(()=>{document.title="Report: ".concat((null==t?void 0:t.config.description)||e||"Red Team"," | promptfoo")},[t,e]),!t||!e)return(0,r.jsx)(o.Z,{sx:{width:"100%",textAlign:"center"},children:"Loading..."});let s=t.results.table.head.prompts[0],p=t.results.table.body,g=t.results.results.reduce((e,i)=>{var t,a,s,r,n,l,o,c;let m=i.vars.harmCategory,d=(null===(a=i.gradingResult)||void 0===a?void 0:null===(t=a.componentResults)||void 0===t?void 0:t.map(e=>{var i;return null===(i=e.assertion)||void 0===i?void 0:i.metric}))||[],u=[m,...d].filter(e=>e);for(let t of u){if("string"!=typeof t)continue;let a=y[t.split("/")[0]];if(!a){console.log("Unknown harm category:",t);break}i.success;let m=null===(r=i.gradingResult)||void 0===r?void 0:null===(s=r.componentResults)||void 0===s?void 0:s.some(e=>{var i;let t=(null===(i=e.assertion)||void 0===i?void 0:i.type)==="moderation",a=e.pass;return t&&a}),d=null===(l=i.gradingResult)||void 0===l?void 0:null===(n=l.componentResults)||void 0===n?void 0:n.some(e=>{var i,t;let a=(null===(i=e.assertion)||void 0===i?void 0:i.type)==="llm-rubric"||(null===(t=e.assertion)||void 0===t?void 0:t.type.startsWith("promptfoo:redteam")),s=e.pass;return a&&s}),u=null===(c=i.gradingResult)||void 0===c?void 0:null===(o=c.componentResults)||void 0===o?void 0:o.some(e=>{var i;let t=(null===(i=e.assertion)||void 0===i?void 0:i.type)==="human",a=e.pass;return t&&a});e[a]=e[a]||{pass:0,total:0,passWithFilter:0},e[a].total++,d||u?(e[a].pass++,e[a].passWithFilter++):!m&&e[a].passWithFilter++}return e},{});return(0,r.jsx)(d.Z,{children:(0,r.jsxs)(u.Z,{spacing:4,pb:8,pt:2,children:[(0,r.jsxs)(c.Z,{className:"report-header",sx:{position:"relative"},children:[(0,r.jsx)(E,{}),(0,r.jsxs)(h.Z,{variant:"h4",children:[(0,r.jsx)("strong",{children:"LLM Risk Assessment"}),t.config.description&&": ".concat(t.config.description)]}),(0,r.jsx)(h.Z,{variant:"subtitle1",mb:2,children:new Date(t.createdAt).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})}),(0,r.jsxs)(o.Z,{className:"report-details",children:[(0,r.jsx)(m.Z,{size:"small",label:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("strong",{children:"Model:"})," ",s.provider]})}),(0,r.jsx)(m.Z,{size:"small",label:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("strong",{children:"Dataset:"})," ",p.length," probes"]})}),(0,r.jsx)(m.Z,{size:"small",label:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("strong",{children:"Prompt:"}),' "',s.raw.length>40?"".concat(s.raw.substring(0,40),"..."):s.raw,'"']})})]})]}),(0,r.jsx)(C,{categoryStats:g}),(0,r.jsx)(J,{categoryStats:g}),(0,r.jsx)(es,{evalId:e,categoryStats:g})]})})}},4309:function(){},67667:function(){},46553:function(){},32991:function(){},93091:function(){}},function(e){e.O(0,[903,916,493,304,281,969,378,476,515,347,470,730,744],function(){return e(e.s=58004)}),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[420],{58004:function(e,i,t){Promise.resolve().then(t.bind(t,77087))},49532:function(e,i,t){"use strict";let a,s;async function r(){if(a||(s||(s=fetch("/api/config").then(e=>e.json()).then(e=>a=e.apiBaseUrl)),await s),void 0===a)throw Error("API base URL is undefined");return a}t.d(i,{b:function(){return r}})},77087:function(e,i,t){"use strict";t.r(i),t.d(i,{default:function(){return en}});var a,s,r=t(24004),n=t(14978),l=t(49532),o=t(49567),c=t(80661),d=t(885),m=t(11520),u=t(32414),h=t(63147),p=t(49578);let g={"Brand Risk":["competitors","politics","excessive-agency","hallucination","imitation","overreliance","harmful:graphic-content","harmful:indiscriminate-weapons","harmful:misinformation-disinformation","harmful:non-violent-crime","harmful:radicalization","harmful:unsafe-practices"],"Legal Risk":["harmful:child-exploitation","harmful:copyright-violations","harmful:cybercrime","harmful:illegal-activities","harmful:illegal-drugs","harmful:intellectual-property","harmful:privacy","harmful:sex-crime","harmful:sexual-content","harmful:specialized-advice","harmful:violent-crime","harmful:self-harm","contracts"],"Malicious Attacks":["debug-access","harmful:harassment-bullying","harmful:hate","harmful:insults","harmful:profanity","hijacking","jailbreak","pii","prompt-injection","rbac","shell-injection","sql-injection"]},f={"Brand Risk":"Risks that can affect the brand reputation and trustworthiness.","Legal Risk":"Risks that can lead to legal consequences or violations.","Malicious Attacks":"Risks involving malicious activities targeting the system or users."};(a=s||(s={})).Critical="Critical",a.High="High",a.Medium="Medium",a.Low="Low";let v={"debug-access":s.High,"excessive-agency":s.Medium,"harmful:child-exploitation":s.Critical,"harmful:copyright-violations":s.Low,"harmful:cybercrime":s.Low,"harmful:graphic-content":s.Medium,"harmful:harassment-bullying":s.Low,"harmful:hate":s.Critical,"harmful:illegal-activities":s.Medium,"harmful:illegal-drugs":s.Medium,"harmful:indiscriminate-weapons":s.Medium,"harmful:insults":s.Low,"harmful:intellectual-property":s.Medium,"harmful:misinformation-disinformation":s.Medium,"harmful:non-violent-crime":s.Medium,"harmful:privacy":s.High,"harmful:profanity":s.Low,"harmful:radicalization":s.Low,"harmful:self-harm":s.Critical,"harmful:sex-crime":s.High,"harmful:sexual-content":s.Medium,"harmful:specialized-advice":s.Medium,"harmful:unsafe-practices":s.Low,"harmful:violent-crime":s.High,"prompt-injection":s.Medium,"shell-injection":s.High,"sql-injection":s.High,competitors:s.Low,contracts:s.Medium,hallucination:s.Medium,hijacking:s.High,imitation:s.Low,jailbreak:s.Medium,overreliance:s.Low,pii:s.High,politics:s.Low,rbac:s.High},x=Object.entries(g).reduce((e,i)=>{let[t,a]=i;return a.forEach(i=>{e[i]=t}),e},{});Object.keys(x);let j={"debug-access":"DebugAccess","excessive-agency":"ExcessiveAgency","harmful:child-exploitation":"Child Exploitation","harmful:cybercrime":"Cybercrime & Unauthorized Intrusion - Hacking and Malware","harmful:graphic-content":"Graphic & age-restricted content","harmful:harassment-bullying":"Harassment & Bullying","harmful:hate":"Hate","harmful:illegal-activities":"Illegal Activities - Fraud & scams","harmful:illegal-drugs":"Illegal Drugs","harmful:indiscriminate-weapons":"Indiscriminate Weapons","harmful:insults":"Insults and personal attacks","harmful:intellectual-property":"Intellectual Property violation","harmful:misinformation-disinformation":"Misinformation & Disinformation - Harmful lies and propaganda","harmful:non-violent-crime":"Non-Violent Crimes","harmful:privacy":"Privacy violations","harmful:profanity":"Requests containing profanity","harmful:radicalization":"Radicalization","harmful:self-harm":"Self-Harm","harmful:sex-crime":"Sex Crimes","harmful:sexual-content":"Sexual Content","harmful:specialized-advice":"Specialized Advice - Financial","harmful:unsafe-practices":"Promotion of unsafe practices","harmful:violent-crime":"Violent Crimes","harmful:chemical-biological-weapons":"Chemical & Biological Weapons","harmful:copyright-violations":"Copyright Violations - Copyrighted text","prompt-injection":"Harmful/Injection","shell-injection":"ShellInjection","sql-injection":"SqlInjection",competitors:"CompetitorEndorsement",contracts:"ContractualCommitment",hallucination:"Hallucination",hijacking:"Hijacking",imitation:"Imitation",jailbreak:"Harmful/Iterative",overreliance:"Overreliance",pii:"PIILeak",politics:"PoliticalStatement",rbac:"RbacEnforcement"},y=Object.entries(j).reduce((e,i)=>{let[t,a]=i;return e[a]=t,e},{}),b={"excessive-agency":"Excessive Agency","prompt-injection":"Prompt Injection",competitors:"Competitor Endorsements",contracts:"Unsupervised Contracts",jailbreak:"Jailbreak",pii:"PII Leaks",politics:"Political Opinions","shell-injection":"Shell Injection","sql-injection":"SQL Injection",rbac:"RBAC Enforcement","debug-access":"Debug Access","harmful:specialized-advice":"Specialized Advice","harmful:illegal-activities":"Illegal Activities","harmful:cybercrime":"Cybercrime","harmful:copyright-violations":"Copyright Violations","harmful:misinformation-disinformation":"Misinformation & disinformation"},w={competitors:"Competitor mentions and endorsements",contracts:"Enters business or legal commitments without supervision.","debug-access":"Attempts to access or use debugging commands.","excessive-agency":"Model taking excessive initiative or misunderstanding its capabilities.",hallucination:"Model generating false or misleading information.",harmful:"All harmful categories","harmful:chemical-biological-weapons":"Content related to chemical or biological weapons","harmful:child-exploitation":"Content exploiting or harming children.","harmful:copyright-violations":"Content violating copyright laws.","harmful:cybercrime":"Content related to cybercriminal activities.","harmful:graphic-content":"Displaying graphic or violent content.","harmful:harassment-bullying":"Content that harasses or bullies individuals.","harmful:hate":"Content that promotes hate or discrimination.","harmful:illegal-activities":"Content promoting illegal activities.","harmful:illegal-drugs":"Content related to illegal drug use or trade.","harmful:indiscriminate-weapons":"Content related to weapons without context.","harmful:insults":"Content that insults or demeans individuals.","harmful:intellectual-property":"Content violating intellectual property rights.","harmful:misinformation-disinformation":"Spreading false or misleading information.","harmful:non-violent-crime":"Content related to non-violent criminal activities.","harmful:privacy":"Content violating privacy rights.","harmful:profanity":"Content containing profane or inappropriate language.","harmful:radicalization":"Content that promotes radical or extremist views.","harmful:self-harm":"Content that encourages self-harm or suicide.","harmful:sex-crime":"Content related to sexual crimes.","harmful:sexual-content":"Explicit or inappropriate sexual content.","harmful:specialized-advice":"Providing advice in specialized fields without expertise.","harmful:unsafe-practices":"Content promoting unsafe or harmful practices.","harmful:violent-crime":"Content related to violent criminal activities.",hijacking:"Unauthorized or off-topic resource use.",imitation:"Imitates people, brands, or organizations.",jailbreak:"Attempts to bypass security measures through iterative prompt refinement.","jailbreak:tree":"Experimental: More expensive and time-consuming jailbreak technique for improved results.",overreliance:"Model susceptible to relying on an incorrect user assumption or input.",pii:"All PII categories","pii:api-db":"PII exposed through API or database","pii:direct":"Direct exposure of PII","pii:session":"PII exposed in session data","pii:social":"PII exposed through social engineering",politics:"Makes political statements.","prompt-injection":"Malicious inputs designed to manipulate the model's behavior.",rbac:"Tests whether the model properly implements Role-Based Access Control (RBAC).","shell-injection":"Attempts to execute shell commands through the model.","sql-injection":"Attempts to perform SQL injection attacks to manipulate database queries."};t(4309);var k=e=>{let{categoryStats:i}=e,t=[s.Critical,s.High,s.Medium,s.Low],a=t.reduce((e,t)=>(e[t]=Object.keys(i).reduce((e,i)=>v[i]===t?e+1:e,0),e),{});return(0,r.jsx)(u.Z,{spacing:2,direction:{xs:"column",sm:"row"},children:t.map(e=>(0,r.jsx)(o.Z,{flex:1,children:(0,r.jsx)(c.Z,{className:"severity-card card-".concat(e.toLowerCase()),children:(0,r.jsxs)(p.Z,{onClick:()=>window.location.hash="#table",children:[(0,r.jsx)(h.Z,{variant:"h6",gutterBottom:!0,children:e}),(0,r.jsx)(h.Z,{variant:"h4",color:"text.primary",children:a[e]}),(0,r.jsx)(h.Z,{variant:"body2",color:"text.secondary",children:"issues"})]})})},e))})},C=t(75307),Z=t(40982),R=t(29794),I=t(22701),P=t(51956),A=t(82669),L=t(77656),S=t(97540),M=t(37204),F=t(79685),N=t(74595);let H={getItem:async e=>await (0,M.U2)(e)||null,setItem:async(e,i)=>{await (0,M.t8)(e,i)},removeItem:async e=>{await (0,M.IV)(e)}},z=(0,F.Ue)()((0,N.tJ)(e=>({showPercentagesOnRiskCards:!1,setShowPercentagesOnRiskCards:i=>e(()=>({showPercentagesOnRiskCards:i})),pluginPassRateThreshold:1,setPluginPassRateThreshold:i=>e(()=>({pluginPassRateThreshold:i}))}),{name:"ReportViewStorage",storage:(0,N.FL)(()=>H)}));var E=()=>{let{showPercentagesOnRiskCards:e,setShowPercentagesOnRiskCards:i,pluginPassRateThreshold:t,setPluginPassRateThreshold:a}=z(),[s,l]=n.useState(!1),o=()=>{l(!1)};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(L.Z,{onClick:()=>{l(!0)},sx:{position:"absolute",top:8,right:8},"aria-label":"settings",children:(0,r.jsx)(C.Z,{})}),(0,r.jsxs)(R.Z,{open:s,onClose:o,fullWidth:!0,maxWidth:"sm",children:[(0,r.jsx)(A.Z,{children:"Report Settings"}),(0,r.jsxs)(P.Z,{children:[(0,r.jsx)(h.Z,{component:"div",sx:{padding:"16px 0"},children:(0,r.jsxs)("label",{style:{display:"flex",alignItems:"center",cursor:"pointer"},children:[(0,r.jsx)("input",{type:"checkbox",checked:e,onChange:e=>i(e.target.checked),style:{marginRight:"10px"}}),"Show percentages on risk cards"]})}),(0,r.jsxs)(h.Z,{component:"div",sx:{padding:"16px 0"},children:[(0,r.jsxs)("label",{children:["Plugin Pass Rate Threshold: ",(100*t).toFixed(0),"%"]}),(0,r.jsx)(h.Z,{variant:"body2",color:"textSecondary",sx:{mt:1},children:"Sets the threshold for considering a plugin as passed on the risk cards."}),(0,r.jsx)(S.ZP,{value:t,onChange:(e,i)=>a(i),"aria-labelledby":"plugin-pass-rate-threshold-slider",step:.05,marks:!0,min:0,max:1,valueLabelDisplay:"auto",valueLabelFormat:e=>"".concat((100*e).toFixed(0),"%")})]})]}),(0,r.jsx)(I.Z,{children:(0,r.jsx)(Z.Z,{onClick:o,variant:"contained",color:"primary",children:"Close"})})]})]})},D=t(63362),U=t(18845),W=t(69555),O=t(93650),T=t(47908),q=t(85912),B=t(94941),V=t(65969),_=t(48670);t(46553);var J=e=>{let{title:i,subtitle:t,progressValue:a,numTestsPassed:s,numTestsFailed:n,testTypes:l}=e,{showPercentagesOnRiskCards:d,pluginPassRateThreshold:m}=z();return(0,r.jsx)(c.Z,{children:(0,r.jsx)(p.Z,{className:"risk-card-container",children:(0,r.jsxs)(O.ZP,{container:!0,spacing:3,children:[(0,r.jsxs)(O.ZP,{item:!0,xs:12,md:6,style:{display:"flex",flexDirection:"column",alignItems:"center",textAlign:"center"},children:[(0,r.jsx)(h.Z,{variant:"h5",className:"risk-card-title",children:i}),(0,r.jsx)(h.Z,{variant:"subtitle1",color:"textSecondary",mb:2,children:t}),(0,r.jsx)(o.Z,{sx:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",width:100,height:100},children:(0,r.jsx)(_.a,{value:a,max:100,thickness:10,arc:{startAngle:-90,endAngle:90,color:"primary.main"},text:"".concat(Math.round(a),"%"),sx:{width:"100%",height:"100%"}})}),(0,r.jsxs)(h.Z,{variant:"h6",className:"risk-card-issues",children:[n," failed probes"]}),(0,r.jsxs)(h.Z,{variant:"subtitle1",color:"textSecondary",className:"risk-card-tests-passed",children:[s,"/",s+n," passed"]})]}),(0,r.jsx)(O.ZP,{item:!0,xs:6,md:4,children:(0,r.jsx)(T.Z,{dense:!0,children:l.map((e,i)=>(0,r.jsx)(V.Z,{title:w[e.name],placement:"left",arrow:!0,children:(0,r.jsxs)(q.ZP,{className:"risk-card-list-item",onClick:i=>{let t=new URLSearchParams(window.location.search),a=t.get("evalId"),s=j[e.name],r="/eval/?evalId=".concat(a,"&search=").concat(encodeURIComponent("(var=".concat(s,"|metric=").concat(s,")")));i.ctrlKey||i.metaKey?window.open(r,"_blank"):window.location.href=r},style:{cursor:"pointer"},children:[(0,r.jsx)(B.Z,{primary:b[e.name]||j[e.name],primaryTypographyProps:{variant:"body2"}}),d?(0,r.jsx)(h.Z,{variant:"body2",className:"risk-card-percentage ".concat(e.percentage>=.8?"risk-card-percentage-high":e.percentage>=.5?"risk-card-percentage-medium":"risk-card-percentage-low"),children:"".concat(Math.round(100*e.percentage),"%")}):0===e.total?(0,r.jsx)(W.Z,{className:"risk-card-icon-no-tests"}):e.percentage>=m?(0,r.jsx)(U.Z,{className:"risk-card-icon-passed"}):(0,r.jsx)(D.Z,{className:"risk-card-icon-failed"})]})},i))})})]})})})};t(32991);var K=e=>{let{categoryStats:i}=e,t=Object.keys(g).map(e=>({name:e,passed:g[e].every(e=>{var t,a;return(null===(t=i[e])||void 0===t?void 0:t.pass)===(null===(a=i[e])||void 0===a?void 0:a.total)})}));return(0,r.jsx)(u.Z,{spacing:4,children:t.map((e,t)=>{let a=e.name,s=g[a],n=s.reduce((e,t)=>{var a;return e+((null===(a=i[t])||void 0===a?void 0:a.pass)||0)},0),l=s.reduce((e,t)=>{var a;return e+((null===(a=i[t])||void 0===a?void 0:a.total)||0)},0);return(0,r.jsx)(J,{title:e.name,subtitle:f[a],progressValue:n/l*100,numTestsPassed:n,numTestsFailed:l-n,testTypes:s.map(e=>{var t,a,s,r,n;return{name:e,passed:(null===(t=i[e])||void 0===t?void 0:t.pass)===(null===(a=i[e])||void 0===a?void 0:a.total),percentage:((null===(s=i[e])||void 0===s?void 0:s.pass)||1)/((null===(r=i[e])||void 0===r?void 0:r.total)||1),total:(null===(n=i[e])||void 0===n?void 0:n.total)||0}})},t)})})},Q=t(65068),G=t(70417),X=t(21303),Y=t(61451),$=t(26485),ee=t(38592),ei=t(30021),et=t(19708),ea=t(28891);t(93091);let es=e=>{let i=[];for(let[t,a]of Object.entries(g))for(let t of a)i.push({pluginName:t,type:j[t]||t,description:w[t]||"",passRate:e[t]?(e[t].pass/e[t].total*100).toFixed(1)+"%":"N/A",passRateWithFilter:e[t]?(e[t].passWithFilter/e[t].total*100).toFixed(1)+"%":"N/A",severity:v[t]||"Unknown"});return i.sort((e,i)=>"N/A"===e.passRate?1:"N/A"===i.passRate?-1:parseFloat(e.passRate)-parseFloat(i.passRate))};var er=e=>{let{evalId:i,categoryStats:t}=e;(0,ea.useRouter)();let a=es(t).filter(e=>"N/A"!==e.passRate),[s,l]=n.useState(0),[c,d]=n.useState(10),[m,u]=n.useState("asc"),[p,g]=n.useState("default"),f=e=>{let i=p===e&&"asc"===m;u(i?"desc":"asc"),g(e)};return(0,r.jsxs)(o.Z,{children:[(0,r.jsx)(h.Z,{variant:"h5",gutterBottom:!0,id:"table",children:"Vulnerabilities and Mitigations"}),(0,r.jsxs)(Y.Z,{children:[(0,r.jsxs)(Q.Z,{children:[(0,r.jsx)($.Z,{children:(0,r.jsxs)(ei.Z,{children:[(0,r.jsx)(X.Z,{children:"Type"}),(0,r.jsx)(X.Z,{children:"Description"}),(0,r.jsx)(X.Z,{children:(0,r.jsx)(et.Z,{active:"passRate"===p,direction:"passRate"===p?m:"asc",onClick:()=>f("passRate"),children:"Pass rate"})}),(0,r.jsx)(X.Z,{children:(0,r.jsx)(et.Z,{active:"severity"===p,direction:"severity"===p?m:"asc",onClick:()=>f("severity"),children:"Severity"})}),(0,r.jsx)(X.Z,{style:{minWidth:"275px"},children:"Actions"})]})}),(0,r.jsx)(G.Z,{children:a.sort((e,i)=>{if("passRate"===p)return"N/A"===e.passRate?1:"N/A"===i.passRate?-1:"asc"===m?parseFloat(e.passRate)-parseFloat(i.passRate):parseFloat(i.passRate)-parseFloat(e.passRate);if("severity"===p){if("N/A"===e.passRate)return 1;if("N/A"===i.passRate)return -1;let t={Critical:4,High:3,Medium:2,Low:1};return"asc"===m?t[e.severity]-t[i.severity]:t[i.severity]-t[e.severity]}{let t={Critical:4,High:3,Medium:2,Low:1};return e.severity===i.severity?parseFloat(e.passRate)-parseFloat(i.passRate):t[i.severity]-t[e.severity]}}).slice(s*c,s*c+c).map((e,i)=>{let t="";if("N/A"!==e.passRate){let i=parseFloat(e.passRate);t=i>=75?"pass-high":i>=50?"pass-medium":"pass-low"}return(0,r.jsxs)(ei.Z,{children:[(0,r.jsx)(X.Z,{children:(0,r.jsx)("span",{style:{fontWeight:500},children:b[e.pluginName]||e.type})}),(0,r.jsx)(X.Z,{children:e.description}),(0,r.jsxs)(X.Z,{className:t,children:[(0,r.jsx)("strong",{children:e.passRate}),e.passRateWithFilter!==e.passRate?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("br",{}),"(",e.passRateWithFilter," with mitigation)"]}):null]}),(0,r.jsx)(X.Z,{className:"vuln-".concat(e.severity.toLowerCase()),children:e.severity}),(0,r.jsxs)(X.Z,{style:{minWidth:270},children:[(0,r.jsx)(Z.Z,{variant:"contained",size:"small",onClick:()=>{let i=new URLSearchParams(window.location.search),t=i.get("evalId");window.location.href="/eval/?evalId=".concat(t,"&search=").concat(encodeURIComponent("(var=".concat(e.type,"|metric=").concat(e.type,")")))},children:"View logs"}),(0,r.jsx)(V.Z,{title:"Temporarily disabled while in beta, click to contact us to enable",children:(0,r.jsx)(Z.Z,{variant:"contained",size:"small",color:"inherit",style:{marginLeft:8},onClick:()=>{window.location.href="mailto:inquiries@promptfoo.dev?subject=Promptfoo%20automatic%20vulnerability%20mitigation&body=Hello%20Promptfoo%20Team,%0D%0A%0D%0AI%20am%20interested%20in%20learning%20more%20about%20the%20automatic%20vulnerability%20mitigation%20beta.%20Please%20provide%20me%20with%20more%20details.%0D%0A%0D%0A"},children:"Apply mitigation"})})]})]},i)})})]}),a.length>c&&(0,r.jsx)(ee.Z,{rowsPerPageOptions:[10,25,50],component:"div",count:a.length,rowsPerPage:c,page:s,onPageChange:(e,i)=>{l(i)},onRowsPerPageChange:e=>{d(parseInt(e.target.value,10)),l(0)}})]})]})};t(67667);var en=()=>{let[e,i]=n.useState(null),[t,a]=n.useState(null);if(n.useEffect(()=>{let e=async e=>{let i=await fetch("".concat(await (0,l.b)(),"/api/results/").concat(e),{cache:"no-store"}),t=await i.json();a(t.data)},t=new URLSearchParams(window.location.search);if(!t)return;let s=t.get("evalId");s&&(i(s),e(s))},[]),n.useEffect(()=>{document.title="Report: ".concat((null==t?void 0:t.config.description)||e||"Red Team"," | promptfoo")},[t,e]),!t||!e)return(0,r.jsx)(o.Z,{sx:{width:"100%",textAlign:"center"},children:"Loading..."});let s=t.results.table.head.prompts[0],p=t.results.table.body,g=t.results.results.reduce((e,i)=>{var t,a,s,r,n,l,o,c;let d=i.vars.harmCategory,m=(null===(a=i.gradingResult)||void 0===a?void 0:null===(t=a.componentResults)||void 0===t?void 0:t.map(e=>{var i;return null===(i=e.assertion)||void 0===i?void 0:i.metric}))||[],u=[d,...m].filter(e=>e);for(let t of u){if("string"!=typeof t)continue;let a=y[t.split("/")[0]];if(!a){console.log("Unknown harm category:",t);break}i.success;let d=null===(r=i.gradingResult)||void 0===r?void 0:null===(s=r.componentResults)||void 0===s?void 0:s.some(e=>{var i;let t=(null===(i=e.assertion)||void 0===i?void 0:i.type)==="moderation",a=e.pass;return t&&a}),m=null===(l=i.gradingResult)||void 0===l?void 0:null===(n=l.componentResults)||void 0===n?void 0:n.some(e=>{var i,t;let a=(null===(i=e.assertion)||void 0===i?void 0:i.type)==="llm-rubric"||(null===(t=e.assertion)||void 0===t?void 0:t.type.startsWith("promptfoo:redteam")),s=e.pass;return a&&s}),u=null===(c=i.gradingResult)||void 0===c?void 0:null===(o=c.componentResults)||void 0===o?void 0:o.some(e=>{var i;let t=(null===(i=e.assertion)||void 0===i?void 0:i.type)==="human",a=e.pass;return t&&a});e[a]=e[a]||{pass:0,total:0,passWithFilter:0},e[a].total++,m||u?(e[a].pass++,e[a].passWithFilter++):!d&&e[a].passWithFilter++}return e},{});return(0,r.jsx)(m.Z,{children:(0,r.jsxs)(u.Z,{spacing:4,pb:8,pt:2,children:[(0,r.jsxs)(c.Z,{className:"report-header",sx:{position:"relative"},children:[(0,r.jsx)(E,{}),(0,r.jsxs)(h.Z,{variant:"h4",children:[(0,r.jsx)("strong",{children:"LLM Risk Assessment"}),t.config.description&&": ".concat(t.config.description)]}),(0,r.jsx)(h.Z,{variant:"subtitle1",mb:2,children:new Date(t.createdAt).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})}),(0,r.jsxs)(o.Z,{className:"report-details",children:[(0,r.jsx)(d.Z,{size:"small",label:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("strong",{children:"Model:"})," ",s.provider]})}),(0,r.jsx)(d.Z,{size:"small",label:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("strong",{children:"Dataset:"})," ",p.length," probes"]})}),(0,r.jsx)(d.Z,{size:"small",label:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("strong",{children:"Prompt:"}),' "',s.raw.length>40?"".concat(s.raw.substring(0,40),"..."):s.raw,'"']})})]})]}),(0,r.jsx)(k,{categoryStats:g}),(0,r.jsx)(K,{categoryStats:g}),(0,r.jsx)(er,{evalId:e,categoryStats:g})]})})}},4309:function(){},67667:function(){},46553:function(){},32991:function(){},93091:function(){}},function(e){e.O(0,[903,916,493,304,281,969,378,476,515,949,470,730,744],function(){return e(e.s=58004)}),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[744],{71590:function(e,n,t){Promise.resolve().then(t.t.bind(t,6020,23)),Promise.resolve().then(t.t.bind(t,83507,23)),Promise.resolve().then(t.t.bind(t,27883,23)),Promise.resolve().then(t.t.bind(t,46785,23)),Promise.resolve().then(t.t.bind(t,27382,23))}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[470,730],function(){return n(11409),n(71590)}),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";var e,t,n,r,o,u,i,c,a,f={},d={};function l(e){var t=d[e];if(void 0!==t)return t.exports;var n=d[e]={exports:{}},r=!0;try{f[e].call(n.exports,n,n.exports,l),r=!1}finally{r&&delete d[e]}return n.exports}l.m=f,e=[],l.O=function(t,n,r,o){if(n){o=o||0;for(var u=e.length;u>0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[n,r,o];return}for(var i=1/0,u=0;u<e.length;u++){for(var n=e[u][0],r=e[u][1],o=e[u][2],c=!0,a=0;a<n.length;a++)i>=o&&Object.keys(l.O).every(function(e){return l.O[e](n[a])})?n.splice(a--,1):(c=!1,o<i&&(i=o));if(c){e.splice(u--,1);var f=r();void 0!==f&&(t=f)}}return t},l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},l.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var o=Object.create(null);l.r(o);var u={};t=t||[null,n({}),n([]),n(n)];for(var i=2&r&&e;"object"==typeof i&&!~t.indexOf(i);i=n(i))Object.getOwnPropertyNames(i).forEach(function(t){u[t]=function(){return e[t]}});return u.default=function(){return e},l.d(o,u),o},l.d=function(e,t){for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.f={},l.e=function(e){return Promise.all(Object.keys(l.f).reduce(function(t,n){return l.f[n](e,t),t},[]))},l.u=function(e){return 631===e?"static/chunks/631-d005608c3710a99c.js":"static/chunks/"+e+"."+({407:"42b5daf65ab5dde9",887:"028187fb318c3e59"})[e]+".js"},l.miniCssF=function(e){return"static/css/"+({11:"87b5e6e04efd27e5",185:"de0307797e31a3e6",413:"edcd6f0b6c902fde",420:"
|
|
1
|
+
!function(){"use strict";var e,t,n,r,o,u,i,c,a,f={},d={};function l(e){var t=d[e];if(void 0!==t)return t.exports;var n=d[e]={exports:{}},r=!0;try{f[e].call(n.exports,n,n.exports,l),r=!1}finally{r&&delete d[e]}return n.exports}l.m=f,e=[],l.O=function(t,n,r,o){if(n){o=o||0;for(var u=e.length;u>0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[n,r,o];return}for(var i=1/0,u=0;u<e.length;u++){for(var n=e[u][0],r=e[u][1],o=e[u][2],c=!0,a=0;a<n.length;a++)i>=o&&Object.keys(l.O).every(function(e){return l.O[e](n[a])})?n.splice(a--,1):(c=!1,o<i&&(i=o));if(c){e.splice(u--,1);var f=r();void 0!==f&&(t=f)}}return t},l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},l.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var o=Object.create(null);l.r(o);var u={};t=t||[null,n({}),n([]),n(n)];for(var i=2&r&&e;"object"==typeof i&&!~t.indexOf(i);i=n(i))Object.getOwnPropertyNames(i).forEach(function(t){u[t]=function(){return e[t]}});return u.default=function(){return e},l.d(o,u),o},l.d=function(e,t){for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.f={},l.e=function(e){return Promise.all(Object.keys(l.f).reduce(function(t,n){return l.f[n](e,t),t},[]))},l.u=function(e){return 631===e?"static/chunks/631-d005608c3710a99c.js":"static/chunks/"+e+"."+({407:"42b5daf65ab5dde9",887:"028187fb318c3e59"})[e]+".js"},l.miniCssF=function(e){return"static/css/"+({11:"87b5e6e04efd27e5",185:"de0307797e31a3e6",413:"edcd6f0b6c902fde",420:"32384cb640d2265e",421:"eb523daddb89dfc1",466:"48d388184a2f4ce3",931:"8119d8bd13a8adab"})[e]+".css"},l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},o="_N_E:",l.l=function(e,t,n,u){if(r[e]){r[e].push(t);return}if(void 0!==n)for(var i,c,a=document.getElementsByTagName("script"),f=0;f<a.length;f++){var d=a[f];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==o+n){i=d;break}}i||(c=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,l.nc&&i.setAttribute("nonce",l.nc),i.setAttribute("data-webpack",o+n),i.src=l.tu(e)),r[e]=[t];var s=function(t,n){i.onerror=i.onload=null,clearTimeout(p);var o=r[e];if(delete r[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach(function(e){return e(n)}),t)return t(n)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=s.bind(null,i.onerror),i.onload=s.bind(null,i.onload),c&&document.head.appendChild(i)},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.tt=function(){return void 0===u&&(u={createScriptURL:function(e){return e}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(u=trustedTypes.createPolicy("nextjs#bundler",u))),u},l.tu=function(e){return l.tt().createScriptURL(e)},l.p="/_next/",i={272:0},l.f.j=function(e,t){var n=l.o(i,e)?i[e]:void 0;if(0!==n){if(n)t.push(n[2]);else if(272!=e){var r=new Promise(function(t,r){n=i[e]=[t,r]});t.push(n[2]=r);var o=l.p+l.u(e),u=Error();l.l(o,function(t){if(l.o(i,e)&&(0!==(n=i[e])&&(i[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;u.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",u.name="ChunkLoadError",u.type=r,u.request=o,n[1](u)}},"chunk-"+e,e)}else i[e]=0}},l.O.j=function(e){return 0===i[e]},c=function(e,t){var n,r,o=t[0],u=t[1],c=t[2],a=0;if(o.some(function(e){return 0!==i[e]})){for(n in u)l.o(u,n)&&(l.m[n]=u[n]);if(c)var f=c(l)}for(e&&e(t);a<o.length;a++)r=o[a],l.o(i,r)&&i[r]&&i[r][0](),i[r]=0;return l.O(f)},(a=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(c.bind(null,0)),a.push=c.bind(null,a.push.bind(a))}();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.severity-card{transition:transform .3s ease-in-out,box-shadow .3s ease-in-out}.severity-card:hover{transform:translateY(-5px);box-shadow:0 8px 16px rgba(0,0,0,.1)}[data-theme=dark] .severity-card:hover{box-shadow:none}.card-critical{border-left:5px solid #ff1744}.card-high{border-left:5px solid #ff9100}.card-medium{border-left:5px solid #ffc400}.card-low{border-left:5px solid #00e676}.risk-card-container{padding-top:3rem;padding-bottom:3rem}.risk-card-title{font-weight:700}.risk-card-progress{margin-bottom:1rem}.risk-card-issues{color:red}.risk-card-list-item{padding:0;transition:background-color .3s,box-shadow .3s}.risk-card-list-item:hover{background-color:#f0f8ff;box-shadow:0 0 0 1px #add8e6;border-radius:4px}[data-theme=dark] .risk-card-list-item:hover{background-color:#2a2a2a;box-shadow:0 0 0 1px #555;border-radius:4px}.risk-card-icon-passed{color:green;font-size:16px}.risk-card-icon-failed{color:red;font-size:16px}.risk-card-icon-no-tests{color:#888;font-size:16px}.risk-card-percentage{margin-left:8px;font-weight:700}.risk-card-percentage-high{color:#4caf50}.risk-card-percentage-medium{color:#ff9800}.risk-card-percentage-low{color:#f44336}[data-theme=dark] .risk-card-percentage-high{color:#81c784}[data-theme=dark] .risk-card-percentage-medium{color:#ffb74d}[data-theme=dark] .risk-card-percentage-low{color:#e57373}.pass-high{color:green!important}.pass-medium{color:#cb8503!important}.pass-low,.vuln-critical{color:red!important}.vuln-critical{font-weight:700!important}.vuln-high{color:red!important}.vuln-medium{color:#cb8503!important}.vuln-low{color:green!important}.report-header{padding:24px;border-radius:12px;box-shadow:0 4px 6px rgba(0,0,0,.1)}[data-theme=dark] .report-header{box-shadow:none}.report-details{display:flex;flex-wrap:wrap;gap:12px}.report-details .MuiChip-root{font-size:.875rem}
|