promptfoo 0.78.0 → 0.78.2

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 (315) hide show
  1. package/dist/package.json +10 -10
  2. package/dist/src/accounts.d.ts.map +1 -1
  3. package/dist/src/accounts.js +2 -1
  4. package/dist/src/accounts.js.map +1 -1
  5. package/dist/src/assertions/AssertionsResult.d.ts.map +1 -1
  6. package/dist/src/assertions/AssertionsResult.js +2 -1
  7. package/dist/src/assertions/AssertionsResult.js.map +1 -1
  8. package/dist/src/assertions.d.ts.map +1 -1
  9. package/dist/src/assertions.js +5 -6
  10. package/dist/src/assertions.js.map +1 -1
  11. package/dist/src/cache.d.ts.map +1 -1
  12. package/dist/src/cache.js +8 -10
  13. package/dist/src/cache.js.map +1 -1
  14. package/dist/src/commands/eval.d.ts.map +1 -1
  15. package/dist/src/commands/eval.js +3 -2
  16. package/dist/src/commands/eval.js.map +1 -1
  17. package/dist/src/commands/generate/redteam.d.ts +1 -1
  18. package/dist/src/commands/generate/redteam.d.ts.map +1 -1
  19. package/dist/src/commands/generate/redteam.js +17 -6
  20. package/dist/src/commands/generate/redteam.js.map +1 -1
  21. package/dist/src/commands/redteam.d.ts +1 -1
  22. package/dist/src/commands/redteam.d.ts.map +1 -1
  23. package/dist/src/commands/redteam.js +220 -145
  24. package/dist/src/commands/redteam.js.map +1 -1
  25. package/dist/src/commands/share.d.ts.map +1 -1
  26. package/dist/src/commands/share.js +4 -4
  27. package/dist/src/commands/share.js.map +1 -1
  28. package/dist/src/config.d.ts.map +1 -1
  29. package/dist/src/config.js +3 -2
  30. package/dist/src/config.js.map +1 -1
  31. package/dist/src/constants.d.ts.map +1 -1
  32. package/dist/src/constants.js +1 -0
  33. package/dist/src/constants.js.map +1 -1
  34. package/dist/src/envars.d.ts +119 -0
  35. package/dist/src/envars.d.ts.map +1 -0
  36. package/dist/src/envars.js +56 -0
  37. package/dist/src/envars.js.map +1 -0
  38. package/dist/src/evaluator.d.ts.map +1 -1
  39. package/dist/src/evaluator.js +11 -10
  40. package/dist/src/evaluator.js.map +1 -1
  41. package/dist/src/evaluatorHelpers.d.ts.map +1 -1
  42. package/dist/src/evaluatorHelpers.js +10 -1
  43. package/dist/src/evaluatorHelpers.js.map +1 -1
  44. package/dist/src/fetch.d.ts.map +1 -1
  45. package/dist/src/fetch.js +3 -4
  46. package/dist/src/fetch.js.map +1 -1
  47. package/dist/src/integrations/helicone.d.ts +11 -0
  48. package/dist/src/integrations/helicone.d.ts.map +1 -0
  49. package/dist/src/integrations/helicone.js +69 -0
  50. package/dist/src/integrations/helicone.js.map +1 -0
  51. package/dist/src/integrations/langfuse.d.ts.map +1 -1
  52. package/dist/src/integrations/langfuse.js +4 -3
  53. package/dist/src/integrations/langfuse.js.map +1 -1
  54. package/dist/src/integrations/portkey.d.ts.map +1 -1
  55. package/dist/src/integrations/portkey.js +4 -2
  56. package/dist/src/integrations/portkey.js.map +1 -1
  57. package/dist/src/logger.d.ts.map +1 -1
  58. package/dist/src/logger.js +2 -1
  59. package/dist/src/logger.js.map +1 -1
  60. package/dist/src/main.js +4 -2
  61. package/dist/src/main.js.map +1 -1
  62. package/dist/src/onboarding.d.ts.map +1 -1
  63. package/dist/src/onboarding.js +2 -1
  64. package/dist/src/onboarding.js.map +1 -1
  65. package/dist/src/prompts/constants.d.ts.map +1 -1
  66. package/dist/src/prompts/constants.js +2 -1
  67. package/dist/src/prompts/constants.js.map +1 -1
  68. package/dist/src/prompts/utils.js +1 -1
  69. package/dist/src/prompts/utils.js.map +1 -1
  70. package/dist/src/providers/anthropic.d.ts.map +1 -1
  71. package/dist/src/providers/anthropic.js +9 -8
  72. package/dist/src/providers/anthropic.js.map +1 -1
  73. package/dist/src/providers/azureopenai.d.ts.map +1 -1
  74. package/dist/src/providers/azureopenai.js +21 -18
  75. package/dist/src/providers/azureopenai.js.map +1 -1
  76. package/dist/src/providers/bam.d.ts.map +1 -1
  77. package/dist/src/providers/bam.js +3 -2
  78. package/dist/src/providers/bam.js.map +1 -1
  79. package/dist/src/providers/bedrock.d.ts +2 -2
  80. package/dist/src/providers/bedrock.d.ts.map +1 -1
  81. package/dist/src/providers/bedrock.js +7 -3
  82. package/dist/src/providers/bedrock.js.map +1 -1
  83. package/dist/src/providers/cloudflare-ai.d.ts.map +1 -1
  84. package/dist/src/providers/cloudflare-ai.js +3 -2
  85. package/dist/src/providers/cloudflare-ai.js.map +1 -1
  86. package/dist/src/providers/cohere.d.ts.map +1 -1
  87. package/dist/src/providers/cohere.js +3 -2
  88. package/dist/src/providers/cohere.js.map +1 -1
  89. package/dist/src/providers/defaults.d.ts.map +1 -1
  90. package/dist/src/providers/defaults.js +3 -2
  91. package/dist/src/providers/defaults.js.map +1 -1
  92. package/dist/src/providers/huggingface.d.ts.map +1 -1
  93. package/dist/src/providers/huggingface.js +7 -6
  94. package/dist/src/providers/huggingface.js.map +1 -1
  95. package/dist/src/providers/llama.d.ts.map +1 -1
  96. package/dist/src/providers/llama.js +2 -1
  97. package/dist/src/providers/llama.js.map +1 -1
  98. package/dist/src/providers/localai.d.ts.map +1 -1
  99. package/dist/src/providers/localai.js +4 -3
  100. package/dist/src/providers/localai.js.map +1 -1
  101. package/dist/src/providers/mistral.d.ts.map +1 -1
  102. package/dist/src/providers/mistral.js +4 -3
  103. package/dist/src/providers/mistral.js.map +1 -1
  104. package/dist/src/providers/ollama.d.ts.map +1 -1
  105. package/dist/src/providers/ollama.js +10 -9
  106. package/dist/src/providers/ollama.js.map +1 -1
  107. package/dist/src/providers/openai.d.ts.map +1 -1
  108. package/dist/src/providers/openai.js +18 -15
  109. package/dist/src/providers/openai.js.map +1 -1
  110. package/dist/src/providers/palm.d.ts.map +1 -1
  111. package/dist/src/providers/palm.js +5 -4
  112. package/dist/src/providers/palm.js.map +1 -1
  113. package/dist/src/providers/promptfoo.d.ts.map +1 -1
  114. package/dist/src/providers/promptfoo.js +2 -1
  115. package/dist/src/providers/promptfoo.js.map +1 -1
  116. package/dist/src/providers/replicate.d.ts.map +1 -1
  117. package/dist/src/providers/replicate.js +13 -21
  118. package/dist/src/providers/replicate.js.map +1 -1
  119. package/dist/src/providers/shared.d.ts.map +1 -1
  120. package/dist/src/providers/shared.js +3 -4
  121. package/dist/src/providers/shared.js.map +1 -1
  122. package/dist/src/providers/vertex.d.ts.map +1 -1
  123. package/dist/src/providers/vertex.js +9 -5
  124. package/dist/src/providers/vertex.js.map +1 -1
  125. package/dist/src/providers/voyage.d.ts.map +1 -1
  126. package/dist/src/providers/voyage.js +6 -2
  127. package/dist/src/providers/voyage.js.map +1 -1
  128. package/dist/src/providers.d.ts.map +1 -1
  129. package/dist/src/providers.js +4 -0
  130. package/dist/src/providers.js.map +1 -1
  131. package/dist/src/python/pythonUtils.d.ts.map +1 -1
  132. package/dist/src/python/pythonUtils.js +10 -9
  133. package/dist/src/python/pythonUtils.js.map +1 -1
  134. package/dist/src/python/wrapper.py +3 -1
  135. package/dist/src/redteam/constants.d.ts +19 -2
  136. package/dist/src/redteam/constants.d.ts.map +1 -1
  137. package/dist/src/redteam/constants.js +230 -46
  138. package/dist/src/redteam/constants.js.map +1 -1
  139. package/dist/src/redteam/index.d.ts.map +1 -1
  140. package/dist/src/redteam/index.js +22 -3
  141. package/dist/src/redteam/index.js.map +1 -1
  142. package/dist/src/redteam/plugins/bfla.d.ts.map +1 -1
  143. package/dist/src/redteam/plugins/bfla.js +3 -2
  144. package/dist/src/redteam/plugins/bfla.js.map +1 -1
  145. package/dist/src/redteam/plugins/bola.d.ts +1 -0
  146. package/dist/src/redteam/plugins/bola.d.ts.map +1 -1
  147. package/dist/src/redteam/plugins/bola.js +7 -6
  148. package/dist/src/redteam/plugins/bola.js.map +1 -1
  149. package/dist/src/redteam/plugins/competitors.d.ts +1 -0
  150. package/dist/src/redteam/plugins/competitors.d.ts.map +1 -1
  151. package/dist/src/redteam/plugins/competitors.js +4 -3
  152. package/dist/src/redteam/plugins/competitors.js.map +1 -1
  153. package/dist/src/redteam/plugins/contracts.d.ts +1 -0
  154. package/dist/src/redteam/plugins/contracts.d.ts.map +1 -1
  155. package/dist/src/redteam/plugins/contracts.js +4 -3
  156. package/dist/src/redteam/plugins/contracts.js.map +1 -1
  157. package/dist/src/redteam/plugins/debugAccess.d.ts +1 -0
  158. package/dist/src/redteam/plugins/debugAccess.d.ts.map +1 -1
  159. package/dist/src/redteam/plugins/debugAccess.js +4 -3
  160. package/dist/src/redteam/plugins/debugAccess.js.map +1 -1
  161. package/dist/src/redteam/plugins/excessiveAgency.d.ts +1 -0
  162. package/dist/src/redteam/plugins/excessiveAgency.d.ts.map +1 -1
  163. package/dist/src/redteam/plugins/excessiveAgency.js +4 -3
  164. package/dist/src/redteam/plugins/excessiveAgency.js.map +1 -1
  165. package/dist/src/redteam/plugins/hallucination.d.ts +1 -0
  166. package/dist/src/redteam/plugins/hallucination.d.ts.map +1 -1
  167. package/dist/src/redteam/plugins/hallucination.js +4 -3
  168. package/dist/src/redteam/plugins/hallucination.js.map +1 -1
  169. package/dist/src/redteam/plugins/harmful.d.ts +1 -0
  170. package/dist/src/redteam/plugins/harmful.d.ts.map +1 -1
  171. package/dist/src/redteam/plugins/harmful.js +7 -13
  172. package/dist/src/redteam/plugins/harmful.js.map +1 -1
  173. package/dist/src/redteam/plugins/hijacking.d.ts +1 -0
  174. package/dist/src/redteam/plugins/hijacking.d.ts.map +1 -1
  175. package/dist/src/redteam/plugins/hijacking.js +4 -3
  176. package/dist/src/redteam/plugins/hijacking.js.map +1 -1
  177. package/dist/src/redteam/plugins/imitation.d.ts +1 -0
  178. package/dist/src/redteam/plugins/imitation.d.ts.map +1 -1
  179. package/dist/src/redteam/plugins/imitation.js +4 -3
  180. package/dist/src/redteam/plugins/imitation.js.map +1 -1
  181. package/dist/src/redteam/plugins/index.d.ts +0 -5
  182. package/dist/src/redteam/plugins/index.d.ts.map +1 -1
  183. package/dist/src/redteam/plugins/index.js +0 -20
  184. package/dist/src/redteam/plugins/index.js.map +1 -1
  185. package/dist/src/redteam/plugins/overreliance.d.ts +1 -0
  186. package/dist/src/redteam/plugins/overreliance.d.ts.map +1 -1
  187. package/dist/src/redteam/plugins/overreliance.js +4 -3
  188. package/dist/src/redteam/plugins/overreliance.js.map +1 -1
  189. package/dist/src/redteam/plugins/pii.d.ts +1 -0
  190. package/dist/src/redteam/plugins/pii.d.ts.map +1 -1
  191. package/dist/src/redteam/plugins/pii.js +4 -3
  192. package/dist/src/redteam/plugins/pii.js.map +1 -1
  193. package/dist/src/redteam/plugins/policy.d.ts +1 -0
  194. package/dist/src/redteam/plugins/policy.d.ts.map +1 -1
  195. package/dist/src/redteam/plugins/policy.js +4 -3
  196. package/dist/src/redteam/plugins/policy.js.map +1 -1
  197. package/dist/src/redteam/plugins/politics.d.ts +1 -0
  198. package/dist/src/redteam/plugins/politics.d.ts.map +1 -1
  199. package/dist/src/redteam/plugins/politics.js +4 -3
  200. package/dist/src/redteam/plugins/politics.js.map +1 -1
  201. package/dist/src/redteam/plugins/rbac.d.ts +1 -0
  202. package/dist/src/redteam/plugins/rbac.d.ts.map +1 -1
  203. package/dist/src/redteam/plugins/rbac.js +4 -3
  204. package/dist/src/redteam/plugins/rbac.js.map +1 -1
  205. package/dist/src/redteam/plugins/shellInjection.d.ts +1 -0
  206. package/dist/src/redteam/plugins/shellInjection.d.ts.map +1 -1
  207. package/dist/src/redteam/plugins/shellInjection.js +4 -3
  208. package/dist/src/redteam/plugins/shellInjection.js.map +1 -1
  209. package/dist/src/redteam/plugins/sqlInjection.d.ts +1 -0
  210. package/dist/src/redteam/plugins/sqlInjection.d.ts.map +1 -1
  211. package/dist/src/redteam/plugins/sqlInjection.js +4 -3
  212. package/dist/src/redteam/plugins/sqlInjection.js.map +1 -1
  213. package/dist/src/redteam/plugins/ssrf.d.ts +1 -0
  214. package/dist/src/redteam/plugins/ssrf.d.ts.map +1 -1
  215. package/dist/src/redteam/plugins/ssrf.js +4 -3
  216. package/dist/src/redteam/plugins/ssrf.js.map +1 -1
  217. package/dist/src/redteam/providers/constants.d.ts +4 -0
  218. package/dist/src/redteam/providers/constants.d.ts.map +1 -0
  219. package/dist/src/redteam/providers/constants.js +9 -0
  220. package/dist/src/redteam/providers/constants.js.map +1 -0
  221. package/dist/src/redteam/providers/crescendo/index.d.ts +49 -0
  222. package/dist/src/redteam/providers/crescendo/index.d.ts.map +1 -0
  223. package/dist/src/redteam/providers/crescendo/index.js +312 -0
  224. package/dist/src/redteam/providers/crescendo/index.js.map +1 -0
  225. package/dist/src/redteam/providers/crescendo/prompts.d.ts +4 -0
  226. package/dist/src/redteam/providers/crescendo/prompts.d.ts.map +1 -0
  227. package/dist/src/redteam/providers/crescendo/prompts.js +231 -0
  228. package/dist/src/redteam/providers/crescendo/prompts.js.map +1 -0
  229. package/dist/src/redteam/providers/iterative.d.ts +1 -0
  230. package/dist/src/redteam/providers/iterative.d.ts.map +1 -1
  231. package/dist/src/redteam/providers/iterative.js +13 -83
  232. package/dist/src/redteam/providers/iterative.js.map +1 -1
  233. package/dist/src/redteam/providers/iterativeTree.d.ts +161 -14
  234. package/dist/src/redteam/providers/iterativeTree.d.ts.map +1 -1
  235. package/dist/src/redteam/providers/iterativeTree.js +343 -328
  236. package/dist/src/redteam/providers/iterativeTree.js.map +1 -1
  237. package/dist/src/redteam/providers/prompts.d.ts +4 -0
  238. package/dist/src/redteam/providers/prompts.d.ts.map +1 -0
  239. package/dist/src/redteam/providers/prompts.js +77 -0
  240. package/dist/src/redteam/providers/prompts.js.map +1 -0
  241. package/dist/src/redteam/strategies/crescendo.d.ts +3 -0
  242. package/dist/src/redteam/strategies/crescendo.d.ts.map +1 -0
  243. package/dist/src/redteam/strategies/crescendo.js +19 -0
  244. package/dist/src/redteam/strategies/crescendo.js.map +1 -0
  245. package/dist/src/redteam/strategies/index.d.ts.map +1 -1
  246. package/dist/src/redteam/strategies/index.js +10 -0
  247. package/dist/src/redteam/strategies/index.js.map +1 -1
  248. package/dist/src/redteam/util.d.ts +1 -0
  249. package/dist/src/redteam/util.d.ts.map +1 -1
  250. package/dist/src/redteam/util.js +13 -0
  251. package/dist/src/redteam/util.js.map +1 -1
  252. package/dist/src/telemetry.d.ts.map +1 -1
  253. package/dist/src/telemetry.js +2 -1
  254. package/dist/src/telemetry.js.map +1 -1
  255. package/dist/src/testCases.d.ts.map +1 -1
  256. package/dist/src/testCases.js +3 -2
  257. package/dist/src/testCases.js.map +1 -1
  258. package/dist/src/updates.d.ts.map +1 -1
  259. package/dist/src/updates.js +2 -1
  260. package/dist/src/updates.js.map +1 -1
  261. package/dist/src/util/config.d.ts.map +1 -1
  262. package/dist/src/util/config.js +2 -1
  263. package/dist/src/util/config.js.map +1 -1
  264. package/dist/src/util/index.d.ts.map +1 -1
  265. package/dist/src/util/index.js +4 -3
  266. package/dist/src/util/index.js.map +1 -1
  267. package/dist/src/util/templates.d.ts +1 -3
  268. package/dist/src/util/templates.d.ts.map +1 -1
  269. package/dist/src/util/templates.js +2 -1
  270. package/dist/src/util/templates.js.map +1 -1
  271. package/dist/src/validators/redteam.d.ts +1 -1
  272. package/dist/src/validators/redteam.d.ts.map +1 -1
  273. package/dist/src/validators/redteam.js +7 -3
  274. package/dist/src/validators/redteam.js.map +1 -1
  275. package/dist/src/web/nextui/404/index.html +1 -1
  276. package/dist/src/web/nextui/404.html +1 -1
  277. package/dist/src/web/nextui/_next/static/chunks/app/{layout-b7d713ef773e2076.js → layout-bd07f93483b60d27.js} +1 -1
  278. package/dist/src/web/nextui/_next/static/chunks/app/report/page-5c9a9b839d95d1ac.js +1 -0
  279. package/dist/src/web/nextui/auth/login/index.html +1 -1
  280. package/dist/src/web/nextui/auth/login/index.txt +2 -2
  281. package/dist/src/web/nextui/auth/signup/index.html +1 -1
  282. package/dist/src/web/nextui/auth/signup/index.txt +2 -2
  283. package/dist/src/web/nextui/datasets/index.html +1 -1
  284. package/dist/src/web/nextui/datasets/index.txt +2 -2
  285. package/dist/src/web/nextui/eval/index.html +1 -1
  286. package/dist/src/web/nextui/eval/index.txt +3 -3
  287. package/dist/src/web/nextui/index.html +1 -1
  288. package/dist/src/web/nextui/index.txt +2 -2
  289. package/dist/src/web/nextui/progress/index.html +1 -1
  290. package/dist/src/web/nextui/progress/index.txt +2 -2
  291. package/dist/src/web/nextui/prompts/index.html +1 -1
  292. package/dist/src/web/nextui/prompts/index.txt +2 -2
  293. package/dist/src/web/nextui/report/index.html +1 -1
  294. package/dist/src/web/nextui/report/index.txt +3 -3
  295. package/dist/src/web/nextui/setup/index.html +1 -1
  296. package/dist/src/web/nextui/setup/index.txt +2 -2
  297. package/dist/test/envars.test.d.ts +2 -0
  298. package/dist/test/envars.test.d.ts.map +1 -0
  299. package/dist/test/envars.test.js +70 -0
  300. package/dist/test/envars.test.js.map +1 -0
  301. package/dist/test/is-sql-tests/node-sql-parser.test.js +10 -10
  302. package/dist/test/is-sql-tests/node-sql-parser.test.js.map +1 -1
  303. package/dist/test/prompts.utils.test.js +3 -0
  304. package/dist/test/prompts.utils.test.js.map +1 -1
  305. package/dist/test/pythonWrapper.test.js +53 -20
  306. package/dist/test/pythonWrapper.test.js.map +1 -1
  307. package/dist/test/redteam/providers/iterativeTree.test.d.ts +2 -0
  308. package/dist/test/redteam/providers/iterativeTree.test.d.ts.map +1 -0
  309. package/dist/test/redteam/providers/iterativeTree.test.js +315 -0
  310. package/dist/test/redteam/providers/iterativeTree.test.js.map +1 -0
  311. package/package.json +10 -10
  312. package/dist/src/web/nextui/_next/static/chunks/app/report/page-1da24ad6423ea2a5.js +0 -1
  313. /package/dist/src/web/nextui/_next/static/{hpmb9tj_OdPogvvqjUco5 → 7WCweG-frl9PmaQvBJk5m}/_buildManifest.js +0 -0
  314. /package/dist/src/web/nextui/_next/static/{hpmb9tj_OdPogvvqjUco5 → 7WCweG-frl9PmaQvBJk5m}/_ssgManifest.js +0 -0
  315. /package/dist/src/web/nextui/_next/static/chunks/{258-9641c769d3ee59d3.js → 258-bb8ca628533ae496.js} +0 -0
@@ -32,6 +32,7 @@ const chalk_1 = __importDefault(require("chalk"));
32
32
  const dedent_1 = __importDefault(require("dedent"));
33
33
  const fs = __importStar(require("fs"));
34
34
  const js_yaml_1 = __importDefault(require("js-yaml"));
35
+ const path_1 = __importDefault(require("path"));
35
36
  const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
36
37
  const zod_1 = require("zod");
37
38
  const cache_1 = require("../../cache");
@@ -155,7 +156,10 @@ async function doGenerateRedteam(options) {
155
156
  };
156
157
  (0, config_2.writePromptfooConfig)(updatedYaml, options.output);
157
158
  (0, util_1.printBorder)();
158
- logger_1.default.info(`Wrote ${redteamTests.length} new test cases to ${options.output}`);
159
+ const relativeOutputPath = path_1.default.relative(process.cwd(), options.output);
160
+ logger_1.default.info(`Wrote ${redteamTests.length} new test cases to ${relativeOutputPath}`);
161
+ logger_1.default.info('\n' +
162
+ chalk_1.default.green(`Run ${chalk_1.default.bold(`promptfoo eval -c ${relativeOutputPath}`)} to run the red team!`));
159
163
  (0, util_1.printBorder)();
160
164
  }
161
165
  else if (options.write && configPath) {
@@ -172,11 +176,14 @@ async function doGenerateRedteam(options) {
172
176
  existingConfig.metadata = { ...(existingConfig.metadata || {}), redteam: true };
173
177
  existingConfig.redteam = { ...(existingConfig.redteam || {}), ...updatedRedteamConfig };
174
178
  (0, config_2.writePromptfooConfig)(existingConfig, configPath);
175
- logger_1.default.info(`\nWrote ${redteamTests.length} new test cases to ${configPath}`);
176
- logger_1.default.info('\n' + chalk_1.default.green(`Run ${chalk_1.default.bold('promptfoo eval')} to run the generated tests`));
179
+ logger_1.default.info(`\nWrote ${redteamTests.length} new test cases to ${path_1.default.relative(process.cwd(), configPath)}`);
180
+ const command = configPath.endsWith('promptfooconfig.yaml')
181
+ ? 'promptfoo eval'
182
+ : `promptfoo eval -c ${path_1.default.relative(process.cwd(), configPath)}`;
183
+ logger_1.default.info('\n' + chalk_1.default.green(`Run ${chalk_1.default.bold(`${command}`)} to run the red team!`));
177
184
  }
178
185
  else {
179
- logger_1.default.info(js_yaml_1.default.dump(redteamTests, { skipInvalid: true }));
186
+ (0, config_2.writePromptfooConfig)({ tests: redteamTests }, 'redteam.yaml');
180
187
  }
181
188
  telemetry_1.default.record('command_used', {
182
189
  duration: Math.round((Date.now() - startTime) / 1000),
@@ -187,9 +194,9 @@ async function doGenerateRedteam(options) {
187
194
  });
188
195
  await telemetry_1.default.send();
189
196
  }
190
- function generateRedteamCommand(program, defaultConfig, defaultConfigPath) {
197
+ function generateRedteamCommand(program, command, defaultConfig, defaultConfigPath) {
191
198
  program
192
- .command('redteam')
199
+ .command(command) // generate or redteam depending on if called from redteam or generate
193
200
  .description('Generate adversarial test cases')
194
201
  .option('-c, --config [path]', 'Path to configuration file. Defaults to promptfooconfig.yaml')
195
202
  .option('-o, --output [path]', 'Path to output file')
@@ -235,6 +242,10 @@ function generateRedteamCommand(program, defaultConfig, defaultConfigPath) {
235
242
  }
236
243
  overrides = parsed.data;
237
244
  }
245
+ if (!opts.write && !opts.output) {
246
+ logger_1.default.info('No output file specified, writing to redteam.yaml in the current directory');
247
+ opts.output = 'redteam.yaml';
248
+ }
238
249
  const validatedOpts = redteam_2.RedteamGenerateOptionsSchema.parse({
239
250
  ...opts,
240
251
  defaultConfig,
@@ -1 +1 @@
1
- {"version":3,"file":"redteam.js","sourceRoot":"","sources":["../../../../src/commands/generate/redteam.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redteam.js","sourceRoot":"","sources":["../../../../src/commands/generate/redteam.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import type { Command } from 'commander';
2
2
  export declare function redteamInit(directory: string | undefined): Promise<void>;
3
- export declare function redteamCommand(program: Command): void;
3
+ export declare function initRedteamCommand(program: Command): void;
4
4
  //# sourceMappingURL=redteam.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"redteam.d.ts","sourceRoot":"","sources":["../../../src/commands/redteam.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBzC,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,iBAoT9D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAS9C"}
1
+ {"version":3,"file":"redteam.d.ts","sourceRoot":"","sources":["../../../src/commands/redteam.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsGzC,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,iBAqS9D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,QAOlD"}
@@ -27,119 +27,206 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.redteamInit = redteamInit;
30
- exports.redteamCommand = redteamCommand;
30
+ exports.initRedteamCommand = initRedteamCommand;
31
31
  const checkbox_1 = __importDefault(require("@inquirer/checkbox"));
32
32
  const checkbox_2 = require("@inquirer/checkbox");
33
33
  const confirm_1 = __importDefault(require("@inquirer/confirm"));
34
34
  const editor_1 = __importDefault(require("@inquirer/editor"));
35
35
  const input_1 = __importDefault(require("@inquirer/input"));
36
- const number_1 = __importDefault(require("@inquirer/number"));
37
36
  const rawlist_1 = __importDefault(require("@inquirer/rawlist"));
37
+ const select_1 = __importDefault(require("@inquirer/select"));
38
38
  const chalk_1 = __importDefault(require("chalk"));
39
+ const dedent_1 = __importDefault(require("dedent"));
39
40
  const fs = __importStar(require("fs"));
40
- const js_yaml_1 = __importDefault(require("js-yaml"));
41
41
  const path = __importStar(require("path"));
42
- const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
43
42
  const accounts_1 = require("../accounts");
43
+ const envars_1 = require("../envars");
44
44
  const globalConfig_1 = require("../globalConfig");
45
45
  const logger_1 = __importDefault(require("../logger"));
46
46
  const constants_1 = require("../redteam/constants");
47
47
  const telemetry_1 = __importDefault(require("../telemetry"));
48
- const redteam_1 = require("../validators/redteam");
49
- const redteam_2 = require("./generate/redteam");
48
+ const templates_1 = require("../util/templates");
49
+ const redteam_1 = require("./generate/redteam");
50
+ const REDTEAM_CONFIG_TEMPLATE = `# Red teaming configuration
51
+ # Docs: https://promptfoo.dev/docs/red-team/configuration
52
+
53
+ description: "My first red team"
54
+
55
+ {% if purpose is defined -%}
56
+ purpose: {{ purpose | dump }}
57
+ {% endif %}
58
+ prompts:
59
+ {% for prompt in prompts -%}
60
+ - {{ prompt | dump }}
61
+ {% endfor -%}
62
+ {% if prompts.length > 0 and not prompts[0].startsWith('file://') -%}
63
+ # You can also reference external prompts, e.g.
64
+ # - file:///path/to/prompt.json
65
+ # Learn more: https://promptfoo.dev/docs/configuration/parameters/#prompts
66
+ {% endif %}
67
+
68
+ providers:
69
+ # To talk directly to your application, use a custom provider.
70
+ # See https://promptfoo.dev/docs/red-team/configuration/#providers
71
+ {% for provider in providers -%}
72
+ - {{ provider }}
73
+ {% endfor %}
74
+
75
+ redteam:
76
+ # Default number of inputs to generate for each plugin
77
+ numTests: {{numTests}}
78
+
79
+ {% if plugins.length > 0 -%}
80
+ # Each plugin generates {{numTests}} adversarial inputs.
81
+ # To control the number of tests for each plugin, use:
82
+ # - id: plugin-name
83
+ # numTests: 10
84
+ plugins:
85
+ {% for plugin in plugins -%}
86
+ {% if plugin is string -%}
87
+ - {{plugin}}
88
+ {% else -%}
89
+ - id: {{plugin.id}}
90
+ {% if plugin.numTests is defined -%}
91
+ numTests: {{plugin.numTests}}
92
+ {% endif -%}
93
+ {% if plugin.config is defined and plugin.config.policy is defined -%}
94
+ config:
95
+ policy: {{plugin.config.policy | dump}}
96
+ {% endif -%}
97
+ {% endif -%}
98
+ {% endfor %}
99
+ {% endif -%}
100
+
101
+ {% if strategies.length > 0 -%}
102
+ # Strategies for applying adversarial inputs
103
+ strategies:
104
+ {% for strategy in strategies -%}
105
+ - {{strategy}}
106
+ {% endfor %}
107
+ {% endif -%}
108
+ `;
109
+ const CUSTOM_PROVIDER_TEMPLATE = `# Custom provider for red teaming
110
+ # Docs: https://promptfoo.dev/docs/red-team/configuration/#providers
111
+
112
+ import http.client
113
+ import urllib.parse
114
+ import json
115
+
116
+ def call_api(prompt, options, context):
117
+ parsed_url = urllib.parse.urlparse('https://example.com/api/chat)
118
+ conn = http.client.HTTPSConnection(parsed_url.netloc)
119
+
120
+ headers = {'Content-Type': 'application/json'}
121
+ payload = json.dumps({'user_chat': prompt})
122
+
123
+ conn.request("POST", parsed_url.path or "/", body=payload, headers=headers)
124
+ response = conn.getresponse()
125
+
126
+ return {
127
+ "output": response.read().decode()
128
+ }
129
+ `;
50
130
  async function redteamInit(directory) {
51
131
  telemetry_1.default.maybeShowNotice();
52
132
  telemetry_1.default.record('command_used', { name: 'redteam init - started' });
53
133
  await telemetry_1.default.send();
54
- console.clear();
55
- logger_1.default.info(chalk_1.default.bold('Red Team Initialization\n'));
56
- let projectDir = directory;
57
- if (!projectDir) {
58
- projectDir = await (0, input_1.default)({
59
- message: 'Where do you want to create the project?',
60
- default: '.',
61
- });
62
- }
134
+ const projectDir = directory || '.';
63
135
  if (projectDir !== '.' && !fs.existsSync(projectDir)) {
64
136
  fs.mkdirSync(projectDir, { recursive: true });
65
137
  }
66
138
  const configPath = path.join(projectDir, 'promptfooconfig.yaml');
67
- const previousConfigExists = fs.existsSync(configPath);
68
- let existingConfig;
69
- if (previousConfigExists) {
70
- const overwrite = await (0, confirm_1.default)({
71
- message: `A promptfoo configuration file already exists at: ${configPath} Do you want to overwrite it?`,
72
- default: false,
73
- });
74
- if (!overwrite) {
75
- return;
76
- }
77
- existingConfig = js_yaml_1.default.load(fs.readFileSync(configPath, 'utf8'));
78
- }
79
139
  console.clear();
80
- logger_1.default.info(chalk_1.default.bold('Prompt Configuration\n'));
81
- const promptChoices = [
82
- { name: 'Enter a prompt', value: 'enter' },
83
- { name: 'Reference a prompt file', value: 'file' },
84
- ...(previousConfigExists
85
- ? [{ name: 'Use prompts from existing config', value: 'existing' }]
86
- : []),
87
- ];
88
- const promptChoice = await (0, rawlist_1.default)({
89
- message: 'How would you like to specify the prompt?',
90
- choices: promptChoices,
140
+ logger_1.default.info(chalk_1.default.bold('Red Team Configuration\n'));
141
+ const redTeamChoice = await (0, select_1.default)({
142
+ message: 'What would you like to do?',
143
+ choices: [
144
+ { name: 'Not sure yet', value: 'not_sure' },
145
+ { name: 'Red team a prompt, model, or chatbot', value: 'prompt_model_chatbot' },
146
+ { name: 'Red team a RAG', value: 'rag' },
147
+ { name: 'Red team an Agent', value: 'agent' },
148
+ ],
149
+ pageSize: process.stdout.rows - 6,
91
150
  });
92
- let prompts = [];
93
- if (promptChoice === 'enter') {
94
- prompts.push(await (0, editor_1.default)({
95
- message: 'Enter your prompt:',
96
- default: 'You are a helpful concise assistant.\n\nUser query: {{query}}\n\n(NOTE: your prompt must include "{{query}}" as a placeholder for user input)',
97
- }));
151
+ const prompts = [];
152
+ let purpose;
153
+ const useCustomProvider = redTeamChoice === 'rag' || redTeamChoice === 'agent';
154
+ let deferGeneration = useCustomProvider;
155
+ const defaultPrompt = 'You are a travel agent specialized in budget trips to Europe\n\nUser query: {{query}}';
156
+ const defaultPurpose = 'Travel agent specializing in budget trips to Europe';
157
+ if (useCustomProvider) {
158
+ purpose =
159
+ (await (0, input_1.default)({
160
+ message: (0, dedent_1.default) `What is the purpose of your application? This is used to tailor the attacks. Be as specific as possible.
161
+ (e.g. "${defaultPurpose}")\n`,
162
+ })) || defaultPurpose;
163
+ prompts.push(`{{query}}`);
98
164
  }
99
- else if (promptChoice === 'file') {
100
- const promptFile = await (0, input_1.default)({
101
- message: 'Enter the path to your prompt file (text or JSON):',
165
+ else if (redTeamChoice === 'prompt_model_chatbot') {
166
+ const promptChoice = await (0, select_1.default)({
167
+ message: 'Do you want to enter a prompt now or later?',
168
+ choices: [
169
+ { name: 'Enter prompt now', value: 'now' },
170
+ { name: 'Enter prompt later', value: 'later' },
171
+ ],
102
172
  });
103
- prompts.push(`file://${promptFile}`);
173
+ let prompt;
174
+ if (promptChoice === 'now') {
175
+ prompt = await (0, editor_1.default)({
176
+ message: 'Enter the prompt you want to test against:',
177
+ default: (0, dedent_1.default) `You are a helpful concise assistant.
178
+
179
+ User query: {{query}}
180
+
181
+ (NOTE: your prompt must include "{{query}}" as a placeholder for user input)`,
182
+ });
183
+ }
184
+ else {
185
+ prompt = defaultPrompt;
186
+ deferGeneration = true;
187
+ }
188
+ prompts.push(prompt);
104
189
  }
105
- else if (promptChoice === 'existing') {
106
- (0, tiny_invariant_1.default)(existingConfig?.prompts, 'No prompts found in existing configuration');
107
- prompts = existingConfig?.prompts;
190
+ else {
191
+ prompts.push('You are a travel agent specialized in budget trips to Europe\n\nUser query: {{query}}');
108
192
  }
109
- console.clear();
110
- logger_1.default.info(chalk_1.default.bold('Provider Configuration\n'));
111
- const providerChoices = [
112
- { name: 'openai:gpt-4o-mini', value: 'openai:gpt-4o-mini', checked: true },
113
- { name: 'openai:gpt-4o', value: 'openai:gpt-4o' },
114
- { name: 'openai:gpt-3.5-turbo', value: 'openai:gpt-3.5-turbo' },
115
- {
116
- name: 'anthropic:claude-3-5-sonnet-20240620',
117
- value: 'anthropic:messages:claude-3-5-sonnet-20240620',
118
- },
119
- {
120
- name: 'anthropic:claude-3-opus-20240307',
121
- value: 'anthropic:messages:claude-3-opus-20240307',
122
- },
123
- { name: 'vertex:gemini-pro', value: 'vertex:gemini-pro' },
124
- { name: 'Other', value: 'Other' },
125
- ];
126
- const selectedProviders = await (0, checkbox_1.default)({
127
- message: 'Choose one or more providers to target:',
128
- choices: providerChoices,
129
- pageSize: Math.min(providerChoices.length, process.stdout.rows - 4),
130
- });
131
- const providers = selectedProviders.filter((p) => p !== 'Other');
132
- if (selectedProviders.includes('Other')) {
133
- const customProvider = await (0, input_1.default)({
134
- message: 'Enter the custom provider ID (see https://www.promptfoo.dev/docs/providers/ for options):',
193
+ let providers;
194
+ if (useCustomProvider) {
195
+ providers = ['python:chat.py'];
196
+ }
197
+ else {
198
+ const providerChoices = [
199
+ { name: `I'll choose later`, value: 'Other' },
200
+ { name: 'openai:gpt-4o-mini', value: 'openai:gpt-4o-mini' },
201
+ { name: 'openai:gpt-4o', value: 'openai:gpt-4o' },
202
+ { name: 'openai:gpt-3.5-turbo', value: 'openai:gpt-3.5-turbo' },
203
+ {
204
+ name: 'anthropic:claude-3-5-sonnet-20240620',
205
+ value: 'anthropic:messages:claude-3-5-sonnet-20240620',
206
+ },
207
+ {
208
+ name: 'anthropic:claude-3-opus-20240307',
209
+ value: 'anthropic:messages:claude-3-opus-20240307',
210
+ },
211
+ { name: 'vertex:gemini-pro', value: 'vertex:gemini-pro' },
212
+ ];
213
+ const selectedProvider = await (0, select_1.default)({
214
+ message: 'Choose a model to target:',
215
+ choices: providerChoices,
216
+ pageSize: process.stdout.rows - 6,
135
217
  });
136
- providers.push(customProvider);
218
+ if (selectedProvider === 'Other') {
219
+ providers = ['openai:gpt-4o-mini'];
220
+ }
221
+ else {
222
+ providers = [selectedProvider];
223
+ }
137
224
  }
138
- if (!process.env.OPENAI_API_KEY) {
225
+ if (!(0, envars_1.getEnvString)('OPENAI_API_KEY')) {
139
226
  console.clear();
140
227
  logger_1.default.info(chalk_1.default.bold('OpenAI API Configuration\n'));
141
228
  const apiKeyChoice = await (0, rawlist_1.default)({
142
- message: 'OpenAI API key is required. How to proceed?',
229
+ message: `OpenAI API key is required, but I don't see an OPENAI_API_KEY environment variable. How to proceed?`,
143
230
  choices: [
144
231
  { name: 'Enter API key now', value: 'enter' },
145
232
  { name: 'Set it later', value: 'later' },
@@ -151,6 +238,7 @@ async function redteamInit(directory) {
151
238
  logger_1.default.info('OPENAI_API_KEY set for this session.');
152
239
  }
153
240
  else {
241
+ deferGeneration = true;
154
242
  logger_1.default.warn('Remember to set OPENAI_API_KEY before generating the dataset.');
155
243
  }
156
244
  }
@@ -161,13 +249,12 @@ async function redteamInit(directory) {
161
249
  .map((plugin) => ({
162
250
  name: `${plugin} - ${constants_1.subCategoryDescriptions[plugin] || 'No description'}`,
163
251
  value: plugin,
164
- checked: (existingConfig?.redteam?.plugins || []).some((p) => p.id === plugin) ||
165
- constants_1.DEFAULT_PLUGINS.has(plugin),
252
+ checked: constants_1.DEFAULT_PLUGINS.has(plugin),
166
253
  }));
167
254
  const plugins = await (0, checkbox_1.default)({
168
- message: 'Select plugins to enable:',
255
+ message: `Plugins generate adversarial inputs. Select the ones you want to use. Don't worry, you can change this later:`,
169
256
  choices: pluginChoices,
170
- pageSize: Math.min(pluginChoices.length, process.stdout.rows - 4),
257
+ pageSize: process.stdout.rows - 6,
171
258
  loop: false,
172
259
  validate: (answer) => answer.length > 0 || 'You must select at least one plugin.',
173
260
  });
@@ -179,7 +266,7 @@ async function redteamInit(directory) {
179
266
  plugins.splice(policyIndex, 1);
180
267
  }
181
268
  const policyDescription = await (0, input_1.default)({
182
- message: 'You selected the `policy` plugin. Please enter your custom policy description (leave empty to skip):',
269
+ message: 'You selected the `policy` plugin. Please enter your custom policy description, or leave empty to skip.\n(e.g. "Never talk about the weather")',
183
270
  });
184
271
  if (policyDescription.trim() !== '') {
185
272
  plugins.push({
@@ -198,42 +285,16 @@ async function redteamInit(directory) {
198
285
  ? {
199
286
  name: `${strategy} - ${constants_1.subCategoryDescriptions[strategy] || 'No description'}`,
200
287
  value: strategy,
201
- checked: (existingConfig?.redteam?.strategies || []).some((s) => s.id === strategy || (typeof s === 'string' && s === strategy)) || constants_1.DEFAULT_STRATEGIES.includes(strategy),
288
+ checked: constants_1.DEFAULT_STRATEGIES.includes(strategy),
202
289
  }
203
290
  : strategy);
204
291
  const strategies = await (0, checkbox_1.default)({
205
- message: 'Select strategies to enable:',
292
+ message: `Strategies are attack methods. Select the ones you want to use. Don't worry, you can change this later:`,
206
293
  choices: strategyChoices,
207
- pageSize: Math.min(strategyChoices.length, process.stdout.rows - 4),
294
+ pageSize: process.stdout.rows - 6,
208
295
  loop: false,
209
296
  });
210
- const numTests = await (0, number_1.default)({
211
- message: 'Number of test cases per plugin:',
212
- default: 5,
213
- min: 0,
214
- max: 1000,
215
- });
216
- (0, tiny_invariant_1.default)(numTests, 'No number of tests provided');
217
- // Create config file
218
- const config = {
219
- prompts,
220
- providers: providers,
221
- tests: [],
222
- redteam: redteam_1.RedteamConfigSchema.safeParse({
223
- plugins,
224
- strategies,
225
- numTests,
226
- }).data,
227
- };
228
- // Write the simplified form to the config file to make it easier
229
- // for people to play with. Writes 1 in the { id: ..., numTests }
230
- // and then the rest as strings.
231
- const parsedPlugins = redteam_1.RedteamConfigSchema.safeParse({
232
- plugins,
233
- strategies,
234
- numTests,
235
- })?.data?.plugins;
236
- const hasHarmfulPlugin = parsedPlugins?.some((plugin) => plugin.id.startsWith('harmful'));
297
+ const hasHarmfulPlugin = plugins.some((plugin) => typeof plugin === 'string' && plugin.startsWith('harmful'));
237
298
  if (hasHarmfulPlugin) {
238
299
  const { hasHarmfulRedteamConsent } = (0, globalConfig_1.readGlobalConfig)();
239
300
  if (!hasHarmfulRedteamConsent) {
@@ -270,42 +331,56 @@ async function redteamInit(directory) {
270
331
  }
271
332
  }
272
333
  }
273
- const configPlugins = plugins.length >= 2 ? [parsedPlugins?.[0], ...plugins.slice(1)] : plugins;
274
- fs.writeFileSync(configPath, js_yaml_1.default.dump({
275
- ...config,
276
- redteam: {
277
- numTests,
278
- plugins: configPlugins,
279
- strategies,
280
- },
281
- }), 'utf8');
282
- console.clear();
283
- logger_1.default.info(chalk_1.default.green(`\nCreated red teaming configuration file at ${configPath}\n`));
284
- const readyToGenerate = await (0, confirm_1.default)({
285
- message: 'Are you ready to generate adversarial test cases?',
286
- default: true,
334
+ const numTests = 5;
335
+ const nunjucks = (0, templates_1.getNunjucksEngine)();
336
+ const redteamConfig = nunjucks.renderString(REDTEAM_CONFIG_TEMPLATE, {
337
+ purpose,
338
+ numTests,
339
+ plugins,
340
+ strategies,
341
+ prompts,
342
+ providers,
287
343
  });
288
- if (readyToGenerate) {
289
- await (0, redteam_2.doGenerateRedteam)({
290
- plugins: parsedPlugins,
291
- cache: false,
292
- write: true,
293
- defaultConfig: config,
294
- defaultConfigPath: configPath,
295
- numTests,
296
- });
344
+ fs.writeFileSync(configPath, redteamConfig, 'utf8');
345
+ if (useCustomProvider) {
346
+ fs.writeFileSync(path.join(projectDir, 'chat.py'), CUSTOM_PROVIDER_TEMPLATE, 'utf8');
297
347
  }
298
- else {
348
+ console.clear();
349
+ logger_1.default.info(chalk_1.default.green(`\nCreated red teaming configuration file at ${configPath}\n`));
350
+ telemetry_1.default.record('command_used', { name: 'redteam init' });
351
+ await telemetry_1.default.send();
352
+ if (deferGeneration) {
299
353
  logger_1.default.info('\n' +
300
- chalk_1.default.blue('To generate test cases later, use the command: ' +
354
+ chalk_1.default.blue('To generate test cases after editing your configuration, use the command: ' +
301
355
  chalk_1.default.bold('promptfoo generate redteam')));
356
+ return;
357
+ }
358
+ else {
359
+ const readyToGenerate = await (0, confirm_1.default)({
360
+ message: 'Are you ready to generate adversarial test cases?',
361
+ default: true,
362
+ });
363
+ if (readyToGenerate) {
364
+ await (0, redteam_1.doGenerateRedteam)({
365
+ purpose,
366
+ plugins: plugins.map((plugin) => (typeof plugin === 'string' ? { id: plugin } : plugin)),
367
+ cache: false,
368
+ write: false,
369
+ output: 'redteam.yaml',
370
+ defaultConfig: {},
371
+ defaultConfigPath: configPath,
372
+ numTests,
373
+ });
374
+ }
375
+ else {
376
+ logger_1.default.info('\n' +
377
+ chalk_1.default.blue('To generate test cases later, use the command: ' +
378
+ chalk_1.default.bold('promptfoo generate redteam')));
379
+ }
302
380
  }
303
- telemetry_1.default.record('command_used', { name: 'redteam init' });
304
- await telemetry_1.default.send();
305
381
  }
306
- function redteamCommand(program) {
307
- const redteamCommand = program.command('redteam').description('Red team LLM applications');
308
- redteamCommand
382
+ function initRedteamCommand(program) {
383
+ program
309
384
  .command('init [directory]')
310
385
  .description('Initialize red teaming project')
311
386
  .action(async (directory) => {
@@ -1 +1 @@
1
- {"version":3,"file":"redteam.js","sourceRoot":"","sources":["../../../src/commands/redteam.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redteam.js","sourceRoot":"","sources":["../../../src/commands/redteam.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../../../src/commands/share.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,QAiE5C"}
1
+ {"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../../../src/commands/share.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAezC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,QAgE5C"}