diff --git a/devenv.lock b/devenv.lock index ee895e4..0607e5c 100644 --- a/devenv.lock +++ b/devenv.lock @@ -3,10 +3,10 @@ "devenv": { "locked": { "dir": "src/modules", - "lastModified": 1769011019, + "lastModified": 1771419682, "owner": "cachix", "repo": "devenv", - "rev": "e4c0fb64efda6ffa563a97a98c8c75c336f6bff1", + "rev": "f77fc4de35c184d9ef9a32d5d7e9033351bcdfdc", "type": "github" }, "original": { @@ -55,10 +55,10 @@ ] }, "locked": { - "lastModified": 1768935149, + "lastModified": 1770726378, "owner": "cachix", "repo": "git-hooks.nix", - "rev": "18cbede9ff6da05b911c5c4802a397c2686ac8fa", + "rev": "5eaaedde414f6eb1aea8b8525c466dc37bba95ae", "type": "github" }, "original": { @@ -88,11 +88,14 @@ } }, "nixpkgs": { + "inputs": { + "nixpkgs-src": "nixpkgs-src" + }, "locked": { - "lastModified": 1767052823, + "lastModified": 1770434727, "owner": "cachix", "repo": "devenv-nixpkgs", - "rev": "538a5124359f0b3d466e1160378c87887e3b51a4", + "rev": "8430f16a39c27bdeef236f1eeb56f0b51b33d348", "type": "github" }, "original": { @@ -110,10 +113,10 @@ ] }, "locked": { - "lastModified": 1765052656, + "lastModified": 1770193939, "owner": "cachix", "repo": "nixpkgs-python", - "rev": "04b27dbad2e004cb237db202f21154eea3c4f89f", + "rev": "0630618bfe33895453257fb606af75aa71247393", "type": "github" }, "original": { @@ -122,6 +125,23 @@ "type": "github" } }, + "nixpkgs-src": { + "flake": false, + "locked": { + "lastModified": 1769922788, + "narHash": "sha256-H3AfG4ObMDTkTJYkd8cz1/RbY9LatN5Mk4UF48VuSXc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "207d15f1a6603226e1e223dc79ac29c7846da32e", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "root": { "inputs": { "devenv": "devenv", diff --git a/devenv.nix b/devenv.nix index 6488601..801727b 100644 --- a/devenv.nix +++ b/devenv.nix @@ -4,11 +4,8 @@ config, inputs, ... -}: { - packages = with pkgs; [ - git - ]; - starship.enable = true; +}: +{ languages.python = { enable = true; version = "3.12"; diff --git a/pyproject.toml b/pyproject.toml index 696dd28..f64aaa6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "crowdstrike-aidr-openai" -version = "0.1.1" +version = "0.2.0" description = "A wrapper around the OpenAI Python library that wraps the Responses API with CrowdStrike AIDR" readme = "README.md" license = "MIT" @@ -10,7 +10,7 @@ authors = [ requires-python = ">=3.12" dependencies = [ "anyio ~=4.12.0", - "crowdstrike-aidr ~=0.4.2", + "crowdstrike-aidr ~=0.5.0", "httpx ~=0.28.1", "openai ~=2.8.1", "pydantic-core ~=2.41.5", diff --git a/src/crowdstrike_aidr_openai/resources/responses/responses.py b/src/crowdstrike_aidr_openai/resources/responses/responses.py index 951b25a..525e749 100644 --- a/src/crowdstrike_aidr_openai/resources/responses/responses.py +++ b/src/crowdstrike_aidr_openai/resources/responses/responses.py @@ -986,15 +986,14 @@ def create( if c.type == "output_text" ] - # TODO: reintroduce. # FPE unredact. - # if guard_input_response.result.fpe_context is not None: - # redact_response = self._client.redact_client.unredact( - # output_messages, - # fpe_context=guard_input_response.result.fpe_context, - # ) - # assert redact_response.result is not None - # output_messages = list_message_adapter.validate_python(redact_response.result.data) + if guard_input_response.result.fpe_context is not None: + redact_response = self._client.ai_guard_client.unredact( + redacted_data=output_messages, + fpe_context=guard_input_response.result.fpe_context, + ) + assert redact_response.result is not None + output_messages = list_message_adapter.validate_python(redact_response.result.data) guard_output_response = self._client.ai_guard_client.guard_chat_completions( guard_input={"messages": messages + output_messages}, @@ -1870,15 +1869,14 @@ async def create( if c.type == "output_text" ] - # TODO: reintroduce. # FPE unredact. - # if guard_input_response.result.fpe_context is not None: - # redact_response = await self._client.redact_client.unredact( - # output_messages, - # fpe_context=guard_input_response.result.fpe_context, - # ) - # assert redact_response.result is not None - # output_messages = list_message_adapter.validate_python(redact_response.result.data) + if guard_input_response.result.fpe_context is not None: + redact_response = self._client.ai_guard_client.unredact( + redacted_data=output_messages, + fpe_context=guard_input_response.result.fpe_context, + ) + assert redact_response.result is not None + output_messages = list_message_adapter.validate_python(redact_response.result.data) guard_output_response = self._client.ai_guard_client.guard_chat_completions( guard_input={"messages": messages + output_messages}, event_type="output" diff --git a/uv.lock b/uv.lock index 912186d..a756df3 100644 --- a/uv.lock +++ b/uv.lock @@ -44,21 +44,21 @@ wheels = [ [[package]] name = "crowdstrike-aidr" -version = "0.4.2" +version = "0.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "httpx" }, { name = "pydantic" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d9/f2/89007b4270ef04a15eef860081194112f0d700d844f3dfb697a54c024eb5/crowdstrike_aidr-0.4.2.tar.gz", hash = "sha256:ebb90003b856a3beca3ad79ab00749337f2190a403941cc87217c90442de8488", size = 20459, upload-time = "2026-01-21T21:25:36.683Z" } +sdist = { url = "https://files.pythonhosted.org/packages/8d/3f/21aca12d6ed245b254dc49cafff26c35edb93a99bb00d99557f967bc9951/crowdstrike_aidr-0.5.0.tar.gz", hash = "sha256:3539126e911bea38670ff9897e46cd0c3ba951c6cd86aa5773e1632f5ca7afc7", size = 20628, upload-time = "2026-02-18T22:07:15.784Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/aa/0b/2fa78da83c5c18414571a8c7ff264700f60cc0428269d3c92cc3fb048cfd/crowdstrike_aidr-0.4.2-py3-none-any.whl", hash = "sha256:eeaf39715f3c746cc376c7020b60d935c00680e154fedd06aa1ea6fd7ca136ee", size = 24691, upload-time = "2026-01-21T21:25:35.548Z" }, + { url = "https://files.pythonhosted.org/packages/87/cd/3fb8dea67653b4550b827465daf6ce3e2980f7ef4e257630f1ddf60a6bc6/crowdstrike_aidr-0.5.0-py3-none-any.whl", hash = "sha256:d97960e096958f15063b03d9fc963cf4964b47ce833f2c0f7df12c47450fed6c", size = 24911, upload-time = "2026-02-18T22:07:14.721Z" }, ] [[package]] name = "crowdstrike-aidr-openai" -version = "0.1.1" +version = "0.2.0" source = { editable = "." } dependencies = [ { name = "anyio" }, @@ -80,7 +80,7 @@ dev = [ [package.metadata] requires-dist = [ { name = "anyio", specifier = "~=4.12.0" }, - { name = "crowdstrike-aidr", specifier = "~=0.4.2" }, + { name = "crowdstrike-aidr", specifier = "~=0.5.0" }, { name = "httpx", specifier = "~=0.28.1" }, { name = "openai", specifier = "~=2.8.1" }, { name = "pydantic-core", specifier = "~=2.41.5" },