@azure/ai-agents 1.1.0-beta.3 → 1.2.0-alpha.20250923.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/README.md +0 -76
- package/dist/browser/api/agentsContext.js +2 -2
- package/dist/browser/api/agentsContext.js.map +1 -1
- package/dist/browser/api/messages/index.d.ts +2 -2
- package/dist/browser/api/messages/index.d.ts.map +1 -1
- package/dist/browser/api/messages/index.js +1 -1
- package/dist/browser/api/messages/index.js.map +1 -1
- package/dist/browser/api/messages/operations.d.ts +6 -2
- package/dist/browser/api/messages/operations.d.ts.map +1 -1
- package/dist/browser/api/messages/operations.js +31 -1
- package/dist/browser/api/messages/operations.js.map +1 -1
- package/dist/browser/api/messages/options.d.ts +3 -0
- package/dist/browser/api/messages/options.d.ts.map +1 -1
- package/dist/browser/api/messages/options.js.map +1 -1
- package/dist/browser/api/operations.d.ts +1 -2
- package/dist/browser/api/operations.d.ts.map +1 -1
- package/dist/browser/api/operations.js +2 -2
- package/dist/browser/api/operations.js.map +1 -1
- package/dist/browser/api/runSteps/operations.js +3 -3
- package/dist/browser/api/runSteps/operations.js.map +1 -1
- package/dist/browser/api/runs/operations.d.ts +3 -3
- package/dist/browser/api/runs/operations.d.ts.map +1 -1
- package/dist/browser/api/runs/operations.js +12 -10
- package/dist/browser/api/runs/operations.js.map +1 -1
- package/dist/browser/api/vectorStoreFiles/operations.js +4 -4
- package/dist/browser/api/vectorStoreFiles/operations.js.map +1 -1
- package/dist/browser/api/vectorStores/operations.js +4 -4
- package/dist/browser/api/vectorStores/operations.js.map +1 -1
- package/dist/browser/classic/messages/index.d.ts +4 -2
- package/dist/browser/classic/messages/index.d.ts.map +1 -1
- package/dist/browser/classic/messages/index.js +2 -1
- package/dist/browser/classic/messages/index.js.map +1 -1
- package/dist/browser/classic/runs/index.d.ts.map +1 -1
- package/dist/browser/classic/runs/index.js +4 -1
- package/dist/browser/classic/runs/index.js.map +1 -1
- package/dist/browser/constants.d.ts +1 -1
- package/dist/browser/constants.js +1 -1
- package/dist/browser/constants.js.map +1 -1
- package/dist/browser/index.d.ts +3 -2
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +1 -0
- 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 +309 -31
- package/dist/browser/models/models.d.ts.map +1 -1
- package/dist/browser/models/models.js +341 -14
- package/dist/browser/models/models.js.map +1 -1
- package/dist/browser/models/streamingModels.d.ts +18 -18
- package/dist/browser/models/streamingModels.d.ts.map +1 -1
- package/dist/browser/models/streamingModels.js.map +1 -1
- package/dist/browser/static-helpers/urlTemplate.js.map +1 -1
- package/dist/browser/utils/MCPTool.d.ts +12 -1
- package/dist/browser/utils/MCPTool.d.ts.map +1 -1
- package/dist/browser/utils/MCPTool.js +29 -2
- package/dist/browser/utils/MCPTool.js.map +1 -1
- package/dist/browser/utils/OpenApiTool.d.ts +46 -0
- package/dist/browser/utils/OpenApiTool.d.ts.map +1 -0
- package/dist/browser/utils/OpenApiTool.js +84 -0
- package/dist/browser/utils/OpenApiTool.js.map +1 -0
- package/dist/browser/utils/utils.d.ts +14 -50
- package/dist/browser/utils/utils.d.ts.map +1 -1
- package/dist/browser/utils/utils.js +13 -91
- 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/messages/index.d.ts +2 -2
- package/dist/commonjs/api/messages/index.d.ts.map +1 -1
- package/dist/commonjs/api/messages/index.js +2 -1
- package/dist/commonjs/api/messages/index.js.map +1 -1
- package/dist/commonjs/api/messages/operations.d.ts +6 -2
- package/dist/commonjs/api/messages/operations.d.ts.map +1 -1
- package/dist/commonjs/api/messages/operations.js +33 -0
- package/dist/commonjs/api/messages/operations.js.map +1 -1
- package/dist/commonjs/api/messages/options.d.ts +3 -0
- package/dist/commonjs/api/messages/options.d.ts.map +1 -1
- package/dist/commonjs/api/messages/options.js.map +1 -1
- package/dist/commonjs/api/operations.d.ts +1 -2
- package/dist/commonjs/api/operations.d.ts.map +1 -1
- package/dist/commonjs/api/operations.js +2 -2
- package/dist/commonjs/api/operations.js.map +1 -1
- package/dist/commonjs/api/runSteps/operations.js +3 -3
- package/dist/commonjs/api/runSteps/operations.js.map +1 -1
- package/dist/commonjs/api/runs/operations.d.ts +3 -3
- package/dist/commonjs/api/runs/operations.d.ts.map +1 -1
- package/dist/commonjs/api/runs/operations.js +12 -10
- package/dist/commonjs/api/runs/operations.js.map +1 -1
- package/dist/commonjs/api/vectorStoreFiles/operations.js +4 -4
- package/dist/commonjs/api/vectorStoreFiles/operations.js.map +1 -1
- package/dist/commonjs/api/vectorStores/operations.js +4 -4
- package/dist/commonjs/api/vectorStores/operations.js.map +1 -1
- package/dist/commonjs/classic/messages/index.d.ts +4 -2
- package/dist/commonjs/classic/messages/index.d.ts.map +1 -1
- package/dist/commonjs/classic/messages/index.js +1 -0
- package/dist/commonjs/classic/messages/index.js.map +1 -1
- package/dist/commonjs/classic/runs/index.d.ts.map +1 -1
- package/dist/commonjs/classic/runs/index.js +4 -1
- package/dist/commonjs/classic/runs/index.js.map +1 -1
- package/dist/commonjs/constants.d.ts +1 -1
- package/dist/commonjs/constants.js +1 -1
- package/dist/commonjs/constants.js.map +1 -1
- package/dist/commonjs/index.d.ts +3 -2
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +3 -1
- 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 +309 -31
- package/dist/commonjs/models/models.d.ts.map +1 -1
- package/dist/commonjs/models/models.js +385 -15
- package/dist/commonjs/models/models.js.map +1 -1
- package/dist/commonjs/models/streamingModels.d.ts +18 -18
- package/dist/commonjs/models/streamingModels.d.ts.map +1 -1
- package/dist/commonjs/models/streamingModels.js.map +1 -1
- package/dist/commonjs/static-helpers/urlTemplate.js.map +1 -1
- package/dist/commonjs/tsdoc-metadata.json +1 -1
- package/dist/commonjs/utils/MCPTool.d.ts +12 -1
- package/dist/commonjs/utils/MCPTool.d.ts.map +1 -1
- package/dist/commonjs/utils/MCPTool.js +29 -2
- package/dist/commonjs/utils/MCPTool.js.map +1 -1
- package/dist/commonjs/utils/OpenApiTool.d.ts +46 -0
- package/dist/commonjs/utils/OpenApiTool.d.ts.map +1 -0
- package/dist/commonjs/utils/OpenApiTool.js +88 -0
- package/dist/commonjs/utils/OpenApiTool.js.map +1 -0
- package/dist/commonjs/utils/utils.d.ts +14 -50
- package/dist/commonjs/utils/utils.d.ts.map +1 -1
- package/dist/commonjs/utils/utils.js +13 -91
- 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/messages/index.d.ts +2 -2
- package/dist/esm/api/messages/index.d.ts.map +1 -1
- package/dist/esm/api/messages/index.js +1 -1
- package/dist/esm/api/messages/index.js.map +1 -1
- package/dist/esm/api/messages/operations.d.ts +6 -2
- package/dist/esm/api/messages/operations.d.ts.map +1 -1
- package/dist/esm/api/messages/operations.js +31 -1
- package/dist/esm/api/messages/operations.js.map +1 -1
- package/dist/esm/api/messages/options.d.ts +3 -0
- package/dist/esm/api/messages/options.d.ts.map +1 -1
- package/dist/esm/api/messages/options.js.map +1 -1
- package/dist/esm/api/operations.d.ts +1 -2
- package/dist/esm/api/operations.d.ts.map +1 -1
- package/dist/esm/api/operations.js +2 -2
- package/dist/esm/api/operations.js.map +1 -1
- package/dist/esm/api/runSteps/operations.js +3 -3
- package/dist/esm/api/runSteps/operations.js.map +1 -1
- package/dist/esm/api/runs/operations.d.ts +3 -3
- package/dist/esm/api/runs/operations.d.ts.map +1 -1
- package/dist/esm/api/runs/operations.js +12 -10
- package/dist/esm/api/runs/operations.js.map +1 -1
- package/dist/esm/api/vectorStoreFiles/operations.js +4 -4
- package/dist/esm/api/vectorStoreFiles/operations.js.map +1 -1
- package/dist/esm/api/vectorStores/operations.js +4 -4
- package/dist/esm/api/vectorStores/operations.js.map +1 -1
- package/dist/esm/classic/messages/index.d.ts +4 -2
- package/dist/esm/classic/messages/index.d.ts.map +1 -1
- package/dist/esm/classic/messages/index.js +2 -1
- package/dist/esm/classic/messages/index.js.map +1 -1
- package/dist/esm/classic/runs/index.d.ts.map +1 -1
- package/dist/esm/classic/runs/index.js +4 -1
- package/dist/esm/classic/runs/index.js.map +1 -1
- package/dist/esm/constants.d.ts +1 -1
- package/dist/esm/constants.js +1 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- 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 +309 -31
- package/dist/esm/models/models.d.ts.map +1 -1
- package/dist/esm/models/models.js +341 -14
- package/dist/esm/models/models.js.map +1 -1
- package/dist/esm/models/streamingModels.d.ts +18 -18
- package/dist/esm/models/streamingModels.d.ts.map +1 -1
- package/dist/esm/models/streamingModels.js.map +1 -1
- package/dist/esm/static-helpers/urlTemplate.js.map +1 -1
- package/dist/esm/utils/MCPTool.d.ts +12 -1
- package/dist/esm/utils/MCPTool.d.ts.map +1 -1
- package/dist/esm/utils/MCPTool.js +29 -2
- package/dist/esm/utils/MCPTool.js.map +1 -1
- package/dist/esm/utils/OpenApiTool.d.ts +46 -0
- package/dist/esm/utils/OpenApiTool.d.ts.map +1 -0
- package/dist/esm/utils/OpenApiTool.js +84 -0
- package/dist/esm/utils/OpenApiTool.js.map +1 -0
- package/dist/esm/utils/utils.d.ts +14 -50
- package/dist/esm/utils/utils.d.ts.map +1 -1
- package/dist/esm/utils/utils.js +13 -91
- 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/messages/index.d.ts +2 -2
- package/dist/react-native/api/messages/index.d.ts.map +1 -1
- package/dist/react-native/api/messages/index.js +1 -1
- package/dist/react-native/api/messages/index.js.map +1 -1
- package/dist/react-native/api/messages/operations.d.ts +6 -2
- package/dist/react-native/api/messages/operations.d.ts.map +1 -1
- package/dist/react-native/api/messages/operations.js +31 -1
- package/dist/react-native/api/messages/operations.js.map +1 -1
- package/dist/react-native/api/messages/options.d.ts +3 -0
- package/dist/react-native/api/messages/options.d.ts.map +1 -1
- package/dist/react-native/api/messages/options.js.map +1 -1
- package/dist/react-native/api/operations.d.ts +1 -2
- package/dist/react-native/api/operations.d.ts.map +1 -1
- package/dist/react-native/api/operations.js +2 -2
- package/dist/react-native/api/operations.js.map +1 -1
- package/dist/react-native/api/runSteps/operations.js +3 -3
- package/dist/react-native/api/runSteps/operations.js.map +1 -1
- package/dist/react-native/api/runs/operations.d.ts +3 -3
- package/dist/react-native/api/runs/operations.d.ts.map +1 -1
- package/dist/react-native/api/runs/operations.js +12 -10
- package/dist/react-native/api/runs/operations.js.map +1 -1
- package/dist/react-native/api/vectorStoreFiles/operations.js +4 -4
- package/dist/react-native/api/vectorStoreFiles/operations.js.map +1 -1
- package/dist/react-native/api/vectorStores/operations.js +4 -4
- package/dist/react-native/api/vectorStores/operations.js.map +1 -1
- package/dist/react-native/classic/messages/index.d.ts +4 -2
- package/dist/react-native/classic/messages/index.d.ts.map +1 -1
- package/dist/react-native/classic/messages/index.js +2 -1
- package/dist/react-native/classic/messages/index.js.map +1 -1
- package/dist/react-native/classic/runs/index.d.ts.map +1 -1
- package/dist/react-native/classic/runs/index.js +4 -1
- package/dist/react-native/classic/runs/index.js.map +1 -1
- package/dist/react-native/constants.d.ts +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 +3 -2
- package/dist/react-native/index.d.ts.map +1 -1
- package/dist/react-native/index.js +1 -0
- 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 +309 -31
- package/dist/react-native/models/models.d.ts.map +1 -1
- package/dist/react-native/models/models.js +341 -14
- package/dist/react-native/models/models.js.map +1 -1
- package/dist/react-native/models/streamingModels.d.ts +18 -18
- package/dist/react-native/models/streamingModels.d.ts.map +1 -1
- package/dist/react-native/models/streamingModels.js.map +1 -1
- package/dist/react-native/static-helpers/urlTemplate.js.map +1 -1
- package/dist/react-native/utils/MCPTool.d.ts +12 -1
- package/dist/react-native/utils/MCPTool.d.ts.map +1 -1
- package/dist/react-native/utils/MCPTool.js +29 -2
- package/dist/react-native/utils/MCPTool.js.map +1 -1
- package/dist/react-native/utils/OpenApiTool.d.ts +46 -0
- package/dist/react-native/utils/OpenApiTool.d.ts.map +1 -0
- package/dist/react-native/utils/OpenApiTool.js +84 -0
- package/dist/react-native/utils/OpenApiTool.js.map +1 -0
- package/dist/react-native/utils/utils.d.ts +14 -50
- package/dist/react-native/utils/utils.d.ts.map +1 -1
- package/dist/react-native/utils/utils.js +13 -91
- package/dist/react-native/utils/utils.js.map +1 -1
- package/package.json +36 -37
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import type { AgentStreamEvent, AgentThread, MessageDeltaChunk, RunStep, RunStepDeltaChunk, ThreadMessage, ThreadRun } from "./models.js";
|
|
2
2
|
/**
|
|
3
|
-
Each event in a server-sent events stream has an `event` and `data` property:
|
|
4
|
-
*
|
|
5
|
-
* @example
|
|
6
|
-
* ```
|
|
7
|
-
* event: thread.created
|
|
8
|
-
* data: {"id": "thread_123", "object": "thread", ...}
|
|
9
|
-
* ```
|
|
10
|
-
*
|
|
11
|
-
* We emit events whenever a new object is created, transitions to a new state, or is being
|
|
12
|
-
* streamed in parts (deltas). For example, we emit `thread.run.created` when a new run
|
|
13
|
-
* is created, `thread.run.completed` when a run completes, and so on. When an Agent chooses
|
|
14
|
-
* to create a message during a run, we emit a `thread.message.created event`, a
|
|
15
|
-
* `thread.message.in_progress` event, many `thread.message.delta` events, and finally a
|
|
16
|
-
* `thread.message.completed` event.
|
|
17
|
-
*
|
|
18
|
-
* We may add additional events over time, so we recommend handling unknown events gracefully
|
|
19
|
-
* in your code.
|
|
20
|
-
**/
|
|
3
|
+
* Each event in a server-sent events stream has an `event` and `data` property:
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts snippet:ignore
|
|
7
|
+
* event: thread.created
|
|
8
|
+
* data: {"id": "thread_123", "object": "thread", ...}
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* We emit events whenever a new object is created, transitions to a new state, or is being
|
|
12
|
+
* streamed in parts (deltas). For example, we emit `thread.run.created` when a new run
|
|
13
|
+
* is created, `thread.run.completed` when a run completes, and so on. When an Agent chooses
|
|
14
|
+
* to create a message during a run, we emit a `thread.message.created event`, a
|
|
15
|
+
* `thread.message.in_progress` event, many `thread.message.delta` events, and finally a
|
|
16
|
+
* `thread.message.completed` event.
|
|
17
|
+
*
|
|
18
|
+
* We may add additional events over time, so we recommend handling unknown events gracefully
|
|
19
|
+
* in your code.
|
|
20
|
+
**/
|
|
21
21
|
export interface AgentEventMessage {
|
|
22
22
|
/** The data of the event. The data can be of type AgentThreadOutput, ThreadRunOutput, RunStepOutput, ThreadMessageOutput, MessageDeltaChunk,RunStepDeltaChunk */
|
|
23
23
|
data: AgentEventStreamData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamingModels.d.ts","sourceRoot":"","sources":["../../../src/models/streamingModels.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,SAAS,EACV,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"streamingModels.d.ts","sourceRoot":"","sources":["../../../src/models/streamingModels.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,SAAS,EACV,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;;;;;;;IAkBI;AACJ,MAAM,WAAW,iBAAiB;IAChC,kKAAkK;IAClK,IAAI,EAAE,oBAAoB,CAAC;IAC3B,6BAA6B;IAC7B,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAAC;CAClC;AAED,mDAAmD;AACnD,MAAM,MAAM,oBAAoB,GAC5B,WAAW,GACX,SAAS,GACT,OAAO,GACP,aAAa,GACb,iBAAiB,GACjB,iBAAiB,GACjB,MAAM,CAAC;AAEX,kDAAkD;AAClD,MAAM,WAAW,uBACf,SAAQ,eAAe,EACrB,aAAa,CAAC,iBAAiB,CAAC;CAAG;AAEvC;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG;IACtD;;;OAGG;IACH,MAAM,EAAE,MAAM,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAChD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamingModels.js","sourceRoot":"","sources":["../../../src/models/streamingModels.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n AgentStreamEvent,\n AgentThread,\n MessageDeltaChunk,\n RunStep,\n RunStepDeltaChunk,\n ThreadMessage,\n ThreadRun,\n} from \"./models.js\";\n\n/**\
|
|
1
|
+
{"version":3,"file":"streamingModels.js","sourceRoot":"","sources":["../../../src/models/streamingModels.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n AgentStreamEvent,\n AgentThread,\n MessageDeltaChunk,\n RunStep,\n RunStepDeltaChunk,\n ThreadMessage,\n ThreadRun,\n} from \"./models.js\";\n\n/**\n * Each event in a server-sent events stream has an `event` and `data` property:\n *\n * @example\n * ```ts snippet:ignore\n * event: thread.created\n * data: {\"id\": \"thread_123\", \"object\": \"thread\", ...}\n * ```\n *\n * We emit events whenever a new object is created, transitions to a new state, or is being\n * streamed in parts (deltas). For example, we emit `thread.run.created` when a new run\n * is created, `thread.run.completed` when a run completes, and so on. When an Agent chooses\n * to create a message during a run, we emit a `thread.message.created event`, a\n * `thread.message.in_progress` event, many `thread.message.delta` events, and finally a\n * `thread.message.completed` event.\n *\n * We may add additional events over time, so we recommend handling unknown events gracefully\n * in your code.\n **/\nexport interface AgentEventMessage {\n /** The data of the event. The data can be of type AgentThreadOutput, ThreadRunOutput, RunStepOutput, ThreadMessageOutput, MessageDeltaChunk,RunStepDeltaChunk */\n data: AgentEventStreamData;\n /** The type of the event. */\n event: AgentStreamEvent | string;\n}\n\n/** Represents a stream event data in the agent. */\nexport type AgentEventStreamData =\n | AgentThread\n | ThreadRun\n | RunStep\n | ThreadMessage\n | MessageDeltaChunk\n | RunStepDeltaChunk\n | string;\n\n/** Represents a stream of agent event message. */\nexport interface AgentEventMessageStream\n extends AsyncDisposable,\n AsyncIterable<AgentEventMessage> {}\n\n/**\n * Agent run response with support to stream.\n */\nexport type AgentRunResponse = PromiseLike<ThreadRun> & {\n /**\n * Function to start streaming the agent event messages.\n * @returns A promise that resolves to an AgentEventMessageStream.\n */\n stream: () => Promise<AgentEventMessageStream>;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlTemplate.js","sourceRoot":"","sources":["../../../src/static-helpers/urlTemplate.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* eslint-disable no-unused-expressions */\n/* eslint-disable no-param-reassign */\n\n// ---------------------\n// interfaces\n// ---------------------\ninterface ValueOptions {\n isFirst: boolean; // is first value in the expression\n op?: string; // operator\n varValue?: any; // variable value\n varName?: string; // variable name\n modifier?: string; // modifier e.g *\n reserved?: boolean; // if true we'll keep reserved words with not encoding\n}\n\nexport interface UrlTemplateOptions {\n // if set to true, reserved characters will not be encoded\n allowReserved?: boolean;\n}\n\n// ---------------------\n// helpers\n// ---------------------\nfunction encodeComponent(val: string, reserved?: boolean, op?: string) {\n return (reserved ?? op === \"+\") || op === \"#\"\n ? encodeReservedComponent(val)\n : encodeRFC3986URIComponent(val);\n}\n\nfunction encodeReservedComponent(str: string) {\n return str\n .split(/(%[0-9A-Fa-f]{2})/g)\n .map((part) => (!/%[0-9A-Fa-f]/.test(part) ? encodeURI(part) : part))\n .join(\"\");\n}\n\nfunction encodeRFC3986URIComponent(str: string) {\n return encodeURIComponent(str).replace(\n /[!'()*]/g,\n (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`,\n );\n}\n\nfunction isDefined(val: any) {\n return val !== undefined && val !== null;\n}\n\nfunction getNamedAndIfEmpty(op?: string): [boolean, string] {\n return [!!op && [\";\", \"?\", \"&\"].includes(op), !!op && [\"?\", \"&\"].includes(op) ? \"=\" : \"\"];\n}\n\nfunction getFirstOrSep(op?: string, isFirst = false) {\n if (isFirst) {\n return !op || op === \"+\" ? \"\" : op;\n } else if (!op || op === \"+\" || op === \"#\") {\n return \",\";\n } else if (op === \"?\") {\n return \"&\";\n } else {\n return op;\n }\n}\n\nfunction getExpandedValue(option: ValueOptions) {\n let isFirst = option.isFirst;\n const { op, varName, varValue: value, reserved } = option;\n const vals: string[] = [];\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n\n if (Array.isArray(value)) {\n for (const val of value.filter(isDefined)) {\n // prepare the following parts: separator, varName, value\n vals.push(`${getFirstOrSep(op, isFirst)}`);\n if (named && varName) {\n vals.push(`${encodeURIComponent(varName)}`);\n val === \"\" ? vals.push(ifEmpty) : vals.push(\"=\");\n }\n vals.push(encodeComponent(val, reserved, op));\n isFirst = false;\n }\n } else if (typeof value === \"object\") {\n for (const key of Object.keys(value)) {\n const val = value[key];\n if (!isDefined(val)) {\n continue;\n }\n // prepare the following parts: separator, key, value\n vals.push(`${getFirstOrSep(op, isFirst)}`);\n if (key) {\n vals.push(`${encodeURIComponent(key)}`);\n named && val === \"\" ? vals.push(ifEmpty) : vals.push(\"=\");\n }\n vals.push(encodeComponent(val, reserved, op));\n isFirst = false;\n }\n }\n return vals.join(\"\");\n}\n\nfunction getNonExpandedValue(option: ValueOptions) {\n const { op, varName, varValue: value, isFirst, reserved } = option;\n const vals: string[] = [];\n const first = getFirstOrSep(op, isFirst);\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n if (named && varName) {\n vals.push(encodeComponent(varName, reserved, op));\n if (value === \"\") {\n if (!ifEmpty) {\n vals.push(ifEmpty);\n }\n return !vals.join(\"\") ? undefined : `${first}${vals.join(\"\")}`;\n }\n vals.push(\"=\");\n }\n\n const items = [];\n if (Array.isArray(value)) {\n for (const val of value.filter(isDefined)) {\n items.push(encodeComponent(val, reserved, op));\n }\n } else if (typeof value === \"object\") {\n for (const key of Object.keys(value)) {\n if (!isDefined(value[key])) {\n continue;\n }\n items.push(encodeRFC3986URIComponent(key));\n items.push(encodeComponent(value[key], reserved, op));\n }\n }\n vals.push(items.join(\",\"));\n return !vals.join(\",\") ? undefined : `${first}${vals.join(\"\")}`;\n}\n\nfunction getVarValue(option: ValueOptions): string | undefined {\n const { op, varName, modifier, isFirst, reserved, varValue: value } = option;\n\n if (!isDefined(value)) {\n return undefined;\n } else if ([\"string\", \"number\", \"boolean\"].includes(typeof value)) {\n let val = value.toString();\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n const vals: string[] = [getFirstOrSep(op, isFirst)];\n if (named && varName) {\n // No need to encode varName considering it is already encoded\n vals.push(varName);\n val === \"\" ? vals.push(ifEmpty) : vals.push(\"=\");\n }\n if (modifier && modifier !== \"*\") {\n val = val.substring(0, parseInt(modifier, 10));\n }\n vals.push(encodeComponent(val, reserved, op));\n return vals.join(\"\");\n } else if (modifier === \"*\") {\n return getExpandedValue(option);\n } else {\n return getNonExpandedValue(option);\n }\n}\n\n// ---------------------------------------------------------------------------------------------------\n// This is an implementation of RFC 6570 URI Template: https://datatracker.ietf.org/doc/html/rfc6570.\n// ---------------------------------------------------------------------------------------------------\nexport function expandUrlTemplate(\n template: string,\n context: Record<string, any>,\n option?: UrlTemplateOptions,\n): string {\n return template.replace(/\\{([^{}]+)\\}|([^{}]+)/g, (_, expr, text) => {\n if (!expr) {\n return encodeReservedComponent(text);\n }\n let op;\n if ([\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"].includes(expr[0])) {\n ((op = expr[0]), (expr = expr.slice(1)));\n }\n const varList = expr.split(/,/g);\n const result = [];\n for (const varSpec of varList) {\n const varMatch = /([^:*]*)(?::(\\d+)|(\\*))?/.exec(varSpec);\n if (!varMatch || !varMatch[1]) {\n continue;\n }\n const varValue = getVarValue({\n isFirst: result.length === 0,\n op,\n varValue: context[varMatch[1]],\n varName: varMatch[1],\n modifier: varMatch[2] || varMatch[3],\n reserved: option?.allowReserved,\n });\n if (varValue) {\n result.push(varValue);\n }\n }\n return result.join(\"\");\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"urlTemplate.js","sourceRoot":"","sources":["../../../src/static-helpers/urlTemplate.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* eslint-disable no-unused-expressions */\n/* eslint-disable no-param-reassign */\n\n// ---------------------\n// interfaces\n// ---------------------\ninterface ValueOptions {\n isFirst: boolean; // is first value in the expression\n op?: string; // operator\n varValue?: any; // variable value\n varName?: string; // variable name\n modifier?: string; // modifier e.g *\n reserved?: boolean; // if true we'll keep reserved words with not encoding\n}\n\nexport interface UrlTemplateOptions {\n // if set to true, reserved characters will not be encoded\n allowReserved?: boolean;\n}\n\n// ---------------------\n// helpers\n// ---------------------\nfunction encodeComponent(val: string, reserved?: boolean, op?: string): string {\n return (reserved ?? op === \"+\") || op === \"#\"\n ? encodeReservedComponent(val)\n : encodeRFC3986URIComponent(val);\n}\n\nfunction encodeReservedComponent(str: string): string {\n return str\n .split(/(%[0-9A-Fa-f]{2})/g)\n .map((part) => (!/%[0-9A-Fa-f]/.test(part) ? encodeURI(part) : part))\n .join(\"\");\n}\n\nfunction encodeRFC3986URIComponent(str: string): string {\n return encodeURIComponent(str).replace(\n /[!'()*]/g,\n (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`,\n );\n}\n\nfunction isDefined(val: any): boolean {\n return val !== undefined && val !== null;\n}\n\nfunction getNamedAndIfEmpty(op?: string): [boolean, string] {\n return [!!op && [\";\", \"?\", \"&\"].includes(op), !!op && [\"?\", \"&\"].includes(op) ? \"=\" : \"\"];\n}\n\nfunction getFirstOrSep(op?: string, isFirst = false): string {\n if (isFirst) {\n return !op || op === \"+\" ? \"\" : op;\n } else if (!op || op === \"+\" || op === \"#\") {\n return \",\";\n } else if (op === \"?\") {\n return \"&\";\n } else {\n return op;\n }\n}\n\nfunction getExpandedValue(option: ValueOptions): string {\n let isFirst = option.isFirst;\n const { op, varName, varValue: value, reserved } = option;\n const vals: string[] = [];\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n\n if (Array.isArray(value)) {\n for (const val of value.filter(isDefined)) {\n // prepare the following parts: separator, varName, value\n vals.push(`${getFirstOrSep(op, isFirst)}`);\n if (named && varName) {\n vals.push(`${encodeURIComponent(varName)}`);\n val === \"\" ? vals.push(ifEmpty) : vals.push(\"=\");\n }\n vals.push(encodeComponent(val, reserved, op));\n isFirst = false;\n }\n } else if (typeof value === \"object\") {\n for (const key of Object.keys(value)) {\n const val = value[key];\n if (!isDefined(val)) {\n continue;\n }\n // prepare the following parts: separator, key, value\n vals.push(`${getFirstOrSep(op, isFirst)}`);\n if (key) {\n vals.push(`${encodeURIComponent(key)}`);\n named && val === \"\" ? vals.push(ifEmpty) : vals.push(\"=\");\n }\n vals.push(encodeComponent(val, reserved, op));\n isFirst = false;\n }\n }\n return vals.join(\"\");\n}\n\nfunction getNonExpandedValue(option: ValueOptions): string | undefined {\n const { op, varName, varValue: value, isFirst, reserved } = option;\n const vals: string[] = [];\n const first = getFirstOrSep(op, isFirst);\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n if (named && varName) {\n vals.push(encodeComponent(varName, reserved, op));\n if (value === \"\") {\n if (!ifEmpty) {\n vals.push(ifEmpty);\n }\n return !vals.join(\"\") ? undefined : `${first}${vals.join(\"\")}`;\n }\n vals.push(\"=\");\n }\n\n const items = [];\n if (Array.isArray(value)) {\n for (const val of value.filter(isDefined)) {\n items.push(encodeComponent(val, reserved, op));\n }\n } else if (typeof value === \"object\") {\n for (const key of Object.keys(value)) {\n if (!isDefined(value[key])) {\n continue;\n }\n items.push(encodeRFC3986URIComponent(key));\n items.push(encodeComponent(value[key], reserved, op));\n }\n }\n vals.push(items.join(\",\"));\n return !vals.join(\",\") ? undefined : `${first}${vals.join(\"\")}`;\n}\n\nfunction getVarValue(option: ValueOptions): string | undefined {\n const { op, varName, modifier, isFirst, reserved, varValue: value } = option;\n\n if (!isDefined(value)) {\n return undefined;\n } else if ([\"string\", \"number\", \"boolean\"].includes(typeof value)) {\n let val = value.toString();\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n const vals: string[] = [getFirstOrSep(op, isFirst)];\n if (named && varName) {\n // No need to encode varName considering it is already encoded\n vals.push(varName);\n val === \"\" ? vals.push(ifEmpty) : vals.push(\"=\");\n }\n if (modifier && modifier !== \"*\") {\n val = val.substring(0, parseInt(modifier, 10));\n }\n vals.push(encodeComponent(val, reserved, op));\n return vals.join(\"\");\n } else if (modifier === \"*\") {\n return getExpandedValue(option);\n } else {\n return getNonExpandedValue(option);\n }\n}\n\n// ---------------------------------------------------------------------------------------------------\n// This is an implementation of RFC 6570 URI Template: https://datatracker.ietf.org/doc/html/rfc6570.\n// ---------------------------------------------------------------------------------------------------\nexport function expandUrlTemplate(\n template: string,\n context: Record<string, any>,\n option?: UrlTemplateOptions,\n): string {\n return template.replace(/\\{([^{}]+)\\}|([^{}]+)/g, (_, expr, text) => {\n if (!expr) {\n return encodeReservedComponent(text);\n }\n let op;\n if ([\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"].includes(expr[0])) {\n ((op = expr[0]), (expr = expr.slice(1)));\n }\n const varList = expr.split(/,/g);\n const result = [];\n for (const varSpec of varList) {\n const varMatch = /([^:*]*)(?::(\\d+)|(\\*))?/.exec(varSpec);\n if (!varMatch || !varMatch[1]) {\n continue;\n }\n const varValue = getVarValue({\n isFirst: result.length === 0,\n op,\n varValue: context[varMatch[1]],\n varName: varMatch[1],\n modifier: varMatch[2] || varMatch[3],\n reserved: option?.allowReserved,\n });\n if (varValue) {\n result.push(varValue);\n }\n }\n return result.join(\"\");\n });\n}\n"]}
|
|
@@ -30,7 +30,7 @@ export declare class MCPTool {
|
|
|
30
30
|
* Get the MCP tool definition.
|
|
31
31
|
* @returns A list containing the MCP tool definition
|
|
32
32
|
*/
|
|
33
|
-
get
|
|
33
|
+
get definition(): MCPToolDefinition;
|
|
34
34
|
/**
|
|
35
35
|
* Add a tool to the list of allowed tools.
|
|
36
36
|
* @param toolName - The name of the tool to allow
|
|
@@ -74,5 +74,16 @@ export declare class MCPTool {
|
|
|
74
74
|
* Get the tool resources for the agent.
|
|
75
75
|
*/
|
|
76
76
|
get resources(): ToolResources;
|
|
77
|
+
/**
|
|
78
|
+
* Merge the tool resources from multiple MCPTool instances into a single ToolResources object.
|
|
79
|
+
*
|
|
80
|
+
* This is useful when creating a run that should have access to multiple MCP servers at once.
|
|
81
|
+
*
|
|
82
|
+
* @param mcpTools - An array of MCPTool instances whose resources will be merged.
|
|
83
|
+
* @returns A ToolResources object containing all MCP tool resources from the provided tools.
|
|
84
|
+
* @throws Error if the provided array is empty.
|
|
85
|
+
* @throws TypeError if any item in the array is not an instance of MCPTool.
|
|
86
|
+
*/
|
|
87
|
+
static mergeResources(mcpTools: MCPTool[]): ToolResources;
|
|
77
88
|
}
|
|
78
89
|
//# sourceMappingURL=MCPTool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,UAAU,IAAI,iBAAiB,CAElC;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;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,aAAa;CAqB1D"}
|
|
@@ -50,8 +50,8 @@ export class MCPTool {
|
|
|
50
50
|
* Get the MCP tool definition.
|
|
51
51
|
* @returns A list containing the MCP tool definition
|
|
52
52
|
*/
|
|
53
|
-
get
|
|
54
|
-
return
|
|
53
|
+
get definition() {
|
|
54
|
+
return this._definition;
|
|
55
55
|
}
|
|
56
56
|
/**
|
|
57
57
|
* Add a tool to the list of allowed tools.
|
|
@@ -129,5 +129,32 @@ export class MCPTool {
|
|
|
129
129
|
mcp: [this._resource],
|
|
130
130
|
};
|
|
131
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Merge the tool resources from multiple MCPTool instances into a single ToolResources object.
|
|
134
|
+
*
|
|
135
|
+
* This is useful when creating a run that should have access to multiple MCP servers at once.
|
|
136
|
+
*
|
|
137
|
+
* @param mcpTools - An array of MCPTool instances whose resources will be merged.
|
|
138
|
+
* @returns A ToolResources object containing all MCP tool resources from the provided tools.
|
|
139
|
+
* @throws Error if the provided array is empty.
|
|
140
|
+
* @throws TypeError if any item in the array is not an instance of MCPTool.
|
|
141
|
+
*/
|
|
142
|
+
static mergeResources(mcpTools) {
|
|
143
|
+
if (!mcpTools || mcpTools.length === 0) {
|
|
144
|
+
throw new Error("mcpTools must be a non-empty array of MCPTool instances.");
|
|
145
|
+
}
|
|
146
|
+
const flatResources = [];
|
|
147
|
+
for (const tool of mcpTools) {
|
|
148
|
+
if (!(tool instanceof MCPTool)) {
|
|
149
|
+
throw new TypeError("All items in mcpTools must be instances of MCPTool.");
|
|
150
|
+
}
|
|
151
|
+
// Combine all MCP resources; duplicates are harmless and can be filtered by the service if needed
|
|
152
|
+
const res = tool.resources?.mcp;
|
|
153
|
+
if (res?.length) {
|
|
154
|
+
flatResources.push(...res);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return { mcp: flatResources };
|
|
158
|
+
}
|
|
132
159
|
}
|
|
133
160
|
//# sourceMappingURL=MCPTool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MCPTool.js","sourceRoot":"","sources":["../../../src/utils/MCPTool.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC;;;GAGG;AACH,MAAM,OAAO,OAAO;IACV,YAAY,CAAS;IACrB,UAAU,CAAS;IACnB,aAAa,CAAW;IACxB,gBAAgB,CAAsB;IACtC,QAAQ,CAAyB;IAEzC;;;;;OAKG;IACH,YAAY,WAAmB,EAAE,SAAiB,EAAE,YAAuB;QACzE,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,YAAY,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,CAAC,qCAAqC;QACvE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IACD;;;OAGG;IACH,IAAY,SAAS;QACnB,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,eAAe,EAAE,IAAI,CAAC,gBAAgB;SACvC,CAAC;IACJ,CAAC;IAED;;;SAGK;IACL,IAAY,WAAW;QACrB,OAAO;YACL,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;SAC7E,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,IAAI,
|
|
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 definition(): 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 /**\n * Merge the tool resources from multiple MCPTool instances into a single ToolResources object.\n *\n * This is useful when creating a run that should have access to multiple MCP servers at once.\n *\n * @param mcpTools - An array of MCPTool instances whose resources will be merged.\n * @returns A ToolResources object containing all MCP tool resources from the provided tools.\n * @throws Error if the provided array is empty.\n * @throws TypeError if any item in the array is not an instance of MCPTool.\n */\n static mergeResources(mcpTools: MCPTool[]): ToolResources {\n if (!mcpTools || mcpTools.length === 0) {\n throw new Error(\"mcpTools must be a non-empty array of MCPTool instances.\");\n }\n\n const flatResources: MCPToolResource[] = [];\n\n for (const tool of mcpTools) {\n if (!(tool instanceof MCPTool)) {\n throw new TypeError(\"All items in mcpTools must be instances of MCPTool.\");\n }\n\n // Combine all MCP resources; duplicates are harmless and can be filtered by the service if needed\n const res = tool.resources?.mcp;\n if (res?.length) {\n flatResources.push(...res);\n }\n }\n\n return { mcp: flatResources };\n }\n}\n"]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { OpenApiToolDefinition, OpenApiFunctionDefinition, ToolResources } from "../index.js";
|
|
2
|
+
/**
|
|
3
|
+
* A tool that retrieves information using OpenAPI specs.
|
|
4
|
+
* Initialized with an initial API definition (name, description, spec, auth),
|
|
5
|
+
* this class also supports adding and removing additional API definitions dynamically.
|
|
6
|
+
*/
|
|
7
|
+
export declare class OpenApiTool {
|
|
8
|
+
private _defaultAuth;
|
|
9
|
+
private _definitions;
|
|
10
|
+
/**
|
|
11
|
+
* Constructor initializes the tool with a primary API definition.
|
|
12
|
+
*
|
|
13
|
+
* @param name - The name of the API.
|
|
14
|
+
* @param description - The API description.
|
|
15
|
+
* @param spec - The API specification.
|
|
16
|
+
* @param auth - Authentication details for the API.
|
|
17
|
+
* @param defaultParameters - List of OpenAPI spec parameters that will use user-provided defaults.
|
|
18
|
+
*/
|
|
19
|
+
constructor(openApiFunctionDefinition: OpenApiFunctionDefinition);
|
|
20
|
+
/**
|
|
21
|
+
* Get the list of all API definitions for the tool.
|
|
22
|
+
*/
|
|
23
|
+
get definitions(): OpenApiToolDefinition[];
|
|
24
|
+
/**
|
|
25
|
+
* Creates a new API definition.
|
|
26
|
+
* @param openapi - OpenApi function definition
|
|
27
|
+
* @returns The created API definition
|
|
28
|
+
*/
|
|
29
|
+
static createDefinition(openapi: OpenApiFunctionDefinition): OpenApiToolDefinition;
|
|
30
|
+
/**
|
|
31
|
+
* Adds a new API definition dynamically.
|
|
32
|
+
* Throws if a definition with the same name already exists.
|
|
33
|
+
*/
|
|
34
|
+
addDefinition(openApiFunctionDefinition: OpenApiFunctionDefinition): void;
|
|
35
|
+
/**
|
|
36
|
+
* Removes an API definition based on its name.
|
|
37
|
+
* Throws if the definition does not exist.
|
|
38
|
+
*/
|
|
39
|
+
removeDefinition(name: string): void;
|
|
40
|
+
/**
|
|
41
|
+
* Get the tool resources for the agent.
|
|
42
|
+
* OpenApiTool doesn't have specific resources so an empty object is returned.
|
|
43
|
+
*/
|
|
44
|
+
get resources(): ToolResources;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=OpenApiTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenApiTool.d.ts","sourceRoot":"","sources":["../../../src/utils/OpenApiTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,qBAAqB,EACrB,yBAAyB,EAEzB,aAAa,EACd,MAAM,aAAa,CAAC;AAGrB;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,YAAY,CAA0B;IAE9C;;;;;;;;OAQG;gBACS,yBAAyB,EAAE,yBAAyB;IAUhE;;OAEG;IACH,IAAW,WAAW,IAAI,qBAAqB,EAAE,CAEhD;IAED;;;;OAIG;WACW,gBAAgB,CAAC,OAAO,EAAE,yBAAyB,GAAG,qBAAqB;IAOzF;;;OAGG;IACI,aAAa,CAAC,yBAAyB,EAAE,yBAAyB,GAAG,IAAI;IAmBhF;;;OAGG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAcpC;;;OAGG;IACH,IAAI,SAAS,IAAI,aAAa,CAE7B;CACF"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { logger } from "../logger.js";
|
|
4
|
+
/**
|
|
5
|
+
* A tool that retrieves information using OpenAPI specs.
|
|
6
|
+
* Initialized with an initial API definition (name, description, spec, auth),
|
|
7
|
+
* this class also supports adding and removing additional API definitions dynamically.
|
|
8
|
+
*/
|
|
9
|
+
export class OpenApiTool {
|
|
10
|
+
_defaultAuth;
|
|
11
|
+
_definitions;
|
|
12
|
+
/**
|
|
13
|
+
* Constructor initializes the tool with a primary API definition.
|
|
14
|
+
*
|
|
15
|
+
* @param name - The name of the API.
|
|
16
|
+
* @param description - The API description.
|
|
17
|
+
* @param spec - The API specification.
|
|
18
|
+
* @param auth - Authentication details for the API.
|
|
19
|
+
* @param defaultParameters - List of OpenAPI spec parameters that will use user-provided defaults.
|
|
20
|
+
*/
|
|
21
|
+
constructor(openApiFunctionDefinition) {
|
|
22
|
+
const defaultParams = openApiFunctionDefinition.defaultParams ?? [];
|
|
23
|
+
this._defaultAuth = openApiFunctionDefinition.auth;
|
|
24
|
+
const openapi = OpenApiTool.createDefinition({
|
|
25
|
+
...openApiFunctionDefinition,
|
|
26
|
+
defaultParams,
|
|
27
|
+
});
|
|
28
|
+
this._definitions = [openapi];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get the list of all API definitions for the tool.
|
|
32
|
+
*/
|
|
33
|
+
get definitions() {
|
|
34
|
+
return [...this._definitions];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Creates a new API definition.
|
|
38
|
+
* @param openapi - OpenApi function definition
|
|
39
|
+
* @returns The created API definition
|
|
40
|
+
*/
|
|
41
|
+
static createDefinition(openapi) {
|
|
42
|
+
return {
|
|
43
|
+
type: "openapi",
|
|
44
|
+
openapi,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Adds a new API definition dynamically.
|
|
49
|
+
* Throws if a definition with the same name already exists.
|
|
50
|
+
*/
|
|
51
|
+
addDefinition(openApiFunctionDefinition) {
|
|
52
|
+
if (this._definitions.some((d) => d.openapi.name === openApiFunctionDefinition.name)) {
|
|
53
|
+
throw new Error(`Definition '${openApiFunctionDefinition.name}' already exists and cannot be added again.`);
|
|
54
|
+
}
|
|
55
|
+
const defaultParams = openApiFunctionDefinition.defaultParams ?? [];
|
|
56
|
+
const authToUse = openApiFunctionDefinition.auth ?? this._defaultAuth;
|
|
57
|
+
this._definitions.push(OpenApiTool.createDefinition({
|
|
58
|
+
...openApiFunctionDefinition,
|
|
59
|
+
defaultParams,
|
|
60
|
+
auth: authToUse,
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Removes an API definition based on its name.
|
|
65
|
+
* Throws if the definition does not exist.
|
|
66
|
+
*/
|
|
67
|
+
removeDefinition(name) {
|
|
68
|
+
const index = this._definitions.findIndex((d) => d.openapi.name === name);
|
|
69
|
+
if (index !== -1) {
|
|
70
|
+
this._definitions.splice(index, 1);
|
|
71
|
+
logger.info("Definition '%s' removed. Total definitions: %d.", name, this._definitions.length);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
throw new Error(`Definition with the name '${name}' does not exist.`);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get the tool resources for the agent.
|
|
78
|
+
* OpenApiTool doesn't have specific resources so an empty object is returned.
|
|
79
|
+
*/
|
|
80
|
+
get resources() {
|
|
81
|
+
return {};
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=OpenApiTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenApiTool.js","sourceRoot":"","sources":["../../../src/utils/OpenApiTool.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAQlC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;;GAIG;AACH,MAAM,OAAO,WAAW;IACd,YAAY,CAA0B;IACtC,YAAY,CAA0B;IAE9C;;;;;;;;OAQG;IACH,YAAY,yBAAoD;QAC9D,MAAM,aAAa,GAAG,yBAAyB,CAAC,aAAa,IAAI,EAAE,CAAC;QACpE,IAAI,CAAC,YAAY,GAAG,yBAAyB,CAAC,IAAI,CAAC;QACnD,MAAM,OAAO,GAAG,WAAW,CAAC,gBAAgB,CAAC;YAC3C,GAAG,yBAAyB;YAC5B,aAAa;SACd,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAW,WAAW;QACpB,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,gBAAgB,CAAC,OAAkC;QAC/D,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO;SACR,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,aAAa,CAAC,yBAAoD;QACvE,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;YACrF,MAAM,IAAI,KAAK,CACb,eAAe,yBAAyB,CAAC,IAAI,6CAA6C,CAC3F,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,yBAAyB,CAAC,aAAa,IAAI,EAAE,CAAC;QACpE,MAAM,SAAS,GAAG,yBAAyB,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC;QAEtE,IAAI,CAAC,YAAY,CAAC,IAAI,CACpB,WAAW,CAAC,gBAAgB,CAAC;YAC3B,GAAG,yBAAyB;YAC5B,aAAa;YACb,IAAI,EAAE,SAAS;SAChB,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,IAAY;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC1E,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CACT,iDAAiD,EACjD,IAAI,EACJ,IAAI,CAAC,YAAY,CAAC,MAAM,CACzB,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,mBAAmB,CAAC,CAAC;IACxE,CAAC;IAED;;;OAGG;IACH,IAAI,SAAS;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n OpenApiToolDefinition,\n OpenApiFunctionDefinition,\n OpenApiAuthDetailsUnion,\n ToolResources,\n} from \"../index.js\";\nimport { logger } from \"../logger.js\";\n\n/**\n * A tool that retrieves information using OpenAPI specs.\n * Initialized with an initial API definition (name, description, spec, auth),\n * this class also supports adding and removing additional API definitions dynamically.\n */\nexport class OpenApiTool {\n private _defaultAuth: OpenApiAuthDetailsUnion;\n private _definitions: OpenApiToolDefinition[];\n\n /**\n * Constructor initializes the tool with a primary API definition.\n *\n * @param name - The name of the API.\n * @param description - The API description.\n * @param spec - The API specification.\n * @param auth - Authentication details for the API.\n * @param defaultParameters - List of OpenAPI spec parameters that will use user-provided defaults.\n */\n constructor(openApiFunctionDefinition: OpenApiFunctionDefinition) {\n const defaultParams = openApiFunctionDefinition.defaultParams ?? [];\n this._defaultAuth = openApiFunctionDefinition.auth;\n const openapi = OpenApiTool.createDefinition({\n ...openApiFunctionDefinition,\n defaultParams,\n });\n this._definitions = [openapi];\n }\n\n /**\n * Get the list of all API definitions for the tool.\n */\n public get definitions(): OpenApiToolDefinition[] {\n return [...this._definitions];\n }\n\n /**\n * Creates a new API definition.\n * @param openapi - OpenApi function definition\n * @returns The created API definition\n */\n public static createDefinition(openapi: OpenApiFunctionDefinition): OpenApiToolDefinition {\n return {\n type: \"openapi\",\n openapi,\n };\n }\n\n /**\n * Adds a new API definition dynamically.\n * Throws if a definition with the same name already exists.\n */\n public addDefinition(openApiFunctionDefinition: OpenApiFunctionDefinition): void {\n if (this._definitions.some((d) => d.openapi.name === openApiFunctionDefinition.name)) {\n throw new Error(\n `Definition '${openApiFunctionDefinition.name}' already exists and cannot be added again.`,\n );\n }\n\n const defaultParams = openApiFunctionDefinition.defaultParams ?? [];\n const authToUse = openApiFunctionDefinition.auth ?? this._defaultAuth;\n\n this._definitions.push(\n OpenApiTool.createDefinition({\n ...openApiFunctionDefinition,\n defaultParams,\n auth: authToUse,\n }),\n );\n }\n\n /**\n * Removes an API definition based on its name.\n * Throws if the definition does not exist.\n */\n removeDefinition(name: string): void {\n const index = this._definitions.findIndex((d) => d.openapi.name === name);\n if (index !== -1) {\n this._definitions.splice(index, 1);\n logger.info(\n \"Definition '%s' removed. Total definitions: %d.\",\n name,\n this._definitions.length,\n );\n return;\n }\n throw new Error(`Definition with the name '${name}' does not exist.`);\n }\n\n /**\n * Get the tool resources for the agent.\n * OpenApiTool doesn't have specific resources so an empty object is returned.\n */\n get resources(): ToolResources {\n return {};\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AzureAISearchToolDefinition, CodeInterpreterToolDefinition, FileSearchToolDefinition, FileSearchToolDefinitionDetails, FunctionDefinition, FunctionToolDefinition, OpenApiToolDefinition, RequiredAction, RequiredToolCall, ToolDefinition, ToolDefinitionUnion, ToolResources, VectorStoreConfigurations, VectorStoreDataSource, OpenApiFunctionDefinition, AISearchIndexResource,
|
|
1
|
+
import type { AzureAISearchToolDefinition, CodeInterpreterToolDefinition, FileSearchToolDefinition, FileSearchToolDefinitionDetails, FunctionDefinition, FunctionToolDefinition, OpenApiToolDefinition, RequiredAction, RequiredToolCall, ToolDefinition, ToolDefinitionUnion, ToolResources, VectorStoreConfigurations, VectorStoreDataSource, OpenApiFunctionDefinition, AISearchIndexResource, BingGroundingToolDefinition, BingGroundingSearchConfiguration, ConnectedAgentToolDefinition, MCPToolDefinition } from "../index.js";
|
|
2
2
|
import { MCPTool } from "./MCPTool.js";
|
|
3
3
|
/**
|
|
4
4
|
* Determines if the given output is of the specified type.
|
|
@@ -38,17 +38,6 @@ export declare class ToolUtility {
|
|
|
38
38
|
static createConnectionTool(toolType: connectionToolType, connectionIds: string[]): {
|
|
39
39
|
definition: ToolDefinitionUnion;
|
|
40
40
|
};
|
|
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
41
|
/**
|
|
53
42
|
* Creates a bing grounding search tool
|
|
54
43
|
*
|
|
@@ -60,16 +49,6 @@ export declare class ToolUtility {
|
|
|
60
49
|
static createBingGroundingTool(searchConfigurations: BingGroundingSearchConfiguration[]): {
|
|
61
50
|
definition: BingGroundingToolDefinition;
|
|
62
51
|
};
|
|
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
52
|
/**
|
|
74
53
|
* Creates a file search tool
|
|
75
54
|
*
|
|
@@ -115,15 +94,6 @@ export declare class ToolUtility {
|
|
|
115
94
|
static createConnectedAgentTool(id: string, name: string, description: string): {
|
|
116
95
|
definition: ConnectedAgentToolDefinition;
|
|
117
96
|
};
|
|
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
97
|
/**
|
|
128
98
|
* Creates a function tool
|
|
129
99
|
*
|
|
@@ -221,6 +191,19 @@ export declare class ToolSet {
|
|
|
221
191
|
addOpenApiTool(openApiFunctionDefinition: OpenApiFunctionDefinition): {
|
|
222
192
|
definition: OpenApiToolDefinition;
|
|
223
193
|
};
|
|
194
|
+
/**
|
|
195
|
+
* Adds a Model Context Protocol (MCP) tool to the tool set.
|
|
196
|
+
* @param options - The options for configuring the MCP tool.
|
|
197
|
+
* @returns An object containing the definition and resources for the MCP tool
|
|
198
|
+
*/
|
|
199
|
+
addMCPTool(options: {
|
|
200
|
+
serverLabel: string;
|
|
201
|
+
serverUrl: string;
|
|
202
|
+
allowedTools?: string[];
|
|
203
|
+
}): {
|
|
204
|
+
definition: MCPToolDefinition;
|
|
205
|
+
resources: ToolResources;
|
|
206
|
+
};
|
|
224
207
|
/**
|
|
225
208
|
* Adds a bing grounding search tool to the tool set.
|
|
226
209
|
*
|
|
@@ -242,24 +225,5 @@ export declare class ToolSet {
|
|
|
242
225
|
addConnectedAgentTool(id: string, name: string, description: string): {
|
|
243
226
|
definition: ConnectedAgentToolDefinition;
|
|
244
227
|
};
|
|
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
228
|
}
|
|
265
229
|
//# 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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"}
|