promptfoo 0.93.3 → 0.94.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 (242) hide show
  1. package/dist/drizzle/0008_broad_boomer.sql +2 -0
  2. package/dist/drizzle/0009_strong_marten_broadcloak.sql +19 -0
  3. package/dist/drizzle/meta/0008_snapshot.json +732 -0
  4. package/dist/drizzle/meta/0009_snapshot.json +622 -0
  5. package/dist/drizzle/meta/_journal.json +14 -0
  6. package/dist/package.json +16 -19
  7. package/dist/src/app/assets/index-D0jdLrEN.js +769 -0
  8. package/dist/src/app/assets/{index.es-9tmWNumA.js → index.es-BExeKHIA.js} +1 -1
  9. package/dist/src/app/assets/{sync-BdPRE9yh.js → sync-B6HKT-pd.js} +1 -1
  10. package/dist/src/app/index.html +1 -1
  11. package/dist/src/{assertions.d.ts → assertions/index.d.ts} +4 -5
  12. package/dist/src/assertions/index.d.ts.map +1 -0
  13. package/dist/src/{assertions.js → assertions/index.js} +24 -50
  14. package/dist/src/assertions/index.js.map +1 -0
  15. package/dist/src/assertions/utils.d.ts +4 -0
  16. package/dist/src/assertions/utils.d.ts.map +1 -0
  17. package/dist/src/assertions/utils.js +39 -0
  18. package/dist/src/assertions/utils.js.map +1 -0
  19. package/dist/src/cache.d.ts +0 -1
  20. package/dist/src/cache.d.ts.map +1 -1
  21. package/dist/src/cache.js.map +1 -1
  22. package/dist/src/commands/config.d.ts.map +1 -1
  23. package/dist/src/commands/config.js +41 -8
  24. package/dist/src/commands/config.js.map +1 -1
  25. package/dist/src/commands/eval.d.ts.map +1 -1
  26. package/dist/src/commands/eval.js +37 -19
  27. package/dist/src/commands/eval.js.map +1 -1
  28. package/dist/src/commands/init.d.ts.map +1 -1
  29. package/dist/src/commands/init.js +3 -4
  30. package/dist/src/commands/init.js.map +1 -1
  31. package/dist/src/database/index.d.ts.map +1 -1
  32. package/dist/src/database/index.js +4 -1
  33. package/dist/src/database/index.js.map +1 -1
  34. package/dist/src/database/tables.d.ts +0 -114
  35. package/dist/src/database/tables.d.ts.map +1 -1
  36. package/dist/src/database/tables.js +7 -34
  37. package/dist/src/database/tables.js.map +1 -1
  38. package/dist/src/envars.d.ts +5 -3
  39. package/dist/src/envars.d.ts.map +1 -1
  40. package/dist/src/envars.js.map +1 -1
  41. package/dist/src/evaluator.d.ts.map +1 -1
  42. package/dist/src/evaluator.js +0 -5
  43. package/dist/src/evaluator.js.map +1 -1
  44. package/dist/src/fetch.d.ts +0 -1
  45. package/dist/src/fetch.d.ts.map +1 -1
  46. package/dist/src/fetch.js +3 -4
  47. package/dist/src/fetch.js.map +1 -1
  48. package/dist/src/googleSheets.d.ts.map +1 -1
  49. package/dist/src/googleSheets.js +13 -2
  50. package/dist/src/googleSheets.js.map +1 -1
  51. package/dist/src/integrations/portkey.d.ts.map +1 -1
  52. package/dist/src/integrations/portkey.js +1 -2
  53. package/dist/src/integrations/portkey.js.map +1 -1
  54. package/dist/src/models/eval.d.ts +1 -3
  55. package/dist/src/models/eval.d.ts.map +1 -1
  56. package/dist/src/models/eval.js +5 -21
  57. package/dist/src/models/eval.js.map +1 -1
  58. package/dist/src/models/evalResult.d.ts +2 -0
  59. package/dist/src/models/evalResult.d.ts.map +1 -1
  60. package/dist/src/models/evalResult.js +4 -1
  61. package/dist/src/models/evalResult.js.map +1 -1
  62. package/dist/src/onboarding.d.ts +1 -1
  63. package/dist/src/onboarding.d.ts.map +1 -1
  64. package/dist/src/onboarding.js +1 -2
  65. package/dist/src/onboarding.js.map +1 -1
  66. package/dist/src/prompts/processors/javascript.d.ts +1 -0
  67. package/dist/src/prompts/processors/javascript.d.ts.map +1 -1
  68. package/dist/src/prompts/processors/javascript.js +6 -2
  69. package/dist/src/prompts/processors/javascript.js.map +1 -1
  70. package/dist/src/prompts/processors/python.d.ts +2 -0
  71. package/dist/src/prompts/processors/python.d.ts.map +1 -1
  72. package/dist/src/prompts/processors/python.js +4 -2
  73. package/dist/src/prompts/processors/python.js.map +1 -1
  74. package/dist/src/providers/anthropic.js +1 -1
  75. package/dist/src/providers/anthropic.js.map +1 -1
  76. package/dist/src/providers/bedrock.d.ts +4 -0
  77. package/dist/src/providers/bedrock.d.ts.map +1 -1
  78. package/dist/src/providers/bedrock.js +12 -0
  79. package/dist/src/providers/bedrock.js.map +1 -1
  80. package/dist/src/providers/fal.d.ts.map +1 -1
  81. package/dist/src/providers/fal.js +1 -2
  82. package/dist/src/providers/fal.js.map +1 -1
  83. package/dist/src/providers/http.d.ts +6 -2
  84. package/dist/src/providers/http.d.ts.map +1 -1
  85. package/dist/src/providers/http.js +70 -29
  86. package/dist/src/providers/http.js.map +1 -1
  87. package/dist/src/providers/openai.d.ts.map +1 -1
  88. package/dist/src/providers/openai.js +39 -30
  89. package/dist/src/providers/openai.js.map +1 -1
  90. package/dist/src/providers/palm.d.ts.map +1 -1
  91. package/dist/src/providers/palm.js +3 -1
  92. package/dist/src/providers/palm.js.map +1 -1
  93. package/dist/src/providers/replicate.d.ts.map +1 -1
  94. package/dist/src/providers/replicate.js +2 -3
  95. package/dist/src/providers/replicate.js.map +1 -1
  96. package/dist/src/providers/togetherai.d.ts +7 -0
  97. package/dist/src/providers/togetherai.d.ts.map +1 -0
  98. package/dist/src/providers/togetherai.js +33 -0
  99. package/dist/src/providers/togetherai.js.map +1 -0
  100. package/dist/src/providers/vertex.d.ts.map +1 -1
  101. package/dist/src/providers/vertex.js +4 -4
  102. package/dist/src/providers/vertex.js.map +1 -1
  103. package/dist/src/providers/vertexUtil.d.ts +78 -1
  104. package/dist/src/providers/vertexUtil.d.ts.map +1 -1
  105. package/dist/src/providers/vertexUtil.js +57 -15
  106. package/dist/src/providers/vertexUtil.js.map +1 -1
  107. package/dist/src/providers/watsonx.d.ts +5 -4
  108. package/dist/src/providers/watsonx.d.ts.map +1 -1
  109. package/dist/src/providers/watsonx.js +48 -21
  110. package/dist/src/providers/watsonx.js.map +1 -1
  111. package/dist/src/providers/xai.d.ts +7 -0
  112. package/dist/src/providers/xai.d.ts.map +1 -0
  113. package/dist/src/providers/xai.js +23 -0
  114. package/dist/src/providers/xai.js.map +1 -0
  115. package/dist/src/providers.d.ts.map +1 -1
  116. package/dist/src/providers.js +26 -0
  117. package/dist/src/providers.js.map +1 -1
  118. package/dist/src/python/pythonUtils.js +2 -2
  119. package/dist/src/python/pythonUtils.js.map +1 -1
  120. package/dist/src/redteam/commands/init.d.ts.map +1 -1
  121. package/dist/src/redteam/commands/init.js +8 -3
  122. package/dist/src/redteam/commands/init.js.map +1 -1
  123. package/dist/src/redteam/constants.d.ts +25 -2
  124. package/dist/src/redteam/constants.d.ts.map +1 -1
  125. package/dist/src/redteam/constants.js +335 -3
  126. package/dist/src/redteam/constants.js.map +1 -1
  127. package/dist/src/server/apiSchemas.d.ts +59 -0
  128. package/dist/src/server/apiSchemas.d.ts.map +1 -0
  129. package/dist/src/server/apiSchemas.js +37 -0
  130. package/dist/src/server/apiSchemas.js.map +1 -0
  131. package/dist/src/server/routes/eval.d.ts +2 -0
  132. package/dist/src/server/routes/eval.d.ts.map +1 -0
  133. package/dist/src/server/routes/eval.js +160 -0
  134. package/dist/src/server/routes/eval.js.map +1 -0
  135. package/dist/src/server/routes/providers.d.ts.map +1 -1
  136. package/dist/src/server/routes/providers.js.map +1 -1
  137. package/dist/src/server/routes/redteam.d.ts +2 -0
  138. package/dist/src/server/routes/redteam.d.ts.map +1 -0
  139. package/dist/src/server/routes/redteam.js +43 -0
  140. package/dist/src/server/routes/redteam.js.map +1 -0
  141. package/dist/src/server/routes/user.d.ts +2 -0
  142. package/dist/src/server/routes/user.d.ts.map +1 -0
  143. package/dist/src/server/routes/user.js +60 -0
  144. package/dist/src/server/routes/user.js.map +1 -0
  145. package/dist/src/server/server.d.ts.map +1 -1
  146. package/dist/src/server/server.js +25 -141
  147. package/dist/src/server/server.js.map +1 -1
  148. package/dist/src/share.d.ts.map +1 -1
  149. package/dist/src/share.js.map +1 -1
  150. package/dist/src/telemetry.d.ts +21 -6
  151. package/dist/src/telemetry.d.ts.map +1 -1
  152. package/dist/src/telemetry.js +28 -11
  153. package/dist/src/telemetry.js.map +1 -1
  154. package/dist/src/testCases.d.ts.map +1 -1
  155. package/dist/src/testCases.js +9 -0
  156. package/dist/src/testCases.js.map +1 -1
  157. package/dist/src/types/index.d.ts.map +1 -1
  158. package/dist/src/types/index.js +1 -0
  159. package/dist/src/types/index.js.map +1 -1
  160. package/dist/src/types/prompts.d.ts +1 -0
  161. package/dist/src/types/prompts.d.ts.map +1 -1
  162. package/dist/src/util/config/default.d.ts +1 -0
  163. package/dist/src/util/config/default.d.ts.map +1 -1
  164. package/dist/src/util/config/default.js +4 -0
  165. package/dist/src/util/config/default.js.map +1 -1
  166. package/dist/src/util/index.d.ts +0 -1
  167. package/dist/src/util/index.d.ts.map +1 -1
  168. package/dist/src/util/index.js +1 -10
  169. package/dist/src/util/index.js.map +1 -1
  170. package/dist/src/validators/redteam.d.ts +6 -3
  171. package/dist/src/validators/redteam.d.ts.map +1 -1
  172. package/dist/src/validators/redteam.js +15 -14
  173. package/dist/src/validators/redteam.js.map +1 -1
  174. package/dist/test/assertions.test.js +3 -4
  175. package/dist/test/assertions.test.js.map +1 -1
  176. package/dist/test/assertions.utils.test.js +55 -5
  177. package/dist/test/assertions.utils.test.js.map +1 -1
  178. package/dist/test/cache.test.js +10 -16
  179. package/dist/test/cache.test.js.map +1 -1
  180. package/dist/test/commands/init.test.js +14 -11
  181. package/dist/test/commands/init.test.js.map +1 -1
  182. package/dist/test/evaluator.test.js +0 -1
  183. package/dist/test/evaluator.test.js.map +1 -1
  184. package/dist/test/evaluatorHelpers.test.js +0 -1
  185. package/dist/test/evaluatorHelpers.test.js.map +1 -1
  186. package/dist/test/models/eval.test.js +30 -1
  187. package/dist/test/models/eval.test.js.map +1 -1
  188. package/dist/test/onboarding.test.js +1 -1
  189. package/dist/test/prompts.processors.javascript.test.js +54 -1
  190. package/dist/test/prompts.processors.javascript.test.js.map +1 -1
  191. package/dist/test/prompts.processors.python.test.js +15 -0
  192. package/dist/test/prompts.processors.python.test.js.map +1 -1
  193. package/dist/test/prompts.processors.python.utils.test.js +2 -0
  194. package/dist/test/prompts.processors.python.utils.test.js.map +1 -1
  195. package/dist/test/prompts.test.js +2 -0
  196. package/dist/test/prompts.test.js.map +1 -1
  197. package/dist/test/providers.bedrock.test.js +58 -6
  198. package/dist/test/providers.bedrock.test.js.map +1 -1
  199. package/dist/test/providers.http.test.js +127 -31
  200. package/dist/test/providers.http.test.js.map +1 -1
  201. package/dist/test/providers.palm.test.d.ts +2 -0
  202. package/dist/test/providers.palm.test.d.ts.map +1 -0
  203. package/dist/test/providers.palm.test.js +131 -0
  204. package/dist/test/providers.palm.test.js.map +1 -0
  205. package/dist/test/providers.test.js +165 -73
  206. package/dist/test/providers.test.js.map +1 -1
  207. package/dist/test/providers.togetherai.test.d.ts +2 -0
  208. package/dist/test/providers.togetherai.test.d.ts.map +1 -0
  209. package/dist/test/providers.togetherai.test.js +53 -0
  210. package/dist/test/providers.togetherai.test.js.map +1 -0
  211. package/dist/test/providers.vertex.test.js +102 -1
  212. package/dist/test/providers.vertex.test.js.map +1 -1
  213. package/dist/test/providers.watsonx.test.js +15 -14
  214. package/dist/test/providers.watsonx.test.js.map +1 -1
  215. package/dist/test/providers.xai.test.d.ts +2 -0
  216. package/dist/test/providers.xai.test.d.ts.map +1 -0
  217. package/dist/test/providers.xai.test.js +47 -0
  218. package/dist/test/providers.xai.test.js.map +1 -0
  219. package/dist/test/rateLimit.test.js +18 -28
  220. package/dist/test/rateLimit.test.js.map +1 -1
  221. package/dist/test/redteam/validators.test.js +1 -0
  222. package/dist/test/redteam/validators.test.js.map +1 -1
  223. package/dist/test/server/providers.test.js +13 -1
  224. package/dist/test/server/providers.test.js.map +1 -1
  225. package/dist/test/testCases.test.js +8 -1
  226. package/dist/test/testCases.test.js.map +1 -1
  227. package/dist/test/util.config.load.test.d.ts +2 -0
  228. package/dist/test/util.config.load.test.d.ts.map +1 -0
  229. package/dist/test/{util.config.load.test.ts.js → util.config.load.test.js} +1 -26
  230. package/dist/test/util.config.load.test.js.map +1 -0
  231. package/dist/tsconfig.tsbuildinfo +1 -1
  232. package/package.json +16 -19
  233. package/dist/src/app/assets/index-x0TdnK0A.js +0 -767
  234. package/dist/src/assertions.d.ts.map +0 -1
  235. package/dist/src/assertions.js.map +0 -1
  236. package/dist/src/models/provider.d.ts +0 -11
  237. package/dist/src/models/provider.d.ts.map +0 -1
  238. package/dist/src/models/provider.js +0 -52
  239. package/dist/src/models/provider.js.map +0 -1
  240. package/dist/test/util.config.load.test.ts.d.ts +0 -2
  241. package/dist/test/util.config.load.test.ts.d.ts.map +0 -1
  242. package/dist/test/util.config.load.test.ts.js.map +0 -1
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiSchemas = void 0;
4
+ const zod_1 = require("zod");
5
+ const EmailSchema = zod_1.z.string().email();
6
+ exports.ApiSchemas = {
7
+ User: {
8
+ Get: {
9
+ Response: zod_1.z.object({
10
+ email: EmailSchema.nullable(),
11
+ }),
12
+ },
13
+ Update: {
14
+ Request: zod_1.z.object({
15
+ email: EmailSchema,
16
+ }),
17
+ Response: zod_1.z.object({
18
+ success: zod_1.z.boolean(),
19
+ message: zod_1.z.string(),
20
+ }),
21
+ },
22
+ },
23
+ Eval: {
24
+ UpdateAuthor: {
25
+ Params: zod_1.z.object({
26
+ id: zod_1.z.string(),
27
+ }),
28
+ Request: zod_1.z.object({
29
+ author: zod_1.z.string().email(),
30
+ }),
31
+ Response: zod_1.z.object({
32
+ message: zod_1.z.string(),
33
+ }),
34
+ },
35
+ },
36
+ };
37
+ //# sourceMappingURL=apiSchemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiSchemas.js","sourceRoot":"","sources":["../../../src/server/apiSchemas.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;AAE1B,QAAA,UAAU,GAAG;IACxB,IAAI,EAAE;QACJ,GAAG,EAAE;YACH,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC;gBACjB,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE;aAC9B,CAAC;SACH;QACD,MAAM,EAAE;YACN,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;gBAChB,KAAK,EAAE,WAAW;aACnB,CAAC;YACF,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC;gBACjB,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;gBACpB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;aACpB,CAAC;SACH;KACF;IACD,IAAI,EAAE;QACJ,YAAY,EAAE;YACZ,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;gBACf,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;aACf,CAAC;YACF,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;gBAChB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;aAC3B,CAAC;YACF,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC;gBACjB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;aACpB,CAAC;SACH;KACF;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const evalRouter: import("express-serve-static-core").Router;
2
+ //# sourceMappingURL=eval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../../../src/server/routes/eval.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,UAAU,4CAAW,CAAC"}
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.evalRouter = void 0;
7
+ const express_1 = require("express");
8
+ const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
9
+ const uuid_1 = require("uuid");
10
+ const zod_1 = require("zod");
11
+ const zod_validation_error_1 = require("zod-validation-error");
12
+ const accounts_1 = require("../../globalConfig/accounts");
13
+ const index_1 = __importDefault(require("../../index"));
14
+ const logger_1 = __importDefault(require("../../logger"));
15
+ const eval_1 = __importDefault(require("../../models/eval"));
16
+ const evalResult_1 = __importDefault(require("../../models/evalResult"));
17
+ const util_1 = require("../../util");
18
+ const apiSchemas_1 = require("../apiSchemas");
19
+ exports.evalRouter = (0, express_1.Router)();
20
+ // Running jobs
21
+ const evalJobs = new Map();
22
+ exports.evalRouter.post('/job', (req, res) => {
23
+ const { evaluateOptions, ...testSuite } = req.body;
24
+ const id = (0, uuid_1.v4)();
25
+ evalJobs.set(id, { status: 'in-progress', progress: 0, total: 0, result: null });
26
+ index_1.default
27
+ .evaluate(Object.assign({}, testSuite, {
28
+ writeLatestResults: true,
29
+ sharing: testSuite.sharing ?? true,
30
+ }), Object.assign({}, evaluateOptions, {
31
+ eventSource: 'web',
32
+ progressCallback: (progress, total) => {
33
+ const job = evalJobs.get(id);
34
+ (0, tiny_invariant_1.default)(job, 'Job not found');
35
+ job.progress = progress;
36
+ job.total = total;
37
+ console.log(`[${id}] ${progress}/${total}`);
38
+ },
39
+ }))
40
+ .then(async (result) => {
41
+ const job = evalJobs.get(id);
42
+ (0, tiny_invariant_1.default)(job, 'Job not found');
43
+ job.status = 'complete';
44
+ job.result = await result.toEvaluateSummary();
45
+ console.log(`[${id}] Complete`);
46
+ });
47
+ res.json({ id });
48
+ });
49
+ exports.evalRouter.get('/job/:id', (req, res) => {
50
+ const id = req.params.id;
51
+ const job = evalJobs.get(id);
52
+ if (!job) {
53
+ res.status(404).json({ error: 'Job not found' });
54
+ return;
55
+ }
56
+ if (job.status === 'complete') {
57
+ res.json({ status: 'complete', result: job.result });
58
+ }
59
+ else {
60
+ res.json({ status: 'in-progress', progress: job.progress, total: job.total });
61
+ }
62
+ });
63
+ exports.evalRouter.patch('/:id', (req, res) => {
64
+ const id = req.params.id;
65
+ const { table, config } = req.body;
66
+ if (!id) {
67
+ res.status(400).json({ error: 'Missing id' });
68
+ return;
69
+ }
70
+ try {
71
+ (0, util_1.updateResult)(id, config, table);
72
+ res.json({ message: 'Eval updated successfully' });
73
+ }
74
+ catch {
75
+ res.status(500).json({ error: 'Failed to update eval table' });
76
+ }
77
+ });
78
+ exports.evalRouter.patch('/:id/author', async (req, res) => {
79
+ try {
80
+ const { id } = apiSchemas_1.ApiSchemas.Eval.UpdateAuthor.Params.parse(req.params);
81
+ const { author } = apiSchemas_1.ApiSchemas.Eval.UpdateAuthor.Request.parse(req.body);
82
+ const eval_ = await eval_1.default.findById(id);
83
+ if (!eval_) {
84
+ res.status(404).json({ error: 'Eval not found' });
85
+ return;
86
+ }
87
+ if (!author) {
88
+ res.status(400).json({ error: 'No author provided' });
89
+ return;
90
+ }
91
+ eval_.author = author;
92
+ await eval_.save();
93
+ // NOTE: Side effect. If user email is not set, set it to the author's email
94
+ if (!(0, accounts_1.getUserEmail)()) {
95
+ (0, accounts_1.setUserEmail)(author);
96
+ }
97
+ res.json(apiSchemas_1.ApiSchemas.Eval.UpdateAuthor.Response.parse({
98
+ message: 'Author updated successfully',
99
+ }));
100
+ }
101
+ catch (error) {
102
+ if (error instanceof zod_1.z.ZodError) {
103
+ const validationError = (0, zod_validation_error_1.fromZodError)(error);
104
+ res.status(400).json({ error: validationError.message });
105
+ }
106
+ else {
107
+ console.error('Failed to update eval author:', error);
108
+ res.status(500).json({ error: 'Failed to update eval author' });
109
+ }
110
+ }
111
+ });
112
+ exports.evalRouter.post('/:evalId/results/:id/rating', async (req, res) => {
113
+ const { id } = req.params;
114
+ const gradingResult = req.body;
115
+ const result = await evalResult_1.default.findById(id);
116
+ (0, tiny_invariant_1.default)(result, 'Result not found');
117
+ result.gradingResult = gradingResult;
118
+ result.success = gradingResult.pass;
119
+ result.score = gradingResult.score;
120
+ await result.save();
121
+ res.json(result);
122
+ });
123
+ exports.evalRouter.post('/', async (req, res) => {
124
+ const body = req.body;
125
+ try {
126
+ if (body.data) {
127
+ logger_1.default.debug('[POST /api/eval] Saving eval results (v3) to database');
128
+ const { data: payload } = req.body;
129
+ const id = await (0, util_1.writeResultsToDatabase)(payload.results, payload.config);
130
+ res.json({ id });
131
+ }
132
+ else {
133
+ const incEval = body;
134
+ logger_1.default.debug('[POST /api/eval] Saving eval results (v4) to database');
135
+ const eval_ = await eval_1.default.create(incEval.config, incEval.prompts || [], {
136
+ author: incEval.author,
137
+ createdAt: new Date(incEval.createdAt),
138
+ results: incEval.results,
139
+ });
140
+ logger_1.default.debug(`[POST /api/eval] Eval created with ID: ${eval_.id}`);
141
+ logger_1.default.debug(`[POST /api/eval] Saved ${incEval.results.length} results to eval ${eval_.id}`);
142
+ res.json({ id: eval_.id });
143
+ }
144
+ }
145
+ catch (error) {
146
+ console.error('Failed to write eval to database', error, body);
147
+ res.status(500).json({ error: 'Failed to write eval to database' });
148
+ }
149
+ });
150
+ exports.evalRouter.delete('/:id', async (req, res) => {
151
+ const { id } = req.params;
152
+ try {
153
+ await (0, util_1.deleteEval)(id);
154
+ res.json({ message: 'Eval deleted successfully' });
155
+ }
156
+ catch {
157
+ res.status(500).json({ error: 'Failed to delete eval' });
158
+ }
159
+ });
160
+ //# sourceMappingURL=eval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../../../src/server/routes/eval.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../../src/server/routes/providers.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,4CAAW,CAAC"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../../src/server/routes/providers.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,eAAe,4CAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../../src/server/routes/providers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../../src/server/routes/providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const redteamRouter: import("express-serve-static-core").Router;
2
+ //# sourceMappingURL=redteam.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redteam.d.ts","sourceRoot":"","sources":["../../../../src/server/routes/redteam.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,4CAAW,CAAC"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.redteamRouter = void 0;
7
+ const express_1 = require("express");
8
+ const logger_1 = __importDefault(require("../../logger"));
9
+ exports.redteamRouter = (0, express_1.Router)();
10
+ const CLOUD_FUNCTION_URL = process.env.PROMPTFOO_REMOTE_GENERATION_URL || 'https://api.promptfoo.dev/v1/generate';
11
+ exports.redteamRouter.post('/:task', async (req, res) => {
12
+ const { task } = req.params;
13
+ logger_1.default.debug(`Received ${task} task request:`, {
14
+ method: req.method,
15
+ url: req.url,
16
+ body: req.body,
17
+ });
18
+ try {
19
+ logger_1.default.debug(`Sending request to cloud function: ${CLOUD_FUNCTION_URL}`);
20
+ const response = await fetch(CLOUD_FUNCTION_URL, {
21
+ method: 'POST',
22
+ headers: {
23
+ 'Content-Type': 'application/json',
24
+ },
25
+ body: JSON.stringify({
26
+ task,
27
+ ...req.body,
28
+ }),
29
+ });
30
+ if (!response.ok) {
31
+ logger_1.default.error(`Cloud function responded with status ${response.status}`);
32
+ throw new Error(`Cloud function responded with status ${response.status}`);
33
+ }
34
+ const data = await response.json();
35
+ logger_1.default.debug(`Received response from cloud function:`, data);
36
+ res.json(data);
37
+ }
38
+ catch (error) {
39
+ logger_1.default.error(`Error in ${task} task:`, error);
40
+ res.status(500).json({ error: `Failed to process ${task} task` });
41
+ }
42
+ });
43
+ //# sourceMappingURL=redteam.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redteam.js","sourceRoot":"","sources":["../../../../src/server/routes/redteam.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAiC;AAEjC,0DAAkC;AAErB,QAAA,aAAa,GAAG,IAAA,gBAAM,GAAE,CAAC;AAEtC,MAAM,kBAAkB,GACtB,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,uCAAuC,CAAC;AAEzF,qBAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;IAChF,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;IAE5B,gBAAM,CAAC,KAAK,CAAC,YAAY,IAAI,gBAAgB,EAAE;QAC7C,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,IAAI,EAAE,GAAG,CAAC,IAAI;KACf,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,gBAAM,CAAC,KAAK,CAAC,sCAAsC,kBAAkB,EAAE,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,kBAAkB,EAAE;YAC/C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,IAAI;gBACJ,GAAG,GAAG,CAAC,IAAI;aACZ,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,gBAAM,CAAC,KAAK,CAAC,wCAAwC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,gBAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,IAAI,CAAC,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAM,CAAC,KAAK,CAAC,YAAY,IAAI,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,IAAI,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const userRouter: import("express-serve-static-core").Router;
2
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/server/routes/user.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,UAAU,4CAAW,CAAC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.userRouter = void 0;
7
+ const express_1 = require("express");
8
+ const zod_1 = require("zod");
9
+ const zod_validation_error_1 = require("zod-validation-error");
10
+ const envars_1 = require("../../envars");
11
+ const accounts_1 = require("../../globalConfig/accounts");
12
+ const logger_1 = __importDefault(require("../../logger"));
13
+ const telemetry_1 = __importDefault(require("../../telemetry"));
14
+ const apiSchemas_1 = require("../apiSchemas");
15
+ exports.userRouter = (0, express_1.Router)();
16
+ exports.userRouter.get('/email', async (req, res) => {
17
+ try {
18
+ const email = (0, accounts_1.getUserEmail)();
19
+ if (email) {
20
+ res.json(apiSchemas_1.ApiSchemas.User.Get.Response.parse({ email }));
21
+ }
22
+ else {
23
+ res.status(404).json({ error: 'User not found' });
24
+ }
25
+ }
26
+ catch (error) {
27
+ if (error instanceof zod_1.z.ZodError) {
28
+ logger_1.default.error(`Error getting email: ${(0, zod_validation_error_1.fromError)(error)}`);
29
+ }
30
+ else {
31
+ logger_1.default.error(`Error getting email: ${error}`);
32
+ }
33
+ res.status(500).json({ error: 'Failed to get email' });
34
+ }
35
+ });
36
+ exports.userRouter.post('/email', async (req, res) => {
37
+ try {
38
+ const { email } = apiSchemas_1.ApiSchemas.User.Update.Request.parse(req.body);
39
+ (0, accounts_1.setUserEmail)(email);
40
+ res.json(apiSchemas_1.ApiSchemas.User.Update.Response.parse({
41
+ success: true,
42
+ message: `Email updated`,
43
+ }));
44
+ await telemetry_1.default.recordAndSend('webui_api', {
45
+ event: 'email_set',
46
+ email,
47
+ selfHosted: (0, envars_1.getEnvBool)('PROMPTFOO_SELF_HOSTED'),
48
+ });
49
+ }
50
+ catch (error) {
51
+ logger_1.default.error(`Error setting email: ${error}`);
52
+ if (error instanceof zod_1.z.ZodError) {
53
+ res.status(400).json({ error: (0, zod_validation_error_1.fromError)(error).toString() });
54
+ }
55
+ else {
56
+ res.status(500).json({ error: 'Failed to set email' });
57
+ }
58
+ }
59
+ });
60
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../src/server/routes/user.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAiC;AAEjC,6BAAwB;AACxB,+DAAiD;AACjD,yCAA0C;AAC1C,0DAAyE;AACzE,0DAAkC;AAClC,gEAAwC;AACxC,8CAA2C;AAE9B,QAAA,UAAU,GAAG,IAAA,gBAAM,GAAE,CAAC;AAEnC,kBAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;IAC5E,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAA,uBAAY,GAAE,CAAC;QAC7B,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,CAAC,IAAI,CAAC,uBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,OAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,gBAAM,CAAC,KAAK,CAAC,wBAAwB,IAAA,gCAAS,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,gBAAM,CAAC,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,kBAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;IAC7E,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,GAAG,uBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjE,IAAA,uBAAY,EAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,IAAI,CACN,uBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YACpC,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,eAAe;SACzB,CAAC,CACH,CAAC;QACF,MAAM,mBAAS,CAAC,aAAa,CAAC,WAAW,EAAE;YACzC,KAAK,EAAE,WAAW;YAClB,KAAK;YACL,UAAU,EAAE,IAAA,mBAAU,EAAC,uBAAuB,CAAC;SAChD,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAM,CAAC,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;QAC9C,IAAI,KAAK,YAAY,OAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAA,gCAAS,EAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"AAsDA,oBAAY,eAAe;IACzB,GAAG,IAAI;IACP,IAAI,IAAI;IACR,IAAI,IAAI;IACR,cAAc,IAAI;CACnB;AAED,wBAAgB,SAAS,gDA0QxB;AAED,wBAAgB,WAAW,CACzB,IAAI,SAAQ,EACZ,eAAe,kBAAsB,EACrC,iBAAiB,CAAC,EAAE,MAAM,QA2E3B"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"AA0CA,oBAAY,eAAe;IACzB,GAAG,IAAI;IACP,IAAI,IAAI;IACR,IAAI,IAAI;IACR,cAAc,IAAI;CACnB;AAED,wBAAgB,SAAS,gDAgIxB;AAED,wBAAgB,WAAW,CACzB,IAAI,SAAQ,EACZ,eAAe,kBAAsB,EACrC,iBAAiB,CAAC,EAAE,MAAM,QA2E3B"}
@@ -17,20 +17,22 @@ const node_readline_1 = __importDefault(require("node:readline"));
17
17
  const opener_1 = __importDefault(require("opener"));
18
18
  const socket_io_1 = require("socket.io");
19
19
  const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
20
- const uuid_1 = require("uuid");
20
+ const zod_validation_error_1 = require("zod-validation-error");
21
21
  const share_1 = require("../commands/share");
22
22
  const constants_1 = require("../constants");
23
23
  const database_1 = require("../database");
24
24
  const esm_1 = require("../esm");
25
- const index_1 = __importDefault(require("../index"));
26
25
  const logger_1 = __importDefault(require("../logger"));
26
+ const migrate_1 = require("../migrate");
27
27
  const eval_1 = __importDefault(require("../models/eval"));
28
- const evalResult_1 = __importDefault(require("../models/evalResult"));
28
+ const telemetry_1 = __importDefault(require("../telemetry"));
29
+ const telemetry_2 = require("../telemetry");
29
30
  const testCases_1 = require("../testCases");
30
31
  const util_1 = require("../util");
32
+ const eval_2 = require("./routes/eval");
31
33
  const providers_1 = require("./routes/providers");
32
- // Running jobs
33
- const evalJobs = new Map();
34
+ const redteam_1 = require("./routes/redteam");
35
+ const user_1 = require("./routes/user");
34
36
  // Prompts cache
35
37
  let allPrompts = null;
36
38
  var BrowserBehavior;
@@ -62,111 +64,6 @@ function createApp() {
62
64
  }),
63
65
  });
64
66
  });
65
- app.post('/api/eval/job', (req, res) => {
66
- const { evaluateOptions, ...testSuite } = req.body;
67
- const id = (0, uuid_1.v4)();
68
- evalJobs.set(id, { status: 'in-progress', progress: 0, total: 0, result: null });
69
- index_1.default
70
- .evaluate(Object.assign({}, testSuite, {
71
- writeLatestResults: true,
72
- sharing: testSuite.sharing ?? true,
73
- }), Object.assign({}, evaluateOptions, {
74
- eventSource: 'web',
75
- progressCallback: (progress, total) => {
76
- const job = evalJobs.get(id);
77
- (0, tiny_invariant_1.default)(job, 'Job not found');
78
- job.progress = progress;
79
- job.total = total;
80
- console.log(`[${id}] ${progress}/${total}`);
81
- },
82
- }))
83
- .then(async (result) => {
84
- const job = evalJobs.get(id);
85
- (0, tiny_invariant_1.default)(job, 'Job not found');
86
- job.status = 'complete';
87
- job.result = await result.toEvaluateSummary();
88
- console.log(`[${id}] Complete`);
89
- });
90
- res.json({ id });
91
- });
92
- app.get('/api/eval/job/:id', (req, res) => {
93
- const id = req.params.id;
94
- const job = evalJobs.get(id);
95
- if (!job) {
96
- res.status(404).json({ error: 'Job not found' });
97
- return;
98
- }
99
- if (job.status === 'complete') {
100
- res.json({ status: 'complete', result: job.result });
101
- }
102
- else {
103
- res.json({ status: 'in-progress', progress: job.progress, total: job.total });
104
- }
105
- });
106
- app.patch('/api/eval/:id', (req, res) => {
107
- const id = req.params.id;
108
- const { table, config } = req.body;
109
- if (!id) {
110
- res.status(400).json({ error: 'Missing id' });
111
- return;
112
- }
113
- try {
114
- (0, util_1.updateResult)(id, config, table);
115
- res.json({ message: 'Eval updated successfully' });
116
- }
117
- catch {
118
- res.status(500).json({ error: 'Failed to update eval table' });
119
- }
120
- });
121
- // @ts-ignore
122
- app.post('/api/eval/:evalId/results/:id/rating', async (req, res) => {
123
- const { id } = req.params;
124
- const gradingResult = req.body;
125
- const result = await evalResult_1.default.findById(id);
126
- (0, tiny_invariant_1.default)(result, 'Result not found');
127
- result.gradingResult = gradingResult;
128
- result.success = gradingResult.pass;
129
- result.score = gradingResult.score;
130
- await result.save();
131
- return res.json(result);
132
- });
133
- app.post('/api/eval', async (req, res) => {
134
- const body = req.body;
135
- try {
136
- if (body.data) {
137
- logger_1.default.debug('[POST /api/eval] Saving eval results (v3) to database');
138
- const { data: payload } = req.body;
139
- const id = await (0, util_1.writeResultsToDatabase)(payload.results, payload.config);
140
- res.json({ id });
141
- }
142
- else {
143
- const incEval = body;
144
- logger_1.default.debug('[POST /api/eval] Saving eval results (v4) to database');
145
- const eval_ = await eval_1.default.create(incEval.config, incEval.prompts || [], {
146
- author: incEval.author,
147
- createdAt: new Date(incEval.createdAt),
148
- results: incEval.results,
149
- });
150
- logger_1.default.debug(`[POST /api/eval] Eval created with ID: ${eval_.id}`);
151
- logger_1.default.debug(`[POST /api/eval] Saved ${incEval.results.length} results to eval ${eval_.id}`);
152
- res.json({ id: eval_.id });
153
- }
154
- }
155
- catch (error) {
156
- console.error('Failed to write eval to database', error, body);
157
- res.status(500).json({ error: 'Failed to write eval to database' });
158
- }
159
- });
160
- app.delete('/api/eval/:id', async (req, res) => {
161
- const { id } = req.params;
162
- try {
163
- await (0, util_1.deleteEval)(id);
164
- res.json({ message: 'Eval deleted successfully' });
165
- }
166
- catch {
167
- res.status(500).json({ error: 'Failed to delete eval' });
168
- }
169
- });
170
67
  app.get('/api/results/:id', async (req, res) => {
171
68
  const { id } = req.params;
172
69
  const file = await (0, util_1.readResult)(id);
@@ -223,46 +120,33 @@ function createApp() {
223
120
  const results = await (0, testCases_1.synthesizeFromTestSuite)(testSuite, {});
224
121
  res.json({ results });
225
122
  });
226
- app.post('/api/redteam/:task', async (req, res) => {
227
- const { task } = req.params;
228
- const CLOUD_FUNCTION_URL = process.env.PROMPTFOO_REMOTE_GENERATION_URL || 'https://api.promptfoo.dev/v1/generate';
229
- logger_1.default.debug(`Received ${task} task request:`, {
230
- method: req.method,
231
- url: req.url,
232
- body: req.body,
233
- // headers: req.headers,
234
- });
123
+ app.use('/api/eval', eval_2.evalRouter);
124
+ app.use('/api/providers', providers_1.providersRouter);
125
+ app.use('/api/redteam', redteam_1.redteamRouter);
126
+ app.use('/api/user', user_1.userRouter);
127
+ app.post('/api/telemetry', async (req, res) => {
235
128
  try {
236
- logger_1.default.debug(`Sending request to cloud function: ${CLOUD_FUNCTION_URL}`);
237
- const response = await fetch(CLOUD_FUNCTION_URL, {
238
- method: 'POST',
239
- headers: {
240
- 'Content-Type': 'application/json',
241
- },
242
- body: JSON.stringify({
243
- task,
244
- ...req.body,
245
- }),
246
- });
247
- if (!response.ok) {
248
- logger_1.default.error(`Cloud function responded with status ${response.status}`);
249
- throw new Error(`Cloud function responded with status ${response.status}`);
129
+ const result = telemetry_2.TelemetryEventSchema.safeParse(req.body);
130
+ if (!result.success) {
131
+ res
132
+ .status(400)
133
+ .json({ error: 'Invalid request body', details: (0, zod_validation_error_1.fromError)(result.error).toString() });
134
+ return;
250
135
  }
251
- const data = await response.json();
252
- logger_1.default.debug(`Received response from cloud function:`, data);
253
- res.json(data);
136
+ const { event, properties } = result.data;
137
+ await telemetry_1.default.recordAndSend(event, properties);
138
+ res.status(200).json({ success: true });
254
139
  }
255
140
  catch (error) {
256
- logger_1.default.error(`Error in ${task} task:`, error);
257
- res.status(500).json({ error: `Failed to process ${task} task` });
141
+ console.error('Error processing telemetry request:', error);
142
+ res.status(500).json({ error: 'Failed to process telemetry request' });
258
143
  }
259
144
  });
260
- app.use('/api/providers', providers_1.providersRouter);
261
145
  // Must come after the above routes (particularly /api/config) so it doesn't
262
146
  // overwrite dynamic routes.
263
147
  app.use(express_1.default.static(staticDir));
264
148
  // Handle client routing, return all requests to the app
265
- app.get('*', (_req, res) => {
149
+ app.get('*', (req, res) => {
266
150
  res.sendFile(node_path_1.default.join(staticDir, 'index.html'));
267
151
  });
268
152
  return app;
@@ -275,7 +159,7 @@ function startServer(port = 15500, browserBehavior = BrowserBehavior.ASK, filter
275
159
  origin: '*',
276
160
  },
277
161
  });
278
- (0, util_1.migrateResultsFromFileSystemToDatabase)().then(() => {
162
+ (0, migrate_1.runDbMigrations)().then(() => {
279
163
  logger_1.default.info('Migrated results from file system to database');
280
164
  });
281
165
  const watchFilePath = (0, database_1.getDbSignalPath)();
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":";;;;;;AAiDA,8BAgIC;AAED,kCA8EC;AAjQD,8DAAsC;AACtC,gDAAwB;AACxB,wDAAgC;AAEhC,sDAA8B;AAE9B,4CAAoB;AACpB,0DAA6B;AAC7B,0DAA6B;AAC7B,kEAAqC;AACrC,oDAA4B;AAC5B,yCAAqD;AACrD,oEAAuC;AACvC,+DAAiD;AACjD,6CAAoD;AACpD,4CAAuC;AACvC,0CAA8C;AAC9C,gCAAsC;AAEtC,uDAA+B;AAC/B,wCAA6C;AAC7C,0DAAkC;AAClC,6DAAqC;AACrC,4CAAoD;AACpD,4CAAuD;AACvD,kCAQiB;AACjB,wCAA2C;AAC3C,kDAAqD;AACrD,8CAAiD;AACjD,wCAA2C;AAE3C,gBAAgB;AAChB,IAAI,UAAU,GAAgC,IAAI,CAAC;AAEnD,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,mDAAO,CAAA;IACP,qDAAQ,CAAA;IACR,qDAAQ,CAAA;IACR,yEAAkB,CAAA;AACpB,CAAC,EALW,eAAe,+BAAf,eAAe,QAK1B;AAED,SAAgB,SAAS;IACvB,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAA,kBAAY,GAAE,EAAE,KAAK,CAAC,CAAC;IAEnD,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,GAAE,CAAC,CAAC;IAChB,GAAG,CAAC,GAAG,CAAC,IAAA,qBAAW,GAAE,CAAC,CAAC;IACvB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1C,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChE,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAO,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;QAC3E,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,SAA+B,CAAC;QAC5D,MAAM,eAAe,GAAG,MAAM,IAAA,0BAAmB,EAC/C,SAAS,CAAC,WAAW,EACrB,SAAS,CAAC,YAAY,EACtB,SAAS,CACV,CAAC;QACF,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjC,OAAO;oBACL,GAAG,IAAI;oBACP,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;iBAC/E,CAAC;YACJ,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;QAC/E,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,IAAA,iBAAU,EAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;QAC3E,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,UAAU,GAAG,MAAM,IAAA,iBAAU,GAAE,CAAC;QAClC,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;QAC5E,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;QACrD,MAAM,GAAG,GACP,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAiB,EAAE,KAAK,EAAE,QAAkB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,MAAM,OAAO,GAAG,MAAM,IAAA,yBAAkB,EAAC;YACvC,GAAG;YACH,WAAW,EAAE,WAAiC;SAC/C,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;QACvF,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,IAAA,iCAA0B,EAAC,UAAU,CAAC,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;QAC5E,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,IAAA,mBAAY,GAAE,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,mFAAmF;IACnF,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;QAClF,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QAExB,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAU,EAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,cAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtC,IAAA,wBAAS,EAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,IAAA,uBAAe,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/C,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;QACrF,MAAM,SAAS,GAAc;YAC3B,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAmB;YACrC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAmB;YACnC,SAAS,EAAE,EAAE;SACd,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,IAAA,mCAAuB,EAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAU,CAAC,CAAC;IACjC,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,2BAAe,CAAC,CAAC;IAC3C,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,uBAAa,CAAC,CAAC;IACvC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAU,CAAC,CAAC;IAEjC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;QAC9E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,gCAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAExD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,GAAG;qBACA,MAAM,CAAC,GAAG,CAAC;qBACX,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,IAAA,gCAAS,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACxF,OAAO;YACT,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;YAC1C,MAAM,mBAAS,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACjD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;YAC5D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qCAAqC,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,4BAA4B;IAC5B,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAEnC,wDAAwD;IACxD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAY,EAAE,GAAa,EAAQ,EAAE;QACjD,GAAG,CAAC,QAAQ,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,WAAW,CACzB,IAAI,GAAG,KAAK,EACZ,eAAe,GAAG,eAAe,CAAC,GAAG,EACrC,iBAA0B;IAE1B,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IAExB,MAAM,UAAU,GAAG,mBAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,IAAI,kBAAc,CAAC,UAAU,EAAE;QACxC,IAAI,EAAE;YACJ,MAAM,EAAE,GAAG;SACZ;KACF,CAAC,CAAC;IAEH,IAAA,yBAAe,GAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QAC1B,gBAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAA,0BAAe,GAAE,CAAC;IACxC,MAAM,OAAO,GAAG,IAAA,kBAAQ,EAAC,KAAK,EAAE,IAAW,EAAE,IAAW,EAAE,EAAE;QAC1D,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAA,oBAAa,EAAC,iBAAiB,CAAC,CAAC,CAAC;YAC1D,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,GAAG,CAAC,CAAC;IACR,YAAE,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAErC,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAA,oBAAa,EAAC,iBAAiB,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,UAAU;SACP,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACjB,MAAM,GAAG,GAAG,oBAAoB,IAAI,EAAE,CAAC;QACvC,gBAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,gCAAgC,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,IAAI,CAAC;gBACH,gBAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBAC/C,IAAI,eAAe,KAAK,eAAe,CAAC,cAAc,EAAE,CAAC;oBACvD,MAAM,IAAA,gBAAM,EAAC,GAAG,GAAG,SAAS,CAAC,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAA,gBAAM,EAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,gBAAM,CAAC,KAAK,CAAC,2BAA2B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC,CAAC;QAEF,IACE,eAAe,KAAK,eAAe,CAAC,IAAI;YACxC,eAAe,KAAK,eAAe,CAAC,cAAc,EAClD,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,IAAI,eAAe,KAAK,eAAe,CAAC,GAAG,EAAE,CAAC;YACnD,MAAM,EAAE,GAAG,uBAAQ,CAAC,eAAe,CAAC;gBAClC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YACH,EAAE,CAAC,QAAQ,CAAC,8BAA8B,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC3D,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzC,OAAO,EAAE,CAAC;gBACZ,CAAC;gBACD,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;SACD,EAAE,CAAC,OAAO,EAAE,CAAC,KAA4B,EAAE,EAAE;QAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,gBAAM,CAAC,KAAK,CACV,kCAAkC,IAAI,kEAAkE,CACzG,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,gBAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}