@langwatch/mcp-server 2.2.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 (251) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/add-dashboard-widget-55UI6H22.js +44 -0
  3. package/dist/add-dashboard-widget-MJHIC3CC.js +45 -0
  4. package/dist/{archive-project-SPVHXK6A.js → archive-project-K5UD7A6X.js} +4 -4
  5. package/dist/{archive-project-KWFM3I5Z.js → archive-project-L4PAKT34.js} +4 -4
  6. package/dist/{archive-run-plan-65QN3XRX.js → archive-run-plan-5HSQG2HX.js} +4 -4
  7. package/dist/{archive-run-plan-Z4SYE6BP.js → archive-run-plan-AOKNYQIO.js} +4 -4
  8. package/dist/{archive-scenario-FXEYQNEH.js → archive-scenario-2CWJW2VD.js} +4 -4
  9. package/dist/{archive-scenario-A6QV5LOW.js → archive-scenario-5IJQESHH.js} +4 -4
  10. package/dist/{archive-test-suite-NKZDZY3D.js → archive-test-suite-OPB7NFI7.js} +4 -4
  11. package/dist/{archive-test-suite-5ADQ3KPQ.js → archive-test-suite-ZC3TN6VH.js} +4 -4
  12. package/dist/{assign-prompt-tag-5IUZXJ2T.js → assign-prompt-tag-6DDE6ZZ5.js} +3 -3
  13. package/dist/{assign-prompt-tag-HBZLBIFD.js → assign-prompt-tag-D7O23MJM.js} +3 -3
  14. package/dist/{chunk-HGELNIVY.js → chunk-4RX3G62A.js} +3 -3
  15. package/dist/{chunk-UWLE5T2F.js → chunk-7CZQDZ2K.js} +10 -3
  16. package/dist/{chunk-I7ATIZED.js → chunk-7GETGE6B.js} +2 -2
  17. package/dist/{chunk-3OCG3QPU.js → chunk-AASW2TO2.js} +2 -2
  18. package/dist/{chunk-UTJCWXPZ.js → chunk-B4RFWIUP.js} +2 -2
  19. package/dist/{chunk-B4J3PJLX.js → chunk-D2HS73VI.js} +2 -6
  20. package/dist/{chunk-H6WGMG2T.js → chunk-DULFP3MK.js} +1 -1
  21. package/dist/{chunk-YCARO42Z.js → chunk-EYPJBL7P.js} +3 -3
  22. package/dist/{chunk-SUPUUC4W.js → chunk-GA5JUSPT.js} +2 -2
  23. package/dist/{chunk-Y34DHR5K.js → chunk-HLQJXUR6.js} +2 -2
  24. package/dist/{chunk-SXFC3FNH.js → chunk-KILVK3FS.js} +2 -2
  25. package/dist/chunk-MOCU5XWF.js +79 -0
  26. package/dist/chunk-O2WGVCED.js +41 -0
  27. package/dist/{chunk-NKMTIHIJ.js → chunk-QXLMHLRC.js} +2 -2
  28. package/dist/{chunk-J7PQKBLD.js → chunk-R5YJIYPF.js} +512 -402
  29. package/dist/{chunk-JRJPH75H.js → chunk-RFC2SBEX.js} +2 -2
  30. package/dist/{chunk-UNJM3BIL.js → chunk-SHSVN3SE.js} +2 -2
  31. package/dist/{chunk-PTDR56Z3.js → chunk-VOUGDY2O.js} +2 -2
  32. package/dist/chunk-WCKZDOGF.js +31 -0
  33. package/dist/{chunk-7VNSRCXO.js → chunk-XQYH52SI.js} +2 -2
  34. package/dist/{chunk-VMWJD732.js → chunk-YCIUEZVK.js} +2 -2
  35. package/dist/{config-EAKW6F26.js → config-2WQGMAEN.js} +2 -2
  36. package/dist/config.js +1 -1
  37. package/dist/{create-agent-AYZ3LB3V.js → create-agent-6JNLMYQD.js} +4 -4
  38. package/dist/{create-agent-S5ZBCEFT.js → create-agent-IRZOU4R5.js} +4 -4
  39. package/dist/create-analytics-report-N4L4V5QL.js +19 -0
  40. package/dist/create-analytics-report-QEHXG7FU.js +18 -0
  41. package/dist/{create-annotation-VUSXULQK.js → create-annotation-CCEGIZ67.js} +4 -4
  42. package/dist/{create-annotation-LHNCLHYP.js → create-annotation-DTHCMWHB.js} +4 -4
  43. package/dist/{create-api-key-NNYKARMG.js → create-api-key-JKM2DSZO.js} +4 -4
  44. package/dist/{create-api-key-T4KSNPKB.js → create-api-key-JPEUIXGM.js} +4 -4
  45. package/dist/{create-dataset-LUP5PVDM.js → create-dataset-DJNXYJ5B.js} +4 -4
  46. package/dist/{create-dataset-2MC4SD4O.js → create-dataset-WON4SOTC.js} +4 -4
  47. package/dist/{create-dataset-records-NSKBZP3G.js → create-dataset-records-TMEOTLTO.js} +4 -4
  48. package/dist/{create-dataset-records-W4GLN2FV.js → create-dataset-records-UJBW3C7C.js} +4 -4
  49. package/dist/{create-evaluator-HMTYO5SS.js → create-evaluator-N5AEHI4K.js} +4 -4
  50. package/dist/{create-evaluator-643G6LXL.js → create-evaluator-XYNY2YFY.js} +4 -4
  51. package/dist/create-mcp-server.cjs +769 -570
  52. package/dist/create-mcp-server.js +502 -392
  53. package/dist/{create-project-KAIC46UY.js → create-project-EY4XZ7TH.js} +4 -4
  54. package/dist/{create-project-6N7PIYRY.js → create-project-YL345T5L.js} +4 -4
  55. package/dist/{create-prompt-E67LXIYT.js → create-prompt-JZQNQ7I3.js} +3 -3
  56. package/dist/{create-prompt-PKJ7EDRR.js → create-prompt-ZUMQHHX7.js} +3 -3
  57. package/dist/{create-prompt-tag-4YO3FSJ3.js → create-prompt-tag-CJ5FZ436.js} +3 -3
  58. package/dist/{create-prompt-tag-OPQUEXWB.js → create-prompt-tag-JFP2Q3PO.js} +3 -3
  59. package/dist/{create-scenario-5PJBMAXO.js → create-scenario-CQU2SSFB.js} +4 -4
  60. package/dist/{create-scenario-UEM77OE7.js → create-scenario-S6OWWKJO.js} +4 -4
  61. package/dist/{create-test-suite-SZEPVXSE.js → create-test-suite-OLGCAGJA.js} +4 -4
  62. package/dist/{create-test-suite-4IPXVSFQ.js → create-test-suite-Y7P2RI4L.js} +4 -4
  63. package/dist/{create-trigger-PRELMT6J.js → create-trigger-4CNBTISJ.js} +4 -4
  64. package/dist/{create-trigger-5HZSCRAN.js → create-trigger-RQ653WYF.js} +4 -4
  65. package/dist/dashboards-BA7M6CMO.js +90 -0
  66. package/dist/dashboards-U663GUIB.js +91 -0
  67. package/dist/{delete-agent-QMEK3XHK.js → delete-agent-J2Q4DRZ2.js} +4 -4
  68. package/dist/{delete-agent-JUIZWAXG.js → delete-agent-ZAU4LTXB.js} +4 -4
  69. package/dist/delete-analytics-report-QK6X7P4S.js +19 -0
  70. package/dist/delete-analytics-report-YUYLDHLL.js +18 -0
  71. package/dist/{delete-annotation-HY3O2OGR.js → delete-annotation-7X4NYXXM.js} +4 -4
  72. package/dist/{delete-annotation-VKIQWUYW.js → delete-annotation-KJOCDLV3.js} +4 -4
  73. package/dist/{delete-dataset-WKRUW4FP.js → delete-dataset-NXP7ZPPV.js} +4 -4
  74. package/dist/{delete-dataset-HQCR66MG.js → delete-dataset-RUTZBBVD.js} +4 -4
  75. package/dist/{delete-dataset-records-C2IQFFVQ.js → delete-dataset-records-4Z7DZCDW.js} +4 -4
  76. package/dist/{delete-dataset-records-SDUHQLLM.js → delete-dataset-records-75UAR5IS.js} +4 -4
  77. package/dist/{delete-evaluator-4SNSCLEE.js → delete-evaluator-E3CUNGTQ.js} +4 -4
  78. package/dist/{delete-evaluator-QP3QHTLN.js → delete-evaluator-RI4GALGX.js} +4 -4
  79. package/dist/{delete-prompt-tag-NZ4JQMYG.js → delete-prompt-tag-LE3WJPKS.js} +3 -3
  80. package/dist/{delete-prompt-tag-YYQ4VMAD.js → delete-prompt-tag-S4KBZTNG.js} +3 -3
  81. package/dist/{delete-workflow-JSWABL5F.js → delete-workflow-4CZFIQCQ.js} +4 -4
  82. package/dist/{delete-workflow-5J46T73T.js → delete-workflow-PWQPDW6H.js} +4 -4
  83. package/dist/{discover-schema-A33SLMXW.js → discover-schema-7WHIIATI.js} +4 -4
  84. package/dist/{discover-schema-55YJBFGQ.js → discover-schema-J2ANOBKO.js} +4 -4
  85. package/dist/{get-agent-LJQX7OF4.js → get-agent-5T3CXQOR.js} +4 -4
  86. package/dist/{get-agent-OTIYUFZA.js → get-agent-ZKYQJUQ7.js} +4 -4
  87. package/dist/{get-analytics-IQZKJHLW.js → get-analytics-4MPEK4KV.js} +3 -3
  88. package/dist/{get-analytics-DCS72353.js → get-analytics-ZLI3A4F5.js} +3 -3
  89. package/dist/get-analytics-report-JCKYMA2S.js +29 -0
  90. package/dist/get-analytics-report-SKIP2JWH.js +30 -0
  91. package/dist/{get-dataset-ALSP7RTX.js → get-dataset-APGZBYMH.js} +4 -4
  92. package/dist/{get-dataset-X4B5JDG2.js → get-dataset-LWXDVMVE.js} +4 -4
  93. package/dist/{get-evaluator-XEUZGZCH.js → get-evaluator-3A7BJBAB.js} +4 -4
  94. package/dist/{get-evaluator-ISMC4LLI.js → get-evaluator-IWNJINRY.js} +4 -4
  95. package/dist/{get-project-RM6FRCBK.js → get-project-EQVB4LEL.js} +4 -4
  96. package/dist/{get-project-5VKROSDH.js → get-project-RK6AJTEP.js} +4 -4
  97. package/dist/{get-prompt-OWXJZHQQ.js → get-prompt-TLG2T2DS.js} +3 -3
  98. package/dist/{get-prompt-W52DY36E.js → get-prompt-ZER557X3.js} +3 -3
  99. package/dist/{get-run-plan-RUXQ6PAX.js → get-run-plan-5X7DDJRN.js} +4 -4
  100. package/dist/{get-run-plan-BE3M2AUX.js → get-run-plan-PEHRO5M3.js} +4 -4
  101. package/dist/{get-scenario-YM4ODWW6.js → get-scenario-375W5D6I.js} +4 -4
  102. package/dist/{get-scenario-RNM7BAX2.js → get-scenario-UQX45ZZO.js} +4 -4
  103. package/dist/{get-simulation-run-LCFSMPGQ.js → get-simulation-run-2NBXJADG.js} +4 -4
  104. package/dist/{get-simulation-run-6GIATQE5.js → get-simulation-run-QZTLGL7W.js} +4 -4
  105. package/dist/{get-test-suite-GC2O7YH6.js → get-test-suite-GVIBDG7K.js} +4 -4
  106. package/dist/{get-test-suite-P5LJ6VLF.js → get-test-suite-OODIR3RI.js} +4 -4
  107. package/dist/{get-trace-SEF3FMR5.js → get-trace-AGCHVPJK.js} +3 -3
  108. package/dist/{get-trace-KBRVV4NN.js → get-trace-KJLYAZRC.js} +3 -3
  109. package/dist/{get-workflow-7PVED7JE.js → get-workflow-3TV2YYC5.js} +4 -4
  110. package/dist/{get-workflow-YXULW4GC.js → get-workflow-7LZSVPP2.js} +4 -4
  111. package/dist/{http-server-IR4QOS43.js → http-server-7CCN3EHJ.js} +245 -45
  112. package/dist/index.js +1750 -870
  113. package/dist/langwatch-api-analytics-reports-6CF6KUET.js +17 -0
  114. package/dist/langwatch-api-analytics-reports-RPFB5AO5.js +18 -0
  115. package/dist/{langwatch-api-annotations-TBHLCQ5R.js → langwatch-api-annotations-H4AI4TKG.js} +4 -4
  116. package/dist/{langwatch-api-annotations-6SA4OB4C.js → langwatch-api-annotations-QSJNUQQS.js} +4 -4
  117. package/dist/{langwatch-api-monitors-CBF3FGIM.js → langwatch-api-monitors-ENHLOL3S.js} +3 -3
  118. package/dist/{langwatch-api-monitors-YNWA2M5Y.js → langwatch-api-monitors-OHSGADTH.js} +3 -3
  119. package/dist/{langwatch-api-secrets-RNFO4LF2.js → langwatch-api-secrets-AGW6UUMD.js} +3 -3
  120. package/dist/{langwatch-api-secrets-ADTOJELP.js → langwatch-api-secrets-CLTS766Q.js} +3 -3
  121. package/dist/{langwatch-api-triggers-KQDQC6L5.js → langwatch-api-triggers-G5UWFNN2.js} +4 -4
  122. package/dist/{langwatch-api-triggers-QS7HDIVW.js → langwatch-api-triggers-QMR7KEXW.js} +4 -4
  123. package/dist/langwatch-api-workflows-HKTBIKKY.js +15 -0
  124. package/dist/{langwatch-api-workflows-OKC4FXIF.js → langwatch-api-workflows-OMROZH2O.js} +4 -4
  125. package/dist/{list-agents-HVYWEQMI.js → list-agents-BYWDNAHT.js} +4 -4
  126. package/dist/{list-agents-RBAOCF53.js → list-agents-MG24MHZE.js} +4 -4
  127. package/dist/list-analytics-reports-G3EPWGSQ.js +32 -0
  128. package/dist/list-analytics-reports-PPWIFRES.js +33 -0
  129. package/dist/{list-annotations-HJH4NBLD.js → list-annotations-QCLGEK5A.js} +4 -4
  130. package/dist/{list-annotations-J4UAHSUN.js → list-annotations-Y4EUBJHG.js} +4 -4
  131. package/dist/{list-api-keys-A2PMV435.js → list-api-keys-DAVOBPFK.js} +4 -4
  132. package/dist/{list-api-keys-7UTJRZDG.js → list-api-keys-JMW5WRXX.js} +4 -4
  133. package/dist/list-dashboards-2P3VJFRS.js +29 -0
  134. package/dist/list-dashboards-MW5O3MKH.js +30 -0
  135. package/dist/{list-dataset-records-WFM7F33C.js → list-dataset-records-KEHT7G6Q.js} +4 -4
  136. package/dist/{list-dataset-records-M5TKA6LK.js → list-dataset-records-KMLLMZAZ.js} +4 -4
  137. package/dist/{list-datasets-B5X4P7BQ.js → list-datasets-P3JK2ZHS.js} +4 -4
  138. package/dist/{list-datasets-THUKQHPX.js → list-datasets-Z7OOE4KI.js} +4 -4
  139. package/dist/{list-evaluators-MYH2OVCI.js → list-evaluators-7RRESBOU.js} +4 -4
  140. package/dist/{list-evaluators-NLVWF6K7.js → list-evaluators-VATJVOHR.js} +4 -4
  141. package/dist/{list-model-providers-3JUGP4YI.js → list-model-providers-OXDRPUCJ.js} +4 -4
  142. package/dist/{list-model-providers-H3XKORFO.js → list-model-providers-VXQJWDXU.js} +4 -4
  143. package/dist/{list-projects-6EJ5YYEW.js → list-projects-HUVK7L3W.js} +4 -4
  144. package/dist/{list-projects-YNNSRMLC.js → list-projects-X72ZXVY5.js} +4 -4
  145. package/dist/{list-prompt-tags-NVFQO6WX.js → list-prompt-tags-3I3LWFIR.js} +3 -3
  146. package/dist/{list-prompt-tags-XUQTTAH4.js → list-prompt-tags-DRHUH2ND.js} +3 -3
  147. package/dist/{list-prompts-IRI6AIXO.js → list-prompts-6DX3QECJ.js} +3 -3
  148. package/dist/{list-prompts-HSIMMHTF.js → list-prompts-PS423RU3.js} +3 -3
  149. package/dist/{list-run-plans-QALLCN2K.js → list-run-plans-5SXPOV3X.js} +4 -4
  150. package/dist/{list-run-plans-PX2XI6EK.js → list-run-plans-6VNHINPY.js} +4 -4
  151. package/dist/{list-scenarios-SSJQEMJP.js → list-scenarios-EQWCW7Q4.js} +4 -4
  152. package/dist/{list-scenarios-QZRPVHS4.js → list-scenarios-GKNH3YND.js} +4 -4
  153. package/dist/{list-simulation-runs-OEADLLQR.js → list-simulation-runs-KHY7KALI.js} +4 -4
  154. package/dist/{list-simulation-runs-KNOLGMDV.js → list-simulation-runs-PUDK32C2.js} +4 -4
  155. package/dist/{list-test-suites-ANAQBLDG.js → list-test-suites-7H2DRILK.js} +4 -4
  156. package/dist/{list-test-suites-N4WVLBKK.js → list-test-suites-GY56LGLY.js} +4 -4
  157. package/dist/{list-trigger-fires-JV3WFYYG.js → list-trigger-fires-7RZUP54Y.js} +4 -4
  158. package/dist/{list-trigger-fires-WTW4DVIW.js → list-trigger-fires-OZUF65LI.js} +4 -4
  159. package/dist/{list-triggers-SQNIG35Q.js → list-triggers-BGUCUXTJ.js} +4 -4
  160. package/dist/{list-triggers-V4Y356AK.js → list-triggers-XC5KMX4C.js} +4 -4
  161. package/dist/{list-workflows-ZHTX5LCL.js → list-workflows-55NYC3PC.js} +4 -4
  162. package/dist/{list-workflows-IMSX7SXU.js → list-workflows-HV7FUWZA.js} +4 -4
  163. package/dist/{rename-prompt-tag-IQI7MHOI.js → rename-prompt-tag-2I7Z5FCY.js} +3 -3
  164. package/dist/{rename-prompt-tag-PA2BRIE6.js → rename-prompt-tag-SZYTOWDX.js} +3 -3
  165. package/dist/{rename-test-suite-4J7UX5S2.js → rename-test-suite-27AYY33K.js} +4 -4
  166. package/dist/{rename-test-suite-NNVLMLKY.js → rename-test-suite-CLIEPZDO.js} +4 -4
  167. package/dist/{report-issue-AS34ZMJF.js → report-issue-5HSL7CNB.js} +28 -2
  168. package/dist/{report-issue-DCZFLGDO.js → report-issue-N7ND5TM6.js} +28 -2
  169. package/dist/{rerun-run-plan-TG2V4WM4.js → rerun-run-plan-O3VUZ6CG.js} +4 -4
  170. package/dist/{rerun-run-plan-ZI5OY3VA.js → rerun-run-plan-OJTVVGJI.js} +4 -4
  171. package/dist/{revoke-api-key-SFMEFWJC.js → revoke-api-key-BU6BKGCG.js} +4 -4
  172. package/dist/{revoke-api-key-3J3ZA4UB.js → revoke-api-key-NZNCFOIR.js} +4 -4
  173. package/dist/{run-agent-W4VJP72Z.js → run-agent-244O4Y5M.js} +4 -4
  174. package/dist/{run-agent-YNV6ZHW4.js → run-agent-HPCGZGYW.js} +4 -4
  175. package/dist/{run-plan-6C77GWG4.js → run-plan-2ZPGGZ4H.js} +4 -4
  176. package/dist/{run-plan-PAARQSI4.js → run-plan-KSXUYQT3.js} +4 -4
  177. package/dist/{run-query-KJDH544C.js → run-query-4LMOQ5UW.js} +4 -4
  178. package/dist/{run-query-T4QW2Z5O.js → run-query-BQUHIUC2.js} +4 -4
  179. package/dist/{run-test-suite-SQJELEZX.js → run-test-suite-P3WLVPXC.js} +4 -4
  180. package/dist/{run-test-suite-STB6NUJM.js → run-test-suite-UEOMCON6.js} +4 -4
  181. package/dist/{run-workflow-SP32SO5M.js → run-workflow-EFZ6HG5B.js} +4 -4
  182. package/dist/{run-workflow-D6PQNBI6.js → run-workflow-I4IHEN54.js} +4 -4
  183. package/dist/{search-traces-HCBGOG6R.js → search-traces-6IR7PR4L.js} +3 -3
  184. package/dist/{search-traces-HSTQ6WTQ.js → search-traces-BYML2NQ4.js} +3 -3
  185. package/dist/{set-model-provider-KDQ7C4EZ.js → set-model-provider-RBNGWFVI.js} +4 -4
  186. package/dist/{set-model-provider-GF7NXUJA.js → set-model-provider-SHEVKWRC.js} +4 -4
  187. package/dist/{update-agent-DWG43T2P.js → update-agent-PTKTM2B5.js} +4 -4
  188. package/dist/{update-agent-MXNOBS4H.js → update-agent-ZPXWRMS2.js} +4 -4
  189. package/dist/update-dashboard-widget-HKCBXH7X.js +62 -0
  190. package/dist/update-dashboard-widget-IP2TTQ5G.js +63 -0
  191. package/dist/{update-dataset-DQH3OHOU.js → update-dataset-GHIN6JR3.js} +4 -4
  192. package/dist/{update-dataset-SQZ6T4WX.js → update-dataset-IRVMY5PF.js} +4 -4
  193. package/dist/{update-dataset-record-7PLDGTMR.js → update-dataset-record-6VI7K2CL.js} +4 -4
  194. package/dist/{update-dataset-record-3AT4IPBC.js → update-dataset-record-Z3L7ACNF.js} +4 -4
  195. package/dist/{update-evaluator-4LFTKFPT.js → update-evaluator-5NLNE6VY.js} +4 -4
  196. package/dist/{update-evaluator-IGTX6PX4.js → update-evaluator-FEH7H6NS.js} +4 -4
  197. package/dist/{update-project-QVHSJRUP.js → update-project-75H3LDQT.js} +4 -4
  198. package/dist/{update-project-PLJIOZS6.js → update-project-QPR3QX55.js} +4 -4
  199. package/dist/{update-prompt-GDKRYJI3.js → update-prompt-BCDFTNLK.js} +3 -3
  200. package/dist/{update-prompt-MY263DYF.js → update-prompt-NPRXYSWA.js} +3 -3
  201. package/dist/{update-scenario-7KA3JDXA.js → update-scenario-BNOMDCMV.js} +4 -4
  202. package/dist/{update-scenario-MOHRQKAQ.js → update-scenario-EM5XGMB7.js} +4 -4
  203. package/package.json +2 -2
  204. package/pyproject.toml +17 -2
  205. package/src/config.d.ts +2 -0
  206. package/src/config.ts +2 -0
  207. package/src/create-mcp-server.ts +148 -41
  208. package/src/langwatch-api-analytics-reports.ts +62 -0
  209. package/src/langwatch-api-dashboard-widgets.ts +3 -68
  210. package/src/langwatch-api-dashboards.ts +110 -28
  211. package/src/langwatch-api-projects.ts +0 -17
  212. package/src/langwatch-api.ts +10 -0
  213. package/src/schemas/widget-sources.ts +33 -0
  214. package/src/tools/add-dashboard-widget.ts +20 -32
  215. package/src/tools/create-analytics-report.ts +7 -0
  216. package/src/tools/dashboard-widget-queries.ts +13 -0
  217. package/src/tools/dashboards.ts +104 -0
  218. package/src/tools/delete-analytics-report.ts +7 -0
  219. package/src/tools/get-analytics-report.ts +23 -0
  220. package/src/tools/list-analytics-reports.ts +27 -0
  221. package/src/tools/list-dashboards.ts +20 -21
  222. package/src/tools/report-issue.ts +2 -0
  223. package/src/tools/run-experiment.ts +5 -1
  224. package/src/tools/update-dashboard-widget.ts +29 -40
  225. package/uv.lock +667 -341
  226. package/dist/add-dashboard-widget-4ZC5UN73.js +0 -50
  227. package/dist/add-dashboard-widget-ACC6QYBG.js +0 -49
  228. package/dist/chunk-5FNCQRCX.js +0 -91
  229. package/dist/chunk-ILZDO25L.js +0 -36
  230. package/dist/chunk-K2I7Z3LZ.js +0 -28
  231. package/dist/create-dashboard-DHVFMEU4.js +0 -18
  232. package/dist/create-dashboard-WTKKS5Z6.js +0 -19
  233. package/dist/delete-dashboard-76N66XXL.js +0 -18
  234. package/dist/delete-dashboard-JVIVHNJM.js +0 -19
  235. package/dist/get-dashboard-5NYJEIX2.js +0 -29
  236. package/dist/get-dashboard-QMTYDQAZ.js +0 -30
  237. package/dist/langwatch-api-dashboards-6EO2VVZW.js +0 -17
  238. package/dist/langwatch-api-dashboards-NHU5BZD7.js +0 -18
  239. package/dist/langwatch-api-workflows-XGJE6SR5.js +0 -15
  240. package/dist/list-dashboard-boards-OPWROHMG.js +0 -33
  241. package/dist/list-dashboard-boards-U2GJ7GC5.js +0 -34
  242. package/dist/list-dashboards-ROSYFLDQ.js +0 -33
  243. package/dist/list-dashboards-RQ635ZU7.js +0 -32
  244. package/dist/update-dashboard-widget-CJKJLCDY.js +0 -71
  245. package/dist/update-dashboard-widget-CYQDS2NR.js +0 -70
  246. package/src/langwatch-api-boards.ts +0 -46
  247. package/src/tools/create-dashboard.ts +0 -7
  248. package/src/tools/dashboard-exists.ts +0 -25
  249. package/src/tools/delete-dashboard.ts +0 -7
  250. package/src/tools/get-dashboard.ts +0 -22
  251. package/src/tools/list-dashboard-boards.ts +0 -28
@@ -1,20 +1,17 @@
1
1
  /**
2
- * The `update_dashboard_widget` MCP tool over the widget PATCH: a field left out keeps its
3
- * stored value. The widget must sit on the named dashboard, so an agent never edits one it
4
- * found somewhere else by mistake. Spec: modules/dashboard/specs/dashboard-widget-mcp.feature
2
+ * `update_dashboard_widget`: the widget must sit on the named dashboard, so an agent never edits
3
+ * one it found elsewhere by mistake.
4
+ * Spec: modules/dashboard/specs/dashboard-widget-mcp.feature
5
5
  */
6
6
 
7
- import {
8
- type DashboardWidget,
9
- getDashboardWidget,
10
- updateDashboardWidget,
11
- } from "../langwatch-api-dashboard-widgets.js";
12
- import { getCurrentProject } from "../langwatch-api-projects.js";
7
+ import type { DashboardWidget } from "../langwatch-api-dashboard-widgets.js";
8
+ import { getWidgetOnDashboard, updateWidgetOnDashboard } from "../langwatch-api-dashboards.js";
13
9
  import { LangWatchApiError } from "../langwatch-api.js";
14
- import { assertDashboardExists } from "./dashboard-exists.js";
10
+ import type { WidgetSource } from "../schemas/widget-sources.js";
15
11
  import {
16
12
  type DashboardWidgetQueriesInput,
17
13
  normalizeDashboardWidgetQueries,
14
+ withSources,
18
15
  } from "./dashboard-widget-queries.js";
19
16
 
20
17
  export interface UpdateDashboardWidgetParams {
@@ -24,37 +21,38 @@ export interface UpdateDashboardWidgetParams {
24
21
  code?: string;
25
22
  queries?: DashboardWidgetQueriesInput;
26
23
  description?: string;
24
+ /** Set on every query; alone, it is sent with the widget's stored queries. */
25
+ sources?: WidgetSource[] | null;
27
26
  }
28
27
 
29
28
  export async function handleUpdateDashboardWidget(
30
29
  params: UpdateDashboardWidgetParams,
31
30
  ): Promise<string> {
32
- const { dashboardId, widgetId, name, code, description } = params;
33
- if (
34
- name === undefined &&
35
- code === undefined &&
36
- params.queries === undefined &&
37
- description === undefined
38
- ) {
39
- throw new Error("Provide at least one of name, code, queries or description to change.");
31
+ const { dashboardId, widgetId, name, code, description, sources } = params;
32
+ const fields = [name, code, params.queries, description, sources];
33
+ if (fields.every((field) => field === undefined)) {
34
+ throw new Error(
35
+ "Provide at least one of name, code, queries, description or sources to change.",
36
+ );
40
37
  }
41
- const queries =
38
+
39
+ const current = await widgetOnDashboardOrRefused({ widgetId, dashboardId });
40
+ const given =
42
41
  params.queries === undefined
43
42
  ? undefined
44
43
  : normalizeDashboardWidgetQueries({ queries: params.queries });
44
+ // Sources alone: the stored queries go back with the new list on each.
45
+ const base = given ?? (sources === undefined ? undefined : current.definition.queries);
46
+ const queries = base === undefined ? undefined : withSources({ queries: base, sources });
45
47
 
46
- const project = await getCurrentProject();
47
- await assertDashboardExists({ projectId: project.id, dashboardId });
48
- const current = await getWidgetOnDashboard({ projectId: project.id, widgetId, dashboardId });
49
-
50
- const widget = await updateDashboardWidget({
51
- projectId: project.id,
52
- widgetId: current.id,
48
+ const changes = {
53
49
  ...(name === undefined ? {} : { name }),
54
50
  ...(code === undefined ? {} : { code }),
55
51
  ...(queries === undefined ? {} : { queries }),
56
52
  ...(description === undefined ? {} : { description }),
57
- });
53
+ };
54
+
55
+ const widget = await updateWidgetOnDashboard({ dashboardId, widgetId: current.id, ...changes });
58
56
 
59
57
  return [
60
58
  `Widget "${widget.name}" updated on dashboard "${dashboardId}".`,
@@ -67,31 +65,22 @@ export async function handleUpdateDashboardWidget(
67
65
  ].join("\n");
68
66
  }
69
67
 
70
- /** The widget, refused by id when it is not in this project or not on this dashboard. */
71
- async function getWidgetOnDashboard({
72
- projectId,
68
+ /** The widget, refused by id when it is not on this dashboard (the dashboard route answers 404). */
69
+ async function widgetOnDashboardOrRefused({
73
70
  widgetId,
74
71
  dashboardId,
75
72
  }: {
76
- projectId: string;
77
73
  widgetId: string;
78
74
  dashboardId: string;
79
75
  }): Promise<DashboardWidget> {
80
- let widget: DashboardWidget;
81
76
  try {
82
- widget = await getDashboardWidget({ projectId, widgetId });
77
+ return await getWidgetOnDashboard({ dashboardId, widgetId });
83
78
  } catch (error) {
84
79
  if (error instanceof LangWatchApiError && error.status === 404) {
85
80
  throw new Error(
86
- `No widget with ID "${widgetId}" was found in this project. Use the widget ID add_dashboard_widget returned.`,
81
+ `No widget with ID "${widgetId}" was found on dashboard "${dashboardId}". Use the widget ID add_dashboard_widget returned, and the dashboard it was added to.`,
87
82
  );
88
83
  }
89
84
  throw error;
90
85
  }
91
- if (widget.dashboardId !== dashboardId) {
92
- throw new Error(
93
- `Widget "${widgetId}" is not on dashboard "${dashboardId}". Pass the dashboard the widget was added to.`,
94
- );
95
- }
96
- return widget;
97
86
  }