@meetsmore-oss/use-ai-server 1.2.1
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/agents/AISDKAgent.d.ts +220 -0
- package/dist/agents/AISDKAgent.d.ts.map +1 -0
- package/dist/agents/AISDKAgent.test.d.ts +2 -0
- package/dist/agents/AISDKAgent.test.d.ts.map +1 -0
- package/dist/agents/index.d.ts +7 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/types.d.ts +151 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents.integration.test.d.ts +2 -0
- package/dist/agents.integration.test.d.ts.map +1 -0
- package/dist/configuration.integration.test.d.ts +2 -0
- package/dist/configuration.integration.test.d.ts.map +1 -0
- package/dist/core-architecture.integration.test.d.ts +2 -0
- package/dist/core-architecture.integration.test.d.ts.map +1 -0
- package/dist/error-handling.integration.test.d.ts +2 -0
- package/dist/error-handling.integration.test.d.ts.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +80683 -0
- package/dist/instrumentation.d.ts +15 -0
- package/dist/instrumentation.d.ts.map +1 -0
- package/dist/langfuse.integration.test.d.ts +7 -0
- package/dist/langfuse.integration.test.d.ts.map +1 -0
- package/dist/logger.d.ts +30 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/mcp/RemoteMcpToolsProvider.d.ts +73 -0
- package/dist/mcp/RemoteMcpToolsProvider.d.ts.map +1 -0
- package/dist/mcp/RemoteMcpToolsProvider.test.d.ts +2 -0
- package/dist/mcp/RemoteMcpToolsProvider.test.d.ts.map +1 -0
- package/dist/mcp/index.d.ts +2 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp.integration.test.d.ts +2 -0
- package/dist/mcp.integration.test.d.ts.map +1 -0
- package/dist/message-sanitization.test.d.ts +2 -0
- package/dist/message-sanitization.test.d.ts.map +1 -0
- package/dist/plugins/index.d.ts +2 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/types.d.ts +69 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins.integration.test.d.ts +2 -0
- package/dist/plugins.integration.test.d.ts.map +1 -0
- package/dist/rate-limiting.integration.test.d.ts +2 -0
- package/dist/rate-limiting.integration.test.d.ts.map +1 -0
- package/dist/rateLimiter.d.ts +17 -0
- package/dist/rateLimiter.d.ts.map +1 -0
- package/dist/rateLimiter.test.d.ts +2 -0
- package/dist/rateLimiter.test.d.ts.map +1 -0
- package/dist/server.d.ts +140 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.test.d.ts +2 -0
- package/dist/server.test.d.ts.map +1 -0
- package/dist/src/agents/AISDKAgent.d.ts +220 -0
- package/dist/src/agents/AISDKAgent.d.ts.map +1 -0
- package/dist/src/agents/AISDKAgent.test.d.ts +2 -0
- package/dist/src/agents/AISDKAgent.test.d.ts.map +1 -0
- package/dist/src/agents/index.d.ts +7 -0
- package/dist/src/agents/index.d.ts.map +1 -0
- package/dist/src/agents/types.d.ts +151 -0
- package/dist/src/agents/types.d.ts.map +1 -0
- package/dist/src/agents.integration.test.d.ts +2 -0
- package/dist/src/agents.integration.test.d.ts.map +1 -0
- package/dist/src/configuration.integration.test.d.ts +2 -0
- package/dist/src/configuration.integration.test.d.ts.map +1 -0
- package/dist/src/core-architecture.integration.test.d.ts +2 -0
- package/dist/src/core-architecture.integration.test.d.ts.map +1 -0
- package/dist/src/error-handling.integration.test.d.ts +2 -0
- package/dist/src/error-handling.integration.test.d.ts.map +1 -0
- package/dist/src/index.d.ts +9 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/instrumentation.d.ts +15 -0
- package/dist/src/instrumentation.d.ts.map +1 -0
- package/dist/src/langfuse.integration.test.d.ts +7 -0
- package/dist/src/langfuse.integration.test.d.ts.map +1 -0
- package/dist/src/logger.d.ts +30 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/mcp/RemoteMcpToolsProvider.d.ts +73 -0
- package/dist/src/mcp/RemoteMcpToolsProvider.d.ts.map +1 -0
- package/dist/src/mcp/RemoteMcpToolsProvider.test.d.ts +2 -0
- package/dist/src/mcp/RemoteMcpToolsProvider.test.d.ts.map +1 -0
- package/dist/src/mcp/index.d.ts +2 -0
- package/dist/src/mcp/index.d.ts.map +1 -0
- package/dist/src/mcp.integration.test.d.ts +2 -0
- package/dist/src/mcp.integration.test.d.ts.map +1 -0
- package/dist/src/message-sanitization.test.d.ts +2 -0
- package/dist/src/message-sanitization.test.d.ts.map +1 -0
- package/dist/src/plugins/index.d.ts +2 -0
- package/dist/src/plugins/index.d.ts.map +1 -0
- package/dist/src/plugins/types.d.ts +69 -0
- package/dist/src/plugins/types.d.ts.map +1 -0
- package/dist/src/plugins.integration.test.d.ts +2 -0
- package/dist/src/plugins.integration.test.d.ts.map +1 -0
- package/dist/src/rate-limiting.integration.test.d.ts +2 -0
- package/dist/src/rate-limiting.integration.test.d.ts.map +1 -0
- package/dist/src/rateLimiter.d.ts +17 -0
- package/dist/src/rateLimiter.d.ts.map +1 -0
- package/dist/src/rateLimiter.test.d.ts +2 -0
- package/dist/src/rateLimiter.test.d.ts.map +1 -0
- package/dist/src/server.d.ts +140 -0
- package/dist/src/server.d.ts.map +1 -0
- package/dist/src/server.test.d.ts +2 -0
- package/dist/src/server.test.d.ts.map +1 -0
- package/dist/src/test-preload.d.ts +25 -0
- package/dist/src/test-preload.d.ts.map +1 -0
- package/dist/src/tool-execution.integration.test.d.ts +2 -0
- package/dist/src/tool-execution.integration.test.d.ts.map +1 -0
- package/dist/src/types.d.ts +60 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/utils/index.d.ts +6 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/patternMatcher.d.ts +41 -0
- package/dist/src/utils/patternMatcher.d.ts.map +1 -0
- package/dist/src/utils/patternMatcher.test.d.ts +2 -0
- package/dist/src/utils/patternMatcher.test.d.ts.map +1 -0
- package/dist/src/utils/toolConverter.d.ts +22 -0
- package/dist/src/utils/toolConverter.d.ts.map +1 -0
- package/dist/src/utils/toolFilters.d.ts +101 -0
- package/dist/src/utils/toolFilters.d.ts.map +1 -0
- package/dist/test/integration-test-utils.d.ts +203 -0
- package/dist/test/integration-test-utils.d.ts.map +1 -0
- package/dist/test/test-utils.d.ts +104 -0
- package/dist/test/test-utils.d.ts.map +1 -0
- package/dist/test-preload.d.ts +25 -0
- package/dist/test-preload.d.ts.map +1 -0
- package/dist/tool-execution.integration.test.d.ts +2 -0
- package/dist/tool-execution.integration.test.d.ts.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types.d.ts +60 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/patternMatcher.d.ts +41 -0
- package/dist/utils/patternMatcher.d.ts.map +1 -0
- package/dist/utils/patternMatcher.test.d.ts +2 -0
- package/dist/utils/patternMatcher.test.d.ts.map +1 -0
- package/dist/utils/toolConverter.d.ts +22 -0
- package/dist/utils/toolConverter.d.ts.map +1 -0
- package/dist/utils/toolFilters.d.ts +101 -0
- package/dist/utils/toolFilters.d.ts.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { ClientSession } from '../agents/types';
|
|
2
|
+
import type { UseAIClientMessage } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Message handler function type for plugin-registered message handlers.
|
|
5
|
+
*
|
|
6
|
+
* @param session - The client session context
|
|
7
|
+
* @param message - The incoming message from the client
|
|
8
|
+
*/
|
|
9
|
+
export type MessageHandler = (session: ClientSession, message: UseAIClientMessage) => Promise<void> | void;
|
|
10
|
+
/**
|
|
11
|
+
* Plugin interface for extending UseAIServer functionality.
|
|
12
|
+
*
|
|
13
|
+
* Plugins can register custom message handlers, react to client lifecycle events,
|
|
14
|
+
* and add new capabilities to the server without modifying core code.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* class WorkflowsPlugin implements UseAIServerPlugin {
|
|
19
|
+
* getName() {
|
|
20
|
+
* return 'workflows';
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* registerHandlers(server) {
|
|
24
|
+
* server.registerMessageHandler('run_workflow', async (session, message) => {
|
|
25
|
+
* // Handle workflow execution
|
|
26
|
+
* });
|
|
27
|
+
* }
|
|
28
|
+
*
|
|
29
|
+
* onClientConnect(session) {
|
|
30
|
+
* console.log('Client connected:', session.clientId);
|
|
31
|
+
* }
|
|
32
|
+
*
|
|
33
|
+
* onClientDisconnect(session) {
|
|
34
|
+
* console.log('Client disconnected:', session.clientId);
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export interface UseAIServerPlugin {
|
|
40
|
+
/**
|
|
41
|
+
* Returns the unique identifier for this plugin.
|
|
42
|
+
* Used for logging and debugging purposes.
|
|
43
|
+
*
|
|
44
|
+
* @returns Plugin name (e.g., 'workflows', 'analytics', 'auth')
|
|
45
|
+
*/
|
|
46
|
+
getName(): string;
|
|
47
|
+
/**
|
|
48
|
+
* Called when the plugin is registered with the server.
|
|
49
|
+
* Use this to register custom message handlers.
|
|
50
|
+
*
|
|
51
|
+
* @param server - Object with registerMessageHandler method
|
|
52
|
+
*/
|
|
53
|
+
registerHandlers(server: {
|
|
54
|
+
registerMessageHandler(type: string, handler: MessageHandler): void;
|
|
55
|
+
}): void;
|
|
56
|
+
/**
|
|
57
|
+
* Optional lifecycle hook called when a client connects.
|
|
58
|
+
*
|
|
59
|
+
* @param session - The newly created client session
|
|
60
|
+
*/
|
|
61
|
+
onClientConnect?(session: ClientSession): void;
|
|
62
|
+
/**
|
|
63
|
+
* Optional lifecycle hook called when a client disconnects.
|
|
64
|
+
*
|
|
65
|
+
* @param session - The disconnecting client session
|
|
66
|
+
*/
|
|
67
|
+
onClientDisconnect?(session: ClientSession): void;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE3G;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,OAAO,IAAI,MAAM,CAAC;IAElB;;;;;OAKG;IACH,gBAAgB,CAAC,MAAM,EAAE;QACvB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;KACrE,GAAG,IAAI,CAAC;IAET;;;;OAIG;IACH,eAAe,CAAC,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAE/C;;;;OAIG;IACH,kBAAkB,CAAC,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;CACnD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.integration.test.d.ts","sourceRoot":"","sources":["../../src/plugins.integration.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limiting.integration.test.d.ts","sourceRoot":"","sources":["../../src/rate-limiting.integration.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface RateLimiterConfig {
|
|
2
|
+
maxRequests: number;
|
|
3
|
+
windowMs: number;
|
|
4
|
+
}
|
|
5
|
+
export declare class RateLimiter {
|
|
6
|
+
private requests;
|
|
7
|
+
private config;
|
|
8
|
+
constructor(config: RateLimiterConfig);
|
|
9
|
+
isEnabled(): boolean;
|
|
10
|
+
checkLimit(ipAddress: string): {
|
|
11
|
+
allowed: boolean;
|
|
12
|
+
retryAfterMs?: number;
|
|
13
|
+
};
|
|
14
|
+
removeIpAddress(ipAddress: string): void;
|
|
15
|
+
cleanup(): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=rateLimiter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rateLimiter.d.ts","sourceRoot":"","sources":["../../src/rateLimiter.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,EAAE,iBAAiB;IAIrC,SAAS,IAAI,OAAO;IAIpB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IAuB1E,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIxC,OAAO,IAAI,IAAI;CAchB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rateLimiter.test.d.ts","sourceRoot":"","sources":["../../src/rateLimiter.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import type { UseAIServerConfig } from './types';
|
|
2
|
+
import type { MessageHandler } from './plugins/types';
|
|
3
|
+
export type { ClientSession } from './agents/types';
|
|
4
|
+
/**
|
|
5
|
+
* WebSocket server that coordinates between client applications and AI agents.
|
|
6
|
+
* Supports pluggable agents (AISDKAgent, etc.) via AG-UI protocol.
|
|
7
|
+
*
|
|
8
|
+
* Responsibilities:
|
|
9
|
+
* - Manages WebSocket connections from clients
|
|
10
|
+
* - Accepts RunAgentInput messages
|
|
11
|
+
* - Delegates to pluggable agents (AISDKAgent, etc.)
|
|
12
|
+
* - Emits AG-UI events (TEXT_MESSAGE_*, TOOL_CALL_*, etc.)
|
|
13
|
+
* - Routes tool execution requests back to clients
|
|
14
|
+
* - Maintains conversation history and state per session
|
|
15
|
+
* - Handles rate limiting
|
|
16
|
+
* - Supports plugins for extending functionality
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* import { UseAIServer, AISDKAgent } from '@meetsmore-oss/use-ai-server';
|
|
21
|
+
* import { createAnthropic } from '@ai-sdk/anthropic';
|
|
22
|
+
* import { openai } from '@ai-sdk/openai';
|
|
23
|
+
*
|
|
24
|
+
* // Single agent (Claude)
|
|
25
|
+
* const anthropic = createAnthropic({
|
|
26
|
+
* apiKey: process.env.ANTHROPIC_API_KEY,
|
|
27
|
+
* });
|
|
28
|
+
* const claudeAgent = new AISDKAgent({
|
|
29
|
+
* model: anthropic('claude-sonnet-4-20250514'),
|
|
30
|
+
* });
|
|
31
|
+
* const server = new UseAIServer({
|
|
32
|
+
* port: 8081,
|
|
33
|
+
* agents: { claude: claudeAgent },
|
|
34
|
+
* defaultAgent: 'claude', // Default agent name
|
|
35
|
+
* });
|
|
36
|
+
*
|
|
37
|
+
* // Multiple agents (Claude + OpenAI)
|
|
38
|
+
* const gptAgent = new AISDKAgent({
|
|
39
|
+
* model: openai('gpt-4-turbo'),
|
|
40
|
+
* });
|
|
41
|
+
* const multiServer = new UseAIServer({
|
|
42
|
+
* port: 8081,
|
|
43
|
+
* agents: {
|
|
44
|
+
* claude: claudeAgent,
|
|
45
|
+
* 'gpt-4': gptAgent,
|
|
46
|
+
* },
|
|
47
|
+
* runner: 'claude', // Default for chat
|
|
48
|
+
* });
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare class UseAIServer {
|
|
52
|
+
private io;
|
|
53
|
+
private httpServer;
|
|
54
|
+
private agent;
|
|
55
|
+
private defaultAgentId;
|
|
56
|
+
private agents;
|
|
57
|
+
private clients;
|
|
58
|
+
private config;
|
|
59
|
+
private rateLimiter;
|
|
60
|
+
private cleanupInterval;
|
|
61
|
+
private clientIdCounter;
|
|
62
|
+
private plugins;
|
|
63
|
+
private messageHandlers;
|
|
64
|
+
private mcpEndpoints;
|
|
65
|
+
/**
|
|
66
|
+
* Creates a new UseAI server instance.
|
|
67
|
+
*
|
|
68
|
+
* @param config - Server configuration options
|
|
69
|
+
* @throws Error if the specified agent name does not exist in the agents map
|
|
70
|
+
*/
|
|
71
|
+
constructor(config: UseAIServerConfig);
|
|
72
|
+
/**
|
|
73
|
+
* Initializes the server by fetching MCP tools from all endpoints.
|
|
74
|
+
* Must be called before the server starts accepting connections.
|
|
75
|
+
*/
|
|
76
|
+
initialize(): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Initialize all plugins by calling their registerHandlers method.
|
|
79
|
+
* This allows plugins to register custom message handlers.
|
|
80
|
+
*/
|
|
81
|
+
private initializePlugins;
|
|
82
|
+
/**
|
|
83
|
+
* Register a custom message handler for a specific message type.
|
|
84
|
+
* Used by plugins to handle custom message types.
|
|
85
|
+
*
|
|
86
|
+
* @param type - The message type to handle (e.g., 'run_workflow')
|
|
87
|
+
* @param handler - The handler function to call when this message type is received
|
|
88
|
+
*/
|
|
89
|
+
registerMessageHandler(type: string, handler: MessageHandler): void;
|
|
90
|
+
private setupSocketIOServer;
|
|
91
|
+
private handleClientMessage;
|
|
92
|
+
private handleRunAgent;
|
|
93
|
+
private buildSystemPrompt;
|
|
94
|
+
private handleToolResult;
|
|
95
|
+
private handleAbortRun;
|
|
96
|
+
private sendEvent;
|
|
97
|
+
/**
|
|
98
|
+
* Gets MCP tools for a session, using caching with authentication headers.
|
|
99
|
+
* Lazily fetches tools on first request, then caches per-session.
|
|
100
|
+
*
|
|
101
|
+
* Cache is invalidated when:
|
|
102
|
+
* 1. Headers hash changes (different user/token)
|
|
103
|
+
* 2. TTL expires (if configured per endpoint)
|
|
104
|
+
*
|
|
105
|
+
* @param session - The client session
|
|
106
|
+
* @param mcpHeaders - Optional MCP headers map with per-endpoint auth headers
|
|
107
|
+
* @returns Array of remote tool definitions from all MCP endpoints
|
|
108
|
+
*/
|
|
109
|
+
private getMcpToolsForSession;
|
|
110
|
+
/**
|
|
111
|
+
* Checks if the MCP tools cache is still valid for a session.
|
|
112
|
+
*
|
|
113
|
+
* @param session - The client session
|
|
114
|
+
* @param currentHeadersHash - Hash of current auth headers
|
|
115
|
+
* @param now - Current timestamp
|
|
116
|
+
* @returns true if cache is valid, false if refresh is needed
|
|
117
|
+
*/
|
|
118
|
+
private isMcpToolsCacheValid;
|
|
119
|
+
/**
|
|
120
|
+
* Creates a hash of MCP headers for use as a cache key.
|
|
121
|
+
*
|
|
122
|
+
* @param mcpHeaders - Optional MCP headers map
|
|
123
|
+
* @returns Hash string (16 chars), or 'no-auth' if no headers
|
|
124
|
+
*/
|
|
125
|
+
private hashMcpHeaders;
|
|
126
|
+
/**
|
|
127
|
+
* Resolves headers for a specific MCP endpoint from the headers map.
|
|
128
|
+
*
|
|
129
|
+
* @param endpointUrl - The endpoint URL to match
|
|
130
|
+
* @param mcpHeaders - Optional MCP headers map
|
|
131
|
+
* @returns Headers to use for this endpoint (empty object if no match)
|
|
132
|
+
*/
|
|
133
|
+
private resolveHeadersForEndpoint;
|
|
134
|
+
/**
|
|
135
|
+
* Closes the server and cleans up resources.
|
|
136
|
+
* Stops accepting new connections and terminates all existing connections.
|
|
137
|
+
*/
|
|
138
|
+
close(): void;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,iBAAiB,EAUlB,MAAM,SAAS,CAAC;AAMjB,OAAO,KAAK,EAAqB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAKzE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,MAAM,CAAkJ;IAChK,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,YAAY,CAAgC;IAEpD;;;;;OAKG;gBACS,MAAM,EAAE,iBAAiB;IA2ErC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBjC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;;;;OAMG;IACI,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAS1E,OAAO,CAAC,mBAAmB;YA0Eb,mBAAmB;YA2BnB,cAAc;IAgQ5B,OAAO,CAAC,iBAAiB;IAqCzB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,SAAS;IAMjB;;;;;;;;;;;OAWG;YACW,qBAAqB;IA+CnC;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAwC5B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAoBtB;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAYjC;;;OAGG;IACI,KAAK;CASb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.test.d.ts","sourceRoot":"","sources":["../../src/server.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
declare const logFile: string;
|
|
2
|
+
declare const originalConsole: {
|
|
3
|
+
log: {
|
|
4
|
+
(...data: any[]): void;
|
|
5
|
+
(...data: any[]): void;
|
|
6
|
+
(message?: any, ...optionalParams: any[]): void;
|
|
7
|
+
};
|
|
8
|
+
info: {
|
|
9
|
+
(...data: any[]): void;
|
|
10
|
+
(...data: any[]): void;
|
|
11
|
+
(message?: any, ...optionalParams: any[]): void;
|
|
12
|
+
};
|
|
13
|
+
warn: {
|
|
14
|
+
(...data: any[]): void;
|
|
15
|
+
(...data: any[]): void;
|
|
16
|
+
(message?: any, ...optionalParams: any[]): void;
|
|
17
|
+
};
|
|
18
|
+
error: {
|
|
19
|
+
(...data: any[]): void;
|
|
20
|
+
(...data: any[]): void;
|
|
21
|
+
(message?: any, ...optionalParams: any[]): void;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export { logFile, originalConsole };
|
|
25
|
+
//# sourceMappingURL=test-preload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-preload.d.ts","sourceRoot":"","sources":["../../src/test-preload.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,OAAO,QAA6B,CAAC;AAY3C,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;CAKpB,CAAC;AAmBF,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-execution.integration.test.d.ts","sourceRoot":"","sources":["../../src/tool-execution.integration.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration for an MCP (Model Context Protocol) endpoint.
|
|
3
|
+
* MCP endpoints provide tools that can be discovered and executed server-side.
|
|
4
|
+
*/
|
|
5
|
+
export interface McpEndpointConfig {
|
|
6
|
+
/** The full HTTP URL of the MCP endpoint (e.g., 'http://backend.com/mcp') */
|
|
7
|
+
url: string;
|
|
8
|
+
/** Optional HTTP headers for authentication (e.g., { 'Authorization': 'Bearer token' }) */
|
|
9
|
+
headers?: Record<string, string>;
|
|
10
|
+
/**
|
|
11
|
+
* Tool execution timeout in milliseconds.
|
|
12
|
+
* Default: 30000 (30 seconds)
|
|
13
|
+
*/
|
|
14
|
+
timeout?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Optional namespace prefix for tools from this endpoint.
|
|
17
|
+
* Useful to avoid naming conflicts when using multiple MCP endpoints.
|
|
18
|
+
* Example: namespace='backend' → tool 'calculator' becomes 'backend_calculator'
|
|
19
|
+
*/
|
|
20
|
+
namespace?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Cache TTL for tool lists in milliseconds.
|
|
23
|
+
* After this duration, tools are re-fetched on next run_agent.
|
|
24
|
+
* Default: 0 (cache for entire session, no TTL)
|
|
25
|
+
*/
|
|
26
|
+
toolsCacheTtl?: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Configuration options for the UseAI server.
|
|
30
|
+
*
|
|
31
|
+
* @template TAgents - Object mapping agent names to agent instances
|
|
32
|
+
*/
|
|
33
|
+
export interface UseAIServerConfig<TAgents extends Record<string, import('./agents/types').Agent> = Record<string, import('./agents/types').Agent>> {
|
|
34
|
+
/** Object mapping agent names to agent instances. */
|
|
35
|
+
agents: TAgents;
|
|
36
|
+
/** Name of the default agent to use for chat (run_agent). Must be a key in agents object. */
|
|
37
|
+
defaultAgent: keyof TAgents & string;
|
|
38
|
+
/** The port number for the WebSocket server. Default: 8081 */
|
|
39
|
+
port?: number;
|
|
40
|
+
/** Maximum number of requests allowed per time window. Set to 0 to disable rate limiting. Default: 0 */
|
|
41
|
+
rateLimitMaxRequests?: number;
|
|
42
|
+
/** Time window in milliseconds for rate limiting. Default: 60000 (1 minute) */
|
|
43
|
+
rateLimitWindowMs?: number;
|
|
44
|
+
/** Optional array of plugins to extend server functionality */
|
|
45
|
+
plugins?: import('./plugins/types').UseAIServerPlugin[];
|
|
46
|
+
/**
|
|
47
|
+
* Optional array of MCP endpoints to fetch tools from.
|
|
48
|
+
* Tools from these endpoints will be automatically available to all agents and workflows.
|
|
49
|
+
*/
|
|
50
|
+
mcpEndpoints?: McpEndpointConfig[];
|
|
51
|
+
/**
|
|
52
|
+
* Maximum HTTP buffer size in bytes for Socket.IO payloads.
|
|
53
|
+
* Increase this if you need to support larger file uploads.
|
|
54
|
+
* Default: 20MB (20 * 1024 * 1024)
|
|
55
|
+
*/
|
|
56
|
+
maxHttpBufferSize?: number;
|
|
57
|
+
}
|
|
58
|
+
export type { ToolDefinition, ClientMessage, Tool, Message, Context, RunAgentInput, State, RunAgentMessage, ToolResultMessage, AbortRunMessage, RunStartedEvent, RunFinishedEvent, RunErrorEvent, StepStartedEvent, StepFinishedEvent, TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent, TextMessageChunkEvent, ToolCallStartEvent, ToolCallArgsEvent, ToolCallEndEvent, ToolCallChunkEvent, ToolCallResultEvent, StateSnapshotEvent, StateDeltaEvent, MessagesSnapshotEvent, RawEvent, CustomEvent, ActivitySnapshotEvent, ActivityDeltaEvent, AGUIEvent, WorkflowStatus, UseAIClientMessage, RunWorkflowMessage, } from '@meetsmore-oss/use-ai-core';
|
|
59
|
+
export { EventType, ErrorCode } from '@meetsmore-oss/use-ai-core';
|
|
60
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,gBAAgB,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,gBAAgB,EAAE,KAAK,CAAC;IAChJ,qDAAqD;IACrD,MAAM,EAAE,OAAO,CAAC;IAChB,6FAA6F;IAC7F,YAAY,EAAE,MAAM,OAAO,GAAG,MAAM,CAAC;IACrC,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wGAAwG;IACxG,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;IACxD;;;OAGG;IACH,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAGD,YAAY,EACV,cAAc,EACd,aAAa,EAEb,IAAI,EACJ,OAAO,EACP,OAAO,EACP,aAAa,EACb,KAAK,EACL,eAAe,EACf,iBAAiB,EACjB,eAAe,EAEf,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACR,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,SAAS,EAET,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,GAAG,EACH,EAAE,EACF,GAAG,GACJ,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic utility for matching strings against patterns using picomatch.
|
|
3
|
+
*
|
|
4
|
+
* Supported pattern types:
|
|
5
|
+
* 1. **Constant strings** - Exact match
|
|
6
|
+
* 2. **Glob patterns** - Wildcard matching (via picomatch)
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // Constant
|
|
11
|
+
* matchesPattern('https://api.example.com', 'https://api.example.com')
|
|
12
|
+
*
|
|
13
|
+
* // Glob with wildcards
|
|
14
|
+
* matchesPattern('https://api.meetsmore.com', 'https://*.meetsmore.com')
|
|
15
|
+
* matchesPattern('https://api.example.com', '*://*.example.com')
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Matches a string against a pattern (constant string or glob).
|
|
20
|
+
*/
|
|
21
|
+
export declare function matchesPattern(str: string, pattern: string): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Finds the first matching pattern and its value from a pattern map.
|
|
24
|
+
* Exact string matches have priority over glob patterns.
|
|
25
|
+
*
|
|
26
|
+
* @param str - The string to match against patterns
|
|
27
|
+
* @param patternMap - A map of patterns to values
|
|
28
|
+
* @returns The value for the first matching pattern, or undefined if no match
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const config = {
|
|
33
|
+
* 'https://api.example.com': { key: 'exact' },
|
|
34
|
+
* 'https://*.example.com': { key: 'wildcard' }
|
|
35
|
+
* };
|
|
36
|
+
* findMatch('https://api.example.com', config); // { key: 'exact' }
|
|
37
|
+
* findMatch('https://other.example.com', config); // { key: 'wildcard' }
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare function findMatch<T>(str: string, patternMap: Record<string, T>): T | undefined;
|
|
41
|
+
//# sourceMappingURL=patternMatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patternMatcher.d.ts","sourceRoot":"","sources":["../../../src/utils/patternMatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAMpE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAC5B,CAAC,GAAG,SAAS,CAgBf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patternMatcher.test.d.ts","sourceRoot":"","sources":["../../../src/utils/patternMatcher.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ClientSession } from '../agents/types';
|
|
2
|
+
/**
|
|
3
|
+
* Generic tool arguments type - tools receive key-value pairs
|
|
4
|
+
*/
|
|
5
|
+
type ToolArguments = Record<string, unknown>;
|
|
6
|
+
/**
|
|
7
|
+
* Generic tool result type - tools can return any value
|
|
8
|
+
*/
|
|
9
|
+
type ToolResult = unknown;
|
|
10
|
+
/**
|
|
11
|
+
* Creates execute function for client-side tools.
|
|
12
|
+
* Note: TOOL_CALL events are emitted from the stream loop, not here.
|
|
13
|
+
* The toolCallId is provided by AI SDK in the execute options.
|
|
14
|
+
*
|
|
15
|
+
* @param session - The client session containing pendingToolCalls map
|
|
16
|
+
* @returns An async function that waits for client tool execution and returns the result
|
|
17
|
+
*/
|
|
18
|
+
export declare function createClientToolExecutor(session: ClientSession): (args: ToolArguments, options: {
|
|
19
|
+
toolCallId: string;
|
|
20
|
+
}) => Promise<ToolResult>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=toolConverter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolConverter.d.ts","sourceRoot":"","sources":["../../../src/utils/toolConverter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;GAEG;AACH,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE7C;;GAEG;AACH,KAAK,UAAU,GAAG,OAAO,CAAC;AAE1B;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,aAAa,GACrB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,UAAU,CAAC,CAS/E"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../types';
|
|
2
|
+
import type { RemoteToolDefinition } from '../mcp';
|
|
3
|
+
/**
|
|
4
|
+
* Type guard to check if a tool is a remote MCP tool.
|
|
5
|
+
*
|
|
6
|
+
* @param tool - Tool definition to check
|
|
7
|
+
* @returns True if tool has MCP remote provider, false otherwise
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* if (isRemoteTool(tool)) {
|
|
12
|
+
* // tool is RemoteToolDefinition with _remote property
|
|
13
|
+
* await tool._remote.provider.executeTool(...);
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare function isRemoteTool(tool: ToolDefinition): tool is RemoteToolDefinition;
|
|
18
|
+
/**
|
|
19
|
+
* Combines multiple filter functions with AND logic.
|
|
20
|
+
* All filters must return true for the tool to pass.
|
|
21
|
+
*
|
|
22
|
+
* @param filters - Filter functions to combine
|
|
23
|
+
* @returns Combined filter function
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const agent = new AISDKAgent({
|
|
28
|
+
* model: anthropic('claude-3-5-sonnet-20241022'),
|
|
29
|
+
* toolFilter: and(
|
|
30
|
+
* createMcpGlobAllowFilter(['db_*']),
|
|
31
|
+
* (tool) => tool.description.includes('read-only')
|
|
32
|
+
* )
|
|
33
|
+
* });
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function and(...filters: Array<(tool: ToolDefinition) => boolean>): (tool: ToolDefinition) => boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Combines multiple filter functions with OR logic.
|
|
39
|
+
* At least one filter must return true for the tool to pass.
|
|
40
|
+
*
|
|
41
|
+
* @param filters - Filter functions to combine
|
|
42
|
+
* @returns Combined filter function
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const agent = new AISDKAgent({
|
|
47
|
+
* model: anthropic('claude-3-5-sonnet-20241022'),
|
|
48
|
+
* toolFilter: or(
|
|
49
|
+
* createMcpGlobAllowFilter(['db_*']),
|
|
50
|
+
* createMcpGlobAllowFilter(['file_*'])
|
|
51
|
+
* )
|
|
52
|
+
* });
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export declare function or(...filters: Array<(tool: ToolDefinition) => boolean>): (tool: ToolDefinition) => boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Inverts a filter function with NOT logic.
|
|
58
|
+
*
|
|
59
|
+
* @param filter - Filter function to invert
|
|
60
|
+
* @returns Inverted filter function
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* // Block MCP tools matching delete patterns (equivalent to disallow filter)
|
|
65
|
+
* const agent = new AISDKAgent({
|
|
66
|
+
* model: anthropic('claude-3-5-sonnet-20241022'),
|
|
67
|
+
* toolFilter: and(
|
|
68
|
+
* or(not(isRemoteTool), createMcpGlobAllowFilter(['db_*'])),
|
|
69
|
+
* not(createMcpGlobAllowFilter(['*_delete']))
|
|
70
|
+
* )
|
|
71
|
+
* });
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare function not(filter: (tool: ToolDefinition) => boolean): (tool: ToolDefinition) => boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Creates a filter function that matches tools by glob patterns.
|
|
77
|
+
* Returns true if tool name matches any of the provided patterns.
|
|
78
|
+
*
|
|
79
|
+
* @param patterns - Glob patterns to match tool names (e.g., `['db_*', 'file_*']`)
|
|
80
|
+
* @returns Filter function for use with `AISDKAgentConfig.toolFilter`
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* // Only allow database MCP tools (client tools always pass)
|
|
85
|
+
* const agent = new AISDKAgent({
|
|
86
|
+
* model: anthropic('claude-3-5-sonnet-20241022'),
|
|
87
|
+
* toolFilter: or(not(isRemoteTool), createGlobFilter(['db_*']))
|
|
88
|
+
* });
|
|
89
|
+
*
|
|
90
|
+
* // Allow db_* but exclude *_delete
|
|
91
|
+
* const agent = new AISDKAgent({
|
|
92
|
+
* model: anthropic('claude-3-5-sonnet-20241022'),
|
|
93
|
+
* toolFilter: and(
|
|
94
|
+
* or(not(isRemoteTool), createGlobFilter(['db_*'])),
|
|
95
|
+
* not(createGlobFilter(['*_delete']))
|
|
96
|
+
* )
|
|
97
|
+
* });
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
export declare function createGlobFilter(patterns: string[]): (tool: ToolDefinition) => boolean;
|
|
101
|
+
//# sourceMappingURL=toolFilters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolFilters.d.ts","sourceRoot":"","sources":["../../../src/utils/toolFilters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAGnD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,IAAI,oBAAoB,CAE/E;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,GAAG,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAE3G;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,EAAE,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAE1G;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAEhG;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAOtF"}
|