@langwatch/mcp-server 1.0.0 → 2.1.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/.python-version +1 -0
- package/CHANGELOG.md +110 -0
- package/CONTRIBUTING.md +1 -1
- package/README.md +86 -4
- package/dist/{archive-project-MK3673A7.js → archive-project-W3IKI7UL.js} +5 -5
- package/dist/archive-run-plan-474OKHHU.js +16 -0
- package/dist/{archive-scenario-KATSXRIN.js → archive-scenario-V5UNYK26.js} +5 -5
- package/dist/archive-test-suite-O7FLDMXK.js +16 -0
- package/dist/{assign-prompt-tag-E3C5W6PI.js → assign-prompt-tag-Q46WRB6P.js} +4 -4
- package/dist/chunk-56OGTS24.js +44 -0
- package/dist/chunk-6DJDEXET.js +63 -0
- package/dist/chunk-7E4FZIYJ.js +15 -0
- package/dist/{chunk-J45SVWPR.js → chunk-AN4OUA4D.js} +2 -2
- package/dist/chunk-CKNAH5TG.js +74 -0
- package/dist/{chunk-CE6QMZOP.js → chunk-EYXMLE5X.js} +86 -11
- package/dist/{chunk-XY4STOBE.js → chunk-G4ZAZTZW.js} +2 -2
- package/dist/{chunk-5UWY24RP.js → chunk-GELJ2MQR.js} +12 -3
- package/dist/chunk-HV4DWKBI.js +46 -0
- package/dist/chunk-JR6DJZOU.js +49 -0
- package/dist/{chunk-DAIQKS27.js → chunk-JTQJRNFJ.js} +2 -2
- package/dist/{chunk-WWMDHZZV.js → chunk-K37ZNPXK.js} +2 -2
- package/dist/{chunk-EU22L52K.js → chunk-OJLYYJWI.js} +2 -2
- package/dist/{chunk-Y3HDZ6OW.js → chunk-QAMP3CGR.js} +2 -2
- package/dist/{chunk-VYPSKRPN.js → chunk-QRO35SOM.js} +347 -146
- package/dist/{chunk-O3LWVN67.js → chunk-RVAE2MEA.js} +2 -2
- package/dist/{chunk-UXXA4D6K.js → chunk-S4GVX36W.js} +2 -2
- package/dist/{chunk-BJ7B4R26.js → chunk-SAS5OB7F.js} +18 -2
- package/dist/{chunk-RYRB2YVJ.js → chunk-SR6QPRIE.js} +2 -2
- package/dist/chunk-UF6XIGYR.js +58 -0
- package/dist/{chunk-T7WJVS2N.js → chunk-UFOYFYI7.js} +2 -2
- package/dist/chunk-UJPXFA26.js +267 -0
- package/dist/{chunk-KOO5733S.js → chunk-WT4PO4A3.js} +8 -2
- package/dist/config.js +2 -2
- package/dist/{create-agent-7W57J7MT.js → create-agent-JFJ2K6X3.js} +5 -5
- package/dist/{create-annotation-W2XELBCQ.js → create-annotation-EUXXQ6NS.js} +5 -5
- package/dist/{create-api-key-MKRXKFJM.js → create-api-key-BGBB76JX.js} +5 -5
- package/dist/{create-dashboard-QGL7IODC.js → create-dashboard-Z76AIPLS.js} +5 -5
- package/dist/{create-dataset-3PH7A4HG.js → create-dataset-FD5VAXU4.js} +5 -5
- package/dist/{create-dataset-records-4DZS3VRL.js → create-dataset-records-WQUXXOHI.js} +5 -5
- package/dist/{create-evaluator-YWH6NC4M.js → create-evaluator-6NV33Z52.js} +5 -5
- package/dist/create-mcp-server.js +9 -4
- package/dist/{create-project-BOBQ32C5.js → create-project-ZQ7TFIO2.js} +5 -5
- package/dist/{create-prompt-FLCFGITE.js → create-prompt-BS6QRCUU.js} +4 -4
- package/dist/{create-prompt-tag-EMPNIKEA.js → create-prompt-tag-FCQ5ELSQ.js} +4 -4
- package/dist/{create-scenario-BSBIHUL6.js → create-scenario-DRPTPXU3.js} +12 -5
- package/dist/create-test-suite-ZIZCCFJ4.js +37 -0
- package/dist/{delete-agent-7MSYNY5E.js → delete-agent-SA4JMUZF.js} +5 -5
- package/dist/{delete-annotation-ZT5IGN24.js → delete-annotation-X3KKK7QY.js} +5 -5
- package/dist/{delete-dashboard-BTIY5S3L.js → delete-dashboard-LYMRPF27.js} +5 -5
- package/dist/{delete-dataset-U45HQHPR.js → delete-dataset-W6EZ44HY.js} +5 -5
- package/dist/{delete-dataset-records-R43IMAWB.js → delete-dataset-records-7CNOTALB.js} +5 -5
- package/dist/{delete-evaluator-U6JMQ6C7.js → delete-evaluator-RKYC4TNB.js} +5 -5
- package/dist/{delete-prompt-tag-4EV4TDHB.js → delete-prompt-tag-QB3OCZUV.js} +4 -4
- package/dist/{delete-workflow-5QYALXEL.js → delete-workflow-NG2VXYYM.js} +5 -5
- package/dist/{discover-evaluator-schema-MRGHVNTT.js → discover-evaluator-schema-ESSHQGPY.js} +58 -321
- package/dist/{discover-scenario-schema-UPBTCWPG.js → discover-scenario-schema-W7KBXA4J.js} +54 -2
- package/dist/{discover-schema-ICGXPHUW.js → discover-schema-L6QDPON3.js} +2 -2
- package/dist/get-agent-7THF7HCU.js +66 -0
- package/dist/{get-analytics-PVERWOA5.js → get-analytics-R6AZD3AW.js} +4 -4
- package/dist/{get-dashboard-ZZPC3WMD.js → get-dashboard-P4WWVHFU.js} +5 -5
- package/dist/{get-dataset-25TB2LQH.js → get-dataset-AKTYSQDI.js} +5 -5
- package/dist/{get-evaluator-3FTRQKEC.js → get-evaluator-RZ44UIN6.js} +5 -5
- package/dist/{get-project-5OAXYC57.js → get-project-QSQEAB33.js} +5 -5
- package/dist/get-prompt-GVKXF5NL.js +100 -0
- package/dist/get-run-plan-NY7J5GRE.js +61 -0
- package/dist/{get-scenario-DSSTR6FI.js → get-scenario-Q3LLQE4T.js} +9 -5
- package/dist/{get-simulation-run-RQPMS2MC.js → get-simulation-run-WINEYDMK.js} +14 -5
- package/dist/get-test-suite-4HKA7OKS.js +49 -0
- package/dist/{get-trace-O5VT3NAC.js → get-trace-RCUV7N4O.js} +4 -4
- package/dist/{get-workflow-3EZDOEIF.js → get-workflow-EEOC7Y45.js} +5 -5
- package/dist/http-security-EU3CHTY7.js +26 -0
- package/dist/{http-server-2ACJ3CXW.js → http-server-WCDUARTH.js} +1038 -693
- package/dist/index.js +6437 -4020
- package/dist/{langwatch-api-annotations-E65MI3WZ.js → langwatch-api-annotations-6DHVZWUK.js} +5 -5
- package/dist/{langwatch-api-dashboards-QCDECRCY.js → langwatch-api-dashboards-2KJL2M42.js} +5 -5
- package/dist/{langwatch-api-monitors-UIO2KTDV.js → langwatch-api-monitors-6ISFJ7WX.js} +4 -4
- package/dist/{langwatch-api-secrets-4T2EKSJ7.js → langwatch-api-secrets-OEBD6GBU.js} +4 -4
- package/dist/{langwatch-api-triggers-MPOEKPUY.js → langwatch-api-triggers-5E6DDGX6.js} +4 -4
- package/dist/langwatch-api-workflows-6UJL5U4Z.js +16 -0
- package/dist/list-agents-AMVDQPQL.js +43 -0
- package/dist/{list-annotations-CGX5BT7E.js → list-annotations-6PR5NLIC.js} +5 -5
- package/dist/{list-api-keys-JLWJPFRX.js → list-api-keys-GVPNBIHQ.js} +5 -5
- package/dist/{list-dashboards-RNIWX3TX.js → list-dashboards-Z3BZKDGF.js} +5 -5
- package/dist/{list-dataset-records-B5MHZR66.js → list-dataset-records-O67HZ35Y.js} +5 -5
- package/dist/{list-datasets-BVCAMQCP.js → list-datasets-WXZL6UMP.js} +5 -5
- package/dist/{list-evaluators-65FBTL2U.js → list-evaluators-PAX72WCN.js} +5 -5
- package/dist/{list-model-providers-GRK3I3VV.js → list-model-providers-VVLZMLCX.js} +5 -5
- package/dist/{list-projects-JLMBFMW3.js → list-projects-AQVI6SUK.js} +5 -5
- package/dist/{list-prompt-tags-UHNWDGQI.js → list-prompt-tags-WZFBJOHG.js} +4 -4
- package/dist/{list-prompts-7254B3U7.js → list-prompts-BQOHRHYT.js} +4 -4
- package/dist/list-run-plans-UBAU2DGH.js +46 -0
- package/dist/{list-scenarios-46YNICKM.js → list-scenarios-MS4IUIVM.js} +10 -7
- package/dist/{list-simulation-runs-LGNEFNPN.js → list-simulation-runs-D6YF4ZOU.js} +13 -7
- package/dist/list-test-suites-L7R2O6DR.js +35 -0
- package/dist/{list-workflows-MLQDM6CP.js → list-workflows-6MV4XJHF.js} +5 -5
- package/dist/{rename-prompt-tag-RHQMNEQL.js → rename-prompt-tag-K5LQ4CY6.js} +4 -4
- package/dist/rename-test-suite-NTYHAO5X.js +21 -0
- package/dist/report-issue-RHZZ33IS.js +885 -0
- package/dist/rerun-run-plan-MUDWJBE4.js +22 -0
- package/dist/{revoke-api-key-3Y35EMBT.js → revoke-api-key-6LAZ3QZZ.js} +5 -5
- package/dist/run-agent-CAGWGTYT.js +72 -0
- package/dist/run-plan-T4ZYOZGA.js +39 -0
- package/dist/run-test-suite-L4MZ7G4D.js +26 -0
- package/dist/{run-workflow-5LVBZYLS.js → run-workflow-DFIS23AP.js} +5 -5
- package/dist/{search-traces-U4HLOCZ2.js → search-traces-4XTJYXIK.js} +4 -4
- package/dist/{set-model-provider-V3M5CDIY.js → set-model-provider-XRNMFOVR.js} +5 -5
- package/dist/{update-agent-47RZIHS7.js → update-agent-DUWNYBNA.js} +5 -5
- package/dist/{update-dataset-G6QJJGS5.js → update-dataset-YSOMDCOB.js} +5 -5
- package/dist/{update-dataset-record-RMWLSWCS.js → update-dataset-record-DEA2ITYR.js} +5 -5
- package/dist/{update-evaluator-SFRRI5Q3.js → update-evaluator-NH7Q5GWV.js} +5 -5
- package/dist/{update-project-PI5DWBVK.js → update-project-Q26FBSYH.js} +5 -5
- package/dist/update-prompt-ZQQ2C3KU.js +143 -0
- package/dist/{update-scenario-G3IU2UIB.js → update-scenario-WUX34JAR.js} +12 -5
- package/package.json +8 -9
- package/pyproject.toml +5 -5
- package/src/__tests__/agent-tools.unit.test.ts +257 -0
- package/src/__tests__/all-tools.integration.test.ts +321 -75
- package/src/__tests__/config.unit.test.ts +33 -0
- package/src/__tests__/docker.integration.test.ts +91 -7
- package/src/__tests__/documentation-fetch-security.integration.test.ts +8 -2
- package/src/__tests__/feature-map-tool-drift.unit.test.ts +93 -0
- package/src/__tests__/http-security-origin.unit.test.ts +97 -0
- package/src/__tests__/http-security-sessions.unit.test.ts +209 -0
- package/src/__tests__/http-security-verifier.unit.test.ts +248 -0
- package/src/__tests__/http-server-allocation.integration.test.ts +279 -0
- package/src/__tests__/http-server-origin.integration.test.ts +169 -0
- package/src/__tests__/http-server-session-auth.integration.test.ts +341 -0
- package/src/__tests__/http-transport.integration.test.ts +85 -87
- package/src/__tests__/integration.integration.test.ts +7 -11
- package/src/__tests__/prompt-response-types.unit.test.ts +51 -0
- package/src/__tests__/prompts.integration.test.ts +736 -0
- package/src/__tests__/run-plan-tools.unit.test.ts +565 -0
- package/src/__tests__/scenario-tools.unit.test.ts +19 -0
- package/src/__tests__/simulation-run-tools.unit.test.ts +116 -0
- package/src/__tests__/support/http-server-harness.ts +138 -0
- package/src/__tests__/test-suite-tools.unit.test.ts +615 -0
- package/src/__tests__/{tools.unit.test.ts → tools.integration.test.ts} +31 -59
- package/src/config.ts +17 -2
- package/src/create-mcp-server.ts +334 -55
- package/src/http-security.ts +492 -0
- package/src/http-server.ts +536 -152
- package/src/index.ts +49 -2
- package/src/langwatch-api-agents.ts +196 -12
- package/src/langwatch-api-run-plans.ts +157 -0
- package/src/langwatch-api-scenarios.ts +9 -0
- package/src/langwatch-api-simulation-runs.ts +5 -0
- package/src/langwatch-api-test-suites.ts +135 -0
- package/src/langwatch-api.ts +62 -12
- package/src/schemas/index.ts +5 -0
- package/src/schemas/run-plan.ts +92 -0
- package/src/schemas/suite-fields.ts +149 -0
- package/src/tools/archive-run-plan.ts +12 -0
- package/src/tools/archive-test-suite.ts +12 -0
- package/src/tools/create-scenario.ts +8 -0
- package/src/tools/create-test-suite.ts +43 -0
- package/src/tools/discover-evaluator-schema.ts +2 -2
- package/src/tools/discover-scenario-schema.ts +54 -0
- package/src/tools/format-run-plan.ts +68 -0
- package/src/tools/format-scenario.ts +14 -0
- package/src/tools/format-suite-details.ts +96 -0
- package/src/tools/get-agent.ts +45 -3
- package/src/tools/get-prompt.ts +108 -24
- package/src/tools/get-run-plan.ts +62 -0
- package/src/tools/get-scenario.ts +3 -0
- package/src/tools/get-simulation-run.ts +9 -0
- package/src/tools/get-test-suite.ts +49 -0
- package/src/tools/list-agents.ts +20 -3
- package/src/tools/list-run-plans.ts +47 -0
- package/src/tools/list-scenarios.ts +12 -2
- package/src/tools/list-simulation-runs.ts +6 -2
- package/src/tools/list-test-suites.ts +35 -0
- package/src/tools/rename-test-suite.ts +18 -0
- package/src/tools/rerun-run-plan.ts +21 -0
- package/src/tools/run-agent.ts +54 -6
- package/src/tools/run-plan.ts +49 -0
- package/src/tools/run-test-suite.ts +30 -0
- package/src/tools/test-agent.ts +18 -0
- package/src/tools/update-prompt.ts +195 -10
- package/src/tools/update-scenario.ts +8 -0
- package/src/tools/update-test-suite.ts +45 -0
- package/tsconfig.json +7 -2
- package/uv.lock +418 -298
- package/dist/archive-suite-C3KX6IIZ.js +0 -16
- package/dist/chunk-WDH5P5RF.js +0 -48
- package/dist/create-suite-TWF6BBR4.js +0 -39
- package/dist/get-agent-7QJVPH72.js +0 -29
- package/dist/get-prompt-I753LZKZ.js +0 -46
- package/dist/get-suite-GTOCY5PL.js +0 -45
- package/dist/langwatch-api-workflows-5HRZ7HR4.js +0 -16
- package/dist/list-agents-TIJTP566.js +0 -33
- package/dist/list-suites-5VK4HXEK.js +0 -43
- package/dist/report-issue-DXJ6TPTC.js +0 -412
- package/dist/run-agent-RBSIFKRT.js +0 -37
- package/dist/run-suite-K3DNQ3SE.js +0 -30
- package/dist/update-prompt-RQFTEO7Y.js +0 -25
- package/dist/update-suite-TRGGLNR7.js +0 -40
- package/pnpm-workspace.yaml +0 -34
- package/src/langwatch-api-suites.ts +0 -118
- 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,10 +1,31 @@
|
|
|
1
|
+
import {
|
|
2
|
+
testAgent
|
|
3
|
+
} from "./chunk-EYXMLE5X.js";
|
|
4
|
+
import {
|
|
5
|
+
runParametersSchema,
|
|
6
|
+
runPlanScopeSchema,
|
|
7
|
+
runPlanTargetSchema
|
|
8
|
+
} from "./chunk-HV4DWKBI.js";
|
|
9
|
+
import {
|
|
10
|
+
evaluatorAttachmentsSchema,
|
|
11
|
+
scenarioFieldValuesSchema,
|
|
12
|
+
suiteFieldsSchema,
|
|
13
|
+
toWireAttachments
|
|
14
|
+
} from "./chunk-CKNAH5TG.js";
|
|
15
|
+
import {
|
|
16
|
+
formatEvaluatorAttachments,
|
|
17
|
+
formatSuiteFields
|
|
18
|
+
} from "./chunk-UF6XIGYR.js";
|
|
19
|
+
import {
|
|
20
|
+
updateTestSuite
|
|
21
|
+
} from "./chunk-6DJDEXET.js";
|
|
1
22
|
import {
|
|
2
23
|
LangWatchApiError,
|
|
3
24
|
makeRequest
|
|
4
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-GELJ2MQR.js";
|
|
5
26
|
import {
|
|
6
27
|
requireApiKey
|
|
7
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-WT4PO4A3.js";
|
|
8
29
|
|
|
9
30
|
// src/create-mcp-server.ts
|
|
10
31
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
@@ -13,7 +34,7 @@ import { z as z2 } from "zod";
|
|
|
13
34
|
// package.json
|
|
14
35
|
var package_default = {
|
|
15
36
|
name: "@langwatch/mcp-server",
|
|
16
|
-
version: "1.0
|
|
37
|
+
version: "2.1.0",
|
|
17
38
|
description: "An MCP server for Langwatch.",
|
|
18
39
|
type: "module",
|
|
19
40
|
main: "./dist/index.js",
|
|
@@ -55,21 +76,20 @@ var package_default = {
|
|
|
55
76
|
},
|
|
56
77
|
devDependencies: {
|
|
57
78
|
"@ai-sdk/anthropic": "^3.0.44",
|
|
58
|
-
"@anthropic-ai/claude-code": "2.1.
|
|
79
|
+
"@anthropic-ai/claude-code": "2.1.228",
|
|
59
80
|
"@eslint/js": "^10.0.1",
|
|
60
81
|
"@langwatch/handled-error": "workspace:*",
|
|
61
82
|
"@langwatch/redaction": "workspace:*",
|
|
62
83
|
"@langwatch/scenario": "^0.4.6",
|
|
63
84
|
"@langwatch/ssrf": "workspace:*",
|
|
64
85
|
"@opentelemetry/context-async-hooks": "^2.1.0",
|
|
65
|
-
"@opentelemetry/sdk-node": "^0.
|
|
86
|
+
"@opentelemetry/sdk-node": "^0.221.0",
|
|
66
87
|
"@types/debug": "^4.1.13",
|
|
67
88
|
"@types/express": "^5.0.6",
|
|
68
|
-
"@types/node": "^
|
|
89
|
+
"@types/node": "^26.2.0",
|
|
69
90
|
"@types/yargs": "^17.0.33",
|
|
70
|
-
"@typescript/native-preview": "7.0.0-dev.20260705.1",
|
|
71
91
|
ai: "^6.0.161",
|
|
72
|
-
chalk: "^
|
|
92
|
+
chalk: "^6.0.0",
|
|
73
93
|
"date-fns": "^4.1.0",
|
|
74
94
|
dotenv: "^17.2.2",
|
|
75
95
|
esbuild: "^0.28.1",
|
|
@@ -78,7 +98,7 @@ var package_default = {
|
|
|
78
98
|
"node-pty": "^1.0.0",
|
|
79
99
|
tsup: "^8.1.0",
|
|
80
100
|
tsx: "^4.20.5",
|
|
81
|
-
typescript: "^
|
|
101
|
+
typescript: "^6.0.3",
|
|
82
102
|
"typescript-eslint": "^8.55.0",
|
|
83
103
|
vitest: "^4.1.8",
|
|
84
104
|
yargs: "^18.0.0",
|
|
@@ -680,6 +700,40 @@ async function handleExperimentStatus(params) {
|
|
|
680
700
|
return lines.join("\n");
|
|
681
701
|
}
|
|
682
702
|
|
|
703
|
+
// src/tools/test-agent.ts
|
|
704
|
+
async function handleTestAgent(params) {
|
|
705
|
+
const run = await testAgent(params.id);
|
|
706
|
+
return [
|
|
707
|
+
'Test run scheduled. The user sends "ping"; the run succeeds when the agent answers.',
|
|
708
|
+
"",
|
|
709
|
+
`**Scenario run ID:** ${run.scenarioRunId}`,
|
|
710
|
+
`**Batch run ID:** ${run.batchRunId}`,
|
|
711
|
+
"",
|
|
712
|
+
`Follow it with platform_get_simulation_run using scenarioRunId "${run.scenarioRunId}".`
|
|
713
|
+
].join("\n");
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
// src/tools/update-test-suite.ts
|
|
717
|
+
async function handleUpdateTestSuite(params) {
|
|
718
|
+
const suite = await updateTestSuite({
|
|
719
|
+
id: params.id,
|
|
720
|
+
...params.name !== void 0 ? { name: params.name } : {},
|
|
721
|
+
...params.fields !== void 0 ? { fields: params.fields } : {},
|
|
722
|
+
...params.evaluators !== void 0 ? { evaluators: toWireAttachments(params.evaluators) } : {}
|
|
723
|
+
});
|
|
724
|
+
return [
|
|
725
|
+
`Test suite "${suite.name}" updated.`,
|
|
726
|
+
"",
|
|
727
|
+
`**ID**: ${suite.id}`,
|
|
728
|
+
`**Slug**: ${suite.slug}`,
|
|
729
|
+
`**Scenarios**: ${suite.scenarioCount}`,
|
|
730
|
+
...formatSuiteFields(suite.fields),
|
|
731
|
+
...formatEvaluatorAttachments(suite.evaluators),
|
|
732
|
+
"",
|
|
733
|
+
`**View**: ${suite.platformUrl}`
|
|
734
|
+
].join("\n");
|
|
735
|
+
}
|
|
736
|
+
|
|
683
737
|
// src/create-mcp-server.ts
|
|
684
738
|
var modelSchema = z2.string().describe(
|
|
685
739
|
'Model in "provider/model-name" format, e.g., "openai/gpt-4o", "anthropic/claude-sonnet-4-5-20250929"'
|
|
@@ -738,7 +792,7 @@ function registerTools(server) {
|
|
|
738
792
|
agent: z2.string().optional().describe("Which coding agent this is, e.g. claude-code, codex, cursor")
|
|
739
793
|
},
|
|
740
794
|
withToolLogging("report_issue", async (params) => {
|
|
741
|
-
const { handleReportIssue } = await import("./report-issue-
|
|
795
|
+
const { handleReportIssue } = await import("./report-issue-RHZZ33IS.js");
|
|
742
796
|
return {
|
|
743
797
|
content: [{ type: "text", text: await handleReportIssue(params) }]
|
|
744
798
|
};
|
|
@@ -776,25 +830,25 @@ function registerTools(server) {
|
|
|
776
830
|
},
|
|
777
831
|
async ({ category, evaluatorType }) => {
|
|
778
832
|
if (category === "scenarios") {
|
|
779
|
-
const { formatScenarioSchema } = await import("./discover-scenario-schema-
|
|
833
|
+
const { formatScenarioSchema } = await import("./discover-scenario-schema-W7KBXA4J.js");
|
|
780
834
|
return {
|
|
781
835
|
content: [{ type: "text", text: formatScenarioSchema() }]
|
|
782
836
|
};
|
|
783
837
|
}
|
|
784
838
|
if (category === "evaluators") {
|
|
785
|
-
const { formatEvaluatorSchema } = await import("./discover-evaluator-schema-
|
|
839
|
+
const { formatEvaluatorSchema } = await import("./discover-evaluator-schema-ESSHQGPY.js");
|
|
786
840
|
return {
|
|
787
841
|
content: [
|
|
788
842
|
{ type: "text", text: formatEvaluatorSchema(evaluatorType) }
|
|
789
843
|
]
|
|
790
844
|
};
|
|
791
845
|
}
|
|
792
|
-
const { formatSchema } = await import("./discover-schema-
|
|
846
|
+
const { formatSchema } = await import("./discover-schema-L6QDPON3.js");
|
|
793
847
|
let text = formatSchema(category);
|
|
794
848
|
if (category === "all") {
|
|
795
|
-
const { formatScenarioSchema } = await import("./discover-scenario-schema-
|
|
849
|
+
const { formatScenarioSchema } = await import("./discover-scenario-schema-W7KBXA4J.js");
|
|
796
850
|
text += "\n\n" + formatScenarioSchema();
|
|
797
|
-
const { formatEvaluatorSchema } = await import("./discover-evaluator-schema-
|
|
851
|
+
const { formatEvaluatorSchema } = await import("./discover-evaluator-schema-ESSHQGPY.js");
|
|
798
852
|
text += "\n\n" + formatEvaluatorSchema();
|
|
799
853
|
}
|
|
800
854
|
return { content: [{ type: "text", text }] };
|
|
@@ -820,7 +874,7 @@ function registerTools(server) {
|
|
|
820
874
|
},
|
|
821
875
|
withToolLogging("search_traces", async (params) => {
|
|
822
876
|
requireApiKey();
|
|
823
|
-
const { handleSearchTraces } = await import("./search-traces-
|
|
877
|
+
const { handleSearchTraces } = await import("./search-traces-4XTJYXIK.js");
|
|
824
878
|
return {
|
|
825
879
|
content: [{ type: "text", text: await handleSearchTraces(params) }]
|
|
826
880
|
};
|
|
@@ -837,7 +891,7 @@ function registerTools(server) {
|
|
|
837
891
|
},
|
|
838
892
|
withToolLogging("get_trace", async (params) => {
|
|
839
893
|
requireApiKey();
|
|
840
|
-
const { handleGetTrace } = await import("./get-trace-
|
|
894
|
+
const { handleGetTrace } = await import("./get-trace-RCUV7N4O.js");
|
|
841
895
|
return {
|
|
842
896
|
content: [{ type: "text", text: await handleGetTrace(params) }]
|
|
843
897
|
};
|
|
@@ -863,7 +917,7 @@ function registerTools(server) {
|
|
|
863
917
|
},
|
|
864
918
|
withToolLogging("get_analytics", async (params) => {
|
|
865
919
|
requireApiKey();
|
|
866
|
-
const { handleGetAnalytics } = await import("./get-analytics-
|
|
920
|
+
const { handleGetAnalytics } = await import("./get-analytics-R6AZD3AW.js");
|
|
867
921
|
return {
|
|
868
922
|
content: [{ type: "text", text: await handleGetAnalytics(params) }]
|
|
869
923
|
};
|
|
@@ -897,7 +951,7 @@ NOTE: Prompts can be managed two ways. Determine which approach the user needs:
|
|
|
897
951
|
},
|
|
898
952
|
withToolLogging("platform_create_prompt", async (params) => {
|
|
899
953
|
requireApiKey();
|
|
900
|
-
const { handleCreatePrompt } = await import("./create-prompt-
|
|
954
|
+
const { handleCreatePrompt } = await import("./create-prompt-BS6QRCUU.js");
|
|
901
955
|
return {
|
|
902
956
|
content: [{ type: "text", text: await handleCreatePrompt(params) }]
|
|
903
957
|
};
|
|
@@ -909,7 +963,7 @@ NOTE: Prompts can be managed two ways. Determine which approach the user needs:
|
|
|
909
963
|
{},
|
|
910
964
|
withToolLogging("platform_list_prompts", async () => {
|
|
911
965
|
requireApiKey();
|
|
912
|
-
const { handleListPrompts } = await import("./list-prompts-
|
|
966
|
+
const { handleListPrompts } = await import("./list-prompts-BQOHRHYT.js");
|
|
913
967
|
return {
|
|
914
968
|
content: [{ type: "text", text: await handleListPrompts() }]
|
|
915
969
|
};
|
|
@@ -917,12 +971,15 @@ NOTE: Prompts can be managed two ways. Determine which approach the user needs:
|
|
|
917
971
|
);
|
|
918
972
|
server.tool(
|
|
919
973
|
"platform_get_prompt",
|
|
920
|
-
"Get a specific prompt from the LangWatch platform by ID or handle, including messages, model config, and version history.",
|
|
974
|
+
"Get a specific prompt from the LangWatch platform by ID or handle, including messages, model config, and version history. Use format: 'json' for the full raw API payload, or 'digest' (default) for a formatted summary.",
|
|
921
975
|
{
|
|
922
976
|
idOrHandle: z2.string().describe("Prompt ID or handle"),
|
|
923
977
|
version: z2.number().optional().describe("Specific version number (default: latest)"),
|
|
924
978
|
tag: z2.string().optional().describe(
|
|
925
979
|
'Fetch the version pointed to by this tag (e.g., "production", "staging"). Alternatively, use shorthand in idOrHandle: "pizza-prompt:production"'
|
|
980
|
+
),
|
|
981
|
+
format: z2.enum(["digest", "json"]).optional().describe(
|
|
982
|
+
"Output format: 'digest' (default, AI-readable) or 'json' (full raw data)"
|
|
926
983
|
)
|
|
927
984
|
},
|
|
928
985
|
withToolLogging("platform_get_prompt", async (params) => {
|
|
@@ -933,7 +990,7 @@ NOTE: Prompts can be managed two ways. Determine which approach the user needs:
|
|
|
933
990
|
};
|
|
934
991
|
}
|
|
935
992
|
requireApiKey();
|
|
936
|
-
const { handleGetPrompt } = await import("./get-prompt-
|
|
993
|
+
const { handleGetPrompt } = await import("./get-prompt-GVKXF5NL.js");
|
|
937
994
|
return {
|
|
938
995
|
content: [{ type: "text", text: await handleGetPrompt(params) }]
|
|
939
996
|
};
|
|
@@ -958,7 +1015,7 @@ NOTE: Prompts can be managed two ways. Determine which approach the user needs:
|
|
|
958
1015
|
},
|
|
959
1016
|
withToolLogging("platform_update_prompt", async (params) => {
|
|
960
1017
|
requireApiKey();
|
|
961
|
-
const { handleUpdatePrompt } = await import("./update-prompt-
|
|
1018
|
+
const { handleUpdatePrompt } = await import("./update-prompt-ZQQ2C3KU.js");
|
|
962
1019
|
return {
|
|
963
1020
|
content: [{ type: "text", text: await handleUpdatePrompt(params) }]
|
|
964
1021
|
};
|
|
@@ -974,7 +1031,7 @@ NOTE: Prompts can be managed two ways. Determine which approach the user needs:
|
|
|
974
1031
|
},
|
|
975
1032
|
withToolLogging("platform_assign_prompt_tag", async (params) => {
|
|
976
1033
|
requireApiKey();
|
|
977
|
-
const { handleAssignPromptTag } = await import("./assign-prompt-tag-
|
|
1034
|
+
const { handleAssignPromptTag } = await import("./assign-prompt-tag-Q46WRB6P.js");
|
|
978
1035
|
return {
|
|
979
1036
|
content: [{ type: "text", text: await handleAssignPromptTag(params) }]
|
|
980
1037
|
};
|
|
@@ -986,7 +1043,7 @@ NOTE: Prompts can be managed two ways. Determine which approach the user needs:
|
|
|
986
1043
|
{},
|
|
987
1044
|
withToolLogging("platform_list_prompt_tags", async () => {
|
|
988
1045
|
requireApiKey();
|
|
989
|
-
const { handleListPromptTags } = await import("./list-prompt-tags-
|
|
1046
|
+
const { handleListPromptTags } = await import("./list-prompt-tags-WZFBJOHG.js");
|
|
990
1047
|
return {
|
|
991
1048
|
content: [{ type: "text", text: await handleListPromptTags() }]
|
|
992
1049
|
};
|
|
@@ -1000,7 +1057,7 @@ NOTE: Prompts can be managed two ways. Determine which approach the user needs:
|
|
|
1000
1057
|
},
|
|
1001
1058
|
withToolLogging("platform_create_prompt_tag", async (params) => {
|
|
1002
1059
|
requireApiKey();
|
|
1003
|
-
const { handleCreatePromptTag } = await import("./create-prompt-tag-
|
|
1060
|
+
const { handleCreatePromptTag } = await import("./create-prompt-tag-FCQ5ELSQ.js");
|
|
1004
1061
|
return {
|
|
1005
1062
|
content: [{ type: "text", text: await handleCreatePromptTag(params) }]
|
|
1006
1063
|
};
|
|
@@ -1015,7 +1072,7 @@ NOTE: Prompts can be managed two ways. Determine which approach the user needs:
|
|
|
1015
1072
|
},
|
|
1016
1073
|
withToolLogging("platform_rename_prompt_tag", async (params) => {
|
|
1017
1074
|
requireApiKey();
|
|
1018
|
-
const { handleRenamePromptTag } = await import("./rename-prompt-tag-
|
|
1075
|
+
const { handleRenamePromptTag } = await import("./rename-prompt-tag-K5LQ4CY6.js");
|
|
1019
1076
|
return {
|
|
1020
1077
|
content: [{ type: "text", text: await handleRenamePromptTag(params) }]
|
|
1021
1078
|
};
|
|
@@ -1029,7 +1086,7 @@ NOTE: Prompts can be managed two ways. Determine which approach the user needs:
|
|
|
1029
1086
|
},
|
|
1030
1087
|
withToolLogging("platform_delete_prompt_tag", async (params) => {
|
|
1031
1088
|
requireApiKey();
|
|
1032
|
-
const { handleDeletePromptTag } = await import("./delete-prompt-tag-
|
|
1089
|
+
const { handleDeletePromptTag } = await import("./delete-prompt-tag-QB3OCZUV.js");
|
|
1033
1090
|
return {
|
|
1034
1091
|
content: [{ type: "text", text: await handleDeletePromptTag(params) }]
|
|
1035
1092
|
};
|
|
@@ -1053,11 +1110,15 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1053
1110
|
criteria: z2.array(z2.string()).optional().describe(
|
|
1054
1111
|
"Pass/fail conditions the agent's response must satisfy"
|
|
1055
1112
|
),
|
|
1056
|
-
labels: z2.array(z2.string()).optional().describe("Tags for organizing and filtering scenarios")
|
|
1113
|
+
labels: z2.array(z2.string()).optional().describe("Tags for organizing and filtering scenarios"),
|
|
1114
|
+
testSuiteId: z2.string().nullish().describe(
|
|
1115
|
+
"The test suite to file this scenario in. Pass a test suite ID, or null to unfile it."
|
|
1116
|
+
),
|
|
1117
|
+
fields: scenarioFieldValuesSchema.optional()
|
|
1057
1118
|
},
|
|
1058
1119
|
withToolLogging("platform_create_scenario", async (params) => {
|
|
1059
1120
|
requireApiKey();
|
|
1060
|
-
const { handleCreateScenario } = await import("./create-scenario-
|
|
1121
|
+
const { handleCreateScenario } = await import("./create-scenario-DRPTPXU3.js");
|
|
1061
1122
|
return {
|
|
1062
1123
|
content: [
|
|
1063
1124
|
{ type: "text", text: await handleCreateScenario(params) }
|
|
@@ -1069,13 +1130,14 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1069
1130
|
"platform_list_scenarios",
|
|
1070
1131
|
"List all scenarios on the LangWatch platform. Returns AI-readable digest by default.",
|
|
1071
1132
|
{
|
|
1133
|
+
testSuiteId: z2.string().optional().describe("Only the scenarios filed in this test suite"),
|
|
1072
1134
|
format: z2.enum(["digest", "json"]).optional().describe(
|
|
1073
1135
|
"Output format: 'digest' (default, AI-readable) or 'json' (full raw data)"
|
|
1074
1136
|
)
|
|
1075
1137
|
},
|
|
1076
1138
|
withToolLogging("platform_list_scenarios", async (params) => {
|
|
1077
1139
|
requireApiKey();
|
|
1078
|
-
const { handleListScenarios } = await import("./list-scenarios-
|
|
1140
|
+
const { handleListScenarios } = await import("./list-scenarios-MS4IUIVM.js");
|
|
1079
1141
|
return {
|
|
1080
1142
|
content: [
|
|
1081
1143
|
{ type: "text", text: await handleListScenarios(params) }
|
|
@@ -1094,7 +1156,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1094
1156
|
},
|
|
1095
1157
|
withToolLogging("platform_get_scenario", async (params) => {
|
|
1096
1158
|
requireApiKey();
|
|
1097
|
-
const { handleGetScenario } = await import("./get-scenario-
|
|
1159
|
+
const { handleGetScenario } = await import("./get-scenario-Q3LLQE4T.js");
|
|
1098
1160
|
return {
|
|
1099
1161
|
content: [{ type: "text", text: await handleGetScenario(params) }]
|
|
1100
1162
|
};
|
|
@@ -1108,11 +1170,15 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1108
1170
|
name: z2.string().optional().describe("Updated scenario name"),
|
|
1109
1171
|
situation: z2.string().optional().describe("Updated situation"),
|
|
1110
1172
|
criteria: z2.array(z2.string()).optional().describe("Updated criteria"),
|
|
1111
|
-
labels: z2.array(z2.string()).optional().describe("Updated labels")
|
|
1173
|
+
labels: z2.array(z2.string()).optional().describe("Updated labels"),
|
|
1174
|
+
testSuiteId: z2.string().nullish().describe(
|
|
1175
|
+
"The test suite to file this scenario in. Pass a test suite ID, or null to unfile it."
|
|
1176
|
+
),
|
|
1177
|
+
fields: scenarioFieldValuesSchema.optional()
|
|
1112
1178
|
},
|
|
1113
1179
|
withToolLogging("platform_update_scenario", async (params) => {
|
|
1114
1180
|
requireApiKey();
|
|
1115
|
-
const { handleUpdateScenario } = await import("./update-scenario-
|
|
1181
|
+
const { handleUpdateScenario } = await import("./update-scenario-WUX34JAR.js");
|
|
1116
1182
|
return {
|
|
1117
1183
|
content: [
|
|
1118
1184
|
{ type: "text", text: await handleUpdateScenario(params) }
|
|
@@ -1128,7 +1194,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1128
1194
|
},
|
|
1129
1195
|
withToolLogging("platform_archive_scenario", async (params) => {
|
|
1130
1196
|
requireApiKey();
|
|
1131
|
-
const { handleArchiveScenario } = await import("./archive-scenario-
|
|
1197
|
+
const { handleArchiveScenario } = await import("./archive-scenario-V5UNYK26.js");
|
|
1132
1198
|
return {
|
|
1133
1199
|
content: [
|
|
1134
1200
|
{ type: "text", text: await handleArchiveScenario(params) }
|
|
@@ -1137,98 +1203,215 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1137
1203
|
})
|
|
1138
1204
|
);
|
|
1139
1205
|
server.tool(
|
|
1140
|
-
"
|
|
1141
|
-
"
|
|
1206
|
+
"platform_run_plan",
|
|
1207
|
+
"Run scenarios against targets. The plan name identifies the run plan: an existing name is re-run with the configuration you send here, a new name creates the plan. Configuration is the scope, the targets, the repeat count and the models; parameters, the note and the idempotency key belong to this run alone. Send more than one target to compare them in the same run, and give a target its own parameters to compare one agent on two models.",
|
|
1208
|
+
{
|
|
1209
|
+
name: z2.string().optional().describe(
|
|
1210
|
+
"The run plan to run. An existing name is replaced with this configuration, a new name creates the plan. Omit to let the server name it after the suite and the target."
|
|
1211
|
+
),
|
|
1212
|
+
scope: runPlanScopeSchema.describe(
|
|
1213
|
+
"What the plan covers: every scenario in the project, the scenarios filed in given test suites, the scenarios carrying given labels, or the hand-picked list in scenarioIds."
|
|
1214
|
+
),
|
|
1215
|
+
scenarioIds: z2.array(z2.string()).optional().describe(
|
|
1216
|
+
"The scenarios to run. Read only when scope.mode is 'scenarios'."
|
|
1217
|
+
),
|
|
1218
|
+
targets: z2.array(runPlanTargetSchema).describe(
|
|
1219
|
+
"What to run the scenarios against. Every target runs every scenario, and the results show one column for each, so this is how one run compares two agents or one agent on two models."
|
|
1220
|
+
),
|
|
1221
|
+
repeatCount: z2.number().int().min(1).max(5).optional().describe("How many times to run each scenario against each target (1 to 5, default 1)"),
|
|
1222
|
+
simulatorModel: z2.string().optional().describe("Model that plays the user. Omit for the project default."),
|
|
1223
|
+
judgeModel: z2.string().optional().describe("Model that judges the criteria. Omit for the project default."),
|
|
1224
|
+
evaluators: evaluatorAttachmentsSchema.optional().describe(
|
|
1225
|
+
"The plan's own evaluators, run beside the ones attached to the test suites its scenarios belong to. A plan evaluator reads the conversation and the trace, never a scenario field. Omit to keep what the plan already holds. See discover_schema({ category: 'scenarios' }) for the mapping paths."
|
|
1226
|
+
),
|
|
1227
|
+
parameters: runParametersSchema.optional().describe(
|
|
1228
|
+
"Values for the parameters the scenarios declare, by name. They apply to every target; a target that names the same parameter overrides them for itself."
|
|
1229
|
+
),
|
|
1230
|
+
note: z2.string().max(200).optional().describe("One short line saying why this run was started (max 200 characters)"),
|
|
1231
|
+
idempotencyKey: z2.string().optional().describe("Send the same key to make a retry join the run it already started instead of starting a second one.")
|
|
1232
|
+
},
|
|
1233
|
+
withToolLogging("platform_run_plan", async (params) => {
|
|
1234
|
+
requireApiKey();
|
|
1235
|
+
const { handleRunPlan } = await import("./run-plan-T4ZYOZGA.js");
|
|
1236
|
+
return {
|
|
1237
|
+
content: [{ type: "text", text: await handleRunPlan(params) }]
|
|
1238
|
+
};
|
|
1239
|
+
})
|
|
1240
|
+
);
|
|
1241
|
+
server.tool(
|
|
1242
|
+
"platform_list_run_plans",
|
|
1243
|
+
"List the run plans of the project. A run plan holds the configuration a run used, keyed by its name.",
|
|
1244
|
+
{
|
|
1245
|
+
includeArchived: z2.boolean().optional().describe("Include archived plans (default false)"),
|
|
1246
|
+
format: z2.enum(["digest", "json"]).optional().describe("Output format: 'digest' (default) or 'json' (raw data)")
|
|
1247
|
+
},
|
|
1248
|
+
withToolLogging("platform_list_run_plans", async (params) => {
|
|
1249
|
+
requireApiKey();
|
|
1250
|
+
const { handleListRunPlans } = await import("./list-run-plans-UBAU2DGH.js");
|
|
1251
|
+
return {
|
|
1252
|
+
content: [{ type: "text", text: await handleListRunPlans(params) }]
|
|
1253
|
+
};
|
|
1254
|
+
})
|
|
1255
|
+
);
|
|
1256
|
+
server.tool(
|
|
1257
|
+
"platform_get_run_plan",
|
|
1258
|
+
"Get the full configuration of a run plan: what it covers, its targets, its repeat count and its models.",
|
|
1259
|
+
{
|
|
1260
|
+
id: z2.string().describe("The run plan ID"),
|
|
1261
|
+
format: z2.enum(["digest", "json"]).optional().describe("Output format: 'digest' (default) or 'json'")
|
|
1262
|
+
},
|
|
1263
|
+
withToolLogging("platform_get_run_plan", async (params) => {
|
|
1264
|
+
requireApiKey();
|
|
1265
|
+
const { handleGetRunPlan } = await import("./get-run-plan-NY7J5GRE.js");
|
|
1266
|
+
return {
|
|
1267
|
+
content: [{ type: "text", text: await handleGetRunPlan(params) }]
|
|
1268
|
+
};
|
|
1269
|
+
})
|
|
1270
|
+
);
|
|
1271
|
+
server.tool(
|
|
1272
|
+
"platform_rerun_run_plan",
|
|
1273
|
+
"Run a plan again with the configuration it already holds. Only the parameters and the note belong to the new run.",
|
|
1274
|
+
{
|
|
1275
|
+
id: z2.string().describe("The run plan ID to run again"),
|
|
1276
|
+
parameters: runParametersSchema.optional().describe("Values for the parameters the scenarios declare, by name."),
|
|
1277
|
+
note: z2.string().max(200).optional().describe("One short line saying why this run was started (max 200 characters)")
|
|
1278
|
+
},
|
|
1279
|
+
withToolLogging("platform_rerun_run_plan", async (params) => {
|
|
1280
|
+
requireApiKey();
|
|
1281
|
+
const { handleRerunRunPlan } = await import("./rerun-run-plan-MUDWJBE4.js");
|
|
1282
|
+
return {
|
|
1283
|
+
content: [{ type: "text", text: await handleRerunRunPlan(params) }]
|
|
1284
|
+
};
|
|
1285
|
+
})
|
|
1286
|
+
);
|
|
1287
|
+
server.tool(
|
|
1288
|
+
"platform_archive_run_plan",
|
|
1289
|
+
"Archive a run plan. Its past runs stay readable and the name is free for a new plan.",
|
|
1290
|
+
{
|
|
1291
|
+
id: z2.string().describe("The run plan ID to archive")
|
|
1292
|
+
},
|
|
1293
|
+
withToolLogging("platform_archive_run_plan", async (params) => {
|
|
1294
|
+
requireApiKey();
|
|
1295
|
+
const { handleArchiveRunPlan } = await import("./archive-run-plan-474OKHHU.js");
|
|
1296
|
+
return {
|
|
1297
|
+
content: [{ type: "text", text: await handleArchiveRunPlan(params) }]
|
|
1298
|
+
};
|
|
1299
|
+
})
|
|
1300
|
+
);
|
|
1301
|
+
server.tool(
|
|
1302
|
+
"platform_list_test_suites",
|
|
1303
|
+
"List the test suites of the project. A test suite groups scenarios.",
|
|
1142
1304
|
{
|
|
1143
1305
|
format: z2.enum(["digest", "json"]).optional().describe("Output format: 'digest' (default) or 'json' (raw data)")
|
|
1144
1306
|
},
|
|
1145
|
-
withToolLogging("
|
|
1307
|
+
withToolLogging("platform_list_test_suites", async (params) => {
|
|
1146
1308
|
requireApiKey();
|
|
1147
|
-
const {
|
|
1309
|
+
const { handleListTestSuites } = await import("./list-test-suites-L7R2O6DR.js");
|
|
1148
1310
|
return {
|
|
1149
|
-
content: [{ type: "text", text: await
|
|
1311
|
+
content: [{ type: "text", text: await handleListTestSuites(params) }]
|
|
1150
1312
|
};
|
|
1151
1313
|
})
|
|
1152
1314
|
);
|
|
1153
1315
|
server.tool(
|
|
1154
|
-
"
|
|
1155
|
-
"
|
|
1316
|
+
"platform_create_test_suite",
|
|
1317
|
+
"Create a test suite. A test suite groups scenarios: file a scenario in it by passing the suite ID as testSuiteId on platform_create_scenario or platform_update_scenario. A suite can declare typed fields every scenario carries a value for, and attach saved evaluators that run after every scenario run with mappings from their inputs to the conversation, the scenario's fields or the trace. Call discover_schema({ category: 'scenarios' }) first for the field rules and the mapping paths.",
|
|
1156
1318
|
{
|
|
1157
|
-
|
|
1319
|
+
name: z2.string().describe("Test suite name"),
|
|
1320
|
+
fields: suiteFieldsSchema.optional(),
|
|
1321
|
+
evaluators: evaluatorAttachmentsSchema.optional()
|
|
1322
|
+
},
|
|
1323
|
+
withToolLogging("platform_create_test_suite", async (params) => {
|
|
1324
|
+
requireApiKey();
|
|
1325
|
+
const { handleCreateTestSuite } = await import("./create-test-suite-ZIZCCFJ4.js");
|
|
1326
|
+
return {
|
|
1327
|
+
content: [{ type: "text", text: await handleCreateTestSuite(params) }]
|
|
1328
|
+
};
|
|
1329
|
+
})
|
|
1330
|
+
);
|
|
1331
|
+
server.tool(
|
|
1332
|
+
"platform_get_test_suite",
|
|
1333
|
+
"Get a test suite and the scenarios filed in it.",
|
|
1334
|
+
{
|
|
1335
|
+
id: z2.string().describe("The test suite ID"),
|
|
1158
1336
|
format: z2.enum(["digest", "json"]).optional().describe("Output format: 'digest' (default) or 'json'")
|
|
1159
1337
|
},
|
|
1160
|
-
withToolLogging("
|
|
1338
|
+
withToolLogging("platform_get_test_suite", async (params) => {
|
|
1161
1339
|
requireApiKey();
|
|
1162
|
-
const {
|
|
1340
|
+
const { handleGetTestSuite } = await import("./get-test-suite-4HKA7OKS.js");
|
|
1163
1341
|
return {
|
|
1164
|
-
content: [{ type: "text", text: await
|
|
1342
|
+
content: [{ type: "text", text: await handleGetTestSuite(params) }]
|
|
1165
1343
|
};
|
|
1166
1344
|
})
|
|
1167
1345
|
);
|
|
1168
1346
|
server.tool(
|
|
1169
|
-
"
|
|
1170
|
-
"
|
|
1347
|
+
"platform_update_test_suite",
|
|
1348
|
+
"Edit a test suite: any of its name, its fields and its evaluators. A field list or an evaluator list replaces the one the suite holds; a key left out keeps what the suite has. A field an attached evaluator still reads cannot be removed. Call discover_schema({ category: 'scenarios' }) first for the field rules and the mapping paths.",
|
|
1171
1349
|
{
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
repeatCount: z2.number().optional().describe("Number of times to repeat each scenario-target pair (default: 1)"),
|
|
1177
|
-
labels: z2.array(z2.string()).optional().describe("Tags for organizing suites")
|
|
1350
|
+
id: z2.string().describe("The test suite ID"),
|
|
1351
|
+
name: z2.string().optional().describe("The new name. The slug is kept."),
|
|
1352
|
+
fields: suiteFieldsSchema.optional().describe("The full list of fields the suite declares. It replaces the list the suite holds."),
|
|
1353
|
+
evaluators: evaluatorAttachmentsSchema.optional().describe("The full list of evaluators attached to the suite. It replaces the list the suite holds.")
|
|
1178
1354
|
},
|
|
1179
|
-
withToolLogging("
|
|
1355
|
+
withToolLogging("platform_update_test_suite", async (params) => {
|
|
1180
1356
|
requireApiKey();
|
|
1181
|
-
const { handleCreateSuite } = await import("./create-suite-TWF6BBR4.js");
|
|
1182
1357
|
return {
|
|
1183
|
-
content: [{ type: "text", text: await
|
|
1358
|
+
content: [{ type: "text", text: await handleUpdateTestSuite(params) }]
|
|
1184
1359
|
};
|
|
1185
1360
|
})
|
|
1186
1361
|
);
|
|
1187
1362
|
server.tool(
|
|
1188
|
-
"
|
|
1189
|
-
"
|
|
1363
|
+
"platform_rename_test_suite",
|
|
1364
|
+
"Rename a test suite.",
|
|
1190
1365
|
{
|
|
1191
|
-
id: z2.string().describe("The suite ID
|
|
1192
|
-
name: z2.string().
|
|
1193
|
-
description: z2.string().optional().describe("New description"),
|
|
1194
|
-
scenarioIds: z2.array(z2.string()).optional().describe("New array of scenario IDs"),
|
|
1195
|
-
targets: z2.string().optional().describe("New JSON array of targets"),
|
|
1196
|
-
repeatCount: z2.number().optional().describe("New repeat count"),
|
|
1197
|
-
labels: z2.array(z2.string()).optional().describe("New labels")
|
|
1366
|
+
id: z2.string().describe("The test suite ID"),
|
|
1367
|
+
name: z2.string().describe("The new name")
|
|
1198
1368
|
},
|
|
1199
|
-
withToolLogging("
|
|
1369
|
+
withToolLogging("platform_rename_test_suite", async (params) => {
|
|
1200
1370
|
requireApiKey();
|
|
1201
|
-
const {
|
|
1371
|
+
const { handleRenameTestSuite } = await import("./rename-test-suite-NTYHAO5X.js");
|
|
1202
1372
|
return {
|
|
1203
|
-
content: [{ type: "text", text: await
|
|
1373
|
+
content: [{ type: "text", text: await handleRenameTestSuite(params) }]
|
|
1204
1374
|
};
|
|
1205
1375
|
})
|
|
1206
1376
|
);
|
|
1207
1377
|
server.tool(
|
|
1208
|
-
"
|
|
1209
|
-
"
|
|
1378
|
+
"platform_archive_test_suite",
|
|
1379
|
+
"Archive a test suite. The scenarios filed in it are archived with it.",
|
|
1210
1380
|
{
|
|
1211
|
-
id: z2.string().describe("The suite ID to
|
|
1381
|
+
id: z2.string().describe("The test suite ID to archive")
|
|
1212
1382
|
},
|
|
1213
|
-
withToolLogging("
|
|
1383
|
+
withToolLogging("platform_archive_test_suite", async (params) => {
|
|
1214
1384
|
requireApiKey();
|
|
1215
|
-
const {
|
|
1385
|
+
const { handleArchiveTestSuite } = await import("./archive-test-suite-O7FLDMXK.js");
|
|
1216
1386
|
return {
|
|
1217
|
-
content: [{ type: "text", text: await
|
|
1387
|
+
content: [{ type: "text", text: await handleArchiveTestSuite(params) }]
|
|
1218
1388
|
};
|
|
1219
1389
|
})
|
|
1220
1390
|
);
|
|
1221
1391
|
server.tool(
|
|
1222
|
-
"
|
|
1223
|
-
"
|
|
1392
|
+
"platform_run_test_suite",
|
|
1393
|
+
"Run every scenario of a test suite against targets. This creates or joins the run plan named '<suite name> <target name>' unless you send a name of your own. Send more than one target to compare them in the same run, and give a target its own parameters to compare one agent on two models.",
|
|
1224
1394
|
{
|
|
1225
|
-
id: z2.string().describe("The suite ID to
|
|
1395
|
+
id: z2.string().describe("The test suite ID to run"),
|
|
1396
|
+
targets: z2.array(runPlanTargetSchema).describe(
|
|
1397
|
+
"What to run the scenarios against. Every target runs every scenario, and the results show one column for each."
|
|
1398
|
+
),
|
|
1399
|
+
name: z2.string().optional().describe(
|
|
1400
|
+
"The run plan to run. Omit to let the server name it after the suite and the target."
|
|
1401
|
+
),
|
|
1402
|
+
repeatCount: z2.number().int().min(1).max(5).optional().describe("How many times to run each scenario against each target (1 to 5, default 1)"),
|
|
1403
|
+
simulatorModel: z2.string().optional().describe("Model that plays the user. Omit for the project default."),
|
|
1404
|
+
judgeModel: z2.string().optional().describe("Model that judges the criteria. Omit for the project default."),
|
|
1405
|
+
parameters: runParametersSchema.optional().describe(
|
|
1406
|
+
"Values for the parameters the scenarios declare, by name. They apply to every target; a target that names the same parameter overrides them for itself."
|
|
1407
|
+
),
|
|
1408
|
+
note: z2.string().max(200).optional().describe("One short line saying why this run was started (max 200 characters)")
|
|
1226
1409
|
},
|
|
1227
|
-
withToolLogging("
|
|
1410
|
+
withToolLogging("platform_run_test_suite", async (params) => {
|
|
1228
1411
|
requireApiKey();
|
|
1229
|
-
const {
|
|
1412
|
+
const { handleRunTestSuite } = await import("./run-test-suite-L4MZ7G4D.js");
|
|
1230
1413
|
return {
|
|
1231
|
-
content: [{ type: "text", text: await
|
|
1414
|
+
content: [{ type: "text", text: await handleRunTestSuite(params) }]
|
|
1232
1415
|
};
|
|
1233
1416
|
})
|
|
1234
1417
|
);
|
|
@@ -1243,7 +1426,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1243
1426
|
},
|
|
1244
1427
|
withToolLogging("platform_list_simulation_runs", async (params) => {
|
|
1245
1428
|
requireApiKey();
|
|
1246
|
-
const { handleListSimulationRuns } = await import("./list-simulation-runs-
|
|
1429
|
+
const { handleListSimulationRuns } = await import("./list-simulation-runs-D6YF4ZOU.js");
|
|
1247
1430
|
return {
|
|
1248
1431
|
content: [{ type: "text", text: await handleListSimulationRuns(params) }]
|
|
1249
1432
|
};
|
|
@@ -1251,14 +1434,14 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1251
1434
|
);
|
|
1252
1435
|
server.tool(
|
|
1253
1436
|
"platform_get_simulation_run",
|
|
1254
|
-
"Get full details of a simulation run including conversation messages, results, costs, and
|
|
1437
|
+
"Get full details of a simulation run including conversation messages, results, costs, the verdict and the result of every evaluator attached to its test suite or run plan.",
|
|
1255
1438
|
{
|
|
1256
1439
|
scenarioRunId: z2.string().describe("The simulation run ID"),
|
|
1257
1440
|
format: z2.enum(["digest", "json"]).optional().describe("Output format")
|
|
1258
1441
|
},
|
|
1259
1442
|
withToolLogging("platform_get_simulation_run", async (params) => {
|
|
1260
1443
|
requireApiKey();
|
|
1261
|
-
const { handleGetSimulationRun } = await import("./get-simulation-run-
|
|
1444
|
+
const { handleGetSimulationRun } = await import("./get-simulation-run-WINEYDMK.js");
|
|
1262
1445
|
return {
|
|
1263
1446
|
content: [{ type: "text", text: await handleGetSimulationRun(params) }]
|
|
1264
1447
|
};
|
|
@@ -1275,7 +1458,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1275
1458
|
},
|
|
1276
1459
|
withToolLogging("platform_create_evaluator", async (params) => {
|
|
1277
1460
|
requireApiKey();
|
|
1278
|
-
const { handleCreateEvaluator } = await import("./create-evaluator-
|
|
1461
|
+
const { handleCreateEvaluator } = await import("./create-evaluator-6NV33Z52.js");
|
|
1279
1462
|
return {
|
|
1280
1463
|
content: [
|
|
1281
1464
|
{ type: "text", text: await handleCreateEvaluator(params) }
|
|
@@ -1289,7 +1472,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1289
1472
|
{},
|
|
1290
1473
|
withToolLogging("platform_list_evaluators", async () => {
|
|
1291
1474
|
requireApiKey();
|
|
1292
|
-
const { handleListEvaluators } = await import("./list-evaluators-
|
|
1475
|
+
const { handleListEvaluators } = await import("./list-evaluators-PAX72WCN.js");
|
|
1293
1476
|
return {
|
|
1294
1477
|
content: [{ type: "text", text: await handleListEvaluators() }]
|
|
1295
1478
|
};
|
|
@@ -1303,7 +1486,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1303
1486
|
},
|
|
1304
1487
|
withToolLogging("platform_get_evaluator", async (params) => {
|
|
1305
1488
|
requireApiKey();
|
|
1306
|
-
const { handleGetEvaluator } = await import("./get-evaluator-
|
|
1489
|
+
const { handleGetEvaluator } = await import("./get-evaluator-RZ44UIN6.js");
|
|
1307
1490
|
return {
|
|
1308
1491
|
content: [{ type: "text", text: await handleGetEvaluator(params) }]
|
|
1309
1492
|
};
|
|
@@ -1321,7 +1504,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1321
1504
|
},
|
|
1322
1505
|
withToolLogging("platform_update_evaluator", async (params) => {
|
|
1323
1506
|
requireApiKey();
|
|
1324
|
-
const { handleUpdateEvaluator } = await import("./update-evaluator-
|
|
1507
|
+
const { handleUpdateEvaluator } = await import("./update-evaluator-NH7Q5GWV.js");
|
|
1325
1508
|
return {
|
|
1326
1509
|
content: [
|
|
1327
1510
|
{ type: "text", text: await handleUpdateEvaluator(params) }
|
|
@@ -1337,7 +1520,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1337
1520
|
},
|
|
1338
1521
|
withToolLogging("platform_delete_evaluator", async (params) => {
|
|
1339
1522
|
requireApiKey();
|
|
1340
|
-
const { handleDeleteEvaluator } = await import("./delete-evaluator-
|
|
1523
|
+
const { handleDeleteEvaluator } = await import("./delete-evaluator-RKYC4TNB.js");
|
|
1341
1524
|
return {
|
|
1342
1525
|
content: [{ type: "text", text: await handleDeleteEvaluator(params) }]
|
|
1343
1526
|
};
|
|
@@ -1358,7 +1541,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1358
1541
|
},
|
|
1359
1542
|
withToolLogging("platform_set_model_provider", async (params) => {
|
|
1360
1543
|
requireApiKey();
|
|
1361
|
-
const { handleSetModelProvider } = await import("./set-model-provider-
|
|
1544
|
+
const { handleSetModelProvider } = await import("./set-model-provider-XRNMFOVR.js");
|
|
1362
1545
|
return {
|
|
1363
1546
|
content: [
|
|
1364
1547
|
{ type: "text", text: await handleSetModelProvider(params) }
|
|
@@ -1372,7 +1555,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1372
1555
|
{},
|
|
1373
1556
|
withToolLogging("platform_list_model_providers", async () => {
|
|
1374
1557
|
requireApiKey();
|
|
1375
|
-
const { handleListModelProviders } = await import("./list-model-providers-
|
|
1558
|
+
const { handleListModelProviders } = await import("./list-model-providers-VVLZMLCX.js");
|
|
1376
1559
|
return {
|
|
1377
1560
|
content: [{ type: "text", text: await handleListModelProviders() }]
|
|
1378
1561
|
};
|
|
@@ -1380,11 +1563,11 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1380
1563
|
);
|
|
1381
1564
|
server.tool(
|
|
1382
1565
|
"platform_list_agents",
|
|
1383
|
-
"List all agents in the LangWatch project with their names, types
|
|
1566
|
+
"List all agents in the LangWatch project with their names, types and IDs. A connected agent (one that registered itself from code with connectAgent or connect_agent) also shows its environment, whether it is online, how many instances are connected, and its owner.",
|
|
1384
1567
|
{},
|
|
1385
1568
|
withToolLogging("platform_list_agents", async () => {
|
|
1386
1569
|
requireApiKey();
|
|
1387
|
-
const { handleListAgents } = await import("./list-agents-
|
|
1570
|
+
const { handleListAgents } = await import("./list-agents-AMVDQPQL.js");
|
|
1388
1571
|
return {
|
|
1389
1572
|
content: [{ type: "text", text: await handleListAgents() }]
|
|
1390
1573
|
};
|
|
@@ -1392,13 +1575,13 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1392
1575
|
);
|
|
1393
1576
|
server.tool(
|
|
1394
1577
|
"platform_get_agent",
|
|
1395
|
-
"Get detailed information about a specific agent by its ID, including its configuration.",
|
|
1578
|
+
"Get detailed information about a specific agent by its ID, including its configuration. A connected agent also shows its environment, status, the run parameters it declared (with options and defaults) and the instances connected right now.",
|
|
1396
1579
|
{
|
|
1397
1580
|
id: z2.string().describe("The agent ID")
|
|
1398
1581
|
},
|
|
1399
1582
|
withToolLogging("platform_get_agent", async (params) => {
|
|
1400
1583
|
requireApiKey();
|
|
1401
|
-
const { handleGetAgent } = await import("./get-agent-
|
|
1584
|
+
const { handleGetAgent } = await import("./get-agent-7THF7HCU.js");
|
|
1402
1585
|
return {
|
|
1403
1586
|
content: [{ type: "text", text: await handleGetAgent(params) }]
|
|
1404
1587
|
};
|
|
@@ -1406,7 +1589,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1406
1589
|
);
|
|
1407
1590
|
server.tool(
|
|
1408
1591
|
"platform_create_agent",
|
|
1409
|
-
"Create a new agent. Supported types: 'signature' (LLM prompt), 'code' (Python), 'workflow' (sub-workflow), 'http' (external API).",
|
|
1592
|
+
"Create a new agent. Supported types: 'signature' (LLM prompt), 'code' (Python), 'workflow' (sub-workflow), 'http' (external API). A 'connected' agent is not created here: it registers itself from code, with connectAgent from langwatch/agent in TypeScript or langwatch.connect_agent in Python, and appears in the list once that process runs.",
|
|
1410
1593
|
{
|
|
1411
1594
|
name: z2.string().describe("Agent name"),
|
|
1412
1595
|
type: z2.enum(["signature", "code", "workflow", "http"]).describe("Agent type"),
|
|
@@ -1414,7 +1597,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1414
1597
|
},
|
|
1415
1598
|
withToolLogging("platform_create_agent", async (params) => {
|
|
1416
1599
|
requireApiKey();
|
|
1417
|
-
const { handleCreateAgent } = await import("./create-agent-
|
|
1600
|
+
const { handleCreateAgent } = await import("./create-agent-JFJ2K6X3.js");
|
|
1418
1601
|
const parsedConfig = params.config ? JSON.parse(params.config) : void 0;
|
|
1419
1602
|
return {
|
|
1420
1603
|
content: [{ type: "text", text: await handleCreateAgent({ ...params, config: parsedConfig }) }]
|
|
@@ -1432,7 +1615,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1432
1615
|
},
|
|
1433
1616
|
withToolLogging("platform_update_agent", async (params) => {
|
|
1434
1617
|
requireApiKey();
|
|
1435
|
-
const { handleUpdateAgent } = await import("./update-agent-
|
|
1618
|
+
const { handleUpdateAgent } = await import("./update-agent-DUWNYBNA.js");
|
|
1436
1619
|
const parsedConfig = params.config ? JSON.parse(params.config) : void 0;
|
|
1437
1620
|
return {
|
|
1438
1621
|
content: [{ type: "text", text: await handleUpdateAgent({ ...params, config: parsedConfig }) }]
|
|
@@ -1447,7 +1630,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1447
1630
|
},
|
|
1448
1631
|
withToolLogging("platform_delete_agent", async (params) => {
|
|
1449
1632
|
requireApiKey();
|
|
1450
|
-
const { handleDeleteAgent } = await import("./delete-agent-
|
|
1633
|
+
const { handleDeleteAgent } = await import("./delete-agent-SA4JMUZF.js");
|
|
1451
1634
|
return {
|
|
1452
1635
|
content: [{ type: "text", text: await handleDeleteAgent(params) }]
|
|
1453
1636
|
};
|
|
@@ -1455,26 +1638,44 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1455
1638
|
);
|
|
1456
1639
|
server.tool(
|
|
1457
1640
|
"platform_run_agent",
|
|
1458
|
-
"
|
|
1641
|
+
"Run one turn of an agent. A connected agent runs through the platform relay on a live instance: give `message` (one user turn) or `input` with a `messages` list, plus `parameters` and `threadId` to continue a conversation. HTTP agents call their configured URL directly; workflow-linked agents execute via the workflow engine.",
|
|
1459
1642
|
{
|
|
1460
1643
|
id: z2.string().describe("The agent ID to run"),
|
|
1461
|
-
input: z2.string().optional().describe(
|
|
1644
|
+
input: z2.string().optional().describe(
|
|
1645
|
+
"Input data as a JSON object string. For a connected agent it is the relay body: messages (OpenAI style), and optionally threadId, session and params."
|
|
1646
|
+
),
|
|
1647
|
+
message: z2.string().optional().describe("One user message to send to a connected agent, instead of input"),
|
|
1648
|
+
parameters: z2.record(z2.string(), z2.union([z2.string(), z2.number(), z2.boolean()])).optional().describe("Run parameter values for a connected agent, by name"),
|
|
1649
|
+
threadId: z2.string().optional().describe("Continue a conversation on a connected agent")
|
|
1462
1650
|
},
|
|
1463
1651
|
withToolLogging("platform_run_agent", async (params) => {
|
|
1464
1652
|
requireApiKey();
|
|
1465
|
-
const { handleRunAgent } = await import("./run-agent-
|
|
1653
|
+
const { handleRunAgent } = await import("./run-agent-CAGWGTYT.js");
|
|
1466
1654
|
return {
|
|
1467
1655
|
content: [{ type: "text", text: await handleRunAgent(params) }]
|
|
1468
1656
|
};
|
|
1469
1657
|
})
|
|
1470
1658
|
);
|
|
1659
|
+
server.tool(
|
|
1660
|
+
"platform_test_agent",
|
|
1661
|
+
'Test an agent with one scripted scenario run: the user sends "ping", the agent answers, and the run succeeds when the answer arrives. No model is used, and no scenario, run plan or test suite is added to the project. Answers at once with the scenario run id to follow with platform_get_simulation_run; the run itself is asynchronous.',
|
|
1662
|
+
{
|
|
1663
|
+
id: z2.string().describe("The agent ID to test")
|
|
1664
|
+
},
|
|
1665
|
+
withToolLogging("platform_test_agent", async (params) => {
|
|
1666
|
+
requireApiKey();
|
|
1667
|
+
return {
|
|
1668
|
+
content: [{ type: "text", text: await handleTestAgent(params) }]
|
|
1669
|
+
};
|
|
1670
|
+
})
|
|
1671
|
+
);
|
|
1471
1672
|
server.tool(
|
|
1472
1673
|
"platform_list_dashboards",
|
|
1473
1674
|
"List all analytics dashboards in the LangWatch project.",
|
|
1474
1675
|
{},
|
|
1475
1676
|
withToolLogging("platform_list_dashboards", async () => {
|
|
1476
1677
|
requireApiKey();
|
|
1477
|
-
const { handleListDashboards } = await import("./list-dashboards-
|
|
1678
|
+
const { handleListDashboards } = await import("./list-dashboards-Z3BZKDGF.js");
|
|
1478
1679
|
return {
|
|
1479
1680
|
content: [{ type: "text", text: await handleListDashboards() }]
|
|
1480
1681
|
};
|
|
@@ -1488,7 +1689,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1488
1689
|
},
|
|
1489
1690
|
withToolLogging("platform_get_dashboard", async (params) => {
|
|
1490
1691
|
requireApiKey();
|
|
1491
|
-
const { handleGetDashboard } = await import("./get-dashboard-
|
|
1692
|
+
const { handleGetDashboard } = await import("./get-dashboard-P4WWVHFU.js");
|
|
1492
1693
|
return {
|
|
1493
1694
|
content: [{ type: "text", text: await handleGetDashboard(params) }]
|
|
1494
1695
|
};
|
|
@@ -1502,7 +1703,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1502
1703
|
},
|
|
1503
1704
|
withToolLogging("platform_create_dashboard", async (params) => {
|
|
1504
1705
|
requireApiKey();
|
|
1505
|
-
const { handleCreateDashboard } = await import("./create-dashboard-
|
|
1706
|
+
const { handleCreateDashboard } = await import("./create-dashboard-Z76AIPLS.js");
|
|
1506
1707
|
return {
|
|
1507
1708
|
content: [{ type: "text", text: await handleCreateDashboard(params) }]
|
|
1508
1709
|
};
|
|
@@ -1516,7 +1717,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1516
1717
|
},
|
|
1517
1718
|
withToolLogging("platform_delete_dashboard", async (params) => {
|
|
1518
1719
|
requireApiKey();
|
|
1519
|
-
const { handleDeleteDashboard } = await import("./delete-dashboard-
|
|
1720
|
+
const { handleDeleteDashboard } = await import("./delete-dashboard-LYMRPF27.js");
|
|
1520
1721
|
return {
|
|
1521
1722
|
content: [{ type: "text", text: await handleDeleteDashboard(params) }]
|
|
1522
1723
|
};
|
|
@@ -1531,7 +1732,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1531
1732
|
},
|
|
1532
1733
|
withToolLogging("platform_rename_dashboard", async (params) => {
|
|
1533
1734
|
requireApiKey();
|
|
1534
|
-
const { renameDashboard } = await import("./langwatch-api-dashboards-
|
|
1735
|
+
const { renameDashboard } = await import("./langwatch-api-dashboards-2KJL2M42.js");
|
|
1535
1736
|
const result = await renameDashboard(params.id, { name: params.name });
|
|
1536
1737
|
return {
|
|
1537
1738
|
content: [{ type: "text", text: `Dashboard "${result.name}" renamed successfully (ID: ${result.id}).` }]
|
|
@@ -1544,7 +1745,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1544
1745
|
{},
|
|
1545
1746
|
withToolLogging("platform_list_workflows", async () => {
|
|
1546
1747
|
requireApiKey();
|
|
1547
|
-
const { handleListWorkflows } = await import("./list-workflows-
|
|
1748
|
+
const { handleListWorkflows } = await import("./list-workflows-6MV4XJHF.js");
|
|
1548
1749
|
return {
|
|
1549
1750
|
content: [{ type: "text", text: await handleListWorkflows() }]
|
|
1550
1751
|
};
|
|
@@ -1558,7 +1759,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1558
1759
|
},
|
|
1559
1760
|
withToolLogging("platform_get_workflow", async (params) => {
|
|
1560
1761
|
requireApiKey();
|
|
1561
|
-
const { handleGetWorkflow } = await import("./get-workflow-
|
|
1762
|
+
const { handleGetWorkflow } = await import("./get-workflow-EEOC7Y45.js");
|
|
1562
1763
|
return {
|
|
1563
1764
|
content: [{ type: "text", text: await handleGetWorkflow(params) }]
|
|
1564
1765
|
};
|
|
@@ -1572,7 +1773,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1572
1773
|
},
|
|
1573
1774
|
withToolLogging("platform_delete_workflow", async (params) => {
|
|
1574
1775
|
requireApiKey();
|
|
1575
|
-
const { handleDeleteWorkflow } = await import("./delete-workflow-
|
|
1776
|
+
const { handleDeleteWorkflow } = await import("./delete-workflow-NG2VXYYM.js");
|
|
1576
1777
|
return {
|
|
1577
1778
|
content: [{ type: "text", text: await handleDeleteWorkflow(params) }]
|
|
1578
1779
|
};
|
|
@@ -1587,7 +1788,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1587
1788
|
},
|
|
1588
1789
|
withToolLogging("platform_run_workflow", async (params) => {
|
|
1589
1790
|
requireApiKey();
|
|
1590
|
-
const { handleRunWorkflow } = await import("./run-workflow-
|
|
1791
|
+
const { handleRunWorkflow } = await import("./run-workflow-DFIS23AP.js");
|
|
1591
1792
|
return {
|
|
1592
1793
|
content: [{ type: "text", text: await handleRunWorkflow(params) }]
|
|
1593
1794
|
};
|
|
@@ -1601,7 +1802,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1601
1802
|
},
|
|
1602
1803
|
withToolLogging("platform_list_annotations", async (params) => {
|
|
1603
1804
|
requireApiKey();
|
|
1604
|
-
const { handleListAnnotations } = await import("./list-annotations-
|
|
1805
|
+
const { handleListAnnotations } = await import("./list-annotations-6PR5NLIC.js");
|
|
1605
1806
|
return {
|
|
1606
1807
|
content: [{ type: "text", text: await handleListAnnotations(params) }]
|
|
1607
1808
|
};
|
|
@@ -1618,7 +1819,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1618
1819
|
},
|
|
1619
1820
|
withToolLogging("platform_create_annotation", async (params) => {
|
|
1620
1821
|
requireApiKey();
|
|
1621
|
-
const { handleCreateAnnotation } = await import("./create-annotation-
|
|
1822
|
+
const { handleCreateAnnotation } = await import("./create-annotation-EUXXQ6NS.js");
|
|
1622
1823
|
return {
|
|
1623
1824
|
content: [{ type: "text", text: await handleCreateAnnotation(params) }]
|
|
1624
1825
|
};
|
|
@@ -1632,7 +1833,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1632
1833
|
},
|
|
1633
1834
|
withToolLogging("platform_delete_annotation", async (params) => {
|
|
1634
1835
|
requireApiKey();
|
|
1635
|
-
const { handleDeleteAnnotation } = await import("./delete-annotation-
|
|
1836
|
+
const { handleDeleteAnnotation } = await import("./delete-annotation-X3KKK7QY.js");
|
|
1636
1837
|
return {
|
|
1637
1838
|
content: [{ type: "text", text: await handleDeleteAnnotation(params) }]
|
|
1638
1839
|
};
|
|
@@ -1646,7 +1847,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1646
1847
|
},
|
|
1647
1848
|
withToolLogging("platform_get_annotation", async (params) => {
|
|
1648
1849
|
requireApiKey();
|
|
1649
|
-
const { getAnnotation } = await import("./langwatch-api-annotations-
|
|
1850
|
+
const { getAnnotation } = await import("./langwatch-api-annotations-6DHVZWUK.js");
|
|
1650
1851
|
const annotation = await getAnnotation(params.id);
|
|
1651
1852
|
const lines = [
|
|
1652
1853
|
`**ID**: ${annotation.id}`,
|
|
@@ -1668,7 +1869,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1668
1869
|
},
|
|
1669
1870
|
withToolLogging("platform_list_triggers", async (params) => {
|
|
1670
1871
|
requireApiKey();
|
|
1671
|
-
const { listTriggers } = await import("./langwatch-api-triggers-
|
|
1872
|
+
const { listTriggers } = await import("./langwatch-api-triggers-5E6DDGX6.js");
|
|
1672
1873
|
const triggers = await listTriggers();
|
|
1673
1874
|
if (params.format === "json") {
|
|
1674
1875
|
return { content: [{ type: "text", text: JSON.stringify(triggers, null, 2) }] };
|
|
@@ -1701,7 +1902,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1701
1902
|
},
|
|
1702
1903
|
withToolLogging("platform_create_trigger", async (params) => {
|
|
1703
1904
|
requireApiKey();
|
|
1704
|
-
const { createTrigger } = await import("./langwatch-api-triggers-
|
|
1905
|
+
const { createTrigger } = await import("./langwatch-api-triggers-5E6DDGX6.js");
|
|
1705
1906
|
let filters = {};
|
|
1706
1907
|
if (params.filters) {
|
|
1707
1908
|
try {
|
|
@@ -1732,7 +1933,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1732
1933
|
},
|
|
1733
1934
|
withToolLogging("platform_update_trigger", async (params) => {
|
|
1734
1935
|
requireApiKey();
|
|
1735
|
-
const { updateTrigger } = await import("./langwatch-api-triggers-
|
|
1936
|
+
const { updateTrigger } = await import("./langwatch-api-triggers-5E6DDGX6.js");
|
|
1736
1937
|
const trigger = await updateTrigger(params);
|
|
1737
1938
|
return { content: [{ type: "text", text: `Trigger "${trigger.name}" updated (active: ${trigger.active}).` }] };
|
|
1738
1939
|
})
|
|
@@ -1745,7 +1946,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1745
1946
|
},
|
|
1746
1947
|
withToolLogging("platform_delete_trigger", async (params) => {
|
|
1747
1948
|
requireApiKey();
|
|
1748
|
-
const { deleteTrigger } = await import("./langwatch-api-triggers-
|
|
1949
|
+
const { deleteTrigger } = await import("./langwatch-api-triggers-5E6DDGX6.js");
|
|
1749
1950
|
const result = await deleteTrigger(params.id);
|
|
1750
1951
|
return { content: [{ type: "text", text: `Trigger ${result.id} deleted.` }] };
|
|
1751
1952
|
})
|
|
@@ -1756,7 +1957,7 @@ NOTE: Scenarios can be created two ways. Determine which approach the user needs
|
|
|
1756
1957
|
{},
|
|
1757
1958
|
withToolLogging("platform_list_monitors", async () => {
|
|
1758
1959
|
requireApiKey();
|
|
1759
|
-
const { listMonitors } = await import("./langwatch-api-monitors-
|
|
1960
|
+
const { listMonitors } = await import("./langwatch-api-monitors-6ISFJ7WX.js");
|
|
1760
1961
|
const monitors = await listMonitors();
|
|
1761
1962
|
if (monitors.length === 0) {
|
|
1762
1963
|
return { content: [{ type: "text", text: "No monitors found." }] };
|
|
@@ -1783,7 +1984,7 @@ ${lines.join("\n")}`
|
|
|
1783
1984
|
},
|
|
1784
1985
|
withToolLogging("platform_get_monitor", async (params) => {
|
|
1785
1986
|
requireApiKey();
|
|
1786
|
-
const { getMonitor } = await import("./langwatch-api-monitors-
|
|
1987
|
+
const { getMonitor } = await import("./langwatch-api-monitors-6ISFJ7WX.js");
|
|
1787
1988
|
const m = await getMonitor(params.id);
|
|
1788
1989
|
const lines = [
|
|
1789
1990
|
`**${m.name}** (${m.id})`,
|
|
@@ -1810,7 +2011,7 @@ ${lines.join("\n")}`
|
|
|
1810
2011
|
},
|
|
1811
2012
|
withToolLogging("platform_create_monitor", async (params) => {
|
|
1812
2013
|
requireApiKey();
|
|
1813
|
-
const { createMonitor } = await import("./langwatch-api-monitors-
|
|
2014
|
+
const { createMonitor } = await import("./langwatch-api-monitors-6ISFJ7WX.js");
|
|
1814
2015
|
const monitor = await createMonitor(params);
|
|
1815
2016
|
return {
|
|
1816
2017
|
content: [
|
|
@@ -1834,7 +2035,7 @@ ${lines.join("\n")}`
|
|
|
1834
2035
|
},
|
|
1835
2036
|
withToolLogging("platform_update_monitor", async (params) => {
|
|
1836
2037
|
requireApiKey();
|
|
1837
|
-
const { updateMonitor } = await import("./langwatch-api-monitors-
|
|
2038
|
+
const { updateMonitor } = await import("./langwatch-api-monitors-6ISFJ7WX.js");
|
|
1838
2039
|
const monitor = await updateMonitor(params);
|
|
1839
2040
|
return {
|
|
1840
2041
|
content: [
|
|
@@ -1854,7 +2055,7 @@ ${lines.join("\n")}`
|
|
|
1854
2055
|
},
|
|
1855
2056
|
withToolLogging("platform_delete_monitor", async (params) => {
|
|
1856
2057
|
requireApiKey();
|
|
1857
|
-
const { deleteMonitor } = await import("./langwatch-api-monitors-
|
|
2058
|
+
const { deleteMonitor } = await import("./langwatch-api-monitors-6ISFJ7WX.js");
|
|
1858
2059
|
const result = await deleteMonitor(params.id);
|
|
1859
2060
|
return {
|
|
1860
2061
|
content: [
|
|
@@ -1869,7 +2070,7 @@ ${lines.join("\n")}`
|
|
|
1869
2070
|
{},
|
|
1870
2071
|
withToolLogging("platform_list_secrets", async () => {
|
|
1871
2072
|
requireApiKey();
|
|
1872
|
-
const { listSecrets } = await import("./langwatch-api-secrets-
|
|
2073
|
+
const { listSecrets } = await import("./langwatch-api-secrets-OEBD6GBU.js");
|
|
1873
2074
|
const secrets = await listSecrets();
|
|
1874
2075
|
if (secrets.length === 0) {
|
|
1875
2076
|
return { content: [{ type: "text", text: "No secrets found." }] };
|
|
@@ -1897,7 +2098,7 @@ ${lines.join("\n")}`
|
|
|
1897
2098
|
},
|
|
1898
2099
|
withToolLogging("platform_create_secret", async (params) => {
|
|
1899
2100
|
requireApiKey();
|
|
1900
|
-
const { createSecret } = await import("./langwatch-api-secrets-
|
|
2101
|
+
const { createSecret } = await import("./langwatch-api-secrets-OEBD6GBU.js");
|
|
1901
2102
|
const secret = await createSecret({ name: params.name, value: params.value });
|
|
1902
2103
|
return {
|
|
1903
2104
|
content: [
|
|
@@ -1918,7 +2119,7 @@ ${lines.join("\n")}`
|
|
|
1918
2119
|
},
|
|
1919
2120
|
withToolLogging("platform_update_secret", async (params) => {
|
|
1920
2121
|
requireApiKey();
|
|
1921
|
-
const { updateSecret } = await import("./langwatch-api-secrets-
|
|
2122
|
+
const { updateSecret } = await import("./langwatch-api-secrets-OEBD6GBU.js");
|
|
1922
2123
|
const secret = await updateSecret({ id: params.id, value: params.value });
|
|
1923
2124
|
return {
|
|
1924
2125
|
content: [
|
|
@@ -1938,7 +2139,7 @@ ${lines.join("\n")}`
|
|
|
1938
2139
|
},
|
|
1939
2140
|
withToolLogging("platform_delete_secret", async (params) => {
|
|
1940
2141
|
requireApiKey();
|
|
1941
|
-
const { deleteSecret } = await import("./langwatch-api-secrets-
|
|
2142
|
+
const { deleteSecret } = await import("./langwatch-api-secrets-OEBD6GBU.js");
|
|
1942
2143
|
const result = await deleteSecret(params.id);
|
|
1943
2144
|
return { content: [{ type: "text", text: `Secret ${result.id} deleted.` }] };
|
|
1944
2145
|
})
|
|
@@ -2041,7 +2242,7 @@ ${lines.join("\n")}`
|
|
|
2041
2242
|
async (params) => {
|
|
2042
2243
|
const { requireApiKey: requireApiKey2 } = await import("./config.js");
|
|
2043
2244
|
requireApiKey2();
|
|
2044
|
-
const { handleListDatasets } = await import("./list-datasets-
|
|
2245
|
+
const { handleListDatasets } = await import("./list-datasets-WXZL6UMP.js");
|
|
2045
2246
|
return {
|
|
2046
2247
|
content: [{ type: "text", text: await handleListDatasets(params) }]
|
|
2047
2248
|
};
|
|
@@ -2059,7 +2260,7 @@ ${lines.join("\n")}`
|
|
|
2059
2260
|
async (params) => {
|
|
2060
2261
|
const { requireApiKey: requireApiKey2 } = await import("./config.js");
|
|
2061
2262
|
requireApiKey2();
|
|
2062
|
-
const { handleGetDataset } = await import("./get-dataset-
|
|
2263
|
+
const { handleGetDataset } = await import("./get-dataset-AKTYSQDI.js");
|
|
2063
2264
|
return {
|
|
2064
2265
|
content: [{ type: "text", text: await handleGetDataset(params) }]
|
|
2065
2266
|
};
|
|
@@ -2072,7 +2273,7 @@ ${lines.join("\n")}`
|
|
|
2072
2273
|
async (params) => {
|
|
2073
2274
|
const { requireApiKey: requireApiKey2 } = await import("./config.js");
|
|
2074
2275
|
requireApiKey2();
|
|
2075
|
-
const { handleCreateDataset } = await import("./create-dataset-
|
|
2276
|
+
const { handleCreateDataset } = await import("./create-dataset-FD5VAXU4.js");
|
|
2076
2277
|
return {
|
|
2077
2278
|
content: [{ type: "text", text: await handleCreateDataset(params) }]
|
|
2078
2279
|
};
|
|
@@ -2089,7 +2290,7 @@ ${lines.join("\n")}`
|
|
|
2089
2290
|
async (params) => {
|
|
2090
2291
|
const { requireApiKey: requireApiKey2 } = await import("./config.js");
|
|
2091
2292
|
requireApiKey2();
|
|
2092
|
-
const { handleUpdateDataset } = await import("./update-dataset-
|
|
2293
|
+
const { handleUpdateDataset } = await import("./update-dataset-YSOMDCOB.js");
|
|
2093
2294
|
return {
|
|
2094
2295
|
content: [{ type: "text", text: await handleUpdateDataset(params) }]
|
|
2095
2296
|
};
|
|
@@ -2104,7 +2305,7 @@ ${lines.join("\n")}`
|
|
|
2104
2305
|
async (params) => {
|
|
2105
2306
|
const { requireApiKey: requireApiKey2 } = await import("./config.js");
|
|
2106
2307
|
requireApiKey2();
|
|
2107
|
-
const { handleDeleteDataset } = await import("./delete-dataset-
|
|
2308
|
+
const { handleDeleteDataset } = await import("./delete-dataset-W6EZ44HY.js");
|
|
2108
2309
|
return {
|
|
2109
2310
|
content: [{ type: "text", text: await handleDeleteDataset(params) }]
|
|
2110
2311
|
};
|
|
@@ -2122,7 +2323,7 @@ ${lines.join("\n")}`
|
|
|
2122
2323
|
async (params) => {
|
|
2123
2324
|
const { requireApiKey: requireApiKey2 } = await import("./config.js");
|
|
2124
2325
|
requireApiKey2();
|
|
2125
|
-
const { handleListDatasetRecords } = await import("./list-dataset-records-
|
|
2326
|
+
const { handleListDatasetRecords } = await import("./list-dataset-records-O67HZ35Y.js");
|
|
2126
2327
|
return {
|
|
2127
2328
|
content: [
|
|
2128
2329
|
{ type: "text", text: await handleListDatasetRecords(params) }
|
|
@@ -2140,7 +2341,7 @@ ${lines.join("\n")}`
|
|
|
2140
2341
|
async (params) => {
|
|
2141
2342
|
const { requireApiKey: requireApiKey2 } = await import("./config.js");
|
|
2142
2343
|
requireApiKey2();
|
|
2143
|
-
const { handleCreateDatasetRecords } = await import("./create-dataset-records-
|
|
2344
|
+
const { handleCreateDatasetRecords } = await import("./create-dataset-records-WQUXXOHI.js");
|
|
2144
2345
|
return {
|
|
2145
2346
|
content: [
|
|
2146
2347
|
{ type: "text", text: await handleCreateDatasetRecords(params) }
|
|
@@ -2159,7 +2360,7 @@ ${lines.join("\n")}`
|
|
|
2159
2360
|
async (params) => {
|
|
2160
2361
|
const { requireApiKey: requireApiKey2 } = await import("./config.js");
|
|
2161
2362
|
requireApiKey2();
|
|
2162
|
-
const { handleUpdateDatasetRecord } = await import("./update-dataset-record-
|
|
2363
|
+
const { handleUpdateDatasetRecord } = await import("./update-dataset-record-DEA2ITYR.js");
|
|
2163
2364
|
return {
|
|
2164
2365
|
content: [
|
|
2165
2366
|
{ type: "text", text: await handleUpdateDatasetRecord(params) }
|
|
@@ -2177,7 +2378,7 @@ ${lines.join("\n")}`
|
|
|
2177
2378
|
async (params) => {
|
|
2178
2379
|
const { requireApiKey: requireApiKey2 } = await import("./config.js");
|
|
2179
2380
|
requireApiKey2();
|
|
2180
|
-
const { handleDeleteDatasetRecords } = await import("./delete-dataset-records-
|
|
2381
|
+
const { handleDeleteDatasetRecords } = await import("./delete-dataset-records-7CNOTALB.js");
|
|
2181
2382
|
return {
|
|
2182
2383
|
content: [
|
|
2183
2384
|
{ type: "text", text: await handleDeleteDatasetRecords(params) }
|
|
@@ -2194,7 +2395,7 @@ ${lines.join("\n")}`
|
|
|
2194
2395
|
},
|
|
2195
2396
|
withToolLogging("platform_list_projects", async (params) => {
|
|
2196
2397
|
requireApiKey();
|
|
2197
|
-
const { handleListProjects } = await import("./list-projects-
|
|
2398
|
+
const { handleListProjects } = await import("./list-projects-AQVI6SUK.js");
|
|
2198
2399
|
return {
|
|
2199
2400
|
content: [{ type: "text", text: await handleListProjects(params) }]
|
|
2200
2401
|
};
|
|
@@ -2208,7 +2409,7 @@ ${lines.join("\n")}`
|
|
|
2208
2409
|
},
|
|
2209
2410
|
withToolLogging("platform_get_project", async (params) => {
|
|
2210
2411
|
requireApiKey();
|
|
2211
|
-
const { handleGetProject } = await import("./get-project-
|
|
2412
|
+
const { handleGetProject } = await import("./get-project-QSQEAB33.js");
|
|
2212
2413
|
return {
|
|
2213
2414
|
content: [{ type: "text", text: await handleGetProject(params) }]
|
|
2214
2415
|
};
|
|
@@ -2228,7 +2429,7 @@ You must provide either teamId (to add the project to an existing team) or newTe
|
|
|
2228
2429
|
},
|
|
2229
2430
|
withToolLogging("platform_create_project", async (params) => {
|
|
2230
2431
|
requireApiKey();
|
|
2231
|
-
const { handleCreateProject } = await import("./create-project-
|
|
2432
|
+
const { handleCreateProject } = await import("./create-project-ZQ7TFIO2.js");
|
|
2232
2433
|
return {
|
|
2233
2434
|
content: [{ type: "text", text: await handleCreateProject(params) }]
|
|
2234
2435
|
};
|
|
@@ -2246,7 +2447,7 @@ You must provide either teamId (to add the project to an existing team) or newTe
|
|
|
2246
2447
|
},
|
|
2247
2448
|
withToolLogging("platform_update_project", async (params) => {
|
|
2248
2449
|
requireApiKey();
|
|
2249
|
-
const { handleUpdateProject } = await import("./update-project-
|
|
2450
|
+
const { handleUpdateProject } = await import("./update-project-Q26FBSYH.js");
|
|
2250
2451
|
return {
|
|
2251
2452
|
content: [{ type: "text", text: await handleUpdateProject(params) }]
|
|
2252
2453
|
};
|
|
@@ -2260,7 +2461,7 @@ You must provide either teamId (to add the project to an existing team) or newTe
|
|
|
2260
2461
|
},
|
|
2261
2462
|
withToolLogging("platform_archive_project", async (params) => {
|
|
2262
2463
|
requireApiKey();
|
|
2263
|
-
const { handleArchiveProject } = await import("./archive-project-
|
|
2464
|
+
const { handleArchiveProject } = await import("./archive-project-W3IKI7UL.js");
|
|
2264
2465
|
return {
|
|
2265
2466
|
content: [{ type: "text", text: await handleArchiveProject(params) }]
|
|
2266
2467
|
};
|
|
@@ -2272,7 +2473,7 @@ You must provide either teamId (to add the project to an existing team) or newTe
|
|
|
2272
2473
|
{},
|
|
2273
2474
|
withToolLogging("platform_list_api_keys", async () => {
|
|
2274
2475
|
requireApiKey();
|
|
2275
|
-
const { handleListApiKeys } = await import("./list-api-keys-
|
|
2476
|
+
const { handleListApiKeys } = await import("./list-api-keys-GVPNBIHQ.js");
|
|
2276
2477
|
return {
|
|
2277
2478
|
content: [{ type: "text", text: await handleListApiKeys() }]
|
|
2278
2479
|
};
|
|
@@ -2300,7 +2501,7 @@ The token is returned once and cannot be retrieved again.`,
|
|
|
2300
2501
|
},
|
|
2301
2502
|
withToolLogging("platform_create_api_key", async (params) => {
|
|
2302
2503
|
requireApiKey();
|
|
2303
|
-
const { handleCreateApiKey } = await import("./create-api-key-
|
|
2504
|
+
const { handleCreateApiKey } = await import("./create-api-key-BGBB76JX.js");
|
|
2304
2505
|
return {
|
|
2305
2506
|
content: [{ type: "text", text: await handleCreateApiKey(params) }]
|
|
2306
2507
|
};
|
|
@@ -2314,7 +2515,7 @@ The token is returned once and cannot be retrieved again.`,
|
|
|
2314
2515
|
},
|
|
2315
2516
|
withToolLogging("platform_revoke_api_key", async (params) => {
|
|
2316
2517
|
requireApiKey();
|
|
2317
|
-
const { handleRevokeApiKey } = await import("./revoke-api-key-
|
|
2518
|
+
const { handleRevokeApiKey } = await import("./revoke-api-key-6LAZ3QZZ.js");
|
|
2318
2519
|
return {
|
|
2319
2520
|
content: [{ type: "text", text: await handleRevokeApiKey(params) }]
|
|
2320
2521
|
};
|
|
@@ -2325,4 +2526,4 @@ The token is returned once and cannot be retrieved again.`,
|
|
|
2325
2526
|
export {
|
|
2326
2527
|
createMcpServer
|
|
2327
2528
|
};
|
|
2328
|
-
//# sourceMappingURL=chunk-
|
|
2529
|
+
//# sourceMappingURL=chunk-QRO35SOM.js.map
|