promptfoo 0.11.0 → 0.12.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 (141) hide show
  1. package/dist/package.json +87 -0
  2. package/dist/src/__mocks__/esm.d.ts.map +1 -0
  3. package/dist/src/__mocks__/esm.js.map +1 -0
  4. package/dist/src/assertions.d.ts.map +1 -0
  5. package/dist/{assertions.js → src/assertions.js} +19 -20
  6. package/dist/src/assertions.js.map +1 -0
  7. package/dist/src/cache.d.ts.map +1 -0
  8. package/dist/src/cache.js.map +1 -0
  9. package/dist/src/esm.d.ts.map +1 -0
  10. package/dist/src/esm.js.map +1 -0
  11. package/dist/src/evaluator.d.ts.map +1 -0
  12. package/dist/{evaluator.js → src/evaluator.js} +2 -0
  13. package/dist/src/evaluator.js.map +1 -0
  14. package/dist/src/index.d.ts.map +1 -0
  15. package/dist/{index.js → src/index.js} +10 -7
  16. package/dist/src/index.js.map +1 -0
  17. package/dist/src/logger.d.ts.map +1 -0
  18. package/dist/src/logger.js.map +1 -0
  19. package/dist/src/main.d.ts.map +1 -0
  20. package/dist/{main.js → src/main.js} +25 -7
  21. package/dist/src/main.js.map +1 -0
  22. package/dist/src/onboarding.d.ts.map +1 -0
  23. package/dist/src/onboarding.js.map +1 -0
  24. package/dist/src/prompts.d.ts.map +1 -0
  25. package/dist/src/prompts.js.map +1 -0
  26. package/dist/src/providers/localai.d.ts.map +1 -0
  27. package/dist/src/providers/localai.js.map +1 -0
  28. package/dist/src/providers/openai.d.ts.map +1 -0
  29. package/dist/src/providers/openai.js.map +1 -0
  30. package/dist/src/providers/shared.d.ts.map +1 -0
  31. package/dist/src/providers/shared.js.map +1 -0
  32. package/dist/src/providers.d.ts.map +1 -0
  33. package/dist/src/providers.js.map +1 -0
  34. package/dist/src/suggestions.d.ts.map +1 -0
  35. package/dist/src/suggestions.js.map +1 -0
  36. package/dist/src/telemetry.d.ts +10 -0
  37. package/dist/src/telemetry.d.ts.map +1 -0
  38. package/dist/src/telemetry.js +48 -0
  39. package/dist/src/telemetry.js.map +1 -0
  40. package/dist/src/types.d.ts.map +1 -0
  41. package/dist/src/types.js.map +1 -0
  42. package/dist/src/updates.d.ts +3 -0
  43. package/dist/src/updates.d.ts.map +1 -0
  44. package/dist/src/updates.js +36 -0
  45. package/dist/src/updates.js.map +1 -0
  46. package/dist/{util.d.ts → src/util.d.ts} +1 -1
  47. package/dist/src/util.d.ts.map +1 -0
  48. package/dist/{util.js → src/util.js} +6 -2
  49. package/dist/src/util.js.map +1 -0
  50. package/dist/src/web/client/assets/index-eb6d3769.js +199 -0
  51. package/dist/src/web/client/assets/js-yaml-8bbf9398.js +32 -0
  52. package/dist/{web → src/web}/client/index.html +1 -1
  53. package/dist/src/web/server.d.ts.map +1 -0
  54. package/dist/{web → src/web}/server.js +3 -4
  55. package/dist/src/web/server.js.map +1 -0
  56. package/package.json +11 -9
  57. package/src/assertions.ts +18 -23
  58. package/src/evaluator.ts +4 -1
  59. package/src/index.ts +7 -4
  60. package/src/main.ts +32 -7
  61. package/src/telemetry.ts +57 -0
  62. package/src/updates.ts +37 -0
  63. package/src/util.ts +22 -3
  64. package/src/web/client/package-lock.json +3 -6
  65. package/src/web/client/package.json +1 -0
  66. package/src/web/client/src/App.tsx +32 -12
  67. package/src/web/client/src/ConfigModal.tsx +81 -0
  68. package/src/web/client/src/ResultsView.tsx +73 -2
  69. package/src/web/client/src/ShareModal.tsx +70 -0
  70. package/src/web/client/src/store.ts +6 -1
  71. package/src/web/client/src/types.ts +2 -0
  72. package/src/web/server.ts +3 -7
  73. package/dist/__mocks__/esm.d.ts.map +0 -1
  74. package/dist/__mocks__/esm.js.map +0 -1
  75. package/dist/assertions.d.ts.map +0 -1
  76. package/dist/assertions.js.map +0 -1
  77. package/dist/cache.d.ts.map +0 -1
  78. package/dist/cache.js.map +0 -1
  79. package/dist/esm.d.ts.map +0 -1
  80. package/dist/esm.js.map +0 -1
  81. package/dist/evaluator.d.ts.map +0 -1
  82. package/dist/evaluator.js.map +0 -1
  83. package/dist/index.d.ts.map +0 -1
  84. package/dist/index.js.map +0 -1
  85. package/dist/logger.d.ts.map +0 -1
  86. package/dist/logger.js.map +0 -1
  87. package/dist/main.d.ts.map +0 -1
  88. package/dist/main.js.map +0 -1
  89. package/dist/onboarding.d.ts.map +0 -1
  90. package/dist/onboarding.js.map +0 -1
  91. package/dist/prompts.d.ts.map +0 -1
  92. package/dist/prompts.js.map +0 -1
  93. package/dist/providers/localai.d.ts.map +0 -1
  94. package/dist/providers/localai.js.map +0 -1
  95. package/dist/providers/openai.d.ts.map +0 -1
  96. package/dist/providers/openai.js.map +0 -1
  97. package/dist/providers/shared.d.ts.map +0 -1
  98. package/dist/providers/shared.js.map +0 -1
  99. package/dist/providers.d.ts.map +0 -1
  100. package/dist/providers.js.map +0 -1
  101. package/dist/suggestions.d.ts.map +0 -1
  102. package/dist/suggestions.js.map +0 -1
  103. package/dist/types.d.ts.map +0 -1
  104. package/dist/types.js.map +0 -1
  105. package/dist/util.d.ts.map +0 -1
  106. package/dist/util.js.map +0 -1
  107. package/dist/web/client/assets/index-15dfcd18.js +0 -172
  108. package/dist/web/server.d.ts.map +0 -1
  109. package/dist/web/server.js.map +0 -1
  110. /package/dist/{__mocks__ → src/__mocks__}/esm.d.ts +0 -0
  111. /package/dist/{__mocks__ → src/__mocks__}/esm.js +0 -0
  112. /package/dist/{assertions.d.ts → src/assertions.d.ts} +0 -0
  113. /package/dist/{cache.d.ts → src/cache.d.ts} +0 -0
  114. /package/dist/{cache.js → src/cache.js} +0 -0
  115. /package/dist/{esm.d.ts → src/esm.d.ts} +0 -0
  116. /package/dist/{esm.js → src/esm.js} +0 -0
  117. /package/dist/{evaluator.d.ts → src/evaluator.d.ts} +0 -0
  118. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  119. /package/dist/{logger.d.ts → src/logger.d.ts} +0 -0
  120. /package/dist/{logger.js → src/logger.js} +0 -0
  121. /package/dist/{main.d.ts → src/main.d.ts} +0 -0
  122. /package/dist/{onboarding.d.ts → src/onboarding.d.ts} +0 -0
  123. /package/dist/{onboarding.js → src/onboarding.js} +0 -0
  124. /package/dist/{prompts.d.ts → src/prompts.d.ts} +0 -0
  125. /package/dist/{prompts.js → src/prompts.js} +0 -0
  126. /package/dist/{providers → src/providers}/localai.d.ts +0 -0
  127. /package/dist/{providers → src/providers}/localai.js +0 -0
  128. /package/dist/{providers → src/providers}/openai.d.ts +0 -0
  129. /package/dist/{providers → src/providers}/openai.js +0 -0
  130. /package/dist/{providers → src/providers}/shared.d.ts +0 -0
  131. /package/dist/{providers → src/providers}/shared.js +0 -0
  132. /package/dist/{providers.d.ts → src/providers.d.ts} +0 -0
  133. /package/dist/{providers.js → src/providers.js} +0 -0
  134. /package/dist/{suggestions.d.ts → src/suggestions.d.ts} +0 -0
  135. /package/dist/{suggestions.js → src/suggestions.js} +0 -0
  136. /package/dist/{types.d.ts → src/types.d.ts} +0 -0
  137. /package/dist/{types.js → src/types.js} +0 -0
  138. /package/dist/{web → src/web}/client/assets/index-87905193.css +0 -0
  139. /package/dist/{web → src/web}/client/favicon.ico +0 -0
  140. /package/dist/{web → src/web}/client/logo.svg +0 -0
  141. /package/dist/{web → src/web}/server.d.ts +0 -0
@@ -0,0 +1,3 @@
1
+ export declare function getLatestVersion(packageName: string): Promise<any>;
2
+ export declare function checkForUpdates(): Promise<boolean>;
3
+ //# sourceMappingURL=updates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updates.d.ts","sourceRoot":"","sources":["../../src/updates.ts"],"names":[],"mappings":"AASA,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,gBAOzD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAkBxD"}
@@ -0,0 +1,36 @@
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.checkForUpdates = exports.getLatestVersion = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const gt_1 = __importDefault(require("semver/functions/gt"));
9
+ const logger_1 = __importDefault(require("./logger"));
10
+ const util_1 = require("./util");
11
+ const package_json_1 = __importDefault(require("../package.json"));
12
+ const VERSION = package_json_1.default.version;
13
+ async function getLatestVersion(packageName) {
14
+ const response = await (0, util_1.fetchWithTimeout)(`https://registry.npmjs.org/${packageName}`, {}, 1000);
15
+ if (!response.ok) {
16
+ throw new Error(`Failed to fetch package information for ${packageName}`);
17
+ }
18
+ const data = await response.json();
19
+ return data['dist-tags'].latest;
20
+ }
21
+ exports.getLatestVersion = getLatestVersion;
22
+ async function checkForUpdates() {
23
+ const latestVersion = await getLatestVersion('promptfoo');
24
+ if ((0, gt_1.default)(latestVersion, VERSION)) {
25
+ const border = '='.repeat(process.stdout.columns - 10);
26
+ logger_1.default.info(`\n${border}
27
+ ${chalk_1.default.yellow('⚠️')} The current version of promptfoo ${chalk_1.default.yellow(VERSION)} is lower than the latest available version ${chalk_1.default.green(latestVersion)}.
28
+
29
+ Please run ${chalk_1.default.green('npx promptfoo@latest')} or ${chalk_1.default.green('npm install -g promptfoo@latest')} to update.
30
+ ${border}\n`);
31
+ return true;
32
+ }
33
+ return false;
34
+ }
35
+ exports.checkForUpdates = checkForUpdates;
36
+ //# sourceMappingURL=updates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updates.js","sourceRoot":"","sources":["../../src/updates.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,6DAA2C;AAE3C,sDAA8B;AAC9B,iCAA0C;AAC1C,mEAA0C;AAE1C,MAAM,OAAO,GAAG,sBAAW,CAAC,OAAO,CAAC;AAE7B,KAAK,UAAU,gBAAgB,CAAC,WAAmB;IACxD,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAgB,EAAC,8BAA8B,WAAW,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/F,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,2CAA2C,WAAW,EAAE,CAAC,CAAC;KAC3E;IACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;AAClC,CAAC;AAPD,4CAOC;AAEM,KAAK,UAAU,eAAe;IACnC,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC1D,IAAI,IAAA,YAAQ,EAAC,aAAa,EAAE,OAAO,CAAC,EAAE;QACpC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACvD,gBAAM,CAAC,IAAI,CACT,KAAK,MAAM;EACf,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,eAAK,CAAC,MAAM,CAC7D,OAAO,CACR,+CAA+C,eAAK,CAAC,KAAK,CAAC,aAAa,CAAC;;aAEnE,eAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,OAAO,eAAK,CAAC,KAAK,CAC1D,iCAAiC,CAClC;EACL,MAAM,IAAI,CACP,CAAC;QACF,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAlBD,0CAkBC"}
@@ -10,7 +10,7 @@ export declare function writeOutput(outputPath: string, summary: EvaluateSummary
10
10
  export declare function fetchWithTimeout(url: RequestInfo, options: RequestInit | undefined, timeout: number): Promise<Response>;
11
11
  export declare function getConfigDirectoryPath(): string;
12
12
  export declare function getLatestResultsPath(): string;
13
- export declare function writeLatestResults(results: EvaluateSummary): void;
13
+ export declare function writeLatestResults(results: EvaluateSummary, config: Partial<UnifiedConfig>): void;
14
14
  export declare function cosineSimilarity(vecA: number[], vecB: number[]): number;
15
15
  export declare function testCaseFromCsvRow(row: CsvRow): TestCase;
16
16
  //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,KAAK,EAEV,MAAM,EACN,eAAe,EACf,aAAa,EACb,QAAQ,EACR,MAAM,EAEP,MAAM,SAAS,CAAC;AAajB,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAK5F;AAED,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAgB3E;AAQD,wBAAgB,WAAW,CACzB,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5D,MAAM,EAAE,CA8CV;AAED,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ1E;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAkBlE;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CA6B3F;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CA2B9E;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,WAAW,EAChB,OAAO,yBAAkB,EACzB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,QAAQ,CAAC,CAwBnB;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,QAmB1F;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAQ9D;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAexD"}
@@ -247,11 +247,15 @@ function getLatestResultsPath() {
247
247
  return path.join(getConfigDirectoryPath(), 'output', 'latest.json');
248
248
  }
249
249
  exports.getLatestResultsPath = getLatestResultsPath;
250
- function writeLatestResults(results) {
250
+ function writeLatestResults(results, config) {
251
251
  const latestResultsPath = getLatestResultsPath();
252
252
  try {
253
253
  fs.mkdirSync(path.dirname(latestResultsPath), { recursive: true });
254
- fs.writeFileSync(latestResultsPath, JSON.stringify(results, null, 2));
254
+ fs.writeFileSync(latestResultsPath, JSON.stringify({
255
+ version: 1,
256
+ config,
257
+ results,
258
+ }, null, 2));
255
259
  }
256
260
  catch (err) {
257
261
  logger_1.default.error(`Failed to write latest results to ${latestResultsPath}:\n${err}`);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}