promptfoo 0.78.0 → 0.78.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/package.json +10 -10
- package/dist/src/accounts.d.ts.map +1 -1
- package/dist/src/accounts.js +2 -1
- package/dist/src/accounts.js.map +1 -1
- package/dist/src/assertions/AssertionsResult.d.ts.map +1 -1
- package/dist/src/assertions/AssertionsResult.js +2 -1
- package/dist/src/assertions/AssertionsResult.js.map +1 -1
- package/dist/src/assertions.d.ts.map +1 -1
- package/dist/src/assertions.js +5 -6
- package/dist/src/assertions.js.map +1 -1
- package/dist/src/cache.d.ts.map +1 -1
- package/dist/src/cache.js +8 -10
- package/dist/src/cache.js.map +1 -1
- package/dist/src/commands/eval.d.ts.map +1 -1
- package/dist/src/commands/eval.js +3 -2
- package/dist/src/commands/eval.js.map +1 -1
- package/dist/src/commands/generate/redteam.d.ts +1 -1
- package/dist/src/commands/generate/redteam.d.ts.map +1 -1
- package/dist/src/commands/generate/redteam.js +17 -6
- package/dist/src/commands/generate/redteam.js.map +1 -1
- package/dist/src/commands/redteam.d.ts +1 -1
- package/dist/src/commands/redteam.d.ts.map +1 -1
- package/dist/src/commands/redteam.js +220 -145
- package/dist/src/commands/redteam.js.map +1 -1
- package/dist/src/commands/share.d.ts.map +1 -1
- package/dist/src/commands/share.js +4 -4
- package/dist/src/commands/share.js.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +3 -2
- package/dist/src/config.js.map +1 -1
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +1 -0
- package/dist/src/constants.js.map +1 -1
- package/dist/src/envars.d.ts +119 -0
- package/dist/src/envars.d.ts.map +1 -0
- package/dist/src/envars.js +56 -0
- package/dist/src/envars.js.map +1 -0
- package/dist/src/evaluator.d.ts.map +1 -1
- package/dist/src/evaluator.js +11 -10
- package/dist/src/evaluator.js.map +1 -1
- package/dist/src/evaluatorHelpers.d.ts.map +1 -1
- package/dist/src/evaluatorHelpers.js +10 -1
- package/dist/src/evaluatorHelpers.js.map +1 -1
- package/dist/src/fetch.d.ts.map +1 -1
- package/dist/src/fetch.js +3 -4
- package/dist/src/fetch.js.map +1 -1
- package/dist/src/integrations/helicone.d.ts +11 -0
- package/dist/src/integrations/helicone.d.ts.map +1 -0
- package/dist/src/integrations/helicone.js +69 -0
- package/dist/src/integrations/helicone.js.map +1 -0
- package/dist/src/integrations/langfuse.d.ts.map +1 -1
- package/dist/src/integrations/langfuse.js +4 -3
- package/dist/src/integrations/langfuse.js.map +1 -1
- package/dist/src/integrations/portkey.d.ts.map +1 -1
- package/dist/src/integrations/portkey.js +4 -2
- package/dist/src/integrations/portkey.js.map +1 -1
- package/dist/src/logger.d.ts.map +1 -1
- package/dist/src/logger.js +2 -1
- package/dist/src/logger.js.map +1 -1
- package/dist/src/main.js +4 -2
- package/dist/src/main.js.map +1 -1
- package/dist/src/onboarding.d.ts.map +1 -1
- package/dist/src/onboarding.js +2 -1
- package/dist/src/onboarding.js.map +1 -1
- package/dist/src/prompts/constants.d.ts.map +1 -1
- package/dist/src/prompts/constants.js +2 -1
- package/dist/src/prompts/constants.js.map +1 -1
- package/dist/src/prompts/utils.js +1 -1
- package/dist/src/prompts/utils.js.map +1 -1
- package/dist/src/providers/anthropic.d.ts.map +1 -1
- package/dist/src/providers/anthropic.js +9 -8
- 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 +21 -18
- package/dist/src/providers/azureopenai.js.map +1 -1
- package/dist/src/providers/bam.d.ts.map +1 -1
- package/dist/src/providers/bam.js +3 -2
- package/dist/src/providers/bam.js.map +1 -1
- package/dist/src/providers/bedrock.d.ts +2 -2
- package/dist/src/providers/bedrock.d.ts.map +1 -1
- package/dist/src/providers/bedrock.js +7 -3
- package/dist/src/providers/bedrock.js.map +1 -1
- package/dist/src/providers/cloudflare-ai.d.ts.map +1 -1
- package/dist/src/providers/cloudflare-ai.js +3 -2
- package/dist/src/providers/cloudflare-ai.js.map +1 -1
- package/dist/src/providers/cohere.d.ts.map +1 -1
- package/dist/src/providers/cohere.js +3 -2
- package/dist/src/providers/cohere.js.map +1 -1
- package/dist/src/providers/defaults.d.ts.map +1 -1
- package/dist/src/providers/defaults.js +3 -2
- package/dist/src/providers/defaults.js.map +1 -1
- package/dist/src/providers/huggingface.d.ts.map +1 -1
- package/dist/src/providers/huggingface.js +7 -6
- package/dist/src/providers/huggingface.js.map +1 -1
- package/dist/src/providers/llama.d.ts.map +1 -1
- package/dist/src/providers/llama.js +2 -1
- package/dist/src/providers/llama.js.map +1 -1
- package/dist/src/providers/localai.d.ts.map +1 -1
- package/dist/src/providers/localai.js +4 -3
- package/dist/src/providers/localai.js.map +1 -1
- package/dist/src/providers/mistral.d.ts.map +1 -1
- package/dist/src/providers/mistral.js +4 -3
- package/dist/src/providers/mistral.js.map +1 -1
- package/dist/src/providers/ollama.d.ts.map +1 -1
- package/dist/src/providers/ollama.js +10 -9
- package/dist/src/providers/ollama.js.map +1 -1
- package/dist/src/providers/openai.d.ts.map +1 -1
- package/dist/src/providers/openai.js +18 -15
- package/dist/src/providers/openai.js.map +1 -1
- package/dist/src/providers/palm.d.ts.map +1 -1
- package/dist/src/providers/palm.js +5 -4
- package/dist/src/providers/palm.js.map +1 -1
- package/dist/src/providers/promptfoo.d.ts.map +1 -1
- package/dist/src/providers/promptfoo.js +2 -1
- package/dist/src/providers/promptfoo.js.map +1 -1
- package/dist/src/providers/replicate.d.ts.map +1 -1
- package/dist/src/providers/replicate.js +13 -21
- package/dist/src/providers/replicate.js.map +1 -1
- package/dist/src/providers/shared.d.ts.map +1 -1
- package/dist/src/providers/shared.js +3 -4
- 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 +9 -5
- package/dist/src/providers/vertex.js.map +1 -1
- package/dist/src/providers/voyage.d.ts.map +1 -1
- package/dist/src/providers/voyage.js +6 -2
- package/dist/src/providers/voyage.js.map +1 -1
- package/dist/src/providers.d.ts.map +1 -1
- package/dist/src/providers.js +4 -0
- package/dist/src/providers.js.map +1 -1
- package/dist/src/python/pythonUtils.d.ts.map +1 -1
- package/dist/src/python/pythonUtils.js +10 -9
- package/dist/src/python/pythonUtils.js.map +1 -1
- package/dist/src/python/wrapper.py +3 -1
- package/dist/src/redteam/constants.d.ts +19 -2
- package/dist/src/redteam/constants.d.ts.map +1 -1
- package/dist/src/redteam/constants.js +230 -46
- package/dist/src/redteam/constants.js.map +1 -1
- package/dist/src/redteam/index.d.ts.map +1 -1
- package/dist/src/redteam/index.js +22 -3
- package/dist/src/redteam/index.js.map +1 -1
- package/dist/src/redteam/plugins/bfla.d.ts.map +1 -1
- package/dist/src/redteam/plugins/bfla.js +3 -2
- package/dist/src/redteam/plugins/bfla.js.map +1 -1
- package/dist/src/redteam/plugins/bola.d.ts +1 -0
- package/dist/src/redteam/plugins/bola.d.ts.map +1 -1
- package/dist/src/redteam/plugins/bola.js +7 -6
- package/dist/src/redteam/plugins/bola.js.map +1 -1
- package/dist/src/redteam/plugins/competitors.d.ts +1 -0
- package/dist/src/redteam/plugins/competitors.d.ts.map +1 -1
- package/dist/src/redteam/plugins/competitors.js +4 -3
- package/dist/src/redteam/plugins/competitors.js.map +1 -1
- package/dist/src/redteam/plugins/contracts.d.ts +1 -0
- package/dist/src/redteam/plugins/contracts.d.ts.map +1 -1
- package/dist/src/redteam/plugins/contracts.js +4 -3
- package/dist/src/redteam/plugins/contracts.js.map +1 -1
- package/dist/src/redteam/plugins/debugAccess.d.ts +1 -0
- package/dist/src/redteam/plugins/debugAccess.d.ts.map +1 -1
- package/dist/src/redteam/plugins/debugAccess.js +4 -3
- package/dist/src/redteam/plugins/debugAccess.js.map +1 -1
- package/dist/src/redteam/plugins/excessiveAgency.d.ts +1 -0
- package/dist/src/redteam/plugins/excessiveAgency.d.ts.map +1 -1
- package/dist/src/redteam/plugins/excessiveAgency.js +4 -3
- package/dist/src/redteam/plugins/excessiveAgency.js.map +1 -1
- package/dist/src/redteam/plugins/hallucination.d.ts +1 -0
- package/dist/src/redteam/plugins/hallucination.d.ts.map +1 -1
- package/dist/src/redteam/plugins/hallucination.js +4 -3
- package/dist/src/redteam/plugins/hallucination.js.map +1 -1
- package/dist/src/redteam/plugins/harmful.d.ts +1 -0
- package/dist/src/redteam/plugins/harmful.d.ts.map +1 -1
- package/dist/src/redteam/plugins/harmful.js +7 -13
- package/dist/src/redteam/plugins/harmful.js.map +1 -1
- package/dist/src/redteam/plugins/hijacking.d.ts +1 -0
- package/dist/src/redteam/plugins/hijacking.d.ts.map +1 -1
- package/dist/src/redteam/plugins/hijacking.js +4 -3
- package/dist/src/redteam/plugins/hijacking.js.map +1 -1
- package/dist/src/redteam/plugins/imitation.d.ts +1 -0
- package/dist/src/redteam/plugins/imitation.d.ts.map +1 -1
- package/dist/src/redteam/plugins/imitation.js +4 -3
- package/dist/src/redteam/plugins/imitation.js.map +1 -1
- package/dist/src/redteam/plugins/index.d.ts +0 -5
- package/dist/src/redteam/plugins/index.d.ts.map +1 -1
- package/dist/src/redteam/plugins/index.js +0 -20
- package/dist/src/redteam/plugins/index.js.map +1 -1
- package/dist/src/redteam/plugins/overreliance.d.ts +1 -0
- package/dist/src/redteam/plugins/overreliance.d.ts.map +1 -1
- package/dist/src/redteam/plugins/overreliance.js +4 -3
- package/dist/src/redteam/plugins/overreliance.js.map +1 -1
- package/dist/src/redteam/plugins/pii.d.ts +1 -0
- package/dist/src/redteam/plugins/pii.d.ts.map +1 -1
- package/dist/src/redteam/plugins/pii.js +4 -3
- package/dist/src/redteam/plugins/pii.js.map +1 -1
- package/dist/src/redteam/plugins/policy.d.ts +1 -0
- package/dist/src/redteam/plugins/policy.d.ts.map +1 -1
- package/dist/src/redteam/plugins/policy.js +4 -3
- package/dist/src/redteam/plugins/policy.js.map +1 -1
- package/dist/src/redteam/plugins/politics.d.ts +1 -0
- package/dist/src/redteam/plugins/politics.d.ts.map +1 -1
- package/dist/src/redteam/plugins/politics.js +4 -3
- package/dist/src/redteam/plugins/politics.js.map +1 -1
- package/dist/src/redteam/plugins/rbac.d.ts +1 -0
- package/dist/src/redteam/plugins/rbac.d.ts.map +1 -1
- package/dist/src/redteam/plugins/rbac.js +4 -3
- package/dist/src/redteam/plugins/rbac.js.map +1 -1
- package/dist/src/redteam/plugins/shellInjection.d.ts +1 -0
- package/dist/src/redteam/plugins/shellInjection.d.ts.map +1 -1
- package/dist/src/redteam/plugins/shellInjection.js +4 -3
- package/dist/src/redteam/plugins/shellInjection.js.map +1 -1
- package/dist/src/redteam/plugins/sqlInjection.d.ts +1 -0
- package/dist/src/redteam/plugins/sqlInjection.d.ts.map +1 -1
- package/dist/src/redteam/plugins/sqlInjection.js +4 -3
- package/dist/src/redteam/plugins/sqlInjection.js.map +1 -1
- package/dist/src/redteam/plugins/ssrf.d.ts +1 -0
- package/dist/src/redteam/plugins/ssrf.d.ts.map +1 -1
- package/dist/src/redteam/plugins/ssrf.js +4 -3
- package/dist/src/redteam/plugins/ssrf.js.map +1 -1
- package/dist/src/redteam/providers/constants.d.ts +4 -0
- package/dist/src/redteam/providers/constants.d.ts.map +1 -0
- package/dist/src/redteam/providers/constants.js +9 -0
- package/dist/src/redteam/providers/constants.js.map +1 -0
- package/dist/src/redteam/providers/crescendo/index.d.ts +49 -0
- package/dist/src/redteam/providers/crescendo/index.d.ts.map +1 -0
- package/dist/src/redteam/providers/crescendo/index.js +312 -0
- package/dist/src/redteam/providers/crescendo/index.js.map +1 -0
- package/dist/src/redteam/providers/crescendo/prompts.d.ts +4 -0
- package/dist/src/redteam/providers/crescendo/prompts.d.ts.map +1 -0
- package/dist/src/redteam/providers/crescendo/prompts.js +231 -0
- package/dist/src/redteam/providers/crescendo/prompts.js.map +1 -0
- package/dist/src/redteam/providers/iterative.d.ts +1 -0
- package/dist/src/redteam/providers/iterative.d.ts.map +1 -1
- package/dist/src/redteam/providers/iterative.js +13 -83
- package/dist/src/redteam/providers/iterative.js.map +1 -1
- package/dist/src/redteam/providers/iterativeTree.d.ts +161 -14
- package/dist/src/redteam/providers/iterativeTree.d.ts.map +1 -1
- package/dist/src/redteam/providers/iterativeTree.js +343 -328
- package/dist/src/redteam/providers/iterativeTree.js.map +1 -1
- package/dist/src/redteam/providers/prompts.d.ts +4 -0
- package/dist/src/redteam/providers/prompts.d.ts.map +1 -0
- package/dist/src/redteam/providers/prompts.js +77 -0
- package/dist/src/redteam/providers/prompts.js.map +1 -0
- package/dist/src/redteam/strategies/crescendo.d.ts +3 -0
- package/dist/src/redteam/strategies/crescendo.d.ts.map +1 -0
- package/dist/src/redteam/strategies/crescendo.js +19 -0
- package/dist/src/redteam/strategies/crescendo.js.map +1 -0
- package/dist/src/redteam/strategies/index.d.ts.map +1 -1
- package/dist/src/redteam/strategies/index.js +10 -0
- package/dist/src/redteam/strategies/index.js.map +1 -1
- package/dist/src/redteam/util.d.ts +1 -0
- package/dist/src/redteam/util.d.ts.map +1 -1
- package/dist/src/redteam/util.js +13 -0
- package/dist/src/redteam/util.js.map +1 -1
- package/dist/src/telemetry.d.ts.map +1 -1
- package/dist/src/telemetry.js +2 -1
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/testCases.d.ts.map +1 -1
- package/dist/src/testCases.js +3 -2
- package/dist/src/testCases.js.map +1 -1
- package/dist/src/updates.d.ts.map +1 -1
- package/dist/src/updates.js +2 -1
- package/dist/src/updates.js.map +1 -1
- package/dist/src/util/config.d.ts.map +1 -1
- package/dist/src/util/config.js +2 -1
- package/dist/src/util/config.js.map +1 -1
- package/dist/src/util/index.d.ts.map +1 -1
- package/dist/src/util/index.js +4 -3
- package/dist/src/util/index.js.map +1 -1
- package/dist/src/util/templates.d.ts +1 -3
- package/dist/src/util/templates.d.ts.map +1 -1
- package/dist/src/util/templates.js +2 -1
- package/dist/src/util/templates.js.map +1 -1
- package/dist/src/validators/redteam.d.ts +1 -1
- package/dist/src/validators/redteam.d.ts.map +1 -1
- package/dist/src/validators/redteam.js +7 -3
- package/dist/src/validators/redteam.js.map +1 -1
- 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/app/{layout-b7d713ef773e2076.js → layout-bd07f93483b60d27.js} +1 -1
- package/dist/src/web/nextui/_next/static/chunks/app/report/page-5c9a9b839d95d1ac.js +1 -0
- package/dist/src/web/nextui/auth/login/index.html +1 -1
- package/dist/src/web/nextui/auth/login/index.txt +2 -2
- package/dist/src/web/nextui/auth/signup/index.html +1 -1
- package/dist/src/web/nextui/auth/signup/index.txt +2 -2
- package/dist/src/web/nextui/datasets/index.html +1 -1
- package/dist/src/web/nextui/datasets/index.txt +2 -2
- package/dist/src/web/nextui/eval/index.html +1 -1
- package/dist/src/web/nextui/eval/index.txt +3 -3
- package/dist/src/web/nextui/index.html +1 -1
- package/dist/src/web/nextui/index.txt +2 -2
- package/dist/src/web/nextui/progress/index.html +1 -1
- package/dist/src/web/nextui/progress/index.txt +2 -2
- package/dist/src/web/nextui/prompts/index.html +1 -1
- package/dist/src/web/nextui/prompts/index.txt +2 -2
- package/dist/src/web/nextui/report/index.html +1 -1
- package/dist/src/web/nextui/report/index.txt +3 -3
- package/dist/src/web/nextui/setup/index.html +1 -1
- package/dist/src/web/nextui/setup/index.txt +2 -2
- package/dist/test/envars.test.d.ts +2 -0
- package/dist/test/envars.test.d.ts.map +1 -0
- package/dist/test/envars.test.js +70 -0
- package/dist/test/envars.test.js.map +1 -0
- package/dist/test/is-sql-tests/node-sql-parser.test.js +10 -10
- package/dist/test/is-sql-tests/node-sql-parser.test.js.map +1 -1
- package/dist/test/prompts.utils.test.js +3 -0
- package/dist/test/prompts.utils.test.js.map +1 -1
- package/dist/test/pythonWrapper.test.js +53 -20
- package/dist/test/pythonWrapper.test.js.map +1 -1
- package/dist/test/redteam/providers/iterativeTree.test.d.ts +2 -0
- package/dist/test/redteam/providers/iterativeTree.test.d.ts.map +1 -0
- package/dist/test/redteam/providers/iterativeTree.test.js +315 -0
- package/dist/test/redteam/providers/iterativeTree.test.js.map +1 -0
- package/package.json +10 -10
- package/dist/src/web/nextui/_next/static/chunks/app/report/page-1da24ad6423ea2a5.js +0 -1
- /package/dist/src/web/nextui/_next/static/{hpmb9tj_OdPogvvqjUco5 → 7WCweG-frl9PmaQvBJk5m}/_buildManifest.js +0 -0
- /package/dist/src/web/nextui/_next/static/{hpmb9tj_OdPogvvqjUco5 → 7WCweG-frl9PmaQvBJk5m}/_ssgManifest.js +0 -0
- /package/dist/src/web/nextui/_next/static/chunks/{258-9641c769d3ee59d3.js → 258-bb8ca628533ae496.js} +0 -0
|
@@ -32,6 +32,7 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
32
32
|
const dedent_1 = __importDefault(require("dedent"));
|
|
33
33
|
const fs = __importStar(require("fs"));
|
|
34
34
|
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
35
|
+
const path_1 = __importDefault(require("path"));
|
|
35
36
|
const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
|
|
36
37
|
const zod_1 = require("zod");
|
|
37
38
|
const cache_1 = require("../../cache");
|
|
@@ -155,7 +156,10 @@ async function doGenerateRedteam(options) {
|
|
|
155
156
|
};
|
|
156
157
|
(0, config_2.writePromptfooConfig)(updatedYaml, options.output);
|
|
157
158
|
(0, util_1.printBorder)();
|
|
158
|
-
|
|
159
|
+
const relativeOutputPath = path_1.default.relative(process.cwd(), options.output);
|
|
160
|
+
logger_1.default.info(`Wrote ${redteamTests.length} new test cases to ${relativeOutputPath}`);
|
|
161
|
+
logger_1.default.info('\n' +
|
|
162
|
+
chalk_1.default.green(`Run ${chalk_1.default.bold(`promptfoo eval -c ${relativeOutputPath}`)} to run the red team!`));
|
|
159
163
|
(0, util_1.printBorder)();
|
|
160
164
|
}
|
|
161
165
|
else if (options.write && configPath) {
|
|
@@ -172,11 +176,14 @@ async function doGenerateRedteam(options) {
|
|
|
172
176
|
existingConfig.metadata = { ...(existingConfig.metadata || {}), redteam: true };
|
|
173
177
|
existingConfig.redteam = { ...(existingConfig.redteam || {}), ...updatedRedteamConfig };
|
|
174
178
|
(0, config_2.writePromptfooConfig)(existingConfig, configPath);
|
|
175
|
-
logger_1.default.info(`\nWrote ${redteamTests.length} new test cases to ${configPath}`);
|
|
176
|
-
|
|
179
|
+
logger_1.default.info(`\nWrote ${redteamTests.length} new test cases to ${path_1.default.relative(process.cwd(), configPath)}`);
|
|
180
|
+
const command = configPath.endsWith('promptfooconfig.yaml')
|
|
181
|
+
? 'promptfoo eval'
|
|
182
|
+
: `promptfoo eval -c ${path_1.default.relative(process.cwd(), configPath)}`;
|
|
183
|
+
logger_1.default.info('\n' + chalk_1.default.green(`Run ${chalk_1.default.bold(`${command}`)} to run the red team!`));
|
|
177
184
|
}
|
|
178
185
|
else {
|
|
179
|
-
|
|
186
|
+
(0, config_2.writePromptfooConfig)({ tests: redteamTests }, 'redteam.yaml');
|
|
180
187
|
}
|
|
181
188
|
telemetry_1.default.record('command_used', {
|
|
182
189
|
duration: Math.round((Date.now() - startTime) / 1000),
|
|
@@ -187,9 +194,9 @@ async function doGenerateRedteam(options) {
|
|
|
187
194
|
});
|
|
188
195
|
await telemetry_1.default.send();
|
|
189
196
|
}
|
|
190
|
-
function generateRedteamCommand(program, defaultConfig, defaultConfigPath) {
|
|
197
|
+
function generateRedteamCommand(program, command, defaultConfig, defaultConfigPath) {
|
|
191
198
|
program
|
|
192
|
-
.command(
|
|
199
|
+
.command(command) // generate or redteam depending on if called from redteam or generate
|
|
193
200
|
.description('Generate adversarial test cases')
|
|
194
201
|
.option('-c, --config [path]', 'Path to configuration file. Defaults to promptfooconfig.yaml')
|
|
195
202
|
.option('-o, --output [path]', 'Path to output file')
|
|
@@ -235,6 +242,10 @@ function generateRedteamCommand(program, defaultConfig, defaultConfigPath) {
|
|
|
235
242
|
}
|
|
236
243
|
overrides = parsed.data;
|
|
237
244
|
}
|
|
245
|
+
if (!opts.write && !opts.output) {
|
|
246
|
+
logger_1.default.info('No output file specified, writing to redteam.yaml in the current directory');
|
|
247
|
+
opts.output = 'redteam.yaml';
|
|
248
|
+
}
|
|
238
249
|
const validatedOpts = redteam_2.RedteamGenerateOptionsSchema.parse({
|
|
239
250
|
...opts,
|
|
240
251
|
defaultConfig,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redteam.js","sourceRoot":"","sources":["../../../../src/commands/generate/redteam.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"redteam.js","sourceRoot":"","sources":["../../../../src/commands/generate/redteam.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Command } from 'commander';
|
|
2
2
|
export declare function redteamInit(directory: string | undefined): Promise<void>;
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function initRedteamCommand(program: Command): void;
|
|
4
4
|
//# sourceMappingURL=redteam.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redteam.d.ts","sourceRoot":"","sources":["../../../src/commands/redteam.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"redteam.d.ts","sourceRoot":"","sources":["../../../src/commands/redteam.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsGzC,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,iBAqS9D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,QAOlD"}
|
|
@@ -27,119 +27,206 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.redteamInit = redteamInit;
|
|
30
|
-
exports.
|
|
30
|
+
exports.initRedteamCommand = initRedteamCommand;
|
|
31
31
|
const checkbox_1 = __importDefault(require("@inquirer/checkbox"));
|
|
32
32
|
const checkbox_2 = require("@inquirer/checkbox");
|
|
33
33
|
const confirm_1 = __importDefault(require("@inquirer/confirm"));
|
|
34
34
|
const editor_1 = __importDefault(require("@inquirer/editor"));
|
|
35
35
|
const input_1 = __importDefault(require("@inquirer/input"));
|
|
36
|
-
const number_1 = __importDefault(require("@inquirer/number"));
|
|
37
36
|
const rawlist_1 = __importDefault(require("@inquirer/rawlist"));
|
|
37
|
+
const select_1 = __importDefault(require("@inquirer/select"));
|
|
38
38
|
const chalk_1 = __importDefault(require("chalk"));
|
|
39
|
+
const dedent_1 = __importDefault(require("dedent"));
|
|
39
40
|
const fs = __importStar(require("fs"));
|
|
40
|
-
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
41
41
|
const path = __importStar(require("path"));
|
|
42
|
-
const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
|
|
43
42
|
const accounts_1 = require("../accounts");
|
|
43
|
+
const envars_1 = require("../envars");
|
|
44
44
|
const globalConfig_1 = require("../globalConfig");
|
|
45
45
|
const logger_1 = __importDefault(require("../logger"));
|
|
46
46
|
const constants_1 = require("../redteam/constants");
|
|
47
47
|
const telemetry_1 = __importDefault(require("../telemetry"));
|
|
48
|
-
const
|
|
49
|
-
const
|
|
48
|
+
const templates_1 = require("../util/templates");
|
|
49
|
+
const redteam_1 = require("./generate/redteam");
|
|
50
|
+
const REDTEAM_CONFIG_TEMPLATE = `# Red teaming configuration
|
|
51
|
+
# Docs: https://promptfoo.dev/docs/red-team/configuration
|
|
52
|
+
|
|
53
|
+
description: "My first red team"
|
|
54
|
+
|
|
55
|
+
{% if purpose is defined -%}
|
|
56
|
+
purpose: {{ purpose | dump }}
|
|
57
|
+
{% endif %}
|
|
58
|
+
prompts:
|
|
59
|
+
{% for prompt in prompts -%}
|
|
60
|
+
- {{ prompt | dump }}
|
|
61
|
+
{% endfor -%}
|
|
62
|
+
{% if prompts.length > 0 and not prompts[0].startsWith('file://') -%}
|
|
63
|
+
# You can also reference external prompts, e.g.
|
|
64
|
+
# - file:///path/to/prompt.json
|
|
65
|
+
# Learn more: https://promptfoo.dev/docs/configuration/parameters/#prompts
|
|
66
|
+
{% endif %}
|
|
67
|
+
|
|
68
|
+
providers:
|
|
69
|
+
# To talk directly to your application, use a custom provider.
|
|
70
|
+
# See https://promptfoo.dev/docs/red-team/configuration/#providers
|
|
71
|
+
{% for provider in providers -%}
|
|
72
|
+
- {{ provider }}
|
|
73
|
+
{% endfor %}
|
|
74
|
+
|
|
75
|
+
redteam:
|
|
76
|
+
# Default number of inputs to generate for each plugin
|
|
77
|
+
numTests: {{numTests}}
|
|
78
|
+
|
|
79
|
+
{% if plugins.length > 0 -%}
|
|
80
|
+
# Each plugin generates {{numTests}} adversarial inputs.
|
|
81
|
+
# To control the number of tests for each plugin, use:
|
|
82
|
+
# - id: plugin-name
|
|
83
|
+
# numTests: 10
|
|
84
|
+
plugins:
|
|
85
|
+
{% for plugin in plugins -%}
|
|
86
|
+
{% if plugin is string -%}
|
|
87
|
+
- {{plugin}}
|
|
88
|
+
{% else -%}
|
|
89
|
+
- id: {{plugin.id}}
|
|
90
|
+
{% if plugin.numTests is defined -%}
|
|
91
|
+
numTests: {{plugin.numTests}}
|
|
92
|
+
{% endif -%}
|
|
93
|
+
{% if plugin.config is defined and plugin.config.policy is defined -%}
|
|
94
|
+
config:
|
|
95
|
+
policy: {{plugin.config.policy | dump}}
|
|
96
|
+
{% endif -%}
|
|
97
|
+
{% endif -%}
|
|
98
|
+
{% endfor %}
|
|
99
|
+
{% endif -%}
|
|
100
|
+
|
|
101
|
+
{% if strategies.length > 0 -%}
|
|
102
|
+
# Strategies for applying adversarial inputs
|
|
103
|
+
strategies:
|
|
104
|
+
{% for strategy in strategies -%}
|
|
105
|
+
- {{strategy}}
|
|
106
|
+
{% endfor %}
|
|
107
|
+
{% endif -%}
|
|
108
|
+
`;
|
|
109
|
+
const CUSTOM_PROVIDER_TEMPLATE = `# Custom provider for red teaming
|
|
110
|
+
# Docs: https://promptfoo.dev/docs/red-team/configuration/#providers
|
|
111
|
+
|
|
112
|
+
import http.client
|
|
113
|
+
import urllib.parse
|
|
114
|
+
import json
|
|
115
|
+
|
|
116
|
+
def call_api(prompt, options, context):
|
|
117
|
+
parsed_url = urllib.parse.urlparse('https://example.com/api/chat)
|
|
118
|
+
conn = http.client.HTTPSConnection(parsed_url.netloc)
|
|
119
|
+
|
|
120
|
+
headers = {'Content-Type': 'application/json'}
|
|
121
|
+
payload = json.dumps({'user_chat': prompt})
|
|
122
|
+
|
|
123
|
+
conn.request("POST", parsed_url.path or "/", body=payload, headers=headers)
|
|
124
|
+
response = conn.getresponse()
|
|
125
|
+
|
|
126
|
+
return {
|
|
127
|
+
"output": response.read().decode()
|
|
128
|
+
}
|
|
129
|
+
`;
|
|
50
130
|
async function redteamInit(directory) {
|
|
51
131
|
telemetry_1.default.maybeShowNotice();
|
|
52
132
|
telemetry_1.default.record('command_used', { name: 'redteam init - started' });
|
|
53
133
|
await telemetry_1.default.send();
|
|
54
|
-
|
|
55
|
-
logger_1.default.info(chalk_1.default.bold('Red Team Initialization\n'));
|
|
56
|
-
let projectDir = directory;
|
|
57
|
-
if (!projectDir) {
|
|
58
|
-
projectDir = await (0, input_1.default)({
|
|
59
|
-
message: 'Where do you want to create the project?',
|
|
60
|
-
default: '.',
|
|
61
|
-
});
|
|
62
|
-
}
|
|
134
|
+
const projectDir = directory || '.';
|
|
63
135
|
if (projectDir !== '.' && !fs.existsSync(projectDir)) {
|
|
64
136
|
fs.mkdirSync(projectDir, { recursive: true });
|
|
65
137
|
}
|
|
66
138
|
const configPath = path.join(projectDir, 'promptfooconfig.yaml');
|
|
67
|
-
const previousConfigExists = fs.existsSync(configPath);
|
|
68
|
-
let existingConfig;
|
|
69
|
-
if (previousConfigExists) {
|
|
70
|
-
const overwrite = await (0, confirm_1.default)({
|
|
71
|
-
message: `A promptfoo configuration file already exists at: ${configPath} Do you want to overwrite it?`,
|
|
72
|
-
default: false,
|
|
73
|
-
});
|
|
74
|
-
if (!overwrite) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
existingConfig = js_yaml_1.default.load(fs.readFileSync(configPath, 'utf8'));
|
|
78
|
-
}
|
|
79
139
|
console.clear();
|
|
80
|
-
logger_1.default.info(chalk_1.default.bold('
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
:
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
choices: promptChoices,
|
|
140
|
+
logger_1.default.info(chalk_1.default.bold('Red Team Configuration\n'));
|
|
141
|
+
const redTeamChoice = await (0, select_1.default)({
|
|
142
|
+
message: 'What would you like to do?',
|
|
143
|
+
choices: [
|
|
144
|
+
{ name: 'Not sure yet', value: 'not_sure' },
|
|
145
|
+
{ name: 'Red team a prompt, model, or chatbot', value: 'prompt_model_chatbot' },
|
|
146
|
+
{ name: 'Red team a RAG', value: 'rag' },
|
|
147
|
+
{ name: 'Red team an Agent', value: 'agent' },
|
|
148
|
+
],
|
|
149
|
+
pageSize: process.stdout.rows - 6,
|
|
91
150
|
});
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
151
|
+
const prompts = [];
|
|
152
|
+
let purpose;
|
|
153
|
+
const useCustomProvider = redTeamChoice === 'rag' || redTeamChoice === 'agent';
|
|
154
|
+
let deferGeneration = useCustomProvider;
|
|
155
|
+
const defaultPrompt = 'You are a travel agent specialized in budget trips to Europe\n\nUser query: {{query}}';
|
|
156
|
+
const defaultPurpose = 'Travel agent specializing in budget trips to Europe';
|
|
157
|
+
if (useCustomProvider) {
|
|
158
|
+
purpose =
|
|
159
|
+
(await (0, input_1.default)({
|
|
160
|
+
message: (0, dedent_1.default) `What is the purpose of your application? This is used to tailor the attacks. Be as specific as possible.
|
|
161
|
+
(e.g. "${defaultPurpose}")\n`,
|
|
162
|
+
})) || defaultPurpose;
|
|
163
|
+
prompts.push(`{{query}}`);
|
|
98
164
|
}
|
|
99
|
-
else if (
|
|
100
|
-
const
|
|
101
|
-
message: '
|
|
165
|
+
else if (redTeamChoice === 'prompt_model_chatbot') {
|
|
166
|
+
const promptChoice = await (0, select_1.default)({
|
|
167
|
+
message: 'Do you want to enter a prompt now or later?',
|
|
168
|
+
choices: [
|
|
169
|
+
{ name: 'Enter prompt now', value: 'now' },
|
|
170
|
+
{ name: 'Enter prompt later', value: 'later' },
|
|
171
|
+
],
|
|
102
172
|
});
|
|
103
|
-
|
|
173
|
+
let prompt;
|
|
174
|
+
if (promptChoice === 'now') {
|
|
175
|
+
prompt = await (0, editor_1.default)({
|
|
176
|
+
message: 'Enter the prompt you want to test against:',
|
|
177
|
+
default: (0, dedent_1.default) `You are a helpful concise assistant.
|
|
178
|
+
|
|
179
|
+
User query: {{query}}
|
|
180
|
+
|
|
181
|
+
(NOTE: your prompt must include "{{query}}" as a placeholder for user input)`,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
prompt = defaultPrompt;
|
|
186
|
+
deferGeneration = true;
|
|
187
|
+
}
|
|
188
|
+
prompts.push(prompt);
|
|
104
189
|
}
|
|
105
|
-
else
|
|
106
|
-
|
|
107
|
-
prompts = existingConfig?.prompts;
|
|
190
|
+
else {
|
|
191
|
+
prompts.push('You are a travel agent specialized in budget trips to Europe\n\nUser query: {{query}}');
|
|
108
192
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
name: '
|
|
117
|
-
value: '
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
const customProvider = await (0, input_1.default)({
|
|
134
|
-
message: 'Enter the custom provider ID (see https://www.promptfoo.dev/docs/providers/ for options):',
|
|
193
|
+
let providers;
|
|
194
|
+
if (useCustomProvider) {
|
|
195
|
+
providers = ['python:chat.py'];
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
const providerChoices = [
|
|
199
|
+
{ name: `I'll choose later`, value: 'Other' },
|
|
200
|
+
{ name: 'openai:gpt-4o-mini', value: 'openai:gpt-4o-mini' },
|
|
201
|
+
{ name: 'openai:gpt-4o', value: 'openai:gpt-4o' },
|
|
202
|
+
{ name: 'openai:gpt-3.5-turbo', value: 'openai:gpt-3.5-turbo' },
|
|
203
|
+
{
|
|
204
|
+
name: 'anthropic:claude-3-5-sonnet-20240620',
|
|
205
|
+
value: 'anthropic:messages:claude-3-5-sonnet-20240620',
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
name: 'anthropic:claude-3-opus-20240307',
|
|
209
|
+
value: 'anthropic:messages:claude-3-opus-20240307',
|
|
210
|
+
},
|
|
211
|
+
{ name: 'vertex:gemini-pro', value: 'vertex:gemini-pro' },
|
|
212
|
+
];
|
|
213
|
+
const selectedProvider = await (0, select_1.default)({
|
|
214
|
+
message: 'Choose a model to target:',
|
|
215
|
+
choices: providerChoices,
|
|
216
|
+
pageSize: process.stdout.rows - 6,
|
|
135
217
|
});
|
|
136
|
-
|
|
218
|
+
if (selectedProvider === 'Other') {
|
|
219
|
+
providers = ['openai:gpt-4o-mini'];
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
providers = [selectedProvider];
|
|
223
|
+
}
|
|
137
224
|
}
|
|
138
|
-
if (!
|
|
225
|
+
if (!(0, envars_1.getEnvString)('OPENAI_API_KEY')) {
|
|
139
226
|
console.clear();
|
|
140
227
|
logger_1.default.info(chalk_1.default.bold('OpenAI API Configuration\n'));
|
|
141
228
|
const apiKeyChoice = await (0, rawlist_1.default)({
|
|
142
|
-
message:
|
|
229
|
+
message: `OpenAI API key is required, but I don't see an OPENAI_API_KEY environment variable. How to proceed?`,
|
|
143
230
|
choices: [
|
|
144
231
|
{ name: 'Enter API key now', value: 'enter' },
|
|
145
232
|
{ name: 'Set it later', value: 'later' },
|
|
@@ -151,6 +238,7 @@ async function redteamInit(directory) {
|
|
|
151
238
|
logger_1.default.info('OPENAI_API_KEY set for this session.');
|
|
152
239
|
}
|
|
153
240
|
else {
|
|
241
|
+
deferGeneration = true;
|
|
154
242
|
logger_1.default.warn('Remember to set OPENAI_API_KEY before generating the dataset.');
|
|
155
243
|
}
|
|
156
244
|
}
|
|
@@ -161,13 +249,12 @@ async function redteamInit(directory) {
|
|
|
161
249
|
.map((plugin) => ({
|
|
162
250
|
name: `${plugin} - ${constants_1.subCategoryDescriptions[plugin] || 'No description'}`,
|
|
163
251
|
value: plugin,
|
|
164
|
-
checked:
|
|
165
|
-
constants_1.DEFAULT_PLUGINS.has(plugin),
|
|
252
|
+
checked: constants_1.DEFAULT_PLUGINS.has(plugin),
|
|
166
253
|
}));
|
|
167
254
|
const plugins = await (0, checkbox_1.default)({
|
|
168
|
-
message:
|
|
255
|
+
message: `Plugins generate adversarial inputs. Select the ones you want to use. Don't worry, you can change this later:`,
|
|
169
256
|
choices: pluginChoices,
|
|
170
|
-
pageSize:
|
|
257
|
+
pageSize: process.stdout.rows - 6,
|
|
171
258
|
loop: false,
|
|
172
259
|
validate: (answer) => answer.length > 0 || 'You must select at least one plugin.',
|
|
173
260
|
});
|
|
@@ -179,7 +266,7 @@ async function redteamInit(directory) {
|
|
|
179
266
|
plugins.splice(policyIndex, 1);
|
|
180
267
|
}
|
|
181
268
|
const policyDescription = await (0, input_1.default)({
|
|
182
|
-
message: 'You selected the `policy` plugin. Please enter your custom policy description
|
|
269
|
+
message: 'You selected the `policy` plugin. Please enter your custom policy description, or leave empty to skip.\n(e.g. "Never talk about the weather")',
|
|
183
270
|
});
|
|
184
271
|
if (policyDescription.trim() !== '') {
|
|
185
272
|
plugins.push({
|
|
@@ -198,42 +285,16 @@ async function redteamInit(directory) {
|
|
|
198
285
|
? {
|
|
199
286
|
name: `${strategy} - ${constants_1.subCategoryDescriptions[strategy] || 'No description'}`,
|
|
200
287
|
value: strategy,
|
|
201
|
-
checked:
|
|
288
|
+
checked: constants_1.DEFAULT_STRATEGIES.includes(strategy),
|
|
202
289
|
}
|
|
203
290
|
: strategy);
|
|
204
291
|
const strategies = await (0, checkbox_1.default)({
|
|
205
|
-
message:
|
|
292
|
+
message: `Strategies are attack methods. Select the ones you want to use. Don't worry, you can change this later:`,
|
|
206
293
|
choices: strategyChoices,
|
|
207
|
-
pageSize:
|
|
294
|
+
pageSize: process.stdout.rows - 6,
|
|
208
295
|
loop: false,
|
|
209
296
|
});
|
|
210
|
-
const
|
|
211
|
-
message: 'Number of test cases per plugin:',
|
|
212
|
-
default: 5,
|
|
213
|
-
min: 0,
|
|
214
|
-
max: 1000,
|
|
215
|
-
});
|
|
216
|
-
(0, tiny_invariant_1.default)(numTests, 'No number of tests provided');
|
|
217
|
-
// Create config file
|
|
218
|
-
const config = {
|
|
219
|
-
prompts,
|
|
220
|
-
providers: providers,
|
|
221
|
-
tests: [],
|
|
222
|
-
redteam: redteam_1.RedteamConfigSchema.safeParse({
|
|
223
|
-
plugins,
|
|
224
|
-
strategies,
|
|
225
|
-
numTests,
|
|
226
|
-
}).data,
|
|
227
|
-
};
|
|
228
|
-
// Write the simplified form to the config file to make it easier
|
|
229
|
-
// for people to play with. Writes 1 in the { id: ..., numTests }
|
|
230
|
-
// and then the rest as strings.
|
|
231
|
-
const parsedPlugins = redteam_1.RedteamConfigSchema.safeParse({
|
|
232
|
-
plugins,
|
|
233
|
-
strategies,
|
|
234
|
-
numTests,
|
|
235
|
-
})?.data?.plugins;
|
|
236
|
-
const hasHarmfulPlugin = parsedPlugins?.some((plugin) => plugin.id.startsWith('harmful'));
|
|
297
|
+
const hasHarmfulPlugin = plugins.some((plugin) => typeof plugin === 'string' && plugin.startsWith('harmful'));
|
|
237
298
|
if (hasHarmfulPlugin) {
|
|
238
299
|
const { hasHarmfulRedteamConsent } = (0, globalConfig_1.readGlobalConfig)();
|
|
239
300
|
if (!hasHarmfulRedteamConsent) {
|
|
@@ -270,42 +331,56 @@ async function redteamInit(directory) {
|
|
|
270
331
|
}
|
|
271
332
|
}
|
|
272
333
|
}
|
|
273
|
-
const
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
console.clear();
|
|
283
|
-
logger_1.default.info(chalk_1.default.green(`\nCreated red teaming configuration file at ${configPath}\n`));
|
|
284
|
-
const readyToGenerate = await (0, confirm_1.default)({
|
|
285
|
-
message: 'Are you ready to generate adversarial test cases?',
|
|
286
|
-
default: true,
|
|
334
|
+
const numTests = 5;
|
|
335
|
+
const nunjucks = (0, templates_1.getNunjucksEngine)();
|
|
336
|
+
const redteamConfig = nunjucks.renderString(REDTEAM_CONFIG_TEMPLATE, {
|
|
337
|
+
purpose,
|
|
338
|
+
numTests,
|
|
339
|
+
plugins,
|
|
340
|
+
strategies,
|
|
341
|
+
prompts,
|
|
342
|
+
providers,
|
|
287
343
|
});
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
cache: false,
|
|
292
|
-
write: true,
|
|
293
|
-
defaultConfig: config,
|
|
294
|
-
defaultConfigPath: configPath,
|
|
295
|
-
numTests,
|
|
296
|
-
});
|
|
344
|
+
fs.writeFileSync(configPath, redteamConfig, 'utf8');
|
|
345
|
+
if (useCustomProvider) {
|
|
346
|
+
fs.writeFileSync(path.join(projectDir, 'chat.py'), CUSTOM_PROVIDER_TEMPLATE, 'utf8');
|
|
297
347
|
}
|
|
298
|
-
|
|
348
|
+
console.clear();
|
|
349
|
+
logger_1.default.info(chalk_1.default.green(`\nCreated red teaming configuration file at ${configPath}\n`));
|
|
350
|
+
telemetry_1.default.record('command_used', { name: 'redteam init' });
|
|
351
|
+
await telemetry_1.default.send();
|
|
352
|
+
if (deferGeneration) {
|
|
299
353
|
logger_1.default.info('\n' +
|
|
300
|
-
chalk_1.default.blue('To generate test cases
|
|
354
|
+
chalk_1.default.blue('To generate test cases after editing your configuration, use the command: ' +
|
|
301
355
|
chalk_1.default.bold('promptfoo generate redteam')));
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
else {
|
|
359
|
+
const readyToGenerate = await (0, confirm_1.default)({
|
|
360
|
+
message: 'Are you ready to generate adversarial test cases?',
|
|
361
|
+
default: true,
|
|
362
|
+
});
|
|
363
|
+
if (readyToGenerate) {
|
|
364
|
+
await (0, redteam_1.doGenerateRedteam)({
|
|
365
|
+
purpose,
|
|
366
|
+
plugins: plugins.map((plugin) => (typeof plugin === 'string' ? { id: plugin } : plugin)),
|
|
367
|
+
cache: false,
|
|
368
|
+
write: false,
|
|
369
|
+
output: 'redteam.yaml',
|
|
370
|
+
defaultConfig: {},
|
|
371
|
+
defaultConfigPath: configPath,
|
|
372
|
+
numTests,
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
else {
|
|
376
|
+
logger_1.default.info('\n' +
|
|
377
|
+
chalk_1.default.blue('To generate test cases later, use the command: ' +
|
|
378
|
+
chalk_1.default.bold('promptfoo generate redteam')));
|
|
379
|
+
}
|
|
302
380
|
}
|
|
303
|
-
telemetry_1.default.record('command_used', { name: 'redteam init' });
|
|
304
|
-
await telemetry_1.default.send();
|
|
305
381
|
}
|
|
306
|
-
function
|
|
307
|
-
|
|
308
|
-
redteamCommand
|
|
382
|
+
function initRedteamCommand(program) {
|
|
383
|
+
program
|
|
309
384
|
.command('init [directory]')
|
|
310
385
|
.description('Initialize red teaming project')
|
|
311
386
|
.action(async (directory) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redteam.js","sourceRoot":"","sources":["../../../src/commands/redteam.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"redteam.js","sourceRoot":"","sources":["../../../src/commands/redteam.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../../../src/commands/share.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../../../src/commands/share.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAezC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,QAgE5C"}
|