@langwatch/mcp-server 2.1.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 +192 -201
- package/CONTRIBUTING.md +10 -0
- package/README.md +70 -68
- 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-W3IKI7UL.js → archive-project-SPVHXK6A.js} +4 -4
- package/dist/{archive-run-plan-474OKHHU.js → archive-run-plan-65QN3XRX.js} +4 -4
- package/dist/archive-run-plan-Z4SYE6BP.js +15 -0
- package/dist/{archive-scenario-V5UNYK26.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-O7FLDMXK.js → archive-test-suite-NKZDZY3D.js} +4 -4
- package/dist/assign-prompt-tag-5IUZXJ2T.js +23 -0
- package/dist/{assign-prompt-tag-Q46WRB6P.js → assign-prompt-tag-HBZLBIFD.js} +8 -4
- package/dist/{chunk-OJLYYJWI.js → chunk-3OCG3QPU.js} +7 -10
- package/dist/chunk-3YLN3ATJ.js +241 -0
- package/dist/chunk-5FNCQRCX.js +91 -0
- package/dist/{chunk-UF6XIGYR.js → chunk-6YZUOD34.js} +2 -5
- package/dist/{chunk-WVI5CJ6S.js → chunk-7AQLPVFL.js} +2 -2
- package/dist/chunk-7VNSRCXO.js +129 -0
- package/dist/{chunk-G4ZAZTZW.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-EYXMLE5X.js → chunk-HGELNIVY.js} +56 -47
- package/dist/{chunk-UJPXFA26.js → chunk-HHMNZAPD.js} +101 -74
- package/dist/{chunk-RVAE2MEA.js → chunk-I7ATIZED.js} +7 -7
- package/dist/{chunk-S4GVX36W.js → chunk-ILZDO25L.js} +7 -10
- package/dist/{chunk-QRO35SOM.js → chunk-J7PQKBLD.js} +652 -528
- package/dist/{chunk-SR6QPRIE.js → chunk-JRJPH75H.js} +7 -13
- package/dist/chunk-K2I7Z3LZ.js +28 -0
- package/dist/{chunk-UFOYFYI7.js → chunk-NKMTIHIJ.js} +6 -9
- package/dist/{chunk-HV4DWKBI.js → chunk-O7EMWEVJ.js} +2 -4
- package/dist/{chunk-56OGTS24.js → chunk-PTDR56Z3.js} +4 -11
- package/dist/{chunk-JR6DJZOU.js → chunk-RABYBFX5.js} +4 -10
- package/dist/chunk-SUPUUC4W.js +64 -0
- package/dist/{chunk-JTQJRNFJ.js → chunk-SXFC3FNH.js} +4 -4
- package/dist/{chunk-CKNAH5TG.js → chunk-U24EACC4.js} +3 -10
- package/dist/chunk-UNJM3BIL.js +21 -0
- package/dist/{chunk-QAMP3CGR.js → chunk-UTJCWXPZ.js} +4 -4
- package/dist/chunk-UWLE5T2F.js +312 -0
- package/dist/{chunk-6DJDEXET.js → chunk-VMWJD732.js} +6 -12
- package/dist/{chunk-7E4FZIYJ.js → chunk-XUIJYNRJ.js} +1 -1
- 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-JFJ2K6X3.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-EUXXQ6NS.js → create-annotation-VUSXULQK.js} +10 -5
- package/dist/{create-api-key-BGBB76JX.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-Z76AIPLS.js → create-dashboard-WTKKS5Z6.js} +4 -4
- package/dist/{create-dataset-FD5VAXU4.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-WQUXXOHI.js → create-dataset-records-W4GLN2FV.js} +5 -7
- package/dist/{create-evaluator-6NV33Z52.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 -10
- package/dist/create-project-6N7PIYRY.js +44 -0
- package/dist/{create-project-ZQ7TFIO2.js → create-project-KAIC46UY.js} +4 -4
- package/dist/{create-prompt-BS6QRCUU.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-FCQ5ELSQ.js → create-prompt-tag-OPQUEXWB.js} +3 -3
- package/dist/create-scenario-5PJBMAXO.js +33 -0
- package/dist/{create-scenario-DRPTPXU3.js → create-scenario-UEM77OE7.js} +5 -5
- package/dist/{create-test-suite-ZIZCCFJ4.js → create-test-suite-4IPXVSFQ.js} +6 -6
- 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-SA4JMUZF.js → delete-agent-QMEK3XHK.js} +4 -4
- package/dist/delete-annotation-HY3O2OGR.js +17 -0
- package/dist/{delete-annotation-X3KKK7QY.js → delete-annotation-VKIQWUYW.js} +4 -4
- package/dist/delete-dashboard-76N66XXL.js +18 -0
- package/dist/{delete-dashboard-LYMRPF27.js → delete-dashboard-JVIVHNJM.js} +4 -4
- package/dist/delete-dataset-HQCR66MG.js +18 -0
- package/dist/{delete-dataset-W6EZ44HY.js → delete-dataset-WKRUW4FP.js} +5 -7
- package/dist/{delete-dataset-records-7CNOTALB.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-QB3OCZUV.js → delete-prompt-tag-YYQ4VMAD.js} +3 -3
- package/dist/{delete-workflow-NG2VXYYM.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-W7KBXA4J.js → discover-scenario-schema-OOFIQKOG.js} +37 -17
- 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-7THF7HCU.js → get-agent-OTIYUFZA.js} +15 -11
- 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-P4WWVHFU.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-RZ44UIN6.js → get-evaluator-ISMC4LLI.js} +4 -4
- package/dist/get-evaluator-XEUZGZCH.js +47 -0
- package/dist/{get-project-QSQEAB33.js → get-project-5VKROSDH.js} +4 -4
- package/dist/get-project-RM6FRCBK.js +26 -0
- package/dist/{get-prompt-GVKXF5NL.js → get-prompt-OWXJZHQQ.js} +53 -58
- package/dist/get-prompt-W52DY36E.js +94 -0
- package/dist/{get-run-plan-NY7J5GRE.js → get-run-plan-BE3M2AUX.js} +7 -9
- package/dist/get-run-plan-RUXQ6PAX.js +58 -0
- package/dist/get-scenario-RNM7BAX2.js +37 -0
- package/dist/{get-scenario-Q3LLQE4T.js → get-scenario-YM4ODWW6.js} +5 -5
- package/dist/get-simulation-run-6GIATQE5.js +69 -0
- package/dist/{get-simulation-run-WINEYDMK.js → get-simulation-run-LCFSMPGQ.js} +26 -22
- package/dist/{get-test-suite-4HKA7OKS.js → get-test-suite-GC2O7YH6.js} +5 -5
- package/dist/get-test-suite-P5LJ6VLF.js +48 -0
- package/dist/get-trace-KBRVV4NN.js +45 -0
- package/dist/{get-trace-RCUV7N4O.js → get-trace-SEF3FMR5.js} +11 -13
- package/dist/get-workflow-7PVED7JE.js +25 -0
- package/dist/{get-workflow-EEOC7Y45.js → get-workflow-YXULW4GC.js} +4 -4
- package/dist/{http-security-EU3CHTY7.js → http-security-DNLBNQZL.js} +2 -2
- package/dist/{http-server-WCDUARTH.js → http-server-IR4QOS43.js} +4071 -347
- package/dist/index.js +58671 -37983
- package/dist/langwatch-api-annotations-6SA4OB4C.js +17 -0
- package/dist/{langwatch-api-annotations-6DHVZWUK.js → langwatch-api-annotations-TBHLCQ5R.js} +4 -4
- package/dist/langwatch-api-dashboards-6EO2VVZW.js +17 -0
- package/dist/{langwatch-api-dashboards-2KJL2M42.js → langwatch-api-dashboards-NHU5BZD7.js} +4 -4
- package/dist/langwatch-api-monitors-CBF3FGIM.js +47 -0
- package/dist/{langwatch-api-monitors-6ISFJ7WX.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-6UJL5U4Z.js → langwatch-api-workflows-OKC4FXIF.js} +4 -4
- package/dist/langwatch-api-workflows-XGJE6SR5.js +15 -0
- package/dist/{list-agents-AMVDQPQL.js → list-agents-HVYWEQMI.js} +4 -4
- package/dist/list-agents-RBAOCF53.js +42 -0
- package/dist/list-annotations-HJH4NBLD.js +38 -0
- package/dist/{list-annotations-6PR5NLIC.js → list-annotations-J4UAHSUN.js} +10 -5
- package/dist/{list-api-keys-GVPNBIHQ.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-Z3BZKDGF.js → list-dashboards-ROSYFLDQ.js} +4 -4
- package/dist/list-dashboards-RQ635ZU7.js +32 -0
- package/dist/{list-dataset-records-O67HZ35Y.js → list-dataset-records-M5TKA6LK.js} +14 -10
- package/dist/list-dataset-records-WFM7F33C.js +43 -0
- package/dist/{list-datasets-WXZL6UMP.js → list-datasets-B5X4P7BQ.js} +9 -13
- package/dist/list-datasets-THUKQHPX.js +56 -0
- package/dist/{list-evaluators-PAX72WCN.js → list-evaluators-MYH2OVCI.js} +5 -7
- package/dist/list-evaluators-NLVWF6K7.js +32 -0
- package/dist/{list-model-providers-VVLZMLCX.js → list-model-providers-3JUGP4YI.js} +4 -4
- package/dist/list-model-providers-H3XKORFO.js +35 -0
- package/dist/{list-projects-AQVI6SUK.js → list-projects-6EJ5YYEW.js} +5 -7
- package/dist/list-projects-YNNSRMLC.js +40 -0
- package/dist/{list-prompt-tags-WZFBJOHG.js → list-prompt-tags-NVFQO6WX.js} +3 -3
- package/dist/list-prompt-tags-XUQTTAH4.js +23 -0
- package/dist/{list-prompts-BQOHRHYT.js → list-prompts-HSIMMHTF.js} +4 -6
- package/dist/list-prompts-IRI6AIXO.js +30 -0
- package/dist/{list-run-plans-UBAU2DGH.js → list-run-plans-PX2XI6EK.js} +5 -5
- package/dist/list-run-plans-QALLCN2K.js +45 -0
- package/dist/{list-scenarios-MS4IUIVM.js → list-scenarios-QZRPVHS4.js} +13 -11
- package/dist/list-scenarios-SSJQEMJP.js +45 -0
- package/dist/list-simulation-runs-KNOLGMDV.js +53 -0
- package/dist/{list-simulation-runs-D6YF4ZOU.js → list-simulation-runs-OEADLLQR.js} +12 -8
- package/dist/list-test-suites-ANAQBLDG.js +34 -0
- package/dist/{list-test-suites-L7R2O6DR.js → list-test-suites-N4WVLBKK.js} +4 -4
- 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-6MV4XJHF.js → list-workflows-IMSX7SXU.js} +5 -7
- package/dist/list-workflows-ZHTX5LCL.js +33 -0
- package/dist/{rename-prompt-tag-K5LQ4CY6.js → rename-prompt-tag-IQI7MHOI.js} +3 -3
- package/dist/rename-prompt-tag-PA2BRIE6.js +18 -0
- package/dist/{rename-test-suite-NTYHAO5X.js → rename-test-suite-4J7UX5S2.js} +4 -4
- package/dist/rename-test-suite-NNVLMLKY.js +20 -0
- package/dist/report-issue-AS34ZMJF.js +898 -0
- package/dist/{report-issue-RHZZ33IS.js → report-issue-DCZFLGDO.js} +81 -67
- package/dist/{rerun-run-plan-MUDWJBE4.js → rerun-run-plan-TG2V4WM4.js} +5 -5
- package/dist/rerun-run-plan-ZI5OY3VA.js +21 -0
- package/dist/revoke-api-key-3J3ZA4UB.js +15 -0
- package/dist/{revoke-api-key-6LAZ3QZZ.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-T4ZYOZGA.js → run-plan-PAARQSI4.js} +7 -7
- package/dist/run-query-KJDH544C.js +47 -0
- package/dist/run-query-T4QW2Z5O.js +46 -0
- package/dist/{run-test-suite-L4MZ7G4D.js → run-test-suite-SQJELEZX.js} +6 -6
- package/dist/run-test-suite-STB6NUJM.js +25 -0
- package/dist/{run-workflow-DFIS23AP.js → run-workflow-D6PQNBI6.js} +4 -4
- package/dist/run-workflow-SP32SO5M.js +36 -0
- package/dist/search-traces-HCBGOG6R.js +170 -0
- package/dist/search-traces-HSTQ6WTQ.js +171 -0
- package/dist/{set-model-provider-XRNMFOVR.js → set-model-provider-GF7NXUJA.js} +4 -4
- package/dist/set-model-provider-KDQ7C4EZ.js +33 -0
- package/dist/{update-agent-DUWNYBNA.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-YSOMDCOB.js → update-dataset-SQZ6T4WX.js} +6 -6
- package/dist/{update-dataset-record-DEA2ITYR.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-NH7Q5GWV.js → update-evaluator-IGTX6PX4.js} +4 -4
- package/dist/{update-project-Q26FBSYH.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-ZQQ2C3KU.js → update-prompt-MY263DYF.js} +27 -29
- package/dist/update-scenario-7KA3JDXA.js +34 -0
- package/dist/{update-scenario-WUX34JAR.js → update-scenario-MOHRQKAQ.js} +5 -5
- package/package.json +35 -39
- package/pyproject.toml +8 -8
- package/src/config.d.ts +4 -0
- package/src/config.ts +20 -29
- package/src/create-mcp-server.ts +755 -609
- 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 +18 -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 +12 -29
- package/src/langwatch-api-scenarios.ts +9 -11
- package/src/langwatch-api-secrets.ts +31 -24
- package/src/langwatch-api-simulation-runs.ts +6 -8
- package/src/langwatch-api-test-suites.ts +14 -33
- package/src/langwatch-api-triggers.ts +96 -34
- package/src/langwatch-api-workflows.ts +9 -9
- package/src/langwatch-api.ts +108 -124
- 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 +13 -29
- package/src/schemas/suite-fields.ts +6 -23
- 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 +2 -4
- package/src/tools/archive-scenario.ts +2 -4
- package/src/tools/archive-test-suite.ts +2 -4
- 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 +5 -7
- package/src/tools/create-test-suite.ts +4 -9
- 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 +41 -21
- 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 +7 -21
- package/src/tools/format-scenario.ts +2 -4
- package/src/tools/format-suite-details.ts +6 -12
- package/src/tools/get-agent.ts +15 -6
- 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 +63 -84
- package/src/tools/get-run-plan.ts +4 -6
- package/src/tools/get-scenario.ts +4 -6
- package/src/tools/get-simulation-run.ts +27 -24
- package/src/tools/get-test-suite.ts +2 -5
- package/src/tools/get-trace.ts +16 -17
- package/src/tools/get-workflow.ts +1 -1
- package/src/tools/list-agents.ts +1 -1
- 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 +2 -2
- package/src/tools/list-scenarios.ts +14 -15
- package/src/tools/list-simulation-runs.ts +8 -4
- package/src/tools/list-test-suites.ts +1 -1
- 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 +2 -5
- package/src/tools/report-issue.ts +5 -9
- package/src/tools/rerun-run-plan.ts +2 -5
- package/src/tools/revoke-api-key.ts +2 -4
- package/src/tools/run-agent.ts +29 -26
- package/src/tools/run-experiment.ts +36 -37
- package/src/tools/run-plan.ts +4 -7
- package/src/tools/run-query.ts +47 -0
- package/src/tools/run-test-suite.ts +4 -7
- 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 +2 -2
- 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 +44 -59
- package/src/tools/update-scenario.ts +5 -7
- package/src/tools/update-test-suite.ts +6 -11
- 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 +14 -12
- package/vitest.integration.config.js +10 -0
- package/vitest.scenario.config.js +9 -0
- package/.eslintrc.cjs +0 -36
- package/dist/chunk-AN4OUA4D.js +0 -86
- package/dist/chunk-GELJ2MQR.js +0 -226
- package/dist/chunk-K37ZNPXK.js +0 -24
- package/dist/config.d.ts +0 -17
- package/dist/create-mcp-server.d.ts +0 -10
- package/dist/delete-evaluator-RKYC4TNB.js +0 -16
- package/dist/discover-evaluator-schema-ESSHQGPY.js +0 -1912
- package/dist/get-analytics-R6AZD3AW.js +0 -73
- package/dist/get-dataset-AKTYSQDI.js +0 -49
- package/dist/index.d.ts +0 -2
- package/dist/langwatch-api-secrets-OEBD6GBU.js +0 -41
- package/dist/langwatch-api-triggers-5E6DDGX6.js +0 -31
- package/dist/run-agent-CAGWGTYT.js +0 -72
- package/dist/search-traces-4XTJYXIK.js +0 -79
- package/src/__tests__/agent-tools.unit.test.ts +0 -257
- package/src/__tests__/all-tools.integration.test.ts +0 -1872
- 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 -284
- 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__/prompt-response-types.unit.test.ts +0 -51
- package/src/__tests__/prompts.integration.test.ts +0 -736
- 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__/run-plan-tools.unit.test.ts +0 -565
- package/src/__tests__/scenario-tools.integration.test.ts +0 -286
- package/src/__tests__/scenario-tools.unit.test.ts +0 -207
- package/src/__tests__/schemas.unit.test.ts +0 -85
- package/src/__tests__/simulation-run-tools.unit.test.ts +0 -116
- package/src/__tests__/support/http-server-harness.ts +0 -138
- package/src/__tests__/test-suite-tools.unit.test.ts +0 -615
- package/src/__tests__/tools.integration.test.ts +0 -896
- package/src/schemas/filter-fields.ts +0 -119
- package/src/schemas/index.ts +0 -9
|
@@ -1,8 +1,61 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-H6WGMG2T.js";
|
|
4
4
|
import "./chunk-SAS5OB7F.js";
|
|
5
5
|
|
|
6
|
+
// ../../packages/redaction/src/piiEntities.ts
|
|
7
|
+
var ESSENTIAL_PII_ENTITIES = [
|
|
8
|
+
"EMAIL_ADDRESS",
|
|
9
|
+
"IP_ADDRESS",
|
|
10
|
+
"CREDIT_CARD",
|
|
11
|
+
"IBAN_CODE",
|
|
12
|
+
"CRYPTO",
|
|
13
|
+
"PHONE_NUMBER",
|
|
14
|
+
"US_SSN",
|
|
15
|
+
"US_ITIN",
|
|
16
|
+
"US_PASSPORT",
|
|
17
|
+
"US_BANK_NUMBER",
|
|
18
|
+
"US_DRIVER_LICENSE",
|
|
19
|
+
"MEDICAL_LICENSE",
|
|
20
|
+
"UK_NHS",
|
|
21
|
+
"SG_NRIC_FIN",
|
|
22
|
+
"AU_ABN",
|
|
23
|
+
"AU_TFN",
|
|
24
|
+
"IN_PAN",
|
|
25
|
+
"IN_AADHAAR",
|
|
26
|
+
"BR_CPF"
|
|
27
|
+
];
|
|
28
|
+
var PRESIDIO_STRICT_ENTITIES = [
|
|
29
|
+
"CREDIT_CARD",
|
|
30
|
+
"CRYPTO",
|
|
31
|
+
"EMAIL_ADDRESS",
|
|
32
|
+
"IBAN_CODE",
|
|
33
|
+
"IP_ADDRESS",
|
|
34
|
+
"LOCATION",
|
|
35
|
+
"PERSON",
|
|
36
|
+
"PHONE_NUMBER",
|
|
37
|
+
"MEDICAL_LICENSE",
|
|
38
|
+
"US_BANK_NUMBER",
|
|
39
|
+
"US_DRIVER_LICENSE",
|
|
40
|
+
"US_ITIN",
|
|
41
|
+
"US_PASSPORT",
|
|
42
|
+
"US_SSN",
|
|
43
|
+
"UK_NHS",
|
|
44
|
+
"SG_NRIC_FIN",
|
|
45
|
+
"AU_ABN",
|
|
46
|
+
"AU_ACN",
|
|
47
|
+
"AU_TFN",
|
|
48
|
+
"AU_MEDICARE",
|
|
49
|
+
"IN_PAN",
|
|
50
|
+
"IN_AADHAAR",
|
|
51
|
+
"IN_VEHICLE_REGISTRATION",
|
|
52
|
+
"IN_VOTER",
|
|
53
|
+
"IN_PASSPORT"
|
|
54
|
+
];
|
|
55
|
+
var STRICT_ONLY_PII_ENTITIES = PRESIDIO_STRICT_ENTITIES.filter(
|
|
56
|
+
(entity) => !new Set(ESSENTIAL_PII_ENTITIES).has(entity)
|
|
57
|
+
);
|
|
58
|
+
|
|
6
59
|
// ../../packages/redaction/src/markers.ts
|
|
7
60
|
var SECRET_MARKER = "[SECRET]";
|
|
8
61
|
function formatPiiMarker(entity) {
|
|
@@ -42,18 +95,10 @@ function countCharClasses(value) {
|
|
|
42
95
|
var TOKEN_START = String.raw`(?<![A-Za-z0-9_-])`;
|
|
43
96
|
var TOKEN_END = String.raw`(?![A-Za-z0-9_-])`;
|
|
44
97
|
var VENDOR_KEY_PATTERNS = [
|
|
45
|
-
// LangWatch's own
|
|
46
|
-
//
|
|
47
|
-
//
|
|
48
|
-
//
|
|
49
|
-
// truncated or short-bodied one still redacts: `sk-lw-` would otherwise reach
|
|
50
|
-
// only the generic `sk-` rule and its 20-character floor, and `ik-lw-`
|
|
51
|
-
// nothing at all. The three-character floor is what keeps the bare prefix,
|
|
52
|
-
// which documentation and error messages print on its own, from reading as a
|
|
53
|
-
// key.
|
|
54
|
-
// The prefixes are duplicated rather than imported because this package is
|
|
55
|
-
// shared with the SDK and stays dependency-free; a test pins them to the
|
|
56
|
-
// constants so the two cannot drift.
|
|
98
|
+
// LangWatch's own token prefixes, minted by modules/api-key/contract/src/api-key.tokens.ts.
|
|
99
|
+
// The 3-body-char floor keeps a bare prefix (printed alone in docs/errors) from matching as a
|
|
100
|
+
// key. Duplicated here rather than imported so this package stays dependency-free; a test pins
|
|
101
|
+
// them to the constants so the two cannot drift.
|
|
57
102
|
String.raw`(?:sk|ik|pat|vk)-lw-[A-Za-z0-9_-]{3,}`,
|
|
58
103
|
// GitLab personal, project, deploy, runner and agent tokens.
|
|
59
104
|
String.raw`gl(?:pat|rt|dt|soat|ptt|cbt|imt|agent|ffct)-[A-Za-z0-9_-]{20,}`,
|
|
@@ -339,24 +384,15 @@ var VALUE_RULES = [
|
|
|
339
384
|
{
|
|
340
385
|
id: "url_credentials",
|
|
341
386
|
description: "Password embedded in a connection URL",
|
|
342
|
-
// scheme://user:password@host -> keep everything but the password. The
|
|
343
|
-
//
|
|
344
|
-
//
|
|
345
|
-
//
|
|
346
|
-
//
|
|
347
|
-
// The scheme sits in a lookbehind so that the first character the engine
|
|
348
|
-
// must find is the literal `:`. With the scheme inside the match the
|
|
349
|
-
// pattern starts with a character class, every lowercase letter in the
|
|
350
|
-
// text is a candidate start, and each one costs up to 30 characters of
|
|
351
|
-
// scheme scan before it fails: 6.2 ms on a 200 KB payload, more than every
|
|
352
|
-
// other rule together. Anchored on `:` the same payload costs 0.09 ms.
|
|
353
|
-
// The scheme stays outside the match and therefore untouched, which is
|
|
354
|
-
// what the rule already did with it.
|
|
387
|
+
// scheme://user:password@host -> keep everything but the password. The scheme sits in a
|
|
388
|
+
// lookbehind so the engine anchors on the literal `:` instead of scanning from every
|
|
389
|
+
// lowercase letter: unanchored this cost 6.2ms on a 200KB payload (more than every other
|
|
390
|
+
// rule combined); anchored, 0.09ms. The scheme stays outside the match and untouched.
|
|
355
391
|
regex: /(?<=[a-z][a-z0-9+.-]{0,30})(:\/\/[^\s:@/]+:)([^\s:@/]+)(@)/gi,
|
|
356
392
|
// The same scheme the lookbehind reads, so a reported match still spans the
|
|
357
393
|
// whole URL rather than starting at the colon.
|
|
358
394
|
precededBy: /[a-z][a-z0-9+.-]{0,30}$/i,
|
|
359
|
-
render: (
|
|
395
|
+
render: (...[, prefix = "", , at = ""]) => `${prefix}${REPLACEMENT}${at}`
|
|
360
396
|
},
|
|
361
397
|
{
|
|
362
398
|
id: "bearer_token",
|
|
@@ -397,23 +433,13 @@ var VALUE_RULES = [
|
|
|
397
433
|
precondition: (text) => text.includes("_")
|
|
398
434
|
},
|
|
399
435
|
{
|
|
400
|
-
// The layer that catches a vendor nobody has heard of
|
|
401
|
-
//
|
|
402
|
-
//
|
|
403
|
-
//
|
|
404
|
-
//
|
|
405
|
-
//
|
|
406
|
-
//
|
|
407
|
-
// NAME, which must survive as a bare name, and does: `AWS_SECRET_ACCESS_KEY`
|
|
408
|
-
// and `DATABASE_URL_PRODUCTION` are dictionary words with no digits and no
|
|
409
|
-
// lowercase, so the length floor and the character-mix gate turn them both
|
|
410
|
-
// away. The digest check lowercases the prefix so `SHA512-…` is still
|
|
411
|
-
// recognised as a digest.
|
|
412
|
-
//
|
|
413
|
-
// A declined match consumes the text it spanned, so in principle a benign
|
|
414
|
-
// outer match could hide a secret further inside the same unbroken token.
|
|
415
|
-
// It cannot in practice: a body containing key material inherits that
|
|
416
|
-
// material's entropy and character mix, so the outer match is accepted and
|
|
436
|
+
// The layer that catches a vendor nobody has heard of: a short prefix, a separator and a
|
|
437
|
+
// high-entropy body, needing no vendor knowledge. The prefix may be upper, lower or mixed
|
|
438
|
+
// case since plenty of vendors mint `LW_…` or `Xy_…`; that also makes it the shape of a
|
|
439
|
+
// screaming-snake env var NAME, but the length floor and character-mix gate turn those away.
|
|
440
|
+
// A declined match consumes the text it spanned, so in principle an outer match could hide
|
|
441
|
+
// secret material further inside the same token. It cannot in practice: a body containing
|
|
442
|
+
// key material inherits that material's entropy and mix, so the outer match is accepted and
|
|
417
443
|
// the secret is redacted along with its prefix.
|
|
418
444
|
id: "shaped_api_key",
|
|
419
445
|
description: "High-entropy API key with a vendor-style prefix",
|
|
@@ -431,26 +457,14 @@ var VALUE_RULES = [
|
|
|
431
457
|
// they write "key:".
|
|
432
458
|
id: "sensitive_assignment",
|
|
433
459
|
description: "Value assigned to a credential-named field",
|
|
434
|
-
//
|
|
435
|
-
//
|
|
436
|
-
//
|
|
437
|
-
//
|
|
438
|
-
//
|
|
439
|
-
//
|
|
440
|
-
//
|
|
441
|
-
//
|
|
442
|
-
//
|
|
443
|
-
// A whitespace separator is accepted on a HIGHER bar instead of not at
|
|
444
|
-
// all, because `Authorization <token>` and `key <token>` do carry real
|
|
445
|
-
// credentials. Ungated it matched 5,816 further spans over 309 shapes,
|
|
446
|
-
// mostly prose; gated on the value looking like key material in its own
|
|
447
|
-
// right it matches 338 over 19 at roughly 87% precision.
|
|
448
|
-
//
|
|
449
|
-
// The value class excludes backslash. Span content arrives JSON-encoded,
|
|
450
|
-
// so a literal two-character `\n` sits inside the text; letting a value run
|
|
451
|
-
// through one carried it across logical lines and past the `$VAR` and
|
|
452
|
-
// code-expression guards, which is why `api_key = $OPENAI_API_KEY` was kept
|
|
453
|
-
// with a real newline and redacted with an escaped one.
|
|
460
|
+
// `key is <value>` was rejected as a strict separator: on real traces it caught zero
|
|
461
|
+
// credentials while being the sole source of prose false-positives. Whitespace is accepted
|
|
462
|
+
// instead on a higher bar — the value must look like key material (see `isKeyMaterial`) —
|
|
463
|
+
// which is what keeps `Authorization <token>` and `key <token>` while rejecting prose.
|
|
464
|
+
// The value class excludes backslash: span content arrives JSON-encoded, so a literal `\n`
|
|
465
|
+
// is two characters, and letting a value run through one carried it across logical lines and
|
|
466
|
+
// past the `$VAR`/code-expression guards — `api_key = $OPENAI_API_KEY` was kept with a real
|
|
467
|
+
// newline and redacted with an escaped one.
|
|
454
468
|
regex: new RegExp(
|
|
455
469
|
`((?:^|[\\W_])(?:${CREDENTIAL_KEYWORD})(?:\\s+[A-Za-z]{1,8}){0,2}["'\`]?(?:\\s*[:=]{1,2}\\s*|[ \\t?-]+)["'\`]?)([^\\s"'\`,;<>(){}\\[\\]\\\\]{${CONTEXT_VALUE_MIN_LENGTH},})`,
|
|
456
470
|
"gi"
|
|
@@ -609,7 +623,7 @@ function collectSensitiveEnvValues(env) {
|
|
|
609
623
|
if (!ENV_SECRET_NAME_REGEX.test(name)) continue;
|
|
610
624
|
values.add(trimmed);
|
|
611
625
|
}
|
|
612
|
-
return [...values].
|
|
626
|
+
return [...values].toSorted((a, b) => b.length - a.length);
|
|
613
627
|
}
|
|
614
628
|
var EMAIL_REGEX = /[A-Za-z0-9._%+-]{1,64}@[A-Za-z0-9.-]{1,253}\.[A-Za-z]{2,24}/g;
|
|
615
629
|
var INTL_PHONE_REGEX = /(?<![\w.+-])\+[1-9]\d{0,2}(?:[\s.-]?(?:\(\d{1,4}\)[\s.-]?)?\d{1,4}){1,5}(?!\d)/g;
|
|
@@ -829,7 +843,7 @@ function redactReport(params) {
|
|
|
829
843
|
async function deliverReport(report, params) {
|
|
830
844
|
const config = getConfig();
|
|
831
845
|
const endpoint = config.endpoint.replace(/\/+$/, "");
|
|
832
|
-
const response = await fetch(`${endpoint}/api/bug-reports`, {
|
|
846
|
+
const response = await fetch(`${endpoint}/api/v1/bug-reports`, {
|
|
833
847
|
method: "POST",
|
|
834
848
|
headers: {
|
|
835
849
|
"content-type": "application/json",
|
|
@@ -882,4 +896,4 @@ async function handleReportIssue(params) {
|
|
|
882
896
|
export {
|
|
883
897
|
handleReportIssue
|
|
884
898
|
};
|
|
885
|
-
//# sourceMappingURL=report-issue-
|
|
899
|
+
//# sourceMappingURL=report-issue-DCZFLGDO.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
formatRunPlanRun
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RABYBFX5.js";
|
|
4
4
|
import {
|
|
5
5
|
rerunRunPlan
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-PTDR56Z3.js";
|
|
7
|
+
import "./chunk-UWLE5T2F.js";
|
|
8
|
+
import "./chunk-H6WGMG2T.js";
|
|
9
9
|
import "./chunk-SAS5OB7F.js";
|
|
10
10
|
|
|
11
11
|
// src/tools/rerun-run-plan.ts
|
|
@@ -19,4 +19,4 @@ async function handleRerunRunPlan(params) {
|
|
|
19
19
|
export {
|
|
20
20
|
handleRerunRunPlan
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=rerun-run-plan-
|
|
22
|
+
//# sourceMappingURL=rerun-run-plan-TG2V4WM4.js.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {
|
|
2
|
+
formatRunPlanRun
|
|
3
|
+
} from "./chunk-RABYBFX5.js";
|
|
4
|
+
import {
|
|
5
|
+
rerunRunPlan
|
|
6
|
+
} from "./chunk-PTDR56Z3.js";
|
|
7
|
+
import "./chunk-UWLE5T2F.js";
|
|
8
|
+
import "./chunk-H6WGMG2T.js";
|
|
9
|
+
|
|
10
|
+
// src/tools/rerun-run-plan.ts
|
|
11
|
+
async function handleRerunRunPlan(params) {
|
|
12
|
+
const result = await rerunRunPlan(params.id, {
|
|
13
|
+
parameters: params.parameters,
|
|
14
|
+
note: params.note
|
|
15
|
+
});
|
|
16
|
+
return formatRunPlanRun(result);
|
|
17
|
+
}
|
|
18
|
+
export {
|
|
19
|
+
handleRerunRunPlan
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=rerun-run-plan-ZI5OY3VA.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
revokeApiKey
|
|
3
|
+
} from "./chunk-UNJM3BIL.js";
|
|
4
|
+
import "./chunk-UWLE5T2F.js";
|
|
5
|
+
import "./chunk-H6WGMG2T.js";
|
|
6
|
+
|
|
7
|
+
// src/tools/revoke-api-key.ts
|
|
8
|
+
async function handleRevokeApiKey(params) {
|
|
9
|
+
await revokeApiKey(params.id);
|
|
10
|
+
return `API key ${params.id} revoked successfully.`;
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
handleRevokeApiKey
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=revoke-api-key-3J3ZA4UB.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
revokeApiKey
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-UNJM3BIL.js";
|
|
4
|
+
import "./chunk-UWLE5T2F.js";
|
|
5
|
+
import "./chunk-H6WGMG2T.js";
|
|
6
6
|
import "./chunk-SAS5OB7F.js";
|
|
7
7
|
|
|
8
8
|
// src/tools/revoke-api-key.ts
|
|
@@ -13,4 +13,4 @@ async function handleRevokeApiKey(params) {
|
|
|
13
13
|
export {
|
|
14
14
|
handleRevokeApiKey
|
|
15
15
|
};
|
|
16
|
-
//# sourceMappingURL=revoke-api-key-
|
|
16
|
+
//# sourceMappingURL=revoke-api-key-SFMEFWJC.js.map
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import {
|
|
2
|
+
runAgent
|
|
3
|
+
} from "./chunk-HGELNIVY.js";
|
|
4
|
+
import "./chunk-UWLE5T2F.js";
|
|
5
|
+
import "./chunk-H6WGMG2T.js";
|
|
6
|
+
import "./chunk-SAS5OB7F.js";
|
|
7
|
+
|
|
8
|
+
// src/tools/run-agent.ts
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
var jsonObjectSchema = z.looseObject({});
|
|
11
|
+
function outputLines(result) {
|
|
12
|
+
const output = result.output;
|
|
13
|
+
if (output !== void 0) {
|
|
14
|
+
return ["**Output:**", typeof output === "string" ? output : JSON.stringify(output, null, 2)];
|
|
15
|
+
}
|
|
16
|
+
return ["**Result:**", JSON.stringify(result, null, 2)];
|
|
17
|
+
}
|
|
18
|
+
function connectedLines(result) {
|
|
19
|
+
const lines = [];
|
|
20
|
+
const instance = result.instance;
|
|
21
|
+
const durationMs = result.durationMs;
|
|
22
|
+
if (instance?.hostname) {
|
|
23
|
+
const label = instance.label ? ` (${instance.label})` : "";
|
|
24
|
+
lines.push(`
|
|
25
|
+
**Instance:** ${instance.hostname}${label}`);
|
|
26
|
+
}
|
|
27
|
+
if (typeof durationMs === "number") lines.push(`**Duration:** ${durationMs} ms`);
|
|
28
|
+
const session = result.session;
|
|
29
|
+
if (session !== void 0 && session !== null) {
|
|
30
|
+
lines.push("**Session:**");
|
|
31
|
+
lines.push(JSON.stringify(session, null, 2));
|
|
32
|
+
}
|
|
33
|
+
return lines;
|
|
34
|
+
}
|
|
35
|
+
async function handleRunAgent({
|
|
36
|
+
id,
|
|
37
|
+
input,
|
|
38
|
+
message,
|
|
39
|
+
parameters,
|
|
40
|
+
threadId
|
|
41
|
+
}) {
|
|
42
|
+
let parsedInput = {};
|
|
43
|
+
if (input) {
|
|
44
|
+
let decoded;
|
|
45
|
+
try {
|
|
46
|
+
decoded = JSON.parse(input);
|
|
47
|
+
} catch {
|
|
48
|
+
return "Error: `input` must be a valid JSON object.";
|
|
49
|
+
}
|
|
50
|
+
const result2 = jsonObjectSchema.safeParse(decoded);
|
|
51
|
+
if (!result2.success) {
|
|
52
|
+
return "Error: `input` must be a valid JSON object.";
|
|
53
|
+
}
|
|
54
|
+
parsedInput = result2.data;
|
|
55
|
+
}
|
|
56
|
+
const { agentType, result } = await runAgent({
|
|
57
|
+
id,
|
|
58
|
+
input: parsedInput,
|
|
59
|
+
message,
|
|
60
|
+
parameters,
|
|
61
|
+
threadId
|
|
62
|
+
});
|
|
63
|
+
const lines = [];
|
|
64
|
+
lines.push(`Agent executed successfully (type: ${agentType}).
|
|
65
|
+
`);
|
|
66
|
+
if (typeof result === "object" && result !== null) {
|
|
67
|
+
lines.push(...outputLines(result));
|
|
68
|
+
if (agentType === "connected") lines.push(...connectedLines(result));
|
|
69
|
+
}
|
|
70
|
+
return lines.join("\n");
|
|
71
|
+
}
|
|
72
|
+
export {
|
|
73
|
+
handleRunAgent
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=run-agent-W4VJP72Z.js.map
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import {
|
|
2
|
+
runAgent
|
|
3
|
+
} from "./chunk-YCARO42Z.js";
|
|
4
|
+
import "./chunk-UWLE5T2F.js";
|
|
5
|
+
import "./chunk-H6WGMG2T.js";
|
|
6
|
+
|
|
7
|
+
// src/tools/run-agent.ts
|
|
8
|
+
import { z } from "zod";
|
|
9
|
+
var jsonObjectSchema = z.looseObject({});
|
|
10
|
+
function outputLines(result) {
|
|
11
|
+
const output = result.output;
|
|
12
|
+
if (output !== void 0) {
|
|
13
|
+
return ["**Output:**", typeof output === "string" ? output : JSON.stringify(output, null, 2)];
|
|
14
|
+
}
|
|
15
|
+
return ["**Result:**", JSON.stringify(result, null, 2)];
|
|
16
|
+
}
|
|
17
|
+
function connectedLines(result) {
|
|
18
|
+
const lines = [];
|
|
19
|
+
const instance = result.instance;
|
|
20
|
+
const durationMs = result.durationMs;
|
|
21
|
+
if (instance?.hostname) {
|
|
22
|
+
const label = instance.label ? ` (${instance.label})` : "";
|
|
23
|
+
lines.push(`
|
|
24
|
+
**Instance:** ${instance.hostname}${label}`);
|
|
25
|
+
}
|
|
26
|
+
if (typeof durationMs === "number") lines.push(`**Duration:** ${durationMs} ms`);
|
|
27
|
+
const session = result.session;
|
|
28
|
+
if (session !== void 0 && session !== null) {
|
|
29
|
+
lines.push("**Session:**");
|
|
30
|
+
lines.push(JSON.stringify(session, null, 2));
|
|
31
|
+
}
|
|
32
|
+
return lines;
|
|
33
|
+
}
|
|
34
|
+
async function handleRunAgent({
|
|
35
|
+
id,
|
|
36
|
+
input,
|
|
37
|
+
message,
|
|
38
|
+
parameters,
|
|
39
|
+
threadId
|
|
40
|
+
}) {
|
|
41
|
+
let parsedInput = {};
|
|
42
|
+
if (input) {
|
|
43
|
+
let decoded;
|
|
44
|
+
try {
|
|
45
|
+
decoded = JSON.parse(input);
|
|
46
|
+
} catch {
|
|
47
|
+
return "Error: `input` must be a valid JSON object.";
|
|
48
|
+
}
|
|
49
|
+
const result2 = jsonObjectSchema.safeParse(decoded);
|
|
50
|
+
if (!result2.success) {
|
|
51
|
+
return "Error: `input` must be a valid JSON object.";
|
|
52
|
+
}
|
|
53
|
+
parsedInput = result2.data;
|
|
54
|
+
}
|
|
55
|
+
const { agentType, result } = await runAgent({
|
|
56
|
+
id,
|
|
57
|
+
input: parsedInput,
|
|
58
|
+
message,
|
|
59
|
+
parameters,
|
|
60
|
+
threadId
|
|
61
|
+
});
|
|
62
|
+
const lines = [];
|
|
63
|
+
lines.push(`Agent executed successfully (type: ${agentType}).
|
|
64
|
+
`);
|
|
65
|
+
if (typeof result === "object" && result !== null) {
|
|
66
|
+
lines.push(...outputLines(result));
|
|
67
|
+
if (agentType === "connected") lines.push(...connectedLines(result));
|
|
68
|
+
}
|
|
69
|
+
return lines.join("\n");
|
|
70
|
+
}
|
|
71
|
+
export {
|
|
72
|
+
handleRunAgent
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=run-agent-YNV6ZHW4.js.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import {
|
|
2
|
+
formatRunPlanRun
|
|
3
|
+
} from "./chunk-RABYBFX5.js";
|
|
4
|
+
import {
|
|
5
|
+
runRunPlan
|
|
6
|
+
} from "./chunk-PTDR56Z3.js";
|
|
7
|
+
import {
|
|
8
|
+
toWireTargets
|
|
9
|
+
} from "./chunk-O7EMWEVJ.js";
|
|
10
|
+
import {
|
|
11
|
+
toWireAttachments
|
|
12
|
+
} from "./chunk-U24EACC4.js";
|
|
13
|
+
import "./chunk-UWLE5T2F.js";
|
|
14
|
+
import "./chunk-H6WGMG2T.js";
|
|
15
|
+
|
|
16
|
+
// src/tools/run-plan.ts
|
|
17
|
+
async function handleRunPlan(params) {
|
|
18
|
+
const result = await runRunPlan({
|
|
19
|
+
name: params.name,
|
|
20
|
+
config: {
|
|
21
|
+
scope: params.scope,
|
|
22
|
+
targets: toWireTargets(params.targets),
|
|
23
|
+
repeatCount: params.repeatCount,
|
|
24
|
+
simulatorModel: params.simulatorModel,
|
|
25
|
+
judgeModel: params.judgeModel,
|
|
26
|
+
scenarioIds: params.scenarioIds,
|
|
27
|
+
...params.evaluators !== void 0 ? { evaluators: toWireAttachments(params.evaluators) } : {}
|
|
28
|
+
},
|
|
29
|
+
idempotencyKey: params.idempotencyKey,
|
|
30
|
+
parameters: params.parameters,
|
|
31
|
+
note: params.note
|
|
32
|
+
});
|
|
33
|
+
return formatRunPlanRun(result);
|
|
34
|
+
}
|
|
35
|
+
export {
|
|
36
|
+
handleRunPlan
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=run-plan-6C77GWG4.js.map
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
formatRunPlanRun
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RABYBFX5.js";
|
|
4
4
|
import {
|
|
5
5
|
runRunPlan
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-PTDR56Z3.js";
|
|
7
7
|
import {
|
|
8
8
|
toWireTargets
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-O7EMWEVJ.js";
|
|
10
10
|
import {
|
|
11
11
|
toWireAttachments
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-U24EACC4.js";
|
|
13
|
+
import "./chunk-UWLE5T2F.js";
|
|
14
|
+
import "./chunk-H6WGMG2T.js";
|
|
15
15
|
import "./chunk-SAS5OB7F.js";
|
|
16
16
|
|
|
17
17
|
// src/tools/run-plan.ts
|
|
@@ -36,4 +36,4 @@ async function handleRunPlan(params) {
|
|
|
36
36
|
export {
|
|
37
37
|
handleRunPlan
|
|
38
38
|
};
|
|
39
|
-
//# sourceMappingURL=run-plan-
|
|
39
|
+
//# sourceMappingURL=run-plan-PAARQSI4.js.map
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import {
|
|
2
|
+
markdownTable,
|
|
3
|
+
runQuery
|
|
4
|
+
} from "./chunk-SUPUUC4W.js";
|
|
5
|
+
import "./chunk-FOKVY3BK.js";
|
|
6
|
+
import "./chunk-UWLE5T2F.js";
|
|
7
|
+
import "./chunk-H6WGMG2T.js";
|
|
8
|
+
import "./chunk-SAS5OB7F.js";
|
|
9
|
+
|
|
10
|
+
// src/tools/run-query.ts
|
|
11
|
+
var RUN_QUERY_ROW_CAP = 50;
|
|
12
|
+
async function handleRunQuery(params) {
|
|
13
|
+
const result = await runQuery(params);
|
|
14
|
+
const headers = result.columns.map((column) => column.name);
|
|
15
|
+
const shown = result.rows.slice(0, RUN_QUERY_ROW_CAP);
|
|
16
|
+
const lines = [];
|
|
17
|
+
lines.push(
|
|
18
|
+
markdownTable({
|
|
19
|
+
headers,
|
|
20
|
+
rows: shown,
|
|
21
|
+
emptyMessage: "The statement ran and returned no rows."
|
|
22
|
+
})
|
|
23
|
+
);
|
|
24
|
+
lines.push("");
|
|
25
|
+
lines.push(
|
|
26
|
+
`Returned ${result.rows.length} row${result.rows.length === 1 ? "" : "s"} in ${result.statistics.elapsedMs}ms.`
|
|
27
|
+
);
|
|
28
|
+
if (result.rows.length > shown.length) {
|
|
29
|
+
lines.push(
|
|
30
|
+
`Showing the first ${shown.length}. Aggregate further, or export every row with \`langwatch query "<statement>" --format jsonl\`.`
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
if (result.truncated) {
|
|
34
|
+
lines.push(
|
|
35
|
+
"The result hit a response ceiling and was cut short, so this is not the whole answer."
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
for (const diagnostic of result.diagnostics) {
|
|
39
|
+
lines.push(`${diagnostic.code}: ${diagnostic.message}`);
|
|
40
|
+
}
|
|
41
|
+
return lines.join("\n");
|
|
42
|
+
}
|
|
43
|
+
export {
|
|
44
|
+
RUN_QUERY_ROW_CAP,
|
|
45
|
+
handleRunQuery
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=run-query-KJDH544C.js.map
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import {
|
|
2
|
+
markdownTable,
|
|
3
|
+
runQuery
|
|
4
|
+
} from "./chunk-SUPUUC4W.js";
|
|
5
|
+
import "./chunk-FOKVY3BK.js";
|
|
6
|
+
import "./chunk-UWLE5T2F.js";
|
|
7
|
+
import "./chunk-H6WGMG2T.js";
|
|
8
|
+
|
|
9
|
+
// src/tools/run-query.ts
|
|
10
|
+
var RUN_QUERY_ROW_CAP = 50;
|
|
11
|
+
async function handleRunQuery(params) {
|
|
12
|
+
const result = await runQuery(params);
|
|
13
|
+
const headers = result.columns.map((column) => column.name);
|
|
14
|
+
const shown = result.rows.slice(0, RUN_QUERY_ROW_CAP);
|
|
15
|
+
const lines = [];
|
|
16
|
+
lines.push(
|
|
17
|
+
markdownTable({
|
|
18
|
+
headers,
|
|
19
|
+
rows: shown,
|
|
20
|
+
emptyMessage: "The statement ran and returned no rows."
|
|
21
|
+
})
|
|
22
|
+
);
|
|
23
|
+
lines.push("");
|
|
24
|
+
lines.push(
|
|
25
|
+
`Returned ${result.rows.length} row${result.rows.length === 1 ? "" : "s"} in ${result.statistics.elapsedMs}ms.`
|
|
26
|
+
);
|
|
27
|
+
if (result.rows.length > shown.length) {
|
|
28
|
+
lines.push(
|
|
29
|
+
`Showing the first ${shown.length}. Aggregate further, or export every row with \`langwatch query "<statement>" --format jsonl\`.`
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
if (result.truncated) {
|
|
33
|
+
lines.push(
|
|
34
|
+
"The result hit a response ceiling and was cut short, so this is not the whole answer."
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
for (const diagnostic of result.diagnostics) {
|
|
38
|
+
lines.push(`${diagnostic.code}: ${diagnostic.message}`);
|
|
39
|
+
}
|
|
40
|
+
return lines.join("\n");
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
RUN_QUERY_ROW_CAP,
|
|
44
|
+
handleRunQuery
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=run-query-T4QW2Z5O.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
formatRunPlanRun
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RABYBFX5.js";
|
|
4
4
|
import {
|
|
5
5
|
toWireTargets
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-O7EMWEVJ.js";
|
|
7
7
|
import {
|
|
8
8
|
runTestSuite
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-VMWJD732.js";
|
|
10
|
+
import "./chunk-UWLE5T2F.js";
|
|
11
|
+
import "./chunk-H6WGMG2T.js";
|
|
12
12
|
import "./chunk-SAS5OB7F.js";
|
|
13
13
|
|
|
14
14
|
// src/tools/run-test-suite.ts
|
|
@@ -23,4 +23,4 @@ async function handleRunTestSuite(params) {
|
|
|
23
23
|
export {
|
|
24
24
|
handleRunTestSuite
|
|
25
25
|
};
|
|
26
|
-
//# sourceMappingURL=run-test-suite-
|
|
26
|
+
//# sourceMappingURL=run-test-suite-SQJELEZX.js.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {
|
|
2
|
+
formatRunPlanRun
|
|
3
|
+
} from "./chunk-RABYBFX5.js";
|
|
4
|
+
import {
|
|
5
|
+
toWireTargets
|
|
6
|
+
} from "./chunk-O7EMWEVJ.js";
|
|
7
|
+
import {
|
|
8
|
+
runTestSuite
|
|
9
|
+
} from "./chunk-VMWJD732.js";
|
|
10
|
+
import "./chunk-UWLE5T2F.js";
|
|
11
|
+
import "./chunk-H6WGMG2T.js";
|
|
12
|
+
|
|
13
|
+
// src/tools/run-test-suite.ts
|
|
14
|
+
async function handleRunTestSuite(params) {
|
|
15
|
+
const { targets, ...rest } = params;
|
|
16
|
+
const result = await runTestSuite({
|
|
17
|
+
...rest,
|
|
18
|
+
targets: toWireTargets(targets)
|
|
19
|
+
});
|
|
20
|
+
return formatRunPlanRun(result);
|
|
21
|
+
}
|
|
22
|
+
export {
|
|
23
|
+
handleRunTestSuite
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=run-test-suite-STB6NUJM.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runWorkflow
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-NKMTIHIJ.js";
|
|
4
|
+
import "./chunk-UWLE5T2F.js";
|
|
5
|
+
import "./chunk-H6WGMG2T.js";
|
|
6
6
|
import "./chunk-SAS5OB7F.js";
|
|
7
7
|
|
|
8
8
|
// src/tools/run-workflow.ts
|
|
@@ -34,4 +34,4 @@ async function handleRunWorkflow(params) {
|
|
|
34
34
|
export {
|
|
35
35
|
handleRunWorkflow
|
|
36
36
|
};
|
|
37
|
-
//# sourceMappingURL=run-workflow-
|
|
37
|
+
//# sourceMappingURL=run-workflow-D6PQNBI6.js.map
|