promptfoo 0.89.3 → 0.90.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 (188) hide show
  1. package/dist/package.json +16 -12
  2. package/dist/src/app/assets/index-B0eIt9gO.js +781 -0
  3. package/dist/src/app/assets/{index-Dl-FhnW1.css → index-DdvQdOby.css} +1 -1
  4. package/dist/src/app/assets/{index.es-mBX9PPNc.js → index.es-6LwcIYWb.js} +6 -6
  5. package/dist/src/app/assets/{sync-DKaPkQuY.js → sync-DvHcfyRC.js} +1 -1
  6. package/dist/src/app/index.html +2 -2
  7. package/dist/src/assertions.d.ts.map +1 -1
  8. package/dist/src/assertions.js +2 -1
  9. package/dist/src/assertions.js.map +1 -1
  10. package/dist/src/cache.js +2 -2
  11. package/dist/src/cache.js.map +1 -1
  12. package/dist/src/commands/auth.d.ts +3 -0
  13. package/dist/src/commands/auth.d.ts.map +1 -0
  14. package/dist/src/commands/auth.js +86 -0
  15. package/dist/src/commands/auth.js.map +1 -0
  16. package/dist/src/commands/config.js +1 -1
  17. package/dist/src/commands/config.js.map +1 -1
  18. package/dist/src/commands/eval.d.ts.map +1 -1
  19. package/dist/src/commands/eval.js +27 -13
  20. package/dist/src/commands/eval.js.map +1 -1
  21. package/dist/src/commands/generate/dataset.d.ts.map +1 -1
  22. package/dist/src/commands/generate/dataset.js +2 -2
  23. package/dist/src/commands/generate/dataset.js.map +1 -1
  24. package/dist/src/commands/share.d.ts +2 -0
  25. package/dist/src/commands/share.d.ts.map +1 -1
  26. package/dist/src/commands/share.js +20 -8
  27. package/dist/src/commands/share.js.map +1 -1
  28. package/dist/src/commands/view.js +2 -2
  29. package/dist/src/commands/view.js.map +1 -1
  30. package/dist/src/configTypes.d.ts +5 -1
  31. package/dist/src/configTypes.d.ts.map +1 -1
  32. package/dist/src/constants.d.ts +1 -1
  33. package/dist/src/constants.d.ts.map +1 -1
  34. package/dist/src/constants.js +2 -1
  35. package/dist/src/constants.js.map +1 -1
  36. package/dist/src/csv.d.ts.map +1 -1
  37. package/dist/src/csv.js +3 -2
  38. package/dist/src/csv.js.map +1 -1
  39. package/dist/src/database/index.js +3 -3
  40. package/dist/src/database/index.js.map +1 -1
  41. package/dist/src/envars.d.ts +19 -0
  42. package/dist/src/envars.d.ts.map +1 -1
  43. package/dist/src/envars.js.map +1 -1
  44. package/dist/src/globalConfig/accounts.d.ts.map +1 -0
  45. package/dist/src/{accounts.js → globalConfig/accounts.js} +2 -2
  46. package/dist/src/globalConfig/accounts.js.map +1 -0
  47. package/dist/src/globalConfig/cloud.d.ts +17 -0
  48. package/dist/src/globalConfig/cloud.d.ts.map +1 -0
  49. package/dist/src/globalConfig/cloud.js +82 -0
  50. package/dist/src/globalConfig/cloud.js.map +1 -0
  51. package/dist/src/{globalConfig.d.ts → globalConfig/globalConfig.d.ts} +1 -3
  52. package/dist/src/globalConfig/globalConfig.d.ts.map +1 -0
  53. package/dist/src/{globalConfig.js → globalConfig/globalConfig.js} +13 -36
  54. package/dist/src/globalConfig/globalConfig.js.map +1 -0
  55. package/dist/src/main.d.ts +1 -5
  56. package/dist/src/main.d.ts.map +1 -1
  57. package/dist/src/main.js +15 -31
  58. package/dist/src/main.js.map +1 -1
  59. package/dist/src/onboarding.d.ts.map +1 -1
  60. package/dist/src/onboarding.js +9 -8
  61. package/dist/src/onboarding.js.map +1 -1
  62. package/dist/src/prompts/index.d.ts.map +1 -1
  63. package/dist/src/prompts/index.js +4 -0
  64. package/dist/src/prompts/index.js.map +1 -1
  65. package/dist/src/providers/bedrock.d.ts +15 -0
  66. package/dist/src/providers/bedrock.d.ts.map +1 -1
  67. package/dist/src/providers/bedrock.js +49 -20
  68. package/dist/src/providers/bedrock.js.map +1 -1
  69. package/dist/src/providers/browser.d.ts +28 -0
  70. package/dist/src/providers/browser.d.ts.map +1 -0
  71. package/dist/src/providers/browser.js +151 -0
  72. package/dist/src/providers/browser.js.map +1 -0
  73. package/dist/src/providers/http.d.ts +9 -5
  74. package/dist/src/providers/http.d.ts.map +1 -1
  75. package/dist/src/providers/http.js +81 -12
  76. package/dist/src/providers/http.js.map +1 -1
  77. package/dist/src/providers/openai.d.ts.map +1 -1
  78. package/dist/src/providers/openai.js +7 -0
  79. package/dist/src/providers/openai.js.map +1 -1
  80. package/dist/src/providers/vertexUtil.d.ts +1 -1
  81. package/dist/src/providers/websocket.d.ts +2 -2
  82. package/dist/src/providers/websocket.d.ts.map +1 -1
  83. package/dist/src/providers/websocket.js +3 -3
  84. package/dist/src/providers/websocket.js.map +1 -1
  85. package/dist/src/providers.d.ts.map +1 -1
  86. package/dist/src/providers.js +21 -4
  87. package/dist/src/providers.js.map +1 -1
  88. package/dist/src/redteam/commands/generate.d.ts.map +1 -1
  89. package/dist/src/redteam/commands/generate.js +7 -7
  90. package/dist/src/redteam/commands/generate.js.map +1 -1
  91. package/dist/src/redteam/commands/init.d.ts.map +1 -1
  92. package/dist/src/redteam/commands/init.js +15 -24
  93. package/dist/src/redteam/commands/init.js.map +1 -1
  94. package/dist/src/redteam/plugins/base.d.ts +7 -1
  95. package/dist/src/redteam/plugins/base.d.ts.map +1 -1
  96. package/dist/src/redteam/plugins/base.js +9 -1
  97. package/dist/src/redteam/plugins/base.js.map +1 -1
  98. package/dist/src/redteam/plugins/indirectPromptInjection.d.ts +7 -1
  99. package/dist/src/redteam/plugins/indirectPromptInjection.d.ts.map +1 -1
  100. package/dist/src/redteam/plugins/indirectPromptInjection.js +37 -0
  101. package/dist/src/redteam/plugins/indirectPromptInjection.js.map +1 -1
  102. package/dist/src/server/server.d.ts.map +1 -1
  103. package/dist/src/server/server.js +12 -0
  104. package/dist/src/server/server.js.map +1 -1
  105. package/dist/src/share.d.ts +1 -1
  106. package/dist/src/share.d.ts.map +1 -1
  107. package/dist/src/share.js +38 -13
  108. package/dist/src/share.js.map +1 -1
  109. package/dist/src/telemetry.d.ts +2 -1
  110. package/dist/src/telemetry.d.ts.map +1 -1
  111. package/dist/src/telemetry.js +48 -33
  112. package/dist/src/telemetry.js.map +1 -1
  113. package/dist/src/types/index.d.ts +6 -0
  114. package/dist/src/types/index.d.ts.map +1 -1
  115. package/dist/src/types/index.js.map +1 -1
  116. package/dist/src/util/config/default.d.ts +14 -0
  117. package/dist/src/util/config/default.d.ts.map +1 -0
  118. package/dist/src/util/config/default.js +36 -0
  119. package/dist/src/util/config/default.js.map +1 -0
  120. package/dist/src/{config.d.ts → util/config/load.d.ts} +2 -2
  121. package/dist/src/util/config/load.d.ts.map +1 -0
  122. package/dist/src/{config.js → util/config/load.js} +18 -13
  123. package/dist/src/util/config/load.js.map +1 -0
  124. package/dist/src/util/{config.d.ts → config/manage.d.ts} +2 -2
  125. package/dist/src/util/config/manage.d.ts.map +1 -0
  126. package/dist/src/util/{config.js → config/manage.js} +3 -3
  127. package/dist/src/util/config/manage.js.map +1 -0
  128. package/dist/src/util/index.js +8 -8
  129. package/dist/src/util/index.js.map +1 -1
  130. package/dist/test/account.test.js +5 -4
  131. package/dist/test/account.test.js.map +1 -1
  132. package/dist/test/csv.test.js +21 -0
  133. package/dist/test/csv.test.js.map +1 -1
  134. package/dist/test/globalConfig.test.js +5 -26
  135. package/dist/test/globalConfig.test.js.map +1 -1
  136. package/dist/test/prompts.test.js +17 -2
  137. package/dist/test/prompts.test.js.map +1 -1
  138. package/dist/test/providers.bedrock.test.js +46 -0
  139. package/dist/test/providers.bedrock.test.js.map +1 -1
  140. package/dist/test/providers.http.test.js +122 -8
  141. package/dist/test/providers.http.test.js.map +1 -1
  142. package/dist/test/providers.pythonCompletion.test.js +21 -0
  143. package/dist/test/providers.pythonCompletion.test.js.map +1 -1
  144. package/dist/test/providers.test.js +25 -0
  145. package/dist/test/providers.test.js.map +1 -1
  146. package/dist/test/redteam/commands/generate.test.js +7 -7
  147. package/dist/test/redteam/commands/generate.test.js.map +1 -1
  148. package/dist/test/redteam/extraction/entities.test.js +4 -1
  149. package/dist/test/redteam/extraction/entities.test.js.map +1 -1
  150. package/dist/test/redteam/extraction/purpose.test.js +4 -1
  151. package/dist/test/redteam/extraction/purpose.test.js.map +1 -1
  152. package/dist/test/redteam/extraction/util.test.js +3 -0
  153. package/dist/test/redteam/extraction/util.test.js.map +1 -1
  154. package/dist/test/telemetry.test.js +49 -7
  155. package/dist/test/telemetry.test.js.map +1 -1
  156. package/dist/test/util.config.default.test.d.ts +2 -0
  157. package/dist/test/util.config.default.test.d.ts.map +1 -0
  158. package/dist/test/util.config.default.test.js +62 -0
  159. package/dist/test/util.config.default.test.js.map +1 -0
  160. package/dist/test/util.config.load.test.ts.d.ts +2 -0
  161. package/dist/test/util.config.load.test.ts.d.ts.map +1 -0
  162. package/dist/test/{config.test.js → util.config.load.test.ts.js} +32 -27
  163. package/dist/test/util.config.load.test.ts.js.map +1 -0
  164. package/dist/test/util.config.main.test.d.ts +2 -0
  165. package/dist/test/util.config.main.test.d.ts.map +1 -0
  166. package/dist/test/{util.config.test.js → util.config.main.test.js} +16 -16
  167. package/dist/test/util.config.main.test.js.map +1 -0
  168. package/package.json +16 -12
  169. package/dist/src/accounts.d.ts.map +0 -1
  170. package/dist/src/accounts.js.map +0 -1
  171. package/dist/src/app/assets/index-CW_4LMda.js +0 -781
  172. package/dist/src/config.d.ts.map +0 -1
  173. package/dist/src/config.js.map +0 -1
  174. package/dist/src/globalConfig.d.ts.map +0 -1
  175. package/dist/src/globalConfig.js.map +0 -1
  176. package/dist/src/util/config.d.ts.map +0 -1
  177. package/dist/src/util/config.js.map +0 -1
  178. package/dist/test/config.test.d.ts +0 -2
  179. package/dist/test/config.test.d.ts.map +0 -1
  180. package/dist/test/config.test.js.map +0 -1
  181. package/dist/test/main.test.d.ts +0 -2
  182. package/dist/test/main.test.d.ts.map +0 -1
  183. package/dist/test/main.test.js +0 -49
  184. package/dist/test/main.test.js.map +0 -1
  185. package/dist/test/util.config.test.d.ts +0 -2
  186. package/dist/test/util.config.test.d.ts.map +0 -1
  187. package/dist/test/util.config.test.js.map +0 -1
  188. /package/dist/src/{accounts.d.ts → globalConfig/accounts.d.ts} +0 -0
@@ -31,10 +31,10 @@ const glob_1 = require("glob");
31
31
  const js_yaml_1 = __importDefault(require("js-yaml"));
32
32
  const path = __importStar(require("path"));
33
33
  const cliState_1 = __importDefault(require("../src/cliState"));
34
- const config_1 = require("../src/config");
35
34
  const esm_1 = require("../src/esm");
36
35
  const testCases_1 = require("../src/testCases");
37
36
  const util_1 = require("../src/util");
37
+ const load_1 = require("../src/util/config/load");
38
38
  jest.mock('../src/database', () => ({
39
39
  getDb: jest.fn(),
40
40
  }));
@@ -95,6 +95,7 @@ describe('readConfigs', () => {
95
95
  },
96
96
  env: { envVar1: 'envValue1' },
97
97
  evaluateOptions: { maxConcurrency: 1 },
98
+ outputPath: [],
98
99
  commandLineOptions: { verbose: true },
99
100
  sharing: false,
100
101
  };
@@ -117,6 +118,7 @@ describe('readConfigs', () => {
117
118
  },
118
119
  env: { envVar2: 'envValue2' },
119
120
  evaluateOptions: { maxConcurrency: 2 },
121
+ outputPath: [],
120
122
  commandLineOptions: { verbose: false },
121
123
  sharing: true,
122
124
  };
@@ -142,7 +144,7 @@ describe('readConfigs', () => {
142
144
  jest.mocked(fs.statSync).mockImplementation(() => {
143
145
  throw new Error('File does not exist');
144
146
  });
145
- const config1Result = await (0, config_1.readConfigs)(['config1.json']);
147
+ const config1Result = await (0, load_1.readConfigs)(['config1.json']);
146
148
  expect(config1Result).toEqual({
147
149
  description: 'test1',
148
150
  tags: { tag1: 'value1' },
@@ -166,11 +168,12 @@ describe('readConfigs', () => {
166
168
  },
167
169
  env: { envVar1: 'envValue1' },
168
170
  evaluateOptions: { maxConcurrency: 1 },
171
+ outputPath: [],
169
172
  commandLineOptions: { verbose: true },
170
173
  metadata: {},
171
174
  sharing: false,
172
175
  });
173
- const config2Result = await (0, config_1.readConfigs)(['config2.json']);
176
+ const config2Result = await (0, load_1.readConfigs)(['config2.json']);
174
177
  expect(config2Result).toEqual({
175
178
  description: 'test2',
176
179
  tags: {},
@@ -194,11 +197,12 @@ describe('readConfigs', () => {
194
197
  },
195
198
  env: { envVar2: 'envValue2' },
196
199
  evaluateOptions: { maxConcurrency: 2 },
200
+ outputPath: [],
197
201
  commandLineOptions: { verbose: false },
198
202
  metadata: {},
199
203
  sharing: true,
200
204
  });
201
- const result = await (0, config_1.readConfigs)(['config1.json', 'config2.json']);
205
+ const result = await (0, load_1.readConfigs)(['config1.json', 'config2.json']);
202
206
  expect(fs.readFileSync).toHaveBeenCalledTimes(4);
203
207
  expect(result).toEqual({
204
208
  description: 'test1, test2',
@@ -226,6 +230,7 @@ describe('readConfigs', () => {
226
230
  },
227
231
  env: { envVar1: 'envValue1', envVar2: 'envValue2' },
228
232
  evaluateOptions: { maxConcurrency: 2 },
233
+ outputPath: [],
229
234
  commandLineOptions: { verbose: false },
230
235
  metadata: {},
231
236
  sharing: false,
@@ -233,7 +238,7 @@ describe('readConfigs', () => {
233
238
  });
234
239
  it('throws error for unsupported configuration file format', async () => {
235
240
  jest.mocked(fs.existsSync).mockReturnValue(true);
236
- await expect((0, config_1.readConfigs)(['config1.unsupported'])).rejects.toThrow('Unsupported configuration file format: .unsupported');
241
+ await expect((0, load_1.readConfigs)(['config1.unsupported'])).rejects.toThrow('Unsupported configuration file format: .unsupported');
237
242
  });
238
243
  it('makeAbsolute should resolve file:// syntax and plaintext prompts', async () => {
239
244
  jest.mocked(fs.existsSync).mockReturnValue(true);
@@ -255,7 +260,7 @@ describe('readConfigs', () => {
255
260
  return Buffer.from(''); // Return an empty Buffer instead of null
256
261
  });
257
262
  const configPaths = ['config1.json', 'config2.json'];
258
- const result = await (0, config_1.readConfigs)(configPaths);
263
+ const result = await (0, load_1.readConfigs)(configPaths);
259
264
  expect(result.prompts).toEqual([
260
265
  `file://${path.resolve(path.dirname(configPaths[0]), 'prompt1.txt')}`,
261
266
  'prompt2',
@@ -283,7 +288,7 @@ describe('readConfigs', () => {
283
288
  return Buffer.from(''); // Return an empty Buffer instead of null
284
289
  });
285
290
  const configPaths = ['config1.json', 'config2.json'];
286
- const result = await (0, config_1.readConfigs)(configPaths);
291
+ const result = await (0, load_1.readConfigs)(configPaths);
287
292
  expect(result.prompts).toEqual([
288
293
  'prompt1',
289
294
  `file://${path.resolve(path.dirname(configPaths[0]), 'prompt2.txt')}`,
@@ -306,7 +311,7 @@ describe('readConfigs', () => {
306
311
  .mocked(fs.readFileSync)
307
312
  .mockReturnValueOnce(JSON.stringify(config1))
308
313
  .mockReturnValueOnce(JSON.stringify(config2));
309
- const result = await (0, config_1.readConfigs)(['config1.json', 'config2.json']);
314
+ const result = await (0, load_1.readConfigs)(['config1.json', 'config2.json']);
310
315
  expect(result.defaultTest?.metadata).toEqual({
311
316
  key1: 'value1',
312
317
  key2: 'value2',
@@ -324,7 +329,7 @@ describe('readConfigs', () => {
324
329
  .mockReturnValueOnce(JSON.stringify(config1))
325
330
  .mockReturnValueOnce(JSON.stringify(config2));
326
331
  jest.spyOn(console, 'warn').mockImplementation();
327
- const result = await (0, config_1.readConfigs)(['config1.json', 'config2.json']);
332
+ const result = await (0, load_1.readConfigs)(['config1.json', 'config2.json']);
328
333
  expect(result.extensions).toEqual(['extension1', 'extension2', 'extension3']);
329
334
  });
330
335
  it('handles configs without extensions', async () => {
@@ -338,7 +343,7 @@ describe('readConfigs', () => {
338
343
  .mocked(fs.readFileSync)
339
344
  .mockReturnValueOnce(JSON.stringify(config1))
340
345
  .mockReturnValueOnce(JSON.stringify(config2));
341
- const result = await (0, config_1.readConfigs)(['config1.json', 'config2.json']);
346
+ const result = await (0, load_1.readConfigs)(['config1.json', 'config2.json']);
342
347
  expect(result.extensions).toEqual(['extension1']);
343
348
  });
344
349
  it('warns when multiple configs and extensions are detected', async () => {
@@ -351,7 +356,7 @@ describe('readConfigs', () => {
351
356
  extensions: ['extension2'],
352
357
  }));
353
358
  const consoleSpy = jest.spyOn(console, 'warn').mockImplementation();
354
- await (0, config_1.readConfigs)(['config1.json', 'config2.json']);
359
+ await (0, load_1.readConfigs)(['config1.json', 'config2.json']);
355
360
  expect(consoleSpy).toHaveBeenCalledWith('Warning: Multiple configurations and extensions detected. Currently, all extensions are run across all configs and do not respect their original promptfooconfig. Please file an issue on our GitHub repository if you need support for this use case.');
356
361
  consoleSpy.mockRestore();
357
362
  });
@@ -365,7 +370,7 @@ describe('readConfigs', () => {
365
370
  description: 'Config without extensions',
366
371
  }));
367
372
  const consoleSpy = jest.spyOn(console, 'warn').mockImplementation();
368
- await (0, config_1.readConfigs)(['config1.json', 'config2.json']);
373
+ await (0, load_1.readConfigs)(['config1.json', 'config2.json']);
369
374
  expect(consoleSpy).toHaveBeenCalledWith('Warning: Multiple configurations and extensions detected. Currently, all extensions are run across all configs and do not respect their original promptfooconfig. Please file an issue on our GitHub repository if you need support for this use case.');
370
375
  consoleSpy.mockRestore();
371
376
  });
@@ -380,7 +385,7 @@ describe('dereferenceConfig', () => {
380
385
  evaluateOptions: {},
381
386
  commandLineOptions: {},
382
387
  };
383
- const dereferencedConfig = await (0, config_1.dereferenceConfig)(rawConfig);
388
+ const dereferencedConfig = await (0, load_1.dereferenceConfig)(rawConfig);
384
389
  expect(dereferencedConfig).toEqual(rawConfig);
385
390
  });
386
391
  it('should dereference a config with $refs', async () => {
@@ -410,7 +415,7 @@ describe('dereferenceConfig', () => {
410
415
  },
411
416
  },
412
417
  };
413
- const dereferencedConfig = await (0, config_1.dereferenceConfig)(rawConfig);
418
+ const dereferencedConfig = await (0, load_1.dereferenceConfig)(rawConfig);
414
419
  expect(dereferencedConfig).toEqual(expectedConfig);
415
420
  });
416
421
  it('should preserve regular functions when dereferencing', async () => {
@@ -442,7 +447,7 @@ describe('dereferenceConfig', () => {
442
447
  },
443
448
  ],
444
449
  };
445
- const dereferencedConfig = await (0, config_1.dereferenceConfig)(rawConfig);
450
+ const dereferencedConfig = await (0, load_1.dereferenceConfig)(rawConfig);
446
451
  expect(dereferencedConfig).toEqual(rawConfig);
447
452
  });
448
453
  it('should preserve tools with references and definitions when dereferencing', async () => {
@@ -491,7 +496,7 @@ describe('dereferenceConfig', () => {
491
496
  prompt: 'hello world',
492
497
  },
493
498
  };
494
- const dereferencedConfig = await (0, config_1.dereferenceConfig)(rawConfig);
499
+ const dereferencedConfig = await (0, load_1.dereferenceConfig)(rawConfig);
495
500
  const expectedOutput = {
496
501
  prompts: ['hello world'],
497
502
  tests: [],
@@ -556,7 +561,7 @@ describe('dereferenceConfig', () => {
556
561
  },
557
562
  ],
558
563
  };
559
- const dereferencedConfig = await (0, config_1.dereferenceConfig)(rawConfig);
564
+ const dereferencedConfig = await (0, load_1.dereferenceConfig)(rawConfig);
560
565
  expect(dereferencedConfig).toEqual(rawConfig);
561
566
  });
562
567
  });
@@ -572,7 +577,7 @@ describe('resolveConfigs', () => {
572
577
  prompts: ['prompt1'],
573
578
  providers: ['openai:foobar'],
574
579
  }));
575
- await (0, config_1.resolveConfigs)(cmdObj, defaultConfig);
580
+ await (0, load_1.resolveConfigs)(cmdObj, defaultConfig);
576
581
  expect(cliState_1.default.basePath).toBe(path.dirname('config.json'));
577
582
  });
578
583
  it('should load scenarios and tests from external files', async () => {
@@ -598,7 +603,7 @@ describe('resolveConfigs', () => {
598
603
  // Mock readTests to return the external tests
599
604
  jest.mocked(testCases_1.readTests).mockResolvedValue(externalTests);
600
605
  jest.mocked(glob_1.globSync).mockReturnValue(['config.json']);
601
- const { testSuite } = await (0, config_1.resolveConfigs)(cmdObj, defaultConfig);
606
+ const { testSuite } = await (0, load_1.resolveConfigs)(cmdObj, defaultConfig);
602
607
  expect(util_1.maybeLoadFromExternalFile).toHaveBeenCalledWith(['file://scenarios.yaml']);
603
608
  expect(util_1.maybeLoadFromExternalFile).toHaveBeenCalledWith('file://tests.yaml');
604
609
  expect(testSuite).toEqual(expect.objectContaining({
@@ -641,7 +646,7 @@ describe('readConfig', () => {
641
646
  };
642
647
  jest.spyOn(fs, 'readFileSync').mockReturnValue(JSON.stringify(mockConfig));
643
648
  jest.spyOn(path, 'parse').mockReturnValue({ ext: '.json' });
644
- const result = await (0, config_1.readConfig)('config.json');
649
+ const result = await (0, load_1.readConfig)('config.json');
645
650
  expect(result).toEqual(mockConfig);
646
651
  expect(fs.readFileSync).toHaveBeenCalledWith('config.json', 'utf-8');
647
652
  });
@@ -653,7 +658,7 @@ describe('readConfig', () => {
653
658
  };
654
659
  jest.spyOn(fs, 'readFileSync').mockReturnValue(js_yaml_1.default.dump(mockConfig));
655
660
  jest.spyOn(path, 'parse').mockReturnValue({ ext: '.yaml' });
656
- const result = await (0, config_1.readConfig)('config.yaml');
661
+ const result = await (0, load_1.readConfig)('config.yaml');
657
662
  expect(result).toEqual(mockConfig);
658
663
  expect(fs.readFileSync).toHaveBeenCalledWith('config.yaml', 'utf-8');
659
664
  });
@@ -665,13 +670,13 @@ describe('readConfig', () => {
665
670
  };
666
671
  jest.spyOn(path, 'parse').mockReturnValue({ ext: '.js' });
667
672
  jest.mocked(esm_1.importModule).mockResolvedValue(mockConfig);
668
- const result = await (0, config_1.readConfig)('config.js');
673
+ const result = await (0, load_1.readConfig)('config.js');
669
674
  expect(result).toEqual(mockConfig);
670
675
  expect(esm_1.importModule).toHaveBeenCalledWith('config.js');
671
676
  });
672
677
  it('should throw error for unsupported file format', async () => {
673
678
  jest.spyOn(path, 'parse').mockReturnValue({ ext: '.txt' });
674
- await expect((0, config_1.readConfig)('config.txt')).rejects.toThrow('Unsupported configuration file format: .txt');
679
+ await expect((0, load_1.readConfig)('config.txt')).rejects.toThrow('Unsupported configuration file format: .txt');
675
680
  });
676
681
  it('should rewrite targets to providers', async () => {
677
682
  const mockConfig = {
@@ -681,7 +686,7 @@ describe('readConfig', () => {
681
686
  };
682
687
  jest.spyOn(fs, 'readFileSync').mockReturnValue(JSON.stringify(mockConfig));
683
688
  jest.spyOn(path, 'parse').mockReturnValue({ ext: '.json' });
684
- const result = await (0, config_1.readConfig)('config.json');
689
+ const result = await (0, load_1.readConfig)('config.json');
685
690
  expect(result).toEqual({
686
691
  description: 'Test config',
687
692
  providers: ['openai:gpt-4o'],
@@ -698,7 +703,7 @@ describe('readConfig', () => {
698
703
  };
699
704
  jest.spyOn(fs, 'readFileSync').mockReturnValue(JSON.stringify(mockConfig));
700
705
  jest.spyOn(path, 'parse').mockReturnValue({ ext: '.json' });
701
- const result = await (0, config_1.readConfig)('config.json');
706
+ const result = await (0, load_1.readConfig)('config.json');
702
707
  expect(result).toEqual({
703
708
  description: 'Test config',
704
709
  providers: ['openai:gpt-4o'],
@@ -720,11 +725,11 @@ describe('readConfig', () => {
720
725
  };
721
726
  jest.spyOn(fs, 'readFileSync').mockReturnValue(JSON.stringify(mockConfig));
722
727
  jest.spyOn(path, 'parse').mockReturnValue({ ext: '.json' });
723
- const result = await (0, config_1.readConfig)('config.json');
728
+ const result = await (0, load_1.readConfig)('config.json');
724
729
  expect(result).toEqual({
725
730
  ...mockConfig,
726
731
  prompts: ['{{prompt}}'],
727
732
  });
728
733
  });
729
734
  });
730
- //# sourceMappingURL=config.test.js.map
735
+ //# sourceMappingURL=util.config.load.test.ts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.config.load.test.ts.js","sourceRoot":"","sources":["../../test/util.config.load.test.ts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=util.config.main.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.config.main.test.d.ts","sourceRoot":"","sources":["../../test/util.config.main.test.ts"],"names":[],"mappings":""}
@@ -30,7 +30,7 @@ const fs = __importStar(require("fs"));
30
30
  const js_yaml_1 = __importDefault(require("js-yaml"));
31
31
  const os = __importStar(require("os"));
32
32
  const path = __importStar(require("path"));
33
- const config_1 = require("../src/util/config");
33
+ const manage_1 = require("../src/util/config/manage");
34
34
  jest.mock('os');
35
35
  jest.mock('fs');
36
36
  jest.mock('js-yaml');
@@ -45,34 +45,34 @@ describe('config', () => {
45
45
  });
46
46
  describe('getConfigDirectoryPath', () => {
47
47
  it('returns default path when no custom path is set', () => {
48
- expect((0, config_1.getConfigDirectoryPath)()).toBe(defaultConfigPath);
48
+ expect((0, manage_1.getConfigDirectoryPath)()).toBe(defaultConfigPath);
49
49
  });
50
50
  it('does not create directory when createIfNotExists is false', () => {
51
- (0, config_1.getConfigDirectoryPath)(false);
51
+ (0, manage_1.getConfigDirectoryPath)(false);
52
52
  expect(fs.mkdirSync).not.toHaveBeenCalled();
53
53
  });
54
54
  it('creates directory when createIfNotExists is true and directory does not exist', () => {
55
- (0, config_1.getConfigDirectoryPath)(true);
55
+ (0, manage_1.getConfigDirectoryPath)(true);
56
56
  expect(fs.mkdirSync).toHaveBeenCalledWith(defaultConfigPath, { recursive: true });
57
57
  });
58
58
  it('does not create directory when it already exists', () => {
59
59
  jest.mocked(fs.existsSync).mockReturnValue(true);
60
- (0, config_1.getConfigDirectoryPath)(true);
60
+ (0, manage_1.getConfigDirectoryPath)(true);
61
61
  expect(fs.mkdirSync).not.toHaveBeenCalled();
62
62
  });
63
63
  });
64
64
  describe('setConfigDirectoryPath', () => {
65
65
  it('updates the config directory path', () => {
66
66
  const newPath = '/new/config/path';
67
- (0, config_1.setConfigDirectoryPath)(newPath);
68
- expect((0, config_1.getConfigDirectoryPath)()).toBe(newPath);
67
+ (0, manage_1.setConfigDirectoryPath)(newPath);
68
+ expect((0, manage_1.getConfigDirectoryPath)()).toBe(newPath);
69
69
  });
70
70
  it('overrides the environment variable', () => {
71
71
  const envPath = '/env/path';
72
72
  const newPath = '/new/path';
73
73
  process.env.PROMPTFOO_CONFIG_DIR = envPath;
74
- (0, config_1.setConfigDirectoryPath)(newPath);
75
- expect((0, config_1.getConfigDirectoryPath)()).toBe(newPath);
74
+ (0, manage_1.setConfigDirectoryPath)(newPath);
75
+ expect((0, manage_1.getConfigDirectoryPath)()).toBe(newPath);
76
76
  });
77
77
  });
78
78
  });
@@ -85,7 +85,7 @@ describe('writePromptfooConfig', () => {
85
85
  const mockConfig = { description: 'Test config' };
86
86
  const mockYaml = 'description: Test config\n';
87
87
  jest.mocked(js_yaml_1.default.dump).mockReturnValue(mockYaml);
88
- (0, config_1.writePromptfooConfig)(mockConfig, mockOutputPath);
88
+ (0, manage_1.writePromptfooConfig)(mockConfig, mockOutputPath);
89
89
  expect(fs.writeFileSync).toHaveBeenCalledWith(mockOutputPath, mockYaml);
90
90
  });
91
91
  it('orders the keys of the config correctly', () => {
@@ -96,19 +96,19 @@ describe('writePromptfooConfig', () => {
96
96
  providers: ['provider1'],
97
97
  defaultTest: { assert: [{ type: 'equals', value: 'default assertion' }] },
98
98
  };
99
- (0, config_1.writePromptfooConfig)(mockConfig, mockOutputPath);
99
+ (0, manage_1.writePromptfooConfig)(mockConfig, mockOutputPath);
100
100
  const dumpCall = jest.mocked(js_yaml_1.default.dump).mock.calls[0][0];
101
101
  const keys = Object.keys(dumpCall);
102
102
  expect(keys).toEqual(['description', 'prompts', 'providers', 'defaultTest', 'tests']);
103
103
  });
104
104
  it('uses js-yaml to dump the config with skipInvalid option', () => {
105
105
  const mockConfig = { description: 'Test config' };
106
- (0, config_1.writePromptfooConfig)(mockConfig, mockOutputPath);
106
+ (0, manage_1.writePromptfooConfig)(mockConfig, mockOutputPath);
107
107
  expect(js_yaml_1.default.dump).toHaveBeenCalledWith(expect.anything(), { skipInvalid: true });
108
108
  });
109
109
  it('handles empty config', () => {
110
110
  const mockConfig = {};
111
- (0, config_1.writePromptfooConfig)(mockConfig, mockOutputPath);
111
+ (0, manage_1.writePromptfooConfig)(mockConfig, mockOutputPath);
112
112
  expect(fs.writeFileSync).toHaveBeenCalledWith(mockOutputPath, undefined);
113
113
  expect(js_yaml_1.default.dump).toHaveBeenCalledWith({}, { skipInvalid: true });
114
114
  });
@@ -124,7 +124,7 @@ describe('writePromptfooConfig', () => {
124
124
  ],
125
125
  outputPath: './output',
126
126
  };
127
- (0, config_1.writePromptfooConfig)(mockConfig, mockOutputPath);
127
+ (0, manage_1.writePromptfooConfig)(mockConfig, mockOutputPath);
128
128
  const dumpCall = jest.mocked(js_yaml_1.default.dump).mock.calls[0][0];
129
129
  expect(dumpCall).toEqual(expect.objectContaining(mockConfig));
130
130
  });
@@ -134,11 +134,11 @@ describe('writePromptfooConfig', () => {
134
134
  prompts: undefined,
135
135
  providers: ['provider1'],
136
136
  };
137
- (0, config_1.writePromptfooConfig)(mockConfig, mockOutputPath);
137
+ (0, manage_1.writePromptfooConfig)(mockConfig, mockOutputPath);
138
138
  const dumpCall = jest.mocked(js_yaml_1.default.dump).mock.calls[0][0];
139
139
  expect(dumpCall).toHaveProperty('description', 'Config with undefined');
140
140
  expect(dumpCall).toHaveProperty('providers', ['provider1']);
141
141
  expect(dumpCall).not.toHaveProperty('prompts');
142
142
  });
143
143
  });
144
- //# sourceMappingURL=util.config.test.js.map
144
+ //# sourceMappingURL=util.config.main.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.config.main.test.js","sourceRoot":"","sources":["../../test/util.config.main.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "promptfoo",
3
3
  "description": "LLM eval & testing toolkit",
4
4
  "author": "Ian Webster",
5
- "version": "0.89.3",
5
+ "version": "0.90.0",
6
6
  "license": "MIT",
7
7
  "type": "commonjs",
8
8
  "repository": {
@@ -29,7 +29,8 @@
29
29
  "node": ">=18.0.0"
30
30
  },
31
31
  "bin": {
32
- "promptfoo": "dist/src/main.js"
32
+ "promptfoo": "dist/src/main.js",
33
+ "pf": "dist/src/main.js"
33
34
  },
34
35
  "scripts": {
35
36
  "bin": "dist/src/main.js",
@@ -68,16 +69,18 @@
68
69
  "@azure/identity": "^4.0.0",
69
70
  "@azure/openai-assistants": "^1.0.0-beta.5",
70
71
  "@ibm-generative-ai/node-sdk": "^2.0.6",
72
+ "@playwright/browser-chromium": "^1.47.2",
71
73
  "@smithy/node-http-handler": "^3.1.1",
72
74
  "google-auth-library": "^9.7.0",
73
75
  "langfuse": "^3.7.0",
74
- "node-sql-parser": "^5.2.0"
76
+ "node-sql-parser": "^5.2.0",
77
+ "playwright": "^1.47.2"
75
78
  },
76
79
  "devDependencies": {
77
80
  "@aws-sdk/client-bedrock-runtime": "^3.654.0",
78
81
  "@azure/identity": "^4.4.1",
79
- "@eslint/js": "^9.10.0",
80
- "@libsql/client": "^0.12.0",
82
+ "@eslint/js": "^9.11.0",
83
+ "@libsql/client": "^0.14.0",
81
84
  "@swc/cli": "^0.4.0",
82
85
  "@swc/core": "^1.7.26",
83
86
  "@swc/jest": "^0.2.36",
@@ -105,8 +108,8 @@
105
108
  "cloudflare": "3.4.0",
106
109
  "concurrently": "^8.2.2",
107
110
  "drizzle-kit": "^0.24.2",
108
- "esbuild": "^0.23.1",
109
- "eslint": "^9.10.0",
111
+ "esbuild": "^0.24.0",
112
+ "eslint": "^9.11.0",
110
113
  "eslint-plugin-jest": "^28.8.3",
111
114
  "eslint-plugin-react-hooks": "^5.1.0-rc.0",
112
115
  "eslint-plugin-unicorn": "^55.0.0",
@@ -115,13 +118,13 @@
115
118
  "jest-watch-typeahead": "^2.2.2",
116
119
  "madge": "^8.0.0",
117
120
  "nock": "^13.5.5",
118
- "nodemon": "^3.1.5",
121
+ "nodemon": "^3.1.7",
119
122
  "prettier": "^3.3.3",
120
123
  "shx": "^0.3.4",
121
124
  "ts-node": "^10.9.2",
122
125
  "tsconfig-paths": "^4.2.0",
123
126
  "typescript": "^5.6.2",
124
- "typescript-eslint": "^8.6.0",
127
+ "typescript-eslint": "^8.7.0",
125
128
  "zod-to-json-schema": "^3.23.3"
126
129
  },
127
130
  "dependencies": {
@@ -130,7 +133,7 @@
130
133
  "@emotion/react": "^11.13.3",
131
134
  "@emotion/styled": "^11.13.0",
132
135
  "@googleapis/sheets": "^9.3.1",
133
- "@mui/material": "^6.1.0",
136
+ "@mui/material": "^6.1.1",
134
137
  "ajv": "^8.17.1",
135
138
  "ajv-formats": "^3.0.1",
136
139
  "async": "^3.2.6",
@@ -156,6 +159,7 @@
156
159
  "fastest-levenshtein": "^1.0.16",
157
160
  "glob": "^10.4.3",
158
161
  "groq-sdk": "^0.7.0",
162
+ "http-z": "^7.1.1",
159
163
  "inquirer": "^10.2.2",
160
164
  "js-rouge": "3.0.0",
161
165
  "js-yaml": "^4.1.0",
@@ -163,14 +167,14 @@
163
167
  "node-cache": "^5.1.2",
164
168
  "node-fetch": "^2.6.7",
165
169
  "nunjucks": "^3.2.4",
166
- "openai": "^4.62.1",
170
+ "openai": "^4.63.0",
167
171
  "opener": "^1.5.2",
168
172
  "proxy-agent": "^6.4.0",
169
173
  "python-shell": "^5.0.0",
170
174
  "replicate": "^0.33.0",
171
175
  "rfdc": "^1.4.1",
172
176
  "semver": "^7.6.3",
173
- "socket.io": "^4.7.5",
177
+ "socket.io": "^4.8.0",
174
178
  "tiny-invariant": "^1.3.3",
175
179
  "uuid": "^10.0.0",
176
180
  "winston": "^3.14.2",
@@ -1 +0,0 @@
1
- {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/accounts.ts"],"names":[],"mappings":"AAIA,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAG5C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,QAGzC;AAED,wBAAgB,SAAS,IAAI,MAAM,GAAG,IAAI,CAEzC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/accounts.ts"],"names":[],"mappings":";;AAIA,oCAGC;AAED,oCAGC;AAED,8BAEC;AAfD,qCAAwC;AACxC,iDAAqE;AAErE,SAAgB,YAAY;IAC1B,MAAM,YAAY,GAAG,IAAA,+BAAgB,GAAE,CAAC;IACxC,OAAO,YAAY,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;AAC7C,CAAC;AAED,SAAgB,YAAY,CAAC,KAAa;IACxC,MAAM,MAAM,GAAiB,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;IACpD,IAAA,gCAAiB,EAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,SAAS;IACvB,OAAO,IAAA,qBAAY,EAAC,kBAAkB,CAAC,IAAI,YAAY,EAAE,IAAI,IAAI,CAAC;AACpE,CAAC"}