@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,29 @@
1
+ import {
2
+ listDashboards
3
+ } from "./chunk-MOCU5XWF.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
+
7
+ // src/tools/list-dashboards.ts
8
+ async function handleListDashboards() {
9
+ const { data: dashboards } = await listDashboards();
10
+ if (dashboards.length === 0) {
11
+ return "No dashboards found in this project. Create one in the Dashboards area first.";
12
+ }
13
+ return [
14
+ `# Dashboards (${dashboards.length} total)
15
+ `,
16
+ ...dashboards.flatMap((dashboard) => [
17
+ `## ${dashboard.name}`,
18
+ `**ID**: ${dashboard.id}`,
19
+ `**Widgets**: ${dashboard.widgetCount}`,
20
+ `**URL**: ${dashboard.platformUrl}`,
21
+ ""
22
+ ]),
23
+ "> Pass the ID to `add_dashboard_widget` to add a widget to that dashboard."
24
+ ].join("\n");
25
+ }
26
+ export {
27
+ handleListDashboards
28
+ };
29
+ //# sourceMappingURL=list-dashboards-2P3VJFRS.js.map
@@ -0,0 +1,30 @@
1
+ import {
2
+ listDashboards
3
+ } from "./chunk-MOCU5XWF.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
+ import "./chunk-SAS5OB7F.js";
7
+
8
+ // src/tools/list-dashboards.ts
9
+ async function handleListDashboards() {
10
+ const { data: dashboards } = await listDashboards();
11
+ if (dashboards.length === 0) {
12
+ return "No dashboards found in this project. Create one in the Dashboards area first.";
13
+ }
14
+ return [
15
+ `# Dashboards (${dashboards.length} total)
16
+ `,
17
+ ...dashboards.flatMap((dashboard) => [
18
+ `## ${dashboard.name}`,
19
+ `**ID**: ${dashboard.id}`,
20
+ `**Widgets**: ${dashboard.widgetCount}`,
21
+ `**URL**: ${dashboard.platformUrl}`,
22
+ ""
23
+ ]),
24
+ "> Pass the ID to `add_dashboard_widget` to add a widget to that dashboard."
25
+ ].join("\n");
26
+ }
27
+ export {
28
+ handleListDashboards
29
+ };
30
+ //# sourceMappingURL=list-dashboards-MW5O3MKH.js.map
@@ -0,0 +1,43 @@
1
+ import {
2
+ listDatasetRecords
3
+ } from "./chunk-XQYH52SI.js";
4
+ import {
5
+ escapeMarkdown
6
+ } from "./chunk-FOKVY3BK.js";
7
+ import "./chunk-7CZQDZ2K.js";
8
+ import "./chunk-DULFP3MK.js";
9
+
10
+ // src/tools/list-dataset-records.ts
11
+ async function handleListDatasetRecords(params) {
12
+ const response = await listDatasetRecords({
13
+ slugOrId: params.slugOrId,
14
+ page: params.page,
15
+ limit: params.limit
16
+ });
17
+ if (params.format === "json") {
18
+ return JSON.stringify(response, null, 2);
19
+ }
20
+ const { data: records, pagination } = response;
21
+ if (records.length === 0) {
22
+ return "No records found in this dataset.";
23
+ }
24
+ const lines = [];
25
+ lines.push(
26
+ `# Records (page ${pagination.page} of ${pagination.totalPages}, ${pagination.total} total)
27
+ `
28
+ );
29
+ for (const record of records) {
30
+ lines.push(`**${escapeMarkdown(record.id)}**: ${escapeMarkdown(JSON.stringify(record.entry))}`);
31
+ }
32
+ if (pagination.page < pagination.totalPages) {
33
+ lines.push("");
34
+ lines.push(
35
+ `> Use \`platform_list_dataset_records\` with \`page: ${pagination.page + 1}\` to see the next page.`
36
+ );
37
+ }
38
+ return lines.join("\n");
39
+ }
40
+ export {
41
+ handleListDatasetRecords
42
+ };
43
+ //# sourceMappingURL=list-dataset-records-KEHT7G6Q.js.map
@@ -1,11 +1,11 @@
1
- import {
2
- escapeMarkdown
3
- } from "./chunk-NUFPTHKU.js";
4
1
  import {
5
2
  listDatasetRecords
6
- } from "./chunk-AN4OUA4D.js";
7
- import "./chunk-GELJ2MQR.js";
8
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-XQYH52SI.js";
4
+ import {
5
+ escapeMarkdown
6
+ } from "./chunk-FOKVY3BK.js";
7
+ import "./chunk-7CZQDZ2K.js";
8
+ import "./chunk-DULFP3MK.js";
9
9
  import "./chunk-SAS5OB7F.js";
10
10
 
11
11
  // src/tools/list-dataset-records.ts
@@ -23,18 +23,22 @@ async function handleListDatasetRecords(params) {
23
23
  return "No records found in this dataset.";
24
24
  }
25
25
  const lines = [];
26
- lines.push(`# Records (page ${pagination.page} of ${pagination.totalPages}, ${pagination.total} total)
27
- `);
26
+ lines.push(
27
+ `# Records (page ${pagination.page} of ${pagination.totalPages}, ${pagination.total} total)
28
+ `
29
+ );
28
30
  for (const record of records) {
29
31
  lines.push(`**${escapeMarkdown(record.id)}**: ${escapeMarkdown(JSON.stringify(record.entry))}`);
30
32
  }
31
33
  if (pagination.page < pagination.totalPages) {
32
34
  lines.push("");
33
- lines.push(`> Use \`platform_list_dataset_records\` with \`page: ${pagination.page + 1}\` to see the next page.`);
35
+ lines.push(
36
+ `> Use \`platform_list_dataset_records\` with \`page: ${pagination.page + 1}\` to see the next page.`
37
+ );
34
38
  }
35
39
  return lines.join("\n");
36
40
  }
37
41
  export {
38
42
  handleListDatasetRecords
39
43
  };
40
- //# sourceMappingURL=list-dataset-records-O67HZ35Y.js.map
44
+ //# sourceMappingURL=list-dataset-records-KMLLMZAZ.js.map
@@ -1,11 +1,11 @@
1
- import {
2
- escapeMarkdown
3
- } from "./chunk-NUFPTHKU.js";
4
1
  import {
5
2
  listDatasets
6
- } from "./chunk-AN4OUA4D.js";
7
- import "./chunk-GELJ2MQR.js";
8
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-XQYH52SI.js";
4
+ import {
5
+ escapeMarkdown
6
+ } from "./chunk-FOKVY3BK.js";
7
+ import "./chunk-7CZQDZ2K.js";
8
+ import "./chunk-DULFP3MK.js";
9
9
  import "./chunk-SAS5OB7F.js";
10
10
 
11
11
  // src/tools/list-datasets.ts
@@ -45,17 +45,13 @@ async function handleListDatasets(params = {}) {
45
45
  const colNames = ds.columnTypes.map((c) => c.name).join(", ");
46
46
  lines.push(`**Columns**: ${colNames}`);
47
47
  }
48
- lines.push(
49
- `**Records**: ${ds.recordCount ?? "unknown"}`
50
- );
48
+ lines.push(`**Records**: ${ds.recordCount ?? "unknown"}`);
51
49
  lines.push("");
52
50
  }
53
- lines.push(
54
- "> Use `platform_get_dataset` with the slug to see full dataset details and records."
55
- );
51
+ lines.push("> Use `platform_get_dataset` with the slug to see full dataset details and records.");
56
52
  return lines.join("\n");
57
53
  }
58
54
  export {
59
55
  handleListDatasets
60
56
  };
61
- //# sourceMappingURL=list-datasets-WXZL6UMP.js.map
57
+ //# sourceMappingURL=list-datasets-P3JK2ZHS.js.map
@@ -0,0 +1,56 @@
1
+ import {
2
+ listDatasets
3
+ } from "./chunk-XQYH52SI.js";
4
+ import {
5
+ escapeMarkdown
6
+ } from "./chunk-FOKVY3BK.js";
7
+ import "./chunk-7CZQDZ2K.js";
8
+ import "./chunk-DULFP3MK.js";
9
+
10
+ // src/tools/list-datasets.ts
11
+ async function fetchAllDatasets() {
12
+ const PAGE_SIZE = 100;
13
+ const datasets = [];
14
+ let page = 1;
15
+ let total = 0;
16
+ while (true) {
17
+ const response = await listDatasets({ page, limit: PAGE_SIZE });
18
+ total = response.pagination.total;
19
+ datasets.push(...response.data);
20
+ if (datasets.length >= total || response.data.length === 0) {
21
+ break;
22
+ }
23
+ page++;
24
+ }
25
+ return { datasets, total };
26
+ }
27
+ async function handleListDatasets(params = {}) {
28
+ if (params.format === "json") {
29
+ const { datasets: datasets2, total: total2 } = await fetchAllDatasets();
30
+ return JSON.stringify({ data: datasets2, total: total2 }, null, 2);
31
+ }
32
+ const { datasets, total } = await fetchAllDatasets();
33
+ if (datasets.length === 0) {
34
+ return "No datasets found in this project.\n\n> Tip: Use `platform_create_dataset` to create your first dataset.";
35
+ }
36
+ const lines = [];
37
+ lines.push(`# Datasets (${total} total)
38
+ `);
39
+ for (const ds of datasets) {
40
+ lines.push(`## ${escapeMarkdown(ds.name)}`);
41
+ lines.push(`**Slug**: ${escapeMarkdown(ds.slug)}`);
42
+ lines.push(`**ID**: ${ds.id}`);
43
+ if (Array.isArray(ds.columnTypes) && ds.columnTypes.length > 0) {
44
+ const colNames = ds.columnTypes.map((c) => c.name).join(", ");
45
+ lines.push(`**Columns**: ${colNames}`);
46
+ }
47
+ lines.push(`**Records**: ${ds.recordCount ?? "unknown"}`);
48
+ lines.push("");
49
+ }
50
+ lines.push("> Use `platform_get_dataset` with the slug to see full dataset details and records.");
51
+ return lines.join("\n");
52
+ }
53
+ export {
54
+ handleListDatasets
55
+ };
56
+ //# sourceMappingURL=list-datasets-Z7OOE4KI.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  getEvaluatorType,
3
3
  listEvaluators
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/list-evaluators.ts
@@ -24,12 +24,10 @@ async function handleListEvaluators() {
24
24
  lines.push(`**Kind**: ${e.type}`);
25
25
  lines.push("");
26
26
  }
27
- lines.push(
28
- "> Use `platform_get_evaluator` with the ID or slug to see full evaluator details."
29
- );
27
+ lines.push("> Use `platform_get_evaluator` with the ID or slug to see full evaluator details.");
30
28
  return lines.join("\n");
31
29
  }
32
30
  export {
33
31
  handleListEvaluators
34
32
  };
35
- //# sourceMappingURL=list-evaluators-PAX72WCN.js.map
33
+ //# sourceMappingURL=list-evaluators-7RRESBOU.js.map
@@ -0,0 +1,32 @@
1
+ import {
2
+ getEvaluatorType,
3
+ listEvaluators
4
+ } from "./chunk-AASW2TO2.js";
5
+ import "./chunk-7CZQDZ2K.js";
6
+ import "./chunk-DULFP3MK.js";
7
+
8
+ // src/tools/list-evaluators.ts
9
+ async function handleListEvaluators() {
10
+ const evaluators = await listEvaluators();
11
+ if (!Array.isArray(evaluators) || evaluators.length === 0) {
12
+ return "No evaluators found in this project.\n\n> Tip: Use `platform_create_evaluator` to create your first evaluator. Call `discover_schema({ category: 'evaluators' })` to see available evaluator types.";
13
+ }
14
+ const lines = [];
15
+ lines.push(`# Evaluators (${evaluators.length} total)
16
+ `);
17
+ for (const e of evaluators) {
18
+ const evaluatorType = getEvaluatorType(e);
19
+ lines.push(`## ${e.name}`);
20
+ lines.push(`**ID**: ${e.id}`);
21
+ if (e.slug) lines.push(`**Slug**: ${e.slug}`);
22
+ if (evaluatorType) lines.push(`**Type**: ${evaluatorType}`);
23
+ lines.push(`**Kind**: ${e.type}`);
24
+ lines.push("");
25
+ }
26
+ lines.push("> Use `platform_get_evaluator` with the ID or slug to see full evaluator details.");
27
+ return lines.join("\n");
28
+ }
29
+ export {
30
+ handleListEvaluators
31
+ };
32
+ //# sourceMappingURL=list-evaluators-VATJVOHR.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  listModelProviders
3
- } from "./chunk-JTQJRNFJ.js";
4
- import "./chunk-GELJ2MQR.js";
5
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-KILVK3FS.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
6
  import "./chunk-SAS5OB7F.js";
7
7
 
8
8
  // src/tools/list-model-providers.ts
@@ -33,4 +33,4 @@ async function handleListModelProviders() {
33
33
  export {
34
34
  handleListModelProviders
35
35
  };
36
- //# sourceMappingURL=list-model-providers-VVLZMLCX.js.map
36
+ //# sourceMappingURL=list-model-providers-OXDRPUCJ.js.map
@@ -0,0 +1,35 @@
1
+ import {
2
+ listModelProviders
3
+ } from "./chunk-KILVK3FS.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
+
7
+ // src/tools/list-model-providers.ts
8
+ async function handleListModelProviders() {
9
+ const providers = await listModelProviders();
10
+ const entries = Object.entries(providers);
11
+ if (entries.length === 0) {
12
+ return "No model providers configured for this project.\n\n> Tip: Use `platform_set_model_provider` to configure an API key for a model provider.";
13
+ }
14
+ const lines = [];
15
+ lines.push(`# Model Providers (${entries.length} total)
16
+ `);
17
+ for (const [key, provider] of entries) {
18
+ const status = provider.enabled ? "enabled" : "disabled";
19
+ lines.push(`## ${key}`);
20
+ lines.push(`**Status**: ${status}`);
21
+ if (provider.customKeys) {
22
+ const keyFields = Object.entries(provider.customKeys).map(([k, v]) => `${k}: ${v ? "set" : "not set"}`).join(", ");
23
+ lines.push(`**Keys**: ${keyFields}`);
24
+ }
25
+ if (provider.models && provider.models.length > 0) {
26
+ lines.push(`**Models**: ${provider.models.length} available`);
27
+ }
28
+ lines.push("");
29
+ }
30
+ return lines.join("\n");
31
+ }
32
+ export {
33
+ handleListModelProviders
34
+ };
35
+ //# sourceMappingURL=list-model-providers-VXQJWDXU.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  listProjects
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/list-projects.ts
@@ -32,12 +32,10 @@ async function handleListProjects(params) {
32
32
  `> Showing page ${result.pagination.page} of ${result.pagination.totalPages}. Use \`page\` parameter to navigate.`
33
33
  );
34
34
  }
35
- lines.push(
36
- "> Use `platform_get_project` with the ID to see full project details."
37
- );
35
+ lines.push("> Use `platform_get_project` with the ID to see full project details.");
38
36
  return lines.join("\n");
39
37
  }
40
38
  export {
41
39
  handleListProjects
42
40
  };
43
- //# sourceMappingURL=list-projects-AQVI6SUK.js.map
41
+ //# sourceMappingURL=list-projects-HUVK7L3W.js.map
@@ -0,0 +1,40 @@
1
+ import {
2
+ listProjects
3
+ } from "./chunk-D2HS73VI.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
+
7
+ // src/tools/list-projects.ts
8
+ async function handleListProjects(params) {
9
+ const result = await listProjects({
10
+ page: params?.page,
11
+ limit: params?.limit ?? 100
12
+ });
13
+ const projects = result.data;
14
+ if (!Array.isArray(projects) || projects.length === 0) {
15
+ return "No projects found in this organization.\n\n> Tip: Use `platform_create_project` to create your first project.";
16
+ }
17
+ const lines = [];
18
+ lines.push(`# Projects (${result.pagination.total} total)
19
+ `);
20
+ for (const p of projects) {
21
+ lines.push(`## ${p.name}`);
22
+ lines.push(`**ID**: ${p.id}`);
23
+ lines.push(`**Slug**: ${p.slug}`);
24
+ lines.push(`**Language**: ${p.language}`);
25
+ lines.push(`**Framework**: ${p.framework}`);
26
+ lines.push(`**Updated**: ${p.updatedAt}`);
27
+ lines.push("");
28
+ }
29
+ if (result.pagination.totalPages > 1) {
30
+ lines.push(
31
+ `> Showing page ${result.pagination.page} of ${result.pagination.totalPages}. Use \`page\` parameter to navigate.`
32
+ );
33
+ }
34
+ lines.push("> Use `platform_get_project` with the ID to see full project details.");
35
+ return lines.join("\n");
36
+ }
37
+ export {
38
+ handleListProjects
39
+ };
40
+ //# sourceMappingURL=list-projects-X72ZXVY5.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  listPromptTags
3
- } from "./chunk-GELJ2MQR.js";
4
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-7CZQDZ2K.js";
4
+ import "./chunk-DULFP3MK.js";
5
5
  import "./chunk-SAS5OB7F.js";
6
6
 
7
7
  // src/tools/list-prompt-tags.ts
@@ -21,4 +21,4 @@ async function handleListPromptTags() {
21
21
  export {
22
22
  handleListPromptTags
23
23
  };
24
- //# sourceMappingURL=list-prompt-tags-WZFBJOHG.js.map
24
+ //# sourceMappingURL=list-prompt-tags-3I3LWFIR.js.map
@@ -0,0 +1,23 @@
1
+ import {
2
+ listPromptTags
3
+ } from "./chunk-7CZQDZ2K.js";
4
+ import "./chunk-DULFP3MK.js";
5
+
6
+ // src/tools/list-prompt-tags.ts
7
+ async function handleListPromptTags() {
8
+ const tags = await listPromptTags();
9
+ if (!tags || tags.length === 0) {
10
+ return "No prompt tags found. The `latest` tag is always available.";
11
+ }
12
+ const lines = [];
13
+ lines.push("# Prompt Tags\n");
14
+ for (const tag of tags) {
15
+ const created = tag.createdAt ? ` (created ${tag.createdAt})` : "";
16
+ lines.push(`- **${tag.name}**${created}`);
17
+ }
18
+ return lines.join("\n");
19
+ }
20
+ export {
21
+ handleListPromptTags
22
+ };
23
+ //# sourceMappingURL=list-prompt-tags-DRHUH2ND.js.map
@@ -0,0 +1,30 @@
1
+ import {
2
+ listPrompts
3
+ } from "./chunk-7CZQDZ2K.js";
4
+ import "./chunk-DULFP3MK.js";
5
+
6
+ // src/tools/list-prompts.ts
7
+ async function handleListPrompts() {
8
+ const prompts = await listPrompts();
9
+ if (!Array.isArray(prompts) || prompts.length === 0) {
10
+ return "No prompts found in this project.";
11
+ }
12
+ const lines = [];
13
+ lines.push(`# Prompts (${prompts.length} total)
14
+ `);
15
+ lines.push("| Handle | Name | Latest Version |");
16
+ lines.push("|--------|------|----------------|");
17
+ for (const p of prompts) {
18
+ const handle = p.handle || p.id || "N/A";
19
+ const name = p.name || "Untitled";
20
+ const versionNum = p.latestVersionNumber ?? p.version;
21
+ const version = versionNum != null ? `v${versionNum}` : "N/A";
22
+ lines.push(`| ${handle} | ${name} | ${version} |`);
23
+ }
24
+ lines.push("\n> Use `platform_get_prompt` with the handle or ID to see full prompt details.");
25
+ return lines.join("\n");
26
+ }
27
+ export {
28
+ handleListPrompts
29
+ };
30
+ //# sourceMappingURL=list-prompts-6DX3QECJ.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  listPrompts
3
- } from "./chunk-GELJ2MQR.js";
4
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-7CZQDZ2K.js";
4
+ import "./chunk-DULFP3MK.js";
5
5
  import "./chunk-SAS5OB7F.js";
6
6
 
7
7
  // src/tools/list-prompts.ts
@@ -22,12 +22,10 @@ async function handleListPrompts() {
22
22
  const version = versionNum != null ? `v${versionNum}` : "N/A";
23
23
  lines.push(`| ${handle} | ${name} | ${version} |`);
24
24
  }
25
- lines.push(
26
- "\n> Use `platform_get_prompt` with the handle or ID to see full prompt details."
27
- );
25
+ lines.push("\n> Use `platform_get_prompt` with the handle or ID to see full prompt details.");
28
26
  return lines.join("\n");
29
27
  }
30
28
  export {
31
29
  handleListPrompts
32
30
  };
33
- //# sourceMappingURL=list-prompts-BQOHRHYT.js.map
31
+ //# sourceMappingURL=list-prompts-PS423RU3.js.map
@@ -0,0 +1,45 @@
1
+ import {
2
+ describeRunPlanScope
3
+ } from "./chunk-RABYBFX5.js";
4
+ import {
5
+ listRunPlans
6
+ } from "./chunk-VOUGDY2O.js";
7
+ import "./chunk-7CZQDZ2K.js";
8
+ import "./chunk-DULFP3MK.js";
9
+
10
+ // src/tools/list-run-plans.ts
11
+ async function handleListRunPlans(params) {
12
+ const plans = await listRunPlans({
13
+ includeArchived: params.includeArchived
14
+ });
15
+ if (params.format === "json") {
16
+ return JSON.stringify(plans, null, 2);
17
+ }
18
+ if (!Array.isArray(plans) || plans.length === 0) {
19
+ return "No run plans found in this project.\n\n> Tip: Use `platform_run_plan` to start one. A run plan is created the first time you run its name.";
20
+ }
21
+ const lines = [];
22
+ lines.push(`# Run Plans (${plans.length} total)
23
+ `);
24
+ for (const plan of plans) {
25
+ lines.push(`## ${plan.name}${plan.archivedAt ? " (archived)" : ""}`);
26
+ lines.push(`**ID**: ${plan.id}`);
27
+ lines.push(`**Covers**: ${describeRunPlanScope(plan.scope, plan.scenarioIds)}`);
28
+ lines.push(
29
+ `**Targets**: ${plan.targets.length} (${plan.targets.map((t) => `${t.type}:${t.referenceId}`).join(", ")})`
30
+ );
31
+ lines.push(`**Repeat**: ${plan.repeatCount}x`);
32
+ if (plan.labels.length > 0) {
33
+ lines.push(`**Labels**: ${plan.labels.join(", ")}`);
34
+ }
35
+ lines.push("");
36
+ }
37
+ lines.push(
38
+ "> Use `platform_get_run_plan` with the ID for the full configuration, or `platform_rerun_run_plan` to run it again."
39
+ );
40
+ return lines.join("\n");
41
+ }
42
+ export {
43
+ handleListRunPlans
44
+ };
45
+ //# sourceMappingURL=list-run-plans-5SXPOV3X.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  describeRunPlanScope
3
- } from "./chunk-JR6DJZOU.js";
3
+ } from "./chunk-RABYBFX5.js";
4
4
  import {
5
5
  listRunPlans
6
- } from "./chunk-56OGTS24.js";
7
- import "./chunk-GELJ2MQR.js";
8
- import "./chunk-WT4PO4A3.js";
6
+ } from "./chunk-VOUGDY2O.js";
7
+ import "./chunk-7CZQDZ2K.js";
8
+ import "./chunk-DULFP3MK.js";
9
9
  import "./chunk-SAS5OB7F.js";
10
10
 
11
11
  // src/tools/list-run-plans.ts
@@ -43,4 +43,4 @@ async function handleListRunPlans(params) {
43
43
  export {
44
44
  handleListRunPlans
45
45
  };
46
- //# sourceMappingURL=list-run-plans-UBAU2DGH.js.map
46
+ //# sourceMappingURL=list-run-plans-6VNHINPY.js.map
@@ -0,0 +1,45 @@
1
+ import {
2
+ listScenarios
3
+ } from "./chunk-7GETGE6B.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
+
7
+ // src/tools/list-scenarios.ts
8
+ async function handleListScenarios(params) {
9
+ const all = await listScenarios();
10
+ const scenarios = params.testSuiteId !== void 0 && Array.isArray(all) ? all.filter((s) => s.testSuiteId === params.testSuiteId) : all;
11
+ if (params.format === "json") {
12
+ return JSON.stringify(scenarios, null, 2);
13
+ }
14
+ if (!Array.isArray(scenarios) || scenarios.length === 0) {
15
+ return params.testSuiteId !== void 0 ? `No scenarios found in test suite ${params.testSuiteId}.
16
+
17
+ > Tip: Use \`platform_create_scenario\` with testSuiteId \`${params.testSuiteId}\` to file one there.` : "No scenarios found in this project.\n\n> Tip: Use `platform_create_scenario` to create your first scenario.";
18
+ }
19
+ const lines = [];
20
+ lines.push(`# Scenarios (${scenarios.length} total)
21
+ `);
22
+ for (const s of scenarios) {
23
+ lines.push(`## ${s.name}`);
24
+ lines.push(`**ID**: ${s.id}`);
25
+ const preview = formatSituationPreview(s.situation);
26
+ lines.push(`**Situation**: ${preview}`);
27
+ lines.push(`**Criteria**: ${Array.isArray(s.criteria) ? s.criteria.length : 0} criteria`);
28
+ if (Array.isArray(s.labels) && s.labels.length > 0) {
29
+ lines.push(`**Labels**: ${s.labels.join(", ")}`);
30
+ }
31
+ lines.push("");
32
+ }
33
+ lines.push("> Use `platform_get_scenario` with the ID to see full scenario details.");
34
+ return lines.join("\n");
35
+ }
36
+ function formatSituationPreview(situation) {
37
+ if (situation && situation.length > 60) {
38
+ return situation.slice(0, 60) + "...";
39
+ }
40
+ return situation;
41
+ }
42
+ export {
43
+ handleListScenarios
44
+ };
45
+ //# sourceMappingURL=list-scenarios-EQWCW7Q4.js.map