@langwatch/mcp-server 0.6.0 → 0.7.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 (258) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/Dockerfile +22 -0
  3. package/README.md +51 -8
  4. package/dist/{archive-scenario-YFD5THOR.js → archive-scenario-WJ2A7ETN.js} +4 -4
  5. package/dist/archive-suite-4JOM4SSL.js +15 -0
  6. package/dist/archive-suite-4JOM4SSL.js.map +1 -0
  7. package/dist/assign-prompt-tag-GL7EAAF3.js +19 -0
  8. package/dist/assign-prompt-tag-GL7EAAF3.js.map +1 -0
  9. package/dist/{chunk-6U4TCGFC.js → chunk-2GT7IFWK.js} +2 -2
  10. package/dist/{chunk-LLRQIF52.js → chunk-2WPLXEKF.js} +49 -5
  11. package/dist/chunk-2WPLXEKF.js.map +1 -0
  12. package/dist/chunk-4AUB2BIA.js +71 -0
  13. package/dist/chunk-4AUB2BIA.js.map +1 -0
  14. package/dist/chunk-BWWY5KEF.js +71 -0
  15. package/dist/chunk-BWWY5KEF.js.map +1 -0
  16. package/dist/{chunk-IX6QJKAD.js → chunk-CCWCIJJ3.js} +2 -2
  17. package/dist/chunk-E5JYYU3J.js +1567 -0
  18. package/dist/chunk-E5JYYU3J.js.map +1 -0
  19. package/dist/chunk-EGH5RPXM.js +25 -0
  20. package/dist/chunk-EGH5RPXM.js.map +1 -0
  21. package/dist/chunk-EUQDVOSU.js +39 -0
  22. package/dist/chunk-EUQDVOSU.js.map +1 -0
  23. package/dist/{chunk-5UOPNRXW.js → chunk-HYMIWO3U.js} +10 -3
  24. package/dist/{chunk-5UOPNRXW.js.map → chunk-HYMIWO3U.js.map} +1 -1
  25. package/dist/chunk-IE4M5OGE.js +42 -0
  26. package/dist/chunk-IE4M5OGE.js.map +1 -0
  27. package/dist/chunk-LUMEZEHL.js +48 -0
  28. package/dist/chunk-LUMEZEHL.js.map +1 -0
  29. package/dist/chunk-NUFPTHKU.js +9 -0
  30. package/dist/chunk-NUFPTHKU.js.map +1 -0
  31. package/dist/chunk-WQG2DFHX.js +86 -0
  32. package/dist/chunk-WQG2DFHX.js.map +1 -0
  33. package/dist/chunk-WVI5CJ6S.js +21 -0
  34. package/dist/chunk-WVI5CJ6S.js.map +1 -0
  35. package/dist/chunk-ZVS4UKN2.js +35 -0
  36. package/dist/chunk-ZVS4UKN2.js.map +1 -0
  37. package/dist/config.d.ts +17 -0
  38. package/dist/config.js +13 -0
  39. package/dist/create-agent-MBOOT3XK.js +23 -0
  40. package/dist/create-agent-MBOOT3XK.js.map +1 -0
  41. package/dist/create-annotation-XMV6A7ED.js +24 -0
  42. package/dist/create-annotation-XMV6A7ED.js.map +1 -0
  43. package/dist/create-dashboard-VRKLFVZJ.js +18 -0
  44. package/dist/create-dashboard-VRKLFVZJ.js.map +1 -0
  45. package/dist/create-dataset-7HQPZCRE.js +22 -0
  46. package/dist/create-dataset-7HQPZCRE.js.map +1 -0
  47. package/dist/create-dataset-records-2NIVFYTV.js +22 -0
  48. package/dist/create-dataset-records-2NIVFYTV.js.map +1 -0
  49. package/dist/{create-evaluator-E5X5ZP3B.js → create-evaluator-WYFRFLRC.js} +4 -4
  50. package/dist/create-mcp-server.d.ts +8 -0
  51. package/dist/create-mcp-server.js +8 -0
  52. package/dist/create-mcp-server.js.map +1 -0
  53. package/dist/{create-prompt-7Z35MIL6.js → create-prompt-IEN7O6JT.js} +7 -4
  54. package/dist/create-prompt-IEN7O6JT.js.map +1 -0
  55. package/dist/create-prompt-tag-CAEZ45VO.js +17 -0
  56. package/dist/create-prompt-tag-CAEZ45VO.js.map +1 -0
  57. package/dist/{create-scenario-DIMPJRPY.js → create-scenario-6YHSMGLP.js} +4 -4
  58. package/dist/create-suite-H5XOFDE5.js +38 -0
  59. package/dist/create-suite-H5XOFDE5.js.map +1 -0
  60. package/dist/delete-agent-JKTNBWAA.js +18 -0
  61. package/dist/delete-agent-JKTNBWAA.js.map +1 -0
  62. package/dist/delete-annotation-ACMDV6QO.js +17 -0
  63. package/dist/delete-annotation-ACMDV6QO.js.map +1 -0
  64. package/dist/delete-dashboard-VJSR7CRU.js +18 -0
  65. package/dist/delete-dashboard-VJSR7CRU.js.map +1 -0
  66. package/dist/delete-dataset-RTTTWP4D.js +20 -0
  67. package/dist/delete-dataset-RTTTWP4D.js.map +1 -0
  68. package/dist/delete-dataset-records-KNQTIPQK.js +21 -0
  69. package/dist/delete-dataset-records-KNQTIPQK.js.map +1 -0
  70. package/dist/delete-evaluator-7FVC5WM4.js +15 -0
  71. package/dist/delete-evaluator-7FVC5WM4.js.map +1 -0
  72. package/dist/delete-prompt-tag-ZMZUAGFW.js +17 -0
  73. package/dist/delete-prompt-tag-ZMZUAGFW.js.map +1 -0
  74. package/dist/delete-workflow-EYQ3T4RQ.js +17 -0
  75. package/dist/delete-workflow-EYQ3T4RQ.js.map +1 -0
  76. package/dist/get-agent-E3QSTVKG.js +28 -0
  77. package/dist/get-agent-E3QSTVKG.js.map +1 -0
  78. package/dist/{get-analytics-4YJW4S5L.js → get-analytics-2OHV763I.js} +22 -5
  79. package/dist/get-analytics-2OHV763I.js.map +1 -0
  80. package/dist/get-dashboard-PC7JDHH6.js +29 -0
  81. package/dist/get-dashboard-PC7JDHH6.js.map +1 -0
  82. package/dist/get-dataset-H5IK5FVU.js +48 -0
  83. package/dist/get-dataset-H5IK5FVU.js.map +1 -0
  84. package/dist/{get-evaluator-WDEH2F7M.js → get-evaluator-UWVUPYTM.js} +4 -4
  85. package/dist/{get-prompt-F6PDVC76.js → get-prompt-WZUOLLQC.js} +4 -4
  86. package/dist/get-prompt-WZUOLLQC.js.map +1 -0
  87. package/dist/{get-scenario-H24ZYNT5.js → get-scenario-Q6LCNUYN.js} +4 -4
  88. package/dist/get-simulation-run-Z2XKO256.js +56 -0
  89. package/dist/get-simulation-run-Z2XKO256.js.map +1 -0
  90. package/dist/get-suite-BXK5TN7P.js +44 -0
  91. package/dist/get-suite-BXK5TN7P.js.map +1 -0
  92. package/dist/{get-trace-27USKGO7.js → get-trace-4EJAYVBG.js} +3 -3
  93. package/dist/get-workflow-O34QJLHD.js +25 -0
  94. package/dist/get-workflow-O34QJLHD.js.map +1 -0
  95. package/dist/http-server-ISHF7NJX.js +224 -0
  96. package/dist/http-server-ISHF7NJX.js.map +1 -0
  97. package/dist/index.js +61109 -31519
  98. package/dist/index.js.map +1 -1
  99. package/dist/langwatch-api-annotations-ERBG27RF.js +17 -0
  100. package/dist/langwatch-api-annotations-ERBG27RF.js.map +1 -0
  101. package/dist/langwatch-api-dashboards-G6TR7VVO.js +17 -0
  102. package/dist/langwatch-api-dashboards-G6TR7VVO.js.map +1 -0
  103. package/dist/langwatch-api-monitors-WSXZLS2B.js +52 -0
  104. package/dist/langwatch-api-monitors-WSXZLS2B.js.map +1 -0
  105. package/dist/langwatch-api-secrets-RR5DKG2X.js +40 -0
  106. package/dist/langwatch-api-secrets-RR5DKG2X.js.map +1 -0
  107. package/dist/langwatch-api-triggers-2RTNSWQY.js +30 -0
  108. package/dist/langwatch-api-triggers-2RTNSWQY.js.map +1 -0
  109. package/dist/langwatch-api-workflows-VJRIIDZ7.js +15 -0
  110. package/dist/langwatch-api-workflows-VJRIIDZ7.js.map +1 -0
  111. package/dist/list-agents-AW3P6FJV.js +32 -0
  112. package/dist/list-agents-AW3P6FJV.js.map +1 -0
  113. package/dist/list-annotations-QNCGWPQ3.js +33 -0
  114. package/dist/list-annotations-QNCGWPQ3.js.map +1 -0
  115. package/dist/list-dashboards-R7RK2IXL.js +32 -0
  116. package/dist/list-dashboards-R7RK2IXL.js.map +1 -0
  117. package/dist/list-dataset-records-WVCSQP7P.js +39 -0
  118. package/dist/list-dataset-records-WVCSQP7P.js.map +1 -0
  119. package/dist/list-datasets-KEXRLDEU.js +60 -0
  120. package/dist/list-datasets-KEXRLDEU.js.map +1 -0
  121. package/dist/{list-evaluators-KRGI72EH.js → list-evaluators-7R2LB4JH.js} +4 -4
  122. package/dist/{list-model-providers-A5YCFTPI.js → list-model-providers-OBYJCKBX.js} +4 -4
  123. package/dist/list-prompt-tags-6LY3ZPYI.js +23 -0
  124. package/dist/list-prompt-tags-6LY3ZPYI.js.map +1 -0
  125. package/dist/{list-prompts-LKJSE7XN.js → list-prompts-VWEZ4CDE.js} +3 -3
  126. package/dist/{list-scenarios-ZK5CMGC4.js → list-scenarios-TXD4W2ZJ.js} +4 -4
  127. package/dist/list-simulation-runs-RHPOLMFI.js +43 -0
  128. package/dist/list-simulation-runs-RHPOLMFI.js.map +1 -0
  129. package/dist/list-suites-FSGBX27Z.js +42 -0
  130. package/dist/list-suites-FSGBX27Z.js.map +1 -0
  131. package/dist/list-workflows-VRGEZ3EN.js +35 -0
  132. package/dist/list-workflows-VRGEZ3EN.js.map +1 -0
  133. package/dist/rename-prompt-tag-VOJJLX4M.js +18 -0
  134. package/dist/rename-prompt-tag-VOJJLX4M.js.map +1 -0
  135. package/dist/run-agent-KTCC7TB7.js +36 -0
  136. package/dist/run-agent-KTCC7TB7.js.map +1 -0
  137. package/dist/run-evaluation-2X3V3Q6L.js +64 -0
  138. package/dist/run-evaluation-2X3V3Q6L.js.map +1 -0
  139. package/dist/run-suite-BTMHGI2D.js +29 -0
  140. package/dist/run-suite-BTMHGI2D.js.map +1 -0
  141. package/dist/run-workflow-IGAYGKJL.js +36 -0
  142. package/dist/run-workflow-IGAYGKJL.js.map +1 -0
  143. package/dist/{search-traces-SOKAAMAR.js → search-traces-VYFUIMXH.js} +3 -3
  144. package/dist/{set-model-provider-7MGULZDH.js → set-model-provider-W5IUI326.js} +4 -4
  145. package/dist/update-agent-4BB7EYLR.js +20 -0
  146. package/dist/update-agent-4BB7EYLR.js.map +1 -0
  147. package/dist/update-dataset-CXBKZ4W3.js +22 -0
  148. package/dist/update-dataset-CXBKZ4W3.js.map +1 -0
  149. package/dist/update-dataset-record-HOHAMHXG.js +19 -0
  150. package/dist/update-dataset-record-HOHAMHXG.js.map +1 -0
  151. package/dist/{update-evaluator-A3XINFLJ.js → update-evaluator-IVOR6FTR.js} +4 -4
  152. package/dist/{update-prompt-IW7X2UQM.js → update-prompt-OWQAKE7K.js} +5 -3
  153. package/dist/update-prompt-OWQAKE7K.js.map +1 -0
  154. package/dist/{update-scenario-ZT7TOBFR.js → update-scenario-GDFVILPN.js} +4 -4
  155. package/dist/update-suite-BXYUYSPT.js +39 -0
  156. package/dist/update-suite-BXYUYSPT.js.map +1 -0
  157. package/package.json +17 -3
  158. package/src/__tests__/all-tools.integration.test.ts +344 -0
  159. package/src/__tests__/config.unit.test.ts +81 -1
  160. package/src/__tests__/datasets.integration.test.ts +603 -0
  161. package/src/__tests__/datasets.unit.test.ts +240 -0
  162. package/src/__tests__/docker.integration.test.ts +234 -0
  163. package/src/__tests__/http-transport.integration.test.ts +397 -0
  164. package/src/__tests__/langwatch-api.unit.test.ts +174 -0
  165. package/src/__tests__/tools.unit.test.ts +177 -0
  166. package/src/config.d.ts +15 -0
  167. package/src/config.ts +83 -7
  168. package/src/create-mcp-server.d.ts +6 -0
  169. package/src/create-mcp-server.ts +1799 -0
  170. package/src/http-server.ts +329 -0
  171. package/src/index.ts +22 -593
  172. package/src/langwatch-api-agents.ts +108 -0
  173. package/src/langwatch-api-annotations.ts +49 -0
  174. package/src/langwatch-api-dashboards.ts +48 -0
  175. package/src/langwatch-api-datasets.ts +191 -0
  176. package/src/langwatch-api-evaluators.ts +10 -0
  177. package/src/langwatch-api-monitors.ts +82 -0
  178. package/src/langwatch-api-secrets.ts +48 -0
  179. package/src/langwatch-api-simulation-runs.ts +51 -0
  180. package/src/langwatch-api-suites.ts +118 -0
  181. package/src/langwatch-api-triggers.ts +48 -0
  182. package/src/langwatch-api-workflows.ts +41 -0
  183. package/src/langwatch-api.ts +60 -2
  184. package/src/schemas/create-dataset.ts +48 -0
  185. package/src/schemas/index.ts +1 -0
  186. package/src/tools/archive-suite.ts +12 -0
  187. package/src/tools/assign-prompt-tag.ts +16 -0
  188. package/src/tools/create-agent.ts +15 -0
  189. package/src/tools/create-annotation.ts +18 -0
  190. package/src/tools/create-dashboard.ts +7 -0
  191. package/src/tools/create-dataset-records.ts +23 -0
  192. package/src/tools/create-dataset.ts +22 -0
  193. package/src/tools/create-prompt-tag.ts +12 -0
  194. package/src/tools/create-prompt.ts +4 -0
  195. package/src/tools/create-suite.ts +42 -0
  196. package/src/tools/delete-agent.ts +7 -0
  197. package/src/tools/delete-annotation.ts +7 -0
  198. package/src/tools/delete-dashboard.ts +7 -0
  199. package/src/tools/delete-dataset-records.ts +22 -0
  200. package/src/tools/delete-dataset.ts +20 -0
  201. package/src/tools/delete-evaluator.ts +12 -0
  202. package/src/tools/delete-prompt-tag.ts +12 -0
  203. package/src/tools/delete-workflow.ts +7 -0
  204. package/src/tools/format-dataset-mutation.ts +25 -0
  205. package/src/tools/get-agent.ts +21 -0
  206. package/src/tools/get-analytics.ts +30 -3
  207. package/src/tools/get-dashboard.ts +22 -0
  208. package/src/tools/get-dataset.ts +63 -0
  209. package/src/tools/get-prompt.ts +2 -1
  210. package/src/tools/get-simulation-run.ts +60 -0
  211. package/src/tools/get-suite.ts +47 -0
  212. package/src/tools/get-workflow.ts +17 -0
  213. package/src/tools/list-agents.ts +27 -0
  214. package/src/tools/list-annotations.ts +33 -0
  215. package/src/tools/list-dashboards.ts +27 -0
  216. package/src/tools/list-dataset-records.ts +46 -0
  217. package/src/tools/list-datasets.ts +80 -0
  218. package/src/tools/list-prompt-tags.ts +21 -0
  219. package/src/tools/list-simulation-runs.ts +49 -0
  220. package/src/tools/list-suites.ts +43 -0
  221. package/src/tools/list-workflows.ts +31 -0
  222. package/src/tools/rename-prompt-tag.ts +14 -0
  223. package/src/tools/run-agent.ts +36 -0
  224. package/src/tools/run-evaluation.ts +87 -0
  225. package/src/tools/run-suite.ts +28 -0
  226. package/src/tools/run-workflow.ts +36 -0
  227. package/src/tools/update-agent.ts +13 -0
  228. package/src/tools/update-dataset-record.ts +21 -0
  229. package/src/tools/update-dataset.ts +23 -0
  230. package/src/tools/update-prompt.ts +3 -0
  231. package/src/tools/update-suite.ts +44 -0
  232. package/src/utils/escape-markdown.ts +12 -0
  233. package/tsup.config.ts +5 -1
  234. package/dist/chunk-AAQNA53E.js +0 -28
  235. package/dist/chunk-AAQNA53E.js.map +0 -1
  236. package/dist/chunk-LLRQIF52.js.map +0 -1
  237. package/dist/config-FIQWQRUB.js +0 -11
  238. package/dist/create-prompt-7Z35MIL6.js.map +0 -1
  239. package/dist/get-analytics-4YJW4S5L.js.map +0 -1
  240. package/dist/get-prompt-F6PDVC76.js.map +0 -1
  241. package/dist/update-prompt-IW7X2UQM.js.map +0 -1
  242. /package/dist/{archive-scenario-YFD5THOR.js.map → archive-scenario-WJ2A7ETN.js.map} +0 -0
  243. /package/dist/{chunk-6U4TCGFC.js.map → chunk-2GT7IFWK.js.map} +0 -0
  244. /package/dist/{chunk-IX6QJKAD.js.map → chunk-CCWCIJJ3.js.map} +0 -0
  245. /package/dist/{config-FIQWQRUB.js.map → config.js.map} +0 -0
  246. /package/dist/{create-evaluator-E5X5ZP3B.js.map → create-evaluator-WYFRFLRC.js.map} +0 -0
  247. /package/dist/{create-scenario-DIMPJRPY.js.map → create-scenario-6YHSMGLP.js.map} +0 -0
  248. /package/dist/{get-evaluator-WDEH2F7M.js.map → get-evaluator-UWVUPYTM.js.map} +0 -0
  249. /package/dist/{get-scenario-H24ZYNT5.js.map → get-scenario-Q6LCNUYN.js.map} +0 -0
  250. /package/dist/{get-trace-27USKGO7.js.map → get-trace-4EJAYVBG.js.map} +0 -0
  251. /package/dist/{list-evaluators-KRGI72EH.js.map → list-evaluators-7R2LB4JH.js.map} +0 -0
  252. /package/dist/{list-model-providers-A5YCFTPI.js.map → list-model-providers-OBYJCKBX.js.map} +0 -0
  253. /package/dist/{list-prompts-LKJSE7XN.js.map → list-prompts-VWEZ4CDE.js.map} +0 -0
  254. /package/dist/{list-scenarios-ZK5CMGC4.js.map → list-scenarios-TXD4W2ZJ.js.map} +0 -0
  255. /package/dist/{search-traces-SOKAAMAR.js.map → search-traces-VYFUIMXH.js.map} +0 -0
  256. /package/dist/{set-model-provider-7MGULZDH.js.map → set-model-provider-W5IUI326.js.map} +0 -0
  257. /package/dist/{update-evaluator-A3XINFLJ.js.map → update-evaluator-IVOR6FTR.js.map} +0 -0
  258. /package/dist/{update-scenario-ZT7TOBFR.js.map → update-scenario-GDFVILPN.js.map} +0 -0
@@ -0,0 +1,21 @@
1
+ import {
2
+ escapeMarkdown
3
+ } from "./chunk-NUFPTHKU.js";
4
+
5
+ // src/tools/format-dataset-mutation.ts
6
+ function formatDatasetMutationDetails(result) {
7
+ const lines = [];
8
+ lines.push(`**Name**: ${escapeMarkdown(result.name)}`);
9
+ lines.push(`**Slug**: ${escapeMarkdown(result.slug)}`);
10
+ lines.push(`**ID**: ${escapeMarkdown(result.id)}`);
11
+ if (Array.isArray(result.columnTypes) && result.columnTypes.length > 0) {
12
+ const colNames = result.columnTypes.map((c) => `${escapeMarkdown(c.name)} (${escapeMarkdown(c.type)})`).join(", ");
13
+ lines.push(`**Columns**: ${colNames}`);
14
+ }
15
+ return lines;
16
+ }
17
+
18
+ export {
19
+ formatDatasetMutationDetails
20
+ };
21
+ //# sourceMappingURL=chunk-WVI5CJ6S.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/format-dataset-mutation.ts"],"sourcesContent":["import type { DatasetMutationResponse } from \"../langwatch-api-datasets.js\";\nimport { escapeMarkdown } from \"../utils/escape-markdown.js\";\n\n/**\n * Formats the common detail lines for a dataset mutation response\n * (name, slug, id, and column types).\n *\n * Used by both create-dataset and update-dataset handlers to avoid\n * duplicating the formatting logic.\n */\nexport function formatDatasetMutationDetails(\n result: DatasetMutationResponse,\n): string[] {\n const lines: string[] = [];\n lines.push(`**Name**: ${escapeMarkdown(result.name)}`);\n lines.push(`**Slug**: ${escapeMarkdown(result.slug)}`);\n lines.push(`**ID**: ${escapeMarkdown(result.id)}`);\n if (Array.isArray(result.columnTypes) && result.columnTypes.length > 0) {\n const colNames = result.columnTypes\n .map((c) => `${escapeMarkdown(c.name)} (${escapeMarkdown(c.type)})`)\n .join(\", \");\n lines.push(`**Columns**: ${colNames}`);\n }\n return lines;\n}\n"],"mappings":";;;;;AAUO,SAAS,6BACd,QACU;AACV,QAAM,QAAkB,CAAC;AACzB,QAAM,KAAK,aAAa,eAAe,OAAO,IAAI,CAAC,EAAE;AACrD,QAAM,KAAK,aAAa,eAAe,OAAO,IAAI,CAAC,EAAE;AACrD,QAAM,KAAK,WAAW,eAAe,OAAO,EAAE,CAAC,EAAE;AACjD,MAAI,MAAM,QAAQ,OAAO,WAAW,KAAK,OAAO,YAAY,SAAS,GAAG;AACtE,UAAM,WAAW,OAAO,YACrB,IAAI,CAAC,MAAM,GAAG,eAAe,EAAE,IAAI,CAAC,KAAK,eAAe,EAAE,IAAI,CAAC,GAAG,EAClE,KAAK,IAAI;AACZ,UAAM,KAAK,gBAAgB,QAAQ,EAAE;AAAA,EACvC;AACA,SAAO;AACT;","names":[]}
@@ -0,0 +1,35 @@
1
+ import {
2
+ makeRequest
3
+ } from "./chunk-2WPLXEKF.js";
4
+
5
+ // src/langwatch-api-workflows.ts
6
+ async function listWorkflows() {
7
+ return makeRequest("GET", "/api/workflows");
8
+ }
9
+ async function getWorkflow(id) {
10
+ return makeRequest(
11
+ "GET",
12
+ `/api/workflows/${encodeURIComponent(id)}`
13
+ );
14
+ }
15
+ async function runWorkflow(id, input) {
16
+ return makeRequest(
17
+ "POST",
18
+ `/api/workflows/${encodeURIComponent(id)}/run`,
19
+ input ?? {}
20
+ );
21
+ }
22
+ async function deleteWorkflow(id) {
23
+ return makeRequest(
24
+ "DELETE",
25
+ `/api/workflows/${encodeURIComponent(id)}`
26
+ );
27
+ }
28
+
29
+ export {
30
+ listWorkflows,
31
+ getWorkflow,
32
+ runWorkflow,
33
+ deleteWorkflow
34
+ };
35
+ //# sourceMappingURL=chunk-ZVS4UKN2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/langwatch-api-workflows.ts"],"sourcesContent":["import { makeRequest } from \"./langwatch-api.js\";\n\nexport interface WorkflowSummary {\n id: string;\n name: string;\n icon: string | null;\n description: string | null;\n isEvaluator: boolean;\n isComponent: boolean;\n createdAt: string;\n updatedAt: string;\n}\n\nexport async function listWorkflows(): Promise<WorkflowSummary[]> {\n return makeRequest(\"GET\", \"/api/workflows\") as Promise<WorkflowSummary[]>;\n}\n\nexport async function getWorkflow(id: string): Promise<WorkflowSummary> {\n return makeRequest(\n \"GET\",\n `/api/workflows/${encodeURIComponent(id)}`,\n ) as Promise<WorkflowSummary>;\n}\n\nexport async function runWorkflow(\n id: string,\n input?: Record<string, unknown>\n): Promise<Record<string, unknown>> {\n return makeRequest(\n \"POST\",\n `/api/workflows/${encodeURIComponent(id)}/run`,\n input ?? {},\n ) as Promise<Record<string, unknown>>;\n}\n\nexport async function deleteWorkflow(id: string): Promise<{ id: string; archived: boolean }> {\n return makeRequest(\n \"DELETE\",\n `/api/workflows/${encodeURIComponent(id)}`,\n ) as Promise<{ id: string; archived: boolean }>;\n}\n"],"mappings":";;;;;AAaA,eAAsB,gBAA4C;AAChE,SAAO,YAAY,OAAO,gBAAgB;AAC5C;AAEA,eAAsB,YAAY,IAAsC;AACtE,SAAO;AAAA,IACL;AAAA,IACA,kBAAkB,mBAAmB,EAAE,CAAC;AAAA,EAC1C;AACF;AAEA,eAAsB,YACpB,IACA,OACkC;AAClC,SAAO;AAAA,IACL;AAAA,IACA,kBAAkB,mBAAmB,EAAE,CAAC;AAAA,IACxC,SAAS,CAAC;AAAA,EACZ;AACF;AAEA,eAAsB,eAAe,IAAwD;AAC3F,SAAO;AAAA,IACL;AAAA,IACA,kBAAkB,mBAAmB,EAAE,CAAC;AAAA,EAC1C;AACF;","names":[]}
@@ -0,0 +1,17 @@
1
+ interface McpConfig {
2
+ apiKey: string | undefined;
3
+ endpoint: string;
4
+ }
5
+
6
+ declare function initConfig(args: {
7
+ apiKey?: string;
8
+ endpoint?: string;
9
+ }): void;
10
+
11
+ declare function getConfig(): McpConfig;
12
+
13
+ declare function requireApiKey(): string;
14
+
15
+ declare function runWithConfig<T>(config: McpConfig, fn: () => T): T;
16
+
17
+ export { type McpConfig, getConfig, initConfig, requireApiKey, runWithConfig };
package/dist/config.js ADDED
@@ -0,0 +1,13 @@
1
+ import {
2
+ getConfig,
3
+ initConfig,
4
+ requireApiKey,
5
+ runWithConfig
6
+ } from "./chunk-BWWY5KEF.js";
7
+ export {
8
+ getConfig,
9
+ initConfig,
10
+ requireApiKey,
11
+ runWithConfig
12
+ };
13
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1,23 @@
1
+ import {
2
+ createAgent
3
+ } from "./chunk-4AUB2BIA.js";
4
+ import "./chunk-2WPLXEKF.js";
5
+ import "./chunk-BWWY5KEF.js";
6
+
7
+ // src/tools/create-agent.ts
8
+ async function handleCreateAgent(params) {
9
+ const agent = await createAgent({
10
+ name: params.name,
11
+ type: params.type,
12
+ config: params.config ?? {}
13
+ });
14
+ return `Agent created successfully!
15
+
16
+ **Name**: ${agent.name}
17
+ **ID**: ${agent.id}
18
+ **Type**: ${agent.type}`;
19
+ }
20
+ export {
21
+ handleCreateAgent
22
+ };
23
+ //# sourceMappingURL=create-agent-MBOOT3XK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/create-agent.ts"],"sourcesContent":["import { createAgent as apiCreateAgent } from \"../langwatch-api-agents.js\";\n\nexport async function handleCreateAgent(params: {\n name: string;\n type: string;\n config?: Record<string, unknown>;\n}): Promise<string> {\n const agent = await apiCreateAgent({\n name: params.name,\n type: params.type,\n config: params.config ?? {},\n });\n\n return `Agent created successfully!\\n\\n**Name**: ${agent.name}\\n**ID**: ${agent.id}\\n**Type**: ${agent.type}`;\n}\n"],"mappings":";;;;;;;AAEA,eAAsB,kBAAkB,QAIpB;AAClB,QAAM,QAAQ,MAAM,YAAe;AAAA,IACjC,MAAM,OAAO;AAAA,IACb,MAAM,OAAO;AAAA,IACb,QAAQ,OAAO,UAAU,CAAC;AAAA,EAC5B,CAAC;AAED,SAAO;AAAA;AAAA,YAA4C,MAAM,IAAI;AAAA,UAAa,MAAM,EAAE;AAAA,YAAe,MAAM,IAAI;AAC7G;","names":[]}
@@ -0,0 +1,24 @@
1
+ import {
2
+ createAnnotation
3
+ } from "./chunk-IE4M5OGE.js";
4
+ import "./chunk-2WPLXEKF.js";
5
+ import "./chunk-BWWY5KEF.js";
6
+
7
+ // src/tools/create-annotation.ts
8
+ async function handleCreateAnnotation(params) {
9
+ const annotation = await createAnnotation(params.traceId, {
10
+ comment: params.comment,
11
+ isThumbsUp: params.isThumbsUp,
12
+ email: params.email
13
+ });
14
+ const rating = params.isThumbsUp === true ? " \u{1F44D}" : params.isThumbsUp === false ? " \u{1F44E}" : "";
15
+ return `Annotation created successfully!${rating}
16
+
17
+ **ID**: ${annotation.id ?? "\u2014"}
18
+ **Trace ID**: ${params.traceId}${params.comment ? `
19
+ **Comment**: ${params.comment}` : ""}`;
20
+ }
21
+ export {
22
+ handleCreateAnnotation
23
+ };
24
+ //# sourceMappingURL=create-annotation-XMV6A7ED.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/create-annotation.ts"],"sourcesContent":["import { createAnnotation as apiCreateAnnotation } from \"../langwatch-api-annotations.js\";\n\nexport async function handleCreateAnnotation(params: {\n traceId: string;\n comment?: string;\n isThumbsUp?: boolean;\n email?: string;\n}): Promise<string> {\n const annotation = await apiCreateAnnotation(params.traceId, {\n comment: params.comment,\n isThumbsUp: params.isThumbsUp,\n email: params.email,\n });\n\n const rating = params.isThumbsUp === true ? \" 👍\" : params.isThumbsUp === false ? \" 👎\" : \"\";\n\n return `Annotation created successfully!${rating}\\n\\n**ID**: ${annotation.id ?? \"—\"}\\n**Trace ID**: ${params.traceId}${params.comment ? `\\n**Comment**: ${params.comment}` : \"\"}`;\n}\n"],"mappings":";;;;;;;AAEA,eAAsB,uBAAuB,QAKzB;AAClB,QAAM,aAAa,MAAM,iBAAoB,OAAO,SAAS;AAAA,IAC3D,SAAS,OAAO;AAAA,IAChB,YAAY,OAAO;AAAA,IACnB,OAAO,OAAO;AAAA,EAChB,CAAC;AAED,QAAM,SAAS,OAAO,eAAe,OAAO,eAAQ,OAAO,eAAe,QAAQ,eAAQ;AAE1F,SAAO,mCAAmC,MAAM;AAAA;AAAA,UAAe,WAAW,MAAM,QAAG;AAAA,gBAAmB,OAAO,OAAO,GAAG,OAAO,UAAU;AAAA,eAAkB,OAAO,OAAO,KAAK,EAAE;AACjL;","names":[]}
@@ -0,0 +1,18 @@
1
+ import {
2
+ createDashboard
3
+ } from "./chunk-EUQDVOSU.js";
4
+ import "./chunk-2WPLXEKF.js";
5
+ import "./chunk-BWWY5KEF.js";
6
+
7
+ // src/tools/create-dashboard.ts
8
+ async function handleCreateDashboard(params) {
9
+ const dashboard = await createDashboard({ name: params.name });
10
+ return `Dashboard created successfully!
11
+
12
+ **Name**: ${dashboard.name}
13
+ **ID**: ${dashboard.id}`;
14
+ }
15
+ export {
16
+ handleCreateDashboard
17
+ };
18
+ //# sourceMappingURL=create-dashboard-VRKLFVZJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/create-dashboard.ts"],"sourcesContent":["import { createDashboard as apiCreateDashboard } from \"../langwatch-api-dashboards.js\";\n\nexport async function handleCreateDashboard(params: { name: string }): Promise<string> {\n const dashboard = await apiCreateDashboard({ name: params.name });\n\n return `Dashboard created successfully!\\n\\n**Name**: ${dashboard.name}\\n**ID**: ${dashboard.id}`;\n}\n"],"mappings":";;;;;;;AAEA,eAAsB,sBAAsB,QAA2C;AACrF,QAAM,YAAY,MAAM,gBAAmB,EAAE,MAAM,OAAO,KAAK,CAAC;AAEhE,SAAO;AAAA;AAAA,YAAgD,UAAU,IAAI;AAAA,UAAa,UAAU,EAAE;AAChG;","names":[]}
@@ -0,0 +1,22 @@
1
+ import {
2
+ formatDatasetMutationDetails
3
+ } from "./chunk-WVI5CJ6S.js";
4
+ import "./chunk-NUFPTHKU.js";
5
+ import {
6
+ createDataset
7
+ } from "./chunk-WQG2DFHX.js";
8
+ import "./chunk-2WPLXEKF.js";
9
+ import "./chunk-BWWY5KEF.js";
10
+
11
+ // src/tools/create-dataset.ts
12
+ async function handleCreateDataset(params) {
13
+ const result = await createDataset(params);
14
+ const lines = [];
15
+ lines.push("Dataset created successfully!\n");
16
+ lines.push(...formatDatasetMutationDetails(result));
17
+ return lines.join("\n");
18
+ }
19
+ export {
20
+ handleCreateDataset
21
+ };
22
+ //# sourceMappingURL=create-dataset-7HQPZCRE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/create-dataset.ts"],"sourcesContent":["import { createDataset as apiCreateDataset } from \"../langwatch-api-datasets.js\";\nimport type { DatasetColumnType } from \"../langwatch-api-datasets.js\";\nimport { formatDatasetMutationDetails } from \"./format-dataset-mutation.js\";\n\n/**\n * Handles the platform_create_dataset MCP tool invocation.\n *\n * Creates a new dataset in the LangWatch project and returns a\n * confirmation with the created dataset's details.\n */\nexport async function handleCreateDataset(params: {\n name: string;\n columnTypes?: DatasetColumnType[];\n}): Promise<string> {\n const result = await apiCreateDataset(params);\n\n const lines: string[] = [];\n lines.push(\"Dataset created successfully!\\n\");\n lines.push(...formatDatasetMutationDetails(result));\n\n return lines.join(\"\\n\");\n}\n"],"mappings":";;;;;;;;;;;AAUA,eAAsB,oBAAoB,QAGtB;AAClB,QAAM,SAAS,MAAM,cAAiB,MAAM;AAE5C,QAAM,QAAkB,CAAC;AACzB,QAAM,KAAK,iCAAiC;AAC5C,QAAM,KAAK,GAAG,6BAA6B,MAAM,CAAC;AAElD,SAAO,MAAM,KAAK,IAAI;AACxB;","names":[]}
@@ -0,0 +1,22 @@
1
+ import {
2
+ createDatasetRecords
3
+ } from "./chunk-WQG2DFHX.js";
4
+ import "./chunk-2WPLXEKF.js";
5
+ import "./chunk-BWWY5KEF.js";
6
+
7
+ // src/tools/create-dataset-records.ts
8
+ async function handleCreateDatasetRecords(params) {
9
+ const result = await createDatasetRecords(params);
10
+ const count = Array.isArray(result.data) ? result.data.length : 0;
11
+ const lines = [];
12
+ lines.push(`${count} record(s) created successfully!
13
+ `);
14
+ lines.push(
15
+ "> Use `platform_get_dataset` to see the updated dataset with all records."
16
+ );
17
+ return lines.join("\n");
18
+ }
19
+ export {
20
+ handleCreateDatasetRecords
21
+ };
22
+ //# sourceMappingURL=create-dataset-records-2NIVFYTV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/create-dataset-records.ts"],"sourcesContent":["import { createDatasetRecords as apiCreateDatasetRecords } from \"../langwatch-api-datasets.js\";\n\n/**\n * Handles the platform_create_dataset_records MCP tool invocation.\n *\n * Creates records in a dataset in batch and returns a confirmation\n * with the count of records created.\n */\nexport async function handleCreateDatasetRecords(params: {\n slugOrId: string;\n entries: Record<string, unknown>[];\n}): Promise<string> {\n const result = await apiCreateDatasetRecords(params);\n const count = Array.isArray(result.data) ? result.data.length : 0;\n\n const lines: string[] = [];\n lines.push(`${count} record(s) created successfully!\\n`);\n lines.push(\n \"> Use `platform_get_dataset` to see the updated dataset with all records.\",\n );\n\n return lines.join(\"\\n\");\n}\n"],"mappings":";;;;;;;AAQA,eAAsB,2BAA2B,QAG7B;AAClB,QAAM,SAAS,MAAM,qBAAwB,MAAM;AACnD,QAAM,QAAQ,MAAM,QAAQ,OAAO,IAAI,IAAI,OAAO,KAAK,SAAS;AAEhE,QAAM,QAAkB,CAAC;AACzB,QAAM,KAAK,GAAG,KAAK;AAAA,CAAoC;AACvD,QAAM;AAAA,IACJ;AAAA,EACF;AAEA,SAAO,MAAM,KAAK,IAAI;AACxB;","names":[]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createEvaluator,
3
3
  getEvaluatorType
4
- } from "./chunk-5UOPNRXW.js";
5
- import "./chunk-LLRQIF52.js";
6
- import "./chunk-AAQNA53E.js";
4
+ } from "./chunk-HYMIWO3U.js";
5
+ import "./chunk-2WPLXEKF.js";
6
+ import "./chunk-BWWY5KEF.js";
7
7
 
8
8
  // src/tools/create-evaluator.ts
9
9
  async function handleCreateEvaluator(params) {
@@ -24,4 +24,4 @@ async function handleCreateEvaluator(params) {
24
24
  export {
25
25
  handleCreateEvaluator
26
26
  };
27
- //# sourceMappingURL=create-evaluator-E5X5ZP3B.js.map
27
+ //# sourceMappingURL=create-evaluator-WYFRFLRC.js.map
@@ -0,0 +1,8 @@
1
+ // Minimal type declaration — avoids pulling mcp-server's full dependency tree
2
+ // into the langwatch app's typecheck scope. The actual return type is McpServer,
3
+ // but we only expose the connect() method that handler.ts uses.
4
+ declare function createMcpServer(): {
5
+ connect(transport: unknown): Promise<void>;
6
+ };
7
+
8
+ export { createMcpServer };
@@ -0,0 +1,8 @@
1
+ import {
2
+ createMcpServer
3
+ } from "./chunk-E5JYYU3J.js";
4
+ import "./chunk-BWWY5KEF.js";
5
+ export {
6
+ createMcpServer
7
+ };
8
+ //# sourceMappingURL=create-mcp-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createPrompt
3
- } from "./chunk-LLRQIF52.js";
4
- import "./chunk-AAQNA53E.js";
3
+ } from "./chunk-2WPLXEKF.js";
4
+ import "./chunk-BWWY5KEF.js";
5
5
 
6
6
  // src/tools/create-prompt.ts
7
7
  var HANDLE_PATTERN = /^[a-z0-9_-]+(?:\/[a-z0-9_-]+)?$/;
@@ -18,7 +18,8 @@ async function handleCreatePrompt(params) {
18
18
  const result = await createPrompt({
19
19
  handle,
20
20
  messages: params.messages,
21
- model: params.model
21
+ model: params.model,
22
+ ...params.tags ? { tags: params.tags } : {}
22
23
  });
23
24
  const lines = [];
24
25
  lines.push("Prompt created successfully!\n");
@@ -28,9 +29,11 @@ async function handleCreatePrompt(params) {
28
29
  lines.push(`**Model**: ${params.model}`);
29
30
  if (result.latestVersionNumber != null)
30
31
  lines.push(`**Version**: v${result.latestVersionNumber}`);
32
+ if (params.tags && params.tags.length > 0)
33
+ lines.push(`**Tags**: ${params.tags.join(", ")}`);
31
34
  return lines.join("\n");
32
35
  }
33
36
  export {
34
37
  handleCreatePrompt
35
38
  };
36
- //# sourceMappingURL=create-prompt-7Z35MIL6.js.map
39
+ //# sourceMappingURL=create-prompt-IEN7O6JT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/create-prompt.ts"],"sourcesContent":["import { createPrompt as apiCreatePrompt } from \"../langwatch-api.js\";\n\nconst HANDLE_PATTERN = /^[a-z0-9_-]+(?:\\/[a-z0-9_-]+)?$/;\n\n/**\n * Converts a human-readable name into a URL-friendly handle.\n *\n * Lowercases the input, replaces non-alphanumeric runs with hyphens,\n * and strips leading/trailing hyphens. May return an empty string\n * for inputs with no alphanumeric characters — callers must validate.\n */\nfunction toHandle(name: string): string {\n return name\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-|-$/g, \"\");\n}\n\n/**\n * Handles the platform_create_prompt MCP tool invocation.\n *\n * Creates a new prompt in the LangWatch project and returns a\n * confirmation with the created prompt's details.\n */\nexport async function handleCreatePrompt(params: {\n name: string;\n handle?: string;\n messages: Array<{ role: string; content: string }>;\n model: string;\n tags?: string[];\n}): Promise<string> {\n const handle = params.handle?.trim() || toHandle(params.name);\n if (!handle || !HANDLE_PATTERN.test(handle)) {\n throw new Error(\n `Invalid prompt handle \"${handle || \"\"}\". Handle must match ${HANDLE_PATTERN}. Provide a valid \\`handle\\` explicitly.`\n );\n }\n\n const result = await apiCreatePrompt({\n handle,\n messages: params.messages,\n model: params.model,\n ...(params.tags ? { tags: params.tags } : {}),\n });\n\n const lines: string[] = [];\n lines.push(\"Prompt created successfully!\\n\");\n if (result.id) lines.push(`**ID**: ${result.id}`);\n if (result.handle) lines.push(`**Handle**: ${result.handle}`);\n lines.push(`**Name**: ${result.name || params.name}`);\n lines.push(`**Model**: ${params.model}`);\n if (result.latestVersionNumber != null)\n lines.push(`**Version**: v${result.latestVersionNumber}`);\n if (params.tags && params.tags.length > 0)\n lines.push(`**Tags**: ${params.tags.join(\", \")}`);\n\n return lines.join(\"\\n\");\n}\n"],"mappings":";;;;;;AAEA,IAAM,iBAAiB;AASvB,SAAS,SAAS,MAAsB;AACtC,SAAO,KACJ,YAAY,EACZ,QAAQ,eAAe,GAAG,EAC1B,QAAQ,UAAU,EAAE;AACzB;AAQA,eAAsB,mBAAmB,QAMrB;AAClB,QAAM,SAAS,OAAO,QAAQ,KAAK,KAAK,SAAS,OAAO,IAAI;AAC5D,MAAI,CAAC,UAAU,CAAC,eAAe,KAAK,MAAM,GAAG;AAC3C,UAAM,IAAI;AAAA,MACR,0BAA0B,UAAU,EAAE,wBAAwB,cAAc;AAAA,IAC9E;AAAA,EACF;AAEA,QAAM,SAAS,MAAM,aAAgB;AAAA,IACnC;AAAA,IACA,UAAU,OAAO;AAAA,IACjB,OAAO,OAAO;AAAA,IACd,GAAI,OAAO,OAAO,EAAE,MAAM,OAAO,KAAK,IAAI,CAAC;AAAA,EAC7C,CAAC;AAED,QAAM,QAAkB,CAAC;AACzB,QAAM,KAAK,gCAAgC;AAC3C,MAAI,OAAO,GAAI,OAAM,KAAK,WAAW,OAAO,EAAE,EAAE;AAChD,MAAI,OAAO,OAAQ,OAAM,KAAK,eAAe,OAAO,MAAM,EAAE;AAC5D,QAAM,KAAK,aAAa,OAAO,QAAQ,OAAO,IAAI,EAAE;AACpD,QAAM,KAAK,cAAc,OAAO,KAAK,EAAE;AACvC,MAAI,OAAO,uBAAuB;AAChC,UAAM,KAAK,iBAAiB,OAAO,mBAAmB,EAAE;AAC1D,MAAI,OAAO,QAAQ,OAAO,KAAK,SAAS;AACtC,UAAM,KAAK,aAAa,OAAO,KAAK,KAAK,IAAI,CAAC,EAAE;AAElD,SAAO,MAAM,KAAK,IAAI;AACxB;","names":[]}
@@ -0,0 +1,17 @@
1
+ import {
2
+ createPromptTag
3
+ } from "./chunk-2WPLXEKF.js";
4
+ import "./chunk-BWWY5KEF.js";
5
+
6
+ // src/tools/create-prompt-tag.ts
7
+ async function handleCreatePromptTag(params) {
8
+ await createPromptTag(params.name);
9
+ const lines = [];
10
+ lines.push("Tag created successfully!\n");
11
+ lines.push(`**Name**: ${params.name}`);
12
+ return lines.join("\n");
13
+ }
14
+ export {
15
+ handleCreatePromptTag
16
+ };
17
+ //# sourceMappingURL=create-prompt-tag-CAEZ45VO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/create-prompt-tag.ts"],"sourcesContent":["import { createPromptTag as apiCreatePromptTag } from \"../langwatch-api.js\";\n\nexport async function handleCreatePromptTag(params: {\n name: string;\n}): Promise<string> {\n await apiCreatePromptTag(params.name);\n\n const lines: string[] = [];\n lines.push(\"Tag created successfully!\\n\");\n lines.push(`**Name**: ${params.name}`);\n return lines.join(\"\\n\");\n}\n"],"mappings":";;;;;;AAEA,eAAsB,sBAAsB,QAExB;AAClB,QAAM,gBAAmB,OAAO,IAAI;AAEpC,QAAM,QAAkB,CAAC;AACzB,QAAM,KAAK,6BAA6B;AACxC,QAAM,KAAK,aAAa,OAAO,IAAI,EAAE;AACrC,SAAO,MAAM,KAAK,IAAI;AACxB;","names":[]}
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  createScenario
3
- } from "./chunk-6U4TCGFC.js";
4
- import "./chunk-LLRQIF52.js";
5
- import "./chunk-AAQNA53E.js";
3
+ } from "./chunk-2GT7IFWK.js";
4
+ import "./chunk-2WPLXEKF.js";
5
+ import "./chunk-BWWY5KEF.js";
6
6
 
7
7
  // src/tools/create-scenario.ts
8
8
  async function handleCreateScenario(params) {
@@ -23,4 +23,4 @@ async function handleCreateScenario(params) {
23
23
  export {
24
24
  handleCreateScenario
25
25
  };
26
- //# sourceMappingURL=create-scenario-DIMPJRPY.js.map
26
+ //# sourceMappingURL=create-scenario-6YHSMGLP.js.map
@@ -0,0 +1,38 @@
1
+ import {
2
+ createSuite
3
+ } from "./chunk-LUMEZEHL.js";
4
+ import "./chunk-2WPLXEKF.js";
5
+ import "./chunk-BWWY5KEF.js";
6
+
7
+ // src/tools/create-suite.ts
8
+ async function handleCreateSuite(params) {
9
+ let parsedTargets;
10
+ try {
11
+ parsedTargets = JSON.parse(params.targets);
12
+ } catch {
13
+ return 'Error: `targets` must be a valid JSON array of objects with `type` and `referenceId` fields.\n\nExample: [{"type": "http", "referenceId": "agent_abc123"}]';
14
+ }
15
+ const suite = await createSuite({
16
+ name: params.name,
17
+ description: params.description,
18
+ scenarioIds: params.scenarioIds,
19
+ targets: parsedTargets,
20
+ repeatCount: params.repeatCount,
21
+ labels: params.labels
22
+ });
23
+ return [
24
+ `Suite "${suite.name}" created successfully.`,
25
+ "",
26
+ `**ID**: ${suite.id}`,
27
+ `**Slug**: ${suite.slug}`,
28
+ `**Scenarios**: ${suite.scenarioIds.length}`,
29
+ `**Targets**: ${suite.targets.length}`,
30
+ `**Repeat**: ${suite.repeatCount}x`,
31
+ "",
32
+ `> Use \`platform_run_suite\` with ID \`${suite.id}\` to trigger execution.`
33
+ ].join("\n");
34
+ }
35
+ export {
36
+ handleCreateSuite
37
+ };
38
+ //# sourceMappingURL=create-suite-H5XOFDE5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/create-suite.ts"],"sourcesContent":["import { createSuite as apiCreateSuite } from \"../langwatch-api-suites.js\";\nimport type { SuiteTarget } from \"../langwatch-api-suites.js\";\n\n/**\n * Handles the platform_create_suite MCP tool invocation.\n */\nexport async function handleCreateSuite(params: {\n name: string;\n description?: string;\n scenarioIds: string[];\n targets: string;\n repeatCount?: number;\n labels?: string[];\n}): Promise<string> {\n let parsedTargets: SuiteTarget[];\n try {\n parsedTargets = JSON.parse(params.targets) as SuiteTarget[];\n } catch {\n return \"Error: `targets` must be a valid JSON array of objects with `type` and `referenceId` fields.\\n\\nExample: [{\\\"type\\\": \\\"http\\\", \\\"referenceId\\\": \\\"agent_abc123\\\"}]\";\n }\n\n const suite = await apiCreateSuite({\n name: params.name,\n description: params.description,\n scenarioIds: params.scenarioIds,\n targets: parsedTargets,\n repeatCount: params.repeatCount,\n labels: params.labels,\n });\n\n return [\n `Suite \"${suite.name}\" created successfully.`,\n \"\",\n `**ID**: ${suite.id}`,\n `**Slug**: ${suite.slug}`,\n `**Scenarios**: ${suite.scenarioIds.length}`,\n `**Targets**: ${suite.targets.length}`,\n `**Repeat**: ${suite.repeatCount}x`,\n \"\",\n `> Use \\`platform_run_suite\\` with ID \\`${suite.id}\\` to trigger execution.`,\n ].join(\"\\n\");\n}\n"],"mappings":";;;;;;;AAMA,eAAsB,kBAAkB,QAOpB;AAClB,MAAI;AACJ,MAAI;AACF,oBAAgB,KAAK,MAAM,OAAO,OAAO;AAAA,EAC3C,QAAQ;AACN,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,MAAM,YAAe;AAAA,IACjC,MAAM,OAAO;AAAA,IACb,aAAa,OAAO;AAAA,IACpB,aAAa,OAAO;AAAA,IACpB,SAAS;AAAA,IACT,aAAa,OAAO;AAAA,IACpB,QAAQ,OAAO;AAAA,EACjB,CAAC;AAED,SAAO;AAAA,IACL,UAAU,MAAM,IAAI;AAAA,IACpB;AAAA,IACA,WAAW,MAAM,EAAE;AAAA,IACnB,aAAa,MAAM,IAAI;AAAA,IACvB,kBAAkB,MAAM,YAAY,MAAM;AAAA,IAC1C,gBAAgB,MAAM,QAAQ,MAAM;AAAA,IACpC,eAAe,MAAM,WAAW;AAAA,IAChC;AAAA,IACA,0CAA0C,MAAM,EAAE;AAAA,EACpD,EAAE,KAAK,IAAI;AACb;","names":[]}
@@ -0,0 +1,18 @@
1
+ import {
2
+ deleteAgent
3
+ } from "./chunk-4AUB2BIA.js";
4
+ import "./chunk-2WPLXEKF.js";
5
+ import "./chunk-BWWY5KEF.js";
6
+
7
+ // src/tools/delete-agent.ts
8
+ async function handleDeleteAgent(params) {
9
+ const result = await deleteAgent(params.id);
10
+ return `Agent archived successfully!
11
+
12
+ **Name**: ${result.name}
13
+ **ID**: ${result.id}`;
14
+ }
15
+ export {
16
+ handleDeleteAgent
17
+ };
18
+ //# sourceMappingURL=delete-agent-JKTNBWAA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/delete-agent.ts"],"sourcesContent":["import { deleteAgent as apiDeleteAgent } from \"../langwatch-api-agents.js\";\n\nexport async function handleDeleteAgent(params: { id: string }): Promise<string> {\n const result = await apiDeleteAgent(params.id);\n\n return `Agent archived successfully!\\n\\n**Name**: ${result.name}\\n**ID**: ${result.id}`;\n}\n"],"mappings":";;;;;;;AAEA,eAAsB,kBAAkB,QAAyC;AAC/E,QAAM,SAAS,MAAM,YAAe,OAAO,EAAE;AAE7C,SAAO;AAAA;AAAA,YAA6C,OAAO,IAAI;AAAA,UAAa,OAAO,EAAE;AACvF;","names":[]}
@@ -0,0 +1,17 @@
1
+ import {
2
+ deleteAnnotation
3
+ } from "./chunk-IE4M5OGE.js";
4
+ import "./chunk-2WPLXEKF.js";
5
+ import "./chunk-BWWY5KEF.js";
6
+
7
+ // src/tools/delete-annotation.ts
8
+ async function handleDeleteAnnotation(params) {
9
+ await deleteAnnotation(params.id);
10
+ return `Annotation deleted successfully!
11
+
12
+ **ID**: ${params.id}`;
13
+ }
14
+ export {
15
+ handleDeleteAnnotation
16
+ };
17
+ //# sourceMappingURL=delete-annotation-ACMDV6QO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/delete-annotation.ts"],"sourcesContent":["import { deleteAnnotation as apiDeleteAnnotation } from \"../langwatch-api-annotations.js\";\n\nexport async function handleDeleteAnnotation(params: { id: string }): Promise<string> {\n await apiDeleteAnnotation(params.id);\n\n return `Annotation deleted successfully!\\n\\n**ID**: ${params.id}`;\n}\n"],"mappings":";;;;;;;AAEA,eAAsB,uBAAuB,QAAyC;AACpF,QAAM,iBAAoB,OAAO,EAAE;AAEnC,SAAO;AAAA;AAAA,UAA+C,OAAO,EAAE;AACjE;","names":[]}
@@ -0,0 +1,18 @@
1
+ import {
2
+ deleteDashboard
3
+ } from "./chunk-EUQDVOSU.js";
4
+ import "./chunk-2WPLXEKF.js";
5
+ import "./chunk-BWWY5KEF.js";
6
+
7
+ // src/tools/delete-dashboard.ts
8
+ async function handleDeleteDashboard(params) {
9
+ const result = await deleteDashboard(params.id);
10
+ return `Dashboard deleted successfully!
11
+
12
+ **Name**: ${result.name}
13
+ **ID**: ${result.id}`;
14
+ }
15
+ export {
16
+ handleDeleteDashboard
17
+ };
18
+ //# sourceMappingURL=delete-dashboard-VJSR7CRU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/delete-dashboard.ts"],"sourcesContent":["import { deleteDashboard as apiDeleteDashboard } from \"../langwatch-api-dashboards.js\";\n\nexport async function handleDeleteDashboard(params: { id: string }): Promise<string> {\n const result = await apiDeleteDashboard(params.id);\n\n return `Dashboard deleted successfully!\\n\\n**Name**: ${result.name}\\n**ID**: ${result.id}`;\n}\n"],"mappings":";;;;;;;AAEA,eAAsB,sBAAsB,QAAyC;AACnF,QAAM,SAAS,MAAM,gBAAmB,OAAO,EAAE;AAEjD,SAAO;AAAA;AAAA,YAAgD,OAAO,IAAI;AAAA,UAAa,OAAO,EAAE;AAC1F;","names":[]}
@@ -0,0 +1,20 @@
1
+ import {
2
+ deleteDataset
3
+ } from "./chunk-WQG2DFHX.js";
4
+ import "./chunk-2WPLXEKF.js";
5
+ import "./chunk-BWWY5KEF.js";
6
+
7
+ // src/tools/delete-dataset.ts
8
+ async function handleDeleteDataset(params) {
9
+ await deleteDataset(params.slugOrId);
10
+ const lines = [];
11
+ lines.push("Dataset deleted successfully!\n");
12
+ lines.push(
13
+ "> The dataset has been archived and will no longer appear in listings."
14
+ );
15
+ return lines.join("\n");
16
+ }
17
+ export {
18
+ handleDeleteDataset
19
+ };
20
+ //# sourceMappingURL=delete-dataset-RTTTWP4D.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/delete-dataset.ts"],"sourcesContent":["import { deleteDataset as apiDeleteDataset } from \"../langwatch-api-datasets.js\";\n\n/**\n * Handles the platform_delete_dataset MCP tool invocation.\n *\n * Archives (soft-deletes) a dataset and returns confirmation.\n */\nexport async function handleDeleteDataset(params: {\n slugOrId: string;\n}): Promise<string> {\n await apiDeleteDataset(params.slugOrId);\n\n const lines: string[] = [];\n lines.push(\"Dataset deleted successfully!\\n\");\n lines.push(\n \"> The dataset has been archived and will no longer appear in listings.\",\n );\n\n return lines.join(\"\\n\");\n}\n"],"mappings":";;;;;;;AAOA,eAAsB,oBAAoB,QAEtB;AAClB,QAAM,cAAiB,OAAO,QAAQ;AAEtC,QAAM,QAAkB,CAAC;AACzB,QAAM,KAAK,iCAAiC;AAC5C,QAAM;AAAA,IACJ;AAAA,EACF;AAEA,SAAO,MAAM,KAAK,IAAI;AACxB;","names":[]}
@@ -0,0 +1,21 @@
1
+ import {
2
+ deleteDatasetRecords
3
+ } from "./chunk-WQG2DFHX.js";
4
+ import "./chunk-2WPLXEKF.js";
5
+ import "./chunk-BWWY5KEF.js";
6
+
7
+ // src/tools/delete-dataset-records.ts
8
+ async function handleDeleteDatasetRecords(params) {
9
+ const result = await deleteDatasetRecords(params);
10
+ const lines = [];
11
+ lines.push(`${result.deletedCount} record(s) deleted successfully!
12
+ `);
13
+ lines.push(
14
+ "> Use `platform_get_dataset` to see the updated dataset."
15
+ );
16
+ return lines.join("\n");
17
+ }
18
+ export {
19
+ handleDeleteDatasetRecords
20
+ };
21
+ //# sourceMappingURL=delete-dataset-records-KNQTIPQK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/delete-dataset-records.ts"],"sourcesContent":["import { deleteDatasetRecords as apiDeleteDatasetRecords } from \"../langwatch-api-datasets.js\";\n\n/**\n * Handles the platform_delete_dataset_records MCP tool invocation.\n *\n * Deletes records from a dataset by IDs and returns confirmation\n * with the count of records deleted.\n */\nexport async function handleDeleteDatasetRecords(params: {\n slugOrId: string;\n recordIds: string[];\n}): Promise<string> {\n const result = await apiDeleteDatasetRecords(params);\n\n const lines: string[] = [];\n lines.push(`${result.deletedCount} record(s) deleted successfully!\\n`);\n lines.push(\n \"> Use `platform_get_dataset` to see the updated dataset.\",\n );\n\n return lines.join(\"\\n\");\n}\n"],"mappings":";;;;;;;AAQA,eAAsB,2BAA2B,QAG7B;AAClB,QAAM,SAAS,MAAM,qBAAwB,MAAM;AAEnD,QAAM,QAAkB,CAAC;AACzB,QAAM,KAAK,GAAG,OAAO,YAAY;AAAA,CAAoC;AACrE,QAAM;AAAA,IACJ;AAAA,EACF;AAEA,SAAO,MAAM,KAAK,IAAI;AACxB;","names":[]}
@@ -0,0 +1,15 @@
1
+ import {
2
+ deleteEvaluator
3
+ } from "./chunk-HYMIWO3U.js";
4
+ import "./chunk-2WPLXEKF.js";
5
+ import "./chunk-BWWY5KEF.js";
6
+
7
+ // src/tools/delete-evaluator.ts
8
+ async function handleDeleteEvaluator(params) {
9
+ const result = await deleteEvaluator(params.idOrSlug);
10
+ return `Evaluator ${result.id} has been archived (soft-deleted).`;
11
+ }
12
+ export {
13
+ handleDeleteEvaluator
14
+ };
15
+ //# sourceMappingURL=delete-evaluator-7FVC5WM4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/delete-evaluator.ts"],"sourcesContent":["import { deleteEvaluator as apiDeleteEvaluator } from \"../langwatch-api-evaluators.js\";\n\n/**\n * Handles the platform_delete_evaluator MCP tool invocation.\n */\nexport async function handleDeleteEvaluator(params: {\n idOrSlug: string;\n}): Promise<string> {\n const result = await apiDeleteEvaluator(params.idOrSlug);\n\n return `Evaluator ${result.id} has been archived (soft-deleted).`;\n}\n"],"mappings":";;;;;;;AAKA,eAAsB,sBAAsB,QAExB;AAClB,QAAM,SAAS,MAAM,gBAAmB,OAAO,QAAQ;AAEvD,SAAO,aAAa,OAAO,EAAE;AAC/B;","names":[]}
@@ -0,0 +1,17 @@
1
+ import {
2
+ deletePromptTag
3
+ } from "./chunk-2WPLXEKF.js";
4
+ import "./chunk-BWWY5KEF.js";
5
+
6
+ // src/tools/delete-prompt-tag.ts
7
+ async function handleDeletePromptTag(params) {
8
+ await deletePromptTag(params.tag);
9
+ const lines = [];
10
+ lines.push("Tag deleted successfully!\n");
11
+ lines.push(`**Tag**: ${params.tag}`);
12
+ return lines.join("\n");
13
+ }
14
+ export {
15
+ handleDeletePromptTag
16
+ };
17
+ //# sourceMappingURL=delete-prompt-tag-ZMZUAGFW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/delete-prompt-tag.ts"],"sourcesContent":["import { deletePromptTag as apiDeletePromptTag } from \"../langwatch-api.js\";\n\nexport async function handleDeletePromptTag(params: {\n tag: string;\n}): Promise<string> {\n await apiDeletePromptTag(params.tag);\n\n const lines: string[] = [];\n lines.push(\"Tag deleted successfully!\\n\");\n lines.push(`**Tag**: ${params.tag}`);\n return lines.join(\"\\n\");\n}\n"],"mappings":";;;;;;AAEA,eAAsB,sBAAsB,QAExB;AAClB,QAAM,gBAAmB,OAAO,GAAG;AAEnC,QAAM,QAAkB,CAAC;AACzB,QAAM,KAAK,6BAA6B;AACxC,QAAM,KAAK,YAAY,OAAO,GAAG,EAAE;AACnC,SAAO,MAAM,KAAK,IAAI;AACxB;","names":[]}
@@ -0,0 +1,17 @@
1
+ import {
2
+ deleteWorkflow
3
+ } from "./chunk-ZVS4UKN2.js";
4
+ import "./chunk-2WPLXEKF.js";
5
+ import "./chunk-BWWY5KEF.js";
6
+
7
+ // src/tools/delete-workflow.ts
8
+ async function handleDeleteWorkflow(params) {
9
+ const result = await deleteWorkflow(params.id);
10
+ return `Workflow archived successfully!
11
+
12
+ **ID**: ${result.id}`;
13
+ }
14
+ export {
15
+ handleDeleteWorkflow
16
+ };
17
+ //# sourceMappingURL=delete-workflow-EYQ3T4RQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/delete-workflow.ts"],"sourcesContent":["import { deleteWorkflow as apiDeleteWorkflow } from \"../langwatch-api-workflows.js\";\n\nexport async function handleDeleteWorkflow(params: { id: string }): Promise<string> {\n const result = await apiDeleteWorkflow(params.id);\n\n return `Workflow archived successfully!\\n\\n**ID**: ${result.id}`;\n}\n"],"mappings":";;;;;;;AAEA,eAAsB,qBAAqB,QAAyC;AAClF,QAAM,SAAS,MAAM,eAAkB,OAAO,EAAE;AAEhD,SAAO;AAAA;AAAA,UAA8C,OAAO,EAAE;AAChE;","names":[]}
@@ -0,0 +1,28 @@
1
+ import {
2
+ getAgent
3
+ } from "./chunk-4AUB2BIA.js";
4
+ import "./chunk-2WPLXEKF.js";
5
+ import "./chunk-BWWY5KEF.js";
6
+
7
+ // src/tools/get-agent.ts
8
+ async function handleGetAgent(params) {
9
+ const agent = await getAgent(params.id);
10
+ const lines = [];
11
+ lines.push(`# ${agent.name}
12
+ `);
13
+ lines.push(`**ID**: ${agent.id}`);
14
+ lines.push(`**Type**: ${agent.type}`);
15
+ lines.push(`**Created**: ${agent.createdAt}`);
16
+ lines.push(`**Updated**: ${agent.updatedAt}`);
17
+ if (agent.config && Object.keys(agent.config).length > 0) {
18
+ lines.push("\n## Config\n");
19
+ lines.push("```json");
20
+ lines.push(JSON.stringify(agent.config, null, 2));
21
+ lines.push("```");
22
+ }
23
+ return lines.join("\n");
24
+ }
25
+ export {
26
+ handleGetAgent
27
+ };
28
+ //# sourceMappingURL=get-agent-E3QSTVKG.js.map