@inspectr/mcplab 1.29.0 → 1.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +24 -3
  2. package/dist/app/assets/index-Cwogc_kk.js +267 -0
  3. package/dist/app/assets/index-D5OYchKq.css +2 -0
  4. package/dist/app/index.html +2 -2
  5. package/dist/app-server/app-context.d.ts +6 -22
  6. package/dist/app-server/app-context.d.ts.map +1 -1
  7. package/dist/app-server/assistant-agent.d.ts +10 -0
  8. package/dist/app-server/assistant-agent.d.ts.map +1 -0
  9. package/dist/app-server/assistant-agent.js +29 -0
  10. package/dist/app-server/assistant-agent.js.map +1 -0
  11. package/dist/app-server/assistant-common.d.ts +7 -34
  12. package/dist/app-server/assistant-common.d.ts.map +1 -1
  13. package/dist/app-server/assistant-common.js +33 -194
  14. package/dist/app-server/assistant-common.js.map +1 -1
  15. package/dist/app-server/assistant-events.d.ts +10 -6
  16. package/dist/app-server/assistant-events.d.ts.map +1 -1
  17. package/dist/app-server/assistant-events.js +23 -11
  18. package/dist/app-server/assistant-events.js.map +1 -1
  19. package/dist/app-server/assistant-graph-nodes.d.ts +226 -0
  20. package/dist/app-server/assistant-graph-nodes.d.ts.map +1 -0
  21. package/dist/app-server/assistant-graph-nodes.js +365 -0
  22. package/dist/app-server/assistant-graph-nodes.js.map +1 -0
  23. package/dist/app-server/assistant-graph-state.d.ts +64 -0
  24. package/dist/app-server/assistant-graph-state.d.ts.map +1 -0
  25. package/dist/app-server/assistant-graph-state.js +137 -0
  26. package/dist/app-server/assistant-graph-state.js.map +1 -0
  27. package/dist/app-server/assistant-mcp-context-tools.d.ts +17 -0
  28. package/dist/app-server/assistant-mcp-context-tools.d.ts.map +1 -0
  29. package/dist/app-server/assistant-mcp-context-tools.js +149 -0
  30. package/dist/app-server/assistant-mcp-context-tools.js.map +1 -0
  31. package/dist/app-server/assistant-model.d.ts +24 -0
  32. package/dist/app-server/assistant-model.d.ts.map +1 -0
  33. package/dist/app-server/assistant-model.js +240 -0
  34. package/dist/app-server/assistant-model.js.map +1 -0
  35. package/dist/app-server/assistant-runtime-contract.d.ts +46 -0
  36. package/dist/app-server/assistant-runtime-contract.d.ts.map +1 -0
  37. package/dist/app-server/assistant-runtime-contract.js +2 -0
  38. package/dist/app-server/assistant-runtime-contract.js.map +1 -0
  39. package/dist/app-server/assistant-runtime-policy.d.ts +22 -0
  40. package/dist/app-server/assistant-runtime-policy.d.ts.map +1 -0
  41. package/dist/app-server/assistant-runtime-policy.js +71 -0
  42. package/dist/app-server/assistant-runtime-policy.js.map +1 -0
  43. package/dist/app-server/assistant-service.d.ts +23 -0
  44. package/dist/app-server/assistant-service.d.ts.map +1 -0
  45. package/dist/app-server/assistant-service.js +185 -0
  46. package/dist/app-server/assistant-service.js.map +1 -0
  47. package/dist/app-server/assistant-session-routes.d.ts +25 -0
  48. package/dist/app-server/assistant-session-routes.d.ts.map +1 -0
  49. package/dist/app-server/assistant-session-routes.js +210 -0
  50. package/dist/app-server/assistant-session-routes.js.map +1 -0
  51. package/dist/app-server/assistant-tracing.d.ts +5 -0
  52. package/dist/app-server/assistant-tracing.d.ts.map +1 -0
  53. package/dist/app-server/assistant-tracing.js +30 -0
  54. package/dist/app-server/assistant-tracing.js.map +1 -0
  55. package/dist/app-server/browser-provider-learning.js +1 -1
  56. package/dist/app-server/browser-provider-learning.js.map +1 -1
  57. package/dist/app-server/connection-test-routes.d.ts +8 -0
  58. package/dist/app-server/connection-test-routes.d.ts.map +1 -0
  59. package/dist/app-server/connection-test-routes.js +34 -0
  60. package/dist/app-server/connection-test-routes.js.map +1 -0
  61. package/dist/app-server/decision-routes.d.ts +8 -0
  62. package/dist/app-server/decision-routes.d.ts.map +1 -0
  63. package/dist/app-server/decision-routes.js +27 -0
  64. package/dist/app-server/decision-routes.js.map +1 -0
  65. package/dist/app-server/langchain-assistant-runtime.d.ts +11 -0
  66. package/dist/app-server/langchain-assistant-runtime.d.ts.map +1 -0
  67. package/dist/app-server/langchain-assistant-runtime.js +852 -0
  68. package/dist/app-server/langchain-assistant-runtime.js.map +1 -0
  69. package/dist/app-server/live-tests.d.ts +2 -5
  70. package/dist/app-server/live-tests.d.ts.map +1 -1
  71. package/dist/app-server/live-tests.js +21 -8
  72. package/dist/app-server/live-tests.js.map +1 -1
  73. package/dist/app-server/one-shot-json.d.ts +26 -0
  74. package/dist/app-server/one-shot-json.d.ts.map +1 -0
  75. package/dist/app-server/one-shot-json.js +168 -0
  76. package/dist/app-server/one-shot-json.js.map +1 -0
  77. package/dist/app-server/provider-models.d.ts +1 -6
  78. package/dist/app-server/provider-models.d.ts.map +1 -1
  79. package/dist/app-server/provider-models.js +11 -12
  80. package/dist/app-server/provider-models.js.map +1 -1
  81. package/dist/app-server/request-origin.d.ts +6 -0
  82. package/dist/app-server/request-origin.d.ts.map +1 -0
  83. package/dist/app-server/request-origin.js +61 -0
  84. package/dist/app-server/request-origin.js.map +1 -0
  85. package/dist/app-server/result-assistant-domain.d.ts +46 -48
  86. package/dist/app-server/result-assistant-domain.d.ts.map +1 -1
  87. package/dist/app-server/result-assistant-domain.js +148 -133
  88. package/dist/app-server/result-assistant-domain.js.map +1 -1
  89. package/dist/app-server/result-assistant.d.ts +2 -2
  90. package/dist/app-server/result-assistant.d.ts.map +1 -1
  91. package/dist/app-server/result-assistant.js +43 -311
  92. package/dist/app-server/result-assistant.js.map +1 -1
  93. package/dist/app-server/router.d.ts +0 -2
  94. package/dist/app-server/router.d.ts.map +1 -1
  95. package/dist/app-server/router.js +69 -71
  96. package/dist/app-server/router.js.map +1 -1
  97. package/dist/app-server/run-queue-executor.d.ts +2 -14
  98. package/dist/app-server/run-queue-executor.d.ts.map +1 -1
  99. package/dist/app-server/run-queue-executor.js +7 -16
  100. package/dist/app-server/run-queue-executor.js.map +1 -1
  101. package/dist/app-server/runs-routes.d.ts.map +1 -1
  102. package/dist/app-server/runs-routes.js +16 -15
  103. package/dist/app-server/runs-routes.js.map +1 -1
  104. package/dist/app-server/scenario-assistant-domain.d.ts +43 -136
  105. package/dist/app-server/scenario-assistant-domain.d.ts.map +1 -1
  106. package/dist/app-server/scenario-assistant-domain.js +377 -215
  107. package/dist/app-server/scenario-assistant-domain.js.map +1 -1
  108. package/dist/app-server/scenario-assistant.d.ts +3 -3
  109. package/dist/app-server/scenario-assistant.d.ts.map +1 -1
  110. package/dist/app-server/scenario-assistant.js +52 -406
  111. package/dist/app-server/scenario-assistant.js.map +1 -1
  112. package/dist/app-server/settings-store.d.ts +3 -7
  113. package/dist/app-server/settings-store.d.ts.map +1 -1
  114. package/dist/app-server/settings-store.js +35 -20
  115. package/dist/app-server/settings-store.js.map +1 -1
  116. package/dist/app-server/tool-analysis-domain.d.ts +1 -1
  117. package/dist/app-server/tool-analysis-domain.d.ts.map +1 -1
  118. package/dist/app-server/tool-analysis-domain.js +5 -4
  119. package/dist/app-server/tool-analysis-domain.js.map +1 -1
  120. package/dist/app-server/types.d.ts +3 -4
  121. package/dist/app-server/types.d.ts.map +1 -1
  122. package/dist/cli.js +6 -6
  123. package/dist/cli.js.map +1 -1
  124. package/package.json +10 -4
  125. package/dist/app/assets/index-256LN2cO.css +0 -2
  126. package/dist/app/assets/index-DVIaEnjQ.js +0 -243
package/README.md CHANGED
@@ -55,7 +55,7 @@ See the [Rover Browser Agents guide](https://mcplab.inspectr.dev/docs/app/rover/
55
55
 
56
56
  ### Core Capabilities
57
57
  - **HTTP SSE Transport** - Test MCP servers over Streamable HTTP
58
- - **Multi-LLM Support** - OpenAI, Anthropic Claude, Azure OpenAI
58
+ - **Multi-LLM Support** - OpenAI, Anthropic Claude, Azure OpenAI, Azure Foundry
59
59
  - **Browser Agents** - Run evaluations in browser chats through the MCPLab Rover extension
60
60
  - **Rich Assertions** - Validate tool usage, sequences, and response content
61
61
  - **Variance Testing** - Run multiple iterations to measure stability
@@ -268,6 +268,26 @@ agents:
268
268
  system: "You are a helpful assistant."
269
269
  ```
270
270
 
271
+ The legacy Azure OpenAI provider uses `AZURE_OPENAI_DEPLOYMENT` at runtime. Existing configurations retain this behavior.
272
+
273
+ **Azure Foundry:**
274
+
275
+ ```yaml
276
+ agents:
277
+ - id: foundry-agent
278
+ provider: azure_foundry
279
+ model: my-chat-deployment
280
+ max_tokens: 2048
281
+ ```
282
+
283
+ Each Foundry agent uses its own `model` value as the deployment name. Configure `AZURE_FOUNDRY_ENDPOINT` with the resource endpoint, such as `https://your-resource.services.ai.azure.com`, and `AZURE_FOUNDRY_API_KEY` on the backend. If the dedicated key is absent, MCPLab uses `AZURE_OPENAI_API_KEY`; that key must belong to the same resource. The endpoint remains explicit. Restart MCPLab after changing environment variables.
284
+
285
+ In **Libraries → Agents**, choose **Azure Foundry**, enter the deployment name, and save. **Test Connection** sends a small inference request using the current provider and deployment, even before saving a new agent. It uses a 30-second timeout and clears or cancels the test when the draft changes. Success confirms basic inference access; it does not establish support for every tool or structured-output capability.
286
+
287
+ Optional `AZURE_FOUNDRY_DEPLOYMENTS` contains comma-separated deployment suggestions. **Load configured deployments** reads this backend environment variable and does not query Azure. Manual entry works without suggestions. Foundry agents can be selected for evaluation runs, assistants, or the Evaluation Judge. Decision Engine deployment and threshold settings remain independent.
288
+
289
+ V1 supports API-key authentication and deployments compatible with Foundry's `/openai/v1/chat/completions` API through the existing OpenAI SDK. Microsoft-Decision-1 uses the separate Decision Engine setting. Entra authentication, Responses API, and native Anthropic endpoints are outside this integration. See [Microsoft's v1 API documentation](https://learn.microsoft.com/en-us/azure/foundry/openai/api-version-lifecycle).
290
+
271
291
  **Browser agents (Rover):**
272
292
 
273
293
  Define a reusable browser agent in `mcplab/agents.yaml`:
@@ -294,6 +314,7 @@ Use `claude` for Claude, `chatgpt-com` for ChatGPT, or the id of a learned provi
294
314
  - Anthropic: `ANTHROPIC_API_KEY`
295
315
  - OpenAI: `OPENAI_API_KEY`
296
316
  - Azure: `AZURE_OPENAI_ENDPOINT`, `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_DEPLOYMENT`
317
+ - Azure Foundry: `AZURE_FOUNDRY_ENDPOINT`, `AZURE_FOUNDRY_API_KEY` (or `AZURE_OPENAI_API_KEY` for the same resource)
297
318
 
298
319
  ### Scenarios
299
320
 
@@ -506,7 +527,7 @@ These features are available through the web app (`mcplab app`).
506
527
 
507
528
  ### Scenario Assistant
508
529
 
509
- An interactive AI chat that helps you design and refine evaluation scenarios. Given a scenario, it can suggest improvements to the prompt, evaluation rules, and extraction patterns — and can call your MCP server's tools directly to demonstrate expected behavior.
530
+ An interactive AI chat that helps you design and refine evaluation scenarios. Given a scenario, it can suggest improvements to the prompt, evaluation rules, and extraction patterns, and can call your MCP server's tools directly to demonstrate expected behavior.
510
531
 
511
532
  Open the app, navigate to an eval, and open the **Scenario Assistant** panel on any scenario.
512
533
 
@@ -523,7 +544,7 @@ Automated quality review of your MCP server's tools. Connects to your server, di
523
544
  - Name and description quality
524
545
  - Schema completeness
525
546
  - Safety classification (read-like vs. potentially destructive)
526
- - Sample call behavior (optional — runs real calls against your server)
547
+ - Sample call behavior (optional, runs real calls against your server)
527
548
 
528
549
  Reports are saved to `mcplab/results/tool-analysis/` and viewable in the app.
529
550