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.
- package/dist/package.json +16 -12
- package/dist/src/app/assets/index-B0eIt9gO.js +781 -0
- package/dist/src/app/assets/{index-Dl-FhnW1.css → index-DdvQdOby.css} +1 -1
- package/dist/src/app/assets/{index.es-mBX9PPNc.js → index.es-6LwcIYWb.js} +6 -6
- package/dist/src/app/assets/{sync-DKaPkQuY.js → sync-DvHcfyRC.js} +1 -1
- package/dist/src/app/index.html +2 -2
- package/dist/src/assertions.d.ts.map +1 -1
- package/dist/src/assertions.js +2 -1
- package/dist/src/assertions.js.map +1 -1
- package/dist/src/cache.js +2 -2
- package/dist/src/cache.js.map +1 -1
- package/dist/src/commands/auth.d.ts +3 -0
- package/dist/src/commands/auth.d.ts.map +1 -0
- package/dist/src/commands/auth.js +86 -0
- package/dist/src/commands/auth.js.map +1 -0
- package/dist/src/commands/config.js +1 -1
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/eval.d.ts.map +1 -1
- package/dist/src/commands/eval.js +27 -13
- package/dist/src/commands/eval.js.map +1 -1
- package/dist/src/commands/generate/dataset.d.ts.map +1 -1
- package/dist/src/commands/generate/dataset.js +2 -2
- package/dist/src/commands/generate/dataset.js.map +1 -1
- package/dist/src/commands/share.d.ts +2 -0
- package/dist/src/commands/share.d.ts.map +1 -1
- package/dist/src/commands/share.js +20 -8
- package/dist/src/commands/share.js.map +1 -1
- package/dist/src/commands/view.js +2 -2
- package/dist/src/commands/view.js.map +1 -1
- package/dist/src/configTypes.d.ts +5 -1
- package/dist/src/configTypes.d.ts.map +1 -1
- package/dist/src/constants.d.ts +1 -1
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +2 -1
- package/dist/src/constants.js.map +1 -1
- package/dist/src/csv.d.ts.map +1 -1
- package/dist/src/csv.js +3 -2
- package/dist/src/csv.js.map +1 -1
- package/dist/src/database/index.js +3 -3
- package/dist/src/database/index.js.map +1 -1
- package/dist/src/envars.d.ts +19 -0
- package/dist/src/envars.d.ts.map +1 -1
- package/dist/src/envars.js.map +1 -1
- package/dist/src/globalConfig/accounts.d.ts.map +1 -0
- package/dist/src/{accounts.js → globalConfig/accounts.js} +2 -2
- package/dist/src/globalConfig/accounts.js.map +1 -0
- package/dist/src/globalConfig/cloud.d.ts +17 -0
- package/dist/src/globalConfig/cloud.d.ts.map +1 -0
- package/dist/src/globalConfig/cloud.js +82 -0
- package/dist/src/globalConfig/cloud.js.map +1 -0
- package/dist/src/{globalConfig.d.ts → globalConfig/globalConfig.d.ts} +1 -3
- package/dist/src/globalConfig/globalConfig.d.ts.map +1 -0
- package/dist/src/{globalConfig.js → globalConfig/globalConfig.js} +13 -36
- package/dist/src/globalConfig/globalConfig.js.map +1 -0
- package/dist/src/main.d.ts +1 -5
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js +15 -31
- package/dist/src/main.js.map +1 -1
- package/dist/src/onboarding.d.ts.map +1 -1
- package/dist/src/onboarding.js +9 -8
- package/dist/src/onboarding.js.map +1 -1
- package/dist/src/prompts/index.d.ts.map +1 -1
- package/dist/src/prompts/index.js +4 -0
- package/dist/src/prompts/index.js.map +1 -1
- package/dist/src/providers/bedrock.d.ts +15 -0
- package/dist/src/providers/bedrock.d.ts.map +1 -1
- package/dist/src/providers/bedrock.js +49 -20
- package/dist/src/providers/bedrock.js.map +1 -1
- package/dist/src/providers/browser.d.ts +28 -0
- package/dist/src/providers/browser.d.ts.map +1 -0
- package/dist/src/providers/browser.js +151 -0
- package/dist/src/providers/browser.js.map +1 -0
- package/dist/src/providers/http.d.ts +9 -5
- package/dist/src/providers/http.d.ts.map +1 -1
- package/dist/src/providers/http.js +81 -12
- package/dist/src/providers/http.js.map +1 -1
- package/dist/src/providers/openai.d.ts.map +1 -1
- package/dist/src/providers/openai.js +7 -0
- package/dist/src/providers/openai.js.map +1 -1
- package/dist/src/providers/vertexUtil.d.ts +1 -1
- package/dist/src/providers/websocket.d.ts +2 -2
- package/dist/src/providers/websocket.d.ts.map +1 -1
- package/dist/src/providers/websocket.js +3 -3
- package/dist/src/providers/websocket.js.map +1 -1
- package/dist/src/providers.d.ts.map +1 -1
- package/dist/src/providers.js +21 -4
- package/dist/src/providers.js.map +1 -1
- package/dist/src/redteam/commands/generate.d.ts.map +1 -1
- package/dist/src/redteam/commands/generate.js +7 -7
- package/dist/src/redteam/commands/generate.js.map +1 -1
- package/dist/src/redteam/commands/init.d.ts.map +1 -1
- package/dist/src/redteam/commands/init.js +15 -24
- package/dist/src/redteam/commands/init.js.map +1 -1
- package/dist/src/redteam/plugins/base.d.ts +7 -1
- package/dist/src/redteam/plugins/base.d.ts.map +1 -1
- package/dist/src/redteam/plugins/base.js +9 -1
- package/dist/src/redteam/plugins/base.js.map +1 -1
- package/dist/src/redteam/plugins/indirectPromptInjection.d.ts +7 -1
- package/dist/src/redteam/plugins/indirectPromptInjection.d.ts.map +1 -1
- package/dist/src/redteam/plugins/indirectPromptInjection.js +37 -0
- package/dist/src/redteam/plugins/indirectPromptInjection.js.map +1 -1
- package/dist/src/server/server.d.ts.map +1 -1
- package/dist/src/server/server.js +12 -0
- package/dist/src/server/server.js.map +1 -1
- package/dist/src/share.d.ts +1 -1
- package/dist/src/share.d.ts.map +1 -1
- package/dist/src/share.js +38 -13
- package/dist/src/share.js.map +1 -1
- package/dist/src/telemetry.d.ts +2 -1
- package/dist/src/telemetry.d.ts.map +1 -1
- package/dist/src/telemetry.js +48 -33
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/types/index.d.ts +6 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/util/config/default.d.ts +14 -0
- package/dist/src/util/config/default.d.ts.map +1 -0
- package/dist/src/util/config/default.js +36 -0
- package/dist/src/util/config/default.js.map +1 -0
- package/dist/src/{config.d.ts → util/config/load.d.ts} +2 -2
- package/dist/src/util/config/load.d.ts.map +1 -0
- package/dist/src/{config.js → util/config/load.js} +18 -13
- package/dist/src/util/config/load.js.map +1 -0
- package/dist/src/util/{config.d.ts → config/manage.d.ts} +2 -2
- package/dist/src/util/config/manage.d.ts.map +1 -0
- package/dist/src/util/{config.js → config/manage.js} +3 -3
- package/dist/src/util/config/manage.js.map +1 -0
- package/dist/src/util/index.js +8 -8
- package/dist/src/util/index.js.map +1 -1
- package/dist/test/account.test.js +5 -4
- package/dist/test/account.test.js.map +1 -1
- package/dist/test/csv.test.js +21 -0
- package/dist/test/csv.test.js.map +1 -1
- package/dist/test/globalConfig.test.js +5 -26
- package/dist/test/globalConfig.test.js.map +1 -1
- package/dist/test/prompts.test.js +17 -2
- package/dist/test/prompts.test.js.map +1 -1
- package/dist/test/providers.bedrock.test.js +46 -0
- package/dist/test/providers.bedrock.test.js.map +1 -1
- package/dist/test/providers.http.test.js +122 -8
- package/dist/test/providers.http.test.js.map +1 -1
- package/dist/test/providers.pythonCompletion.test.js +21 -0
- package/dist/test/providers.pythonCompletion.test.js.map +1 -1
- package/dist/test/providers.test.js +25 -0
- package/dist/test/providers.test.js.map +1 -1
- package/dist/test/redteam/commands/generate.test.js +7 -7
- package/dist/test/redteam/commands/generate.test.js.map +1 -1
- package/dist/test/redteam/extraction/entities.test.js +4 -1
- package/dist/test/redteam/extraction/entities.test.js.map +1 -1
- package/dist/test/redteam/extraction/purpose.test.js +4 -1
- package/dist/test/redteam/extraction/purpose.test.js.map +1 -1
- package/dist/test/redteam/extraction/util.test.js +3 -0
- package/dist/test/redteam/extraction/util.test.js.map +1 -1
- package/dist/test/telemetry.test.js +49 -7
- package/dist/test/telemetry.test.js.map +1 -1
- package/dist/test/util.config.default.test.d.ts +2 -0
- package/dist/test/util.config.default.test.d.ts.map +1 -0
- package/dist/test/util.config.default.test.js +62 -0
- package/dist/test/util.config.default.test.js.map +1 -0
- package/dist/test/util.config.load.test.ts.d.ts +2 -0
- package/dist/test/util.config.load.test.ts.d.ts.map +1 -0
- package/dist/test/{config.test.js → util.config.load.test.ts.js} +32 -27
- package/dist/test/util.config.load.test.ts.js.map +1 -0
- package/dist/test/util.config.main.test.d.ts +2 -0
- package/dist/test/util.config.main.test.d.ts.map +1 -0
- package/dist/test/{util.config.test.js → util.config.main.test.js} +16 -16
- package/dist/test/util.config.main.test.js.map +1 -0
- package/package.json +16 -12
- package/dist/src/accounts.d.ts.map +0 -1
- package/dist/src/accounts.js.map +0 -1
- package/dist/src/app/assets/index-CW_4LMda.js +0 -781
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/config.js.map +0 -1
- package/dist/src/globalConfig.d.ts.map +0 -1
- package/dist/src/globalConfig.js.map +0 -1
- package/dist/src/util/config.d.ts.map +0 -1
- package/dist/src/util/config.js.map +0 -1
- package/dist/test/config.test.d.ts +0 -2
- package/dist/test/config.test.d.ts.map +0 -1
- package/dist/test/config.test.js.map +0 -1
- package/dist/test/main.test.d.ts +0 -2
- package/dist/test/main.test.d.ts.map +0 -1
- package/dist/test/main.test.js +0 -49
- package/dist/test/main.test.js.map +0 -1
- package/dist/test/util.config.test.d.ts +0 -2
- package/dist/test/util.config.test.d.ts.map +0 -1
- package/dist/test/util.config.test.js.map +0 -1
- /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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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 @@
|
|
|
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
|
|
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,
|
|
48
|
+
expect((0, manage_1.getConfigDirectoryPath)()).toBe(defaultConfigPath);
|
|
49
49
|
});
|
|
50
50
|
it('does not create directory when createIfNotExists is false', () => {
|
|
51
|
-
(0,
|
|
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,
|
|
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,
|
|
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,
|
|
68
|
-
expect((0,
|
|
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,
|
|
75
|
-
expect((0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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.
|
|
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.
|
|
80
|
-
"@libsql/client": "^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.
|
|
109
|
-
"eslint": "^9.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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"}
|
package/dist/src/accounts.js.map
DELETED
|
@@ -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"}
|