diff --git a/eng/emitter-package-lock.json b/eng/emitter-package-lock.json index 0170a49488f0..435e754bbc44 100644 --- a/eng/emitter-package-lock.json +++ b/eng/emitter-package-lock.json @@ -1,21 +1,18 @@ { - "name": "dist/src/index.js", + "name": "emitter-consumer", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "dist/src/index.js", "dependencies": { - "@azure-tools/typespec-python": "0.60.1" + "@azure-tools/typespec-python": "https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-js-test-autorest@local/npm/registry/@azure-tools/typespec-python/-/typespec-python-0.60.1-alpha.20260220.1.tgz" }, "devDependencies": { - "@azure-tools/openai-typespec": "1.8.0", "@azure-tools/typespec-autorest": "~0.65.0", "@azure-tools/typespec-azure-core": "~0.65.0", "@azure-tools/typespec-azure-resource-manager": "~0.65.0", "@azure-tools/typespec-azure-rulesets": "~0.65.0", - "@azure-tools/typespec-client-generator-core": "~0.65.0", - "@azure-tools/typespec-liftr-base": "0.11.0", + "@azure-tools/typespec-client-generator-core": "~0.65.1", "@typespec/compiler": "^1.9.0", "@typespec/events": "~0.79.0", "@typespec/http": "^1.9.0", @@ -27,21 +24,11 @@ "@typespec/xml": "~0.79.0" } }, - "node_modules/@azure-tools/openai-typespec": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@azure-tools/openai-typespec/-/openai-typespec-1.8.0.tgz", - "integrity": "sha512-iJRimNIbwqAF6ueYpiL5xY1GJSOA1k3NkqA1NdPlxSJ3bZLP690zR+hHTqEq95HnwqFh2feCDjof9ABtY4keWg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@typespec/http": "*", - "@typespec/openapi": "*" - } - }, "node_modules/@azure-tools/typespec-autorest": { "version": "0.65.0", "resolved": "https://registry.npmjs.org/@azure-tools/typespec-autorest/-/typespec-autorest-0.65.0.tgz", "integrity": "sha512-R8pZt7rYdA2Hr3nck93OGapkQZe3MSzoYq4PgRtsGDHcvA5Qp7RBQMF/tP5DEcFWDDm+unoQeDpbD02POb/LTA==", + "dev": true, "license": "MIT", "engines": { "node": ">=20.0.0" @@ -67,6 +54,7 @@ "version": "0.65.0", "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-core/-/typespec-azure-core-0.65.0.tgz", "integrity": "sha512-dYgHtt0CY0Q9AimdIsMV41jHKLmAT4r++TLwyxAHRbxdiRG+Sll1UKJzOIIoq45Bq64wCfEltu5OOnyPA01/sQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=20.0.0" @@ -81,6 +69,7 @@ "version": "0.65.0", "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-resource-manager/-/typespec-azure-resource-manager-0.65.0.tgz", "integrity": "sha512-3rvyGDIYSqraZ7jHfq5Bfet8u3ZeERWJWhwWMNvbShnrS/vVR3iuu/1z2M0p5mTRFuwUaSMlL/dbtBp1YqgGAg==", + "dev": true, "license": "MIT", "dependencies": { "change-case": "~5.4.4", @@ -102,6 +91,7 @@ "version": "0.65.0", "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-rulesets/-/typespec-azure-rulesets-0.65.0.tgz", "integrity": "sha512-oGuCw61uU9fUASog/1iD1rGeGhcKgnAuyBWA63wRcMMrcW1ZqUK2xvjV1XJuoYRlMxU8HpQShFcvsj715pNVLQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=20.0.0" @@ -114,9 +104,10 @@ } }, "node_modules/@azure-tools/typespec-client-generator-core": { - "version": "0.65.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.65.0.tgz", - "integrity": "sha512-+g6+xB967chLQlukt2nKSCNUagg99MySrdFkY6Izu0z32Wq6ba/FI9IbqBDRTBGFveX+fxS39Xn/xCbtU3nTRg==", + "version": "0.65.2", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.65.2.tgz", + "integrity": "sha512-nOGOUi/PLzqcAygXRkfR5M3u3mD3vH40CFAQdk7VL5dUKO4UA+Se1gQgcavYsv4qJhl8UUus9mFWneJyQxD8Qw==", + "dev": true, "license": "MIT", "dependencies": { "change-case": "~5.4.4", @@ -139,24 +130,18 @@ "@typespec/xml": "^0.79.0" } }, - "node_modules/@azure-tools/typespec-liftr-base": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-liftr-base/-/typespec-liftr-base-0.11.0.tgz", - "integrity": "sha512-XwHRt6GnmTT51iHHUxyFPts6LnhOE+IkANCkh3lhnDdZjHgr5asA3+NXI8UXHbKmAOLReb+eov8tBoN93aS0Ww==", - "dev": true - }, "node_modules/@azure-tools/typespec-python": { - "version": "0.60.1", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-python/-/typespec-python-0.60.1.tgz", - "integrity": "sha512-ksmm7Lakq9ujl9w3eQpAsHg0jZ8gcawWo8tgMuaDkIURGSEdPOJq9iaW4Wri4gN/PZVprZj3gVLbUDHNMYid3g==", + "version": "0.60.1-alpha.20260220.1", + "resolved": "https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-js-test-autorest@local/npm/registry/@azure-tools/typespec-python/-/typespec-python-0.60.1-alpha.20260220.1.tgz", + "integrity": "sha512-nK6b1484qKiA2/V2V0HH91zx+LoOvRUvUIVdUZIFLq7Ms9HDU//iHImWzgpckWNOvuIWUlSCuKk+ONfnEpdP/g==", "hasInstallScript": true, "license": "MIT", "dependencies": { - "@typespec/http-client-python": "~0.27.1", + "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTg4MjE3OC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.27.1.tgz", "fs-extra": "~11.2.0", "js-yaml": "~4.1.0", "semver": "~7.6.2", - "tsx": "~4.19.1" + "tsx": "^4.21.0" }, "engines": { "node": ">=20.0.0" @@ -166,7 +151,7 @@ "@azure-tools/typespec-azure-core": ">=0.65.0 <1.0.0", "@azure-tools/typespec-azure-resource-manager": ">=0.65.0 <1.0.0", "@azure-tools/typespec-azure-rulesets": ">=0.65.0 <1.0.0", - "@azure-tools/typespec-client-generator-core": ">=0.65.0 <1.0.0", + "@azure-tools/typespec-client-generator-core": ">=0.65.1 <1.0.0", "@typespec/compiler": "^1.9.0", "@typespec/events": ">=0.79.0 <1.0.0", "@typespec/http": "^1.9.0", @@ -182,6 +167,7 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", @@ -196,15 +182,16 @@ "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", + "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", "cpu": [ "ppc64" ], @@ -218,9 +205,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", + "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", "cpu": [ "arm" ], @@ -234,9 +221,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", + "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", "cpu": [ "arm64" ], @@ -250,9 +237,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", + "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", "cpu": [ "x64" ], @@ -266,9 +253,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", + "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", "cpu": [ "arm64" ], @@ -282,9 +269,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", + "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", "cpu": [ "x64" ], @@ -298,9 +285,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", + "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", "cpu": [ "arm64" ], @@ -314,9 +301,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", + "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", "cpu": [ "x64" ], @@ -330,9 +317,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", + "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", "cpu": [ "arm" ], @@ -346,9 +333,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", + "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", "cpu": [ "arm64" ], @@ -362,9 +349,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", + "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", "cpu": [ "ia32" ], @@ -378,9 +365,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", + "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", "cpu": [ "loong64" ], @@ -394,9 +381,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", + "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", "cpu": [ "mips64el" ], @@ -410,9 +397,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", + "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", "cpu": [ "ppc64" ], @@ -426,9 +413,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", + "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", "cpu": [ "riscv64" ], @@ -442,9 +429,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", + "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", "cpu": [ "s390x" ], @@ -458,9 +445,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", + "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", "cpu": [ "x64" ], @@ -474,9 +461,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", + "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", "cpu": [ "arm64" ], @@ -490,9 +477,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", + "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", "cpu": [ "x64" ], @@ -506,9 +493,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", + "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", "cpu": [ "arm64" ], @@ -522,9 +509,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", + "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", "cpu": [ "x64" ], @@ -538,9 +525,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", + "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", "cpu": [ "arm64" ], @@ -554,9 +541,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", + "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", "cpu": [ "x64" ], @@ -570,9 +557,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", + "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", "cpu": [ "arm64" ], @@ -586,9 +573,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", + "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", "cpu": [ "ia32" ], @@ -602,9 +589,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", + "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", "cpu": [ "x64" ], @@ -621,19 +608,21 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-2.0.3.tgz", "integrity": "sha512-g44zhR3NIKVs0zUesa4iMzExmZpLUdTLRMCStqX3GE5NT6VkPcxQGJ+uC8tDgBUC/vB1rUhUd55cOf++4NZcmw==", + "dev": true, "license": "MIT", "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } }, "node_modules/@inquirer/checkbox": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-5.0.4.tgz", - "integrity": "sha512-DrAMU3YBGMUAp6ArwTIp/25CNDtDbxk7UjIrrtM25JVVrlVYlVzHh5HR1BDFu9JMyUoZ4ZanzeaHqNDttf3gVg==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-5.0.7.tgz", + "integrity": "sha512-OGJykc3mpe4kiNXwXlDlP4MFqZso5QOoXJaJrmTJI+Y+gq68wxTyCUIFv34qgwZTHnGGeqwUKGOi4oxptTe+ZQ==", + "dev": true, "license": "MIT", "dependencies": { "@inquirer/ansi": "^2.0.3", - "@inquirer/core": "^11.1.1", + "@inquirer/core": "^11.1.4", "@inquirer/figures": "^2.0.3", "@inquirer/type": "^4.0.3" }, @@ -650,12 +639,13 @@ } }, "node_modules/@inquirer/confirm": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.0.4.tgz", - "integrity": "sha512-WdaPe7foUnoGYvXzH4jp4wH/3l+dBhZ3uwhKjXjwdrq5tEIFaANxj6zrGHxLdsIA0yKM0kFPVcEalOZXBB5ISA==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.0.7.tgz", + "integrity": "sha512-lKdNloHLnGoBUUwprxKFd+SpkAnyQTBrZACFPtxDq9GiLICD2t+CaeJ1Ku4goZsGPyBIFc2YYpmDSJLEXoc16g==", + "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.1", + "@inquirer/core": "^11.1.4", "@inquirer/type": "^4.0.3" }, "engines": { @@ -671,18 +661,19 @@ } }, "node_modules/@inquirer/core": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-11.1.1.tgz", - "integrity": "sha512-hV9o15UxX46OyQAtaoMqAOxGR8RVl1aZtDx1jHbCtSJy1tBdTfKxLPKf7utsE4cRy4tcmCQ4+vdV+ca+oNxqNA==", + "version": "11.1.4", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-11.1.4.tgz", + "integrity": "sha512-1HvwyASF0tE/7W8geTTn0ydiWb463pq4SBIpaWcVabTrw55+CiRmytV9eZoqt3ohchsPw4Vv60jfNiI6YljVUg==", + "dev": true, "license": "MIT", "dependencies": { "@inquirer/ansi": "^2.0.3", "@inquirer/figures": "^2.0.3", "@inquirer/type": "^4.0.3", "cli-width": "^4.1.0", + "fast-wrap-ansi": "^0.2.0", "mute-stream": "^3.0.0", - "signal-exit": "^4.1.0", - "wrap-ansi": "^9.0.2" + "signal-exit": "^4.1.0" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -697,12 +688,13 @@ } }, "node_modules/@inquirer/editor": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-5.0.4.tgz", - "integrity": "sha512-QI3Jfqcv6UO2/VJaEFONH8Im1ll++Xn/AJTBn9Xf+qx2M+H8KZAdQ5sAe2vtYlo+mLW+d7JaMJB4qWtK4BG3pw==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-5.0.7.tgz", + "integrity": "sha512-d36tisyvmxH7H+LICTeTofrKmJ+R1jAYV8q0VTYh96cm8mP2BdGh9TAIqbCGcciX8/dr0fJW+VJq3jAnco5xfg==", + "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.1", + "@inquirer/core": "^11.1.4", "@inquirer/external-editor": "^2.0.3", "@inquirer/type": "^4.0.3" }, @@ -719,12 +711,13 @@ } }, "node_modules/@inquirer/expand": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-5.0.4.tgz", - "integrity": "sha512-0I/16YwPPP0Co7a5MsomlZLpch48NzYfToyqYAOWtBmaXSB80RiNQ1J+0xx2eG+Wfxt0nHtpEWSRr6CzNVnOGg==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-5.0.7.tgz", + "integrity": "sha512-h2RRFzDdeXOXLrJOUAaHzyR1HbiZlrl/NxorOAgNrzhiSThbwEFVOf88lJzbF5WXGrQ2RwqK2h0xAE7eo8QP5w==", + "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.1", + "@inquirer/core": "^11.1.4", "@inquirer/type": "^4.0.3" }, "engines": { @@ -743,6 +736,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-2.0.3.tgz", "integrity": "sha512-LgyI7Agbda74/cL5MvA88iDpvdXI2KuMBCGRkbCl2Dg1vzHeOgs+s0SDcXV7b+WZJrv2+ERpWSM65Fpi9VfY3w==", + "dev": true, "license": "MIT", "dependencies": { "chardet": "^2.1.1", @@ -764,18 +758,20 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-2.0.3.tgz", "integrity": "sha512-y09iGt3JKoOCBQ3w4YrSJdokcD8ciSlMIWsD+auPu+OZpfxLuyz+gICAQ6GCBOmJJt4KEQGHuZSVff2jiNOy7g==", + "dev": true, "license": "MIT", "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } }, "node_modules/@inquirer/input": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-5.0.4.tgz", - "integrity": "sha512-4B3s3jvTREDFvXWit92Yc6jF1RJMDy2VpSqKtm4We2oVU65YOh2szY5/G14h4fHlyQdpUmazU5MPCFZPRJ0AOw==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-5.0.7.tgz", + "integrity": "sha512-b+eKk/eUvKLQ6c+rDu9u4I1+twdjOfrEaw9NURDpCrWYJTWL1/JQEudZi0AeqXDGcn0tMdhlfpEfjcqr33B/qw==", + "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.1", + "@inquirer/core": "^11.1.4", "@inquirer/type": "^4.0.3" }, "engines": { @@ -791,12 +787,13 @@ } }, "node_modules/@inquirer/number": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-4.0.4.tgz", - "integrity": "sha512-CmMp9LF5HwE+G/xWsC333TlCzYYbXMkcADkKzcawh49fg2a1ryLc7JL1NJYYt1lJ+8f4slikNjJM9TEL/AljYQ==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-4.0.7.tgz", + "integrity": "sha512-/l5KxcLFFexzOwh8DcVOI7zgVQCwcBt/9yHWtvMdYvaYLMK5J31BSR/fO3Z9WauA21qwAkDGRvYNHIG4vR6JwA==", + "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.1", + "@inquirer/core": "^11.1.4", "@inquirer/type": "^4.0.3" }, "engines": { @@ -812,13 +809,14 @@ } }, "node_modules/@inquirer/password": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-5.0.4.tgz", - "integrity": "sha512-ZCEPyVYvHK4W4p2Gy6sTp9nqsdHQCfiPXIP9LbJVW4yCinnxL/dDDmPaEZVysGrj8vxVReRnpfS2fOeODe9zjg==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-5.0.7.tgz", + "integrity": "sha512-h3Rgzb8nFMxgK6X5246MtwTX/rXs5Z58DbeuUKI6W5dQ+CZusEunNeT7rosdB+Upn79BkfZJO0AaiH8MIi9v1A==", + "dev": true, "license": "MIT", "dependencies": { "@inquirer/ansi": "^2.0.3", - "@inquirer/core": "^11.1.1", + "@inquirer/core": "^11.1.4", "@inquirer/type": "^4.0.3" }, "engines": { @@ -834,21 +832,22 @@ } }, "node_modules/@inquirer/prompts": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.2.0.tgz", - "integrity": "sha512-rqTzOprAj55a27jctS3vhvDDJzYXsr33WXTjODgVOru21NvBo9yIgLIAf7SBdSV0WERVly3dR6TWyp7ZHkvKFA==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.2.1.tgz", + "integrity": "sha512-76knJFW2oXdI6If5YRmEoT5u7l+QroXYrMiINFcb97LsyECgsbO9m6iWlPuhBtaFgNITPHQCk3wbex38q8gsjg==", + "dev": true, "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^5.0.4", - "@inquirer/confirm": "^6.0.4", - "@inquirer/editor": "^5.0.4", - "@inquirer/expand": "^5.0.4", - "@inquirer/input": "^5.0.4", - "@inquirer/number": "^4.0.4", - "@inquirer/password": "^5.0.4", - "@inquirer/rawlist": "^5.2.0", - "@inquirer/search": "^4.1.0", - "@inquirer/select": "^5.0.4" + "@inquirer/checkbox": "^5.0.5", + "@inquirer/confirm": "^6.0.5", + "@inquirer/editor": "^5.0.5", + "@inquirer/expand": "^5.0.5", + "@inquirer/input": "^5.0.5", + "@inquirer/number": "^4.0.5", + "@inquirer/password": "^5.0.5", + "@inquirer/rawlist": "^5.2.1", + "@inquirer/search": "^4.1.1", + "@inquirer/select": "^5.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -863,12 +862,13 @@ } }, "node_modules/@inquirer/rawlist": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-5.2.0.tgz", - "integrity": "sha512-CciqGoOUMrFo6HxvOtU5uL8fkjCmzyeB6fG7O1vdVAZVSopUBYECOwevDBlqNLyyYmzpm2Gsn/7nLrpruy9RFg==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-5.2.3.tgz", + "integrity": "sha512-EuvV6N/T3xDmRVihAOqfnbmtHGdu26TocRKANvcX/7nLLD8QO0c22Dtlc5C15+V433d9v0E0SSyqywdNCIXfLg==", + "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.1", + "@inquirer/core": "^11.1.4", "@inquirer/type": "^4.0.3" }, "engines": { @@ -884,12 +884,13 @@ } }, "node_modules/@inquirer/search": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-4.1.0.tgz", - "integrity": "sha512-EAzemfiP4IFvIuWnrHpgZs9lAhWDA0GM3l9F4t4mTQ22IFtzfrk8xbkMLcAN7gmVML9O/i+Hzu8yOUyAaL6BKA==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-4.1.3.tgz", + "integrity": "sha512-6BE8MqVMakEiLDRtrwj9fbx6AYhuj7McW3GOkOoEiQ5Qkh6v6f5HCoYNqSRE4j6nT+u+73518iUQPE+mZYlAjA==", + "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.1", + "@inquirer/core": "^11.1.4", "@inquirer/figures": "^2.0.3", "@inquirer/type": "^4.0.3" }, @@ -906,13 +907,14 @@ } }, "node_modules/@inquirer/select": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-5.0.4.tgz", - "integrity": "sha512-s8KoGpPYMEQ6WXc0dT9blX2NtIulMdLOO3LA1UKOiv7KFWzlJ6eLkEYTDBIi+JkyKXyn8t/CD6TinxGjyLt57g==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-5.0.7.tgz", + "integrity": "sha512-1JUJIR+Z2PsvwP6VWty7aE0aCPaT2cy2c4Vp3LPhL2Pi3+aXewAld/AyJ/CW9XWx1JbKxmdElfvls/G/7jG7ZQ==", + "dev": true, "license": "MIT", "dependencies": { "@inquirer/ansi": "^2.0.3", - "@inquirer/core": "^11.1.1", + "@inquirer/core": "^11.1.4", "@inquirer/figures": "^2.0.3", "@inquirer/type": "^4.0.3" }, @@ -932,6 +934,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-4.0.3.tgz", "integrity": "sha512-cKZN7qcXOpj1h+1eTTcGDVLaBIHNMT1Rz9JqJP5MnEJ0JhgVWllx7H/tahUp5YEK1qaByH2Itb8wLG/iScD5kw==", + "dev": true, "license": "MIT", "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -949,6 +952,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, "license": "ISC", "dependencies": { "minipass": "^7.0.4" @@ -961,6 +965,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -974,6 +979,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -983,6 +989,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -996,6 +1003,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -1008,6 +1016,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-1.9.0.tgz", "integrity": "sha512-Rz9fFWQSTJSnhBfZvtA/bDIuO82fknYdtyMsL9lZNJE82rquC6JByHPFsnbGH1VXA0HhMj9L7Oqyp3f0m/BTOA==", + "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "~7.28.6", @@ -1040,6 +1049,7 @@ "version": "7.7.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -1052,6 +1062,7 @@ "version": "0.79.0", "resolved": "https://registry.npmjs.org/@typespec/events/-/events-0.79.0.tgz", "integrity": "sha512-41R2jA7k21uMArjyUdvnqYzVnPPaSEcGi40dLMiRVP79m6XgnD3INuTdlMblaS1i+5jJ1BtS1o4QhBBuS/5/qg==", + "dev": true, "license": "MIT", "engines": { "node": ">=20.0.0" @@ -1064,6 +1075,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@typespec/http/-/http-1.9.0.tgz", "integrity": "sha512-JzlZZsgCo71f2KhWbf4BLOz5e+dVLj7gJJ4kvXvrmuG9QHoT41VaGPpCQamYgpZLMz2LQbsOtw34AmpovhuJSw==", + "dev": true, "license": "MIT", "engines": { "node": ">=20.0.0" @@ -1080,8 +1092,7 @@ }, "node_modules/@typespec/http-client-python": { "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@typespec/http-client-python/-/http-client-python-0.27.1.tgz", - "integrity": "sha512-P82Q5qn3tdcP9St79ghhF0GHQ2C0IlZyuLk5mWM/Ja4ZfPWEejPvqsAe9gjjkudNUwQ+1SK+Bvvtr43LGmyPfw==", + "resolved": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTg4MjE3OC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.27.1.tgz", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -1089,7 +1100,7 @@ "marked": "^15.0.6", "pyodide": "0.26.2", "semver": "~7.6.2", - "tsx": "~4.19.1" + "tsx": "^4.21.0" }, "engines": { "node": ">=20.0.0" @@ -1099,7 +1110,7 @@ "@azure-tools/typespec-azure-core": ">=0.65.0 <1.0.0", "@azure-tools/typespec-azure-resource-manager": ">=0.65.0 <1.0.0", "@azure-tools/typespec-azure-rulesets": ">=0.65.0 <1.0.0", - "@azure-tools/typespec-client-generator-core": ">=0.65.0 <1.0.0", + "@azure-tools/typespec-client-generator-core": ">=0.65.1 <1.0.0", "@typespec/compiler": "^1.9.0", "@typespec/events": ">=0.79.0 <1.0.0", "@typespec/http": "^1.9.0", @@ -1115,6 +1126,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-1.9.0.tgz", "integrity": "sha512-5ieXCWRLcyFLv3IFk26ena/RW/NxvT5KiHaoNVFRd79J0XZjFcE0Od6Lxxqj4dWmCo3C8oKtOwFoQuie18G3lQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=20.0.0" @@ -1128,6 +1140,7 @@ "version": "0.79.0", "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.79.0.tgz", "integrity": "sha512-6QIX7oaUGy/z4rseUrC86LjHxZn8rAAY4fXvGnlPRce6GhEdTb9S9OQPmlPeWngXwCx/07P2+FCR915APqmZxg==", + "dev": true, "license": "MIT", "engines": { "node": ">=20.0.0" @@ -1141,6 +1154,7 @@ "version": "0.79.0", "resolved": "https://registry.npmjs.org/@typespec/sse/-/sse-0.79.0.tgz", "integrity": "sha512-YQYlDWCNBza75S360jc51emwntWXMZfkvqXKng+etKP4iCuogJfTX1J8h1yd8tZwkuUNBcklEPCuz3O/+psopg==", + "dev": true, "license": "MIT", "engines": { "node": ">=20.0.0" @@ -1156,6 +1170,7 @@ "version": "0.79.0", "resolved": "https://registry.npmjs.org/@typespec/streams/-/streams-0.79.0.tgz", "integrity": "sha512-nOXpLcEYNdWvLY/6WJ16rD6hGs7bKSmkH+WwgyVwdRON5KJ559quw56pns2DSANw+NaV0lJxJq/8ek5xKCGD6g==", + "dev": true, "license": "MIT", "engines": { "node": ">=20.0.0" @@ -1168,6 +1183,7 @@ "version": "0.79.0", "resolved": "https://registry.npmjs.org/@typespec/versioning/-/versioning-0.79.0.tgz", "integrity": "sha512-mk65zpKNm+ARyHASnre/lp3o3FKzb0P8Nj96ji182JUy7ShrVCCF0u+bC+ZXQ8ZTRza1d0xBjRC/Xr4iM+Uwag==", + "dev": true, "license": "MIT", "engines": { "node": ">=20.0.0" @@ -1180,6 +1196,7 @@ "version": "0.79.0", "resolved": "https://registry.npmjs.org/@typespec/xml/-/xml-0.79.0.tgz", "integrity": "sha512-BqbbtkL9xuiAhehHKKUCMtRg0a1vjSvoiAOanvTIuoFq3N8PbKVV3dKTcyI/oS3iCCkJErdu11HQcAoD/VsIsA==", + "dev": true, "license": "MIT", "engines": { "node": ">=20.0.0" @@ -1192,6 +1209,7 @@ "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", @@ -1208,6 +1226,7 @@ "version": "6.2.2", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -1220,6 +1239,7 @@ "version": "6.2.3", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -1238,6 +1258,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -1250,18 +1271,21 @@ "version": "5.4.4", "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==", + "dev": true, "license": "MIT" }, "node_modules/chardet": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", + "dev": true, "license": "MIT" }, "node_modules/chownr": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, "license": "BlueOak-1.0.0", "engines": { "node": ">=18" @@ -1271,6 +1295,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, "license": "ISC", "engines": { "node": ">= 12" @@ -1280,6 +1305,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==", + "dev": true, "license": "ISC", "dependencies": { "string-width": "^7.2.0", @@ -1294,12 +1320,14 @@ "version": "10.6.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, "license": "MIT" }, "node_modules/env-paths": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "dev": true, "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -1309,9 +1337,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", + "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", "hasInstallScript": true, "license": "MIT", "bin": { @@ -1321,38 +1349,39 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" + "@esbuild/aix-ppc64": "0.27.3", + "@esbuild/android-arm": "0.27.3", + "@esbuild/android-arm64": "0.27.3", + "@esbuild/android-x64": "0.27.3", + "@esbuild/darwin-arm64": "0.27.3", + "@esbuild/darwin-x64": "0.27.3", + "@esbuild/freebsd-arm64": "0.27.3", + "@esbuild/freebsd-x64": "0.27.3", + "@esbuild/linux-arm": "0.27.3", + "@esbuild/linux-arm64": "0.27.3", + "@esbuild/linux-ia32": "0.27.3", + "@esbuild/linux-loong64": "0.27.3", + "@esbuild/linux-mips64el": "0.27.3", + "@esbuild/linux-ppc64": "0.27.3", + "@esbuild/linux-riscv64": "0.27.3", + "@esbuild/linux-s390x": "0.27.3", + "@esbuild/linux-x64": "0.27.3", + "@esbuild/netbsd-arm64": "0.27.3", + "@esbuild/netbsd-x64": "0.27.3", + "@esbuild/openbsd-arm64": "0.27.3", + "@esbuild/openbsd-x64": "0.27.3", + "@esbuild/openharmony-arm64": "0.27.3", + "@esbuild/sunos-x64": "0.27.3", + "@esbuild/win32-arm64": "0.27.3", + "@esbuild/win32-ia32": "0.27.3", + "@esbuild/win32-x64": "0.27.3" } }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -1362,12 +1391,14 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -1380,10 +1411,28 @@ "node": ">=8.6.0" } }, + "node_modules/fast-string-truncated-width": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-string-truncated-width/-/fast-string-truncated-width-3.0.3.tgz", + "integrity": "sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-string-width": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-string-width/-/fast-string-width-3.0.2.tgz", + "integrity": "sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-string-truncated-width": "^3.0.2" + } + }, "node_modules/fast-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "dev": true, "funding": [ { "type": "github", @@ -1396,10 +1445,21 @@ ], "license": "BSD-3-Clause" }, + "node_modules/fast-wrap-ansi": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/fast-wrap-ansi/-/fast-wrap-ansi-0.2.0.tgz", + "integrity": "sha512-rLV8JHxTyhVmFYhBJuMujcrHqOT2cnO5Zxj37qROj23CP39GXubJRBUFF0z8KFK77Uc0SukZUf7JZhsVEQ6n8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-string-width": "^3.0.2" + } + }, "node_modules/fastq": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -1409,6 +1469,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -1449,15 +1510,17 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-east-asian-width": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", - "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz", + "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", + "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -1482,6 +1545,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -1491,9 +1555,10 @@ } }, "node_modules/globby": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-16.1.0.tgz", - "integrity": "sha512-+A4Hq7m7Ze592k9gZRy4gJ27DrXRNnC1vPjxTt1qQxEY8RxagBkBxivkCwg7FxSTG0iLLEMaUx13oOr0R2/qcQ==", + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-16.1.1.tgz", + "integrity": "sha512-dW7vl+yiAJSp6aCekaVnVJxurRv7DCOLyXqEG3RYMYUg7AuJ2jCqPkZTA8ooqC2vtnkaMcV5WfFBMuEnTu1OQg==", + "dev": true, "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", @@ -1520,6 +1585,7 @@ "version": "0.7.2", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "dev": true, "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -1536,6 +1602,7 @@ "version": "7.0.5", "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 4" @@ -1545,6 +1612,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -1554,6 +1622,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -1566,6 +1635,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -1575,6 +1645,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -1587,6 +1658,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -1599,6 +1671,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, "license": "MIT" }, "node_modules/js-yaml": { @@ -1617,6 +1690,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, "license": "MIT" }, "node_modules/jsonfile": { @@ -1647,6 +1721,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -1656,6 +1731,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -1666,10 +1742,11 @@ } }, "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", "engines": { "node": ">=16 || 14 >=14.17" } @@ -1678,6 +1755,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "dev": true, "license": "MIT", "dependencies": { "minipass": "^7.1.2" @@ -1690,6 +1768,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "dev": true, "license": "MIT", "bin": { "mustache": "bin/mustache" @@ -1699,6 +1778,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-3.0.0.tgz", "integrity": "sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw==", + "dev": true, "license": "ISC", "engines": { "node": "^20.17.0 || >=22.9.0" @@ -1708,12 +1788,14 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -1726,6 +1808,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -1735,6 +1818,7 @@ "version": "3.8.1", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz", "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", + "dev": true, "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" @@ -1762,6 +1846,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -1782,6 +1867,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -1800,6 +1886,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -1810,6 +1897,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -1833,6 +1921,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, "license": "MIT" }, "node_modules/semver": { @@ -1851,6 +1940,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, "license": "ISC", "engines": { "node": ">=14" @@ -1863,6 +1953,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, "license": "MIT", "engines": { "node": ">=14.16" @@ -1875,6 +1966,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^10.3.0", @@ -1892,6 +1984,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -1904,9 +1997,10 @@ } }, "node_modules/tar": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.7.tgz", - "integrity": "sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==", + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.9.tgz", + "integrity": "sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg==", + "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/fs-minipass": "^4.0.0", @@ -1923,6 +2017,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/temporal-polyfill/-/temporal-polyfill-0.3.0.tgz", "integrity": "sha512-qNsTkX9K8hi+FHDfHmf22e/OGuXmfBm9RqNismxBrnSmZVJKegQ+HYYXT+R7Ha8F/YSm2Y34vmzD4cxMu2u95g==", + "dev": true, "license": "MIT", "dependencies": { "temporal-spec": "0.3.0" @@ -1932,12 +2027,14 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/temporal-spec/-/temporal-spec-0.3.0.tgz", "integrity": "sha512-n+noVpIqz4hYgFSMOSiINNOUOMFtV5cZQNCmmszA6GiVFVRt3G7AqVyhXjhCSmowvQn+NsGn+jMDMKJYHd3bSQ==", + "dev": true, "license": "ISC" }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -1947,12 +2044,12 @@ } }, "node_modules/tsx": { - "version": "4.19.4", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.4.tgz", - "integrity": "sha512-gK5GVzDkJK1SI1zwHf32Mqxf2tSJkNx+eYcNly5+nHvWqXUJYUkWBQtKauoESz3ymezAI++ZwT855x5p5eop+Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", + "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", "license": "MIT", "dependencies": { - "esbuild": "~0.25.0", + "esbuild": "~0.27.0", "get-tsconfig": "^4.7.5" }, "bin": { @@ -1969,6 +2066,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz", "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", + "dev": true, "license": "MIT", "engines": { "node": ">=20" @@ -1990,6 +2088,7 @@ "version": "8.2.0", "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "dev": true, "license": "MIT", "engines": { "node": ">=14.0.0" @@ -1999,6 +2098,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", + "dev": true, "license": "MIT", "dependencies": { "vscode-languageserver-protocol": "3.17.5" @@ -2011,6 +2111,7 @@ "version": "3.17.5", "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "dev": true, "license": "MIT", "dependencies": { "vscode-jsonrpc": "8.2.0", @@ -2021,18 +2122,21 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", + "dev": true, "license": "MIT" }, "node_modules/vscode-languageserver-types": { "version": "3.17.5", "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "dev": true, "license": "MIT" }, "node_modules/wrap-ansi": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^6.2.1", @@ -2071,6 +2175,7 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, "license": "ISC", "engines": { "node": ">=10" @@ -2080,6 +2185,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, "license": "BlueOak-1.0.0", "engines": { "node": ">=18" @@ -2089,6 +2195,7 @@ "version": "2.8.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "dev": true, "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -2104,6 +2211,7 @@ "version": "18.0.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz", "integrity": "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==", + "dev": true, "license": "MIT", "dependencies": { "cliui": "^9.0.1", @@ -2121,6 +2229,7 @@ "version": "22.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", + "dev": true, "license": "ISC", "engines": { "node": "^20.19.0 || ^22.12.0 || >=23" diff --git a/eng/emitter-package.json b/eng/emitter-package.json index 81b38d3b5134..a67eef8fd47b 100644 --- a/eng/emitter-package.json +++ b/eng/emitter-package.json @@ -1,24 +1,25 @@ { - "name": "dist/src/index.js", + "main": "dist/src/index.js", "dependencies": { - "@azure-tools/typespec-python": "0.60.1" + "@azure-tools/typespec-python": "https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-js-test-autorest@local/npm/registry/@azure-tools/typespec-python/-/typespec-python-0.60.1-alpha.20260220.1.tgz" }, "devDependencies": { + "@azure-tools/typespec-autorest": "~0.65.0", + "@azure-tools/typespec-azure-core": "~0.65.0", + "@azure-tools/typespec-azure-resource-manager": "~0.65.0", + "@azure-tools/typespec-azure-rulesets": "~0.65.0", + "@azure-tools/typespec-client-generator-core": "~0.65.1", "@typespec/compiler": "^1.9.0", + "@typespec/events": "~0.79.0", "@typespec/http": "^1.9.0", - "@typespec/rest": "~0.79.0", - "@typespec/versioning": "~0.79.0", "@typespec/openapi": "^1.9.0", - "@typespec/events": "~0.79.0", + "@typespec/rest": "~0.79.0", "@typespec/sse": "~0.79.0", "@typespec/streams": "~0.79.0", - "@typespec/xml": "~0.79.0", - "@azure-tools/openai-typespec": "1.8.0", - "@azure-tools/typespec-autorest": "~0.65.0", - "@azure-tools/typespec-azure-core": "~0.65.0", - "@azure-tools/typespec-azure-resource-manager": "~0.65.0", - "@azure-tools/typespec-azure-rulesets": "~0.65.0", - "@azure-tools/typespec-client-generator-core": "~0.65.0", - "@azure-tools/typespec-liftr-base": "0.11.0" + "@typespec/versioning": "~0.79.0", + "@typespec/xml": "~0.79.0" + }, + "overrides": { + "@autorest/python": "https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-js-test-autorest@local/npm/registry/@autorest/python/-/python-6.49.1-alpha.20260220.1.tgz" } } diff --git a/sdk/ai/azure-ai-agents/_metadata.json b/sdk/ai/azure-ai-agents/_metadata.json index 253921f335be..66ab1e222e4b 100644 --- a/sdk/ai/azure-ai-agents/_metadata.json +++ b/sdk/ai/azure-ai-agents/_metadata.json @@ -1,3 +1,6 @@ { - "apiVersion": "2025-05-15-preview" + "apiVersion": "2025-05-15-preview", + "apiVersions": { + "Azure.AI.Agents": "2025-05-15-preview" + } } \ No newline at end of file diff --git a/sdk/ai/azure-ai-agents/azure/ai/agents/_client.py b/sdk/ai/azure-ai-agents/azure/ai/agents/_client.py index 487de2156cf1..5ab64383e91f 100644 --- a/sdk/ai/azure-ai-agents/azure/ai/agents/_client.py +++ b/sdk/ai/azure-ai-agents/azure/ai/agents/_client.py @@ -56,9 +56,9 @@ class AgentsClient(_AgentsClientOperationsMixin): # pylint: disable=too-many-in :type endpoint: str :param credential: Credential used to authenticate requests to the service. Required. :type credential: ~azure.core.credentials.TokenCredential - :keyword api_version: The API version to use for this operation. Default value is - "2025-05-15-preview". Note that overriding this default value may result in unsupported - behavior. + :keyword api_version: The API version to use for this operation. Known values are + "2025-05-15-preview" and None. Default value is "2025-05-15-preview". Note that overriding this + default value may result in unsupported behavior. :paramtype api_version: str """ diff --git a/sdk/ai/azure-ai-agents/azure/ai/agents/_configuration.py b/sdk/ai/azure-ai-agents/azure/ai/agents/_configuration.py index 2df2bf2aeb78..301d324192ae 100644 --- a/sdk/ai/azure-ai-agents/azure/ai/agents/_configuration.py +++ b/sdk/ai/azure-ai-agents/azure/ai/agents/_configuration.py @@ -27,9 +27,9 @@ class AgentsClientConfiguration: # pylint: disable=too-many-instance-attributes :type endpoint: str :param credential: Credential used to authenticate requests to the service. Required. :type credential: ~azure.core.credentials.TokenCredential - :keyword api_version: The API version to use for this operation. Default value is - "2025-05-15-preview". Note that overriding this default value may result in unsupported - behavior. + :keyword api_version: The API version to use for this operation. Known values are + "2025-05-15-preview" and None. Default value is "2025-05-15-preview". Note that overriding this + default value may result in unsupported behavior. :paramtype api_version: str """ diff --git a/sdk/ai/azure-ai-agents/azure/ai/agents/_utils/model_base.py b/sdk/ai/azure-ai-agents/azure/ai/agents/_utils/model_base.py index 512d10f7c64a..4f7316e3cba1 100644 --- a/sdk/ai/azure-ai-agents/azure/ai/agents/_utils/model_base.py +++ b/sdk/ai/azure-ai-agents/azure/ai/agents/_utils/model_base.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression,too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -36,6 +37,7 @@ TZ_UTC = timezone.utc _T = typing.TypeVar("_T") +_NONE_TYPE = type(None) def _timedelta_as_isostr(td: timedelta) -> str: @@ -170,6 +172,21 @@ def default(self, o): # pylint: disable=too-many-return-statements r"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT" ) +_ARRAY_ENCODE_MAPPING = { + "pipeDelimited": "|", + "spaceDelimited": " ", + "commaDelimited": ",", + "newlineDelimited": "\n", +} + + +def _deserialize_array_encoded(delimit: str, attr): + if isinstance(attr, str): + if attr == "": + return [] + return attr.split(delimit) + return attr + def _deserialize_datetime(attr: typing.Union[str, datetime]) -> datetime: """Deserialize ISO-8601 formatted string into Datetime object. @@ -201,7 +218,7 @@ def _deserialize_datetime(attr: typing.Union[str, datetime]) -> datetime: test_utc = date_obj.utctimetuple() if test_utc.tm_year > 9999 or test_utc.tm_year < 1: raise OverflowError("Hit max or min date") - return date_obj + return date_obj # type: ignore[no-any-return] def _deserialize_datetime_rfc7231(attr: typing.Union[str, datetime]) -> datetime: @@ -255,7 +272,7 @@ def _deserialize_time(attr: typing.Union[str, time]) -> time: """ if isinstance(attr, time): return attr - return isodate.parse_time(attr) + return isodate.parse_time(attr) # type: ignore[no-any-return] def _deserialize_bytes(attr): @@ -314,6 +331,8 @@ def _deserialize_int_as_str(attr): def get_deserializer(annotation: typing.Any, rf: typing.Optional["_RestField"] = None): if annotation is int and rf and rf._format == "str": return _deserialize_int_as_str + if annotation is str and rf and rf._format in _ARRAY_ENCODE_MAPPING: + return functools.partial(_deserialize_array_encoded, _ARRAY_ENCODE_MAPPING[rf._format]) if rf and rf._format: return _DESERIALIZE_MAPPING_WITHFORMAT.get(rf._format) return _DESERIALIZE_MAPPING.get(annotation) # pyright: ignore @@ -352,9 +371,39 @@ def __contains__(self, key: typing.Any) -> bool: return key in self._data def __getitem__(self, key: str) -> typing.Any: + # If this key has been deserialized (for mutable types), we need to handle serialization + if hasattr(self, "_attr_to_rest_field"): + cache_attr = f"_deserialized_{key}" + if hasattr(self, cache_attr): + rf = _get_rest_field(getattr(self, "_attr_to_rest_field"), key) + if rf: + value = self._data.get(key) + if isinstance(value, (dict, list, set)): + # For mutable types, serialize and return + # But also update _data with serialized form and clear flag + # so mutations via this returned value affect _data + serialized = _serialize(value, rf._format) + # If serialized form is same type (no transformation needed), + # return _data directly so mutations work + if isinstance(serialized, type(value)) and serialized == value: + return self._data.get(key) + # Otherwise return serialized copy and clear flag + try: + object.__delattr__(self, cache_attr) + except AttributeError: + pass + # Store serialized form back + self._data[key] = serialized + return serialized return self._data.__getitem__(key) def __setitem__(self, key: str, value: typing.Any) -> None: + # Clear any cached deserialized value when setting through dictionary access + cache_attr = f"_deserialized_{key}" + try: + object.__delattr__(self, cache_attr) + except AttributeError: + pass self._data.__setitem__(key, value) def __delitem__(self, key: str) -> None: @@ -482,6 +531,8 @@ def _is_model(obj: typing.Any) -> bool: def _serialize(o, format: typing.Optional[str] = None): # pylint: disable=too-many-return-statements if isinstance(o, list): + if format in _ARRAY_ENCODE_MAPPING and all(isinstance(x, str) for x in o): + return _ARRAY_ENCODE_MAPPING[format].join(o) return [_serialize(x, format) for x in o] if isinstance(o, dict): return {k: _serialize(v, format) for k, v in o.items()} @@ -637,6 +688,10 @@ def __new__(cls, *args: typing.Any, **kwargs: typing.Any) -> Self: if not rf._rest_name_input: rf._rest_name_input = attr cls._attr_to_rest_field: dict[str, _RestField] = dict(attr_to_rest_field.items()) + cls._backcompat_attr_to_rest_field: dict[str, _RestField] = { + Model._get_backcompat_attribute_name(cls._attr_to_rest_field, attr): rf + for attr, rf in cls._attr_to_rest_field.items() + } cls._calculated.add(f"{cls.__module__}.{cls.__qualname__}") return super().__new__(cls) @@ -646,6 +701,16 @@ def __init_subclass__(cls, discriminator: typing.Optional[str] = None) -> None: if hasattr(base, "__mapping__"): base.__mapping__[discriminator or cls.__name__] = cls # type: ignore + @classmethod + def _get_backcompat_attribute_name(cls, attr_to_rest_field: dict[str, "_RestField"], attr_name: str) -> str: + rest_field_obj = attr_to_rest_field.get(attr_name) # pylint: disable=protected-access + if rest_field_obj is None: + return attr_name + original_tsp_name = getattr(rest_field_obj, "_original_tsp_name", None) # pylint: disable=protected-access + if original_tsp_name: + return original_tsp_name + return attr_name + @classmethod def _get_discriminator(cls, exist_discriminators) -> typing.Optional["_RestField"]: for v in cls.__dict__.values(): @@ -757,6 +822,14 @@ def _deserialize_multiple_sequence( return type(obj)(_deserialize(deserializer, entry, module) for entry, deserializer in zip(obj, entry_deserializers)) +def _is_array_encoded_deserializer(deserializer: functools.partial) -> bool: + return ( + isinstance(deserializer, functools.partial) + and isinstance(deserializer.args[0], functools.partial) + and deserializer.args[0].func == _deserialize_array_encoded # pylint: disable=comparison-with-callable + ) + + def _deserialize_sequence( deserializer: typing.Optional[typing.Callable], module: typing.Optional[str], @@ -766,6 +839,19 @@ def _deserialize_sequence( return obj if isinstance(obj, ET.Element): obj = list(obj) + + # encoded string may be deserialized to sequence + if isinstance(obj, str) and isinstance(deserializer, functools.partial): + # for list[str] + if _is_array_encoded_deserializer(deserializer): + return deserializer(obj) + + # for list[Union[...]] + if isinstance(deserializer.args[0], list): + for sub_deserializer in deserializer.args[0]: + if _is_array_encoded_deserializer(sub_deserializer): + return sub_deserializer(obj) + return type(obj)(_deserialize(deserializer, entry, module) for entry in obj) @@ -816,16 +902,16 @@ def _get_deserialize_callable_from_annotation( # pylint: disable=too-many-retur # is it optional? try: - if any(a for a in annotation.__args__ if a == type(None)): # pyright: ignore + if any(a is _NONE_TYPE for a in annotation.__args__): # pyright: ignore if len(annotation.__args__) <= 2: # pyright: ignore if_obj_deserializer = _get_deserialize_callable_from_annotation( - next(a for a in annotation.__args__ if a != type(None)), module, rf # pyright: ignore + next(a for a in annotation.__args__ if a is not _NONE_TYPE), module, rf # pyright: ignore ) return functools.partial(_deserialize_with_optional, if_obj_deserializer) # the type is Optional[Union[...]], we need to remove the None type from the Union annotation_copy = copy.copy(annotation) - annotation_copy.__args__ = [a for a in annotation_copy.__args__ if a != type(None)] # pyright: ignore + annotation_copy.__args__ = [a for a in annotation_copy.__args__ if a is not _NONE_TYPE] # pyright: ignore return _get_deserialize_callable_from_annotation(annotation_copy, module, rf) except AttributeError: pass @@ -951,7 +1037,7 @@ def _failsafe_deserialize( ) -> typing.Any: try: return _deserialize(deserializer, response.json(), module, rf, format) - except DeserializationError: + except Exception: # pylint: disable=broad-except _LOGGER.warning( "Ran into a deserialization error. Ignoring since this is failsafe deserialization", exc_info=True ) @@ -964,13 +1050,14 @@ def _failsafe_deserialize_xml( ) -> typing.Any: try: return _deserialize_xml(deserializer, response.text()) - except DeserializationError: + except Exception: # pylint: disable=broad-except _LOGGER.warning( "Ran into a deserialization error. Ignoring since this is failsafe deserialization", exc_info=True ) return None +# pylint: disable=too-many-instance-attributes class _RestField: def __init__( self, @@ -983,6 +1070,7 @@ def __init__( format: typing.Optional[str] = None, is_multipart_file_input: bool = False, xml: typing.Optional[dict[str, typing.Any]] = None, + original_tsp_name: typing.Optional[str] = None, ): self._type = type self._rest_name_input = name @@ -994,10 +1082,15 @@ def __init__( self._format = format self._is_multipart_file_input = is_multipart_file_input self._xml = xml if xml is not None else {} + self._original_tsp_name = original_tsp_name @property def _class_type(self) -> typing.Any: - return getattr(self._type, "args", [None])[0] + result = getattr(self._type, "args", [None])[0] + # type may be wrapped by nested functools.partial so we need to check for that + if isinstance(result, functools.partial): + return getattr(result, "args", [None])[0] + return result @property def _rest_name(self) -> str: @@ -1008,14 +1101,37 @@ def _rest_name(self) -> str: def __get__(self, obj: Model, type=None): # pylint: disable=redefined-builtin # by this point, type and rest_name will have a value bc we default # them in __new__ of the Model class - item = obj.get(self._rest_name) + # Use _data.get() directly to avoid triggering __getitem__ which clears the cache + item = obj._data.get(self._rest_name) if item is None: return item if self._is_model: return item - return _deserialize(self._type, _serialize(item, self._format), rf=self) + + # For mutable types, we want mutations to directly affect _data + # Check if we've already deserialized this value + cache_attr = f"_deserialized_{self._rest_name}" + if hasattr(obj, cache_attr): + # Return the value from _data directly (it's been deserialized in place) + return obj._data.get(self._rest_name) + + deserialized = _deserialize(self._type, _serialize(item, self._format), rf=self) + + # For mutable types, store the deserialized value back in _data + # so mutations directly affect _data + if isinstance(deserialized, (dict, list, set)): + obj._data[self._rest_name] = deserialized + object.__setattr__(obj, cache_attr, True) # Mark as deserialized + return deserialized + + return deserialized def __set__(self, obj: Model, value) -> None: + # Clear the cached deserialized object when setting a new value + cache_attr = f"_deserialized_{self._rest_name}" + if hasattr(obj, cache_attr): + object.__delattr__(obj, cache_attr) + if value is None: # we want to wipe out entries if users set attr to None try: @@ -1045,6 +1161,7 @@ def rest_field( format: typing.Optional[str] = None, is_multipart_file_input: bool = False, xml: typing.Optional[dict[str, typing.Any]] = None, + original_tsp_name: typing.Optional[str] = None, ) -> typing.Any: return _RestField( name=name, @@ -1054,6 +1171,7 @@ def rest_field( format=format, is_multipart_file_input=is_multipart_file_input, xml=xml, + original_tsp_name=original_tsp_name, ) @@ -1183,7 +1301,7 @@ def _get_wrapped_element( _get_element(v, exclude_readonly, meta, wrapped_element) else: wrapped_element.text = _get_primitive_type_value(v) - return wrapped_element + return wrapped_element # type: ignore[no-any-return] def _get_primitive_type_value(v) -> str: @@ -1196,7 +1314,9 @@ def _get_primitive_type_value(v) -> str: return str(v) -def _create_xml_element(tag, prefix=None, ns=None): +def _create_xml_element( + tag: typing.Any, prefix: typing.Optional[str] = None, ns: typing.Optional[str] = None +) -> ET.Element: if prefix and ns: ET.register_namespace(prefix, ns) if ns: diff --git a/sdk/ai/azure-ai-agents/azure/ai/agents/_utils/serialization.py b/sdk/ai/azure-ai-agents/azure/ai/agents/_utils/serialization.py index 45a3e44e45cb..81ec1de5922b 100644 --- a/sdk/ai/azure-ai-agents/azure/ai/agents/_utils/serialization.py +++ b/sdk/ai/azure-ai-agents/azure/ai/agents/_utils/serialization.py @@ -821,13 +821,20 @@ def serialize_basic(cls, data, data_type, **kwargs): :param str data_type: Type of object in the iterable. :rtype: str, int, float, bool :return: serialized object + :raises TypeError: raise if data_type is not one of str, int, float, bool. """ custom_serializer = cls._get_custom_serializers(data_type, **kwargs) if custom_serializer: return custom_serializer(data) if data_type == "str": return cls.serialize_unicode(data) - return eval(data_type)(data) # nosec # pylint: disable=eval-used + if data_type == "int": + return int(data) + if data_type == "float": + return float(data) + if data_type == "bool": + return bool(data) + raise TypeError("Unknown basic data type: {}".format(data_type)) @classmethod def serialize_unicode(cls, data): @@ -1757,7 +1764,7 @@ def deserialize_basic(self, attr, data_type): # pylint: disable=too-many-return :param str data_type: deserialization data type. :return: Deserialized basic type. :rtype: str, int, float or bool - :raises TypeError: if string format is not valid. + :raises TypeError: if string format is not valid or data_type is not one of str, int, float, bool. """ # If we're here, data is supposed to be a basic type. # If it's still an XML node, take the text @@ -1783,7 +1790,11 @@ def deserialize_basic(self, attr, data_type): # pylint: disable=too-many-return if data_type == "str": return self.deserialize_unicode(attr) - return eval(data_type)(attr) # nosec # pylint: disable=eval-used + if data_type == "int": + return int(attr) + if data_type == "float": + return float(attr) + raise TypeError("Unknown basic data type: {}".format(data_type)) @staticmethod def deserialize_unicode(data): diff --git a/sdk/ai/azure-ai-agents/azure/ai/agents/_utils/utils.py b/sdk/ai/azure-ai-agents/azure/ai/agents/_utils/utils.py index 4c029bd3dfa5..54fdb84a9191 100644 --- a/sdk/ai/azure-ai-agents/azure/ai/agents/_utils/utils.py +++ b/sdk/ai/azure-ai-agents/azure/ai/agents/_utils/utils.py @@ -49,9 +49,8 @@ def serialize_multipart_data_entry(data_entry: Any) -> Any: def prepare_multipart_form_data( body: Mapping[str, Any], multipart_fields: list[str], data_fields: list[str] -) -> tuple[list[FileType], dict[str, Any]]: +) -> list[FileType]: files: list[FileType] = [] - data: dict[str, Any] = {} for multipart_field in multipart_fields: multipart_entry = body.get(multipart_field) if isinstance(multipart_entry, list): @@ -59,9 +58,11 @@ def prepare_multipart_form_data( elif multipart_entry: files.append((multipart_field, multipart_entry)) + # if files is empty, sdk core library can't handle multipart/form-data correctly, so + # we put data fields into files with filename as None to avoid that scenario. for data_field in data_fields: data_entry = body.get(data_field) if data_entry: - data[data_field] = serialize_multipart_data_entry(data_entry) + files.append((data_field, str(serialize_multipart_data_entry(data_entry)))) - return files, data + return files diff --git a/sdk/ai/azure-ai-agents/azure/ai/agents/aio/_client.py b/sdk/ai/azure-ai-agents/azure/ai/agents/aio/_client.py index 64180964eb5b..7e6c3e8c7226 100644 --- a/sdk/ai/azure-ai-agents/azure/ai/agents/aio/_client.py +++ b/sdk/ai/azure-ai-agents/azure/ai/agents/aio/_client.py @@ -57,9 +57,9 @@ class AgentsClient(_AgentsClientOperationsMixin): # pylint: disable=too-many-in :type endpoint: str :param credential: Credential used to authenticate requests to the service. Required. :type credential: ~azure.core.credentials_async.AsyncTokenCredential - :keyword api_version: The API version to use for this operation. Default value is - "2025-05-15-preview". Note that overriding this default value may result in unsupported - behavior. + :keyword api_version: The API version to use for this operation. Known values are + "2025-05-15-preview" and None. Default value is "2025-05-15-preview". Note that overriding this + default value may result in unsupported behavior. :paramtype api_version: str """ diff --git a/sdk/ai/azure-ai-agents/azure/ai/agents/aio/_configuration.py b/sdk/ai/azure-ai-agents/azure/ai/agents/aio/_configuration.py index fe400db8ca67..57498c63bc32 100644 --- a/sdk/ai/azure-ai-agents/azure/ai/agents/aio/_configuration.py +++ b/sdk/ai/azure-ai-agents/azure/ai/agents/aio/_configuration.py @@ -27,9 +27,9 @@ class AgentsClientConfiguration: # pylint: disable=too-many-instance-attributes :type endpoint: str :param credential: Credential used to authenticate requests to the service. Required. :type credential: ~azure.core.credentials_async.AsyncTokenCredential - :keyword api_version: The API version to use for this operation. Default value is - "2025-05-15-preview". Note that overriding this default value may result in unsupported - behavior. + :keyword api_version: The API version to use for this operation. Known values are + "2025-05-15-preview" and None. Default value is "2025-05-15-preview". Note that overriding this + default value may result in unsupported behavior. :paramtype api_version: str """ diff --git a/sdk/ai/azure-ai-agents/azure/ai/agents/aio/operations/_operations.py b/sdk/ai/azure-ai-agents/azure/ai/agents/aio/operations/_operations.py index 8151b09585e2..0a180ffd1654 100644 --- a/sdk/ai/azure-ai-agents/azure/ai/agents/aio/operations/_operations.py +++ b/sdk/ai/azure-ai-agents/azure/ai/agents/aio/operations/_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression,too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -252,7 +253,10 @@ async def create( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -339,7 +343,10 @@ async def get_next(_continuation_token=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) return pipeline_response @@ -394,7 +401,10 @@ async def get(self, thread_id: str, **kwargs: Any) -> _models.AgentThread: except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -558,7 +568,10 @@ async def update( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -619,7 +632,10 @@ async def _delete_thread(self, thread_id: str, **kwargs: Any) -> _models._models except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -827,7 +843,10 @@ async def create( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -979,7 +998,10 @@ async def get(self, thread_id: str, message_id: str, **kwargs: Any) -> _models.T except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -1140,7 +1162,10 @@ async def update( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -1209,7 +1234,10 @@ async def _delete(self, thread_id: str, message_id: str, **kwargs: Any) -> _mode except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -1418,7 +1446,7 @@ async def create( """ @distributed_trace_async - async def create( + async def create( # pylint: disable=too-many-locals self, thread_id: str, body: Union[JSON, IO[bytes]] = _Unset, @@ -1604,7 +1632,10 @@ async def create( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -1695,7 +1726,10 @@ async def get_next(_continuation_token=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) return pipeline_response @@ -1753,7 +1787,10 @@ async def get(self, thread_id: str, run_id: str, **kwargs: Any) -> _models.Threa except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -1914,7 +1951,10 @@ async def update( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -2087,7 +2127,10 @@ async def submit_tool_outputs( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -2151,7 +2194,10 @@ async def cancel(self, thread_id: str, run_id: str, **kwargs: Any) -> _models.Th except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -2250,7 +2296,10 @@ async def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -2352,7 +2401,10 @@ async def get_next(_continuation_token=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) return pipeline_response @@ -2428,7 +2480,10 @@ async def list( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -2474,12 +2529,11 @@ async def _upload_file( _body = body.as_dict() if isinstance(body, _Model) else body _file_fields: list[str] = ["file"] _data_fields: list[str] = ["purpose", "filename"] - _files, _data = prepare_multipart_form_data(_body, _file_fields, _data_fields) + _files = prepare_multipart_form_data(_body, _file_fields, _data_fields) _request = build_files_upload_file_request( api_version=self._config.api_version, files=_files, - data=_data, headers=_headers, params=_params, ) @@ -2502,7 +2556,10 @@ async def _upload_file( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -2563,7 +2620,10 @@ async def _delete_file(self, file_id: str, **kwargs: Any) -> _models._models.Fil except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -2626,7 +2686,10 @@ async def get(self, file_id: str, **kwargs: Any) -> _models.FileInfo: except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -2687,7 +2750,10 @@ async def _get_file_content(self, file_id: str, **kwargs: Any) -> AsyncIterator[ except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) deserialized = response.iter_bytes() @@ -2789,7 +2855,10 @@ async def get_next(_continuation_token=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) return pipeline_response @@ -2963,7 +3032,10 @@ async def create( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3024,7 +3096,10 @@ async def get(self, vector_store_id: str, **kwargs: Any) -> _models.VectorStore: except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3186,7 +3261,10 @@ async def modify( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3250,7 +3328,10 @@ async def _delete_vector_store( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3366,7 +3447,10 @@ async def get_next(_continuation_token=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) return pipeline_response @@ -3518,7 +3602,10 @@ async def create( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3582,7 +3669,10 @@ async def get(self, vector_store_id: str, file_id: str, **kwargs: Any) -> _model except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3650,7 +3740,10 @@ async def _delete_vector_store_file( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3828,7 +3921,10 @@ async def create( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3892,7 +3988,10 @@ async def get(self, vector_store_id: str, batch_id: str, **kwargs: Any) -> _mode except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3957,7 +4056,10 @@ async def cancel(self, vector_store_id: str, batch_id: str, **kwargs: Any) -> _m except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -4057,7 +4159,10 @@ async def get_next(_continuation_token=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) return pipeline_response @@ -4164,7 +4269,7 @@ async def create_agent( """ @distributed_trace_async - async def create_agent( + async def create_agent( # pylint: disable=too-many-locals self, body: Union[JSON, IO[bytes]] = _Unset, *, @@ -4288,7 +4393,10 @@ async def create_agent( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -4375,7 +4483,10 @@ async def get_next(_continuation_token=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) return pipeline_response @@ -4430,7 +4541,10 @@ async def get_agent(self, agent_id: str, **kwargs: Any) -> _models.Agent: except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -4549,7 +4663,7 @@ async def update_agent( """ @distributed_trace_async - async def update_agent( + async def update_agent( # pylint: disable=too-many-locals self, agent_id: str, body: Union[JSON, IO[bytes]] = _Unset, @@ -4677,7 +4791,10 @@ async def update_agent( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -4738,7 +4855,10 @@ async def _delete_agent(self, agent_id: str, **kwargs: Any) -> _models._models.A except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -4889,7 +5009,7 @@ async def create_thread_and_run( """ @distributed_trace_async - async def create_thread_and_run( + async def create_thread_and_run( # pylint: disable=too-many-locals self, body: Union[JSON, IO[bytes]] = _Unset, *, @@ -5058,7 +5178,10 @@ async def create_thread_and_run( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: diff --git a/sdk/ai/azure-ai-agents/azure/ai/agents/models/_enums.py b/sdk/ai/azure-ai-agents/azure/ai/agents/models/_enums.py index 210bbe61530a..139d25ab8640 100644 --- a/sdk/ai/azure-ai-agents/azure/ai/agents/models/_enums.py +++ b/sdk/ai/azure-ai-agents/azure/ai/agents/models/_enums.py @@ -14,29 +14,29 @@ class AgentsNamedToolChoiceType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Available tool types for agents named tools.""" FUNCTION = "function" - """Tool type ``function``""" + """Tool type ``function``.""" CODE_INTERPRETER = "code_interpreter" - """Tool type ``code_interpreter``""" + """Tool type ``code_interpreter``.""" FILE_SEARCH = "file_search" - """Tool type ``file_search``""" + """Tool type ``file_search``.""" BING_GROUNDING = "bing_grounding" - """Tool type ``bing_grounding``""" + """Tool type ``bing_grounding``.""" MICROSOFT_FABRIC = "fabric_dataagent" - """Tool type ``fabric_dataagent``""" + """Tool type ``fabric_dataagent``.""" SHAREPOINT = "sharepoint_grounding" - """Tool type ``sharepoint_grounding``""" + """Tool type ``sharepoint_grounding``.""" AZURE_AI_SEARCH = "azure_ai_search" - """Tool type ``azure_ai_search``""" + """Tool type ``azure_ai_search``.""" BING_CUSTOM_SEARCH = "bing_custom_search" - """Tool type ``bing_custom_search``""" + """Tool type ``bing_custom_search``.""" CONNECTED_AGENT = "connected_agent" - """Tool type ``connected_agent``""" + """Tool type ``connected_agent``.""" DEEP_RESEARCH = "deep_research" - """Tool type ``deep_research``""" + """Tool type ``deep_research``.""" MCP = "mcp" - """Tool type ``mcp``""" + """Tool type ``mcp``.""" COMPUTER_USE_PREVIEW = "computer_use_preview" - """Tool type ``computer_use_preview``""" + """Tool type ``computer_use_preview``.""" class AgentsResponseFormatMode(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -60,8 +60,6 @@ class AgentsToolChoiceOptionMode(str, Enum, metaclass=CaseInsensitiveEnumMeta): class AgentStreamEvent(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Each event in a server-sent events stream has an ``event`` and ``data`` property: - - .. code-block:: event: thread.created @@ -79,58 +77,58 @@ class AgentStreamEvent(str, Enum, metaclass=CaseInsensitiveEnumMeta): """ THREAD_CREATED = "thread.created" - """Event sent when a new thread is created. The data of this event is of type AgentThread""" + """Event sent when a new thread is created. The data of this event is of type AgentThread.""" THREAD_RUN_CREATED = "thread.run.created" - """Event sent when a new run is created. The data of this event is of type ThreadRun""" + """Event sent when a new run is created. The data of this event is of type ThreadRun.""" THREAD_RUN_QUEUED = "thread.run.queued" - """Event sent when a run moves to ``queued`` status. The data of this event is of type ThreadRun""" + """Event sent when a run moves to ``queued`` status. The data of this event is of type ThreadRun.""" THREAD_RUN_IN_PROGRESS = "thread.run.in_progress" """Event sent when a run moves to ``in_progress`` status. The data of this event is of type - ThreadRun""" + ThreadRun.""" THREAD_RUN_REQUIRES_ACTION = "thread.run.requires_action" """Event sent when a run moves to ``requires_action`` status. The data of this event is of type - ThreadRun""" + ThreadRun.""" THREAD_RUN_COMPLETED = "thread.run.completed" - """Event sent when a run is completed. The data of this event is of type ThreadRun""" + """Event sent when a run is completed. The data of this event is of type ThreadRun.""" THREAD_RUN_INCOMPLETE = "thread.run.incomplete" - """Event sent when a run ends incomplete. The data of this event is of type ThreadRun""" + """Event sent when a run ends incomplete. The data of this event is of type ThreadRun.""" THREAD_RUN_FAILED = "thread.run.failed" - """Event sent when a run fails. The data of this event is of type ThreadRun""" + """Event sent when a run fails. The data of this event is of type ThreadRun.""" THREAD_RUN_CANCELLING = "thread.run.cancelling" """Event sent when a run moves to ``cancelling`` status. The data of this event is of type - ThreadRun""" + ThreadRun.""" THREAD_RUN_CANCELLED = "thread.run.cancelled" - """Event sent when a run is cancelled. The data of this event is of type ThreadRun""" + """Event sent when a run is cancelled. The data of this event is of type ThreadRun.""" THREAD_RUN_EXPIRED = "thread.run.expired" - """Event sent when a run is expired. The data of this event is of type ThreadRun""" + """Event sent when a run is expired. The data of this event is of type ThreadRun.""" THREAD_RUN_STEP_CREATED = "thread.run.step.created" - """Event sent when a new thread run step is created. The data of this event is of type RunStep""" + """Event sent when a new thread run step is created. The data of this event is of type RunStep.""" THREAD_RUN_STEP_IN_PROGRESS = "thread.run.step.in_progress" """Event sent when a run step moves to ``in_progress`` status. The data of this event is of type - RunStep""" + RunStep.""" THREAD_RUN_STEP_DELTA = "thread.run.step.delta" """Event sent when a run step is being streamed. The data of this event is of type - RunStepDeltaChunk""" + RunStepDeltaChunk.""" THREAD_RUN_STEP_COMPLETED = "thread.run.step.completed" - """Event sent when a run step is completed. The data of this event is of type RunStep""" + """Event sent when a run step is completed. The data of this event is of type RunStep.""" THREAD_RUN_STEP_FAILED = "thread.run.step.failed" - """Event sent when a run step fails. The data of this event is of type RunStep""" + """Event sent when a run step fails. The data of this event is of type RunStep.""" THREAD_RUN_STEP_CANCELLED = "thread.run.step.cancelled" - """Event sent when a run step is cancelled. The data of this event is of type RunStep""" + """Event sent when a run step is cancelled. The data of this event is of type RunStep.""" THREAD_RUN_STEP_EXPIRED = "thread.run.step.expired" - """Event sent when a run step is expired. The data of this event is of type RunStep""" + """Event sent when a run step is expired. The data of this event is of type RunStep.""" THREAD_MESSAGE_CREATED = "thread.message.created" - """Event sent when a new message is created. The data of this event is of type ThreadMessage""" + """Event sent when a new message is created. The data of this event is of type ThreadMessage.""" THREAD_MESSAGE_IN_PROGRESS = "thread.message.in_progress" """Event sent when a message moves to ``in_progress`` status. The data of this event is of type - ThreadMessage""" + ThreadMessage.""" THREAD_MESSAGE_DELTA = "thread.message.delta" """Event sent when a message is being streamed. The data of this event is of type - MessageDeltaChunk""" + MessageDeltaChunk.""" THREAD_MESSAGE_COMPLETED = "thread.message.completed" - """Event sent when a message is completed. The data of this event is of type ThreadMessage""" + """Event sent when a message is completed. The data of this event is of type ThreadMessage.""" THREAD_MESSAGE_INCOMPLETE = "thread.message.incomplete" - """Event sent before a message is completed. The data of this event is of type ThreadMessage""" + """Event sent before a message is completed. The data of this event is of type ThreadMessage.""" ERROR = "error" """Event sent when an error occurs, such as an internal server error or a timeout.""" DONE = "done" @@ -141,28 +139,28 @@ class AzureAISearchQueryType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Available query types for Azure AI Search tool.""" SIMPLE = "simple" - """Query type ``simple``""" + """Query type ``simple``.""" SEMANTIC = "semantic" - """Query type ``semantic``""" + """Query type ``semantic``.""" VECTOR = "vector" - """Query type ``vector``""" + """Query type ``vector``.""" VECTOR_SIMPLE_HYBRID = "vector_simple_hybrid" - """Query type ``vector_simple_hybrid``""" + """Query type ``vector_simple_hybrid``.""" VECTOR_SEMANTIC_HYBRID = "vector_semantic_hybrid" - """Query type ``vector_semantic_hybrid``""" + """Query type ``vector_semantic_hybrid``.""" class ComputerUseEnvironment(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The environment types supported by the computer use tool.""" WINDOWS = "windows" - """Windows environment""" + """Windows environment.""" MAC = "mac" - """Mac environment""" + """Mac environment.""" LINUX = "linux" - """Linux environment""" + """Linux environment.""" BROWSER = "browser" - """Browser environment""" + """Browser environment.""" class DoneEvent(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -195,8 +193,7 @@ class FileState(str, Enum, metaclass=CaseInsensitiveEnumMeta): UPLOADED = "uploaded" """The file has been uploaded but it's not yet processed. This state is not returned by Azure - OpenAI and exposed only for - compatibility. It can be categorized as an inactive state.""" + OpenAI and exposed only for compatibility. It can be categorized as an inactive state.""" PENDING = "pending" """The operation was created and is not queued to be processed in the future. It can be categorized as an inactive state.""" @@ -210,12 +207,10 @@ class FileState(str, Enum, metaclass=CaseInsensitiveEnumMeta): categorized as a terminal state.""" DELETING = "deleting" """The entity is in the process to be deleted. This state is not returned by Azure OpenAI and - exposed only for compatibility. - It can be categorized as an active state.""" + exposed only for compatibility. It can be categorized as an active state.""" DELETED = "deleted" """The entity has been deleted but may still be referenced by other entities predating the - deletion. It can be categorized as a - terminal state.""" + deletion. It can be categorized as a terminal state.""" class ImageDetailLevel(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -235,9 +230,9 @@ class IncompleteDetailsReason(str, Enum, metaclass=CaseInsensitiveEnumMeta): """ MAX_COMPLETION_TOKENS = "max_completion_tokens" - """Maximum completion tokens exceeded""" + """Maximum completion tokens exceeded.""" MAX_PROMPT_TOKENS = "max_prompt_tokens" - """Maximum prompt tokens exceeded""" + """Maximum prompt tokens exceeded.""" class ListSortOrder(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -301,32 +296,32 @@ class MessageStreamEvent(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Message operation related streaming events.""" THREAD_MESSAGE_CREATED = "thread.message.created" - """Event sent when a new message is created. The data of this event is of type ThreadMessage""" + """Event sent when a new message is created. The data of this event is of type ThreadMessage.""" THREAD_MESSAGE_IN_PROGRESS = "thread.message.in_progress" """Event sent when a message moves to ``in_progress`` status. The data of this event is of type - ThreadMessage""" + ThreadMessage.""" THREAD_MESSAGE_DELTA = "thread.message.delta" """Event sent when a message is being streamed. The data of this event is of type - MessageDeltaChunk""" + MessageDeltaChunk.""" THREAD_MESSAGE_COMPLETED = "thread.message.completed" - """Event sent when a message is completed. The data of this event is of type ThreadMessage""" + """Event sent when a message is completed. The data of this event is of type ThreadMessage.""" THREAD_MESSAGE_INCOMPLETE = "thread.message.incomplete" - """Event sent before a message is completed. The data of this event is of type ThreadMessage""" + """Event sent before a message is completed. The data of this event is of type ThreadMessage.""" class MouseButton(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The mouse button types supported by click actions.""" LEFT = "left" - """Left mouse button""" + """Left mouse button.""" RIGHT = "right" - """Right mouse button""" + """Right mouse button.""" WHEEL = "wheel" - """Mouse wheel button""" + """Mouse wheel button.""" BACK = "back" - """Back mouse button""" + """Back mouse button.""" FORWARD = "forward" - """Forward mouse button""" + """Forward mouse button.""" class OpenApiAuthType(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -338,8 +333,11 @@ class OpenApiAuthType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """ ANONYMOUS = "anonymous" + """ANONYMOUS.""" CONNECTION = "connection" + """CONNECTION.""" MANAGED_IDENTITY = "managed_identity" + """MANAGED_IDENTITY.""" class ResponseFormat(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -407,21 +405,21 @@ class RunStepStreamEvent(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Run step operation related streaming events.""" THREAD_RUN_STEP_CREATED = "thread.run.step.created" - """Event sent when a new thread run step is created. The data of this event is of type RunStep""" + """Event sent when a new thread run step is created. The data of this event is of type RunStep.""" THREAD_RUN_STEP_IN_PROGRESS = "thread.run.step.in_progress" """Event sent when a run step moves to ``in_progress`` status. The data of this event is of type - RunStep""" + RunStep.""" THREAD_RUN_STEP_DELTA = "thread.run.step.delta" """Event sent when a run step is being streamed. The data of this event is of type - RunStepDeltaChunk""" + RunStepDeltaChunk.""" THREAD_RUN_STEP_COMPLETED = "thread.run.step.completed" - """Event sent when a run step is completed. The data of this event is of type RunStep""" + """Event sent when a run step is completed. The data of this event is of type RunStep.""" THREAD_RUN_STEP_FAILED = "thread.run.step.failed" - """Event sent when a run step fails. The data of this event is of type RunStep""" + """Event sent when a run step fails. The data of this event is of type RunStep.""" THREAD_RUN_STEP_CANCELLED = "thread.run.step.cancelled" - """Event sent when a run step is cancelled. The data of this event is of type RunStep""" + """Event sent when a run step is cancelled. The data of this event is of type RunStep.""" THREAD_RUN_STEP_EXPIRED = "thread.run.step.expired" - """Event sent when a run step is expired. The data of this event is of type RunStep""" + """Event sent when a run step is expired. The data of this event is of type RunStep.""" class RunStepType(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -439,35 +437,35 @@ class RunStreamEvent(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Run operation related streaming events.""" THREAD_RUN_CREATED = "thread.run.created" - """Event sent when a new run is created. The data of this event is of type ThreadRun""" + """Event sent when a new run is created. The data of this event is of type ThreadRun.""" THREAD_RUN_QUEUED = "thread.run.queued" - """Event sent when a run moves to ``queued`` status. The data of this event is of type ThreadRun""" + """Event sent when a run moves to ``queued`` status. The data of this event is of type ThreadRun.""" THREAD_RUN_IN_PROGRESS = "thread.run.in_progress" """Event sent when a run moves to ``in_progress`` status. The data of this event is of type - ThreadRun""" + ThreadRun.""" THREAD_RUN_REQUIRES_ACTION = "thread.run.requires_action" """Event sent when a run moves to ``requires_action`` status. The data of this event is of type - ThreadRun""" + ThreadRun.""" THREAD_RUN_COMPLETED = "thread.run.completed" - """Event sent when a run is completed. The data of this event is of type ThreadRun""" + """Event sent when a run is completed. The data of this event is of type ThreadRun.""" THREAD_RUN_INCOMPLETE = "thread.run.incomplete" - """Event sent when a run ends incomplete. The data of this event is of type ThreadRun""" + """Event sent when a run ends incomplete. The data of this event is of type ThreadRun.""" THREAD_RUN_FAILED = "thread.run.failed" - """Event sent when a run fails. The data of this event is of type ThreadRun""" + """Event sent when a run fails. The data of this event is of type ThreadRun.""" THREAD_RUN_CANCELLING = "thread.run.cancelling" """Event sent when a run moves to ``cancelling`` status. The data of this event is of type - ThreadRun""" + ThreadRun.""" THREAD_RUN_CANCELLED = "thread.run.cancelled" - """Event sent when a run is cancelled. The data of this event is of type ThreadRun""" + """Event sent when a run is cancelled. The data of this event is of type ThreadRun.""" THREAD_RUN_EXPIRED = "thread.run.expired" - """Event sent when a run is expired. The data of this event is of type ThreadRun""" + """Event sent when a run is expired. The data of this event is of type ThreadRun.""" class ThreadStreamEvent(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Thread operation related streaming events.""" THREAD_CREATED = "thread.created" - """Event sent when a new thread is created. The data of this event is of type AgentThread""" + """Event sent when a new thread is created. The data of this event is of type AgentThread.""" class TruncationStrategy(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -484,26 +482,29 @@ class VectorStoreChunkingStrategyRequestType(str, Enum, metaclass=CaseInsensitiv """Type of chunking strategy.""" AUTO = "auto" + """AUTO.""" STATIC = "static" + """STATIC.""" class VectorStoreChunkingStrategyResponseType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of chunking strategy.""" OTHER = "other" + """OTHER.""" STATIC = "static" + """STATIC.""" class VectorStoreDataSourceAssetType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of vector storage asset. Asset type may be a uri_asset, in this case it should contain - asset URI ID, - in the case of id_asset it should contain the data ID. + asset URI ID, in the case of id_asset it should contain the data ID. """ URI_ASSET = "uri_asset" - """Azure URI""" + """Azure URI.""" ID_ASSET = "id_asset" - """The data ID""" + """The data ID.""" class VectorStoreExpirationPolicyAnchor(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -554,13 +555,13 @@ class VectorStoreFileStatusFilter(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Query parameter filter for vector store file retrieval endpoint.""" IN_PROGRESS = "in_progress" - """Retrieve only files that are currently being processed""" + """Retrieve only files that are currently being processed.""" COMPLETED = "completed" - """Retrieve only files that have been successfully processed""" + """Retrieve only files that have been successfully processed.""" FAILED = "failed" - """Retrieve only files that have failed to process""" + """Retrieve only files that have failed to process.""" CANCELLED = "cancelled" - """Retrieve only files that were cancelled""" + """Retrieve only files that were cancelled.""" class VectorStoreStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): diff --git a/sdk/ai/azure-ai-agents/azure/ai/agents/models/_models.py b/sdk/ai/azure-ai-agents/azure/ai/agents/models/_models.py index 09dd194b5a8f..57ac9a3ba6db 100644 --- a/sdk/ai/azure-ai-agents/azure/ai/agents/models/_models.py +++ b/sdk/ai/azure-ai-agents/azure/ai/agents/models/_models.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression,too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -131,13 +132,12 @@ class Agent(_Model): :ivar tools: The collection of tools enabled for the agent. Required. :vartype tools: list[~azure.ai.agents.models.ToolDefinition] :ivar tool_resources: A set of resources that are used by the agent's tools. The resources are - specific to the type of tool. For example, the ``code_interpreter`` - tool requires a list of file IDs, while the ``file_search`` tool requires a list of vector - store IDs. Required. + specific to the type of tool. For example, the ``code_interpreter`` tool requires a list of + file IDs, while the ``file_search`` tool requires a list of vector store IDs. Required. :vartype tool_resources: ~azure.ai.agents.models.ToolResources :ivar temperature: What sampling temperature to use, between 0 and 2. Higher values like 0.8 - will make the output more random, - while lower values like 0.2 will make it more focused and deterministic. Required. + will make the output more random, while lower values like 0.2 will make it more focused and + deterministic. Required. :vartype temperature: float :ivar top_p: An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. @@ -177,13 +177,11 @@ class Agent(_Model): """The collection of tools enabled for the agent. Required.""" tool_resources: "_models.ToolResources" = rest_field(visibility=["read", "create", "update", "delete", "query"]) """A set of resources that are used by the agent's tools. The resources are specific to the type - of tool. For example, the ``code_interpreter`` - tool requires a list of file IDs, while the ``file_search`` tool requires a list of vector - store IDs. Required.""" + of tool. For example, the ``code_interpreter`` tool requires a list of file IDs, while the + ``file_search`` tool requires a list of vector store IDs. Required.""" temperature: float = rest_field(visibility=["read", "create", "update", "delete", "query"]) """What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output - more random, - while lower values like 0.2 will make it more focused and deterministic. Required.""" + more random, while lower values like 0.2 will make it more focused and deterministic. Required.""" top_p: float = rest_field(visibility=["read", "create", "update", "delete", "query"]) """An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. @@ -357,8 +355,8 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class AgentsResponseFormat(_Model): """An object describing the expected output of the model. If ``json_object`` only ``function`` - type ``tools`` are allowed to be passed to the Run. - If ``text`` the model can return text or any value needed. + type ``tools`` are allowed to be passed to the Run. If ``text`` the model can return text or + any value needed. :ivar type: Must be one of ``text`` or ``json_object``. Known values are: "text" and "json_object". @@ -399,10 +397,9 @@ class AgentThread(_Model): Required. :vartype created_at: ~datetime.datetime :ivar tool_resources: A set of resources that are made available to the agent's tools in this - thread. The resources are specific to the type - of tool. For example, the ``code_interpreter`` tool requires a list of file IDs, while the - ``file_search`` tool requires a list - of vector store IDs. Required. + thread. The resources are specific to the type of tool. For example, the ``code_interpreter`` + tool requires a list of file IDs, while the ``file_search`` tool requires a list of vector + store IDs. Required. :vartype tool_resources: ~azure.ai.agents.models.ToolResources :ivar metadata: A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 @@ -420,10 +417,8 @@ class AgentThread(_Model): """The Unix timestamp, in seconds, representing when this object was created. Required.""" tool_resources: "_models.ToolResources" = rest_field(visibility=["read", "create", "update", "delete", "query"]) """A set of resources that are made available to the agent's tools in this thread. The resources - are specific to the type - of tool. For example, the ``code_interpreter`` tool requires a list of file IDs, while the - ``file_search`` tool requires a list - of vector store IDs. Required.""" + are specific to the type of tool. For example, the ``code_interpreter`` tool requires a list of + file IDs, while the ``file_search`` tool requires a list of vector store IDs. Required.""" metadata: dict[str, str] = rest_field(visibility=["read", "create", "update", "delete", "query"]) """A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 @@ -457,10 +452,9 @@ class AgentThreadCreationOptions(_Model): :ivar messages: The initial messages to associate with the new thread. :vartype messages: list[~azure.ai.agents.models.ThreadMessageOptions] :ivar tool_resources: A set of resources that are made available to the agent's tools in this - thread. The resources are specific to the - type of tool. For example, the ``code_interpreter`` tool requires a list of file IDs, while the - ``file_search`` tool requires - a list of vector store IDs. + thread. The resources are specific to the type of tool. For example, the ``code_interpreter`` + tool requires a list of file IDs, while the ``file_search`` tool requires a list of vector + store IDs. :vartype tool_resources: ~azure.ai.agents.models.ToolResources :ivar metadata: A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 @@ -476,10 +470,8 @@ class AgentThreadCreationOptions(_Model): visibility=["read", "create", "update", "delete", "query"] ) """A set of resources that are made available to the agent's tools in this thread. The resources - are specific to the - type of tool. For example, the ``code_interpreter`` tool requires a list of file IDs, while the - ``file_search`` tool requires - a list of vector store IDs.""" + are specific to the type of tool. For example, the ``code_interpreter`` tool requires a list of + file IDs, while the ``file_search`` tool requires a list of vector store IDs.""" metadata: Optional[dict[str, str]] = rest_field(visibility=["read", "create", "update", "delete", "query"]) """A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 @@ -666,8 +658,8 @@ class AzureAISearchToolResource(_Model): index_list: Optional[list["_models.AISearchIndexResource"]] = rest_field( name="indexes", visibility=["read", "create", "update", "delete", "query"] ) - """The indices attached to this agent. There can be a maximum of 1 index - resource attached to the agent.""" + """The indices attached to this agent. There can be a maximum of 1 index resource attached to the + agent.""" @overload def __init__( @@ -808,8 +800,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class AzureFunctionToolCallDetails(_Model): """The Azure function call description. All the fields are present in the completed run step, - however - only some fields are present in the RunStepDeltaAzureFunctionToolCall. + however only some fields are present in the RunStepDeltaAzureFunctionToolCall. :ivar name: The Azure function name. :vartype name: str @@ -905,29 +896,27 @@ class BingCustomSearchConfiguration(_Model): subject to change. :vartype market: str :ivar set_lang: The language to use for user interface strings. You may specify the language - using either a 2-letter or 4-letter code. Using 4-letter codes is preferred. - For a list of supported language codes, see `Bing supported languages + using either a 2-letter or 4-letter code. Using 4-letter codes is preferred. For a list of + supported language codes, see `Bing supported languages `_. Bing loads the localized strings if this parameter contains a valid 2-letter neutral culture code (for example ``fr``) or a valid 4-letter specific culture code (``fr-ca``). For example, - for ``fr-ca``, Bing loads the ``fr`` neutral culture code strings. - If the parameter is not valid (for example, ``zh``) or Bing doesn’t support the language (for - example, ``af``, ``af-na``), Bing defaults to ``en`` (English). - To specify the 2-letter code, set this parameter to an ISO 639-1 language code. - To specify the 4-letter code, use the form ``-`` where ```` - is an ISO 639-1 language code (neutral culture) and ```` is an ISO 3166 - country/region (specific culture) code. For example, use ``en-US`` for United States English. - Although optional, you should always specify the language. Typically, you set this parameter to - the same language specified by the market value unless the user wants the user interface - strings displayed in a different language. + for ``fr-ca``, Bing loads the ``fr`` neutral culture code strings. If the parameter is not + valid (for example, ``zh``) or Bing doesn’t support the language (for example, ``af``, + ``af-na``), Bing defaults to ``en`` (English). To specify the 2-letter code, set this parameter + to an ISO 639-1 language code. To specify the 4-letter code, use the form + ``-`` where ```` is an ISO 639-1 language code (neutral + culture) and ```` is an ISO 3166 country/region (specific culture) code. For + example, use ``en-US`` for United States English. Although optional, you should always specify + the language. Typically, you set this parameter to the same language specified by the market + value unless the user wants the user interface strings displayed in a different language. :vartype set_lang: str :ivar count: The number of search results to return in the response. The default is 5 and the maximum value is 50. The actual number delivered may be less than requested. * It is possible for multiple pages to include some overlap in results. - * This parameter affects only web page results. It's possible that AI model might not use all - search results returned by Bing. - + * This parameter affects only web page results. It's possible that AI model might not use + all search results returned by Bing. :vartype count: int :ivar freshness: Filter search results by the following case-insensitive age values: @@ -937,7 +926,6 @@ class BingCustomSearchConfiguration(_Model): discovered by Bing during a specific timeframe, specify a date range in the form: `YYYY-MM-DD..YYYY-MM-DD`. For example, `freshness=2019-02-01..2019-05-30. To limit the results to a single date, set this parameter to a specific date. For example, freshness=2019-02-04`. - :vartype freshness: str """ @@ -960,39 +948,36 @@ class BingCustomSearchConfiguration(_Model): subject to change.""" set_lang: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"]) """The language to use for user interface strings. You may specify the language using either a - 2-letter or 4-letter code. Using 4-letter codes is preferred. - For a list of supported language codes, see `Bing supported languages + 2-letter or 4-letter code. Using 4-letter codes is preferred. For a list of supported language + codes, see `Bing supported languages `_. Bing loads the localized strings if this parameter contains a valid 2-letter neutral culture code (for example ``fr``) or a valid 4-letter specific culture code (``fr-ca``). For example, - for ``fr-ca``, Bing loads the ``fr`` neutral culture code strings. - If the parameter is not valid (for example, ``zh``) or Bing doesn’t support the language (for - example, ``af``, ``af-na``), Bing defaults to ``en`` (English). - To specify the 2-letter code, set this parameter to an ISO 639-1 language code. - To specify the 4-letter code, use the form ``-`` where ```` - is an ISO 639-1 language code (neutral culture) and ```` is an ISO 3166 - country/region (specific culture) code. For example, use ``en-US`` for United States English. - Although optional, you should always specify the language. Typically, you set this parameter to - the same language specified by the market value unless the user wants the user interface - strings displayed in a different language.""" + for ``fr-ca``, Bing loads the ``fr`` neutral culture code strings. If the parameter is not + valid (for example, ``zh``) or Bing doesn’t support the language (for example, ``af``, + ``af-na``), Bing defaults to ``en`` (English). To specify the 2-letter code, set this parameter + to an ISO 639-1 language code. To specify the 4-letter code, use the form + ``-`` where ```` is an ISO 639-1 language code (neutral + culture) and ```` is an ISO 3166 country/region (specific culture) code. For + example, use ``en-US`` for United States English. Although optional, you should always specify + the language. Typically, you set this parameter to the same language specified by the market + value unless the user wants the user interface strings displayed in a different language.""" count: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"]) """The number of search results to return in the response. The default is 5 and the maximum value - is 50. The actual number delivered may be less than requested. - - * It is possible for multiple pages to include some overlap in results. - * This parameter affects only web page results. It's possible that AI model might not use all - search results returned by Bing. - """ + is 50. The actual number delivered may be less than requested. + + * It is possible for multiple pages to include some overlap in results. + * This parameter affects only web page results. It's possible that AI model might not use + all search results returned by Bing.""" freshness: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"]) """Filter search results by the following case-insensitive age values: - - * Day: Return webpages that Bing discovered within the last 24 hours. - * Week: Return webpages that Bing discovered within the last 7 days. - * Month: Return webpages that Bing discovered within the last 30 days. To get articles - discovered by Bing during a specific timeframe, specify a date range in the form: - `YYYY-MM-DD..YYYY-MM-DD`. For example, `freshness=2019-02-01..2019-05-30. To limit the results - to a single date, set this parameter to a specific date. For example, freshness=2019-02-04`. - """ + + * Day: Return webpages that Bing discovered within the last 24 hours. + * Week: Return webpages that Bing discovered within the last 7 days. + * Month: Return webpages that Bing discovered within the last 30 days. To get articles + discovered by Bing during a specific timeframe, specify a date range in the form: + `YYYY-MM-DD..YYYY-MM-DD`. For example, `freshness=2019-02-01..2019-05-30. To limit the results + to a single date, set this parameter to a specific date. For example, freshness=2019-02-04`.""" @overload def __init__( @@ -1058,16 +1043,15 @@ class BingCustomSearchToolParameters(_Model): """The bing custom search tool parameters. :ivar search_configurations: The connections attached to this tool. There can be a maximum of 1 - connection - resource attached to the tool. Required. + connection resource attached to the tool. Required. :vartype search_configurations: list[~azure.ai.agents.models.BingCustomSearchConfiguration] """ search_configurations: list["_models.BingCustomSearchConfiguration"] = rest_field( visibility=["read", "create", "update", "delete", "query"] ) - """The connections attached to this tool. There can be a maximum of 1 connection - resource attached to the tool. Required.""" + """The connections attached to this tool. There can be a maximum of 1 connection resource attached + to the tool. Required.""" @overload def __init__( @@ -1106,29 +1090,27 @@ class BingGroundingSearchConfiguration(_Model): subject to change. :vartype market: str :ivar set_lang: The language to use for user interface strings. You may specify the language - using either a 2-letter or 4-letter code. Using 4-letter codes is preferred. - For a list of supported language codes, see `Bing supported languages + using either a 2-letter or 4-letter code. Using 4-letter codes is preferred. For a list of + supported language codes, see `Bing supported languages `_. Bing loads the localized strings if this parameter contains a valid 2-letter neutral culture code (for example ``fr``) or a valid 4-letter specific culture code (``fr-ca``). For example, - for ``fr-ca``, Bing loads the ``fr`` neutral culture code strings. - If the parameter is not valid (for example, ``zh``) or Bing doesn’t support the language (for - example, ``af``, ``af-na``), Bing defaults to ``en`` (English). - To specify the 2-letter code, set this parameter to an ISO 639-1 language code. - To specify the 4-letter code, use the form ``-`` where ```` - is an ISO 639-1 language code (neutral culture) and ```` is an ISO 3166 - country/region (specific culture) code. For example, use ``en-US`` for United States English. - Although optional, you should always specify the language. Typically, you set this parameter to - the same language specified by the market value unless the user wants the user interface - strings displayed in a different language. + for ``fr-ca``, Bing loads the ``fr`` neutral culture code strings. If the parameter is not + valid (for example, ``zh``) or Bing doesn’t support the language (for example, ``af``, + ``af-na``), Bing defaults to ``en`` (English). To specify the 2-letter code, set this parameter + to an ISO 639-1 language code. To specify the 4-letter code, use the form + ``-`` where ```` is an ISO 639-1 language code (neutral + culture) and ```` is an ISO 3166 country/region (specific culture) code. For + example, use ``en-US`` for United States English. Although optional, you should always specify + the language. Typically, you set this parameter to the same language specified by the market + value unless the user wants the user interface strings displayed in a different language. :vartype set_lang: str :ivar count: The number of search results to return in the response. The default is 5 and the maximum value is 50. The actual number delivered may be less than requested. * It is possible for multiple pages to include some overlap in results. - * This parameter affects only web page results. It's possible that AI model might not use all - search results returned by Bing. - + * This parameter affects only web page results. It's possible that AI model might not use + all search results returned by Bing. :vartype count: int :ivar freshness: Filter search results by the following case-insensitive age values: @@ -1138,7 +1120,6 @@ class BingGroundingSearchConfiguration(_Model): discovered by Bing during a specific timeframe, specify a date range in the form: `YYYY-MM-DD..YYYY-MM-DD`. For example, `freshness=2019-02-01..2019-05-30. To limit the results to a single date, set this parameter to a specific date. For example, freshness=2019-02-04`. - :vartype freshness: str """ @@ -1159,39 +1140,36 @@ class BingGroundingSearchConfiguration(_Model): subject to change.""" set_lang: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"]) """The language to use for user interface strings. You may specify the language using either a - 2-letter or 4-letter code. Using 4-letter codes is preferred. - For a list of supported language codes, see `Bing supported languages + 2-letter or 4-letter code. Using 4-letter codes is preferred. For a list of supported language + codes, see `Bing supported languages `_. Bing loads the localized strings if this parameter contains a valid 2-letter neutral culture code (for example ``fr``) or a valid 4-letter specific culture code (``fr-ca``). For example, - for ``fr-ca``, Bing loads the ``fr`` neutral culture code strings. - If the parameter is not valid (for example, ``zh``) or Bing doesn’t support the language (for - example, ``af``, ``af-na``), Bing defaults to ``en`` (English). - To specify the 2-letter code, set this parameter to an ISO 639-1 language code. - To specify the 4-letter code, use the form ``-`` where ```` - is an ISO 639-1 language code (neutral culture) and ```` is an ISO 3166 - country/region (specific culture) code. For example, use ``en-US`` for United States English. - Although optional, you should always specify the language. Typically, you set this parameter to - the same language specified by the market value unless the user wants the user interface - strings displayed in a different language.""" + for ``fr-ca``, Bing loads the ``fr`` neutral culture code strings. If the parameter is not + valid (for example, ``zh``) or Bing doesn’t support the language (for example, ``af``, + ``af-na``), Bing defaults to ``en`` (English). To specify the 2-letter code, set this parameter + to an ISO 639-1 language code. To specify the 4-letter code, use the form + ``-`` where ```` is an ISO 639-1 language code (neutral + culture) and ```` is an ISO 3166 country/region (specific culture) code. For + example, use ``en-US`` for United States English. Although optional, you should always specify + the language. Typically, you set this parameter to the same language specified by the market + value unless the user wants the user interface strings displayed in a different language.""" count: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"]) """The number of search results to return in the response. The default is 5 and the maximum value - is 50. The actual number delivered may be less than requested. - - * It is possible for multiple pages to include some overlap in results. - * This parameter affects only web page results. It's possible that AI model might not use all - search results returned by Bing. - """ + is 50. The actual number delivered may be less than requested. + + * It is possible for multiple pages to include some overlap in results. + * This parameter affects only web page results. It's possible that AI model might not use + all search results returned by Bing.""" freshness: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"]) """Filter search results by the following case-insensitive age values: - - * Day: Return webpages that Bing discovered within the last 24 hours. - * Week: Return webpages that Bing discovered within the last 7 days. - * Month: Return webpages that Bing discovered within the last 30 days. To get articles - discovered by Bing during a specific timeframe, specify a date range in the form: - `YYYY-MM-DD..YYYY-MM-DD`. For example, `freshness=2019-02-01..2019-05-30. To limit the results - to a single date, set this parameter to a specific date. For example, freshness=2019-02-04`. - """ + + * Day: Return webpages that Bing discovered within the last 24 hours. + * Week: Return webpages that Bing discovered within the last 7 days. + * Month: Return webpages that Bing discovered within the last 30 days. To get articles + discovered by Bing during a specific timeframe, specify a date range in the form: + `YYYY-MM-DD..YYYY-MM-DD`. For example, `freshness=2019-02-01..2019-05-30. To limit the results + to a single date, set this parameter to a specific date. For example, freshness=2019-02-04`.""" @overload def __init__( @@ -1219,16 +1197,15 @@ class BingGroundingSearchToolParameters(_Model): """The bing grounding search tool parameters. :ivar search_configurations: The search configurations attached to this tool. There can be a - maximum of 1 - search configuration resource attached to the tool. Required. + maximum of 1 search configuration resource attached to the tool. Required. :vartype search_configurations: list[~azure.ai.agents.models.BingGroundingSearchConfiguration] """ search_configurations: list["_models.BingGroundingSearchConfiguration"] = rest_field( visibility=["read", "create", "update", "delete", "query"] ) - """The search configurations attached to this tool. There can be a maximum of 1 - search configuration resource attached to the tool. Required.""" + """The search configurations attached to this tool. There can be a maximum of 1 search + configuration resource attached to the tool. Required.""" @overload def __init__( @@ -1573,8 +1550,7 @@ class CodeInterpreterToolResource(_Model): """A set of resources that are used by the ``code_interpreter`` tool. :ivar file_ids: A list of file IDs made available to the ``code_interpreter`` tool. There can - be a maximum of 20 files - associated with the tool. + be a maximum of 20 files associated with the tool. :vartype file_ids: list[str] :ivar data_sources: The data sources to be used. This option is mutually exclusive with the ``fileIds`` property. @@ -1583,8 +1559,7 @@ class CodeInterpreterToolResource(_Model): file_ids: Optional[list[str]] = rest_field(visibility=["read", "create", "update", "delete", "query"]) """A list of file IDs made available to the ``code_interpreter`` tool. There can be a maximum of - 20 files - associated with the tool.""" + 20 files associated with the tool.""" data_sources: Optional[list["_models.VectorStoreDataSource"]] = rest_field( visibility=["read", "create", "update", "delete", "query"] ) @@ -2108,16 +2083,15 @@ class FabricDataAgentToolParameters(_Model): """The fabric data agent tool parameters. :ivar connection_list: The connections attached to this tool. There can be a maximum of 1 - connection - resource attached to the tool. + connection resource attached to the tool. :vartype connection_list: list[~azure.ai.agents.models.ToolConnection] """ connection_list: Optional[list["_models.ToolConnection"]] = rest_field( name="connections", visibility=["read", "create", "update", "delete", "query"] ) - """The connections attached to this tool. There can be a maximum of 1 connection - resource attached to the tool.""" + """The connections attached to this tool. There can be a maximum of 1 connection resource attached + to the tool.""" @overload def __init__( @@ -2433,23 +2407,21 @@ class FileSearchToolResource(_Model): """A set of resources that are used by the ``file_search`` tool. :ivar vector_store_ids: The ID of the vector store attached to this agent. There can be a - maximum of 1 vector - store attached to the agent. + maximum of 1 vector store attached to the agent. :vartype vector_store_ids: list[str] - :ivar vector_stores: The list of vector store configuration objects from Azure. - This list is limited to one element. - The only element of this list contains the list of azure asset IDs used by the search tool. + :ivar vector_stores: The list of vector store configuration objects from Azure. This list is + limited to one element. The only element of this list contains the list of azure asset IDs used + by the search tool. :vartype vector_stores: list[~azure.ai.agents.models.VectorStoreConfigurations] """ vector_store_ids: Optional[list[str]] = rest_field(visibility=["read", "create", "update", "delete", "query"]) - """The ID of the vector store attached to this agent. There can be a maximum of 1 vector - store attached to the agent.""" + """The ID of the vector store attached to this agent. There can be a maximum of 1 vector store + attached to the agent.""" vector_stores: Optional[list["_models.VectorStoreConfigurations"]] = rest_field( visibility=["read", "create", "update", "delete", "query"] ) - """The list of vector store configuration objects from Azure. - This list is limited to one element. + """The list of vector store configuration objects from Azure. This list is limited to one element. The only element of this list contains the list of azure asset IDs used by the search tool.""" @overload @@ -2655,7 +2627,9 @@ class KeyPressAction(ComputerUseAction, discriminator="keypress"): type: Literal["keypress"] = rest_discriminator(name="type", visibility=["read", "create", "update", "delete", "query"]) # type: ignore """Specifies the event type. For a keypress action, this property is always set to keypress. Required. Default value is \"keypress\".""" - keys_property: list[str] = rest_field(name="keys", visibility=["read", "create", "update", "delete", "query"]) + keys_property: list[str] = rest_field( + name="keys", visibility=["read", "create", "update", "delete", "query"], original_tsp_name="keys" + ) """The combination of keys the model is requesting to be pressed. This is an array of strings, each representing a key. Required.""" @@ -3920,8 +3894,7 @@ class MessageTextFileCitationAnnotation(MessageTextAnnotation, discriminator="fi "file_citation". :vartype type: str :ivar file_citation: A citation within the message that points to a specific quote from a - specific file. - Generated when the agent uses the "file_search" tool to search files. Required. + specific file. Generated when the agent uses the "file_search" tool to search files. Required. :vartype file_citation: ~azure.ai.agents.models.MessageTextFileCitationDetails :ivar start_index: The first text index associated with this text annotation. :vartype start_index: int @@ -3934,8 +3907,8 @@ class MessageTextFileCitationAnnotation(MessageTextAnnotation, discriminator="fi file_citation: "_models.MessageTextFileCitationDetails" = rest_field( visibility=["read", "create", "update", "delete", "query"] ) - """A citation within the message that points to a specific quote from a specific file. - Generated when the agent uses the \"file_search\" tool to search files. Required.""" + """A citation within the message that points to a specific quote from a specific file. Generated + when the agent uses the \"file_search\" tool to search files. Required.""" start_index: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"]) """The first text index associated with this text annotation.""" end_index: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"]) @@ -4273,12 +4246,12 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class OpenApiAnonymousAuthDetails(OpenApiAuthDetails, discriminator="anonymous"): """Security details for OpenApi anonymous authentication. - :ivar type: The object type, which is always 'anonymous'. Required. + :ivar type: The object type, which is always 'anonymous'. Required. ANONYMOUS. :vartype type: str or ~azure.ai.agents.models.ANONYMOUS """ type: Literal[OpenApiAuthType.ANONYMOUS] = rest_discriminator(name="type", visibility=["read", "create", "update", "delete", "query"]) # type: ignore - """The object type, which is always 'anonymous'. Required.""" + """The object type, which is always 'anonymous'. Required. ANONYMOUS.""" @overload def __init__( @@ -4300,14 +4273,14 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class OpenApiConnectionAuthDetails(OpenApiAuthDetails, discriminator="connection"): """Security details for OpenApi connection authentication. - :ivar type: The object type, which is always 'connection'. Required. + :ivar type: The object type, which is always 'connection'. Required. CONNECTION. :vartype type: str or ~azure.ai.agents.models.CONNECTION :ivar security_scheme: Connection auth security details. Required. :vartype security_scheme: ~azure.ai.agents.models.OpenApiConnectionSecurityScheme """ type: Literal[OpenApiAuthType.CONNECTION] = rest_discriminator(name="type", visibility=["read", "create", "update", "delete", "query"]) # type: ignore - """The object type, which is always 'connection'. Required.""" + """The object type, which is always 'connection'. Required. CONNECTION.""" security_scheme: "_models.OpenApiConnectionSecurityScheme" = rest_field( visibility=["read", "create", "update", "delete", "query"] ) @@ -4417,14 +4390,14 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class OpenApiManagedAuthDetails(OpenApiAuthDetails, discriminator="managed_identity"): """Security details for OpenApi managed_identity authentication. - :ivar type: The object type, which is always 'managed_identity'. Required. + :ivar type: The object type, which is always 'managed_identity'. Required. MANAGED_IDENTITY. :vartype type: str or ~azure.ai.agents.models.MANAGED_IDENTITY :ivar security_scheme: Connection auth security details. Required. :vartype security_scheme: ~azure.ai.agents.models.OpenApiManagedSecurityScheme """ type: Literal[OpenApiAuthType.MANAGED_IDENTITY] = rest_discriminator(name="type", visibility=["read", "create", "update", "delete", "query"]) # type: ignore - """The object type, which is always 'managed_identity'. Required.""" + """The object type, which is always 'managed_identity'. Required. MANAGED_IDENTITY.""" security_scheme: "_models.OpenApiManagedSecurityScheme" = rest_field( visibility=["read", "create", "update", "delete", "query"] ) @@ -5190,8 +5163,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class RunStepAzureAISearchToolCall(RunStepToolCall, discriminator="azure_ai_search"): """A record of a call to an Azure AI Search tool, issued by the model in evaluation of a defined - tool, that represents - executed Azure AI search. + tool, that represents executed Azure AI search. :ivar id: The ID of the tool call. This ID must be referenced when you submit tool outputs. Required. @@ -5272,8 +5244,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class RunStepBingCustomSearchToolCall(RunStepToolCall, discriminator="bing_custom_search"): """A record of a call to a Bing Custom Search tool, issued by the model in evaluation of a defined - tool, that represents - executed search with Bing Custom Search. + tool, that represents executed search with Bing Custom Search. :ivar id: The ID of the tool call. This ID must be referenced when you submit tool outputs. Required. @@ -5314,8 +5285,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class RunStepBingGroundingToolCall(RunStepToolCall, discriminator="bing_grounding"): """A record of a call to a bing grounding tool, issued by the model in evaluation of a defined - tool, that represents - executed search with bing grounding. + tool, that represents executed search with bing grounding. :ivar id: The ID of the tool call. This ID must be referenced when you submit tool outputs. Required. @@ -5527,8 +5497,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class RunStepCodeInterpreterToolCall(RunStepToolCall, discriminator="code_interpreter"): """A record of a call to a code interpreter tool, issued by the model in evaluation of a defined - tool, that - represents inputs and outputs consumed and emitted by the code interpreter. + tool, that represents inputs and outputs consumed and emitted by the code interpreter. :ivar id: The ID of the tool call. This ID must be referenced when you submit tool outputs. Required. @@ -5646,8 +5615,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class RunStepComputerUseToolCall(RunStepToolCall, discriminator="computer_use_preview"): """A record of a call to a Computer Use tool, issued by the model in evaluation of a defined tool, - that represents - executed computer automation actions. + that represents executed computer automation actions. :ivar id: The ID of the tool call. This ID must be referenced when you submit tool outputs. Required. @@ -5834,8 +5802,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class RunStepDeepResearchToolCall(RunStepToolCall, discriminator="deep_research"): """A record of a call to a Deep Research tool, issued by the model in evaluation of a defined - tool, that represents - executed deep research operations. + tool, that represents executed deep research operations. :ivar id: The ID of the tool call. This ID must be referenced when you submit tool outputs. Required. @@ -6161,9 +6128,8 @@ class RunStepDeltaCodeInterpreterDetailItemObject(_Model): # pylint: disable=na :ivar input: The input into the Code Interpreter tool call. :vartype input: str :ivar outputs: The outputs from the Code Interpreter tool call. Code Interpreter can output one - or more - items, including text (``logs``) or images (``image``). Each of these are represented by a - different object type. + or more items, including text (``logs``) or images (``image``). Each of these are represented + by a different object type. :vartype outputs: list[~azure.ai.agents.models.RunStepDeltaCodeInterpreterOutput] """ @@ -6172,9 +6138,9 @@ class RunStepDeltaCodeInterpreterDetailItemObject(_Model): # pylint: disable=na outputs: Optional[list["_models.RunStepDeltaCodeInterpreterOutput"]] = rest_field( visibility=["read", "create", "update", "delete", "query"] ) - """The outputs from the Code Interpreter tool call. Code Interpreter can output one or more - items, including text (``logs``) or images (``image``). Each of these are represented by a - different object type.""" + """The outputs from the Code Interpreter tool call. Code Interpreter can output one or more items, + including text (``logs``) or images (``image``). Each of these are represented by a different + object type.""" @overload def __init__( @@ -7185,8 +7151,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class RunStepFileSearchToolCall(RunStepToolCall, discriminator="file_search"): """A record of a call to a file search tool, issued by the model in evaluation of a defined tool, - that represents - executed file search. + that represents executed file search. :ivar type: The object type, which is always 'file_search'. Required. Default value is "file_search". @@ -7312,8 +7277,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class RunStepFunctionToolCall(RunStepToolCall, discriminator="function"): """A record of a call to a function tool, issued by the model in evaluation of a defined tool, - that represents the inputs - and output consumed and emitted by the specified function. + that represents the inputs and output consumed and emitted by the specified function. :ivar id: The ID of the tool call. This ID must be referenced when you submit tool outputs. Required. @@ -7387,8 +7351,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class RunStepMcpToolCall(RunStepToolCall, discriminator="mcp"): """A record of a call to a MCP tool, issued by the model in evaluation of a defined tool, that - represents - executed MCP actions. + represents executed MCP actions. :ivar id: The ID of the tool call. This ID must be referenced when you submit tool outputs. Required. @@ -7509,8 +7472,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class RunStepMicrosoftFabricToolCall(RunStepToolCall, discriminator="fabric_dataagent"): """A record of a call to a Microsoft Fabric tool, issued by the model in evaluation of a defined - tool, that represents - executed Microsoft Fabric operations. + tool, that represents executed Microsoft Fabric operations. :ivar id: The ID of the tool call. This ID must be referenced when you submit tool outputs. Required. @@ -7552,8 +7514,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class RunStepOpenAPIToolCall(RunStepToolCall, discriminator="openapi"): """A record of a call to an OpenAPI tool, issued by the model in evaluation of a defined tool, - that represents - executed OpenAPI operations. + that represents executed OpenAPI operations. :ivar id: The ID of the tool call. This ID must be referenced when you submit tool outputs. Required. @@ -7591,8 +7552,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class RunStepSharepointToolCall(RunStepToolCall, discriminator="sharepoint_grounding"): """A record of a call to a SharePoint tool, issued by the model in evaluation of a defined tool, - that represents - executed SharePoint actions. + that represents executed SharePoint actions. :ivar id: The ID of the tool call. This ID must be referenced when you submit tool outputs. Required. @@ -7788,16 +7748,15 @@ class SharepointGroundingToolParameters(_Model): """The sharepoint grounding tool parameters. :ivar connection_list: The connections attached to this tool. There can be a maximum of 1 - connection - resource attached to the tool. + connection resource attached to the tool. :vartype connection_list: list[~azure.ai.agents.models.ToolConnection] """ connection_list: Optional[list["_models.ToolConnection"]] = rest_field( name="connections", visibility=["read", "create", "update", "delete", "query"] ) - """The connections attached to this tool. There can be a maximum of 1 connection - resource attached to the tool.""" + """The connections attached to this tool. There can be a maximum of 1 connection resource attached + to the tool.""" @overload def __init__( @@ -8153,19 +8112,18 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class ThreadMessageOptions(_Model): - """A single message within an agent thread, - as provided during that thread's creation for its initial state. + """A single message within an agent thread, as provided during that thread's creation for its + initial state. :ivar role: The role of the entity that is creating the message. Allowed values include: - ``user``, which indicates the message is sent by an actual user (and should be - used in most cases to represent user-generated messages), and ``assistant``, - which indicates the message is generated by the agent (use this value to insert - messages from the agent into the conversation). Required. Known values are: "user" and - "assistant". + ``user``, which indicates the message is sent by an actual user (and should be used in most + cases to represent user-generated messages), and ``assistant``, which indicates the message is + generated by the agent (use this value to insert messages from the agent into the + conversation). Required. Known values are: "user" and "assistant". :vartype role: str or ~azure.ai.agents.models.MessageRole - :ivar content: The content of the initial message. This may be a basic string (if you only - need text) or an array of typed content blocks (for example, text, image_file, - image_url, and so on). Required. Is either a str type or a [MessageInputContentBlock] type. + :ivar content: The content of the initial message. This may be a basic string (if you only need + text) or an array of typed content blocks (for example, text, image_file, image_url, and so + on). Required. Is either a str type or a [MessageInputContentBlock] type. :vartype content: str or list[~azure.ai.agents.models.MessageInputContentBlock] :ivar attachments: A list of files attached to the message, and the tools they should be added to. @@ -8177,16 +8135,15 @@ class ThreadMessageOptions(_Model): """ role: Union[str, "_models.MessageRole"] = rest_field(visibility=["read", "create", "update", "delete", "query"]) - """The role of the entity that is creating the message. Allowed values include: - ``user``, which indicates the message is sent by an actual user (and should be - used in most cases to represent user-generated messages), and ``assistant``, - which indicates the message is generated by the agent (use this value to insert - messages from the agent into the conversation). Required. Known values are: \"user\" and - \"assistant\".""" + """The role of the entity that is creating the message. Allowed values include: ``user``, which + indicates the message is sent by an actual user (and should be used in most cases to represent + user-generated messages), and ``assistant``, which indicates the message is generated by the + agent (use this value to insert messages from the agent into the conversation). Required. Known + values are: \"user\" and \"assistant\".""" content: "_types.MessageInputContent" = rest_field(visibility=["read", "create", "update", "delete", "query"]) - """The content of the initial message. This may be a basic string (if you only - need text) or an array of typed content blocks (for example, text, image_file, - image_url, and so on). Required. Is either a str type or a [MessageInputContentBlock] type.""" + """The content of the initial message. This may be a basic string (if you only need text) or an + array of typed content blocks (for example, text, image_file, image_url, and so on). Required. + Is either a str type or a [MessageInputContentBlock] type.""" attachments: Optional[list["_models.MessageAttachment"]] = rest_field( visibility=["read", "create", "update", "delete", "query"] ) @@ -8549,10 +8506,8 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class ToolResources(_Model): """A set of resources that are used by the agent's tools. The resources are specific to the type - of - tool. For example, the ``code_interpreter`` tool requires a list of file IDs, while the - ``file_search`` - tool requires a list of vector store IDs. + of tool. For example, the ``code_interpreter`` tool requires a list of file IDs, while the + ``file_search`` tool requires a list of vector store IDs. :ivar code_interpreter: Resources to be used by the ``code_interpreter`` tool consisting of file IDs. @@ -8610,11 +8565,10 @@ class TruncationObject(_Model): context window of the run. :ivar type: The truncation strategy to use for the thread. The default is ``auto``. If set to - ``last_messages``, the thread will - be truncated to the ``lastMessages`` count most recent messages in the thread. When set to - ``auto``, messages in the middle of the thread - will be dropped to fit the context length of the model, ``max_prompt_tokens``. Required. Known - values are: "auto" and "last_messages". + ``last_messages``, the thread will be truncated to the ``lastMessages`` count most recent + messages in the thread. When set to ``auto``, messages in the middle of the thread will be + dropped to fit the context length of the model, ``max_prompt_tokens``. Required. Known values + are: "auto" and "last_messages". :vartype type: str or ~azure.ai.agents.models.TruncationStrategy :ivar last_messages: The number of most recent messages from the thread when constructing the context for the run. @@ -8625,11 +8579,10 @@ class TruncationObject(_Model): visibility=["read", "create", "update", "delete", "query"] ) """The truncation strategy to use for the thread. The default is ``auto``. If set to - ``last_messages``, the thread will - be truncated to the ``lastMessages`` count most recent messages in the thread. When set to - ``auto``, messages in the middle of the thread - will be dropped to fit the context length of the model, ``max_prompt_tokens``. Required. Known - values are: \"auto\" and \"last_messages\".""" + ``last_messages``, the thread will be truncated to the ``lastMessages`` count most recent + messages in the thread. When set to ``auto``, messages in the middle of the thread will be + dropped to fit the context length of the model, ``max_prompt_tokens``. Required. Known values + are: \"auto\" and \"last_messages\".""" last_messages: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"]) """The number of most recent messages from the thread when constructing the context for the run.""" @@ -8868,12 +8821,12 @@ class VectorStoreAutoChunkingStrategyRequest(VectorStoreChunkingStrategyRequest, """The default strategy. This strategy currently uses a max_chunk_size_tokens of 800 and chunk_overlap_tokens of 400. - :ivar type: The object type, which is always 'auto'. Required. + :ivar type: The object type, which is always 'auto'. Required. AUTO. :vartype type: str or ~azure.ai.agents.models.AUTO """ type: Literal[VectorStoreChunkingStrategyRequestType.AUTO] = rest_discriminator(name="type", visibility=["read", "create", "update", "delete", "query"]) # type: ignore - """The object type, which is always 'auto'. Required.""" + """The object type, which is always 'auto'. Required. AUTO.""" @overload def __init__( @@ -8928,12 +8881,12 @@ class VectorStoreAutoChunkingStrategyResponse(VectorStoreChunkingStrategyRespons """This is returned when the chunking strategy is unknown. Typically, this is because the file was indexed before the chunking_strategy concept was introduced in the API. - :ivar type: The object type, which is always 'other'. Required. + :ivar type: The object type, which is always 'other'. Required. OTHER. :vartype type: str or ~azure.ai.agents.models.OTHER """ type: Literal[VectorStoreChunkingStrategyResponseType.OTHER] = rest_discriminator(name="type", visibility=["read", "create", "update", "delete", "query"]) # type: ignore - """The object type, which is always 'other'. Required.""" + """The object type, which is always 'other'. Required. OTHER.""" @overload def __init__( @@ -8953,8 +8906,8 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class VectorStoreConfiguration(_Model): - """Vector storage configuration is the list of data sources, used when multiple - files can be used for the enterprise file search. + """Vector storage configuration is the list of data sources, used when multiple files can be used + for the enterprise file search. :ivar data_sources: Data sources. Required. :vartype data_sources: list[~azure.ai.agents.models.VectorStoreDataSource] @@ -9021,8 +8974,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class VectorStoreDataSource(_Model): """The structure, containing Azure asset URI path and the asset type of the file used as a data - source - for the enterprise file search. + source for the enterprise file search. :ivar asset_identifier: Asset URI. Required. :vartype asset_identifier: str @@ -9142,8 +9094,7 @@ class VectorStoreFile(_Model): is "vector_store.file". :vartype object: str :ivar usage_bytes: The total vector store usage in bytes. Note that this may be different from - the original file - size. Required. + the original file size. Required. :vartype usage_bytes: int :ivar created_at: The Unix timestamp (in seconds) for when the vector store file was created. Required. @@ -9415,8 +9366,7 @@ class VectorStoreStaticChunkingStrategyOptions(_Model): 800. The minimum value is 100 and the maximum value is 4096. Required. :vartype max_chunk_size_tokens: int :ivar chunk_overlap_tokens: The number of tokens that overlap between chunks. The default value - is 400. - Note that the overlap must not exceed half of max_chunk_size_tokens. Required. + is 400. Note that the overlap must not exceed half of max_chunk_size_tokens. Required. :vartype chunk_overlap_tokens: int """ @@ -9424,8 +9374,8 @@ class VectorStoreStaticChunkingStrategyOptions(_Model): """The maximum number of tokens in each chunk. The default value is 800. The minimum value is 100 and the maximum value is 4096. Required.""" chunk_overlap_tokens: int = rest_field(visibility=["read", "create", "update", "delete", "query"]) - """The number of tokens that overlap between chunks. The default value is 400. - Note that the overlap must not exceed half of max_chunk_size_tokens. Required.""" + """The number of tokens that overlap between chunks. The default value is 400. Note that the + overlap must not exceed half of max_chunk_size_tokens. Required.""" @overload def __init__( @@ -9449,14 +9399,14 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class VectorStoreStaticChunkingStrategyRequest(VectorStoreChunkingStrategyRequest, discriminator="static"): """A statically configured chunking strategy. - :ivar type: The object type, which is always 'static'. Required. + :ivar type: The object type, which is always 'static'. Required. STATIC. :vartype type: str or ~azure.ai.agents.models.STATIC :ivar static: The options for the static chunking strategy. Required. :vartype static: ~azure.ai.agents.models.VectorStoreStaticChunkingStrategyOptions """ type: Literal[VectorStoreChunkingStrategyRequestType.STATIC] = rest_discriminator(name="type", visibility=["read", "create", "update", "delete", "query"]) # type: ignore - """The object type, which is always 'static'. Required.""" + """The object type, which is always 'static'. Required. STATIC.""" static: "_models.VectorStoreStaticChunkingStrategyOptions" = rest_field( visibility=["read", "create", "update", "delete", "query"] ) @@ -9486,14 +9436,14 @@ class VectorStoreStaticChunkingStrategyResponse( ): # pylint: disable=name-too-long """A statically configured chunking strategy. - :ivar type: The object type, which is always 'static'. Required. + :ivar type: The object type, which is always 'static'. Required. STATIC. :vartype type: str or ~azure.ai.agents.models.STATIC :ivar static: The options for the static chunking strategy. Required. :vartype static: ~azure.ai.agents.models.VectorStoreStaticChunkingStrategyOptions """ type: Literal[VectorStoreChunkingStrategyResponseType.STATIC] = rest_discriminator(name="type", visibility=["read", "create", "update", "delete", "query"]) # type: ignore - """The object type, which is always 'static'. Required.""" + """The object type, which is always 'static'. Required. STATIC.""" static: "_models.VectorStoreStaticChunkingStrategyOptions" = rest_field( visibility=["read", "create", "update", "delete", "query"] ) diff --git a/sdk/ai/azure-ai-agents/azure/ai/agents/operations/_operations.py b/sdk/ai/azure-ai-agents/azure/ai/agents/operations/_operations.py index eba194bfb068..01792288d391 100644 --- a/sdk/ai/azure-ai-agents/azure/ai/agents/operations/_operations.py +++ b/sdk/ai/azure-ai-agents/azure/ai/agents/operations/_operations.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -1394,7 +1395,10 @@ def create( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -1481,7 +1485,10 @@ def get_next(_continuation_token=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) return pipeline_response @@ -1536,7 +1543,10 @@ def get(self, thread_id: str, **kwargs: Any) -> _models.AgentThread: except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -1700,7 +1710,10 @@ def update( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -1761,7 +1774,10 @@ def _delete_thread(self, thread_id: str, **kwargs: Any) -> _models._models.Threa except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -1969,7 +1985,10 @@ def create( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -2121,7 +2140,10 @@ def get(self, thread_id: str, message_id: str, **kwargs: Any) -> _models.ThreadM except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -2282,7 +2304,10 @@ def update( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -2351,7 +2376,10 @@ def _delete(self, thread_id: str, message_id: str, **kwargs: Any) -> _models._mo except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -2560,7 +2588,7 @@ def create( """ @distributed_trace - def create( + def create( # pylint: disable=too-many-locals self, thread_id: str, body: Union[JSON, IO[bytes]] = _Unset, @@ -2746,7 +2774,10 @@ def create( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -2837,7 +2868,10 @@ def get_next(_continuation_token=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) return pipeline_response @@ -2895,7 +2929,10 @@ def get(self, thread_id: str, run_id: str, **kwargs: Any) -> _models.ThreadRun: except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3056,7 +3093,10 @@ def update( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3229,7 +3269,10 @@ def submit_tool_outputs( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3293,7 +3336,10 @@ def cancel(self, thread_id: str, run_id: str, **kwargs: Any) -> _models.ThreadRu except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3392,7 +3438,10 @@ def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3494,7 +3543,10 @@ def get_next(_continuation_token=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) return pipeline_response @@ -3570,7 +3622,10 @@ def list( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3614,12 +3669,11 @@ def _upload_file(self, body: Union[_models._models.UploadFileRequest, JSON], **k _body = body.as_dict() if isinstance(body, _Model) else body _file_fields: list[str] = ["file"] _data_fields: list[str] = ["purpose", "filename"] - _files, _data = prepare_multipart_form_data(_body, _file_fields, _data_fields) + _files = prepare_multipart_form_data(_body, _file_fields, _data_fields) _request = build_files_upload_file_request( api_version=self._config.api_version, files=_files, - data=_data, headers=_headers, params=_params, ) @@ -3642,7 +3696,10 @@ def _upload_file(self, body: Union[_models._models.UploadFileRequest, JSON], **k except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3703,7 +3760,10 @@ def _delete_file(self, file_id: str, **kwargs: Any) -> _models._models.FileDelet except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3766,7 +3826,10 @@ def get(self, file_id: str, **kwargs: Any) -> _models.FileInfo: except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -3827,7 +3890,10 @@ def _get_file_content(self, file_id: str, **kwargs: Any) -> Iterator[bytes]: except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) deserialized = response.iter_bytes() @@ -3929,7 +3995,10 @@ def get_next(_continuation_token=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) return pipeline_response @@ -4101,7 +4170,10 @@ def create( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -4162,7 +4234,10 @@ def get(self, vector_store_id: str, **kwargs: Any) -> _models.VectorStore: except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -4324,7 +4399,10 @@ def modify( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -4386,7 +4464,10 @@ def _delete_vector_store(self, vector_store_id: str, **kwargs: Any) -> _models._ except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -4502,7 +4583,10 @@ def get_next(_continuation_token=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) return pipeline_response @@ -4654,7 +4738,10 @@ def create( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -4718,7 +4805,10 @@ def get(self, vector_store_id: str, file_id: str, **kwargs: Any) -> _models.Vect except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -4786,7 +4876,10 @@ def _delete_vector_store_file( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -4964,7 +5057,10 @@ def create( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -5028,7 +5124,10 @@ def get(self, vector_store_id: str, batch_id: str, **kwargs: Any) -> _models.Vec except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -5093,7 +5192,10 @@ def cancel(self, vector_store_id: str, batch_id: str, **kwargs: Any) -> _models. except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -5193,7 +5295,10 @@ def get_next(_continuation_token=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) return pipeline_response @@ -5298,7 +5403,7 @@ def create_agent(self, body: IO[bytes], *, content_type: str = "application/json """ @distributed_trace - def create_agent( + def create_agent( # pylint: disable=too-many-locals self, body: Union[JSON, IO[bytes]] = _Unset, *, @@ -5422,7 +5527,10 @@ def create_agent( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -5509,7 +5617,10 @@ def get_next(_continuation_token=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) return pipeline_response @@ -5564,7 +5675,10 @@ def get_agent(self, agent_id: str, **kwargs: Any) -> _models.Agent: except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -5683,7 +5797,7 @@ def update_agent( """ @distributed_trace - def update_agent( + def update_agent( # pylint: disable=too-many-locals self, agent_id: str, body: Union[JSON, IO[bytes]] = _Unset, @@ -5811,7 +5925,10 @@ def update_agent( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -5872,7 +5989,10 @@ def _delete_agent(self, agent_id: str, **kwargs: Any) -> _models._models.AgentDe except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: @@ -6023,7 +6143,7 @@ def create_thread_and_run( """ @distributed_trace - def create_thread_and_run( + def create_thread_and_run( # pylint: disable=too-many-locals self, body: Union[JSON, IO[bytes]] = _Unset, *, @@ -6192,7 +6312,10 @@ def create_thread_and_run( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.AgentV1Error, response) + error = _failsafe_deserialize( + _models.AgentV1Error, + response, + ) raise HttpResponseError(response=response, model=error) if _stream: diff --git a/sdk/ai/azure-ai-agents/pyproject.toml b/sdk/ai/azure-ai-agents/pyproject.toml index 062a6418ec7b..9eee02990186 100644 --- a/sdk/ai/azure-ai-agents/pyproject.toml +++ b/sdk/ai/azure-ai-agents/pyproject.toml @@ -1,26 +1,67 @@ -[tool.mypy] -python_version = "3.10" -exclude = [ +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +[build-system] +requires = ["setuptools>=77.0.3", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "azure-ai-agents" +authors = [ + { name = "Microsoft Corporation", email = "azpysdkhelp@microsoft.com" }, +] +description = "Microsoft Corporation Azure Ai Agents Client Library for Python" +license = "MIT" +classifiers = [ + "Development Status :: 4 - Beta", + "Programming Language :: Python", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", +] +requires-python = ">=3.9" +keywords = ["azure", "azure sdk"] + +dependencies = [ + "isodate>=0.6.1", + "azure-core>=1.37.0", + "typing-extensions>=4.6.0", ] -warn_unused_configs = true -ignore_missing_imports = true -follow_imports_for_stubs = false - -[tool.isort] -profile = "black" -line_length = 120 -known_first_party = ["azure"] -filter_files=true -extend_skip_glob = [ - "*/_vendor/*", - "*/_generated/*", - "*/_restclient/*", - "*/doc/*", - "*/.tox/*", +dynamic = [ +"version", "readme" ] +[project.urls] +repository = "https://github.com/Azure/azure-sdk-for-python" + +[tool.setuptools.dynamic] +version = {attr = "azure.ai.agents._version.VERSION"} +readme = {file = ["README.md", "CHANGELOG.md"], content-type = "text/markdown"} + +[tool.setuptools.packages.find] +exclude = [ + "tests*", + "generated_tests*", + "samples*", + "generated_samples*", + "doc*", + "azure", + "azure.ai", +] + +[tool.setuptools.package-data] +pytyped = ["py.typed"] + [tool.azure-sdk-build] -whl_no_aio= false +whl_no_aio = false [tool.azure-sdk-conda] in_bundle = false diff --git a/sdk/ai/azure-ai-agents/samples/agents_async/sample_agents_basics_with_console_tracing_async.py b/sdk/ai/azure-ai-agents/samples/agents_async/sample_agents_basics_with_console_tracing_async.py index bacec1c100b0..67c32b24c200 100644 --- a/sdk/ai/azure-ai-agents/samples/agents_async/sample_agents_basics_with_console_tracing_async.py +++ b/sdk/ai/azure-ai-agents/samples/agents_async/sample_agents_basics_with_console_tracing_async.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # ------------------------------------ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. @@ -37,6 +38,7 @@ from azure.identity.aio import DefaultAzureCredential from azure.core.settings import settings + settings.tracing_implementation = "opentelemetry" # Install opentelemetry with command "pip install azure-ai-projects opentelemetry-sdk". @@ -53,6 +55,7 @@ tracer = trace.get_tracer(__name__) from azure.ai.agents.telemetry import AIAgentsInstrumentor + AIAgentsInstrumentor().instrument() @@ -80,7 +83,9 @@ async def main() -> None: thread = await project_client.agents.threads.create() print(f"Created thread, thread ID: {thread.id}") - message = await project_client.agents.messages.create(thread_id=thread.id, role="user", content="Hello, tell me a joke") + message = await project_client.agents.messages.create( + thread_id=thread.id, role="user", content="Hello, tell me a joke" + ) print(f"Created message, message ID: {message.id}") run = await project_client.agents.runs.create_and_process(thread_id=thread.id, agent_id=agent.id) diff --git a/sdk/ai/azure-ai-agents/setup.py b/sdk/ai/azure-ai-agents/setup.py deleted file mode 100644 index 372a1c431d12..000000000000 --- a/sdk/ai/azure-ai-agents/setup.py +++ /dev/null @@ -1,80 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) Python Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - - -import os -import re -from setuptools import setup, find_packages - - -PACKAGE_NAME = "azure-ai-agents" -PACKAGE_PPRINT_NAME = "Azure AI Agents" - -# a-b-c => a/b/c -package_folder_path = PACKAGE_NAME.replace("-", "/") - -# Version extraction inspired from 'requests' -with open(os.path.join(package_folder_path, "_version.py"), "r") as fd: - version = re.search(r'^VERSION\s*=\s*[\'"]([^\'"]*)[\'"]', fd.read(), re.MULTILINE).group(1) - -if not version: - raise RuntimeError("Cannot find version information") - - -setup( - name=PACKAGE_NAME, - version=version, - description="Microsoft Corporation {} Client Library for Python".format(PACKAGE_PPRINT_NAME), - long_description=open("README.md", "r").read(), - long_description_content_type="text/markdown", - license="MIT License", - author="Microsoft Corporation", - author_email="azpysdkhelp@microsoft.com", - url="https://github.com/Azure/azure-sdk-for-python/tree/main/sdk", - keywords="azure, azure sdk", - classifiers=[ - "Development Status :: 4 - Beta", - "Programming Language :: Python", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "License :: OSI Approved :: MIT License", - ], - zip_safe=False, - packages=find_packages( - exclude=[ - "samples", - "samples.utils", - "samples.agents_tools", - "samples.agents_async", - "samples.agents_multiagent", - "samples.agents_streaming", - "samples.agents_telemetry", - "samples.agents_tools", - "samples.assets", - "samples.agents_async.utils", - "tests", - # Exclude packages that will be covered by PEP420 or nspkg - "azure", - "azure.ai", - ] - ), - include_package_data=True, - package_data={ - "azure.ai.agents": ["py.typed"], - }, - install_requires=[ - "isodate>=0.6.1", - "azure-core>=1.30.0", - "typing-extensions>=4.6.0", - ], - python_requires=">=3.9", -)