@langwatch/mcp-server 2.0.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitignore +7 -0
- package/.npmignore +41 -0
- package/CHANGELOG.md +280 -200
- package/CONTRIBUTING.md +10 -0
- package/README.md +82 -52
- package/dist/add-dashboard-widget-4ZC5UN73.js +50 -0
- package/dist/add-dashboard-widget-ACC6QYBG.js +49 -0
- package/dist/archive-project-KWFM3I5Z.js +19 -0
- package/dist/{archive-project-4EQGLBJJ.js → archive-project-SPVHXK6A.js} +4 -4
- package/dist/archive-run-plan-65QN3XRX.js +16 -0
- package/dist/archive-run-plan-Z4SYE6BP.js +15 -0
- package/dist/{archive-scenario-W6BXYDZ3.js → archive-scenario-A6QV5LOW.js} +4 -4
- package/dist/archive-scenario-FXEYQNEH.js +19 -0
- package/dist/archive-test-suite-5ADQ3KPQ.js +15 -0
- package/dist/archive-test-suite-NKZDZY3D.js +16 -0
- package/dist/assign-prompt-tag-5IUZXJ2T.js +23 -0
- package/dist/{assign-prompt-tag-VLXUWEKU.js → assign-prompt-tag-HBZLBIFD.js} +8 -4
- package/dist/{chunk-CDYQOY5U.js → chunk-3OCG3QPU.js} +7 -10
- package/dist/chunk-3YLN3ATJ.js +241 -0
- package/dist/chunk-5FNCQRCX.js +91 -0
- package/dist/chunk-6YZUOD34.js +55 -0
- package/dist/{chunk-WVI5CJ6S.js → chunk-7AQLPVFL.js} +2 -2
- package/dist/chunk-7VNSRCXO.js +129 -0
- package/dist/{chunk-7RHG56OH.js → chunk-B4J3PJLX.js} +11 -10
- package/dist/{chunk-ZXKLPC2E.js → chunk-BIIKE3EI.js} +1 -1
- package/dist/{chunk-37SMPMQS.js → chunk-DMM3JQ42.js} +7 -2
- package/dist/{chunk-NUFPTHKU.js → chunk-FOKVY3BK.js} +1 -1
- package/dist/{chunk-WT4PO4A3.js → chunk-H6WGMG2T.js} +10 -7
- package/dist/{chunk-TOXJQDIZ.js → chunk-HGELNIVY.js} +135 -51
- package/dist/{chunk-UJPXFA26.js → chunk-HHMNZAPD.js} +101 -74
- package/dist/{chunk-J42FWRJ2.js → chunk-I7ATIZED.js} +7 -7
- package/dist/{chunk-AQJO2EI5.js → chunk-ILZDO25L.js} +7 -10
- package/dist/{chunk-4QC7SA2L.js → chunk-J7PQKBLD.js} +884 -559
- package/dist/{chunk-YX3A3CFM.js → chunk-JRJPH75H.js} +7 -13
- package/dist/chunk-K2I7Z3LZ.js +28 -0
- package/dist/{chunk-5CCZFUXS.js → chunk-NKMTIHIJ.js} +6 -9
- package/dist/chunk-O7EMWEVJ.js +44 -0
- package/dist/chunk-PTDR56Z3.js +37 -0
- package/dist/chunk-RABYBFX5.js +43 -0
- package/dist/chunk-SUPUUC4W.js +64 -0
- package/dist/{chunk-SFB4MU6H.js → chunk-SXFC3FNH.js} +4 -4
- package/dist/chunk-U24EACC4.js +67 -0
- package/dist/chunk-UNJM3BIL.js +21 -0
- package/dist/{chunk-ZWIL4EFL.js → chunk-UTJCWXPZ.js} +4 -4
- package/dist/chunk-UWLE5T2F.js +312 -0
- package/dist/chunk-VMWJD732.js +57 -0
- package/dist/chunk-XUIJYNRJ.js +15 -0
- package/dist/chunk-Y34DHR5K.js +67 -0
- package/dist/chunk-YCARO42Z.js +516 -0
- package/dist/config-EAKW6F26.js +16 -0
- package/dist/config.cjs +109 -0
- package/dist/config.js +5 -4
- package/dist/{create-agent-7XHO6UIS.js → create-agent-AYZ3LB3V.js} +4 -4
- package/dist/create-agent-S5ZBCEFT.js +23 -0
- package/dist/create-annotation-LHNCLHYP.js +29 -0
- package/dist/{create-annotation-YQXRQC6A.js → create-annotation-VUSXULQK.js} +10 -5
- package/dist/{create-api-key-YUS36KBU.js → create-api-key-NNYKARMG.js} +5 -7
- package/dist/create-api-key-T4KSNPKB.js +24 -0
- package/dist/create-dashboard-DHVFMEU4.js +18 -0
- package/dist/{create-dashboard-4Z5JO5LB.js → create-dashboard-WTKKS5Z6.js} +4 -4
- package/dist/{create-dataset-E6NMSVX7.js → create-dataset-2MC4SD4O.js} +6 -6
- package/dist/create-dataset-LUP5PVDM.js +22 -0
- package/dist/create-dataset-records-NSKBZP3G.js +20 -0
- package/dist/{create-dataset-records-SKHPRD2K.js → create-dataset-records-W4GLN2FV.js} +5 -7
- package/dist/{create-evaluator-JXF5PF33.js → create-evaluator-643G6LXL.js} +4 -4
- package/dist/create-evaluator-HMTYO5SS.js +27 -0
- package/dist/create-mcp-server.cjs +9513 -0
- package/dist/create-mcp-server.js +2647 -5
- package/dist/create-project-6N7PIYRY.js +44 -0
- package/dist/{create-project-CS2CB57Y.js → create-project-KAIC46UY.js} +4 -4
- package/dist/{create-prompt-F5RMX3L3.js → create-prompt-E67LXIYT.js} +5 -7
- package/dist/create-prompt-PKJ7EDRR.js +37 -0
- package/dist/create-prompt-tag-4YO3FSJ3.js +17 -0
- package/dist/{create-prompt-tag-GMRWTEFR.js → create-prompt-tag-OPQUEXWB.js} +3 -3
- package/dist/create-scenario-5PJBMAXO.js +33 -0
- package/dist/{create-scenario-JDR2VB2H.js → create-scenario-UEM77OE7.js} +11 -4
- package/dist/create-test-suite-4IPXVSFQ.js +37 -0
- package/dist/create-test-suite-SZEPVXSE.js +36 -0
- package/dist/create-trigger-5HZSCRAN.js +49 -0
- package/dist/create-trigger-PRELMT6J.js +48 -0
- package/dist/delete-agent-JUIZWAXG.js +18 -0
- package/dist/{delete-agent-O3EEH4S5.js → delete-agent-QMEK3XHK.js} +4 -4
- package/dist/delete-annotation-HY3O2OGR.js +17 -0
- package/dist/{delete-annotation-XP6FQM7A.js → delete-annotation-VKIQWUYW.js} +4 -4
- package/dist/delete-dashboard-76N66XXL.js +18 -0
- package/dist/{delete-dashboard-RFUNYCNP.js → delete-dashboard-JVIVHNJM.js} +4 -4
- package/dist/delete-dataset-HQCR66MG.js +18 -0
- package/dist/{delete-dataset-3MJFRDLP.js → delete-dataset-WKRUW4FP.js} +5 -7
- package/dist/{delete-dataset-records-WPMU5GL5.js → delete-dataset-records-C2IQFFVQ.js} +5 -7
- package/dist/delete-dataset-records-SDUHQLLM.js +19 -0
- package/dist/delete-evaluator-4SNSCLEE.js +16 -0
- package/dist/delete-evaluator-QP3QHTLN.js +15 -0
- package/dist/delete-prompt-tag-NZ4JQMYG.js +17 -0
- package/dist/{delete-prompt-tag-KNMZVSPB.js → delete-prompt-tag-YYQ4VMAD.js} +3 -3
- package/dist/{delete-workflow-3NUXO46U.js → delete-workflow-5J46T73T.js} +4 -4
- package/dist/delete-workflow-JSWABL5F.js +17 -0
- package/dist/discover-evaluator-schema-UHWA5HVL.js +120 -0
- package/dist/discover-evaluator-schema-XKCLLCB3.js +118 -0
- package/dist/discover-scenario-schema-NOJY6S7E.js +137 -0
- package/dist/discover-scenario-schema-OOFIQKOG.js +139 -0
- package/dist/{discover-schema-L6QDPON3.js → discover-schema-55YJBFGQ.js} +181 -186
- package/dist/discover-schema-A33SLMXW.js +442 -0
- package/dist/get-agent-LJQX7OF4.js +69 -0
- package/dist/get-agent-OTIYUFZA.js +70 -0
- package/dist/get-analytics-DCS72353.js +80 -0
- package/dist/get-analytics-IQZKJHLW.js +79 -0
- package/dist/get-dashboard-5NYJEIX2.js +29 -0
- package/dist/{get-dashboard-KHBEGZGL.js → get-dashboard-QMTYDQAZ.js} +4 -4
- package/dist/get-dataset-ALSP7RTX.js +64 -0
- package/dist/get-dataset-X4B5JDG2.js +63 -0
- package/dist/{get-evaluator-ADMKVWYZ.js → get-evaluator-ISMC4LLI.js} +4 -4
- package/dist/get-evaluator-XEUZGZCH.js +47 -0
- package/dist/{get-project-RAK7URQJ.js → get-project-5VKROSDH.js} +4 -4
- package/dist/get-project-RM6FRCBK.js +26 -0
- package/dist/get-prompt-OWXJZHQQ.js +95 -0
- package/dist/get-prompt-W52DY36E.js +94 -0
- package/dist/get-run-plan-BE3M2AUX.js +59 -0
- package/dist/get-run-plan-RUXQ6PAX.js +58 -0
- package/dist/get-scenario-RNM7BAX2.js +37 -0
- package/dist/{get-scenario-ZTAJJL5T.js → get-scenario-YM4ODWW6.js} +8 -4
- package/dist/get-simulation-run-6GIATQE5.js +69 -0
- package/dist/{get-simulation-run-T2ZQWYH2.js → get-simulation-run-LCFSMPGQ.js} +33 -20
- package/dist/get-test-suite-GC2O7YH6.js +49 -0
- package/dist/get-test-suite-P5LJ6VLF.js +48 -0
- package/dist/get-trace-KBRVV4NN.js +45 -0
- package/dist/{get-trace-K7U234Q4.js → get-trace-SEF3FMR5.js} +11 -13
- package/dist/get-workflow-7PVED7JE.js +25 -0
- package/dist/{get-workflow-L5L2PSK3.js → get-workflow-YXULW4GC.js} +4 -4
- package/dist/{http-security-EU3CHTY7.js → http-security-DNLBNQZL.js} +2 -2
- package/dist/{http-server-YXHFPPGA.js → http-server-IR4QOS43.js} +4071 -342
- package/dist/index.js +60221 -38077
- package/dist/langwatch-api-annotations-6SA4OB4C.js +17 -0
- package/dist/{langwatch-api-annotations-FDAS6NQ7.js → langwatch-api-annotations-TBHLCQ5R.js} +4 -4
- package/dist/langwatch-api-dashboards-6EO2VVZW.js +17 -0
- package/dist/{langwatch-api-dashboards-JTVCS7ZJ.js → langwatch-api-dashboards-NHU5BZD7.js} +4 -4
- package/dist/langwatch-api-monitors-CBF3FGIM.js +47 -0
- package/dist/{langwatch-api-monitors-3J7UIQME.js → langwatch-api-monitors-YNWA2M5Y.js} +11 -16
- package/dist/langwatch-api-secrets-ADTOJELP.js +56 -0
- package/dist/langwatch-api-secrets-RNFO4LF2.js +55 -0
- package/dist/langwatch-api-triggers-KQDQC6L5.js +22 -0
- package/dist/langwatch-api-triggers-QS7HDIVW.js +23 -0
- package/dist/{langwatch-api-workflows-NBJX5KOG.js → langwatch-api-workflows-OKC4FXIF.js} +4 -4
- package/dist/langwatch-api-workflows-XGJE6SR5.js +15 -0
- package/dist/list-agents-HVYWEQMI.js +43 -0
- package/dist/list-agents-RBAOCF53.js +42 -0
- package/dist/list-annotations-HJH4NBLD.js +38 -0
- package/dist/{list-annotations-ZTVP4EEL.js → list-annotations-J4UAHSUN.js} +10 -5
- package/dist/{list-api-keys-CWD4UQT5.js → list-api-keys-7UTJRZDG.js} +10 -5
- package/dist/list-api-keys-A2PMV435.js +42 -0
- package/dist/list-dashboard-boards-OPWROHMG.js +33 -0
- package/dist/list-dashboard-boards-U2GJ7GC5.js +34 -0
- package/dist/{list-dashboards-PWG6P6KR.js → list-dashboards-ROSYFLDQ.js} +4 -4
- package/dist/list-dashboards-RQ635ZU7.js +32 -0
- package/dist/{list-dataset-records-IOE7LQXS.js → list-dataset-records-M5TKA6LK.js} +14 -10
- package/dist/list-dataset-records-WFM7F33C.js +43 -0
- package/dist/{list-datasets-ZT4JYUDT.js → list-datasets-B5X4P7BQ.js} +9 -13
- package/dist/list-datasets-THUKQHPX.js +56 -0
- package/dist/{list-evaluators-SJHC7VBH.js → list-evaluators-MYH2OVCI.js} +5 -7
- package/dist/list-evaluators-NLVWF6K7.js +32 -0
- package/dist/{list-model-providers-PPD2WPD2.js → list-model-providers-3JUGP4YI.js} +4 -4
- package/dist/list-model-providers-H3XKORFO.js +35 -0
- package/dist/{list-projects-K7QAIX2I.js → list-projects-6EJ5YYEW.js} +5 -7
- package/dist/list-projects-YNNSRMLC.js +40 -0
- package/dist/{list-prompt-tags-FOO6TNHB.js → list-prompt-tags-NVFQO6WX.js} +3 -3
- package/dist/list-prompt-tags-XUQTTAH4.js +23 -0
- package/dist/{list-prompts-SC2HAUFG.js → list-prompts-HSIMMHTF.js} +4 -6
- package/dist/list-prompts-IRI6AIXO.js +30 -0
- package/dist/list-run-plans-PX2XI6EK.js +46 -0
- package/dist/list-run-plans-QALLCN2K.js +45 -0
- package/dist/list-scenarios-QZRPVHS4.js +46 -0
- package/dist/list-scenarios-SSJQEMJP.js +45 -0
- package/dist/list-simulation-runs-KNOLGMDV.js +53 -0
- package/dist/{list-simulation-runs-KF5THG5H.js → list-simulation-runs-OEADLLQR.js} +19 -9
- package/dist/list-test-suites-ANAQBLDG.js +34 -0
- package/dist/list-test-suites-N4WVLBKK.js +35 -0
- package/dist/list-trigger-fires-JV3WFYYG.js +19 -0
- package/dist/list-trigger-fires-WTW4DVIW.js +20 -0
- package/dist/list-triggers-SQNIG35Q.js +45 -0
- package/dist/list-triggers-V4Y356AK.js +46 -0
- package/dist/{list-workflows-QSJWURCK.js → list-workflows-IMSX7SXU.js} +5 -7
- package/dist/list-workflows-ZHTX5LCL.js +33 -0
- package/dist/{rename-prompt-tag-EKWU5QF3.js → rename-prompt-tag-IQI7MHOI.js} +3 -3
- package/dist/rename-prompt-tag-PA2BRIE6.js +18 -0
- package/dist/rename-test-suite-4J7UX5S2.js +21 -0
- package/dist/rename-test-suite-NNVLMLKY.js +20 -0
- package/dist/report-issue-AS34ZMJF.js +898 -0
- package/dist/report-issue-DCZFLGDO.js +899 -0
- package/dist/rerun-run-plan-TG2V4WM4.js +22 -0
- package/dist/rerun-run-plan-ZI5OY3VA.js +21 -0
- package/dist/revoke-api-key-3J3ZA4UB.js +15 -0
- package/dist/{revoke-api-key-FTRTZMOF.js → revoke-api-key-SFMEFWJC.js} +4 -4
- package/dist/run-agent-W4VJP72Z.js +75 -0
- package/dist/run-agent-YNV6ZHW4.js +74 -0
- package/dist/run-plan-6C77GWG4.js +38 -0
- package/dist/run-plan-PAARQSI4.js +39 -0
- package/dist/run-query-KJDH544C.js +47 -0
- package/dist/run-query-T4QW2Z5O.js +46 -0
- package/dist/run-test-suite-SQJELEZX.js +26 -0
- package/dist/run-test-suite-STB6NUJM.js +25 -0
- package/dist/{run-workflow-QPXC627O.js → run-workflow-D6PQNBI6.js} +4 -4
- package/dist/{run-agent-6SM4XNA7.js → run-workflow-SP32SO5M.js} +10 -11
- package/dist/search-traces-HCBGOG6R.js +170 -0
- package/dist/search-traces-HSTQ6WTQ.js +171 -0
- package/dist/{set-model-provider-3WKT63ZN.js → set-model-provider-GF7NXUJA.js} +4 -4
- package/dist/set-model-provider-KDQ7C4EZ.js +33 -0
- package/dist/{update-agent-SMAEHLXH.js → update-agent-DWG43T2P.js} +4 -4
- package/dist/update-agent-MXNOBS4H.js +20 -0
- package/dist/update-dashboard-widget-CJKJLCDY.js +71 -0
- package/dist/update-dashboard-widget-CYQDS2NR.js +70 -0
- package/dist/update-dataset-DQH3OHOU.js +22 -0
- package/dist/{update-dataset-BDUK7TUO.js → update-dataset-SQZ6T4WX.js} +6 -6
- package/dist/{update-dataset-record-4ZSDRBSW.js → update-dataset-record-3AT4IPBC.js} +4 -4
- package/dist/update-dataset-record-7PLDGTMR.js +19 -0
- package/dist/update-evaluator-4LFTKFPT.js +24 -0
- package/dist/{update-evaluator-LS6TIBY7.js → update-evaluator-IGTX6PX4.js} +4 -4
- package/dist/{update-project-LKVYXENH.js → update-project-PLJIOZS6.js} +4 -4
- package/dist/update-project-QVHSJRUP.js +24 -0
- package/dist/update-prompt-GDKRYJI3.js +140 -0
- package/dist/update-prompt-MY263DYF.js +141 -0
- package/dist/update-scenario-7KA3JDXA.js +34 -0
- package/dist/{update-scenario-NEXCAQI7.js → update-scenario-MOHRQKAQ.js} +11 -4
- package/package.json +39 -44
- package/pyproject.toml +8 -8
- package/src/config.d.ts +4 -0
- package/src/config.ts +20 -29
- package/src/create-mcp-server.ts +1021 -596
- package/src/documentation-fetch.ts +21 -20
- package/src/http-security.ts +166 -135
- package/src/http-server.ts +189 -224
- package/src/index.ts +14 -16
- package/src/langwatch-api-agents.ts +202 -21
- package/src/langwatch-api-annotations.ts +11 -12
- package/src/langwatch-api-api-keys.ts +8 -9
- package/src/langwatch-api-boards.ts +46 -0
- package/src/langwatch-api-dashboard-widgets.ts +112 -0
- package/src/langwatch-api-dashboards.ts +13 -10
- package/src/langwatch-api-datasets.ts +98 -32
- package/src/langwatch-api-evaluators.ts +13 -19
- package/src/langwatch-api-model-providers.ts +4 -4
- package/src/langwatch-api-monitors.ts +14 -18
- package/src/langwatch-api-projects.ts +27 -9
- package/src/langwatch-api-query.ts +114 -0
- package/src/langwatch-api-run-plans.ts +140 -0
- package/src/langwatch-api-scenarios.ts +17 -10
- package/src/langwatch-api-secrets.ts +31 -24
- package/src/langwatch-api-simulation-runs.ts +10 -7
- package/src/langwatch-api-test-suites.ts +116 -0
- package/src/langwatch-api-triggers.ts +96 -34
- package/src/langwatch-api-workflows.ts +9 -9
- package/src/langwatch-api.ts +143 -109
- package/src/public-http-request.ts +21 -12
- package/src/schemas/analytics-metrics.ts +3 -15
- package/src/schemas/create-dataset.ts +3 -4
- package/src/schemas/run-plan.ts +76 -0
- package/src/schemas/suite-fields.ts +132 -0
- package/src/schemas/triggers.ts +365 -0
- package/src/tools/add-dashboard-widget.ts +63 -0
- package/src/tools/archive-project.ts +2 -4
- package/src/tools/archive-run-plan.ts +10 -0
- package/src/tools/archive-scenario.ts +2 -4
- package/src/tools/archive-test-suite.ts +10 -0
- package/src/tools/assign-prompt-tag.ts +6 -2
- package/src/tools/create-agent.ts +1 -1
- package/src/tools/create-annotation.ts +7 -2
- package/src/tools/create-api-key.ts +4 -6
- package/src/tools/create-dashboard.ts +1 -1
- package/src/tools/create-dataset-records.ts +4 -8
- package/src/tools/create-dataset.ts +5 -7
- package/src/tools/create-evaluator.ts +3 -5
- package/src/tools/create-project.ts +2 -2
- package/src/tools/create-prompt-tag.ts +2 -4
- package/src/tools/create-prompt.ts +9 -18
- package/src/tools/create-scenario.ts +11 -5
- package/src/tools/create-test-suite.ts +38 -0
- package/src/tools/create-trigger.ts +55 -0
- package/src/tools/dashboard-exists.ts +25 -0
- package/src/tools/dashboard-widget-queries.ts +32 -0
- package/src/tools/delete-agent.ts +1 -1
- package/src/tools/delete-annotation.ts +1 -1
- package/src/tools/delete-dashboard.ts +1 -1
- package/src/tools/delete-dataset-records.ts +4 -8
- package/src/tools/delete-dataset.ts +3 -7
- package/src/tools/delete-evaluator.ts +4 -6
- package/src/tools/delete-prompt-tag.ts +2 -4
- package/src/tools/delete-workflow.ts +1 -1
- package/src/tools/discover-evaluator-schema.ts +34 -25
- package/src/tools/discover-scenario-schema.ts +86 -12
- package/src/tools/discover-schema.ts +149 -27
- package/src/tools/experiment-run-status.ts +2 -8
- package/src/tools/format-dataset-mutation.ts +5 -10
- package/src/tools/format-run-plan.ts +54 -0
- package/src/tools/format-scenario.ts +12 -0
- package/src/tools/format-suite-details.ts +90 -0
- package/src/tools/get-agent.ts +54 -3
- package/src/tools/get-analytics.ts +52 -46
- package/src/tools/get-dashboard.ts +1 -1
- package/src/tools/get-dataset.ts +34 -16
- package/src/tools/get-evaluator.ts +4 -11
- package/src/tools/get-experiment-results.ts +219 -186
- package/src/tools/get-project.ts +2 -4
- package/src/tools/get-prompt.ts +100 -37
- package/src/tools/get-run-plan.ts +60 -0
- package/src/tools/get-scenario.ts +6 -5
- package/src/tools/get-simulation-run.ts +32 -20
- package/src/tools/get-test-suite.ts +46 -0
- package/src/tools/get-trace.ts +16 -17
- package/src/tools/get-workflow.ts +1 -1
- package/src/tools/list-agents.ts +20 -3
- package/src/tools/list-annotations.ts +8 -5
- package/src/tools/list-api-keys.ts +7 -2
- package/src/tools/list-dashboard-boards.ts +28 -0
- package/src/tools/list-dashboards.ts +1 -1
- package/src/tools/list-dataset-records.ts +8 -6
- package/src/tools/list-datasets.ts +12 -23
- package/src/tools/list-evaluators.ts +4 -8
- package/src/tools/list-experiment-runs.ts +5 -9
- package/src/tools/list-experiments.ts +5 -11
- package/src/tools/list-model-providers.ts +3 -5
- package/src/tools/list-projects.ts +2 -4
- package/src/tools/list-prompt-tags.ts +3 -3
- package/src/tools/list-prompts.ts +4 -8
- package/src/tools/list-run-plans.ts +47 -0
- package/src/tools/list-scenarios.ts +26 -17
- package/src/tools/list-simulation-runs.ts +13 -5
- package/src/tools/list-test-suites.ts +35 -0
- package/src/tools/list-trigger-fires.ts +17 -0
- package/src/tools/list-triggers.ts +39 -0
- package/src/tools/list-workflows.ts +2 -4
- package/src/tools/rename-prompt-tag.ts +1 -1
- package/src/tools/rename-test-suite.ts +15 -0
- package/src/tools/report-issue.ts +5 -9
- package/src/tools/rerun-run-plan.ts +18 -0
- package/src/tools/revoke-api-key.ts +2 -4
- package/src/tools/run-agent.ts +65 -14
- package/src/tools/run-experiment.ts +36 -37
- package/src/tools/run-plan.ts +46 -0
- package/src/tools/run-query.ts +47 -0
- package/src/tools/run-test-suite.ts +27 -0
- package/src/tools/run-workflow.ts +2 -5
- package/src/tools/search-traces.ts +161 -47
- package/src/tools/set-model-provider.ts +4 -6
- package/src/tools/test-agent.ts +18 -0
- package/src/tools/update-agent.ts +1 -1
- package/src/tools/update-dashboard-widget.ts +97 -0
- package/src/tools/update-dataset-record.ts +1 -1
- package/src/tools/update-dataset.ts +5 -7
- package/src/tools/update-evaluator.ts +3 -5
- package/src/tools/update-project.ts +1 -1
- package/src/tools/update-prompt.ts +185 -15
- package/src/tools/update-scenario.ts +11 -5
- package/src/tools/update-test-suite.ts +40 -0
- package/src/utils/date-parsing.ts +1 -1
- package/src/utils/escape-markdown.ts +3 -8
- package/src/utils/format-evaluations.ts +6 -6
- package/src/utils/markdown-table.ts +58 -0
- package/src/utils/trace-id-shape.ts +20 -0
- package/tsconfig.app.json +24 -0
- package/tsconfig.json +19 -12
- package/uv.lock +416 -296
- package/vitest.integration.config.js +10 -0
- package/vitest.scenario.config.js +9 -0
- package/.eslintrc.cjs +0 -36
- package/dist/archive-suite-4T6BSRS7.js +0 -16
- package/dist/chunk-77BNWQ3U.js +0 -86
- package/dist/chunk-A2LEVYQ5.js +0 -217
- package/dist/chunk-TJCXFNDT.js +0 -24
- package/dist/chunk-YZLYHLLI.js +0 -48
- package/dist/config.d.ts +0 -17
- package/dist/create-mcp-server.d.ts +0 -10
- package/dist/create-suite-LZS6QIAF.js +0 -39
- package/dist/delete-evaluator-33SP2JFX.js +0 -16
- package/dist/discover-evaluator-schema-XTAD4X7D.js +0 -2191
- package/dist/discover-scenario-schema-FE64QK2D.js +0 -67
- package/dist/get-agent-Y7MWZ65F.js +0 -29
- package/dist/get-analytics-TETCSOK6.js +0 -73
- package/dist/get-dataset-RCMU5VAH.js +0 -49
- package/dist/get-prompt-OY5B7TRI.js +0 -46
- package/dist/get-suite-J7JVWO6O.js +0 -45
- package/dist/index.d.ts +0 -2
- package/dist/langwatch-api-secrets-BUBSNCNO.js +0 -41
- package/dist/langwatch-api-triggers-EDFUCJN6.js +0 -31
- package/dist/list-agents-KFHKGPXV.js +0 -33
- package/dist/list-scenarios-F2WYNRIE.js +0 -41
- package/dist/list-suites-CRY4VWW6.js +0 -43
- package/dist/report-issue-XYVAPAYJ.js +0 -412
- package/dist/run-suite-NKZCJ2IN.js +0 -30
- package/dist/search-traces-A6HFKPLJ.js +0 -79
- package/dist/update-prompt-ODCRQRN6.js +0 -25
- package/dist/update-suite-SNO3GS7T.js +0 -40
- package/src/__tests__/all-tools.integration.test.ts +0 -1626
- package/src/__tests__/config.unit.test.ts +0 -202
- package/src/__tests__/datasets.integration.test.ts +0 -620
- package/src/__tests__/datasets.unit.test.ts +0 -244
- package/src/__tests__/date-parsing.unit.test.ts +0 -78
- package/src/__tests__/discover-evaluator-schema.unit.test.ts +0 -89
- package/src/__tests__/discover-schema.unit.test.ts +0 -118
- package/src/__tests__/docker.integration.test.ts +0 -318
- package/src/__tests__/documentation-fetch-security.integration.test.ts +0 -182
- package/src/__tests__/evaluator-tools.unit.test.ts +0 -262
- package/src/__tests__/experiment-list-tools.unit.test.ts +0 -157
- package/src/__tests__/experiment-status.unit.test.ts +0 -194
- package/src/__tests__/feature-map-tool-drift.unit.test.ts +0 -93
- package/src/__tests__/get-experiment-results.unit.test.ts +0 -313
- package/src/__tests__/http-security-origin.unit.test.ts +0 -97
- package/src/__tests__/http-security-sessions.unit.test.ts +0 -209
- package/src/__tests__/http-security-verifier.unit.test.ts +0 -248
- package/src/__tests__/http-server-allocation.integration.test.ts +0 -279
- package/src/__tests__/http-server-origin.integration.test.ts +0 -169
- package/src/__tests__/http-server-session-auth.integration.test.ts +0 -341
- package/src/__tests__/http-transport.integration.test.ts +0 -395
- package/src/__tests__/integration.integration.test.ts +0 -288
- package/src/__tests__/langwatch-api.unit.test.ts +0 -661
- package/src/__tests__/model-provider-tools.unit.test.ts +0 -190
- package/src/__tests__/project-api-key-tools.unit.test.ts +0 -451
- package/src/__tests__/public-http-request-security.integration.test.ts +0 -118
- package/src/__tests__/report-issue.integration.test.ts +0 -147
- package/src/__tests__/scenario-tools.integration.test.ts +0 -286
- package/src/__tests__/scenario-tools.unit.test.ts +0 -188
- package/src/__tests__/schemas.unit.test.ts +0 -85
- package/src/__tests__/support/http-server-harness.ts +0 -138
- package/src/__tests__/tools.unit.test.ts +0 -924
- package/src/langwatch-api-suites.ts +0 -118
- package/src/schemas/filter-fields.ts +0 -119
- package/src/schemas/index.ts +0 -4
- package/src/tools/archive-suite.ts +0 -12
- package/src/tools/create-suite.ts +0 -42
- package/src/tools/get-suite.ts +0 -47
- package/src/tools/list-suites.ts +0 -43
- package/src/tools/run-suite.ts +0 -28
- package/src/tools/update-suite.ts +0 -44
package/CONTRIBUTING.md
CHANGED
|
@@ -13,18 +13,21 @@ Thank you for your interest in contributing to the LangWatch MCP Server! This gu
|
|
|
13
13
|
### Getting Started
|
|
14
14
|
|
|
15
15
|
1. **Clone the repository and navigate to the MCP server directory:**
|
|
16
|
+
|
|
16
17
|
```bash
|
|
17
18
|
git clone https://github.com/langwatch/langwatch.git
|
|
18
19
|
cd langwatch/mcp/typescript
|
|
19
20
|
```
|
|
20
21
|
|
|
21
22
|
2. **Install dependencies and build the MCP server:**
|
|
23
|
+
|
|
22
24
|
```bash
|
|
23
25
|
pnpm install
|
|
24
26
|
pnpm run build
|
|
25
27
|
```
|
|
26
28
|
|
|
27
29
|
3. **Configure environment variables:**
|
|
30
|
+
|
|
28
31
|
```bash
|
|
29
32
|
cp .env.example .env
|
|
30
33
|
```
|
|
@@ -43,12 +46,15 @@ Thank you for your interest in contributing to the LangWatch MCP Server! This gu
|
|
|
43
46
|
This project follows the **[Agent Testing Pyramid](https://scenario.langwatch.ai/best-practices/the-agent-testing-pyramid/)** methodology, which provides a structured approach to testing AI agents across three layers:
|
|
44
47
|
|
|
45
48
|
### 1. Unit Tests (Foundation)
|
|
49
|
+
|
|
46
50
|
Traditional software tests for deterministic components like API connections, data pipelines, and error handling.
|
|
47
51
|
|
|
48
52
|
### 2. Evals & Optimization (Middle Layer)
|
|
53
|
+
|
|
49
54
|
Component-level evaluation and optimization of probabilistic AI components, including prompt effectiveness and retrieval accuracy.
|
|
50
55
|
|
|
51
56
|
### 3. Simulations (Peak)
|
|
57
|
+
|
|
52
58
|
End-to-end testing that validates the complete agent behavior in realistic scenarios.
|
|
53
59
|
|
|
54
60
|
## Running Tests
|
|
@@ -63,6 +69,7 @@ code tests/evaluations.ipynb
|
|
|
63
69
|
```
|
|
64
70
|
|
|
65
71
|
The notebook contains lightweight tests that directly test the MCP server with a "mocked" coding agent on single files. These are useful for:
|
|
72
|
+
|
|
66
73
|
- Quick validation of MCP tool functionality
|
|
67
74
|
- Testing individual instrumentation patterns
|
|
68
75
|
- Rapid prototyping of new features
|
|
@@ -76,12 +83,14 @@ pnpm test
|
|
|
76
83
|
```
|
|
77
84
|
|
|
78
85
|
This runs full simulation tests using the Scenario framework, which:
|
|
86
|
+
|
|
79
87
|
- Launches actual Claude Code sessions
|
|
80
88
|
- Uses the MCP server in a real development environment
|
|
81
89
|
- Tests complete workflows on entire codebases
|
|
82
90
|
- Validates that the agent can successfully instrument various AI frameworks (OpenAI, LangChain, DSPy, etc.)
|
|
83
91
|
|
|
84
92
|
When tests run successfully, you'll see:
|
|
93
|
+
|
|
85
94
|
- LangWatch Scenario interface opening
|
|
86
95
|
- Terminal output showing Claude Code using MCP tools
|
|
87
96
|
- Validation of code instrumentation at the end of each scenario
|
|
@@ -89,6 +98,7 @@ When tests run successfully, you'll see:
|
|
|
89
98
|
## Questions?
|
|
90
99
|
|
|
91
100
|
If you encounter any issues or have questions about the setup, please:
|
|
101
|
+
|
|
92
102
|
- Check existing GitHub issues
|
|
93
103
|
- Create a new issue with detailed reproduction steps
|
|
94
104
|
- Join our Discord community for real-time support
|
package/README.md
CHANGED
|
@@ -22,15 +22,15 @@ In stdio mode the API key is required for observability and prompt tools, and do
|
|
|
22
22
|
|
|
23
23
|
## Configuration
|
|
24
24
|
|
|
25
|
-
| Env Var
|
|
26
|
-
|
|
27
|
-
| `LANGWATCH_API_KEY`
|
|
28
|
-
| `LANGWATCH_ENDPOINT`
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
| `LANGWATCH_MCP_HTTP_HOST`
|
|
32
|
-
| `LANGWATCH_MCP_ALLOWED_ORIGINS` | `--allowedOrigin` | Browser origins allowed to call the HTTP server
|
|
33
|
-
| `LANGWATCH_MCP_TRUST_PROXY`
|
|
25
|
+
| Env Var | CLI Arg | Description |
|
|
26
|
+
| ------------------------------- | ----------------- | ---------------------------------------------------------- |
|
|
27
|
+
| `LANGWATCH_API_KEY` | `--apiKey` | API key for authentication |
|
|
28
|
+
| `LANGWATCH_ENDPOINT` | `--endpoint` | API endpoint (default: `https://app.langwatch.ai`) |
|
|
29
|
+
| | `--http` | Serve over HTTP and SSE instead of stdio |
|
|
30
|
+
| | `--port` | HTTP port (default: `3000`) |
|
|
31
|
+
| `LANGWATCH_MCP_HTTP_HOST` | `--host` | HTTP listen address (default: `127.0.0.1`) |
|
|
32
|
+
| `LANGWATCH_MCP_ALLOWED_ORIGINS` | `--allowedOrigin` | Browser origins allowed to call the HTTP server |
|
|
33
|
+
| `LANGWATCH_MCP_TRUST_PROXY` | | Use `X-Forwarded-For` as the rate limit key (default: off) |
|
|
34
34
|
|
|
35
35
|
### HTTP mode
|
|
36
36
|
|
|
@@ -85,67 +85,95 @@ gets in. A spoofable rate limit does not let anyone authenticate.
|
|
|
85
85
|
|
|
86
86
|
### Documentation
|
|
87
87
|
|
|
88
|
-
| Tool
|
|
89
|
-
|
|
90
|
-
| `fetch_langwatch_docs` | Fetch LangWatch integration docs
|
|
91
|
-
| `fetch_scenario_docs`
|
|
88
|
+
| Tool | Description |
|
|
89
|
+
| ---------------------- | --------------------------------- |
|
|
90
|
+
| `fetch_langwatch_docs` | Fetch LangWatch integration docs |
|
|
91
|
+
| `fetch_scenario_docs` | Fetch Scenario agent testing docs |
|
|
92
92
|
|
|
93
93
|
### Observability (requires API key)
|
|
94
94
|
|
|
95
|
-
| Tool
|
|
96
|
-
|
|
95
|
+
| Tool | Description |
|
|
96
|
+
| ----------------- | ------------------------------------------------------------ |
|
|
97
97
|
| `discover_schema` | Explore available filters, metrics, aggregations, and groups |
|
|
98
|
-
| `search_traces`
|
|
99
|
-
| `get_trace`
|
|
100
|
-
| `get_analytics`
|
|
98
|
+
| `search_traces` | Search traces with filters, text query, and date range |
|
|
99
|
+
| `get_trace` | Get full trace details with AI-readable formatting |
|
|
100
|
+
| `get_analytics` | Query timeseries analytics data |
|
|
101
101
|
|
|
102
102
|
### Prompts (requires API key)
|
|
103
103
|
|
|
104
|
-
| Tool
|
|
105
|
-
|
|
106
|
-
| `platform_list_prompts`
|
|
107
|
-
| `platform_get_prompt`
|
|
108
|
-
| `platform_create_prompt` | Create a new prompt
|
|
109
|
-
| `platform_update_prompt` | Update prompt or create new version
|
|
104
|
+
| Tool | Description |
|
|
105
|
+
| ------------------------ | -------------------------------------------- |
|
|
106
|
+
| `platform_list_prompts` | List all prompts |
|
|
107
|
+
| `platform_get_prompt` | Get prompt with messages and version history |
|
|
108
|
+
| `platform_create_prompt` | Create a new prompt |
|
|
109
|
+
| `platform_update_prompt` | Update prompt or create new version |
|
|
110
110
|
|
|
111
111
|
### Datasets (requires API key)
|
|
112
112
|
|
|
113
|
-
| Tool
|
|
114
|
-
|
|
115
|
-
| `platform_list_datasets`
|
|
116
|
-
| `platform_get_dataset`
|
|
117
|
-
| `platform_create_dataset`
|
|
118
|
-
| `platform_update_dataset`
|
|
119
|
-
| `platform_delete_dataset`
|
|
120
|
-
| `platform_create_dataset_records` | Add records to a dataset (max 1000 per call)
|
|
121
|
-
| `platform_update_dataset_record`
|
|
122
|
-
| `platform_delete_dataset_records` | Delete records by IDs (max 1000 per call)
|
|
113
|
+
| Tool | Description |
|
|
114
|
+
| --------------------------------- | ----------------------------------------------------- |
|
|
115
|
+
| `platform_list_datasets` | List all datasets with record counts |
|
|
116
|
+
| `platform_get_dataset` | Get dataset metadata, columns, and record preview |
|
|
117
|
+
| `platform_create_dataset` | Create a new dataset with optional column definitions |
|
|
118
|
+
| `platform_update_dataset` | Update dataset name or column types |
|
|
119
|
+
| `platform_delete_dataset` | Archive a dataset |
|
|
120
|
+
| `platform_create_dataset_records` | Add records to a dataset (max 1000 per call) |
|
|
121
|
+
| `platform_update_dataset_record` | Update a single record |
|
|
122
|
+
| `platform_delete_dataset_records` | Delete records by IDs (max 1000 per call) |
|
|
123
123
|
|
|
124
124
|
### Scenarios (requires API key)
|
|
125
125
|
|
|
126
|
-
| Tool
|
|
127
|
-
|
|
128
|
-
| `platform_list_scenarios`
|
|
129
|
-
| `platform_get_scenario`
|
|
130
|
-
| `platform_create_scenario`
|
|
131
|
-
| `platform_update_scenario`
|
|
132
|
-
| `platform_archive_scenario` | Archive a scenario
|
|
126
|
+
| Tool | Description |
|
|
127
|
+
| --------------------------- | ---------------------------------------------------------- |
|
|
128
|
+
| `platform_list_scenarios` | List all scenarios, or only the ones filed in a test suite |
|
|
129
|
+
| `platform_get_scenario` | Get scenario details |
|
|
130
|
+
| `platform_create_scenario` | Create a new scenario, optionally filed in a test suite |
|
|
131
|
+
| `platform_update_scenario` | Update a scenario, or file it in another test suite |
|
|
132
|
+
| `platform_archive_scenario` | Archive a scenario |
|
|
133
|
+
|
|
134
|
+
### Test suites and run plans (requires API key)
|
|
135
|
+
|
|
136
|
+
A test suite is a folder of scenarios. A run plan is what you run, and its
|
|
137
|
+
name identifies it: running a name that exists replaces that plan's
|
|
138
|
+
configuration, running a new name creates the plan. Running a test suite is
|
|
139
|
+
sugar over a run plan, and creates or joins the plan `<suite name> <target name>`.
|
|
140
|
+
|
|
141
|
+
| Tool | Description |
|
|
142
|
+
| ----------------------------- | -------------------------------------------------- |
|
|
143
|
+
| `platform_run_plan` | Run scenarios against targets, by plan name |
|
|
144
|
+
| `platform_list_run_plans` | List the run plans of the project |
|
|
145
|
+
| `platform_get_run_plan` | Get the full configuration of a run plan |
|
|
146
|
+
| `platform_rerun_run_plan` | Run a plan again with the configuration it holds |
|
|
147
|
+
| `platform_archive_run_plan` | Archive a run plan |
|
|
148
|
+
| `platform_list_test_suites` | List the test suites of the project |
|
|
149
|
+
| `platform_create_test_suite` | Create a test suite |
|
|
150
|
+
| `platform_get_test_suite` | Get a test suite and the scenarios filed in it |
|
|
151
|
+
| `platform_rename_test_suite` | Rename a test suite |
|
|
152
|
+
| `platform_archive_test_suite` | Archive a test suite and the scenarios filed in it |
|
|
153
|
+
| `platform_run_test_suite` | Run every scenario of a test suite against targets |
|
|
154
|
+
|
|
155
|
+
### Simulation runs (requires API key)
|
|
156
|
+
|
|
157
|
+
| Tool | Description |
|
|
158
|
+
| ------------------------------- | --------------------------------------------- |
|
|
159
|
+
| `platform_list_simulation_runs` | List simulation run results |
|
|
160
|
+
| `platform_get_simulation_run` | Get one run with its conversation and verdict |
|
|
133
161
|
|
|
134
162
|
### Evaluators (requires API key)
|
|
135
163
|
|
|
136
|
-
| Tool
|
|
137
|
-
|
|
138
|
-
| `platform_list_evaluators`
|
|
139
|
-
| `platform_get_evaluator`
|
|
164
|
+
| Tool | Description |
|
|
165
|
+
| --------------------------- | ---------------------- |
|
|
166
|
+
| `platform_list_evaluators` | List all evaluators |
|
|
167
|
+
| `platform_get_evaluator` | Get evaluator details |
|
|
140
168
|
| `platform_create_evaluator` | Create a new evaluator |
|
|
141
|
-
| `platform_update_evaluator` | Update an evaluator
|
|
169
|
+
| `platform_update_evaluator` | Update an evaluator |
|
|
142
170
|
|
|
143
171
|
### Model Providers (requires API key)
|
|
144
172
|
|
|
145
|
-
| Tool
|
|
146
|
-
|
|
173
|
+
| Tool | Description |
|
|
174
|
+
| ------------------------------- | ------------------------------- |
|
|
147
175
|
| `platform_list_model_providers` | List configured model providers |
|
|
148
|
-
| `platform_set_model_provider`
|
|
176
|
+
| `platform_set_model_provider` | Configure a model provider |
|
|
149
177
|
|
|
150
178
|
## Output Formats
|
|
151
179
|
|
|
@@ -189,7 +217,7 @@ pnpm build
|
|
|
189
217
|
|
|
190
218
|
```bash
|
|
191
219
|
pnpm test # Run all tests
|
|
192
|
-
pnpm test
|
|
220
|
+
pnpm test # Unit tests only
|
|
193
221
|
```
|
|
194
222
|
|
|
195
223
|
### Local testing
|
|
@@ -203,8 +231,10 @@ Build and point your MCP client to the local dist:
|
|
|
203
231
|
"command": "node",
|
|
204
232
|
"args": [
|
|
205
233
|
"/path/to/mcp-server/dist/index.js",
|
|
206
|
-
"--apiKey",
|
|
207
|
-
"
|
|
234
|
+
"--apiKey",
|
|
235
|
+
"your-api-key",
|
|
236
|
+
"--endpoint",
|
|
237
|
+
"http://localhost:5560"
|
|
208
238
|
]
|
|
209
239
|
}
|
|
210
240
|
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import {
|
|
2
|
+
assertDashboardExists,
|
|
3
|
+
assignDashboardWidgetToDashboard,
|
|
4
|
+
createDashboardWidget,
|
|
5
|
+
deleteDashboardWidget,
|
|
6
|
+
normalizeDashboardWidgetQueries
|
|
7
|
+
} from "./chunk-5FNCQRCX.js";
|
|
8
|
+
import "./chunk-K2I7Z3LZ.js";
|
|
9
|
+
import {
|
|
10
|
+
getCurrentProject
|
|
11
|
+
} from "./chunk-B4J3PJLX.js";
|
|
12
|
+
import "./chunk-UWLE5T2F.js";
|
|
13
|
+
import "./chunk-H6WGMG2T.js";
|
|
14
|
+
import "./chunk-SAS5OB7F.js";
|
|
15
|
+
|
|
16
|
+
// src/tools/add-dashboard-widget.ts
|
|
17
|
+
async function handleAddDashboardWidget(params) {
|
|
18
|
+
const queries = normalizeDashboardWidgetQueries({ queries: params.queries });
|
|
19
|
+
const project = await getCurrentProject();
|
|
20
|
+
await assertDashboardExists({ projectId: project.id, dashboardId: params.dashboardId });
|
|
21
|
+
const widget = await createDashboardWidget({
|
|
22
|
+
projectId: project.id,
|
|
23
|
+
name: params.name,
|
|
24
|
+
code: params.code,
|
|
25
|
+
queries
|
|
26
|
+
});
|
|
27
|
+
try {
|
|
28
|
+
await assignDashboardWidgetToDashboard({
|
|
29
|
+
projectId: project.id,
|
|
30
|
+
widgetId: widget.id,
|
|
31
|
+
dashboardId: params.dashboardId
|
|
32
|
+
});
|
|
33
|
+
} catch (error) {
|
|
34
|
+
await deleteDashboardWidget({
|
|
35
|
+
projectId: project.id,
|
|
36
|
+
widgetId: widget.id
|
|
37
|
+
}).catch(() => {
|
|
38
|
+
});
|
|
39
|
+
throw error;
|
|
40
|
+
}
|
|
41
|
+
return [
|
|
42
|
+
`Widget "${params.name}" created and added to dashboard "${params.dashboardId}".`,
|
|
43
|
+
`**Widget ID**: ${widget.id}`,
|
|
44
|
+
`**Queries**: ${queries.map((q) => q.name).join(", ")}`
|
|
45
|
+
].join("\n");
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
handleAddDashboardWidget
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=add-dashboard-widget-4ZC5UN73.js.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import {
|
|
2
|
+
assertDashboardExists,
|
|
3
|
+
assignDashboardWidgetToDashboard,
|
|
4
|
+
createDashboardWidget,
|
|
5
|
+
deleteDashboardWidget,
|
|
6
|
+
normalizeDashboardWidgetQueries
|
|
7
|
+
} from "./chunk-5FNCQRCX.js";
|
|
8
|
+
import "./chunk-K2I7Z3LZ.js";
|
|
9
|
+
import {
|
|
10
|
+
getCurrentProject
|
|
11
|
+
} from "./chunk-B4J3PJLX.js";
|
|
12
|
+
import "./chunk-UWLE5T2F.js";
|
|
13
|
+
import "./chunk-H6WGMG2T.js";
|
|
14
|
+
|
|
15
|
+
// src/tools/add-dashboard-widget.ts
|
|
16
|
+
async function handleAddDashboardWidget(params) {
|
|
17
|
+
const queries = normalizeDashboardWidgetQueries({ queries: params.queries });
|
|
18
|
+
const project = await getCurrentProject();
|
|
19
|
+
await assertDashboardExists({ projectId: project.id, dashboardId: params.dashboardId });
|
|
20
|
+
const widget = await createDashboardWidget({
|
|
21
|
+
projectId: project.id,
|
|
22
|
+
name: params.name,
|
|
23
|
+
code: params.code,
|
|
24
|
+
queries
|
|
25
|
+
});
|
|
26
|
+
try {
|
|
27
|
+
await assignDashboardWidgetToDashboard({
|
|
28
|
+
projectId: project.id,
|
|
29
|
+
widgetId: widget.id,
|
|
30
|
+
dashboardId: params.dashboardId
|
|
31
|
+
});
|
|
32
|
+
} catch (error) {
|
|
33
|
+
await deleteDashboardWidget({
|
|
34
|
+
projectId: project.id,
|
|
35
|
+
widgetId: widget.id
|
|
36
|
+
}).catch(() => {
|
|
37
|
+
});
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
return [
|
|
41
|
+
`Widget "${params.name}" created and added to dashboard "${params.dashboardId}".`,
|
|
42
|
+
`**Widget ID**: ${widget.id}`,
|
|
43
|
+
`**Queries**: ${queries.map((q) => q.name).join(", ")}`
|
|
44
|
+
].join("\n");
|
|
45
|
+
}
|
|
46
|
+
export {
|
|
47
|
+
handleAddDashboardWidget
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=add-dashboard-widget-ACC6QYBG.js.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
archiveProject
|
|
3
|
+
} from "./chunk-B4J3PJLX.js";
|
|
4
|
+
import "./chunk-UWLE5T2F.js";
|
|
5
|
+
import "./chunk-H6WGMG2T.js";
|
|
6
|
+
|
|
7
|
+
// src/tools/archive-project.ts
|
|
8
|
+
async function handleArchiveProject(params) {
|
|
9
|
+
const result = await archiveProject(params.id);
|
|
10
|
+
return `Project archived successfully.
|
|
11
|
+
|
|
12
|
+
**Name**: ${result.name}
|
|
13
|
+
**ID**: ${result.id}
|
|
14
|
+
**Archived At**: ${result.archivedAt}`;
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
handleArchiveProject
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=archive-project-KWFM3I5Z.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
archiveProject
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-B4J3PJLX.js";
|
|
4
|
+
import "./chunk-UWLE5T2F.js";
|
|
5
|
+
import "./chunk-H6WGMG2T.js";
|
|
6
6
|
import "./chunk-SAS5OB7F.js";
|
|
7
7
|
|
|
8
8
|
// src/tools/archive-project.ts
|
|
@@ -17,4 +17,4 @@ async function handleArchiveProject(params) {
|
|
|
17
17
|
export {
|
|
18
18
|
handleArchiveProject
|
|
19
19
|
};
|
|
20
|
-
//# sourceMappingURL=archive-project-
|
|
20
|
+
//# sourceMappingURL=archive-project-SPVHXK6A.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {
|
|
2
|
+
archiveRunPlan
|
|
3
|
+
} from "./chunk-PTDR56Z3.js";
|
|
4
|
+
import "./chunk-UWLE5T2F.js";
|
|
5
|
+
import "./chunk-H6WGMG2T.js";
|
|
6
|
+
import "./chunk-SAS5OB7F.js";
|
|
7
|
+
|
|
8
|
+
// src/tools/archive-run-plan.ts
|
|
9
|
+
async function handleArchiveRunPlan(params) {
|
|
10
|
+
const result = await archiveRunPlan(params.id);
|
|
11
|
+
return `Run plan ${result.id} is archived. Its past runs stay readable, and the name is free for a new plan.`;
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
handleArchiveRunPlan
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=archive-run-plan-65QN3XRX.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
archiveRunPlan
|
|
3
|
+
} from "./chunk-PTDR56Z3.js";
|
|
4
|
+
import "./chunk-UWLE5T2F.js";
|
|
5
|
+
import "./chunk-H6WGMG2T.js";
|
|
6
|
+
|
|
7
|
+
// src/tools/archive-run-plan.ts
|
|
8
|
+
async function handleArchiveRunPlan(params) {
|
|
9
|
+
const result = await archiveRunPlan(params.id);
|
|
10
|
+
return `Run plan ${result.id} is archived. Its past runs stay readable, and the name is free for a new plan.`;
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
handleArchiveRunPlan
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=archive-run-plan-Z4SYE6BP.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
archiveScenario
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-I7ATIZED.js";
|
|
4
|
+
import "./chunk-UWLE5T2F.js";
|
|
5
|
+
import "./chunk-H6WGMG2T.js";
|
|
6
6
|
import "./chunk-SAS5OB7F.js";
|
|
7
7
|
|
|
8
8
|
// src/tools/archive-scenario.ts
|
|
@@ -17,4 +17,4 @@ async function handleArchiveScenario(params) {
|
|
|
17
17
|
export {
|
|
18
18
|
handleArchiveScenario
|
|
19
19
|
};
|
|
20
|
-
//# sourceMappingURL=archive-scenario-
|
|
20
|
+
//# sourceMappingURL=archive-scenario-A6QV5LOW.js.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
archiveScenario
|
|
3
|
+
} from "./chunk-I7ATIZED.js";
|
|
4
|
+
import "./chunk-UWLE5T2F.js";
|
|
5
|
+
import "./chunk-H6WGMG2T.js";
|
|
6
|
+
|
|
7
|
+
// src/tools/archive-scenario.ts
|
|
8
|
+
async function handleArchiveScenario(params) {
|
|
9
|
+
const result = await archiveScenario(params.scenarioId);
|
|
10
|
+
const lines = [];
|
|
11
|
+
lines.push("Scenario archived successfully!\n");
|
|
12
|
+
lines.push(`**ID**: ${result.id}`);
|
|
13
|
+
lines.push(`**Status**: ${result.archived ? "archived" : "active"}`);
|
|
14
|
+
return lines.join("\n");
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
handleArchiveScenario
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=archive-scenario-FXEYQNEH.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
archiveTestSuite
|
|
3
|
+
} from "./chunk-VMWJD732.js";
|
|
4
|
+
import "./chunk-UWLE5T2F.js";
|
|
5
|
+
import "./chunk-H6WGMG2T.js";
|
|
6
|
+
|
|
7
|
+
// src/tools/archive-test-suite.ts
|
|
8
|
+
async function handleArchiveTestSuite(params) {
|
|
9
|
+
const result = await archiveTestSuite(params.id);
|
|
10
|
+
return `Test suite ${result.id} is archived, and the scenarios filed in it are archived with it.`;
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
handleArchiveTestSuite
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=archive-test-suite-5ADQ3KPQ.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {
|
|
2
|
+
archiveTestSuite
|
|
3
|
+
} from "./chunk-VMWJD732.js";
|
|
4
|
+
import "./chunk-UWLE5T2F.js";
|
|
5
|
+
import "./chunk-H6WGMG2T.js";
|
|
6
|
+
import "./chunk-SAS5OB7F.js";
|
|
7
|
+
|
|
8
|
+
// src/tools/archive-test-suite.ts
|
|
9
|
+
async function handleArchiveTestSuite(params) {
|
|
10
|
+
const result = await archiveTestSuite(params.id);
|
|
11
|
+
return `Test suite ${result.id} is archived, and the scenarios filed in it are archived with it.`;
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
handleArchiveTestSuite
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=archive-test-suite-NKZDZY3D.js.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {
|
|
2
|
+
assignPromptTag
|
|
3
|
+
} from "./chunk-UWLE5T2F.js";
|
|
4
|
+
import "./chunk-H6WGMG2T.js";
|
|
5
|
+
|
|
6
|
+
// src/tools/assign-prompt-tag.ts
|
|
7
|
+
async function handleAssignPromptTag(params) {
|
|
8
|
+
await assignPromptTag({
|
|
9
|
+
idOrHandle: params.idOrHandle,
|
|
10
|
+
tag: params.tag,
|
|
11
|
+
versionId: params.versionId
|
|
12
|
+
});
|
|
13
|
+
const lines = [];
|
|
14
|
+
lines.push("Tag assigned successfully!\n");
|
|
15
|
+
lines.push(`**Prompt**: ${params.idOrHandle}`);
|
|
16
|
+
lines.push(`**Tag**: ${params.tag}`);
|
|
17
|
+
lines.push(`**Version ID**: ${params.versionId}`);
|
|
18
|
+
return lines.join("\n");
|
|
19
|
+
}
|
|
20
|
+
export {
|
|
21
|
+
handleAssignPromptTag
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=assign-prompt-tag-5IUZXJ2T.js.map
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
assignPromptTag
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-UWLE5T2F.js";
|
|
4
|
+
import "./chunk-H6WGMG2T.js";
|
|
5
5
|
import "./chunk-SAS5OB7F.js";
|
|
6
6
|
|
|
7
7
|
// src/tools/assign-prompt-tag.ts
|
|
8
8
|
async function handleAssignPromptTag(params) {
|
|
9
|
-
await assignPromptTag({
|
|
9
|
+
await assignPromptTag({
|
|
10
|
+
idOrHandle: params.idOrHandle,
|
|
11
|
+
tag: params.tag,
|
|
12
|
+
versionId: params.versionId
|
|
13
|
+
});
|
|
10
14
|
const lines = [];
|
|
11
15
|
lines.push("Tag assigned successfully!\n");
|
|
12
16
|
lines.push(`**Prompt**: ${params.idOrHandle}`);
|
|
@@ -17,4 +21,4 @@ async function handleAssignPromptTag(params) {
|
|
|
17
21
|
export {
|
|
18
22
|
handleAssignPromptTag
|
|
19
23
|
};
|
|
20
|
-
//# sourceMappingURL=assign-prompt-tag-
|
|
24
|
+
//# sourceMappingURL=assign-prompt-tag-HBZLBIFD.js.map
|
|
@@ -1,36 +1,33 @@
|
|
|
1
1
|
import {
|
|
2
2
|
makeRequest
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-UWLE5T2F.js";
|
|
4
4
|
|
|
5
5
|
// src/langwatch-api-evaluators.ts
|
|
6
6
|
function getEvaluatorType(evaluator) {
|
|
7
7
|
return evaluator.config?.evaluatorType;
|
|
8
8
|
}
|
|
9
9
|
async function listEvaluators() {
|
|
10
|
-
return makeRequest("GET", "/api/evaluators");
|
|
10
|
+
return makeRequest("GET", "/api/v1/evaluators");
|
|
11
11
|
}
|
|
12
12
|
async function getEvaluator(idOrSlug) {
|
|
13
13
|
return makeRequest(
|
|
14
14
|
"GET",
|
|
15
|
-
`/api/evaluators/${encodeURIComponent(idOrSlug)}`
|
|
15
|
+
`/api/v1/evaluators/${encodeURIComponent(idOrSlug)}`
|
|
16
16
|
);
|
|
17
17
|
}
|
|
18
18
|
async function createEvaluator(data) {
|
|
19
|
-
return makeRequest("POST", "/api/evaluators", data);
|
|
19
|
+
return makeRequest("POST", "/api/v1/evaluators", data);
|
|
20
20
|
}
|
|
21
21
|
async function updateEvaluator(params) {
|
|
22
22
|
const { id, ...data } = params;
|
|
23
23
|
return makeRequest(
|
|
24
24
|
"PUT",
|
|
25
|
-
`/api/evaluators/${encodeURIComponent(id)}`,
|
|
25
|
+
`/api/v1/evaluators/${encodeURIComponent(id)}`,
|
|
26
26
|
data
|
|
27
27
|
);
|
|
28
28
|
}
|
|
29
29
|
async function deleteEvaluator(idOrSlug) {
|
|
30
|
-
return makeRequest(
|
|
31
|
-
"DELETE",
|
|
32
|
-
`/api/evaluators/${encodeURIComponent(idOrSlug)}`
|
|
33
|
-
);
|
|
30
|
+
return makeRequest("DELETE", `/api/v1/evaluators/${encodeURIComponent(idOrSlug)}`);
|
|
34
31
|
}
|
|
35
32
|
|
|
36
33
|
export {
|
|
@@ -41,4 +38,4 @@ export {
|
|
|
41
38
|
updateEvaluator,
|
|
42
39
|
deleteEvaluator
|
|
43
40
|
};
|
|
44
|
-
//# sourceMappingURL=chunk-
|
|
41
|
+
//# sourceMappingURL=chunk-3OCG3QPU.js.map
|