diff --git a/common/pyproject.toml b/common/pyproject.toml index dca6069e..8d4fcb70 100644 --- a/common/pyproject.toml +++ b/common/pyproject.toml @@ -19,7 +19,8 @@ dependencies = [ [project.optional-dependencies] full = [ "protobuf>=5.0", - "openlit ~=1.36.0", + # openlit 1.36.6+ breaks langgraph ToolNode: https://github.com/openlit/openlit/issues/986 + "openlit >=1.36.0,<1.36.6", ] diff --git a/common/uv.lock b/common/uv.lock index 355408f9..b3e2d57e 100644 --- a/common/uv.lock +++ b/common/uv.lock @@ -216,7 +216,7 @@ requires-dist = [ { name = "langchain-core", specifier = "~=0.3.81" }, { name = "langchain-openai", specifier = "~=0.3.30" }, { name = "langfuse", specifier = "~=2.59.2" }, - { name = "openlit", marker = "extra == 'full'", specifier = "~=1.36.0" }, + { name = "openlit", marker = "extra == 'full'", specifier = ">=1.36.0,<1.36.6" }, { name = "protobuf", marker = "extra == 'full'", specifier = ">=5.0" }, { name = "pydantic-settings", specifier = "~=2.7.1" }, { name = "pymongo", specifier = "~=4.10.1" }, @@ -358,7 +358,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" }, { url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" }, { url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" }, - { url = "https://files.pythonhosted.org/packages/3b/cd/7a7ca57588dac3389e97f7c9521cb6641fd8b6602faf1eaa4188384757df/greenlet-3.3.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c620051669fd04ac6b60ebc70478210119c56e2d5d5df848baec4312e260e4ca", size = 622363, upload-time = "2026-01-23T16:15:54.754Z" }, { url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" }, { url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" }, { url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" }, @@ -745,7 +744,7 @@ wheels = [ [[package]] name = "openlit" -version = "1.36.7" +version = "1.36.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anthropic" }, @@ -776,9 +775,9 @@ dependencies = [ { name = "schedule" }, { name = "xmltodict" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0a/92/ddebfab7e8feb519f5a96c0bb5410bd57f336528300c37d051d9e10bb3ce/openlit-1.36.7.tar.gz", hash = "sha256:553f533daf37fd9612df4a19f1da84a1c00a737253ef7580dd63f8c6353d19ec", size = 281884, upload-time = "2026-01-27T07:35:25.812Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ae/06/8253e93a13ae45ecd1d8db3be63f90db39c5c8995a7f4a1f58f53ca63431/openlit-1.36.3.tar.gz", hash = "sha256:31f3227bc4c9904dd399cc625aee70e073f3d905453f2e972ca2b9b6c0b99b8f", size = 260444, upload-time = "2025-12-12T10:27:01.327Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5e/04/bfe4fa48ce1e88ae12e0abcf726f688e55861d7341d3b5b00d991dce3490/openlit-1.36.7-py3-none-any.whl", hash = "sha256:090f9c5545e8d9a57a25d572067beff1daf40eb4f485e2fbdd32020bcc07d0bd", size = 431693, upload-time = "2026-01-27T07:35:23.991Z" }, + { url = "https://files.pythonhosted.org/packages/83/f8/67f4d76aab540645a59182af65a24b7913a8bf3dcee3ef767a2efcdba1ea/openlit-1.36.3-py3-none-any.whl", hash = "sha256:bf6edcdf96da69f14b79d80aa2a9d05a7393de448e3d8d264e3ac4f63f5aadf3", size = 401640, upload-time = "2025-12-12T10:26:59.329Z" }, ] [[package]] diff --git a/fuzzer/uv.lock b/fuzzer/uv.lock index 5b3ae57b..56f66ad1 100644 --- a/fuzzer/uv.lock +++ b/fuzzer/uv.lock @@ -216,7 +216,7 @@ requires-dist = [ { name = "langchain-core", specifier = "~=0.3.81" }, { name = "langchain-openai", specifier = "~=0.3.30" }, { name = "langfuse", specifier = "~=2.59.2" }, - { name = "openlit", marker = "extra == 'full'", specifier = "~=1.36.0" }, + { name = "openlit", marker = "extra == 'full'", specifier = ">=1.36.0,<1.36.6" }, { name = "protobuf", marker = "extra == 'full'", specifier = ">=5.0" }, { name = "pydantic-settings", specifier = "~=2.7.1" }, { name = "pymongo", specifier = "~=4.10.1" }, @@ -401,7 +401,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" }, { url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" }, { url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" }, - { url = "https://files.pythonhosted.org/packages/3b/cd/7a7ca57588dac3389e97f7c9521cb6641fd8b6602faf1eaa4188384757df/greenlet-3.3.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c620051669fd04ac6b60ebc70478210119c56e2d5d5df848baec4312e260e4ca", size = 622363, upload-time = "2026-01-23T16:15:54.754Z" }, { url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" }, { url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" }, { url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" }, @@ -802,7 +801,7 @@ wheels = [ [[package]] name = "openlit" -version = "1.36.7" +version = "1.36.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anthropic" }, @@ -833,9 +832,9 @@ dependencies = [ { name = "schedule" }, { name = "xmltodict" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0a/92/ddebfab7e8feb519f5a96c0bb5410bd57f336528300c37d051d9e10bb3ce/openlit-1.36.7.tar.gz", hash = "sha256:553f533daf37fd9612df4a19f1da84a1c00a737253ef7580dd63f8c6353d19ec", size = 281884, upload-time = "2026-01-27T07:35:25.812Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ae/06/8253e93a13ae45ecd1d8db3be63f90db39c5c8995a7f4a1f58f53ca63431/openlit-1.36.3.tar.gz", hash = "sha256:31f3227bc4c9904dd399cc625aee70e073f3d905453f2e972ca2b9b6c0b99b8f", size = 260444, upload-time = "2025-12-12T10:27:01.327Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5e/04/bfe4fa48ce1e88ae12e0abcf726f688e55861d7341d3b5b00d991dce3490/openlit-1.36.7-py3-none-any.whl", hash = "sha256:090f9c5545e8d9a57a25d572067beff1daf40eb4f485e2fbdd32020bcc07d0bd", size = 431693, upload-time = "2026-01-27T07:35:23.991Z" }, + { url = "https://files.pythonhosted.org/packages/83/f8/67f4d76aab540645a59182af65a24b7913a8bf3dcee3ef767a2efcdba1ea/openlit-1.36.3-py3-none-any.whl", hash = "sha256:bf6edcdf96da69f14b79d80aa2a9d05a7393de448e3d8d264e3ac4f63f5aadf3", size = 401640, upload-time = "2025-12-12T10:26:59.329Z" }, ] [[package]] diff --git a/fuzzer_runner/uv.lock b/fuzzer_runner/uv.lock index 8e724d23..d081c291 100644 --- a/fuzzer_runner/uv.lock +++ b/fuzzer_runner/uv.lock @@ -150,7 +150,7 @@ requires-dist = [ { name = "langchain-core", specifier = "~=0.3.81" }, { name = "langchain-openai", specifier = "~=0.3.30" }, { name = "langfuse", specifier = "~=2.59.2" }, - { name = "openlit", marker = "extra == 'full'", specifier = "~=1.36.0" }, + { name = "openlit", marker = "extra == 'full'", specifier = ">=1.36.0,<1.36.6" }, { name = "protobuf", marker = "extra == 'full'", specifier = ">=5.0" }, { name = "pydantic-settings", specifier = "~=2.7.1" }, { name = "pymongo", specifier = "~=4.10.1" }, @@ -523,7 +523,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" }, { url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" }, { url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" }, - { url = "https://files.pythonhosted.org/packages/3b/cd/7a7ca57588dac3389e97f7c9521cb6641fd8b6602faf1eaa4188384757df/greenlet-3.3.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c620051669fd04ac6b60ebc70478210119c56e2d5d5df848baec4312e260e4ca", size = 622363, upload-time = "2026-01-23T16:15:54.754Z" }, { url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" }, { url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" }, { url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" }, diff --git a/orchestrator/uv.lock b/orchestrator/uv.lock index 97665cf1..c17cf5cb 100644 --- a/orchestrator/uv.lock +++ b/orchestrator/uv.lock @@ -236,7 +236,7 @@ requires-dist = [ { name = "langchain-core", specifier = "~=0.3.81" }, { name = "langchain-openai", specifier = "~=0.3.30" }, { name = "langfuse", specifier = "~=2.59.2" }, - { name = "openlit", marker = "extra == 'full'", specifier = "~=1.36.0" }, + { name = "openlit", marker = "extra == 'full'", specifier = ">=1.36.0,<1.36.6" }, { name = "protobuf", marker = "extra == 'full'", specifier = ">=5.0" }, { name = "pydantic-settings", specifier = "~=2.7.1" }, { name = "pymongo", specifier = "~=4.10.1" }, @@ -477,7 +477,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" }, { url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" }, { url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" }, - { url = "https://files.pythonhosted.org/packages/3b/cd/7a7ca57588dac3389e97f7c9521cb6641fd8b6602faf1eaa4188384757df/greenlet-3.3.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c620051669fd04ac6b60ebc70478210119c56e2d5d5df848baec4312e260e4ca", size = 622363, upload-time = "2026-01-23T16:15:54.754Z" }, { url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" }, { url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" }, { url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" }, @@ -908,7 +907,7 @@ wheels = [ [[package]] name = "openlit" -version = "1.36.7" +version = "1.36.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anthropic" }, @@ -939,9 +938,9 @@ dependencies = [ { name = "schedule" }, { name = "xmltodict" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0a/92/ddebfab7e8feb519f5a96c0bb5410bd57f336528300c37d051d9e10bb3ce/openlit-1.36.7.tar.gz", hash = "sha256:553f533daf37fd9612df4a19f1da84a1c00a737253ef7580dd63f8c6353d19ec", size = 281884, upload-time = "2026-01-27T07:35:25.812Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ae/06/8253e93a13ae45ecd1d8db3be63f90db39c5c8995a7f4a1f58f53ca63431/openlit-1.36.3.tar.gz", hash = "sha256:31f3227bc4c9904dd399cc625aee70e073f3d905453f2e972ca2b9b6c0b99b8f", size = 260444, upload-time = "2025-12-12T10:27:01.327Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5e/04/bfe4fa48ce1e88ae12e0abcf726f688e55861d7341d3b5b00d991dce3490/openlit-1.36.7-py3-none-any.whl", hash = "sha256:090f9c5545e8d9a57a25d572067beff1daf40eb4f485e2fbdd32020bcc07d0bd", size = 431693, upload-time = "2026-01-27T07:35:23.991Z" }, + { url = "https://files.pythonhosted.org/packages/83/f8/67f4d76aab540645a59182af65a24b7913a8bf3dcee3ef767a2efcdba1ea/openlit-1.36.3-py3-none-any.whl", hash = "sha256:bf6edcdf96da69f14b79d80aa2a9d05a7393de448e3d8d264e3ac4f63f5aadf3", size = 401640, upload-time = "2025-12-12T10:26:59.329Z" }, ] [[package]] diff --git a/patcher/uv.lock b/patcher/uv.lock index 3b9f01f5..c3fb9a8b 100644 --- a/patcher/uv.lock +++ b/patcher/uv.lock @@ -259,7 +259,7 @@ requires-dist = [ { name = "langchain-core", specifier = "~=0.3.81" }, { name = "langchain-openai", specifier = "~=0.3.30" }, { name = "langfuse", specifier = "~=2.59.2" }, - { name = "openlit", marker = "extra == 'full'", specifier = "~=1.36.0" }, + { name = "openlit", marker = "extra == 'full'", specifier = ">=1.36.0,<1.36.6" }, { name = "protobuf", marker = "extra == 'full'", specifier = ">=5.0" }, { name = "pydantic-settings", specifier = "~=2.7.1" }, { name = "pymongo", specifier = "~=4.10.1" }, @@ -439,7 +439,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" }, { url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" }, { url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" }, - { url = "https://files.pythonhosted.org/packages/3b/cd/7a7ca57588dac3389e97f7c9521cb6641fd8b6602faf1eaa4188384757df/greenlet-3.3.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c620051669fd04ac6b60ebc70478210119c56e2d5d5df848baec4312e260e4ca", size = 622363, upload-time = "2026-01-23T16:15:54.754Z" }, { url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" }, { url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" }, { url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" }, @@ -949,7 +948,7 @@ wheels = [ [[package]] name = "openlit" -version = "1.36.7" +version = "1.36.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anthropic" }, @@ -980,9 +979,9 @@ dependencies = [ { name = "schedule" }, { name = "xmltodict" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0a/92/ddebfab7e8feb519f5a96c0bb5410bd57f336528300c37d051d9e10bb3ce/openlit-1.36.7.tar.gz", hash = "sha256:553f533daf37fd9612df4a19f1da84a1c00a737253ef7580dd63f8c6353d19ec", size = 281884, upload-time = "2026-01-27T07:35:25.812Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ae/06/8253e93a13ae45ecd1d8db3be63f90db39c5c8995a7f4a1f58f53ca63431/openlit-1.36.3.tar.gz", hash = "sha256:31f3227bc4c9904dd399cc625aee70e073f3d905453f2e972ca2b9b6c0b99b8f", size = 260444, upload-time = "2025-12-12T10:27:01.327Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5e/04/bfe4fa48ce1e88ae12e0abcf726f688e55861d7341d3b5b00d991dce3490/openlit-1.36.7-py3-none-any.whl", hash = "sha256:090f9c5545e8d9a57a25d572067beff1daf40eb4f485e2fbdd32020bcc07d0bd", size = 431693, upload-time = "2026-01-27T07:35:23.991Z" }, + { url = "https://files.pythonhosted.org/packages/83/f8/67f4d76aab540645a59182af65a24b7913a8bf3dcee3ef767a2efcdba1ea/openlit-1.36.3-py3-none-any.whl", hash = "sha256:bf6edcdf96da69f14b79d80aa2a9d05a7393de448e3d8d264e3ac4f63f5aadf3", size = 401640, upload-time = "2025-12-12T10:26:59.329Z" }, ] [[package]] diff --git a/program-model/uv.lock b/program-model/uv.lock index cb720c88..f359614c 100644 --- a/program-model/uv.lock +++ b/program-model/uv.lock @@ -203,7 +203,7 @@ requires-dist = [ { name = "langchain-core", specifier = "~=0.3.81" }, { name = "langchain-openai", specifier = "~=0.3.30" }, { name = "langfuse", specifier = "~=2.59.2" }, - { name = "openlit", marker = "extra == 'full'", specifier = "~=1.36.0" }, + { name = "openlit", marker = "extra == 'full'", specifier = ">=1.36.0,<1.36.6" }, { name = "protobuf", marker = "extra == 'full'", specifier = ">=5.0" }, { name = "pydantic-settings", specifier = "~=2.7.1" }, { name = "pymongo", specifier = "~=4.10.1" }, @@ -336,7 +336,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" }, { url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" }, { url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" }, - { url = "https://files.pythonhosted.org/packages/3b/cd/7a7ca57588dac3389e97f7c9521cb6641fd8b6602faf1eaa4188384757df/greenlet-3.3.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c620051669fd04ac6b60ebc70478210119c56e2d5d5df848baec4312e260e4ca", size = 622363, upload-time = "2026-01-23T16:15:54.754Z" }, { url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" }, { url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" }, { url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" }, @@ -700,7 +699,7 @@ wheels = [ [[package]] name = "openlit" -version = "1.36.7" +version = "1.36.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anthropic" }, @@ -731,9 +730,9 @@ dependencies = [ { name = "schedule" }, { name = "xmltodict" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0a/92/ddebfab7e8feb519f5a96c0bb5410bd57f336528300c37d051d9e10bb3ce/openlit-1.36.7.tar.gz", hash = "sha256:553f533daf37fd9612df4a19f1da84a1c00a737253ef7580dd63f8c6353d19ec", size = 281884, upload-time = "2026-01-27T07:35:25.812Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ae/06/8253e93a13ae45ecd1d8db3be63f90db39c5c8995a7f4a1f58f53ca63431/openlit-1.36.3.tar.gz", hash = "sha256:31f3227bc4c9904dd399cc625aee70e073f3d905453f2e972ca2b9b6c0b99b8f", size = 260444, upload-time = "2025-12-12T10:27:01.327Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5e/04/bfe4fa48ce1e88ae12e0abcf726f688e55861d7341d3b5b00d991dce3490/openlit-1.36.7-py3-none-any.whl", hash = "sha256:090f9c5545e8d9a57a25d572067beff1daf40eb4f485e2fbdd32020bcc07d0bd", size = 431693, upload-time = "2026-01-27T07:35:23.991Z" }, + { url = "https://files.pythonhosted.org/packages/83/f8/67f4d76aab540645a59182af65a24b7913a8bf3dcee3ef767a2efcdba1ea/openlit-1.36.3-py3-none-any.whl", hash = "sha256:bf6edcdf96da69f14b79d80aa2a9d05a7393de448e3d8d264e3ac4f63f5aadf3", size = 401640, upload-time = "2025-12-12T10:26:59.329Z" }, ] [[package]] diff --git a/seed-gen/test/test_telemetry_integration.py b/seed-gen/test/test_telemetry_integration.py new file mode 100644 index 00000000..23776fab --- /dev/null +++ b/seed-gen/test/test_telemetry_integration.py @@ -0,0 +1,99 @@ +"""Integration tests with openlit telemetry enabled. + +These tests verify seed-gen works correctly when openlit instrumentation is active, +as it would be in production when OTEL_EXPORTER_OTLP_ENDPOINT is set. +""" + +from unittest.mock import MagicMock, Mock, patch + +import openlit +import pytest +from langchain_core.messages import AIMessage + +from buttercup.seed_gen.seed_init import SeedInitTask +from test.conftest import mock_sandbox_exec_funcs + +# Initialize openlit at module load to enable instrumentation +# This simulates production where init_telemetry() is called at startup +openlit.init( + disable_batch=True, + otlp_endpoint=None, +) + + +@pytest.fixture +def seed_init_task( + mock_challenge_task, + mock_codequery, + mock_project_yaml, + mock_redis, + mock_llm, +): + """Create a SeedInitTask instance with mocked dependencies.""" + with patch("buttercup.seed_gen.task.Task.get_llm", return_value=mock_llm): + task = SeedInitTask( + package_name="test_package", + harness_name="test_harness", + challenge_task=mock_challenge_task, + codequery=mock_codequery, + project_yaml=mock_project_yaml, + redis=mock_redis, + ) + return task + + +def test_do_task_with_telemetry( + seed_init_task, + mock_llm, + mock_harness_info, + mock_llm_responses, + mock_codequery_responses, + mock_challenge_task_responses, + tmp_path, +): + """Test seed-gen do_task works with openlit telemetry enabled.""" + out_dir = tmp_path / "out" + out_dir.mkdir() + + seed_init_task.get_harness_source = Mock(return_value=mock_harness_info) + + with ( + patch("buttercup.common.llm.get_langfuse_callbacks", return_value=[]), + patch("opentelemetry.trace.get_tracer") as mock_tracer, + patch("buttercup.seed_gen.seed_init.set_crs_attributes"), + patch("buttercup.seed_gen.task.sandbox_exec_funcs") as mock_sandbox_exec, + ): + mock_span = MagicMock() + mock_tracer.return_value.start_as_current_span.return_value.__enter__.return_value = mock_span + mock_sandbox_exec.side_effect = mock_sandbox_exec_funcs + + seed_messages = [ + AIMessage( + content=( + "```python\n" + "def gen_seed_1() -> bytes:\n" + ' return b"A" * 50\n\n' + "def gen_seed_2() -> bytes:\n" + ' return b"B" * 100\n```' + ), + ), + ] + mock_llm.invoke.side_effect = mock_llm_responses + seed_messages + + seed_init_task.codequery.get_functions = Mock( + return_value=mock_codequery_responses["get_functions"], + ) + seed_init_task.codequery.get_callers = Mock( + return_value=mock_codequery_responses["get_callers"], + ) + seed_init_task.codequery.get_types = Mock( + return_value=mock_codequery_responses["get_types"], + ) + seed_init_task.challenge_task.exec_docker_cmd = Mock( + return_value=mock_challenge_task_responses["exec_docker_cmd"], + ) + + seed_init_task.do_task(out_dir) + + seed_files = list(out_dir.glob("*.seed")) + assert len(seed_files) == 2 diff --git a/seed-gen/uv.lock b/seed-gen/uv.lock index 650bc4d9..2d410f59 100644 --- a/seed-gen/uv.lock +++ b/seed-gen/uv.lock @@ -203,7 +203,7 @@ requires-dist = [ { name = "langchain-core", specifier = "~=0.3.81" }, { name = "langchain-openai", specifier = "~=0.3.30" }, { name = "langfuse", specifier = "~=2.59.2" }, - { name = "openlit", marker = "extra == 'full'", specifier = "~=1.36.0" }, + { name = "openlit", marker = "extra == 'full'", specifier = ">=1.36.0,<1.36.6" }, { name = "protobuf", marker = "extra == 'full'", specifier = ">=5.0" }, { name = "pydantic-settings", specifier = "~=2.7.1" }, { name = "pymongo", specifier = "~=4.10.1" }, @@ -336,7 +336,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" }, { url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" }, { url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" }, - { url = "https://files.pythonhosted.org/packages/3b/cd/7a7ca57588dac3389e97f7c9521cb6641fd8b6602faf1eaa4188384757df/greenlet-3.3.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c620051669fd04ac6b60ebc70478210119c56e2d5d5df848baec4312e260e4ca", size = 622363, upload-time = "2026-01-23T16:15:54.754Z" }, { url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" }, { url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" }, { url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" }, @@ -783,7 +782,7 @@ wheels = [ [[package]] name = "openlit" -version = "1.36.7" +version = "1.36.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anthropic" }, @@ -814,9 +813,9 @@ dependencies = [ { name = "schedule" }, { name = "xmltodict" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0a/92/ddebfab7e8feb519f5a96c0bb5410bd57f336528300c37d051d9e10bb3ce/openlit-1.36.7.tar.gz", hash = "sha256:553f533daf37fd9612df4a19f1da84a1c00a737253ef7580dd63f8c6353d19ec", size = 281884, upload-time = "2026-01-27T07:35:25.812Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ae/06/8253e93a13ae45ecd1d8db3be63f90db39c5c8995a7f4a1f58f53ca63431/openlit-1.36.3.tar.gz", hash = "sha256:31f3227bc4c9904dd399cc625aee70e073f3d905453f2e972ca2b9b6c0b99b8f", size = 260444, upload-time = "2025-12-12T10:27:01.327Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5e/04/bfe4fa48ce1e88ae12e0abcf726f688e55861d7341d3b5b00d991dce3490/openlit-1.36.7-py3-none-any.whl", hash = "sha256:090f9c5545e8d9a57a25d572067beff1daf40eb4f485e2fbdd32020bcc07d0bd", size = 431693, upload-time = "2026-01-27T07:35:23.991Z" }, + { url = "https://files.pythonhosted.org/packages/83/f8/67f4d76aab540645a59182af65a24b7913a8bf3dcee3ef767a2efcdba1ea/openlit-1.36.3-py3-none-any.whl", hash = "sha256:bf6edcdf96da69f14b79d80aa2a9d05a7393de448e3d8d264e3ac4f63f5aadf3", size = 401640, upload-time = "2025-12-12T10:26:59.329Z" }, ] [[package]]