promptfoo 0.93.1 → 0.93.3

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 (78) hide show
  1. package/dist/package.json +1 -1
  2. package/dist/src/app/assets/index-CKeaKcHn.css +1 -0
  3. package/dist/src/app/assets/{index-BPrn51S5.js → index-x0TdnK0A.js} +184 -184
  4. package/dist/src/app/assets/{index.es-jTP7pki5.js → index.es-9tmWNumA.js} +1 -1
  5. package/dist/src/app/assets/{sync-BxYeesLE.js → sync-BdPRE9yh.js} +1 -1
  6. package/dist/src/app/index.html +3 -3
  7. package/dist/src/assertions.d.ts +1 -0
  8. package/dist/src/assertions.d.ts.map +1 -1
  9. package/dist/src/assertions.js +27 -13
  10. package/dist/src/assertions.js.map +1 -1
  11. package/dist/src/commands/auth.d.ts.map +1 -1
  12. package/dist/src/commands/auth.js +25 -18
  13. package/dist/src/commands/auth.js.map +1 -1
  14. package/dist/src/commands/eval.d.ts.map +1 -1
  15. package/dist/src/commands/eval.js +4 -1
  16. package/dist/src/commands/eval.js.map +1 -1
  17. package/dist/src/envars.d.ts +3 -2
  18. package/dist/src/envars.d.ts.map +1 -1
  19. package/dist/src/envars.js.map +1 -1
  20. package/dist/src/globalConfig/cloud.d.ts +22 -1
  21. package/dist/src/globalConfig/cloud.d.ts.map +1 -1
  22. package/dist/src/globalConfig/cloud.js +5 -0
  23. package/dist/src/globalConfig/cloud.js.map +1 -1
  24. package/dist/src/models/eval.d.ts.map +1 -1
  25. package/dist/src/models/eval.js +22 -15
  26. package/dist/src/models/eval.js.map +1 -1
  27. package/dist/src/onboarding.d.ts.map +1 -1
  28. package/dist/src/onboarding.js +7 -0
  29. package/dist/src/onboarding.js.map +1 -1
  30. package/dist/src/providers/promptfoo.d.ts.map +1 -1
  31. package/dist/src/providers/promptfoo.js +3 -0
  32. package/dist/src/providers/promptfoo.js.map +1 -1
  33. package/dist/src/providers/vertexUtil.d.ts.map +1 -1
  34. package/dist/src/providers/vertexUtil.js +16 -0
  35. package/dist/src/providers/vertexUtil.js.map +1 -1
  36. package/dist/src/providers/watsonx.d.ts +36 -2
  37. package/dist/src/providers/watsonx.d.ts.map +1 -1
  38. package/dist/src/providers/watsonx.js +258 -14
  39. package/dist/src/providers/watsonx.js.map +1 -1
  40. package/dist/src/redteam/commands/run.d.ts.map +1 -1
  41. package/dist/src/redteam/commands/run.js +3 -0
  42. package/dist/src/redteam/commands/run.js.map +1 -1
  43. package/dist/src/redteam/constants.d.ts +2 -2
  44. package/dist/src/redteam/constants.d.ts.map +1 -1
  45. package/dist/src/redteam/constants.js +26 -24
  46. package/dist/src/redteam/constants.js.map +1 -1
  47. package/dist/src/redteam/plugins/base.js.map +1 -1
  48. package/dist/src/redteam/strategies/index.d.ts.map +1 -1
  49. package/dist/src/redteam/strategies/index.js +10 -0
  50. package/dist/src/redteam/strategies/index.js.map +1 -1
  51. package/dist/src/redteam/strategies/mathPrompt.d.ts +5 -0
  52. package/dist/src/redteam/strategies/mathPrompt.d.ts.map +1 -0
  53. package/dist/src/redteam/strategies/mathPrompt.js +140 -0
  54. package/dist/src/redteam/strategies/mathPrompt.js.map +1 -0
  55. package/dist/src/share.js +1 -1
  56. package/dist/src/share.js.map +1 -1
  57. package/dist/src/types/providers.d.ts +3 -2
  58. package/dist/src/types/providers.d.ts.map +1 -1
  59. package/dist/src/types/providers.js.map +1 -1
  60. package/dist/test/assertions.test.js +188 -109
  61. package/dist/test/assertions.test.js.map +1 -1
  62. package/dist/test/assertions.utils.test.d.ts +2 -0
  63. package/dist/test/assertions.utils.test.d.ts.map +1 -0
  64. package/dist/test/assertions.utils.test.js +74 -0
  65. package/dist/test/assertions.utils.test.js.map +1 -0
  66. package/dist/test/providers.vertex.test.js +1 -0
  67. package/dist/test/providers.vertex.test.js.map +1 -1
  68. package/dist/test/providers.watsonx.test.js +75 -5
  69. package/dist/test/providers.watsonx.test.js.map +1 -1
  70. package/dist/test/redteam/plugins/pluginDocumentation.test.d.ts +2 -0
  71. package/dist/test/redteam/plugins/pluginDocumentation.test.d.ts.map +1 -0
  72. package/dist/test/redteam/plugins/pluginDocumentation.test.js +38 -0
  73. package/dist/test/redteam/plugins/pluginDocumentation.test.js.map +1 -0
  74. package/dist/test/share.test.js +23 -0
  75. package/dist/test/share.test.js.map +1 -1
  76. package/dist/tsconfig.tsbuildinfo +1 -1
  77. package/package.json +1 -1
  78. package/dist/src/app/assets/index-V4sLv2Tk.css +0 -1
@@ -74,8 +74,13 @@ jest.mock('../src/esm');
74
74
  jest.mock('../src/database', () => ({
75
75
  getDb: jest.fn(),
76
76
  }));
77
+ jest.mock('path', () => ({
78
+ ...jest.requireActual('path'),
79
+ resolve: jest.fn(jest.requireActual('path').resolve),
80
+ extname: jest.fn(jest.requireActual('path').extname),
81
+ }));
77
82
  jest.mock('../src/cliState', () => ({
78
- basePath: '/config_path',
83
+ basePath: '/base/path',
79
84
  }));
80
85
  jest.mock('../src/matchers', () => {
81
86
  const actual = jest.requireActual('../src/matchers');
@@ -133,7 +138,7 @@ describe('runAssertions', () => {
133
138
  const output = 'Expected output';
134
139
  const result = await (0, assertions_1.runAssertions)({
135
140
  prompt: 'Some prompt',
136
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
141
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
137
142
  test,
138
143
  providerResponse: { output },
139
144
  });
@@ -146,7 +151,7 @@ describe('runAssertions', () => {
146
151
  const output = 'Actual output';
147
152
  const result = await (0, assertions_1.runAssertions)({
148
153
  prompt: 'Some prompt',
149
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
154
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
150
155
  test,
151
156
  providerResponse: { output },
152
157
  });
@@ -159,7 +164,7 @@ describe('runAssertions', () => {
159
164
  const output = { key: 'value' };
160
165
  const result = await (0, assertions_1.runAssertions)({
161
166
  prompt: 'Some prompt',
162
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
167
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
163
168
  test,
164
169
  providerResponse: { output },
165
170
  });
@@ -171,7 +176,7 @@ describe('runAssertions', () => {
171
176
  it('should fail when combined score is less than threshold', async () => {
172
177
  const result = await (0, assertions_1.runAssertions)({
173
178
  prompt: 'Some prompt',
174
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
179
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
175
180
  test: {
176
181
  threshold: 0.5,
177
182
  assert: [
@@ -197,7 +202,7 @@ describe('runAssertions', () => {
197
202
  it('should pass when combined score is greater than threshold', async () => {
198
203
  const result = await (0, assertions_1.runAssertions)({
199
204
  prompt: 'Some prompt',
200
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
205
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
201
206
  test: {
202
207
  threshold: 0.25,
203
208
  assert: [
@@ -222,7 +227,7 @@ describe('runAssertions', () => {
222
227
  });
223
228
  describe('assert-set', () => {
224
229
  const prompt = 'Some prompt';
225
- const provider = new openai_1.OpenAiChatCompletionProvider('gpt-4');
230
+ const provider = new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini');
226
231
  it('assert-set success', async () => {
227
232
  const output = 'Expected output';
228
233
  const test = {
@@ -602,7 +607,7 @@ describe('runAssertion', () => {
602
607
  const output = 'Expected output';
603
608
  const result = await (0, assertions_1.runAssertion)({
604
609
  prompt: 'Some prompt',
605
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
610
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
606
611
  assertion: equalityAssertion,
607
612
  test: {},
608
613
  providerResponse: { output },
@@ -616,7 +621,7 @@ describe('runAssertion', () => {
616
621
  const output = 'Actual output';
617
622
  const result = await (0, assertions_1.runAssertion)({
618
623
  prompt: 'Some prompt',
619
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
624
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
620
625
  assertion: equalityAssertion,
621
626
  test: {},
622
627
  providerResponse: { output },
@@ -637,7 +642,7 @@ describe('runAssertion', () => {
637
642
  assertion: notEqualsAssertion,
638
643
  test: {},
639
644
  providerResponse: { output },
640
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
645
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
641
646
  });
642
647
  expect(result).toMatchObject({
643
648
  pass: true,
@@ -651,7 +656,7 @@ describe('runAssertion', () => {
651
656
  assertion: notEqualsAssertion,
652
657
  test: {},
653
658
  providerResponse: { output },
654
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
659
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
655
660
  });
656
661
  expect(result).toMatchObject({
657
662
  pass: false,
@@ -662,7 +667,7 @@ describe('runAssertion', () => {
662
667
  const output = { key: 'value' };
663
668
  const result = await (0, assertions_1.runAssertion)({
664
669
  prompt: 'Some prompt',
665
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
670
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
666
671
  assertion: equalityAssertion,
667
672
  test: {},
668
673
  providerResponse: { output },
@@ -676,7 +681,7 @@ describe('runAssertion', () => {
676
681
  const output = { key: 'value' };
677
682
  const result = await (0, assertions_1.runAssertion)({
678
683
  prompt: 'Some prompt',
679
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
684
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
680
685
  assertion: equalityAssertionWithObject,
681
686
  test: {},
682
687
  providerResponse: { output },
@@ -690,7 +695,7 @@ describe('runAssertion', () => {
690
695
  const output = { key: 'not value' };
691
696
  const result = await (0, assertions_1.runAssertion)({
692
697
  prompt: 'Some prompt',
693
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
698
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
694
699
  assertion: equalityAssertionWithObject,
695
700
  test: {},
696
701
  providerResponse: { output },
@@ -709,7 +714,7 @@ describe('runAssertion', () => {
709
714
  const output = '{"key":"value"}';
710
715
  const result = await (0, assertions_1.runAssertion)({
711
716
  prompt: 'Some prompt',
712
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
717
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
713
718
  assertion,
714
719
  test: {},
715
720
  providerResponse: { output },
@@ -729,7 +734,7 @@ describe('runAssertion', () => {
729
734
  const output = '{"key":"not value"}';
730
735
  const result = await (0, assertions_1.runAssertion)({
731
736
  prompt: 'Some prompt',
732
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
737
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
733
738
  assertion,
734
739
  test: {},
735
740
  providerResponse: { output },
@@ -744,7 +749,7 @@ describe('runAssertion', () => {
744
749
  const output = '{"key":"value"}';
745
750
  const result = await (0, assertions_1.runAssertion)({
746
751
  prompt: 'Some prompt',
747
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
752
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
748
753
  assertion: isJsonAssertion,
749
754
  test: {},
750
755
  providerResponse: { output },
@@ -758,7 +763,7 @@ describe('runAssertion', () => {
758
763
  const output = 'Not valid JSON';
759
764
  const result = await (0, assertions_1.runAssertion)({
760
765
  prompt: 'Some prompt',
761
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
766
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
762
767
  assertion: isJsonAssertion,
763
768
  test: {},
764
769
  providerResponse: { output },
@@ -772,7 +777,7 @@ describe('runAssertion', () => {
772
777
  const output = '{"latitude": 80.123, "longitude": -1}';
773
778
  const result = await (0, assertions_1.runAssertion)({
774
779
  prompt: 'Some prompt',
775
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
780
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
776
781
  assertion: isJsonAssertionWithSchema,
777
782
  test: {},
778
783
  providerResponse: { output },
@@ -786,7 +791,7 @@ describe('runAssertion', () => {
786
791
  const output = '{"latitude": "high", "longitude": [-1]}';
787
792
  const result = await (0, assertions_1.runAssertion)({
788
793
  prompt: 'Some prompt',
789
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
794
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
790
795
  assertion: isJsonAssertionWithSchema,
791
796
  test: {},
792
797
  providerResponse: { output },
@@ -800,7 +805,7 @@ describe('runAssertion', () => {
800
805
  const output = '{"latitude": 80.123, "longitude": -1}';
801
806
  const result = await (0, assertions_1.runAssertion)({
802
807
  prompt: 'Some prompt',
803
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
808
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
804
809
  assertion: isJsonAssertionWithSchemaYamlString,
805
810
  test: {},
806
811
  providerResponse: { output },
@@ -814,7 +819,7 @@ describe('runAssertion', () => {
814
819
  const output = '{"latitude": "high", "longitude": [-1]}';
815
820
  const result = await (0, assertions_1.runAssertion)({
816
821
  prompt: 'Some prompt',
817
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
822
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
818
823
  assertion: isJsonAssertionWithSchemaYamlString,
819
824
  test: {},
820
825
  providerResponse: { output },
@@ -838,7 +843,7 @@ describe('runAssertion', () => {
838
843
  };
839
844
  const result = await (0, assertions_1.runAssertion)({
840
845
  prompt: 'Some prompt',
841
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
846
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
842
847
  assertion: { type: 'is-json', value: schemaWithFormat },
843
848
  test: {},
844
849
  providerResponse: { output },
@@ -862,7 +867,7 @@ describe('runAssertion', () => {
862
867
  };
863
868
  const result = await (0, assertions_1.runAssertion)({
864
869
  prompt: 'Some prompt',
865
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
870
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
866
871
  assertion: { type: 'is-json', value: schemaWithFormat },
867
872
  test: {},
868
873
  providerResponse: { output },
@@ -896,7 +901,7 @@ describe('runAssertion', () => {
896
901
  const output = '{"latitude": 80.123, "longitude": -1}';
897
902
  const result = await (0, assertions_1.runAssertion)({
898
903
  prompt: 'Some prompt',
899
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
904
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
900
905
  assertion,
901
906
  test: {},
902
907
  providerResponse: { output },
@@ -931,7 +936,7 @@ describe('runAssertion', () => {
931
936
  const output = '{"latitude": "high", "longitude": [-1]}';
932
937
  const result = await (0, assertions_1.runAssertion)({
933
938
  prompt: 'Some prompt',
934
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
939
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
935
940
  assertion,
936
941
  test: {},
937
942
  providerResponse: { output },
@@ -946,7 +951,7 @@ describe('runAssertion', () => {
946
951
  const output = 'SELECT id, name FROM users';
947
952
  const result = await (0, assertions_1.runAssertion)({
948
953
  prompt: 'Some prompt',
949
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
954
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
950
955
  assertion: isSqlAssertion,
951
956
  test: {},
952
957
  providerResponse: { output },
@@ -960,7 +965,7 @@ describe('runAssertion', () => {
960
965
  const output = 'SELECT * FROM orders ORDERY BY order_date';
961
966
  const result = await (0, assertions_1.runAssertion)({
962
967
  prompt: 'Some prompt',
963
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
968
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
964
969
  assertion: isSqlAssertion,
965
970
  test: {},
966
971
  providerResponse: { output },
@@ -974,7 +979,7 @@ describe('runAssertion', () => {
974
979
  const output = 'SELECT * FROM orders ORDERY BY order_date';
975
980
  const result = await (0, assertions_1.runAssertion)({
976
981
  prompt: 'Some prompt',
977
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
982
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
978
983
  assertion: notIsSqlAssertion,
979
984
  test: {},
980
985
  providerResponse: { output },
@@ -988,7 +993,7 @@ describe('runAssertion', () => {
988
993
  const output = 'SELECT id, name FROM users';
989
994
  const result = await (0, assertions_1.runAssertion)({
990
995
  prompt: 'Some prompt',
991
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
996
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
992
997
  assertion: notIsSqlAssertion,
993
998
  test: {},
994
999
  providerResponse: { output },
@@ -1002,7 +1007,7 @@ describe('runAssertion', () => {
1002
1007
  const output = 'SELECT id, name FROM users';
1003
1008
  const result = await (0, assertions_1.runAssertion)({
1004
1009
  prompt: 'Some prompt',
1005
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1010
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1006
1011
  assertion: isSqlAssertionWithDatabase,
1007
1012
  test: {},
1008
1013
  providerResponse: { output },
@@ -1016,7 +1021,7 @@ describe('runAssertion', () => {
1016
1021
  const output = `SELECT first_name, last_name FROM employees WHERE first_name ILIKE 'john%'`;
1017
1022
  const result = await (0, assertions_1.runAssertion)({
1018
1023
  prompt: 'Some prompt',
1019
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1024
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1020
1025
  assertion: isSqlAssertionWithDatabase,
1021
1026
  test: {},
1022
1027
  providerResponse: { output },
@@ -1030,7 +1035,7 @@ describe('runAssertion', () => {
1030
1035
  const output = 'SELECT * FROM departments WHERE department_id = 1';
1031
1036
  const result = await (0, assertions_1.runAssertion)({
1032
1037
  prompt: 'Some prompt',
1033
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1038
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1034
1039
  assertion: isSqlAssertionWithDatabaseAndWhiteTableList,
1035
1040
  test: {},
1036
1041
  providerResponse: { output },
@@ -1044,7 +1049,7 @@ describe('runAssertion', () => {
1044
1049
  const output = 'UPDATE employees SET department_id = 2 WHERE employee_id = 1';
1045
1050
  const result = await (0, assertions_1.runAssertion)({
1046
1051
  prompt: 'Some prompt',
1047
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1052
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1048
1053
  assertion: isSqlAssertionWithDatabaseAndWhiteTableList,
1049
1054
  test: {},
1050
1055
  providerResponse: { output },
@@ -1058,7 +1063,7 @@ describe('runAssertion', () => {
1058
1063
  const output = 'SELECT name FROM t';
1059
1064
  const result = await (0, assertions_1.runAssertion)({
1060
1065
  prompt: 'Some prompt',
1061
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1066
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1062
1067
  assertion: isSqlAssertionWithDatabaseAndWhiteColumnList,
1063
1068
  test: {},
1064
1069
  providerResponse: { output },
@@ -1072,7 +1077,7 @@ describe('runAssertion', () => {
1072
1077
  const output = 'SELECT age FROM a WHERE id = 1';
1073
1078
  const result = await (0, assertions_1.runAssertion)({
1074
1079
  prompt: 'Some prompt',
1075
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1080
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1076
1081
  assertion: isSqlAssertionWithDatabaseAndWhiteColumnList,
1077
1082
  test: {},
1078
1083
  providerResponse: { output },
@@ -1086,7 +1091,7 @@ describe('runAssertion', () => {
1086
1091
  const output = 'SELECT name FROM departments';
1087
1092
  const result = await (0, assertions_1.runAssertion)({
1088
1093
  prompt: 'Some prompt',
1089
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1094
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1090
1095
  assertion: isSqlAssertionWithDatabaseAndBothList,
1091
1096
  test: {},
1092
1097
  providerResponse: { output },
@@ -1100,7 +1105,7 @@ describe('runAssertion', () => {
1100
1105
  const output = `INSERT INTO departments (name) VALUES ('HR')`;
1101
1106
  const result = await (0, assertions_1.runAssertion)({
1102
1107
  prompt: 'Some prompt',
1103
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1108
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1104
1109
  assertion: isSqlAssertionWithDatabaseAndBothList,
1105
1110
  test: {},
1106
1111
  providerResponse: { output },
@@ -1114,7 +1119,7 @@ describe('runAssertion', () => {
1114
1119
  const output = 'UPDATE a SET id = 1';
1115
1120
  const result = await (0, assertions_1.runAssertion)({
1116
1121
  prompt: 'Some prompt',
1117
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1122
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1118
1123
  assertion: isSqlAssertionWithDatabaseAndBothList,
1119
1124
  test: {},
1120
1125
  providerResponse: { output },
@@ -1128,7 +1133,7 @@ describe('runAssertion', () => {
1128
1133
  const output = `DELETE FROM employees;`;
1129
1134
  const result = await (0, assertions_1.runAssertion)({
1130
1135
  prompt: 'Some prompt',
1131
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1136
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1132
1137
  assertion: isSqlAssertionWithDatabaseAndBothList,
1133
1138
  test: {},
1134
1139
  providerResponse: { output },
@@ -1142,7 +1147,7 @@ describe('runAssertion', () => {
1142
1147
  const output = 'wassup\n```\nSELECT id, name FROM users\n```\nyolo';
1143
1148
  const result = await (0, assertions_1.runAssertion)({
1144
1149
  prompt: 'Some prompt',
1145
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1150
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1146
1151
  assertion: {
1147
1152
  type: 'contains-sql',
1148
1153
  },
@@ -1158,7 +1163,7 @@ describe('runAssertion', () => {
1158
1163
  const output = 'wassup\n```sql\nSELECT id, name FROM users\n```\nyolo';
1159
1164
  const result = await (0, assertions_1.runAssertion)({
1160
1165
  prompt: 'Some prompt',
1161
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1166
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1162
1167
  assertion: {
1163
1168
  type: 'contains-sql',
1164
1169
  },
@@ -1174,7 +1179,7 @@ describe('runAssertion', () => {
1174
1179
  const output = 'SELECT id, name FROM users';
1175
1180
  const result = await (0, assertions_1.runAssertion)({
1176
1181
  prompt: 'Some prompt',
1177
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1182
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1178
1183
  assertion: {
1179
1184
  type: 'contains-sql',
1180
1185
  },
@@ -1190,7 +1195,7 @@ describe('runAssertion', () => {
1190
1195
  const output = 'nothin';
1191
1196
  const result = await (0, assertions_1.runAssertion)({
1192
1197
  prompt: 'Some prompt',
1193
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1198
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1194
1199
  assertion: {
1195
1200
  type: 'contains-sql',
1196
1201
  },
@@ -1205,7 +1210,7 @@ describe('runAssertion', () => {
1205
1210
  const output = '```python\nprint("Hello, World!")\n```';
1206
1211
  const result = await (0, assertions_1.runAssertion)({
1207
1212
  prompt: 'Some prompt',
1208
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1213
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1209
1214
  assertion: {
1210
1215
  type: 'contains-sql',
1211
1216
  },
@@ -1220,7 +1225,7 @@ describe('runAssertion', () => {
1220
1225
  const output = 'this is some other stuff \n\n {"key": "value", "key2": {"key3": "value2", "key4": ["value3", "value4"]}} \n\n blah blah';
1221
1226
  const result = await (0, assertions_1.runAssertion)({
1222
1227
  prompt: 'Some prompt',
1223
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1228
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1224
1229
  assertion: containsJsonAssertion,
1225
1230
  test: {},
1226
1231
  providerResponse: { output },
@@ -1234,7 +1239,7 @@ describe('runAssertion', () => {
1234
1239
  const output = 'this is some other stuff \n\n {"key": "value", "key2": {"key3": "value2", "key4": ["value3", "value4"]}} another {"key": "value", "key2": {"key3": "value2", "key4": ["value3", "value4"]}}\n\n blah blah';
1235
1240
  const result = await (0, assertions_1.runAssertion)({
1236
1241
  prompt: 'Some prompt',
1237
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1242
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1238
1243
  assertion: containsJsonAssertion,
1239
1244
  test: {},
1240
1245
  providerResponse: { output },
@@ -1248,7 +1253,7 @@ describe('runAssertion', () => {
1248
1253
  const output = 'Not valid JSON';
1249
1254
  const result = await (0, assertions_1.runAssertion)({
1250
1255
  prompt: 'Some prompt',
1251
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1256
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1252
1257
  assertion: containsJsonAssertion,
1253
1258
  test: {},
1254
1259
  providerResponse: { output },
@@ -1262,7 +1267,7 @@ describe('runAssertion', () => {
1262
1267
  const output = 'here is the answer\n\n```{"latitude": 80.123, "longitude": -1}```';
1263
1268
  const result = await (0, assertions_1.runAssertion)({
1264
1269
  prompt: 'Some prompt',
1265
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1270
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1266
1271
  assertion: containsJsonAssertionWithSchema,
1267
1272
  test: {},
1268
1273
  providerResponse: { output },
@@ -1276,7 +1281,7 @@ describe('runAssertion', () => {
1276
1281
  const output = 'here is the answer\n\n```{"latitude": 80.123, "longitude": -1}```';
1277
1282
  const result = await (0, assertions_1.runAssertion)({
1278
1283
  prompt: 'Some prompt',
1279
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1284
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1280
1285
  assertion: containsJsonAssertionWithSchema,
1281
1286
  test: {},
1282
1287
  providerResponse: { output },
@@ -1310,7 +1315,7 @@ describe('runAssertion', () => {
1310
1315
  const output = 'here is the answer\n\n```{"latitude": 80.123, "longitude": -1}```';
1311
1316
  const result = await (0, assertions_1.runAssertion)({
1312
1317
  prompt: 'Some prompt',
1313
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1318
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1314
1319
  assertion,
1315
1320
  test: {},
1316
1321
  providerResponse: { output },
@@ -1345,7 +1350,7 @@ describe('runAssertion', () => {
1345
1350
  const output = 'here is the answer\n\n```{"latitude": "medium", "longitude": -1}```';
1346
1351
  const result = await (0, assertions_1.runAssertion)({
1347
1352
  prompt: 'Some prompt',
1348
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1353
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1349
1354
  assertion,
1350
1355
  test: {},
1351
1356
  providerResponse: { output },
@@ -1360,7 +1365,7 @@ describe('runAssertion', () => {
1360
1365
  const output = 'here is the answer\n\n```{"latitude": "medium", "longitude": -1}```';
1361
1366
  const result = await (0, assertions_1.runAssertion)({
1362
1367
  prompt: 'Some prompt',
1363
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1368
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1364
1369
  assertion: containsJsonAssertionWithSchema,
1365
1370
  test: {},
1366
1371
  providerResponse: { output },
@@ -1374,7 +1379,7 @@ describe('runAssertion', () => {
1374
1379
  const output = 'Expected output';
1375
1380
  const result = await (0, assertions_1.runAssertion)({
1376
1381
  prompt: 'Some prompt',
1377
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1382
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1378
1383
  assertion: javascriptStringAssertion,
1379
1384
  test: {},
1380
1385
  providerResponse: { output },
@@ -1388,7 +1393,7 @@ describe('runAssertion', () => {
1388
1393
  const output = 'Expected output';
1389
1394
  const result = await (0, assertions_1.runAssertion)({
1390
1395
  prompt: 'Some prompt',
1391
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1396
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1392
1397
  assertion: javascriptStringAssertionWithNumber,
1393
1398
  test: {},
1394
1399
  providerResponse: { output },
@@ -1403,7 +1408,7 @@ describe('runAssertion', () => {
1403
1408
  const output = 'Expected output';
1404
1409
  const result = await (0, assertions_1.runAssertion)({
1405
1410
  prompt: 'Some prompt',
1406
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1411
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1407
1412
  assertion: javascriptBooleanAssertionWithConfig,
1408
1413
  test: {},
1409
1414
  providerResponse: { output },
@@ -1418,7 +1423,7 @@ describe('runAssertion', () => {
1418
1423
  const output = 'Expected output with some extra characters';
1419
1424
  const result = await (0, assertions_1.runAssertion)({
1420
1425
  prompt: 'Some prompt',
1421
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1426
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1422
1427
  assertion: javascriptBooleanAssertionWithConfig,
1423
1428
  test: {},
1424
1429
  providerResponse: { output },
@@ -1433,7 +1438,7 @@ describe('runAssertion', () => {
1433
1438
  const output = 'Expected output';
1434
1439
  const result = await (0, assertions_1.runAssertion)({
1435
1440
  prompt: 'Some prompt',
1436
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1441
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1437
1442
  assertion: javascriptStringAssertionWithNumberAndThreshold,
1438
1443
  test: {},
1439
1444
  providerResponse: { output },
@@ -1448,7 +1453,7 @@ describe('runAssertion', () => {
1448
1453
  const output = '';
1449
1454
  const result = await (0, assertions_1.runAssertion)({
1450
1455
  prompt: 'Some prompt',
1451
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1456
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1452
1457
  assertion: javascriptStringAssertionWithNumberAndThreshold,
1453
1458
  test: {},
1454
1459
  providerResponse: { output },
@@ -1467,7 +1472,7 @@ describe('runAssertion', () => {
1467
1472
  };
1468
1473
  const result = await (0, assertions_1.runAssertion)({
1469
1474
  prompt: 'Some prompt',
1470
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1475
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1471
1476
  assertion,
1472
1477
  test: {},
1473
1478
  providerResponse: { output },
@@ -1482,7 +1487,7 @@ describe('runAssertion', () => {
1482
1487
  const output = 'Different output';
1483
1488
  const result = await (0, assertions_1.runAssertion)({
1484
1489
  prompt: 'Some prompt',
1485
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1490
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1486
1491
  assertion: javascriptStringAssertion,
1487
1492
  test: {},
1488
1493
  providerResponse: { output },
@@ -1500,7 +1505,7 @@ describe('runAssertion', () => {
1500
1505
  };
1501
1506
  const result = await (0, assertions_1.runAssertion)({
1502
1507
  prompt: 'variable value',
1503
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1508
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1504
1509
  assertion,
1505
1510
  test: { vars: { foo: 'Expected output' } },
1506
1511
  providerResponse: { output },
@@ -1518,7 +1523,7 @@ describe('runAssertion', () => {
1518
1523
  };
1519
1524
  const result = await (0, assertions_1.runAssertion)({
1520
1525
  prompt: 'Some prompt',
1521
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1526
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1522
1527
  assertion: javascriptStringAssertionWithVars,
1523
1528
  test: { vars: { foo: 'bar' } },
1524
1529
  providerResponse: { output },
@@ -1536,7 +1541,7 @@ describe('runAssertion', () => {
1536
1541
  };
1537
1542
  const result = await (0, assertions_1.runAssertion)({
1538
1543
  prompt: 'Some prompt',
1539
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1544
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1540
1545
  assertion: javascriptStringAssertionWithVars,
1541
1546
  test: { vars: { foo: 'bar' } },
1542
1547
  providerResponse: { output },
@@ -1550,7 +1555,7 @@ describe('runAssertion', () => {
1550
1555
  const output = 'Expected output';
1551
1556
  const result = await (0, assertions_1.runAssertion)({
1552
1557
  prompt: 'Some prompt',
1553
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1558
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1554
1559
  assertion: javascriptFunctionAssertion,
1555
1560
  test: {},
1556
1561
  providerResponse: { output },
@@ -1565,7 +1570,7 @@ describe('runAssertion', () => {
1565
1570
  const output = 'Expected output';
1566
1571
  const result = await (0, assertions_1.runAssertion)({
1567
1572
  prompt: 'Some prompt',
1568
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1573
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1569
1574
  assertion: javascriptFunctionFailAssertion,
1570
1575
  test: {},
1571
1576
  providerResponse: { output },
@@ -1583,7 +1588,7 @@ describe('runAssertion', () => {
1583
1588
  assertion: javascriptMultilineStringAssertion,
1584
1589
  test: {},
1585
1590
  providerResponse: { output },
1586
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1591
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1587
1592
  });
1588
1593
  expect(result).toMatchObject({
1589
1594
  pass: true,
@@ -1597,7 +1602,7 @@ describe('runAssertion', () => {
1597
1602
  assertion: javascriptMultilineStringAssertion,
1598
1603
  test: {},
1599
1604
  providerResponse: { output },
1600
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1605
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1601
1606
  });
1602
1607
  expect(result).toMatchObject({
1603
1608
  pass: false,
@@ -1615,7 +1620,7 @@ describe('runAssertion', () => {
1615
1620
  assertion: notContainsAssertion,
1616
1621
  test: {},
1617
1622
  providerResponse: { output },
1618
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1623
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1619
1624
  });
1620
1625
  expect(result).toMatchObject({
1621
1626
  pass: true,
@@ -1629,7 +1634,7 @@ describe('runAssertion', () => {
1629
1634
  assertion: notContainsAssertion,
1630
1635
  test: {},
1631
1636
  providerResponse: { output },
1632
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1637
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1633
1638
  });
1634
1639
  expect(result).toMatchObject({
1635
1640
  pass: false,
@@ -1648,7 +1653,7 @@ describe('runAssertion', () => {
1648
1653
  assertion: containsLowerAssertion,
1649
1654
  test: {},
1650
1655
  providerResponse: { output },
1651
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1656
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1652
1657
  });
1653
1658
  expect(result).toMatchObject({
1654
1659
  pass: true,
@@ -1662,7 +1667,7 @@ describe('runAssertion', () => {
1662
1667
  assertion: containsLowerAssertion,
1663
1668
  test: {},
1664
1669
  providerResponse: { output },
1665
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1670
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1666
1671
  });
1667
1672
  expect(result).toMatchObject({
1668
1673
  pass: false,
@@ -1681,7 +1686,7 @@ describe('runAssertion', () => {
1681
1686
  assertion: notContainsLowerAssertion,
1682
1687
  test: {},
1683
1688
  providerResponse: { output },
1684
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1689
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1685
1690
  });
1686
1691
  expect(result).toMatchObject({
1687
1692
  pass: true,
@@ -1695,7 +1700,7 @@ describe('runAssertion', () => {
1695
1700
  assertion: notContainsLowerAssertion,
1696
1701
  test: {},
1697
1702
  providerResponse: { output },
1698
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1703
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1699
1704
  });
1700
1705
  expect(result).toMatchObject({
1701
1706
  pass: false,
@@ -1714,7 +1719,7 @@ describe('runAssertion', () => {
1714
1719
  assertion: containsAnyAssertion,
1715
1720
  test: {},
1716
1721
  providerResponse: { output },
1717
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1722
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1718
1723
  });
1719
1724
  expect(result).toMatchObject({
1720
1725
  pass: true,
@@ -1728,7 +1733,7 @@ describe('runAssertion', () => {
1728
1733
  assertion: containsAnyAssertion,
1729
1734
  test: {},
1730
1735
  providerResponse: { output },
1731
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1736
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1732
1737
  });
1733
1738
  expect(result).toMatchObject({
1734
1739
  pass: false,
@@ -1745,7 +1750,7 @@ describe('runAssertion', () => {
1745
1750
  },
1746
1751
  test: {},
1747
1752
  providerResponse: { output },
1748
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1753
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1749
1754
  });
1750
1755
  expect(result).toMatchObject({
1751
1756
  pass: true,
@@ -1762,7 +1767,7 @@ describe('runAssertion', () => {
1762
1767
  },
1763
1768
  test: {},
1764
1769
  providerResponse: { output },
1765
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1770
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1766
1771
  });
1767
1772
  expect(result).toMatchObject({
1768
1773
  pass: false,
@@ -1781,7 +1786,7 @@ describe('runAssertion', () => {
1781
1786
  assertion: containsAllAssertion,
1782
1787
  test: {},
1783
1788
  providerResponse: { output },
1784
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1789
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1785
1790
  });
1786
1791
  expect(result).toMatchObject({
1787
1792
  pass: true,
@@ -1795,7 +1800,7 @@ describe('runAssertion', () => {
1795
1800
  assertion: containsAllAssertion,
1796
1801
  test: {},
1797
1802
  providerResponse: { output },
1798
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1803
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1799
1804
  });
1800
1805
  expect(result).toMatchObject({
1801
1806
  pass: false,
@@ -1812,7 +1817,7 @@ describe('runAssertion', () => {
1812
1817
  },
1813
1818
  test: {},
1814
1819
  providerResponse: { output },
1815
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1820
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1816
1821
  });
1817
1822
  expect(result).toMatchObject({
1818
1823
  pass: true,
@@ -1829,7 +1834,7 @@ describe('runAssertion', () => {
1829
1834
  },
1830
1835
  test: {},
1831
1836
  providerResponse: { output },
1832
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1837
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1833
1838
  });
1834
1839
  expect(result).toMatchObject({
1835
1840
  pass: false,
@@ -1848,7 +1853,7 @@ describe('runAssertion', () => {
1848
1853
  assertion: containsRegexAssertion,
1849
1854
  test: {},
1850
1855
  providerResponse: { output },
1851
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1856
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1852
1857
  });
1853
1858
  expect(result).toMatchObject({
1854
1859
  pass: true,
@@ -1862,7 +1867,7 @@ describe('runAssertion', () => {
1862
1867
  assertion: containsRegexAssertion,
1863
1868
  test: {},
1864
1869
  providerResponse: { output },
1865
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1870
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1866
1871
  });
1867
1872
  expect(result).toMatchObject({
1868
1873
  pass: false,
@@ -1881,7 +1886,7 @@ describe('runAssertion', () => {
1881
1886
  assertion: notContainsRegexAssertion,
1882
1887
  test: {},
1883
1888
  providerResponse: { output },
1884
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1889
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1885
1890
  });
1886
1891
  expect(result).toMatchObject({
1887
1892
  pass: true,
@@ -1895,7 +1900,7 @@ describe('runAssertion', () => {
1895
1900
  assertion: notContainsRegexAssertion,
1896
1901
  test: {},
1897
1902
  providerResponse: { output },
1898
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1903
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1899
1904
  });
1900
1905
  expect(result).toMatchObject({
1901
1906
  pass: false,
@@ -1918,7 +1923,7 @@ describe('runAssertion', () => {
1918
1923
  assertion: webhookAssertion,
1919
1924
  test: {},
1920
1925
  providerResponse: { output },
1921
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1926
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1922
1927
  });
1923
1928
  expect(result).toMatchObject({
1924
1929
  pass: true,
@@ -1936,7 +1941,7 @@ describe('runAssertion', () => {
1936
1941
  assertion: webhookAssertion,
1937
1942
  test: {},
1938
1943
  providerResponse: { output },
1939
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1944
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1940
1945
  });
1941
1946
  expect(result).toMatchObject({
1942
1947
  pass: false,
@@ -1954,7 +1959,7 @@ describe('runAssertion', () => {
1954
1959
  assertion: webhookAssertion,
1955
1960
  test: {},
1956
1961
  providerResponse: { output },
1957
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1962
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1958
1963
  });
1959
1964
  expect(result).toMatchObject({
1960
1965
  pass: false,
@@ -1974,7 +1979,7 @@ describe('runAssertion', () => {
1974
1979
  assertion: rougeNAssertion,
1975
1980
  test: {},
1976
1981
  providerResponse: { output },
1977
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1982
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1978
1983
  });
1979
1984
  expect(result).toMatchObject({
1980
1985
  pass: true,
@@ -1988,7 +1993,7 @@ describe('runAssertion', () => {
1988
1993
  assertion: rougeNAssertion,
1989
1994
  test: {},
1990
1995
  providerResponse: { output },
1991
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
1996
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
1992
1997
  });
1993
1998
  expect(result).toMatchObject({
1994
1999
  pass: false,
@@ -2007,7 +2012,7 @@ describe('runAssertion', () => {
2007
2012
  assertion: startsWithAssertion,
2008
2013
  test: {},
2009
2014
  providerResponse: { output },
2010
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
2015
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
2011
2016
  });
2012
2017
  expect(result).toMatchObject({
2013
2018
  pass: true,
@@ -2021,7 +2026,7 @@ describe('runAssertion', () => {
2021
2026
  assertion: startsWithAssertion,
2022
2027
  test: {},
2023
2028
  providerResponse: { output },
2024
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
2029
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
2025
2030
  });
2026
2031
  expect(result).toMatchObject({
2027
2032
  pass: false,
@@ -2057,7 +2062,7 @@ describe('runAssertion', () => {
2057
2062
  assertion,
2058
2063
  test,
2059
2064
  providerResponse: { output },
2060
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
2065
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
2061
2066
  });
2062
2067
  expect(result).toMatchObject({
2063
2068
  pass: true,
@@ -2074,7 +2079,7 @@ describe('runAssertion', () => {
2074
2079
  const output = 'Expected output';
2075
2080
  const result = await (0, assertions_1.runAssertion)({
2076
2081
  prompt: 'Some prompt',
2077
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
2082
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
2078
2083
  assertion: levenshteinAssertion,
2079
2084
  test: {},
2080
2085
  providerResponse: { output },
@@ -2088,7 +2093,7 @@ describe('runAssertion', () => {
2088
2093
  const output = 'Different output';
2089
2094
  const result = await (0, assertions_1.runAssertion)({
2090
2095
  prompt: 'Some prompt',
2091
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
2096
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
2092
2097
  assertion: levenshteinAssertion,
2093
2098
  test: {},
2094
2099
  providerResponse: { output },
@@ -2140,7 +2145,7 @@ describe('runAssertion', () => {
2140
2145
  };
2141
2146
  const result = await (0, assertions_1.runAssertion)({
2142
2147
  prompt: 'Some prompt',
2143
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
2148
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
2144
2149
  assertion: fileAssertion,
2145
2150
  test: {},
2146
2151
  providerResponse: { output },
@@ -2158,14 +2163,14 @@ describe('runAssertion', () => {
2158
2163
  it('should resolve js paths relative to the configuration file', async () => {
2159
2164
  const output = 'Expected output';
2160
2165
  const mockFn = jest.fn((output) => output === 'Expected output');
2161
- jest.doMock(path.resolve('/config_path/path/to/assert.js'), () => mockFn, { virtual: true });
2166
+ jest.doMock(path.resolve('/base/path/path/to/assert.js'), () => mockFn, { virtual: true });
2162
2167
  const fileAssertion = {
2163
2168
  type: 'javascript',
2164
2169
  value: 'file://./path/to/assert.js',
2165
2170
  };
2166
2171
  const result = await (0, assertions_1.runAssertion)({
2167
2172
  prompt: 'Some prompt',
2168
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
2173
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
2169
2174
  assertion: fileAssertion,
2170
2175
  test: {},
2171
2176
  providerResponse: { output },
@@ -2190,7 +2195,7 @@ describe('runAssertion', () => {
2190
2195
  };
2191
2196
  const result = await (0, assertions_1.runAssertion)({
2192
2197
  prompt: 'Some prompt',
2193
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
2198
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
2194
2199
  assertion: pythonAssertion,
2195
2200
  test: {},
2196
2201
  providerResponse: { output },
@@ -2253,7 +2258,7 @@ describe('runAssertion', () => {
2253
2258
  jest.mocked(wrapper_1.runPythonCode).mockResolvedValueOnce(resolvedValue);
2254
2259
  const result = await (0, assertions_1.runAssertion)({
2255
2260
  prompt: 'Some prompt',
2256
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
2261
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
2257
2262
  assertion: pythonAssertion,
2258
2263
  test: {},
2259
2264
  providerResponse: { output },
@@ -2297,7 +2302,7 @@ describe('runAssertion', () => {
2297
2302
  };
2298
2303
  const result = await (0, assertions_1.runAssertion)({
2299
2304
  prompt: 'Some prompt that includes "double quotes" and \'single quotes\'',
2300
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
2305
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
2301
2306
  assertion: fileAssertion,
2302
2307
  test: {},
2303
2308
  providerResponse: { output },
@@ -2327,7 +2332,7 @@ describe('runAssertion', () => {
2327
2332
  };
2328
2333
  const result = await (0, assertions_1.runAssertion)({
2329
2334
  prompt: 'Some prompt that includes "double quotes" and \'single quotes\'',
2330
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
2335
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
2331
2336
  assertion: fileAssertion,
2332
2337
  test: {},
2333
2338
  providerResponse: { output },
@@ -2348,7 +2353,7 @@ describe('runAssertion', () => {
2348
2353
  const output = 'Expected output';
2349
2354
  const result = await (0, assertions_1.runAssertion)({
2350
2355
  prompt: 'Some prompt',
2351
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
2356
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
2352
2357
  assertion: {
2353
2358
  type: 'latency',
2354
2359
  threshold: 100,
@@ -2366,7 +2371,7 @@ describe('runAssertion', () => {
2366
2371
  const output = 'Expected output';
2367
2372
  const result = await (0, assertions_1.runAssertion)({
2368
2373
  prompt: 'Some prompt',
2369
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
2374
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
2370
2375
  assertion: {
2371
2376
  type: 'latency',
2372
2377
  threshold: 100,
@@ -2384,7 +2389,7 @@ describe('runAssertion', () => {
2384
2389
  const output = 'Expected output';
2385
2390
  await expect((0, assertions_1.runAssertion)({
2386
2391
  prompt: 'Some prompt',
2387
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
2392
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
2388
2393
  assertion: {
2389
2394
  type: 'latency',
2390
2395
  threshold: 100,
@@ -2397,7 +2402,7 @@ describe('runAssertion', () => {
2397
2402
  const output = 'Expected output';
2398
2403
  const result = await (0, assertions_1.runAssertion)({
2399
2404
  prompt: 'Some prompt',
2400
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
2405
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
2401
2406
  assertion: {
2402
2407
  type: 'latency',
2403
2408
  threshold: 100,
@@ -2415,7 +2420,7 @@ describe('runAssertion', () => {
2415
2420
  const output = 'Expected output';
2416
2421
  await expect((0, assertions_1.runAssertion)({
2417
2422
  prompt: 'Some prompt',
2418
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
2423
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
2419
2424
  assertion: {
2420
2425
  type: 'latency',
2421
2426
  },
@@ -2428,7 +2433,7 @@ describe('runAssertion', () => {
2428
2433
  const output = 'Expected output';
2429
2434
  const result = await (0, assertions_1.runAssertion)({
2430
2435
  prompt: 'Some prompt',
2431
- provider: new openai_1.OpenAiChatCompletionProvider('gpt-4'),
2436
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
2432
2437
  assertion: {
2433
2438
  type: 'latency',
2434
2439
  threshold: 100,
@@ -3277,6 +3282,80 @@ describe('runAssertion', () => {
3277
3282
  })).rejects.toThrow('context-faithfulness assertion type must have a string output');
3278
3283
  });
3279
3284
  });
3285
+ describe('file references', () => {
3286
+ it('should handle file reference in string value', async () => {
3287
+ const assertion = {
3288
+ type: 'equals',
3289
+ value: 'file://expected_output.txt',
3290
+ };
3291
+ const expectedContent = 'Expected output';
3292
+ jest.mocked(fs.readFileSync).mockReturnValue(expectedContent);
3293
+ jest.mocked(path.resolve).mockReturnValue('/base/path/expected_output.txt');
3294
+ jest.mocked(path.extname).mockReturnValue('.txt');
3295
+ const result = await (0, assertions_1.runAssertion)({
3296
+ prompt: 'Some prompt',
3297
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
3298
+ assertion,
3299
+ test: {},
3300
+ providerResponse: { output: 'Expected output' },
3301
+ });
3302
+ expect(fs.readFileSync).toHaveBeenCalledWith('/base/path/expected_output.txt', 'utf8');
3303
+ expect(result.pass).toBe(true);
3304
+ });
3305
+ it('should handle file references in array values', async () => {
3306
+ const assertion = {
3307
+ type: 'contains-any',
3308
+ value: ['The expected output', 'string output', 'file://my_expected_output.txt'],
3309
+ };
3310
+ const fileContent = 'file content';
3311
+ jest.mocked(fs.readFileSync).mockReturnValue(fileContent);
3312
+ jest.mocked(path.resolve).mockReturnValue('/base/path/my_expected_output.txt');
3313
+ jest.mocked(path.extname).mockReturnValue('.txt');
3314
+ await expect((0, assertions_1.runAssertion)({
3315
+ prompt: 'Some prompt',
3316
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
3317
+ assertion,
3318
+ test: {},
3319
+ providerResponse: { output: 'file content' },
3320
+ })).resolves.toEqual(expect.objectContaining({
3321
+ pass: true,
3322
+ }));
3323
+ expect(fs.readFileSync).toHaveBeenCalledWith('/base/path/my_expected_output.txt', 'utf8');
3324
+ await expect((0, assertions_1.runAssertion)({
3325
+ prompt: 'Some prompt',
3326
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
3327
+ assertion,
3328
+ test: {},
3329
+ providerResponse: { output: 'string output' },
3330
+ })).resolves.toEqual(expect.objectContaining({
3331
+ pass: true,
3332
+ }));
3333
+ });
3334
+ it('should handle file reference in object value', async () => {
3335
+ const assertion = {
3336
+ type: 'is-json',
3337
+ value: 'file://schema.json',
3338
+ };
3339
+ const schemaContent = JSON.stringify({
3340
+ type: 'object',
3341
+ properties: {
3342
+ key: { type: 'string' },
3343
+ },
3344
+ });
3345
+ jest.mocked(fs.readFileSync).mockReturnValue(schemaContent);
3346
+ jest.mocked(path.resolve).mockReturnValue('/base/path/schema.json');
3347
+ jest.mocked(path.extname).mockReturnValue('.json');
3348
+ const result = await (0, assertions_1.runAssertion)({
3349
+ prompt: 'Some prompt',
3350
+ provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
3351
+ assertion,
3352
+ test: {},
3353
+ providerResponse: { output: '{"key": "value"}' },
3354
+ });
3355
+ expect(fs.readFileSync).toHaveBeenCalledWith('/base/path/schema.json', 'utf8');
3356
+ expect(result.pass).toBe(true);
3357
+ });
3358
+ });
3280
3359
  });
3281
3360
  describe('validateXml', () => {
3282
3361
  it('should validate a simple valid XML string', () => {