@azure/ai-agents 1.0.0-beta.2 → 1.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -34
- package/dist/browser/api/agentsContext.d.ts.map +1 -1
- package/dist/browser/api/agentsContext.js +7 -4
- package/dist/browser/api/agentsContext.js.map +1 -1
- package/dist/browser/api/operations.d.ts +3 -3
- package/dist/browser/api/operations.d.ts.map +1 -1
- package/dist/browser/api/operations.js +14 -14
- package/dist/browser/api/operations.js.map +1 -1
- package/dist/browser/api/poller.d.ts +7 -2
- package/dist/browser/api/poller.d.ts.map +1 -1
- package/dist/browser/api/poller.js +31 -9
- package/dist/browser/api/poller.js.map +1 -1
- package/dist/browser/api/runs/operations.d.ts +12 -7
- package/dist/browser/api/runs/operations.d.ts.map +1 -1
- package/dist/browser/api/runs/operations.js +59 -9
- package/dist/browser/api/runs/operations.js.map +1 -1
- package/dist/browser/api/runs/options.d.ts +2 -1
- package/dist/browser/api/runs/options.d.ts.map +1 -1
- package/dist/browser/api/runs/options.js.map +1 -1
- package/dist/browser/classic/runs/index.d.ts +4 -1
- package/dist/browser/classic/runs/index.d.ts.map +1 -1
- package/dist/browser/classic/runs/index.js +2 -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/models/models.d.ts +6 -2
- package/dist/browser/models/models.d.ts.map +1 -1
- package/dist/browser/models/models.js +8 -0
- package/dist/browser/models/models.js.map +1 -1
- package/dist/browser/models/streamingModels.d.ts +1 -67
- package/dist/browser/models/streamingModels.d.ts.map +1 -1
- package/dist/browser/models/streamingModels.js +1 -72
- package/dist/browser/models/streamingModels.js.map +1 -1
- package/dist/browser/utils.d.ts +20 -1
- package/dist/browser/utils.d.ts.map +1 -1
- package/dist/browser/utils.js +33 -1
- package/dist/browser/utils.js.map +1 -1
- package/dist/commonjs/api/agentsContext.d.ts.map +1 -1
- package/dist/commonjs/api/agentsContext.js +7 -4
- package/dist/commonjs/api/agentsContext.js.map +1 -1
- package/dist/commonjs/api/operations.d.ts +3 -3
- package/dist/commonjs/api/operations.d.ts.map +1 -1
- package/dist/commonjs/api/operations.js +18 -18
- package/dist/commonjs/api/operations.js.map +1 -1
- package/dist/commonjs/api/poller.d.ts +7 -2
- package/dist/commonjs/api/poller.d.ts.map +1 -1
- package/dist/commonjs/api/poller.js +32 -9
- package/dist/commonjs/api/poller.js.map +1 -1
- package/dist/commonjs/api/runs/operations.d.ts +12 -7
- package/dist/commonjs/api/runs/operations.d.ts.map +1 -1
- package/dist/commonjs/api/runs/operations.js +58 -6
- package/dist/commonjs/api/runs/operations.js.map +1 -1
- package/dist/commonjs/api/runs/options.d.ts +2 -1
- package/dist/commonjs/api/runs/options.d.ts.map +1 -1
- package/dist/commonjs/api/runs/options.js.map +1 -1
- package/dist/commonjs/classic/runs/index.d.ts +4 -1
- package/dist/commonjs/classic/runs/index.d.ts.map +1 -1
- package/dist/commonjs/classic/runs/index.js +1 -0
- 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/models/models.d.ts +6 -2
- package/dist/commonjs/models/models.d.ts.map +1 -1
- package/dist/commonjs/models/models.js +8 -0
- package/dist/commonjs/models/models.js.map +1 -1
- package/dist/commonjs/models/streamingModels.d.ts +1 -67
- package/dist/commonjs/models/streamingModels.d.ts.map +1 -1
- package/dist/commonjs/models/streamingModels.js +0 -73
- package/dist/commonjs/models/streamingModels.js.map +1 -1
- package/dist/commonjs/tsdoc-metadata.json +1 -1
- package/dist/commonjs/utils.d.ts +20 -1
- package/dist/commonjs/utils.d.ts.map +1 -1
- package/dist/commonjs/utils.js +33 -1
- package/dist/commonjs/utils.js.map +1 -1
- package/dist/esm/api/agentsContext.d.ts.map +1 -1
- package/dist/esm/api/agentsContext.js +7 -4
- package/dist/esm/api/agentsContext.js.map +1 -1
- package/dist/esm/api/operations.d.ts +3 -3
- package/dist/esm/api/operations.d.ts.map +1 -1
- package/dist/esm/api/operations.js +14 -14
- package/dist/esm/api/operations.js.map +1 -1
- package/dist/esm/api/poller.d.ts +7 -2
- package/dist/esm/api/poller.d.ts.map +1 -1
- package/dist/esm/api/poller.js +31 -9
- package/dist/esm/api/poller.js.map +1 -1
- package/dist/esm/api/runs/operations.d.ts +12 -7
- package/dist/esm/api/runs/operations.d.ts.map +1 -1
- package/dist/esm/api/runs/operations.js +59 -9
- package/dist/esm/api/runs/operations.js.map +1 -1
- package/dist/esm/api/runs/options.d.ts +2 -1
- package/dist/esm/api/runs/options.d.ts.map +1 -1
- package/dist/esm/api/runs/options.js.map +1 -1
- package/dist/esm/classic/runs/index.d.ts +4 -1
- package/dist/esm/classic/runs/index.d.ts.map +1 -1
- package/dist/esm/classic/runs/index.js +2 -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/models/models.d.ts +6 -2
- package/dist/esm/models/models.d.ts.map +1 -1
- package/dist/esm/models/models.js +8 -0
- package/dist/esm/models/models.js.map +1 -1
- package/dist/esm/models/streamingModels.d.ts +1 -67
- package/dist/esm/models/streamingModels.d.ts.map +1 -1
- package/dist/esm/models/streamingModels.js +1 -72
- package/dist/esm/models/streamingModels.js.map +1 -1
- package/dist/esm/utils.d.ts +20 -1
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js +33 -1
- package/dist/esm/utils.js.map +1 -1
- package/dist/react-native/api/agentsContext.d.ts.map +1 -1
- package/dist/react-native/api/agentsContext.js +7 -4
- package/dist/react-native/api/agentsContext.js.map +1 -1
- package/dist/react-native/api/operations.d.ts +3 -3
- package/dist/react-native/api/operations.d.ts.map +1 -1
- package/dist/react-native/api/operations.js +14 -14
- package/dist/react-native/api/operations.js.map +1 -1
- package/dist/react-native/api/poller.d.ts +7 -2
- package/dist/react-native/api/poller.d.ts.map +1 -1
- package/dist/react-native/api/poller.js +31 -9
- package/dist/react-native/api/poller.js.map +1 -1
- package/dist/react-native/api/runs/operations.d.ts +12 -7
- package/dist/react-native/api/runs/operations.d.ts.map +1 -1
- package/dist/react-native/api/runs/operations.js +59 -9
- package/dist/react-native/api/runs/operations.js.map +1 -1
- package/dist/react-native/api/runs/options.d.ts +2 -1
- 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/classic/runs/index.d.ts +4 -1
- package/dist/react-native/classic/runs/index.d.ts.map +1 -1
- package/dist/react-native/classic/runs/index.js +2 -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/models/models.d.ts +6 -2
- package/dist/react-native/models/models.d.ts.map +1 -1
- package/dist/react-native/models/models.js +8 -0
- package/dist/react-native/models/models.js.map +1 -1
- package/dist/react-native/models/streamingModels.d.ts +1 -67
- package/dist/react-native/models/streamingModels.d.ts.map +1 -1
- package/dist/react-native/models/streamingModels.js +1 -72
- package/dist/react-native/models/streamingModels.js.map +1 -1
- package/dist/react-native/utils.d.ts +20 -1
- package/dist/react-native/utils.d.ts.map +1 -1
- package/dist/react-native/utils.js +33 -1
- package/dist/react-native/utils.js.map +1 -1
- package/package.json +7 -13
package/README.md
CHANGED
|
@@ -4,10 +4,14 @@ Use the AI Agents client library to:
|
|
|
4
4
|
|
|
5
5
|
- **Develop Agents using the Azure AI Agent Service**, leveraging an extensive ecosystem of models, tools, and capabilities from OpenAI, Microsoft, and other LLM providers. The Azure AI Agent Service enables the building of Agents for a wide range of generative AI use cases.
|
|
6
6
|
|
|
7
|
+
* **Note:** While this package can be used independently, we recommend using the [Azure AI Projects client library](https://www.npmjs.com/package/@azure/ai-projects) for an enhanced experience.
|
|
8
|
+
The Projects library provides simplified access to advanced functionality, such as creating and managing agents, enumerating AI models, working with datasets and
|
|
9
|
+
managing search indexes, evaluating generative AI performance, and enabling OpenTelemetry tracing.
|
|
10
|
+
|
|
7
11
|
[Product documentation](https://aka.ms/azsdk/azure-ai-projects/product-doc)
|
|
8
12
|
| [Samples](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/ai/ai-agents/samples/)
|
|
9
13
|
| [Package (npm)](https://www.npmjs.com/package/@azure/ai-agents)
|
|
10
|
-
| [API reference documentation](https://learn.microsoft.com/javascript/api/overview/azure/ai-
|
|
14
|
+
| [API reference documentation](https://learn.microsoft.com/javascript/api/overview/azure/ai-agents-readme?view=azure-node-preview)
|
|
11
15
|
|
|
12
16
|
## Table of contents
|
|
13
17
|
|
|
@@ -70,7 +74,7 @@ npm install @azure/ai-agents @azure/identity
|
|
|
70
74
|
|
|
71
75
|
The `AgentsClient` is used to construct the client. Currently, we recommend that you use the AgentsClient through the [Azure AI Projects Client Library](https://www.npmjs.com/package/@azure/ai-projects) using `client.agents`.
|
|
72
76
|
|
|
73
|
-
To
|
|
77
|
+
To get your project endpoint you can refer this doc: [azure_foundry_service_endpoint]. Below we will assume the environment variable `PROJECT_ENDPOINT` was defined to hold this value:
|
|
74
78
|
|
|
75
79
|
```ts snippet:setup
|
|
76
80
|
import { AgentsClient } from "@azure/ai-agents";
|
|
@@ -106,7 +110,7 @@ You can use `ToolSet` to do this:
|
|
|
106
110
|
import { ToolSet } from "@azure/ai-agents";
|
|
107
111
|
|
|
108
112
|
// Upload file for code interpreter tool
|
|
109
|
-
const filePath1 = "./data/
|
|
113
|
+
const filePath1 = "./data/syntheticCompanyQuarterlyResults.csv";
|
|
110
114
|
const fileStream1 = fs.createReadStream(filePath1);
|
|
111
115
|
const codeInterpreterFile = await client.files.upload(fileStream1, "assistants", {
|
|
112
116
|
fileName: "myLocalFile",
|
|
@@ -129,6 +133,15 @@ const vectorStore = await client.vectorStores
|
|
|
129
133
|
const toolSet = new ToolSet();
|
|
130
134
|
toolSet.addFileSearchTool([vectorStore.id]);
|
|
131
135
|
toolSet.addCodeInterpreterTool([codeInterpreterFile.id]);
|
|
136
|
+
|
|
137
|
+
// Create agent with tool set
|
|
138
|
+
const agent = await client.createAgent("gpt-4o", {
|
|
139
|
+
name: "my-agent",
|
|
140
|
+
instructions: "You are a helpful agent",
|
|
141
|
+
tools: toolSet.toolDefinitions,
|
|
142
|
+
toolResources: toolSet.toolResources,
|
|
143
|
+
});
|
|
144
|
+
console.log(`Created agent, agent ID: ${agent.id}`);
|
|
132
145
|
```
|
|
133
146
|
|
|
134
147
|
#### Create Agent with File Search
|
|
@@ -169,7 +182,7 @@ Here is an example to upload a file and use it for code interpreter by an Agent:
|
|
|
169
182
|
```ts snippet:codeInterpreter
|
|
170
183
|
import { ToolUtility } from "@azure/ai-agents";
|
|
171
184
|
|
|
172
|
-
const filePath = "./data/
|
|
185
|
+
const filePath = "./data/syntheticCompanyQuarterlyResults.csv";
|
|
173
186
|
const localFileStream = fs.createReadStream(filePath);
|
|
174
187
|
const localFile = await client.files.upload(localFileStream, "assistants", {
|
|
175
188
|
fileName: "localFile",
|
|
@@ -330,11 +343,11 @@ class FunctionToolExecutor {
|
|
|
330
343
|
return undefined;
|
|
331
344
|
}
|
|
332
345
|
}
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
346
|
+
// Create a mapping of function names to their implementations
|
|
347
|
+
const functionMap = new Map(
|
|
348
|
+
this.functionTools.map((tool) => [tool.definition.function.name, tool.func]),
|
|
349
|
+
);
|
|
350
|
+
const result = functionMap.get(toolCall.function.name)?.(...args);
|
|
338
351
|
return result
|
|
339
352
|
? {
|
|
340
353
|
toolCallId: toolCall.id,
|
|
@@ -439,7 +452,7 @@ In some scenarios, you might need to assign specific resources to individual thr
|
|
|
439
452
|
```ts snippet:threadWithTool
|
|
440
453
|
import { ToolUtility } from "@azure/ai-agents";
|
|
441
454
|
|
|
442
|
-
const filePath = "./data/
|
|
455
|
+
const filePath = "./data/syntheticCompanyQuarterlyResults.csv";
|
|
443
456
|
const localFileStream = fs.createReadStream(filePath);
|
|
444
457
|
const file = await client.files.upload(localFileStream, "assistants", {
|
|
445
458
|
fileName: "sample_file_for_upload.csv",
|
|
@@ -607,17 +620,17 @@ console.log(`Created message, message ID: ${message.id}`);
|
|
|
607
620
|
Here is an example of `runs.create` and poll until the run is completed:
|
|
608
621
|
|
|
609
622
|
```ts snippet:createRun
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
}
|
|
623
|
+
// Create and poll a run
|
|
624
|
+
console.log("Creating run...");
|
|
625
|
+
const run = await client.runs.createAndPoll(thread.id, agent.id, {
|
|
626
|
+
pollingOptions: {
|
|
627
|
+
intervalInMs: 2000,
|
|
628
|
+
},
|
|
629
|
+
onResponse: (response): void => {
|
|
630
|
+
console.log(`Received response with status: ${response.parsedBody.status}`);
|
|
631
|
+
},
|
|
632
|
+
});
|
|
633
|
+
console.log(`Run finished with status: ${run.status}`);
|
|
621
634
|
```
|
|
622
635
|
|
|
623
636
|
To have the SDK poll on your behalf, use the `createThreadAndRun` method.
|
|
@@ -648,36 +661,27 @@ const streamEventMessages = await client.runs.create(thread.id, agent.id).stream
|
|
|
648
661
|
Event handling can be done as follows:
|
|
649
662
|
|
|
650
663
|
```ts snippet:eventHandling
|
|
651
|
-
import {
|
|
652
|
-
RunStreamEvent,
|
|
653
|
-
ThreadRun,
|
|
654
|
-
MessageStreamEvent,
|
|
655
|
-
MessageDeltaChunk,
|
|
656
|
-
MessageDeltaTextContent,
|
|
657
|
-
ErrorEvent,
|
|
658
|
-
DoneEvent,
|
|
659
|
-
} from "@azure/ai-agents";
|
|
664
|
+
import { RunStreamEvent, MessageStreamEvent, ErrorEvent, DoneEvent } from "@azure/ai-agents";
|
|
660
665
|
|
|
661
666
|
const streamEventMessages = await client.runs.create(thread.id, agent.id).stream();
|
|
662
667
|
|
|
663
668
|
for await (const eventMessage of streamEventMessages) {
|
|
664
669
|
switch (eventMessage.event) {
|
|
665
670
|
case RunStreamEvent.ThreadRunCreated:
|
|
666
|
-
console.log(`ThreadRun status: ${
|
|
671
|
+
console.log(`ThreadRun status: ${eventMessage.data.status}`);
|
|
667
672
|
break;
|
|
668
673
|
case MessageStreamEvent.ThreadMessageDelta:
|
|
669
674
|
{
|
|
670
|
-
const messageDelta = eventMessage.data
|
|
675
|
+
const messageDelta = eventMessage.data;
|
|
671
676
|
messageDelta.delta.content.forEach((contentPart) => {
|
|
672
677
|
if (contentPart.type === "text") {
|
|
673
|
-
const textContent = contentPart
|
|
678
|
+
const textContent = contentPart;
|
|
674
679
|
const textValue = textContent.text?.value || "No text";
|
|
675
680
|
console.log(`Text delta received:: ${textValue}`);
|
|
676
681
|
}
|
|
677
682
|
});
|
|
678
683
|
}
|
|
679
684
|
break;
|
|
680
|
-
|
|
681
685
|
case RunStreamEvent.ThreadRunCompleted:
|
|
682
686
|
console.log("Thread Run Completed");
|
|
683
687
|
break;
|
|
@@ -831,6 +835,7 @@ additional questions or comments.
|
|
|
831
835
|
|
|
832
836
|
<!-- LINKS -->
|
|
833
837
|
|
|
838
|
+
[azure_foundry_service_endpoint]: https://learn.microsoft.com/azure/ai-foundry/model-inference/how-to/configure-project-connection?pivots=ai-foundry-portal
|
|
834
839
|
[code_of_conduct]: https://opensource.microsoft.com/codeofconduct/
|
|
835
840
|
[entra_id]: https://learn.microsoft.com/azure/ai-services/authentication?tabs=powershell#authenticate-with-microsoft-entra-id
|
|
836
841
|
[azure_identity_npm]: https://www.npmjs.com/package/@azure/identity
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentsContext.d.ts","sourceRoot":"","sources":["../../../src/api/agentsContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAa,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAmB,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnF,MAAM,WAAW,aAAc,SAAQ,MAAM;IAC3C,iDAAiD;IACjD,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,0CAA0C;AAC1C,MAAM,WAAW,0BAA2B,SAAQ,aAAa;IAC/D,iDAAiD;IACjD,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,YAAY,CAC1B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,aAAa,GAAG,eAAe,EAC3C,OAAO,GAAE,0BAA+B,GACvC,aAAa,
|
|
1
|
+
{"version":3,"file":"agentsContext.d.ts","sourceRoot":"","sources":["../../../src/api/agentsContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAa,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAmB,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnF,MAAM,WAAW,aAAc,SAAQ,MAAM;IAC3C,iDAAiD;IACjD,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,0CAA0C;AAC1C,MAAM,WAAW,0BAA2B,SAAQ,aAAa;IAC/D,iDAAiD;IACjD,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,YAAY,CAC1B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,aAAa,GAAG,eAAe,EAC3C,OAAO,GAAE,0BAA+B,GACvC,aAAa,CA4Cf"}
|
|
@@ -7,7 +7,7 @@ import { isKeyCredential } from "@azure/core-auth";
|
|
|
7
7
|
export function createAgents(endpointParam, credential, options = {}) {
|
|
8
8
|
var _a, _b, _c, _d, _e, _f;
|
|
9
9
|
const prefixFromOptions = (_a = options === null || options === void 0 ? void 0 : options.userAgentOptions) === null || _a === void 0 ? void 0 : _a.userAgentPrefix;
|
|
10
|
-
const userAgentInfo = `azsdk-js-ai-agents/1.0.0-beta.
|
|
10
|
+
const userAgentInfo = `azsdk-js-ai-agents/1.0.0-beta.4`;
|
|
11
11
|
const userAgentPrefix = prefixFromOptions
|
|
12
12
|
? `${prefixFromOptions} azsdk-js-api ${userAgentInfo}`
|
|
13
13
|
: `azsdk-js-api ${userAgentInfo}`;
|
|
@@ -29,12 +29,15 @@ export function createAgents(endpointParam, credential, options = {}) {
|
|
|
29
29
|
clientContext.pipeline.addPolicy({
|
|
30
30
|
name: "ClientApiVersionPolicy",
|
|
31
31
|
sendRequest: (req, next) => {
|
|
32
|
+
var _a;
|
|
32
33
|
// Use the apiVersion defined in request url directly
|
|
33
34
|
// Append one if there is no apiVersion and we have one at client options
|
|
34
35
|
const url = new URL(req.url);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
const defaultApiVersion = (_a = url.searchParams.get("api-version")) !== null && _a !== void 0 ? _a : apiVersion;
|
|
37
|
+
// remove api-version from url
|
|
38
|
+
url.searchParams.delete("api-version");
|
|
39
|
+
// add api-version to url
|
|
40
|
+
req.url = `${url.toString()}${Array.from(url.searchParams.keys()).length > 0 ? "&" : "?"}api-version=${defaultApiVersion}`;
|
|
38
41
|
return next(req);
|
|
39
42
|
},
|
|
40
43
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentsContext.js","sourceRoot":"","sources":["../../../src/api/agentsContext.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAyB,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAiB,eAAe,EAAmB,MAAM,kBAAkB,CAAC;AAenF,MAAM,UAAU,YAAY,CAC1B,aAAqB,EACrB,UAA2C,EAC3C,UAAsC,EAAE;;IAExC,MAAM,iBAAiB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,eAAe,CAAC;IACrE,MAAM,aAAa,GAAG,iCAAiC,CAAC;IACxD,MAAM,eAAe,GAAG,iBAAiB;QACvC,CAAC,CAAC,GAAG,iBAAiB,iBAAiB,aAAa,EAAE;QACtD,CAAC,CAAC,gBAAgB,aAAa,EAAE,CAAC;IACpC,MAAM,qCACD,OAAO,KACV,gBAAgB,EAAE,EAAE,eAAe,EAAE,EACrC,cAAc,EAAE,EAAE,MAAM,EAAE,MAAA,MAAA,OAAO,CAAC,cAAc,0CAAE,MAAM,mCAAI,MAAM,CAAC,IAAI,EAAE,EACzE,WAAW,EAAE;YACX,MAAM,EAAE,MAAA,MAAA,OAAO,CAAC,WAAW,0CAAE,MAAM,mCAAI,CAAC,+BAA+B,CAAC;SACzE,GACF,EAPK,EAAE,UAAU,EAAE,CAAC,OAOpB,EAPyB,cAAc,cAAlC,cAAoC,CAOzC,CAAC;IACF,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IAE3E,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC/B,IAAI,EAAE,2BAA2B;YACjC,WAAW,CAAC,OAAO,EAAE,IAAI;gBACvB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBACjE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IACD,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,UAAU,mCAAI,oBAAoB,CAAC;IAC9D,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC/B,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"agentsContext.js","sourceRoot":"","sources":["../../../src/api/agentsContext.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAyB,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAiB,eAAe,EAAmB,MAAM,kBAAkB,CAAC;AAenF,MAAM,UAAU,YAAY,CAC1B,aAAqB,EACrB,UAA2C,EAC3C,UAAsC,EAAE;;IAExC,MAAM,iBAAiB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,eAAe,CAAC;IACrE,MAAM,aAAa,GAAG,iCAAiC,CAAC;IACxD,MAAM,eAAe,GAAG,iBAAiB;QACvC,CAAC,CAAC,GAAG,iBAAiB,iBAAiB,aAAa,EAAE;QACtD,CAAC,CAAC,gBAAgB,aAAa,EAAE,CAAC;IACpC,MAAM,qCACD,OAAO,KACV,gBAAgB,EAAE,EAAE,eAAe,EAAE,EACrC,cAAc,EAAE,EAAE,MAAM,EAAE,MAAA,MAAA,OAAO,CAAC,cAAc,0CAAE,MAAM,mCAAI,MAAM,CAAC,IAAI,EAAE,EACzE,WAAW,EAAE;YACX,MAAM,EAAE,MAAA,MAAA,OAAO,CAAC,WAAW,0CAAE,MAAM,mCAAI,CAAC,+BAA+B,CAAC;SACzE,GACF,EAPK,EAAE,UAAU,EAAE,CAAC,OAOpB,EAPyB,cAAc,cAAlC,cAAoC,CAOzC,CAAC;IACF,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IAE3E,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC/B,IAAI,EAAE,2BAA2B;YACjC,WAAW,CAAC,OAAO,EAAE,IAAI;gBACvB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBACjE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IACD,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,UAAU,mCAAI,oBAAoB,CAAC;IAC9D,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC/B,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;;YACzB,qDAAqD;YACrD,yEAAyE;YACzE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,iBAAiB,GAAG,MAAA,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,mCAAI,UAAU,CAAC;YAC5E,8BAA8B;YAC9B,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACvC,yBAAyB;YACzB,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,GACzB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GACzD,eAAe,iBAAiB,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IACH,OAAO,gCAAK,aAAa,KAAE,UAAU,GAAmB,CAAC;AAC3D,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { logger } from \"../logger.js\";\nimport { KnownVersions } from \"../models/models.js\";\nimport { Client, ClientOptions, getClient } from \"@azure-rest/core-client\";\nimport { KeyCredential, isKeyCredential, TokenCredential } from \"@azure/core-auth\";\n\nexport interface AgentsContext extends Client {\n /** The API version to use for this operation. */\n /** Known values of {@link KnownVersions} that the service accepts. */\n apiVersion: string;\n}\n\n/** Optional parameters for the client. */\nexport interface AgentsClientOptionalParams extends ClientOptions {\n /** The API version to use for this operation. */\n /** Known values of {@link KnownVersions} that the service accepts. */\n apiVersion?: string;\n}\n\nexport function createAgents(\n endpointParam: string,\n credential: KeyCredential | TokenCredential,\n options: AgentsClientOptionalParams = {},\n): AgentsContext {\n const prefixFromOptions = options?.userAgentOptions?.userAgentPrefix;\n const userAgentInfo = `azsdk-js-ai-agents/1.0.0-beta.4`;\n const userAgentPrefix = prefixFromOptions\n ? `${prefixFromOptions} azsdk-js-api ${userAgentInfo}`\n : `azsdk-js-api ${userAgentInfo}`;\n const { apiVersion: _, ...updatedOptions } = {\n ...options,\n userAgentOptions: { userAgentPrefix },\n loggingOptions: { logger: options.loggingOptions?.logger ?? logger.info },\n credentials: {\n scopes: options.credentials?.scopes ?? [\"https://ai.azure.com/.default\"],\n },\n };\n const clientContext = getClient(endpointParam, credential, updatedOptions);\n\n if (isKeyCredential(credential)) {\n clientContext.pipeline.addPolicy({\n name: \"customKeyCredentialPolicy\",\n sendRequest(request, next) {\n request.headers.set(\"Authorization\", \"Bearer \" + credential.key);\n return next(request);\n },\n });\n }\n clientContext.pipeline.removePolicy({ name: \"ApiVersionPolicy\" });\n const apiVersion = options.apiVersion ?? \"2025-05-15-preview\";\n clientContext.pipeline.addPolicy({\n name: \"ClientApiVersionPolicy\",\n sendRequest: (req, next) => {\n // Use the apiVersion defined in request url directly\n // Append one if there is no apiVersion and we have one at client options\n const url = new URL(req.url);\n const defaultApiVersion = url.searchParams.get(\"api-version\") ?? apiVersion;\n // remove api-version from url\n url.searchParams.delete(\"api-version\");\n // add api-version to url\n req.url = `${url.toString()}${\n Array.from(url.searchParams.keys()).length > 0 ? \"&\" : \"?\"\n }api-version=${defaultApiVersion}`;\n return next(req);\n },\n });\n return { ...clientContext, apiVersion } as AgentsContext;\n}\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { AgentsContext as Client } from "./index.js";
|
|
2
|
-
import { Agent, _AgentsPagedResultAgent, AgentDeletionStatus, ThreadRun } from "../models/models.js";
|
|
2
|
+
import { Agent, _AgentsPagedResultAgent, AgentDeletionStatus, ThreadRun, ToolOutput } from "../models/models.js";
|
|
3
3
|
import { CreateThreadAndRunOptionalParams, DeleteAgentOptionalParams, UpdateAgentOptionalParams, GetAgentOptionalParams, ListAgentsOptionalParams, CreateAgentOptionalParams } from "./options.js";
|
|
4
4
|
import { PagedAsyncIterableIterator } from "../static-helpers/pagingHelpers.js";
|
|
5
5
|
import { StreamableMethod, PathUncheckedResponse } from "@azure-rest/core-client";
|
|
6
6
|
import { AgentEventMessageStream, AgentRunResponse } from "../models/streamingModels.js";
|
|
7
|
-
import { RunsCreateRunOptionalParams, RunsSubmitToolOutputsToRunOptionalParams } from "./runs/options.js";
|
|
7
|
+
import type { RunsCreateRunOptionalParams, RunsSubmitToolOutputsToRunOptionalParams } from "./runs/options.js";
|
|
8
8
|
export declare function _createThreadAndRunSend(context: Client, assistantId: string, options?: CreateThreadAndRunOptionalParams): StreamableMethod;
|
|
9
9
|
export declare function _createThreadAndRunDeserialize(result: PathUncheckedResponse): Promise<ThreadRun>;
|
|
10
10
|
/** Creates a new agent thread and immediately starts a run using that new thread. */
|
|
@@ -33,5 +33,5 @@ export declare function createAgent(context: Client, model: string, options?: Cr
|
|
|
33
33
|
export declare function createRunStreaming(context: Client, assistantId: string, threadId: string, options?: RunsCreateRunOptionalParams): Promise<AgentEventMessageStream>;
|
|
34
34
|
/** Create a thread and run and stream the events */
|
|
35
35
|
export declare function createThreadAndRunStreaming(context: Client, assistantId: string, options?: CreateThreadAndRunOptionalParams): Promise<AgentEventMessageStream>;
|
|
36
|
-
export declare function submitToolOutputsToRunStreaming(context: Client, threadId: string, runId: string, options?: RunsSubmitToolOutputsToRunOptionalParams): Promise<AgentEventMessageStream>;
|
|
36
|
+
export declare function submitToolOutputsToRunStreaming(context: Client, threadId: string, runId: string, toolOutputs: ToolOutput[], options?: RunsSubmitToolOutputsToRunOptionalParams): Promise<AgentEventMessageStream>;
|
|
37
37
|
//# sourceMappingURL=operations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../src/api/operations.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,IAAI,MAAM,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAIL,KAAK,EAEL,uBAAuB,EAEvB,mBAAmB,EAMnB,SAAS,
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../src/api/operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
import { __asyncGenerator, __asyncValues, __await } from "tslib";
|
|
4
|
-
import { toolResourcesSerializer, toolDefinitionUnionArraySerializer, agentsResponseFormatOptionSerializer, agentDeserializer, _agentsPagedResultAgentDeserializer, agentDeletionStatusDeserializer, agentThreadCreationOptionsSerializer, updateToolResourcesOptionsSerializer, truncationObjectSerializer, agentsToolChoiceOptionSerializer, threadRunDeserializer, } from "../models/models.js";
|
|
4
|
+
import { toolResourcesSerializer, toolDefinitionUnionArraySerializer, agentsResponseFormatOptionSerializer, agentDeserializer, _agentsPagedResultAgentDeserializer, agentDeletionStatusDeserializer, agentThreadCreationOptionsSerializer, updateToolResourcesOptionsSerializer, truncationObjectSerializer, agentsToolChoiceOptionSerializer, threadRunDeserializer, MessageStreamEvent, RunStepStreamEvent, RunStreamEvent, ThreadStreamEvent, runStepDeserializer, threadMessageDeserializer, } from "../models/models.js";
|
|
5
5
|
import { buildPagedAsyncIterator, } from "../static-helpers/pagingHelpers.js";
|
|
6
6
|
import { expandUrlTemplate } from "../static-helpers/urlTemplate.js";
|
|
7
7
|
import { createRestError, operationOptionsToRequestParameters, } from "@azure-rest/core-client";
|
|
8
|
-
import { MessageStreamEvent, RunStepStreamEvent, RunStreamEvent, ThreadStreamEvent, } from "../models/streamingModels.js";
|
|
9
8
|
import { createSseStream } from "@azure/core-sse";
|
|
10
9
|
import { isNodeLike } from "@azure/core-util";
|
|
11
10
|
import { logger } from "../logger.js";
|
|
12
|
-
import { _createRunSend } from "./runs/operations.js";
|
|
11
|
+
import { _createRunSend, _submitToolOutputsToRunSend } from "./runs/operations.js";
|
|
13
12
|
export function _createThreadAndRunSend(context, assistantId, options = { requestOptions: {} }) {
|
|
14
13
|
var _a, _b;
|
|
15
14
|
const path = expandUrlTemplate("/threads/runs{?api%2Dversion}", {
|
|
@@ -244,11 +243,14 @@ function toAsyncIterable(stream) {
|
|
|
244
243
|
function deserializeEventData(event) {
|
|
245
244
|
try {
|
|
246
245
|
const jsonData = JSON.parse(event.data);
|
|
246
|
+
if (Object.values(RunStreamEvent).includes(event.event)) {
|
|
247
|
+
return threadRunDeserializer(jsonData);
|
|
248
|
+
}
|
|
247
249
|
switch (event.event) {
|
|
248
250
|
case MessageStreamEvent.ThreadMessageDelta:
|
|
249
|
-
return jsonData;
|
|
251
|
+
return threadMessageDeserializer(jsonData);
|
|
250
252
|
case RunStepStreamEvent.ThreadRunStepDelta:
|
|
251
|
-
return jsonData;
|
|
253
|
+
return runStepDeserializer(jsonData);
|
|
252
254
|
default: {
|
|
253
255
|
for (const { events } of handlers) {
|
|
254
256
|
if (events.includes(event.event)) {
|
|
@@ -282,18 +284,16 @@ async function processStream(streamResponse) {
|
|
|
282
284
|
}
|
|
283
285
|
/** Create a run and stream the events */
|
|
284
286
|
export async function createRunStreaming(context, assistantId, threadId, options = { requestOptions: {} }) {
|
|
285
|
-
options
|
|
286
|
-
return processStream(_createRunSend(context, threadId, assistantId,
|
|
287
|
+
const streamOptions = Object.assign(Object.assign({}, options), { stream: true });
|
|
288
|
+
return processStream(_createRunSend(context, threadId, assistantId, streamOptions));
|
|
287
289
|
}
|
|
288
290
|
/** Create a thread and run and stream the events */
|
|
289
291
|
export async function createThreadAndRunStreaming(context, assistantId, options = { requestOptions: {} }) {
|
|
290
|
-
options
|
|
291
|
-
return processStream(_createThreadAndRunSend(context, assistantId,
|
|
292
|
+
const streamOptions = Object.assign(Object.assign({}, options), { stream: true });
|
|
293
|
+
return processStream(_createThreadAndRunSend(context, assistantId, streamOptions));
|
|
292
294
|
}
|
|
293
|
-
export async function submitToolOutputsToRunStreaming(context, threadId, runId, options = { requestOptions: {} }) {
|
|
294
|
-
options
|
|
295
|
-
return processStream(context
|
|
296
|
-
.path("/threads/{threadId}/runs/{runId}/submit_tool_outputs", threadId, runId)
|
|
297
|
-
.post(options));
|
|
295
|
+
export async function submitToolOutputsToRunStreaming(context, threadId, runId, toolOutputs, options = { requestOptions: {} }) {
|
|
296
|
+
const streamOptions = Object.assign(Object.assign({}, options), { stream: true });
|
|
297
|
+
return processStream(_submitToolOutputsToRunSend(context, threadId, runId, toolOutputs, streamOptions));
|
|
298
298
|
}
|
|
299
299
|
//# sourceMappingURL=operations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../src/api/operations.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { AgentsContext as Client } from \"./index.js\";\nimport {\n toolResourcesSerializer,\n toolDefinitionUnionArraySerializer,\n agentsResponseFormatOptionSerializer,\n Agent,\n agentDeserializer,\n _AgentsPagedResultAgent,\n _agentsPagedResultAgentDeserializer,\n AgentDeletionStatus,\n agentDeletionStatusDeserializer,\n agentThreadCreationOptionsSerializer,\n updateToolResourcesOptionsSerializer,\n truncationObjectSerializer,\n agentsToolChoiceOptionSerializer,\n ThreadRun,\n threadRunDeserializer,\n} from \"../models/models.js\";\nimport {\n CreateThreadAndRunOptionalParams,\n DeleteAgentOptionalParams,\n UpdateAgentOptionalParams,\n GetAgentOptionalParams,\n ListAgentsOptionalParams,\n CreateAgentOptionalParams,\n} from \"./options.js\";\nimport {\n PagedAsyncIterableIterator,\n buildPagedAsyncIterator,\n} from \"../static-helpers/pagingHelpers.js\";\nimport { expandUrlTemplate } from \"../static-helpers/urlTemplate.js\";\nimport {\n StreamableMethod,\n PathUncheckedResponse,\n createRestError,\n operationOptionsToRequestParameters,\n} from \"@azure-rest/core-client\";\nimport {\n AgentEventMessage,\n AgentEventMessageStream,\n AgentEventStreamData,\n AgentRunResponse,\n MessageStreamEvent,\n RunStepStreamEvent,\n RunStreamEvent,\n ThreadStreamEvent,\n} from \"../models/streamingModels.js\";\nimport {\n RunsCreateRunOptionalParams,\n RunsSubmitToolOutputsToRunOptionalParams,\n} from \"./runs/options.js\";\nimport { EventMessageStream, EventMessage, createSseStream } from \"@azure/core-sse\";\nimport { isNodeLike } from \"@azure/core-util\";\nimport { IncomingMessage } from \"http\";\nimport { logger } from \"../logger.js\";\nimport { _createRunSend } from \"./runs/operations.js\";\n\nexport function _createThreadAndRunSend(\n context: Client,\n assistantId: string,\n options: CreateThreadAndRunOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/threads/runs{?api%2Dversion}\",\n {\n \"api%2Dversion\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).post({\n ...operationOptionsToRequestParameters(options),\n contentType: \"application/json\",\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n body: {\n assistant_id: assistantId,\n thread: !options?.thread\n ? options?.thread\n : agentThreadCreationOptionsSerializer(options?.thread),\n model: options?.model,\n instructions: options?.instructions,\n tools: !options?.tools ? options?.tools : toolDefinitionUnionArraySerializer(options?.tools),\n tool_resources: !options?.toolResources\n ? options?.toolResources\n : updateToolResourcesOptionsSerializer(options?.toolResources),\n stream: options?.stream,\n temperature: options?.temperature,\n top_p: options?.topP,\n max_prompt_tokens: options?.maxPromptTokens,\n max_completion_tokens: options?.maxCompletionTokens,\n truncation_strategy: !options?.truncationStrategy\n ? options?.truncationStrategy\n : truncationObjectSerializer(options?.truncationStrategy),\n tool_choice: !options?.toolChoice\n ? options?.toolChoice\n : agentsToolChoiceOptionSerializer(options?.toolChoice),\n response_format: !options?.responseFormat\n ? options?.responseFormat\n : agentsResponseFormatOptionSerializer(options?.responseFormat),\n parallel_tool_calls: options?.parallelToolCalls,\n metadata: options?.metadata,\n },\n });\n}\n\nexport async function _createThreadAndRunDeserialize(\n result: PathUncheckedResponse,\n): Promise<ThreadRun> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return threadRunDeserializer(result.body);\n}\n\n/** Creates a new agent thread and immediately starts a run using that new thread. */\nexport function createThreadAndRun(\n context: Client,\n assistantId: string,\n options: CreateThreadAndRunOptionalParams = { requestOptions: {} },\n): AgentRunResponse {\n async function executeCreateThreadAndRun(): Promise<ThreadRun> {\n const result = await _createThreadAndRunSend(context, assistantId, options);\n return _createThreadAndRunDeserialize(result);\n }\n\n return {\n then: function (onFulfilled, onRejected) {\n return executeCreateThreadAndRun().then(onFulfilled, onRejected).catch(onRejected);\n },\n async stream(): Promise<AgentEventMessageStream> {\n return createThreadAndRunStreaming(context, assistantId, options);\n },\n };\n}\n\nexport function _deleteAgentSend(\n context: Client,\n assistantId: string,\n options: DeleteAgentOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/assistants/{assistantId}{?api%2Dversion}\",\n {\n assistantId: assistantId,\n \"api%2Dversion\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).delete({\n ...operationOptionsToRequestParameters(options),\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n });\n}\n\nexport async function _deleteAgentDeserialize(\n result: PathUncheckedResponse,\n): Promise<AgentDeletionStatus> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return agentDeletionStatusDeserializer(result.body);\n}\n\n/** Deletes an agent. */\nexport async function deleteAgent(\n context: Client,\n assistantId: string,\n options: DeleteAgentOptionalParams = { requestOptions: {} },\n): Promise<AgentDeletionStatus> {\n const result = await _deleteAgentSend(context, assistantId, options);\n return _deleteAgentDeserialize(result);\n}\n\nexport function _updateAgentSend(\n context: Client,\n assistantId: string,\n options: UpdateAgentOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/assistants/{assistantId}{?api%2Dversion}\",\n {\n assistantId: assistantId,\n \"api%2Dversion\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).post({\n ...operationOptionsToRequestParameters(options),\n contentType: \"application/json\",\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n body: {\n model: options?.model,\n name: options?.name,\n description: options?.description,\n instructions: options?.instructions,\n tools: !options?.tools ? options?.tools : toolDefinitionUnionArraySerializer(options?.tools),\n tool_resources: !options?.toolResources\n ? options?.toolResources\n : toolResourcesSerializer(options?.toolResources),\n temperature: options?.temperature,\n top_p: options?.topP,\n response_format: !options?.responseFormat\n ? options?.responseFormat\n : agentsResponseFormatOptionSerializer(options?.responseFormat),\n metadata: options?.metadata,\n },\n });\n}\n\nexport async function _updateAgentDeserialize(result: PathUncheckedResponse): Promise<Agent> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return agentDeserializer(result.body);\n}\n\n/** Modifies an existing agent. */\nexport async function updateAgent(\n context: Client,\n assistantId: string,\n options: UpdateAgentOptionalParams = { requestOptions: {} },\n): Promise<Agent> {\n const result = await _updateAgentSend(context, assistantId, options);\n return _updateAgentDeserialize(result);\n}\n\nexport function _getAgentSend(\n context: Client,\n assistantId: string,\n options: GetAgentOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/assistants/{assistantId}{?api%2Dversion}\",\n {\n assistantId: assistantId,\n \"api%2Dversion\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).get({\n ...operationOptionsToRequestParameters(options),\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n });\n}\n\nexport async function _getAgentDeserialize(result: PathUncheckedResponse): Promise<Agent> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return agentDeserializer(result.body);\n}\n\n/** Retrieves an existing agent. */\nexport async function getAgent(\n context: Client,\n assistantId: string,\n options: GetAgentOptionalParams = { requestOptions: {} },\n): Promise<Agent> {\n const result = await _getAgentSend(context, assistantId, options);\n return _getAgentDeserialize(result);\n}\n\nexport function _listAgentsSend(\n context: Client,\n options: ListAgentsOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/assistants{?api%2Dversion,limit,order,after,before}\",\n {\n \"api%2Dversion\": context.apiVersion,\n limit: options?.limit,\n order: options?.order,\n after: options?.after,\n before: options?.before,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).get({\n ...operationOptionsToRequestParameters(options),\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n });\n}\n\nexport async function _listAgentsDeserialize(\n result: PathUncheckedResponse,\n): Promise<_AgentsPagedResultAgent> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return _agentsPagedResultAgentDeserializer(result.body);\n}\n\n/** Gets a list of agents that were previously created. */\nexport function listAgents(\n context: Client,\n options: ListAgentsOptionalParams = { requestOptions: {} },\n): PagedAsyncIterableIterator<Agent> {\n return buildPagedAsyncIterator(\n context,\n () => _listAgentsSend(context, options),\n _listAgentsDeserialize,\n [\"200\"],\n { itemName: \"data\" },\n );\n}\n\nexport function _createAgentSend(\n context: Client,\n model: string,\n options: CreateAgentOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/assistants{?api%2Dversion}\",\n {\n \"api%2Dversion\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).post({\n ...operationOptionsToRequestParameters(options),\n contentType: \"application/json\",\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n body: {\n model: model,\n name: options?.name,\n description: options?.description,\n instructions: options?.instructions,\n tools: !options?.tools ? options?.tools : toolDefinitionUnionArraySerializer(options?.tools),\n tool_resources: !options?.toolResources\n ? options?.toolResources\n : toolResourcesSerializer(options?.toolResources),\n temperature: options?.temperature,\n top_p: options?.topP,\n response_format: !options?.responseFormat\n ? options?.responseFormat\n : agentsResponseFormatOptionSerializer(options?.responseFormat),\n metadata: options?.metadata,\n },\n });\n}\n\nexport async function _createAgentDeserialize(result: PathUncheckedResponse): Promise<Agent> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return agentDeserializer(result.body);\n}\n\n/** Creates a new agent. */\nexport async function createAgent(\n context: Client,\n model: string,\n options: CreateAgentOptionalParams = { requestOptions: {} },\n): Promise<Agent> {\n const result = await _createAgentSend(context, model, options);\n return _createAgentDeserialize(result);\n}\nconst handlers = [\n { events: Object.values(ThreadStreamEvent) as string[] },\n { events: Object.values(RunStreamEvent) as string[] },\n { events: Object.values(RunStepStreamEvent) as string[] },\n { events: Object.values(MessageStreamEvent) as string[] },\n];\n\nfunction createAgentStream(stream: EventMessageStream): AgentEventMessageStream {\n const asyncIterator = toAsyncIterable(stream);\n const asyncDisposable = stream as AsyncDisposable;\n return Object.assign(asyncIterator, asyncDisposable);\n}\n\nasync function* toAsyncIterable(stream: EventMessageStream): AsyncIterable<AgentEventMessage> {\n for await (const event of stream) {\n const data = deserializeEventData(event);\n yield { data: data, event: event.event };\n }\n}\n\nfunction deserializeEventData(event: EventMessage): AgentEventStreamData {\n try {\n const jsonData = JSON.parse(event.data);\n switch (event.event) {\n case MessageStreamEvent.ThreadMessageDelta:\n return jsonData;\n case RunStepStreamEvent.ThreadRunStepDelta:\n return jsonData;\n default: {\n for (const { events } of handlers) {\n if (events.includes(event.event)) {\n return jsonData;\n }\n }\n\n return jsonData;\n }\n }\n } catch (ex) {\n logger.error(`Failed to parse event data ${event.event} - error: ${ex}`);\n return event.data;\n }\n}\n\nasync function processStream(streamResponse: StreamableMethod): Promise<AgentEventMessageStream> {\n const expectedStatuses = [\"200\"];\n const result = isNodeLike\n ? await streamResponse.asNodeStream()\n : await streamResponse.asBrowserStream();\n\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n if (!result.body) {\n throw new Error(\"No body in response\");\n }\n\n const stream = isNodeLike\n ? createSseStream(result.body as IncomingMessage)\n : createSseStream(result.body as ReadableStream);\n return createAgentStream(stream);\n}\n\n/** Create a run and stream the events */\nexport async function createRunStreaming(\n context: Client,\n assistantId: string,\n threadId: string,\n options: RunsCreateRunOptionalParams = { requestOptions: {} },\n): Promise<AgentEventMessageStream> {\n options.stream = true;\n\n return processStream(_createRunSend(context, threadId, assistantId, options));\n}\n\n/** Create a thread and run and stream the events */\nexport async function createThreadAndRunStreaming(\n context: Client,\n assistantId: string,\n options: CreateThreadAndRunOptionalParams = { requestOptions: {} },\n): Promise<AgentEventMessageStream> {\n options.stream = true;\n return processStream(_createThreadAndRunSend(context, assistantId, options));\n}\n\nexport async function submitToolOutputsToRunStreaming(\n context: Client,\n threadId: string,\n runId: string,\n options: RunsSubmitToolOutputsToRunOptionalParams = { requestOptions: {} },\n): Promise<AgentEventMessageStream> {\n options.stream = true;\n\n return processStream(\n context\n .path(\"/threads/{threadId}/runs/{runId}/submit_tool_outputs\", threadId, runId)\n .post(options),\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../src/api/operations.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { AgentsContext as Client } from \"./index.js\";\nimport {\n toolResourcesSerializer,\n toolDefinitionUnionArraySerializer,\n agentsResponseFormatOptionSerializer,\n Agent,\n agentDeserializer,\n _AgentsPagedResultAgent,\n _agentsPagedResultAgentDeserializer,\n AgentDeletionStatus,\n agentDeletionStatusDeserializer,\n agentThreadCreationOptionsSerializer,\n updateToolResourcesOptionsSerializer,\n truncationObjectSerializer,\n agentsToolChoiceOptionSerializer,\n ThreadRun,\n threadRunDeserializer,\n MessageStreamEvent,\n RunStepStreamEvent,\n RunStreamEvent,\n ThreadStreamEvent,\n runStepDeserializer,\n threadMessageDeserializer,\n ToolOutput,\n} from \"../models/models.js\";\nimport {\n CreateThreadAndRunOptionalParams,\n DeleteAgentOptionalParams,\n UpdateAgentOptionalParams,\n GetAgentOptionalParams,\n ListAgentsOptionalParams,\n CreateAgentOptionalParams,\n} from \"./options.js\";\nimport {\n PagedAsyncIterableIterator,\n buildPagedAsyncIterator,\n} from \"../static-helpers/pagingHelpers.js\";\nimport { expandUrlTemplate } from \"../static-helpers/urlTemplate.js\";\nimport {\n StreamableMethod,\n PathUncheckedResponse,\n createRestError,\n operationOptionsToRequestParameters,\n} from \"@azure-rest/core-client\";\nimport {\n AgentEventMessage,\n AgentEventMessageStream,\n AgentEventStreamData,\n AgentRunResponse,\n} from \"../models/streamingModels.js\";\nimport type {\n RunsCreateRunOptionalParams,\n RunsSubmitToolOutputsToRunOptionalParams,\n} from \"./runs/options.js\";\nimport { EventMessageStream, EventMessage, createSseStream } from \"@azure/core-sse\";\nimport { isNodeLike } from \"@azure/core-util\";\nimport { IncomingMessage } from \"http\";\nimport { logger } from \"../logger.js\";\nimport { _createRunSend, _submitToolOutputsToRunSend } from \"./runs/operations.js\";\n\nexport function _createThreadAndRunSend(\n context: Client,\n assistantId: string,\n options: CreateThreadAndRunOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/threads/runs{?api%2Dversion}\",\n {\n \"api%2Dversion\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).post({\n ...operationOptionsToRequestParameters(options),\n contentType: \"application/json\",\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n body: {\n assistant_id: assistantId,\n thread: !options?.thread\n ? options?.thread\n : agentThreadCreationOptionsSerializer(options?.thread),\n model: options?.model,\n instructions: options?.instructions,\n tools: !options?.tools ? options?.tools : toolDefinitionUnionArraySerializer(options?.tools),\n tool_resources: !options?.toolResources\n ? options?.toolResources\n : updateToolResourcesOptionsSerializer(options?.toolResources),\n stream: options?.stream,\n temperature: options?.temperature,\n top_p: options?.topP,\n max_prompt_tokens: options?.maxPromptTokens,\n max_completion_tokens: options?.maxCompletionTokens,\n truncation_strategy: !options?.truncationStrategy\n ? options?.truncationStrategy\n : truncationObjectSerializer(options?.truncationStrategy),\n tool_choice: !options?.toolChoice\n ? options?.toolChoice\n : agentsToolChoiceOptionSerializer(options?.toolChoice),\n response_format: !options?.responseFormat\n ? options?.responseFormat\n : agentsResponseFormatOptionSerializer(options?.responseFormat),\n parallel_tool_calls: options?.parallelToolCalls,\n metadata: options?.metadata,\n },\n });\n}\n\nexport async function _createThreadAndRunDeserialize(\n result: PathUncheckedResponse,\n): Promise<ThreadRun> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return threadRunDeserializer(result.body);\n}\n\n/** Creates a new agent thread and immediately starts a run using that new thread. */\nexport function createThreadAndRun(\n context: Client,\n assistantId: string,\n options: CreateThreadAndRunOptionalParams = { requestOptions: {} },\n): AgentRunResponse {\n async function executeCreateThreadAndRun(): Promise<ThreadRun> {\n const result = await _createThreadAndRunSend(context, assistantId, options);\n return _createThreadAndRunDeserialize(result);\n }\n\n return {\n then: function (onFulfilled, onRejected) {\n return executeCreateThreadAndRun().then(onFulfilled, onRejected).catch(onRejected);\n },\n async stream(): Promise<AgentEventMessageStream> {\n return createThreadAndRunStreaming(context, assistantId, options);\n },\n };\n}\n\nexport function _deleteAgentSend(\n context: Client,\n assistantId: string,\n options: DeleteAgentOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/assistants/{assistantId}{?api%2Dversion}\",\n {\n assistantId: assistantId,\n \"api%2Dversion\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).delete({\n ...operationOptionsToRequestParameters(options),\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n });\n}\n\nexport async function _deleteAgentDeserialize(\n result: PathUncheckedResponse,\n): Promise<AgentDeletionStatus> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return agentDeletionStatusDeserializer(result.body);\n}\n\n/** Deletes an agent. */\nexport async function deleteAgent(\n context: Client,\n assistantId: string,\n options: DeleteAgentOptionalParams = { requestOptions: {} },\n): Promise<AgentDeletionStatus> {\n const result = await _deleteAgentSend(context, assistantId, options);\n return _deleteAgentDeserialize(result);\n}\n\nexport function _updateAgentSend(\n context: Client,\n assistantId: string,\n options: UpdateAgentOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/assistants/{assistantId}{?api%2Dversion}\",\n {\n assistantId: assistantId,\n \"api%2Dversion\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).post({\n ...operationOptionsToRequestParameters(options),\n contentType: \"application/json\",\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n body: {\n model: options?.model,\n name: options?.name,\n description: options?.description,\n instructions: options?.instructions,\n tools: !options?.tools ? options?.tools : toolDefinitionUnionArraySerializer(options?.tools),\n tool_resources: !options?.toolResources\n ? options?.toolResources\n : toolResourcesSerializer(options?.toolResources),\n temperature: options?.temperature,\n top_p: options?.topP,\n response_format: !options?.responseFormat\n ? options?.responseFormat\n : agentsResponseFormatOptionSerializer(options?.responseFormat),\n metadata: options?.metadata,\n },\n });\n}\n\nexport async function _updateAgentDeserialize(result: PathUncheckedResponse): Promise<Agent> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return agentDeserializer(result.body);\n}\n\n/** Modifies an existing agent. */\nexport async function updateAgent(\n context: Client,\n assistantId: string,\n options: UpdateAgentOptionalParams = { requestOptions: {} },\n): Promise<Agent> {\n const result = await _updateAgentSend(context, assistantId, options);\n return _updateAgentDeserialize(result);\n}\n\nexport function _getAgentSend(\n context: Client,\n assistantId: string,\n options: GetAgentOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/assistants/{assistantId}{?api%2Dversion}\",\n {\n assistantId: assistantId,\n \"api%2Dversion\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).get({\n ...operationOptionsToRequestParameters(options),\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n });\n}\n\nexport async function _getAgentDeserialize(result: PathUncheckedResponse): Promise<Agent> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return agentDeserializer(result.body);\n}\n\n/** Retrieves an existing agent. */\nexport async function getAgent(\n context: Client,\n assistantId: string,\n options: GetAgentOptionalParams = { requestOptions: {} },\n): Promise<Agent> {\n const result = await _getAgentSend(context, assistantId, options);\n return _getAgentDeserialize(result);\n}\n\nexport function _listAgentsSend(\n context: Client,\n options: ListAgentsOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/assistants{?api%2Dversion,limit,order,after,before}\",\n {\n \"api%2Dversion\": context.apiVersion,\n limit: options?.limit,\n order: options?.order,\n after: options?.after,\n before: options?.before,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).get({\n ...operationOptionsToRequestParameters(options),\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n });\n}\n\nexport async function _listAgentsDeserialize(\n result: PathUncheckedResponse,\n): Promise<_AgentsPagedResultAgent> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return _agentsPagedResultAgentDeserializer(result.body);\n}\n\n/** Gets a list of agents that were previously created. */\nexport function listAgents(\n context: Client,\n options: ListAgentsOptionalParams = { requestOptions: {} },\n): PagedAsyncIterableIterator<Agent> {\n return buildPagedAsyncIterator(\n context,\n () => _listAgentsSend(context, options),\n _listAgentsDeserialize,\n [\"200\"],\n { itemName: \"data\" },\n );\n}\n\nexport function _createAgentSend(\n context: Client,\n model: string,\n options: CreateAgentOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/assistants{?api%2Dversion}\",\n {\n \"api%2Dversion\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).post({\n ...operationOptionsToRequestParameters(options),\n contentType: \"application/json\",\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n body: {\n model: model,\n name: options?.name,\n description: options?.description,\n instructions: options?.instructions,\n tools: !options?.tools ? options?.tools : toolDefinitionUnionArraySerializer(options?.tools),\n tool_resources: !options?.toolResources\n ? options?.toolResources\n : toolResourcesSerializer(options?.toolResources),\n temperature: options?.temperature,\n top_p: options?.topP,\n response_format: !options?.responseFormat\n ? options?.responseFormat\n : agentsResponseFormatOptionSerializer(options?.responseFormat),\n metadata: options?.metadata,\n },\n });\n}\n\nexport async function _createAgentDeserialize(result: PathUncheckedResponse): Promise<Agent> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return agentDeserializer(result.body);\n}\n\n/** Creates a new agent. */\nexport async function createAgent(\n context: Client,\n model: string,\n options: CreateAgentOptionalParams = { requestOptions: {} },\n): Promise<Agent> {\n const result = await _createAgentSend(context, model, options);\n return _createAgentDeserialize(result);\n}\nconst handlers = [\n { events: Object.values(ThreadStreamEvent) as string[] },\n { events: Object.values(RunStreamEvent) as string[] },\n { events: Object.values(RunStepStreamEvent) as string[] },\n { events: Object.values(MessageStreamEvent) as string[] },\n];\n\nfunction createAgentStream(stream: EventMessageStream): AgentEventMessageStream {\n const asyncIterator = toAsyncIterable(stream);\n const asyncDisposable = stream as AsyncDisposable;\n return Object.assign(asyncIterator, asyncDisposable);\n}\n\nasync function* toAsyncIterable(stream: EventMessageStream): AsyncIterable<AgentEventMessage> {\n for await (const event of stream) {\n const data = deserializeEventData(event);\n yield { data: data, event: event.event };\n }\n}\n\nfunction deserializeEventData(event: EventMessage): AgentEventStreamData {\n try {\n const jsonData = JSON.parse(event.data);\n if (Object.values(RunStreamEvent).includes(event.event as RunStreamEvent)) {\n return threadRunDeserializer(jsonData);\n }\n switch (event.event) {\n case MessageStreamEvent.ThreadMessageDelta:\n return threadMessageDeserializer(jsonData);\n case RunStepStreamEvent.ThreadRunStepDelta:\n return runStepDeserializer(jsonData);\n default: {\n for (const { events } of handlers) {\n if (events.includes(event.event)) {\n return jsonData;\n }\n }\n\n return jsonData;\n }\n }\n } catch (ex) {\n logger.error(`Failed to parse event data ${event.event} - error: ${ex}`);\n return event.data;\n }\n}\n\nasync function processStream(streamResponse: StreamableMethod): Promise<AgentEventMessageStream> {\n const expectedStatuses = [\"200\"];\n const result = isNodeLike\n ? await streamResponse.asNodeStream()\n : await streamResponse.asBrowserStream();\n\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n if (!result.body) {\n throw new Error(\"No body in response\");\n }\n\n const stream = isNodeLike\n ? createSseStream(result.body as IncomingMessage)\n : createSseStream(result.body as ReadableStream);\n return createAgentStream(stream);\n}\n\n/** Create a run and stream the events */\nexport async function createRunStreaming(\n context: Client,\n assistantId: string,\n threadId: string,\n options: RunsCreateRunOptionalParams = { requestOptions: {} },\n): Promise<AgentEventMessageStream> {\n const streamOptions = { ...options, stream: true };\n\n return processStream(_createRunSend(context, threadId, assistantId, streamOptions));\n}\n\n/** Create a thread and run and stream the events */\nexport async function createThreadAndRunStreaming(\n context: Client,\n assistantId: string,\n options: CreateThreadAndRunOptionalParams = { requestOptions: {} },\n): Promise<AgentEventMessageStream> {\n const streamOptions = { ...options, stream: true };\n return processStream(_createThreadAndRunSend(context, assistantId, streamOptions));\n}\n\nexport async function submitToolOutputsToRunStreaming(\n context: Client,\n threadId: string,\n runId: string,\n toolOutputs: ToolOutput[],\n options: RunsSubmitToolOutputsToRunOptionalParams = { requestOptions: {} },\n): Promise<AgentEventMessageStream> {\n const streamOptions = { ...options, stream: true };\n\n return processStream(\n _submitToolOutputsToRunSend(context, threadId, runId, toolOutputs, streamOptions),\n );\n}\n"]}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import type
|
|
2
|
-
|
|
1
|
+
import { type PollerLike, type OperationState, type OperationStatus } from "@azure/core-lro";
|
|
2
|
+
/**
|
|
3
|
+
* Deserializes the state from a serialized string
|
|
4
|
+
*/
|
|
5
|
+
export declare function deserializeState<T>(serializedState: string): OperationState<T>;
|
|
6
|
+
export declare function createPoller<T>({ initOperation, pollOperation, getOperationStatus, getOperationError, intervalInMs, resumeFrom, }: {
|
|
3
7
|
initOperation: () => Promise<T>;
|
|
4
8
|
pollOperation: (currentResult: T) => Promise<T>;
|
|
5
9
|
getOperationStatus: (result: T) => OperationStatus;
|
|
6
10
|
getOperationError?: (result: T) => Error | undefined;
|
|
7
11
|
intervalInMs?: number;
|
|
12
|
+
resumeFrom?: string;
|
|
8
13
|
}): PollerLike<OperationState<T>, T>;
|
|
9
14
|
//# sourceMappingURL=poller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poller.d.ts","sourceRoot":"","sources":["../../../src/api/poller.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"poller.d.ts","sourceRoot":"","sources":["../../../src/api/poller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAK7F;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAM9E;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAC9B,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,UAAU,GACX,EAAE;IACD,aAAa,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,aAAa,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAChD,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,eAAe,CAAC;IACnD,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,GAAG,SAAS,CAAC;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAwJnC"}
|
|
@@ -2,15 +2,33 @@
|
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
import { delay } from "@azure/core-util";
|
|
4
4
|
const DEFAULT_POLL_INTERVAL_IN_MS = 1000;
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Deserializes the state from a serialized string
|
|
7
|
+
*/
|
|
8
|
+
export function deserializeState(serializedState) {
|
|
9
|
+
try {
|
|
10
|
+
return JSON.parse(serializedState).state;
|
|
11
|
+
}
|
|
12
|
+
catch (e) {
|
|
13
|
+
throw new Error(`Unable to deserialize input state: ${serializedState}`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function createPoller({ initOperation, pollOperation, getOperationStatus, getOperationError, intervalInMs, resumeFrom, }) {
|
|
17
|
+
let statePromise;
|
|
6
18
|
let state;
|
|
7
|
-
|
|
8
|
-
state =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
19
|
+
if (resumeFrom) {
|
|
20
|
+
state = deserializeState(resumeFrom);
|
|
21
|
+
statePromise = Promise.resolve(state);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
statePromise = initOperation().then((result) => {
|
|
25
|
+
state = {
|
|
26
|
+
result,
|
|
27
|
+
status: getOperationStatus(result),
|
|
28
|
+
};
|
|
29
|
+
return state;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
14
32
|
let resultPromise;
|
|
15
33
|
const abortController = new AbortController();
|
|
16
34
|
const handlers = new Map();
|
|
@@ -91,7 +109,7 @@ export function createPoller({ initOperation, pollOperation, getOperationStatus,
|
|
|
91
109
|
var _a, _b, _c;
|
|
92
110
|
// Check state before polling
|
|
93
111
|
await statePromise;
|
|
94
|
-
if (!state
|
|
112
|
+
if (!state) {
|
|
95
113
|
throw new Error("Poller is not initialized");
|
|
96
114
|
}
|
|
97
115
|
switch (state.status) {
|
|
@@ -106,6 +124,10 @@ export function createPoller({ initOperation, pollOperation, getOperationStatus,
|
|
|
106
124
|
if ((_b = pollOptions === null || pollOptions === void 0 ? void 0 : pollOptions.abortSignal) === null || _b === void 0 ? void 0 : _b.aborted) {
|
|
107
125
|
throw new Error("Operation aborted");
|
|
108
126
|
}
|
|
127
|
+
// Make sure we have a result to poll with
|
|
128
|
+
if (!state.result) {
|
|
129
|
+
throw new Error("Cannot poll with undefined result");
|
|
130
|
+
}
|
|
109
131
|
const result = await pollOperation(state.result);
|
|
110
132
|
state = {
|
|
111
133
|
result,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poller.js","sourceRoot":"","sources":["../../../src/api/poller.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { delay } from \"@azure/core-util\";\nimport type { PollerLike, OperationState, OperationStatus } from \"@azure/core-lro\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\n\nconst DEFAULT_POLL_INTERVAL_IN_MS = 1000;\n\nexport function createPoller<T>({\n initOperation,\n pollOperation,\n getOperationStatus,\n getOperationError,\n intervalInMs,\n}: {\n initOperation: () => Promise<T>;\n pollOperation: (currentResult: T) => Promise<T>;\n getOperationStatus: (result: T) => OperationStatus;\n getOperationError?: (result: T) => Error | undefined;\n intervalInMs?: number;\n}): PollerLike<OperationState<T>, T> {\n let state: OperationState<T>;\n const statePromise = initOperation().then((result) => {\n state = {\n result,\n status: getOperationStatus(result),\n };\n return state;\n });\n\n let resultPromise: Promise<T> | undefined;\n const abortController = new AbortController();\n type Handler = (state: OperationState<T>) => void;\n const handlers = new Map<symbol, Handler>();\n const handleProgressEvents = async (): Promise<void> => handlers.forEach((h) => h(state));\n const currentPollIntervalInMs = intervalInMs ?? DEFAULT_POLL_INTERVAL_IN_MS;\n\n const poller: PollerLike<OperationState<T>, T> = {\n get operationState(): OperationState<T> | undefined {\n return state;\n },\n get result(): T | undefined {\n return state?.result;\n },\n get isDone(): boolean {\n return [\"succeeded\", \"failed\", \"canceled\"].includes(state?.status ?? \"\");\n },\n onProgress: (callback: (state: OperationState<T>) => void) => {\n const s = Symbol();\n handlers.set(s, callback);\n return () => handlers.delete(s);\n },\n serialize: async () => {\n await statePromise;\n return JSON.stringify({\n state,\n });\n },\n submitted: async () => {\n await statePromise;\n },\n pollUntilDone: async (pollOptions?: { abortSignal?: AbortSignalLike }) => {\n resultPromise ??= (async () => {\n await statePromise;\n if (!state) {\n throw new Error(\"Poller is not initialized\");\n }\n const { abortSignal: inputAbortSignal } = pollOptions || {};\n function abortListener(): void {\n abortController.abort();\n }\n const abortSignal = abortController.signal;\n if (inputAbortSignal?.aborted) {\n abortController.abort();\n } else if (!abortSignal.aborted) {\n inputAbortSignal?.addEventListener(\"abort\", abortListener, { once: true });\n }\n\n try {\n if (!poller.isDone) {\n await poller.poll({ abortSignal });\n while (!poller.isDone) {\n await delay(currentPollIntervalInMs, { abortSignal });\n await poller.poll({ abortSignal });\n }\n }\n } finally {\n inputAbortSignal?.removeEventListener(\"abort\", abortListener);\n }\n switch (state.status) {\n case \"succeeded\":\n return poller.result as T;\n case \"canceled\":\n throw new Error(\"Operation cancelled\");\n case \"failed\":\n throw state.error ?? new Error(\"Operation failed\");\n case \"notStarted\":\n case \"running\":\n throw new Error(\"Polling completed without succeeding or failing\");\n }\n })().finally(() => {\n resultPromise = undefined;\n });\n return resultPromise;\n },\n\n async poll(pollOptions?: { abortSignal?: AbortSignalLike }): Promise<OperationState<T>> {\n // Check state before polling\n await statePromise;\n if (!state || !state.result) {\n throw new Error(\"Poller is not initialized\");\n }\n switch (state.status) {\n case \"succeeded\":\n return state;\n case \"canceled\":\n throw new Error(\"Operation was canceled\");\n case \"failed\":\n throw state.error ?? new Error(\"Operation failed\");\n }\n\n // Poll\n if (pollOptions?.abortSignal?.aborted) {\n throw new Error(\"Operation aborted\");\n }\n const result = await pollOperation(state.result);\n state = {\n result,\n status: getOperationStatus(result),\n error: getOperationError ? getOperationError(result) : undefined,\n };\n\n await handleProgressEvents();\n switch (state.status) {\n case \"canceled\":\n throw new Error(\"Operation was canceled\");\n case \"failed\":\n throw state.error ?? new Error(\"Operation failed\");\n }\n return state;\n },\n\n then<T1 = T, T2 = never>(\n onfulfilled?: ((value: T) => T1 | PromiseLike<T1>) | undefined | null,\n onrejected?: ((reason: any) => T2 | PromiseLike<T2>) | undefined | null,\n ): Promise<T1 | T2> {\n return poller.pollUntilDone().then(onfulfilled, onrejected);\n },\n catch<T2 = never>(\n onrejected?: ((reason: any) => T2 | PromiseLike<T2>) | undefined | null,\n ): Promise<T | T2> {\n return poller.pollUntilDone().catch(onrejected);\n },\n finally(onfinally?: (() => void) | undefined | null): Promise<T> {\n return poller.pollUntilDone().finally(onfinally);\n },\n [Symbol.toStringTag]: \"Poller\",\n };\n return poller;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"poller.js","sourceRoot":"","sources":["../../../src/api/poller.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { delay } from \"@azure/core-util\";\nimport { type PollerLike, type OperationState, type OperationStatus } from \"@azure/core-lro\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\n\nconst DEFAULT_POLL_INTERVAL_IN_MS = 1000;\n\n/**\n * Deserializes the state from a serialized string\n */\nexport function deserializeState<T>(serializedState: string): OperationState<T> {\n try {\n return JSON.parse(serializedState).state;\n } catch (e) {\n throw new Error(`Unable to deserialize input state: ${serializedState}`);\n }\n}\n\nexport function createPoller<T>({\n initOperation,\n pollOperation,\n getOperationStatus,\n getOperationError,\n intervalInMs,\n resumeFrom,\n}: {\n initOperation: () => Promise<T>;\n pollOperation: (currentResult: T) => Promise<T>;\n getOperationStatus: (result: T) => OperationStatus;\n getOperationError?: (result: T) => Error | undefined;\n intervalInMs?: number;\n resumeFrom?: string;\n}): PollerLike<OperationState<T>, T> {\n let statePromise: Promise<OperationState<T>>;\n let state: OperationState<T>;\n\n if (resumeFrom) {\n state = deserializeState<T>(resumeFrom);\n statePromise = Promise.resolve(state);\n } else {\n statePromise = initOperation().then((result) => {\n state = {\n result,\n status: getOperationStatus(result),\n };\n return state;\n });\n }\n\n let resultPromise: Promise<T> | undefined;\n const abortController = new AbortController();\n type Handler = (state: OperationState<T>) => void;\n const handlers = new Map<symbol, Handler>();\n const handleProgressEvents = async (): Promise<void> => handlers.forEach((h) => h(state));\n const currentPollIntervalInMs = intervalInMs ?? DEFAULT_POLL_INTERVAL_IN_MS;\n\n const poller: PollerLike<OperationState<T>, T> = {\n get operationState(): OperationState<T> | undefined {\n return state;\n },\n get result(): T | undefined {\n return state?.result;\n },\n get isDone(): boolean {\n return [\"succeeded\", \"failed\", \"canceled\"].includes(state?.status ?? \"\");\n },\n onProgress: (callback: (state: OperationState<T>) => void) => {\n const s = Symbol();\n handlers.set(s, callback);\n return () => handlers.delete(s);\n },\n serialize: async () => {\n await statePromise;\n return JSON.stringify({\n state,\n });\n },\n submitted: async () => {\n await statePromise;\n },\n pollUntilDone: async (pollOptions?: { abortSignal?: AbortSignalLike }) => {\n resultPromise ??= (async () => {\n await statePromise;\n if (!state) {\n throw new Error(\"Poller is not initialized\");\n }\n const { abortSignal: inputAbortSignal } = pollOptions || {};\n function abortListener(): void {\n abortController.abort();\n }\n const abortSignal = abortController.signal;\n if (inputAbortSignal?.aborted) {\n abortController.abort();\n } else if (!abortSignal.aborted) {\n inputAbortSignal?.addEventListener(\"abort\", abortListener, { once: true });\n }\n\n try {\n if (!poller.isDone) {\n await poller.poll({ abortSignal });\n while (!poller.isDone) {\n await delay(currentPollIntervalInMs, { abortSignal });\n await poller.poll({ abortSignal });\n }\n }\n } finally {\n inputAbortSignal?.removeEventListener(\"abort\", abortListener);\n }\n switch (state.status) {\n case \"succeeded\":\n return poller.result as T;\n case \"canceled\":\n throw new Error(\"Operation cancelled\");\n case \"failed\":\n throw state.error ?? new Error(\"Operation failed\");\n case \"notStarted\":\n case \"running\":\n throw new Error(\"Polling completed without succeeding or failing\");\n }\n })().finally(() => {\n resultPromise = undefined;\n });\n return resultPromise;\n },\n\n async poll(pollOptions?: { abortSignal?: AbortSignalLike }): Promise<OperationState<T>> {\n // Check state before polling\n await statePromise;\n if (!state) {\n throw new Error(\"Poller is not initialized\");\n }\n switch (state.status) {\n case \"succeeded\":\n return state;\n case \"canceled\":\n throw new Error(\"Operation was canceled\");\n case \"failed\":\n throw state.error ?? new Error(\"Operation failed\");\n }\n\n // Poll\n if (pollOptions?.abortSignal?.aborted) {\n throw new Error(\"Operation aborted\");\n }\n\n // Make sure we have a result to poll with\n if (!state.result) {\n throw new Error(\"Cannot poll with undefined result\");\n }\n\n const result = await pollOperation(state.result);\n state = {\n result,\n status: getOperationStatus(result),\n error: getOperationError ? getOperationError(result) : undefined,\n };\n\n await handleProgressEvents();\n switch (state.status) {\n case \"canceled\":\n throw new Error(\"Operation was canceled\");\n case \"failed\":\n throw state.error ?? new Error(\"Operation failed\");\n }\n return state;\n },\n\n then<T1 = T, T2 = never>(\n onfulfilled?: ((value: T) => T1 | PromiseLike<T1>) | undefined | null,\n onrejected?: ((reason: any) => T2 | PromiseLike<T2>) | undefined | null,\n ): Promise<T1 | T2> {\n return poller.pollUntilDone().then(onfulfilled, onrejected);\n },\n catch<T2 = never>(\n onrejected?: ((reason: any) => T2 | PromiseLike<T2>) | undefined | null,\n ): Promise<T | T2> {\n return poller.pollUntilDone().catch(onrejected);\n },\n finally(onfinally?: (() => void) | undefined | null): Promise<T> {\n return poller.pollUntilDone().finally(onfinally);\n },\n [Symbol.toStringTag]: \"Poller\",\n };\n return poller;\n}\n"]}
|