@wingman-ai/gateway 0.5.3 → 0.5.4
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/dist/agent/config/agentConfig.cjs +4 -0
- package/dist/agent/config/agentConfig.d.ts +12 -0
- package/dist/agent/config/agentConfig.js +4 -0
- package/dist/agent/config/toolRegistry.cjs +75 -1
- package/dist/agent/config/toolRegistry.d.ts +3 -0
- package/dist/agent/config/toolRegistry.js +75 -1
- package/dist/agent/middleware/large-tool-results.cjs +207 -0
- package/dist/agent/middleware/large-tool-results.d.ts +16 -0
- package/dist/agent/middleware/large-tool-results.js +173 -0
- package/dist/agent/tools/browser_control.cjs +9 -1231
- package/dist/agent/tools/browser_control.d.ts +126 -234
- package/dist/agent/tools/browser_control.js +7 -1226
- package/dist/agent/tools/browser_runtime.cjs +1189 -0
- package/dist/agent/tools/browser_runtime.d.ts +560 -0
- package/dist/agent/tools/browser_runtime.js +1122 -0
- package/dist/agent/tools/browser_session.cjs +153 -0
- package/dist/agent/tools/browser_session.d.ts +741 -0
- package/dist/agent/tools/browser_session.js +110 -0
- package/dist/agent/tools/browser_session_manager.cjs +202 -0
- package/dist/agent/tools/browser_session_manager.d.ts +64 -0
- package/dist/agent/tools/browser_session_manager.js +165 -0
- package/dist/cli/commands/init.cjs +5 -1
- package/dist/cli/commands/init.js +5 -1
- package/dist/cli/config/loader.cjs +0 -5
- package/dist/cli/config/loader.js +0 -5
- package/dist/cli/config/schema.cjs +3 -7
- package/dist/cli/config/schema.d.ts +6 -6
- package/dist/cli/config/schema.js +3 -7
- package/dist/cli/core/agentInvoker.cjs +86 -22
- package/dist/cli/core/agentInvoker.d.ts +10 -3
- package/dist/cli/core/agentInvoker.js +86 -25
- package/dist/cli/core/outputManager.cjs +7 -2
- package/dist/cli/core/outputManager.d.ts +2 -2
- package/dist/cli/core/outputManager.js +7 -2
- package/dist/cli/types.d.ts +2 -1
- package/dist/webui/assets/index-XrEnkZiq.css +11 -0
- package/dist/webui/assets/index-mDs6HbKM.js +215 -0
- package/dist/webui/index.html +2 -2
- package/package.json +10 -10
- package/templates/agents/README.md +2 -1
- package/templates/agents/coding/agent.md +6 -13
- package/templates/agents/coding-v2/agent.md +6 -1
- package/templates/agents/game-dev/agent.md +8 -2
- package/templates/agents/game-dev/game-designer.md +4 -0
- package/templates/agents/game-dev/scene-engineer.md +4 -0
- package/templates/agents/main/agent.md +5 -0
- package/templates/agents/researcher/agent.md +11 -0
- package/templates/agents/stock-trader/agent.md +4 -0
- package/dist/agent/tests/agentConfig.test.cjs +0 -224
- package/dist/agent/tests/agentConfig.test.d.ts +0 -1
- package/dist/agent/tests/agentConfig.test.js +0 -218
- package/dist/agent/tests/agentLoader.test.cjs +0 -335
- package/dist/agent/tests/agentLoader.test.d.ts +0 -1
- package/dist/agent/tests/agentLoader.test.js +0 -329
- package/dist/agent/tests/backgroundTerminal.test.cjs +0 -70
- package/dist/agent/tests/backgroundTerminal.test.d.ts +0 -1
- package/dist/agent/tests/backgroundTerminal.test.js +0 -64
- package/dist/agent/tests/browserControlHelpers.test.cjs +0 -35
- package/dist/agent/tests/browserControlHelpers.test.d.ts +0 -1
- package/dist/agent/tests/browserControlHelpers.test.js +0 -29
- package/dist/agent/tests/browserControlTool.test.cjs +0 -2117
- package/dist/agent/tests/browserControlTool.test.d.ts +0 -1
- package/dist/agent/tests/browserControlTool.test.js +0 -2111
- package/dist/agent/tests/commandExecuteTool.test.cjs +0 -29
- package/dist/agent/tests/commandExecuteTool.test.d.ts +0 -1
- package/dist/agent/tests/commandExecuteTool.test.js +0 -23
- package/dist/agent/tests/internet_search.test.cjs +0 -107
- package/dist/agent/tests/internet_search.test.d.ts +0 -1
- package/dist/agent/tests/internet_search.test.js +0 -101
- package/dist/agent/tests/mcpClientManager.test.cjs +0 -290
- package/dist/agent/tests/mcpClientManager.test.d.ts +0 -1
- package/dist/agent/tests/mcpClientManager.test.js +0 -284
- package/dist/agent/tests/mcpResourceTools.test.cjs +0 -101
- package/dist/agent/tests/mcpResourceTools.test.d.ts +0 -1
- package/dist/agent/tests/mcpResourceTools.test.js +0 -95
- package/dist/agent/tests/modelFactory.test.cjs +0 -190
- package/dist/agent/tests/modelFactory.test.d.ts +0 -1
- package/dist/agent/tests/modelFactory.test.js +0 -184
- package/dist/agent/tests/terminalSessionManager.test.cjs +0 -121
- package/dist/agent/tests/terminalSessionManager.test.d.ts +0 -1
- package/dist/agent/tests/terminalSessionManager.test.js +0 -115
- package/dist/agent/tests/test-agent-loader.cjs +0 -33
- package/dist/agent/tests/test-agent-loader.d.ts +0 -1
- package/dist/agent/tests/test-agent-loader.js +0 -27
- package/dist/agent/tests/test-subagent-loading.cjs +0 -99
- package/dist/agent/tests/test-subagent-loading.d.ts +0 -1
- package/dist/agent/tests/test-subagent-loading.js +0 -93
- package/dist/agent/tests/toolRegistry.test.cjs +0 -147
- package/dist/agent/tests/toolRegistry.test.d.ts +0 -1
- package/dist/agent/tests/toolRegistry.test.js +0 -141
- package/dist/agent/tests/uiRegistryTools.test.cjs +0 -114
- package/dist/agent/tests/uiRegistryTools.test.d.ts +0 -1
- package/dist/agent/tests/uiRegistryTools.test.js +0 -105
- package/dist/agent/tests/xaiImageModel.test.cjs +0 -194
- package/dist/agent/tests/xaiImageModel.test.d.ts +0 -1
- package/dist/agent/tests/xaiImageModel.test.js +0 -188
- package/dist/tests/additionalMessageMiddleware.test.cjs +0 -216
- package/dist/tests/additionalMessageMiddleware.test.d.ts +0 -1
- package/dist/tests/additionalMessageMiddleware.test.js +0 -188
- package/dist/tests/agent-config-voice.test.cjs +0 -25
- package/dist/tests/agent-config-voice.test.d.ts +0 -1
- package/dist/tests/agent-config-voice.test.js +0 -19
- package/dist/tests/agentInvokerAttachments.test.cjs +0 -190
- package/dist/tests/agentInvokerAttachments.test.d.ts +0 -1
- package/dist/tests/agentInvokerAttachments.test.js +0 -184
- package/dist/tests/agentInvokerSummarization.test.cjs +0 -613
- package/dist/tests/agentInvokerSummarization.test.d.ts +0 -1
- package/dist/tests/agentInvokerSummarization.test.js +0 -607
- package/dist/tests/agentInvokerTokenUsage.test.cjs +0 -124
- package/dist/tests/agentInvokerTokenUsage.test.d.ts +0 -1
- package/dist/tests/agentInvokerTokenUsage.test.js +0 -118
- package/dist/tests/agentInvokerWorkdir.test.cjs +0 -150
- package/dist/tests/agentInvokerWorkdir.test.d.ts +0 -1
- package/dist/tests/agentInvokerWorkdir.test.js +0 -122
- package/dist/tests/agents-api.test.cjs +0 -324
- package/dist/tests/agents-api.test.d.ts +0 -1
- package/dist/tests/agents-api.test.js +0 -318
- package/dist/tests/attachments-utils.test.cjs +0 -46
- package/dist/tests/attachments-utils.test.d.ts +0 -1
- package/dist/tests/attachments-utils.test.js +0 -40
- package/dist/tests/browser-command.test.cjs +0 -264
- package/dist/tests/browser-command.test.d.ts +0 -1
- package/dist/tests/browser-command.test.js +0 -258
- package/dist/tests/browser-relay-server.test.cjs +0 -20
- package/dist/tests/browser-relay-server.test.d.ts +0 -1
- package/dist/tests/browser-relay-server.test.js +0 -14
- package/dist/tests/bunSqliteAdapter.test.cjs +0 -265
- package/dist/tests/bunSqliteAdapter.test.d.ts +0 -1
- package/dist/tests/bunSqliteAdapter.test.js +0 -259
- package/dist/tests/candleRange.test.cjs +0 -48
- package/dist/tests/candleRange.test.d.ts +0 -1
- package/dist/tests/candleRange.test.js +0 -42
- package/dist/tests/cli-config-loader.test.cjs +0 -532
- package/dist/tests/cli-config-loader.test.d.ts +0 -1
- package/dist/tests/cli-config-loader.test.js +0 -526
- package/dist/tests/cli-config-warnings.test.cjs +0 -94
- package/dist/tests/cli-config-warnings.test.d.ts +0 -1
- package/dist/tests/cli-config-warnings.test.js +0 -88
- package/dist/tests/cli-init.test.cjs +0 -225
- package/dist/tests/cli-init.test.d.ts +0 -1
- package/dist/tests/cli-init.test.js +0 -219
- package/dist/tests/cli-workspace-root.test.cjs +0 -114
- package/dist/tests/cli-workspace-root.test.d.ts +0 -1
- package/dist/tests/cli-workspace-root.test.js +0 -108
- package/dist/tests/codex-credentials-precedence.test.cjs +0 -94
- package/dist/tests/codex-credentials-precedence.test.d.ts +0 -1
- package/dist/tests/codex-credentials-precedence.test.js +0 -88
- package/dist/tests/codex-provider.test.cjs +0 -383
- package/dist/tests/codex-provider.test.d.ts +0 -1
- package/dist/tests/codex-provider.test.js +0 -377
- package/dist/tests/config-json-schema.test.cjs +0 -37
- package/dist/tests/config-json-schema.test.d.ts +0 -1
- package/dist/tests/config-json-schema.test.js +0 -31
- package/dist/tests/discord-adapter.test.cjs +0 -89
- package/dist/tests/discord-adapter.test.d.ts +0 -1
- package/dist/tests/discord-adapter.test.js +0 -83
- package/dist/tests/falRuntime.test.cjs +0 -78
- package/dist/tests/falRuntime.test.d.ts +0 -1
- package/dist/tests/falRuntime.test.js +0 -72
- package/dist/tests/falSummary.test.cjs +0 -51
- package/dist/tests/falSummary.test.d.ts +0 -1
- package/dist/tests/falSummary.test.js +0 -45
- package/dist/tests/fs-api.test.cjs +0 -138
- package/dist/tests/fs-api.test.d.ts +0 -1
- package/dist/tests/fs-api.test.js +0 -132
- package/dist/tests/gateway-command-workspace.test.cjs +0 -150
- package/dist/tests/gateway-command-workspace.test.d.ts +0 -1
- package/dist/tests/gateway-command-workspace.test.js +0 -144
- package/dist/tests/gateway-http-security.test.cjs +0 -318
- package/dist/tests/gateway-http-security.test.d.ts +0 -1
- package/dist/tests/gateway-http-security.test.js +0 -312
- package/dist/tests/gateway-node-mode.test.cjs +0 -174
- package/dist/tests/gateway-node-mode.test.d.ts +0 -1
- package/dist/tests/gateway-node-mode.test.js +0 -168
- package/dist/tests/gateway-origin-policy.test.cjs +0 -82
- package/dist/tests/gateway-origin-policy.test.d.ts +0 -1
- package/dist/tests/gateway-origin-policy.test.js +0 -76
- package/dist/tests/gateway-request-execution-overrides.test.cjs +0 -42
- package/dist/tests/gateway-request-execution-overrides.test.d.ts +0 -1
- package/dist/tests/gateway-request-execution-overrides.test.js +0 -36
- package/dist/tests/gateway.test.cjs +0 -700
- package/dist/tests/gateway.test.d.ts +0 -1
- package/dist/tests/gateway.test.js +0 -694
- package/dist/tests/hooks-matcher.test.cjs +0 -309
- package/dist/tests/hooks-matcher.test.d.ts +0 -1
- package/dist/tests/hooks-matcher.test.js +0 -303
- package/dist/tests/hooks-merger.test.cjs +0 -528
- package/dist/tests/hooks-merger.test.d.ts +0 -1
- package/dist/tests/hooks-merger.test.js +0 -522
- package/dist/tests/imagePersistence.test.cjs +0 -169
- package/dist/tests/imagePersistence.test.d.ts +0 -1
- package/dist/tests/imagePersistence.test.js +0 -163
- package/dist/tests/integration/agent-invocation.integration.test.cjs +0 -264
- package/dist/tests/integration/agent-invocation.integration.test.d.ts +0 -1
- package/dist/tests/integration/agent-invocation.integration.test.js +0 -258
- package/dist/tests/integration/finnhub-candles.integration.test.cjs +0 -98
- package/dist/tests/integration/finnhub-candles.integration.test.d.ts +0 -1
- package/dist/tests/integration/finnhub-candles.integration.test.js +0 -92
- package/dist/tests/integration/summarization-e2e.integration.test.cjs +0 -127
- package/dist/tests/integration/summarization-e2e.integration.test.d.ts +0 -1
- package/dist/tests/integration/summarization-e2e.integration.test.js +0 -121
- package/dist/tests/logger.test.cjs +0 -353
- package/dist/tests/logger.test.d.ts +0 -1
- package/dist/tests/logger.test.js +0 -347
- package/dist/tests/mediaCompatibilityMiddleware.test.cjs +0 -106
- package/dist/tests/mediaCompatibilityMiddleware.test.d.ts +0 -1
- package/dist/tests/mediaCompatibilityMiddleware.test.js +0 -100
- package/dist/tests/node-tools.test.cjs +0 -77
- package/dist/tests/node-tools.test.d.ts +0 -1
- package/dist/tests/node-tools.test.js +0 -71
- package/dist/tests/nodes-api.test.cjs +0 -86
- package/dist/tests/nodes-api.test.d.ts +0 -1
- package/dist/tests/nodes-api.test.js +0 -80
- package/dist/tests/outputManagerContextSummarized.test.cjs +0 -43
- package/dist/tests/outputManagerContextSummarized.test.d.ts +0 -1
- package/dist/tests/outputManagerContextSummarized.test.js +0 -37
- package/dist/tests/provider-command-codex.test.cjs +0 -57
- package/dist/tests/provider-command-codex.test.d.ts +0 -1
- package/dist/tests/provider-command-codex.test.js +0 -51
- package/dist/tests/routines-api.test.cjs +0 -107
- package/dist/tests/routines-api.test.d.ts +0 -1
- package/dist/tests/routines-api.test.js +0 -101
- package/dist/tests/run-terminal-bench-official-script.test.cjs +0 -61
- package/dist/tests/run-terminal-bench-official-script.test.d.ts +0 -1
- package/dist/tests/run-terminal-bench-official-script.test.js +0 -55
- package/dist/tests/sessionManager-uionly.test.cjs +0 -50
- package/dist/tests/sessionManager-uionly.test.d.ts +0 -1
- package/dist/tests/sessionManager-uionly.test.js +0 -44
- package/dist/tests/sessionMessageAttachments.test.cjs +0 -197
- package/dist/tests/sessionMessageAttachments.test.d.ts +0 -1
- package/dist/tests/sessionMessageAttachments.test.js +0 -191
- package/dist/tests/sessionMessageRole.test.cjs +0 -44
- package/dist/tests/sessionMessageRole.test.d.ts +0 -1
- package/dist/tests/sessionMessageRole.test.js +0 -38
- package/dist/tests/sessionStateMessages.test.cjs +0 -236
- package/dist/tests/sessionStateMessages.test.d.ts +0 -1
- package/dist/tests/sessionStateMessages.test.js +0 -230
- package/dist/tests/sessions-api.test.cjs +0 -250
- package/dist/tests/sessions-api.test.d.ts +0 -1
- package/dist/tests/sessions-api.test.js +0 -244
- package/dist/tests/skill-activation.test.cjs +0 -86
- package/dist/tests/skill-activation.test.d.ts +0 -1
- package/dist/tests/skill-activation.test.js +0 -80
- package/dist/tests/skill-metadata.test.cjs +0 -119
- package/dist/tests/skill-metadata.test.d.ts +0 -1
- package/dist/tests/skill-metadata.test.js +0 -113
- package/dist/tests/skill-repository.test.cjs +0 -469
- package/dist/tests/skill-repository.test.d.ts +0 -1
- package/dist/tests/skill-repository.test.js +0 -463
- package/dist/tests/skill-security-scanner.test.cjs +0 -126
- package/dist/tests/skill-security-scanner.test.d.ts +0 -1
- package/dist/tests/skill-security-scanner.test.js +0 -120
- package/dist/tests/sms-api.test.cjs +0 -183
- package/dist/tests/sms-api.test.d.ts +0 -1
- package/dist/tests/sms-api.test.js +0 -177
- package/dist/tests/sms-commands.test.cjs +0 -90
- package/dist/tests/sms-commands.test.d.ts +0 -1
- package/dist/tests/sms-commands.test.js +0 -84
- package/dist/tests/sms-policy-store.test.cjs +0 -69
- package/dist/tests/sms-policy-store.test.d.ts +0 -1
- package/dist/tests/sms-policy-store.test.js +0 -63
- package/dist/tests/teams-adapter.test.cjs +0 -58
- package/dist/tests/teams-adapter.test.d.ts +0 -1
- package/dist/tests/teams-adapter.test.js +0 -52
- package/dist/tests/technicalIndicators.test.cjs +0 -82
- package/dist/tests/technicalIndicators.test.d.ts +0 -1
- package/dist/tests/technicalIndicators.test.js +0 -76
- package/dist/tests/terminal-bench-adapters-helpers.test.cjs +0 -64
- package/dist/tests/terminal-bench-adapters-helpers.test.d.ts +0 -1
- package/dist/tests/terminal-bench-adapters-helpers.test.js +0 -58
- package/dist/tests/terminal-bench-cleanup.test.cjs +0 -93
- package/dist/tests/terminal-bench-cleanup.test.d.ts +0 -1
- package/dist/tests/terminal-bench-cleanup.test.js +0 -87
- package/dist/tests/terminal-bench-config.test.cjs +0 -62
- package/dist/tests/terminal-bench-config.test.d.ts +0 -1
- package/dist/tests/terminal-bench-config.test.js +0 -56
- package/dist/tests/terminal-bench-official.test.cjs +0 -194
- package/dist/tests/terminal-bench-official.test.d.ts +0 -1
- package/dist/tests/terminal-bench-official.test.js +0 -188
- package/dist/tests/terminal-bench-runner.test.cjs +0 -82
- package/dist/tests/terminal-bench-runner.test.d.ts +0 -1
- package/dist/tests/terminal-bench-runner.test.js +0 -76
- package/dist/tests/terminal-bench-scoring.test.cjs +0 -128
- package/dist/tests/terminal-bench-scoring.test.d.ts +0 -1
- package/dist/tests/terminal-bench-scoring.test.js +0 -122
- package/dist/tests/terminalProbe.test.cjs +0 -45
- package/dist/tests/terminalProbe.test.d.ts +0 -1
- package/dist/tests/terminalProbe.test.js +0 -39
- package/dist/tests/terminalProbeAuth.test.cjs +0 -85
- package/dist/tests/terminalProbeAuth.test.d.ts +0 -1
- package/dist/tests/terminalProbeAuth.test.js +0 -79
- package/dist/tests/toolDisplayHelpers.test.cjs +0 -46
- package/dist/tests/toolDisplayHelpers.test.d.ts +0 -1
- package/dist/tests/toolDisplayHelpers.test.js +0 -40
- package/dist/tests/uv.test.cjs +0 -47
- package/dist/tests/uv.test.d.ts +0 -1
- package/dist/tests/uv.test.js +0 -41
- package/dist/tests/voice-config.test.cjs +0 -35
- package/dist/tests/voice-config.test.d.ts +0 -1
- package/dist/tests/voice-config.test.js +0 -29
- package/dist/tests/websocket-transport.test.cjs +0 -31
- package/dist/tests/websocket-transport.test.d.ts +0 -1
- package/dist/tests/websocket-transport.test.js +0 -25
- package/dist/tests/yahooCandles.test.cjs +0 -111
- package/dist/tests/yahooCandles.test.d.ts +0 -1
- package/dist/tests/yahooCandles.test.js +0 -105
- package/dist/tools/finance/optionsAnalytics.test.cjs +0 -128
- package/dist/tools/finance/optionsAnalytics.test.d.ts +0 -1
- package/dist/tools/finance/optionsAnalytics.test.js +0 -122
- package/dist/webui/assets/index-BMf95nv5.js +0 -215
- package/dist/webui/assets/index-DhJQ8Mbn.css +0 -11
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __webpack_exports__ = {};
|
|
3
|
-
const external_vitest_namespaceObject = require("vitest");
|
|
4
|
-
const command_execute_cjs_namespaceObject = require("../tools/command_execute.cjs");
|
|
5
|
-
(0, external_vitest_namespaceObject.describe)("command_execute tool", ()=>{
|
|
6
|
-
(0, external_vitest_namespaceObject.it)("rejects blocked commands", async ()=>{
|
|
7
|
-
const tool = (0, command_execute_cjs_namespaceObject.createCommandExecuteTool)(process.cwd(), void 0, [
|
|
8
|
-
"rm"
|
|
9
|
-
]);
|
|
10
|
-
const result = await tool.invoke({
|
|
11
|
-
command: "rm -rf ./tmp"
|
|
12
|
-
});
|
|
13
|
-
(0, external_vitest_namespaceObject.expect)(String(result)).toContain("rejected");
|
|
14
|
-
});
|
|
15
|
-
(0, external_vitest_namespaceObject.it)("truncates oversized output to avoid oversized tool payloads", async ()=>{
|
|
16
|
-
const tool = (0, command_execute_cjs_namespaceObject.createCommandExecuteTool)(process.cwd(), void 0, [], true, 30000, 120);
|
|
17
|
-
const result = await tool.invoke({
|
|
18
|
-
command: "node -e \"process.stdout.write('x'.repeat(400))\""
|
|
19
|
-
});
|
|
20
|
-
const output = String(result);
|
|
21
|
-
(0, external_vitest_namespaceObject.expect)(output).toContain("completed successfully");
|
|
22
|
-
(0, external_vitest_namespaceObject.expect)(output).toContain("output truncated");
|
|
23
|
-
(0, external_vitest_namespaceObject.expect)(output.length).toBeLessThan(800);
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
27
|
-
Object.defineProperty(exports, '__esModule', {
|
|
28
|
-
value: true
|
|
29
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { createCommandExecuteTool } from "../tools/command_execute.js";
|
|
3
|
-
describe("command_execute tool", ()=>{
|
|
4
|
-
it("rejects blocked commands", async ()=>{
|
|
5
|
-
const tool = createCommandExecuteTool(process.cwd(), void 0, [
|
|
6
|
-
"rm"
|
|
7
|
-
]);
|
|
8
|
-
const result = await tool.invoke({
|
|
9
|
-
command: "rm -rf ./tmp"
|
|
10
|
-
});
|
|
11
|
-
expect(String(result)).toContain("rejected");
|
|
12
|
-
});
|
|
13
|
-
it("truncates oversized output to avoid oversized tool payloads", async ()=>{
|
|
14
|
-
const tool = createCommandExecuteTool(process.cwd(), void 0, [], true, 30000, 120);
|
|
15
|
-
const result = await tool.invoke({
|
|
16
|
-
command: "node -e \"process.stdout.write('x'.repeat(400))\""
|
|
17
|
-
});
|
|
18
|
-
const output = String(result);
|
|
19
|
-
expect(output).toContain("completed successfully");
|
|
20
|
-
expect(output).toContain("output truncated");
|
|
21
|
-
expect(output.length).toBeLessThan(800);
|
|
22
|
-
});
|
|
23
|
-
});
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __webpack_exports__ = {};
|
|
3
|
-
const external_vitest_namespaceObject = require("vitest");
|
|
4
|
-
const originalEnv = {
|
|
5
|
-
...process.env
|
|
6
|
-
};
|
|
7
|
-
const restoreEnv = ()=>{
|
|
8
|
-
for (const key of Object.keys(process.env))if (!(key in originalEnv)) delete process.env[key];
|
|
9
|
-
for (const [key, value] of Object.entries(originalEnv))process.env[key] = value;
|
|
10
|
-
};
|
|
11
|
-
const loadSearchModule = async (overrides)=>{
|
|
12
|
-
for (const [key, value] of Object.entries(overrides))if (void 0 === value) delete process.env[key];
|
|
13
|
-
else process.env[key] = value;
|
|
14
|
-
external_vitest_namespaceObject.vi.resetModules();
|
|
15
|
-
const searchMock = external_vitest_namespaceObject.vi.fn();
|
|
16
|
-
external_vitest_namespaceObject.vi.doMock("duck-duck-scrape", ()=>({
|
|
17
|
-
search: searchMock
|
|
18
|
-
}));
|
|
19
|
-
const module = await import("../tools/internet_search.cjs");
|
|
20
|
-
return {
|
|
21
|
-
...module,
|
|
22
|
-
searchMock
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
(0, external_vitest_namespaceObject.beforeEach)(()=>{
|
|
26
|
-
external_vitest_namespaceObject.vi.useFakeTimers();
|
|
27
|
-
external_vitest_namespaceObject.vi.spyOn(Math, "random").mockReturnValue(0);
|
|
28
|
-
});
|
|
29
|
-
(0, external_vitest_namespaceObject.afterEach)(()=>{
|
|
30
|
-
external_vitest_namespaceObject.vi.useRealTimers();
|
|
31
|
-
external_vitest_namespaceObject.vi.restoreAllMocks();
|
|
32
|
-
restoreEnv();
|
|
33
|
-
});
|
|
34
|
-
(0, external_vitest_namespaceObject.describe)("Internet search tool (DuckDuckGo)", ()=>{
|
|
35
|
-
(0, external_vitest_namespaceObject.it)("retries on DDG anomaly and succeeds", async ()=>{
|
|
36
|
-
const { createInternetSearchTool, searchMock } = await loadSearchModule({
|
|
37
|
-
WINGMAN_DDG_MIN_DELAY_MS: "0",
|
|
38
|
-
WINGMAN_DDG_BACKOFF_BASE_MS: "1",
|
|
39
|
-
WINGMAN_DDG_BACKOFF_MAX_MS: "1",
|
|
40
|
-
WINGMAN_DDG_MAX_RETRIES: "2"
|
|
41
|
-
});
|
|
42
|
-
searchMock.mockRejectedValueOnce(new Error("DDG detected an anomaly in the request, you are likely making requests too quickly.")).mockResolvedValueOnce({
|
|
43
|
-
results: [
|
|
44
|
-
{
|
|
45
|
-
title: "Wingman",
|
|
46
|
-
url: "https://wingman.ai",
|
|
47
|
-
description: "Agentic coding assistant"
|
|
48
|
-
}
|
|
49
|
-
]
|
|
50
|
-
});
|
|
51
|
-
const tool = createInternetSearchTool({
|
|
52
|
-
provider: "duckduckgo",
|
|
53
|
-
maxResults: 3
|
|
54
|
-
});
|
|
55
|
-
const resultPromise = tool.invoke({
|
|
56
|
-
query: "test"
|
|
57
|
-
});
|
|
58
|
-
const expectation = (0, external_vitest_namespaceObject.expect)(resultPromise).resolves.toContain("Wingman");
|
|
59
|
-
await external_vitest_namespaceObject.vi.runAllTimersAsync();
|
|
60
|
-
await expectation;
|
|
61
|
-
(0, external_vitest_namespaceObject.expect)(searchMock).toHaveBeenCalledTimes(2);
|
|
62
|
-
});
|
|
63
|
-
(0, external_vitest_namespaceObject.it)("throws a friendly error after retry exhaustion", async ()=>{
|
|
64
|
-
const { createInternetSearchTool, searchMock } = await loadSearchModule({
|
|
65
|
-
WINGMAN_DDG_MIN_DELAY_MS: "0",
|
|
66
|
-
WINGMAN_DDG_BACKOFF_BASE_MS: "1",
|
|
67
|
-
WINGMAN_DDG_BACKOFF_MAX_MS: "1",
|
|
68
|
-
WINGMAN_DDG_MAX_RETRIES: "1"
|
|
69
|
-
});
|
|
70
|
-
searchMock.mockRejectedValue(new Error("DDG detected an anomaly in the request, you are likely making requests too quickly."));
|
|
71
|
-
const tool = createInternetSearchTool({
|
|
72
|
-
provider: "duckduckgo",
|
|
73
|
-
maxResults: 3
|
|
74
|
-
});
|
|
75
|
-
const resultPromise = tool.invoke({
|
|
76
|
-
query: "test"
|
|
77
|
-
});
|
|
78
|
-
const expectation = (0, external_vitest_namespaceObject.expect)(resultPromise).rejects.toThrow(/rate-limited|anomaly/i);
|
|
79
|
-
await external_vitest_namespaceObject.vi.runAllTimersAsync();
|
|
80
|
-
await expectation;
|
|
81
|
-
(0, external_vitest_namespaceObject.expect)(searchMock).toHaveBeenCalledTimes(2);
|
|
82
|
-
});
|
|
83
|
-
(0, external_vitest_namespaceObject.it)("does not retry on non-anomaly errors", async ()=>{
|
|
84
|
-
const { createInternetSearchTool, searchMock } = await loadSearchModule({
|
|
85
|
-
WINGMAN_DDG_MIN_DELAY_MS: "0",
|
|
86
|
-
WINGMAN_DDG_BACKOFF_BASE_MS: "1",
|
|
87
|
-
WINGMAN_DDG_BACKOFF_MAX_MS: "1",
|
|
88
|
-
WINGMAN_DDG_MAX_RETRIES: "2"
|
|
89
|
-
});
|
|
90
|
-
searchMock.mockRejectedValue(new Error("network down"));
|
|
91
|
-
const tool = createInternetSearchTool({
|
|
92
|
-
provider: "duckduckgo",
|
|
93
|
-
maxResults: 3
|
|
94
|
-
});
|
|
95
|
-
const resultPromise = tool.invoke({
|
|
96
|
-
query: "test"
|
|
97
|
-
});
|
|
98
|
-
const expectation = (0, external_vitest_namespaceObject.expect)(resultPromise).rejects.toThrow("network down");
|
|
99
|
-
await external_vitest_namespaceObject.vi.runAllTimersAsync();
|
|
100
|
-
await expectation;
|
|
101
|
-
(0, external_vitest_namespaceObject.expect)(searchMock).toHaveBeenCalledTimes(1);
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
105
|
-
Object.defineProperty(exports, '__esModule', {
|
|
106
|
-
value: true
|
|
107
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
-
const originalEnv = {
|
|
3
|
-
...process.env
|
|
4
|
-
};
|
|
5
|
-
const restoreEnv = ()=>{
|
|
6
|
-
for (const key of Object.keys(process.env))if (!(key in originalEnv)) delete process.env[key];
|
|
7
|
-
for (const [key, value] of Object.entries(originalEnv))process.env[key] = value;
|
|
8
|
-
};
|
|
9
|
-
const loadSearchModule = async (overrides)=>{
|
|
10
|
-
for (const [key, value] of Object.entries(overrides))if (void 0 === value) delete process.env[key];
|
|
11
|
-
else process.env[key] = value;
|
|
12
|
-
vi.resetModules();
|
|
13
|
-
const searchMock = vi.fn();
|
|
14
|
-
vi.doMock("duck-duck-scrape", ()=>({
|
|
15
|
-
search: searchMock
|
|
16
|
-
}));
|
|
17
|
-
const module = await import("../tools/internet_search.js");
|
|
18
|
-
return {
|
|
19
|
-
...module,
|
|
20
|
-
searchMock
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
beforeEach(()=>{
|
|
24
|
-
vi.useFakeTimers();
|
|
25
|
-
vi.spyOn(Math, "random").mockReturnValue(0);
|
|
26
|
-
});
|
|
27
|
-
afterEach(()=>{
|
|
28
|
-
vi.useRealTimers();
|
|
29
|
-
vi.restoreAllMocks();
|
|
30
|
-
restoreEnv();
|
|
31
|
-
});
|
|
32
|
-
describe("Internet search tool (DuckDuckGo)", ()=>{
|
|
33
|
-
it("retries on DDG anomaly and succeeds", async ()=>{
|
|
34
|
-
const { createInternetSearchTool, searchMock } = await loadSearchModule({
|
|
35
|
-
WINGMAN_DDG_MIN_DELAY_MS: "0",
|
|
36
|
-
WINGMAN_DDG_BACKOFF_BASE_MS: "1",
|
|
37
|
-
WINGMAN_DDG_BACKOFF_MAX_MS: "1",
|
|
38
|
-
WINGMAN_DDG_MAX_RETRIES: "2"
|
|
39
|
-
});
|
|
40
|
-
searchMock.mockRejectedValueOnce(new Error("DDG detected an anomaly in the request, you are likely making requests too quickly.")).mockResolvedValueOnce({
|
|
41
|
-
results: [
|
|
42
|
-
{
|
|
43
|
-
title: "Wingman",
|
|
44
|
-
url: "https://wingman.ai",
|
|
45
|
-
description: "Agentic coding assistant"
|
|
46
|
-
}
|
|
47
|
-
]
|
|
48
|
-
});
|
|
49
|
-
const tool = createInternetSearchTool({
|
|
50
|
-
provider: "duckduckgo",
|
|
51
|
-
maxResults: 3
|
|
52
|
-
});
|
|
53
|
-
const resultPromise = tool.invoke({
|
|
54
|
-
query: "test"
|
|
55
|
-
});
|
|
56
|
-
const expectation = expect(resultPromise).resolves.toContain("Wingman");
|
|
57
|
-
await vi.runAllTimersAsync();
|
|
58
|
-
await expectation;
|
|
59
|
-
expect(searchMock).toHaveBeenCalledTimes(2);
|
|
60
|
-
});
|
|
61
|
-
it("throws a friendly error after retry exhaustion", async ()=>{
|
|
62
|
-
const { createInternetSearchTool, searchMock } = await loadSearchModule({
|
|
63
|
-
WINGMAN_DDG_MIN_DELAY_MS: "0",
|
|
64
|
-
WINGMAN_DDG_BACKOFF_BASE_MS: "1",
|
|
65
|
-
WINGMAN_DDG_BACKOFF_MAX_MS: "1",
|
|
66
|
-
WINGMAN_DDG_MAX_RETRIES: "1"
|
|
67
|
-
});
|
|
68
|
-
searchMock.mockRejectedValue(new Error("DDG detected an anomaly in the request, you are likely making requests too quickly."));
|
|
69
|
-
const tool = createInternetSearchTool({
|
|
70
|
-
provider: "duckduckgo",
|
|
71
|
-
maxResults: 3
|
|
72
|
-
});
|
|
73
|
-
const resultPromise = tool.invoke({
|
|
74
|
-
query: "test"
|
|
75
|
-
});
|
|
76
|
-
const expectation = expect(resultPromise).rejects.toThrow(/rate-limited|anomaly/i);
|
|
77
|
-
await vi.runAllTimersAsync();
|
|
78
|
-
await expectation;
|
|
79
|
-
expect(searchMock).toHaveBeenCalledTimes(2);
|
|
80
|
-
});
|
|
81
|
-
it("does not retry on non-anomaly errors", async ()=>{
|
|
82
|
-
const { createInternetSearchTool, searchMock } = await loadSearchModule({
|
|
83
|
-
WINGMAN_DDG_MIN_DELAY_MS: "0",
|
|
84
|
-
WINGMAN_DDG_BACKOFF_BASE_MS: "1",
|
|
85
|
-
WINGMAN_DDG_BACKOFF_MAX_MS: "1",
|
|
86
|
-
WINGMAN_DDG_MAX_RETRIES: "2"
|
|
87
|
-
});
|
|
88
|
-
searchMock.mockRejectedValue(new Error("network down"));
|
|
89
|
-
const tool = createInternetSearchTool({
|
|
90
|
-
provider: "duckduckgo",
|
|
91
|
-
maxResults: 3
|
|
92
|
-
});
|
|
93
|
-
const resultPromise = tool.invoke({
|
|
94
|
-
query: "test"
|
|
95
|
-
});
|
|
96
|
-
const expectation = expect(resultPromise).rejects.toThrow("network down");
|
|
97
|
-
await vi.runAllTimersAsync();
|
|
98
|
-
await expectation;
|
|
99
|
-
expect(searchMock).toHaveBeenCalledTimes(1);
|
|
100
|
-
});
|
|
101
|
-
});
|
|
@@ -1,290 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __webpack_exports__ = {};
|
|
3
|
-
const external_vitest_namespaceObject = require("vitest");
|
|
4
|
-
const mcpClientManager_cjs_namespaceObject = require("../config/mcpClientManager.cjs");
|
|
5
|
-
const testLogger = {
|
|
6
|
-
debug: ()=>{},
|
|
7
|
-
info: ()=>{},
|
|
8
|
-
warn: ()=>{},
|
|
9
|
-
error: ()=>{}
|
|
10
|
-
};
|
|
11
|
-
const getClientConfig = (manager)=>manager.buildClientConfig();
|
|
12
|
-
(0, external_vitest_namespaceObject.describe)("MCPClientManager runtime env", ()=>{
|
|
13
|
-
(0, external_vitest_namespaceObject.it)("injects workdir for stdio servers", ()=>{
|
|
14
|
-
const executionWorkspace = "/tmp/wingman-workdir";
|
|
15
|
-
const configs = [
|
|
16
|
-
{
|
|
17
|
-
servers: [
|
|
18
|
-
{
|
|
19
|
-
name: "fal-ai",
|
|
20
|
-
transport: "stdio",
|
|
21
|
-
command: "bun",
|
|
22
|
-
args: [
|
|
23
|
-
"run",
|
|
24
|
-
"src/tools/mcp-fal-ai.ts"
|
|
25
|
-
],
|
|
26
|
-
env: {
|
|
27
|
-
EXISTING: "value"
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
]
|
|
31
|
-
}
|
|
32
|
-
];
|
|
33
|
-
const manager = new mcpClientManager_cjs_namespaceObject.MCPClientManager(configs, testLogger, {
|
|
34
|
-
executionWorkspace
|
|
35
|
-
});
|
|
36
|
-
const clientConfig = getClientConfig(manager);
|
|
37
|
-
const env = clientConfig.mcpServers["fal-ai"].env;
|
|
38
|
-
(0, external_vitest_namespaceObject.expect)(env.EXISTING).toBe("value");
|
|
39
|
-
(0, external_vitest_namespaceObject.expect)(env.WINGMAN_WORKDIR).toBe(executionWorkspace);
|
|
40
|
-
});
|
|
41
|
-
(0, external_vitest_namespaceObject.it)("does not inject workdir when no execution workspace is provided", ()=>{
|
|
42
|
-
const configs = [
|
|
43
|
-
{
|
|
44
|
-
servers: [
|
|
45
|
-
{
|
|
46
|
-
name: "fal-ai",
|
|
47
|
-
transport: "stdio",
|
|
48
|
-
command: "bun",
|
|
49
|
-
args: [
|
|
50
|
-
"run",
|
|
51
|
-
"src/tools/mcp-fal-ai.ts"
|
|
52
|
-
],
|
|
53
|
-
env: {
|
|
54
|
-
EXISTING: "value"
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
]
|
|
58
|
-
}
|
|
59
|
-
];
|
|
60
|
-
const manager = new mcpClientManager_cjs_namespaceObject.MCPClientManager(configs, testLogger);
|
|
61
|
-
const clientConfig = getClientConfig(manager);
|
|
62
|
-
const env = clientConfig.mcpServers["fal-ai"].env;
|
|
63
|
-
(0, external_vitest_namespaceObject.expect)(env.EXISTING).toBe("value");
|
|
64
|
-
(0, external_vitest_namespaceObject.expect)(env.WINGMAN_WORKDIR).toBeUndefined();
|
|
65
|
-
});
|
|
66
|
-
(0, external_vitest_namespaceObject.it)("resolves env placeholders", ()=>{
|
|
67
|
-
const original = process.env.FAL_API_KEY;
|
|
68
|
-
process.env.FAL_API_KEY = "test-key";
|
|
69
|
-
try {
|
|
70
|
-
const configs = [
|
|
71
|
-
{
|
|
72
|
-
servers: [
|
|
73
|
-
{
|
|
74
|
-
name: "fal-ai",
|
|
75
|
-
transport: "stdio",
|
|
76
|
-
command: "bun",
|
|
77
|
-
args: [
|
|
78
|
-
"run",
|
|
79
|
-
"src/tools/mcp-fal-ai.ts"
|
|
80
|
-
],
|
|
81
|
-
env: {
|
|
82
|
-
FAL_API_KEY: "${FAL_API_KEY}"
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
]
|
|
86
|
-
}
|
|
87
|
-
];
|
|
88
|
-
const manager = new mcpClientManager_cjs_namespaceObject.MCPClientManager(configs, testLogger);
|
|
89
|
-
const clientConfig = getClientConfig(manager);
|
|
90
|
-
(0, external_vitest_namespaceObject.expect)(clientConfig.mcpServers["fal-ai"].env.FAL_API_KEY).toBe("test-key");
|
|
91
|
-
} finally{
|
|
92
|
-
if ("string" == typeof original) process.env.FAL_API_KEY = original;
|
|
93
|
-
else delete process.env.FAL_API_KEY;
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
(0, external_vitest_namespaceObject.it)("passes through per-server default tool timeout", ()=>{
|
|
97
|
-
const configs = [
|
|
98
|
-
{
|
|
99
|
-
servers: [
|
|
100
|
-
{
|
|
101
|
-
name: "fal-ai",
|
|
102
|
-
transport: "stdio",
|
|
103
|
-
command: "bun",
|
|
104
|
-
args: [
|
|
105
|
-
"run",
|
|
106
|
-
"src/tools/mcp-fal-ai.ts"
|
|
107
|
-
],
|
|
108
|
-
defaultToolTimeout: 300000,
|
|
109
|
-
env: {
|
|
110
|
-
EXISTING: "value"
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
]
|
|
114
|
-
}
|
|
115
|
-
];
|
|
116
|
-
const manager = new mcpClientManager_cjs_namespaceObject.MCPClientManager(configs, testLogger);
|
|
117
|
-
const clientConfig = getClientConfig(manager);
|
|
118
|
-
(0, external_vitest_namespaceObject.expect)(clientConfig.mcpServers["fal-ai"].defaultToolTimeout).toBe(300000);
|
|
119
|
-
});
|
|
120
|
-
(0, external_vitest_namespaceObject.it)("wraps stdio servers with proxy command when enabled", ()=>{
|
|
121
|
-
const configs = [
|
|
122
|
-
{
|
|
123
|
-
servers: [
|
|
124
|
-
{
|
|
125
|
-
name: "fal-ai",
|
|
126
|
-
transport: "stdio",
|
|
127
|
-
command: "bun",
|
|
128
|
-
args: [
|
|
129
|
-
"run",
|
|
130
|
-
"src/tools/mcp-fal-ai.ts"
|
|
131
|
-
],
|
|
132
|
-
env: {
|
|
133
|
-
EXISTING: "value"
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
]
|
|
137
|
-
}
|
|
138
|
-
];
|
|
139
|
-
const manager = new mcpClientManager_cjs_namespaceObject.MCPClientManager(configs, testLogger, {
|
|
140
|
-
proxyConfig: {
|
|
141
|
-
enabled: true,
|
|
142
|
-
command: "uvx",
|
|
143
|
-
baseArgs: [
|
|
144
|
-
"invariant-gateway@latest",
|
|
145
|
-
"mcp"
|
|
146
|
-
],
|
|
147
|
-
projectName: "wingman-gateway",
|
|
148
|
-
apiKey: "test-api-key",
|
|
149
|
-
apiUrl: "https://explorer.invariantlabs.ai"
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
const clientConfig = getClientConfig(manager);
|
|
153
|
-
const server = clientConfig.mcpServers["fal-ai"];
|
|
154
|
-
(0, external_vitest_namespaceObject.expect)(server.command).toBe("uvx");
|
|
155
|
-
(0, external_vitest_namespaceObject.expect)(server.args).toEqual([
|
|
156
|
-
"invariant-gateway@latest",
|
|
157
|
-
"mcp",
|
|
158
|
-
"--project-name",
|
|
159
|
-
"wingman-gateway",
|
|
160
|
-
"--exec",
|
|
161
|
-
"bun",
|
|
162
|
-
"run",
|
|
163
|
-
"src/tools/mcp-fal-ai.ts"
|
|
164
|
-
]);
|
|
165
|
-
(0, external_vitest_namespaceObject.expect)(server.env.EXISTING).toBe("value");
|
|
166
|
-
(0, external_vitest_namespaceObject.expect)(server.env.INVARIANT_API_KEY).toBe("test-api-key");
|
|
167
|
-
(0, external_vitest_namespaceObject.expect)(server.env.INVARIANT_API_URL).toBe("https://explorer.invariantlabs.ai");
|
|
168
|
-
(0, external_vitest_namespaceObject.expect)(server.env.GUARDRAILS_API_URL).toBe("https://explorer.invariantlabs.ai");
|
|
169
|
-
});
|
|
170
|
-
(0, external_vitest_namespaceObject.it)("keeps MCP multimodal output handling in artifact mode", ()=>{
|
|
171
|
-
const configs = [
|
|
172
|
-
{
|
|
173
|
-
servers: [
|
|
174
|
-
{
|
|
175
|
-
name: "fal-ai",
|
|
176
|
-
transport: "stdio",
|
|
177
|
-
command: "bun",
|
|
178
|
-
args: [
|
|
179
|
-
"run",
|
|
180
|
-
"src/tools/mcp-fal-ai.ts"
|
|
181
|
-
]
|
|
182
|
-
}
|
|
183
|
-
]
|
|
184
|
-
}
|
|
185
|
-
];
|
|
186
|
-
const manager = new mcpClientManager_cjs_namespaceObject.MCPClientManager(configs, testLogger);
|
|
187
|
-
const clientConfig = getClientConfig(manager);
|
|
188
|
-
(0, external_vitest_namespaceObject.expect)(clientConfig.outputHandling).toEqual({
|
|
189
|
-
image: "artifact",
|
|
190
|
-
audio: "artifact",
|
|
191
|
-
resource: "artifact"
|
|
192
|
-
});
|
|
193
|
-
});
|
|
194
|
-
(0, external_vitest_namespaceObject.it)("lists resources from MCP client", async ()=>{
|
|
195
|
-
const listResources = external_vitest_namespaceObject.vi.fn().mockResolvedValue({
|
|
196
|
-
fal: [
|
|
197
|
-
{
|
|
198
|
-
uri: "fal://jobs/123",
|
|
199
|
-
name: "Job 123",
|
|
200
|
-
description: "Generated asset",
|
|
201
|
-
mimeType: "application/json"
|
|
202
|
-
}
|
|
203
|
-
]
|
|
204
|
-
});
|
|
205
|
-
const manager = new mcpClientManager_cjs_namespaceObject.MCPClientManager([], testLogger);
|
|
206
|
-
manager.client = {
|
|
207
|
-
listResources
|
|
208
|
-
};
|
|
209
|
-
const result = await manager.listResources([
|
|
210
|
-
"fal"
|
|
211
|
-
]);
|
|
212
|
-
(0, external_vitest_namespaceObject.expect)(listResources).toHaveBeenCalledWith("fal");
|
|
213
|
-
(0, external_vitest_namespaceObject.expect)(result).toEqual({
|
|
214
|
-
fal: [
|
|
215
|
-
{
|
|
216
|
-
uri: "fal://jobs/123",
|
|
217
|
-
name: "Job 123",
|
|
218
|
-
description: "Generated asset",
|
|
219
|
-
mimeType: "application/json"
|
|
220
|
-
}
|
|
221
|
-
]
|
|
222
|
-
});
|
|
223
|
-
});
|
|
224
|
-
(0, external_vitest_namespaceObject.it)("lists resource templates from MCP client", async ()=>{
|
|
225
|
-
const listResourceTemplates = external_vitest_namespaceObject.vi.fn().mockResolvedValue({
|
|
226
|
-
fal: [
|
|
227
|
-
{
|
|
228
|
-
uriTemplate: "fal://jobs/{jobId}",
|
|
229
|
-
name: "Fal Job",
|
|
230
|
-
description: "Job by ID",
|
|
231
|
-
mimeType: "application/json"
|
|
232
|
-
}
|
|
233
|
-
]
|
|
234
|
-
});
|
|
235
|
-
const manager = new mcpClientManager_cjs_namespaceObject.MCPClientManager([], testLogger);
|
|
236
|
-
manager.client = {
|
|
237
|
-
listResourceTemplates
|
|
238
|
-
};
|
|
239
|
-
const result = await manager.listResourceTemplates([
|
|
240
|
-
"fal"
|
|
241
|
-
]);
|
|
242
|
-
(0, external_vitest_namespaceObject.expect)(listResourceTemplates).toHaveBeenCalledWith("fal");
|
|
243
|
-
(0, external_vitest_namespaceObject.expect)(result).toEqual({
|
|
244
|
-
fal: [
|
|
245
|
-
{
|
|
246
|
-
uriTemplate: "fal://jobs/{jobId}",
|
|
247
|
-
name: "Fal Job",
|
|
248
|
-
description: "Job by ID",
|
|
249
|
-
mimeType: "application/json"
|
|
250
|
-
}
|
|
251
|
-
]
|
|
252
|
-
});
|
|
253
|
-
});
|
|
254
|
-
(0, external_vitest_namespaceObject.it)("reads resources from MCP client", async ()=>{
|
|
255
|
-
const readResource = external_vitest_namespaceObject.vi.fn().mockResolvedValue([
|
|
256
|
-
{
|
|
257
|
-
uri: "fal://jobs/123",
|
|
258
|
-
mimeType: "application/json",
|
|
259
|
-
text: '{"status":"completed"}'
|
|
260
|
-
}
|
|
261
|
-
]);
|
|
262
|
-
const manager = new mcpClientManager_cjs_namespaceObject.MCPClientManager([], testLogger);
|
|
263
|
-
manager.client = {
|
|
264
|
-
readResource
|
|
265
|
-
};
|
|
266
|
-
const result = await manager.readResource("fal", "fal://jobs/123");
|
|
267
|
-
(0, external_vitest_namespaceObject.expect)(readResource).toHaveBeenCalledWith("fal", "fal://jobs/123");
|
|
268
|
-
(0, external_vitest_namespaceObject.expect)(result).toEqual([
|
|
269
|
-
{
|
|
270
|
-
uri: "fal://jobs/123",
|
|
271
|
-
mimeType: "application/json",
|
|
272
|
-
text: '{"status":"completed"}'
|
|
273
|
-
}
|
|
274
|
-
]);
|
|
275
|
-
});
|
|
276
|
-
(0, external_vitest_namespaceObject.it)("calls close on cleanup", async ()=>{
|
|
277
|
-
const close = external_vitest_namespaceObject.vi.fn().mockResolvedValue(void 0);
|
|
278
|
-
const manager = new mcpClientManager_cjs_namespaceObject.MCPClientManager([], testLogger);
|
|
279
|
-
manager.client = {
|
|
280
|
-
close
|
|
281
|
-
};
|
|
282
|
-
await manager.cleanup();
|
|
283
|
-
(0, external_vitest_namespaceObject.expect)(close).toHaveBeenCalledTimes(1);
|
|
284
|
-
(0, external_vitest_namespaceObject.expect)(manager.client).toBeNull();
|
|
285
|
-
});
|
|
286
|
-
});
|
|
287
|
-
for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
288
|
-
Object.defineProperty(exports, '__esModule', {
|
|
289
|
-
value: true
|
|
290
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|