promptfoo 0.81.4 → 0.82.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/dist/drizzle/0004_minor_peter_quill.sql +19 -0
  2. package/dist/drizzle/meta/_journal.json +7 -0
  3. package/dist/package.json +1 -1
  4. package/dist/src/assertions.js +1 -1
  5. package/dist/src/assertions.js.map +1 -1
  6. package/dist/src/commands/delete.js +1 -1
  7. package/dist/src/commands/delete.js.map +1 -1
  8. package/dist/src/commands/export.js +1 -1
  9. package/dist/src/commands/export.js.map +1 -1
  10. package/dist/src/commands/{generate/redteam.d.ts → redteam/generate.d.ts} +3 -3
  11. package/dist/src/commands/redteam/generate.d.ts.map +1 -0
  12. package/dist/src/commands/{generate/redteam.js → redteam/generate.js} +5 -3
  13. package/dist/src/commands/redteam/generate.js.map +1 -0
  14. package/dist/src/commands/{redteam.d.ts → redteam/init.d.ts} +1 -2
  15. package/dist/src/commands/redteam/init.d.ts.map +1 -0
  16. package/dist/src/commands/{redteam.js → redteam/init.js} +118 -145
  17. package/dist/src/commands/redteam/init.js.map +1 -0
  18. package/dist/src/commands/redteam/plugins.d.ts +3 -0
  19. package/dist/src/commands/redteam/plugins.d.ts.map +1 -0
  20. package/dist/src/commands/redteam/plugins.js +31 -0
  21. package/dist/src/commands/redteam/plugins.js.map +1 -0
  22. package/dist/src/csv.js +1 -1
  23. package/dist/src/csv.js.map +1 -1
  24. package/dist/src/database/tables.d.ts +108 -6
  25. package/dist/src/database/tables.d.ts.map +1 -1
  26. package/dist/src/database/tables.js +36 -1
  27. package/dist/src/database/tables.js.map +1 -1
  28. package/dist/src/envars.d.ts +2 -0
  29. package/dist/src/envars.d.ts.map +1 -1
  30. package/dist/src/envars.js.map +1 -1
  31. package/dist/src/evaluator.js +1 -1
  32. package/dist/src/evaluator.js.map +1 -1
  33. package/dist/src/index.d.ts +15 -3
  34. package/dist/src/index.d.ts.map +1 -1
  35. package/dist/src/index.js +14 -3
  36. package/dist/src/index.js.map +1 -1
  37. package/dist/src/main.d.ts.map +1 -1
  38. package/dist/src/main.js +7 -6
  39. package/dist/src/main.js.map +1 -1
  40. package/dist/src/onboarding.js +2 -2
  41. package/dist/src/onboarding.js.map +1 -1
  42. package/dist/src/prompts/utils.js +1 -1
  43. package/dist/src/prompts/utils.js.map +1 -1
  44. package/dist/src/providers/ai21.js +1 -1
  45. package/dist/src/providers/ai21.js.map +1 -1
  46. package/dist/src/providers/azureopenai.js +1 -1
  47. package/dist/src/providers/azureopenai.js.map +1 -1
  48. package/dist/src/providers/bedrock.js +2 -2
  49. package/dist/src/providers/bedrock.js.map +1 -1
  50. package/dist/src/providers/localai.js +1 -1
  51. package/dist/src/providers/localai.js.map +1 -1
  52. package/dist/src/providers/mistral.js +1 -1
  53. package/dist/src/providers/mistral.js.map +1 -1
  54. package/dist/src/providers/openai.js +1 -1
  55. package/dist/src/providers/openai.js.map +1 -1
  56. package/dist/src/redteam/extraction/entities.d.ts.map +1 -1
  57. package/dist/src/redteam/extraction/entities.js +12 -0
  58. package/dist/src/redteam/extraction/entities.js.map +1 -1
  59. package/dist/src/redteam/extraction/purpose.d.ts.map +1 -1
  60. package/dist/src/redteam/extraction/purpose.js +13 -0
  61. package/dist/src/redteam/extraction/purpose.js.map +1 -1
  62. package/dist/src/redteam/extraction/util.d.ts +28 -0
  63. package/dist/src/redteam/extraction/util.d.ts.map +1 -1
  64. package/dist/src/redteam/extraction/util.js +43 -0
  65. package/dist/src/redteam/extraction/util.js.map +1 -1
  66. package/dist/src/redteam/graders.js +4 -4
  67. package/dist/src/redteam/graders.js.map +1 -1
  68. package/dist/src/redteam/index.d.ts +1 -1
  69. package/dist/src/redteam/index.d.ts.map +1 -1
  70. package/dist/src/redteam/index.js +38 -23
  71. package/dist/src/redteam/index.js.map +1 -1
  72. package/dist/src/redteam/plugins/base.d.ts +6 -5
  73. package/dist/src/redteam/plugins/base.d.ts.map +1 -1
  74. package/dist/src/redteam/plugins/base.js +21 -7
  75. package/dist/src/redteam/plugins/base.js.map +1 -1
  76. package/dist/src/redteam/plugins/bfla.d.ts +1 -1
  77. package/dist/src/redteam/plugins/bfla.d.ts.map +1 -1
  78. package/dist/src/redteam/plugins/bfla.js +11 -5
  79. package/dist/src/redteam/plugins/bfla.js.map +1 -1
  80. package/dist/src/redteam/plugins/bola.d.ts +1 -1
  81. package/dist/src/redteam/plugins/bola.d.ts.map +1 -1
  82. package/dist/src/redteam/plugins/bola.js +11 -7
  83. package/dist/src/redteam/plugins/bola.js.map +1 -1
  84. package/dist/src/redteam/plugins/custom.d.ts +1 -1
  85. package/dist/src/redteam/plugins/custom.d.ts.map +1 -1
  86. package/dist/src/redteam/plugins/custom.js +2 -2
  87. package/dist/src/redteam/plugins/custom.js.map +1 -1
  88. package/dist/src/redteam/plugins/harmful.d.ts +5 -1
  89. package/dist/src/redteam/plugins/harmful.d.ts.map +1 -1
  90. package/dist/src/redteam/plugins/harmful.js +109 -67
  91. package/dist/src/redteam/plugins/harmful.js.map +1 -1
  92. package/dist/src/redteam/plugins/index.d.ts +5 -4
  93. package/dist/src/redteam/plugins/index.d.ts.map +1 -1
  94. package/dist/src/redteam/plugins/index.js +35 -84
  95. package/dist/src/redteam/plugins/index.js.map +1 -1
  96. package/dist/src/redteam/plugins/indirectPromptInjection.d.ts +0 -2
  97. package/dist/src/redteam/plugins/indirectPromptInjection.d.ts.map +1 -1
  98. package/dist/src/redteam/plugins/indirectPromptInjection.js +0 -3
  99. package/dist/src/redteam/plugins/indirectPromptInjection.js.map +1 -1
  100. package/dist/src/redteam/plugins/policy.d.ts +1 -1
  101. package/dist/src/redteam/plugins/policy.d.ts.map +1 -1
  102. package/dist/src/redteam/plugins/policy.js +4 -2
  103. package/dist/src/redteam/plugins/policy.js.map +1 -1
  104. package/dist/src/redteam/plugins/promptExtraction.d.ts +1 -1
  105. package/dist/src/redteam/plugins/promptExtraction.d.ts.map +1 -1
  106. package/dist/src/redteam/plugins/promptExtraction.js +1 -1
  107. package/dist/src/redteam/plugins/promptExtraction.js.map +1 -1
  108. package/dist/src/redteam/plugins/ssrf.d.ts +1 -1
  109. package/dist/src/redteam/plugins/ssrf.d.ts.map +1 -1
  110. package/dist/src/redteam/plugins/ssrf.js +2 -2
  111. package/dist/src/redteam/plugins/ssrf.js.map +1 -1
  112. package/dist/src/redteam/providers/crescendo/index.d.ts +2 -2
  113. package/dist/src/redteam/providers/crescendo/index.d.ts.map +1 -1
  114. package/dist/src/redteam/providers/iterative.d.ts.map +1 -1
  115. package/dist/src/redteam/providers/iterativeImage.d.ts.map +1 -1
  116. package/dist/src/redteam/providers/shared.d.ts +2 -2
  117. package/dist/src/redteam/providers/shared.d.ts.map +1 -1
  118. package/dist/src/redteam/providers/shared.js +1 -1
  119. package/dist/src/redteam/providers/shared.js.map +1 -1
  120. package/dist/src/redteam/strategies/index.d.ts +2 -4
  121. package/dist/src/redteam/strategies/index.d.ts.map +1 -1
  122. package/dist/src/redteam/strategies/index.js.map +1 -1
  123. package/dist/src/redteam/strategies/multilingual.d.ts.map +1 -1
  124. package/dist/src/redteam/strategies/multilingual.js +20 -0
  125. package/dist/src/redteam/strategies/multilingual.js.map +1 -1
  126. package/dist/src/redteam/util.d.ts.map +1 -1
  127. package/dist/src/redteam/util.js +14 -2
  128. package/dist/src/redteam/util.js.map +1 -1
  129. package/dist/src/types/index.d.ts +40 -40
  130. package/dist/src/types/index.d.ts.map +1 -1
  131. package/dist/src/types/index.js.map +1 -1
  132. package/dist/src/types/redteam.d.ts +29 -35
  133. package/dist/src/types/redteam.d.ts.map +1 -1
  134. package/dist/src/util/index.d.ts +7 -1
  135. package/dist/src/util/index.d.ts.map +1 -1
  136. package/dist/src/util/index.js +34 -4
  137. package/dist/src/util/index.js.map +1 -1
  138. package/dist/src/util/templates.d.ts.map +1 -1
  139. package/dist/src/util/templates.js +2 -0
  140. package/dist/src/util/templates.js.map +1 -1
  141. package/dist/src/validators/redteam.d.ts +20 -13
  142. package/dist/src/validators/redteam.d.ts.map +1 -1
  143. package/dist/src/validators/redteam.js +13 -0
  144. package/dist/src/validators/redteam.js.map +1 -1
  145. package/dist/src/web/nextui/404/index.html +1 -1
  146. package/dist/src/web/nextui/404.html +1 -1
  147. package/dist/src/web/nextui/_next/static/chunks/258-97aa8e9afbe66e83.js +1 -0
  148. package/dist/src/web/nextui/_next/static/chunks/app/{layout-ea3efc5da1d80944.js → layout-436df6a7978b874b.js} +1 -1
  149. package/dist/src/web/nextui/_next/static/chunks/app/report/{page-6dd357313bf638d1.js → page-a330d7b915e8a5b9.js} +1 -1
  150. package/dist/src/web/nextui/_next/static/chunks/main-app-0dc90092cd7acaaf.js +1 -0
  151. package/dist/src/web/nextui/auth/login/index.html +1 -1
  152. package/dist/src/web/nextui/auth/login/index.txt +2 -2
  153. package/dist/src/web/nextui/auth/signup/index.html +1 -1
  154. package/dist/src/web/nextui/auth/signup/index.txt +2 -2
  155. package/dist/src/web/nextui/datasets/index.html +1 -1
  156. package/dist/src/web/nextui/datasets/index.txt +2 -2
  157. package/dist/src/web/nextui/eval/index.html +1 -1
  158. package/dist/src/web/nextui/eval/index.txt +3 -3
  159. package/dist/src/web/nextui/index.html +1 -1
  160. package/dist/src/web/nextui/index.txt +2 -2
  161. package/dist/src/web/nextui/progress/index.html +1 -1
  162. package/dist/src/web/nextui/progress/index.txt +2 -2
  163. package/dist/src/web/nextui/prompts/index.html +1 -1
  164. package/dist/src/web/nextui/prompts/index.txt +2 -2
  165. package/dist/src/web/nextui/report/index.html +1 -1
  166. package/dist/src/web/nextui/report/index.txt +3 -3
  167. package/dist/src/web/nextui/setup/index.html +1 -1
  168. package/dist/src/web/nextui/setup/index.txt +3 -3
  169. package/dist/test/assertions.test.js +6 -6
  170. package/dist/test/assertions.test.js.map +1 -1
  171. package/dist/test/commands/redteam/generate.test.d.ts +2 -0
  172. package/dist/test/commands/redteam/generate.test.d.ts.map +1 -0
  173. package/dist/test/commands/{generate/redteam.test.js → redteam/generate.test.js} +12 -13
  174. package/dist/test/commands/redteam/generate.test.js.map +1 -0
  175. package/dist/test/redteam/extraction/entities.test.js +43 -2
  176. package/dist/test/redteam/extraction/entities.test.js.map +1 -1
  177. package/dist/test/redteam/extraction/purpose.test.js +44 -10
  178. package/dist/test/redteam/extraction/purpose.test.js.map +1 -1
  179. package/dist/test/redteam/extraction/util.test.js +93 -4
  180. package/dist/test/redteam/extraction/util.test.js.map +1 -1
  181. package/dist/test/redteam/index.test.js +0 -23
  182. package/dist/test/redteam/index.test.js.map +1 -1
  183. package/dist/test/redteam/plugins/base.test.js +16 -4
  184. package/dist/test/redteam/plugins/base.test.js.map +1 -1
  185. package/dist/test/redteam/providers/shared.test.js +0 -8
  186. package/dist/test/redteam/providers/shared.test.js.map +1 -1
  187. package/dist/test/redteam/validators.test.js +1 -1
  188. package/dist/test/redteam/validators.test.js.map +1 -1
  189. package/dist/test/util.templates.test.js +18 -0
  190. package/dist/test/util.templates.test.js.map +1 -1
  191. package/package.json +1 -1
  192. package/dist/src/commands/generate/redteam.d.ts.map +0 -1
  193. package/dist/src/commands/generate/redteam.js.map +0 -1
  194. package/dist/src/commands/redteam.d.ts.map +0 -1
  195. package/dist/src/commands/redteam.js.map +0 -1
  196. package/dist/src/web/nextui/_next/static/chunks/258-666c2b1786df7260.js +0 -1
  197. package/dist/src/web/nextui/_next/static/chunks/main-app-cf76b7c55faa5c9b.js +0 -1
  198. package/dist/test/commands/generate/redteam.test.d.ts +0 -2
  199. package/dist/test/commands/generate/redteam.test.d.ts.map +0 -1
  200. package/dist/test/commands/generate/redteam.test.js.map +0 -1
  201. /package/dist/src/web/nextui/_next/static/chunks/app/setup/{page-1e593de415907683.js → page-1966e3fc2c36f287.js} +0 -0
  202. /package/dist/src/web/nextui/_next/static/{v1B0stUXeP04j29_pdYoD → hKKNDbykxSExL2_mnZqWi}/_buildManifest.js +0 -0
  203. /package/dist/src/web/nextui/_next/static/{v1B0stUXeP04j29_pdYoD → hKKNDbykxSExL2_mnZqWi}/_ssgManifest.js +0 -0
@@ -28,7 +28,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.redteamInit = redteamInit;
30
30
  exports.initCommand = initCommand;
31
- exports.pluginsCommand = pluginsCommand;
32
31
  const checkbox_1 = __importDefault(require("@inquirer/checkbox"));
33
32
  const checkbox_2 = require("@inquirer/checkbox");
34
33
  const confirm_1 = __importDefault(require("@inquirer/confirm"));
@@ -41,14 +40,14 @@ const chalk_1 = __importDefault(require("chalk"));
41
40
  const dedent_1 = __importDefault(require("dedent"));
42
41
  const fs = __importStar(require("fs"));
43
42
  const path = __importStar(require("path"));
44
- const accounts_1 = require("../accounts");
45
- const envars_1 = require("../envars");
46
- const globalConfig_1 = require("../globalConfig");
47
- const logger_1 = __importDefault(require("../logger"));
48
- const constants_1 = require("../redteam/constants");
49
- const telemetry_1 = __importDefault(require("../telemetry"));
50
- const templates_1 = require("../util/templates");
51
- const redteam_1 = require("./generate/redteam");
43
+ const accounts_1 = require("../../accounts");
44
+ const envars_1 = require("../../envars");
45
+ const globalConfig_1 = require("../../globalConfig");
46
+ const logger_1 = __importDefault(require("../../logger"));
47
+ const constants_1 = require("../../redteam/constants");
48
+ const telemetry_1 = __importDefault(require("../../telemetry"));
49
+ const templates_1 = require("../../util/templates");
50
+ const generate_1 = require("./generate");
52
51
  const REDTEAM_CONFIG_TEMPLATE = `# Red teaming configuration
53
52
  # Docs: https://promptfoo.dev/docs/red-team/configuration
54
53
 
@@ -151,14 +150,14 @@ async function getSystemPrompt(numVariablesRequired = 1) {
151
150
  default: prompt,
152
151
  });
153
152
  prompt = prompt.replace(NOTE, '');
154
- let variables = (0, templates_1.extractVariablesFromTemplate)(prompt);
155
- while (variables.length < numVariablesRequired) {
156
- logger_1.default.info(chalk_1.default.red(`For real though, your prompt must include ${numVariablesRequired} ${numVariablesRequired === 1 ? 'variable' : 'variables'} like "{{query}}" as a placeholder for user input`));
153
+ const variables = (0, templates_1.extractVariablesFromTemplate)(prompt);
154
+ if (variables.length < numVariablesRequired) {
155
+ // Give the user another chance to edit their prompt
156
+ logger_1.default.info(chalk_1.default.red(`Your prompt must include ${numVariablesRequired} ${numVariablesRequired === 1 ? 'variable' : 'variables'} like "{{query}}" as a placeholder for user input.`));
157
157
  prompt = await (0, editor_1.default)({
158
158
  message: 'Enter the prompt you want to test against:',
159
159
  default: prompt,
160
160
  });
161
- variables = (0, templates_1.extractVariablesFromTemplate)(prompt);
162
161
  }
163
162
  return prompt;
164
163
  }
@@ -185,7 +184,6 @@ async function redteamInit(directory) {
185
184
  });
186
185
  recordOnboardingStep('choose app type', { value: redTeamChoice });
187
186
  const prompts = [];
188
- let defaultPromptUsed = false;
189
187
  let purpose;
190
188
  const useCustomProvider = redTeamChoice === 'rag' || redTeamChoice === 'agent';
191
189
  let deferGeneration = useCustomProvider;
@@ -214,14 +212,12 @@ async function redteamInit(directory) {
214
212
  prompt = await getSystemPrompt();
215
213
  }
216
214
  else {
217
- defaultPromptUsed = true;
218
215
  prompt = defaultPrompt;
219
216
  deferGeneration = true;
220
217
  }
221
218
  prompts.push(prompt);
222
219
  }
223
220
  else {
224
- defaultPromptUsed = true;
225
221
  prompts.push('You are a travel agent specialized in budget trips to Europe\n\nUser query: {{query}}');
226
222
  }
227
223
  let providers;
@@ -281,27 +277,49 @@ async function redteamInit(directory) {
281
277
  }
282
278
  console.clear();
283
279
  recordOnboardingStep('begin plugin & strategy selection');
284
- logger_1.default.info(chalk_1.default.bold('Plugin Configuration\n'));
285
- const pluginChoices = Array.from(constants_1.ALL_PLUGINS)
286
- .sort()
287
- .map((plugin) => ({
288
- name: `${plugin} - ${constants_1.subCategoryDescriptions[plugin] || 'No description'}`,
289
- value: plugin,
290
- checked: constants_1.DEFAULT_PLUGINS.has(plugin),
291
- }));
292
- const plugins = await (0, checkbox_1.default)({
293
- message: `Plugins generate adversarial inputs. Select the ones you want to use. Don't worry, you can change this later:`,
294
- choices: pluginChoices,
295
- pageSize: process.stdout.rows - 6,
296
- loop: false,
297
- validate: (answer) => answer.length > 0 || 'You must select at least one plugin.',
298
- });
299
- recordOnboardingStep('choose plugins', {
300
- value: plugins.map((p) => (typeof p === 'string' ? p : p.id)),
280
+ logger_1.default.info(chalk_1.default.bold('Plugin Configuration'));
281
+ logger_1.default.info('Plugins generate adversarial inputs.\n');
282
+ const pluginConfigChoice = await (0, select_1.default)({
283
+ message: 'How would you like to configure plugins?',
284
+ choices: [
285
+ { name: 'Use the defaults (configure later)', value: 'default' },
286
+ { name: 'Manually select', value: 'manual' },
287
+ ],
301
288
  });
302
- // Handle policy plugin
289
+ recordOnboardingStep('choose plugin config method', { value: pluginConfigChoice });
290
+ let plugins;
291
+ if (pluginConfigChoice === 'default') {
292
+ if (redTeamChoice === 'rag') {
293
+ plugins = Array.from(constants_1.DEFAULT_PLUGINS);
294
+ }
295
+ else if (redTeamChoice === 'agent') {
296
+ plugins = [...constants_1.DEFAULT_PLUGINS, 'rbac', 'bola', 'bfla', 'ssrf'];
297
+ }
298
+ else {
299
+ plugins = Array.from(constants_1.DEFAULT_PLUGINS);
300
+ }
301
+ }
302
+ else {
303
+ const pluginChoices = Array.from(constants_1.ALL_PLUGINS)
304
+ .sort()
305
+ .map((plugin) => ({
306
+ name: `${plugin} - ${constants_1.subCategoryDescriptions[plugin] || 'No description'}`,
307
+ value: plugin,
308
+ checked: constants_1.DEFAULT_PLUGINS.has(plugin),
309
+ }));
310
+ plugins = await (0, checkbox_1.default)({
311
+ message: `Select the plugins you want to use. Don't worry, you can change this later:`,
312
+ choices: pluginChoices,
313
+ pageSize: process.stdout.rows - 6,
314
+ loop: false,
315
+ validate: (answer) => answer.length > 0 || 'You must select at least one plugin.',
316
+ });
317
+ recordOnboardingStep('choose plugins', {
318
+ value: plugins.map((p) => (typeof p === 'string' ? p : p.id)),
319
+ });
320
+ }
321
+ // Plugins that require additional configuration
303
322
  if (plugins.includes('policy')) {
304
- // Remove the original 'policy' string if it exists
305
323
  const policyIndex = plugins.indexOf('policy');
306
324
  if (policyIndex !== -1) {
307
325
  plugins.splice(policyIndex, 1);
@@ -318,104 +336,80 @@ async function redteamInit(directory) {
318
336
  });
319
337
  }
320
338
  }
321
- // Handle prompt extraction plugin
322
339
  if (plugins.includes('prompt-extraction')) {
323
- const promptExtractionIdx = plugins.indexOf('prompt-extraction');
324
- if (promptExtractionIdx !== -1) {
325
- plugins.splice(promptExtractionIdx, 1);
326
- }
327
- if (defaultPromptUsed) {
328
- recordOnboardingStep('collect system prompt');
329
- const systemPrompt = await getSystemPrompt();
330
- recordOnboardingStep('choose system prompt', { value: systemPrompt.length });
331
- if (systemPrompt.trim() !== '') {
332
- plugins.push({
333
- id: 'prompt-extraction',
334
- config: { systemPrompt: (0, dedent_1.default)(systemPrompt.trim()) },
335
- });
336
- prompts[0] = systemPrompt;
337
- }
338
- }
339
- else {
340
- plugins.push({
341
- id: 'prompt-extraction',
342
- config: { systemPrompt: prompts[0] },
343
- });
344
- }
340
+ plugins.push({
341
+ id: 'prompt-extraction',
342
+ config: { systemPrompt: prompts[0] },
343
+ });
345
344
  }
346
- // Handle prompt extraction plugin
347
345
  if (plugins.includes('indirect-prompt-injection')) {
346
+ recordOnboardingStep('choose indirect prompt injection variable');
348
347
  logger_1.default.info(chalk_1.default.bold('Indirect Prompt Injection Configuration\n'));
349
- logger_1.default.info(chalk_1.default.yellow('This plugin tests if the prompt is vulnerable to instructions injected into the prompt.\n'));
350
- logger_1.default.info(chalk_1.default.yellow('This plugin requires two pieces of information:\n' +
351
- '1. The system prompt: This is the template that includes variables where content will be injected.\n' +
352
- '2. The indirectInjectionVarName: This is the name of the variable in your system prompt where untrusted content will be injected.\n\n' +
353
- 'These are needed to test if the model is vulnerable to instructions injected into the prompt through this variable.\n'));
354
- await (0, input_1.default)({
355
- message: 'Read the above and Press Enter to continue setting up the plugin.',
356
- });
357
- const promptExtractionIdx = plugins.indexOf('indirect-prompt-injection');
358
- if (promptExtractionIdx !== -1) {
359
- plugins.splice(promptExtractionIdx, 1);
360
- }
361
- if (defaultPromptUsed) {
362
- const systemPrompt = await getSystemPrompt(2);
363
- const variables = (0, templates_1.extractVariablesFromTemplate)(systemPrompt);
364
- let indirectInjectionVar = variables[0].trim();
365
- indirectInjectionVar = await (0, input_1.default)({
366
- message: `What is the name of the variable where content will be injected into the prompt? (e.g. "name")`,
367
- default: indirectInjectionVar,
348
+ const variables = (0, templates_1.extractVariablesFromTemplate)(prompts[0]);
349
+ if (variables.length > 1) {
350
+ const indirectInjectionVar = await (0, select_1.default)({
351
+ message: 'Which variable would you like to test for indirect prompt injection?',
352
+ choices: variables.sort().map((variable) => ({
353
+ name: variable,
354
+ value: variable,
355
+ })),
368
356
  });
369
- indirectInjectionVar = indirectInjectionVar.trim();
370
- if (!variables.includes(indirectInjectionVar)) {
371
- logger_1.default.info(chalk_1.default.red(`The variable ${indirectInjectionVar} is not found in the prompt. Please go back and edit your prompt to add the variable to your prompt`));
372
- await (0, input_1.default)({
373
- message: 'Press Enter to continue...',
374
- });
375
- }
376
- if (indirectInjectionVar === variables[variables.length - 1]) {
377
- logger_1.default.info(chalk_1.default.red(`The variable ${indirectInjectionVar} is the last variable in the prompt. This might cause some issues with the plugin since we assume the last variable is the main injectVar. Please make sure you set injectVar properly in your config.`));
378
- await (0, input_1.default)({
379
- message: 'Press Enter to continue...',
380
- });
381
- }
382
- if (systemPrompt.trim() !== '') {
383
- plugins.push({
384
- id: 'indirect-prompt-injection',
385
- config: {
386
- systemPrompt: (0, dedent_1.default)(systemPrompt.trim()),
387
- indirectInjectionVar: indirectInjectionVar.trim(),
388
- },
389
- });
390
- prompts[0] = systemPrompt;
391
- }
392
- }
393
- else {
357
+ recordOnboardingStep('chose indirect prompt injection variable');
394
358
  plugins.push({
395
- id: 'prompt-extraction',
396
- config: { systemPrompt: prompts[0] },
359
+ id: 'indirect-prompt-injection',
360
+ config: {
361
+ indirectInjectionVar,
362
+ },
397
363
  });
398
364
  }
365
+ else {
366
+ recordOnboardingStep('skip indirect prompt injection');
367
+ logger_1.default.warn(`Skipping indirect prompt injection plugin because it requires at least two {{variables}} in the prompt. Learn more: https://www.promptfoo.dev/docs/red-team/plugins/indirect-prompt-injection/`);
368
+ }
399
369
  }
400
370
  console.clear();
401
- logger_1.default.info(chalk_1.default.bold('Strategy Configuration\n'));
402
- const strategyChoices = [
403
- ...Array.from(constants_1.DEFAULT_STRATEGIES).sort(),
404
- new checkbox_2.Separator(),
405
- ...Array.from(constants_1.ADDITIONAL_STRATEGIES).sort(),
406
- ].map((strategy) => typeof strategy === 'string'
407
- ? {
408
- name: `${strategy} - ${constants_1.subCategoryDescriptions[strategy] || 'No description'}`,
409
- value: strategy,
410
- checked: constants_1.DEFAULT_STRATEGIES.includes(strategy),
411
- }
412
- : strategy);
413
- const strategies = await (0, checkbox_1.default)({
414
- message: `Strategies are attack methods. Select the ones you want to use. Don't worry, you can change this later:`,
415
- choices: strategyChoices,
416
- pageSize: process.stdout.rows - 6,
417
- loop: false,
371
+ logger_1.default.info(chalk_1.default.bold('Strategy Configuration'));
372
+ logger_1.default.info('Strategies are attack methods.\n');
373
+ const strategyConfigChoice = await (0, select_1.default)({
374
+ message: 'How would you like to configure strategies?',
375
+ choices: [
376
+ { name: 'Use the defaults (configure later)', value: 'default' },
377
+ { name: 'Manually select', value: 'manual' },
378
+ ],
418
379
  });
380
+ recordOnboardingStep('choose strategy config method', { value: strategyConfigChoice });
381
+ let strategies;
382
+ if (strategyConfigChoice === 'default') {
383
+ // TODO(ian): Differentiate strategies
384
+ if (redTeamChoice === 'rag') {
385
+ strategies = Array.from(constants_1.DEFAULT_STRATEGIES);
386
+ }
387
+ else if (redTeamChoice === 'agent') {
388
+ strategies = Array.from(constants_1.DEFAULT_STRATEGIES);
389
+ }
390
+ else {
391
+ strategies = Array.from(constants_1.DEFAULT_STRATEGIES);
392
+ }
393
+ }
394
+ else {
395
+ const strategyChoices = [
396
+ ...Array.from(constants_1.DEFAULT_STRATEGIES).sort(),
397
+ new checkbox_2.Separator(),
398
+ ...Array.from(constants_1.ADDITIONAL_STRATEGIES).sort(),
399
+ ].map((strategy) => typeof strategy === 'string'
400
+ ? {
401
+ name: `${strategy} - ${constants_1.subCategoryDescriptions[strategy] || 'No description'}`,
402
+ value: strategy,
403
+ checked: constants_1.DEFAULT_STRATEGIES.includes(strategy),
404
+ }
405
+ : strategy);
406
+ strategies = await (0, checkbox_1.default)({
407
+ message: `Select the ones you want to use. Don't worry, you can change this later:`,
408
+ choices: strategyChoices,
409
+ pageSize: process.stdout.rows - 6,
410
+ loop: false,
411
+ });
412
+ }
419
413
  recordOnboardingStep('choose strategies', {
420
414
  value: strategies,
421
415
  });
@@ -490,7 +484,7 @@ async function redteamInit(directory) {
490
484
  });
491
485
  recordOnboardingStep('choose generate', { value: readyToGenerate });
492
486
  if (readyToGenerate) {
493
- await (0, redteam_1.doGenerateRedteam)({
487
+ await (0, generate_1.doGenerateRedteam)({
494
488
  purpose,
495
489
  plugins: plugins.map((plugin) => (typeof plugin === 'string' ? { id: plugin } : plugin)),
496
490
  cache: false,
@@ -532,25 +526,4 @@ function initCommand(program) {
532
526
  }
533
527
  });
534
528
  }
535
- function pluginsCommand(program) {
536
- program
537
- .command('plugins')
538
- .description('List all available plugins')
539
- .option('--ids-only', 'Show only plugin IDs without descriptions')
540
- .option('--default', 'Show only the default plugins')
541
- .action(async (options) => {
542
- const pluginsToShow = options.default ? constants_1.DEFAULT_PLUGINS : constants_1.ALL_PLUGINS;
543
- if (options.idsOnly) {
544
- pluginsToShow.forEach((plugin) => {
545
- logger_1.default.info(plugin);
546
- });
547
- }
548
- else {
549
- pluginsToShow.forEach((plugin) => {
550
- const description = constants_1.subCategoryDescriptions[plugin] || 'No description available';
551
- logger_1.default.info(`${chalk_1.default.blue.bold(plugin)}: ${description}`);
552
- });
553
- }
554
- });
555
- }
556
- //# sourceMappingURL=redteam.js.map
529
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/commands/redteam/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function pluginsCommand(program: Command): void;
3
+ //# sourceMappingURL=plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../../src/commands/redteam/plugins.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAoB9C"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.pluginsCommand = pluginsCommand;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const logger_1 = __importDefault(require("../../logger"));
9
+ const constants_1 = require("../../redteam/constants");
10
+ function pluginsCommand(program) {
11
+ program
12
+ .command('plugins')
13
+ .description('List all available plugins')
14
+ .option('--ids-only', 'Show only plugin IDs without descriptions')
15
+ .option('--default', 'Show only the default plugins')
16
+ .action(async (options) => {
17
+ const pluginsToShow = options.default ? constants_1.DEFAULT_PLUGINS : constants_1.ALL_PLUGINS;
18
+ if (options.idsOnly) {
19
+ pluginsToShow.forEach((plugin) => {
20
+ logger_1.default.info(plugin);
21
+ });
22
+ }
23
+ else {
24
+ pluginsToShow.forEach((plugin) => {
25
+ const description = constants_1.subCategoryDescriptions[plugin] || 'No description available';
26
+ logger_1.default.info(`${chalk_1.default.blue.bold(plugin)}: ${description}`);
27
+ });
28
+ }
29
+ });
30
+ }
31
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../../src/commands/redteam/plugins.ts"],"names":[],"mappings":";;;;;AAKA,wCAoBC;AAzBD,kDAA0B;AAE1B,0DAAkC;AAClC,uDAAgG;AAEhG,SAAgB,cAAc,CAAC,OAAgB;IAC7C,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CAAC,YAAY,EAAE,2CAA2C,CAAC;SACjE,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;SACpD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,2BAAe,CAAC,CAAC,CAAC,uBAAW,CAAC;QAEtE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC/B,gBAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC/B,MAAM,WAAW,GAAG,mCAAuB,CAAC,MAAM,CAAC,IAAI,0BAA0B,CAAC;gBAClF,gBAAM,CAAC,IAAI,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
package/dist/src/csv.js CHANGED
@@ -58,7 +58,7 @@ function assertionFromString(expected) {
58
58
  else if (type === 'contains-json' || type === 'is-json') {
59
59
  return {
60
60
  type: fullType,
61
- value: value,
61
+ value,
62
62
  };
63
63
  }
64
64
  else if (type === 'rouge-n' ||
@@ -1 +1 @@
1
- {"version":3,"file":"csv.js","sourceRoot":"","sources":["../../src/csv.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"csv.js","sourceRoot":"","sources":["../../src/csv.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,61 @@ export declare const prompts: import("drizzle-orm/sqlite-core").SQLiteTableWithC
54
54
  };
55
55
  dialect: "sqlite";
56
56
  }>;
57
+ export declare const tags: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
58
+ name: "tags";
59
+ schema: undefined;
60
+ columns: {
61
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
62
+ name: "id";
63
+ tableName: "tags";
64
+ dataType: "string";
65
+ columnType: "SQLiteText";
66
+ data: string;
67
+ driverParam: string;
68
+ notNull: true;
69
+ hasDefault: false;
70
+ isPrimaryKey: true;
71
+ isAutoincrement: false;
72
+ hasRuntimeDefault: false;
73
+ enumValues: [string, ...string[]];
74
+ baseColumn: never;
75
+ generated: undefined;
76
+ }, object>;
77
+ name: import("drizzle-orm/sqlite-core").SQLiteColumn<{
78
+ name: "name";
79
+ tableName: "tags";
80
+ dataType: "string";
81
+ columnType: "SQLiteText";
82
+ data: string;
83
+ driverParam: string;
84
+ notNull: true;
85
+ hasDefault: false;
86
+ isPrimaryKey: false;
87
+ isAutoincrement: false;
88
+ hasRuntimeDefault: false;
89
+ enumValues: [string, ...string[]];
90
+ baseColumn: never;
91
+ generated: undefined;
92
+ }, object>;
93
+ value: import("drizzle-orm/sqlite-core").SQLiteColumn<{
94
+ name: "value";
95
+ tableName: "tags";
96
+ dataType: "string";
97
+ columnType: "SQLiteText";
98
+ data: string;
99
+ driverParam: string;
100
+ notNull: true;
101
+ hasDefault: false;
102
+ isPrimaryKey: false;
103
+ isAutoincrement: false;
104
+ hasRuntimeDefault: false;
105
+ enumValues: [string, ...string[]];
106
+ baseColumn: never;
107
+ generated: undefined;
108
+ }, object>;
109
+ };
110
+ dialect: "sqlite";
111
+ }>;
57
112
  export declare const evals: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
58
113
  name: "evals";
59
114
  schema: undefined;
@@ -772,7 +827,7 @@ export declare const evals: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
772
827
  name: string;
773
828
  }[] | undefined;
774
829
  extensions?: string[] | undefined;
775
- redteam?: import("../types").RedteamConfig | undefined;
830
+ redteam?: import("../types").RedteamFileConfig | undefined;
776
831
  outputPath?: string | string[] | undefined;
777
832
  sharing?: boolean | {
778
833
  apiBaseUrl?: string | undefined;
@@ -780,9 +835,9 @@ export declare const evals: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
780
835
  } | undefined;
781
836
  evaluateOptions?: {
782
837
  delay?: number | undefined;
838
+ cache?: boolean | undefined;
783
839
  maxConcurrency?: number | undefined;
784
840
  repeat?: number | undefined;
785
- cache?: boolean | undefined;
786
841
  generateSuggestions?: boolean | undefined;
787
842
  eventSource?: string | undefined;
788
843
  interactiveProviders?: boolean | undefined;
@@ -795,9 +850,12 @@ export declare const evals: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
795
850
  prompts?: string[] | undefined;
796
851
  delay?: string | undefined;
797
852
  output?: string[] | undefined;
853
+ cache?: boolean | undefined;
854
+ envFile?: string | undefined;
855
+ maxConcurrency?: string | undefined;
856
+ write?: boolean | undefined;
798
857
  description?: string | undefined;
799
858
  providers?: string[] | undefined;
800
- maxConcurrency?: string | undefined;
801
859
  repeat?: string | undefined;
802
860
  tests?: string | undefined;
803
861
  assertions?: string | undefined;
@@ -805,8 +863,6 @@ export declare const evals: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
805
863
  verbose?: boolean | undefined;
806
864
  grader?: string | undefined;
807
865
  tableCellMaxLength?: string | undefined;
808
- write?: boolean | undefined;
809
- cache?: boolean | undefined;
810
866
  table?: boolean | undefined;
811
867
  share?: boolean | undefined;
812
868
  progressBar?: boolean | undefined;
@@ -819,7 +875,6 @@ export declare const evals: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
819
875
  generateSuggestions?: boolean | undefined;
820
876
  promptPrefix?: string | undefined;
821
877
  promptSuffix?: string | undefined;
822
- envFile?: string | undefined;
823
878
  } | undefined;
824
879
  }>;
825
880
  driverParam: string;
@@ -877,6 +932,52 @@ export declare const evalsToPrompts: import("drizzle-orm/sqlite-core").SQLiteTab
877
932
  export declare const promptsRelations: import("drizzle-orm").Relations<"prompts", {
878
933
  evalsToPrompts: import("drizzle-orm").Many<"evals_to_prompts">;
879
934
  }>;
935
+ export declare const evalsToTags: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
936
+ name: "evals_to_tags";
937
+ schema: undefined;
938
+ columns: {
939
+ evalId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
940
+ name: "eval_id";
941
+ tableName: "evals_to_tags";
942
+ dataType: "string";
943
+ columnType: "SQLiteText";
944
+ data: string;
945
+ driverParam: string;
946
+ notNull: true;
947
+ hasDefault: false;
948
+ isPrimaryKey: false;
949
+ isAutoincrement: false;
950
+ hasRuntimeDefault: false;
951
+ enumValues: [string, ...string[]];
952
+ baseColumn: never;
953
+ generated: undefined;
954
+ }, object>;
955
+ tagId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
956
+ name: "tag_id";
957
+ tableName: "evals_to_tags";
958
+ dataType: "string";
959
+ columnType: "SQLiteText";
960
+ data: string;
961
+ driverParam: string;
962
+ notNull: true;
963
+ hasDefault: false;
964
+ isPrimaryKey: false;
965
+ isAutoincrement: false;
966
+ hasRuntimeDefault: false;
967
+ enumValues: [string, ...string[]];
968
+ baseColumn: never;
969
+ generated: undefined;
970
+ }, object>;
971
+ };
972
+ dialect: "sqlite";
973
+ }>;
974
+ export declare const tagsRelations: import("drizzle-orm").Relations<"tags", {
975
+ evalsToTags: import("drizzle-orm").Many<"evals_to_tags">;
976
+ }>;
977
+ export declare const evalsToTagsRelations: import("drizzle-orm").Relations<"evals_to_tags", {
978
+ eval: import("drizzle-orm").One<"evals", true>;
979
+ tag: import("drizzle-orm").One<"tags", true>;
980
+ }>;
880
981
  export declare const datasets: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
881
982
  name: "datasets";
882
983
  schema: undefined;
@@ -1087,6 +1188,7 @@ export declare const datasetsRelations: import("drizzle-orm").Relations<"dataset
1087
1188
  export declare const evalsRelations: import("drizzle-orm").Relations<"evals", {
1088
1189
  evalsToPrompts: import("drizzle-orm").Many<"evals_to_prompts">;
1089
1190
  evalsToDatasets: import("drizzle-orm").Many<"evals_to_datasets">;
1191
+ evalsToTags: import("drizzle-orm").Many<"evals_to_tags">;
1090
1192
  }>;
1091
1193
  export declare const evalsToPromptsRelations: import("drizzle-orm").Relations<"evals_to_prompts", {
1092
1194
  eval: import("drizzle-orm").One<"evals", true>;
@@ -1 +1 @@
1
- {"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../src/database/tables.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,UAAU,CAAC;AAI/D,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYnB,CAAC;AAEF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBjB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB1B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;EAE1B,CAAC;AAIJ,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYpB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;EAE3B,CAAC;AAIJ,eAAO,MAAM,cAAc;;;EAGxB,CAAC;AAEJ,eAAO,MAAM,uBAAuB;;;EASjC,CAAC;AAEJ,eAAO,MAAM,wBAAwB;;;EASlC,CAAC"}
1
+ {"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../src/database/tables.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,UAAU,CAAC;AAI/D,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYnB,CAAC;AAIF,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUhB,CAAC;AAIF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBjB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB1B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;EAE1B,CAAC;AAEJ,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAevB,CAAC;AAEF,eAAO,MAAM,aAAa;;EAEvB,CAAC;AAEJ,eAAO,MAAM,oBAAoB;;;EAS9B,CAAC;AAIJ,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYpB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;EAE3B,CAAC;AAIJ,eAAO,MAAM,cAAc;;;;EAIxB,CAAC;AAEJ,eAAO,MAAM,uBAAuB;;;EASjC,CAAC;AAEJ,eAAO,MAAM,wBAAwB;;;EASlC,CAAC"}