@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.
Files changed (151) hide show
  1. package/README.md +39 -34
  2. package/dist/browser/api/agentsContext.d.ts.map +1 -1
  3. package/dist/browser/api/agentsContext.js +7 -4
  4. package/dist/browser/api/agentsContext.js.map +1 -1
  5. package/dist/browser/api/operations.d.ts +3 -3
  6. package/dist/browser/api/operations.d.ts.map +1 -1
  7. package/dist/browser/api/operations.js +14 -14
  8. package/dist/browser/api/operations.js.map +1 -1
  9. package/dist/browser/api/poller.d.ts +7 -2
  10. package/dist/browser/api/poller.d.ts.map +1 -1
  11. package/dist/browser/api/poller.js +31 -9
  12. package/dist/browser/api/poller.js.map +1 -1
  13. package/dist/browser/api/runs/operations.d.ts +12 -7
  14. package/dist/browser/api/runs/operations.d.ts.map +1 -1
  15. package/dist/browser/api/runs/operations.js +59 -9
  16. package/dist/browser/api/runs/operations.js.map +1 -1
  17. package/dist/browser/api/runs/options.d.ts +2 -1
  18. package/dist/browser/api/runs/options.d.ts.map +1 -1
  19. package/dist/browser/api/runs/options.js.map +1 -1
  20. package/dist/browser/classic/runs/index.d.ts +4 -1
  21. package/dist/browser/classic/runs/index.d.ts.map +1 -1
  22. package/dist/browser/classic/runs/index.js +2 -1
  23. package/dist/browser/classic/runs/index.js.map +1 -1
  24. package/dist/browser/constants.d.ts +1 -1
  25. package/dist/browser/constants.js +1 -1
  26. package/dist/browser/constants.js.map +1 -1
  27. package/dist/browser/models/models.d.ts +6 -2
  28. package/dist/browser/models/models.d.ts.map +1 -1
  29. package/dist/browser/models/models.js +8 -0
  30. package/dist/browser/models/models.js.map +1 -1
  31. package/dist/browser/models/streamingModels.d.ts +1 -67
  32. package/dist/browser/models/streamingModels.d.ts.map +1 -1
  33. package/dist/browser/models/streamingModels.js +1 -72
  34. package/dist/browser/models/streamingModels.js.map +1 -1
  35. package/dist/browser/utils.d.ts +20 -1
  36. package/dist/browser/utils.d.ts.map +1 -1
  37. package/dist/browser/utils.js +33 -1
  38. package/dist/browser/utils.js.map +1 -1
  39. package/dist/commonjs/api/agentsContext.d.ts.map +1 -1
  40. package/dist/commonjs/api/agentsContext.js +7 -4
  41. package/dist/commonjs/api/agentsContext.js.map +1 -1
  42. package/dist/commonjs/api/operations.d.ts +3 -3
  43. package/dist/commonjs/api/operations.d.ts.map +1 -1
  44. package/dist/commonjs/api/operations.js +18 -18
  45. package/dist/commonjs/api/operations.js.map +1 -1
  46. package/dist/commonjs/api/poller.d.ts +7 -2
  47. package/dist/commonjs/api/poller.d.ts.map +1 -1
  48. package/dist/commonjs/api/poller.js +32 -9
  49. package/dist/commonjs/api/poller.js.map +1 -1
  50. package/dist/commonjs/api/runs/operations.d.ts +12 -7
  51. package/dist/commonjs/api/runs/operations.d.ts.map +1 -1
  52. package/dist/commonjs/api/runs/operations.js +58 -6
  53. package/dist/commonjs/api/runs/operations.js.map +1 -1
  54. package/dist/commonjs/api/runs/options.d.ts +2 -1
  55. package/dist/commonjs/api/runs/options.d.ts.map +1 -1
  56. package/dist/commonjs/api/runs/options.js.map +1 -1
  57. package/dist/commonjs/classic/runs/index.d.ts +4 -1
  58. package/dist/commonjs/classic/runs/index.d.ts.map +1 -1
  59. package/dist/commonjs/classic/runs/index.js +1 -0
  60. package/dist/commonjs/classic/runs/index.js.map +1 -1
  61. package/dist/commonjs/constants.d.ts +1 -1
  62. package/dist/commonjs/constants.js +1 -1
  63. package/dist/commonjs/constants.js.map +1 -1
  64. package/dist/commonjs/models/models.d.ts +6 -2
  65. package/dist/commonjs/models/models.d.ts.map +1 -1
  66. package/dist/commonjs/models/models.js +8 -0
  67. package/dist/commonjs/models/models.js.map +1 -1
  68. package/dist/commonjs/models/streamingModels.d.ts +1 -67
  69. package/dist/commonjs/models/streamingModels.d.ts.map +1 -1
  70. package/dist/commonjs/models/streamingModels.js +0 -73
  71. package/dist/commonjs/models/streamingModels.js.map +1 -1
  72. package/dist/commonjs/tsdoc-metadata.json +1 -1
  73. package/dist/commonjs/utils.d.ts +20 -1
  74. package/dist/commonjs/utils.d.ts.map +1 -1
  75. package/dist/commonjs/utils.js +33 -1
  76. package/dist/commonjs/utils.js.map +1 -1
  77. package/dist/esm/api/agentsContext.d.ts.map +1 -1
  78. package/dist/esm/api/agentsContext.js +7 -4
  79. package/dist/esm/api/agentsContext.js.map +1 -1
  80. package/dist/esm/api/operations.d.ts +3 -3
  81. package/dist/esm/api/operations.d.ts.map +1 -1
  82. package/dist/esm/api/operations.js +14 -14
  83. package/dist/esm/api/operations.js.map +1 -1
  84. package/dist/esm/api/poller.d.ts +7 -2
  85. package/dist/esm/api/poller.d.ts.map +1 -1
  86. package/dist/esm/api/poller.js +31 -9
  87. package/dist/esm/api/poller.js.map +1 -1
  88. package/dist/esm/api/runs/operations.d.ts +12 -7
  89. package/dist/esm/api/runs/operations.d.ts.map +1 -1
  90. package/dist/esm/api/runs/operations.js +59 -9
  91. package/dist/esm/api/runs/operations.js.map +1 -1
  92. package/dist/esm/api/runs/options.d.ts +2 -1
  93. package/dist/esm/api/runs/options.d.ts.map +1 -1
  94. package/dist/esm/api/runs/options.js.map +1 -1
  95. package/dist/esm/classic/runs/index.d.ts +4 -1
  96. package/dist/esm/classic/runs/index.d.ts.map +1 -1
  97. package/dist/esm/classic/runs/index.js +2 -1
  98. package/dist/esm/classic/runs/index.js.map +1 -1
  99. package/dist/esm/constants.d.ts +1 -1
  100. package/dist/esm/constants.js +1 -1
  101. package/dist/esm/constants.js.map +1 -1
  102. package/dist/esm/models/models.d.ts +6 -2
  103. package/dist/esm/models/models.d.ts.map +1 -1
  104. package/dist/esm/models/models.js +8 -0
  105. package/dist/esm/models/models.js.map +1 -1
  106. package/dist/esm/models/streamingModels.d.ts +1 -67
  107. package/dist/esm/models/streamingModels.d.ts.map +1 -1
  108. package/dist/esm/models/streamingModels.js +1 -72
  109. package/dist/esm/models/streamingModels.js.map +1 -1
  110. package/dist/esm/utils.d.ts +20 -1
  111. package/dist/esm/utils.d.ts.map +1 -1
  112. package/dist/esm/utils.js +33 -1
  113. package/dist/esm/utils.js.map +1 -1
  114. package/dist/react-native/api/agentsContext.d.ts.map +1 -1
  115. package/dist/react-native/api/agentsContext.js +7 -4
  116. package/dist/react-native/api/agentsContext.js.map +1 -1
  117. package/dist/react-native/api/operations.d.ts +3 -3
  118. package/dist/react-native/api/operations.d.ts.map +1 -1
  119. package/dist/react-native/api/operations.js +14 -14
  120. package/dist/react-native/api/operations.js.map +1 -1
  121. package/dist/react-native/api/poller.d.ts +7 -2
  122. package/dist/react-native/api/poller.d.ts.map +1 -1
  123. package/dist/react-native/api/poller.js +31 -9
  124. package/dist/react-native/api/poller.js.map +1 -1
  125. package/dist/react-native/api/runs/operations.d.ts +12 -7
  126. package/dist/react-native/api/runs/operations.d.ts.map +1 -1
  127. package/dist/react-native/api/runs/operations.js +59 -9
  128. package/dist/react-native/api/runs/operations.js.map +1 -1
  129. package/dist/react-native/api/runs/options.d.ts +2 -1
  130. package/dist/react-native/api/runs/options.d.ts.map +1 -1
  131. package/dist/react-native/api/runs/options.js.map +1 -1
  132. package/dist/react-native/classic/runs/index.d.ts +4 -1
  133. package/dist/react-native/classic/runs/index.d.ts.map +1 -1
  134. package/dist/react-native/classic/runs/index.js +2 -1
  135. package/dist/react-native/classic/runs/index.js.map +1 -1
  136. package/dist/react-native/constants.d.ts +1 -1
  137. package/dist/react-native/constants.js +1 -1
  138. package/dist/react-native/constants.js.map +1 -1
  139. package/dist/react-native/models/models.d.ts +6 -2
  140. package/dist/react-native/models/models.d.ts.map +1 -1
  141. package/dist/react-native/models/models.js +8 -0
  142. package/dist/react-native/models/models.js.map +1 -1
  143. package/dist/react-native/models/streamingModels.d.ts +1 -67
  144. package/dist/react-native/models/streamingModels.d.ts.map +1 -1
  145. package/dist/react-native/models/streamingModels.js +1 -72
  146. package/dist/react-native/models/streamingModels.js.map +1 -1
  147. package/dist/react-native/utils.d.ts +20 -1
  148. package/dist/react-native/utils.d.ts.map +1 -1
  149. package/dist/react-native/utils.js +33 -1
  150. package/dist/react-native/utils.js.map +1 -1
  151. 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-projects-readme?view=azure-node-preview)
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 construct a client:
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/nifty500QuarterlyResults.csv";
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/nifty500QuarterlyResults.csv";
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
- const result = this.functionTools
334
- .map((tool) =>
335
- tool.definition.function.name === toolCall.function.name ? tool.func(...args) : undefined,
336
- )
337
- .find((r) => r !== undefined);
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/nifty500QuarterlyResults.csv";
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
- import { delay } from "@azure/core-util";
611
-
612
- let run = await client.runs.create(thread.id, agent.id);
613
- console.log(`Created run, run ID: ${run.id}`);
614
-
615
- // Wait for run to complete
616
- while (["queued", "in_progress", "requires_action"].includes(run.status)) {
617
- await delay(1000);
618
- run = await client.runs.get(thread.id, run.id);
619
- console.log(`Run status: ${run.status}`);
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: ${(eventMessage.data as 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 as MessageDeltaChunk;
675
+ const messageDelta = eventMessage.data;
671
676
  messageDelta.delta.content.forEach((contentPart) => {
672
677
  if (contentPart.type === "text") {
673
- const textContent = contentPart as MessageDeltaTextContent;
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,CA2Cf"}
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.2`;
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
- if (!url.searchParams.get("api-version")) {
36
- req.url = `${req.url}${Array.from(url.searchParams.keys()).length > 0 ? "&" : "?"}api-version=${apiVersion}`;
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;YACzB,qDAAqD;YACrD,yEAAyE;YACzE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;gBACzC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAClB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GACzD,eAAe,UAAU,EAAE,CAAC;YAC9B,CAAC;YAED,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.2`;\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 if (!url.searchParams.get(\"api-version\")) {\n req.url = `${req.url}${\n Array.from(url.searchParams.keys()).length > 0 ? \"&\" : \"?\"\n }api-version=${apiVersion}`;\n }\n\n return next(req);\n },\n });\n return { ...clientContext, apiVersion } as AgentsContext;\n}\n"]}
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":"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"}
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.stream = true;
286
- return processStream(_createRunSend(context, threadId, assistantId, options));
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.stream = true;
291
- return processStream(_createThreadAndRunSend(context, assistantId, options));
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.stream = true;
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 { PollerLike, OperationState, OperationStatus } from "@azure/core-lro";
2
- export declare function createPoller<T>({ initOperation, pollOperation, getOperationStatus, getOperationError, intervalInMs, }: {
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,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKnF,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAC9B,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,GACb,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;CACvB,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CA2InC"}
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
- export function createPoller({ initOperation, pollOperation, getOperationStatus, getOperationError, intervalInMs, }) {
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
- const statePromise = initOperation().then((result) => {
8
- state = {
9
- result,
10
- status: getOperationStatus(result),
11
- };
12
- return state;
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 || !state.result) {
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"]}