@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
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import "./chunk-SAS5OB7F.js";
|
|
2
|
-
|
|
3
|
-
// src/tools/discover-scenario-schema.ts
|
|
4
|
-
function formatScenarioSchema() {
|
|
5
|
-
const lines = [];
|
|
6
|
-
lines.push("# Scenario Schema\n");
|
|
7
|
-
lines.push("## Fields\n");
|
|
8
|
-
lines.push(
|
|
9
|
-
'- **name** (required): A short, descriptive name (e.g., "billing dispute resolution", "password reset with 2FA unavailable")'
|
|
10
|
-
);
|
|
11
|
-
lines.push(
|
|
12
|
-
"- **situation** (required): The context that guides the user simulator \u2014 who the user is, what they want, and any constraints (see Writing a Good Situation below)"
|
|
13
|
-
);
|
|
14
|
-
lines.push(
|
|
15
|
-
"- **criteria** (array of strings): Pass/fail conditions a judge evaluates the agent against (see Writing Good Criteria below)"
|
|
16
|
-
);
|
|
17
|
-
lines.push(
|
|
18
|
-
'- **labels** (array of strings): Tags for organizing scenarios (e.g., "auth", "happy-path", "edge-case")'
|
|
19
|
-
);
|
|
20
|
-
lines.push("\n## Writing a Good Situation\n");
|
|
21
|
-
lines.push(
|
|
22
|
-
"The situation drives the user simulator. Include these elements:"
|
|
23
|
-
);
|
|
24
|
-
lines.push("- **Persona**: Who is the user? (e.g., a stressed small business owner, a confused teenager)");
|
|
25
|
-
lines.push("- **Emotional state**: How are they feeling? (e.g., frustrated, anxious, impatient)");
|
|
26
|
-
lines.push("- **Background/Context**: What happened before this conversation?");
|
|
27
|
-
lines.push("- **Intent**: What do they want to accomplish?");
|
|
28
|
-
lines.push("- **Constraints**: What limitations do they have? (e.g., no phone for 2FA, unfamiliar with technical terms)");
|
|
29
|
-
lines.push("\nExample:");
|
|
30
|
-
lines.push("```");
|
|
31
|
-
lines.push("User is a small business owner stressed about tax deadline.");
|
|
32
|
-
lines.push("They need help categorizing expenses but aren't familiar with");
|
|
33
|
-
lines.push("accounting terms. They appreciate patient explanations and examples.");
|
|
34
|
-
lines.push("They have a spreadsheet of transactions but aren't sure which");
|
|
35
|
-
lines.push("categories apply to their consulting business.");
|
|
36
|
-
lines.push("```");
|
|
37
|
-
lines.push("\n## Writing Good Criteria\n");
|
|
38
|
-
lines.push("Criteria are what the judge uses to pass or fail the agent. Each criterion should be:");
|
|
39
|
-
lines.push('- **Specific and testable** \u2014 not vague like "responds helpfully"');
|
|
40
|
-
lines.push("- **Behavioral** \u2014 describes what the agent should *do*, not how it works internally");
|
|
41
|
-
lines.push("- **Independent** \u2014 each criterion checks one thing");
|
|
42
|
-
lines.push("\nGood criteria patterns:");
|
|
43
|
-
lines.push(`- **Information gathering**: "Agent asks for the user's account number before proceeding"`);
|
|
44
|
-
lines.push('- **Safety/guardrails**: "Agent does not reveal internal system details or error stack traces"');
|
|
45
|
-
lines.push('- **Clarification**: "Agent asks clarifying questions before taking irreversible action"');
|
|
46
|
-
lines.push('- **Tone**: "Agent maintains a professional and empathetic tone throughout"');
|
|
47
|
-
lines.push('- **Completeness**: "Agent confirms the user understands the solution before ending"');
|
|
48
|
-
lines.push('- **Domain-specific**: "Agent recommends releasing a wild frog rather than keeping it as a pet"');
|
|
49
|
-
lines.push("\nAvoid vague criteria like:");
|
|
50
|
-
lines.push('- "Responds correctly" \u2014 correct how?');
|
|
51
|
-
lines.push('- "Is helpful" \u2014 helpful in what way?');
|
|
52
|
-
lines.push('- "Works well" \u2014 not testable');
|
|
53
|
-
lines.push("\n## Target Types\n");
|
|
54
|
-
lines.push("Scenarios can target different execution backends:");
|
|
55
|
-
lines.push("- **prompt**: Test a prompt template with variable substitution");
|
|
56
|
-
lines.push("- **http**: Test an HTTP endpoint (e.g., a deployed agent API)");
|
|
57
|
-
lines.push("- **code**: Test a code function directly");
|
|
58
|
-
lines.push("\n## Tips\n");
|
|
59
|
-
lines.push("- Start simple, then layer complexity (add constraints, edge cases)");
|
|
60
|
-
lines.push("- Test edge cases: user changes their mind, gives ambiguous input, makes mistakes");
|
|
61
|
-
lines.push("- Use `fetch_scenario_docs` for the full authoring guide and advanced patterns");
|
|
62
|
-
return lines.join("\n");
|
|
63
|
-
}
|
|
64
|
-
export {
|
|
65
|
-
formatScenarioSchema
|
|
66
|
-
};
|
|
67
|
-
//# sourceMappingURL=discover-scenario-schema-FE64QK2D.js.map
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getAgent
|
|
3
|
-
} from "./chunk-TOXJQDIZ.js";
|
|
4
|
-
import "./chunk-A2LEVYQ5.js";
|
|
5
|
-
import "./chunk-WT4PO4A3.js";
|
|
6
|
-
import "./chunk-SAS5OB7F.js";
|
|
7
|
-
|
|
8
|
-
// src/tools/get-agent.ts
|
|
9
|
-
async function handleGetAgent(params) {
|
|
10
|
-
const agent = await getAgent(params.id);
|
|
11
|
-
const lines = [];
|
|
12
|
-
lines.push(`# ${agent.name}
|
|
13
|
-
`);
|
|
14
|
-
lines.push(`**ID**: ${agent.id}`);
|
|
15
|
-
lines.push(`**Type**: ${agent.type}`);
|
|
16
|
-
lines.push(`**Created**: ${agent.createdAt}`);
|
|
17
|
-
lines.push(`**Updated**: ${agent.updatedAt}`);
|
|
18
|
-
if (agent.config && Object.keys(agent.config).length > 0) {
|
|
19
|
-
lines.push("\n## Config\n");
|
|
20
|
-
lines.push("```json");
|
|
21
|
-
lines.push(JSON.stringify(agent.config, null, 2));
|
|
22
|
-
lines.push("```");
|
|
23
|
-
}
|
|
24
|
-
return lines.join("\n");
|
|
25
|
-
}
|
|
26
|
-
export {
|
|
27
|
-
handleGetAgent
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=get-agent-Y7MWZ65F.js.map
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
parseRelativeDate
|
|
3
|
-
} from "./chunk-ZXKLPC2E.js";
|
|
4
|
-
import {
|
|
5
|
-
getAnalyticsTimeseries
|
|
6
|
-
} from "./chunk-A2LEVYQ5.js";
|
|
7
|
-
import "./chunk-WT4PO4A3.js";
|
|
8
|
-
import "./chunk-SAS5OB7F.js";
|
|
9
|
-
|
|
10
|
-
// src/tools/get-analytics.ts
|
|
11
|
-
function getGroupedData(bucket, groupBy) {
|
|
12
|
-
const data = bucket[groupBy];
|
|
13
|
-
if (typeof data === "object" && data !== null && !Array.isArray(data)) {
|
|
14
|
-
return data;
|
|
15
|
-
}
|
|
16
|
-
return void 0;
|
|
17
|
-
}
|
|
18
|
-
async function handleGetAnalytics(params) {
|
|
19
|
-
const now = Date.now();
|
|
20
|
-
const startDate = params.startDate ? parseRelativeDate(params.startDate) : now - 7 * 864e5;
|
|
21
|
-
const endDate = params.endDate ? parseRelativeDate(params.endDate) : now;
|
|
22
|
-
const [category, name] = params.metric.includes(".") ? params.metric.split(".", 2) : ["metadata", params.metric];
|
|
23
|
-
const metricKey = `${category}.${name}`;
|
|
24
|
-
const aggregation = params.aggregation ?? "avg";
|
|
25
|
-
const result = await getAnalyticsTimeseries({
|
|
26
|
-
series: [{ metric: metricKey, aggregation }],
|
|
27
|
-
startDate,
|
|
28
|
-
endDate,
|
|
29
|
-
timeZone: params.timeZone ?? "UTC",
|
|
30
|
-
groupBy: params.groupBy,
|
|
31
|
-
filters: params.filters
|
|
32
|
-
});
|
|
33
|
-
const lines = [];
|
|
34
|
-
lines.push(`# Analytics: ${metricKey} (${aggregation})
|
|
35
|
-
`);
|
|
36
|
-
lines.push(
|
|
37
|
-
`Period: ${new Date(startDate).toISOString().split("T")[0]} to ${new Date(endDate).toISOString().split("T")[0]}`
|
|
38
|
-
);
|
|
39
|
-
if (params.groupBy) lines.push(`Grouped by: ${params.groupBy}`);
|
|
40
|
-
lines.push("");
|
|
41
|
-
const currentPeriod = result.currentPeriod ?? [];
|
|
42
|
-
if (currentPeriod.length === 0) {
|
|
43
|
-
lines.push("No data available for this period.");
|
|
44
|
-
} else if (params.groupBy && currentPeriod.some((b) => getGroupedData(b, params.groupBy) !== void 0)) {
|
|
45
|
-
lines.push("| Date | Group | Value |");
|
|
46
|
-
lines.push("|------|-------|-------|");
|
|
47
|
-
for (const bucket of currentPeriod) {
|
|
48
|
-
const groups = getGroupedData(bucket, params.groupBy);
|
|
49
|
-
if (!groups) continue;
|
|
50
|
-
for (const [groupKey, metrics] of Object.entries(groups)) {
|
|
51
|
-
const value = Object.values(metrics).find((v) => typeof v === "number") ?? "N/A";
|
|
52
|
-
lines.push(`| ${bucket.date} | ${groupKey} | ${value} |`);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
} else {
|
|
56
|
-
lines.push("| Date | Value |");
|
|
57
|
-
lines.push("|------|-------|");
|
|
58
|
-
for (const bucket of currentPeriod) {
|
|
59
|
-
const value = Object.entries(bucket).find(
|
|
60
|
-
([k]) => k !== "date" && typeof bucket[k] === "number"
|
|
61
|
-
)?.[1] ?? "N/A";
|
|
62
|
-
lines.push(`| ${bucket.date} | ${value} |`);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
lines.push(
|
|
66
|
-
"\n> Tip: Use `discover_schema` to see all available metrics and aggregation types."
|
|
67
|
-
);
|
|
68
|
-
return lines.join("\n");
|
|
69
|
-
}
|
|
70
|
-
export {
|
|
71
|
-
handleGetAnalytics
|
|
72
|
-
};
|
|
73
|
-
//# sourceMappingURL=get-analytics-TETCSOK6.js.map
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
escapeMarkdown
|
|
3
|
-
} from "./chunk-NUFPTHKU.js";
|
|
4
|
-
import {
|
|
5
|
-
getDataset
|
|
6
|
-
} from "./chunk-77BNWQ3U.js";
|
|
7
|
-
import "./chunk-A2LEVYQ5.js";
|
|
8
|
-
import "./chunk-WT4PO4A3.js";
|
|
9
|
-
import "./chunk-SAS5OB7F.js";
|
|
10
|
-
|
|
11
|
-
// src/tools/get-dataset.ts
|
|
12
|
-
function formatDatasetResponse(dataset) {
|
|
13
|
-
const lines = [];
|
|
14
|
-
lines.push(`# Dataset: ${escapeMarkdown(dataset.name)}
|
|
15
|
-
`);
|
|
16
|
-
lines.push(`**Slug**: ${escapeMarkdown(dataset.slug)}`);
|
|
17
|
-
lines.push(`**ID**: ${escapeMarkdown(dataset.id)}`);
|
|
18
|
-
if (Array.isArray(dataset.columnTypes) && dataset.columnTypes.length > 0) {
|
|
19
|
-
lines.push("\n## Columns\n");
|
|
20
|
-
lines.push("| Name | Type |");
|
|
21
|
-
lines.push("|------|------|");
|
|
22
|
-
for (const col of dataset.columnTypes) {
|
|
23
|
-
lines.push(`| ${escapeMarkdown(col.name)} | ${escapeMarkdown(col.type)} |`);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
if (Array.isArray(dataset.data) && dataset.data.length > 0) {
|
|
27
|
-
lines.push(`
|
|
28
|
-
## Records (${dataset.data.length} shown)
|
|
29
|
-
`);
|
|
30
|
-
for (const record of dataset.data) {
|
|
31
|
-
lines.push(`**${escapeMarkdown(record.id)}**: ${escapeMarkdown(JSON.stringify(record.entry))}`);
|
|
32
|
-
}
|
|
33
|
-
} else {
|
|
34
|
-
lines.push("\nNo records in this dataset.");
|
|
35
|
-
}
|
|
36
|
-
return lines.join("\n");
|
|
37
|
-
}
|
|
38
|
-
async function handleGetDataset(params) {
|
|
39
|
-
const dataset = await getDataset(params.slugOrId);
|
|
40
|
-
if (params.format === "json") {
|
|
41
|
-
return JSON.stringify(dataset, null, 2);
|
|
42
|
-
}
|
|
43
|
-
return formatDatasetResponse(dataset);
|
|
44
|
-
}
|
|
45
|
-
export {
|
|
46
|
-
formatDatasetResponse,
|
|
47
|
-
handleGetDataset
|
|
48
|
-
};
|
|
49
|
-
//# sourceMappingURL=get-dataset-RCMU5VAH.js.map
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getPrompt
|
|
3
|
-
} from "./chunk-A2LEVYQ5.js";
|
|
4
|
-
import "./chunk-WT4PO4A3.js";
|
|
5
|
-
import "./chunk-SAS5OB7F.js";
|
|
6
|
-
|
|
7
|
-
// src/tools/get-prompt.ts
|
|
8
|
-
async function handleGetPrompt(params) {
|
|
9
|
-
const prompt = await getPrompt(params.idOrHandle, { version: params.version, tag: params.tag });
|
|
10
|
-
const lines = [];
|
|
11
|
-
lines.push(
|
|
12
|
-
`# Prompt: ${prompt.name || prompt.handle || prompt.id}
|
|
13
|
-
`
|
|
14
|
-
);
|
|
15
|
-
if (prompt.handle) lines.push(`**Handle**: ${prompt.handle}`);
|
|
16
|
-
if (prompt.id) lines.push(`**ID**: ${prompt.id}`);
|
|
17
|
-
if (prompt.latestVersionNumber != null)
|
|
18
|
-
lines.push(`**Latest Version**: v${prompt.latestVersionNumber}`);
|
|
19
|
-
const version = prompt.versions?.[0] ?? prompt;
|
|
20
|
-
if (version.model) lines.push(`**Model**: ${version.model}`);
|
|
21
|
-
const messages = version.messages || prompt.prompt || [];
|
|
22
|
-
if (Array.isArray(messages) && messages.length > 0) {
|
|
23
|
-
lines.push("\n## Messages");
|
|
24
|
-
for (const msg of messages) {
|
|
25
|
-
lines.push(`
|
|
26
|
-
### ${msg.role}`);
|
|
27
|
-
lines.push(msg.content);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
if (prompt.versions && prompt.versions.length > 0) {
|
|
31
|
-
lines.push("\n## Version History");
|
|
32
|
-
for (const v of prompt.versions.slice(0, 10)) {
|
|
33
|
-
const versionNum = v.version ?? "?";
|
|
34
|
-
const commitMsg = v.commitMessage || "No message";
|
|
35
|
-
lines.push(`- **v${versionNum}**: ${commitMsg}`);
|
|
36
|
-
}
|
|
37
|
-
if (prompt.versions.length > 10) {
|
|
38
|
-
lines.push(`... and ${prompt.versions.length - 10} more versions`);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return lines.join("\n");
|
|
42
|
-
}
|
|
43
|
-
export {
|
|
44
|
-
handleGetPrompt
|
|
45
|
-
};
|
|
46
|
-
//# sourceMappingURL=get-prompt-OY5B7TRI.js.map
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getSuite
|
|
3
|
-
} from "./chunk-YZLYHLLI.js";
|
|
4
|
-
import "./chunk-A2LEVYQ5.js";
|
|
5
|
-
import "./chunk-WT4PO4A3.js";
|
|
6
|
-
import "./chunk-SAS5OB7F.js";
|
|
7
|
-
|
|
8
|
-
// src/tools/get-suite.ts
|
|
9
|
-
async function handleGetSuite(params) {
|
|
10
|
-
const suite = await getSuite(params.id);
|
|
11
|
-
if (params.format === "json") {
|
|
12
|
-
return JSON.stringify(suite, null, 2);
|
|
13
|
-
}
|
|
14
|
-
const lines = [];
|
|
15
|
-
lines.push(`# Suite: ${suite.name}
|
|
16
|
-
`);
|
|
17
|
-
lines.push(`**ID**: ${suite.id}`);
|
|
18
|
-
lines.push(`**Slug**: ${suite.slug}`);
|
|
19
|
-
lines.push(`**Description**: ${suite.description ?? "\u2014"}`);
|
|
20
|
-
lines.push(`**Repeat Count**: ${suite.repeatCount}`);
|
|
21
|
-
lines.push(`**Created**: ${suite.createdAt}`);
|
|
22
|
-
lines.push(`**Updated**: ${suite.updatedAt}`);
|
|
23
|
-
if (suite.labels.length > 0) {
|
|
24
|
-
lines.push(`**Labels**: ${suite.labels.join(", ")}`);
|
|
25
|
-
}
|
|
26
|
-
lines.push("\n## Scenarios");
|
|
27
|
-
for (const id of suite.scenarioIds) {
|
|
28
|
-
lines.push(`- ${id}`);
|
|
29
|
-
}
|
|
30
|
-
lines.push("\n## Targets");
|
|
31
|
-
for (const t of suite.targets) {
|
|
32
|
-
lines.push(`- ${t.type}:${t.referenceId}`);
|
|
33
|
-
}
|
|
34
|
-
const totalJobs = suite.scenarioIds.length * suite.targets.length * suite.repeatCount;
|
|
35
|
-
lines.push(`
|
|
36
|
-
**Total jobs per run**: ${totalJobs}`);
|
|
37
|
-
lines.push(
|
|
38
|
-
"\n> Use `platform_run_suite` to trigger a run, or `platform_update_suite` to modify."
|
|
39
|
-
);
|
|
40
|
-
return lines.join("\n");
|
|
41
|
-
}
|
|
42
|
-
export {
|
|
43
|
-
handleGetSuite
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=get-suite-J7JVWO6O.js.map
|
package/dist/index.d.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
makeRequest
|
|
3
|
-
} from "./chunk-A2LEVYQ5.js";
|
|
4
|
-
import "./chunk-WT4PO4A3.js";
|
|
5
|
-
import "./chunk-SAS5OB7F.js";
|
|
6
|
-
|
|
7
|
-
// src/langwatch-api-secrets.ts
|
|
8
|
-
async function listSecrets() {
|
|
9
|
-
return makeRequest("GET", "/api/secrets");
|
|
10
|
-
}
|
|
11
|
-
async function getSecret(id) {
|
|
12
|
-
return makeRequest(
|
|
13
|
-
"GET",
|
|
14
|
-
`/api/secrets/${encodeURIComponent(id)}`
|
|
15
|
-
);
|
|
16
|
-
}
|
|
17
|
-
async function createSecret(data) {
|
|
18
|
-
return makeRequest("POST", "/api/secrets", data);
|
|
19
|
-
}
|
|
20
|
-
async function updateSecret(params) {
|
|
21
|
-
const { id, value } = params;
|
|
22
|
-
return makeRequest(
|
|
23
|
-
"PUT",
|
|
24
|
-
`/api/secrets/${encodeURIComponent(id)}`,
|
|
25
|
-
{ value }
|
|
26
|
-
);
|
|
27
|
-
}
|
|
28
|
-
async function deleteSecret(id) {
|
|
29
|
-
return makeRequest(
|
|
30
|
-
"DELETE",
|
|
31
|
-
`/api/secrets/${encodeURIComponent(id)}`
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
export {
|
|
35
|
-
createSecret,
|
|
36
|
-
deleteSecret,
|
|
37
|
-
getSecret,
|
|
38
|
-
listSecrets,
|
|
39
|
-
updateSecret
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=langwatch-api-secrets-BUBSNCNO.js.map
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
makeRequest
|
|
3
|
-
} from "./chunk-A2LEVYQ5.js";
|
|
4
|
-
import "./chunk-WT4PO4A3.js";
|
|
5
|
-
import "./chunk-SAS5OB7F.js";
|
|
6
|
-
|
|
7
|
-
// src/langwatch-api-triggers.ts
|
|
8
|
-
async function listTriggers() {
|
|
9
|
-
return makeRequest("GET", "/api/triggers");
|
|
10
|
-
}
|
|
11
|
-
async function getTrigger(id) {
|
|
12
|
-
return makeRequest("GET", `/api/triggers/${encodeURIComponent(id)}`);
|
|
13
|
-
}
|
|
14
|
-
async function createTrigger(data) {
|
|
15
|
-
return makeRequest("POST", "/api/triggers", data);
|
|
16
|
-
}
|
|
17
|
-
async function updateTrigger(params) {
|
|
18
|
-
const { id, ...data } = params;
|
|
19
|
-
return makeRequest("PATCH", `/api/triggers/${encodeURIComponent(id)}`, data);
|
|
20
|
-
}
|
|
21
|
-
async function deleteTrigger(id) {
|
|
22
|
-
return makeRequest("DELETE", `/api/triggers/${encodeURIComponent(id)}`);
|
|
23
|
-
}
|
|
24
|
-
export {
|
|
25
|
-
createTrigger,
|
|
26
|
-
deleteTrigger,
|
|
27
|
-
getTrigger,
|
|
28
|
-
listTriggers,
|
|
29
|
-
updateTrigger
|
|
30
|
-
};
|
|
31
|
-
//# sourceMappingURL=langwatch-api-triggers-EDFUCJN6.js.map
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
listAgents
|
|
3
|
-
} from "./chunk-TOXJQDIZ.js";
|
|
4
|
-
import "./chunk-A2LEVYQ5.js";
|
|
5
|
-
import "./chunk-WT4PO4A3.js";
|
|
6
|
-
import "./chunk-SAS5OB7F.js";
|
|
7
|
-
|
|
8
|
-
// src/tools/list-agents.ts
|
|
9
|
-
async function handleListAgents() {
|
|
10
|
-
const result = await listAgents({ limit: 100 });
|
|
11
|
-
const agents = result.data;
|
|
12
|
-
if (!Array.isArray(agents) || agents.length === 0) {
|
|
13
|
-
return "No agents found in this project.\n\n> Tip: Use `platform_create_agent` to create your first agent.";
|
|
14
|
-
}
|
|
15
|
-
const lines = [];
|
|
16
|
-
lines.push(`# Agents (${result.pagination.total} total)
|
|
17
|
-
`);
|
|
18
|
-
for (const a of agents) {
|
|
19
|
-
lines.push(`## ${a.name}`);
|
|
20
|
-
lines.push(`**ID**: ${a.id}`);
|
|
21
|
-
lines.push(`**Type**: ${a.type}`);
|
|
22
|
-
lines.push(`**Updated**: ${a.updatedAt}`);
|
|
23
|
-
lines.push("");
|
|
24
|
-
}
|
|
25
|
-
lines.push(
|
|
26
|
-
"> Use `platform_get_agent` with the ID to see full agent details including config."
|
|
27
|
-
);
|
|
28
|
-
return lines.join("\n");
|
|
29
|
-
}
|
|
30
|
-
export {
|
|
31
|
-
handleListAgents
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=list-agents-KFHKGPXV.js.map
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
listScenarios
|
|
3
|
-
} from "./chunk-J42FWRJ2.js";
|
|
4
|
-
import "./chunk-A2LEVYQ5.js";
|
|
5
|
-
import "./chunk-WT4PO4A3.js";
|
|
6
|
-
import "./chunk-SAS5OB7F.js";
|
|
7
|
-
|
|
8
|
-
// src/tools/list-scenarios.ts
|
|
9
|
-
async function handleListScenarios(params) {
|
|
10
|
-
const scenarios = await listScenarios();
|
|
11
|
-
if (params.format === "json") {
|
|
12
|
-
return JSON.stringify(scenarios, null, 2);
|
|
13
|
-
}
|
|
14
|
-
if (!Array.isArray(scenarios) || scenarios.length === 0) {
|
|
15
|
-
return "No scenarios found in this project.\n\n> Tip: Use `platform_create_scenario` to create your first scenario.";
|
|
16
|
-
}
|
|
17
|
-
const lines = [];
|
|
18
|
-
lines.push(`# Scenarios (${scenarios.length} total)
|
|
19
|
-
`);
|
|
20
|
-
for (const s of scenarios) {
|
|
21
|
-
lines.push(`## ${s.name}`);
|
|
22
|
-
lines.push(`**ID**: ${s.id}`);
|
|
23
|
-
const preview = s.situation && s.situation.length > 60 ? s.situation.slice(0, 60) + "..." : s.situation;
|
|
24
|
-
lines.push(`**Situation**: ${preview}`);
|
|
25
|
-
lines.push(
|
|
26
|
-
`**Criteria**: ${Array.isArray(s.criteria) ? s.criteria.length : 0} criteria`
|
|
27
|
-
);
|
|
28
|
-
if (Array.isArray(s.labels) && s.labels.length > 0) {
|
|
29
|
-
lines.push(`**Labels**: ${s.labels.join(", ")}`);
|
|
30
|
-
}
|
|
31
|
-
lines.push("");
|
|
32
|
-
}
|
|
33
|
-
lines.push(
|
|
34
|
-
"> Use `platform_get_scenario` with the ID to see full scenario details."
|
|
35
|
-
);
|
|
36
|
-
return lines.join("\n");
|
|
37
|
-
}
|
|
38
|
-
export {
|
|
39
|
-
handleListScenarios
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=list-scenarios-F2WYNRIE.js.map
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
listSuites
|
|
3
|
-
} from "./chunk-YZLYHLLI.js";
|
|
4
|
-
import "./chunk-A2LEVYQ5.js";
|
|
5
|
-
import "./chunk-WT4PO4A3.js";
|
|
6
|
-
import "./chunk-SAS5OB7F.js";
|
|
7
|
-
|
|
8
|
-
// src/tools/list-suites.ts
|
|
9
|
-
async function handleListSuites(params) {
|
|
10
|
-
const suites = await listSuites();
|
|
11
|
-
if (params.format === "json") {
|
|
12
|
-
return JSON.stringify(suites, null, 2);
|
|
13
|
-
}
|
|
14
|
-
if (!Array.isArray(suites) || suites.length === 0) {
|
|
15
|
-
return "No suites (run plans) found in this project.\n\n> Tip: Use `platform_create_suite` to create your first suite.";
|
|
16
|
-
}
|
|
17
|
-
const lines = [];
|
|
18
|
-
lines.push(`# Suites / Run Plans (${suites.length} total)
|
|
19
|
-
`);
|
|
20
|
-
for (const s of suites) {
|
|
21
|
-
lines.push(`## ${s.name}`);
|
|
22
|
-
lines.push(`**ID**: ${s.id}`);
|
|
23
|
-
lines.push(`**Slug**: ${s.slug}`);
|
|
24
|
-
lines.push(`**Scenarios**: ${s.scenarioIds.length}`);
|
|
25
|
-
lines.push(`**Targets**: ${s.targets.length} (${s.targets.map((t) => `${t.type}:${t.referenceId}`).join(", ")})`);
|
|
26
|
-
lines.push(`**Repeat**: ${s.repeatCount}x`);
|
|
27
|
-
if (s.description) {
|
|
28
|
-
lines.push(`**Description**: ${s.description}`);
|
|
29
|
-
}
|
|
30
|
-
if (Array.isArray(s.labels) && s.labels.length > 0) {
|
|
31
|
-
lines.push(`**Labels**: ${s.labels.join(", ")}`);
|
|
32
|
-
}
|
|
33
|
-
lines.push("");
|
|
34
|
-
}
|
|
35
|
-
lines.push(
|
|
36
|
-
"> Use `platform_get_suite` with the ID to see full details, or `platform_run_suite` to trigger execution."
|
|
37
|
-
);
|
|
38
|
-
return lines.join("\n");
|
|
39
|
-
}
|
|
40
|
-
export {
|
|
41
|
-
handleListSuites
|
|
42
|
-
};
|
|
43
|
-
//# sourceMappingURL=list-suites-CRY4VWW6.js.map
|