diff --git a/.konflux/build-args-konflux.conf b/.konflux/build-args-konflux.conf index 18b2697ee..a8274f0da 100644 --- a/.konflux/build-args-konflux.conf +++ b/.konflux/build-args-konflux.conf @@ -1,4 +1,4 @@ -BUILDER_BASE_IMAGE=registry.redhat.io/rhai/base-image-cpu-rhel9:3.2 +BUILDER_BASE_IMAGE=quay.io/aipcc/base-images/cpu:3.5.0-1782914735 BUILDER_DNF_COMMAND=dnf -RUNTIME_BASE_IMAGE=registry.redhat.io/rhai/base-image-cpu-rhel9:3.2 +RUNTIME_BASE_IMAGE=quay.io/aipcc/base-images/cpu:3.5.0-1782914735 RUNTIME_DNF_COMMAND=dnf diff --git a/.konflux/profiles.toml b/.konflux/profiles.toml new file mode 100644 index 000000000..08cb82147 --- /dev/null +++ b/.konflux/profiles.toml @@ -0,0 +1,12 @@ +[common] +python_version = "3.12" +platforms = ["x86_64", "aarch64"] +bootstrap_packages = ["maturin"] + +[profiles.cpu] +rhoai_index_url = "https://packages.redhat.com/api/pypi/public-rhai/rhoai/3.5/cpu-ubi9/simple/" +output_suffix = "" +tekton_files = [ + ".tekton/lightspeed-stack-0-7-pull-request.yaml", + ".tekton/lightspeed-stack-0-7-push.yaml", +] diff --git a/.konflux/pypi_wheel_only.txt b/.konflux/pypi_wheel_only.txt new file mode 100644 index 000000000..c23de23ec --- /dev/null +++ b/.konflux/pypi_wheel_only.txt @@ -0,0 +1,5 @@ +# Packages where PyPI has an sdist but it cannot be built reliably. +# Rust/C++ bootstrap, binary-only distributions, CUDA stack. +# +# Pure-Python packages whose build backends pull in C-extension deps +# (e.g. jinja2→markupsafe) that conflict with RHOAI-rebuilt wheels. diff --git a/.konflux/requirements-build.txt b/.konflux/requirements-build.txt index 56c93f10e..aa2a644ba 100644 --- a/.konflux/requirements-build.txt +++ b/.konflux/requirements-build.txt @@ -1,171 +1,43 @@ # -# This file is autogenerated by pip-compile with Python 3.13 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # -# pybuild-deps compile --output-file=requirements-build.txt requirements.source.txt +# pybuild-deps compile --output-file=.konflux/requirements-build.txt .konflux/_tmp_sdist_list.txt # calver==2025.10.20 # via trove-classifiers -cython==3.2.4 - # via oracledb -dunamai==1.26.1 - # via uv-dynamic-versioning flit-core==3.12.0 # via - # click - # jinja2 # packaging # pathspec - # pypdf # wheel hatch-fancy-pypi-readme==25.1.0 - # via - # attrs - # llama-stack-client - # openai -hatch-vcs==0.5.0 - # via - # attrs - # chardet - # filelock + # via llama-stack-client hatchling==1.26.3 # via # hatch-fancy-pypi-readme # llama-stack-client - # openai -hatchling==1.29.0 +hatchling==1.31.0 # via - # a2a-sdk - # attrs - # chardet - # filelock # hatch-fancy-pypi-readme - # hatch-vcs - # mcp - # opentelemetry-api - # opentelemetry-distro - # opentelemetry-exporter-otlp - # opentelemetry-exporter-otlp-proto-common - # opentelemetry-exporter-otlp-proto-grpc - # opentelemetry-exporter-otlp-proto-http - # opentelemetry-instrumentation - # opentelemetry-proto - # opentelemetry-sdk - # opentelemetry-semantic-conventions - # pydantic-settings - # pygments + # pydantic-ai-skills # pythainlp - # python-multipart - # starlette - # uv-dynamic-versioning - # uvicorn - # wcwidth -jinja2==3.1.6 - # via uv-dynamic-versioning -markupsafe==3.0.3 - # via jinja2 -maturin==1.10.2 - # via fastuuid -packaging==26.0 - # via - # dunamai - # hatchling - # setuptools-scm - # vcs-versioning - # wheel -pathspec==1.0.4 +pathspec==1.1.1 # via hatchling -pdm-backend==2.4.8 - # via fastapi -pkgconfig==1.6.0 - # via aiohttp pluggy==1.6.0 # via hatchling -poetry-core==2.3.2 - # via - # dunamai - # litellm - # pkgconfig - # rich - # tomlkit -semantic-version==2.10.0 - # via setuptools-rust -setuptools-rust==1.12.1 - # via maturin -setuptools-scm==10.0.5 +setuptools-scm==10.2.0 # via - # hatch-vcs # llama-stack # llama-stack-api # pluggy - # setuptools-rust - # tenacity -tomlkit==0.14.0 - # via uv-dynamic-versioning -trove-classifiers==2026.1.14.14 +trove-classifiers==2026.6.1.19 # via hatchling -uv-dynamic-versioning==0.14.0 - # via - # a2a-sdk - # mcp -vcs-versioning==1.1.1 +vcs-versioning==2.2.2 # via setuptools-scm -wheel==0.46.3 - # via - # authlib - # azure-core - # azure-identity - # cachetools - # litellm - # oracledb - # sentence-transformers - # tornado - # tzdata +wheel==0.47.0 + # via oci # The following packages are considered to be unsafe in a requirements file: -setuptools==82.0.1 - # via - # aiohttp - # authlib - # azure-core - # azure-identity - # blobfile - # cachetools - # calver - # certifi - # charset-normalizer - # emoji - # google-api-core - # google-cloud-bigquery - # googleapis-common-protos - # greenlet - # grpc-google-iam-v1 - # joserfc - # llama-stack - # llama-stack-api - # markupsafe - # maturin - # multiprocess - # oracledb - # pathspec - # pluggy - # polyleven - # proto-plus - # psutil - # pyasn1 - # pycryptodomex - # pyjwt - # python-dotenv - # regex - # requests - # semver - # sentence-transformers - # setuptools-rust - # setuptools-scm - # sse-starlette - # tenacity - # tornado - # trl - # trove-classifiers - # tzdata - # vcs-versioning \ No newline at end of file +setuptools==78.1.1 + # via oci diff --git a/.konflux/requirements.hashes.source.txt b/.konflux/requirements.hashes.source.txt index d7eb66756..ddf3f6475 100644 --- a/.konflux/requirements.hashes.source.txt +++ b/.konflux/requirements.hashes.source.txt @@ -1,550 +1,124 @@ -# This file was autogenerated by uv via the following command: -# uv pip compile requirements.source.txt --refresh --generate-hashes --python-version 3.12 --emit-index-url --no-deps --no-annotate --index-url https://pypi.org/simple - -a2a-sdk==0.3.26 \ - --hash=sha256:44068e2d037afbb07ab899267439e9bc7eaa7ac2af94f1e8b239933c993ad52d \ - --hash=sha256:754e0573f6d33b225c1d8d51f640efa69cbbed7bdfb06ce9c3540ea9f58d4a91 -accelerate==1.13.0 \ - --hash=sha256:cf1a3efb96c18f7b152eb0fa7490f3710b19c3f395699358f08decca2b8b62e0 \ - --hash=sha256:d631b4e0f5b3de4aff2d7e9e6857d164810dfc3237d54d017f075122d057b236 -aiohttp==3.13.5 \ - --hash=sha256:019a67772e034a0e6b9b17c13d0a8fe56ad9fb150fc724b7f3ffd3724288d9e5 \ - --hash=sha256:02222e7e233295f40e011c1b00e3b0bd451f22cf853a0304c3595633ee47da4b \ - --hash=sha256:023ecba036ddd840b0b19bf195bfae970083fd7024ce1ac22e9bba90464620e9 \ - --hash=sha256:02e048037a6501a5ec1f6fc9736135aec6eb8a004ce48838cb951c515f32c80b \ - --hash=sha256:0494a01ca9584eea1e5fbd6d748e61ecff218c51b576ee1999c23db7066417d8 \ - --hash=sha256:0f7a18f258d124cd678c5fe072fe4432a4d5232b0657fca7c1847f599233c83a \ - --hash=sha256:10a75acfcf794edf9d8db50e5a7ec5fc818b2a8d3f591ce93bc7b1210df016d2 \ - --hash=sha256:110e448e02c729bcebb18c60b9214a87ba33bac4a9fa5e9a5f139938b56c6cb1 \ - --hash=sha256:147b4f501d0292077f29d5268c16bb7c864a1f054d7001c4c1812c0421ea1ed0 \ - --hash=sha256:157826e2fa245d2ef46c83ea8a5faf77ca19355d278d425c29fda0beb3318037 \ - --hash=sha256:15c933ad7920b7d9a20de151efcd05a6e38302cbf0e10c9b2acb9a42210a2416 \ - --hash=sha256:178c7b5e62b454c2bc790786e6058c3cc968613b4419251b478c153a4aec32b1 \ - --hash=sha256:18a2f6c1182c51baa1d28d68fea51513cb2a76612f038853c0ad3c145423d3d9 \ - --hash=sha256:1efb06900858bb618ff5cee184ae2de5828896c448403d51fb633f09e109be0a \ - --hash=sha256:20058e23909b9e65f9da62b396b77dfa95965cbe840f8def6e572538b1d32e36 \ - --hash=sha256:206b7b3ef96e4ce211754f0cd003feb28b7d81f0ad26b8d077a5d5161436067f \ - --hash=sha256:20ae0ff08b1f2c8788d6fb85afcb798654ae6ba0b747575f8562de738078457b \ - --hash=sha256:2294172ce08a82fb7c7273485895de1fa1186cc8294cfeb6aef4af42ad261174 \ - --hash=sha256:241a94f7de7c0c3b616627aaad530fe2cb620084a8b144d3be7b6ecfe95bae3b \ - --hash=sha256:26d2f8546f1dfa75efa50c3488215a903c0168d253b75fba4210f57ab77a0fb8 \ - --hash=sha256:2837fb92951564d6339cedae4a7231692aa9f73cbc4fb2e04263b96844e03b4e \ - --hash=sha256:2994be9f6e51046c4f864598fd9abeb4fba6e88f0b2152422c9666dcd4aea9c6 \ - --hash=sha256:2d6d44a5b48132053c2f6cd5c8cb14bc67e99a63594e336b0f2af81e94d5530c \ - --hash=sha256:31cebae8b26f8a615d2b546fee45d5ffb76852ae6450e2a03f42c9102260d6fe \ - --hash=sha256:327cc432fdf1356fb4fbc6fe833ad4e9f6aacb71a8acaa5f1855e4b25910e4a9 \ - --hash=sha256:329f292ed14d38a6c4c435e465f48bebb47479fd676a0411936cc371643225cc \ - --hash=sha256:330f5da04c987f1d5bdb8ae189137c77139f36bd1cb23779ca1a354a4b027800 \ - --hash=sha256:33add2463dde55c4f2d9635c6ab33ce154e5ecf322bd26d09af95c5f81cfa286 \ - --hash=sha256:347542f0ea3f95b2a955ee6656461fa1c776e401ac50ebce055a6c38454a0adf \ - --hash=sha256:39380e12bd1f2fdab4285b6e055ad48efbaed5c836433b142ed4f5b9be71036a \ - --hash=sha256:3a807cabd5115fb55af198b98178997a5e0e57dead43eb74a93d9c07d6d4a7dc \ - --hash=sha256:3b13560160d07e047a93f23aaa30718606493036253d5430887514715b67c9d9 \ - --hash=sha256:3df334e39d4c2f899a914f1dba283c1aadc311790733f705182998c6f7cae665 \ - --hash=sha256:4bb6bf5811620003614076bdc807ef3b5e38244f9d25ca5fe888eaccea2a9832 \ - --hash=sha256:4beac52e9fe46d6abf98b0176a88154b742e878fdf209d2248e99fcdf73cd297 \ - --hash=sha256:4e704c52438f66fdd89588346183d898bb42167cf88f8b7ff1c0f9fc957c348f \ - --hash=sha256:4eac02d9af4813ee289cd63a361576da36dba57f5a1ab36377bc2600db0cbb73 \ - --hash=sha256:53fc049ed6390d05423ba33103ded7281fe897cf97878f369a527070bd95795b \ - --hash=sha256:55b3bdd3292283295774ab585160c4004f4f2f203946997f49aac032c84649e9 \ - --hash=sha256:57653eac22c6a4c13eb22ecf4d673d64a12f266e72785ab1c8b8e5940d0e8090 \ - --hash=sha256:60869c7ac4aaabe7110f26499f3e6e5696eae98144735b12a9c3d9eae2b51a49 \ - --hash=sha256:636bc362f0c5bbc7372bc3ae49737f9e3030dbce469f0f422c8f38079780363d \ - --hash=sha256:676e5651705ad5d8a70aeb8eb6936c436d8ebbd56e63436cb7dd9bb36d2a9a46 \ - --hash=sha256:69f571de7500e0557801c0b51f4780482c0ec5fe2ac851af5a92cfce1af1cb83 \ - --hash=sha256:6a7cbeb06d1070f1d14895eeeed4dac5913b22d7b456f2eb969f11f4b3993796 \ - --hash=sha256:6cf81fe010b8c17b09495cbd15c1d35afbc8fb405c0c9cf4738e5ae3af1d65be \ - --hash=sha256:6e27ea05d184afac78aabbac667450c75e54e35f62238d44463131bd3f96753d \ - --hash=sha256:6f1cbf0c7926d315c3c26c2da41fd2b5d2fe01ac0e157b78caefc51a782196cf \ - --hash=sha256:6f497a6876aa4b1a102b04996ce4c1170c7040d83faa9387dd921c16e30d5c83 \ - --hash=sha256:756c3c304d394977519824449600adaf2be0ccee76d206ee339c5e76b70ded25 \ - --hash=sha256:77dfa48c9f8013271011e51c00f8ada19851f013cde2c48fca1ba5e0caf5bb06 \ - --hash=sha256:7996023b2ed59489ae4762256c8516df9820f751cf2c5da8ed2fb20ee50abab3 \ - --hash=sha256:7ab7229b6f9b5c1ba4910d6c41a9eb11f543eadb3f384df1b4c293f4e73d44d6 \ - --hash=sha256:7becdf835feff2f4f335d7477f121af787e3504b48b449ff737afb35869ba7bb \ - --hash=sha256:7c35b0bf0b48a70b4cb4fc5d7bed9b932532728e124874355de1a0af8ec4bc88 \ - --hash=sha256:7c4b6668b2b2b9027f209ddf647f2a4407784b5d88b8be4efcc72036f365baf9 \ - --hash=sha256:7e5dc4311bd5ac493886c63cbf76ab579dbe4641268e7c74e48e774c74b6f2be \ - --hash=sha256:888e78eb5ca55a615d285c3c09a7a91b42e9dd6fc699b166ebd5dee87c9ccf14 \ - --hash=sha256:898703aa2667e3c5ca4c54ca36cd73f58b7a38ef87a5606414799ebce4d3fd3a \ - --hash=sha256:8b14eb3262fad0dc2f89c1a43b13727e709504972186ff6a99a3ecaa77102b6c \ - --hash=sha256:8bd3ec6376e68a41f9f95f5ed170e2fcf22d4eb27a1f8cb361d0508f6e0557f3 \ - --hash=sha256:8cf20a8d6868cb15a73cab329ffc07291ba8c22b1b88176026106ae39aa6df0f \ - --hash=sha256:8f14c50708bb156b3a3ca7230b3d820199d56a48e3af76fa21c2d6087190fe3d \ - --hash=sha256:8f546a4dc1e6a5edbb9fd1fd6ad18134550e096a5a43f4ad74acfbd834fc6670 \ - --hash=sha256:912d4b6af530ddb1338a66229dac3a25ff11d4448be3ec3d6340583995f56031 \ - --hash=sha256:9277145d36a01653863899c665243871434694bcc3431922c3b35c978061bdb8 \ - --hash=sha256:95d14ca7abefde230f7639ec136ade282655431fd5db03c343b19dda72dd1643 \ - --hash=sha256:999802d5fa0389f58decd24b537c54aa63c01c3219ce17d1214cbda3c2b22d2d \ - --hash=sha256:9a0f4474b6ea6818b41f82172d799e4b3d29e22c2c520ce4357856fced9af2f8 \ - --hash=sha256:9b16c653d38eb1a611cc898c41e76859ca27f119d25b53c12875fd0474ae31a8 \ - --hash=sha256:9d98cc980ecc96be6eb4c1994ce35d28d8b1f5e5208a23b421187d1209dbb7d1 \ - --hash=sha256:9efcc0f11d850cefcafdd9275b9576ad3bfb539bed96807663b32ad99c4d4b88 \ - --hash=sha256:a2567b72e1ffc3ab25510db43f355b29eeada56c0a622e58dcdb19530eb0a3cb \ - --hash=sha256:a5029cc80718bbd545123cd8fe5d15025eccaaaace5d0eeec6bd556ad6163d61 \ - --hash=sha256:a60eaa2d440cd4707696b52e40ed3e2b0f73f65be07fd0ef23b6b539c9c0b0b4 \ - --hash=sha256:a79a6d399cef33a11b6f004c67bb07741d91f2be01b8d712d52c75711b1e07c7 \ - --hash=sha256:a84792f8631bf5a94e52d9cc881c0b824ab42717165a5579c760b830d9392ac9 \ - --hash=sha256:a8a4d3427e8de1312ddf309cc482186466c79895b3a139fed3259fc01dfa9a5b \ - --hash=sha256:a8aca50daa9493e9e13c0f566201a9006f080e7c50e5e90d0b06f53146a54500 \ - --hash=sha256:aa6d0d932e0f39c02b80744273cd5c388a2d9bc07760a03164f229c8e02662f6 \ - --hash=sha256:ab2899f9fa2f9f741896ebb6fa07c4c883bfa5c7f2ddd8cf2aafa86fa981b2d2 \ - --hash=sha256:af545c2cffdb0967a96b6249e6f5f7b0d92cdfd267f9d5238d5b9ca63e8edb10 \ - --hash=sha256:b18f31b80d5a33661e08c89e202edabf1986e9b49c42b4504371daeaa11b47c1 \ - --hash=sha256:b20df693de16f42b2472a9c485e1c948ee55524786a0a34345511afdd22246f3 \ - --hash=sha256:b38765950832f7d728297689ad78f5f2cf79ff82487131c4d26fe6ceecdc5f8e \ - --hash=sha256:b6f6cd1560c5fa427e3b6074bb24d2c64e225afbb7165008903bd42e4e33e28a \ - --hash=sha256:bace460460ed20614fa6bc8cb09966c0b8517b8c58ad8046828c6078d25333b5 \ - --hash=sha256:bca9ef7517fd7874a1a08970ae88f497bf5c984610caa0bf40bd7e8450852b95 \ - --hash=sha256:c180f480207a9b2475f2b8d8bd7204e47aec952d084b2a2be58a782ffcf96074 \ - --hash=sha256:c2b2355dc094e5f7d45a7bb262fe7207aa0460b37a0d87027dcf21b5d890e7d5 \ - --hash=sha256:c564dd5f09ddc9d8f2c2d0a301cd30a79a2cc1b46dd1a73bef8f0038863d016b \ - --hash=sha256:c632ce9c0b534fbe25b52c974515ed674937c5b99f549a92127c85f771a78772 \ - --hash=sha256:c719f65bebcdf6716f10e9eff80d27567f7892d8988c06de12bbbd39307c6e3a \ - --hash=sha256:c86969d012e51b8e415a8c6ce96f7857d6a87d6207303ab02d5d11ef0cad2274 \ - --hash=sha256:c974fb66180e58709b6fc402846f13791240d180b74de81d23913abe48e96d94 \ - --hash=sha256:c9883051c6972f58bfc4ebb2116345ee2aa151178e99c3f2b2bbe2af712abd13 \ - --hash=sha256:ca9ac61ac6db4eb6c2a0cd1d0f7e1357647b638ccc92f7e9d8d133e71ed3c6ac \ - --hash=sha256:cb979826071c0986a5f08333a36104153478ce6018c58cba7f9caddaf63d5d67 \ - --hash=sha256:cd3db5927bf9167d5a6157ddb2f036f6b6b0ad001ac82355d43e97a4bde76d76 \ - --hash=sha256:d147004fede1b12f6013a6dbb2a26a986a671a03c6ea740ddc76500e5f1c399f \ - --hash=sha256:d3a4834f221061624b8887090637db9ad4f61752001eae37d56c52fddade2dc8 \ - --hash=sha256:d9010032a0b9710f58012a1e9c222528763d860ba2ee1422c03473eab47703e7 \ - --hash=sha256:d97f93fdae594d886c5a866636397e2bcab146fd7a132fd6bb9ce182224452f8 \ - --hash=sha256:df23d57718f24badef8656c49743e11a89fd6f5358fa8a7b96e728fda2abf7d3 \ - --hash=sha256:df6104c009713d3a89621096f3e3e88cc323fd269dbd7c20afe18535094320be \ - --hash=sha256:e5e5f7debc7a57af53fdf5c5009f9391d9f4c12867049d509bf7bb164a6e295b \ - --hash=sha256:e7d2f8616f0ff60bd332022279011776c3ac0faa0f1b463f7bb12326fbc97a1c \ - --hash=sha256:e999f0c88a458c836d5fb521814e92ed2172c649200336a6df514987c1488258 \ - --hash=sha256:eb4639f32fd4a9904ab8fb45bf3383ba71137f3d9d4ba25b3b3f3109977c5b8c \ - --hash=sha256:ec707059ee75732b1ba130ed5f9580fe10ff75180c812bc267ded039db5128c6 \ - --hash=sha256:ecc26751323224cf8186efcf7fbcbc30f4e1d8c7970659daf25ad995e4032a56 \ - --hash=sha256:ee5e86776273de1795947d17bddd6bb19e0365fd2af4289c0d2c5454b6b1d36b \ - --hash=sha256:f1162a1492032c82f14271e831c8f4b49f2b6078f4f5fc74de2c912fa225d51d \ - --hash=sha256:f34ecee82858e41dd217734f0c41a532bd066bcaab636ad830f03a30b2a96f2a \ - --hash=sha256:f85c6f327bf0b8c29da7d93b1cabb6363fb5e4e160a32fa241ed2dce21b73162 \ - --hash=sha256:f92995dfec9420bb69ae629abf422e516923ba79ba4403bc750d94fb4a6c68c1 \ - --hash=sha256:fb0540c854ac9c0c5ad495908fdfd3e332d553ec731698c0e29b1877ba0d2ec6 \ - --hash=sha256:fceedde51fbd67ee2bcc8c0b33d0126cc8b51ef3bbde2f86662bd6d5a6f10ec5 \ - --hash=sha256:fe6970addfea9e5e081401bcbadf865d2b6da045472f58af08427e108d618540 \ - --hash=sha256:fee86b7c4bd29bdaf0d53d14739b08a106fdda809ca5fe032a15f52fae5fe254 -attrs==26.1.0 \ - --hash=sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 \ - --hash=sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32 -authlib==1.7.2 \ - --hash=sha256:2cea25fefcd4e7173bdf1372c0afc265c8034b23a8cd5dcb6a9164b826c64231 \ - --hash=sha256:3e1faedc9d87e7d56a164eca3ccb6ace0d61b94abe83e92242f8dc8bba9b4a9f -autoevals==0.2.0 \ - --hash=sha256:83546e86f716d5bea64de39db2e99f5eaeadd70d3f72481a75b576bc511e21d6 \ - --hash=sha256:dec041989ce85d6043ba30efa959527c213a62f768dc54e77d41364510e1acb6 -azure-core==1.41.0 \ - --hash=sha256:522b4011e8180b1a3dcd2024396a4e7fe9ac37fb8597db47163d230b5efe892d \ - --hash=sha256:f46ff5dfcd230f25cf1c19e8a34b8dc08a337b2503e268bb600a16c00db8ad5a -azure-identity==1.25.3 \ - --hash=sha256:ab23c0d63015f50b630ef6c6cf395e7262f439ce06e5d07a64e874c724f8d9e6 \ - --hash=sha256:f4d0b956a8146f30333e071374171f3cfa7bdb8073adb8c3814b65567aa7447c -cachetools==7.1.4 \ - --hash=sha256:323dc4127934744db5b54eb4924482d7edafbf9554e820d1531c2e08c0e4ef54 \ - --hash=sha256:437f55a4e0c1b01a4f3077cc470e6991d47430970e36fbcb77e2be0df4fc1cd6 -certifi==2026.5.20 \ - --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ - --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d -chardet==7.4.3 \ - --hash=sha256:0ac3bf11c645734a1701a3804e43eabd98851838192267d08c353a834ab79fea \ - --hash=sha256:1173b74051570cf08099d7429d92e4882d375ad4217f92a6e5240ccfb26f231e \ - --hash=sha256:23163921dccf3103ce59540b0443c106d2c0a0ff2e0503e05196f5e6fdea453f \ - --hash=sha256:25a862cddc6a9ac07023e808aedd297115345fbaabc2690479481ddc0f980e09 \ - --hash=sha256:27cc23da03630cdecc9aa81a895aa86629c211f995cd57651f0fbc280717bf93 \ - --hash=sha256:29af5999f654e8729d251f1724a62b538b1262d9292cccaefddf8a02aae1ef6a \ - --hash=sha256:365135eaf37ba65a828f8e668eb0a8c38c479dcbec724dc25f4dfd781049c357 \ - --hash=sha256:3990fffcc6a6045f2234ab72752ad037e3b2d48c72037f244d42738db397eb75 \ - --hash=sha256:457f619882ba66327d4d8d14c6c342269bdb1e4e1c38e8117df941d14d351b04 \ - --hash=sha256:4b2799bd58e7245cfa8d4ab2e8ad1d76a5c3a5b1f32318eb6acca4c69a3e7101 \ - --hash=sha256:4c3da294de1a681097848ab58bd3f2771a674f8039d2d87a5538b28856b815e9 \ - --hash=sha256:4fbff1907925b0c5a1064cffb5e040cd5e338585c9c552625f30de6bc2f3107a \ - --hash=sha256:5d2879598bc220689e8ce509fe9c3f37ad2fca53a36be9c9bd91abdd91dd364f \ - --hash=sha256:626f00299ad62dfe937058a09572beed442ccc7b58f87aa667949b20fd3db235 \ - --hash=sha256:6e3bd9f936e04bae89c254262af08d9e5b98f805175ba1e29d454e6cba3107b7 \ - --hash=sha256:7005c88da26fd95d8abb8acbe6281d833e9a9181b03cf49b4546c4555389bd97 \ - --hash=sha256:75d3c65cc16bddf40b8da1fd25ba84fca5f8070f2b14e86083653c1c85aee971 \ - --hash=sha256:93c45e116dd51b66226a53ade3f9f635e870de5399b90e00ce45dcc311093bf4 \ - --hash=sha256:9a4904dd5f071b7a7d7f50b4a67a86db3c902d243bf31708f1d5cde2f68239cb \ - --hash=sha256:9acd9988a93e09390f3cd231201ea7166c415eb8da1b735928990ffc05cb9fbb \ - --hash=sha256:9f3504c139a2ad544077dd2d9e412cd08b01786843d76997cd43bb6de311723c \ - --hash=sha256:a9e4486df251b8962e86ea9f139ca235aa6e0542a00f7844c9a04160afb99aa9 \ - --hash=sha256:acc46d1b8b7d5783216afe15db56d1c179b9a40e5a1558bc13164c4fd20674c4 \ - --hash=sha256:b95c934b9ad59e2ba8abb9be49df70d3ad1b0d95d864b9fdb7588d4fa8bd921c \ - --hash=sha256:bba8bea1b28d927b3e99e47deafe53658d34497c0a891d95ff1ba8ff6663f01c \ - --hash=sha256:bfc134b70c846c21ead8e43ada3ae1a805fff732f6922f8abcf2ff27b8f6493d \ - --hash=sha256:c0c79b13c9908ac7dfe0a74116ebc9a0f28b2319d23c32f3dfcdfbe1279c7eaf \ - --hash=sha256:c7116b0452994734ccff35e154b44240090eb0f4f74b9106292668133557c175 \ - --hash=sha256:c77867f0c1cb8bd819502249fcdc500364aedb07881e11b743726fa2148e7b6e \ - --hash=sha256:cc1d4eb92a4ec1c2df3b490836ffa46922e599d34ce0bb75cf41fd2bf6303d56 \ - --hash=sha256:ccc1f83ab4bcfb901cf39e0c4ba6bc6e726fc6264735f10e24ceb5cb47387578 \ - --hash=sha256:cf1efeaf65a6ef2f5b9cc3a1df6f08ba2831b369ccaa4c7018eaf90aa757bb11 \ - --hash=sha256:cfb54563fe5f130da17c44c6a4e2e8052ba628e5ab4eab7ef8190f736f0f8f72 \ - --hash=sha256:d892d3dcd652fdef53e3d6327d39b17c0df40a899dfc919abaeb64c974497531 \ - --hash=sha256:dc50f28bad067393cce0af9091052c3b8df7a23115afd8ba7b2e0947f0cef1f8 \ - --hash=sha256:e1b98790c284ff813f18f7cf7de5f05ea2435a080030c7f1a8318f3a4f80b131 -charset-normalizer==3.4.7 \ - --hash=sha256:007d05ec7321d12a40227aae9e2bc6dca73f3cb21058999a1df9e193555a9dcc \ - --hash=sha256:03853ed82eeebbce3c2abfdbc98c96dc205f32a79627688ac9a27370ea61a49c \ - --hash=sha256:07d9e39b01743c3717745f4c530a6349eadbfa043c7577eef86c502c15df2c67 \ - --hash=sha256:08e721811161356f97b4059a9ba7bafb23ea5ee2255402c42881c214e173c6b4 \ - --hash=sha256:0c96c3b819b5c3e9e165495db84d41914d6894d55181d2d108cc1a69bfc9cce0 \ - --hash=sha256:0ea948db76d31190bf08bd371623927ee1339d5f2a0b4b1b4a4439a65298703c \ - --hash=sha256:0f7eb884681e3938906ed0434f20c63046eacd0111c4ba96f27b76084cd679f5 \ - --hash=sha256:12a6fff75f6bc66711b73a2f0addfc4c8c15a20e805146a02d147a318962c444 \ - --hash=sha256:12d8baf840cc7889b37c7c770f478adea7adce3dcb3944d02ec87508e2dcf153 \ - --hash=sha256:14265bfe1f09498b9d8ec91e9ec9fa52775edf90fcbde092b25f4a33d444fea9 \ - --hash=sha256:16d971e29578a5e97d7117866d15889a4a07befe0e87e703ed63cd90cb348c01 \ - --hash=sha256:177a0ba5f0211d488e295aaf82707237e331c24788d8d76c96c5a41594723217 \ - --hash=sha256:1a87ca9d5df6fe460483d9a5bbf2b18f620cbed41b432e2bddb686228282d10b \ - --hash=sha256:1c2a768fdd44ee4a9339a9b0b130049139b8ce3c01d2ce09f67f5a68048d477c \ - --hash=sha256:1c2aed2e5e41f24ea8ef1590b8e848a79b56f3a5564a65ceec43c9d692dc7d8a \ - --hash=sha256:1dc8b0ea451d6e69735094606991f32867807881400f808a106ee1d963c46a83 \ - --hash=sha256:1efde3cae86c8c273f1eb3b287be7d8499420cf2fe7585c41d370d3e790054a5 \ - --hash=sha256:202389074300232baeb53ae2569a60901f7efadd4245cf3a3bf0617d60b439d7 \ - --hash=sha256:203104ed3e428044fd943bc4bf45fa73c0730391f9621e37fe39ecf477b128cb \ - --hash=sha256:2257141f39fe65a3fdf38aeccae4b953e5f3b3324f4ff0daf9f15b8518666a2c \ - --hash=sha256:298930cec56029e05497a76988377cbd7457ba864beeea92ad7e844fe74cd1f1 \ - --hash=sha256:2cd4a60d0e2fb04537162c62bbbb4182f53541fe0ede35cdf270a1c1e723cc42 \ - --hash=sha256:2d6eb928e13016cea4f1f21d1e10c1cebd5a421bc57ddf5b1142ae3f86824fab \ - --hash=sha256:2fe249cb4651fd12605b7288b24751d8bfd46d35f12a20b1ba33dea122e690df \ - --hash=sha256:30b8d1d8c52a48c2c5690e152c169b673487a2a58de1ec7393196753063fcd5e \ - --hash=sha256:320ade88cfb846b8cd6b4ddf5ee9e80ee0c1f52401f2456b84ae1ae6a1a5f207 \ - --hash=sha256:3534e7dcbdcf757da6b85a0bbf5b6868786d5982dd959b065e65481644817a18 \ - --hash=sha256:36836d6ff945a00b88ba1e4572d721e60b5b8c98c155d465f56ad19d68f23734 \ - --hash=sha256:38c0109396c4cfc574d502df99742a45c72c08eff0a36158b6f04000043dbf38 \ - --hash=sha256:3946fa46a0cf3e4c8cb1cc52f56bb536310d34f25f01ca9b6c16afa767dab110 \ - --hash=sha256:3bec022aec2c514d9cf199522a802bd007cd588ab17ab2525f20f9c34d067c18 \ - --hash=sha256:3c9a494bc5ec77d43cea229c4f6db1e4d8fe7e1bbffa8b6f0f0032430ff8ab44 \ - --hash=sha256:3dce51d0f5e7951f8bb4900c257dad282f49190fdbebecd4ba99bcc41fef404d \ - --hash=sha256:3dedcc22d73ec993f42055eff4fcfed9318d1eeb9a6606c55892a26964964e48 \ - --hash=sha256:4042d5c8f957e15221d423ba781e85d553722fc4113f523f2feb7b188cc34c5e \ - --hash=sha256:481551899c856c704d58119b5025793fa6730adda3571971af568f66d2424bb5 \ - --hash=sha256:4dc1e73c36828f982bfe79fadf5919923f8a6f4df2860804db9a98c48824ce8d \ - --hash=sha256:4e5163c14bffd570ef2affbfdd77bba66383890797df43dc8b4cc7d6f500bf53 \ - --hash=sha256:511ef87c8aec0783e08ac18565a16d435372bc1ac25a91e6ac7f5ef2b0bff790 \ - --hash=sha256:532bc9bf33a68613fd7d65e4b1c71a6a38d7d42604ecf239c77392e9b4e8998c \ - --hash=sha256:54523e136b8948060c0fa0bc7b1b50c32c186f2fceee897a495406bb6e311d2b \ - --hash=sha256:5649fd1c7bade02f320a462fdefd0b4bd3ce036065836d4f42e0de958038e116 \ - --hash=sha256:56be790f86bfb2c98fb742ce566dfb4816e5a83384616ab59c49e0604d49c51d \ - --hash=sha256:5b77459df20e08151cd6f8b9ef8ef1f961ef73d85c21a555c7eed5b79410ec10 \ - --hash=sha256:5ed6ab538499c8644b8a3e18debabcd7ce684f3fa91cf867521a7a0279cab2d6 \ - --hash=sha256:6178f72c5508bfc5fd446a5905e698c6212932f25bcdd4b47a757a50605a90e2 \ - --hash=sha256:6370e8686f662e6a3941ee48ed4742317cafbe5707e36406e9df792cdb535776 \ - --hash=sha256:64f02c6841d7d83f832cd97ccf8eb8a906d06eb95d5276069175c696b024b60a \ - --hash=sha256:65bcd23054beab4d166035cabbc868a09c1a49d1efe458fe8e4361215df40265 \ - --hash=sha256:66671f93accb62ed07da56613636f3641f1a12c13046ce91ffc923721f23c008 \ - --hash=sha256:6696b7688f54f5af4462118f0bfa7c1621eeb87154f77fa04b9295ce7a8f2943 \ - --hash=sha256:6785f414ae0f3c733c437e0f3929197934f526d19dfaa75e18fdb4f94c6fb374 \ - --hash=sha256:67f6279d125ca0046a7fd386d01b311c6363844deac3e5b069b514ba3e63c246 \ - --hash=sha256:6c114670c45346afedc0d947faf3c7f701051d2518b943679c8ff88befe14f8e \ - --hash=sha256:6e0d51f618228538a3e8f46bd246f87a6cd030565e015803691603f55e12afb5 \ - --hash=sha256:6ed74185b2db44f41ef35fd1617c5888e59792da9bbc9190d6c7300617182616 \ - --hash=sha256:708838739abf24b2ceb208d0e22403dd018faeef86ddac04319a62ae884c4f15 \ - --hash=sha256:715479b9a2802ecac752a3b0efa2b0b60285cf962ee38414211abdfccc233b41 \ - --hash=sha256:733784b6d6def852c814bce5f318d25da2ee65dd4839a0718641c696e09a2960 \ - --hash=sha256:750e02e074872a3fad7f233b47734166440af3cdea0add3e95163110816d6752 \ - --hash=sha256:752a45dc4a6934060b3b0dab47e04edc3326575f82be64bc4fc293914566503e \ - --hash=sha256:7579e913a5339fb8fa133f6bbcfd8e6749696206cf05acdbdca71a1b436d8e72 \ - --hash=sha256:7641bb8895e77f921102f72833904dcd9901df5d6d72a2ab8f31d04b7e51e4e7 \ - --hash=sha256:7804338df6fcc08105c7745f1502ba68d900f45fd770d5bdd5288ddccb8a42d8 \ - --hash=sha256:80d04837f55fc81da168b98de4f4b797ef007fc8a79ab71c6ec9bc4dd662b15b \ - --hash=sha256:813c0e0132266c08eb87469a642cb30aaff57c5f426255419572aaeceeaa7bf4 \ - --hash=sha256:82b271f5137d07749f7bf32f70b17ab6eaabedd297e75dce75081a24f76eb545 \ - --hash=sha256:84c018e49c3bf790f9c2771c45e9313a08c2c2a6342b162cd650258b57817706 \ - --hash=sha256:8751d2787c9131302398b11e6c8068053dcb55d5a8964e114b6e196cf16cb366 \ - --hash=sha256:8778f0c7a52e56f75d12dae53ae320fae900a8b9b4164b981b9c5ce059cd1fcb \ - --hash=sha256:87fad7d9ba98c86bcb41b2dc8dbb326619be2562af1f8ff50776a39e55721c5a \ - --hash=sha256:8d828b6667a32a728a1ad1d93957cdf37489c57b97ae6c4de2860fa749b8fc1e \ - --hash=sha256:8e385e4267ab76874ae30db04c627faaaf0b509e1ccc11a95b3fc3e83f855c00 \ - --hash=sha256:92a0a01ead5e668468e952e4238cccd7c537364eb7d851ab144ab6627dbbe12f \ - --hash=sha256:94e1885b270625a9a828c9793b4d52a64445299baa1fea5a173bf1d3dd9a1a5a \ - --hash=sha256:a180c5e59792af262bf263b21a3c49353f25945d8d9f70628e73de370d55e1e1 \ - --hash=sha256:a277ab8928b9f299723bc1a2dabb1265911b1a76341f90a510368ca44ad9ab66 \ - --hash=sha256:a5fe03b42827c13cdccd08e6c0247b6a6d4b5e3cdc53fd1749f5896adcdc2356 \ - --hash=sha256:a6c5863edfbe888d9eff9c8b8087354e27618d9da76425c119293f11712a6319 \ - --hash=sha256:a89c23ef8d2c6b27fd200a42aa4ac72786e7c60d40efdc76e6011260b6e949c4 \ - --hash=sha256:adb2597b428735679446b46c8badf467b4ca5f5056aae4d51a19f9570301b1ad \ - --hash=sha256:ae196f021b5e7c78e918242d217db021ed2a6ace2bc6ae94c0fc596221c7f58d \ - --hash=sha256:ae89db9e5f98a11a4bf50407d4363e7b09b31e55bc117b4f7d80aab97ba009e5 \ - --hash=sha256:aed52fea0513bac0ccde438c188c8a471c4e0f457c2dd20cdbf6ea7a450046c7 \ - --hash=sha256:aef65cd602a6d0e0ff6f9930fcb1c8fec60dd2cfcb6facaf4bdb0e5873042db0 \ - --hash=sha256:af21eb4409a119e365397b2adbaca4c9ccab56543a65d5dbd9f920d6ac29f686 \ - --hash=sha256:b14b2d9dac08e28bb8046a1a0434b1750eb221c8f5b87a68f4fa11a6f97b5e34 \ - --hash=sha256:bb6d88045545b26da47aa879dd4a89a71d1dce0f0e549b1abcb31dfe4a8eac49 \ - --hash=sha256:bb8cc7534f51d9a017b93e3e85b260924f909601c3df002bcdb58ddb4dc41a5c \ - --hash=sha256:bc17a677b21b3502a21f66a8cc64f5bfad4df8a0b8434d661666f8ce90ac3af1 \ - --hash=sha256:bd6c2a1c7573c64738d716488d2cdd3c00e340e4835707d8fdb8dc1a66ef164e \ - --hash=sha256:bd9b23791fe793e4968dba0c447e12f78e425c59fc0e3b97f6450f4781f3ee60 \ - --hash=sha256:c03a41a8784091e67a39648f70c5f97b5b6a37f216896d44d2cdcb82615339a0 \ - --hash=sha256:c0f081d69a6e58272819b70288d3221a6ee64b98df852631c80f293514d3b274 \ - --hash=sha256:c35abb8bfff0185efac5878da64c45dafd2b37fb0383add1be155a763c1f083d \ - --hash=sha256:c36c333c39be2dbca264d7803333c896ab8fa7d4d6f0ab7edb7dfd7aea6e98c0 \ - --hash=sha256:c45e9440fb78f8ddabcf714b68f936737a121355bf59f3907f4e17721b9d1aae \ - --hash=sha256:c593052c465475e64bbfe5dbd81680f64a67fdc752c56d7a0ae205dc8aeefe0f \ - --hash=sha256:cdd68a1fb318e290a2077696b7eb7a21a49163c455979c639bf5a5dcdc46617d \ - --hash=sha256:ce3412fbe1e31eb81ea42f4169ed94861c56e643189e1e75f0041f3fe7020abe \ - --hash=sha256:cf1493cd8607bec4d8a7b9b004e699fcf8f9103a9284cc94962cb73d20f9d4a3 \ - --hash=sha256:cf29836da5119f3c8a8a70667b0ef5fdca3bb12f80fd06487cfa575b3909b393 \ - --hash=sha256:d4a48e5b3c2a489fae013b7589308a40146ee081f6f509e047e0e096084ceca1 \ - --hash=sha256:d560742f3c0d62afaccf9f41fe485ed69bd7661a241f86a3ef0f0fb8b1a397af \ - --hash=sha256:d6038d37043bced98a66e68d3aa2b6a35505dc01328cd65217cefe82f25def44 \ - --hash=sha256:d61f00a0869d77422d9b2aba989e2d24afa6ffd552af442e0e58de4f35ea6d00 \ - --hash=sha256:d635aab80466bc95771bb78d5370e74d36d1fe31467b6b29b8b57b2a3cd7d22c \ - --hash=sha256:dca4bbc466a95ba9c0234ef56d7dd9509f63da22274589ebd4ed7f1f4d4c54e3 \ - --hash=sha256:dd915403e231e6b1809fe9b6d9fc55cf8fb5e02765ac625d9cd623342a7905d7 \ - --hash=sha256:e044c39e41b92c845bc815e5ae4230804e8e7bc29e399b0437d64222d92809dd \ - --hash=sha256:e060d01aec0a910bdccb8be71faf34e7799ce36950f8294c8bf612cba65a2c9e \ - --hash=sha256:e1421b502d83040e6d7fb2fb18dff63957f720da3d77b2fbd3187ceb63755d7b \ - --hash=sha256:e17b8d5d6a8c47c85e68ca8379def1303fd360c3e22093a807cd34a71cd082b8 \ - --hash=sha256:e5f4d355f0a2b1a31bc3edec6795b46324349c9cb25eed068049e4f472fb4259 \ - --hash=sha256:e712b419df8ba5e42b226c510472b37bd57b38e897d3eca5e8cfd410a29fa859 \ - --hash=sha256:e74327fb75de8986940def6e8dee4f127cc9752bee7355bb323cc5b2659b6d46 \ - --hash=sha256:e80c8378d8f3d83cd3164da1ad2df9e37a666cdde7b1cb2298ed0b558064be30 \ - --hash=sha256:e8ac484bf18ce6975760921bb6148041faa8fef0547200386ea0b52b5d27bf7b \ - --hash=sha256:eca9705049ad3c7345d574e3510665cb2cf844c2f2dcfe675332677f081cbd46 \ - --hash=sha256:ed065083d0898c9d5b4bbec7b026fd755ff7454e6e8b73a67f8c744b13986e24 \ - --hash=sha256:edac0f1ab77644605be2cbba52e6b7f630731fc42b34cb0f634be1a6eface56a \ - --hash=sha256:effc3f449787117233702311a1b7d8f59cba9ced946ba727bdc329ec69028e24 \ - --hash=sha256:f22dec1690b584cea26fade98b2435c132c1b5f68e39f5a0b7627cd7ae31f1dc \ - --hash=sha256:f495a1652cf3fbab2eb0639776dad966c2fb874d79d87ca07f9d5f059b8bd215 \ - --hash=sha256:f496c9c3cc02230093d8330875c4c3cdfc3b73612a5fd921c65d39cbcef08063 \ - --hash=sha256:f59099f9b66f0d7145115e6f80dd8b1d847176df89b234a5a6b3f00437aa0832 \ - --hash=sha256:f59ad4c0e8f6bba240a9bb85504faa1ab438237199d4cce5f622761507b8f6a6 \ - --hash=sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79 \ - --hash=sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464 circuitbreaker==2.1.3 \ --hash=sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084 \ --hash=sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1 -datasets==4.8.5 \ - --hash=sha256:0f0c1c3d56ffff2c93b2f4c63c95bac94f3d7e8621aea2a2a576275233bba772 \ - --hash=sha256:5079900781719c0e063a8efdd2cd95a31ad0c63209178669cd23cf1b926149ff -emoji==2.15.0 \ - --hash=sha256:205296793d66a89d88af4688fa57fd6496732eb48917a87175a023c8138995eb \ - --hash=sha256:eae4ab7d86456a70a00a985125a03263a5eac54cd55e51d7e184b1ed3b6757e4 -fastapi==0.136.3 \ - --hash=sha256:3d2a69bdf04b7e9f3afa292c3bc7a98816bbfafa10bc9b45f3f3700d2f761620 \ - --hash=sha256:e487fae93ad408e6f47641ee4dfe389864fd7bec92e547ea8498fc13f43e83ab -fastuuid==0.14.0 \ - --hash=sha256:05a8dde1f395e0c9b4be515b7a521403d1e8349443e7641761af07c7ad1624b1 \ - --hash=sha256:0737606764b29785566f968bd8005eace73d3666bd0862f33a760796e26d1ede \ - --hash=sha256:089c18018fdbdda88a6dafd7d139f8703a1e7c799618e33ea25eb52503d28a11 \ - --hash=sha256:09098762aad4f8da3a888eb9ae01c84430c907a297b97166b8abc07b640f2995 \ - --hash=sha256:09378a05020e3e4883dfdab438926f31fea15fd17604908f3d39cbeb22a0b4dc \ - --hash=sha256:0c9ec605ace243b6dbe3bd27ebdd5d33b00d8d1d3f580b39fdd15cd96fd71796 \ - --hash=sha256:0df14e92e7ad3276327631c9e7cec09e32572ce82089c55cb1bb8df71cf394ed \ - --hash=sha256:12ac85024637586a5b69645e7ed986f7535106ed3013640a393a03e461740cb7 \ - --hash=sha256:1383fff584fa249b16329a059c68ad45d030d5a4b70fb7c73a08d98fd53bcdab \ - --hash=sha256:139d7ff12bb400b4a0c76be64c28cbe2e2edf60b09826cbfd85f33ed3d0bbe8b \ - --hash=sha256:13ec4f2c3b04271f62be2e1ce7e95ad2dd1cf97e94503a3760db739afbd48f00 \ - --hash=sha256:178947fc2f995b38497a74172adee64fdeb8b7ec18f2a5934d037641ba265d26 \ - --hash=sha256:193ca10ff553cf3cc461572da83b5780fc0e3eea28659c16f89ae5202f3958d4 \ - --hash=sha256:1a771f135ab4523eb786e95493803942a5d1fc1610915f131b363f55af53b219 \ - --hash=sha256:1bf539a7a95f35b419f9ad105d5a8a35036df35fdafae48fb2fd2e5f318f0d75 \ - --hash=sha256:1ca61b592120cf314cfd66e662a5b54a578c5a15b26305e1b8b618a6f22df714 \ - --hash=sha256:1e3cc56742f76cd25ecb98e4b82a25f978ccffba02e4bdce8aba857b6d85d87b \ - --hash=sha256:1e690d48f923c253f28151b3a6b4e335f2b06bf669c68a02665bc150b7839e94 \ - --hash=sha256:2b29e23c97e77c3a9514d70ce343571e469098ac7f5a269320a0f0b3e193ab36 \ - --hash=sha256:2dce5d0756f046fa792a40763f36accd7e466525c5710d2195a038f93ff96346 \ - --hash=sha256:2ec3d94e13712a133137b2805073b65ecef4a47217d5bac15d8ac62376cefdb4 \ - --hash=sha256:2fb3c0d7fef6674bbeacdd6dbd386924a7b60b26de849266d1ff6602937675c8 \ - --hash=sha256:2fc37479517d4d70c08696960fad85494a8a7a0af4e93e9a00af04d74c59f9e3 \ - --hash=sha256:33e678459cf4addaedd9936bbb038e35b3f6b2061330fd8f2f6a1d80414c0f87 \ - --hash=sha256:3964bab460c528692c70ab6b2e469dd7a7b152fbe8c18616c58d34c93a6cf8d4 \ - --hash=sha256:3acdf655684cc09e60fb7e4cf524e8f42ea760031945aa8086c7eae2eeeabeb8 \ - --hash=sha256:448aa6833f7a84bfe37dd47e33df83250f404d591eb83527fa2cac8d1e57d7f3 \ - --hash=sha256:47c821f2dfe95909ead0085d4cb18d5149bca704a2b03e03fb3f81a5202d8cea \ - --hash=sha256:4edc56b877d960b4eda2c4232f953a61490c3134da94f3c28af129fb9c62a4f6 \ - --hash=sha256:5816d41f81782b209843e52fdef757a361b448d782452d96abedc53d545da722 \ - --hash=sha256:6e6243d40f6c793c3e2ee14c13769e341b90be5ef0c23c82fa6515a96145181a \ - --hash=sha256:6fbc49a86173e7f074b1a9ec8cf12ca0d54d8070a85a06ebf0e76c309b84f0d0 \ - --hash=sha256:73657c9f778aba530bc96a943d30e1a7c80edb8278df77894fe9457540df4f85 \ - --hash=sha256:73946cb950c8caf65127d4e9a325e2b6be0442a224fd51ba3b6ac44e1912ce34 \ - --hash=sha256:77a09cb7427e7af74c594e409f7731a0cf887221de2f698e1ca0ebf0f3139021 \ - --hash=sha256:77e94728324b63660ebf8adb27055e92d2e4611645bf12ed9d88d30486471d0a \ - --hash=sha256:7a3c0bca61eacc1843ea97b288d6789fbad7400d16db24e36a66c28c268cfe3d \ - --hash=sha256:7f2f3efade4937fae4e77efae1af571902263de7b78a0aee1a1653795a093b2a \ - --hash=sha256:808527f2407f58a76c916d6aa15d58692a4a019fdf8d4c32ac7ff303b7d7af09 \ - --hash=sha256:83cffc144dc93eb604b87b179837f2ce2af44871a7b323f2bfed40e8acb40ba8 \ - --hash=sha256:84b0779c5abbdec2a9511d5ffbfcd2e53079bf889824b32be170c0d8ef5fc74c \ - --hash=sha256:9579618be6280700ae36ac42c3efd157049fe4dd40ca49b021280481c78c3176 \ - --hash=sha256:9a133bf9cc78fdbd1179cb58a59ad0100aa32d8675508150f3658814aeefeaa4 \ - --hash=sha256:9bd57289daf7b153bfa3e8013446aa144ce5e8c825e9e366d455155ede5ea2dc \ - --hash=sha256:a0809f8cc5731c066c909047f9a314d5f536c871a7a22e815cc4967c110ac9ad \ - --hash=sha256:a6f46790d59ab38c6aa0e35c681c0484b50dc0acf9e2679c005d61e019313c24 \ - --hash=sha256:a8a0dfea3972200f72d4c7df02c8ac70bad1bb4c58d7e0ec1e6f341679073a7f \ - --hash=sha256:aa75b6657ec129d0abded3bec745e6f7ab642e6dba3a5272a68247e85f5f316f \ - --hash=sha256:ab32f74bd56565b186f036e33129da77db8be09178cd2f5206a5d4035fb2a23f \ - --hash=sha256:ab3f5d36e4393e628a4df337c2c039069344db5f4b9d2a3c9cea48284f1dd741 \ - --hash=sha256:ac60fc860cdf3c3f327374db87ab8e064c86566ca8c49d2e30df15eda1b0c2d5 \ - --hash=sha256:ae64ba730d179f439b0736208b4c279b8bc9c089b102aec23f86512ea458c8a4 \ - --hash=sha256:af5967c666b7d6a377098849b07f83462c4fedbafcf8eb8bc8ff05dcbe8aa209 \ - --hash=sha256:b2fdd48b5e4236df145a149d7125badb28e0a383372add3fbaac9a6b7a394470 \ - --hash=sha256:b852a870a61cfc26c884af205d502881a2e59cc07076b60ab4a951cc0c94d1ad \ - --hash=sha256:b9a0ca4f03b7e0b01425281ffd44e99d360e15c895f1907ca105854ed85e2057 \ - --hash=sha256:bbb0c4b15d66b435d2538f3827f05e44e2baafcc003dd7d8472dc67807ab8fd8 \ - --hash=sha256:bcc96ee819c282e7c09b2eed2b9bd13084e3b749fdb2faf58c318d498df2efbe \ - --hash=sha256:c0a94245afae4d7af8c43b3159d5e3934c53f47140be0be624b96acd672ceb73 \ - --hash=sha256:c0eb25f0fd935e376ac4334927a59e7c823b36062080e2e13acbaf2af15db836 \ - --hash=sha256:c3091e63acf42f56a6f74dc65cfdb6f99bfc79b5913c8a9ac498eb7ca09770a8 \ - --hash=sha256:c501561e025b7aea3508719c5801c360c711d5218fc4ad5d77bf1c37c1a75779 \ - --hash=sha256:c7502d6f54cd08024c3ea9b3514e2d6f190feb2f46e6dbcd3747882264bb5f7b \ - --hash=sha256:caa1f14d2102cb8d353096bc6ef6c13b2c81f347e6ab9d6fbd48b9dea41c153d \ - --hash=sha256:cb9a030f609194b679e1660f7e32733b7a0f332d519c5d5a6a0a580991290022 \ - --hash=sha256:cd5a7f648d4365b41dbf0e38fe8da4884e57bed4e77c83598e076ac0c93995e7 \ - --hash=sha256:d23ef06f9e67163be38cece704170486715b177f6baae338110983f99a72c070 \ - --hash=sha256:d31f8c257046b5617fc6af9c69be066d2412bdef1edaa4bdf6a214cf57806105 \ - --hash=sha256:d55b7e96531216fc4f071909e33e35e5bfa47962ae67d9e84b00a04d6e8b7173 \ - --hash=sha256:d9e4332dc4ba054434a9594cbfaf7823b57993d7d8e7267831c3e059857cf397 \ - --hash=sha256:de01280eabcd82f7542828ecd67ebf1551d37203ecdfd7ab1f2e534edb78d505 \ - --hash=sha256:df61342889d0f5e7a32f7284e55ef95103f2110fee433c2ae7c2c0956d76ac8a \ - --hash=sha256:e0976c0dff7e222513d206e06341503f07423aceb1db0b83ff6851c008ceee06 \ - --hash=sha256:e150eab56c95dc9e3fefc234a0eedb342fac433dacc273cd4d150a5b0871e1fa \ - --hash=sha256:e23fc6a83f112de4be0cc1990e5b127c27663ae43f866353166f87df58e73d06 \ - --hash=sha256:ec27778c6ca3393ef662e2762dba8af13f4ec1aaa32d08d77f71f2a70ae9feb8 \ - --hash=sha256:f54d5b36c56a2d5e1a31e73b950b28a0d83eb0c37b91d10408875a5a29494bad \ - --hash=sha256:f74631b8322d2780ebcf2d2d75d58045c3e9378625ec51865fe0b5620800c39d -filelock==3.29.0 \ - --hash=sha256:69974355e960702e789734cb4871f884ea6fe50bd8404051a3530bc07809cf90 \ - --hash=sha256:96f5f6344709aa1572bbf631c640e4ebeeb519e08da902c39a001882f30ac258 -google-api-core==2.30.3 \ - --hash=sha256:a85761ba72c444dad5d611c2220633480b2b6be2521eca69cca2dbb3ffd6bfe8 \ - --hash=sha256:e601a37f148585319b26db36e219df68c5d07b6382cff2d580e83404e44d641b -google-auth==2.53.0 \ - --hash=sha256:6e7449917c599b35126a99ec268ec6880301f2fea41dce198fe8fd83ff642b68 \ - --hash=sha256:e7e6aa16f6bee7b2b264830fd04f08087a1d5a836df516251a5d15327b246c9c -google-cloud-aiplatform==1.145.0 \ - --hash=sha256:4d1c31797a8bd8f3342ed5f186dd30d1f6bca73ddbee2bde452777100d2ddc11 \ - --hash=sha256:7894c4f3d2684bdb60e9a122004c01678e3b585174a27298ae7a3ed1e5eaf3bd -google-cloud-bigquery==3.41.0 \ - --hash=sha256:2217e488b47ed576360c9b2cc07d59d883a54b83167c0ef37f915c26b01a06fe \ - --hash=sha256:2a5b5a737b401cbd824a6e5eac7554100b878668d908e6548836b5d8aaa4dcaa -google-cloud-core==2.6.0 \ - --hash=sha256:6d63ac8e5eca6d9e4319d0a1e2265fadcd7f1049904378caecfa01cf52dd869e \ - --hash=sha256:e76149739f90fac1fc6757c09f47eaccb3145b54adbd7759b0f7c4b235f46c83 -google-cloud-resource-manager==1.17.0 \ - --hash=sha256:0f486b62e2c58ff992a3a50fa0f4a96eef7750aa6c971bb373398ccb91828660 \ - --hash=sha256:e479baf4b014a57f298e01b8279e3290b032e3476d69c8e5e1427af8f82739a5 -google-cloud-storage==3.10.1 \ - --hash=sha256:97db9aa4460727982040edd2bd13ff3d5e2260b5331ad22895802da1fc2a5286 \ - --hash=sha256:a72f656759b7b99bda700f901adcb3425a828d4a29f911bc26b3ea79c5b1217f -google-resumable-media==2.9.0 \ - --hash=sha256:c8901e88e389af8bed64d9696c74d8bad961865eb2236e13e0bfca9bb0a65ca3 \ - --hash=sha256:f7cfb224846a9dd444d125115dfbe8ef02a2b893e78f087762fe716a255a734b -googleapis-common-protos==1.75.0 \ - --hash=sha256:53a062ff3c32552fbd62c11fe23768b78e4ddf0494d5e5fd97d3f4689c75fbbd \ - --hash=sha256:961ed60399c457ceb0ee8f285a84c870aabc9c6a832b9d37bb281b5bebde43ed -greenlet==3.5.1 \ - --hash=sha256:001775efe7b8e758861294c7a27c28af87f3f3f1c20468a2bc618c45b346c061 \ - --hash=sha256:00929c98ec525fd9bf075875d8c5f6a983a90906cdf78a66e6de2d8e466c2a19 \ - --hash=sha256:017a544f0385d441e88714160d089d6900ef46c9eff9d99b6715a5ef2d127747 \ - --hash=sha256:089fff7a6ce8d9316d1f65ebc00273a56be258c1725b32b94de90a3a979557e1 \ - --hash=sha256:1072b4f9edcc1e192d9283a66a3e68d6b84c561de33a83d7858beb9ba1effe10 \ - --hash=sha256:10a9a1c0bfbc93d41156ffcb90c75fbc05544054faf15dcc1fdf9765f8b607f0 \ - --hash=sha256:110a1ca7b49b014b097f6078272c3f4ed31af45b254de5228b79adba879f6af9 \ - --hash=sha256:111e2390ffffc47d5840b01711dd7fac07d4c09283d0283e7f3264b14e284c64 \ - --hash=sha256:17d86354f0ae6b61bf9be5148d0dd34e06c3cb7c602c671f79f29ac3b150e659 \ - --hash=sha256:1ffdb3c0bb002c99cd8f298957e046c3dbf6006b5b7cdf11a4e19194624a0a0a \ - --hash=sha256:2baee5ca02031757ffe8cc3d69f0cc0aec7065ce362622da74f32d3bcab1c541 \ - --hash=sha256:2c18ef16bf6d4dd410e4dd52996888ea1497be26892fe5bbc73580aba4287b8e \ - --hash=sha256:2f82b3597e9d83b63408affed0b48fd0f54935edac4302237b9a837be0dae33c \ - --hash=sha256:3bfbd69cc349e43bf3a8ae1c85548ff0718efc887615c2db16c3833d7b0b072d \ - --hash=sha256:3c8bb982ad117d29478ef8f5533e97df21f1e2befd17a299257b0c96d1371c0b \ - --hash=sha256:3d955c89b75eeca4723d7cc14135f393cd47c32e2a6cb4a8e4c6e760a26b0986 \ - --hash=sha256:4378720dd888136c27215a0214d32a4d37c3852765d45bc37aad0623423cfd78 \ - --hash=sha256:45718441607f9325d948db98cbc691276059316d0358c188c246da4e1d4d23d2 \ - --hash=sha256:5028648bf2253ec4745add746129d3904121fa7fe871a76bed23c5720573ce0a \ - --hash=sha256:50ae25a67bea74ea41fb14b960bc532df73eb713417b2d61892dced82fe8d3bc \ - --hash=sha256:51518ff74664078fc51bffcc6fc529b0df5ae58da192691cee765d45ce944a2b \ - --hash=sha256:540dae7b956209af4d70a3be35927b4055f617763771e5e84a5255bea934d2f5 \ - --hash=sha256:5a56aeb7d5d9cc4b3a735efb5095bd4b4f6f0e4f93e5ca876d0e2315137b7829 \ - --hash=sha256:5e300185139abc337ade480c327183adf42a875ac7181bfe66d7d4efea31fbea \ - --hash=sha256:67821bb03e4e98664490edb787ff6af501194c29bbee0f5c1dfdcf1dc3d9d436 \ - --hash=sha256:6c09df69dc1712d131332054a858a3e5cca400967fa3a672e2324fbb0971448c \ - --hash=sha256:6ebeb75c81211f5c702576cf81f315e77e23cfdb2c7c6fcb9dd143e6de35c360 \ - --hash=sha256:73f78f9b9f0a5c06e5c946ba1e8e36f5114923b6be109ee618c54f079c3ea14f \ - --hash=sha256:7546556f0d649f99f6a361098a55f761181bb2ea12ff150bb16d26092ad88244 \ - --hash=sha256:7715a5a2c3378ba602c3a440558261e13a820bb53a82693aacd7b7f6d964e283 \ - --hash=sha256:7b5f5fae05b8ac6d176a61b60c394a8cbdc2b5b91b81793066e68745cf165e54 \ - --hash=sha256:7eacb17a9d41538a2bc4912eba5ef13823c83cb69e4d141d0813debe7163187f \ - --hash=sha256:7ffdb990dcaa0234cf9845aead5df2e3c3a8b6507d409274dd87e0d5ab05ffc2 \ - --hash=sha256:80eb4b04dadc4e67df3fae179a32c4706a3f495bc7f22fc8a81115d5f5512188 \ - --hash=sha256:88e300d136eac057b2397aa1cfd7328b4c87c7eb66a09c7bc6a1292234db474e \ - --hash=sha256:89101bfd5011e069be974903cb3a4e4523845e4ece2d62dcd8d358933c0ef249 \ - --hash=sha256:8a17c42330e261299766b75ac1ea32caa437a9453c8f65d16a13140db378ecd3 \ - --hash=sha256:8a271fcd66c74615cda6a964fda3f304267a12e50a084472218a39bb0376f563 \ - --hash=sha256:8d8a23250ea3ec7b36de8fa4b541e9e2db3ee82915cc060ab0631609ad8b28de \ - --hash=sha256:92fd6d44ac5e5a887c8a5dc4a8ba0ba908527c31c12f78c6bc7dcfe8aab279f6 \ - --hash=sha256:975eac34b44a7077ca4d421348455b94f0f518246a7f14bc6d2fdcfe5b584368 \ - --hash=sha256:9ab3c3a0b2ae6198e67c898dad5215a49f9ae0d0081b3c3ec59f333e39eeca26 \ - --hash=sha256:9b1ec3274918a81d3ea778b9e75b56b72b33f300edb6cf7f3a7fe1dae56683de \ - --hash=sha256:9d59e840387076a51016777a9328b3f2c427c6f9208a6e958bad251be50a648d \ - --hash=sha256:a0cbed8bb44e23c5b199f888f4e4ce096b45ad9f25ff74a7ad0213875e936bb2 \ - --hash=sha256:a19570c52a21420dcbc94e661994bc325c0b5b11304540fed514586da5dc8f2e \ - --hash=sha256:a203a8bd0acb0701653d3bbb26e404854a68674139ed5cbb778830f42b09bb33 \ - --hash=sha256:a4764e0bfc6a4d114c865b32520805c16a990ef5f286a514413b05d5ecd6a23d \ - --hash=sha256:a57b0d05a0448eed231d59c0ceb287dde984551e54cbc51ac2d4865712838e9c \ - --hash=sha256:a5c81f74d204d3edd136ebfd50dce53acbb776995d721a0fe801626cfc93b8cd \ - --hash=sha256:a5ea42a752d47a145eae922b605cd1634665ac3d5ec1e72402d5048e8d60d207 \ - --hash=sha256:a6fdf2433a5441ef9a95464f7c3e674775da1c8c1177fff311cee1acad4626ed \ - --hash=sha256:add5217d68b31130f0beca584d7fef4878327d2e31642b66618a14eef312b63b \ - --hash=sha256:b0703c2cef53e01baec47f7a3868009913ad71ec678bbecb42a6f40895e4ce62 \ - --hash=sha256:b9152fca4a6466e114aaec745ae61cba739903a109754a9d4e1262f01e9259b1 \ - --hash=sha256:c0141e37414c10164e702b8fb1473304221ad98f71600850c6ef7ff4880feba0 \ - --hash=sha256:c3d35f87c7253b715d13d679e0783d845910144f282cb939fe1ba4ac8616269c \ - --hash=sha256:c5551170cf4f5ff5623e9af81323751979fee2c731e2287b61f73cd27257b823 \ - --hash=sha256:cbfc69be86e10dcfef5b1e6269d1d6926552aa89ee39e1de3353360c1b6989ab \ - --hash=sha256:cc6ab7e555c8a112ad3a76e368e86e12a2754bcae1652a5602e133ec7b635523 \ - --hash=sha256:cd443683db272ebaaca03af98c0b063ab30db70ea8a31a1559f35e3f7b744ccd \ - --hash=sha256:d0932b81d72f552ded9d810d00021b64d89f2195a91ce115b893f943b7a4ab3c \ - --hash=sha256:d40a890035c0058cadbdc4af7569800fd28a0e527a0fdbb7b5f9418f176846ce \ - --hash=sha256:d5ee3ea898009fa898f85f9982255d35278c477bebe185beca249cab42d4526c \ - --hash=sha256:d8ab31c9de8651a2facdd5c5bb0011f2380dd1a7af78ce2adf4b56095294fc07 \ - --hash=sha256:dc71ff466927a201b08305acac451ebe1aedfcea002f62f1f2f2ac2ac1e6a135 \ - --hash=sha256:de2daaaebd1a5aa88c49045b6baf9310b3263796bd88db713edf37cf53e7bb4e \ - --hash=sha256:ded7b068c7c31c1a8657d4fd42d886b3e051ae29f88b80c5ff9d502257b0f071 \ - --hash=sha256:e5cc9606aa5f4e0bde0d3bd502b44f743864c3ffa5cfa1011b1e30f5aa02366f \ - --hash=sha256:e630136e905fe5ff43e86945ae41220b6d1470956a39220e708110ac48d01ea5 \ - --hash=sha256:e6cd99ea59dd5d89f0c956606571d79bfe6f68c9eb7f4a4083a41a7f1587edee \ - --hash=sha256:e7516cf6ae6b8a582c2770a0caed47b8a48373ed732c33d69a72913ae6ac923e \ - --hash=sha256:ea37d5a157eb9493820d3792ac4ece28619a394391d2b9f2f78057d396ff0f0f \ - --hash=sha256:ea8da1e900d758d078810d4255d8c6aa572181896a31ec79d779eb79c3adc9ad \ - --hash=sha256:ed8cdb691169715a9a492844a83246f090182247d1a5031dc78a403f68ba1e97 \ - --hash=sha256:ef08c1567c78074b22d1a200183d52d04a14df447bf70bcbb6a3507a48e776fc \ - --hash=sha256:f16ba1efc0715b680a18b8123d90dad887c6112ae3555b4b5c32c149540c6b4e \ - --hash=sha256:fa4f98af3a528f0c3fd592a26df7f376f93329c8f4d987f6bb979057af8bf5e2 \ - --hash=sha256:ffea73584b216150eab159b6d12348fb253e68757974de1e2c40d8a318ac89ed -grpc-google-iam-v1==0.14.4 \ - --hash=sha256:392b3796947ed6334e61171d9ab06bf7eb357f554e5fc7556ad7aab6d0e17038 \ - --hash=sha256:412facc320fcbd94034b4df3d557662051d4d8adfa86e0ddb4dca70a3f739964 -huggingface-hub==0.36.2 \ - --hash=sha256:1934304d2fb224f8afa3b87007d58501acfda9215b334eed53072dd5e815ff7a \ - --hash=sha256:48f0c8eac16145dfce371e9d2d7772854a4f591bcb56c9cf548accf531d54270 -idna==3.17 \ - --hash=sha256:466e48829084efe2548012b855df21540b96f2e20e51bd124c851536556a592c \ - --hash=sha256:5eb0cb53bc467c12eadcf6de83163ad8527cec9416f44b9b61b19caedad2b87f -importlib-metadata==8.5.0 \ - --hash=sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b \ - --hash=sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7 -joserfc==1.6.8 \ - --hash=sha256:22fb31a69094a5e6f44632002a9df2c30c941fc6c8ce1b037e92c03de954cf9f \ - --hash=sha256:878620c553a6ebdd76ccdc356782fee3f735f21a356d079a546b42a4670ace5f -jsonpath-ng==1.8.0 \ - --hash=sha256:54252968134b5e549ea5b872f1df1168bd7defe1a52fed5a358c194e1943ddc3 \ - --hash=sha256:b8dde192f8af58d646fc031fac9c99fe4d00326afc4148f1f043c601a8cfe138 -jsonschema==4.23.0 \ - --hash=sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4 \ - --hash=sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566 -langdetect==1.0.9 \ - --hash=sha256:7cbc0746252f19e76f77c0b1690aadf01963be835ef0cd4b56dddf2a8f1dfc2a \ - --hash=sha256:cbc1fef89f8d062739774bd51eda3da3274006b3661d199c2655f6b3f6d605a0 -litellm==1.83.7 \ - --hash=sha256:5784a1d9a9a4a8acd6ca1e347003a5e2e1b3c749b4d41e7da4904577adade111 \ - --hash=sha256:e2f2cb99df2e2b2eab63f1354faa45c88dd7c8d40c18eb648afb1b349c689633 +crc32c==2.7.1 \ + --hash=sha256:03a92551a343702629af91f78d205801219692b6909f8fa126b830e332bfb0e0 \ + --hash=sha256:04a56e9f4995559fa86bcf5d0ed5c48505a36e2be1c41d70cae5c080d9a00b74 \ + --hash=sha256:050f52045b4a033a245e0ee4357e1a793de5af6496c82250ef13d8cb90a21e20 \ + --hash=sha256:0cd27a1e400d77e9872fa1303e8f9d30bd050df35ee4858354ce0b59f8227d32 \ + --hash=sha256:1410bcd909be36ccbf8a52c45e4bddca77adfd4e80789ac3cd575c024086516d \ + --hash=sha256:15d640d9d4aa213aec6c837f602081a17d1522f8cd78b52334b62ee27b083410 \ + --hash=sha256:17a2c3f8c6d85b04b5511af827b5dbbda4e672d188c0b9f20a8156e93a1aa7b6 \ + --hash=sha256:19e03a50545a3ef400bd41667d5525f71030488629c57d819e2dd45064f16192 \ + --hash=sha256:1fd1f9c6b50d7357736676278a1b8c8986737b8a1c76d7eab4baa71d0b6af67f \ + --hash=sha256:217edd9ba8c5f0c3ad60c82a11fa78f01162fa106fd7f5d17175dac6bf1eedf9 \ + --hash=sha256:22a72e81ec08a7ece6a35ac68d1ed32dd4a8be7949b164db88d4b4a4bade5c5a \ + --hash=sha256:24949bffb06fc411cc18188d33357923cb935273642164d0bb37a5f375654169 \ + --hash=sha256:274739b3e1591bd4b7ec98764f2f79c6fbcc0f7d7676d5f17369832fe14ee4f0 \ + --hash=sha256:280509210e622a236f16f031856847fd0d6704df662d7209da819ccfb40c6167 \ + --hash=sha256:2bf69cfa4c3ea9f060fe06db00b7e34f771c83f73dd2c3568c2c9019479e34c2 \ + --hash=sha256:2d5d326e7e118d4fa60187770d86b66af2fdfc63ce9eeb265f0d3e7d49bebe0b \ + --hash=sha256:2e83fedebcdeb80c19e76b7a0e5103528bb062521c40702bf34516a429e81df3 \ + --hash=sha256:30004a7383538ef93bda9b22f7b3805bc0aa5625ab2675690e1b676b19417d4b \ + --hash=sha256:3208764c29688f91a35392073229975dd7687b6cb9f76b919dae442cabcd5126 \ + --hash=sha256:33fc8cb32f82685ebefd078e740925ea9da37a008ed5f43b68fc8324f8ca4a37 \ + --hash=sha256:35a3ed12ac2e2551a07d246b7e6512ac39db021e006205a40c1cfd32ea73fcc3 \ + --hash=sha256:36ffa999b72e3c17f6a066ae9e970b40f8c65f38716e436c39a33b809bc6ed9f \ + --hash=sha256:3950d3c340c9d70889630ef81fba8666abfd0cf0aa19fd9c3a55634e0b383b0f \ + --hash=sha256:39ca842586084bca24f9c4ab43e2d99191b1186b2f89b2122b470d0730254d1b \ + --hash=sha256:4181240f6080c38eec9dd1539cd23a304a12100d3f4ffe43234f32064fae5ef0 \ + --hash=sha256:47e5be99057264b603e3cd88cf091985f33c16d3c8609f1c83ed6e72ec4179b4 \ + --hash=sha256:488a0feba1bb005d0dd2f702c1da4849d083e88d82cd27b83ac2d2d93af80755 \ + --hash=sha256:4ab48e048cfa123a9f9bdc5d4d687a3461723132c749c721a6d358605e6d470d \ + --hash=sha256:4b9f3792872f1320961f33aaf0198edea371aee393bcc221fab66d10ecffd77d \ + --hash=sha256:519878822bf9bdead63c25a5e4bdc26d2eae9da6056f92b9b5f3023c08f1d016 \ + --hash=sha256:51ffba582c95a281e5a3f71eacdafc96b9a1835ddae245385639458fff197034 \ + --hash=sha256:522fba1770aad8f7eb189f21fca591a51d96dcc749859088f462281324aec30b \ + --hash=sha256:541dac90c64ed9ce05f85a71066567e854c1b40743a01d83fa2c66419a2e97b6 \ + --hash=sha256:54d6f8c5be6815eabd6e3e90fa0bc13045183a6aa33a30dd684eb0f062b92213 \ + --hash=sha256:55a77e29a265418fa34bef15bd0f2c60afae5348988aaf35ed163b4bbf93cf37 \ + --hash=sha256:56ef661b34e9f25991fface7f9ad85e81bbc1b3fe3b916fd58c893eabe2fa0b8 \ + --hash=sha256:571aa4429444b5d7f588e4377663592145d2d25eb1635abb530f1281794fc7c9 \ + --hash=sha256:57a20dfc27995f568f64775eea2bbb58ae269f1a1144561df5e4a4955f79db32 \ + --hash=sha256:588587772e55624dd9c7a906ec9e8773ae0b6ac5e270fc0bc84ee2758eba90d5 \ + --hash=sha256:595146cb94ba0055301d273113add2af5859b467db41b50367f47870c2d0a81c \ + --hash=sha256:5c056ef043393085523e149276a7ce0cb534b872e04f3e20d74d9a94a75c0ad7 \ + --hash=sha256:60254251b88ec9b9795215f0f9ec015a6b5eef8b2c5fba1267c672d83c78fc02 \ + --hash=sha256:65471d1b1b6e10a404ca8200a4271d5bc0a552c3f5dcd943c1c7835f766ea02d \ + --hash=sha256:676f5b46da268b5190f9fb91b3f037a00d114b411313664438525db876adc71f \ + --hash=sha256:6793fcfe9d4130230d196abbe4021c01ffe8e85c92633bf3c8559f9836c227f5 \ + --hash=sha256:6f0fadc741e79dc705e2d9ee967473e8a061d26b04310ed739f1ee292f33674f \ + --hash=sha256:7138ec26e79100c4cf4294ef40027a1cff26a1e23b7e5eb70efe5d7ff37cbc66 \ + --hash=sha256:724d5ff4d29ff093a983ae656be3307093706d850ea2a233bf29fcacc335d945 \ + --hash=sha256:73361c79a6e4605204457f19fda18b042a94508a52e53d10a4239da5fb0f6a34 \ + --hash=sha256:758ead20e122496764ae50db26bb90fb47fc4b6d242c8e99e87c3f1dae1f1dce \ + --hash=sha256:79f0ff50863aeb441fbfa87e9db6542ddfe3e941189dece832b0af2e454dbab0 \ + --hash=sha256:7c810a246660a24dc818047dc5f89c7ce7b2814e1e08a8e99993f4103f7219e8 \ + --hash=sha256:7d9ede7be8e4ec1c9e90aaf6884decbeef10e3473e6ddac032706d710cab5888 \ + --hash=sha256:805c2be1bc0e251c48439a62b0422385899c15289483692bc70e78473c1039f1 \ + --hash=sha256:80ebbf144a1a56a532b353e81fa0f3edca4f4baa1bf92b1dde2c663a32bb6a15 \ + --hash=sha256:812723e222b6a9fe0562554d72f4f072c3a95720c60ee500984e7d0e568caac3 \ + --hash=sha256:813af8111218970fe2adb833c5e5239f091b9c9e76f03b4dd91aaba86e99b499 \ + --hash=sha256:881af0478a01331244e27197356929edbdeaef6a9f81b5c6bacfea18d2139289 \ + --hash=sha256:88732070f6175530db04e0bb36880ac45c33d49f8ac43fa0e50cfb1830049d23 \ + --hash=sha256:887f6844bb3ad35f0778cd10793ad217f7123a5422e40041231b8c4c7329649d \ + --hash=sha256:88c5c9c21cd9fff593bb7dfe97d3287438c8aecbcc73d227f2366860a0663521 \ + --hash=sha256:8c03286b1e5ce9bed7090084f206aacd87c5146b4b10de56fe9e86cbbbf851cf \ + --hash=sha256:8d0e660c9ed269e90692993a4457a932fc22c9cc96caf79dd1f1a84da85bb312 \ + --hash=sha256:8f25ca521ecf7cccfff0ecae4d0538b5c0c7235d27bf098241f3e2bf86aed713 \ + --hash=sha256:8fcd7f2f29a30dc92af64a9ee3d38bde0c82bd20ad939999427aac94bbd87373 \ + --hash=sha256:919262b7a12ef63f222ec19c0e092f39268802652e11669315257ae6249ec79f \ + --hash=sha256:91ced31055d26d59385d708bbd36689e1a1d604d4b0ceb26767eb5a83156f85d \ + --hash=sha256:96b794fd11945298fdd5eb1290a812efb497c14bc42592c5c992ca077458eeba \ + --hash=sha256:98d5f7fc364bb9c4c4123d149406fbee063f2e8c2cff19a12f13e50faa146237 \ + --hash=sha256:999a40d75cd1696e779f6f99c29fa52be777197d1d9e3ae69cb919a05a369c1e \ + --hash=sha256:99d17637c4867672cb8adeea007294e3c3df9d43964369516cfe2c1f47ce500a \ + --hash=sha256:9c855726d71dee7ae25f81c6b54293455fc66802f34d334d22bea1f6ce8bc21c \ + --hash=sha256:9df7194dd3c0efb5a21f5d70595b7a8b4fd9921fbbd597d6d8e7a11eca3e2d27 \ + --hash=sha256:9f14b60e5a14206e8173dd617fa0c4df35e098a305594082f930dae5488da428 \ + --hash=sha256:a01b0983aa87f517c12418f9898ecf2083bf86f4ea04122e053357c3edb0d73f \ + --hash=sha256:a1738259802978cdf428f74156175da6a5fdfb7256f647fdc0c9de1bc6cd7173 \ + --hash=sha256:a911abc33d453b3f171a3200b1e18b3fc39c204670b5b0a353cca99e4c664332 \ + --hash=sha256:ad3dc6283ce53ad7d1dc5775003460110ab7eebf348efebe0486a531b28f8184 \ + --hash=sha256:ae38a4b6aa361595d81cab441405fbee905c72273e80a1c010fb878ae77ac769 \ + --hash=sha256:af062f11aea283b7e9c95f3a97fb6bb96ac08a9063f71621c2140237df141ada \ + --hash=sha256:afd778fc8ac0ed2ffbfb122a9aa6a0e409a8019b894a1799cda12c01534493e0 \ + --hash=sha256:b2416c4d88696ac322632555c0f81ab35e15f154bc96055da6cf110d642dbc10 \ + --hash=sha256:ba110df60c64c8e2d77a9425b982a520ccdb7abe42f06604f4d98a45bb1fff62 \ + --hash=sha256:c02a3bd67dea95cdb25844aaf44ca2e1b0c1fd70b287ad08c874a95ef4bb38db \ + --hash=sha256:c277f9d16a3283e064d54854af0976b72abaa89824955579b2b3f37444f89aae \ + --hash=sha256:cb2b963c42128b38872e9ed63f04a73ce1ff89a1dfad7ea38add6fe6296497b8 \ + --hash=sha256:cdd5e576fee5d255c1e68a4dae4420f21e57e6f05900b38d5ae47c713fc3330d \ + --hash=sha256:ceb4ca126f75694bda020a307221563d3c522719c0acedcc81ffb985b4867c94 \ + --hash=sha256:d2a051f296e6e92e13efee3b41db388931cdb4a2800656cd1ed1d9fe4f13a086 \ + --hash=sha256:d698eec444b18e296a104d0b9bb6c596c38bdcb79d24eba49604636e9d747305 \ + --hash=sha256:db9ac92294284b22521356715784b91cc9094eee42a5282ab281b872510d1831 \ + --hash=sha256:e07cf10ef852d219d179333fd706d1c415626f1f05e60bd75acf0143a4d8b225 \ + --hash=sha256:e436d9044bbd51936f7aeb8b322543c516bf22371a17970a370a10af1661fa54 \ + --hash=sha256:e80114dd7f462297e54d5da1b9ff472e5249c5a2b406aa51c371bb0edcbf76bd \ + --hash=sha256:e89d51c90f6730b67b12c97d49099ba18d0fdce18541fab94d2be95d1c939adb \ + --hash=sha256:eabefe7a6fb5dfc6318fb35f4d98893baef17ebda9b311498e870526d32168e7 \ + --hash=sha256:edefc0e46f3c37372183f70338e5bdee42f6789b62fcd36ec53aa933e9dfbeaf \ + --hash=sha256:eee2a43b663feb6c79a6c1c6e5eae339c2b72cfac31ee54ec0209fa736cf7ee5 \ + --hash=sha256:eff485526172cee7e6d1fa9c23913f92c7d38ab05674b0b578767c7b693faf5d \ + --hash=sha256:f4333e62b7844dfde112dbb8489fd2970358eddc3310db21e943a9f6994df749 \ + --hash=sha256:f4a400ac3c69a32e180d8753fd7ec7bccb80ade7ab0812855dce8a208e72495f \ + --hash=sha256:f7186d098bfd2cff25eac6880b7c7ad80431b90610036131c1c7dd0eab42a332 \ + --hash=sha256:f7786d219a1a1bf27d0aa1869821d11a6f8e90415cfffc1e37791690d4a848a1 \ + --hash=sha256:f7d1c4e761fe42bf856130daf8b2658df33fe0ced3c43dadafdfeaa42b57b950 \ + --hash=sha256:f91b144a21eef834d64178e01982bb9179c354b3e9e5f4c803b0e5096384968c \ + --hash=sha256:fb9424ec1a8ca54763155a703e763bcede82e6569fe94762614bb2de1412d4e1 \ + --hash=sha256:fedde1e53507d0ede1980e8109442edd108c04ab100abcd5145c274820dacd4f +google-cloud-aiplatform==1.160.0 \ + --hash=sha256:186a8db5099eda0e3cd3ecc73a4716d48c82fa1f00501582eacd541a6aa60534 \ + --hash=sha256:4886e035b5baad3fe52adcec1c9a9f8312b5c42d7dfed8e13b420d59e6f3b82a +google-cloud-bigquery==3.42.2 \ + --hash=sha256:08d4b264e5ee4790f719724c76b538f204b7190999328a2f1a6a95eaab74ca39 \ + --hash=sha256:41658c19e8ed5b83307011b4e55aca3b1f72052545a22788f1d637984615173f +google-cloud-resource-manager==1.18.0 \ + --hash=sha256:69bab144acd75878ebe44b720903dc3d140cb7d3be3261eaa8bc81e48afaff33 \ + --hash=sha256:db689f800a14c66d041196a7fbb8bb8aae8dc87f28c2929e101a5ec766b15512 llama-stack==0.6.0 \ --hash=sha256:b804830664dc91e54c7225a7a081cb1874c48fc18573569c19fac4a9397e8076 \ --hash=sha256:d92711791633f5505a4473ffba3f3e26acb700716fddab5aec419d99e614c802 @@ -554,555 +128,12 @@ llama-stack-api==0.6.0 \ llama-stack-client==0.6.0 \ --hash=sha256:3290aac36dcafbd1bc0baaf995522e2037f57056672b5a1516af112a4210f3ea \ --hash=sha256:7e514a6ffd92f237aceb062dadc4db44e24a3cd9c4ea35e25173d1e0739beb8e -markupsafe==3.0.3 \ - --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ - --hash=sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a \ - --hash=sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf \ - --hash=sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19 \ - --hash=sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf \ - --hash=sha256:0f4b68347f8c5eab4a13419215bdfd7f8c9b19f2b25520968adfad23eb0ce60c \ - --hash=sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175 \ - --hash=sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219 \ - --hash=sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb \ - --hash=sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6 \ - --hash=sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab \ - --hash=sha256:15d939a21d546304880945ca1ecb8a039db6b4dc49b2c5a400387cdae6a62e26 \ - --hash=sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1 \ - --hash=sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce \ - --hash=sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218 \ - --hash=sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634 \ - --hash=sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695 \ - --hash=sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad \ - --hash=sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73 \ - --hash=sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c \ - --hash=sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe \ - --hash=sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa \ - --hash=sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559 \ - --hash=sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa \ - --hash=sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37 \ - --hash=sha256:3537e01efc9d4dccdf77221fb1cb3b8e1a38d5428920e0657ce299b20324d758 \ - --hash=sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f \ - --hash=sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8 \ - --hash=sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d \ - --hash=sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c \ - --hash=sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97 \ - --hash=sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a \ - --hash=sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19 \ - --hash=sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9 \ - --hash=sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9 \ - --hash=sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc \ - --hash=sha256:591ae9f2a647529ca990bc681daebdd52c8791ff06c2bfa05b65163e28102ef2 \ - --hash=sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4 \ - --hash=sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354 \ - --hash=sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50 \ - --hash=sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698 \ - --hash=sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9 \ - --hash=sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b \ - --hash=sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc \ - --hash=sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115 \ - --hash=sha256:7c3fb7d25180895632e5d3148dbdc29ea38ccb7fd210aa27acbd1201a1902c6e \ - --hash=sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485 \ - --hash=sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f \ - --hash=sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12 \ - --hash=sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025 \ - --hash=sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009 \ - --hash=sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d \ - --hash=sha256:949b8d66bc381ee8b007cd945914c721d9aba8e27f71959d750a46f7c282b20b \ - --hash=sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a \ - --hash=sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5 \ - --hash=sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f \ - --hash=sha256:a320721ab5a1aba0a233739394eb907f8c8da5c98c9181d1161e77a0c8e36f2d \ - --hash=sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1 \ - --hash=sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287 \ - --hash=sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6 \ - --hash=sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f \ - --hash=sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581 \ - --hash=sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed \ - --hash=sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b \ - --hash=sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c \ - --hash=sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026 \ - --hash=sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8 \ - --hash=sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676 \ - --hash=sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6 \ - --hash=sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e \ - --hash=sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d \ - --hash=sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d \ - --hash=sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01 \ - --hash=sha256:df2449253ef108a379b8b5d6b43f4b1a8e81a061d6537becd5582fba5f9196d7 \ - --hash=sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419 \ - --hash=sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795 \ - --hash=sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1 \ - --hash=sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5 \ - --hash=sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d \ - --hash=sha256:e8fc20152abba6b83724d7ff268c249fa196d8259ff481f3b1476383f8f24e42 \ - --hash=sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe \ - --hash=sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda \ - --hash=sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e \ - --hash=sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737 \ - --hash=sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523 \ - --hash=sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591 \ - --hash=sha256:f71a396b3bf33ecaa1626c255855702aca4d3d9fea5e051b41ac59a9c1c41edc \ - --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ - --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 -mcp==1.27.2 \ - --hash=sha256:8e02db104096d1c25b28e64bde29a5c32b31bc241710213e12fd4d84985bdfef \ - --hash=sha256:d6ff5160c6ca65d93013626efb3fc249de683c30b2d8570755ceddd490344de5 -msal==1.37.0 \ - --hash=sha256:1b1672a33ee467c1d70b341bb16cafd51bb3c817147a95b93263794b03971bec \ - --hash=sha256:dd17e95a7c71bce75e8108113438ba7c4a086b3bcad4f57a8c09b7af3d753c2d -msal-extensions==1.3.1 \ - --hash=sha256:96d3de4d034504e969ac5e85bae8106c8373b5c6568e4c8fa7af2eca9dbe6bca \ - --hash=sha256:c5b0fd10f65ef62b5f1d62f4251d51cbcaf003fcedae8c91b040a488614be1a4 -multiprocess==0.70.19 \ - --hash=sha256:02e5c35d7d6cd2bdc89c1858867f7bde4012837411023a4696c148c1bdd7c80e \ - --hash=sha256:0d4b4397ed669d371c81dcd1ef33fd384a44d6c3de1bd0ca7ac06d837720d3c5 \ - --hash=sha256:1bbf1b69af1cf64cd05f65337d9215b88079ec819cd0ea7bac4dab84e162efe7 \ - --hash=sha256:1c3dce098845a0db43b32a0b76a228ca059a668071cfeaa0f40c36c0b1585d45 \ - --hash=sha256:3a56c0e85dd5025161bac5ce138dcac1e49174c7d8e74596537e729fd5c53c28 \ - --hash=sha256:5be9ec7f0c1c49a4f4a6fd20d5dda4aeabc2d39a50f4ad53720f1cd02b3a7c2e \ - --hash=sha256:79576c02d1207ec405b00cabf2c643c36070800cca433860e14539df7818b2aa \ - --hash=sha256:8d5eb4ec5017ba2fab4e34a747c6d2c2b6fecfe9e7236e77988db91580ada952 \ - --hash=sha256:928851ae7973aea4ce0eaf330bbdafb2e01398a91518d5c8818802845564f45c \ - --hash=sha256:952021e0e6c55a4a9fe4cd787895b86e239a40e76802a789d6305398d3975897 \ - --hash=sha256:97404393419dcb2a8385910864eedf47a3cadf82c66345b44f036420eb0b5d87 \ - --hash=sha256:c6b6d78d43a03b68014ca1f0b7937d965393a670c5de7c29026beb2258f2f896 \ - --hash=sha256:d6db91ca6391eebc139c352f34578cea382df6bfa03d3b4146ed12b18b01cc14 \ - --hash=sha256:e5e7dc3e3e1732e88c07aaec17eeb9917f9ed1107d9e60d5ab985cdc14bac43a \ - --hash=sha256:e6c0674d34b8adac22533f6786576b3de4e396aaeda9e0c15378af9b8ada2702 \ - --hash=sha256:e8cc7fbdff15c0613f0a1f1f8744bef961b0a164c0ca29bdff53e9d2d93c5e5f -nltk==3.9.4 \ - --hash=sha256:ed03bc098a40481310320808b2db712d95d13ca65b27372f8a403949c8b523d0 \ - --hash=sha256:f2fa301c3a12718ce4a0e9305c5675299da5ad9e26068218b69d692fda84828f -oci==2.170.0 \ - --hash=sha256:1e205a395e856b6514501d34595dd1e8e261415aaaab2c97f77fd2fc9618dcc3 \ - --hash=sha256:49adf0ffaf754c07c43194d19d2e11f5e1b602a95bb365bb384d939ff365b1b4 -openai==2.30.0 \ - --hash=sha256:92f7661c990bda4b22a941806c83eabe4896c3094465030dd882a71abe80c885 \ - --hash=sha256:9a5ae616888eb2748ec5e0c5b955a51592e0b201a11f4262db920f2a78c5231d -opentelemetry-api==1.42.1 \ - --hash=sha256:51a69edacadbc03a8950ace1c4c21099cacc538820ac2c9e36277e78cebba714 \ - --hash=sha256:56c63bea9f77b62856be8c47600474acad853b2924b99b1687c4cb6297166716 -opentelemetry-distro==0.63b1 \ - --hash=sha256:b405b04ad70e430390265eb38e82e067a84ca1f49a21429eaadb930c13330d66 \ - --hash=sha256:f435098abc7953f58226e8bf79e4c90bc6b32e50aa75d6fa074201db8243b577 -opentelemetry-exporter-otlp==1.42.1 \ - --hash=sha256:2d9ebaed714377a67d224d46795ddcc11d2c877fa5de35fda70b6f3b010729a9 \ - --hash=sha256:aedd54545bb0587cd45210abdc8be545af9c01413f3307786e276df1e3c83bee -opentelemetry-exporter-otlp-proto-common==1.42.1 \ - --hash=sha256:04f1f01fb597c4249dfcd7f8b861c902c2102369d376d9d346ff38de4469a2ee \ - --hash=sha256:f48d395ab815b444da118868977e9798ea354c25737d5cf39578ae894011c140 -opentelemetry-exporter-otlp-proto-grpc==1.42.1 \ - --hash=sha256:0ae1177e2038b18a929b3098215243631ef91136cba26b7e2b12790ceb7e87cc \ - --hash=sha256:975c4461f167dd8ed8857d68d3b6b25f3d272eab896f6a9470d0f5b90e2faf15 -opentelemetry-exporter-otlp-proto-http==1.42.1 \ - --hash=sha256:00a16da1b312a1d6c7233d600d557c91df71125af73020f3b9a7765bd699d59d \ - --hash=sha256:bf142a21035d7571ac3a09cb2e5639f49886f243972883cfe777ed3bf02b734d -opentelemetry-instrumentation==0.63b1 \ - --hash=sha256:32368d6ae52c8de20aa790a6ad86b10a76f09956092337ae37d675773990e541 \ - --hash=sha256:f1986716d52cc316ea5f60189098726a9071d8ecc0eee96c9ed110be08bade9c -opentelemetry-proto==1.42.1 \ - --hash=sha256:c6a51e6b4f05ae63565f3a113217f3d2bfaec68f78c02d7a6c85f9010d1cfca6 \ - --hash=sha256:dedb74cba2886c59c7789b227a7a670613025a07489040050aedff6e5c0fb43c -opentelemetry-sdk==1.42.1 \ - --hash=sha256:083cd4bbfaa5aa7b5a9e552430d9951219967cfb27aa61feb13a77aba1fc839d \ - --hash=sha256:8c834e8f8c9ba4171d4ec843d0cb8a67e4c7394d3f9e9297e582cbd9456ddbf7 -opentelemetry-semantic-conventions==0.63b1 \ - --hash=sha256:3daf963611334b365e98a57438183eb012d3bfb40b2d931a9af613476b8701a9 \ - --hash=sha256:dfe5ef4dee82586b746f522b818ceb298d00b3d59f660042bd79404bff8d0682 -oracledb==4.0.1 \ - --hash=sha256:032ca4f558b05f03fa1bef1b04e59ec350ae0b22e6d85c47f4ac62ae98315823 \ - --hash=sha256:03afeda85bec3eca983ebf3ad9910d0f217d99300258366d287e015a041d6c13 \ - --hash=sha256:08e84a6af1b6e5921dba088dd9fc0738927206eafe5ce9763c34195f87556849 \ - --hash=sha256:0d3c6ed987df64b914ece0722692419fe494d07f15bb4d7715adeada4f914c3a \ - --hash=sha256:0ece951553c106a0896c8e1690bcdf69d472761fa65fec9b8152cbce13ab8b81 \ - --hash=sha256:10204432f0eea8707a79c75bdccb84071e43fd19c658cb3b34d1746b12c6e7fe \ - --hash=sha256:20a10f903c8da59e9689a98bd68012f78fa19bed950ad9f19cd8f5b8b97e73a0 \ - --hash=sha256:29ae0ff517a3241060eeee15a321b710c3f83a688cf2da7d5729adbe212e2b00 \ - --hash=sha256:34bbea44423ed8b24093aa859ca7ee9b6e76ea490f9acdc5f6ff01aa1083e343 \ - --hash=sha256:3b5ef1676a27b7e0a7ec55be27fd8f6d28d1601f5e8dfdae78705909f25b7c0a \ - --hash=sha256:416b324cd7715073cf5f3d577330387ffd59741463995c25bdc2d82b3e80b88e \ - --hash=sha256:443b2f03461e873ccd73dff3d8541fcf974c05e13e296a6687ffbb0c4a72c0a1 \ - --hash=sha256:4b42725337f80d433a3bd2928c08667e5b89da9ce05cf9ae3a4189c4fc4805ea \ - --hash=sha256:523b3356cde9d588ba250cefafdfc34869233d65c179f805ea6e4d3d6b209a7f \ - --hash=sha256:5332a4499d61c3cd659ed09bbd0d3c9a4c74a70bd51136d5c3de9127dc6d7434 \ - --hash=sha256:5646c126d4ab506ee2bda261e792f0036231ee929296057e79857ec678d86d4f \ - --hash=sha256:7156ef112a901967b3ee89b6c582bafc5a3082c47ca566de1a79e9ac3b48da32 \ - --hash=sha256:73ba32597fe1da72e0824aaa4b1900ec08a3b77268cb4eb45c733ae7e7043e70 \ - --hash=sha256:7bbe5611f9196f0ec15d4bf838ec728d89586a962a20d65cad898aec020e11c4 \ - --hash=sha256:7db5a43c29a23ed23923a29816c65c7a81fe00f2abfe6bf36d83ad952abd9b89 \ - --hash=sha256:8159c5bd8f25b0ca0ce30f21e7a732a2bdfb4adb81b9c8ea1ca75339d8ec8398 \ - --hash=sha256:828dd4c981b286f0467feab1c035fae8d3888cfdc707706841734821877ae1f3 \ - --hash=sha256:86a06d0afb3bb3a24bace0e72fb9abca2093efe0fa3457c65c13ba4eb5000b0b \ - --hash=sha256:86ac65cbc8d29626b1d9d203f9151566c26a78e55bdfc030c06169ae8017f458 \ - --hash=sha256:873fcca53306e2b3b445a7d657cddc19e415a7aa7e392c473dfd1a3ae3970989 \ - --hash=sha256:8e13ff1e6f28fdb863180d23fa94cb42c619c29d2981e24992431e51b97caa54 \ - --hash=sha256:8fcad6d9628923281bf21e48a391ac2f87ec6950dc63381d8fea470e3128aef0 \ - --hash=sha256:90586b3c7729b9cf3d40df902e81257f01e15e3408d8b6b9dbf91e939b64f72c \ - --hash=sha256:9f521b3f3f14fa9b8e748aeb79b064ae6767fcb0e8ff969a9aba7a852f059658 \ - --hash=sha256:a029dcee759bca56a8c95e952040c3d3f57e5ec05965355293b21930a66967fb \ - --hash=sha256:ae894ca2705929eb0ac228329336fd03388ad6e3b54002be6f5d4400a8feaf52 \ - --hash=sha256:b05bfadbfe462c39cc97258a973972f5bbbc9f8e2e9a4c2e0efcb1ec86b91088 \ - --hash=sha256:b09eec35681d72c9476e6d715b89bb775724a31e7363df6beba7470494ea8040 \ - --hash=sha256:b73820521eccd290506af94e1ffb9a8a5941b4018e3861df9b040652a7cef123 \ - --hash=sha256:c05a01d6ad610a88c2aa1a43b1dc0a8485f5fbd4374d2b36908859d4205de192 \ - --hash=sha256:c24b174aac8163065736072a726a50091791f6d30ac5c44965cf7044e86fbaf8 \ - --hash=sha256:c2d394453f669858bec942ff0da18b6ebade296ece823d582ad2b464ed5c6c90 \ - --hash=sha256:cb7727f93ff962ab826bc3d0bca4b0e5bf45ecb7c525551c70c9e094f0f27027 \ - --hash=sha256:ce3f25552fe58df5c266874f8b13f0a8ab7fcd09ab4b476bc15520a67527ca4b \ - --hash=sha256:ce6319ee01dcbb4d74f0e2a5794c6a566f339958ecac9830c67c7070521620e2 \ - --hash=sha256:cf61e42b9ef723dbdd0b23032b695e872009ed7341003df59d9a97cd960df977 \ - --hash=sha256:d132af7d95474d207632363575c7968b09e2d33dd24af3a36f539254433f4ae8 \ - --hash=sha256:d7cd278d59780e22e0a7451d208460756d779dc62b55bdbd95652f9640fbf8c3 \ - --hash=sha256:dbe8b44fea57385617838f2acfce8cc19f6c95cd9e65e7235e86b5932af1acd9 \ - --hash=sha256:e36581bb10e719d928dad12018c2d42606db2c34f49d6665b06f701f049255f0 \ - --hash=sha256:e3d54b624748cfe42248c4bc62c3f788632a2077058485a9acb3150312b1c396 \ - --hash=sha256:e4926e699a42c526137724960fa4303ecb0b542186b11d3705ac84414a896508 -polyleven==0.11.0 \ - --hash=sha256:046e90c02c5b8dae2ab71c4fb33772bd6f27b7883b05e2117573bf478b5ced44 \ - --hash=sha256:05207bb66da15a2dc5c530e2f5cb5f0588d0a7e79b3bd542965f9e06e3fb14fe \ - --hash=sha256:0cb8ed97b536f9aada3ad45169ee7768c426498bf3fa608a4eabd055dfef795e \ - --hash=sha256:0edbc74858bcd41e02865ad9431f8c78752161d96ab61d3643dcfc3f334bed58 \ - --hash=sha256:14601c9ea632d0d4bd95e78f4ca0752d1de26f75aa3d983ad49800f07f76f90b \ - --hash=sha256:166f6c9b161c6af92ff201c734d6437bc7ef74a32dab306c5d47a0bdb7a82d9f \ - --hash=sha256:16986fd58911d6075b5f63ea001197141145b7a6df48bc4ce4530e79227e74a2 \ - --hash=sha256:209fa669ca23ac453a7e9fbf07695350d5cbe61d71a6226b861757ccab28e664 \ - --hash=sha256:248b9f645d8c6e337091498ed5c7d4a796d9d51df98458be25b1d76d962954e2 \ - --hash=sha256:2a33728df4708c9370f5e65fdb8de7e15f01d5ae8530eedf507d182fe63afb0e \ - --hash=sha256:2a59849c327279902e8b396666f6998234aa82aacc47abc103d93babaad46203 \ - --hash=sha256:2eb8f6778f3073dce041805a09f0753cc441b0219253d7b933aad234a954f30a \ - --hash=sha256:2f975ab8cb81fd8eb5a647a3cefb0bb80bc307920a9307f66ab4019d88370ed2 \ - --hash=sha256:310caad59e5cb02553806ba5a66d0cbc533e17d17e6dc90dcc810f20f230e183 \ - --hash=sha256:367faf0e1898c79624f46a894ebe5b69bf1782318ec3e3331676ce5b24352882 \ - --hash=sha256:3bfce4689b6aaacf7c5296b8ed11ada07ccf046a01097ba1681e10f9caabbf6f \ - --hash=sha256:3c18b8e44e5d04f1ffa7d41eb68da553833ab8663b7cfb1a505d85676db5c797 \ - --hash=sha256:3c93419c84e5cabfcf38cdaf322c915c58866ce1828a3cfaebc06bbe2fc66d6d \ - --hash=sha256:45487a1e4a8415e4ed45e6720b2a3ad9d240336f7afa136a625b8f802a1880c2 \ - --hash=sha256:45cfb234fece0c9df73276788fa529a25f91abf97dd0d9aed4f1b713b6d530e3 \ - --hash=sha256:4648732c8ad3955c8d7b1aa015d92936a150475aaa97ce704fe0c8e7fa7e0c4f \ - --hash=sha256:47a3fb5b8cb60f647d2832d38b7d87cda27da8622b27c1292bceb9a04954c189 \ - --hash=sha256:4b8e5ac8faecc6daa7b3d325436a3f23f8c33dec7bfca5d22df3fbe00f92ddd9 \ - --hash=sha256:4c78b4d3e7d7b74315d5422178118963374c0cf3d7a9532a955f446ed365320a \ - --hash=sha256:50bb7d68b790194d552ee1256a02e205486b27eb22ab333eeb0003e0271c4846 \ - --hash=sha256:561f028c9535223c78cd58f6b546dd15ce69a6e268e651ae1377644845fae639 \ - --hash=sha256:5808f62874187dfd4e30de5dd5f42a660562ec95a87cc64d5455ba0f4be8f175 \ - --hash=sha256:58c11ce44466f6d833fd90f77ccd0c44accce41c9e80dea4c2817d5c124a61d5 \ - --hash=sha256:5c9ccb2f327d49a7566b0192e0d426f7772b38e247dc4e809c0b1cdf23e2ecc2 \ - --hash=sha256:6526d2516b439065864722069de6fcc418a4135696990dad66b81ddb18863bd9 \ - --hash=sha256:65fc01fe6cfe287f2f20170b35687a436ab36b882db568a55d81d6e0acd8379d \ - --hash=sha256:6ba2dcf3aff2909bbf3bdd9c1749f8de207f023fbb2c0b1d681c6bf3e78ceef1 \ - --hash=sha256:71bbb17919548d4e162444c918b1acf864f84150197087c757975606cbb99e43 \ - --hash=sha256:71d7c324e13ace16ecb7f1ba4d37e64dd34419187c6827f62b419421646ff73a \ - --hash=sha256:758c5fcb9d8556720fb51c1de5f3a7b39bb8dce9510a1f40e5f287951b901010 \ - --hash=sha256:7859ce33fe4184e52da6c2161f806e5c26faefff148ba16f7205c8d779e2ed68 \ - --hash=sha256:7ab547adc0ac72a2852d37337a4a839d4e2f713940b0e8a944d45c528e5e6538 \ - --hash=sha256:83e59c8590a06ea6a959a3c55e6d28544b8d11a51aac2a318c1b74f92575dd28 \ - --hash=sha256:864aed924fd22bac26b6afefdb7455132a98922c060a20aee317b1a2a1c394d1 \ - --hash=sha256:8742d8bc9225237af5b574e2f8b95757418c6329f2d6bfdf3eb1d2bc44241880 \ - --hash=sha256:88a35ec93ec3d81a7347fd49db314a914798a144dca3d22946d18bba9b597dec \ - --hash=sha256:909d76c5e28d555b4174677041c0909f540f4948b7f77a86739e3dda6b34a9e0 \ - --hash=sha256:94311ee39e2db957415eacb36b96ae26dcc427c260465324de45fb8c870d4661 \ - --hash=sha256:94832ff5d04022ba6038c2ca0c9ea6906330cde3a3b1761739d772647d01da33 \ - --hash=sha256:9aaed455f498172769fd88f83c27bb8f43e0583d7b27d6b343154d471ec2145e \ - --hash=sha256:9b97b9260730deda4cdd5878fd6ce128b970497da0fbefeeacc0b1ed4c59ebb7 \ - --hash=sha256:9d34f655ae577fd91c6fa01e86e0396bf9700ffb8f9ef936306b6f14bd061d98 \ - --hash=sha256:9deb75346b4177d5e69496791e6156f705d9059961ce8f9520a0dc96532f10f2 \ - --hash=sha256:9e0d77012697d5a3ad74f0c8bacdade26ec38d99ce40f537cca3f44cf3a94af9 \ - --hash=sha256:a11326921f1581e72072e921eb572049945529a856d1c6a981c6fd6316f298d3 \ - --hash=sha256:a28860fe33a7f907bc5f86e55a0b9faea80047d1677fa23b4d6c631ccf91ef2f \ - --hash=sha256:a472fccba89ffb44b10481760c7351c79855b0ff654ec9d28966bfb111a71748 \ - --hash=sha256:b2aada9dd04e84389d90790f359447447a499d6d86807697d80732ed45547a43 \ - --hash=sha256:bb8c41d845a7c11fd33d2f4c9287204777943e7ba0da4ab772ef19926a54f5f2 \ - --hash=sha256:bf47079b6dc62e6af2bd6ecb45a6087efd9a27b61666b98d0326c246a22ea991 \ - --hash=sha256:bf82bb8601582da8f2248293c1e6f4cce2025c79fd64fccddf67dd8538655b55 \ - --hash=sha256:c1a02e3f0acfd1164cbaea25192398bc943ee9b93b9883a1fba9b2613d3616b0 \ - --hash=sha256:c518ced3e7c05de4efbd12fd7b61d6d574eb170f431e0415689d9f143fe552ee \ - --hash=sha256:c6a814629cc0468f9800b1333414a3be08fda9c5ce6b63e97154a9d21732e590 \ - --hash=sha256:cae70197d545a09bfab8d7e506eed66ef314fa6c4e7a5e2c402c2febc31db74b \ - --hash=sha256:cb23352025d8f1eab1f71548a8a1579e554ed7cd82098d6a4f7752c8dc8b28c0 \ - --hash=sha256:ccf87f6ac8d76aa4c48a4828becc0c19fd1589b14b20affe23e5e012be4fa64f \ - --hash=sha256:ce264f6a9daa3265299d8ffcb180d8256517a8d9235613a3b267172da0bc1e06 \ - --hash=sha256:ce2e782f8fae812c7ad960c4fd17a58ada183b89ae220cacfe6b3234179872f4 \ - --hash=sha256:d74d348387cf340051711c0dd6af993b4c264daa78470098de16f4a2b725785c \ - --hash=sha256:dc4f17007b07fde292ad33ec43a3ae8febe27a5bd92462b920736fd81d774fce \ - --hash=sha256:e6182ea6142904ea50cf82e2955d922156b5fcf9a8279925f312961f16710a58 \ - --hash=sha256:e7b6c8cfa13114bc2b17b51503a4db0cbc358c3c96197d6d7283bd686c0fd8fb \ - --hash=sha256:e9fd720e67c2385b5a8ee970d01343d6e249dd03b11c2fea0a933a67dbce63f8 \ - --hash=sha256:ec83e88b28a77d3be353e13840893cc57a7d9272a07c7dac169de3578c0d2025 \ - --hash=sha256:ef28c4c6cdc71a32f0478772d2f07b2cd412fe7950182033b1c36c8a481b0834 \ - --hash=sha256:fa49732cdecd985241db9f78d5fdba7170ba6375d2bf9ad040b05127dc96b877 -proto-plus==1.27.2 \ - --hash=sha256:6432f75893d3b9e70b9c412f1d2f03f65b11fb164b793d14ae2ca01821d22718 \ - --hash=sha256:b2adde53adadf75737c44d3dcb0104fde65250dfc83ad59168b4aa3e574b6a24 -protobuf==6.33.6 \ - --hash=sha256:0cd27b587afca21b7cfa59a74dcbd48a50f0a6400cfb59391340ad729d91d326 \ - --hash=sha256:77179e006c476e69bf8e8ce866640091ec42e1beb80b213c3900006ecfba6901 \ - --hash=sha256:7d29d9b65f8afef196f8334e80d6bc1d5d4adedb449971fefd3723824e6e77d3 \ - --hash=sha256:9720e6961b251bde64edfdab7d500725a2af5280f3f4c87e57c0208376aa8c3a \ - --hash=sha256:a6768d25248312c297558af96a9f9c929e8c4cee0659cb07e780731095f38135 \ - --hash=sha256:bd56799fb262994b2c2faa1799693c95cc2e22c62f56fb43af311cae45d26f0e \ - --hash=sha256:c96c37eec15086b79762ed265d59ab204dabc53056e3443e702d2681f4b39ce3 \ - --hash=sha256:e2afbae9b8e1825e3529f88d514754e094278bb95eadc0e199751cdd9a2e82a2 \ - --hash=sha256:e9db7e292e0ab79dd108d7f1a94fe31601ce1ee3f7b79e0692043423020b0593 \ - --hash=sha256:f443a394af5ed23672bc6c486be138628fbe5c651ccbc536873d7da23d1868cf -psutil==7.2.2 \ - --hash=sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372 \ - --hash=sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9 \ - --hash=sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841 \ - --hash=sha256:1a571f2330c966c62aeda00dd24620425d4b0cc86881c89861fbc04549e5dc63 \ - --hash=sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979 \ - --hash=sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a \ - --hash=sha256:2edccc433cbfa046b980b0df0171cd25bcaeb3a68fe9022db0979e7aa74a826b \ - --hash=sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9 \ - --hash=sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee \ - --hash=sha256:917e891983ca3c1887b4ef36447b1e0873e70c933afc831c6b6da078ba474312 \ - --hash=sha256:ab486563df44c17f5173621c7b198955bd6b613fb87c71c161f827d3fb149a9b \ - --hash=sha256:ae0aefdd8796a7737eccea863f80f81e468a1e4cf14d926bd9b6f5f2d5f90ca9 \ - --hash=sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e \ - --hash=sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc \ - --hash=sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1 \ - --hash=sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf \ - --hash=sha256:e78c8603dcd9a04c7364f1a3e670cea95d51ee865e4efb3556a3a63adef958ea \ - --hash=sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988 \ - --hash=sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486 \ - --hash=sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00 \ - --hash=sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8 -pyaml==26.2.1 \ - --hash=sha256:489dd82997235d4cfcf76a6287fce2f075487d77a6567c271e8d790583690c68 \ - --hash=sha256:6261c2f0a2f33245286c794ad6ec234be33a73d2b05427079fd343e2812a87cf -pyasn1==0.6.3 \ - --hash=sha256:697a8ecd6d98891189184ca1fa05d1bb00e2f84b5977c481452050549c8a72cf \ - --hash=sha256:a80184d120f0864a52a073acc6fc642847d0be408e7c7252f31390c0f4eadcde -pycryptodomex==3.23.0 \ - --hash=sha256:02d87b80778c171445d67e23d1caef279bf4b25c3597050ccd2e13970b57fd51 \ - --hash=sha256:06698f957fe1ab229a99ba2defeeae1c09af185baa909a31a5d1f9d42b1aaed6 \ - --hash=sha256:14c37aaece158d0ace436f76a7bb19093db3b4deade9797abfc39ec6cd6cc2fe \ - --hash=sha256:189afbc87f0b9f158386bf051f720e20fa6145975f1e76369303d0f31d1a8d7c \ - --hash=sha256:1c3a65ad441746b250d781910d26b7ed0a396733c6f2dbc3327bd7051ec8a541 \ - --hash=sha256:1c6d919fc8429e5cb228ba8c0d4d03d202a560b421c14867a65f6042990adc8e \ - --hash=sha256:267a3038f87a8565bd834317dbf053a02055915acf353bf42ededb9edaf72010 \ - --hash=sha256:27e13c80ac9a0a1d050ef0a7e0a18cc04c8850101ec891815b6c5a0375e8a245 \ - --hash=sha256:43c446e2ba8df8889e0e16f02211c25b4934898384c1ec1ec04d7889c0333587 \ - --hash=sha256:47f6d318fe864d02d5e59a20a18834819596c4ed1d3c917801b22b92b3ffa648 \ - --hash=sha256:4e79f1aaff5a3a374e92eb462fa9e598585452135012e2945f96874ca6eeb1ff \ - --hash=sha256:4f2596e643d4365e14d0879dc5aafe6355616c61c2176009270f3048f6d9a61f \ - --hash=sha256:52e5ca58c3a0b0bd5e100a9fbc8015059b05cffc6c66ce9d98b4b45e023443b9 \ - --hash=sha256:55ccbe27f049743a4caf4f4221b166560d3438d0b1e5ab929e07ae1702a4d6fd \ - --hash=sha256:58b851b9effd0d072d4ca2e4542bf2a4abcf13c82a29fd2c93ce27ee2a2e9462 \ - --hash=sha256:6b8962204c47464d5c1c4038abeadd4514a133b28748bcd9fa5b6d62e3cec6fa \ - --hash=sha256:6bbcb1dd0f646484939e142462d9e532482bc74475cecf9c4903d4e1cd21f003 \ - --hash=sha256:71909758f010c82bc99b0abf4ea12012c98962fbf0583c2164f8b84533c2e4da \ - --hash=sha256:7b37e08e3871efe2187bc1fd9320cc81d87caf19816c648f24443483005ff886 \ - --hash=sha256:7de1e40a41a5d7f1ac42b6569b10bcdded34339950945948529067d8426d2785 \ - --hash=sha256:8a4fcd42ccb04c31268d1efeecfccfd1249612b4de6374205376b8f280321744 \ - --hash=sha256:91979028227543010d7b2ba2471cf1d1e398b3f183cb105ac584df0c36dac28d \ - --hash=sha256:a33986a0066860f7fcf7c7bd2bc804fa90e434183645595ae7b33d01f3c91ed8 \ - --hash=sha256:a9d446e844f08299236780f2efa9898c818fe7e02f17263866b8550c7d5fb328 \ - --hash=sha256:add243d204e125f189819db65eed55e6b4713f70a7e9576c043178656529cec7 \ - --hash=sha256:b2c2537863eccef2d41061e82a881dcabb04944c5c06c5aa7110b577cc487545 \ - --hash=sha256:bc65bdd9fc8de7a35a74cab1c898cab391a4add33a8fe740bda00f5976ca4708 \ - --hash=sha256:bdc69d0d3d989a1029df0eed67cc5e8e5d968f3724f4519bd03e0ec68df7543c \ - --hash=sha256:bffc92138d75664b6d543984db7893a628559b9e78658563b0395e2a5fb47ed9 \ - --hash=sha256:c25e30a20e1b426e1f0fa00131c516f16e474204eee1139d1603e132acffc314 \ - --hash=sha256:c7947ab8d589e3178da3d7cdeabe14f841b391e17046954f2fbcd941705762b5 \ - --hash=sha256:c84b239a1f4ec62e9c789aafe0543f0594f0acd90c8d9e15bcece3efe55eca66 \ - --hash=sha256:c885da45e70139464f082018ac527fdaad26f1657a99ee13eecdce0f0ca24ab4 \ - --hash=sha256:d9825410197a97685d6a1fa2a86196430b01877d64458a20e95d4fd00d739a08 \ - --hash=sha256:da4fa650cef02db88c2b98acc5434461e027dce0ae8c22dd5a69013eaf510006 \ - --hash=sha256:df027262368334552db2c0ce39706b3fb32022d1dce34673d0f9422df004b96a \ - --hash=sha256:ebfff755c360d674306e5891c564a274a47953562b42fb74a5c25b8fc1fb1cb5 \ - --hash=sha256:eca54f4bb349d45afc17e3011ed4264ef1cc9e266699874cdd1349c504e64798 \ - --hash=sha256:f489c4765093fb60e2edafdf223397bc716491b2b69fe74367b70d6999257a5c \ - --hash=sha256:fdfac7cda115bca3a5abb2f9e43bc2fb66c2b65ab074913643803ca7083a79ea \ - --hash=sha256:febec69c0291efd056c65691b6d9a339f8b4bc43c6635b8699471248fe897fea -pydantic-settings==2.14.2 \ - --hash=sha256:a20c97b37910b6550d5ea50fbcc2d4187defe58cd57070b73863d069419c9440 \ - --hash=sha256:c19dd64b19097f1de80184f0cc7b0272a13ae6e170cbf240a3e27e381ed14a5f -pygments==2.20.0 \ - --hash=sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f \ - --hash=sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176 -pyjwt==2.13.0 \ - --hash=sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423 \ - --hash=sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728 -pyopenssl==26.2.0 \ - --hash=sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70 \ - --hash=sha256:8c6fcecd1183a7fc897548dfe388b0cdb7f37e018200d8409cf33959dbe35387 -pypdf==6.13.3 \ - --hash=sha256:c6e3f86afb625791510b02ad5480e94b63970bb957df75d44657c282ecc52224 \ - --hash=sha256:f3cb822769725f1bac658c406cfc9460399043f3750c2d3e4650e0a85eacabd7 +oci==2.181.1 \ + --hash=sha256:05587d120014238c6d5459328517eb02862f20f10e085a14f2ed48e5ca082672 \ + --hash=sha256:a7e4424e1c1f917afedfdf1a7b1bc0b99b75683a774e2270afba8ed09fcce95a +pydantic-ai-skills==1.1.0 \ + --hash=sha256:66f85a63088a30863a3363a36830beedf60c32517473663c3da6557f1a838006 \ + --hash=sha256:72a0d9099f4562c96ed7f882f6b3e77589cd5e7d4c6d48c550904931ca56df1d pythainlp==5.3.4 \ --hash=sha256:76744e51e27c895630bafd74f53a1f0aa8782cef2f7f02eebd6427fe8ce8d84d \ --hash=sha256:e66fd76fb5931834fd4e32ed54337ec62350d7654f187850e4dd4f915e9f624f -python-dotenv==1.0.1 \ - --hash=sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca \ - --hash=sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a -python-multipart==0.0.32 \ - --hash=sha256:be54b7f3fa167bb83e4fcd936b887b708f4e57fe75911c02aebf53efaf8d938e \ - --hash=sha256:ff6d3f776f16878c894e52e107296ffc890e913c611b1a4ec6c44e2821fe2e23 -pytz==2026.1.post1 \ - --hash=sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1 \ - --hash=sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a -regex==2026.5.9 \ - --hash=sha256:002205cafd2a9e78c6290c7d1df277bf3277b3b7a30e0b4bb0dac2e2e3f7cb2d \ - --hash=sha256:01f0f5f55f4b64dacec85dc116d3c05fd23ad3ff037bbc73a2085775953c2611 \ - --hash=sha256:01f28d868834624c934b8d2e0aa1c8341337e37831f4a012f18a5afcba4cbaf3 \ - --hash=sha256:075160bf16658e16d35233300b8453aac25de4cbea808d22348b6979668e924d \ - --hash=sha256:0de5cf193997384ed2ca6f1cd4f78055b255d93d82d5a8cd6ba0d11c10b167e4 \ - --hash=sha256:0e1b1b4e496afbb24f4a62aba855ee4f88f25578927697b340702e48c9ee6bc2 \ - --hash=sha256:0f03aa6898aaaac4592479821df16e68e8d0e29e903e65d8f2dfb2f19028a989 \ - --hash=sha256:0f9eede6a5cbdc02d4978090186390936e1776a7d1359b21e41014c609880bcf \ - --hash=sha256:1268eddd8486dc561d08eee1156e40aa3a8fe10f4bdec8fa653b455fcbffd12c \ - --hash=sha256:15ee42209947f4ca045412eae98416317238163618ace2a8e54f99586a466733 \ - --hash=sha256:164eba9b755ea6f244b0d881196fbc1fac09714e9782c9e2732b813142033c8e \ - --hash=sha256:19c16ceb4a267a8789e25733e583983eeab9f0f8664e66b0bd1c5d21f14c2d4b \ - --hash=sha256:1bd7587a2948b4085195d5a3374eaf4a425dc3e55784c038175355ecf3bbbf8a \ - --hash=sha256:1e6da47d679b7010ef27556b6e0f99771b744936db1792a10ceac6547ae1503e \ - --hash=sha256:205109e96b3cf5adf8f4cd62bedde9487feb282b9497a3535451e5a24cd706a0 \ - --hash=sha256:2099f7e7ff7b6aa3192312650a56e91cc091e49d50b04e4f6f8b6e28b3b27f1c \ - --hash=sha256:246de9d60aa3f8538b519834dd95cbf276ea263d6a7bd5a3666dc3fa0230505b \ - --hash=sha256:24b2355ef5cc9aa5b8f07d17704face1c166fdcc2290fa7bd6e6c925655a8346 \ - --hash=sha256:2a661a7d270a61f7cf460caee8b9fa2d5ef9e5c681234bcb9e0fe14f488e7dfc \ - --hash=sha256:2acfb48634f64996b57f90f39afa692ff362162722581921fe92239a59960f3c \ - --hash=sha256:2efa205e6d98b24d1f3ab395c11aa15cdf10935bca283d0285e0499c284fba21 \ - --hash=sha256:31037c82eccb44b7ea2e9e221d7c01429430e989a1f4b91ea5a855f6017b509a \ - --hash=sha256:3527bb4942d2c14552155406cdedd906567456821848aed1cb4933a391bf5eca \ - --hash=sha256:39617fb0cde9c0e6306dc70e3bfc096f3da793219879f7ae7aa341a69fbdcf6d \ - --hash=sha256:398c521292f4c7fb807001dcd54694d3a1fcafc179a36ad9cc56f98df85930b6 \ - --hash=sha256:3b1e39888c5e0c7d92cea4fc777396c4a90363b05de75d02eb459a4752200808 \ - --hash=sha256:3dd4a3ff360dfb836fecdb93a4598f9d6e2ac81e3e397125145c6221bf58cf4c \ - --hash=sha256:3ddd90103f9e5c471c49c7852ecc1fe27c7e45eb99e977aefe7caa4e779f4f58 \ - --hash=sha256:446ddd671e43ab535810c4b21cff7104945c701d4a14d1e6d1cd6f4e445a8bea \ - --hash=sha256:45375819235558a4ff1c4971dc32881f022613abdb180128f5cb4768c1765a1c \ - --hash=sha256:46f1326ca6e65b0879d23ca302c0f2415aad42ff0309b9c818e7949fe19a41d8 \ - --hash=sha256:48036f6374aaa79eb3b754ec29c61d1c6b1606749d705a13f8854fa2539671f6 \ - --hash=sha256:4ebe8f0b5ec5a5024dc4a4c59f444c4e9afc5f2abdbb8962065b75d27fb971f9 \ - --hash=sha256:4eeb011098fcb77af513dcef521a3dbecbf8849b1e38940759d293b7a93f5026 \ - --hash=sha256:508f56a89ba9cb26e4168cbc37dbd60a28d82430a9e18ad1d25fe0883c314ca2 \ - --hash=sha256:5604dfd046dc37eca90250fc3be938b076c8059fa772ac0ed6f499b0f0fb0415 \ - --hash=sha256:56a33f191f17d8c417f99945ebdc1e691d3af9605d86ec68c7e54a57e3e17af6 \ - --hash=sha256:57e8915c7986aa33d25e4d3629cef711cd2863f2961b10409f0c04cb8b7d9020 \ - --hash=sha256:57eeeb05db7979413dec5438f2db21d7ecbba787cde7a711df1a6f6df672aa06 \ - --hash=sha256:5b73ab8afcf66c622db143d1c6fda4e58e4d537ee4f125229ad47b1ab80f34c0 \ - --hash=sha256:5e41809d2683fcde7d5a8c87a6567ba1fb1ce0de9f31bff578de00a4b2d76daa \ - --hash=sha256:6351571c8a42b505eb555c0dc47d740d0fb66977dc142919eea6f4325b7c56a0 \ - --hash=sha256:6441cc660d76107934a09c22167200839a0e89604a6297f78a974e66e931d2c0 \ - --hash=sha256:65c8c8c37377794bd5b2f3ebe51919042bf17aec802e23c833d89782ed0c78af \ - --hash=sha256:6ba42b2e7e7f46cf68cc6a5ca36fa07959f9bbd9c6bdcc47b6ee76549a590248 \ - --hash=sha256:71b61c5bfe1c806332defc42ad6c780b3c55f661986d7f40283a3a88274b4c00 \ - --hash=sha256:728d8bfd28a8845c8b6bc5dc7ce010453d206396786c0765c2740cb65f37791e \ - --hash=sha256:7b92817338591505f282cf3864c145244b1edcf5381d237038df955001091538 \ - --hash=sha256:7e30b874d341fac767d7df5a0870540541c2c054b80cfaac116e8d367a8a7ff2 \ - --hash=sha256:7e87577720152d2caae19fe2baaf1f8d5ca12091e9e229f03915c37d1e4b9178 \ - --hash=sha256:83d0ee4a57d1c87cb549e195ec300b8f0ec3a82eba66d835e4e2ed8634fe4499 \ - --hash=sha256:8676474c07469d6f33dd1085ca2cd45f65785f32518f2b20e36d9953ca07f994 \ - --hash=sha256:86f40a5d6444db30a125c9c9177e6b25dad981cbc37451fd838f145e6edac92e \ - --hash=sha256:872acc074bd29ffc9913ecdfedf6ea77502312ca44a4aa0d3779089c6069d8de \ - --hash=sha256:8abd33fef90b2a9efac5557d6033ca82d1195ed3a15fea5af15ba7b463c6a63b \ - --hash=sha256:8c6e4218fbdfbcd4f6c19efca40930d24a621bf4b48cb76bc6640543bd28ef20 \ - --hash=sha256:8e76e8161ad00694cfce6767d5dea860c6391ac5b83e5c3a39661e696f11fc7e \ - --hash=sha256:8f3af7a4903c5c04a11a196a5aa75cdd7dd3f8508132f9fb3259d9f5908e3b88 \ - --hash=sha256:91328f1c23d47595ca3ef0a7557fa129c5a23404b775c770697d2f35b33e0107 \ - --hash=sha256:916714069da19329ef7de197dcbc77bb3104145c7c2c864dbfbe318f46b88b14 \ - --hash=sha256:93a7860539414dddaefba2b40f8771765ae17949d4c7182b876ce429e11a8309 \ - --hash=sha256:954cc214c04663ee6d266fc61739cad83054683048de65c5bd1d640ad28098ac \ - --hash=sha256:96f5f58b54a063d7ea9dca08e1cf57bfe10499c4d579ee672da284f57f5f0070 \ - --hash=sha256:97cf3bc1b7d7d2306772ec07366c80d9df00ff79e79cea32898883a646d2fae2 \ - --hash=sha256:98bd73080e8756255137e1bd3f3f00295bbc5aa383c0e0f973920e9134d7c4ad \ - --hash=sha256:992604d02e6d9c6d786c24a706a71ecffe1020fc1ef264044474cd81fa2c3919 \ - --hash=sha256:a24852d3c29ad9e47593593d8a247c44ccc3d0548ef12c822d6ed0810affe676 \ - --hash=sha256:a6a563446a41adc451393dc6b8e6ad87979efaee3c8738690a8d1b08ebead1b4 \ - --hash=sha256:a8234aa23ec39894bfe4a3f1b85616a7032481964a13ac6fc9f10de4f6fca270 \ - --hash=sha256:a8820737949116ffff55fe18f9fc644530063ba6ebfcb8314239416e78f1347c \ - --hash=sha256:a9e1328e17c84c1a5d22ec9f785ecef4a967fab9a42b6a8dc3bcbebd0a0c9e44 \ - --hash=sha256:aa0fbdbac82cb3e4450d0ccde7d7a35607f4cb2dd9fba4b8b69bfaf8c9fa6aed \ - --hash=sha256:b310768746dd314ea6e2ff4cc89ef215426813396ff4e94ee8e6f7096c8b6e03 \ - --hash=sha256:b46b0f094dc1d3b90356c85a0bd2c9bafc4a6a190b9d6f8ddd5a033b6e088ed4 \ - --hash=sha256:b4bb445ff3f725f59df8f6014edb547ee928ec7023a774f6a39a3f953038cbb2 \ - --hash=sha256:b6d189041f15691cfa2b6c4290448ec221244d225b3f5fe9e7771b34ffcdf6e2 \ - --hash=sha256:b96350aa424e79d4fd6b567b344dcbe2b2d6bfc48dfe7717587e1fa6d43da6ff \ - --hash=sha256:be3372b9df6ddecff6486d37e19095a7b4973137caf5512407a89f4455361f41 \ - --hash=sha256:bfe1ce50cbfb569d74e1e4337da6468961f31dbea55fd85aa5de59c0947a805a \ - --hash=sha256:c010eb8caca74bdb40c07498d7ece26b4428fd3f04aa8a72c9ac6f79e8faaac6 \ - --hash=sha256:c8b9b9d294cfea3cd19c718ade7cc93492b2c4991abd9a68d0b3477ae6d8e100 \ - --hash=sha256:c9411dd64ca95477225734a93dfc8583b51916b8d5942f99d6cac21e09965451 \ - --hash=sha256:ca518ed29c46eecba6010b15f1b9a479314d2de409536e71b6a13aa04e3b8a77 \ - --hash=sha256:ccf5249114cc3e772ecdd88a98a86eca0fd74c61ce32a94743758c083fc05d48 \ - --hash=sha256:cd2846168eb9ee3c513902bc8225409cb1caab31d04728b145171fa1625d9621 \ - --hash=sha256:d29eebfc9525db68cad3c97eedd7f754fa265aa5cd0cf4f863b2421e1b48fc9f \ - --hash=sha256:d3d7eb5c9a7f6df82ed3cfac9beb93882a5cbcb5b8b157b56cb2b3b276574ac1 \ - --hash=sha256:d626b84406444b165fc0ba981604edea39f0588ff1f92baa23fe50799ea9afdb \ - --hash=sha256:d641a8c9a61618047796d572a39a79b26167b0411d2c3031937b2fe2d081e2cf \ - --hash=sha256:d659eee77986549c9ea45b861c7567e44d6287c3dc9a4565478853f7b9fe2ff6 \ - --hash=sha256:d6b8a143aca6c39b446ea8092cde25cc8fe9304d4f5fecfbc1a9dbb0282703c2 \ - --hash=sha256:d726ca3f0d76969bf1e8e477d160d3d666bbf999f6860bd314889e5345782046 \ - --hash=sha256:d7bdc0ab8f3dd7e1b4f9ab88634e13374669db86bb3c72e8292f07ae313f539f \ - --hash=sha256:daff2bdbaf1d23e52fdff7c0b7bc2048b68f978df6a4d107ac981f94caef2e66 \ - --hash=sha256:dd2810d22146b6d838acc5ec15602cb6b47920aa4e33015df3868eedfd20bab8 \ - --hash=sha256:ddda5340e6c01a293027dd46232fa79eaff1b48058ce7a98f572b6445b088041 \ - --hash=sha256:dea2e88e1cce4522496cce630e11e67b98b7076620bc4336c3f674bc21a375f4 \ - --hash=sha256:debb893095e944091c16e641a6e33c1b0f4cb61ab945ec5afbf53ce7068834d8 \ - --hash=sha256:dfbe4579b9f08036aa7d101d1835437a20783574ac66327e6b29b4018a138081 \ - --hash=sha256:e1d93bf647916292e8edcec150c07ddf3dc50179ccaf770c04a7f9e452155372 \ - --hash=sha256:e82db382b44d0111b22601c509c89f64434816c9e0eef9d1989cda8cc6ff1c04 \ - --hash=sha256:ea9c8ecfa1b73c73b626534d6626e5340d429630943672b8480724f44e84b962 \ - --hash=sha256:ead4b163ac30a29574510cd4b3e2e985ac5290c05fc7095557d6a5f403fc31b5 \ - --hash=sha256:ecd353045824e4477562a2ac718c25799cdaaa41f7aa925a806a8a3e6848a5b9 \ - --hash=sha256:ed2c9e8068b614c574d8d30e543d617cf5379b0535d46f97ef00e904745a08b5 \ - --hash=sha256:ed457d8e98ae812ed7732bef7bf78de78e834eae0372a74e23ca90ef21d910f9 \ - --hash=sha256:ef31cbfe458e21c6122ba8150ff060e0c7789ed0d26eb423f25472584920b555 \ - --hash=sha256:f079e50a0d3cc3cd5091fa9ff45869a2e6b2cd35895731edafb0327901a8d86d \ - --hash=sha256:f3844f134e834076677dd369976e9f5068679fcb8e50102fdf6b7ac96a3ec127 \ - --hash=sha256:f7a7c26137296beba7784de6eba69c6a93a63ccebc385e4962fe67e267a91225 \ - --hash=sha256:fa411799ca8da32a8d38d020a88faa5b6f91657d284761352940ecf9f7c3bbdd \ - --hash=sha256:fd03c4f0e33280d15cae17159b899245d6b7c53d21def19b263b39655061f5ce \ - --hash=sha256:fd190e88a895a8901325fad284a3f74ea52b1da8525b76cc811fa9b1edf0ce2b \ - --hash=sha256:ff8d372ac2acdc048d1c19916f27ee61bc5722728458ba6ca5052f2c72d51763 -requests==2.33.1 \ - --hash=sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517 \ - --hash=sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a -rich==15.0.0 \ - --hash=sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb \ - --hash=sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36 -semver==3.0.4 \ - --hash=sha256:9c824d87ba7f7ab4a1890799cec8596f15c1241cb473404ea1cb0c55e4b04746 \ - --hash=sha256:afc7d8c584a5ed0a11033af086e8af226a9c0b206f313e0301f8dd7b6b589602 -sentence-transformers==5.4.1 \ - --hash=sha256:436bcb1182a0ff42a8fb2b1c43498a70d0a75b688d182f2cd0d1dd115af61ddc \ - --hash=sha256:a6d640fc363849b63affb8e140e9d328feabab86f83d58ac3e16b1c28140b790 -sentry-sdk==2.59.0 \ - --hash=sha256:abcf65ee9a9d9cdebf9ad369782408ecca9c1c792686ef06ba34f5ab233527fe \ - --hash=sha256:cd265808ef8bf3f3edf69b527c0a0b2b6b1322762679e55b8987db2e9584aec1 -sse-starlette==3.4.2 \ - --hash=sha256:2f9a7f51ed84395a0427fb9f66cb1ec11f7899d977a72cbc9070b962a2e14489 \ - --hash=sha256:6ea5d35b7ce979a3de5a0db5f77fe886b1616e4b3e1ad93fba502bd9b5fb662f -starlette==1.3.1 \ - --hash=sha256:05d0213193f2fbaae60e2ecb593b4add4262ad4e46536b54abe36f11a71724e0 \ - --hash=sha256:c7372aae11c3c3f26a42df7bd626cec2f47d03483d261d369516a615a53714c6 -tenacity==9.1.4 \ - --hash=sha256:6095a360c919085f28c6527de529e76a06ad89b23659fa881ae0649b867a9d55 \ - --hash=sha256:adb31d4c263f2bd041081ab33b498309a57c77f9acf2db65aadf0898179cf93a -tornado==6.5.7 \ - --hash=sha256:148b2eb15c2c765a50796172c1e499649b35f30d2e3c3d3e15913cfa56bfb163 \ - --hash=sha256:66c513a76cda70d53907bc27cf1447557699c2e95aa48ba27a442ff61c3ddfc2 \ - --hash=sha256:7778b30bef919231265e91c69963ce0f49a1e9c07ac900bbe75b19ce2575ba92 \ - --hash=sha256:8a46347a18f23fb92b396beebe0fb78f61dda0cc302445202c16203d8a18848b \ - --hash=sha256:8d759e71906ee783f8867b93bf26a265743da4c1e2f4a018464c1ba019862972 \ - --hash=sha256:9da38de27f1da3b78a966f0dae12b5a1ea9afe72ca805d84ff06508272ddf100 \ - --hash=sha256:de942f843533a039ef9fa3d9c88c7cd8a7c94553fb5ad0154270989b3d99a2c4 \ - --hash=sha256:e726f0c75da7726eec023aa62751ff8878bd2737e34fbdd33b1ae5897d2200f5 \ - --hash=sha256:f8de3bf12d3efdd0cbe7c8887868198f8a91415e3f29fcf258d9b8eb7b1d9ae4 \ - --hash=sha256:ff934fce95643af5f11efdae618eaa73d469dc588641e5c8d19295a0c65c4796 -trl==1.0.0 \ - --hash=sha256:529f447b77007c8d181a3cf3d8b1b6427888cac9ee1e6d583bd0dbda78165ed4 \ - --hash=sha256:c45700cb6aa8723e5db1dd8773297f642715accab1ca7754b56e6d50a37dfb1d -tzdata==2026.1 \ - --hash=sha256:4b1d2be7ac37ceafd7327b961aa3a54e467efbdb563a23655fbfe0d39cfc42a9 \ - --hash=sha256:67658a1903c75917309e753fdc349ac0efd8c27db7a0cb406a25be4840f87f98 -urllib3==2.7.0 \ - --hash=sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c \ - --hash=sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 -uvicorn==0.44.0 \ - --hash=sha256:6c942071b68f07e178264b9152f1f16dfac5da85880c4ce06366a96d70d4f31e \ - --hash=sha256:ce937c99a2cc70279556967274414c087888e8cec9f9c94644dfca11bd3ced89 -wcwidth==0.6.0 \ - --hash=sha256:1a3a1e510b553315f8e146c54764f4fb6264ffad731b3d78088cdb1478ffbdad \ - --hash=sha256:cdc4e4262d6ef9a1a57e018384cbeb1208d8abbc64176027e2c2455c81313159 diff --git a/.konflux/requirements.hashes.wheel.pypi.txt b/.konflux/requirements.hashes.wheel.pypi.txt new file mode 100644 index 000000000..c1d470df5 --- /dev/null +++ b/.konflux/requirements.hashes.wheel.pypi.txt @@ -0,0 +1 @@ +--index-url https://pypi.org/simple diff --git a/.konflux/requirements.hashes.wheel.txt b/.konflux/requirements.hashes.wheel.txt index 02ae2f70f..6772093ef 100644 --- a/.konflux/requirements.hashes.wheel.txt +++ b/.konflux/requirements.hashes.wheel.txt @@ -1,257 +1,441 @@ -# This file was autogenerated by uv via the following command: -# uv pip compile requirements.wheel.txt --refresh --generate-hashes --index-url https://console.redhat.com/api/pypi/public-rhai/rhoai/3.3/cpu-ubi9/simple/ --python-version 3.12 --emit-index-url --no-deps --no-annotate --universal ---index-url https://console.redhat.com/api/pypi/public-rhai/rhoai/3.3/cpu-ubi9/simple/ - -aiohappyeyeballs==2.6.1 \ - --hash=sha256:eff0885546faac493fa18997b9e5158ea7a56a36ee3222b744bab31808e3f3f8 +--index-url https://packages.redhat.com/api/pypi/public-rhai/rhoai/3.5/cpu-ubi9/simple/ +a2a-sdk==0.3.26 \ + --hash=sha256:22b23f90110fb4236950bed1890b9111b2954646541cda2da43d76e865966c50 +accelerate==1.14.0 \ + --hash=sha256:d39aacabf33ce9a0f9313e5d085752b1232db66a7dcdbd5a8cc0a64a86e8cd9d +aiofile==3.11.1 \ + --hash=sha256:96b875f67beb10675a0b2bd672a9387c20b1373dfd50ecd86137fc242f1e8c78 +aiohappyeyeballs==2.7.1 \ + --hash=sha256:148c42ea64254eff51702e3643744a5d29e19f1cc7f1adcfb2289d7ac711ae80 +aiohttp==3.14.1 \ + --hash=sha256:c958019fc4a4a4536be8308b5efdebb7b31b51dbcf9cc651e16d782ec404d372 \ + --hash=sha256:f3c686257c0297a912e82e2582f6587b922f1e7b1e3ff0a2d3d3fb7093db545e aiosignal==1.4.0 \ - --hash=sha256:9d5af4742d4552e8a3f2fbd48237e07cab578e7175af2f952c420d2e98b731f0 + --hash=sha256:f67c1242810c1da35afc04f8fe6057d1f133fa581d32ecc4c841d08134436218 aiosqlite==0.22.1 \ - --hash=sha256:2e85580d41e992ed45e1aafce66ac4c23b7bd7cf842dc5209a39b95c11497115 + --hash=sha256:a624d7e69308a90e94e2598ff0e12c0b15e0e2041ae123eb1dc30a347b785944 annotated-doc==0.0.4 \ - --hash=sha256:cf904ba25da8611ae3274f2af1d6e82275e452113f7774505e723a21957c10d6 + --hash=sha256:1ecb2803f2d35e57ba03d74245d9ece70ffce1552a51d1ab1d2b439d791e5086 annotated-types==0.7.0 \ - --hash=sha256:fcdc578cef2d4fd8770abc0ceb0241c68c992698aa7a5f945ce67651dd585cfb -anyio==4.12.1 \ - --hash=sha256:e18da418b6421e6735231319ea8ae4262f68b52b8dbcb4699a7a14f89cfb2b15 + --hash=sha256:d31d6f386f3ecd6cdca12274844b969c3f9c90d15ebef7774f2eb34857108758 +anthropic==0.116.0 \ + --hash=sha256:8af9fbd8d932a213df08c5133995f02243ca6942703bae186c31f1d370dde25c +anyio==4.14.1 \ + --hash=sha256:7b1919965ee5094a3cf8b0c371749b59b5835293055e51ab23a4a45bca1d3fab +argcomplete==3.7.0 \ + --hash=sha256:5cc89c09cbdd234b8bef7fcf3576221b903aad46acd66e34387e32c9000f4963 asyncpg==0.31.0 \ - --hash=sha256:30b9415c515d7aeeb78a2973398c110b021bbc8c4b664a50309c8a7a59f850e6 \ - --hash=sha256:d5fcd8eb91e0624dbbd391062d529ec24ac41e0665c6aa4df719f6682856b318 \ - --hash=sha256:fb62c7c0a0ecf71ebb9ba83bd67965dd8c8349c1fdb12225b4f76c11f04dcc46 + --hash=sha256:5eb2938e073f59b4ea452cfb52002d3fd288b77682d7f9522ca5acba9c00e287 \ + --hash=sha256:a6052510af2949ab09b3fa4d49e8c060d6cac880c97a483597a83c9bfd1789a7 +attrs==26.1.0 \ + --hash=sha256:72a7cd6c5cd0ba459eec87d0cff40ba06839196b8355a01450ea1db9f6ab6a3d +authlib==1.7.2 \ + --hash=sha256:afaa07fae358e613678f4f4e8f99b8a78a1e802932df69e4d13a66d4f2cca3ca +autoevals==0.3.0 \ + --hash=sha256:5954c2f4f0c361643f5265e69093ca37c2fe4480ab2bd853512c896c4e509696 +azure-core==1.41.0 \ + --hash=sha256:c48efb0ab2d42215cfb53cb348d5fe4a1edbf90d6da90c1a2060b665dfd956a4 +azure-identity==1.25.3 \ + --hash=sha256:ddb57aa5e631f75dfad74a87841dc1b6ba48f0c4f128cd82f493de456229e344 +beartype==0.22.9 \ + --hash=sha256:7e0e03f04547689224dd1fb5471f9f0080426e8227b34a6d7d1eefd4c190a6a6 +cachetools==7.1.4 \ + --hash=sha256:2c532448490746cb5330504ca9b4e301367de61e7352e630c8d0ccffba800f3a +caio==0.9.25 \ + --hash=sha256:398a28bb0d40bceb34e32097e86c2b5ceb9361a0ae95e8f86ee02dd042f717d8 \ + --hash=sha256:a5d2008d627a56a308b94755770e1e716117826d932141e6b85ef6d79ad6257f +certifi==2026.6.17 \ + --hash=sha256:36a32caf926900a4f112e18621636a19ce6474c5b2aeb148588147d2633ec530 cffi==2.0.0 \ - --hash=sha256:257e90f733c1a33b9f5ade4a4f47db6a3984de5c2d2654848feca129888ff9d5 \ - --hash=sha256:34cf2187e399eb7baaa20488d0b78ab20be91060ef9ac531685f37478ca1a12a \ - --hash=sha256:e39d7009b1872abbd91bb17057b48fe24057a1026a20ab06b672fbdd4721d789 \ - --hash=sha256:ffe747cf5e265169ad5bd64b4359368f74e445cf8ea3cfe99045450554fb4e13 + --hash=sha256:400ea3a9004c2d47638dbefec51ef0775667a48bde8a53e741dd8ad63af54795 \ + --hash=sha256:a01703f2ae468ea980f4d5917f6fb193dfee5f4cbdf270c9e70435da5ef87847 +chardet==7.4.3 \ + --hash=sha256:9600f3b34b9e00a5ffafdec6da3ce8803de28d66cd0a481a56a88394c17ed25b +charset-normalizer==3.4.7 \ + --hash=sha256:29d94e888271160a8b8c2a465d62777b7f0c2a5c056a57b1c47dc60765eea275 chevron==0.14.0 \ - --hash=sha256:215f5e3e7ac75d150eadfc0f8c651b3815dc36813e122484b1ed68e142e5adfb -click==8.1.8 \ - --hash=sha256:11fa3d5230fee43910d853098461cbb0d9d3f59b70c63629bf237101ada5ee0f -cryptography==46.0.7 \ - --hash=sha256:0ab2a8e458e087bc69b372b28142bcd6075a00b5a243af5929859dc4bccfaebf \ - --hash=sha256:537fe5301361498d49fef0b7d36d1153bcf6abc81ff993a29c85bb55040e96c7 \ - --hash=sha256:6c984b35f55539b0c2cbb6e09ac5f20e91dcaead8817f1c842af969a1e5f17c7 \ - --hash=sha256:98e8d65c1c97595b0b21ff737b69f3be2cd92f8e437b999c4c38220d376f2e66 + --hash=sha256:4cbb3abb3803127a24947e075384f21bde2e00d43b8b8026f4ba9af7f866a423 +click==8.4.2 \ + --hash=sha256:368d4af9976de9fc5efc4d8a26c64d23c187c21a2eba9336254832d466dd6198 +cryptography==49.0.0 \ + --hash=sha256:272f6cf35bd11146fb7182ed94b7123b9547174e944a0ec41fb547d1ad363982 \ + --hash=sha256:44e7dda87cce4e64a4eada2469ade616471772ee8203d7331967ef7ba2fee2bd +datasets==5.0.0 \ + --hash=sha256:0fbc08ef020b03a22d91ad38b3b22091a1e18c1335f2963d357ea540bfb032e7 dill==0.4.1 \ - --hash=sha256:ae5bdc0f88e3a7998df6170245749d3e717f20a42cb982b080f8a98285a5cd8e + --hash=sha256:8aa45e639751fc9610ff6aa53229cd95c66142cb2372fa4b530985c0d6a445ce distro==1.9.0 \ - --hash=sha256:14a63983246dce4a649b0994f909f6e225197c0adb86f68f4be1252309a5c603 + --hash=sha256:e76c1bcd413a800244e5719cda5e981e6890b1f9ac2e6d7d8bb4e6e9fcb1299e dnspython==2.8.0 \ - --hash=sha256:a7e8d88ef436501e0c667ff4e7251f20297a0c705b83060868bcb259f9f3f41e -docstring-parser==0.17.0 \ - --hash=sha256:21e00984db7761fc91c701857ce566595ca7b65285f469c8da888b509a9ac714 + --hash=sha256:eebc57dce77a8daa02b3b4b9d3bc6866d233a8371468afd223008593fa66fd06 +docstring-parser==0.18.0 \ + --hash=sha256:99af886f2018766522dbfcfbd80dde97b776b4b407d7d298d5d17dcd502a4f7a durationpy==0.10 \ - --hash=sha256:c0a086dd504baa2364a2da2de6d2bd15b2eca7971c66da3c2695006bebfe93dc + --hash=sha256:7f09ea3ef8ceecbade4314c9dd1e9269e77bde08f3569802ae1606d6f6775efa einops==0.8.2 \ - --hash=sha256:83fed57f4f0858060494b9e7b32f3d08904225b3f1a1a3bc2a47d43bdf72757e + --hash=sha256:8d6101bd5244fcdee471aaf8cd8bfc6be8644cbdfea35e49f5e55e37a077b552 email-validator==2.3.0 \ - --hash=sha256:3b8ed50b89b305b8e8f5a99e3f7c80e65da28e9c19dff90f4f6d9e5c72f8c081 + --hash=sha256:3a24b390101b5d35b50461ac646e35d6e2ffe821a1b8cdc3390747921a83e428 +emoji==2.15.0 \ + --hash=sha256:54522da6c1c74d61d2dea799cc59ad26dc64aa5395c500c5c2d5d37ee4e384c3 +exceptiongroup==1.3.1 \ + --hash=sha256:906c71ed713d6910466bf1833f43b2eb19eab31947bfbfcbe39f8acb89a0152a +executing==2.2.1 \ + --hash=sha256:86991c26bcb2205acb4423a0c5c45deda32d76b91c2a0f218d6d148f8504233f faiss-cpu==1.12.0 \ - --hash=sha256:004aa246c589767439e210c275e20f64a5d3e0ee844df7d1ada4612b4c27e348 \ - --hash=sha256:06d06d210105c6769ca1c93c5111ce0a1a7ed2f239b2f666ccb2af7c90f42383 \ - --hash=sha256:4aadb7cfceacda36ff1738fe64af1c16e77f739105bb26246c683572c28db123 \ - --hash=sha256:8a2cc05c9459d0e22d05d1996f2e3a8b25b50cfc0ea9530a5422873048196a83 \ - --hash=sha256:b769fa38427cea3ee56e74af41e04578e5a3bee1389dde6e62116b2a2ac90dda \ - --hash=sha256:d164c65eb35d98f5ea8422b88c9b2645bdc091d3ab9829808699f81fdf7e6c1d + --hash=sha256:751ab86bcd7557efcf9ad3f5cbfb03f7bb0bae5da4ffcce3f6f3f0e8440ae7fd \ + --hash=sha256:a8bc9d472159fbb0e812edff8e90336bf6f7f044e112282eeebe2701ebee2d72 +fastapi==0.139.0 \ + --hash=sha256:2168ec8cfcd11399fb63fd49903a53e0a49aa5f178a90dd72ee6cc482d98c3a6 +fastmcp-slim==3.4.2 \ + --hash=sha256:4d14cf8564c7c20bc181fd978833583eee1342b5cb2d1b602df6374fe4d33ea2 +fastuuid==0.14.0 \ + --hash=sha256:48a11273ad4c087c73141708dc78b20fd70b80f0792578762b58e165994de198 \ + --hash=sha256:9b1ef58a7e4d54ab02d82742524a0064dae332f1179f89d88b4c9b98b3315df1 +filelock==3.29.5 \ + --hash=sha256:e79f8cc8d8285e6b8616992fc90ad2b53de0b005e36aa8efe8ad4ef526b953b0 fire==0.7.1 \ - --hash=sha256:833e042e12ce8f590b8a557f90fad4977d355534bc034b30185458ffe6acb638 + --hash=sha256:40060b6b961811b3fd0432c0b21099e83b1ee0f36ae735c9a8cf659d4627fdd8 frozenlist==1.8.0 \ - --hash=sha256:41a5c624d79ec4157746ada9e19a1da4c3d1b3f5fde9e3f8ac85f7eed9126af9 \ - --hash=sha256:89573b85be77e89a114dc8d1983456091f6c01ff482d31aec2585df0c00de2c5 \ - --hash=sha256:b4fdb636be50043b56a9589b8690a104d7d9ddc72d79058171735fe15eadcc39 \ - --hash=sha256:d7bcd7c1b48b3851acba9e7a11f951c117a654e60004adcbe98425b3f4114057 -fsspec==2026.2.0 \ - --hash=sha256:c908a61c953514ce6298cfe13915a3d74728d69da1781c9e0c44acfdefea4276 + --hash=sha256:0e702e35f72baf35d3c6d8b34e664a4b90bb7bd2090e585c4419bd77a9e0eb37 \ + --hash=sha256:824190e162bc775e7f6ded9bde5897738987c51548677c213d1ff728b10efe5b +fsspec==2026.4.0 \ + --hash=sha256:ef0c6ca507776eab560612d5785f243e2e3f6cfe42468aacdce3609353366b5b +genai-prices==0.0.69 \ + --hash=sha256:f01ccb80e2ac9be9b7d978e4cc97a79023ddd1fc796f50eabd379c23687bb901 +google-api-core==2.31.0 \ + --hash=sha256:2975c76ecb910406ff6f71c62ed09848d0db421b27986413c448cb8766fc827e +google-auth==2.55.1 \ + --hash=sha256:ac65513eeeb2813444f44744b513a087303eeaa34e9296f0fb151503196635c5 +google-cloud-core==2.6.0 \ + --hash=sha256:2b0e1f09be56b927f3cb231052fea35805cb74f5594235a927eb519af1c78b17 +google-cloud-storage==3.12.0 \ + --hash=sha256:454905bf0f0ec2f5e5d33f0f87a5338dc2a0d63f6e76ce8f2d729918c6f5a20a google-crc32c==1.8.0 \ - --hash=sha256:aa358fd96bbc33eddfccd794e8bf77b7cd1b02b5b857518139dcc0b328392cf6 -google-genai==1.59.0 \ - --hash=sha256:388b25b31c0c00307a947690f21528a7b652e329feb3a14d49cbb16765012313 -grpcio==1.76.0 \ - --hash=sha256:3f935037cced82c09b0c64db9451608646cfb8bb1842dd17551853e94e3f39bc \ - --hash=sha256:47b8a87e383fd6f63f8ba53b2b5c911893f7cfdf5288eff3a41a0bfe4823f5e3 \ - --hash=sha256:70dfe9f5ab1144bca4f53bd7958fdcaf50b220ed21bd378666d9bd1ac97fd371 \ - --hash=sha256:ff138c9e386a0799d88afa389de77df44d9cd7523ad5ac09c0882058e581e1d4 -grpcio-status==1.76.0 \ - --hash=sha256:257105544721149a1fabeb0465dc622add2a7b6f1be07df4ea9ddcb741113cfa + --hash=sha256:3152fc17ef99180190f8e14a850fddc3ab8c3911b2d92d130e7219c79dfe7d7c +google-genai==2.10.0 \ + --hash=sha256:ab73acfb23dc24a89db2cf84fcef0e87926bd3b447d9941d0330c71eb9e2881d +google-resumable-media==2.10.0 \ + --hash=sha256:161f9c50277e40f8b161fd25f0a989ada00a9b6a52dab45eb4569df5d873d09d +googleapis-common-protos==1.75.0 \ + --hash=sha256:371cd0ca347d6b331c0f70fbbf7aa5cbbba6092d91d27c9bbfab7701a1b6612d +greenlet==3.5.3 \ + --hash=sha256:396eb576e8312ea7cc8c7691ea935f499fe440bf1b123936580ea672f7c11d6d \ + --hash=sha256:e7bf99427ac4174c765563c6c8d5886d672d830237be3f7efab210919efc7cdc +griffelib==2.1.0 \ + --hash=sha256:391729cdaa1665671ec3af0c05523fc969c9d7ca74848f8593676624efc1140d +grpc-google-iam-v1==0.14.4 \ + --hash=sha256:b53371ca925fae16265c989f0b74458924ec685724ffff1f7493dd94e2016c6a +grpcio==1.81.1 \ + --hash=sha256:915b1454a07b3dfa370e1339892841c7aeb51e3237bf46e09901b670008aafea \ + --hash=sha256:aff0adeaea1e6347d462b946956a63ec51f4140e22c7a042174b5084c2517da8 +grpcio-status==1.81.1 \ + --hash=sha256:5d2fda3cfa9fa79d295e49852a5244e033a06dab9c500e1e62a3aab84f376911 h11==0.16.0 \ - --hash=sha256:a485f5bfa77401603f78cff4db5bb4dbaadb947a3da8eae068cd05b6bb4aab66 -hf-xet==1.2.0 \ - --hash=sha256:a14cc5078bf43efc85ad180ec02372e5a84d134de095c0a9740f7e0407df7866 \ - --hash=sha256:acb8669cac4d9aa8e8ad31a92d99353fe2f0d4463b8aaa54f2b93a33e222149d + --hash=sha256:cdf040cf1a6fd5711975544a7931d24e41901fe6dceed7f7effda231389afff3 +hf-xet==1.5.1 \ + --hash=sha256:236938f6e7b607bba83e3c69f706a88c04ac98ae40185b7993d2252c27c31512 \ + --hash=sha256:e0b14eda87d8109be4ca52aa5daef4897ed046ff2e558f363be65008c048149e httpcore==1.0.9 \ - --hash=sha256:5af3f1b09e795d5548d5030be3d4191e65113cfdac21968c82bf0cddf15ec313 + --hash=sha256:fc0ea63671089523efc6fe94ec49d0b10c9660460cbca6172fc972c1c5f9c0ac +httpcore2==2.5.0 \ + --hash=sha256:1e8550e99da4297cb64d0cd5dd797c11a736a11f6fcbd8ffec350a9a85b39a27 httpx==0.28.1 \ - --hash=sha256:c75bc8d287ff8e92be7e4359732032ba1b93fa3f920ee1cb179ba09bb613dc7a + --hash=sha256:40b3fef8650d88ced417b05b236427596a6da9117b0f64ef5b0a5d548d20addb httpx-sse==0.4.3 \ - --hash=sha256:74d0e4713b33a61ca0083d00841f00f12d6b3dd311edb62ccc85809b607b9fb5 + --hash=sha256:e163972748a0d3dcc718803a47bfad40fa1fa5a554d192f60ba685163ab2162a +httpx2==2.5.0 \ + --hash=sha256:78cf66523b7294f6cd2f18e8a04f0b46b2fec6bdb294c464ba111ddd44953129 +huggingface-hub==1.22.0 \ + --hash=sha256:54ae3efe94beb5a7c9eea3e911ca578945f178e1f211644a0d4f92a1b1648dde +idna==3.18 \ + --hash=sha256:8a16d5d6db808e4640e6bad7349f52e09b10eba58914fb7d366902ec4fc226a8 +importlib-metadata==8.9.0 \ + --hash=sha256:fd4436daf4f815d256e174a83ed6096f372e62d7def6be0f4277b7f002854e12 +jaraco-classes==3.4.0 \ + --hash=sha256:a3a5e90471e6c5ed672a220829b2f7f3457f7af29965dc588b0cd65b1948b0bd +jaraco-context==6.1.2 \ + --hash=sha256:944b4359562203e6e229d6dbe340d0e4fdd393f21976398f257b7529f398c514 +jaraco-functools==4.5.0 \ + --hash=sha256:3ad7abbf04ef5173f037fc967e948fa1232c6bffbd8a99509ecfaf170cff7805 +jeepney==0.9.0 \ + --hash=sha256:963dd065a43c4ac8dfca2182773556a4551353a9b8b6e52906a5d0dd004cdb99 jinja2==3.1.6 \ - --hash=sha256:961c7281585491fb02ca0027b29e9ffc7a1bd7b52a5e03095f3a4e3afc42336e -jiter==0.12.0 \ - --hash=sha256:3ad7e5a7502b62d032b17c4b1bd71ad3049c810358913642abbf5254f3e5c455 \ - --hash=sha256:64f8bd9b9ced14c62d13e64d198e70f55712a775ac7d112849b4b16b3a884489 \ - --hash=sha256:9c42d9b61ab5d2c9203637a243b4187cc28b0101b28461d35006353d621da292 + --hash=sha256:500424e00f5a3b423f8657c8bb0bd846da38af583d9535629f9f93045865bd11 +jiter==0.16.0 \ + --hash=sha256:71e400841df4a05ff6d7eb71d0b3e57af1cb158b30506a6313a44b5cfb1e93c4 \ + --hash=sha256:f97799dd09d944510feca7b3f8f3c81066c6577f8b3469b59f12ebabcb5c8c3e joblib==1.5.3 \ - --hash=sha256:40d87a5e80b69104a3b8f1d761fdbc077fc7b97a23b08b9fdaddb7a3821b06d1 + --hash=sha256:5abb2344270cfda261f96ba20f11fb77c3fb1a36769063440ee2ae421b0cb524 +joserfc==1.7.2 \ + --hash=sha256:6fc54afc9b0473843838389bcabd7e8e0a15a1af6fc62532b49578b257bf9356 +jsonpath-ng==1.8.0 \ + --hash=sha256:bac982e2a9ab9bd878193dddb4b9bb138d0890a3a1234b052c6bb88dea9e99ee +jsonschema==4.26.0 \ + --hash=sha256:a0c500e520dfa787df50dad9daa55eae681fd98f6532bed2fea79583b7ba41ee jsonschema-specifications==2025.9.1 \ - --hash=sha256:065ec57323001f79634013c12250a476952e6ce834a17cfd5227343cec3c4aee -kubernetes==35.0.0 \ - --hash=sha256:2b6649b48b000f7b5b14eb2e6939f0709dddc0a7e4475ed98d4264e191c9f09f -markdown-it-py==4.0.0 \ - --hash=sha256:4ca21586bdc83c96a1318ffc854698e1fdcad60a3e8051d249f10ef210c945c0 + --hash=sha256:186d1ac186ac3a66c9303cbac3c8cda992d48c0c5b495b1ec450abe415b00c35 +keyring==25.7.0 \ + --hash=sha256:5c7289b93631ec7bea9b09fca9452e82569df303fc30d5b14152dc2b22e71290 +kubernetes==36.0.2 \ + --hash=sha256:48617d55c4fa6ded5f35aead8ccacc4cc448b2272feaeeb3f16b703d65704b28 +langdetect==1.0.9 \ + --hash=sha256:2d25e4a5b5d75d081415198fc424545f055a0dada61847d31bd3c3ebc74aa73c +litellm==1.84.0 \ + --hash=sha256:d2cc583957e9defa10754a37129b6ea0bd21218fe9fe0fb4284b7343ac564119 +logfire==4.37.0 \ + --hash=sha256:7ffb8911fc4f245ba1b34f6d4e44c56f9f9fb1f11964283fc7ac42b58dfd31fe +logfire-api==4.37.0 \ + --hash=sha256:6445a3b0ff8f82db431eb28b459267f37fd0485d484b8f1ec9fd682ed89ae72d +markdown-it-py==4.2.0 \ + --hash=sha256:aec8d53b1472c56d47ce05b7da68fd354ffb406b38d4245567d368f130a9e628 +markupsafe==3.0.3 \ + --hash=sha256:e0404961f3e45375f32cb6a8fec8821f4dbfabb62d6880ac0e7d316ba05bfafd \ + --hash=sha256:e6c6055c4623ff263b359600373e42d2027521c5f7f453b535a5a05ea37b8537 +mcp==1.28.1 \ + --hash=sha256:acb4f1d5be79d8a5db3a23b9371bfede6724a3ba3a20a66b0b52937d1eb49f04 mdurl==0.1.2 \ - --hash=sha256:fec2de44574adf66cd0d5ec329822fbf05ae011b6ba618c96b178d0eaaf7e249 + --hash=sha256:3b685cb48a3cde202b232cb167ea1d9c287724d240966f2f16d2f10732b78636 +more-itertools==11.1.0 \ + --hash=sha256:c77430ea1c1d303f2fd19520f7065710bc918d3a53f80e36a2c5c8a86e5570b3 mpmath==1.3.0 \ - --hash=sha256:58244de27af87d8fccdb6bc9a17808d4a3f00f5e97152b090272f241f22b1d00 + --hash=sha256:3912d9c5c6877b3a3198b133dfe5b8a7c64c87566f7b16f460c12dc30fa77405 +msal==1.37.0 \ + --hash=sha256:8f6194bc42c2e427fdac23c1d82044bf65a99061a40d2aba3d7448a6281ac713 +msal-extensions==1.3.1 \ + --hash=sha256:e0184f4918415efe8994ce27d27bc8132727c292bbf026f21b117d84112fb0af multidict==6.7.1 \ - --hash=sha256:0f590b4e611242eb68916690dd2d0855b05b788bbaeb6e684c88928f3dfcf9a3 \ - --hash=sha256:4edbf9266edceef23b80ab69bfe575349d6a11a396c36bb47f50f5d75cf4b725 + --hash=sha256:4213730650f4d37161dfda5ec18ad17c62c7f2d9d36a3a2599afe58bd8a13af1 \ + --hash=sha256:e145db09d0ab2761780a43d8380a7d8f6faffac11966d8148375ab7175a0f249 +multiprocess==0.70.16 \ + --hash=sha256:3bb6aec8fcea1821c05940ffc55c2d11aae22cd7c5a898284aed38f814b77ef8 +narwhals==2.23.0 \ + --hash=sha256:c1627216d19dd2e8ba31484f558b450424cb253bcb73950922a0cf133b57ea77 networkx==3.6.1 \ - --hash=sha256:c37e077bdb955f915337b0cbbe4f70303aca085abe728dbae9f400c5d7b3ae91 + --hash=sha256:56b687ad58bed743066f1b7d5e6f56a72d2f193c8eaf35064abaedda4fba3745 +nltk==3.9.4 \ + --hash=sha256:99935c670d486819ac6b9c78b2b36b811bdb8e0720414ee3f3663d8ff521bd62 numpy==2.3.5 \ - --hash=sha256:3c09803370223ede9f913428680f123a59bfe95bff6bca3625a42c46983cff1f \ - --hash=sha256:496287a2a8698bfb84129d2da985ae9d801ea986a3ab24ce36261dd9641db032 \ - --hash=sha256:9f44732d61a230ec7f3efb9363e6448325c97c2441ff761e74b7315c72ec3859 \ - --hash=sha256:e3ea2175951df3c16ead190bb3b719af8fcf25c19a5ccb15ac3a0c1a18705bdd + --hash=sha256:927205c8882f7a53543a8fc5b13fcb05771d6bfff35e06daf8030e57549cc7be \ + --hash=sha256:a08c6c26c26d7530d09ac93bc177593958c2e3ce4a9b5750c14a80329cca157c oauthlib==3.3.1 \ - --hash=sha256:df9219023be7c78d77401950592822d1bbc318225d3cd71d02271c549ef1f980 -packaging==26.0 \ - --hash=sha256:76081d1703deb79a44f8c44f23e391b98ab21ea54a2c21b0e8890779e0eaecb7 -pandas==2.3.3 \ - --hash=sha256:308c8ca6262e058136d91a7d4d2bd84dd02e65caf60340fefd20bcf26b97e819 \ - --hash=sha256:6ba245cff03afa84a0bc5e715a11caafab1dc51ca8fe4d827017706c4b62f238 \ - --hash=sha256:cd3d338d360612bed009570e303a59759fb450d163a9d1584c508fa9c22f568a \ - --hash=sha256:e3a18fae723b808514670a4a0172f9939cdbb095abd5eef1f34cf5ae1b99f424 -peft==0.18.1 \ - --hash=sha256:026817e68c93fcc0569360afa0ee4fb74b06b0a4268240f922bc2bc0a691bcc1 -prometheus-client==0.24.1 \ - --hash=sha256:fe601e041eac55bad8f46da2f3c54f2ab6cd8a8272d9595742c83980e95ed5e4 + --hash=sha256:c6fbab4f1a77a539f01175e2ea74b9552806bd0a849c70e744fda4ab801031c0 +openai==2.44.0 \ + --hash=sha256:87429e9a4d15b2918a03b040b6330fa03fc175bbf0bc6eaff7ae61c93cd42c53 +opentelemetry-api==1.42.1 \ + --hash=sha256:078a23234520ddf8654a48045b8f582c4a73c9bd5da2f0d23e05aba6e40a7c91 +opentelemetry-distro==0.63b1 \ + --hash=sha256:066041100bdd6011cac3fcceb340299c8c44d1fb92ddae28cbda3f8b04b44c33 +opentelemetry-exporter-otlp==1.42.1 \ + --hash=sha256:d544510f1aba821fbb437ed62467662a86ac64fd7041c5f04df289e5beb0da62 +opentelemetry-exporter-otlp-proto-common==1.42.1 \ + --hash=sha256:bedcaf3ce1963f3e146476262eec8761a4099d7613ff80e9b17c5a896c8f20b4 +opentelemetry-exporter-otlp-proto-grpc==1.42.1 \ + --hash=sha256:800a1e078501afbd671c4a4a7a4403daa3910371ae989dd920ec7e20317d7d82 +opentelemetry-exporter-otlp-proto-http==1.42.1 \ + --hash=sha256:7d2d9410b11150304211ae2d307f0ffc9f4c014f17682ec6485866114984f8a6 +opentelemetry-instrumentation==0.63b1 \ + --hash=sha256:e0153a31f4320b0acb85ec0f3680dd4bbb3242f95639303b272f265ca94739a6 +opentelemetry-instrumentation-httpx==0.63b1 \ + --hash=sha256:5d4b21af3a2302fc193c5eacb829268abeca1d896d99f8c6e8e4d1c15e8ae18d +opentelemetry-proto==1.42.1 \ + --hash=sha256:05f968754fc1ad1cad028bea4b1cd775a95b53d0b414389179b61230477957fb +opentelemetry-sdk==1.42.1 \ + --hash=sha256:1c622eb9739ac3b6fd60cc075c86b64643eb2cde1ba545f78ca58cbf9cc279dd +opentelemetry-semantic-conventions==0.63b1 \ + --hash=sha256:6172f78cc920b10eabb479c615fac1240b011552a482c6e22fef8d2620f754f0 +opentelemetry-util-http==0.63b1 \ + --hash=sha256:43aa51e38a5807f03fb8ee2fcf2f978b0490dc25b0efd994242696569e014583 +oracledb==4.0.1 \ + --hash=sha256:669cbb2f39710aaf40295a1e842ac3e7bf31ff07139100bc466e592a96b1784f \ + --hash=sha256:993132279f00971f83a8baee090f890f1e26e3f8e9d99b683948371fb7696b7a +packaging==26.2 \ + --hash=sha256:7c418e01ce14b2bfd2cbf95e6d0a2b1278b711cd84527100f02b0966f08cc4a5 +pandas==3.0.3 \ + --hash=sha256:4292e3fdd886ca994ed67f1af0fcdf1d62d9f1160de1955c44a00266562dab3a \ + --hash=sha256:8e459d7d06df1364b9b6d42d433cf5cb4687a890be579c6864491ff01cce6340 +peft==0.19.1 \ + --hash=sha256:f535ba967638601280a0d00480242ff013e14b5f9d8596a2c3ffa353ae5f159d +platformdirs==4.10.0 \ + --hash=sha256:54179fa31b3140c3727a0e602144c413b8cd1e0f85c09e82c4e36000a64f5a8f +polyleven==0.11.0 \ + --hash=sha256:1ed45d0a8a4696bb9fd3ea4cab8897c02d6ea03701843517986cdaa4f20276cc \ + --hash=sha256:d5176a63d7a93ecd27381fbc17fae9dcd015e848ae75f0b5429cef8667328548 +prometheus-client==0.25.0 \ + --hash=sha256:34577aeee817238adf900bebb60c63697fa70d15d8f9e1c6984729cce45fb10f prompt-toolkit==3.0.52 \ - --hash=sha256:c329e921742d68b12ff8543ca7004be7b4ccd8a69317bea8d9a6e524dd48cdbe -propcache==0.4.1 \ - --hash=sha256:10f7bf66817595de6682fd428cf2aa7892c0b0b45475585e8029655ab50c0510 \ - --hash=sha256:3ccf1a18d315e7e234aee592a5dddd10951fa41f8a8658021dbe7ac413cca797 \ - --hash=sha256:3f5189a8cf5fd36f414b4d9bf244e61a1eca49ac57942c7e930250df94b2340a \ - --hash=sha256:42ecf4d140bbc503d90097af47bfc9c7e2a88faaad70694ea2bf50ad3da35c41 -psycopg2-binary==2.9.11 \ - --hash=sha256:0badf162b98436fdb9aa273e2901db462a6ffa081904e9d722429b75e01532d9 \ - --hash=sha256:623cff634940e5d248125a1b8d74a19625db0c11c6aecd8db007940ccb409436 \ - --hash=sha256:bf7588449bc9604e13c7fc2a374c359a82784a265776b2975fd013588eba032e -pyarrow==23.0.1 \ - --hash=sha256:c00b052ccfb5b904e77f0ca0472723936903d8dc7d1964504a9489c7212a47fc \ - --hash=sha256:c1fb462a14714f87a6c2d56d0ce938769e38206130231af669722f13eda5b612 \ - --hash=sha256:c4302f07a0e9d212d42b5b89be8745b5a22ae970209189271387d91e45b6ec4e \ - --hash=sha256:fb062054b2ba4c84d3b607f64c8e7ae65fced4f20016602773da4b7481d162a9 + --hash=sha256:c2497d64eecaddbe2a7f3a7a69ae1d5e5a5e48caf6377662395b162224a915fc +propcache==0.5.2 \ + --hash=sha256:54bc48bc3831e3961366b03767df820e5e2b94a4713cbf1df90227964217e66d \ + --hash=sha256:b2159ad520c71e28c53e8a62ec22129d09367655a79316af1540cced34b4de0f +proto-plus==1.28.0 \ + --hash=sha256:c83edf58f7288c50bd6c830fb50ff70841ca622cd6611b918451ce2b7336f295 +protobuf==6.33.6 \ + --hash=sha256:2689490d83100ac29114a0d76af57130fa08937abb068815057caf7b55702cf3 \ + --hash=sha256:ad3345d512d57367d0a9753f679f8056d09253783f215c136e19f6b0242a0997 +psutil==7.2.2 \ + --hash=sha256:b9bae30c9445a30ba7201802dd1de81b93e3ad13db46efdfc73482bf181ef00c \ + --hash=sha256:f8aebc9b1f47dd55c4760b9353159595703fef5a9b9ebe9aa8b23bc222054f7c +psycopg2-binary==2.9.12 \ + --hash=sha256:1c7f7c47e0d20345f05875e81f1dd829601d6d4bc4f84d56fdf62892707b1fde \ + --hash=sha256:ecd0facc7874728ca28babc3d9c96c73510492a4c524e414ce27b32846d9bcb5 +py-key-value-aio==0.4.5 \ + --hash=sha256:9a7d2708e89c3262fca6fe38d01239d481846aa30121a0520e449994e7e9a910 +pyaml==26.7.0 \ + --hash=sha256:667a4b440272f1376fae57023a213a583a707d29bc4127d354ecc3668adefd7a +pyarrow==24.0.0 \ + --hash=sha256:07fa0b8ce4ccf95d56446ec653a9cae31532dffa8a8841b6b1492ba2a46ee7cb \ + --hash=sha256:be6bbfda99fa5c67655c7cd99044bbde1db8319d2b9a2a54bff5dda2f4010dca +pyasn1==0.6.3 \ + --hash=sha256:6262dfa40ecb9b64fe0a62f791b6b733165ec158cf9f869d568fd8178044013d pyasn1-modules==0.4.2 \ - --hash=sha256:cda22a851735d664e92c8354a30405d88c5a1aa7d6313ba6c583bc3034654937 + --hash=sha256:6b1010138365a6fc22f4efd32edd504ec3f538e1ac3d1947ba9f7821ef15ef6c pycparser==3.0 \ - --hash=sha256:86072d0cf4bf7e125171d79036c2126a2fa377687520e834987c2de4b4e5a9e9 -pydantic==2.12.5 \ - --hash=sha256:ba78cfc9d85e40047d67d32828da04ddbe9a27bd0718983938629bfca0d3cc6c -pydantic-core==2.41.5 \ - --hash=sha256:280238d34598c8e0eac77c2d96456cb5657f4afc3235d6afa15859a143cc3885 \ - --hash=sha256:2c1462d1bdf9b8b13c8afa43856d7163c5a2567e9f05fcd5d26f54f23f35edf0 \ - --hash=sha256:3713d923ca3dd74e51ad6ce5be8e2bb9b8398cbc3cdbe7bd959282e9e9694fff \ - --hash=sha256:41f74ba1ea18462d7cc27155581a9b23165adc7b009c6d467542274d63db163c + --hash=sha256:c2e6198bf8dc97ba19b5f42d9d0e08d5842ffb775e0e208b150080dcf423396e +pydantic==2.13.4 \ + --hash=sha256:1a3d4d45204182df30dbd68890bdf1becec13f689075099866dd4bdf06b04371 +pydantic-ai==2.5.0 \ + --hash=sha256:e2278856e6f3d653601e39ce626a90c99faa139b03c742532da58d64d9f8cab0 +pydantic-ai-slim==2.5.0 \ + --hash=sha256:8436abb3db39526cbc903de3d78c150a28fcc55463db3dfb5a82ee1b5cb27c50 +pydantic-core==2.46.4 \ + --hash=sha256:38235509e8f37596cc39453972c1a9b200287d92a98eb2a7c92d9708a98eec49 \ + --hash=sha256:bbc9884932978a8f52c59aac4a0a273c8e514d303fd040c38b0436b37e57ed33 +pydantic-evals==2.5.0 \ + --hash=sha256:b7d38de7f719dd71f5b91302e7555198d0e19c5d62a7c19908ad5aadfb5e275a +pydantic-graph==2.5.0 \ + --hash=sha256:61ad8c88d52760b864e186e4342da3d5de5e2d8a232f66ac562c69b108889a62 +pydantic-settings==2.14.2 \ + --hash=sha256:0398c90f6e52de6fc403d1aa3dfd53c7be8e011759e7fcd7b317fffb0649f726 +pygments==2.20.0 \ + --hash=sha256:14c06510dc5a2dbf9d83a85463d229907d0456e167a3752d361e6cd1cbfd1152 +pyjwt==2.13.0 \ + --hash=sha256:2d0ec124d9f710af8e14c3b2576bcef5a977e607ef38e97e9fbbc8efe47cfbf6 +pyopenssl==26.3.0 \ + --hash=sha256:dec587615154fbdfe18a790c3865b0c045cdcb7c1ec5478d4858635dd5f5bdab +pypdf==6.14.2 \ + --hash=sha256:ae2086b5b853f5343b1659f4561069c8fedc4b93d9212daffdd0983f47bed48a +pyperclip==1.11.0 \ + --hash=sha256:0d85f6843d6eb6ec5cc49f85f63d3cba92cc46ef87c27667205e03decdd9d285 python-dateutil==2.9.0.post0 \ - --hash=sha256:c112f3de33b4ef01360132ef116d72df91cdf628f136b70f1fc9a9eb19137cb9 + --hash=sha256:48d0381d3876a6f959d2731ffddb508ea44e2f55212e48c3eea2c9b187c15712 +python-dotenv==1.2.2 \ + --hash=sha256:b380203de11ab7a5b422fa6f9f377fe1ae1e1daa8559474a0518b6ca10f7aec5 +python-multipart==0.0.32 \ + --hash=sha256:61e4a190f7cd947a7aebc96a97976e628210851d66f7a25a6ddc3dab2305e6b4 +pytz==2026.2 \ + --hash=sha256:23d753f564045149edade757f9302e7a88d7d99012e9b7b1c52ef603ee68beae pyyaml==6.0.3 \ - --hash=sha256:84a2acfe1e8dfcf8be95fa61611ea7637f8bfcff49761a6a8c396aaa0b6d94a9 \ - --hash=sha256:bcaf1b152ce8cd6ec4ff56f8ca929f176eb01e6aa472fe10b3ea31f19e15fb39 \ - --hash=sha256:c22e4a0d2bb69fddc73b3b52f1540533df1f206a08f52ea8cae49337615b55d2 \ - --hash=sha256:c99b924c5311933fa398cc53c617f99705cf2d96226d023f75e95e15e753f81f + --hash=sha256:726ba29089425e37e0a54208804a621cbeed0cba6c1156d817226bc6cdc26d4a \ + --hash=sha256:d76fd28238122285a5a5790b3fba7ccfce6006e19eb2c8fbd6700d723c3f674b referencing==0.37.0 \ - --hash=sha256:bd019ff74869f84a893b7e50b84ce3d0db1e465ceb3a336403011c6467ffacb0 + --hash=sha256:b290b587a835bb688b817f9b73927f6fc273bbad723690754c815912da2bc845 +regex==2026.6.28 \ + --hash=sha256:0a446b8df5e25136bc4593e7fda87a6e9fd90c39f6590b17f956a4a33f06befd \ + --hash=sha256:61e0265249e21c085a43eae5697f8af4f5de2e2bb618d84a2a26cb74b835291d +requests==2.34.2 \ + --hash=sha256:ea6708de2da329a533299949db29fca0e3f7e3135068ad5171a28d07a9687631 requests-oauthlib==2.0.0 \ - --hash=sha256:4fd6526c6de7a0bd036e84563b7a1523d92ba1f62e32cad65ccef9b2523bbc33 -rpds-py==0.30.0 \ - --hash=sha256:16a18b2b2566d88ccdabe156c2fd0b6bcc4fb172d084ec7e4c1ab502cb8a5cfd \ - --hash=sha256:613bc173bc12f35e40c3d1c1e6252555eaa48ea9425ee0b01fb151f3ca8a2a05 \ - --hash=sha256:6c94c5f1c2501e50c22b7c993b083aeef4d342974d3058763296fb4646d8a059 \ - --hash=sha256:75a565fc839958562ab5ad648c3a4bd0c46874a5556acb48da423f91c47c355b -safetensors==0.7.0 \ - --hash=sha256:18abcf37ffae5f85a81ca46c440fdc5f38ae0938ff0f4a4de14e37386ed248e7 \ - --hash=sha256:6833f019f20c8f0bb790ae3f0fd088f50c9fe4e051106dc3e59df5a953f68532 \ - --hash=sha256:6aea22e3ce1ed41d56c0e50f1cb504fe47a50ec7a1d50135d76fd233bbe4b1e3 \ - --hash=sha256:bc9d119ad82379f387c1264de35e6d489b7196c431b23e92b2b0959eae8494c7 -scikit-learn==1.8.0 \ - --hash=sha256:4c73965fdde273763f87334dfb0d773cb9196e2eb9dd21a0aabd86cf4da2adb3 \ - --hash=sha256:5641af1f1bcede6f6d894f50418b2d820f3a3b82b3a5cb702621e6a386eef935 \ - --hash=sha256:5d27f41e0a981a58fcc00f09ef9c00fd68a2e13c218768d0ed69c1a247c8855f \ - --hash=sha256:7147bcc3428006a9b5fc0f0934b70c555ddd9f8ebc4b3ee4aaebb44c5e87a3dd -scipy==1.17.0 \ - --hash=sha256:0e35bf4bcd96fb22c9007cb651e3fa7a696bf90986fd220607505f5c2b7f17e7 \ - --hash=sha256:92b4828228173816adc054c97a539c41f396558fbab67dcaae1e4195c6d6253f \ - --hash=sha256:a1b3d25c892207a7626f0634fe768bd71b5f09cbb393be07d82fc44cced109ac \ - --hash=sha256:f1c7b6ff095ed94c422bce52aa0ca8c8aea18922877853bbacaf8b7947e02510 -setuptools==80.9.0 \ - --hash=sha256:3a3c26f9000ab213d87be4efa0f1926fb0975237ae9e8e7cc68c9d7fcba6c294 + --hash=sha256:a97b432a279e3353fc512189927bfd2a2ff168b05d66a7600966e39b24efdcbe +rich==15.0.0 \ + --hash=sha256:b78831156a60d0f5cb5d008f7f9285c48ffdbe315164c9cd396ca3b65fe8130a +rpds-py==2026.6.3 \ + --hash=sha256:316b43e27975b1cc162fda822f299167ee89576ef4857469d6d64ead73704327 \ + --hash=sha256:bf9210733450bc06ffa42008cae33734ebe4e69505707feedfb0518c6d83fa70 +safetensors==0.8.0 \ + --hash=sha256:ae8e482791a7348f972072ac995368904d8fe58ee62c7e410ec2b6b03cc76cab \ + --hash=sha256:b903354cbf8d3db3818b1942f9d39b0e713b5a93bd3790502412d2b01ebc217e +scikit-learn==1.9.0 \ + --hash=sha256:6326a29ac3eeceb5724306cad2cfd41afac07af8ca83a8ac2a07e4063f3c71e2 \ + --hash=sha256:d5a5dbfa05f48494957544feb98cb091171c403a6a862e4bcee67f128750d4f1 +scipy==1.18.0 \ + --hash=sha256:8f2ad17ab42ed3cf1d83574ef39b5a72cd534d6a070cb9d0f634748acf0a7949 \ + --hash=sha256:db4e1e9b4ca944c34c49136e6553fe0607cdfe1ee2ada4d36037bd3c6545dcc0 +secretstorage==3.5.0 \ + --hash=sha256:666f27220ad99d4ba25669ff3487db2ce0bff6a53c4ddf14a38c38cf5a6e1a4a +semver==3.0.4 \ + --hash=sha256:436e22470852547504898b4415fff6b3918986eac81675986e9ee0451d1612fe +sentence-transformers==5.2.0 \ + --hash=sha256:f7c0e190f00f22031351b9a1a6c166d95f79a7374ddff5bfb520303ee074f37a +sentry-sdk==2.64.0 \ + --hash=sha256:c8ab786820bd8a817d3041d6f3e16ea2604a33e25b662d0c695918351445ddfd +setuptools==81.0.0 \ + --hash=sha256:f6e4d2e589c5fa14b5bbda3d170eac0db8852c7fe7a357f708d172726353778e +shellingham==1.5.4 \ + --hash=sha256:c62d421a942ec6b2400acb0091f31f7bd860d133dfcc8e7c5a252afedba20f8f six==1.17.0 \ - --hash=sha256:33f558442b372864d53b1813933f5d624876f418521b1b89624ea6e3d79f0e97 + --hash=sha256:6388b9db719664e1ccea84c166718ff3d2bbf56490cbf14fb7478b3b782eb0e5 sniffio==1.3.1 \ - --hash=sha256:79fc97358f9f993658f5285996c92b070d9b2b9cdd789daefd3e0607d518097b -sqlalchemy==2.0.45 \ - --hash=sha256:52a0fb297270ecc4066303762220717240f5e427298345e19835d21319fc9522 \ - --hash=sha256:69ada3936fac5c0c15e765e71fae9b1177c9c957eb7fbd5210f63d7c05aa26c3 \ - --hash=sha256:6ea7264891e42cfdb069a27eefa2438214a54051d8b5b1b00209af9f944c3480 \ - --hash=sha256:7d691e498146a57a54f347385729b57e98b2e548d6fd6e25fdcbdf6e48a08ae4 + --hash=sha256:a9433d031973b1b14953cf89c651d1034e4a242d527a9b9302db215e722c5b9c +sqlalchemy==2.0.51 \ + --hash=sha256:711c004bd0b9da0a37c28b5e0c480fbf9efbad4d30daf21c974724acf7e1a4bf \ + --hash=sha256:f6d363e5e680206a80583b051c85c9cf150cc2ab5f3fa828201396df8cccabf8 +sse-starlette==3.4.5 \ + --hash=sha256:c1f701f19f43c181be2d62c6164e90b7e8e4d5d67956fface4c794ac7a784962 +starlette==1.3.1 \ + --hash=sha256:19acd5bfb037734bb027cb753f36379bca5f72da9b79fa7fb3ef4639b1999f6b sympy==1.14.0 \ - --hash=sha256:92de12bc45a8930ecab22227dea3f4192e15d9f4555c9a9d52d312865748afbd + --hash=sha256:6cf6a1e379dbba75ca560e2cbd4394144f9e7e7335ee1be872c224f004eeb172 +tenacity==9.1.4 \ + --hash=sha256:eb86e53b6b467dfbbedc4b64399eb73def7f0ca9b7feaf28bb1785169c644971 termcolor==3.3.0 \ - --hash=sha256:2ed14ed07b1ab932881a26035e8f6a9e6251052289ecf8325e535bc17a03240d + --hash=sha256:ae64ee55bd826bcc7c0c4c1f07f6626c8c785a19492f981ac3d5f92bf85e652a threadpoolctl==3.6.0 \ - --hash=sha256:fc79267be059d5a0aaacf924656a1523599e7fc844c44608db5fe1cb2f152c4f -tiktoken==0.12.0 \ - --hash=sha256:019dfefcb4f2899eb8c7fd4d170c3ed335113579de129f55526fcdc3b43ef5ba \ - --hash=sha256:9d341a1e06d325151f05991a0a1616c12918132fda42b7601d25c9d02726e5b3 \ - --hash=sha256:aee67dcabd42538b82abaf27a1d5b74da0eb2da37fa9c9c117ca99d9146e2937 + --hash=sha256:583c55d12dfac4ba91b2d41e1a334cba51d2c5fbab1e4cd4b918cf88dbff6184 +tiktoken==0.13.0 \ + --hash=sha256:a6c5edba316f3f708fddb42f398f30ac4a0495c7ba625992bded135509eb712f \ + --hash=sha256:bb42f1a91319c8f4b48e745a5f3d3f68ff00b35ee652e77b995398cf1485011e tokenizers==0.22.2 \ - --hash=sha256:109c12a85bc794db2d335e9845198fd4dfbdd25a5e47d944ada5ee28d720a01c \ - --hash=sha256:914385483cfc1f8a38e8141e9370ca315484464afda41eb3959cd4d36ad2217b \ - --hash=sha256:c6123f7e43990992323d4cd8ee0d463383a7dffe3c03e1f4483b446034910faf \ - --hash=sha256:c883273341b96903ddeda79cb247a6f3ea316bd668ee2dd93d86e6fb57fc35b3 -torch==2.9.1 \ - --hash=sha256:28171ed367139717fe7b8d6918c86d0fe328a7faa5704f5951283ae3b01796a1 \ - --hash=sha256:3ebd43c74b5c0833e2d6c842cb5416bacb928184e362c319eb79223d06bb2fa1 \ - --hash=sha256:9920139df4000ea99e1d71742d4bce1d7b807a5f45cf1a7cbff02c8dd8295bdb \ - --hash=sha256:9bd4844a0cf3f199351830697973a168ad2fd3a99e77b150ca4a1582067dc633 \ - --hash=sha256:ccb4a5b3c15819df80d96d2474b053306a2a4eba0301337c4aa56a58cbe45e10 \ - --hash=sha256:e42ab849b64444059f5eda352d61c9c3a078f30797e48e2972857182c9a00cf8 -tqdm==4.67.3 \ - --hash=sha256:d798b33fcc041b9a42c57f462b9c068a5a15c2dbcef1c87695d80c7074770a4d -transformers==4.57.6 \ - --hash=sha256:7c35d073118fad72b1745bd3dad3149d9bf2cacca3b16a7ed8f47f1a0bec119d -tree-sitter==0.25.2 \ - --hash=sha256:05bc490c99a846e0e91d9dd0c5067de48b35b46d4c3f18fc2cc9ac08a4ec71fe \ - --hash=sha256:3aa0cf6b0964495ada302c3eb966bf6f41a01279d8e31c019e4b0129a93d5a55 \ - --hash=sha256:aadac5c0356e824916ca95f8f794a6ef88105748eed6e8fdb7fb4690024d4336 -triton==3.5.1 \ - --hash=sha256:7b1a1b9ab53eafe7a65ae25861ac7df5541ea706b3baebe2306580127825e222 \ - --hash=sha256:f45cd8a990cde562e64b6ef00969dc3751a49e90651216e7f7b44ba997c9e19d \ - --hash=sha256:fce4c06d8e47ccd706790271cc3f2cea42c7e709cfb68e6abe760d2a56baeeb4 -typing-extensions==4.15.0 \ - --hash=sha256:00877ead43795d4b767026270fa129816363c9a95b6febe68f5ac41d5096114b + --hash=sha256:19a5651dc0f6d0dbcb98030c43d7da01d9e9069159fde96100105b9ae9ee1762 \ + --hash=sha256:48eb9560e0e190853b056a9b31055989b36d1ca480f26d67873dd79e9431fbd8 +torch==2.11.0 \ + --hash=sha256:cae92e5cb6b1441eb6e1def8dbaef7f1d719dd551d6e956fdfee0790e0975ffd \ + --hash=sha256:e2fdbbbd77a87f448677fbfc7ea1c94d987e64b0d16e8850d50b682e836b2aeb +tornado==6.5.7 \ + --hash=sha256:2f9f0a322cdac996ed47f7489a1f993d90304f237f13946318ea731b383831e2 \ + --hash=sha256:d30d8148346d500c60fafe09195ac2219e0b032498572188148fe1958e94e52f +tqdm==4.68.3 \ + --hash=sha256:c38bf26fceea384cfefee552b1e0e947fcee7fdba0905013330f7a2d945c34b2 +transformers==5.13.0 \ + --hash=sha256:2e64acd606f084cd00e166054f8dbe3b540040d7aa9f3aa31d24a75126e0fb7e +tree-sitter==0.26.0 \ + --hash=sha256:2945b1c9ef8e8df7e9c5adad23e6bd3e4cf3573ce28a0d7bf5d13d5653fe5410 \ + --hash=sha256:3de29a062d2400af59e3e57edfb8674844ab8f83ac7bbd7d2230369b06453b9e +triton==3.6.0 \ + --hash=sha256:1fd543ee4b888f749e186f87fb4c669894fd2f74849b820ffee3014a54e99d05 \ + --hash=sha256:a64f6de7b2d45d0426474a980776161e626ccdcbb35e8b540686411fe204e0c9 +trl==1.7.1 \ + --hash=sha256:1436b3bf1ae1d77aaf7682eda71ff3a9e14b654a8f3d68dfe8f27e7ade2f9457 +truststore==0.10.4 \ + --hash=sha256:873c111fcf91e02855554f33a85495fd731951d9ee2a19ed3869082d389b2c81 +typer==0.26.8 \ + --hash=sha256:e11064797c5ea712f3b5f3b762d3a612db240d9ce99da8d06d7ec2dbe624c07d +typing-extensions==4.16.0 \ + --hash=sha256:78810d1eaf917205639551515696b3d972fa471eda49bc837bc44acfb648345e typing-inspection==0.4.2 \ - --hash=sha256:4baec0c9a4ad5cc8a85c71c387e98ff9ecc7b85b6e538e204343940090be3b63 + --hash=sha256:85a10e16fc7005753b83d70ef286b14e193c23152775de9df8a384a397da44f0 +urllib3==2.7.0 \ + --hash=sha256:8c0d942cee38135eb54435268fa34bceed0d0a7dff31d8aaee06c06ef8637942 +uv-build==0.11.8 \ + --hash=sha256:11a1c0c3d861c4c827b8e2ac532ecf58667d0af5badf0fb1973f5fcc5f435325 \ + --hash=sha256:c1ebf95903bf3401582a417c20d98c4b55bc3a4e251a39fef8f2df6f05006ee4 +uvicorn==0.50.0 \ + --hash=sha256:a4918e0239bcd78769e2d2ee2563dd9e49d1e537fe70567079c4f12c8a38f424 +wcwidth==0.8.2 \ + --hash=sha256:ebd629eb2ba09f9535a63cbbcd47e675d48876f52909675dc91db331cb7ff7a8 websocket-client==1.9.0 \ - --hash=sha256:0cb04d0516ad9d4a5941144e68344813f1da89a2270b0634b4b71f1e892f4caf -websockets==15.0.1 \ - --hash=sha256:1ad83cda272b5a5d77faa3c4b43c6cbe6cfa3ec7a386899fefd14df455d8a51c \ - --hash=sha256:734b81ff7d1e22130a20f58af82a69e413025de9804e967cab503fe17332b14c \ - --hash=sha256:933ac176329fedf18d4207defff775829b9de301075bc297c169081ece1e1d9d \ - --hash=sha256:b022c4ed3a5a96300b56e9f0b18a302d266fac0a7819d906cca9e702f93976bf -wrapt==1.17.3 \ - --hash=sha256:0953273f64ed6dc39821a1d06409958d5d5bf53a699f3931cb1a81c656fdd720 \ - --hash=sha256:15c6bffa4386f4927f1e1c0b4e2e4604c10d709199ecbd3f69ae1e659f2d96d8 \ - --hash=sha256:1649eb282f55f5d90154086a34fef4922aa31b28233e03ce396b7d8a778a5904 -xxhash==3.6.0 \ - --hash=sha256:122ea61c85a8725231030b26650ae35b1ae709f154e1e8f5274b2cd469638a14 \ - --hash=sha256:a426db4666ab784b369beab268f41bd7b2505390b1a6f7ae0bbc295a103c4c83 \ - --hash=sha256:bb363fc4152e194b2f68829da7d783d9b5eee9577c33f6007c78d25517a229ca \ - --hash=sha256:edac8303f5c2d0bec5632a6e6cb9c56f3cd548e94960c5b9468c654d5a73c653 -yarl==1.22.0 \ - --hash=sha256:8e78442a1a40257173cbd3b9ec78a1ded7ab02a1fcb23f3d42686bd5afb184cc \ - --hash=sha256:b59c74a17b24908333ce8e0a348fafe85a1bdb1d524cc74d9c25161674dd358a \ - --hash=sha256:cee8af2825e29b4b31cce0c7272c29b66717ab164e3e2a5dc8dbe173c2901db2 \ - --hash=sha256:eb5d90c48762dd433d86eb6e3c6b4965fc3dff440c472e89047a628dd29271ac -zipp==3.23.0 \ - --hash=sha256:2f6742e089020240e014478d428fd79059270c56a2f7947d37c6f1d2ae639174 + --hash=sha256:5edaafdaa419fd1e24bf182d0ac731c2ddc8d3ab7c3fe1f21237a62ea6cb3bc7 +websockets==16.0 \ + --hash=sha256:c9f7d2dcf0a5eeadce610e5fe578cb7c57c0d6e743205e167ef607f4fa055641 \ + --hash=sha256:f62ee020be41a6a2c879f7fb9e6529d70f307e8bd1d5fb430a03e76db50fede4 +wrapt==2.2.2 \ + --hash=sha256:f1b572d87d9d2b325525a5ea4467361345124f3b6aecdb123fe30b33eed0bbfe \ + --hash=sha256:fe22871052b38da0f29509f09fd136767bdeae3cf9e37261b977af139dbd9be2 +xxhash==3.8.0 \ + --hash=sha256:b9e3d346e546f0632b38a7b7a98f70672754e4b9a8185a28cd63f43317e02178 \ + --hash=sha256:f696467d9ba60bc9443604da09c60fecefee3e582641628c2d1c0ed217675f91 +yarl==1.24.2 \ + --hash=sha256:0c25026803293aa01955606c53270f4306b4196169570198a3a29b3a054f3d86 \ + --hash=sha256:c72aabbf544bceb3fa895376a188a90b7152efd47045b589fd358505ad8a85d4 +zipp==4.1.0 \ + --hash=sha256:f04782919048b93bac92fa1d20b2dd8a062b30ebee718e834cf663874884c645 diff --git a/.konflux/requirements.hermetic.txt b/.konflux/requirements.hermetic.txt index d5aba32bb..55861959f 100644 --- a/.konflux/requirements.hermetic.txt +++ b/.konflux/requirements.hermetic.txt @@ -1,2 +1,2 @@ -uv==0.11.15 +uv==0.11.28 pip==26.1 diff --git a/.konflux/requirements.overrides.txt b/.konflux/requirements.overrides.txt index cacccf2e1..df6581cbc 100644 --- a/.konflux/requirements.overrides.txt +++ b/.konflux/requirements.overrides.txt @@ -1,22 +1,2 @@ # override these package to the version available on RHOAI wheels index: # https://console.redhat.com/api/pypi/public-rhai/rhoai/3.3/cpu-ubi9/simple -transformers==4.57.6 -tokenizers==0.22.2 -scipy==1.17.0 -# aiohttp==3.13.3 -aiosqlite==0.22.1 -cryptography==46.0.7 -anyio==4.12.1 -# datasets==4.5.0 -pandas==2.3.3 -pyarrow==23.0.1 -faiss-cpu==1.12.0 -sqlalchemy==2.0.45 -setuptools==80.9 -jiter==0.12 -google-genai==1.59.0 -torch==2.9.1 -hf-xet==1.2.0 -yarl==1.22.0 -grpcio==1.76.0 -grpcio-status==1.76.0 diff --git a/.konflux/rpms.lock.yaml b/.konflux/rpms.lock.yaml index 2ca7ed624..d4e4c3df1 100644 --- a/.konflux/rpms.lock.yaml +++ b/.konflux/rpms.lock.yaml @@ -5,84 +5,70 @@ arches: - arch: aarch64 packages: - url: https://cdn.redhat.com/content/eus/rhel9/9.6/aarch64/appstream/os/Packages/c/cargo-1.84.1-1.el9.aarch64.rpm - repoid: rhel-9-for-aarch64-appstream-eus-rpms + repoid: rhel-9-for-aarch64-appstream-eus-rpms__9_DOT_6 size: 7744425 checksum: sha256:5db626d49748f31fb02916c24fa1a7e5759ce7b905ac3e781d42079fba8fa1c4 name: cargo evr: 1.84.1-1.el9 sourcerpm: rust-1.84.1-1.el9.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/aarch64/appstream/os/Packages/c/cmake-3.26.5-2.el9.aarch64.rpm - repoid: rhel-9-for-aarch64-appstream-eus-rpms + repoid: rhel-9-for-aarch64-appstream-eus-rpms__9_DOT_6 size: 7432689 checksum: sha256:6ac0e5e9a4fd761f8688678ac83580c7eebeacf6c241bd8089d72c4a477b22c3 name: cmake evr: 3.26.5-2.el9 sourcerpm: cmake-3.26.5-2.el9.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/aarch64/appstream/os/Packages/c/cmake-data-3.26.5-2.el9.noarch.rpm - repoid: rhel-9-for-aarch64-appstream-eus-rpms + repoid: rhel-9-for-aarch64-appstream-eus-rpms__9_DOT_6 size: 2488227 checksum: sha256:84da65a7b8921f031d15903d91c5967022620f9e96b7493c8ab8024014755ee7 name: cmake-data evr: 3.26.5-2.el9 sourcerpm: cmake-3.26.5-2.el9.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/aarch64/appstream/os/Packages/c/cmake-rpm-macros-3.26.5-2.el9.noarch.rpm - repoid: rhel-9-for-aarch64-appstream-eus-rpms + repoid: rhel-9-for-aarch64-appstream-eus-rpms__9_DOT_6 size: 12250 checksum: sha256:1c74969c8a4f21851f5b89f25ac55c689b75bed1318d0435fc3a14a49c39d0e3 name: cmake-rpm-macros evr: 3.26.5-2.el9 sourcerpm: cmake-3.26.5-2.el9.src.rpm - - url: https://cdn.redhat.com/content/eus/rhel9/9.6/aarch64/appstream/os/Packages/g/gcc-c++-11.5.0-5.el9_5.aarch64.rpm - repoid: rhel-9-for-aarch64-appstream-eus-rpms - size: 12999288 - checksum: sha256:a9ff0bd2a2b3483e07dcf87f8137a6358f36f5300c934b90500f119f884e3463 - name: gcc-c++ - evr: 11.5.0-5.el9_5 - sourcerpm: gcc-11.5.0-5.el9_5.src.rpm - - url: https://cdn.redhat.com/content/eus/rhel9/9.6/aarch64/appstream/os/Packages/l/libstdc++-devel-11.5.0-5.el9_5.aarch64.rpm - repoid: rhel-9-for-aarch64-appstream-eus-rpms - size: 2526795 - checksum: sha256:83a2006137335a9b17a05a02a54481abcdfd295b280b924c51caaacd7bf07ad6 - name: libstdc++-devel - evr: 11.5.0-5.el9_5 - sourcerpm: gcc-11.5.0-5.el9_5.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/aarch64/appstream/os/Packages/l/libuv-1.42.0-2.el9_4.aarch64.rpm - repoid: rhel-9-for-aarch64-appstream-eus-rpms + repoid: rhel-9-for-aarch64-appstream-eus-rpms__9_DOT_6 size: 150129 checksum: sha256:4dc8a40da74e0f9823356460ee11f183c70f382953700fffef0c448198a677cc name: libuv evr: 1:1.42.0-2.el9_4 sourcerpm: libuv-1.42.0-2.el9_4.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/aarch64/appstream/os/Packages/p/patch-2.7.6-16.el9.aarch64.rpm - repoid: rhel-9-for-aarch64-appstream-eus-rpms + repoid: rhel-9-for-aarch64-appstream-eus-rpms__9_DOT_6 size: 129037 checksum: sha256:335c720da3caa41822737dd431d91a4adc79c85dedbe4483ecaf58bc83767610 name: patch evr: 2.7.6-16.el9 sourcerpm: patch-2.7.6-16.el9.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/aarch64/appstream/os/Packages/r/rust-1.84.1-1.el9.aarch64.rpm - repoid: rhel-9-for-aarch64-appstream-eus-rpms + repoid: rhel-9-for-aarch64-appstream-eus-rpms__9_DOT_6 size: 26093725 checksum: sha256:5be9185a7d684022bc0686049c22ef901c4df6dce2822bdec16a1a47c46b6861 name: rust evr: 1.84.1-1.el9 sourcerpm: rust-1.84.1-1.el9.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/aarch64/appstream/os/Packages/r/rust-std-static-1.84.1-1.el9.aarch64.rpm - repoid: rhel-9-for-aarch64-appstream-eus-rpms + repoid: rhel-9-for-aarch64-appstream-eus-rpms__9_DOT_6 size: 39259196 checksum: sha256:5889bced81144c4ea201085e5bfd040300c56048e5d7987e9eb69d4d252f87bf name: rust-std-static evr: 1.84.1-1.el9 sourcerpm: rust-1.84.1-1.el9.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/aarch64/baseos/os/Packages/e/ed-1.14.2-12.el9.aarch64.rpm - repoid: rhel-9-for-aarch64-baseos-eus-rpms + repoid: rhel-9-for-aarch64-baseos-eus-rpms__9_DOT_6 size: 78931 checksum: sha256:3bce4ce6243886c448e58f589b79e3ac829fcde53d1ff13d5906a8cdc22be091 name: ed evr: 1.14.2-12.el9 sourcerpm: ed-1.14.2-12.el9.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/aarch64/baseos/os/Packages/i/info-6.7-15.el9.aarch64.rpm - repoid: rhel-9-for-aarch64-baseos-eus-rpms + repoid: rhel-9-for-aarch64-baseos-eus-rpms__9_DOT_6 size: 230301 checksum: sha256:c5ae65876c73c6f4e240081431745f5ba0a91d10a4bfb8a5d162ca3d6f039202 name: info @@ -93,84 +79,70 @@ arches: - arch: x86_64 packages: - url: https://cdn.redhat.com/content/eus/rhel9/9.6/x86_64/appstream/os/Packages/c/cargo-1.84.1-1.el9.x86_64.rpm - repoid: rhel-9-for-x86_64-appstream-eus-rpms + repoid: rhel-9-for-x86_64-appstream-eus-rpms__9_DOT_6 size: 8292467 checksum: sha256:7dd011cd79a635654ade4e3186c5f7545d692de81157d1ce1d42656eaa6993b2 name: cargo evr: 1.84.1-1.el9 sourcerpm: rust-1.84.1-1.el9.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/x86_64/appstream/os/Packages/c/cmake-3.26.5-2.el9.x86_64.rpm - repoid: rhel-9-for-x86_64-appstream-eus-rpms + repoid: rhel-9-for-x86_64-appstream-eus-rpms__9_DOT_6 size: 9159462 checksum: sha256:f553370cb02b87e7388697468256556e765b102c2fcb56be6bc250cb2351e8ad name: cmake evr: 3.26.5-2.el9 sourcerpm: cmake-3.26.5-2.el9.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/x86_64/appstream/os/Packages/c/cmake-data-3.26.5-2.el9.noarch.rpm - repoid: rhel-9-for-x86_64-appstream-eus-rpms + repoid: rhel-9-for-x86_64-appstream-eus-rpms__9_DOT_6 size: 2488227 checksum: sha256:84da65a7b8921f031d15903d91c5967022620f9e96b7493c8ab8024014755ee7 name: cmake-data evr: 3.26.5-2.el9 sourcerpm: cmake-3.26.5-2.el9.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/x86_64/appstream/os/Packages/c/cmake-rpm-macros-3.26.5-2.el9.noarch.rpm - repoid: rhel-9-for-x86_64-appstream-eus-rpms + repoid: rhel-9-for-x86_64-appstream-eus-rpms__9_DOT_6 size: 12250 checksum: sha256:1c74969c8a4f21851f5b89f25ac55c689b75bed1318d0435fc3a14a49c39d0e3 name: cmake-rpm-macros evr: 3.26.5-2.el9 sourcerpm: cmake-3.26.5-2.el9.src.rpm - - url: https://cdn.redhat.com/content/eus/rhel9/9.6/x86_64/appstream/os/Packages/g/gcc-c++-11.5.0-5.el9_5.x86_64.rpm - repoid: rhel-9-for-x86_64-appstream-eus-rpms - size: 13479598 - checksum: sha256:b8392274e302d665bc132aee4ed023f8a777d9c446531679ede18150d7867189 - name: gcc-c++ - evr: 11.5.0-5.el9_5 - sourcerpm: gcc-11.5.0-5.el9_5.src.rpm - - url: https://cdn.redhat.com/content/eus/rhel9/9.6/x86_64/appstream/os/Packages/l/libstdc++-devel-11.5.0-5.el9_5.x86_64.rpm - repoid: rhel-9-for-x86_64-appstream-eus-rpms - size: 2531717 - checksum: sha256:84695eeeb1daa8ff74baf7efd9fc57fb136bec7e8a2ca56c105be6d83ec22d07 - name: libstdc++-devel - evr: 11.5.0-5.el9_5 - sourcerpm: gcc-11.5.0-5.el9_5.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/x86_64/appstream/os/Packages/l/libuv-1.42.0-2.el9_4.x86_64.rpm - repoid: rhel-9-for-x86_64-appstream-eus-rpms + repoid: rhel-9-for-x86_64-appstream-eus-rpms__9_DOT_6 size: 154427 checksum: sha256:e1fab39251239ccaad2fb4dbe6c55ec1ae60f76d4ae81582b06e6a58e30879b2 name: libuv evr: 1:1.42.0-2.el9_4 sourcerpm: libuv-1.42.0-2.el9_4.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/x86_64/appstream/os/Packages/p/patch-2.7.6-16.el9.x86_64.rpm - repoid: rhel-9-for-x86_64-appstream-eus-rpms + repoid: rhel-9-for-x86_64-appstream-eus-rpms__9_DOT_6 size: 133240 checksum: sha256:d2e0307a2d1d4eff0c2db406841030461b35864926916f2a92244427d89316be name: patch evr: 2.7.6-16.el9 sourcerpm: patch-2.7.6-16.el9.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/x86_64/appstream/os/Packages/r/rust-1.84.1-1.el9.x86_64.rpm - repoid: rhel-9-for-x86_64-appstream-eus-rpms + repoid: rhel-9-for-x86_64-appstream-eus-rpms__9_DOT_6 size: 28050444 checksum: sha256:9ba3c53fd811af2f294e31360d75e33e4cb89893130c7b3fe0c6191e20a09f3e name: rust evr: 1.84.1-1.el9 sourcerpm: rust-1.84.1-1.el9.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/x86_64/appstream/os/Packages/r/rust-std-static-1.84.1-1.el9.x86_64.rpm - repoid: rhel-9-for-x86_64-appstream-eus-rpms + repoid: rhel-9-for-x86_64-appstream-eus-rpms__9_DOT_6 size: 41211472 checksum: sha256:73bb90884432e2b43758f1043f107a570b5d54b38f17d5d0af51bac103ceb4f5 name: rust-std-static evr: 1.84.1-1.el9 sourcerpm: rust-1.84.1-1.el9.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/x86_64/baseos/os/Packages/e/ed-1.14.2-12.el9.x86_64.rpm - repoid: rhel-9-for-x86_64-baseos-eus-rpms + repoid: rhel-9-for-x86_64-baseos-eus-rpms__9_DOT_6 size: 79993 checksum: sha256:5fb3c625fd1ace94f133522bdaf4768abd78f029e20886b8e4aed2d6d1aac664 name: ed evr: 1.14.2-12.el9 sourcerpm: ed-1.14.2-12.el9.src.rpm - url: https://cdn.redhat.com/content/eus/rhel9/9.6/x86_64/baseos/os/Packages/i/info-6.7-15.el9.x86_64.rpm - repoid: rhel-9-for-x86_64-baseos-eus-rpms + repoid: rhel-9-for-x86_64-baseos-eus-rpms__9_DOT_6 size: 233806 checksum: sha256:3643f98b45cc973073096608aaa45976d722fe284590ff7c1d5f93ad77ba0f8b name: info diff --git a/.tekton/lightspeed-stack-0-7-pull-request.yaml b/.tekton/lightspeed-stack-0-7-pull-request.yaml index 0f63bdc1b..0e08e27ba 100644 --- a/.tekton/lightspeed-stack-0-7-pull-request.yaml +++ b/.tekton/lightspeed-stack-0-7-pull-request.yaml @@ -53,7 +53,7 @@ spec: ], "requirements_build_files": ["requirements-build.txt"], "binary": { - "packages": "aiohappyeyeballs,aiosignal,aiosqlite,annotated-doc,annotated-types,anyio,asyncpg,cffi,chevron,cryptography,click,dill,distro,dnspython,docstring-parser,durationpy,einops,email-validator,faiss-cpu,fire,frozenlist,fsspec,google-crc32c,google-genai,grpcio,grpcio-status,h11,hf-xet,httpcore,httpx,httpx-sse,importlib-metadata,jinja2,jiter,joblib,jsonschema-specifications,kubernetes,markdown-it-py,mdurl,mpmath,multidict,networkx,numpy,oauthlib,packaging,pandas,peft,pillow,prometheus-client,prompt-toolkit,propcache,psycopg2-binary,pyarrow,pyasn1-modules,pycparser,pydantic,pydantic-core,python-dateutil,pyyaml,referencing,requests-oauthlib,rpds-py,safetensors,scikit-learn,scipy,setuptools,six,sniffio,sqlalchemy,sympy,termcolor,threadpoolctl,tiktoken,tokenizers,torch,tqdm,transformers,tree-sitter,triton,typing-extensions,typing-inspection,websocket-client,websockets,wrapt,xxhash,yarl,zipp,uv,pip,maturin", + "packages": "a2a-sdk,accelerate,aiofile,aiohappyeyeballs,aiohttp,aiosignal,aiosqlite,annotated-doc,annotated-types,anthropic,anyio,argcomplete,asyncpg,attrs,authlib,autoevals,azure-core,azure-identity,beartype,cachetools,caio,certifi,cffi,chardet,charset-normalizer,chevron,click,cryptography,datasets,dill,distro,dnspython,docstring-parser,durationpy,einops,email-validator,emoji,exceptiongroup,executing,faiss-cpu,fastapi,fastmcp-slim,fastuuid,filelock,fire,frozenlist,fsspec,genai-prices,google-api-core,google-auth,google-cloud-core,google-cloud-storage,google-crc32c,google-genai,google-resumable-media,googleapis-common-protos,greenlet,griffelib,grpc-google-iam-v1,grpcio,grpcio-status,h11,hf-xet,httpcore,httpcore2,httpx,httpx-sse,httpx2,huggingface-hub,idna,importlib-metadata,jaraco-classes,jaraco-context,jaraco-functools,jeepney,jinja2,jiter,joblib,joserfc,jsonpath-ng,jsonschema,jsonschema-specifications,keyring,kubernetes,langdetect,litellm,logfire,logfire-api,markdown-it-py,markupsafe,maturin,mcp,mdurl,more-itertools,mpmath,msal,msal-extensions,multidict,multiprocess,narwhals,networkx,nltk,numpy,oauthlib,openai,opentelemetry-api,opentelemetry-distro,opentelemetry-exporter-otlp,opentelemetry-exporter-otlp-proto-common,opentelemetry-exporter-otlp-proto-grpc,opentelemetry-exporter-otlp-proto-http,opentelemetry-instrumentation,opentelemetry-instrumentation-httpx,opentelemetry-proto,opentelemetry-sdk,opentelemetry-semantic-conventions,opentelemetry-util-http,oracledb,packaging,pandas,peft,pip,platformdirs,polyleven,prometheus-client,prompt-toolkit,propcache,proto-plus,protobuf,psutil,psycopg2-binary,py-key-value-aio,pyaml,pyarrow,pyasn1,pyasn1-modules,pycparser,pydantic,pydantic-ai,pydantic-ai-slim,pydantic-core,pydantic-evals,pydantic-graph,pydantic-settings,pygments,pyjwt,pyopenssl,pypdf,pyperclip,python-dateutil,python-dotenv,python-multipart,pytz,pyyaml,referencing,regex,requests,requests-oauthlib,rich,rpds-py,safetensors,scikit-learn,scipy,secretstorage,semver,sentence-transformers,sentry-sdk,setuptools,shellingham,six,sniffio,sqlalchemy,sse-starlette,starlette,sympy,tenacity,termcolor,threadpoolctl,tiktoken,tokenizers,torch,tornado,tqdm,transformers,tree-sitter,triton,trl,truststore,typer,typing-extensions,typing-inspection,urllib3,uv,uv-build,uvicorn,wcwidth,websocket-client,websockets,wrapt,xxhash,yarl,zipp", "os": "linux", "arch": "x86_64,aarch64", "py_version": 312 diff --git a/.tekton/lightspeed-stack-0-7-push.yaml b/.tekton/lightspeed-stack-0-7-push.yaml index e4ffaf68b..329a9dbac 100644 --- a/.tekton/lightspeed-stack-0-7-push.yaml +++ b/.tekton/lightspeed-stack-0-7-push.yaml @@ -54,7 +54,7 @@ spec: ], "requirements_build_files": ["requirements-build.txt"], "binary": { - "packages": "aiohappyeyeballs,aiosignal,aiosqlite,annotated-doc,annotated-types,anyio,asyncpg,cffi,chevron,cryptography,click,dill,distro,dnspython,docstring-parser,durationpy,einops,email-validator,faiss-cpu,fire,frozenlist,fsspec,google-crc32c,google-genai,grpcio,grpcio-status,h11,hf-xet,httpcore,httpx,httpx-sse,importlib-metadata,jinja2,jiter,joblib,jsonschema-specifications,kubernetes,markdown-it-py,mdurl,mpmath,multidict,networkx,numpy,oauthlib,packaging,pandas,peft,pillow,prometheus-client,prompt-toolkit,propcache,psycopg2-binary,pyarrow,pyasn1-modules,pycparser,pydantic,pydantic-core,python-dateutil,pyyaml,referencing,requests-oauthlib,rpds-py,safetensors,scikit-learn,scipy,setuptools,six,sniffio,sqlalchemy,sympy,termcolor,threadpoolctl,tiktoken,tokenizers,torch,tqdm,transformers,tree-sitter,triton,typing-extensions,typing-inspection,websocket-client,websockets,wrapt,xxhash,yarl,zipp,uv,pip,maturin", + "packages": "a2a-sdk,accelerate,aiofile,aiohappyeyeballs,aiohttp,aiosignal,aiosqlite,annotated-doc,annotated-types,anthropic,anyio,argcomplete,asyncpg,attrs,authlib,autoevals,azure-core,azure-identity,beartype,cachetools,caio,certifi,cffi,chardet,charset-normalizer,chevron,click,cryptography,datasets,dill,distro,dnspython,docstring-parser,durationpy,einops,email-validator,emoji,exceptiongroup,executing,faiss-cpu,fastapi,fastmcp-slim,fastuuid,filelock,fire,frozenlist,fsspec,genai-prices,google-api-core,google-auth,google-cloud-core,google-cloud-storage,google-crc32c,google-genai,google-resumable-media,googleapis-common-protos,greenlet,griffelib,grpc-google-iam-v1,grpcio,grpcio-status,h11,hf-xet,httpcore,httpcore2,httpx,httpx-sse,httpx2,huggingface-hub,idna,importlib-metadata,jaraco-classes,jaraco-context,jaraco-functools,jeepney,jinja2,jiter,joblib,joserfc,jsonpath-ng,jsonschema,jsonschema-specifications,keyring,kubernetes,langdetect,litellm,logfire,logfire-api,markdown-it-py,markupsafe,maturin,mcp,mdurl,more-itertools,mpmath,msal,msal-extensions,multidict,multiprocess,narwhals,networkx,nltk,numpy,oauthlib,openai,opentelemetry-api,opentelemetry-distro,opentelemetry-exporter-otlp,opentelemetry-exporter-otlp-proto-common,opentelemetry-exporter-otlp-proto-grpc,opentelemetry-exporter-otlp-proto-http,opentelemetry-instrumentation,opentelemetry-instrumentation-httpx,opentelemetry-proto,opentelemetry-sdk,opentelemetry-semantic-conventions,opentelemetry-util-http,oracledb,packaging,pandas,peft,pip,platformdirs,polyleven,prometheus-client,prompt-toolkit,propcache,proto-plus,protobuf,psutil,psycopg2-binary,py-key-value-aio,pyaml,pyarrow,pyasn1,pyasn1-modules,pycparser,pydantic,pydantic-ai,pydantic-ai-slim,pydantic-core,pydantic-evals,pydantic-graph,pydantic-settings,pygments,pyjwt,pyopenssl,pypdf,pyperclip,python-dateutil,python-dotenv,python-multipart,pytz,pyyaml,referencing,regex,requests,requests-oauthlib,rich,rpds-py,safetensors,scikit-learn,scipy,secretstorage,semver,sentence-transformers,sentry-sdk,setuptools,shellingham,six,sniffio,sqlalchemy,sse-starlette,starlette,sympy,tenacity,termcolor,threadpoolctl,tiktoken,tokenizers,torch,tornado,tqdm,transformers,tree-sitter,triton,trl,truststore,typer,typing-extensions,typing-inspection,urllib3,uv,uv-build,uvicorn,wcwidth,websocket-client,websockets,wrapt,xxhash,yarl,zipp", "os": "linux", "arch": "x86_64,aarch64", "py_version": 312 diff --git a/deploy/lightspeed-stack/Containerfile b/deploy/lightspeed-stack/Containerfile index 567b5793e..772c91a7a 100644 --- a/deploy/lightspeed-stack/Containerfile +++ b/deploy/lightspeed-stack/Containerfile @@ -92,12 +92,15 @@ WORKDIR /app-root # PYTHONDONTWRITEBYTECODE 1 : disable the generation of .pyc # PYTHONUNBUFFERED 1 : force the stdout and stderr streams to be unbuffered # PYTHONCOERCECLOCALE 0, PYTHONUTF8 1 : skip legacy locales and use UTF-8 mode +# TORCH_COMPILE_DISABLE 1: bypass torch.compile() which causes issue to the RAG system ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PYTHONCOERCECLOCALE=0 \ PYTHONUTF8=1 \ PYTHONIOENCODING=UTF-8 \ - LANG=en_US.UTF-8 + LANG=en_US.UTF-8 \ + USER=default \ + TORCH_COMPILE_DISABLE=1 COPY --from=builder --chown=1001:1001 /app-root /app-root @@ -137,7 +140,7 @@ ENTRYPOINT ["python3.12", "src/lightspeed_stack.py"] LABEL vendor="Red Hat, Inc." \ name="lightspeed-core/lightspeed-stack-rhel9" \ com.redhat.component="lightspeed-core/lightspeed-stack" \ - cpe="cpe:/a:redhat:lightspeed_core:0.4::el9" \ + cpe="cpe:/a:redhat:lightspeed_core:0.7::el9" \ io.k8s.display-name="Lightspeed Stack" \ summary="A service that provides a REST API for the Lightspeed Core Stack." \ description="Lightspeed Core Stack (LCS) is an AI-powered assistant that provides answers to product questions using backend LLM services, agents, and RAG databases." \ diff --git a/pyproject.toml b/pyproject.toml index 27b63d305..c9e3a9a36 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -186,7 +186,7 @@ llslibdev = [ # API tool_runtime: remote::model-context-protocol "mcp>=1.23.0", # API post_training: inline::huggingface - "torch==2.9.1", + "torch==2.11.0", "trl>=0.18.2", "peft>=0.15.2", # API inference: remote::vertexai diff --git a/scripts/konflux_resolve.py b/scripts/konflux_resolve.py new file mode 100644 index 000000000..94173ba43 --- /dev/null +++ b/scripts/konflux_resolve.py @@ -0,0 +1,1331 @@ +#!/usr/bin/env python3 +"""Policy-driven dependency resolver for Hermeto/Cachi2 hermetic builds. + +Enforces: RHOAI wheel > PyPI sdist > PyPI wheel (last resort). +Usage: python3 scripts/konflux_resolve.py --profile cpu|cuda [--verbose | --quiet] +""" + +from __future__ import annotations + +import argparse +import json +import logging +import os +import re +import subprocess +import time +import tomllib +import urllib.request +from collections import deque +from collections.abc import Sequence +from html.parser import HTMLParser +from typing import Any + +logger = logging.getLogger("konflux_resolve") + +# --------------------------------------------------------------------------- +# Task 2 — Version parsing and constraint matching (PEP 440) +# --------------------------------------------------------------------------- + +_PRE_RELEASE_MAP = { + "a": "a", + "alpha": "a", + "b": "b", + "beta": "b", + "c": "rc", + "rc": "rc", + "dev": "dev", +} + +_PRE_ORDER = {"dev": 0, "a": 1, "b": 2, "rc": 3, "final": 4} + +_VERSION_RE = re.compile( + r"^(\d+)" + r"(?:\.(\d+))?" + r"(?:\.(\d+))?" + r"(?:\.\d+)*" # extra numeric segments (ignored after third) + r"(?:[-.]?" + r"(?P
a|alpha|b|beta|c|rc|dev)"
+    r"(?P\d+)?)?"
+    r"(?:\.post(?P\d+))?"
+    r"$",
+    re.IGNORECASE,
+)
+
+
+def parse_version(
+    version_str: str,
+) -> tuple[int, int, int, tuple[int, int], tuple[int, int]]:
+    """Parse a PEP 440 version string into a comparable tuple.
+
+    Returns ``(major, minor, micro, (pre_label, pre_num), (post_label, post_num))``.
+    *pre_label* is one of ``"dev"``, ``"a"``, ``"b"``, ``"rc"``, ``"final"``
+    (where ``"final"`` means no pre-release suffix); *post_label* is ``"post"``
+    or ``"final"``.  The labels are ordered so that tuple comparison gives the
+    correct PEP 440 ordering.
+    """
+    version_str = version_str.strip()
+    if "+" in version_str:
+        version_str = version_str.split("+", 1)[0]
+    if version_str.endswith(".*"):
+        version_str = version_str[:-2]
+    m = _VERSION_RE.match(version_str)
+    if m is None:
+        raise ValueError(f"Cannot parse version: {version_str!r}")
+
+    major = int(m.group(1))
+    minor = int(m.group(2) or 0)
+    micro = int(m.group(3) or 0)
+
+    pre_raw = m.group("pre")
+    if pre_raw is not None:
+        pre_label = _PRE_RELEASE_MAP[pre_raw.lower()]
+        pre_num = int(m.group("pre_num") or 0)
+    else:
+        pre_label = "final"
+        pre_num = 0
+
+    post_raw = m.group("post")
+    pre_tag: tuple[int, int] = (_PRE_ORDER[pre_label], pre_num)
+    post_tag: tuple[int, int] = (1, int(post_raw)) if post_raw is not None else (0, 0)
+
+    return (major, minor, micro, pre_tag, post_tag)
+
+
+def _parse_specifier(spec: str) -> tuple[str, str]:
+    """Split ``>=1.2.3`` into ``(">=", "1.2.3")``."""
+    spec = spec.strip().strip("()")
+    for op in ("~=", "==", "!=", ">=", "<=", ">", "<"):
+        if spec.startswith(op):
+            return op, spec[len(op) :].strip()
+    if spec and spec[0].isdigit():
+        return "==", spec
+    raise ValueError(f"Unknown version operator in {spec!r}")
+
+
+_CMP_OPS: dict[str, Any] = {
+    "==": lambda v, c: v == c,
+    "!=": lambda v, c: v != c,
+    ">=": lambda v, c: v >= c,
+    "<=": lambda v, c: v <= c,
+    ">": lambda v, c: v > c,
+    "<": lambda v, c: v < c,
+}
+
+
+def _check_single_specifier(
+    version: str,
+    v: tuple[int, int, int, tuple[int, int], tuple[int, int]],
+    op: str,
+    ver_str: str,
+) -> bool:
+    """Return False if *v* violates the single specifier ``op ver_str``."""
+    if op == "==" and ver_str.endswith(".*"):
+        prefix = ver_str[:-2]
+        parts = prefix.split(".")
+        return version.split(".")[: len(parts)] == parts
+
+    if op == "~=":
+        parts = ver_str.split(".")
+        c = parse_version(ver_str)
+        upper_parts = parts[:-1]
+        upper_parts[-1] = str(int(upper_parts[-1]) + 1)
+        upper = parse_version(".".join(upper_parts))
+        return v >= c and v < upper
+
+    c = parse_version(ver_str)
+    check = _CMP_OPS.get(op)
+    if check is not None:
+        return bool(check(v, c))
+    return True
+
+
+def version_satisfies(version: str, constraint: str) -> bool:
+    """Check whether *version* satisfies a comma-separated PEP 440 constraint."""
+    constraint = constraint.strip()
+    if not constraint:
+        return True
+
+    v = parse_version(version)
+    for spec in constraint.split(","):
+        spec = spec.strip()
+        if not spec:
+            continue
+        op, ver_str = _parse_specifier(spec)
+        if not _check_single_specifier(version, v, op, ver_str):
+            return False
+    return True
+
+
+def merge_constraints(existing: str | None, new: str) -> str:
+    """Merge two constraint strings by comma-joining."""
+    if not existing:
+        return new
+    return f"{existing},{new}"
+
+
+# ---------------------------------------------------------------------------
+# Task 3 — Package name normalization and pyproject.toml parsing
+# ---------------------------------------------------------------------------
+
+_NORMALIZE_RE = re.compile(r"[-_.]+")
+
+
+def normalize_name(name: str) -> str:
+    """PEP 503 normalization: lowercase, replace runs of ``-``, ``.``, ``_`` with ``-``."""
+    return _NORMALIZE_RE.sub("-", name).lower()
+
+
+def _parse_dep_string(dep: str) -> tuple[str, str, str]:
+    """Parse ``name[extras]>=1.0; marker`` into ``(normalized_name, version_spec, marker)``."""
+    marker = ""
+    if ";" in dep:
+        dep, marker = dep.split(";", 1)
+        marker = marker.strip()
+
+    dep = dep.strip()
+    # Strip extras: name[extras]>=... → name>=...
+    dep = re.sub(r"\[.*?\]", "", dep)
+
+    match = re.match(r"^([A-Za-z0-9][-A-Za-z0-9_.]*)", dep)
+    if match is None:
+        raise ValueError(f"Cannot parse dependency: {dep!r}")
+
+    name = normalize_name(match.group(1))
+    version_spec = dep[match.end() :].strip()
+
+    return name, version_spec, marker
+
+
+def parse_direct_deps(pyproject_path: str) -> list[tuple[str, str]]:
+    """Parse ``[project].dependencies`` from a TOML file.
+
+    Returns ``[(normalized_name, version_spec), ...]``.
+    """
+    with open(pyproject_path, "rb") as f:
+        data = tomllib.load(f)
+
+    raw_deps: list[str] = data.get("project", {}).get("dependencies", [])
+    result: list[tuple[str, str]] = []
+    for dep_str in raw_deps:
+        name, spec, _marker = _parse_dep_string(dep_str)
+        result.append((name, spec))
+    return result
+
+
+# ---------------------------------------------------------------------------
+# Task 4 — PEP 503 simple index parser
+# ---------------------------------------------------------------------------
+
+
+class _LinkCollector(HTMLParser):
+    """Collect ``href`` attributes from ```` tags."""
+
+    def __init__(self) -> None:
+        super().__init__()
+        self.hrefs: list[str] = []
+        self._texts: list[str] = []
+        self._in_a = False
+        self.link_texts: list[str] = []
+
+    def handle_starttag(self, tag: str, attrs: list[tuple[str, str | None]]) -> None:
+        if tag == "a":
+            for attr_name, attr_val in attrs:
+                if attr_name == "href" and attr_val is not None:
+                    self.hrefs.append(attr_val)
+            self._in_a = True
+            self._texts = []
+
+    def handle_data(self, data: str) -> None:
+        if self._in_a:
+            self._texts.append(data)
+
+    def handle_endtag(self, tag: str) -> None:
+        if tag == "a" and self._in_a:
+            self.link_texts.append("".join(self._texts).strip())
+            self._in_a = False
+
+
+_WHEEL_RE = re.compile(
+    r"^(?P[A-Za-z0-9][-A-Za-z0-9_.]*?)"
+    r"-(?P\d[A-Za-z0-9_.+]*?)"
+    r"(?:-(?P\d[A-Za-z0-9_.]*)?)?"
+    r"-(?P[A-Za-z0-9_.]+)"
+    r"-(?P[A-Za-z0-9_.]+)"
+    r"-(?P[A-Za-z0-9_.]+)"
+    r"\.whl$"
+)
+
+_SDIST_RE = re.compile(
+    r"^(?P[A-Za-z0-9][-A-Za-z0-9_.]*?)"
+    r"-(?P\d[A-Za-z0-9_.]*)"
+    r"(?:\.tar\.gz|\.zip)$"
+)
+
+
+class SimpleIndexParser:
+    """Parse PEP 503 Simple Repository API HTML pages."""
+
+    @staticmethod
+    def parse_root(html: str) -> list[str]:
+        """Return list of package names from root index page."""
+        collector = _LinkCollector()
+        collector.feed(html)
+        return collector.link_texts
+
+    @staticmethod
+    def parse_package_page(html: str) -> list[dict[str, Any]]:
+        """Return list of entry dicts from a per-package page.
+
+        Each dict has keys: ``filename``, ``sha256``, ``version``, ``is_wheel``,
+        and for wheels: ``python_tag``, ``abi_tag``, ``platform_tag``.
+        """
+        collector = _LinkCollector()
+        collector.feed(html)
+        entries: list[dict[str, Any]] = []
+
+        for href, link_text in zip(collector.hrefs, collector.link_texts):
+            filename = link_text.strip()
+            if not filename:
+                filename = href.rsplit("/", 1)[-1].split("#")[0]
+
+            sha256 = ""
+            if "#sha256=" in href:
+                sha256 = href.split("#sha256=", 1)[1]
+
+            whl_m = _WHEEL_RE.match(filename)
+            if whl_m:
+                entries.append(
+                    {
+                        "filename": filename,
+                        "sha256": sha256,
+                        "version": whl_m.group("version"),
+                        "is_wheel": True,
+                        "python_tag": whl_m.group("python"),
+                        "abi_tag": whl_m.group("abi"),
+                        "platform_tag": whl_m.group("platform"),
+                    }
+                )
+                continue
+
+            sdist_m = _SDIST_RE.match(filename)
+            if sdist_m:
+                entries.append(
+                    {
+                        "filename": filename,
+                        "sha256": sha256,
+                        "version": sdist_m.group("version"),
+                        "is_wheel": False,
+                    }
+                )
+
+        return entries
+
+
+# ---------------------------------------------------------------------------
+# Task 5 — Wheel compatibility checker
+# ---------------------------------------------------------------------------
+
+
+def _abi3_compatible(python_tag: str, target_ver: tuple[int, int]) -> bool:
+    """Check if an abi3 wheel's cpXY tag is compatible with *target_ver*."""
+    for sub in python_tag.split("."):
+        if sub.startswith("cp") and len(sub) >= 3:
+            digits = sub[2:]
+            try:
+                tag_major = int(digits[0])
+                tag_minor = int(digits[1:]) if len(digits) > 1 else 0
+                if (tag_major, tag_minor) <= target_ver:
+                    return True
+            except ValueError:
+                pass
+    return False
+
+
+def is_wheel_compatible(
+    python_tag: str,
+    platform_tag: str,
+    target_python: str,
+    target_platforms: Sequence[str],
+    abi_tag: str = "",
+) -> bool:
+    """Check if a wheel's tags match the target environment.
+
+    *target_python* is e.g. ``"3.12"``; *target_platforms* is e.g.
+    ``["linux_x86_64", "linux_aarch64"]``.
+    """
+    major, minor = target_python.split(".")
+    target_ver = (int(major), int(minor))
+    compatible_py = {
+        f"cp{major}{minor}",
+        f"cp{major}",
+        f"py{major}",
+        f"py{major}{minor}",
+    }
+
+    py_ok = any(sub in compatible_py for sub in python_tag.split("."))
+    if not py_ok and abi_tag and "abi3" in abi_tag.split("."):
+        py_ok = _abi3_compatible(python_tag, target_ver)
+    if not py_ok:
+        return False
+
+    # Platform matching: "any" and "none" always match.
+    if platform_tag.lower() in ("any", "none"):
+        return True
+
+    # A compound platform tag like "manylinux_2_17_x86_64.manylinux2014_x86_64"
+    # can contain multiple sub-tags separated by ".". Check each sub-tag and
+    # each target platform for a suffix match (the arch part).
+    sub_tags = platform_tag.split(".")
+    for target in target_platforms:
+        # Extract the arch from the target, e.g. "linux_x86_64" → "x86_64"
+        arch = target.split("_", 1)[1] if "_" in target else target
+        for sub in sub_tags:
+            if sub == target or sub.endswith(f"_{arch}"):
+                return True
+
+    return False
+
+
+# ---------------------------------------------------------------------------
+# Task 6 — RHOAI index loader
+# ---------------------------------------------------------------------------
+
+
+class RhoaiIndex:
+    """RHOAI simple index with lazy per-package fetching.
+
+    The root page is downloaded eagerly (to learn which packages exist),
+    but individual package pages are fetched on-demand and cached.
+    """
+
+    def __init__(
+        self, index_url: str, python_version: str, platforms: Sequence[str]
+    ) -> None:
+        """Initialize with the RHOAI simple index URL, target Python version, and platforms."""
+        self.index_url = index_url.rstrip("/") + "/"
+        self.python_version = python_version
+        self.platforms = list(platforms)
+        self._parser = SimpleIndexParser()
+        self._known_packages: set[str] = set()
+        self._packages: dict[str, dict[str, dict[str, tuple[str, str]]]] = {}
+
+    def _fetch_url(self, url: str) -> str:
+        """Fetch *url* with retry (3 attempts, exponential backoff)."""
+        last_exc: Exception | None = None
+        for attempt in range(3):
+            try:
+                with urllib.request.urlopen(url, timeout=30) as resp:
+                    return str(resp.read().decode())
+            except Exception as exc:
+                last_exc = exc
+                logger.debug("Fetch %s attempt %d failed: %s", url, attempt + 1, exc)
+                time.sleep(2**attempt)
+        raise RuntimeError(f"Failed to fetch {url} after 3 attempts") from last_exc
+
+    def load(self) -> None:
+        """Download root page to learn which packages exist on RHOAI."""
+        root_html = self._fetch_url(self.index_url)
+        package_names = self._parser.parse_root(root_html)
+        self._known_packages = {normalize_name(n) for n in package_names}
+        logger.info("RHOAI index: %d packages available", len(self._known_packages))
+
+    def _ensure_loaded(self, name: str) -> None:
+        """Fetch and cache a package page if not already loaded."""
+        norm = normalize_name(name)
+        if norm in self._packages or norm not in self._known_packages:
+            return
+
+        target_platforms = [f"linux_{p}" for p in self.platforms]
+        page_url = f"{self.index_url}{norm}/"
+        try:
+            page_html = self._fetch_url(page_url)
+        except Exception as exc:
+            logger.warning("Failed to fetch RHOAI page for %s: %s", norm, exc)
+            return
+
+        entries = self._parser.parse_package_page(page_html)
+        versions: dict[str, dict[str, tuple[str, str]]] = {}
+        for entry in entries:
+            if not entry["is_wheel"]:
+                continue
+            if not is_wheel_compatible(
+                entry["python_tag"],
+                entry["platform_tag"],
+                self.python_version,
+                target_platforms,
+                abi_tag=entry.get("abi_tag", ""),
+            ):
+                continue
+
+            ver = entry["version"]
+            if ver not in versions:
+                versions[ver] = {}
+
+            plat = entry["platform_tag"]
+            matched_arch = self._match_arch(plat, target_platforms)
+            if matched_arch:
+                versions[ver][matched_arch] = (entry["filename"], entry["sha256"])
+
+        if versions:
+            self._packages[norm] = versions
+
+    def _match_arch(self, platform_tag: str, target_platforms: list[str]) -> str | None:
+        """Determine which target arch a platform tag matches."""
+        if platform_tag.lower() in ("any", "none"):
+            return "any"
+        sub_tags = platform_tag.split(".")
+        for target in target_platforms:
+            arch = target.split("_", 1)[1] if "_" in target else target
+            for sub in sub_tags:
+                if sub == target or sub.endswith(f"_{arch}"):
+                    return target
+        return None
+
+    def has_package(self, name: str) -> bool:
+        """Return whether the RHOAI index lists this package name."""
+        return normalize_name(name) in self._known_packages
+
+    def find_best(self, name: str, constraint: str) -> dict[str, Any] | None:
+        """Find latest version satisfying *constraint*.
+
+        Returns ``{"version": str, "platforms": {arch: (filename, sha256)}}``
+        or ``None``.
+        """
+        norm = normalize_name(name)
+        self._ensure_loaded(norm)
+        versions = self._packages.get(norm)
+        if not versions:
+            return None
+
+        candidates = [v for v in versions if version_satisfies(v, constraint)]
+        if not candidates:
+            return None
+
+        best = max(candidates, key=parse_version)
+        return {"version": best, "platforms": versions[best]}
+
+
+# ---------------------------------------------------------------------------
+# Task 7 — PEP 508 marker evaluation & PyPI client
+# ---------------------------------------------------------------------------
+
+_MARKER_ENV_KEYS = {
+    "sys_platform",
+    "os_name",
+    "platform_system",
+    "implementation_name",
+    "python_version",
+    "platform_machine",
+    "extra",
+}
+
+_MARKER_COMPARE_RE = re.compile(
+    r"""^
+    \s*(?P[A-Za-z_][A-Za-z0-9_.]*|'[^']*'|"[^"]*")
+    \s*(?P~=|===|==|!=|>=|<=|>|<|not\s+in|in)
+    \s*(?P[A-Za-z_][A-Za-z0-9_.]*|'[^']*'|"[^"]*")
+    \s*$
+    """,
+    re.VERBOSE,
+)
+
+
+def _eval_marker(marker: str, python_version: str) -> bool:
+    """Simplified PEP 508 marker evaluation for a Linux CPython target."""
+    env = {
+        "sys_platform": "linux",
+        "os_name": "posix",
+        "platform_system": "Linux",
+        "implementation_name": "cpython",
+        "python_version": python_version,
+    }
+
+    marker = marker.strip()
+    if not marker:
+        return True
+
+    or_parts = re.split(r"\s+or\s+", marker)
+    for or_part in or_parts:
+        and_parts = re.split(r"\s+and\s+", or_part)
+        all_true = True
+        for expr in and_parts:
+            if not _eval_single_marker(expr.strip(), env):
+                all_true = False
+                break
+        if all_true:
+            return True
+    return False
+
+
+_MARKER_CMP_OPS: dict[str, Any] = {
+    "==": lambda lv, rv: lv == rv,
+    "!=": lambda lv, rv: lv != rv,
+    ">=": lambda lv, rv: lv >= rv,
+    "<=": lambda lv, rv: lv <= rv,
+    ">": lambda lv, rv: lv > rv,
+    "<": lambda lv, rv: lv < rv,
+    "in": lambda lv, rv: lv in rv,
+    "not in": lambda lv, rv: lv not in rv,
+}
+
+
+def _eval_single_marker(expr: str, env: dict[str, str]) -> bool:
+    """Evaluate a single marker comparison like ``sys_platform == 'linux'``."""
+    m = _MARKER_COMPARE_RE.match(expr)
+    if m is None:
+        return True
+
+    left_raw = m.group("left").strip("'\"")
+    right_raw = m.group("right").strip("'\"")
+    op = re.sub(r"\s+", " ", m.group("op"))
+
+    if left_raw in env:
+        lval, rval = env[left_raw], right_raw
+    elif right_raw in env:
+        lval, rval = left_raw, env[right_raw]
+    else:
+        return True
+
+    check = _MARKER_CMP_OPS.get(op)
+    return bool(check(lval, rval)) if check else True
+
+
+class PypiClient:
+    """Lazy, per-package PyPI client with caching."""
+
+    def __init__(self, python_version: str, platforms: Sequence[str]) -> None:
+        """Initialize with the target Python version and platforms."""
+        self.python_version = python_version
+        self.platforms = list(platforms)
+        self._parser = SimpleIndexParser()
+        self._info_cache: dict[str, dict[str, Any]] = {}
+        self._requires_cache: dict[str, list[tuple[str, str]]] = {}
+
+    def _fetch_url(self, url: str) -> str:
+        """Fetch *url* with retry (3 attempts, exponential backoff)."""
+        last_exc: Exception | None = None
+        for attempt in range(3):
+            try:
+                with urllib.request.urlopen(url, timeout=30) as resp:
+                    return str(resp.read().decode())
+            except Exception as exc:
+                last_exc = exc
+                logger.debug("Fetch %s attempt %d failed: %s", url, attempt + 1, exc)
+                time.sleep(2**attempt)
+        raise RuntimeError(f"Failed to fetch {url} after 3 attempts") from last_exc
+
+    def get_package_info(self, name: str) -> dict[str, dict[str, Any]]:
+        """Fetch and cache the simple index page for *name*.
+
+        Returns ``{version: {"has_sdist": bool, "sdist_hashes": [...],
+        "wheel_hashes": [...], "wheel_files": [...]}}``.
+        """
+        norm = normalize_name(name)
+        if norm in self._info_cache:
+            return self._info_cache[norm]
+
+        url = f"https://pypi.org/simple/{norm}/"
+        html = self._fetch_url(url)
+        entries = self._parser.parse_package_page(html)
+
+        info: dict[str, dict[str, Any]] = {}
+        for entry in entries:
+            ver = entry["version"]
+            if ver not in info:
+                info[ver] = {
+                    "has_sdist": False,
+                    "sdist_hashes": [],
+                    "wheel_hashes": [],
+                    "wheel_files": [],
+                }
+            if entry["is_wheel"]:
+                if entry["sha256"]:
+                    info[ver]["wheel_hashes"].append(entry["sha256"])
+                info[ver]["wheel_files"].append(entry["filename"])
+            else:
+                info[ver]["has_sdist"] = True
+                if entry["sha256"]:
+                    info[ver]["sdist_hashes"].append(entry["sha256"])
+
+        self._info_cache[norm] = info
+        return info
+
+    def get_requires_dist(self, name: str, version: str) -> list[tuple[str, str]]:
+        """Fetch ``Requires-Dist`` from PyPI JSON API.
+
+        Returns ``[(dep_name, spec), ...]``, filtering out extras and markers
+        that don't match the target environment.
+        """
+        cache_key = f"{normalize_name(name)}=={version}"
+        if cache_key in self._requires_cache:
+            return self._requires_cache[cache_key]
+
+        url = f"https://pypi.org/pypi/{name}/{version}/json"
+        text = self._fetch_url(url)
+        data = json.loads(text)
+
+        requires_dist: list[str] = data.get("info", {}).get("requires_dist") or []
+        result: list[tuple[str, str]] = []
+
+        for dep_str in requires_dist:
+            dep_name, spec, marker = _parse_dep_string(dep_str)
+
+            if marker:
+                stripped = marker.replace(" ", "")
+                if "extra==" in stripped or "extra ==" in marker:
+                    continue
+
+            if marker and not _eval_marker(marker, self.python_version):
+                continue
+
+            result.append((dep_name, spec))
+
+        self._requires_cache[cache_key] = result
+        return result
+
+    def find_best(self, name: str, constraint: str) -> dict[str, Any] | None:
+        """Find latest version on PyPI satisfying *constraint*.
+
+        Returns ``{"version": str, "has_sdist": bool, "sdist_hashes": [...],
+        "wheel_hashes": [...], "wheel_files": [...]}`` or ``None``.
+        """
+        info = self.get_package_info(name)
+        candidates = [v for v in info if version_satisfies(v, constraint)]
+        if not candidates:
+            return None
+
+        best = max(candidates, key=parse_version)
+        return {"version": best, **info[best]}
+
+
+# ---------------------------------------------------------------------------
+# Task 8 — Dependency resolver (BFS graph walk)
+# ---------------------------------------------------------------------------
+
+
+class Resolver:
+    """BFS dependency resolver enforcing RHOAI-first policy."""
+
+    def __init__(
+        self,
+        rhoai: RhoaiIndex,
+        pypi: PypiClient,
+        wheel_only_packages: set[str] | None = None,
+    ) -> None:
+        """Initialize with RHOAI and PyPI clients and the wheel-only package set."""
+        self.rhoai = rhoai
+        self.pypi = pypi
+        self.wheel_only = {normalize_name(p) for p in (wheel_only_packages or set())}
+        self.fallback_reasons: dict[str, str] = {}
+
+    def resolve(self, direct_deps: list[tuple[str, str]]) -> dict[str, dict[str, Any]]:
+        """Resolve all transitive dependencies via BFS.
+
+        Returns ``{name: {"version": str, "source": "rhoai"|"pypi", ...}}``.
+        """
+        resolved: dict[str, dict[str, Any]] = {}
+        constraints: dict[str, str] = {}
+        queue: deque[tuple[str, str]] = deque()
+
+        for name, spec in direct_deps:
+            norm = normalize_name(name)
+            constraints[norm] = (
+                merge_constraints(constraints.get(norm), spec)
+                if spec
+                else constraints.get(norm, "")
+            )
+            queue.append((norm, constraints[norm]))
+
+        visited_queue: set[str] = set()
+
+        while queue:
+            name, _constraint_at_enqueue = queue.popleft()
+            norm = normalize_name(name)
+
+            if norm in resolved:
+                current_ver = resolved[norm]["version"]
+                if version_satisfies(current_ver, constraints.get(norm, "")):
+                    continue
+                if resolved[norm]["source"] == "rhoai":
+                    logger.info(
+                        "Constraint conflict for %s (RHOAI %s); falling back to PyPI",
+                        norm,
+                        current_ver,
+                    )
+                    del resolved[norm]
+                    self.fallback_reasons[norm] = (
+                        f"RHOAI version {current_ver} conflicts with "
+                        f"constraint {constraints.get(norm, '')}"
+                    )
+                else:
+                    raise RuntimeError(
+                        f"Constraint conflict for {norm}: resolved {current_ver} "
+                        f"does not satisfy {constraints.get(norm, '')}"
+                    )
+
+            constraint = constraints.get(norm, "")
+
+            rhoai_result = self.rhoai.find_best(norm, constraint)
+            if rhoai_result is not None:
+                resolved[norm] = {
+                    "version": rhoai_result["version"],
+                    "source": "rhoai",
+                    "platforms": rhoai_result["platforms"],
+                }
+            else:
+                pypi_result = self.pypi.find_best(norm, constraint)
+                if pypi_result is None:
+                    raise RuntimeError(
+                        f"Cannot resolve {norm} with constraint "
+                        f"{constraint!r}: not found on RHOAI or PyPI"
+                    )
+                if norm not in self.fallback_reasons:
+                    if self.rhoai.has_package(norm):
+                        self.fallback_reasons[norm] = (
+                            f"RHOAI has {norm} but no version satisfies {constraint!r}"
+                        )
+                    else:
+                        self.fallback_reasons[norm] = "not in RHOAI index"
+                resolved[norm] = {
+                    "version": pypi_result["version"],
+                    "source": "pypi",
+                    "has_sdist": pypi_result["has_sdist"],
+                    "sdist_hashes": pypi_result["sdist_hashes"],
+                    "wheel_hashes": pypi_result["wheel_hashes"],
+                    "wheel_files": pypi_result["wheel_files"],
+                }
+
+            pinned_version = resolved[norm]["version"]
+            visit_key = f"{norm}=={pinned_version}"
+            if visit_key in visited_queue:
+                continue
+            visited_queue.add(visit_key)
+
+            try:
+                trans_deps = self.pypi.get_requires_dist(norm, pinned_version)
+            except Exception as exc:
+                logger.warning(
+                    "Could not fetch deps for %s==%s: %s", norm, pinned_version, exc
+                )
+                continue
+
+            for dep_name, dep_spec in trans_deps:
+                dep_norm = normalize_name(dep_name)
+                if dep_spec:
+                    constraints[dep_norm] = merge_constraints(
+                        constraints.get(dep_norm), dep_spec
+                    )
+                elif dep_norm not in constraints:
+                    constraints[dep_norm] = ""
+                queue.append((dep_norm, constraints[dep_norm]))
+
+        return resolved
+
+
+# ---------------------------------------------------------------------------
+# Task 9 — Classifier
+# ---------------------------------------------------------------------------
+
+
+def classify_packages(
+    resolved: dict[str, dict[str, Any]],
+    wheel_only: set[str],
+) -> dict[str, dict[str, dict[str, Any]]]:
+    """Classify resolved packages into output buckets.
+
+    Returns ``{"rhoai_wheel": {...}, "pypi_sdist": {...}, "pypi_wheel": {...}}``.
+    """
+    wheel_only_norm = {normalize_name(p) for p in wheel_only}
+
+    buckets: dict[str, dict[str, dict[str, Any]]] = {
+        "rhoai_wheel": {},
+        "pypi_sdist": {},
+        "pypi_wheel": {},
+    }
+
+    for name, info in resolved.items():
+        norm = normalize_name(name)
+        if info["source"] == "rhoai":
+            buckets["rhoai_wheel"][norm] = info
+        elif norm in wheel_only_norm:
+            buckets["pypi_wheel"][norm] = info
+        elif info.get("has_sdist", False):
+            buckets["pypi_sdist"][norm] = info
+        else:
+            logger.warning(
+                "Package %s==%s has no sdist on PyPI; auto-promoting to "
+                "pypi_wheel. Consider adding it to pypi_wheel_only.txt.",
+                norm,
+                info["version"],
+            )
+            buckets["pypi_wheel"][norm] = info
+
+    return buckets
+
+
+# ---------------------------------------------------------------------------
+# Task 10 — Output writer: hashed requirements files
+# ---------------------------------------------------------------------------
+
+
+def write_hashed_requirements(
+    packages: dict[str, dict[str, Any]],
+    output_path: str,
+    index_url: str,
+) -> None:
+    """Write a pip-compatible hashed requirements file.
+
+    *packages* maps ``{name: info}`` where *info* has the fields produced by
+    the resolver (``version``, and either ``platforms`` for RHOAI or
+    ``sdist_hashes`` / ``wheel_hashes`` / ``wheel_files`` for PyPI).
+    """
+    lines: list[str] = [f"--index-url {index_url}\n"]
+
+    for name in sorted(packages):
+        info = packages[name]
+        version = info["version"]
+
+        hashes: set[str] = set()
+
+        # RHOAI packages store hashes per platform
+        if "platforms" in info:
+            for _arch, (_, sha) in info["platforms"].items():
+                if sha:
+                    hashes.add(sha)
+
+        # PyPI packages store hashes in flat lists
+        for key in ("sdist_hashes", "wheel_hashes"):
+            for sha in info.get(key, []):
+                if sha:
+                    hashes.add(sha)
+        # wheel_files entries are filenames, not hashes — but the info dict
+        # may carry per-file hashes via wheel_hashes already.  Nothing extra
+        # to extract here.
+
+        sorted_hashes = sorted(hashes)
+        if not sorted_hashes:
+            raise RuntimeError(
+                f"No hashes collected for {name}=={version} while writing {output_path}"
+            )
+        lines.append(f"{name}=={version} \\\n")
+        hash_lines = [f"    --hash=sha256:{h}" for h in sorted_hashes]
+        lines.append(" \\\n".join(hash_lines) + "\n")
+
+    with open(output_path, "w") as f:
+        f.writelines(lines)
+
+
+# ---------------------------------------------------------------------------
+# Task 11 — Tekton YAML patching
+# ---------------------------------------------------------------------------
+
+
+def patch_tekton_packages(yaml_path: str, package_names: list[str]) -> None:
+    """Replace the ``"packages": "..."`` value in a Tekton pipeline YAML."""
+    with open(yaml_path) as f:
+        content = f.read()
+
+    sorted_names = sorted(package_names)
+    replacement = f'"packages": "{",".join(sorted_names)}"'
+    content = re.sub(r'"packages":\s*"[^"]*"', replacement, content)
+
+    with open(yaml_path, "w") as f:
+        f.write(content)
+
+
+# ---------------------------------------------------------------------------
+# Task 12 — Config loading
+# ---------------------------------------------------------------------------
+
+KONFLUX_DIR = ".konflux"
+
+
+def load_config(profiles_path: str, profile_name: str) -> dict[str, Any]:
+    """Load and merge ``[common]`` + ``[profiles.]`` from a TOML file.
+
+    Returns a dict with keys: ``python_version``, ``platforms``,
+    ``bootstrap_packages``, ``rhoai_index_url``, ``output_suffix``,
+    ``tekton_files``.
+    """
+    with open(profiles_path, "rb") as f:
+        data = tomllib.load(f)
+
+    common = dict(data.get("common", {}))
+    profiles = data.get("profiles", {})
+
+    if profile_name not in profiles:
+        raise KeyError(
+            f"Profile {profile_name!r} not found in {profiles_path}. "
+            f"Available: {', '.join(profiles)}"
+        )
+
+    merged = {**common, **profiles[profile_name]}
+    return merged
+
+
+def load_wheel_only(path: str) -> set[str]:
+    """Load ``.konflux/pypi_wheel_only.txt`` — one package name per line.
+
+    Skips blank lines and ``#`` comments.  Returns normalized names.
+    """
+    names: set[str] = set()
+    with open(path) as f:
+        for line in f:
+            line = line.strip()
+            if not line or line.startswith("#"):
+                continue
+            names.add(normalize_name(line))
+    return names
+
+
+# ---------------------------------------------------------------------------
+# Hybrid resolution: uv pip compile + RHOAI reclassification
+# ---------------------------------------------------------------------------
+
+_UV_COMPILED_RE = re.compile(r"^([a-zA-Z0-9][a-zA-Z0-9._-]*)([=<>!~].*)?$")
+
+
+UV_BINARY = os.environ.get(
+    "UV_BINARY",
+    os.path.join(
+        os.path.dirname(__file__), "..", "..", "uv", "target", "release", "uv"
+    ),
+)
+
+
+def uv_resolve(
+    python_version: str,
+    rhoai_index_url: str,
+    suffix: str,
+) -> dict[str, dict[str, Any]]:
+    """Run ``uv pip compile --index-strategy prefer-index`` to resolve deps.
+
+    Returns ``{normalized_name: {"version": str, "index": str}}``
+    where *index* is the URL of the index the package was resolved from.
+    """
+    overrides_file = os.path.join(
+        KONFLUX_DIR,
+        (
+            f"requirements.overrides{suffix}.txt"
+            if suffix
+            else "requirements.overrides.txt"
+        ),
+    )
+    uv = UV_BINARY if os.path.isfile(UV_BINARY) else "uv"
+    cmd = [
+        uv,
+        "pip",
+        "compile",
+        "pyproject.toml",
+        "--python-platform",
+        "x86_64-manylinux_2_28",
+        "--python-version",
+        python_version,
+        "--refresh",
+        "--index",
+        rhoai_index_url,
+        "--default-index",
+        "https://pypi.org/simple/",
+        "--index-strategy",
+        "prefer-index",
+        "--emit-index-annotation",
+        "--no-sources",
+        "--group",
+        "llslibdev",
+    ]
+    if os.path.exists(overrides_file):
+        cmd += ["--override", overrides_file]
+
+    logger.debug("Running: %s", " ".join(cmd))
+    result = subprocess.run(cmd, capture_output=True, text=True, check=True)
+
+    resolved: dict[str, dict[str, Any]] = {}
+    current_package: str | None = None
+
+    for line in result.stdout.splitlines():
+        line = line.strip()
+        if not line or line.startswith("-"):
+            continue
+
+        m = _UV_COMPILED_RE.match(line)
+        if m and not line.startswith("#"):
+            name = normalize_name(m.group(1))
+            version_spec = (m.group(2) or "").strip()
+            if version_spec.startswith("=="):
+                version = version_spec[2:]
+            else:
+                version = version_spec.lstrip("=")
+            if version:
+                current_package = name
+                resolved[name] = {"version": version, "index": ""}
+        elif "# from " in line and current_package:
+            index_url = line.split("# from ", 1)[1].strip()
+            resolved[current_package]["index"] = index_url
+
+    logger.info("uv resolved %d packages", len(resolved))
+    return resolved
+
+
+def reclassify_with_rhoai(
+    uv_resolved: dict[str, str],
+    rhoai: RhoaiIndex,
+) -> dict[str, dict[str, Any]]:
+    """Reclassify uv-resolved packages using RHOAI-first policy.
+
+    For each package, if RHOAI has a compatible wheel at the resolved version,
+    classify as ``source=rhoai``; otherwise ``source=pypi``.
+    """
+    result: dict[str, dict[str, Any]] = {}
+    rhoai_count = 0
+    pypi_count = 0
+
+    for name, version in sorted(uv_resolved.items()):
+        rhoai_match = rhoai.find_best(name, f"=={version}")
+        if rhoai_match and rhoai_match["version"] == version:
+            result[name] = {
+                "version": version,
+                "source": "rhoai",
+                "platforms": rhoai_match["platforms"],
+            }
+            rhoai_count += 1
+            logger.debug("RHOAI: %s==%s", name, version)
+        else:
+            result[name] = {
+                "version": version,
+                "source": "pypi",
+                "has_sdist": True,
+                "sdist_hashes": [],
+                "wheel_hashes": [],
+                "wheel_files": [],
+            }
+            pypi_count += 1
+            if rhoai.has_package(name):
+                logger.info(
+                    "PyPI: %s==%s (RHOAI has package but not version %s)",
+                    name,
+                    version,
+                    version,
+                )
+            else:
+                logger.debug("PyPI: %s==%s (not in RHOAI)", name, version)
+
+    logger.info("Reclassified: %d RHOAI, %d PyPI", rhoai_count, pypi_count)
+    return result
+
+
+def _fetch_hashes_for_pypi_packages(
+    resolved: dict[str, dict[str, Any]],
+    pypi: PypiClient,
+) -> None:
+    """Populate sdist/wheel hashes for PyPI-sourced packages in-place."""
+    for name, info in resolved.items():
+        if info["source"] != "pypi":
+            continue
+        version = info["version"]
+        try:
+            pkg_info = pypi.get_package_info(name)
+        except Exception as exc:
+            logger.warning("Could not fetch PyPI info for %s: %s", name, exc)
+            continue
+        ver_info = pkg_info.get(version, {})
+        info["has_sdist"] = ver_info.get("has_sdist", False)
+        info["sdist_hashes"] = ver_info.get("sdist_hashes", [])
+        info["wheel_hashes"] = ver_info.get("wheel_hashes", [])
+        info["wheel_files"] = ver_info.get("wheel_files", [])
+
+
+# ---------------------------------------------------------------------------
+# Main entrypoint
+# ---------------------------------------------------------------------------
+
+
+def _strip_rhoai_duplicates_from_build_deps(
+    build_file: str, rhoai_names: set[str]
+) -> None:
+    """Remove packages from build deps file that already exist as RHOAI wheels.
+
+    Prevents hermeto from fetching PyPI wheels for packages that are already
+    available from RHOAI, which would cause EC policy violations (binary=true
+    on PyPI-sourced packages).
+    """
+    with open(build_file) as f:
+        lines = f.readlines()
+
+    output: list[str] = []
+    skip = False
+    for line in lines:
+        if line and line[0].isalpha():
+            pkg_name = normalize_name(line.split("==")[0].strip())
+            skip = pkg_name in rhoai_names
+        elif line.startswith("#") and not skip:
+            skip = False
+
+        if not skip:
+            output.append(line)
+
+    with open(build_file, "w") as f:
+        f.writelines(output)
+
+
+def main() -> None:
+    """Resolve dependencies with RHOAI-first policy and write Hermeto output files."""
+    parser = argparse.ArgumentParser(
+        description="Policy-driven dependency resolver for Hermeto/Cachi2 builds."
+    )
+    parser.add_argument("--profile", required=True, help="Build profile (cpu|cuda)")
+    verbosity = parser.add_mutually_exclusive_group()
+    verbosity.add_argument("--verbose", action="store_true", help="Verbose logging")
+    verbosity.add_argument("--quiet", action="store_true", help="Errors only")
+    args = parser.parse_args()
+
+    if args.verbose:
+        logging.basicConfig(level=logging.DEBUG)
+    elif args.quiet:
+        logging.basicConfig(level=logging.ERROR)
+    else:
+        logging.basicConfig(level=logging.INFO)
+
+    profiles_path = os.path.join(KONFLUX_DIR, "profiles.toml")
+    config = load_config(profiles_path, args.profile)
+
+    wheel_only_path = os.path.join(KONFLUX_DIR, "pypi_wheel_only.txt")
+    wheel_only = load_wheel_only(wheel_only_path)
+
+    python_version = config["python_version"]
+    platforms = config["platforms"]
+    rhoai_index_url = config["rhoai_index_url"]
+    suffix = config.get("output_suffix", "")
+    tekton_files = config.get("tekton_files", [])
+    bootstrap_packages = config.get("bootstrap_packages", [])
+
+    # Step 1: Resolve via uv with prefer-index strategy
+    logger.info("Running uv pip compile --index-strategy prefer-index …")
+    uv_resolved = uv_resolve(python_version, rhoai_index_url, suffix)
+
+    # Step 2: Build resolved dict from uv output + index annotations
+    resolved: dict[str, dict[str, Any]] = {}
+    for name, info in uv_resolved.items():
+        index = info["index"]
+        is_rhoai = "packages.redhat.com" in index if index else False
+        if is_rhoai:
+            resolved[name] = {
+                "version": info["version"],
+                "source": "rhoai",
+                "platforms": {},
+            }
+        else:
+            resolved[name] = {
+                "version": info["version"],
+                "source": "pypi",
+                "has_sdist": True,
+                "sdist_hashes": [],
+                "wheel_hashes": [],
+                "wheel_files": [],
+            }
+
+    rhoai_count = sum(1 for v in resolved.values() if v["source"] == "rhoai")
+    pypi_count = len(resolved) - rhoai_count
+    logger.info("Classified: %d RHOAI, %d PyPI", rhoai_count, pypi_count)
+
+    # Step 3: Fetch hashes — RHOAI from the RHOAI index, PyPI from PyPI
+    logger.info("Fetching hashes …")
+    rhoai = RhoaiIndex(rhoai_index_url, python_version, platforms)
+    rhoai.load()
+    for name, info in resolved.items():
+        if info["source"] == "rhoai":
+            match = rhoai.find_best(name, f"=={info['version']}")
+            if match:
+                info["platforms"] = match["platforms"]
+
+    pypi = PypiClient(python_version, platforms)
+    _fetch_hashes_for_pypi_packages(resolved, pypi)
+
+    # Step 5: Classify into buckets
+    buckets = classify_packages(resolved, wheel_only)
+
+    # Step 6: Write hashed requirements files
+    write_hashed_requirements(
+        buckets["rhoai_wheel"],
+        os.path.join(KONFLUX_DIR, f"requirements.hashes.wheel{suffix}.txt"),
+        rhoai_index_url,
+    )
+    write_hashed_requirements(
+        buckets["pypi_sdist"],
+        os.path.join(KONFLUX_DIR, f"requirements.hashes.source{suffix}.txt"),
+        "https://pypi.org/simple",
+    )
+    write_hashed_requirements(
+        buckets["pypi_wheel"],
+        os.path.join(KONFLUX_DIR, f"requirements.hashes.wheel.pypi{suffix}.txt"),
+        "https://pypi.org/simple",
+    )
+
+    # Step 7: Build dependencies via pybuild-deps
+    sdist_names = list(buckets["pypi_sdist"].keys())
+    build_output = os.path.join(KONFLUX_DIR, f"requirements-build{suffix}.txt")
+    if sdist_names:
+        tmp_sdist_file = os.path.join(KONFLUX_DIR, f"_tmp_sdist_list{suffix}.txt")
+        try:
+            with open(tmp_sdist_file, "w") as f:
+                for name in sorted(sdist_names):
+                    info = buckets["pypi_sdist"][name]
+                    f.write(f"{name}=={info['version']}\n")
+            subprocess.run(
+                [
+                    "uv",
+                    "run",
+                    "pybuild-deps",
+                    "compile",
+                    f"--output-file={build_output}",
+                    tmp_sdist_file,
+                ],
+                check=True,
+            )
+        finally:
+            if os.path.exists(tmp_sdist_file):
+                os.remove(tmp_sdist_file)
+
+        # Strip build deps that duplicate RHOAI wheel packages to avoid
+        # hermeto fetching them as binary from PyPI (EC policy violation).
+        rhoai_names = set(buckets["rhoai_wheel"].keys())
+        _strip_rhoai_duplicates_from_build_deps(build_output, rhoai_names)
+    else:
+        with open(build_output, "w") as f:
+            f.write("# No sdist packages — no build dependencies needed.\n")
+
+    # Step 9: Patch Tekton pipelines
+    wheel_package_names = (
+        list(buckets["rhoai_wheel"].keys())
+        + list(buckets["pypi_wheel"].keys())
+        + [normalize_name(p) for p in bootstrap_packages]
+    )
+    for tekton_file in tekton_files:
+        if os.path.exists(tekton_file):
+            patch_tekton_packages(tekton_file, wheel_package_names)
+            logger.info("Patched %s", tekton_file)
+        else:
+            logger.warning("Tekton file not found: %s", tekton_file)
+
+    # Summary
+    total = len(resolved)
+    print(f"\n{'='*60}")
+    print(f"Resolution complete ({args.profile} profile)")
+    print(f"{'='*60}")
+    print(f"  RHOAI wheels:          {len(buckets['rhoai_wheel']):>4} packages")
+    print(f"  PyPI sdist:            {len(buckets['pypi_sdist']):>4} packages")
+    print(f"  PyPI wheel (last resort): {len(buckets['pypi_wheel']):>4} packages")
+    print(f"  Total:                 {total:>4} packages")
+    print()
+    print(f"  Hashed wheel (RHOAI):  .konflux/requirements.hashes.wheel{suffix}.txt")
+    print(f"  Hashed source (PyPI):  .konflux/requirements.hashes.source{suffix}.txt")
+    print(
+        f"  Hashed wheel (PyPI):   .konflux/requirements.hashes.wheel.pypi{suffix}.txt"
+    )
+    print(f"  Build deps:            {build_output}")
+    print()
+    print("Remember to commit output files and push the changes.")
+
+
+if __name__ == "__main__":
+    main()
diff --git a/uv.lock b/uv.lock
index 384492380..c765ad7fe 100644
--- a/uv.lock
+++ b/uv.lock
@@ -39,8 +39,8 @@ dependencies = [
     { name = "psutil" },
     { name = "pyyaml" },
     { name = "safetensors" },
-    { name = "torch", version = "2.9.1", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" },
-    { name = "torch", version = "2.9.1+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" },
+    { name = "torch", version = "2.11.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" },
+    { name = "torch", version = "2.11.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" },
 ]
 sdist = { url = "https://files.pythonhosted.org/packages/8d/75/94cd5d389649578aca399e5aa822637eec18319a1dadc400ffe2f9a7493f/accelerate-1.14.0.tar.gz", hash = "sha256:41b9c4377a54e0b460a959b0defa1b736e4ca0a2373252d9a539964c2afe3c8d", size = 412167, upload-time = "2026-06-11T13:45:52.326Z" }
 wheels = [
@@ -1856,8 +1856,8 @@ llslibdev = [
     { name = "pythainlp" },
     { name = "requests" },
     { name = "sentence-transformers" },
-    { name = "torch", version = "2.9.1", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" },
-    { name = "torch", version = "2.9.1+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" },
+    { name = "torch", version = "2.11.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" },
+    { name = "torch", version = "2.11.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" },
     { name = "transformers" },
     { name = "tree-sitter" },
     { name = "trl" },
@@ -1965,7 +1965,7 @@ llslibdev = [
     { name = "pythainlp", specifier = ">=3.0.10" },
     { name = "requests", specifier = ">=2.33.0" },
     { name = "sentence-transformers", specifier = ">=5.0.0" },
-    { name = "torch", specifier = "==2.9.1", index = "https://download.pytorch.org/whl/cpu", conflict = { package = "lightspeed-stack", group = "llslibdev" } },
+    { name = "torch", specifier = "==2.11.0", index = "https://download.pytorch.org/whl/cpu", conflict = { package = "lightspeed-stack", group = "llslibdev" } },
     { name = "transformers", specifier = ">=4.34.0" },
     { name = "tree-sitter", specifier = ">=0.24.0" },
     { name = "trl", specifier = ">=0.18.2" },
@@ -2824,8 +2824,8 @@ dependencies = [
     { name = "psutil" },
     { name = "pyyaml" },
     { name = "safetensors" },
-    { name = "torch", version = "2.9.1", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" },
-    { name = "torch", version = "2.9.1+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" },
+    { name = "torch", version = "2.11.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" },
+    { name = "torch", version = "2.11.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" },
     { name = "tqdm" },
     { name = "transformers" },
 ]
@@ -3990,8 +3990,8 @@ name = "secretstorage"
 version = "3.5.0"
 source = { registry = "https://pypi.org/simple" }
 dependencies = [
-    { name = "cryptography", marker = "sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32'" },
-    { name = "jeepney", marker = "sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32'" },
+    { name = "cryptography" },
+    { name = "jeepney" },
 ]
 sdist = { url = "https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz", hash = "sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size = 19884, upload-time = "2025-11-23T19:02:53.191Z" }
 wheels = [
@@ -4016,8 +4016,8 @@ dependencies = [
     { name = "numpy" },
     { name = "scikit-learn" },
     { name = "scipy" },
-    { name = "torch", version = "2.9.1", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" },
-    { name = "torch", version = "2.9.1+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" },
+    { name = "torch", version = "2.11.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" },
+    { name = "torch", version = "2.11.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" },
     { name = "tqdm" },
     { name = "transformers" },
     { name = "typing-extensions" },
@@ -4047,11 +4047,11 @@ fastapi = [
 
 [[package]]
 name = "setuptools"
-version = "83.0.0"
+version = "81.0.0"
 source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/34/26/f5d29e25ffdb535afef2d35cdb55b325298f96debd670da4c325e08d70f4/setuptools-83.0.0.tar.gz", hash = "sha256:025bccbbf0fa05b6192bc64ae1e7b16e001fd6d6d4d5de03c97b1c1ade523bef", size = 1154254, upload-time = "2026-07-04T15:31:22.699Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/0d/1c/73e719955c59b8e424d015ab450f51c0af856ae46ea2da83eba51cc88de1/setuptools-81.0.0.tar.gz", hash = "sha256:487b53915f52501f0a79ccfd0c02c165ffe06631443a886740b91af4b7a5845a", size = 1198299, upload-time = "2026-02-06T21:10:39.601Z" }
 wheels = [
-    { url = "https://files.pythonhosted.org/packages/5d/40/e1e72872c6354b306daef1703549e8e83b4d43cfea356311bf722a043752/setuptools-83.0.0-py3-none-any.whl", hash = "sha256:29b23c360f22f414dc7336bb39178cc7bcbf6021ed2733cde173f09dba19abb3", size = 1008090, upload-time = "2026-07-04T15:31:20.885Z" },
+    { url = "https://files.pythonhosted.org/packages/e1/e3/c164c88b2e5ce7b24d667b9bd83589cf4f3520d97cad01534cd3c4f55fdb/setuptools-81.0.0-py3-none-any.whl", hash = "sha256:fdd925d5c5d9f62e4b74b30d6dd7828ce236fd6ed998a08d81de62ce5a6310d6", size = 1062021, upload-time = "2026-02-06T21:10:37.175Z" },
 ]
 
 [[package]]
@@ -4266,30 +4266,30 @@ wheels = [
 
 [[package]]
 name = "torch"
-version = "2.9.1"
+version = "2.11.0"
 source = { registry = "https://download.pytorch.org/whl/cpu" }
 resolution-markers = [
     "python_full_version >= '3.13' and sys_platform == 'darwin'",
     "python_full_version < '3.13' and sys_platform == 'darwin'",
 ]
 dependencies = [
-    { name = "filelock", marker = "sys_platform == 'darwin'" },
-    { name = "fsspec", marker = "sys_platform == 'darwin'" },
-    { name = "jinja2", marker = "sys_platform == 'darwin'" },
-    { name = "networkx", marker = "sys_platform == 'darwin'" },
-    { name = "setuptools", marker = "sys_platform == 'darwin'" },
-    { name = "sympy", marker = "sys_platform == 'darwin'" },
-    { name = "typing-extensions", marker = "sys_platform == 'darwin'" },
+    { name = "filelock" },
+    { name = "fsspec" },
+    { name = "jinja2" },
+    { name = "networkx" },
+    { name = "setuptools" },
+    { name = "sympy" },
+    { name = "typing-extensions" },
 ]
 wheels = [
-    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.9.1-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:287242dd1f830846098b5eca847f817aa5c6015ea57ab4c1287809efea7b77eb", upload-time = "2026-01-23T15:12:43Z" },
-    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.9.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8924d10d36eac8fe0652a060a03fc2ae52980841850b9a1a2ddb0f27a4f181cd", upload-time = "2026-01-23T15:12:45Z" },
-    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.9.1-cp313-none-macosx_11_0_arm64.whl", hash = "sha256:bcee64ae7aa65876ceeae6dcaebe75109485b213528c74939602208a20706e3f", upload-time = "2026-01-23T15:12:48Z" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:43b35116802c85fb88d99f4a396b8bd4472bfca1dd82e69499e5a4f9b8b4e252", upload-time = "2026-03-23T15:16:58Z" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:442ec9dc78592564fdad69cf0beaa9da2f82ab810ccb4f13903869a90bf3f15d", upload-time = "2026-03-23T15:17:02Z" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cc3a195701bba2239c313ee311487f80f8aaebe9e89b9073dddbcf2f93b5a0ba", upload-time = "2026-03-23T15:17:06Z" },
 ]
 
 [[package]]
 name = "torch"
-version = "2.9.1+cpu"
+version = "2.11.0+cpu"
 source = { registry = "https://download.pytorch.org/whl/cpu" }
 resolution-markers = [
     "python_full_version >= '3.13' and sys_platform == 'win32'",
@@ -4300,26 +4300,27 @@ resolution-markers = [
     "python_full_version < '3.13' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32'",
 ]
 dependencies = [
-    { name = "filelock", marker = "sys_platform != 'darwin'" },
-    { name = "fsspec", marker = "sys_platform != 'darwin'" },
-    { name = "jinja2", marker = "sys_platform != 'darwin'" },
-    { name = "networkx", marker = "sys_platform != 'darwin'" },
-    { name = "setuptools", marker = "sys_platform != 'darwin'" },
-    { name = "sympy", marker = "sys_platform != 'darwin'" },
-    { name = "typing-extensions", marker = "sys_platform != 'darwin'" },
-]
-wheels = [
-    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.9.1%2Bcpu-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:3bf9b442a51a2948e41216a76d7ab00f0694cfcaaa51b6f9bcab57b7f89843e6", upload-time = "2026-01-23T15:13:02Z" },
-    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.9.1%2Bcpu-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:7417d8c565f219d3455654cb431c6d892a3eb40246055e14d645422de13b9ea1", upload-time = "2026-01-23T15:13:04Z" },
-    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.9.1%2Bcpu-cp312-cp312-win_amd64.whl", hash = "sha256:a4e06b4f441675d26b462123c8a83e77c55f1ec8ebc081203be2db1ea8054add", upload-time = "2026-01-23T15:13:06Z" },
-    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.9.1%2Bcpu-cp312-cp312-win_arm64.whl", hash = "sha256:1abe31f14b560c1f062699e966cb08ef5b67518a1cfac2d8547a3dbcd8387b06", upload-time = "2026-01-23T15:13:08Z" },
-    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.9.1%2Bcpu-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:3e532e553b37ee859205a9b2d1c7977fd6922f53bbb1b9bfdd5bdc00d1a60ed4", upload-time = "2026-01-23T15:13:09Z" },
-    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.9.1%2Bcpu-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:39b3dff6d8fba240ae0d1bede4ca11c2531ae3b47329206512d99e17907ff74b", upload-time = "2026-01-23T15:13:12Z" },
-    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.9.1%2Bcpu-cp313-cp313-win_amd64.whl", hash = "sha256:404a7ab2fffaf2ca069e662f331eb46313692b2f1630df2720094284f390ccef", upload-time = "2026-01-23T15:13:13Z" },
-    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.9.1%2Bcpu-cp313-cp313-win_arm64.whl", hash = "sha256:161decbff26a33f13cb5ba6d2c8f458bbf56193bcc32ecc70be6dd4c7a3ee79d", upload-time = "2026-01-23T15:13:14Z" },
-    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.9.1%2Bcpu-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:01b1884f724977a20c7da2f640f1c7b37f4a2c117a7f4a6c1c0424d14cb86322", upload-time = "2026-01-23T15:13:16Z" },
-    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.9.1%2Bcpu-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:031a597147fa81b1e6d79ccf1ad3ccc7fafa27941d6cf26ff5caaa384fb20e92", upload-time = "2026-01-23T15:13:19Z" },
-    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.9.1%2Bcpu-cp313-cp313t-win_amd64.whl", hash = "sha256:e586ab1363e3f86aa4cc133b7fdcf98deb1d2c13d43a7a6e5a6a18e9c5364893", upload-time = "2026-01-23T15:13:20Z" },
+    { name = "filelock" },
+    { name = "fsspec" },
+    { name = "jinja2" },
+    { name = "networkx" },
+    { name = "setuptools" },
+    { name = "sympy" },
+    { name = "typing-extensions" },
+]
+wheels = [
+    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp312-cp312-linux_s390x.whl", hash = "sha256:2db3ae5404e32cb42b5fcbd94f13607761eaec0cf1687fde95095289d1e26cfb", upload-time = "2026-04-28T00:06:06Z" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:70ecb2659af6373b7c5336e692e665605b0201ea21ff51aaea47e1d75ea6b5aa", upload-time = "2026-04-28T00:06:14Z" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:f82e2ae20c1545bb03997d1cc3143d94e14b800038669ee1aca45808a9acc338", upload-time = "2026-04-28T00:06:24Z" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp312-cp312-win_amd64.whl", hash = "sha256:1abeaa46fa7532ed35ed79146f4de5d7a9d4b30462c98052ea4ddfe781ea3eca", upload-time = "2026-04-28T00:06:34Z" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313-linux_s390x.whl", hash = "sha256:d1eff25ccc454faf21c9666c81bfab8e405e87c12d300708d4559620bc191a36", upload-time = "2026-04-28T00:06:42Z" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:48b3e21a311445acdd0b27f13830e21d93adef70d4721e051e9f059baeb9b8f9", upload-time = "2026-04-28T00:06:51Z" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:45025d7752dbc6b4c784c03afaee9c5f19730ce084b2e43fc9a2fe1677d9ff86", upload-time = "2026-04-28T00:07:02Z" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313-win_amd64.whl", hash = "sha256:ed70d4a4fc9f8b826c02fa1a9800a83820fb2fa6ae607680b53390f9ef394d85", upload-time = "2026-04-28T00:07:12Z" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313t-linux_s390x.whl", hash = "sha256:65d427a196ab0abe359b93c5bffedd76ded02df2b1b1d2d9f11a2609b69f426a", upload-time = "2026-04-28T00:07:19Z" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:8f13dc7075ae04ca5f876a9f40b4e47522a04c23e30824b4409f42a3f3e57aa4", upload-time = "2026-04-28T00:07:27Z" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:8713bb8679376ea0ec25742100b6cfb8447e0904c48bddefb9eb0ac1abbfa60a", upload-time = "2026-04-28T00:07:37Z" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313t-win_amd64.whl", hash = "sha256:62ec1f1694c185f601eab74eb7fc0e8e10c64c06ae82f13c3592774c231c4877", upload-time = "2026-04-28T00:07:47Z" },
 ]
 
 [[package]]