@azure/ai-projects 1.0.0-beta.2 → 1.0.0-beta.3
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/LICENSE +4 -4
- package/README.md +244 -183
- package/dist/browser/agents/assistants.d.ts.map +1 -1
- package/dist/browser/agents/assistants.js +3 -1
- package/dist/browser/agents/assistants.js.map +1 -1
- package/dist/browser/agents/customModels.d.ts +4 -29
- package/dist/browser/agents/customModels.d.ts.map +1 -1
- package/dist/browser/agents/customModels.js.map +1 -1
- package/dist/browser/agents/files.d.ts +5 -4
- package/dist/browser/agents/files.d.ts.map +1 -1
- package/dist/browser/agents/files.js +55 -27
- package/dist/browser/agents/files.js.map +1 -1
- package/dist/browser/agents/index.d.ts +10 -10
- package/dist/browser/agents/index.d.ts.map +1 -1
- package/dist/browser/agents/index.js.map +1 -1
- package/dist/browser/agents/inputOutputs.d.ts +3 -3
- package/dist/browser/agents/inputOutputs.d.ts.map +1 -1
- package/dist/browser/agents/inputOutputs.js.map +1 -1
- package/dist/browser/agents/inputValidations.d.ts.map +1 -1
- package/dist/browser/agents/inputValidations.js +2 -1
- package/dist/browser/agents/inputValidations.js.map +1 -1
- package/dist/browser/agents/messages.js +2 -2
- package/dist/browser/agents/messages.js.map +1 -1
- package/dist/browser/agents/poller.d.ts +8 -33
- package/dist/browser/agents/poller.d.ts.map +1 -1
- package/dist/browser/agents/poller.js +130 -53
- package/dist/browser/agents/poller.js.map +1 -1
- package/dist/browser/agents/streamingModels.d.ts +17 -15
- package/dist/browser/agents/streamingModels.d.ts.map +1 -1
- package/dist/browser/agents/streamingModels.js.map +1 -1
- package/dist/browser/agents/traceUtility.d.ts +3 -3
- package/dist/browser/agents/traceUtility.d.ts.map +1 -1
- package/dist/browser/agents/traceUtility.js.map +1 -1
- package/dist/browser/agents/utils.d.ts +53 -3
- package/dist/browser/agents/utils.d.ts.map +1 -1
- package/dist/browser/agents/utils.js +71 -1
- package/dist/browser/agents/utils.js.map +1 -1
- package/dist/browser/agents/vectorStores.d.ts +3 -4
- package/dist/browser/agents/vectorStores.d.ts.map +1 -1
- package/dist/browser/agents/vectorStores.js +44 -26
- package/dist/browser/agents/vectorStores.js.map +1 -1
- package/dist/browser/agents/vectorStoresFileBatches.d.ts +5 -4
- package/dist/browser/agents/vectorStoresFileBatches.d.ts.map +1 -1
- package/dist/browser/agents/vectorStoresFileBatches.js +46 -32
- package/dist/browser/agents/vectorStoresFileBatches.js.map +1 -1
- package/dist/browser/agents/vectorStoresFiles.d.ts +4 -4
- package/dist/browser/agents/vectorStoresFiles.d.ts.map +1 -1
- package/dist/browser/agents/vectorStoresFiles.js +57 -28
- package/dist/browser/agents/vectorStoresFiles.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/customization/convertModelsToWrite.d.ts.map +1 -1
- package/dist/browser/customization/convertModelsToWrite.js +42 -93
- package/dist/browser/customization/convertModelsToWrite.js.map +1 -1
- package/dist/browser/customization/convertOutputModelsFromWire.d.ts.map +1 -1
- package/dist/browser/customization/convertOutputModelsFromWire.js +51 -9
- package/dist/browser/customization/convertOutputModelsFromWire.js.map +1 -1
- package/dist/browser/customization/convertParametersToWire.d.ts +1 -1
- package/dist/browser/customization/convertParametersToWire.d.ts.map +1 -1
- package/dist/browser/customization/convertParametersToWire.js.map +1 -1
- package/dist/browser/customization/models.d.ts +146 -151
- package/dist/browser/customization/models.d.ts.map +1 -1
- package/dist/browser/customization/models.js.map +1 -1
- package/dist/browser/customization/outputModels.d.ts +188 -37
- package/dist/browser/customization/outputModels.d.ts.map +1 -1
- package/dist/browser/customization/outputModels.js.map +1 -1
- package/dist/browser/customization/streamingModels.d.ts +2 -1
- package/dist/browser/customization/streamingModels.d.ts.map +1 -1
- package/dist/browser/customization/streamingModels.js.map +1 -1
- package/dist/browser/customization/streamingWireModels.d.ts +2 -1
- package/dist/browser/customization/streamingWireModels.d.ts.map +1 -1
- package/dist/browser/customization/streamingWireModels.js.map +1 -1
- package/dist/browser/generated/src/models.d.ts +131 -150
- package/dist/browser/generated/src/models.d.ts.map +1 -1
- package/dist/browser/generated/src/models.js.map +1 -1
- package/dist/browser/generated/src/outputModels.d.ts +187 -36
- package/dist/browser/generated/src/outputModels.d.ts.map +1 -1
- package/dist/browser/generated/src/outputModels.js.map +1 -1
- package/dist/browser/generated/src/paginateHelper.d.ts +27 -2
- package/dist/browser/generated/src/paginateHelper.d.ts.map +1 -1
- package/dist/browser/generated/src/paginateHelper.js +98 -1
- package/dist/browser/generated/src/paginateHelper.js.map +1 -1
- package/dist/browser/generated/src/projectsClient.d.ts +2 -2
- package/dist/browser/generated/src/projectsClient.d.ts.map +1 -1
- package/dist/browser/generated/src/projectsClient.js +3 -3
- package/dist/browser/generated/src/projectsClient.js.map +1 -1
- package/dist/commonjs/agents/assistants.d.ts.map +1 -1
- package/dist/commonjs/agents/assistants.js +3 -1
- package/dist/commonjs/agents/assistants.js.map +1 -1
- package/dist/commonjs/agents/customModels.d.ts +4 -29
- package/dist/commonjs/agents/customModels.d.ts.map +1 -1
- package/dist/commonjs/agents/customModels.js.map +1 -1
- package/dist/commonjs/agents/files.d.ts +5 -4
- package/dist/commonjs/agents/files.d.ts.map +1 -1
- package/dist/commonjs/agents/files.js +55 -26
- package/dist/commonjs/agents/files.js.map +1 -1
- package/dist/commonjs/agents/index.d.ts +10 -10
- package/dist/commonjs/agents/index.d.ts.map +1 -1
- package/dist/commonjs/agents/index.js.map +1 -1
- package/dist/commonjs/agents/inputOutputs.d.ts +3 -3
- package/dist/commonjs/agents/inputOutputs.d.ts.map +1 -1
- package/dist/commonjs/agents/inputOutputs.js.map +1 -1
- package/dist/commonjs/agents/inputValidations.d.ts.map +1 -1
- package/dist/commonjs/agents/inputValidations.js +2 -1
- package/dist/commonjs/agents/inputValidations.js.map +1 -1
- package/dist/commonjs/agents/messages.js +2 -2
- package/dist/commonjs/agents/messages.js.map +1 -1
- package/dist/commonjs/agents/poller.d.ts +8 -33
- package/dist/commonjs/agents/poller.d.ts.map +1 -1
- package/dist/commonjs/agents/poller.js +131 -55
- package/dist/commonjs/agents/poller.js.map +1 -1
- package/dist/commonjs/agents/streamingModels.d.ts +17 -15
- package/dist/commonjs/agents/streamingModels.d.ts.map +1 -1
- package/dist/commonjs/agents/streamingModels.js.map +1 -1
- package/dist/commonjs/agents/traceUtility.d.ts +3 -3
- package/dist/commonjs/agents/traceUtility.d.ts.map +1 -1
- package/dist/commonjs/agents/traceUtility.js.map +1 -1
- package/dist/commonjs/agents/utils.d.ts +53 -3
- package/dist/commonjs/agents/utils.d.ts.map +1 -1
- package/dist/commonjs/agents/utils.js +71 -1
- package/dist/commonjs/agents/utils.js.map +1 -1
- package/dist/commonjs/agents/vectorStores.d.ts +3 -4
- package/dist/commonjs/agents/vectorStores.d.ts.map +1 -1
- package/dist/commonjs/agents/vectorStores.js +43 -25
- package/dist/commonjs/agents/vectorStores.js.map +1 -1
- package/dist/commonjs/agents/vectorStoresFileBatches.d.ts +5 -4
- package/dist/commonjs/agents/vectorStoresFileBatches.d.ts.map +1 -1
- package/dist/commonjs/agents/vectorStoresFileBatches.js +46 -31
- package/dist/commonjs/agents/vectorStoresFileBatches.js.map +1 -1
- package/dist/commonjs/agents/vectorStoresFiles.d.ts +4 -4
- package/dist/commonjs/agents/vectorStoresFiles.d.ts.map +1 -1
- package/dist/commonjs/agents/vectorStoresFiles.js +56 -27
- package/dist/commonjs/agents/vectorStoresFiles.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/customization/convertModelsToWrite.d.ts.map +1 -1
- package/dist/commonjs/customization/convertModelsToWrite.js +42 -93
- package/dist/commonjs/customization/convertModelsToWrite.js.map +1 -1
- package/dist/commonjs/customization/convertOutputModelsFromWire.d.ts.map +1 -1
- package/dist/commonjs/customization/convertOutputModelsFromWire.js +51 -9
- package/dist/commonjs/customization/convertOutputModelsFromWire.js.map +1 -1
- package/dist/commonjs/customization/convertParametersToWire.d.ts +1 -1
- package/dist/commonjs/customization/convertParametersToWire.d.ts.map +1 -1
- package/dist/commonjs/customization/convertParametersToWire.js.map +1 -1
- package/dist/commonjs/customization/models.d.ts +146 -151
- package/dist/commonjs/customization/models.d.ts.map +1 -1
- package/dist/commonjs/customization/models.js.map +1 -1
- package/dist/commonjs/customization/outputModels.d.ts +188 -37
- package/dist/commonjs/customization/outputModels.d.ts.map +1 -1
- package/dist/commonjs/customization/outputModels.js.map +1 -1
- package/dist/commonjs/customization/streamingModels.d.ts +2 -1
- package/dist/commonjs/customization/streamingModels.d.ts.map +1 -1
- package/dist/commonjs/customization/streamingModels.js.map +1 -1
- package/dist/commonjs/customization/streamingWireModels.d.ts +2 -1
- package/dist/commonjs/customization/streamingWireModels.d.ts.map +1 -1
- package/dist/commonjs/customization/streamingWireModels.js.map +1 -1
- package/dist/commonjs/generated/src/models.d.ts +131 -150
- package/dist/commonjs/generated/src/models.d.ts.map +1 -1
- package/dist/commonjs/generated/src/models.js.map +1 -1
- package/dist/commonjs/generated/src/outputModels.d.ts +187 -36
- package/dist/commonjs/generated/src/outputModels.d.ts.map +1 -1
- package/dist/commonjs/generated/src/outputModels.js.map +1 -1
- package/dist/commonjs/generated/src/paginateHelper.d.ts +27 -2
- package/dist/commonjs/generated/src/paginateHelper.d.ts.map +1 -1
- package/dist/commonjs/generated/src/paginateHelper.js +99 -2
- package/dist/commonjs/generated/src/paginateHelper.js.map +1 -1
- package/dist/commonjs/generated/src/projectsClient.d.ts +2 -2
- package/dist/commonjs/generated/src/projectsClient.d.ts.map +1 -1
- package/dist/commonjs/generated/src/projectsClient.js +3 -3
- package/dist/commonjs/generated/src/projectsClient.js.map +1 -1
- package/dist/commonjs/tsdoc-metadata.json +1 -1
- package/dist/esm/agents/assistants.d.ts.map +1 -1
- package/dist/esm/agents/assistants.js +3 -1
- package/dist/esm/agents/assistants.js.map +1 -1
- package/dist/esm/agents/customModels.d.ts +4 -29
- package/dist/esm/agents/customModels.d.ts.map +1 -1
- package/dist/esm/agents/customModels.js.map +1 -1
- package/dist/esm/agents/files.d.ts +5 -4
- package/dist/esm/agents/files.d.ts.map +1 -1
- package/dist/esm/agents/files.js +55 -27
- package/dist/esm/agents/files.js.map +1 -1
- package/dist/esm/agents/index.d.ts +10 -10
- package/dist/esm/agents/index.d.ts.map +1 -1
- package/dist/esm/agents/index.js.map +1 -1
- package/dist/esm/agents/inputOutputs.d.ts +3 -3
- package/dist/esm/agents/inputOutputs.d.ts.map +1 -1
- package/dist/esm/agents/inputOutputs.js.map +1 -1
- package/dist/esm/agents/inputValidations.d.ts.map +1 -1
- package/dist/esm/agents/inputValidations.js +2 -1
- package/dist/esm/agents/inputValidations.js.map +1 -1
- package/dist/esm/agents/messages.js +2 -2
- package/dist/esm/agents/messages.js.map +1 -1
- package/dist/esm/agents/poller.d.ts +8 -33
- package/dist/esm/agents/poller.d.ts.map +1 -1
- package/dist/esm/agents/poller.js +130 -53
- package/dist/esm/agents/poller.js.map +1 -1
- package/dist/esm/agents/streamingModels.d.ts +17 -15
- package/dist/esm/agents/streamingModels.d.ts.map +1 -1
- package/dist/esm/agents/streamingModels.js.map +1 -1
- package/dist/esm/agents/traceUtility.d.ts +3 -3
- package/dist/esm/agents/traceUtility.d.ts.map +1 -1
- package/dist/esm/agents/traceUtility.js.map +1 -1
- package/dist/esm/agents/utils.d.ts +53 -3
- package/dist/esm/agents/utils.d.ts.map +1 -1
- package/dist/esm/agents/utils.js +71 -1
- package/dist/esm/agents/utils.js.map +1 -1
- package/dist/esm/agents/vectorStores.d.ts +3 -4
- package/dist/esm/agents/vectorStores.d.ts.map +1 -1
- package/dist/esm/agents/vectorStores.js +44 -26
- package/dist/esm/agents/vectorStores.js.map +1 -1
- package/dist/esm/agents/vectorStoresFileBatches.d.ts +5 -4
- package/dist/esm/agents/vectorStoresFileBatches.d.ts.map +1 -1
- package/dist/esm/agents/vectorStoresFileBatches.js +46 -32
- package/dist/esm/agents/vectorStoresFileBatches.js.map +1 -1
- package/dist/esm/agents/vectorStoresFiles.d.ts +4 -4
- package/dist/esm/agents/vectorStoresFiles.d.ts.map +1 -1
- package/dist/esm/agents/vectorStoresFiles.js +57 -28
- package/dist/esm/agents/vectorStoresFiles.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/customization/convertModelsToWrite.d.ts.map +1 -1
- package/dist/esm/customization/convertModelsToWrite.js +42 -93
- package/dist/esm/customization/convertModelsToWrite.js.map +1 -1
- package/dist/esm/customization/convertOutputModelsFromWire.d.ts.map +1 -1
- package/dist/esm/customization/convertOutputModelsFromWire.js +51 -9
- package/dist/esm/customization/convertOutputModelsFromWire.js.map +1 -1
- package/dist/esm/customization/convertParametersToWire.d.ts +1 -1
- package/dist/esm/customization/convertParametersToWire.d.ts.map +1 -1
- package/dist/esm/customization/convertParametersToWire.js.map +1 -1
- package/dist/esm/customization/models.d.ts +146 -151
- package/dist/esm/customization/models.d.ts.map +1 -1
- package/dist/esm/customization/models.js.map +1 -1
- package/dist/esm/customization/outputModels.d.ts +188 -37
- package/dist/esm/customization/outputModels.d.ts.map +1 -1
- package/dist/esm/customization/outputModels.js.map +1 -1
- package/dist/esm/customization/streamingModels.d.ts +2 -1
- package/dist/esm/customization/streamingModels.d.ts.map +1 -1
- package/dist/esm/customization/streamingModels.js.map +1 -1
- package/dist/esm/customization/streamingWireModels.d.ts +2 -1
- package/dist/esm/customization/streamingWireModels.d.ts.map +1 -1
- package/dist/esm/customization/streamingWireModels.js.map +1 -1
- package/dist/esm/generated/src/models.d.ts +131 -150
- package/dist/esm/generated/src/models.d.ts.map +1 -1
- package/dist/esm/generated/src/models.js.map +1 -1
- package/dist/esm/generated/src/outputModels.d.ts +187 -36
- package/dist/esm/generated/src/outputModels.d.ts.map +1 -1
- package/dist/esm/generated/src/outputModels.js.map +1 -1
- package/dist/esm/generated/src/paginateHelper.d.ts +27 -2
- package/dist/esm/generated/src/paginateHelper.d.ts.map +1 -1
- package/dist/esm/generated/src/paginateHelper.js +98 -1
- package/dist/esm/generated/src/paginateHelper.js.map +1 -1
- package/dist/esm/generated/src/projectsClient.d.ts +2 -2
- package/dist/esm/generated/src/projectsClient.d.ts.map +1 -1
- package/dist/esm/generated/src/projectsClient.js +3 -3
- package/dist/esm/generated/src/projectsClient.js.map +1 -1
- package/dist/react-native/agents/assistants.d.ts.map +1 -1
- package/dist/react-native/agents/assistants.js +3 -1
- package/dist/react-native/agents/assistants.js.map +1 -1
- package/dist/react-native/agents/customModels.d.ts +4 -29
- package/dist/react-native/agents/customModels.d.ts.map +1 -1
- package/dist/react-native/agents/customModels.js.map +1 -1
- package/dist/react-native/agents/files.d.ts +5 -4
- package/dist/react-native/agents/files.d.ts.map +1 -1
- package/dist/react-native/agents/files.js +55 -27
- package/dist/react-native/agents/files.js.map +1 -1
- package/dist/react-native/agents/index.d.ts +10 -10
- package/dist/react-native/agents/index.d.ts.map +1 -1
- package/dist/react-native/agents/index.js.map +1 -1
- package/dist/react-native/agents/inputOutputs.d.ts +3 -3
- package/dist/react-native/agents/inputOutputs.d.ts.map +1 -1
- package/dist/react-native/agents/inputOutputs.js.map +1 -1
- package/dist/react-native/agents/inputValidations.d.ts.map +1 -1
- package/dist/react-native/agents/inputValidations.js +2 -1
- package/dist/react-native/agents/inputValidations.js.map +1 -1
- package/dist/react-native/agents/messages.js +2 -2
- package/dist/react-native/agents/messages.js.map +1 -1
- package/dist/react-native/agents/poller.d.ts +8 -33
- package/dist/react-native/agents/poller.d.ts.map +1 -1
- package/dist/react-native/agents/poller.js +130 -53
- package/dist/react-native/agents/poller.js.map +1 -1
- package/dist/react-native/agents/streamingModels.d.ts +17 -15
- package/dist/react-native/agents/streamingModels.d.ts.map +1 -1
- package/dist/react-native/agents/streamingModels.js.map +1 -1
- package/dist/react-native/agents/traceUtility.d.ts +3 -3
- package/dist/react-native/agents/traceUtility.d.ts.map +1 -1
- package/dist/react-native/agents/traceUtility.js.map +1 -1
- package/dist/react-native/agents/utils.d.ts +53 -3
- package/dist/react-native/agents/utils.d.ts.map +1 -1
- package/dist/react-native/agents/utils.js +71 -1
- package/dist/react-native/agents/utils.js.map +1 -1
- package/dist/react-native/agents/vectorStores.d.ts +3 -4
- package/dist/react-native/agents/vectorStores.d.ts.map +1 -1
- package/dist/react-native/agents/vectorStores.js +44 -26
- package/dist/react-native/agents/vectorStores.js.map +1 -1
- package/dist/react-native/agents/vectorStoresFileBatches.d.ts +5 -4
- package/dist/react-native/agents/vectorStoresFileBatches.d.ts.map +1 -1
- package/dist/react-native/agents/vectorStoresFileBatches.js +46 -32
- package/dist/react-native/agents/vectorStoresFileBatches.js.map +1 -1
- package/dist/react-native/agents/vectorStoresFiles.d.ts +4 -4
- package/dist/react-native/agents/vectorStoresFiles.d.ts.map +1 -1
- package/dist/react-native/agents/vectorStoresFiles.js +57 -28
- package/dist/react-native/agents/vectorStoresFiles.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/customization/convertModelsToWrite.d.ts.map +1 -1
- package/dist/react-native/customization/convertModelsToWrite.js +42 -93
- package/dist/react-native/customization/convertModelsToWrite.js.map +1 -1
- package/dist/react-native/customization/convertOutputModelsFromWire.d.ts.map +1 -1
- package/dist/react-native/customization/convertOutputModelsFromWire.js +51 -9
- package/dist/react-native/customization/convertOutputModelsFromWire.js.map +1 -1
- package/dist/react-native/customization/convertParametersToWire.d.ts +1 -1
- package/dist/react-native/customization/convertParametersToWire.d.ts.map +1 -1
- package/dist/react-native/customization/convertParametersToWire.js.map +1 -1
- package/dist/react-native/customization/models.d.ts +146 -151
- package/dist/react-native/customization/models.d.ts.map +1 -1
- package/dist/react-native/customization/models.js.map +1 -1
- package/dist/react-native/customization/outputModels.d.ts +188 -37
- package/dist/react-native/customization/outputModels.d.ts.map +1 -1
- package/dist/react-native/customization/outputModels.js.map +1 -1
- package/dist/react-native/customization/streamingModels.d.ts +2 -1
- package/dist/react-native/customization/streamingModels.d.ts.map +1 -1
- package/dist/react-native/customization/streamingModels.js.map +1 -1
- package/dist/react-native/customization/streamingWireModels.d.ts +2 -1
- package/dist/react-native/customization/streamingWireModels.d.ts.map +1 -1
- package/dist/react-native/customization/streamingWireModels.js.map +1 -1
- package/dist/react-native/generated/src/models.d.ts +131 -150
- package/dist/react-native/generated/src/models.d.ts.map +1 -1
- package/dist/react-native/generated/src/models.js.map +1 -1
- package/dist/react-native/generated/src/outputModels.d.ts +187 -36
- package/dist/react-native/generated/src/outputModels.d.ts.map +1 -1
- package/dist/react-native/generated/src/outputModels.js.map +1 -1
- package/dist/react-native/generated/src/paginateHelper.d.ts +27 -2
- package/dist/react-native/generated/src/paginateHelper.d.ts.map +1 -1
- package/dist/react-native/generated/src/paginateHelper.js +98 -1
- package/dist/react-native/generated/src/paginateHelper.js.map +1 -1
- package/dist/react-native/generated/src/projectsClient.d.ts +2 -2
- package/dist/react-native/generated/src/projectsClient.d.ts.map +1 -1
- package/dist/react-native/generated/src/projectsClient.js +3 -3
- package/dist/react-native/generated/src/projectsClient.js.map +1 -1
- package/package.json +33 -34
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/agents/messages.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { Client } from \"@azure-rest/core-client\";\nimport { operationOptionsToRequestParameters } from \"@azure-rest/core-client\";\nimport type {\n OpenAIPageableListOfThreadMessageOutput,\n ThreadMessageOutput,\n} from \"../customization/outputModels.js\";\nimport type {\n CreateMessageParameters,\n ListMessagesParameters,\n} from \"../generated/src/parameters.js\";\nimport { validateMetadata, validateVectorStoreDataType } from \"./inputValidations.js\";\nimport { TracingUtility } from \"../tracing.js\";\nimport {\n traceEndCreateMessage,\n traceEndListMessages,\n traceStartCreateMessage,\n traceStartListMessages,\n} from \"./messagesTrace.js\";\nimport { traceStartAgentGeneric } from \"./traceUtility.js\";\nimport type { ThreadMessageOptions } from \"../customization/models.js\";\nimport type {\n CreateMessageOptionalParams,\n ListMessagesOptionalParams,\n UpdateMessageOptionalParams,\n} from \"./customModels.js\";\nimport type * as GeneratedParameters from \"../generated/src/parameters.js\";\nimport * as ConvertFromWire from \"../customization/convertOutputModelsFromWire.js\";\nimport { createOpenAIError } from \"./openAIError.js\";\n\nconst expectedStatuses = [\"200\"];\n\n/** Creates a new message on a specified thread. */\nexport async function createMessage(\n context: Client,\n threadId: string,\n messageOptions: ThreadMessageOptions,\n options: CreateMessageOptionalParams = {},\n): Promise<ThreadMessageOutput> {\n const createOptions: GeneratedParameters.CreateMessageParameters = {\n ...operationOptionsToRequestParameters(options),\n body: {\n ...messageOptions,\n },\n };\n\n validateThreadId(threadId);\n validateCreateMessageParameters(createOptions);\n const response = await TracingUtility.withSpan(\n \"CreateMessage\",\n createOptions,\n async (updateOptions) => {\n const result = await context\n .path(\"/threads/{threadId}/messages\", threadId)\n .post(updateOptions);\n if (!expectedStatuses.includes(result.status)) {\n throw createOpenAIError(result);\n }\n return result.body;\n },\n (span, updatedOptions) => traceStartCreateMessage(span, threadId, updatedOptions),\n traceEndCreateMessage,\n );\n return ConvertFromWire.convertThreadMessageOutput(response);\n}\n\n/** Gets a list of messages that exist on a thread. */\nexport async function listMessages(\n context: Client,\n threadId: string,\n options: ListMessagesOptionalParams = {},\n): Promise<OpenAIPageableListOfThreadMessageOutput> {\n const listOptions: GeneratedParameters.ListMessagesParameters = {\n ...operationOptionsToRequestParameters(options),\n queryParameters: {\n ...(options.runId && { run_id: options.runId }),\n ...(options.limit && { run_id: options.limit }),\n ...(options.order && { run_id: options.order }),\n ...(options.after && { run_id: options.after }),\n ...(options.before && { run_id: options.before }),\n },\n };\n\n validateThreadId(threadId);\n validateListMessagesParameters(listOptions);\n const output = await TracingUtility.withSpan(\n \"ListMessages\",\n listOptions,\n async (updateOptions) => {\n const result = await context\n .path(\"/threads/{threadId}/messages\", threadId)\n .get(updateOptions);\n if (!expectedStatuses.includes(result.status)) {\n throw createOpenAIError(result);\n }\n return result.body;\n },\n (span, updatedOptions) => traceStartListMessages(span, threadId, updatedOptions),\n traceEndListMessages,\n );\n\n return ConvertFromWire.convertOpenAIPageableListOfThreadMessageOutput(output);\n}\n\n/** Modifies an existing message on an existing thread. */\nexport async function updateMessage(\n context: Client,\n threadId: string,\n messageId: string,\n options: UpdateMessageOptionalParams = {},\n): Promise<ThreadMessageOutput> {\n const updateMessageOptions: GeneratedParameters.UpdateMessageParameters = {\n ...operationOptionsToRequestParameters(options),\n body: {\n ...(options.metadata ? { metadata: options.metadata } : {}),\n },\n };\n validateThreadId(threadId);\n validateMessageId(messageId);\n const response = await TracingUtility.withSpan(\n \"UpdateMessage\",\n updateMessageOptions,\n async (updateOptions) => {\n const result = await context\n .path(\"/threads/{threadId}/messages/{messageId}\", threadId, messageId)\n .post(updateOptions);\n if (!expectedStatuses.includes(result.status)) {\n throw createOpenAIError(result);\n }\n return result.body;\n },\n (span, updatedOptions) =>\n traceStartAgentGeneric(span, {\n ...updatedOptions,\n tracingAttributeOptions: { threadId: threadId, messageId: messageId },\n }),\n );\n\n return ConvertFromWire.convertThreadMessageOutput(response);\n}\n\nfunction validateThreadId(threadId: string): void {\n if (!threadId) {\n throw new Error(\"Thread ID is required\");\n }\n}\n\nfunction validateMessageId(messageId: string): void {\n if (!messageId) {\n throw new Error(\"Message ID is required\");\n }\n}\n\nfunction validateCreateMessageParameters(options: CreateMessageParameters): void {\n if (options.body.role && ![\"user\", \"assistant\"].includes(options.body.role)) {\n throw new Error(\"Role must be either 'user' or 'assistant'\");\n }\n if (options.body.metadata) {\n validateMetadata(options.body.metadata);\n }\n if (options.body.attachments) {\n if (\n options.body.attachments.some((value) => {\n value.tools.some((tool) => ![\"code_interpreter\", \"file_search\"].includes(tool.type));\n })\n ) {\n throw new Error(\"Tool type must be either 'code_interpreter' or 'file_search'\");\n }\n if (options.body.attachments) {\n options.body.attachments.forEach((value) => {\n if (value.data_sources) {\n validateVectorStoreDataType(value.data_sources);\n }\n });\n }\n }\n}\n\nfunction validateListMessagesParameters(options?: ListMessagesParameters): void {\n if (\n options?.queryParameters?.limit &&\n (options.queryParameters.limit < 1 || options.queryParameters.limit > 100)\n ) {\n throw new Error(\"Limit must be between 1 and 100\");\n }\n if (options?.queryParameters?.order && ![\"asc\", \"desc\"].includes(options.queryParameters.order)) {\n throw new Error(\"Order must be either 'asc' or 'desc'\");\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/agents/messages.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { Client } from \"@azure-rest/core-client\";\nimport { operationOptionsToRequestParameters } from \"@azure-rest/core-client\";\nimport type {\n OpenAIPageableListOfThreadMessageOutput,\n ThreadMessageOutput,\n} from \"../customization/outputModels.js\";\nimport type {\n CreateMessageParameters,\n ListMessagesParameters,\n} from \"../generated/src/parameters.js\";\nimport { validateMetadata, validateVectorStoreDataType } from \"./inputValidations.js\";\nimport { TracingUtility } from \"../tracing.js\";\nimport {\n traceEndCreateMessage,\n traceEndListMessages,\n traceStartCreateMessage,\n traceStartListMessages,\n} from \"./messagesTrace.js\";\nimport { traceStartAgentGeneric } from \"./traceUtility.js\";\nimport type { ThreadMessageOptions } from \"../customization/models.js\";\nimport type {\n CreateMessageOptionalParams,\n ListMessagesOptionalParams,\n UpdateMessageOptionalParams,\n} from \"./customModels.js\";\nimport type * as GeneratedParameters from \"../generated/src/parameters.js\";\nimport * as ConvertFromWire from \"../customization/convertOutputModelsFromWire.js\";\nimport { createOpenAIError } from \"./openAIError.js\";\n\nconst expectedStatuses = [\"200\"];\n\n/** Creates a new message on a specified thread. */\nexport async function createMessage(\n context: Client,\n threadId: string,\n messageOptions: ThreadMessageOptions,\n options: CreateMessageOptionalParams = {},\n): Promise<ThreadMessageOutput> {\n const createOptions: GeneratedParameters.CreateMessageParameters = {\n ...operationOptionsToRequestParameters(options),\n body: {\n ...messageOptions,\n },\n };\n\n validateThreadId(threadId);\n validateCreateMessageParameters(createOptions);\n const response = await TracingUtility.withSpan(\n \"CreateMessage\",\n createOptions,\n async (updateOptions) => {\n const result = await context\n .path(\"/threads/{threadId}/messages\", threadId)\n .post(updateOptions);\n if (!expectedStatuses.includes(result.status)) {\n throw createOpenAIError(result);\n }\n return result.body;\n },\n (span, updatedOptions) => traceStartCreateMessage(span, threadId, updatedOptions),\n traceEndCreateMessage,\n );\n return ConvertFromWire.convertThreadMessageOutput(response);\n}\n\n/** Gets a list of messages that exist on a thread. */\nexport async function listMessages(\n context: Client,\n threadId: string,\n options: ListMessagesOptionalParams = {},\n): Promise<OpenAIPageableListOfThreadMessageOutput> {\n const listOptions: GeneratedParameters.ListMessagesParameters = {\n ...operationOptionsToRequestParameters(options),\n queryParameters: {\n ...(options.runId && { run_id: options.runId }),\n ...(options.limit && { run_id: options.limit }),\n ...(options.order && { run_id: options.order }),\n ...(options.after && { run_id: options.after }),\n ...(options.before && { run_id: options.before }),\n },\n };\n\n validateThreadId(threadId);\n validateListMessagesParameters(listOptions);\n const output = await TracingUtility.withSpan(\n \"ListMessages\",\n listOptions,\n async (updateOptions) => {\n const result = await context\n .path(\"/threads/{threadId}/messages\", threadId)\n .get(updateOptions);\n if (!expectedStatuses.includes(result.status)) {\n throw createOpenAIError(result);\n }\n return result.body;\n },\n (span, updatedOptions) => traceStartListMessages(span, threadId, updatedOptions),\n traceEndListMessages,\n );\n\n return ConvertFromWire.convertOpenAIPageableListOfThreadMessageOutput(output);\n}\n\n/** Modifies an existing message on an existing thread. */\nexport async function updateMessage(\n context: Client,\n threadId: string,\n messageId: string,\n options: UpdateMessageOptionalParams = {},\n): Promise<ThreadMessageOutput> {\n const updateMessageOptions: GeneratedParameters.UpdateMessageParameters = {\n ...operationOptionsToRequestParameters(options),\n body: {\n ...(options.metadata ? { metadata: options.metadata } : {}),\n },\n };\n validateThreadId(threadId);\n validateMessageId(messageId);\n const response = await TracingUtility.withSpan(\n \"UpdateMessage\",\n updateMessageOptions,\n async (updateOptions) => {\n const result = await context\n .path(\"/threads/{threadId}/messages/{messageId}\", threadId, messageId)\n .post(updateOptions);\n if (!expectedStatuses.includes(result.status)) {\n throw createOpenAIError(result);\n }\n return result.body;\n },\n (span, updatedOptions) =>\n traceStartAgentGeneric(span, {\n ...updatedOptions,\n tracingAttributeOptions: { threadId: threadId, messageId: messageId },\n }),\n );\n\n return ConvertFromWire.convertThreadMessageOutput(response);\n}\n\nfunction validateThreadId(threadId: string): void {\n if (!threadId) {\n throw new Error(\"Thread ID is required\");\n }\n}\n\nfunction validateMessageId(messageId: string): void {\n if (!messageId) {\n throw new Error(\"Message ID is required\");\n }\n}\n\nfunction validateCreateMessageParameters(options: CreateMessageParameters): void {\n if (options.body.role && ![\"user\", \"assistant\"].includes(options.body.role)) {\n throw new Error(\"Role must be either 'user' or 'assistant'\");\n }\n if (options.body.metadata) {\n validateMetadata(options.body.metadata);\n }\n if (options.body.attachments) {\n if (\n options.body.attachments.some((value) => {\n value.tools.some((tool) => ![\"code_interpreter\", \"file_search\"].includes(tool.type));\n })\n ) {\n throw new Error(\"Tool type must be either 'code_interpreter' or 'file_search'\");\n }\n if (options.body.attachments) {\n options.body.attachments.forEach((value) => {\n if (value.data_source) {\n validateVectorStoreDataType([value.data_source]);\n }\n });\n }\n }\n}\n\nfunction validateListMessagesParameters(options?: ListMessagesParameters): void {\n if (\n options?.queryParameters?.limit &&\n (options.queryParameters.limit < 1 || options.queryParameters.limit > 100)\n ) {\n throw new Error(\"Limit must be between 1 and 100\");\n }\n if (options?.queryParameters?.order && ![\"asc\", \"desc\"].includes(options.queryParameters.order)) {\n throw new Error(\"Order must be either 'asc' or 'desc'\");\n }\n}\n"]}
|
|
@@ -1,34 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
updateInternal: (state?: T) => Promise<{
|
|
10
|
-
result: T;
|
|
11
|
-
completed: boolean;
|
|
12
|
-
}>;
|
|
13
|
-
cancelInternal?: (state: T) => Promise<boolean>;
|
|
14
|
-
abortSignal?: AbortSignalLike;
|
|
15
|
-
cancelled?: boolean;
|
|
16
|
-
}
|
|
17
|
-
interface AgentsPollOperation<T extends PollResult> extends PollOperation<AgentsPollOperationState<T>, T> {
|
|
18
|
-
}
|
|
19
|
-
export declare class AgentsPoller<T extends PollResult> extends Poller<AgentsPollOperationState<T>, T> {
|
|
20
|
-
sleepIntervalInMs: number;
|
|
21
|
-
constructor({ update, pollingOptions, cancel, baseOperation, onProgress, }: {
|
|
22
|
-
update: (state?: T) => Promise<{
|
|
23
|
-
result: T;
|
|
24
|
-
completed: boolean;
|
|
25
|
-
}>;
|
|
26
|
-
pollingOptions?: PollingOptions;
|
|
27
|
-
cancel?: (state: T) => Promise<boolean>;
|
|
28
|
-
baseOperation?: AgentsPollOperation<T>;
|
|
29
|
-
onProgress?: (state: AgentsPollOperationState<T>) => void;
|
|
30
|
-
});
|
|
31
|
-
delay(): Promise<void>;
|
|
32
|
-
}
|
|
33
|
-
export {};
|
|
1
|
+
import type { PollerLike, OperationState, OperationStatus } from "@azure/core-lro";
|
|
2
|
+
export declare function createPoller<T>({ initOperation, pollOperation, getOperationStatus, getOperationError, intervalInMs, }: {
|
|
3
|
+
initOperation: () => Promise<T>;
|
|
4
|
+
pollOperation: (currentResult: T) => Promise<T>;
|
|
5
|
+
getOperationStatus: (result: T) => OperationStatus;
|
|
6
|
+
getOperationError?: (result: T) => Error | undefined;
|
|
7
|
+
intervalInMs?: number;
|
|
8
|
+
}): PollerLike<OperationState<T>, T>;
|
|
34
9
|
//# sourceMappingURL=poller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poller.d.ts","sourceRoot":"","sources":["../../../src/agents/poller.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"poller.d.ts","sourceRoot":"","sources":["../../../src/agents/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"}
|
|
@@ -2,63 +2,139 @@
|
|
|
2
2
|
// Copyright (c) Microsoft Corporation.
|
|
3
3
|
// Licensed under the MIT License.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.
|
|
5
|
+
exports.createPoller = createPoller;
|
|
6
6
|
const core_util_1 = require("@azure/core-util");
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
abortSignal: pollingOptions === null || pollingOptions === void 0 ? void 0 : pollingOptions.abortSignal,
|
|
7
|
+
const DEFAULT_POLL_INTERVAL_IN_MS = 1000;
|
|
8
|
+
function createPoller({ initOperation, pollOperation, getOperationStatus, getOperationError, intervalInMs, }) {
|
|
9
|
+
let state;
|
|
10
|
+
const statePromise = initOperation().then((result) => {
|
|
11
|
+
state = {
|
|
12
|
+
result,
|
|
13
|
+
status: getOperationStatus(result),
|
|
15
14
|
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
15
|
+
return state;
|
|
16
|
+
});
|
|
17
|
+
let resultPromise;
|
|
18
|
+
const abortController = new AbortController();
|
|
19
|
+
const handlers = new Map();
|
|
20
|
+
const handleProgressEvents = async () => handlers.forEach((h) => h(state));
|
|
21
|
+
const currentPollIntervalInMs = intervalInMs !== null && intervalInMs !== void 0 ? intervalInMs : DEFAULT_POLL_INTERVAL_IN_MS;
|
|
22
|
+
const poller = {
|
|
23
|
+
get operationState() {
|
|
24
|
+
return state;
|
|
25
|
+
},
|
|
26
|
+
get result() {
|
|
27
|
+
return state === null || state === void 0 ? void 0 : state.result;
|
|
28
|
+
},
|
|
29
|
+
get isDone() {
|
|
30
|
+
var _a;
|
|
31
|
+
return ["succeeded", "failed", "canceled"].includes((_a = state === null || state === void 0 ? void 0 : state.status) !== null && _a !== void 0 ? _a : "");
|
|
32
|
+
},
|
|
33
|
+
onProgress: (callback) => {
|
|
34
|
+
const s = Symbol();
|
|
35
|
+
handlers.set(s, callback);
|
|
36
|
+
return () => handlers.delete(s);
|
|
37
|
+
},
|
|
38
|
+
serialize: async () => {
|
|
39
|
+
await statePromise;
|
|
40
|
+
return JSON.stringify({
|
|
41
|
+
state,
|
|
42
|
+
});
|
|
43
|
+
},
|
|
44
|
+
submitted: async () => {
|
|
45
|
+
await statePromise;
|
|
46
|
+
},
|
|
47
|
+
pollUntilDone: async (pollOptions) => {
|
|
48
|
+
resultPromise !== null && resultPromise !== void 0 ? resultPromise : (resultPromise = (async () => {
|
|
49
|
+
var _a;
|
|
50
|
+
await statePromise;
|
|
51
|
+
if (!state) {
|
|
52
|
+
throw new Error("Poller is not initialized");
|
|
53
|
+
}
|
|
54
|
+
const { abortSignal: inputAbortSignal } = pollOptions || {};
|
|
55
|
+
function abortListener() {
|
|
56
|
+
abortController.abort();
|
|
57
|
+
}
|
|
58
|
+
const abortSignal = abortController.signal;
|
|
59
|
+
if (inputAbortSignal === null || inputAbortSignal === void 0 ? void 0 : inputAbortSignal.aborted) {
|
|
60
|
+
abortController.abort();
|
|
61
|
+
}
|
|
62
|
+
else if (!abortSignal.aborted) {
|
|
63
|
+
inputAbortSignal === null || inputAbortSignal === void 0 ? void 0 : inputAbortSignal.addEventListener("abort", abortListener, { once: true });
|
|
64
|
+
}
|
|
65
|
+
try {
|
|
66
|
+
if (!poller.isDone) {
|
|
67
|
+
await poller.poll({ abortSignal });
|
|
68
|
+
while (!poller.isDone) {
|
|
69
|
+
await (0, core_util_1.delay)(currentPollIntervalInMs, { abortSignal });
|
|
70
|
+
await poller.poll({ abortSignal });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
finally {
|
|
75
|
+
inputAbortSignal === null || inputAbortSignal === void 0 ? void 0 : inputAbortSignal.removeEventListener("abort", abortListener);
|
|
76
|
+
}
|
|
77
|
+
switch (state.status) {
|
|
78
|
+
case "succeeded":
|
|
79
|
+
return poller.result;
|
|
80
|
+
case "canceled":
|
|
81
|
+
throw new Error("Operation cancelled");
|
|
82
|
+
case "failed":
|
|
83
|
+
throw (_a = state.error) !== null && _a !== void 0 ? _a : new Error("Operation failed");
|
|
84
|
+
case "notStarted":
|
|
85
|
+
case "running":
|
|
86
|
+
throw new Error("Polling completed without succeeding or failing");
|
|
87
|
+
}
|
|
88
|
+
})().finally(() => {
|
|
89
|
+
resultPromise = undefined;
|
|
90
|
+
}));
|
|
91
|
+
return resultPromise;
|
|
92
|
+
},
|
|
93
|
+
async poll(pollOptions) {
|
|
94
|
+
var _a, _b, _c;
|
|
95
|
+
// Check state before polling
|
|
96
|
+
await statePromise;
|
|
97
|
+
if (!state || !state.result) {
|
|
98
|
+
throw new Error("Poller is not initialized");
|
|
99
|
+
}
|
|
100
|
+
switch (state.status) {
|
|
101
|
+
case "succeeded":
|
|
102
|
+
return state;
|
|
103
|
+
case "canceled":
|
|
104
|
+
throw new Error("Operation was canceled");
|
|
105
|
+
case "failed":
|
|
106
|
+
throw (_a = state.error) !== null && _a !== void 0 ? _a : new Error("Operation failed");
|
|
107
|
+
}
|
|
108
|
+
// Poll
|
|
109
|
+
if ((_b = pollOptions === null || pollOptions === void 0 ? void 0 : pollOptions.abortSignal) === null || _b === void 0 ? void 0 : _b.aborted) {
|
|
110
|
+
throw new Error("Operation aborted");
|
|
111
|
+
}
|
|
112
|
+
const result = await pollOperation(state.result);
|
|
113
|
+
state = {
|
|
114
|
+
result,
|
|
115
|
+
status: getOperationStatus(result),
|
|
116
|
+
error: getOperationError ? getOperationError(result) : undefined,
|
|
117
|
+
};
|
|
118
|
+
await handleProgressEvents();
|
|
119
|
+
switch (state.status) {
|
|
120
|
+
case "canceled":
|
|
121
|
+
throw new Error("Operation was canceled");
|
|
122
|
+
case "failed":
|
|
123
|
+
throw (_c = state.error) !== null && _c !== void 0 ? _c : new Error("Operation failed");
|
|
124
|
+
}
|
|
125
|
+
return state;
|
|
126
|
+
},
|
|
127
|
+
then(onfulfilled, onrejected) {
|
|
128
|
+
return poller.pollUntilDone().then(onfulfilled, onrejected);
|
|
129
|
+
},
|
|
130
|
+
catch(onrejected) {
|
|
131
|
+
return poller.pollUntilDone().catch(onrejected);
|
|
132
|
+
},
|
|
133
|
+
finally(onfinally) {
|
|
134
|
+
return poller.pollUntilDone().finally(onfinally);
|
|
135
|
+
},
|
|
136
|
+
[Symbol.toStringTag]: "Poller",
|
|
42
137
|
};
|
|
43
|
-
|
|
44
|
-
async function updateWrapper() {
|
|
45
|
-
var _a;
|
|
46
|
-
if ((_a = this.state.abortSignal) === null || _a === void 0 ? void 0 : _a.aborted) {
|
|
47
|
-
return makeOperation(this.state);
|
|
48
|
-
}
|
|
49
|
-
const { result, completed } = await this.state.updateInternal(this.state.result);
|
|
50
|
-
this.state.result = result;
|
|
51
|
-
this.state.isCompleted = completed;
|
|
52
|
-
return makeOperation(this.state);
|
|
53
|
-
}
|
|
54
|
-
async function cancelWrapper() {
|
|
55
|
-
if (!this.state.result || !this.state.cancelInternal) {
|
|
56
|
-
return makeOperation(Object.assign(Object.assign({}, this.state), { cancelled: false }));
|
|
57
|
-
}
|
|
58
|
-
const cancelled = await this.state.cancelInternal(this.state.result);
|
|
59
|
-
return makeOperation(Object.assign(Object.assign({}, this.state), { cancelled: cancelled }));
|
|
60
|
-
}
|
|
61
|
-
function toString() {
|
|
62
|
-
return JSON.stringify(this.state);
|
|
138
|
+
return poller;
|
|
63
139
|
}
|
|
64
140
|
//# sourceMappingURL=poller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poller.js","sourceRoot":"","sources":["../../../src/agents/poller.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC
|
|
1
|
+
{"version":3,"file":"poller.js","sourceRoot":"","sources":["../../../src/agents/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"]}
|
|
@@ -2,21 +2,23 @@ import type { MessageDeltaChunk, RunStepDeltaChunk } from "../customization/stre
|
|
|
2
2
|
import type { AgentThreadOutput, RunStepOutput, ThreadMessageOutput, ThreadRunOutput } from "../customization/outputModels.js";
|
|
3
3
|
/**
|
|
4
4
|
Each event in a server-sent events stream has an `event` and `data` property:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
`thread.message.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ``` ts
|
|
8
|
+
* event: thread.created
|
|
9
|
+
* data: {"id": "thread_123", "object": "thread", ...}
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* We emit events whenever a new object is created, transitions to a new state, or is being
|
|
13
|
+
* streamed in parts (deltas). For example, we emit `thread.run.created` when a new run
|
|
14
|
+
* is created, `thread.run.completed` when a run completes, and so on. When an Agent chooses
|
|
15
|
+
* to create a message during a run, we emit a `thread.message.created event`, a
|
|
16
|
+
* `thread.message.in_progress` event, many `thread.message.delta` events, and finally a
|
|
17
|
+
* `thread.message.completed` event.
|
|
18
|
+
*
|
|
19
|
+
* We may add additional events over time, so we recommend handling unknown events gracefully
|
|
20
|
+
* in your code.
|
|
21
|
+
**/
|
|
20
22
|
export interface AgentEventMessage {
|
|
21
23
|
/** The data of the event. The data can be of type AgentThreadOutput, ThreadRunOutput, RunStepOutput, ThreadMessageOutput, MessageDeltaChunk,RunStepDeltaChunk */
|
|
22
24
|
data: AgentEventStreamDataOutput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamingModels.d.ts","sourceRoot":"","sources":["../../../src/agents/streamingModels.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAChG,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAE1C
|
|
1
|
+
{"version":3,"file":"streamingModels.d.ts","sourceRoot":"","sources":["../../../src/agents/streamingModels.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAChG,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAE1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,iBAAiB;IAChC,kKAAkK;IAClK,IAAI,EAAE,0BAA0B,CAAC;IACjC,6BAA6B;IAC7B,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAAC;CACtC;AAED,mDAAmD;AACnD,MAAM,MAAM,0BAA0B,GAClC,iBAAiB,GACjB,eAAe,GACf,aAAa,GACb,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,MAAM,CAAC;AAEX,gDAAgD;AAChD,oBAAY,iBAAiB;IAC3B,6FAA6F;IAC7F,aAAa,mBAAmB;CACjC;AAED,6CAA6C;AAC7C,oBAAY,cAAc;IACxB,wFAAwF;IACxF,gBAAgB,uBAAuB;IAEvC,kGAAkG;IAClG,eAAe,sBAAsB;IAErC,uGAAuG;IACvG,mBAAmB,2BAA2B;IAE9C,2GAA2G;IAC3G,uBAAuB,+BAA+B;IAEtD,sFAAsF;IACtF,kBAAkB,yBAAyB;IAE3C,+EAA+E;IAC/E,eAAe,sBAAsB;IAErC,sGAAsG;IACtG,mBAAmB,0BAA0B;IAE7C,sFAAsF;IACtF,kBAAkB,yBAAyB;IAE3C,oFAAoF;IACpF,gBAAgB,uBAAuB;CACxC;AAED,kDAAkD;AAClD,oBAAY,kBAAkB;IAC5B,kGAAkG;IAClG,oBAAoB,4BAA4B;IAEhD,0GAA0G;IAC1G,uBAAuB,gCAAgC;IAEvD,wGAAwG;IACxG,kBAAkB,0BAA0B;IAE5C,yFAAyF;IACzF,sBAAsB,8BAA8B;IAEpD,kFAAkF;IAClF,mBAAmB,2BAA2B;IAE9C,yFAAyF;IACzF,sBAAsB,8BAA8B;IAEpD,uFAAuF;IACvF,oBAAoB,4BAA4B;CACjD;AAED,iDAAiD;AACjD,oBAAY,kBAAkB;IAC5B,gGAAgG;IAChG,oBAAoB,2BAA2B;IAE/C,+GAA+G;IAC/G,uBAAuB,+BAA+B;IAEtD,uGAAuG;IACvG,kBAAkB,yBAAyB;IAE3C,8FAA8F;IAC9F,sBAAsB,6BAA6B;IAEnD,gGAAgG;IAChG,uBAAuB,8BAA8B;CACtD;AAED,qEAAqE;AACrE,oBAAY,UAAU;IACpB,sFAAsF;IACtF,KAAK,UAAU;CAChB;AAED,gEAAgE;AAChE,oBAAY,SAAS;IACnB,0CAA0C;IAC1C,IAAI,SAAS;CACd;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC5B,iBAAiB,GACjB,cAAc,GACd,kBAAkB,GAClB,kBAAkB,GAClB,UAAU,GACV,SAAS,CAAC;AAEd,kDAAkD;AAClD,MAAM,WAAW,uBACf,SAAQ,eAAe,EACrB,aAAa,CAAC,iBAAiB,CAAC;CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamingModels.js","sourceRoot":"","sources":["../../../src/agents/streamingModels.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;
|
|
1
|
+
{"version":3,"file":"streamingModels.js","sourceRoot":"","sources":["../../../src/agents/streamingModels.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AA8ClC,gDAAgD;AAChD,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,6FAA6F;IAC7F,qDAAgC,CAAA;AAClC,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;AAED,6CAA6C;AAC7C,IAAY,cA2BX;AA3BD,WAAY,cAAc;IACxB,wFAAwF;IACxF,yDAAuC,CAAA;IAEvC,kGAAkG;IAClG,uDAAqC,CAAA;IAErC,uGAAuG;IACvG,gEAA8C,CAAA;IAE9C,2GAA2G;IAC3G,wEAAsD,CAAA;IAEtD,sFAAsF;IACtF,6DAA2C,CAAA;IAE3C,+EAA+E;IAC/E,uDAAqC,CAAA;IAErC,sGAAsG;IACtG,+DAA6C,CAAA;IAE7C,sFAAsF;IACtF,6DAA2C,CAAA;IAE3C,oFAAoF;IACpF,yDAAuC,CAAA;AACzC,CAAC,EA3BW,cAAc,8BAAd,cAAc,QA2BzB;AAED,kDAAkD;AAClD,IAAY,kBAqBX;AArBD,WAAY,kBAAkB;IAC5B,kGAAkG;IAClG,sEAAgD,CAAA;IAEhD,0GAA0G;IAC1G,6EAAuD,CAAA;IAEvD,wGAAwG;IACxG,kEAA4C,CAAA;IAE5C,yFAAyF;IACzF,0EAAoD,CAAA;IAEpD,kFAAkF;IAClF,oEAA8C,CAAA;IAE9C,yFAAyF;IACzF,0EAAoD,CAAA;IAEpD,uFAAuF;IACvF,sEAAgD,CAAA;AAClD,CAAC,EArBW,kBAAkB,kCAAlB,kBAAkB,QAqB7B;AAED,iDAAiD;AACjD,IAAY,kBAeX;AAfD,WAAY,kBAAkB;IAC5B,gGAAgG;IAChG,qEAA+C,CAAA;IAE/C,+GAA+G;IAC/G,4EAAsD,CAAA;IAEtD,uGAAuG;IACvG,iEAA2C,CAAA;IAE3C,8FAA8F;IAC9F,yEAAmD,CAAA;IAEnD,gGAAgG;IAChG,2EAAqD,CAAA;AACvD,CAAC,EAfW,kBAAkB,kCAAlB,kBAAkB,QAe7B;AAED,qEAAqE;AACrE,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,sFAAsF;IACtF,6BAAe,CAAA;AACjB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB;AAED,gEAAgE;AAChE,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,0CAA0C;IAC1C,0BAAa,CAAA;AACf,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { MessageDeltaChunk, RunStepDeltaChunk } from \"../customization/streamingModels.js\";\nimport type {\n AgentThreadOutput,\n RunStepOutput,\n ThreadMessageOutput,\n ThreadRunOutput,\n} from \"../customization/outputModels.js\";\n\n/**\nEach event in a server-sent events stream has an `event` and `data` property:\n* \n* @example\n* ``` ts\n* event: thread.created\n* data: {\"id\": \"thread_123\", \"object\": \"thread\", ...}\n* ``` \n* \n* We emit events whenever a new object is created, transitions to a new state, or is being\n* streamed in parts (deltas). For example, we emit `thread.run.created` when a new run\n* is created, `thread.run.completed` when a run completes, and so on. When an Agent chooses\n* to create a message during a run, we emit a `thread.message.created event`, a\n* `thread.message.in_progress` event, many `thread.message.delta` events, and finally a\n* `thread.message.completed` event.\n* \n* We may add additional events over time, so we recommend handling unknown events gracefully\n* in your code.\n**/\nexport interface AgentEventMessage {\n /** The data of the event. The data can be of type AgentThreadOutput, ThreadRunOutput, RunStepOutput, ThreadMessageOutput, MessageDeltaChunk,RunStepDeltaChunk */\n data: AgentEventStreamDataOutput;\n /** The type of the event. */\n event: AgentStreamEventType | string;\n}\n\n/** Represents a stream event data in the agent. */\nexport type AgentEventStreamDataOutput =\n | AgentThreadOutput\n | ThreadRunOutput\n | RunStepOutput\n | ThreadMessageOutput\n | MessageDeltaChunk\n | RunStepDeltaChunk\n | string;\n\n/** Thread operation related streaming events */\nexport enum ThreadStreamEvent {\n /** Event sent when a new thread is created. The data of this event is of type AgentThread */\n ThreadCreated = \"thread.created\",\n}\n\n/** Run operation related streaming events */\nexport enum RunStreamEvent {\n /** Event sent when a new run is created. The data of this event is of type ThreadRun */\n ThreadRunCreated = \"thread.run.created\",\n\n /** Event sent when a run moves to `queued` status. The data of this event is of type ThreadRun */\n ThreadRunQueued = \"thread.run.queued\",\n\n /** Event sent when a run moves to `in_progress` status. The data of this event is of type ThreadRun */\n ThreadRunInProgress = \"thread.run.in_progress\",\n\n /** Event sent when a run moves to `requires_action` status. The data of this event is of type ThreadRun */\n ThreadRunRequiresAction = \"thread.run.requires_action\",\n\n /** Event sent when a run is completed. The data of this event is of type ThreadRun */\n ThreadRunCompleted = \"thread.run.completed\",\n\n /** Event sent when a run fails. The data of this event is of type ThreadRun */\n ThreadRunFailed = \"thread.run.failed\",\n\n /** Event sent when a run moves to `cancelling` status. The data of this event is of type ThreadRun */\n ThreadRunCancelling = \"thread.run.cancelling\",\n\n /** Event sent when a run is cancelled. The data of this event is of type ThreadRun */\n ThreadRunCancelled = \"thread.run.cancelled\",\n\n /** Event sent when a run is expired. The data of this event is of type ThreadRun */\n ThreadRunExpired = \"thread.run.expired\",\n}\n\n/** Run step operation related streaming events */\nexport enum RunStepStreamEvent {\n /** Event sent when a new thread run step is created. The data of this event is of type RunStep */\n ThreadRunStepCreated = \"thread.run.step.created\",\n\n /** Event sent when a run step moves to `in_progress` status. The data of this event is of type RunStep */\n ThreadRunStepInProgress = \"thread.run.step.in_progress\",\n\n /** Event sent when a run step is being streamed. The data of this event is of type RunStepDeltaChunk */\n ThreadRunStepDelta = \"thread.run.step.delta\",\n\n /** Event sent when a run step is completed. The data of this event is of type RunStep */\n ThreadRunStepCompleted = \"thread.run.step.completed\",\n\n /** Event sent when a run step fails. The data of this event is of type RunStep */\n ThreadRunStepFailed = \"thread.run.step.failed\",\n\n /** Event sent when a run step is cancelled. The data of this event is of type RunStep */\n ThreadRunStepCancelled = \"thread.run.step.cancelled\",\n\n /** Event sent when a run step is expired. The data of this event is of type RunStep */\n ThreadRunStepExpired = \"thread.run.step.expired\",\n}\n\n/** Message operation related streaming events */\nexport enum MessageStreamEvent {\n /** Event sent when a new message is created. The data of this event is of type ThreadMessage */\n ThreadMessageCreated = \"thread.message.created\",\n\n /** Event sent when a message moves to `in_progress` status. The data of this event is of type ThreadMessage */\n ThreadMessageInProgress = \"thread.message.in_progress\",\n\n /** Event sent when a message is being streamed. The data of this event is of type MessageDeltaChunk */\n ThreadMessageDelta = \"thread.message.delta\",\n\n /** Event sent when a message is completed. The data of this event is of type ThreadMessage */\n ThreadMessageCompleted = \"thread.message.completed\",\n\n /** Event sent before a message is completed. The data of this event is of type ThreadMessage */\n ThreadMessageIncomplete = \"thread.message.incomplete\",\n}\n\n/** Terminal event indicating a server side error while streaming. */\nexport enum ErrorEvent {\n /** Event sent when an error occurs, such as an internal server error or a timeout. */\n Error = \"error\",\n}\n\n/** Terminal event indicating the successful end of a stream. */\nexport enum DoneEvent {\n /** Event sent when the stream is done. */\n Done = \"done\",\n}\n\n/**\n Represents the type of an agent stream event.\n */\nexport type AgentStreamEventType =\n | ThreadStreamEvent\n | RunStreamEvent\n | RunStepStreamEvent\n | MessageStreamEvent\n | ErrorEvent\n | DoneEvent;\n\n/** Represents a stream of agent event message. */\nexport interface AgentEventMessageStream\n extends AsyncDisposable,\n AsyncIterable<AgentEventMessage> {}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AgentsApiResponseFormatOption,
|
|
2
|
-
import type { RunStepCompletionUsageOutput } from "../generated/src/outputModels.js";
|
|
1
|
+
import type { AgentsApiResponseFormatOption, ThreadMessageOptions, ToolOutput } from "../generated/src/models.js";
|
|
2
|
+
import type { RunStepCompletionUsageOutput, ThreadMessageOutput } from "../generated/src/outputModels.js";
|
|
3
3
|
import type { OptionsWithTracing, Span, TracingAttributeOptions } from "../tracing.js";
|
|
4
4
|
export declare function traceStartAgentGeneric<Options extends OptionsWithTracing>(span: Span, options: Options): void;
|
|
5
5
|
export declare function traceEndAgentGeneric<Options extends OptionsWithTracing>(span: Span, _options: Options): void;
|
|
@@ -9,7 +9,7 @@ export declare function UpdateWithAgentAttributes(attributeOptions: Omit<Tracing
|
|
|
9
9
|
* @param span - The span to add the event to.
|
|
10
10
|
* @param messageAttributes - The attributes of the message event.
|
|
11
11
|
*/
|
|
12
|
-
export declare function addMessageEvent(span: Span, messageAttributes: ThreadMessageOptions |
|
|
12
|
+
export declare function addMessageEvent(span: Span, messageAttributes: ThreadMessageOptions | ThreadMessageOutput, usage?: RunStepCompletionUsageOutput): void;
|
|
13
13
|
/**
|
|
14
14
|
* Adds an instruction event to the span.
|
|
15
15
|
* @param span - The span to add the event to.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traceUtility.d.ts","sourceRoot":"","sources":["../../../src/agents/traceUtility.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,6BAA6B,
|
|
1
|
+
{"version":3,"file":"traceUtility.d.ts","sourceRoot":"","sources":["../../../src/agents/traceUtility.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,6BAA6B,EAC7B,oBAAoB,EACpB,UAAU,EACX,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAEV,4BAA4B,EAC5B,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAIvF,wBAAgB,sBAAsB,CAAC,OAAO,SAAS,kBAAkB,EACvE,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,GACf,IAAI,CAON;AACD,wBAAgB,oBAAoB,CAAC,OAAO,SAAS,kBAAkB,EACrE,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,OAAO,GAChB,IAAI,CAGN;AAED,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,IAAI,CAAC,uBAAuB,EAAE,eAAe,CAAC,GAC/D,IAAI,CAAC,uBAAuB,EAAE,eAAe,CAAC,CAGhD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,IAAI,EACV,iBAAiB,EAAE,oBAAoB,GAAG,mBAAmB,EAC7D,KAAK,CAAC,EAAE,4BAA4B,GACnC,IAAI,CAuCN;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,qBAAqB,EAAE;IACrB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACA,IAAI,CAeN;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,6BAA6B,GAAG,IAAI,GAAG,SAAS,GAC/D,MAAM,GAAG,SAAS,CAYpB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAQtF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traceUtility.js","sourceRoot":"","sources":["../../../src/agents/traceUtility.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n AgentsApiResponseFormat,\n AgentsApiResponseFormatOption,\n MessageContent,\n ThreadMessage,\n ThreadMessageOptions,\n ToolOutput,\n} from \"../generated/src/models.js\";\nimport type { RunStepCompletionUsageOutput } from \"../generated/src/outputModels.js\";\nimport type { OptionsWithTracing, Span, TracingAttributeOptions } from \"../tracing.js\";\nimport { TracingAttributes, TracingUtility } from \"../tracing.js\";\nimport { getTelemetryOptions } from \"../telemetry/telemetry.js\";\n\nexport function traceStartAgentGeneric<Options extends OptionsWithTracing>(\n span: Span,\n options: Options,\n): void {\n const attributeOptions = options.tracingAttributeOptions || {};\n TracingUtility.setSpanAttributes(\n span,\n options.tracingAttributeOptions?.operationName || \"Agent_Operation\",\n UpdateWithAgentAttributes(attributeOptions),\n );\n}\nexport function traceEndAgentGeneric<Options extends OptionsWithTracing>(\n span: Span,\n _options: Options,\n): void {\n const attributeOptions = {};\n TracingUtility.updateSpanAttributes(span, UpdateWithAgentAttributes(attributeOptions));\n}\n\nexport function UpdateWithAgentAttributes(\n attributeOptions: Omit<TracingAttributeOptions, \"operationName\">,\n): Omit<TracingAttributeOptions, \"operationName\"> {\n attributeOptions.genAiSystem = TracingAttributes.AZ_AI_AGENT_SYSTEM;\n return attributeOptions;\n}\n\n/**\n * Adds a message event to the span.\n * @param span - The span to add the event to.\n * @param messageAttributes - The attributes of the message event.\n */\nexport function addMessageEvent(\n span: Span,\n messageAttributes: ThreadMessageOptions | ThreadMessage,\n usage?: RunStepCompletionUsageOutput,\n): void {\n const eventBody: Record<string, unknown> = {};\n const telemetryOptions = getTelemetryOptions();\n if (telemetryOptions.enableContentRecording) {\n eventBody.content = getMessageContent(messageAttributes.content);\n }\n eventBody.role = messageAttributes.role;\n if (messageAttributes.attachments) {\n eventBody.attachments = messageAttributes.attachments.map((attachment) => {\n return {\n id: attachment.file_id,\n tools: attachment.tools.map((tool) => tool.type),\n };\n });\n }\n const threadId = (messageAttributes as ThreadMessage).thread_id;\n const agentId = (messageAttributes as ThreadMessage).assistant_id ?? undefined;\n const threadRunId = (messageAttributes as ThreadMessage).run_id;\n const messageStatus = (messageAttributes as ThreadMessage).status;\n const messageId = (messageAttributes as ThreadMessage).id;\n const incompleteDetails = (messageAttributes as ThreadMessage).incomplete_details;\n if (incompleteDetails) {\n eventBody.incomplete_details = incompleteDetails;\n }\n const usagePromptTokens = usage?.prompt_tokens;\n const usageCompletionTokens = usage?.completion_tokens;\n const attributes = {\n eventContent: JSON.stringify(eventBody),\n threadId,\n agentId,\n threadRunId,\n messageStatus,\n messageId,\n usagePromptTokens,\n usageCompletionTokens,\n genAiSystem: TracingAttributes.AZ_AI_AGENT_SYSTEM,\n };\n TracingUtility.addSpanEvent(span, `gen_ai.${messageAttributes.role}.message`, attributes);\n}\n\n/**\n * Adds an instruction event to the span.\n * @param span - The span to add the event to.\n * @param instructionAttributes - The attributes of the instruction event.\n */\nexport function addInstructionsEvent(\n span: Span,\n instructionAttributes: {\n instructions?: string | null;\n additional_instructions?: string | null;\n threadId?: string;\n agentId?: string;\n },\n): void {\n const eventBody: Record<string, unknown> = {};\n if (instructionAttributes.instructions || instructionAttributes.additional_instructions) {\n eventBody.content =\n instructionAttributes.instructions && instructionAttributes.additional_instructions\n ? `${instructionAttributes.instructions} ${instructionAttributes.additional_instructions}`\n : instructionAttributes.instructions || instructionAttributes.additional_instructions;\n }\n const attributes = {\n eventContent: JSON.stringify(eventBody),\n threadId: instructionAttributes.threadId,\n agentId: instructionAttributes.agentId,\n genAiSystem: TracingAttributes.AZ_AI_AGENT_SYSTEM,\n };\n TracingUtility.addSpanEvent(span, \"gen_ai.system.message\", attributes);\n}\n\n/**\n * Formats the agent API response.\n * @param responseFormat - The response format option.\n * @returns The formatted response as a string, or null/undefined.\n */\nexport function formatAgentApiResponse(\n responseFormat: AgentsApiResponseFormatOption | null | undefined,\n): string | undefined {\n if (\n typeof responseFormat === \"string\" ||\n responseFormat === undefined ||\n responseFormat === null\n ) {\n return responseFormat ?? undefined;\n }\n if ((responseFormat as AgentsApiResponseFormat).type) {\n return (responseFormat as AgentsApiResponseFormat).type ?? undefined;\n }\n return undefined;\n}\n\n/**\n * Adds a tool messages event to the span\n * @param span - The span to add the event to.\n * @param tool_outputs - List of tool oupts\n */\nexport function addToolMessagesEvent(span: Span, tool_outputs: Array<ToolOutput>): void {\n tool_outputs.forEach((tool_output) => {\n const eventBody = { content: tool_output.output, id: tool_output.tool_call_id };\n TracingUtility.addSpanEvent(span, \"gen_ai.tool.message\", {\n eventContent: JSON.stringify(eventBody),\n genAiSystem: TracingAttributes.AZ_AI_AGENT_SYSTEM,\n });\n });\n}\n\nfunction getMessageContent(messageContent: string | MessageContent[]): string | {} {\n type MessageContentExtended = MessageContent & { [key: string]: any };\n if (!Array.isArray(messageContent)) {\n return messageContent;\n }\n const contentBody: { [key: string]: any } = {};\n messageContent.forEach((content) => {\n const typedContent = content.type;\n const { value, annotations } = (content as MessageContentExtended)[typedContent];\n contentBody[typedContent] = { value, annotations };\n });\n return contentBody;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"traceUtility.js","sourceRoot":"","sources":["../../../src/agents/traceUtility.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n AgentsApiResponseFormat,\n AgentsApiResponseFormatOption,\n ThreadMessageOptions,\n ToolOutput,\n} from \"../generated/src/models.js\";\nimport type {\n MessageContentOutput,\n RunStepCompletionUsageOutput,\n ThreadMessageOutput,\n} from \"../generated/src/outputModels.js\";\nimport type { OptionsWithTracing, Span, TracingAttributeOptions } from \"../tracing.js\";\nimport { TracingAttributes, TracingUtility } from \"../tracing.js\";\nimport { getTelemetryOptions } from \"../telemetry/telemetry.js\";\n\nexport function traceStartAgentGeneric<Options extends OptionsWithTracing>(\n span: Span,\n options: Options,\n): void {\n const attributeOptions = options.tracingAttributeOptions || {};\n TracingUtility.setSpanAttributes(\n span,\n options.tracingAttributeOptions?.operationName || \"Agent_Operation\",\n UpdateWithAgentAttributes(attributeOptions),\n );\n}\nexport function traceEndAgentGeneric<Options extends OptionsWithTracing>(\n span: Span,\n _options: Options,\n): void {\n const attributeOptions = {};\n TracingUtility.updateSpanAttributes(span, UpdateWithAgentAttributes(attributeOptions));\n}\n\nexport function UpdateWithAgentAttributes(\n attributeOptions: Omit<TracingAttributeOptions, \"operationName\">,\n): Omit<TracingAttributeOptions, \"operationName\"> {\n attributeOptions.genAiSystem = TracingAttributes.AZ_AI_AGENT_SYSTEM;\n return attributeOptions;\n}\n\n/**\n * Adds a message event to the span.\n * @param span - The span to add the event to.\n * @param messageAttributes - The attributes of the message event.\n */\nexport function addMessageEvent(\n span: Span,\n messageAttributes: ThreadMessageOptions | ThreadMessageOutput,\n usage?: RunStepCompletionUsageOutput,\n): void {\n const eventBody: Record<string, unknown> = {};\n const telemetryOptions = getTelemetryOptions();\n if (telemetryOptions.enableContentRecording) {\n eventBody.content = getMessageContent(messageAttributes.content);\n }\n eventBody.role = messageAttributes.role;\n if (messageAttributes.attachments) {\n eventBody.attachments = messageAttributes.attachments.map((attachment) => {\n return {\n id: attachment.file_id,\n tools: attachment.tools.map((tool) => tool.type),\n };\n });\n }\n const threadId = (messageAttributes as ThreadMessageOutput).thread_id;\n const agentId = (messageAttributes as ThreadMessageOutput).assistant_id ?? undefined;\n const threadRunId = (messageAttributes as ThreadMessageOutput).run_id;\n const messageStatus = (messageAttributes as ThreadMessageOutput).status;\n const messageId = (messageAttributes as ThreadMessageOutput).id;\n const incompleteDetails = (messageAttributes as ThreadMessageOutput).incomplete_details;\n if (incompleteDetails) {\n eventBody.incomplete_details = incompleteDetails;\n }\n const usagePromptTokens = usage?.prompt_tokens;\n const usageCompletionTokens = usage?.completion_tokens;\n const attributes = {\n eventContent: JSON.stringify(eventBody),\n threadId,\n agentId,\n threadRunId,\n messageStatus,\n messageId,\n usagePromptTokens,\n usageCompletionTokens,\n genAiSystem: TracingAttributes.AZ_AI_AGENT_SYSTEM,\n };\n\n TracingUtility.addSpanEvent(span, `gen_ai.${messageAttributes.role}.message`, attributes);\n}\n\n/**\n * Adds an instruction event to the span.\n * @param span - The span to add the event to.\n * @param instructionAttributes - The attributes of the instruction event.\n */\nexport function addInstructionsEvent(\n span: Span,\n instructionAttributes: {\n instructions?: string | null;\n additional_instructions?: string | null;\n threadId?: string;\n agentId?: string;\n },\n): void {\n const eventBody: Record<string, unknown> = {};\n if (instructionAttributes.instructions || instructionAttributes.additional_instructions) {\n eventBody.content =\n instructionAttributes.instructions && instructionAttributes.additional_instructions\n ? `${instructionAttributes.instructions} ${instructionAttributes.additional_instructions}`\n : instructionAttributes.instructions || instructionAttributes.additional_instructions;\n }\n const attributes = {\n eventContent: JSON.stringify(eventBody),\n threadId: instructionAttributes.threadId,\n agentId: instructionAttributes.agentId,\n genAiSystem: TracingAttributes.AZ_AI_AGENT_SYSTEM,\n };\n TracingUtility.addSpanEvent(span, \"gen_ai.system.message\", attributes);\n}\n\n/**\n * Formats the agent API response.\n * @param responseFormat - The response format option.\n * @returns The formatted response as a string, or null/undefined.\n */\nexport function formatAgentApiResponse(\n responseFormat: AgentsApiResponseFormatOption | null | undefined,\n): string | undefined {\n if (\n typeof responseFormat === \"string\" ||\n responseFormat === undefined ||\n responseFormat === null\n ) {\n return responseFormat ?? undefined;\n }\n if ((responseFormat as AgentsApiResponseFormat).type) {\n return (responseFormat as AgentsApiResponseFormat).type ?? undefined;\n }\n return undefined;\n}\n\n/**\n * Adds a tool messages event to the span\n * @param span - The span to add the event to.\n * @param tool_outputs - List of tool oupts\n */\nexport function addToolMessagesEvent(span: Span, tool_outputs: Array<ToolOutput>): void {\n tool_outputs.forEach((tool_output) => {\n const eventBody = { content: tool_output.output, id: tool_output.tool_call_id };\n TracingUtility.addSpanEvent(span, \"gen_ai.tool.message\", {\n eventContent: JSON.stringify(eventBody),\n genAiSystem: TracingAttributes.AZ_AI_AGENT_SYSTEM,\n });\n });\n}\n\nfunction getMessageContent(messageContent: string | MessageContentOutput[]): string | {} {\n type MessageContentExtended = MessageContentOutput & { [key: string]: any };\n if (!Array.isArray(messageContent)) {\n return messageContent;\n }\n const contentBody: { [key: string]: any } = {};\n messageContent.forEach((content) => {\n const typedContent = content.type;\n const { value, annotations } = (content as MessageContentExtended)[typedContent];\n contentBody[typedContent] = { value, annotations };\n });\n return contentBody;\n}\n"]}
|