@langwatch/mcp-server 2.1.0 → 3.0.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 (428) hide show
  1. package/.gitignore +7 -0
  2. package/.npmignore +41 -0
  3. package/CHANGELOG.md +218 -201
  4. package/CONTRIBUTING.md +10 -0
  5. package/README.md +70 -68
  6. package/dist/add-dashboard-widget-55UI6H22.js +44 -0
  7. package/dist/add-dashboard-widget-MJHIC3CC.js +45 -0
  8. package/dist/{archive-project-W3IKI7UL.js → archive-project-K5UD7A6X.js} +4 -4
  9. package/dist/archive-project-L4PAKT34.js +19 -0
  10. package/dist/{archive-run-plan-474OKHHU.js → archive-run-plan-5HSQG2HX.js} +4 -4
  11. package/dist/archive-run-plan-AOKNYQIO.js +15 -0
  12. package/dist/archive-scenario-2CWJW2VD.js +19 -0
  13. package/dist/{archive-scenario-V5UNYK26.js → archive-scenario-5IJQESHH.js} +4 -4
  14. package/dist/{archive-test-suite-O7FLDMXK.js → archive-test-suite-OPB7NFI7.js} +4 -4
  15. package/dist/archive-test-suite-ZC3TN6VH.js +15 -0
  16. package/dist/assign-prompt-tag-6DDE6ZZ5.js +23 -0
  17. package/dist/{assign-prompt-tag-Q46WRB6P.js → assign-prompt-tag-D7O23MJM.js} +8 -4
  18. package/dist/chunk-3YLN3ATJ.js +241 -0
  19. package/dist/{chunk-EYXMLE5X.js → chunk-4RX3G62A.js} +56 -47
  20. package/dist/{chunk-UF6XIGYR.js → chunk-6YZUOD34.js} +2 -5
  21. package/dist/{chunk-WVI5CJ6S.js → chunk-7AQLPVFL.js} +2 -2
  22. package/dist/chunk-7CZQDZ2K.js +319 -0
  23. package/dist/{chunk-RVAE2MEA.js → chunk-7GETGE6B.js} +7 -7
  24. package/dist/{chunk-OJLYYJWI.js → chunk-AASW2TO2.js} +7 -10
  25. package/dist/{chunk-QAMP3CGR.js → chunk-B4RFWIUP.js} +4 -4
  26. package/dist/{chunk-ZXKLPC2E.js → chunk-BIIKE3EI.js} +1 -1
  27. package/dist/{chunk-G4ZAZTZW.js → chunk-D2HS73VI.js} +7 -10
  28. package/dist/{chunk-37SMPMQS.js → chunk-DMM3JQ42.js} +7 -2
  29. package/dist/{chunk-WT4PO4A3.js → chunk-DULFP3MK.js} +10 -7
  30. package/dist/chunk-EYPJBL7P.js +516 -0
  31. package/dist/{chunk-NUFPTHKU.js → chunk-FOKVY3BK.js} +1 -1
  32. package/dist/chunk-GA5JUSPT.js +64 -0
  33. package/dist/{chunk-UJPXFA26.js → chunk-HHMNZAPD.js} +101 -74
  34. package/dist/chunk-HLQJXUR6.js +67 -0
  35. package/dist/{chunk-JTQJRNFJ.js → chunk-KILVK3FS.js} +4 -4
  36. package/dist/chunk-MOCU5XWF.js +79 -0
  37. package/dist/chunk-O2WGVCED.js +41 -0
  38. package/dist/{chunk-HV4DWKBI.js → chunk-O7EMWEVJ.js} +2 -4
  39. package/dist/{chunk-UFOYFYI7.js → chunk-QXLMHLRC.js} +6 -9
  40. package/dist/{chunk-QRO35SOM.js → chunk-R5YJIYPF.js} +981 -747
  41. package/dist/{chunk-JR6DJZOU.js → chunk-RABYBFX5.js} +4 -10
  42. package/dist/{chunk-SR6QPRIE.js → chunk-RFC2SBEX.js} +7 -13
  43. package/dist/chunk-SHSVN3SE.js +21 -0
  44. package/dist/{chunk-CKNAH5TG.js → chunk-U24EACC4.js} +3 -10
  45. package/dist/{chunk-56OGTS24.js → chunk-VOUGDY2O.js} +4 -11
  46. package/dist/chunk-WCKZDOGF.js +31 -0
  47. package/dist/chunk-XQYH52SI.js +129 -0
  48. package/dist/{chunk-7E4FZIYJ.js → chunk-XUIJYNRJ.js} +1 -1
  49. package/dist/{chunk-6DJDEXET.js → chunk-YCIUEZVK.js} +6 -12
  50. package/dist/config-2WQGMAEN.js +16 -0
  51. package/dist/config.cjs +109 -0
  52. package/dist/config.js +5 -4
  53. package/dist/{create-agent-JFJ2K6X3.js → create-agent-6JNLMYQD.js} +4 -4
  54. package/dist/create-agent-IRZOU4R5.js +23 -0
  55. package/dist/create-analytics-report-N4L4V5QL.js +19 -0
  56. package/dist/create-analytics-report-QEHXG7FU.js +18 -0
  57. package/dist/{create-annotation-EUXXQ6NS.js → create-annotation-CCEGIZ67.js} +10 -5
  58. package/dist/create-annotation-DTHCMWHB.js +29 -0
  59. package/dist/{create-api-key-BGBB76JX.js → create-api-key-JKM2DSZO.js} +5 -7
  60. package/dist/create-api-key-JPEUIXGM.js +24 -0
  61. package/dist/create-dataset-DJNXYJ5B.js +22 -0
  62. package/dist/{create-dataset-FD5VAXU4.js → create-dataset-WON4SOTC.js} +6 -6
  63. package/dist/create-dataset-records-TMEOTLTO.js +20 -0
  64. package/dist/{create-dataset-records-WQUXXOHI.js → create-dataset-records-UJBW3C7C.js} +5 -7
  65. package/dist/create-evaluator-N5AEHI4K.js +27 -0
  66. package/dist/{create-evaluator-6NV33Z52.js → create-evaluator-XYNY2YFY.js} +4 -4
  67. package/dist/create-mcp-server.cjs +9712 -0
  68. package/dist/create-mcp-server.js +2757 -10
  69. package/dist/{create-project-ZQ7TFIO2.js → create-project-EY4XZ7TH.js} +4 -4
  70. package/dist/create-project-YL345T5L.js +44 -0
  71. package/dist/{create-prompt-BS6QRCUU.js → create-prompt-JZQNQ7I3.js} +5 -7
  72. package/dist/create-prompt-ZUMQHHX7.js +37 -0
  73. package/dist/create-prompt-tag-CJ5FZ436.js +17 -0
  74. package/dist/{create-prompt-tag-FCQ5ELSQ.js → create-prompt-tag-JFP2Q3PO.js} +3 -3
  75. package/dist/create-scenario-CQU2SSFB.js +33 -0
  76. package/dist/{create-scenario-DRPTPXU3.js → create-scenario-S6OWWKJO.js} +5 -5
  77. package/dist/create-test-suite-OLGCAGJA.js +36 -0
  78. package/dist/{create-test-suite-ZIZCCFJ4.js → create-test-suite-Y7P2RI4L.js} +6 -6
  79. package/dist/create-trigger-4CNBTISJ.js +48 -0
  80. package/dist/create-trigger-RQ653WYF.js +49 -0
  81. package/dist/dashboards-BA7M6CMO.js +90 -0
  82. package/dist/dashboards-U663GUIB.js +91 -0
  83. package/dist/{delete-agent-SA4JMUZF.js → delete-agent-J2Q4DRZ2.js} +4 -4
  84. package/dist/delete-agent-ZAU4LTXB.js +18 -0
  85. package/dist/delete-analytics-report-QK6X7P4S.js +19 -0
  86. package/dist/delete-analytics-report-YUYLDHLL.js +18 -0
  87. package/dist/delete-annotation-7X4NYXXM.js +17 -0
  88. package/dist/{delete-annotation-X3KKK7QY.js → delete-annotation-KJOCDLV3.js} +4 -4
  89. package/dist/{delete-dataset-W6EZ44HY.js → delete-dataset-NXP7ZPPV.js} +5 -7
  90. package/dist/delete-dataset-RUTZBBVD.js +18 -0
  91. package/dist/{delete-dataset-records-7CNOTALB.js → delete-dataset-records-4Z7DZCDW.js} +5 -7
  92. package/dist/delete-dataset-records-75UAR5IS.js +19 -0
  93. package/dist/delete-evaluator-E3CUNGTQ.js +16 -0
  94. package/dist/delete-evaluator-RI4GALGX.js +15 -0
  95. package/dist/delete-prompt-tag-LE3WJPKS.js +17 -0
  96. package/dist/{delete-prompt-tag-QB3OCZUV.js → delete-prompt-tag-S4KBZTNG.js} +3 -3
  97. package/dist/delete-workflow-4CZFIQCQ.js +17 -0
  98. package/dist/{delete-workflow-NG2VXYYM.js → delete-workflow-PWQPDW6H.js} +4 -4
  99. package/dist/discover-evaluator-schema-UHWA5HVL.js +120 -0
  100. package/dist/discover-evaluator-schema-XKCLLCB3.js +118 -0
  101. package/dist/discover-scenario-schema-NOJY6S7E.js +137 -0
  102. package/dist/{discover-scenario-schema-W7KBXA4J.js → discover-scenario-schema-OOFIQKOG.js} +37 -17
  103. package/dist/discover-schema-7WHIIATI.js +442 -0
  104. package/dist/{discover-schema-L6QDPON3.js → discover-schema-J2ANOBKO.js} +181 -186
  105. package/dist/get-agent-5T3CXQOR.js +69 -0
  106. package/dist/{get-agent-7THF7HCU.js → get-agent-ZKYQJUQ7.js} +15 -11
  107. package/dist/get-analytics-4MPEK4KV.js +79 -0
  108. package/dist/get-analytics-ZLI3A4F5.js +80 -0
  109. package/dist/get-analytics-report-JCKYMA2S.js +29 -0
  110. package/dist/get-analytics-report-SKIP2JWH.js +30 -0
  111. package/dist/get-dataset-APGZBYMH.js +64 -0
  112. package/dist/get-dataset-LWXDVMVE.js +63 -0
  113. package/dist/get-evaluator-3A7BJBAB.js +47 -0
  114. package/dist/{get-evaluator-RZ44UIN6.js → get-evaluator-IWNJINRY.js} +4 -4
  115. package/dist/get-project-EQVB4LEL.js +26 -0
  116. package/dist/{get-project-QSQEAB33.js → get-project-RK6AJTEP.js} +4 -4
  117. package/dist/{get-prompt-GVKXF5NL.js → get-prompt-TLG2T2DS.js} +53 -58
  118. package/dist/get-prompt-ZER557X3.js +94 -0
  119. package/dist/get-run-plan-5X7DDJRN.js +58 -0
  120. package/dist/{get-run-plan-NY7J5GRE.js → get-run-plan-PEHRO5M3.js} +7 -9
  121. package/dist/{get-scenario-Q3LLQE4T.js → get-scenario-375W5D6I.js} +5 -5
  122. package/dist/get-scenario-UQX45ZZO.js +37 -0
  123. package/dist/{get-simulation-run-WINEYDMK.js → get-simulation-run-2NBXJADG.js} +26 -22
  124. package/dist/get-simulation-run-QZTLGL7W.js +69 -0
  125. package/dist/{get-test-suite-4HKA7OKS.js → get-test-suite-GVIBDG7K.js} +5 -5
  126. package/dist/get-test-suite-OODIR3RI.js +48 -0
  127. package/dist/{get-trace-RCUV7N4O.js → get-trace-AGCHVPJK.js} +11 -13
  128. package/dist/get-trace-KJLYAZRC.js +45 -0
  129. package/dist/get-workflow-3TV2YYC5.js +25 -0
  130. package/dist/{get-workflow-EEOC7Y45.js → get-workflow-7LZSVPP2.js} +4 -4
  131. package/dist/{http-security-EU3CHTY7.js → http-security-DNLBNQZL.js} +2 -2
  132. package/dist/{http-server-WCDUARTH.js → http-server-7CCN3EHJ.js} +4249 -325
  133. package/dist/index.js +59595 -38027
  134. package/dist/langwatch-api-analytics-reports-6CF6KUET.js +17 -0
  135. package/dist/langwatch-api-analytics-reports-RPFB5AO5.js +18 -0
  136. package/dist/{langwatch-api-annotations-6DHVZWUK.js → langwatch-api-annotations-H4AI4TKG.js} +4 -4
  137. package/dist/langwatch-api-annotations-QSJNUQQS.js +17 -0
  138. package/dist/langwatch-api-monitors-ENHLOL3S.js +47 -0
  139. package/dist/{langwatch-api-monitors-6ISFJ7WX.js → langwatch-api-monitors-OHSGADTH.js} +11 -16
  140. package/dist/langwatch-api-secrets-AGW6UUMD.js +55 -0
  141. package/dist/langwatch-api-secrets-CLTS766Q.js +56 -0
  142. package/dist/langwatch-api-triggers-G5UWFNN2.js +22 -0
  143. package/dist/langwatch-api-triggers-QMR7KEXW.js +23 -0
  144. package/dist/langwatch-api-workflows-HKTBIKKY.js +15 -0
  145. package/dist/{langwatch-api-workflows-6UJL5U4Z.js → langwatch-api-workflows-OMROZH2O.js} +4 -4
  146. package/dist/{list-agents-AMVDQPQL.js → list-agents-BYWDNAHT.js} +4 -4
  147. package/dist/list-agents-MG24MHZE.js +42 -0
  148. package/dist/list-analytics-reports-G3EPWGSQ.js +32 -0
  149. package/dist/list-analytics-reports-PPWIFRES.js +33 -0
  150. package/dist/list-annotations-QCLGEK5A.js +38 -0
  151. package/dist/{list-annotations-6PR5NLIC.js → list-annotations-Y4EUBJHG.js} +10 -5
  152. package/dist/list-api-keys-DAVOBPFK.js +42 -0
  153. package/dist/{list-api-keys-GVPNBIHQ.js → list-api-keys-JMW5WRXX.js} +10 -5
  154. package/dist/list-dashboards-2P3VJFRS.js +29 -0
  155. package/dist/list-dashboards-MW5O3MKH.js +30 -0
  156. package/dist/list-dataset-records-KEHT7G6Q.js +43 -0
  157. package/dist/{list-dataset-records-O67HZ35Y.js → list-dataset-records-KMLLMZAZ.js} +14 -10
  158. package/dist/{list-datasets-WXZL6UMP.js → list-datasets-P3JK2ZHS.js} +9 -13
  159. package/dist/list-datasets-Z7OOE4KI.js +56 -0
  160. package/dist/{list-evaluators-PAX72WCN.js → list-evaluators-7RRESBOU.js} +5 -7
  161. package/dist/list-evaluators-VATJVOHR.js +32 -0
  162. package/dist/{list-model-providers-VVLZMLCX.js → list-model-providers-OXDRPUCJ.js} +4 -4
  163. package/dist/list-model-providers-VXQJWDXU.js +35 -0
  164. package/dist/{list-projects-AQVI6SUK.js → list-projects-HUVK7L3W.js} +5 -7
  165. package/dist/list-projects-X72ZXVY5.js +40 -0
  166. package/dist/{list-prompt-tags-WZFBJOHG.js → list-prompt-tags-3I3LWFIR.js} +3 -3
  167. package/dist/list-prompt-tags-DRHUH2ND.js +23 -0
  168. package/dist/list-prompts-6DX3QECJ.js +30 -0
  169. package/dist/{list-prompts-BQOHRHYT.js → list-prompts-PS423RU3.js} +4 -6
  170. package/dist/list-run-plans-5SXPOV3X.js +45 -0
  171. package/dist/{list-run-plans-UBAU2DGH.js → list-run-plans-6VNHINPY.js} +5 -5
  172. package/dist/list-scenarios-EQWCW7Q4.js +45 -0
  173. package/dist/{list-scenarios-MS4IUIVM.js → list-scenarios-GKNH3YND.js} +13 -11
  174. package/dist/{list-simulation-runs-D6YF4ZOU.js → list-simulation-runs-KHY7KALI.js} +12 -8
  175. package/dist/list-simulation-runs-PUDK32C2.js +53 -0
  176. package/dist/list-test-suites-7H2DRILK.js +34 -0
  177. package/dist/{list-test-suites-L7R2O6DR.js → list-test-suites-GY56LGLY.js} +4 -4
  178. package/dist/list-trigger-fires-7RZUP54Y.js +19 -0
  179. package/dist/list-trigger-fires-OZUF65LI.js +20 -0
  180. package/dist/list-triggers-BGUCUXTJ.js +45 -0
  181. package/dist/list-triggers-XC5KMX4C.js +46 -0
  182. package/dist/list-workflows-55NYC3PC.js +33 -0
  183. package/dist/{list-workflows-6MV4XJHF.js → list-workflows-HV7FUWZA.js} +5 -7
  184. package/dist/{rename-prompt-tag-K5LQ4CY6.js → rename-prompt-tag-2I7Z5FCY.js} +3 -3
  185. package/dist/rename-prompt-tag-SZYTOWDX.js +18 -0
  186. package/dist/{rename-test-suite-NTYHAO5X.js → rename-test-suite-27AYY33K.js} +4 -4
  187. package/dist/rename-test-suite-CLIEPZDO.js +20 -0
  188. package/dist/report-issue-5HSL7CNB.js +924 -0
  189. package/dist/{report-issue-RHZZ33IS.js → report-issue-N7ND5TM6.js} +107 -67
  190. package/dist/{rerun-run-plan-MUDWJBE4.js → rerun-run-plan-O3VUZ6CG.js} +5 -5
  191. package/dist/rerun-run-plan-OJTVVGJI.js +21 -0
  192. package/dist/{revoke-api-key-6LAZ3QZZ.js → revoke-api-key-BU6BKGCG.js} +4 -4
  193. package/dist/revoke-api-key-NZNCFOIR.js +15 -0
  194. package/dist/run-agent-244O4Y5M.js +75 -0
  195. package/dist/run-agent-HPCGZGYW.js +74 -0
  196. package/dist/run-plan-2ZPGGZ4H.js +38 -0
  197. package/dist/{run-plan-T4ZYOZGA.js → run-plan-KSXUYQT3.js} +7 -7
  198. package/dist/run-query-4LMOQ5UW.js +47 -0
  199. package/dist/run-query-BQUHIUC2.js +46 -0
  200. package/dist/{run-test-suite-L4MZ7G4D.js → run-test-suite-P3WLVPXC.js} +6 -6
  201. package/dist/run-test-suite-UEOMCON6.js +25 -0
  202. package/dist/run-workflow-EFZ6HG5B.js +36 -0
  203. package/dist/{run-workflow-DFIS23AP.js → run-workflow-I4IHEN54.js} +4 -4
  204. package/dist/search-traces-6IR7PR4L.js +170 -0
  205. package/dist/search-traces-BYML2NQ4.js +171 -0
  206. package/dist/set-model-provider-RBNGWFVI.js +33 -0
  207. package/dist/{set-model-provider-XRNMFOVR.js → set-model-provider-SHEVKWRC.js} +4 -4
  208. package/dist/{update-agent-DUWNYBNA.js → update-agent-PTKTM2B5.js} +4 -4
  209. package/dist/update-agent-ZPXWRMS2.js +20 -0
  210. package/dist/update-dashboard-widget-HKCBXH7X.js +62 -0
  211. package/dist/update-dashboard-widget-IP2TTQ5G.js +63 -0
  212. package/dist/update-dataset-GHIN6JR3.js +22 -0
  213. package/dist/{update-dataset-YSOMDCOB.js → update-dataset-IRVMY5PF.js} +6 -6
  214. package/dist/update-dataset-record-6VI7K2CL.js +19 -0
  215. package/dist/{update-dataset-record-DEA2ITYR.js → update-dataset-record-Z3L7ACNF.js} +4 -4
  216. package/dist/update-evaluator-5NLNE6VY.js +24 -0
  217. package/dist/{update-evaluator-NH7Q5GWV.js → update-evaluator-FEH7H6NS.js} +4 -4
  218. package/dist/update-project-75H3LDQT.js +24 -0
  219. package/dist/{update-project-Q26FBSYH.js → update-project-QPR3QX55.js} +4 -4
  220. package/dist/update-prompt-BCDFTNLK.js +140 -0
  221. package/dist/{update-prompt-ZQQ2C3KU.js → update-prompt-NPRXYSWA.js} +27 -29
  222. package/dist/update-scenario-BNOMDCMV.js +34 -0
  223. package/dist/{update-scenario-WUX34JAR.js → update-scenario-EM5XGMB7.js} +5 -5
  224. package/package.json +35 -39
  225. package/pyproject.toml +23 -8
  226. package/src/config.d.ts +6 -0
  227. package/src/config.ts +22 -29
  228. package/src/create-mcp-server.ts +887 -634
  229. package/src/documentation-fetch.ts +21 -20
  230. package/src/http-security.ts +166 -135
  231. package/src/http-server.ts +189 -224
  232. package/src/index.ts +14 -16
  233. package/src/langwatch-api-agents.ts +18 -21
  234. package/src/langwatch-api-analytics-reports.ts +62 -0
  235. package/src/langwatch-api-annotations.ts +11 -12
  236. package/src/langwatch-api-api-keys.ts +8 -9
  237. package/src/langwatch-api-dashboard-widgets.ts +47 -0
  238. package/src/langwatch-api-dashboards.ts +109 -24
  239. package/src/langwatch-api-datasets.ts +98 -32
  240. package/src/langwatch-api-evaluators.ts +13 -19
  241. package/src/langwatch-api-model-providers.ts +4 -4
  242. package/src/langwatch-api-monitors.ts +14 -18
  243. package/src/langwatch-api-projects.ts +10 -9
  244. package/src/langwatch-api-query.ts +114 -0
  245. package/src/langwatch-api-run-plans.ts +12 -29
  246. package/src/langwatch-api-scenarios.ts +9 -11
  247. package/src/langwatch-api-secrets.ts +31 -24
  248. package/src/langwatch-api-simulation-runs.ts +6 -8
  249. package/src/langwatch-api-test-suites.ts +14 -33
  250. package/src/langwatch-api-triggers.ts +96 -34
  251. package/src/langwatch-api-workflows.ts +9 -9
  252. package/src/langwatch-api.ts +118 -124
  253. package/src/public-http-request.ts +21 -12
  254. package/src/schemas/analytics-metrics.ts +3 -15
  255. package/src/schemas/create-dataset.ts +3 -4
  256. package/src/schemas/run-plan.ts +13 -29
  257. package/src/schemas/suite-fields.ts +6 -23
  258. package/src/schemas/triggers.ts +365 -0
  259. package/src/schemas/widget-sources.ts +33 -0
  260. package/src/tools/add-dashboard-widget.ts +51 -0
  261. package/src/tools/archive-project.ts +2 -4
  262. package/src/tools/archive-run-plan.ts +2 -4
  263. package/src/tools/archive-scenario.ts +2 -4
  264. package/src/tools/archive-test-suite.ts +2 -4
  265. package/src/tools/assign-prompt-tag.ts +6 -2
  266. package/src/tools/create-agent.ts +1 -1
  267. package/src/tools/create-analytics-report.ts +7 -0
  268. package/src/tools/create-annotation.ts +7 -2
  269. package/src/tools/create-api-key.ts +4 -6
  270. package/src/tools/create-dataset-records.ts +4 -8
  271. package/src/tools/create-dataset.ts +5 -7
  272. package/src/tools/create-evaluator.ts +3 -5
  273. package/src/tools/create-project.ts +2 -2
  274. package/src/tools/create-prompt-tag.ts +2 -4
  275. package/src/tools/create-prompt.ts +9 -18
  276. package/src/tools/create-scenario.ts +5 -7
  277. package/src/tools/create-test-suite.ts +4 -9
  278. package/src/tools/create-trigger.ts +55 -0
  279. package/src/tools/dashboard-widget-queries.ts +45 -0
  280. package/src/tools/dashboards.ts +104 -0
  281. package/src/tools/delete-agent.ts +1 -1
  282. package/src/tools/delete-analytics-report.ts +7 -0
  283. package/src/tools/delete-annotation.ts +1 -1
  284. package/src/tools/delete-dataset-records.ts +4 -8
  285. package/src/tools/delete-dataset.ts +3 -7
  286. package/src/tools/delete-evaluator.ts +4 -6
  287. package/src/tools/delete-prompt-tag.ts +2 -4
  288. package/src/tools/delete-workflow.ts +1 -1
  289. package/src/tools/discover-evaluator-schema.ts +34 -25
  290. package/src/tools/discover-scenario-schema.ts +41 -21
  291. package/src/tools/discover-schema.ts +149 -27
  292. package/src/tools/experiment-run-status.ts +2 -8
  293. package/src/tools/format-dataset-mutation.ts +5 -10
  294. package/src/tools/format-run-plan.ts +7 -21
  295. package/src/tools/format-scenario.ts +2 -4
  296. package/src/tools/format-suite-details.ts +6 -12
  297. package/src/tools/get-agent.ts +15 -6
  298. package/src/tools/get-analytics-report.ts +23 -0
  299. package/src/tools/get-analytics.ts +52 -46
  300. package/src/tools/get-dataset.ts +34 -16
  301. package/src/tools/get-evaluator.ts +4 -11
  302. package/src/tools/get-experiment-results.ts +219 -186
  303. package/src/tools/get-project.ts +2 -4
  304. package/src/tools/get-prompt.ts +63 -84
  305. package/src/tools/get-run-plan.ts +4 -6
  306. package/src/tools/get-scenario.ts +4 -6
  307. package/src/tools/get-simulation-run.ts +27 -24
  308. package/src/tools/get-test-suite.ts +2 -5
  309. package/src/tools/get-trace.ts +16 -17
  310. package/src/tools/get-workflow.ts +1 -1
  311. package/src/tools/list-agents.ts +1 -1
  312. package/src/tools/list-analytics-reports.ts +27 -0
  313. package/src/tools/list-annotations.ts +8 -5
  314. package/src/tools/list-api-keys.ts +7 -2
  315. package/src/tools/list-dashboards.ts +20 -21
  316. package/src/tools/list-dataset-records.ts +8 -6
  317. package/src/tools/list-datasets.ts +12 -23
  318. package/src/tools/list-evaluators.ts +4 -8
  319. package/src/tools/list-experiment-runs.ts +5 -9
  320. package/src/tools/list-experiments.ts +5 -11
  321. package/src/tools/list-model-providers.ts +3 -5
  322. package/src/tools/list-projects.ts +2 -4
  323. package/src/tools/list-prompt-tags.ts +3 -3
  324. package/src/tools/list-prompts.ts +4 -8
  325. package/src/tools/list-run-plans.ts +2 -2
  326. package/src/tools/list-scenarios.ts +14 -15
  327. package/src/tools/list-simulation-runs.ts +8 -4
  328. package/src/tools/list-test-suites.ts +1 -1
  329. package/src/tools/list-trigger-fires.ts +17 -0
  330. package/src/tools/list-triggers.ts +39 -0
  331. package/src/tools/list-workflows.ts +2 -4
  332. package/src/tools/rename-prompt-tag.ts +1 -1
  333. package/src/tools/rename-test-suite.ts +2 -5
  334. package/src/tools/report-issue.ts +7 -9
  335. package/src/tools/rerun-run-plan.ts +2 -5
  336. package/src/tools/revoke-api-key.ts +2 -4
  337. package/src/tools/run-agent.ts +29 -26
  338. package/src/tools/run-experiment.ts +37 -34
  339. package/src/tools/run-plan.ts +4 -7
  340. package/src/tools/run-query.ts +47 -0
  341. package/src/tools/run-test-suite.ts +4 -7
  342. package/src/tools/run-workflow.ts +2 -5
  343. package/src/tools/search-traces.ts +161 -47
  344. package/src/tools/set-model-provider.ts +4 -6
  345. package/src/tools/test-agent.ts +2 -2
  346. package/src/tools/update-agent.ts +1 -1
  347. package/src/tools/update-dashboard-widget.ts +86 -0
  348. package/src/tools/update-dataset-record.ts +1 -1
  349. package/src/tools/update-dataset.ts +5 -7
  350. package/src/tools/update-evaluator.ts +3 -5
  351. package/src/tools/update-project.ts +1 -1
  352. package/src/tools/update-prompt.ts +44 -59
  353. package/src/tools/update-scenario.ts +5 -7
  354. package/src/tools/update-test-suite.ts +6 -11
  355. package/src/utils/date-parsing.ts +1 -1
  356. package/src/utils/escape-markdown.ts +3 -8
  357. package/src/utils/format-evaluations.ts +6 -6
  358. package/src/utils/markdown-table.ts +58 -0
  359. package/src/utils/trace-id-shape.ts +20 -0
  360. package/tsconfig.app.json +24 -0
  361. package/tsconfig.json +14 -12
  362. package/uv.lock +667 -341
  363. package/vitest.integration.config.js +10 -0
  364. package/vitest.scenario.config.js +9 -0
  365. package/.eslintrc.cjs +0 -36
  366. package/dist/chunk-AN4OUA4D.js +0 -86
  367. package/dist/chunk-GELJ2MQR.js +0 -226
  368. package/dist/chunk-K37ZNPXK.js +0 -24
  369. package/dist/chunk-S4GVX36W.js +0 -39
  370. package/dist/config.d.ts +0 -17
  371. package/dist/create-dashboard-Z76AIPLS.js +0 -19
  372. package/dist/create-mcp-server.d.ts +0 -10
  373. package/dist/delete-dashboard-LYMRPF27.js +0 -19
  374. package/dist/delete-evaluator-RKYC4TNB.js +0 -16
  375. package/dist/discover-evaluator-schema-ESSHQGPY.js +0 -1912
  376. package/dist/get-analytics-R6AZD3AW.js +0 -73
  377. package/dist/get-dashboard-P4WWVHFU.js +0 -30
  378. package/dist/get-dataset-AKTYSQDI.js +0 -49
  379. package/dist/index.d.ts +0 -2
  380. package/dist/langwatch-api-dashboards-2KJL2M42.js +0 -18
  381. package/dist/langwatch-api-secrets-OEBD6GBU.js +0 -41
  382. package/dist/langwatch-api-triggers-5E6DDGX6.js +0 -31
  383. package/dist/list-dashboards-Z3BZKDGF.js +0 -33
  384. package/dist/run-agent-CAGWGTYT.js +0 -72
  385. package/dist/search-traces-4XTJYXIK.js +0 -79
  386. package/src/__tests__/agent-tools.unit.test.ts +0 -257
  387. package/src/__tests__/all-tools.integration.test.ts +0 -1872
  388. package/src/__tests__/config.unit.test.ts +0 -202
  389. package/src/__tests__/datasets.integration.test.ts +0 -620
  390. package/src/__tests__/datasets.unit.test.ts +0 -244
  391. package/src/__tests__/date-parsing.unit.test.ts +0 -78
  392. package/src/__tests__/discover-evaluator-schema.unit.test.ts +0 -89
  393. package/src/__tests__/discover-schema.unit.test.ts +0 -118
  394. package/src/__tests__/docker.integration.test.ts +0 -318
  395. package/src/__tests__/documentation-fetch-security.integration.test.ts +0 -182
  396. package/src/__tests__/evaluator-tools.unit.test.ts +0 -262
  397. package/src/__tests__/experiment-list-tools.unit.test.ts +0 -157
  398. package/src/__tests__/experiment-status.unit.test.ts +0 -194
  399. package/src/__tests__/feature-map-tool-drift.unit.test.ts +0 -93
  400. package/src/__tests__/get-experiment-results.unit.test.ts +0 -313
  401. package/src/__tests__/http-security-origin.unit.test.ts +0 -97
  402. package/src/__tests__/http-security-sessions.unit.test.ts +0 -209
  403. package/src/__tests__/http-security-verifier.unit.test.ts +0 -248
  404. package/src/__tests__/http-server-allocation.integration.test.ts +0 -279
  405. package/src/__tests__/http-server-origin.integration.test.ts +0 -169
  406. package/src/__tests__/http-server-session-auth.integration.test.ts +0 -341
  407. package/src/__tests__/http-transport.integration.test.ts +0 -395
  408. package/src/__tests__/integration.integration.test.ts +0 -284
  409. package/src/__tests__/langwatch-api.unit.test.ts +0 -661
  410. package/src/__tests__/model-provider-tools.unit.test.ts +0 -190
  411. package/src/__tests__/project-api-key-tools.unit.test.ts +0 -451
  412. package/src/__tests__/prompt-response-types.unit.test.ts +0 -51
  413. package/src/__tests__/prompts.integration.test.ts +0 -736
  414. package/src/__tests__/public-http-request-security.integration.test.ts +0 -118
  415. package/src/__tests__/report-issue.integration.test.ts +0 -147
  416. package/src/__tests__/run-plan-tools.unit.test.ts +0 -565
  417. package/src/__tests__/scenario-tools.integration.test.ts +0 -286
  418. package/src/__tests__/scenario-tools.unit.test.ts +0 -207
  419. package/src/__tests__/schemas.unit.test.ts +0 -85
  420. package/src/__tests__/simulation-run-tools.unit.test.ts +0 -116
  421. package/src/__tests__/support/http-server-harness.ts +0 -138
  422. package/src/__tests__/test-suite-tools.unit.test.ts +0 -615
  423. package/src/__tests__/tools.integration.test.ts +0 -896
  424. package/src/schemas/filter-fields.ts +0 -119
  425. package/src/schemas/index.ts +0 -9
  426. package/src/tools/create-dashboard.ts +0 -7
  427. package/src/tools/delete-dashboard.ts +0 -7
  428. package/src/tools/get-dashboard.ts +0 -22
@@ -0,0 +1,19 @@
1
+ import {
2
+ updateDatasetRecord
3
+ } from "./chunk-XQYH52SI.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
+
7
+ // src/tools/update-dataset-record.ts
8
+ async function handleUpdateDatasetRecord(params) {
9
+ const result = await updateDatasetRecord(params);
10
+ const lines = [];
11
+ lines.push("Record updated successfully!\n");
12
+ lines.push(`**Record ID**: ${result.id}`);
13
+ lines.push(`**Entry**: ${JSON.stringify(result.entry)}`);
14
+ return lines.join("\n");
15
+ }
16
+ export {
17
+ handleUpdateDatasetRecord
18
+ };
19
+ //# sourceMappingURL=update-dataset-record-6VI7K2CL.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  updateDatasetRecord
3
- } from "./chunk-AN4OUA4D.js";
4
- import "./chunk-GELJ2MQR.js";
5
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-XQYH52SI.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
6
  import "./chunk-SAS5OB7F.js";
7
7
 
8
8
  // src/tools/update-dataset-record.ts
@@ -17,4 +17,4 @@ async function handleUpdateDatasetRecord(params) {
17
17
  export {
18
18
  handleUpdateDatasetRecord
19
19
  };
20
- //# sourceMappingURL=update-dataset-record-DEA2ITYR.js.map
20
+ //# sourceMappingURL=update-dataset-record-Z3L7ACNF.js.map
@@ -0,0 +1,24 @@
1
+ import {
2
+ getEvaluatorType,
3
+ updateEvaluator
4
+ } from "./chunk-AASW2TO2.js";
5
+ import "./chunk-7CZQDZ2K.js";
6
+ import "./chunk-DULFP3MK.js";
7
+
8
+ // src/tools/update-evaluator.ts
9
+ async function handleUpdateEvaluator(params) {
10
+ const { evaluatorId, ...data } = params;
11
+ const result = await updateEvaluator({ id: evaluatorId, ...data });
12
+ const evaluatorType = getEvaluatorType(result);
13
+ const lines = [];
14
+ lines.push("Evaluator updated successfully!\n");
15
+ lines.push(`**ID**: ${result.id}`);
16
+ if (result.slug) lines.push(`**Slug**: ${result.slug}`);
17
+ lines.push(`**Name**: ${result.name}`);
18
+ if (evaluatorType) lines.push(`**Evaluator Type**: ${evaluatorType}`);
19
+ return lines.join("\n");
20
+ }
21
+ export {
22
+ handleUpdateEvaluator
23
+ };
24
+ //# sourceMappingURL=update-evaluator-5NLNE6VY.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  getEvaluatorType,
3
3
  updateEvaluator
4
- } from "./chunk-OJLYYJWI.js";
5
- import "./chunk-GELJ2MQR.js";
6
- import "./chunk-WT4PO4A3.js";
4
+ } from "./chunk-AASW2TO2.js";
5
+ import "./chunk-7CZQDZ2K.js";
6
+ import "./chunk-DULFP3MK.js";
7
7
  import "./chunk-SAS5OB7F.js";
8
8
 
9
9
  // src/tools/update-evaluator.ts
@@ -22,4 +22,4 @@ async function handleUpdateEvaluator(params) {
22
22
  export {
23
23
  handleUpdateEvaluator
24
24
  };
25
- //# sourceMappingURL=update-evaluator-NH7Q5GWV.js.map
25
+ //# sourceMappingURL=update-evaluator-FEH7H6NS.js.map
@@ -0,0 +1,24 @@
1
+ import {
2
+ updateProject
3
+ } from "./chunk-D2HS73VI.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
+
7
+ // src/tools/update-project.ts
8
+ async function handleUpdateProject(params) {
9
+ const project = await updateProject(params);
10
+ const lines = [];
11
+ lines.push(`Project updated successfully!
12
+ `);
13
+ lines.push(`**Name**: ${project.name}`);
14
+ lines.push(`**ID**: ${project.id}`);
15
+ lines.push(`**Slug**: ${project.slug}`);
16
+ lines.push(`**Language**: ${project.language}`);
17
+ lines.push(`**Framework**: ${project.framework}`);
18
+ lines.push(`**PII Redaction**: ${project.piiRedactionLevel}`);
19
+ return lines.join("\n");
20
+ }
21
+ export {
22
+ handleUpdateProject
23
+ };
24
+ //# sourceMappingURL=update-project-75H3LDQT.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  updateProject
3
- } from "./chunk-G4ZAZTZW.js";
4
- import "./chunk-GELJ2MQR.js";
5
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-D2HS73VI.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
6
  import "./chunk-SAS5OB7F.js";
7
7
 
8
8
  // src/tools/update-project.ts
@@ -22,4 +22,4 @@ async function handleUpdateProject(params) {
22
22
  export {
23
23
  handleUpdateProject
24
24
  };
25
- //# sourceMappingURL=update-project-Q26FBSYH.js.map
25
+ //# sourceMappingURL=update-project-QPR3QX55.js.map
@@ -0,0 +1,140 @@
1
+ import {
2
+ getPrompt,
3
+ getPromptVersions,
4
+ updatePrompt
5
+ } from "./chunk-7CZQDZ2K.js";
6
+ import "./chunk-DULFP3MK.js";
7
+
8
+ // src/tools/update-prompt.ts
9
+ async function handleUpdatePrompt(params) {
10
+ const { idOrHandle, ...data } = params;
11
+ let updated;
12
+ try {
13
+ updated = await updatePrompt(idOrHandle, data);
14
+ } catch (err) {
15
+ if (params.tags && params.tags.length > 0) {
16
+ return renderTagFailure({ idOrHandle, params });
17
+ }
18
+ throw err;
19
+ }
20
+ return renderUpdateSuccess({ idOrHandle, params, updated });
21
+ }
22
+ async function identifyNewVersion({
23
+ idOrHandle,
24
+ prompt,
25
+ commitMessage
26
+ }) {
27
+ if (prompt.commitMessage === commitMessage) {
28
+ return { version: prompt.version, versionId: prompt.versionId };
29
+ }
30
+ try {
31
+ const versions = await getPromptVersions(idOrHandle);
32
+ const match = (Array.isArray(versions) ? versions : []).find(
33
+ (v) => v.commitMessage === commitMessage
34
+ );
35
+ if (match) return { version: match.version, versionId: match.versionId };
36
+ } catch {
37
+ }
38
+ return void 0;
39
+ }
40
+ function deploymentTagsOf(prompt) {
41
+ return (prompt.tags ?? []).filter((tag) => tag?.name !== "latest");
42
+ }
43
+ function deploymentLines({
44
+ prompt,
45
+ newVersion
46
+ }) {
47
+ const allDeployments = deploymentTagsOf(prompt);
48
+ const newTags = allDeployments.filter((tag) => newVersion.versionId != null && tag.versionId === newVersion.versionId).map((tag) => tag.name);
49
+ if (newTags.length > 0) {
50
+ return [`**Deployed to**: ${newTags.join(", ")}`];
51
+ }
52
+ const lines = [`**Deployment**: not deployed`];
53
+ const otherTags = Array.from(
54
+ new Set(
55
+ allDeployments.filter((tag) => tag.versionId !== newVersion.versionId).map((tag) => tag.name)
56
+ )
57
+ );
58
+ if (otherTags.length > 0) {
59
+ lines.push(`**Existing deployments (untouched)**: ${otherTags.join(", ")}`);
60
+ }
61
+ return lines;
62
+ }
63
+ async function renderUpdateSuccess({
64
+ idOrHandle,
65
+ params,
66
+ updated
67
+ }) {
68
+ let prompt;
69
+ try {
70
+ prompt = await getPrompt(idOrHandle, {
71
+ version: void 0,
72
+ tag: void 0
73
+ });
74
+ } catch {
75
+ const lines2 = [];
76
+ lines2.push("Prompt updated successfully!\n");
77
+ if (updated?.id) lines2.push(`**ID**: ${updated.id}`);
78
+ if (updated?.handle) lines2.push(`**Handle**: ${updated.handle}`);
79
+ lines2.push(`**Commit**: ${params.commitMessage}`);
80
+ lines2.push(
81
+ `**Note**: the update succeeded, but version and deployment details are unavailable (confirmation read failed). Run platform_get_prompt to inspect the current state. Do not retry the update.`
82
+ );
83
+ return lines2.join("\n");
84
+ }
85
+ const newVersion = await identifyNewVersion({
86
+ idOrHandle,
87
+ prompt,
88
+ commitMessage: params.commitMessage
89
+ });
90
+ const lines = [];
91
+ lines.push("Prompt updated successfully!\n");
92
+ if (prompt.id) lines.push(`**ID**: ${prompt.id}`);
93
+ if (prompt.handle) lines.push(`**Handle**: ${prompt.handle}`);
94
+ if (newVersion?.version != null) lines.push(`**Version**: v${newVersion.version}`);
95
+ if (newVersion?.versionId) lines.push(`**Version ID**: ${newVersion.versionId}`);
96
+ lines.push(`**Commit**: ${params.commitMessage}`);
97
+ if (!newVersion) {
98
+ lines.push(
99
+ `**Note**: update succeeded, but the new version could not be identified in the re-fetched prompt \u2014 version and deployment details are unavailable. Run platform_get_prompt to inspect the current state.`
100
+ );
101
+ }
102
+ if (newVersion) {
103
+ lines.push(...deploymentLines({ prompt, newVersion }));
104
+ }
105
+ return lines.join("\n");
106
+ }
107
+ async function renderTagFailure({
108
+ idOrHandle,
109
+ params
110
+ }) {
111
+ const failedTags = params.tags?.join(", ") ?? "";
112
+ let prompt;
113
+ try {
114
+ prompt = await getPrompt(idOrHandle, {
115
+ version: void 0,
116
+ tag: void 0
117
+ });
118
+ } catch {
119
+ return `Prompt update failed: could not assign tag(s) ${failedTags} to "${idOrHandle}". Whether a new version was created could not be confirmed (confirmation read failed) \u2014 run platform_get_prompt before retrying.`;
120
+ }
121
+ const matched = await identifyNewVersion({
122
+ idOrHandle,
123
+ prompt,
124
+ commitMessage: params.commitMessage
125
+ });
126
+ if (matched) {
127
+ const lines = [];
128
+ lines.push("Prompt update partially failed.\n");
129
+ lines.push("A new version was created, but assigning the requested tag(s) failed.");
130
+ if (matched.versionId) lines.push(`**Version ID**: ${matched.versionId}`);
131
+ lines.push(`**Status**: created, untagged`);
132
+ lines.push(`**Failed tag(s)**: ${failedTags}`);
133
+ return lines.join("\n");
134
+ }
135
+ return `Prompt update failed: could not assign tag(s) ${failedTags} to "${idOrHandle}".`;
136
+ }
137
+ export {
138
+ handleUpdatePrompt
139
+ };
140
+ //# sourceMappingURL=update-prompt-BCDFTNLK.js.map
@@ -2,8 +2,8 @@ import {
2
2
  getPrompt,
3
3
  getPromptVersions,
4
4
  updatePrompt
5
- } from "./chunk-GELJ2MQR.js";
6
- import "./chunk-WT4PO4A3.js";
5
+ } from "./chunk-7CZQDZ2K.js";
6
+ import "./chunk-DULFP3MK.js";
7
7
  import "./chunk-SAS5OB7F.js";
8
8
 
9
9
  // src/tools/update-prompt.ts
@@ -41,6 +41,26 @@ async function identifyNewVersion({
41
41
  function deploymentTagsOf(prompt) {
42
42
  return (prompt.tags ?? []).filter((tag) => tag?.name !== "latest");
43
43
  }
44
+ function deploymentLines({
45
+ prompt,
46
+ newVersion
47
+ }) {
48
+ const allDeployments = deploymentTagsOf(prompt);
49
+ const newTags = allDeployments.filter((tag) => newVersion.versionId != null && tag.versionId === newVersion.versionId).map((tag) => tag.name);
50
+ if (newTags.length > 0) {
51
+ return [`**Deployed to**: ${newTags.join(", ")}`];
52
+ }
53
+ const lines = [`**Deployment**: not deployed`];
54
+ const otherTags = Array.from(
55
+ new Set(
56
+ allDeployments.filter((tag) => tag.versionId !== newVersion.versionId).map((tag) => tag.name)
57
+ )
58
+ );
59
+ if (otherTags.length > 0) {
60
+ lines.push(`**Existing deployments (untouched)**: ${otherTags.join(", ")}`);
61
+ }
62
+ return lines;
63
+ }
44
64
  async function renderUpdateSuccess({
45
65
  idOrHandle,
46
66
  params,
@@ -72,10 +92,8 @@ async function renderUpdateSuccess({
72
92
  lines.push("Prompt updated successfully!\n");
73
93
  if (prompt.id) lines.push(`**ID**: ${prompt.id}`);
74
94
  if (prompt.handle) lines.push(`**Handle**: ${prompt.handle}`);
75
- if (newVersion?.version != null)
76
- lines.push(`**Version**: v${newVersion.version}`);
77
- if (newVersion?.versionId)
78
- lines.push(`**Version ID**: ${newVersion.versionId}`);
95
+ if (newVersion?.version != null) lines.push(`**Version**: v${newVersion.version}`);
96
+ if (newVersion?.versionId) lines.push(`**Version ID**: ${newVersion.versionId}`);
79
97
  lines.push(`**Commit**: ${params.commitMessage}`);
80
98
  if (!newVersion) {
81
99
  lines.push(
@@ -83,25 +101,7 @@ async function renderUpdateSuccess({
83
101
  );
84
102
  }
85
103
  if (newVersion) {
86
- const allDeployments = deploymentTagsOf(prompt);
87
- const newTags = allDeployments.filter(
88
- (tag) => newVersion.versionId != null && tag.versionId === newVersion.versionId
89
- ).map((tag) => tag.name);
90
- if (newTags.length > 0) {
91
- lines.push(`**Deployed to**: ${newTags.join(", ")}`);
92
- } else {
93
- lines.push(`**Deployment**: not deployed`);
94
- const otherTags = Array.from(
95
- new Set(
96
- allDeployments.filter((tag) => tag.versionId !== newVersion.versionId).map((tag) => tag.name)
97
- )
98
- );
99
- if (otherTags.length > 0) {
100
- lines.push(
101
- `**Existing deployments (untouched)**: ${otherTags.join(", ")}`
102
- );
103
- }
104
- }
104
+ lines.push(...deploymentLines({ prompt, newVersion }));
105
105
  }
106
106
  return lines.join("\n");
107
107
  }
@@ -127,9 +127,7 @@ async function renderTagFailure({
127
127
  if (matched) {
128
128
  const lines = [];
129
129
  lines.push("Prompt update partially failed.\n");
130
- lines.push(
131
- "A new version was created, but assigning the requested tag(s) failed."
132
- );
130
+ lines.push("A new version was created, but assigning the requested tag(s) failed.");
133
131
  if (matched.versionId) lines.push(`**Version ID**: ${matched.versionId}`);
134
132
  lines.push(`**Status**: created, untagged`);
135
133
  lines.push(`**Failed tag(s)**: ${failedTags}`);
@@ -140,4 +138,4 @@ async function renderTagFailure({
140
138
  export {
141
139
  handleUpdatePrompt
142
140
  };
143
- //# sourceMappingURL=update-prompt-ZQQ2C3KU.js.map
141
+ //# sourceMappingURL=update-prompt-NPRXYSWA.js.map
@@ -0,0 +1,34 @@
1
+ import {
2
+ formatScenarioFields
3
+ } from "./chunk-XUIJYNRJ.js";
4
+ import {
5
+ updateScenario
6
+ } from "./chunk-7GETGE6B.js";
7
+ import "./chunk-7CZQDZ2K.js";
8
+ import "./chunk-DULFP3MK.js";
9
+
10
+ // src/tools/update-scenario.ts
11
+ async function handleUpdateScenario(params) {
12
+ const { scenarioId, ...data } = params;
13
+ const result = await updateScenario({ id: scenarioId, ...data });
14
+ const lines = [];
15
+ lines.push("Scenario updated successfully!\n");
16
+ lines.push(`**ID**: ${result.id}`);
17
+ lines.push(`**Name**: ${result.name}`);
18
+ if (result.situation) lines.push(`**Situation**: ${result.situation}`);
19
+ if (Array.isArray(result.criteria) && result.criteria.length > 0) {
20
+ lines.push(`**Criteria**: ${result.criteria.length} criteria`);
21
+ }
22
+ if (Array.isArray(result.labels) && result.labels.length > 0) {
23
+ lines.push(`**Labels**: ${result.labels.join(", ")}`);
24
+ }
25
+ if (result.testSuiteId) {
26
+ lines.push(`**Test suite**: ${result.testSuiteId}`);
27
+ }
28
+ lines.push(...formatScenarioFields(result.fields));
29
+ return lines.join("\n");
30
+ }
31
+ export {
32
+ handleUpdateScenario
33
+ };
34
+ //# sourceMappingURL=update-scenario-BNOMDCMV.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  formatScenarioFields
3
- } from "./chunk-7E4FZIYJ.js";
3
+ } from "./chunk-XUIJYNRJ.js";
4
4
  import {
5
5
  updateScenario
6
- } from "./chunk-RVAE2MEA.js";
7
- import "./chunk-GELJ2MQR.js";
8
- import "./chunk-WT4PO4A3.js";
6
+ } from "./chunk-7GETGE6B.js";
7
+ import "./chunk-7CZQDZ2K.js";
8
+ import "./chunk-DULFP3MK.js";
9
9
  import "./chunk-SAS5OB7F.js";
10
10
 
11
11
  // src/tools/update-scenario.ts
@@ -32,4 +32,4 @@ async function handleUpdateScenario(params) {
32
32
  export {
33
33
  handleUpdateScenario
34
34
  };
35
- //# sourceMappingURL=update-scenario-WUX34JAR.js.map
35
+ //# sourceMappingURL=update-scenario-EM5XGMB7.js.map
package/package.json CHANGED
@@ -1,80 +1,76 @@
1
1
  {
2
2
  "name": "@langwatch/mcp-server",
3
- "version": "2.1.0",
3
+ "version": "3.0.0",
4
4
  "description": "An MCP server for Langwatch.",
5
+ "license": "MIT",
6
+ "author": "",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/langwatch/langwatch.git",
10
+ "directory": "mcp-server"
11
+ },
12
+ "bin": {
13
+ "langwatch-mcp-server": "./dist/index.js"
14
+ },
5
15
  "type": "module",
6
16
  "main": "./dist/index.js",
7
17
  "module": "./dist/index.js",
8
18
  "types": "./dist/index.d.ts",
9
19
  "exports": {
10
20
  ".": {
11
- "import": "./dist/index.js",
12
- "require": "./dist/index.js"
21
+ "import": "./dist/index.js"
13
22
  },
14
23
  "./create-mcp-server": {
15
24
  "types": "./src/create-mcp-server.d.ts",
16
25
  "import": "./dist/create-mcp-server.js",
17
- "require": "./dist/create-mcp-server.js",
26
+ "require": "./dist/create-mcp-server.cjs",
18
27
  "default": "./dist/create-mcp-server.js"
19
28
  },
20
29
  "./config": {
21
30
  "types": "./src/config.d.ts",
22
31
  "import": "./dist/config.js",
23
- "require": "./dist/config.js",
32
+ "require": "./dist/config.cjs",
24
33
  "default": "./dist/config.js"
25
34
  }
26
35
  },
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/langwatch/langwatch.git",
30
- "directory": "mcp-server"
31
- },
32
- "author": "",
33
- "license": "MIT",
34
- "engines": {
35
- "node": ">=18.0.0"
36
+ "dependencies": {
37
+ "@langwatch/evaluator-contract": "0.1.0",
38
+ "@modelcontextprotocol/sdk": "1.32.0",
39
+ "zod": "^4.6.7"
36
40
  },
37
41
  "devDependencies": {
38
42
  "@ai-sdk/anthropic": "^3.0.44",
39
43
  "@anthropic-ai/claude-code": "2.1.228",
40
- "@eslint/js": "^10.0.1",
41
- "@langwatch/scenario": "^0.4.6",
42
- "@opentelemetry/context-async-hooks": "^2.1.0",
43
- "@opentelemetry/sdk-node": "^0.221.0",
44
+ "@langwatch/egress": "0.0.1",
45
+ "@langwatch/handled-error": "0.1.0",
46
+ "@langwatch/redaction": "0.0.1",
47
+ "@langwatch/scenario": "1.7.0-dev.voice10",
44
48
  "@types/debug": "^4.1.13",
45
49
  "@types/express": "^5.0.6",
46
50
  "@types/node": "^26.2.0",
47
51
  "@types/yargs": "^17.0.33",
48
- "ai": "^6.0.161",
52
+ "ai": "^6.0.217",
49
53
  "chalk": "^6.0.0",
50
- "date-fns": "^4.1.0",
51
- "dotenv": "^17.2.2",
52
- "esbuild": "^0.28.1",
53
- "eslint": "^10.2.1",
54
+ "dotenv": "^17.4.2",
55
+ "esbuild": "^0.28.2",
54
56
  "express": "^5.2.1",
55
57
  "node-pty": "^1.0.0",
56
- "tsup": "^8.1.0",
57
- "tsx": "^4.20.5",
58
+ "tsup": "^8.5.0",
58
59
  "typescript": "^6.0.3",
59
- "typescript-eslint": "^8.55.0",
60
- "vitest": "^4.1.8",
60
+ "vitest": "^5.0.1",
61
61
  "yargs": "^18.0.0",
62
- "zod-validation-error": "^5.0.0",
63
- "@langwatch/handled-error": "0.1.0",
64
- "@langwatch/ssrf": "0.0.1",
65
- "@langwatch/redaction": "0.0.1"
66
- },
67
- "dependencies": {
68
- "@modelcontextprotocol/sdk": "^1.29.0",
69
- "zod": "^4.3.6"
62
+ "zod-validation-error": "^5.0.0"
70
63
  },
71
- "bin": {
72
- "langwatch-mcp-server": "./dist/index.js"
64
+ "engines": {
65
+ "node": "^22.23.4 || ^24.22.1 || >=26.12.1"
73
66
  },
74
67
  "scripts": {
75
- "start": "tsx src/index.ts",
68
+ "start": "node --experimental-transform-types src/index.ts",
76
69
  "build": "tsup && node build.js",
70
+ "typecheck": "GOMAXPROCS=2 GOMEMLIMIT=2GiB pnpm -w exec tsc -b mcp/typescript",
77
71
  "prepublish": "pnpm run build",
78
- "test": "vitest"
72
+ "test": "vitest run",
73
+ "test:integration": "vitest run --config vitest.integration.config.js",
74
+ "test:scenario": "vitest run --config vitest.scenario.config.js"
79
75
  }
80
76
  }
package/pyproject.toml CHANGED
@@ -5,23 +5,38 @@ description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
7
7
  dependencies = [
8
- "ipykernel>=7.3.0",
9
- "langwatch",
10
- "litellm>=1.96.0",
11
- "mcp[cli]>=2.0.0",
12
- "pandas>=2.3.2",
13
- "tenacity>=9.1.4",
8
+ "ipykernel>=7.3.0",
9
+ "langwatch",
10
+ "litellm>=1.100.4", # security: litellm advisories up to GHSA-7hp6-4w63-5g45, fixed in 1.100.4
11
+ "mcp[cli]>=2.2.0", # security: MCP SDK unbounded StreamableHTTP sessions, fixed in 2.2.0 (#2823)
12
+ "pandas>=2.3.2",
13
+ "tenacity>=9.1.4",
14
14
  ]
15
15
 
16
16
  [tool.uv]
17
+ # exclude-newer-package below needs uv 0.9.25+ (dev/docs/best_practices/dependency-age-gates.md).
18
+ required-version = ">=0.9.25"
17
19
  exclude-newer = "7 days"
18
20
 
21
+ # Security fix released inside the 7-day window above, admitted up to a fixed
22
+ # date so the rest of the tree keeps the cooldown. Drop it once the date is
23
+ # more than 7 days old (#8958).
24
+ exclude-newer-package = { certifi = "2026-10-21T00:00:00Z" }
25
+
19
26
  # Transitive-dependency security pins. Keep these even when the importing
20
27
  # package isn't a direct dependency, so a future re-resolution can't silently
21
28
  # pull a vulnerable version back in.
22
29
  constraint-dependencies = [
23
- "python-dotenv>=1.2.2", # security: python-dotenv advisory (#934)
24
- "python-liquid>=2.2.1", # security: python-liquid advisory (#1528)
30
+ "python-dotenv>=1.2.2", # security: python-dotenv advisory (#934)
31
+ "python-liquid>=2.2.1", # security: python-liquid advisory (#1528)
32
+ "tornado>=6.5.9", # security: tornado advisories (#2159, #2173, #2233, #2665-#2667)
33
+ "anyio>=4.14.2", # security: anyio advisories (#2430, #2431)
34
+ "httpx2>=2.12.0", # security: httpx2 advisories (#2312, #2313, #2329)
35
+ "pyjwt>=2.15.0", # security: PyJWT advisories covering <=2.14.0 (#2479, #2615)
36
+ "urllib3>=2.8.0", # security: urllib3 advisories covering <2.8.0 (#2591, #2592, #2608)
37
+ "fsspec>=2026.6.0", # security: fsspec advisory covering <2026.6.0 (#2731)
38
+ "aiohttp>=3.14.4", # security: aiohttp advisories covering <=3.14.3, two HIGH (#2842-#2844)
39
+ "certifi>=2026.10.19", # security: certifi advisory covering <2026.10.19 (#2897)
25
40
  ]
26
41
 
27
42
  [tool.uv.sources]
package/src/config.d.ts CHANGED
@@ -1,13 +1,19 @@
1
1
  export interface McpConfig {
2
2
  apiKey: string | undefined;
3
3
  endpoint: string;
4
+ projectId?: string;
5
+ /** Set by the hosted MCP server, so the platform tells its calls from a local server's. */
6
+ hosted?: boolean;
4
7
  }
5
8
 
6
9
  export declare function initConfig(args: {
7
10
  apiKey?: string;
8
11
  endpoint?: string;
12
+ projectId?: string;
9
13
  }): void;
10
14
 
15
+ export declare function tryGetConfig(): McpConfig | undefined;
16
+
11
17
  export declare function getConfig(): McpConfig;
12
18
 
13
19
  export declare function requireApiKey(): string;