@langwatch/mcp-server 2.0.0 → 2.2.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 (430) hide show
  1. package/.gitignore +7 -0
  2. package/.npmignore +41 -0
  3. package/CHANGELOG.md +280 -200
  4. package/CONTRIBUTING.md +10 -0
  5. package/README.md +82 -52
  6. package/dist/add-dashboard-widget-4ZC5UN73.js +50 -0
  7. package/dist/add-dashboard-widget-ACC6QYBG.js +49 -0
  8. package/dist/archive-project-KWFM3I5Z.js +19 -0
  9. package/dist/{archive-project-4EQGLBJJ.js → archive-project-SPVHXK6A.js} +4 -4
  10. package/dist/archive-run-plan-65QN3XRX.js +16 -0
  11. package/dist/archive-run-plan-Z4SYE6BP.js +15 -0
  12. package/dist/{archive-scenario-W6BXYDZ3.js → archive-scenario-A6QV5LOW.js} +4 -4
  13. package/dist/archive-scenario-FXEYQNEH.js +19 -0
  14. package/dist/archive-test-suite-5ADQ3KPQ.js +15 -0
  15. package/dist/archive-test-suite-NKZDZY3D.js +16 -0
  16. package/dist/assign-prompt-tag-5IUZXJ2T.js +23 -0
  17. package/dist/{assign-prompt-tag-VLXUWEKU.js → assign-prompt-tag-HBZLBIFD.js} +8 -4
  18. package/dist/{chunk-CDYQOY5U.js → chunk-3OCG3QPU.js} +7 -10
  19. package/dist/chunk-3YLN3ATJ.js +241 -0
  20. package/dist/chunk-5FNCQRCX.js +91 -0
  21. package/dist/chunk-6YZUOD34.js +55 -0
  22. package/dist/{chunk-WVI5CJ6S.js → chunk-7AQLPVFL.js} +2 -2
  23. package/dist/chunk-7VNSRCXO.js +129 -0
  24. package/dist/{chunk-7RHG56OH.js → chunk-B4J3PJLX.js} +11 -10
  25. package/dist/{chunk-ZXKLPC2E.js → chunk-BIIKE3EI.js} +1 -1
  26. package/dist/{chunk-37SMPMQS.js → chunk-DMM3JQ42.js} +7 -2
  27. package/dist/{chunk-NUFPTHKU.js → chunk-FOKVY3BK.js} +1 -1
  28. package/dist/{chunk-WT4PO4A3.js → chunk-H6WGMG2T.js} +10 -7
  29. package/dist/{chunk-TOXJQDIZ.js → chunk-HGELNIVY.js} +135 -51
  30. package/dist/{chunk-UJPXFA26.js → chunk-HHMNZAPD.js} +101 -74
  31. package/dist/{chunk-J42FWRJ2.js → chunk-I7ATIZED.js} +7 -7
  32. package/dist/{chunk-AQJO2EI5.js → chunk-ILZDO25L.js} +7 -10
  33. package/dist/{chunk-4QC7SA2L.js → chunk-J7PQKBLD.js} +884 -559
  34. package/dist/{chunk-YX3A3CFM.js → chunk-JRJPH75H.js} +7 -13
  35. package/dist/chunk-K2I7Z3LZ.js +28 -0
  36. package/dist/{chunk-5CCZFUXS.js → chunk-NKMTIHIJ.js} +6 -9
  37. package/dist/chunk-O7EMWEVJ.js +44 -0
  38. package/dist/chunk-PTDR56Z3.js +37 -0
  39. package/dist/chunk-RABYBFX5.js +43 -0
  40. package/dist/chunk-SUPUUC4W.js +64 -0
  41. package/dist/{chunk-SFB4MU6H.js → chunk-SXFC3FNH.js} +4 -4
  42. package/dist/chunk-U24EACC4.js +67 -0
  43. package/dist/chunk-UNJM3BIL.js +21 -0
  44. package/dist/{chunk-ZWIL4EFL.js → chunk-UTJCWXPZ.js} +4 -4
  45. package/dist/chunk-UWLE5T2F.js +312 -0
  46. package/dist/chunk-VMWJD732.js +57 -0
  47. package/dist/chunk-XUIJYNRJ.js +15 -0
  48. package/dist/chunk-Y34DHR5K.js +67 -0
  49. package/dist/chunk-YCARO42Z.js +516 -0
  50. package/dist/config-EAKW6F26.js +16 -0
  51. package/dist/config.cjs +109 -0
  52. package/dist/config.js +5 -4
  53. package/dist/{create-agent-7XHO6UIS.js → create-agent-AYZ3LB3V.js} +4 -4
  54. package/dist/create-agent-S5ZBCEFT.js +23 -0
  55. package/dist/create-annotation-LHNCLHYP.js +29 -0
  56. package/dist/{create-annotation-YQXRQC6A.js → create-annotation-VUSXULQK.js} +10 -5
  57. package/dist/{create-api-key-YUS36KBU.js → create-api-key-NNYKARMG.js} +5 -7
  58. package/dist/create-api-key-T4KSNPKB.js +24 -0
  59. package/dist/create-dashboard-DHVFMEU4.js +18 -0
  60. package/dist/{create-dashboard-4Z5JO5LB.js → create-dashboard-WTKKS5Z6.js} +4 -4
  61. package/dist/{create-dataset-E6NMSVX7.js → create-dataset-2MC4SD4O.js} +6 -6
  62. package/dist/create-dataset-LUP5PVDM.js +22 -0
  63. package/dist/create-dataset-records-NSKBZP3G.js +20 -0
  64. package/dist/{create-dataset-records-SKHPRD2K.js → create-dataset-records-W4GLN2FV.js} +5 -7
  65. package/dist/{create-evaluator-JXF5PF33.js → create-evaluator-643G6LXL.js} +4 -4
  66. package/dist/create-evaluator-HMTYO5SS.js +27 -0
  67. package/dist/create-mcp-server.cjs +9513 -0
  68. package/dist/create-mcp-server.js +2647 -5
  69. package/dist/create-project-6N7PIYRY.js +44 -0
  70. package/dist/{create-project-CS2CB57Y.js → create-project-KAIC46UY.js} +4 -4
  71. package/dist/{create-prompt-F5RMX3L3.js → create-prompt-E67LXIYT.js} +5 -7
  72. package/dist/create-prompt-PKJ7EDRR.js +37 -0
  73. package/dist/create-prompt-tag-4YO3FSJ3.js +17 -0
  74. package/dist/{create-prompt-tag-GMRWTEFR.js → create-prompt-tag-OPQUEXWB.js} +3 -3
  75. package/dist/create-scenario-5PJBMAXO.js +33 -0
  76. package/dist/{create-scenario-JDR2VB2H.js → create-scenario-UEM77OE7.js} +11 -4
  77. package/dist/create-test-suite-4IPXVSFQ.js +37 -0
  78. package/dist/create-test-suite-SZEPVXSE.js +36 -0
  79. package/dist/create-trigger-5HZSCRAN.js +49 -0
  80. package/dist/create-trigger-PRELMT6J.js +48 -0
  81. package/dist/delete-agent-JUIZWAXG.js +18 -0
  82. package/dist/{delete-agent-O3EEH4S5.js → delete-agent-QMEK3XHK.js} +4 -4
  83. package/dist/delete-annotation-HY3O2OGR.js +17 -0
  84. package/dist/{delete-annotation-XP6FQM7A.js → delete-annotation-VKIQWUYW.js} +4 -4
  85. package/dist/delete-dashboard-76N66XXL.js +18 -0
  86. package/dist/{delete-dashboard-RFUNYCNP.js → delete-dashboard-JVIVHNJM.js} +4 -4
  87. package/dist/delete-dataset-HQCR66MG.js +18 -0
  88. package/dist/{delete-dataset-3MJFRDLP.js → delete-dataset-WKRUW4FP.js} +5 -7
  89. package/dist/{delete-dataset-records-WPMU5GL5.js → delete-dataset-records-C2IQFFVQ.js} +5 -7
  90. package/dist/delete-dataset-records-SDUHQLLM.js +19 -0
  91. package/dist/delete-evaluator-4SNSCLEE.js +16 -0
  92. package/dist/delete-evaluator-QP3QHTLN.js +15 -0
  93. package/dist/delete-prompt-tag-NZ4JQMYG.js +17 -0
  94. package/dist/{delete-prompt-tag-KNMZVSPB.js → delete-prompt-tag-YYQ4VMAD.js} +3 -3
  95. package/dist/{delete-workflow-3NUXO46U.js → delete-workflow-5J46T73T.js} +4 -4
  96. package/dist/delete-workflow-JSWABL5F.js +17 -0
  97. package/dist/discover-evaluator-schema-UHWA5HVL.js +120 -0
  98. package/dist/discover-evaluator-schema-XKCLLCB3.js +118 -0
  99. package/dist/discover-scenario-schema-NOJY6S7E.js +137 -0
  100. package/dist/discover-scenario-schema-OOFIQKOG.js +139 -0
  101. package/dist/{discover-schema-L6QDPON3.js → discover-schema-55YJBFGQ.js} +181 -186
  102. package/dist/discover-schema-A33SLMXW.js +442 -0
  103. package/dist/get-agent-LJQX7OF4.js +69 -0
  104. package/dist/get-agent-OTIYUFZA.js +70 -0
  105. package/dist/get-analytics-DCS72353.js +80 -0
  106. package/dist/get-analytics-IQZKJHLW.js +79 -0
  107. package/dist/get-dashboard-5NYJEIX2.js +29 -0
  108. package/dist/{get-dashboard-KHBEGZGL.js → get-dashboard-QMTYDQAZ.js} +4 -4
  109. package/dist/get-dataset-ALSP7RTX.js +64 -0
  110. package/dist/get-dataset-X4B5JDG2.js +63 -0
  111. package/dist/{get-evaluator-ADMKVWYZ.js → get-evaluator-ISMC4LLI.js} +4 -4
  112. package/dist/get-evaluator-XEUZGZCH.js +47 -0
  113. package/dist/{get-project-RAK7URQJ.js → get-project-5VKROSDH.js} +4 -4
  114. package/dist/get-project-RM6FRCBK.js +26 -0
  115. package/dist/get-prompt-OWXJZHQQ.js +95 -0
  116. package/dist/get-prompt-W52DY36E.js +94 -0
  117. package/dist/get-run-plan-BE3M2AUX.js +59 -0
  118. package/dist/get-run-plan-RUXQ6PAX.js +58 -0
  119. package/dist/get-scenario-RNM7BAX2.js +37 -0
  120. package/dist/{get-scenario-ZTAJJL5T.js → get-scenario-YM4ODWW6.js} +8 -4
  121. package/dist/get-simulation-run-6GIATQE5.js +69 -0
  122. package/dist/{get-simulation-run-T2ZQWYH2.js → get-simulation-run-LCFSMPGQ.js} +33 -20
  123. package/dist/get-test-suite-GC2O7YH6.js +49 -0
  124. package/dist/get-test-suite-P5LJ6VLF.js +48 -0
  125. package/dist/get-trace-KBRVV4NN.js +45 -0
  126. package/dist/{get-trace-K7U234Q4.js → get-trace-SEF3FMR5.js} +11 -13
  127. package/dist/get-workflow-7PVED7JE.js +25 -0
  128. package/dist/{get-workflow-L5L2PSK3.js → get-workflow-YXULW4GC.js} +4 -4
  129. package/dist/{http-security-EU3CHTY7.js → http-security-DNLBNQZL.js} +2 -2
  130. package/dist/{http-server-YXHFPPGA.js → http-server-IR4QOS43.js} +4071 -342
  131. package/dist/index.js +60221 -38077
  132. package/dist/langwatch-api-annotations-6SA4OB4C.js +17 -0
  133. package/dist/{langwatch-api-annotations-FDAS6NQ7.js → langwatch-api-annotations-TBHLCQ5R.js} +4 -4
  134. package/dist/langwatch-api-dashboards-6EO2VVZW.js +17 -0
  135. package/dist/{langwatch-api-dashboards-JTVCS7ZJ.js → langwatch-api-dashboards-NHU5BZD7.js} +4 -4
  136. package/dist/langwatch-api-monitors-CBF3FGIM.js +47 -0
  137. package/dist/{langwatch-api-monitors-3J7UIQME.js → langwatch-api-monitors-YNWA2M5Y.js} +11 -16
  138. package/dist/langwatch-api-secrets-ADTOJELP.js +56 -0
  139. package/dist/langwatch-api-secrets-RNFO4LF2.js +55 -0
  140. package/dist/langwatch-api-triggers-KQDQC6L5.js +22 -0
  141. package/dist/langwatch-api-triggers-QS7HDIVW.js +23 -0
  142. package/dist/{langwatch-api-workflows-NBJX5KOG.js → langwatch-api-workflows-OKC4FXIF.js} +4 -4
  143. package/dist/langwatch-api-workflows-XGJE6SR5.js +15 -0
  144. package/dist/list-agents-HVYWEQMI.js +43 -0
  145. package/dist/list-agents-RBAOCF53.js +42 -0
  146. package/dist/list-annotations-HJH4NBLD.js +38 -0
  147. package/dist/{list-annotations-ZTVP4EEL.js → list-annotations-J4UAHSUN.js} +10 -5
  148. package/dist/{list-api-keys-CWD4UQT5.js → list-api-keys-7UTJRZDG.js} +10 -5
  149. package/dist/list-api-keys-A2PMV435.js +42 -0
  150. package/dist/list-dashboard-boards-OPWROHMG.js +33 -0
  151. package/dist/list-dashboard-boards-U2GJ7GC5.js +34 -0
  152. package/dist/{list-dashboards-PWG6P6KR.js → list-dashboards-ROSYFLDQ.js} +4 -4
  153. package/dist/list-dashboards-RQ635ZU7.js +32 -0
  154. package/dist/{list-dataset-records-IOE7LQXS.js → list-dataset-records-M5TKA6LK.js} +14 -10
  155. package/dist/list-dataset-records-WFM7F33C.js +43 -0
  156. package/dist/{list-datasets-ZT4JYUDT.js → list-datasets-B5X4P7BQ.js} +9 -13
  157. package/dist/list-datasets-THUKQHPX.js +56 -0
  158. package/dist/{list-evaluators-SJHC7VBH.js → list-evaluators-MYH2OVCI.js} +5 -7
  159. package/dist/list-evaluators-NLVWF6K7.js +32 -0
  160. package/dist/{list-model-providers-PPD2WPD2.js → list-model-providers-3JUGP4YI.js} +4 -4
  161. package/dist/list-model-providers-H3XKORFO.js +35 -0
  162. package/dist/{list-projects-K7QAIX2I.js → list-projects-6EJ5YYEW.js} +5 -7
  163. package/dist/list-projects-YNNSRMLC.js +40 -0
  164. package/dist/{list-prompt-tags-FOO6TNHB.js → list-prompt-tags-NVFQO6WX.js} +3 -3
  165. package/dist/list-prompt-tags-XUQTTAH4.js +23 -0
  166. package/dist/{list-prompts-SC2HAUFG.js → list-prompts-HSIMMHTF.js} +4 -6
  167. package/dist/list-prompts-IRI6AIXO.js +30 -0
  168. package/dist/list-run-plans-PX2XI6EK.js +46 -0
  169. package/dist/list-run-plans-QALLCN2K.js +45 -0
  170. package/dist/list-scenarios-QZRPVHS4.js +46 -0
  171. package/dist/list-scenarios-SSJQEMJP.js +45 -0
  172. package/dist/list-simulation-runs-KNOLGMDV.js +53 -0
  173. package/dist/{list-simulation-runs-KF5THG5H.js → list-simulation-runs-OEADLLQR.js} +19 -9
  174. package/dist/list-test-suites-ANAQBLDG.js +34 -0
  175. package/dist/list-test-suites-N4WVLBKK.js +35 -0
  176. package/dist/list-trigger-fires-JV3WFYYG.js +19 -0
  177. package/dist/list-trigger-fires-WTW4DVIW.js +20 -0
  178. package/dist/list-triggers-SQNIG35Q.js +45 -0
  179. package/dist/list-triggers-V4Y356AK.js +46 -0
  180. package/dist/{list-workflows-QSJWURCK.js → list-workflows-IMSX7SXU.js} +5 -7
  181. package/dist/list-workflows-ZHTX5LCL.js +33 -0
  182. package/dist/{rename-prompt-tag-EKWU5QF3.js → rename-prompt-tag-IQI7MHOI.js} +3 -3
  183. package/dist/rename-prompt-tag-PA2BRIE6.js +18 -0
  184. package/dist/rename-test-suite-4J7UX5S2.js +21 -0
  185. package/dist/rename-test-suite-NNVLMLKY.js +20 -0
  186. package/dist/report-issue-AS34ZMJF.js +898 -0
  187. package/dist/report-issue-DCZFLGDO.js +899 -0
  188. package/dist/rerun-run-plan-TG2V4WM4.js +22 -0
  189. package/dist/rerun-run-plan-ZI5OY3VA.js +21 -0
  190. package/dist/revoke-api-key-3J3ZA4UB.js +15 -0
  191. package/dist/{revoke-api-key-FTRTZMOF.js → revoke-api-key-SFMEFWJC.js} +4 -4
  192. package/dist/run-agent-W4VJP72Z.js +75 -0
  193. package/dist/run-agent-YNV6ZHW4.js +74 -0
  194. package/dist/run-plan-6C77GWG4.js +38 -0
  195. package/dist/run-plan-PAARQSI4.js +39 -0
  196. package/dist/run-query-KJDH544C.js +47 -0
  197. package/dist/run-query-T4QW2Z5O.js +46 -0
  198. package/dist/run-test-suite-SQJELEZX.js +26 -0
  199. package/dist/run-test-suite-STB6NUJM.js +25 -0
  200. package/dist/{run-workflow-QPXC627O.js → run-workflow-D6PQNBI6.js} +4 -4
  201. package/dist/{run-agent-6SM4XNA7.js → run-workflow-SP32SO5M.js} +10 -11
  202. package/dist/search-traces-HCBGOG6R.js +170 -0
  203. package/dist/search-traces-HSTQ6WTQ.js +171 -0
  204. package/dist/{set-model-provider-3WKT63ZN.js → set-model-provider-GF7NXUJA.js} +4 -4
  205. package/dist/set-model-provider-KDQ7C4EZ.js +33 -0
  206. package/dist/{update-agent-SMAEHLXH.js → update-agent-DWG43T2P.js} +4 -4
  207. package/dist/update-agent-MXNOBS4H.js +20 -0
  208. package/dist/update-dashboard-widget-CJKJLCDY.js +71 -0
  209. package/dist/update-dashboard-widget-CYQDS2NR.js +70 -0
  210. package/dist/update-dataset-DQH3OHOU.js +22 -0
  211. package/dist/{update-dataset-BDUK7TUO.js → update-dataset-SQZ6T4WX.js} +6 -6
  212. package/dist/{update-dataset-record-4ZSDRBSW.js → update-dataset-record-3AT4IPBC.js} +4 -4
  213. package/dist/update-dataset-record-7PLDGTMR.js +19 -0
  214. package/dist/update-evaluator-4LFTKFPT.js +24 -0
  215. package/dist/{update-evaluator-LS6TIBY7.js → update-evaluator-IGTX6PX4.js} +4 -4
  216. package/dist/{update-project-LKVYXENH.js → update-project-PLJIOZS6.js} +4 -4
  217. package/dist/update-project-QVHSJRUP.js +24 -0
  218. package/dist/update-prompt-GDKRYJI3.js +140 -0
  219. package/dist/update-prompt-MY263DYF.js +141 -0
  220. package/dist/update-scenario-7KA3JDXA.js +34 -0
  221. package/dist/{update-scenario-NEXCAQI7.js → update-scenario-MOHRQKAQ.js} +11 -4
  222. package/package.json +39 -44
  223. package/pyproject.toml +8 -8
  224. package/src/config.d.ts +4 -0
  225. package/src/config.ts +20 -29
  226. package/src/create-mcp-server.ts +1021 -596
  227. package/src/documentation-fetch.ts +21 -20
  228. package/src/http-security.ts +166 -135
  229. package/src/http-server.ts +189 -224
  230. package/src/index.ts +14 -16
  231. package/src/langwatch-api-agents.ts +202 -21
  232. package/src/langwatch-api-annotations.ts +11 -12
  233. package/src/langwatch-api-api-keys.ts +8 -9
  234. package/src/langwatch-api-boards.ts +46 -0
  235. package/src/langwatch-api-dashboard-widgets.ts +112 -0
  236. package/src/langwatch-api-dashboards.ts +13 -10
  237. package/src/langwatch-api-datasets.ts +98 -32
  238. package/src/langwatch-api-evaluators.ts +13 -19
  239. package/src/langwatch-api-model-providers.ts +4 -4
  240. package/src/langwatch-api-monitors.ts +14 -18
  241. package/src/langwatch-api-projects.ts +27 -9
  242. package/src/langwatch-api-query.ts +114 -0
  243. package/src/langwatch-api-run-plans.ts +140 -0
  244. package/src/langwatch-api-scenarios.ts +17 -10
  245. package/src/langwatch-api-secrets.ts +31 -24
  246. package/src/langwatch-api-simulation-runs.ts +10 -7
  247. package/src/langwatch-api-test-suites.ts +116 -0
  248. package/src/langwatch-api-triggers.ts +96 -34
  249. package/src/langwatch-api-workflows.ts +9 -9
  250. package/src/langwatch-api.ts +143 -109
  251. package/src/public-http-request.ts +21 -12
  252. package/src/schemas/analytics-metrics.ts +3 -15
  253. package/src/schemas/create-dataset.ts +3 -4
  254. package/src/schemas/run-plan.ts +76 -0
  255. package/src/schemas/suite-fields.ts +132 -0
  256. package/src/schemas/triggers.ts +365 -0
  257. package/src/tools/add-dashboard-widget.ts +63 -0
  258. package/src/tools/archive-project.ts +2 -4
  259. package/src/tools/archive-run-plan.ts +10 -0
  260. package/src/tools/archive-scenario.ts +2 -4
  261. package/src/tools/archive-test-suite.ts +10 -0
  262. package/src/tools/assign-prompt-tag.ts +6 -2
  263. package/src/tools/create-agent.ts +1 -1
  264. package/src/tools/create-annotation.ts +7 -2
  265. package/src/tools/create-api-key.ts +4 -6
  266. package/src/tools/create-dashboard.ts +1 -1
  267. package/src/tools/create-dataset-records.ts +4 -8
  268. package/src/tools/create-dataset.ts +5 -7
  269. package/src/tools/create-evaluator.ts +3 -5
  270. package/src/tools/create-project.ts +2 -2
  271. package/src/tools/create-prompt-tag.ts +2 -4
  272. package/src/tools/create-prompt.ts +9 -18
  273. package/src/tools/create-scenario.ts +11 -5
  274. package/src/tools/create-test-suite.ts +38 -0
  275. package/src/tools/create-trigger.ts +55 -0
  276. package/src/tools/dashboard-exists.ts +25 -0
  277. package/src/tools/dashboard-widget-queries.ts +32 -0
  278. package/src/tools/delete-agent.ts +1 -1
  279. package/src/tools/delete-annotation.ts +1 -1
  280. package/src/tools/delete-dashboard.ts +1 -1
  281. package/src/tools/delete-dataset-records.ts +4 -8
  282. package/src/tools/delete-dataset.ts +3 -7
  283. package/src/tools/delete-evaluator.ts +4 -6
  284. package/src/tools/delete-prompt-tag.ts +2 -4
  285. package/src/tools/delete-workflow.ts +1 -1
  286. package/src/tools/discover-evaluator-schema.ts +34 -25
  287. package/src/tools/discover-scenario-schema.ts +86 -12
  288. package/src/tools/discover-schema.ts +149 -27
  289. package/src/tools/experiment-run-status.ts +2 -8
  290. package/src/tools/format-dataset-mutation.ts +5 -10
  291. package/src/tools/format-run-plan.ts +54 -0
  292. package/src/tools/format-scenario.ts +12 -0
  293. package/src/tools/format-suite-details.ts +90 -0
  294. package/src/tools/get-agent.ts +54 -3
  295. package/src/tools/get-analytics.ts +52 -46
  296. package/src/tools/get-dashboard.ts +1 -1
  297. package/src/tools/get-dataset.ts +34 -16
  298. package/src/tools/get-evaluator.ts +4 -11
  299. package/src/tools/get-experiment-results.ts +219 -186
  300. package/src/tools/get-project.ts +2 -4
  301. package/src/tools/get-prompt.ts +100 -37
  302. package/src/tools/get-run-plan.ts +60 -0
  303. package/src/tools/get-scenario.ts +6 -5
  304. package/src/tools/get-simulation-run.ts +32 -20
  305. package/src/tools/get-test-suite.ts +46 -0
  306. package/src/tools/get-trace.ts +16 -17
  307. package/src/tools/get-workflow.ts +1 -1
  308. package/src/tools/list-agents.ts +20 -3
  309. package/src/tools/list-annotations.ts +8 -5
  310. package/src/tools/list-api-keys.ts +7 -2
  311. package/src/tools/list-dashboard-boards.ts +28 -0
  312. package/src/tools/list-dashboards.ts +1 -1
  313. package/src/tools/list-dataset-records.ts +8 -6
  314. package/src/tools/list-datasets.ts +12 -23
  315. package/src/tools/list-evaluators.ts +4 -8
  316. package/src/tools/list-experiment-runs.ts +5 -9
  317. package/src/tools/list-experiments.ts +5 -11
  318. package/src/tools/list-model-providers.ts +3 -5
  319. package/src/tools/list-projects.ts +2 -4
  320. package/src/tools/list-prompt-tags.ts +3 -3
  321. package/src/tools/list-prompts.ts +4 -8
  322. package/src/tools/list-run-plans.ts +47 -0
  323. package/src/tools/list-scenarios.ts +26 -17
  324. package/src/tools/list-simulation-runs.ts +13 -5
  325. package/src/tools/list-test-suites.ts +35 -0
  326. package/src/tools/list-trigger-fires.ts +17 -0
  327. package/src/tools/list-triggers.ts +39 -0
  328. package/src/tools/list-workflows.ts +2 -4
  329. package/src/tools/rename-prompt-tag.ts +1 -1
  330. package/src/tools/rename-test-suite.ts +15 -0
  331. package/src/tools/report-issue.ts +5 -9
  332. package/src/tools/rerun-run-plan.ts +18 -0
  333. package/src/tools/revoke-api-key.ts +2 -4
  334. package/src/tools/run-agent.ts +65 -14
  335. package/src/tools/run-experiment.ts +36 -37
  336. package/src/tools/run-plan.ts +46 -0
  337. package/src/tools/run-query.ts +47 -0
  338. package/src/tools/run-test-suite.ts +27 -0
  339. package/src/tools/run-workflow.ts +2 -5
  340. package/src/tools/search-traces.ts +161 -47
  341. package/src/tools/set-model-provider.ts +4 -6
  342. package/src/tools/test-agent.ts +18 -0
  343. package/src/tools/update-agent.ts +1 -1
  344. package/src/tools/update-dashboard-widget.ts +97 -0
  345. package/src/tools/update-dataset-record.ts +1 -1
  346. package/src/tools/update-dataset.ts +5 -7
  347. package/src/tools/update-evaluator.ts +3 -5
  348. package/src/tools/update-project.ts +1 -1
  349. package/src/tools/update-prompt.ts +185 -15
  350. package/src/tools/update-scenario.ts +11 -5
  351. package/src/tools/update-test-suite.ts +40 -0
  352. package/src/utils/date-parsing.ts +1 -1
  353. package/src/utils/escape-markdown.ts +3 -8
  354. package/src/utils/format-evaluations.ts +6 -6
  355. package/src/utils/markdown-table.ts +58 -0
  356. package/src/utils/trace-id-shape.ts +20 -0
  357. package/tsconfig.app.json +24 -0
  358. package/tsconfig.json +19 -12
  359. package/uv.lock +416 -296
  360. package/vitest.integration.config.js +10 -0
  361. package/vitest.scenario.config.js +9 -0
  362. package/.eslintrc.cjs +0 -36
  363. package/dist/archive-suite-4T6BSRS7.js +0 -16
  364. package/dist/chunk-77BNWQ3U.js +0 -86
  365. package/dist/chunk-A2LEVYQ5.js +0 -217
  366. package/dist/chunk-TJCXFNDT.js +0 -24
  367. package/dist/chunk-YZLYHLLI.js +0 -48
  368. package/dist/config.d.ts +0 -17
  369. package/dist/create-mcp-server.d.ts +0 -10
  370. package/dist/create-suite-LZS6QIAF.js +0 -39
  371. package/dist/delete-evaluator-33SP2JFX.js +0 -16
  372. package/dist/discover-evaluator-schema-XTAD4X7D.js +0 -2191
  373. package/dist/discover-scenario-schema-FE64QK2D.js +0 -67
  374. package/dist/get-agent-Y7MWZ65F.js +0 -29
  375. package/dist/get-analytics-TETCSOK6.js +0 -73
  376. package/dist/get-dataset-RCMU5VAH.js +0 -49
  377. package/dist/get-prompt-OY5B7TRI.js +0 -46
  378. package/dist/get-suite-J7JVWO6O.js +0 -45
  379. package/dist/index.d.ts +0 -2
  380. package/dist/langwatch-api-secrets-BUBSNCNO.js +0 -41
  381. package/dist/langwatch-api-triggers-EDFUCJN6.js +0 -31
  382. package/dist/list-agents-KFHKGPXV.js +0 -33
  383. package/dist/list-scenarios-F2WYNRIE.js +0 -41
  384. package/dist/list-suites-CRY4VWW6.js +0 -43
  385. package/dist/report-issue-XYVAPAYJ.js +0 -412
  386. package/dist/run-suite-NKZCJ2IN.js +0 -30
  387. package/dist/search-traces-A6HFKPLJ.js +0 -79
  388. package/dist/update-prompt-ODCRQRN6.js +0 -25
  389. package/dist/update-suite-SNO3GS7T.js +0 -40
  390. package/src/__tests__/all-tools.integration.test.ts +0 -1626
  391. package/src/__tests__/config.unit.test.ts +0 -202
  392. package/src/__tests__/datasets.integration.test.ts +0 -620
  393. package/src/__tests__/datasets.unit.test.ts +0 -244
  394. package/src/__tests__/date-parsing.unit.test.ts +0 -78
  395. package/src/__tests__/discover-evaluator-schema.unit.test.ts +0 -89
  396. package/src/__tests__/discover-schema.unit.test.ts +0 -118
  397. package/src/__tests__/docker.integration.test.ts +0 -318
  398. package/src/__tests__/documentation-fetch-security.integration.test.ts +0 -182
  399. package/src/__tests__/evaluator-tools.unit.test.ts +0 -262
  400. package/src/__tests__/experiment-list-tools.unit.test.ts +0 -157
  401. package/src/__tests__/experiment-status.unit.test.ts +0 -194
  402. package/src/__tests__/feature-map-tool-drift.unit.test.ts +0 -93
  403. package/src/__tests__/get-experiment-results.unit.test.ts +0 -313
  404. package/src/__tests__/http-security-origin.unit.test.ts +0 -97
  405. package/src/__tests__/http-security-sessions.unit.test.ts +0 -209
  406. package/src/__tests__/http-security-verifier.unit.test.ts +0 -248
  407. package/src/__tests__/http-server-allocation.integration.test.ts +0 -279
  408. package/src/__tests__/http-server-origin.integration.test.ts +0 -169
  409. package/src/__tests__/http-server-session-auth.integration.test.ts +0 -341
  410. package/src/__tests__/http-transport.integration.test.ts +0 -395
  411. package/src/__tests__/integration.integration.test.ts +0 -288
  412. package/src/__tests__/langwatch-api.unit.test.ts +0 -661
  413. package/src/__tests__/model-provider-tools.unit.test.ts +0 -190
  414. package/src/__tests__/project-api-key-tools.unit.test.ts +0 -451
  415. package/src/__tests__/public-http-request-security.integration.test.ts +0 -118
  416. package/src/__tests__/report-issue.integration.test.ts +0 -147
  417. package/src/__tests__/scenario-tools.integration.test.ts +0 -286
  418. package/src/__tests__/scenario-tools.unit.test.ts +0 -188
  419. package/src/__tests__/schemas.unit.test.ts +0 -85
  420. package/src/__tests__/support/http-server-harness.ts +0 -138
  421. package/src/__tests__/tools.unit.test.ts +0 -924
  422. package/src/langwatch-api-suites.ts +0 -118
  423. package/src/schemas/filter-fields.ts +0 -119
  424. package/src/schemas/index.ts +0 -4
  425. package/src/tools/archive-suite.ts +0 -12
  426. package/src/tools/create-suite.ts +0 -42
  427. package/src/tools/get-suite.ts +0 -47
  428. package/src/tools/list-suites.ts +0 -43
  429. package/src/tools/run-suite.ts +0 -28
  430. package/src/tools/update-suite.ts +0 -44
@@ -0,0 +1,22 @@
1
+ import {
2
+ formatRunPlanRun
3
+ } from "./chunk-RABYBFX5.js";
4
+ import {
5
+ rerunRunPlan
6
+ } from "./chunk-PTDR56Z3.js";
7
+ import "./chunk-UWLE5T2F.js";
8
+ import "./chunk-H6WGMG2T.js";
9
+ import "./chunk-SAS5OB7F.js";
10
+
11
+ // src/tools/rerun-run-plan.ts
12
+ async function handleRerunRunPlan(params) {
13
+ const result = await rerunRunPlan(params.id, {
14
+ parameters: params.parameters,
15
+ note: params.note
16
+ });
17
+ return formatRunPlanRun(result);
18
+ }
19
+ export {
20
+ handleRerunRunPlan
21
+ };
22
+ //# sourceMappingURL=rerun-run-plan-TG2V4WM4.js.map
@@ -0,0 +1,21 @@
1
+ import {
2
+ formatRunPlanRun
3
+ } from "./chunk-RABYBFX5.js";
4
+ import {
5
+ rerunRunPlan
6
+ } from "./chunk-PTDR56Z3.js";
7
+ import "./chunk-UWLE5T2F.js";
8
+ import "./chunk-H6WGMG2T.js";
9
+
10
+ // src/tools/rerun-run-plan.ts
11
+ async function handleRerunRunPlan(params) {
12
+ const result = await rerunRunPlan(params.id, {
13
+ parameters: params.parameters,
14
+ note: params.note
15
+ });
16
+ return formatRunPlanRun(result);
17
+ }
18
+ export {
19
+ handleRerunRunPlan
20
+ };
21
+ //# sourceMappingURL=rerun-run-plan-ZI5OY3VA.js.map
@@ -0,0 +1,15 @@
1
+ import {
2
+ revokeApiKey
3
+ } from "./chunk-UNJM3BIL.js";
4
+ import "./chunk-UWLE5T2F.js";
5
+ import "./chunk-H6WGMG2T.js";
6
+
7
+ // src/tools/revoke-api-key.ts
8
+ async function handleRevokeApiKey(params) {
9
+ await revokeApiKey(params.id);
10
+ return `API key ${params.id} revoked successfully.`;
11
+ }
12
+ export {
13
+ handleRevokeApiKey
14
+ };
15
+ //# sourceMappingURL=revoke-api-key-3J3ZA4UB.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  revokeApiKey
3
- } from "./chunk-TJCXFNDT.js";
4
- import "./chunk-A2LEVYQ5.js";
5
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-UNJM3BIL.js";
4
+ import "./chunk-UWLE5T2F.js";
5
+ import "./chunk-H6WGMG2T.js";
6
6
  import "./chunk-SAS5OB7F.js";
7
7
 
8
8
  // src/tools/revoke-api-key.ts
@@ -13,4 +13,4 @@ async function handleRevokeApiKey(params) {
13
13
  export {
14
14
  handleRevokeApiKey
15
15
  };
16
- //# sourceMappingURL=revoke-api-key-FTRTZMOF.js.map
16
+ //# sourceMappingURL=revoke-api-key-SFMEFWJC.js.map
@@ -0,0 +1,75 @@
1
+ import {
2
+ runAgent
3
+ } from "./chunk-HGELNIVY.js";
4
+ import "./chunk-UWLE5T2F.js";
5
+ import "./chunk-H6WGMG2T.js";
6
+ import "./chunk-SAS5OB7F.js";
7
+
8
+ // src/tools/run-agent.ts
9
+ import { z } from "zod";
10
+ var jsonObjectSchema = z.looseObject({});
11
+ function outputLines(result) {
12
+ const output = result.output;
13
+ if (output !== void 0) {
14
+ return ["**Output:**", typeof output === "string" ? output : JSON.stringify(output, null, 2)];
15
+ }
16
+ return ["**Result:**", JSON.stringify(result, null, 2)];
17
+ }
18
+ function connectedLines(result) {
19
+ const lines = [];
20
+ const instance = result.instance;
21
+ const durationMs = result.durationMs;
22
+ if (instance?.hostname) {
23
+ const label = instance.label ? ` (${instance.label})` : "";
24
+ lines.push(`
25
+ **Instance:** ${instance.hostname}${label}`);
26
+ }
27
+ if (typeof durationMs === "number") lines.push(`**Duration:** ${durationMs} ms`);
28
+ const session = result.session;
29
+ if (session !== void 0 && session !== null) {
30
+ lines.push("**Session:**");
31
+ lines.push(JSON.stringify(session, null, 2));
32
+ }
33
+ return lines;
34
+ }
35
+ async function handleRunAgent({
36
+ id,
37
+ input,
38
+ message,
39
+ parameters,
40
+ threadId
41
+ }) {
42
+ let parsedInput = {};
43
+ if (input) {
44
+ let decoded;
45
+ try {
46
+ decoded = JSON.parse(input);
47
+ } catch {
48
+ return "Error: `input` must be a valid JSON object.";
49
+ }
50
+ const result2 = jsonObjectSchema.safeParse(decoded);
51
+ if (!result2.success) {
52
+ return "Error: `input` must be a valid JSON object.";
53
+ }
54
+ parsedInput = result2.data;
55
+ }
56
+ const { agentType, result } = await runAgent({
57
+ id,
58
+ input: parsedInput,
59
+ message,
60
+ parameters,
61
+ threadId
62
+ });
63
+ const lines = [];
64
+ lines.push(`Agent executed successfully (type: ${agentType}).
65
+ `);
66
+ if (typeof result === "object" && result !== null) {
67
+ lines.push(...outputLines(result));
68
+ if (agentType === "connected") lines.push(...connectedLines(result));
69
+ }
70
+ return lines.join("\n");
71
+ }
72
+ export {
73
+ handleRunAgent
74
+ };
75
+ //# sourceMappingURL=run-agent-W4VJP72Z.js.map
@@ -0,0 +1,74 @@
1
+ import {
2
+ runAgent
3
+ } from "./chunk-YCARO42Z.js";
4
+ import "./chunk-UWLE5T2F.js";
5
+ import "./chunk-H6WGMG2T.js";
6
+
7
+ // src/tools/run-agent.ts
8
+ import { z } from "zod";
9
+ var jsonObjectSchema = z.looseObject({});
10
+ function outputLines(result) {
11
+ const output = result.output;
12
+ if (output !== void 0) {
13
+ return ["**Output:**", typeof output === "string" ? output : JSON.stringify(output, null, 2)];
14
+ }
15
+ return ["**Result:**", JSON.stringify(result, null, 2)];
16
+ }
17
+ function connectedLines(result) {
18
+ const lines = [];
19
+ const instance = result.instance;
20
+ const durationMs = result.durationMs;
21
+ if (instance?.hostname) {
22
+ const label = instance.label ? ` (${instance.label})` : "";
23
+ lines.push(`
24
+ **Instance:** ${instance.hostname}${label}`);
25
+ }
26
+ if (typeof durationMs === "number") lines.push(`**Duration:** ${durationMs} ms`);
27
+ const session = result.session;
28
+ if (session !== void 0 && session !== null) {
29
+ lines.push("**Session:**");
30
+ lines.push(JSON.stringify(session, null, 2));
31
+ }
32
+ return lines;
33
+ }
34
+ async function handleRunAgent({
35
+ id,
36
+ input,
37
+ message,
38
+ parameters,
39
+ threadId
40
+ }) {
41
+ let parsedInput = {};
42
+ if (input) {
43
+ let decoded;
44
+ try {
45
+ decoded = JSON.parse(input);
46
+ } catch {
47
+ return "Error: `input` must be a valid JSON object.";
48
+ }
49
+ const result2 = jsonObjectSchema.safeParse(decoded);
50
+ if (!result2.success) {
51
+ return "Error: `input` must be a valid JSON object.";
52
+ }
53
+ parsedInput = result2.data;
54
+ }
55
+ const { agentType, result } = await runAgent({
56
+ id,
57
+ input: parsedInput,
58
+ message,
59
+ parameters,
60
+ threadId
61
+ });
62
+ const lines = [];
63
+ lines.push(`Agent executed successfully (type: ${agentType}).
64
+ `);
65
+ if (typeof result === "object" && result !== null) {
66
+ lines.push(...outputLines(result));
67
+ if (agentType === "connected") lines.push(...connectedLines(result));
68
+ }
69
+ return lines.join("\n");
70
+ }
71
+ export {
72
+ handleRunAgent
73
+ };
74
+ //# sourceMappingURL=run-agent-YNV6ZHW4.js.map
@@ -0,0 +1,38 @@
1
+ import {
2
+ formatRunPlanRun
3
+ } from "./chunk-RABYBFX5.js";
4
+ import {
5
+ runRunPlan
6
+ } from "./chunk-PTDR56Z3.js";
7
+ import {
8
+ toWireTargets
9
+ } from "./chunk-O7EMWEVJ.js";
10
+ import {
11
+ toWireAttachments
12
+ } from "./chunk-U24EACC4.js";
13
+ import "./chunk-UWLE5T2F.js";
14
+ import "./chunk-H6WGMG2T.js";
15
+
16
+ // src/tools/run-plan.ts
17
+ async function handleRunPlan(params) {
18
+ const result = await runRunPlan({
19
+ name: params.name,
20
+ config: {
21
+ scope: params.scope,
22
+ targets: toWireTargets(params.targets),
23
+ repeatCount: params.repeatCount,
24
+ simulatorModel: params.simulatorModel,
25
+ judgeModel: params.judgeModel,
26
+ scenarioIds: params.scenarioIds,
27
+ ...params.evaluators !== void 0 ? { evaluators: toWireAttachments(params.evaluators) } : {}
28
+ },
29
+ idempotencyKey: params.idempotencyKey,
30
+ parameters: params.parameters,
31
+ note: params.note
32
+ });
33
+ return formatRunPlanRun(result);
34
+ }
35
+ export {
36
+ handleRunPlan
37
+ };
38
+ //# sourceMappingURL=run-plan-6C77GWG4.js.map
@@ -0,0 +1,39 @@
1
+ import {
2
+ formatRunPlanRun
3
+ } from "./chunk-RABYBFX5.js";
4
+ import {
5
+ runRunPlan
6
+ } from "./chunk-PTDR56Z3.js";
7
+ import {
8
+ toWireTargets
9
+ } from "./chunk-O7EMWEVJ.js";
10
+ import {
11
+ toWireAttachments
12
+ } from "./chunk-U24EACC4.js";
13
+ import "./chunk-UWLE5T2F.js";
14
+ import "./chunk-H6WGMG2T.js";
15
+ import "./chunk-SAS5OB7F.js";
16
+
17
+ // src/tools/run-plan.ts
18
+ async function handleRunPlan(params) {
19
+ const result = await runRunPlan({
20
+ name: params.name,
21
+ config: {
22
+ scope: params.scope,
23
+ targets: toWireTargets(params.targets),
24
+ repeatCount: params.repeatCount,
25
+ simulatorModel: params.simulatorModel,
26
+ judgeModel: params.judgeModel,
27
+ scenarioIds: params.scenarioIds,
28
+ ...params.evaluators !== void 0 ? { evaluators: toWireAttachments(params.evaluators) } : {}
29
+ },
30
+ idempotencyKey: params.idempotencyKey,
31
+ parameters: params.parameters,
32
+ note: params.note
33
+ });
34
+ return formatRunPlanRun(result);
35
+ }
36
+ export {
37
+ handleRunPlan
38
+ };
39
+ //# sourceMappingURL=run-plan-PAARQSI4.js.map
@@ -0,0 +1,47 @@
1
+ import {
2
+ markdownTable,
3
+ runQuery
4
+ } from "./chunk-SUPUUC4W.js";
5
+ import "./chunk-FOKVY3BK.js";
6
+ import "./chunk-UWLE5T2F.js";
7
+ import "./chunk-H6WGMG2T.js";
8
+ import "./chunk-SAS5OB7F.js";
9
+
10
+ // src/tools/run-query.ts
11
+ var RUN_QUERY_ROW_CAP = 50;
12
+ async function handleRunQuery(params) {
13
+ const result = await runQuery(params);
14
+ const headers = result.columns.map((column) => column.name);
15
+ const shown = result.rows.slice(0, RUN_QUERY_ROW_CAP);
16
+ const lines = [];
17
+ lines.push(
18
+ markdownTable({
19
+ headers,
20
+ rows: shown,
21
+ emptyMessage: "The statement ran and returned no rows."
22
+ })
23
+ );
24
+ lines.push("");
25
+ lines.push(
26
+ `Returned ${result.rows.length} row${result.rows.length === 1 ? "" : "s"} in ${result.statistics.elapsedMs}ms.`
27
+ );
28
+ if (result.rows.length > shown.length) {
29
+ lines.push(
30
+ `Showing the first ${shown.length}. Aggregate further, or export every row with \`langwatch query "<statement>" --format jsonl\`.`
31
+ );
32
+ }
33
+ if (result.truncated) {
34
+ lines.push(
35
+ "The result hit a response ceiling and was cut short, so this is not the whole answer."
36
+ );
37
+ }
38
+ for (const diagnostic of result.diagnostics) {
39
+ lines.push(`${diagnostic.code}: ${diagnostic.message}`);
40
+ }
41
+ return lines.join("\n");
42
+ }
43
+ export {
44
+ RUN_QUERY_ROW_CAP,
45
+ handleRunQuery
46
+ };
47
+ //# sourceMappingURL=run-query-KJDH544C.js.map
@@ -0,0 +1,46 @@
1
+ import {
2
+ markdownTable,
3
+ runQuery
4
+ } from "./chunk-SUPUUC4W.js";
5
+ import "./chunk-FOKVY3BK.js";
6
+ import "./chunk-UWLE5T2F.js";
7
+ import "./chunk-H6WGMG2T.js";
8
+
9
+ // src/tools/run-query.ts
10
+ var RUN_QUERY_ROW_CAP = 50;
11
+ async function handleRunQuery(params) {
12
+ const result = await runQuery(params);
13
+ const headers = result.columns.map((column) => column.name);
14
+ const shown = result.rows.slice(0, RUN_QUERY_ROW_CAP);
15
+ const lines = [];
16
+ lines.push(
17
+ markdownTable({
18
+ headers,
19
+ rows: shown,
20
+ emptyMessage: "The statement ran and returned no rows."
21
+ })
22
+ );
23
+ lines.push("");
24
+ lines.push(
25
+ `Returned ${result.rows.length} row${result.rows.length === 1 ? "" : "s"} in ${result.statistics.elapsedMs}ms.`
26
+ );
27
+ if (result.rows.length > shown.length) {
28
+ lines.push(
29
+ `Showing the first ${shown.length}. Aggregate further, or export every row with \`langwatch query "<statement>" --format jsonl\`.`
30
+ );
31
+ }
32
+ if (result.truncated) {
33
+ lines.push(
34
+ "The result hit a response ceiling and was cut short, so this is not the whole answer."
35
+ );
36
+ }
37
+ for (const diagnostic of result.diagnostics) {
38
+ lines.push(`${diagnostic.code}: ${diagnostic.message}`);
39
+ }
40
+ return lines.join("\n");
41
+ }
42
+ export {
43
+ RUN_QUERY_ROW_CAP,
44
+ handleRunQuery
45
+ };
46
+ //# sourceMappingURL=run-query-T4QW2Z5O.js.map
@@ -0,0 +1,26 @@
1
+ import {
2
+ formatRunPlanRun
3
+ } from "./chunk-RABYBFX5.js";
4
+ import {
5
+ toWireTargets
6
+ } from "./chunk-O7EMWEVJ.js";
7
+ import {
8
+ runTestSuite
9
+ } from "./chunk-VMWJD732.js";
10
+ import "./chunk-UWLE5T2F.js";
11
+ import "./chunk-H6WGMG2T.js";
12
+ import "./chunk-SAS5OB7F.js";
13
+
14
+ // src/tools/run-test-suite.ts
15
+ async function handleRunTestSuite(params) {
16
+ const { targets, ...rest } = params;
17
+ const result = await runTestSuite({
18
+ ...rest,
19
+ targets: toWireTargets(targets)
20
+ });
21
+ return formatRunPlanRun(result);
22
+ }
23
+ export {
24
+ handleRunTestSuite
25
+ };
26
+ //# sourceMappingURL=run-test-suite-SQJELEZX.js.map
@@ -0,0 +1,25 @@
1
+ import {
2
+ formatRunPlanRun
3
+ } from "./chunk-RABYBFX5.js";
4
+ import {
5
+ toWireTargets
6
+ } from "./chunk-O7EMWEVJ.js";
7
+ import {
8
+ runTestSuite
9
+ } from "./chunk-VMWJD732.js";
10
+ import "./chunk-UWLE5T2F.js";
11
+ import "./chunk-H6WGMG2T.js";
12
+
13
+ // src/tools/run-test-suite.ts
14
+ async function handleRunTestSuite(params) {
15
+ const { targets, ...rest } = params;
16
+ const result = await runTestSuite({
17
+ ...rest,
18
+ targets: toWireTargets(targets)
19
+ });
20
+ return formatRunPlanRun(result);
21
+ }
22
+ export {
23
+ handleRunTestSuite
24
+ };
25
+ //# sourceMappingURL=run-test-suite-STB6NUJM.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  runWorkflow
3
- } from "./chunk-5CCZFUXS.js";
4
- import "./chunk-A2LEVYQ5.js";
5
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-NKMTIHIJ.js";
4
+ import "./chunk-UWLE5T2F.js";
5
+ import "./chunk-H6WGMG2T.js";
6
6
  import "./chunk-SAS5OB7F.js";
7
7
 
8
8
  // src/tools/run-workflow.ts
@@ -34,4 +34,4 @@ async function handleRunWorkflow(params) {
34
34
  export {
35
35
  handleRunWorkflow
36
36
  };
37
- //# sourceMappingURL=run-workflow-QPXC627O.js.map
37
+ //# sourceMappingURL=run-workflow-D6PQNBI6.js.map
@@ -1,12 +1,11 @@
1
1
  import {
2
- runAgent
3
- } from "./chunk-TOXJQDIZ.js";
4
- import "./chunk-A2LEVYQ5.js";
5
- import "./chunk-WT4PO4A3.js";
6
- import "./chunk-SAS5OB7F.js";
2
+ runWorkflow
3
+ } from "./chunk-NKMTIHIJ.js";
4
+ import "./chunk-UWLE5T2F.js";
5
+ import "./chunk-H6WGMG2T.js";
7
6
 
8
- // src/tools/run-agent.ts
9
- async function handleRunAgent(params) {
7
+ // src/tools/run-workflow.ts
8
+ async function handleRunWorkflow(params) {
10
9
  let parsedInput = {};
11
10
  if (params.input) {
12
11
  try {
@@ -15,9 +14,9 @@ async function handleRunAgent(params) {
15
14
  return "Error: `input` must be a valid JSON object.";
16
15
  }
17
16
  }
18
- const { agentType, result } = await runAgent(params.id, parsedInput);
17
+ const result = await runWorkflow(params.id, parsedInput);
19
18
  const lines = [];
20
- lines.push(`Agent executed successfully (type: ${agentType}).
19
+ lines.push(`Workflow "${params.id}" executed successfully.
21
20
  `);
22
21
  if (typeof result === "object" && result !== null) {
23
22
  const output = result.output;
@@ -32,6 +31,6 @@ async function handleRunAgent(params) {
32
31
  return lines.join("\n");
33
32
  }
34
33
  export {
35
- handleRunAgent
34
+ handleRunWorkflow
36
35
  };
37
- //# sourceMappingURL=run-agent-6SM4XNA7.js.map
36
+ //# sourceMappingURL=run-workflow-SP32SO5M.js.map
@@ -0,0 +1,170 @@
1
+ import {
2
+ formatEvaluationLines
3
+ } from "./chunk-DMM3JQ42.js";
4
+ import {
5
+ parseRelativeDate
6
+ } from "./chunk-BIIKE3EI.js";
7
+ import {
8
+ searchTraces
9
+ } from "./chunk-UWLE5T2F.js";
10
+ import "./chunk-H6WGMG2T.js";
11
+
12
+ // src/utils/trace-id-shape.ts
13
+ var HEX_ONLY = /^[0-9a-f]+$/i;
14
+ var MIN_TRACE_ID_LENGTH = 8;
15
+ var PREFIXED_TRACE_ID = /^trace_[A-Za-z0-9_-]{8,}$/;
16
+ function looksLikeTraceId(query) {
17
+ const candidate = query.trim();
18
+ if (candidate.includes(" ")) return false;
19
+ if (PREFIXED_TRACE_ID.test(candidate)) return true;
20
+ return HEX_ONLY.test(candidate) && candidate.length >= MIN_TRACE_ID_LENGTH;
21
+ }
22
+
23
+ // src/tools/search-traces.ts
24
+ var HOUR_MS = 36e5;
25
+ var DAY_MS = 864e5;
26
+ var TEXT_SEARCH_WINDOW_MS = DAY_MS;
27
+ var ID_LOOKUP_WINDOW_MS = 90 * DAY_MS;
28
+ function previewLine({
29
+ label,
30
+ text
31
+ }) {
32
+ const value = text?.value ? String(text.value) : "N/A";
33
+ return `- **${label}**: ${value.slice(0, 100)}${value.length > 100 ? "..." : ""}`;
34
+ }
35
+ function traceLines(trace) {
36
+ const lines = [`### Trace: ${trace.trace_id}`];
37
+ if (trace.formatted_trace) {
38
+ lines.push(trace.formatted_trace);
39
+ } else {
40
+ lines.push(previewLine({ label: "Input", text: trace.input }));
41
+ lines.push(previewLine({ label: "Output", text: trace.output }));
42
+ }
43
+ if (trace.timestamps) {
44
+ lines.push(`- **Time**: ${trace.timestamps.started_at || "N/A"}`);
45
+ }
46
+ if (trace.error) {
47
+ lines.push(`- **Error**: ${JSON.stringify(trace.error)}`);
48
+ }
49
+ if (trace.evaluations && trace.evaluations.length > 0) {
50
+ lines.push(...formatEvaluationLines(trace.evaluations));
51
+ }
52
+ lines.push("");
53
+ return lines;
54
+ }
55
+ function describeSpan({ ms }) {
56
+ if (ms % DAY_MS === 0) {
57
+ const days = ms / DAY_MS;
58
+ return days === 1 ? "24 hours" : `${days} days`;
59
+ }
60
+ const hours = Math.round(ms / HOUR_MS);
61
+ return hours === 1 ? "1 hour" : `${hours} hours`;
62
+ }
63
+ function suggestWiderWindow({ spanMs }) {
64
+ if (spanMs < 7 * DAY_MS) return "7d";
65
+ if (spanMs < 30 * DAY_MS) return "30d";
66
+ if (spanMs < 90 * DAY_MS) return "90d";
67
+ return void 0;
68
+ }
69
+ function buildEmptyResult({
70
+ query,
71
+ traceIds,
72
+ spanMs,
73
+ windowWasDefaulted,
74
+ startDate,
75
+ endDate
76
+ }) {
77
+ const hasTraceIds = (traceIds?.length ?? 0) > 0;
78
+ const lines = [
79
+ hasTraceIds ? "No traces matched the requested trace ids in the searched window." : "No traces found matching your query.",
80
+ ""
81
+ ];
82
+ const range = `${new Date(startDate).toISOString()} to ${new Date(endDate).toISOString()}`;
83
+ lines.push(
84
+ windowWasDefaulted ? `Searched the last ${describeSpan({ ms: spanMs })} (the default): ${range}.` : `Searched ${range}.`
85
+ );
86
+ lines.push("", "Tips:");
87
+ if (query && looksLikeTraceId(query)) {
88
+ lines.push(
89
+ `- "${query}" looks like a trace id. Free text never matches trace ids \u2014 use \`get_trace\` with traceId: "${query}".`
90
+ );
91
+ }
92
+ const wider = suggestWiderWindow({ spanMs });
93
+ if (wider) {
94
+ lines.push(
95
+ `- Widen the window with startDate, e.g. startDate: "${wider}". Accepts h (hours), d (days), w (weeks), m (30-day months), or an ISO date.`
96
+ );
97
+ }
98
+ if (hasTraceIds) {
99
+ lines.push(
100
+ "- Retry with an earlier startDate, or relax the query and filters if you supplied them.",
101
+ "- Looking up one full id? `get_trace` has no time window. A unique 8\u201331 character hex prefix searches the last 90 days."
102
+ );
103
+ } else {
104
+ lines.push(
105
+ "- Looking up a known trace id? `get_trace` takes a traceId. A full id has no time window; a unique 8\u201331 character hex prefix searches the last 90 days.",
106
+ "- To fetch several known trace ids at once, pass `traceIds` instead of `query`."
107
+ );
108
+ }
109
+ return lines.join("\n");
110
+ }
111
+ async function handleSearchTraces(params) {
112
+ const now = Date.now();
113
+ const hasTraceIds = (params.traceIds?.length ?? 0) > 0;
114
+ const defaultSpanMs = hasTraceIds ? ID_LOOKUP_WINDOW_MS : TEXT_SEARCH_WINDOW_MS;
115
+ const endDate = params.endDate !== void 0 ? parseRelativeDate(params.endDate) : now;
116
+ const startDate = params.startDate !== void 0 ? parseRelativeDate(params.startDate) : endDate - defaultSpanMs;
117
+ if (startDate >= endDate) {
118
+ throw new Error(
119
+ `Invalid trace search window: startDate (${new Date(startDate).toISOString()}) must be before endDate (${new Date(endDate).toISOString()}).`
120
+ );
121
+ }
122
+ const format = params.format ?? "digest";
123
+ const result = await searchTraces({
124
+ query: params.query,
125
+ traceIds: params.traceIds,
126
+ filters: params.filters,
127
+ // Forwarded as itself: the filter language and the free-text query are two
128
+ // different searches, and the server combines them.
129
+ ...params.filter ? { filter: params.filter } : {},
130
+ startDate,
131
+ endDate,
132
+ pageSize: params.pageSize ?? 25,
133
+ scrollId: params.scrollId,
134
+ format
135
+ });
136
+ const traces = result.traces ?? [];
137
+ if (traces.length === 0) {
138
+ return buildEmptyResult({
139
+ query: params.query,
140
+ traceIds: params.traceIds,
141
+ spanMs: endDate - startDate,
142
+ windowWasDefaulted: params.startDate === void 0,
143
+ startDate,
144
+ endDate
145
+ });
146
+ }
147
+ if (format === "json") {
148
+ return JSON.stringify(result, null, 2);
149
+ }
150
+ const lines = [];
151
+ lines.push(`Found ${result.pagination?.totalHits ?? traces.length} traces:
152
+ `);
153
+ for (const trace of traces) {
154
+ lines.push(...traceLines(trace));
155
+ }
156
+ if (result.pagination?.scrollId) {
157
+ lines.push(
158
+ `
159
+ **More results available.** Use scrollId: "${result.pagination.scrollId}" to get next page.`
160
+ );
161
+ }
162
+ lines.push(
163
+ '\n> Tip: Use `get_trace` with a traceId for full details. Use `search_traces` with `format: "json"` for raw data. Use `discover_schema` to see available filter fields.'
164
+ );
165
+ return lines.join("\n");
166
+ }
167
+ export {
168
+ handleSearchTraces
169
+ };
170
+ //# sourceMappingURL=search-traces-HCBGOG6R.js.map