@azure/ai-agents 1.1.0-beta.2 → 1.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/README.md +0 -75
- package/dist/browser/api/agentsContext.js +2 -2
- package/dist/browser/api/agentsContext.js.map +1 -1
- package/dist/browser/api/runs/operations.d.ts.map +1 -1
- package/dist/browser/api/runs/operations.js +1 -4
- package/dist/browser/api/runs/operations.js.map +1 -1
- package/dist/browser/api/runs/options.d.ts +1 -5
- package/dist/browser/api/runs/options.d.ts.map +1 -1
- package/dist/browser/api/runs/options.js.map +1 -1
- package/dist/browser/constants.d.ts +1 -1
- package/dist/browser/constants.d.ts.map +1 -1
- package/dist/browser/constants.js +1 -1
- package/dist/browser/constants.js.map +1 -1
- package/dist/browser/index.d.ts +1 -2
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +0 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/models/index.d.ts +1 -1
- package/dist/browser/models/index.d.ts.map +1 -1
- package/dist/browser/models/index.js.map +1 -1
- package/dist/browser/models/models.d.ts +9 -257
- package/dist/browser/models/models.d.ts.map +1 -1
- package/dist/browser/models/models.js +6 -326
- package/dist/browser/models/models.js.map +1 -1
- package/dist/browser/utils/utils.d.ts +1 -61
- package/dist/browser/utils/utils.d.ts.map +1 -1
- package/dist/browser/utils/utils.js +0 -90
- package/dist/browser/utils/utils.js.map +1 -1
- package/dist/commonjs/api/agentsContext.js +2 -2
- package/dist/commonjs/api/agentsContext.js.map +1 -1
- package/dist/commonjs/api/runs/operations.d.ts.map +1 -1
- package/dist/commonjs/api/runs/operations.js +0 -3
- package/dist/commonjs/api/runs/operations.js.map +1 -1
- package/dist/commonjs/api/runs/options.d.ts +1 -5
- package/dist/commonjs/api/runs/options.d.ts.map +1 -1
- package/dist/commonjs/api/runs/options.js.map +1 -1
- package/dist/commonjs/constants.d.ts +1 -1
- package/dist/commonjs/constants.d.ts.map +1 -1
- package/dist/commonjs/constants.js +1 -1
- package/dist/commonjs/constants.js.map +1 -1
- package/dist/commonjs/index.d.ts +1 -2
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +1 -3
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/models/index.d.ts +1 -1
- package/dist/commonjs/models/index.d.ts.map +1 -1
- package/dist/commonjs/models/index.js.map +1 -1
- package/dist/commonjs/models/models.d.ts +9 -257
- package/dist/commonjs/models/models.d.ts.map +1 -1
- package/dist/commonjs/models/models.js +6 -371
- package/dist/commonjs/models/models.js.map +1 -1
- package/dist/commonjs/tsdoc-metadata.json +1 -1
- package/dist/commonjs/utils/utils.d.ts +1 -61
- package/dist/commonjs/utils/utils.d.ts.map +1 -1
- package/dist/commonjs/utils/utils.js +0 -90
- package/dist/commonjs/utils/utils.js.map +1 -1
- package/dist/esm/api/agentsContext.js +2 -2
- package/dist/esm/api/agentsContext.js.map +1 -1
- package/dist/esm/api/runs/operations.d.ts.map +1 -1
- package/dist/esm/api/runs/operations.js +1 -4
- package/dist/esm/api/runs/operations.js.map +1 -1
- package/dist/esm/api/runs/options.d.ts +1 -5
- package/dist/esm/api/runs/options.d.ts.map +1 -1
- package/dist/esm/api/runs/options.js.map +1 -1
- package/dist/esm/constants.d.ts +1 -1
- package/dist/esm/constants.d.ts.map +1 -1
- package/dist/esm/constants.js +1 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/index.d.ts +1 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/models/index.d.ts +1 -1
- package/dist/esm/models/index.d.ts.map +1 -1
- package/dist/esm/models/index.js.map +1 -1
- package/dist/esm/models/models.d.ts +9 -257
- package/dist/esm/models/models.d.ts.map +1 -1
- package/dist/esm/models/models.js +6 -326
- package/dist/esm/models/models.js.map +1 -1
- package/dist/esm/utils/utils.d.ts +1 -61
- package/dist/esm/utils/utils.d.ts.map +1 -1
- package/dist/esm/utils/utils.js +0 -90
- package/dist/esm/utils/utils.js.map +1 -1
- package/dist/react-native/api/agentsContext.js +2 -2
- package/dist/react-native/api/agentsContext.js.map +1 -1
- package/dist/react-native/api/runs/operations.d.ts.map +1 -1
- package/dist/react-native/api/runs/operations.js +1 -4
- package/dist/react-native/api/runs/operations.js.map +1 -1
- package/dist/react-native/api/runs/options.d.ts +1 -5
- package/dist/react-native/api/runs/options.d.ts.map +1 -1
- package/dist/react-native/api/runs/options.js.map +1 -1
- package/dist/react-native/constants.d.ts +1 -1
- package/dist/react-native/constants.d.ts.map +1 -1
- package/dist/react-native/constants.js +1 -1
- package/dist/react-native/constants.js.map +1 -1
- package/dist/react-native/index.d.ts +1 -2
- package/dist/react-native/index.d.ts.map +1 -1
- package/dist/react-native/index.js +0 -1
- package/dist/react-native/index.js.map +1 -1
- package/dist/react-native/models/index.d.ts +1 -1
- package/dist/react-native/models/index.d.ts.map +1 -1
- package/dist/react-native/models/index.js.map +1 -1
- package/dist/react-native/models/models.d.ts +9 -257
- package/dist/react-native/models/models.d.ts.map +1 -1
- package/dist/react-native/models/models.js +6 -326
- package/dist/react-native/models/models.js.map +1 -1
- package/dist/react-native/utils/utils.d.ts +1 -61
- package/dist/react-native/utils/utils.d.ts.map +1 -1
- package/dist/react-native/utils/utils.js +0 -90
- package/dist/react-native/utils/utils.js.map +1 -1
- package/package.json +2 -1
- package/dist/browser/utils/MCPTool.d.ts +0 -78
- package/dist/browser/utils/MCPTool.d.ts.map +0 -1
- package/dist/browser/utils/MCPTool.js +0 -133
- package/dist/browser/utils/MCPTool.js.map +0 -1
- package/dist/commonjs/utils/MCPTool.d.ts +0 -78
- package/dist/commonjs/utils/MCPTool.d.ts.map +0 -1
- package/dist/commonjs/utils/MCPTool.js +0 -137
- package/dist/commonjs/utils/MCPTool.js.map +0 -1
- package/dist/esm/utils/MCPTool.d.ts +0 -78
- package/dist/esm/utils/MCPTool.d.ts.map +0 -1
- package/dist/esm/utils/MCPTool.js +0 -133
- package/dist/esm/utils/MCPTool.js.map +0 -1
- package/dist/react-native/utils/MCPTool.d.ts +0 -78
- package/dist/react-native/utils/MCPTool.d.ts.map +0 -1
- package/dist/react-native/utils/MCPTool.js +0 -133
- package/dist/react-native/utils/MCPTool.js.map +0 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { AzureAISearchToolDefinition, CodeInterpreterToolDefinition, FileSearchToolDefinition, FileSearchToolDefinitionDetails, FunctionDefinition, FunctionToolDefinition, OpenApiToolDefinition, RequiredAction, RequiredToolCall, ToolDefinition, ToolDefinitionUnion, ToolResources, VectorStoreConfigurations, VectorStoreDataSource, OpenApiFunctionDefinition, AISearchIndexResource,
|
|
2
|
-
import { MCPTool } from "./MCPTool.js";
|
|
1
|
+
import type { AzureAISearchToolDefinition, CodeInterpreterToolDefinition, FileSearchToolDefinition, FileSearchToolDefinitionDetails, FunctionDefinition, FunctionToolDefinition, OpenApiToolDefinition, RequiredAction, RequiredToolCall, ToolDefinition, ToolDefinitionUnion, ToolResources, VectorStoreConfigurations, VectorStoreDataSource, OpenApiFunctionDefinition, AISearchIndexResource, BingGroundingToolDefinition, BingGroundingSearchConfiguration, ConnectedAgentToolDefinition } from "../index.js";
|
|
3
2
|
/**
|
|
4
3
|
* Determines if the given output is of the specified type.
|
|
5
4
|
*
|
|
@@ -38,17 +37,6 @@ export declare class ToolUtility {
|
|
|
38
37
|
static createConnectionTool(toolType: connectionToolType, connectionIds: string[]): {
|
|
39
38
|
definition: ToolDefinitionUnion;
|
|
40
39
|
};
|
|
41
|
-
/**
|
|
42
|
-
* Creates a sharepoint grounding search tool
|
|
43
|
-
*
|
|
44
|
-
* @param connectionId - The ID of the sharepoint search connection.
|
|
45
|
-
*
|
|
46
|
-
* @returns An object containing the definition and resources for the sharepoint grounding search tool
|
|
47
|
-
*
|
|
48
|
-
*/
|
|
49
|
-
static createSharepointGroundingTool(connectionId: string): {
|
|
50
|
-
definition: SharepointToolDefinition;
|
|
51
|
-
};
|
|
52
40
|
/**
|
|
53
41
|
* Creates a bing grounding search tool
|
|
54
42
|
*
|
|
@@ -60,16 +48,6 @@ export declare class ToolUtility {
|
|
|
60
48
|
static createBingGroundingTool(searchConfigurations: BingGroundingSearchConfiguration[]): {
|
|
61
49
|
definition: BingGroundingToolDefinition;
|
|
62
50
|
};
|
|
63
|
-
/**
|
|
64
|
-
* Creates a bing custom search tool
|
|
65
|
-
*
|
|
66
|
-
* @param searchConfigurations - The ID of bing search connection and instanceName.
|
|
67
|
-
*
|
|
68
|
-
* @returns An object containing the definition and resources for the bing custom search tool
|
|
69
|
-
*/
|
|
70
|
-
static createBingCustomSearchTool(searchConfigurations: BingCustomSearchConfiguration[]): {
|
|
71
|
-
definition: BingCustomSearchToolDefinition;
|
|
72
|
-
};
|
|
73
51
|
/**
|
|
74
52
|
* Creates a file search tool
|
|
75
53
|
*
|
|
@@ -115,15 +93,6 @@ export declare class ToolUtility {
|
|
|
115
93
|
static createConnectedAgentTool(id: string, name: string, description: string): {
|
|
116
94
|
definition: ConnectedAgentToolDefinition;
|
|
117
95
|
};
|
|
118
|
-
/**
|
|
119
|
-
* Creates a Microsoft Fabric tool
|
|
120
|
-
*
|
|
121
|
-
* @param connectionIds - A list of the IDs of the Fabric connections to use.
|
|
122
|
-
* @returns An object containing the definition for the Microsoft Fabric tool
|
|
123
|
-
*/
|
|
124
|
-
static createFabricTool(connectionId: string): {
|
|
125
|
-
definition: MicrosoftFabricToolDefinition;
|
|
126
|
-
};
|
|
127
96
|
/**
|
|
128
97
|
* Creates a function tool
|
|
129
98
|
*
|
|
@@ -144,16 +113,6 @@ export declare class ToolUtility {
|
|
|
144
113
|
static createOpenApiTool(openApiFunctionDefinition: OpenApiFunctionDefinition): {
|
|
145
114
|
definition: OpenApiToolDefinition;
|
|
146
115
|
};
|
|
147
|
-
/**
|
|
148
|
-
* Creates an MCP tool with the provided configuration.
|
|
149
|
-
* @param options - Configuration options for the MCP tool
|
|
150
|
-
* @returns A new MCPTool instance
|
|
151
|
-
*/
|
|
152
|
-
static createMCPTool(options: {
|
|
153
|
-
serverLabel: string;
|
|
154
|
-
serverUrl: string;
|
|
155
|
-
allowedTools?: string[];
|
|
156
|
-
}): MCPTool;
|
|
157
116
|
}
|
|
158
117
|
/**
|
|
159
118
|
* Represents a set of tools with their definitions and resources.
|
|
@@ -242,24 +201,5 @@ export declare class ToolSet {
|
|
|
242
201
|
addConnectedAgentTool(id: string, name: string, description: string): {
|
|
243
202
|
definition: ConnectedAgentToolDefinition;
|
|
244
203
|
};
|
|
245
|
-
/**
|
|
246
|
-
* Adds a Microsoft Fabric tool to the tool set.
|
|
247
|
-
*
|
|
248
|
-
* @param connectionId - The ID of the Fabric connection to use.
|
|
249
|
-
* @returns An object containing the definition for the Microsoft Fabric tool
|
|
250
|
-
*/
|
|
251
|
-
addFabricTool(connectionId: string): {
|
|
252
|
-
definition: MicrosoftFabricToolDefinition;
|
|
253
|
-
};
|
|
254
|
-
/**
|
|
255
|
-
* Adds sharepoint grounding search tool to the tool set.
|
|
256
|
-
*
|
|
257
|
-
* @param connectionId - The ID of the sharepoint search connection.
|
|
258
|
-
*
|
|
259
|
-
* @returns An object containing the definition and resources for the sharepoint grounding search tool
|
|
260
|
-
*/
|
|
261
|
-
addSharepointGroundingTool(connectionId: string): {
|
|
262
|
-
definition: SharepointToolDefinition;
|
|
263
|
-
};
|
|
264
204
|
}
|
|
265
205
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,2BAA2B,EAC3B,6BAA6B,EAC7B,wBAAwB,EACxB,+BAA+B,EAC/B,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
|
-
import { MCPTool } from "./MCPTool.js";
|
|
4
3
|
/**
|
|
5
4
|
* Determines if the given output is of the specified type.
|
|
6
5
|
*
|
|
@@ -54,28 +53,6 @@ export class ToolUtility {
|
|
|
54
53
|
},
|
|
55
54
|
};
|
|
56
55
|
}
|
|
57
|
-
/**
|
|
58
|
-
* Creates a sharepoint grounding search tool
|
|
59
|
-
*
|
|
60
|
-
* @param connectionId - The ID of the sharepoint search connection.
|
|
61
|
-
*
|
|
62
|
-
* @returns An object containing the definition and resources for the sharepoint grounding search tool
|
|
63
|
-
*
|
|
64
|
-
*/
|
|
65
|
-
static createSharepointGroundingTool(connectionId) {
|
|
66
|
-
return {
|
|
67
|
-
definition: {
|
|
68
|
-
type: "sharepoint_grounding",
|
|
69
|
-
sharepointGrounding: {
|
|
70
|
-
connectionList: [
|
|
71
|
-
{
|
|
72
|
-
connectionId: connectionId,
|
|
73
|
-
},
|
|
74
|
-
],
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
56
|
/**
|
|
80
57
|
* Creates a bing grounding search tool
|
|
81
58
|
*
|
|
@@ -102,26 +79,6 @@ export class ToolUtility {
|
|
|
102
79
|
},
|
|
103
80
|
};
|
|
104
81
|
}
|
|
105
|
-
/**
|
|
106
|
-
* Creates a bing custom search tool
|
|
107
|
-
*
|
|
108
|
-
* @param searchConfigurations - The ID of bing search connection and instanceName.
|
|
109
|
-
*
|
|
110
|
-
* @returns An object containing the definition and resources for the bing custom search tool
|
|
111
|
-
*/
|
|
112
|
-
static createBingCustomSearchTool(searchConfigurations) {
|
|
113
|
-
return {
|
|
114
|
-
definition: {
|
|
115
|
-
type: "bing_custom_search",
|
|
116
|
-
bingCustomSearch: {
|
|
117
|
-
searchConfigurations: searchConfigurations.map((searchConfiguration) => ({
|
|
118
|
-
connectionId: searchConfiguration.connectionId,
|
|
119
|
-
instanceName: searchConfiguration.instanceName,
|
|
120
|
-
})),
|
|
121
|
-
},
|
|
122
|
-
},
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
82
|
/**
|
|
126
83
|
* Creates a file search tool
|
|
127
84
|
*
|
|
@@ -197,22 +154,6 @@ export class ToolUtility {
|
|
|
197
154
|
},
|
|
198
155
|
};
|
|
199
156
|
}
|
|
200
|
-
/**
|
|
201
|
-
* Creates a Microsoft Fabric tool
|
|
202
|
-
*
|
|
203
|
-
* @param connectionIds - A list of the IDs of the Fabric connections to use.
|
|
204
|
-
* @returns An object containing the definition for the Microsoft Fabric tool
|
|
205
|
-
*/
|
|
206
|
-
static createFabricTool(connectionId) {
|
|
207
|
-
return {
|
|
208
|
-
definition: {
|
|
209
|
-
type: "fabric_dataagent",
|
|
210
|
-
fabricDataagent: {
|
|
211
|
-
connectionList: [{ connectionId: connectionId }],
|
|
212
|
-
},
|
|
213
|
-
},
|
|
214
|
-
};
|
|
215
|
-
}
|
|
216
157
|
/**
|
|
217
158
|
* Creates a function tool
|
|
218
159
|
*
|
|
@@ -249,14 +190,6 @@ export class ToolUtility {
|
|
|
249
190
|
},
|
|
250
191
|
};
|
|
251
192
|
}
|
|
252
|
-
/**
|
|
253
|
-
* Creates an MCP tool with the provided configuration.
|
|
254
|
-
* @param options - Configuration options for the MCP tool
|
|
255
|
-
* @returns A new MCPTool instance
|
|
256
|
-
*/
|
|
257
|
-
static createMCPTool(options) {
|
|
258
|
-
return new MCPTool(options.serverLabel, options.serverUrl, options.allowedTools);
|
|
259
|
-
}
|
|
260
193
|
}
|
|
261
194
|
/**
|
|
262
195
|
* Represents a set of tools with their definitions and resources.
|
|
@@ -359,28 +292,5 @@ export class ToolSet {
|
|
|
359
292
|
this.toolDefinitions.push(tool.definition);
|
|
360
293
|
return tool;
|
|
361
294
|
}
|
|
362
|
-
/**
|
|
363
|
-
* Adds a Microsoft Fabric tool to the tool set.
|
|
364
|
-
*
|
|
365
|
-
* @param connectionId - The ID of the Fabric connection to use.
|
|
366
|
-
* @returns An object containing the definition for the Microsoft Fabric tool
|
|
367
|
-
*/
|
|
368
|
-
addFabricTool(connectionId) {
|
|
369
|
-
const tool = ToolUtility.createFabricTool(connectionId);
|
|
370
|
-
this.toolDefinitions.push(tool.definition);
|
|
371
|
-
return tool;
|
|
372
|
-
}
|
|
373
|
-
/**
|
|
374
|
-
* Adds sharepoint grounding search tool to the tool set.
|
|
375
|
-
*
|
|
376
|
-
* @param connectionId - The ID of the sharepoint search connection.
|
|
377
|
-
*
|
|
378
|
-
* @returns An object containing the definition and resources for the sharepoint grounding search tool
|
|
379
|
-
*/
|
|
380
|
-
addSharepointGroundingTool(connectionId) {
|
|
381
|
-
const tool = ToolUtility.createSharepointGroundingTool(connectionId);
|
|
382
|
-
this.toolDefinitions.push(tool.definition);
|
|
383
|
-
return tool;
|
|
384
|
-
}
|
|
385
295
|
}
|
|
386
296
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n AzureAISearchToolDefinition,\n CodeInterpreterToolDefinition,\n FileSearchToolDefinition,\n FileSearchToolDefinitionDetails,\n FunctionDefinition,\n FunctionToolDefinition,\n OpenApiToolDefinition,\n RequiredAction,\n RequiredToolCall,\n ToolDefinition,\n ToolDefinitionUnion,\n ToolResources,\n VectorStoreConfigurations,\n VectorStoreDataSource,\n OpenApiFunctionDefinition,\n AISearchIndexResource,\n BingCustomSearchConfiguration,\n BingCustomSearchToolDefinition,\n BingGroundingToolDefinition,\n BingGroundingSearchConfiguration,\n ConnectedAgentToolDefinition,\n MicrosoftFabricToolDefinition,\n SharepointToolDefinition,\n} from \"../index.js\";\nimport { MCPTool } from \"./MCPTool.js\";\n\n/**\n * Determines if the given output is of the specified type.\n *\n * @typeParam T - The type to check against, which extends one of the possible output parent types.\n * @param output - The action to check, which can be of type `RequiredAction`, `RequiredToolCall`, or `ToolDefinitionUnion`.\n * @param type - The type to check the action against.\n * @returns A boolean indicating whether the action is of the specified type.\n */\nexport function isOutputOfType<T extends { type: string }>(\n output: RequiredAction | RequiredToolCall | ToolDefinitionUnion,\n type: string,\n): output is T {\n return output.type === type;\n}\n\n/** Types of connection tools used to configure an agent */\nexport enum connectionToolType {\n /** Bing grounding search tool */\n BingGrounding = \"bing_grounding\",\n /** Microsoft Fabric tool */\n MicrosoftFabric = \"fabric_dataagent\",\n /** Sharepoint tool */\n SharepointGrounding = \"sharepoint_grounding\",\n /** Azure Function tool */\n AzureFunction = \"azure_function\",\n /** Bing custom search tool */\n BingCustomSearch = \"bing_custom_search\",\n}\n\nconst toolMap = {\n bing_grounding: \"bingGrounding\",\n fabric_dataagent: \"fabric_dataagent\",\n sharepoint_grounding: \"sharepointGrounding\",\n azure_function: \"azureFunction\",\n bing_custom_search: \"bingCustomSearch\",\n};\n\n/**\n * Utility class for creating various tools.\n */\nexport class ToolUtility {\n /**\n * Creates a connection tool\n *\n * @param toolType - The type of the connection tool.\n * @param connectionIds - A list of the IDs of the connections to use.\n * @returns An object containing the definition for the connection tool\n */\n static createConnectionTool(\n toolType: connectionToolType,\n connectionIds: string[],\n ): { definition: ToolDefinitionUnion } {\n return {\n definition: {\n type: toolType,\n [toolMap[toolType]]: {\n connections: connectionIds.map((connectionId) => ({ connectionId: connectionId })),\n },\n },\n };\n }\n\n /**\n * Creates a sharepoint grounding search tool\n *\n * @param connectionId - The ID of the sharepoint search connection.\n *\n * @returns An object containing the definition and resources for the sharepoint grounding search tool\n *\n */\n static createSharepointGroundingTool(connectionId: string): {\n definition: SharepointToolDefinition;\n } {\n return {\n definition: {\n type: \"sharepoint_grounding\",\n sharepointGrounding: {\n connectionList: [\n {\n connectionId: connectionId,\n },\n ],\n },\n },\n };\n }\n\n /**\n * Creates a bing grounding search tool\n *\n * @param connectionId - The ID of the bing search connection.\n *\n * @returns An object containing the definition and resources for the bing grounding search tool\n *\n */\n static createBingGroundingTool(searchConfigurations: BingGroundingSearchConfiguration[]): {\n definition: BingGroundingToolDefinition;\n } {\n // Ensure searchConfigurations is an array even if it's undefined\n const configs = searchConfigurations || [];\n return {\n definition: {\n type: \"bing_grounding\",\n bingGrounding: {\n searchConfigurations: configs.map((searchConfiguration) => ({\n connectionId: searchConfiguration.connectionId,\n market: searchConfiguration?.market,\n setLang: searchConfiguration?.setLang,\n count: searchConfiguration?.count,\n freshness: searchConfiguration?.freshness,\n })),\n },\n },\n };\n }\n\n /**\n * Creates a bing custom search tool\n *\n * @param searchConfigurations - The ID of bing search connection and instanceName.\n *\n * @returns An object containing the definition and resources for the bing custom search tool\n */\n\n static createBingCustomSearchTool(searchConfigurations: BingCustomSearchConfiguration[]): {\n definition: BingCustomSearchToolDefinition;\n } {\n return {\n definition: {\n type: \"bing_custom_search\",\n bingCustomSearch: {\n searchConfigurations: searchConfigurations.map((searchConfiguration) => ({\n connectionId: searchConfiguration.connectionId,\n instanceName: searchConfiguration.instanceName,\n })),\n },\n },\n };\n }\n\n /**\n * Creates a file search tool\n *\n * @param vectorStoreIds - The ID of the vector store attached to this agent. There can be a maximum of 1 vector store attached to the agent.\n * @param vectorStores - The list of vector store configuration objects from Azure. This list is limited to one element. The only element of this list contains the list of azure asset IDs used by the search tool.\n * @param definitionDetails - The input definition information for a file search tool as used to configure an agent.\n *\n * @returns An object containing the definition and resources for the file search tool\n */\n static createFileSearchTool(\n vectorStoreIds?: string[],\n vectorStores?: Array<VectorStoreConfigurations>,\n definitionDetails?: FileSearchToolDefinitionDetails,\n ): { definition: FileSearchToolDefinition; resources: ToolResources } {\n return {\n definition: { type: \"file_search\", fileSearch: definitionDetails },\n resources: { fileSearch: { vectorStoreIds: vectorStoreIds, vectorStores: vectorStores } },\n };\n }\n\n /**\n * Creates a code interpreter tool\n *\n * @param fileIds - A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files associated with the tool.\n * @param dataSources - The data sources to be used. This option is mutually exclusive with fileIds.\n *\n * @returns An object containing the definition and resources for the code interpreter tool.\n */\n static createCodeInterpreterTool(\n fileIds?: string[],\n dataSources?: Array<VectorStoreDataSource>,\n ): { definition: CodeInterpreterToolDefinition; resources: ToolResources } {\n if (fileIds && dataSources) {\n throw new Error(\"Cannot specify both fileIds and dataSources\");\n }\n\n return {\n definition: { type: \"code_interpreter\" },\n resources: { codeInterpreter: { fileIds: fileIds, dataSources: dataSources } },\n };\n }\n\n /**\n * Creates an Azure AI search tool\n *\n * @param indexConnectionId - The connection ID of the Azure AI search index.\n * @param indexName - The name of the Azure AI search index.\n *\n * @returns An object containing the definition and resources for the Azure AI search tool.\n */\n static createAzureAISearchTool(\n indexConnectionId: string,\n indexName: string,\n options?: AISearchIndexResource,\n ): { definition: AzureAISearchToolDefinition; resources: ToolResources } {\n return {\n definition: { type: \"azure_ai_search\" },\n resources: {\n azureAISearch: {\n indexList: [\n {\n indexConnectionId: indexConnectionId,\n indexName: indexName,\n queryType: options?.queryType,\n topK: options?.topK,\n filter: options?.filter,\n },\n ],\n },\n },\n };\n }\n\n /**\n * Creates a connected agent tool\n *\n * @returns An object containing the definition for the connected agent tool.\n */\n static createConnectedAgentTool(\n id: string,\n name: string,\n description: string,\n ): { definition: ConnectedAgentToolDefinition } {\n return {\n definition: {\n type: \"connected_agent\",\n connectedAgent: {\n id: id,\n name: name,\n description: description,\n },\n },\n };\n }\n\n /**\n * Creates a Microsoft Fabric tool\n *\n * @param connectionIds - A list of the IDs of the Fabric connections to use.\n * @returns An object containing the definition for the Microsoft Fabric tool\n */\n static createFabricTool(connectionId: string): { definition: MicrosoftFabricToolDefinition } {\n return {\n definition: {\n type: \"fabric_dataagent\",\n fabricDataagent: {\n connectionList: [{ connectionId: connectionId }],\n },\n },\n };\n }\n\n /**\n * Creates a function tool\n *\n * @param functionDefinition - The function definition to use.\n *\n * @returns An object containing the definition for the function tool.\n */\n static createFunctionTool(functionDefinition: FunctionDefinition): {\n definition: FunctionToolDefinition;\n } {\n return {\n definition: {\n type: \"function\",\n function: functionDefinition,\n },\n };\n }\n\n /**\n * Creates an OpenApi tool\n *\n * @param openApiFunctionDefinition - The OpenApi function definition to use.\n *\n * @returns An object containing the definition for the OpenApi tool.\n */\n static createOpenApiTool(openApiFunctionDefinition: OpenApiFunctionDefinition): {\n definition: OpenApiToolDefinition;\n } {\n return {\n definition: {\n type: \"openapi\",\n openapi: {\n name: openApiFunctionDefinition.name,\n spec: openApiFunctionDefinition.spec,\n description: openApiFunctionDefinition.description,\n auth: openApiFunctionDefinition.auth,\n defaultParams: openApiFunctionDefinition.defaultParams,\n },\n },\n };\n }\n /**\n * Creates an MCP tool with the provided configuration.\n * @param options - Configuration options for the MCP tool\n * @returns A new MCPTool instance\n */\n static createMCPTool(options: {\n serverLabel: string;\n serverUrl: string;\n allowedTools?: string[];\n }): MCPTool {\n return new MCPTool(options.serverLabel, options.serverUrl, options.allowedTools);\n }\n}\n\n/**\n * Represents a set of tools with their definitions and resources.\n */\nexport class ToolSet {\n /** A list of tool definitions that have been added to the tool set. */\n toolDefinitions: ToolDefinition[] = [];\n\n /** A collection of resources associated with the tools in the tool set. */\n toolResources: ToolResources = {};\n\n /**\n * Adds a connection tool to the tool set.\n *\n * @param toolType - The type of the connection tool.\n * @param connectionIds - A list of the IDs of the connections to use.\n *\n * @returns An object containing the definition for the connection tool\n */\n addConnectionTool(\n toolType: connectionToolType,\n connectionIds: string[],\n ): { definition: ToolDefinition } {\n const tool = ToolUtility.createConnectionTool(toolType, connectionIds);\n this.toolDefinitions.push(tool.definition);\n return tool;\n }\n\n /**\n * Adds a file search tool to the tool set.\n *\n * @param vectorStoreIds - The ID of the vector store attached to this agent. There can be a maximum of 1 vector store attached to the agent.\n * @param vectorStores - The list of vector store configuration objects from Azure. This list is limited to one element. The only element of this list contains the list of azure asset IDs used by the search tool.\n * @param definitionDetails - The input definition information for a file search tool as used to configure an agent.\n *\n * @returns An object containing the definition and resources for the file search tool\n */\n addFileSearchTool(\n vectorStoreIds?: string[],\n vectorStores?: Array<VectorStoreConfigurations>,\n definitionDetails?: FileSearchToolDefinitionDetails,\n ): { definition: FileSearchToolDefinition; resources: ToolResources } {\n const tool = ToolUtility.createFileSearchTool(vectorStoreIds, vectorStores, definitionDetails);\n this.toolDefinitions.push(tool.definition);\n this.toolResources = { ...this.toolResources, ...tool.resources };\n return tool;\n }\n\n /**\n * Adds a code interpreter tool to the tool set.\n *\n * @param fileIds - A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files associated with the tool.\n * @param dataSources - The data sources to be used. This option is mutually exclusive with fileIds.\n *\n * @returns An object containing the definition and resources for the code interpreter tool\n */\n addCodeInterpreterTool(\n fileIds?: string[],\n dataSources?: Array<VectorStoreDataSource>,\n ): { definition: CodeInterpreterToolDefinition; resources: ToolResources } {\n const tool = ToolUtility.createCodeInterpreterTool(fileIds, dataSources);\n this.toolDefinitions.push(tool.definition);\n this.toolResources = { ...this.toolResources, ...tool.resources };\n return tool;\n }\n\n /**\n * Adds an Azure AI search tool to the tool set.\n *\n * @param indexConnectionId - The connection ID of the Azure AI search index.\n * @param indexName - The name of the Azure AI search index.\n *\n * @returns An object containing the definition and resources for the Azure AI search tool\n */\n addAzureAISearchTool(\n indexConnectionId: string,\n indexName: string,\n ): { definition: AzureAISearchToolDefinition; resources: ToolResources } {\n const tool = ToolUtility.createAzureAISearchTool(indexConnectionId, indexName);\n this.toolDefinitions.push(tool.definition);\n this.toolResources = { ...this.toolResources, ...tool.resources };\n return tool;\n }\n\n /**\n * Adds an OpenApi tool to the tool set.\n *\n * @param openApiFunctionDefinition - The OpenApi function definition to use.\n *\n * @returns An object containing the definition for the OpenApi tool\n */\n addOpenApiTool(openApiFunctionDefinition: OpenApiFunctionDefinition): {\n definition: OpenApiToolDefinition;\n } {\n const tool = ToolUtility.createOpenApiTool(openApiFunctionDefinition);\n this.toolDefinitions.push(tool.definition);\n return tool;\n }\n\n /**\n * Adds a bing grounding search tool to the tool set.\n *\n * @param connectionId - The ID of the bing search connection.\n *\n * @returns An object containing the definition and resources for the bing grounding search tool\n */\n addBingGroundingTool(searchConfigurations: BingGroundingSearchConfiguration[]): {\n definition: BingGroundingToolDefinition;\n } {\n const tool = ToolUtility.createBingGroundingTool(searchConfigurations);\n this.toolDefinitions.push(tool.definition);\n return tool;\n }\n\n /**\n * Adds a connected agent tool to the tool set.\n *\n * @param id - The ID of the connected agent.\n * @param name - The name of the connected agent.\n * @param description - The description of the connected agent.\n * @returns An object containing the definition for the connected agent tool\n */\n addConnectedAgentTool(\n id: string,\n name: string,\n description: string,\n ): { definition: ConnectedAgentToolDefinition } {\n const tool = ToolUtility.createConnectedAgentTool(id, name, description);\n this.toolDefinitions.push(tool.definition);\n return tool;\n }\n\n /**\n * Adds a Microsoft Fabric tool to the tool set.\n *\n * @param connectionId - The ID of the Fabric connection to use.\n * @returns An object containing the definition for the Microsoft Fabric tool\n */\n addFabricTool(connectionId: string): { definition: MicrosoftFabricToolDefinition } {\n const tool = ToolUtility.createFabricTool(connectionId);\n this.toolDefinitions.push(tool.definition);\n return tool;\n }\n\n /**\n * Adds sharepoint grounding search tool to the tool set.\n *\n * @param connectionId - The ID of the sharepoint search connection.\n *\n * @returns An object containing the definition and resources for the sharepoint grounding search tool\n */\n addSharepointGroundingTool(connectionId: string): { definition: SharepointToolDefinition } {\n const tool = ToolUtility.createSharepointGroundingTool(connectionId);\n this.toolDefinitions.push(tool.definition);\n return tool;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n AzureAISearchToolDefinition,\n CodeInterpreterToolDefinition,\n FileSearchToolDefinition,\n FileSearchToolDefinitionDetails,\n FunctionDefinition,\n FunctionToolDefinition,\n OpenApiToolDefinition,\n RequiredAction,\n RequiredToolCall,\n ToolDefinition,\n ToolDefinitionUnion,\n ToolResources,\n VectorStoreConfigurations,\n VectorStoreDataSource,\n OpenApiFunctionDefinition,\n AISearchIndexResource,\n BingGroundingToolDefinition,\n BingGroundingSearchConfiguration,\n ConnectedAgentToolDefinition,\n} from \"../index.js\";\n\n/**\n * Determines if the given output is of the specified type.\n *\n * @typeParam T - The type to check against, which extends one of the possible output parent types.\n * @param output - The action to check, which can be of type `RequiredAction`, `RequiredToolCall`, or `ToolDefinitionUnion`.\n * @param type - The type to check the action against.\n * @returns A boolean indicating whether the action is of the specified type.\n */\nexport function isOutputOfType<T extends { type: string }>(\n output: RequiredAction | RequiredToolCall | ToolDefinitionUnion,\n type: string,\n): output is T {\n return output.type === type;\n}\n\n/** Types of connection tools used to configure an agent */\nexport enum connectionToolType {\n /** Bing grounding search tool */\n BingGrounding = \"bing_grounding\",\n /** Microsoft Fabric tool */\n MicrosoftFabric = \"fabric_dataagent\",\n /** Sharepoint tool */\n SharepointGrounding = \"sharepoint_grounding\",\n /** Azure Function tool */\n AzureFunction = \"azure_function\",\n /** Bing custom search tool */\n BingCustomSearch = \"bing_custom_search\",\n}\n\nconst toolMap = {\n bing_grounding: \"bingGrounding\",\n fabric_dataagent: \"fabric_dataagent\",\n sharepoint_grounding: \"sharepointGrounding\",\n azure_function: \"azureFunction\",\n bing_custom_search: \"bingCustomSearch\",\n};\n\n/**\n * Utility class for creating various tools.\n */\nexport class ToolUtility {\n /**\n * Creates a connection tool\n *\n * @param toolType - The type of the connection tool.\n * @param connectionIds - A list of the IDs of the connections to use.\n * @returns An object containing the definition for the connection tool\n */\n static createConnectionTool(\n toolType: connectionToolType,\n connectionIds: string[],\n ): { definition: ToolDefinitionUnion } {\n return {\n definition: {\n type: toolType,\n [toolMap[toolType]]: {\n connections: connectionIds.map((connectionId) => ({ connectionId: connectionId })),\n },\n },\n };\n }\n\n /**\n * Creates a bing grounding search tool\n *\n * @param connectionId - The ID of the bing search connection.\n *\n * @returns An object containing the definition and resources for the bing grounding search tool\n *\n */\n static createBingGroundingTool(searchConfigurations: BingGroundingSearchConfiguration[]): {\n definition: BingGroundingToolDefinition;\n } {\n // Ensure searchConfigurations is an array even if it's undefined\n const configs = searchConfigurations || [];\n return {\n definition: {\n type: \"bing_grounding\",\n bingGrounding: {\n searchConfigurations: configs.map((searchConfiguration) => ({\n connectionId: searchConfiguration.connectionId,\n market: searchConfiguration?.market,\n setLang: searchConfiguration?.setLang,\n count: searchConfiguration?.count,\n freshness: searchConfiguration?.freshness,\n })),\n },\n },\n };\n }\n\n /**\n * Creates a file search tool\n *\n * @param vectorStoreIds - The ID of the vector store attached to this agent. There can be a maximum of 1 vector store attached to the agent.\n * @param vectorStores - The list of vector store configuration objects from Azure. This list is limited to one element. The only element of this list contains the list of azure asset IDs used by the search tool.\n * @param definitionDetails - The input definition information for a file search tool as used to configure an agent.\n *\n * @returns An object containing the definition and resources for the file search tool\n */\n static createFileSearchTool(\n vectorStoreIds?: string[],\n vectorStores?: Array<VectorStoreConfigurations>,\n definitionDetails?: FileSearchToolDefinitionDetails,\n ): { definition: FileSearchToolDefinition; resources: ToolResources } {\n return {\n definition: { type: \"file_search\", fileSearch: definitionDetails },\n resources: { fileSearch: { vectorStoreIds: vectorStoreIds, vectorStores: vectorStores } },\n };\n }\n\n /**\n * Creates a code interpreter tool\n *\n * @param fileIds - A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files associated with the tool.\n * @param dataSources - The data sources to be used. This option is mutually exclusive with fileIds.\n *\n * @returns An object containing the definition and resources for the code interpreter tool.\n */\n static createCodeInterpreterTool(\n fileIds?: string[],\n dataSources?: Array<VectorStoreDataSource>,\n ): { definition: CodeInterpreterToolDefinition; resources: ToolResources } {\n if (fileIds && dataSources) {\n throw new Error(\"Cannot specify both fileIds and dataSources\");\n }\n\n return {\n definition: { type: \"code_interpreter\" },\n resources: { codeInterpreter: { fileIds: fileIds, dataSources: dataSources } },\n };\n }\n\n /**\n * Creates an Azure AI search tool\n *\n * @param indexConnectionId - The connection ID of the Azure AI search index.\n * @param indexName - The name of the Azure AI search index.\n *\n * @returns An object containing the definition and resources for the Azure AI search tool.\n */\n static createAzureAISearchTool(\n indexConnectionId: string,\n indexName: string,\n options?: AISearchIndexResource,\n ): { definition: AzureAISearchToolDefinition; resources: ToolResources } {\n return {\n definition: { type: \"azure_ai_search\" },\n resources: {\n azureAISearch: {\n indexList: [\n {\n indexConnectionId: indexConnectionId,\n indexName: indexName,\n queryType: options?.queryType,\n topK: options?.topK,\n filter: options?.filter,\n },\n ],\n },\n },\n };\n }\n\n /**\n * Creates a connected agent tool\n *\n * @returns An object containing the definition for the connected agent tool.\n */\n static createConnectedAgentTool(\n id: string,\n name: string,\n description: string,\n ): { definition: ConnectedAgentToolDefinition } {\n return {\n definition: {\n type: \"connected_agent\",\n connectedAgent: {\n id: id,\n name: name,\n description: description,\n },\n },\n };\n }\n\n /**\n * Creates a function tool\n *\n * @param functionDefinition - The function definition to use.\n *\n * @returns An object containing the definition for the function tool.\n */\n static createFunctionTool(functionDefinition: FunctionDefinition): {\n definition: FunctionToolDefinition;\n } {\n return {\n definition: {\n type: \"function\",\n function: functionDefinition,\n },\n };\n }\n\n /**\n * Creates an OpenApi tool\n *\n * @param openApiFunctionDefinition - The OpenApi function definition to use.\n *\n * @returns An object containing the definition for the OpenApi tool.\n */\n static createOpenApiTool(openApiFunctionDefinition: OpenApiFunctionDefinition): {\n definition: OpenApiToolDefinition;\n } {\n return {\n definition: {\n type: \"openapi\",\n openapi: {\n name: openApiFunctionDefinition.name,\n spec: openApiFunctionDefinition.spec,\n description: openApiFunctionDefinition.description,\n auth: openApiFunctionDefinition.auth,\n defaultParams: openApiFunctionDefinition.defaultParams,\n },\n },\n };\n }\n}\n\n/**\n * Represents a set of tools with their definitions and resources.\n */\nexport class ToolSet {\n /** A list of tool definitions that have been added to the tool set. */\n toolDefinitions: ToolDefinition[] = [];\n\n /** A collection of resources associated with the tools in the tool set. */\n toolResources: ToolResources = {};\n\n /**\n * Adds a connection tool to the tool set.\n *\n * @param toolType - The type of the connection tool.\n * @param connectionIds - A list of the IDs of the connections to use.\n *\n * @returns An object containing the definition for the connection tool\n */\n addConnectionTool(\n toolType: connectionToolType,\n connectionIds: string[],\n ): { definition: ToolDefinition } {\n const tool = ToolUtility.createConnectionTool(toolType, connectionIds);\n this.toolDefinitions.push(tool.definition);\n return tool;\n }\n\n /**\n * Adds a file search tool to the tool set.\n *\n * @param vectorStoreIds - The ID of the vector store attached to this agent. There can be a maximum of 1 vector store attached to the agent.\n * @param vectorStores - The list of vector store configuration objects from Azure. This list is limited to one element. The only element of this list contains the list of azure asset IDs used by the search tool.\n * @param definitionDetails - The input definition information for a file search tool as used to configure an agent.\n *\n * @returns An object containing the definition and resources for the file search tool\n */\n addFileSearchTool(\n vectorStoreIds?: string[],\n vectorStores?: Array<VectorStoreConfigurations>,\n definitionDetails?: FileSearchToolDefinitionDetails,\n ): { definition: FileSearchToolDefinition; resources: ToolResources } {\n const tool = ToolUtility.createFileSearchTool(vectorStoreIds, vectorStores, definitionDetails);\n this.toolDefinitions.push(tool.definition);\n this.toolResources = { ...this.toolResources, ...tool.resources };\n return tool;\n }\n\n /**\n * Adds a code interpreter tool to the tool set.\n *\n * @param fileIds - A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files associated with the tool.\n * @param dataSources - The data sources to be used. This option is mutually exclusive with fileIds.\n *\n * @returns An object containing the definition and resources for the code interpreter tool\n */\n addCodeInterpreterTool(\n fileIds?: string[],\n dataSources?: Array<VectorStoreDataSource>,\n ): { definition: CodeInterpreterToolDefinition; resources: ToolResources } {\n const tool = ToolUtility.createCodeInterpreterTool(fileIds, dataSources);\n this.toolDefinitions.push(tool.definition);\n this.toolResources = { ...this.toolResources, ...tool.resources };\n return tool;\n }\n\n /**\n * Adds an Azure AI search tool to the tool set.\n *\n * @param indexConnectionId - The connection ID of the Azure AI search index.\n * @param indexName - The name of the Azure AI search index.\n *\n * @returns An object containing the definition and resources for the Azure AI search tool\n */\n addAzureAISearchTool(\n indexConnectionId: string,\n indexName: string,\n ): { definition: AzureAISearchToolDefinition; resources: ToolResources } {\n const tool = ToolUtility.createAzureAISearchTool(indexConnectionId, indexName);\n this.toolDefinitions.push(tool.definition);\n this.toolResources = { ...this.toolResources, ...tool.resources };\n return tool;\n }\n\n /**\n * Adds an OpenApi tool to the tool set.\n *\n * @param openApiFunctionDefinition - The OpenApi function definition to use.\n *\n * @returns An object containing the definition for the OpenApi tool\n */\n addOpenApiTool(openApiFunctionDefinition: OpenApiFunctionDefinition): {\n definition: OpenApiToolDefinition;\n } {\n const tool = ToolUtility.createOpenApiTool(openApiFunctionDefinition);\n this.toolDefinitions.push(tool.definition);\n return tool;\n }\n\n /**\n * Adds a bing grounding search tool to the tool set.\n *\n * @param connectionId - The ID of the bing search connection.\n *\n * @returns An object containing the definition and resources for the bing grounding search tool\n */\n addBingGroundingTool(searchConfigurations: BingGroundingSearchConfiguration[]): {\n definition: BingGroundingToolDefinition;\n } {\n const tool = ToolUtility.createBingGroundingTool(searchConfigurations);\n this.toolDefinitions.push(tool.definition);\n return tool;\n }\n\n /**\n * Adds a connected agent tool to the tool set.\n *\n * @param id - The ID of the connected agent.\n * @param name - The name of the connected agent.\n * @param description - The description of the connected agent.\n * @returns An object containing the definition for the connected agent tool\n */\n addConnectedAgentTool(\n id: string,\n name: string,\n description: string,\n ): { definition: ConnectedAgentToolDefinition } {\n const tool = ToolUtility.createConnectedAgentTool(id, name, description);\n this.toolDefinitions.push(tool.definition);\n return tool;\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@azure/ai-agents",
|
|
3
|
-
"version": "1.1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Azure AI Agents client library.",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=20.0.0"
|
|
@@ -75,6 +75,7 @@
|
|
|
75
75
|
"@azure/eslint-plugin-azure-sdk": "^3.0.0",
|
|
76
76
|
"@azure/identity": "^4.3.0",
|
|
77
77
|
"@azure/opentelemetry-instrumentation-azure-sdk": "^1.0.0-beta.7",
|
|
78
|
+
"@azure/monitor-opentelemetry": "^1.11.1",
|
|
78
79
|
"@azure/monitor-opentelemetry-exporter": "^1.0.0-beta.31",
|
|
79
80
|
"@azure-tools/test-credential": "^2.0.0",
|
|
80
81
|
"@azure-tools/test-recorder": "^4.1.0",
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { MCPToolDefinition, ToolResources } from "../index.js";
|
|
2
|
-
/**
|
|
3
|
-
* A tool that connects to Model Context Protocol (MCP) servers.
|
|
4
|
-
* Supports managing MCP server connections and allowed tools dynamically.
|
|
5
|
-
*/
|
|
6
|
-
export declare class MCPTool {
|
|
7
|
-
private _serverLabel;
|
|
8
|
-
private _serverUrl;
|
|
9
|
-
private _allowedTools;
|
|
10
|
-
private _requireApproval?;
|
|
11
|
-
private _headers;
|
|
12
|
-
/**
|
|
13
|
-
* Constructor initializes the tool with MCP server configuration.
|
|
14
|
-
* @param serverLabel - The label for the MCP server
|
|
15
|
-
* @param serverUrl - The endpoint for the MCP server
|
|
16
|
-
* @param allowedTools - List of allowed tools for MCP server
|
|
17
|
-
*/
|
|
18
|
-
constructor(serverLabel: string, serverUrl: string, allowedTools?: string[]);
|
|
19
|
-
/**
|
|
20
|
-
* Get the MCP tool resource.
|
|
21
|
-
* @returns The MCP tool resource
|
|
22
|
-
*/
|
|
23
|
-
private get _resource();
|
|
24
|
-
/**
|
|
25
|
-
* Set the MCP tool definition.
|
|
26
|
-
* @returns The MCP tool definition
|
|
27
|
-
* */
|
|
28
|
-
private get _definition();
|
|
29
|
-
/**
|
|
30
|
-
* Get the MCP tool definition.
|
|
31
|
-
* @returns A list containing the MCP tool definition
|
|
32
|
-
*/
|
|
33
|
-
get definitions(): MCPToolDefinition[];
|
|
34
|
-
/**
|
|
35
|
-
* Add a tool to the list of allowed tools.
|
|
36
|
-
* @param toolName - The name of the tool to allow
|
|
37
|
-
*/
|
|
38
|
-
allowTool(toolName: string): void;
|
|
39
|
-
/**
|
|
40
|
-
* Remove a tool from the list of allowed tools.
|
|
41
|
-
* @param toolName - The name of the tool to remove from allowed tools
|
|
42
|
-
* @throws Error if the tool is not in the allowed tools list
|
|
43
|
-
*/
|
|
44
|
-
disallowTool(toolName: string): void;
|
|
45
|
-
/**
|
|
46
|
-
* Update the approval mode for the MCP tool.
|
|
47
|
-
* @param requireApproval - The require_approval setting to update
|
|
48
|
-
*/
|
|
49
|
-
setApprovalMode(requireApproval?: "always" | "never"): void;
|
|
50
|
-
/**
|
|
51
|
-
* Update the headers for the MCP tool.
|
|
52
|
-
* @param key - The header key to update
|
|
53
|
-
* @param value - The new value for the header key
|
|
54
|
-
* @throws Error if the key is empty
|
|
55
|
-
*/
|
|
56
|
-
updateHeaders(key: string, value: string): void;
|
|
57
|
-
/**
|
|
58
|
-
* Get the server label for the MCP tool.
|
|
59
|
-
*/
|
|
60
|
-
get serverLabel(): string;
|
|
61
|
-
/**
|
|
62
|
-
* Get the server URL for the MCP tool.
|
|
63
|
-
*/
|
|
64
|
-
get serverUrl(): string;
|
|
65
|
-
/**
|
|
66
|
-
* Get the list of allowed tools for the MCP server.
|
|
67
|
-
*/
|
|
68
|
-
get allowedTools(): string[];
|
|
69
|
-
/**
|
|
70
|
-
* Get the headers for the MCP tool.
|
|
71
|
-
*/
|
|
72
|
-
get headers(): Record<string, string>;
|
|
73
|
-
/**
|
|
74
|
-
* Get the tool resources for the agent.
|
|
75
|
-
*/
|
|
76
|
-
get resources(): ToolResources;
|
|
77
|
-
}
|
|
78
|
-
//# sourceMappingURL=MCPTool.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MCPTool.d.ts","sourceRoot":"","sources":["../../../src/utils/MCPTool.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAChF;;;GAGG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAW;IAChC,OAAO,CAAC,gBAAgB,CAAC,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAyB;IAEzC;;;;;OAKG;gBACS,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE;IAO3E;;;OAGG;IACH,OAAO,KAAK,SAAS,GAMpB;IAED;;;SAGK;IACL,OAAO,KAAK,WAAW,GAOtB;IAED;;;OAGG;IACH,IAAI,WAAW,IAAI,iBAAiB,EAAE,CAErC;IAED;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMjC;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IASpC;;;OAGG;IACH,eAAe,CAAC,eAAe,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI;IAI3D;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ/C;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,EAAE,CAE3B;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEpC;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,aAAa,CAI7B;CACF"}
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
|
-
/**
|
|
4
|
-
* A tool that connects to Model Context Protocol (MCP) servers.
|
|
5
|
-
* Supports managing MCP server connections and allowed tools dynamically.
|
|
6
|
-
*/
|
|
7
|
-
export class MCPTool {
|
|
8
|
-
_serverLabel;
|
|
9
|
-
_serverUrl;
|
|
10
|
-
_allowedTools;
|
|
11
|
-
_requireApproval;
|
|
12
|
-
_headers;
|
|
13
|
-
/**
|
|
14
|
-
* Constructor initializes the tool with MCP server configuration.
|
|
15
|
-
* @param serverLabel - The label for the MCP server
|
|
16
|
-
* @param serverUrl - The endpoint for the MCP server
|
|
17
|
-
* @param allowedTools - List of allowed tools for MCP server
|
|
18
|
-
*/
|
|
19
|
-
constructor(serverLabel, serverUrl, allowedTools) {
|
|
20
|
-
this._serverLabel = serverLabel;
|
|
21
|
-
this._serverUrl = serverUrl;
|
|
22
|
-
this._allowedTools = allowedTools || [];
|
|
23
|
-
this._requireApproval = "always"; // Default to always require approval
|
|
24
|
-
this._headers = {};
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Get the MCP tool resource.
|
|
28
|
-
* @returns The MCP tool resource
|
|
29
|
-
*/
|
|
30
|
-
get _resource() {
|
|
31
|
-
return {
|
|
32
|
-
serverLabel: this._serverLabel,
|
|
33
|
-
headers: this._headers,
|
|
34
|
-
requireApproval: this._requireApproval,
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Set the MCP tool definition.
|
|
39
|
-
* @returns The MCP tool definition
|
|
40
|
-
* */
|
|
41
|
-
get _definition() {
|
|
42
|
-
return {
|
|
43
|
-
type: "mcp",
|
|
44
|
-
serverLabel: this._serverLabel,
|
|
45
|
-
serverUrl: this._serverUrl,
|
|
46
|
-
allowedTools: this._allowedTools.length > 0 ? this._allowedTools : undefined,
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Get the MCP tool definition.
|
|
51
|
-
* @returns A list containing the MCP tool definition
|
|
52
|
-
*/
|
|
53
|
-
get definitions() {
|
|
54
|
-
return [this._definition];
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Add a tool to the list of allowed tools.
|
|
58
|
-
* @param toolName - The name of the tool to allow
|
|
59
|
-
*/
|
|
60
|
-
allowTool(toolName) {
|
|
61
|
-
if (!this._allowedTools.includes(toolName)) {
|
|
62
|
-
this._allowedTools.push(toolName);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Remove a tool from the list of allowed tools.
|
|
67
|
-
* @param toolName - The name of the tool to remove from allowed tools
|
|
68
|
-
* @throws Error if the tool is not in the allowed tools list
|
|
69
|
-
*/
|
|
70
|
-
disallowTool(toolName) {
|
|
71
|
-
const index = this._allowedTools.indexOf(toolName);
|
|
72
|
-
if (index > -1) {
|
|
73
|
-
this._allowedTools.splice(index, 1);
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
throw new Error(`Tool '${toolName}' is not in the allowed tools list.`);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Update the approval mode for the MCP tool.
|
|
81
|
-
* @param requireApproval - The require_approval setting to update
|
|
82
|
-
*/
|
|
83
|
-
setApprovalMode(requireApproval) {
|
|
84
|
-
this._requireApproval = requireApproval;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Update the headers for the MCP tool.
|
|
88
|
-
* @param key - The header key to update
|
|
89
|
-
* @param value - The new value for the header key
|
|
90
|
-
* @throws Error if the key is empty
|
|
91
|
-
*/
|
|
92
|
-
updateHeaders(key, value) {
|
|
93
|
-
if (key) {
|
|
94
|
-
this._headers[key] = value;
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
throw new Error("Header key cannot be empty.");
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Get the server label for the MCP tool.
|
|
102
|
-
*/
|
|
103
|
-
get serverLabel() {
|
|
104
|
-
return this._serverLabel;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Get the server URL for the MCP tool.
|
|
108
|
-
*/
|
|
109
|
-
get serverUrl() {
|
|
110
|
-
return this._serverUrl;
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Get the list of allowed tools for the MCP server.
|
|
114
|
-
*/
|
|
115
|
-
get allowedTools() {
|
|
116
|
-
return [...this._allowedTools];
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Get the headers for the MCP tool.
|
|
120
|
-
*/
|
|
121
|
-
get headers() {
|
|
122
|
-
return { ...this._headers };
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Get the tool resources for the agent.
|
|
126
|
-
*/
|
|
127
|
-
get resources() {
|
|
128
|
-
return {
|
|
129
|
-
mcp: [this._resource],
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
//# sourceMappingURL=MCPTool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MCPTool.js","sourceRoot":"","sources":["../../../src/utils/MCPTool.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { MCPToolDefinition, MCPToolResource, ToolResources } from \"../index.js\";\n/**\n * A tool that connects to Model Context Protocol (MCP) servers.\n * Supports managing MCP server connections and allowed tools dynamically.\n */\nexport class MCPTool {\n private _serverLabel: string;\n private _serverUrl: string;\n private _allowedTools: string[];\n private _requireApproval?: \"always\" | \"never\";\n private _headers: Record<string, string>;\n\n /**\n * Constructor initializes the tool with MCP server configuration.\n * @param serverLabel - The label for the MCP server\n * @param serverUrl - The endpoint for the MCP server\n * @param allowedTools - List of allowed tools for MCP server\n */\n constructor(serverLabel: string, serverUrl: string, allowedTools?: string[]) {\n this._serverLabel = serverLabel;\n this._serverUrl = serverUrl;\n this._allowedTools = allowedTools || [];\n this._requireApproval = \"always\"; // Default to always require approval\n this._headers = {};\n }\n /**\n * Get the MCP tool resource.\n * @returns The MCP tool resource\n */\n private get _resource(): MCPToolResource {\n return {\n serverLabel: this._serverLabel,\n headers: this._headers,\n requireApproval: this._requireApproval,\n };\n }\n\n /**\n * Set the MCP tool definition.\n * @returns The MCP tool definition\n * */\n private get _definition(): MCPToolDefinition {\n return {\n type: \"mcp\",\n serverLabel: this._serverLabel,\n serverUrl: this._serverUrl,\n allowedTools: this._allowedTools.length > 0 ? this._allowedTools : undefined,\n };\n }\n\n /**\n * Get the MCP tool definition.\n * @returns A list containing the MCP tool definition\n */\n get definitions(): MCPToolDefinition[] {\n return [this._definition];\n }\n\n /**\n * Add a tool to the list of allowed tools.\n * @param toolName - The name of the tool to allow\n */\n allowTool(toolName: string): void {\n if (!this._allowedTools.includes(toolName)) {\n this._allowedTools.push(toolName);\n }\n }\n\n /**\n * Remove a tool from the list of allowed tools.\n * @param toolName - The name of the tool to remove from allowed tools\n * @throws Error if the tool is not in the allowed tools list\n */\n disallowTool(toolName: string): void {\n const index = this._allowedTools.indexOf(toolName);\n if (index > -1) {\n this._allowedTools.splice(index, 1);\n } else {\n throw new Error(`Tool '${toolName}' is not in the allowed tools list.`);\n }\n }\n\n /**\n * Update the approval mode for the MCP tool.\n * @param requireApproval - The require_approval setting to update\n */\n setApprovalMode(requireApproval?: \"always\" | \"never\"): void {\n this._requireApproval = requireApproval;\n }\n\n /**\n * Update the headers for the MCP tool.\n * @param key - The header key to update\n * @param value - The new value for the header key\n * @throws Error if the key is empty\n */\n updateHeaders(key: string, value: string): void {\n if (key) {\n this._headers[key] = value;\n } else {\n throw new Error(\"Header key cannot be empty.\");\n }\n }\n\n /**\n * Get the server label for the MCP tool.\n */\n get serverLabel(): string {\n return this._serverLabel;\n }\n\n /**\n * Get the server URL for the MCP tool.\n */\n get serverUrl(): string {\n return this._serverUrl;\n }\n\n /**\n * Get the list of allowed tools for the MCP server.\n */\n get allowedTools(): string[] {\n return [...this._allowedTools];\n }\n\n /**\n * Get the headers for the MCP tool.\n */\n get headers(): Record<string, string> {\n return { ...this._headers };\n }\n\n /**\n * Get the tool resources for the agent.\n */\n get resources(): ToolResources {\n return {\n mcp: [this._resource],\n };\n }\n}\n"]}
|